/* ==========================================================================
   Дизайн-токены ФЦРВ. Единственное место, где задаются скругления,
   тени, тайминги и служебные цвета. Меняем здесь — меняется везде.
   ========================================================================== */

:root {
	/* Скругления. Шкала снята с смена.дети и центрзнаниймашук.рф */
	--r-xs:   8px;
	--r-sm:  12px;
	--r-md:  20px;
	--r-lg:  28px;
	--r-xl:  40px;
	--r-pill: 9999px;

	/* Тени: мягкие, в оттенке фирменного синего, а не серые */
	--shadow-sm:   0 2px  8px rgba(0, 47, 157, .06);
	--shadow-card: 0 4px 24px rgba(0, 47, 157, .08);
	--shadow-lift: 0 12px 32px rgba(0, 47, 157, .14);

	/* Движение */
	--dur-fast: .16s;
	--dur:      .28s;
	--dur-slow: .5s;
	--ease:     cubic-bezier(.2, .7, .3, 1);

	/* Фирменные цвета. Синие взяты с сайта головной организации. */
	--c-blue-900: #002f9d;
	--c-blue-600: #1456ff;
	--c-blue-400: #1284e7;
	--c-blue-50:  #f3f9fe;
	--c-coral:    #fd6464;

	/* Сетка */
	--content-max: 1390px;
	--gutter: 24px;
}

/* --------------------------------------------------------- скругления */

.u-r-xs   { border-radius: var(--r-xs)   !important; }
.u-r-sm   { border-radius: var(--r-sm)   !important; }
.u-r-md   { border-radius: var(--r-md)   !important; }
.u-r-lg   { border-radius: var(--r-lg)   !important; }
.u-r-xl   { border-radius: var(--r-xl)   !important; }
.is-pill  { border-radius: var(--r-pill) !important; }

/* Скругление вместе с обрезкой содержимого — для карточек с картинкой */
.is-clip { overflow: hidden; }

/* ------------------------------------------------------------ карточка */

.is-card {
	background: #fff;
	border-radius: var(--r-md);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.is-card--soft {
	background: var(--c-blue-50);
	box-shadow: none;
}

/* --------------------------------------------------------- наведение */

.hover-lift { transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.hover-lift:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); }

.hover-zoom { overflow: hidden; }
.hover-zoom img { transition: transform var(--dur-slow) var(--ease); will-change: transform; }
.hover-zoom:hover img { transform: scale(1.06); }

/* Подчёркивание, растущее от левого края */
.hover-underline { position: relative; }
.hover-underline::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 100%;
	height: 2px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dur) var(--ease);
}
.hover-underline:hover::after { transform: scaleX(1); }

/* Кнопка-пилюля со сдвигом стрелки */
.btn-arrow .elementor-button-icon { transition: transform var(--dur) var(--ease); }
.btn-arrow:hover .elementor-button-icon { transform: translateX(4px); }

/* ------------------------------------------------ появление при прокрутке */

.reveal,
.reveal-up,
.reveal-scale {
	opacity: 0;
	transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
	will-change: opacity, transform;
}

.reveal-up    { transform: translateY(28px); }
.reveal-scale { transform: scale(.96); }

.reveal.is-visible,
.reveal-up.is-visible,
.reveal-scale.is-visible {
	opacity: 1;
	transform: none;
}

/* Ступенчатая задержка для соседних карточек */
.stagger > * { transition-delay: 0s; }
.stagger > *:nth-child(2) { transition-delay: .07s; }
.stagger > *:nth-child(3) { transition-delay: .14s; }
.stagger > *:nth-child(4) { transition-delay: .21s; }
.stagger > *:nth-child(5) { transition-delay: .28s; }
.stagger > *:nth-child(6) { transition-delay: .35s; }

/* ------------------------------------------------------------- шапка */

/* Шапка во всю ширину, содержимое внутри — по ширине контента */
.site-topbar { width: 100%; }
.site-topbar > .e-con-inner,
.site-topbar > .elementor-container { max-width: var(--content-max); }

/* Уменьшение липкой шапки при прокрутке */
.site-topbar.elementor-sticky--effects {
	box-shadow: var(--shadow-sm);
	backdrop-filter: saturate(140%) blur(6px);
}
.site-topbar.elementor-sticky--effects .elementor-widget-theme-site-logo img {
	transform: scale(.86);
	transition: transform var(--dur) var(--ease);
}
.site-topbar .elementor-widget-theme-site-logo img { transition: transform var(--dur) var(--ease); }

/* --------------------------------------------------------- доступность */

/* Если человек попросил систему уменьшить движение — не двигаем ничего. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	.reveal,
	.reveal-up,
	.reveal-scale { opacity: 1 !important; transform: none !important; }
	.hover-lift:hover { transform: none; }
	.hover-zoom:hover img { transform: none; }
}

/* Видимый фокус с клавиатуры — обязателен, на сайте есть версия для слабовидящих */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.elementor-button:focus-visible {
	outline: 3px solid var(--c-blue-600);
	outline-offset: 2px;
	border-radius: var(--r-xs);
}

/* ------------------------------ слайдеры ------------------------------
   Скругление задаётся одной переменной. Чтобы поменять для конкретного
   слайдера — впишите ему в «Дополнительно → CSS» свой --slider-radius,
   либо навесьте класс u-r-md / u-r-lg / u-r-xl.
   ---------------------------------------------------------------------- */

:root { --slider-radius: var(--r-lg, 28px); }

.elementor-widget-slides .elementor-slides-wrapper,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-container,
.elementor-widget-image-carousel .swiper,
.elementor-widget-image-carousel .swiper-container,
.elementor-widget-media-carousel .swiper,
.elementor-widget-media-carousel .swiper-container,
.elementor-widget-testimonial-carousel .swiper,
.elementor-widget-testimonial-carousel .swiper-container {
	border-radius: var(--slider-radius);
	overflow: hidden;
}

/* Внутренние элементы слайдера не трогаем: внешний контейнер с overflow: hidden
   обрезает содержимое сам, а лишние правила ломают позиционирование Swiper. */

.elementor-widget-image-carousel .swiper-slide img,
.elementor-widget-media-carousel .swiper-slide,
.elementor-widget-media-carousel .elementor-carousel-image {
	border-radius: var(--slider-radius);
	overflow: hidden;
}

/* Точки листания — компактнее и в фирменном цвете */
.elementor-widget-slides .swiper-pagination-bullet { border-radius: var(--r-pill, 9999px); }

/* Стрелки — круглые, с мягкой тенью */
.elementor-widget-slides .elementor-swiper-button,
.elementor-widget-image-carousel .elementor-swiper-button,
.elementor-widget-media-carousel .elementor-swiper-button {
	border-radius: var(--r-pill, 9999px);
	transition: transform var(--dur, .28s) var(--ease, ease), box-shadow var(--dur, .28s) var(--ease, ease);
}

.elementor-widget-slides .elementor-swiper-button:hover,
.elementor-widget-image-carousel .elementor-swiper-button:hover,
.elementor-widget-media-carousel .elementor-swiper-button:hover {
	transform: scale(1.08);
	box-shadow: var(--shadow-card, 0 4px 24px rgba(0, 47, 157, .08));
}

@media (max-width: 767px) {
	:root { --slider-radius: var(--r-md, 20px); }
}

@media (prefers-reduced-motion: reduce) {
	.elementor-swiper-button { transition: none !important; }
	.elementor-swiper-button:hover { transform: none; }
}

/* ----------------------------- заголовки секций -----------------------------
   Под заголовком появляется градиентный акцент. Выравнивание подхватывается
   автоматически: скрипт читает фактический text-align и ставит класс.
   Отключить у конкретного заголовка — класс h-plain.
   ---------------------------------------------------------------------------- */

.elementor-widget-heading h2.elementor-heading-title {
	position: relative;
	padding-bottom: 0;
}

.elementor-widget-heading:not(.h-plain) h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 62px;
	height: 4px;
	margin-top: 14px;
	margin-inline: 0 auto;
	border-radius: var(--r-pill, 9999px);
	background: linear-gradient(90deg, var(--c-blue-600, #1456ff), var(--c-blue-400, #1284e7));
	transform-origin: left center;
	animation: fcrv-bar-in var(--dur-slow, .5s) var(--ease, ease) both;
}

.elementor-widget-heading.h-center:not(.h-plain) h2.elementor-heading-title::after {
	margin-inline: auto;
	transform-origin: center;
}

.elementor-widget-heading.h-right:not(.h-plain) h2.elementor-heading-title::after {
	margin-inline: auto 0;
	transform-origin: right center;
}

@keyframes fcrv-bar-in {
	from { transform: scaleX(0); opacity: 0; }
	to   { transform: scaleX(1); opacity: 1; }
}

/* Заголовок с градиентной заливкой текста — класс h-gradient */
.h-gradient h2.elementor-heading-title,
.h-gradient h1.elementor-heading-title,
h2.h-gradient {
	background: linear-gradient(100deg, var(--c-blue-900, #002f9d) 0%, var(--c-blue-600, #1456ff) 55%, var(--c-blue-400, #1284e7) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

/* Надзаголовок: маленькая подпись над основным — класс h-eyebrow у виджета */
.h-eyebrow .elementor-heading-title {
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-blue-600, #1456ff);
}
.h-eyebrow .elementor-heading-title::after { display: none; }

@media (prefers-reduced-motion: reduce) {
	.elementor-widget-heading h2.elementor-heading-title::after { animation: none; }
}

/* --------------------------- секция «возможности» ---------------------------
   Класс fcrv-features ставится скриптом на контейнер, где три и более
   виджета icon-box. Вёрстку Elementor не трогаем — только добавляем движение.
   ---------------------------------------------------------------------------- */

.fcrv-features .elementor-widget-icon-box {
	border-radius: var(--r-md, 20px);
	opacity: 0;
	transform: translateY(26px);
	transition:
		opacity    var(--dur-slow, .5s) var(--ease, ease),
		transform  var(--dur, .28s)     var(--ease, ease),
		box-shadow var(--dur, .28s)     var(--ease, ease);
	will-change: opacity, transform;
}

.fcrv-features .elementor-widget-icon-box.is-in { opacity: 1; transform: none; }

/* Ступенчатое появление соседних карточек */
.fcrv-features .elementor-widget-icon-box.d1 { transition-delay: 0s; }
.fcrv-features .elementor-widget-icon-box.d2 { transition-delay: .08s; }
.fcrv-features .elementor-widget-icon-box.d3 { transition-delay: .16s; }
.fcrv-features .elementor-widget-icon-box.d4 { transition-delay: .24s; }
.fcrv-features .elementor-widget-icon-box.d5 { transition-delay: .32s; }
.fcrv-features .elementor-widget-icon-box.d6 { transition-delay: .40s; }

.fcrv-features .elementor-widget-icon-box:hover {
	transform: translateY(-7px);
	box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
}

/* --------------------------------- иконка --------------------------------- */

.fcrv-features .elementor-icon {
	position: relative;
	z-index: 1;
	transition: transform var(--dur, .28s) var(--ease, ease), filter var(--dur, .28s) var(--ease, ease);
}

.fcrv-features .elementor-widget-icon-box:hover .elementor-icon {
	transform: translateY(-4px) scale(1.07);
	filter: drop-shadow(0 6px 14px rgba(255, 255, 255, .18));
}

/* Вращающаяся дуга вокруг иконки: маска оставляет от круга только тонкое кольцо */
.fcrv-features .elementor-icon::after {
	content: "";
	position: absolute;
	inset: -7px;
	border-radius: 50%;
	background: conic-gradient(from 0deg, transparent 0 58%, currentColor 76%, transparent 92%);
	opacity: 0;
	transition: opacity var(--dur, .28s) var(--ease, ease);
	animation: fcrv-ring-spin 3.4s linear infinite;
	animation-play-state: paused;
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
	pointer-events: none;
}

.fcrv-features .elementor-widget-icon-box:hover .elementor-icon::after {
	opacity: .95;
	animation-play-state: running;
}

@keyframes fcrv-ring-spin { to { transform: rotate(360deg); } }

/* Мягкая пульсация подложки под иконкой */
.fcrv-features .elementor-icon::before {
	content: "";
	position: absolute;
	inset: -2px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0;
	transform: scale(.7);
	transition: opacity var(--dur, .28s) var(--ease, ease), transform var(--dur-slow, .5s) var(--ease, ease);
	pointer-events: none;
}

.fcrv-features .elementor-widget-icon-box:hover .elementor-icon::before {
	opacity: .12;
	transform: scale(1.25);
}

@media (prefers-reduced-motion: reduce) {
	.fcrv-features .elementor-widget-icon-box {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.fcrv-features .elementor-icon,
	.fcrv-features .elementor-icon::after,
	.fcrv-features .elementor-icon::before { transition: none !important; animation: none !important; }
	.fcrv-features .elementor-widget-icon-box:hover,
	.fcrv-features .elementor-widget-icon-box:hover .elementor-icon { transform: none; }
}

/* ------------------- «возможности»: нумерация и наклон ------------------- */

.fcrv-features { counter-reset: fcrv-feat; }

.fcrv-features .elementor-widget-icon-box {
	position: relative;
	transform:
		translateY(var(--ty, 26px))
		perspective(800px)
		rotateX(var(--rx, 0deg))
		rotateY(var(--ry, 0deg));
	transform-style: preserve-3d;
}

.fcrv-features .elementor-widget-icon-box.is-in { --ty: 0px; }
.fcrv-features .elementor-widget-icon-box:hover { --ty: -7px; transform-origin: center; }

/* Порядковый номер в углу карточки */
.fcrv-features .elementor-widget-icon-box::before {
	counter-increment: fcrv-feat;
	content: counter(fcrv-feat, decimal-leading-zero);
	position: absolute;
	top: 14px;
	right: 18px;
	z-index: 2;
	font-family: Montserrat, inherit;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .06em;
	color: currentColor;
	opacity: .22;
	pointer-events: none;
	transition: opacity var(--dur, .28s) var(--ease, ease), transform var(--dur, .28s) var(--ease, ease);
}

.fcrv-features .elementor-widget-icon-box:hover::before {
	opacity: .6;
	transform: translateY(-2px);
}

/* Диагональный блик, пробегающий по карточке при наведении */
.fcrv-features .elementor-widget-icon-box::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .10) 50%, transparent 65%);
	background-size: 280% 100%;
	background-position: 120% 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--dur, .28s) var(--ease, ease), background-position 1.1s var(--ease, ease);
}

.fcrv-features .elementor-widget-icon-box:hover::after {
	opacity: 1;
	background-position: -20% 0;
}

@media (prefers-reduced-motion: reduce) {
	.fcrv-features .elementor-widget-icon-box {
		transform: none !important;
	}
	.fcrv-features .elementor-widget-icon-box::after { display: none; }
}

/* --------------- ширина контента на штатном шаблоне темы ---------------
   hello-elementor не ограничивает .site-main, поэтому страницы вроде
   «Документов» растягивались во всю ширину экрана. Выравниваем по шапке
   и меню — те же 1390 px.

   Страницы, собранные в Elementor (включая главную), идут по шаблону
   elementor_header_footer и .site-main не выводят — их это не касается.
   ---------------------------------------------------------------------- */

.site-main {
	max-width: var(--content-max, 1390px);
	margin-inline: auto;
	padding: 28px var(--gutter, 24px) 64px;
}

.site-main .page-header { margin-bottom: 20px; }

.site-main .entry-title {
	margin: 0;
	font-family: Montserrat, Commissioner, sans-serif;
	font-weight: 700;
	line-height: 1.2;
}

@media (max-width: 680px) {
	.site-main { padding: 20px var(--gutter, 24px) 48px; }
}

/* --------------------- заголовок страницы в одну линию ---------------------
   hello-elementor держит .page-header .entry-title в собственной колонке
   шириной 1140 px и центрирует её. Контент при этом идёт по нашим 1390 px,
   из-за чего заголовок оказывался сдвинут внутрь на ~125 px и выглядел
   оторванным от страницы. Снимаем чужое ограничение и подтягиваем отступ.
   -------------------------------------------------------------------------- */

body .site-main {
	max-width: var(--content-max, 1390px);
}

.site-main .page-header {
	margin: 0 0 18px;
	padding: 0;
}

.site-main .page-header .entry-title {
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	font-size: clamp(26px, 3vw, 38px);
}

/* ------------------ типографика страниц на шаблоне темы ------------------
   Страницы вроде «Графика обучения» и «Инструкции» — обычный контент из
   редактора, и тема не оформляет его никак: голый текст, неотличимые ссылки,
   картинки без скруглений. Приводим к виду текстов программ и новостей.

   Везде стоит защита :not(.fcrv-docs *) — внутри .page-content может жить
   библиотека документов, у неё своя вёрстка: там тоже есть списки и ссылки
   на PDF, и общая типографика их ломала (синие маркеры у строк, плашка
   поверх строки файла).
   ------------------------------------------------------------------------ */

.site-main .page-content {
	font-size: 16px;
	line-height: 1.65;
	color: #1F2933;
}

.site-main .page-content > *:first-child { margin-top: 0; }
.site-main .page-content > *:last-child  { margin-bottom: 0; }

.site-main .page-content p:not(.fcrv-docs *) { margin: 0 0 16px; }

.site-main .page-content :is(h2, h3, h4):not(.fcrv-docs *) {
	margin: 28px 0 14px;
	font-family: Montserrat, Commissioner, sans-serif;
	font-weight: 700;
	line-height: 1.3;
	color: #111318;
}

.site-main .page-content h2:not(.fcrv-docs *) { font-size: 24px; }
.site-main .page-content h3:not(.fcrv-docs *) { font-size: 19px; }
.site-main .page-content h4:not(.fcrv-docs *) { font-size: 17px; }

.site-main .page-content a:not(.fcrv-docs *) {
	color: var(--c-blue-600, #1456ff);
	text-underline-offset: 2px;
}

/* ------------------------------- списки ------------------------------- */

.site-main .page-content ul:not(.fcrv-docs *) { margin: 0 0 16px; padding: 0; list-style: none; }

.site-main .page-content ul li:not(.fcrv-docs *) {
	position: relative;
	margin: 0 0 8px;
	padding-left: 26px;
}

.site-main .page-content ul li:not(.fcrv-docs *)::before {
	content: "";
	position: absolute;
	top: .62em;
	left: 6px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--c-blue-400, #1284e7);
}

/* ------------------------------ картинки ------------------------------ */

.site-main .page-content img:not(.fcrv-docs *) {
	max-width: 100%;
	height: auto;
	border-radius: var(--r-sm, 12px);
}

.site-main .page-content img.aligncenter:not(.fcrv-docs *) {
	display: block;
	margin-inline: auto;
}

/* ---------------------------- ссылки на файлы ----------------------------
   В контенте ссылка на PDF продублирована: сначала картинка-иконка, потом
   текст. Текстовую оформляем плашкой, дубль с иконкой убираем.
   ------------------------------------------------------------------------ */

.site-main .page-content :is(a[href$=".pdf"], a[data-fcrv-doc="pdf"]):not(.fcrv-docs *):not([data-fcrv-dl]):not(.fcrv-single__fmain) {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 8px 8px 0;
	padding: 11px 16px 11px 14px;
	border: 1.5px solid #E3ECF7;
	border-radius: var(--r-xs, 8px);
	background: #fff;
	color: #1F2933;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--dur-fast, .16s) var(--ease, ease),
	            box-shadow var(--dur-fast, .16s) var(--ease, ease);
}

.site-main .page-content :is(a[href$=".pdf"], a[data-fcrv-doc="pdf"]):not(.fcrv-docs *):not([data-fcrv-dl]):not(.fcrv-single__fmain)::before {
	content: "";
	flex: none;
	width: 18px;
	height: 22px;
	background: var(--c-coral, #fd6464);
	clip-path: polygon(0 0, 68% 0, 100% 30%, 100% 100%, 0 100%);
}

.site-main .page-content :is(a[href$=".pdf"], a[data-fcrv-doc="pdf"]):not(.fcrv-docs *):not([data-fcrv-dl]):not(.fcrv-single__fmain):hover {
	border-color: var(--c-blue-400, #1284e7);
	box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 47, 157, .06));
}

.site-main .page-content :is(a[href$=".pdf"], a[data-fcrv-doc="pdf"]):not(.fcrv-docs *):not([data-fcrv-dl]):not(.fcrv-single__fmain) strong { font-weight: 600; }

.site-main .page-content :is(a[href$=".pdf"], a[data-fcrv-doc="pdf"]):not(.fcrv-docs *):not([data-fcrv-dl]):not(.fcrv-single__fmain):has(> img) { display: none; }

/* ==========================================================================
   Фирменная шапка страницы и синяя лента — общие для внутренних страниц.

   Тот же приём, что в слайдере на главной: синяя секция с волнами сверху
   и снизу, фотография под синей вуалью, белый заголовок, плашка-кикер и
   кнопки-пилюли. Классы fcrv-ink / fcrv-wave-* / fcrv-wave-pad — из waves.css.

   Фотография лежит на слое -2: волны рисуются на -1 и накрывают её края,
   иначе снимок торчал бы из-под гребня.
   ========================================================================== */

.fcrv-phero,
.fcrv-band {
	position: relative;
	overflow: hidden;
	font-family: Montserrat, Commissioner, sans-serif;
	color: #fff;
}

/* Без класса fcrv-ink у баннера нет своей заливки — подкладываем тёмный
   тон на случай, когда фотография не задана или ещё не загрузилась.

   isolation обязателен: фотография лежит на слое -2, и без своего
   контекста наложения она уходит за фон самой секции — снимок пропадал,
   оставалась одна заливка. Раньше контекст приходил с классами волн. */
.fcrv-phero {
	background-color: #0b1836;
	isolation: isolate;
}

.fcrv-phero__bg,
.fcrv-band__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
}

/* Вуаль: слева почти сплошной синий — там текст, справа снимок виден. */
/* Затемнение, а не синяя заливка: фотография должна читаться, а белый
   текст поверх неё — оставаться разборчивым. Те же значения, что у
   слайдера на главной, чтобы баннеры выглядели одинаково. */
.fcrv-phero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg,
			rgba(0, 12, 46, .74) 0%,
			rgba(0, 12, 46, .6) 42%,
			rgba(0, 12, 46, .16) 100%),
		linear-gradient(0deg, rgba(0, 12, 46, .38) 0%, transparent 45%);
}

.fcrv-band__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg,
		rgba(0, 47, 157, .96) 0%,
		rgba(0, 47, 157, .84) 42%,
		rgba(0, 47, 157, .42) 100%);
}

.fcrv-band__bg::after {
	background: linear-gradient(180deg, rgba(0, 47, 157, .88) 0%, rgba(0, 47, 157, .8) 100%);
}

/* Лента остаётся в колонке содержимого, шапка — во всю ширину:
   так просили, чтобы верхний блок не выглядел вставленным в рамку. */
.fcrv-band__in {
	position: relative;
	max-width: var(--content-max, 1390px);
	margin-inline: auto;
	padding: 22px var(--gutter, 24px) 30px;
}

/* Фотография во всю ширину, содержимое — в колонке сайта, вровень
   с блоками ниже. */
.fcrv-phero__in {
	position: relative;
	max-width: var(--content-max, 1390px);
	margin-inline: auto;
	padding: 40px var(--gutter, 24px) 44px;
}

/* Текст слева, действия и цифры справа отдельной плашкой. */
.fcrv-phero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 560px);
	gap: 32px 48px;
	align-items: end;
	margin-top: 4px;
}

.fcrv-phero__aside {
	padding: 24px 22px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--r-lg, 28px);
	background: rgba(6, 26, 92, .34);
	backdrop-filter: blur(8px);
}
.fcrv-phero__aside .fcrv-phero__facts { margin-top: 18px; }
.fcrv-phero__aside .fcrv-phero__fact { flex: 1 1 140px; }

.fcrv-phero__crumbs {
	margin-bottom: 20px;
	font-size: 13.5px;
	color: rgba(255, 255, 255, .7);
}
.fcrv-phero .fcrv-phero__crumbs a { color: #fff; text-decoration: none !important; }
.fcrv-phero .fcrv-phero__crumbs a:hover { text-decoration: underline !important; }
.fcrv-phero__crumbs span { margin-inline: 8px; }
.fcrv-phero__crumbs span:last-child { margin-left: 0; }

.fcrv-phero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
	padding: 7px 16px 7px 13px;
	border-radius: var(--r-pill, 9999px);
	background: rgba(255, 255, 255, .13);
	backdrop-filter: blur(6px);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: uppercase;
}

.fcrv-phero__kicker::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--c-coral, #fd6464);
	box-shadow: 0 0 0 4px rgba(253, 100, 100, .28);
}

.fcrv-phero .fcrv-phero__title,
.fcrv-band .fcrv-band__title {
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -.01em;
	text-wrap: balance;
}
.fcrv-band .fcrv-band__title { font-size: clamp(24px, 2.6vw, 36px); }

/* Полоса-акцент тем под h2 здесь не нужна: заголовок белый на синем. */
.fcrv-phero .fcrv-phero__title::after,
.fcrv-band .fcrv-band__title::after { content: none; }

.fcrv-phero__lead,
.fcrv-band__text {
	max-width: 700px;
	margin: 0 0 26px;
	color: rgba(255, 255, 255, .88);
	font-size: clamp(15px, 1.2vw, 17.5px);
	line-height: 1.62;
}

.fcrv-phero__acts { display: flex; flex-wrap: wrap; gap: 12px; }

/* Ряд, где рядом с кнопкой стоит плашка-надзаголовок: выравниваем их по
   центру и снимаем у плашки нижний отступ, иначе она «висит» выше кнопки. */
/* Строка «плашка + кнопка»: плашка слева, кнопка прижата к правому краю. */
.fcrv-phero__acts--lead {
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.fcrv-phero__acts--lead .fcrv-phero__kicker { margin-bottom: 0; }

/* Плашка под кнопку: та же форма, рамка, подложка и кегль, что у
   призрачной кнопки, — отличает только акцентная точка. */
.fcrv-phero .fcrv-phero__kicker--btn {
	/* Кегль на единицу мельче кнопки, а вертикальные поля подобраны так,
	   чтобы высота совпала с ней ровно: иначе строка не влезала в карточку
	   и кнопка сваливалась под плашку. */
	padding: 13.5px 18px 13.5px 15px;
	border: 2px solid rgba(255, 255, 255, .55);
	background: rgba(255, 255, 255, .1);
	backdrop-filter: blur(4px);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
}

/* Два класса в селекторе: правила набора Elementor (.elementor-kit-133 a)
   имеют вес (0,1,1) и перебивали бы одноклассовые. */
.fcrv-phero .fcrv-phero__btn,
.fcrv-band .fcrv-phero__btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 26px;
	border: 2px solid transparent;
	border-radius: var(--r-pill, 9999px);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
	text-decoration: none !important;
	transition: transform var(--dur, .28s) var(--ease, ease),
	            box-shadow var(--dur, .28s) var(--ease, ease),
	            background var(--dur, .28s) var(--ease, ease),
	            color var(--dur, .28s) var(--ease, ease);
}
.fcrv-phero__btn svg { flex: none; transition: transform var(--dur, .28s) var(--ease, ease); }
.fcrv-phero__btn:hover svg { transform: translateX(4px); }

.fcrv-phero .fcrv-phero__btn--primary,
.fcrv-band .fcrv-phero__btn--primary {
	background: linear-gradient(100deg, var(--c-blue-600, #1456ff), var(--c-blue-400, #1284e7));
	box-shadow: 0 10px 26px rgba(20, 86, 255, .38);
}
.fcrv-phero .fcrv-phero__btn--primary:hover,
.fcrv-band .fcrv-phero__btn--primary:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 16px 34px rgba(20, 86, 255, .48); }

.fcrv-phero .fcrv-phero__btn--ghost,
.fcrv-band .fcrv-phero__btn--ghost {
	border-color: rgba(255, 255, 255, .55);
	background: rgba(255, 255, 255, .1);
	backdrop-filter: blur(4px);
}
.fcrv-phero .fcrv-phero__btn--ghost:hover,
.fcrv-band .fcrv-phero__btn--ghost:hover { color: #fff; background: rgba(255, 255, 255, .2); transform: translateY(-3px); }

.fcrv-phero .fcrv-phero__btn--white,
.fcrv-band .fcrv-phero__btn--white {
	background: #fff;
	color: var(--c-blue-900, #002f9d);
	box-shadow: 0 10px 26px rgba(0, 20, 80, .28);
}
.fcrv-phero .fcrv-phero__btn--white:hover,
.fcrv-band .fcrv-phero__btn--white:hover { color: var(--c-blue-600, #1456ff); transform: translateY(-3px); }

/* Плашки с цифрами: стекло поверх фотографии, как на слайде главной. */
.fcrv-phero__facts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.fcrv-phero__fact {
	min-width: 132px;
	padding: 13px 20px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: var(--r-md, 20px);
	background: rgba(255, 255, 255, .12);
	backdrop-filter: blur(7px);
}
.fcrv-phero__fact b {
	display: block;
	font-size: clamp(20px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.01em;
}
.fcrv-phero__fact span {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	line-height: 1.35;
	color: rgba(255, 255, 255, .85);
}

/* Лента: то же, но по центру и с отступом от подвала — у него своя волна,
   и две волны встык читались бы как ошибка. */
.fcrv-band { margin-top: 24px; margin-bottom: 28px; text-align: center; }
.fcrv-band__in { padding-top: 10px; padding-bottom: 18px; }
.fcrv-band__in .fcrv-phero__acts { justify-content: center; }
.fcrv-band__text { margin-inline: auto; }
.fcrv-band__in--wide { text-align: left; }
.fcrv-band__in--wide .fcrv-phero__acts { justify-content: flex-start; }
.fcrv-band__in--wide .fcrv-band__text { margin-inline: 0; }

/* --------------------------- заголовок секции ---------------------------
   Тот же вид, что у заголовков на главной: капитель, Montserrat и
   градиентная полоса под ним. Для шаблонов без Elementor.                  */
.fcrv-sec-h {
	position: relative;
	margin: 0 0 26px;
	font-family: Montserrat, Commissioner, sans-serif;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: .5px;
	line-height: 1.2;
	text-transform: uppercase;
	color: #292937;
}
.fcrv-sec-h::after {
	content: "";
	display: block;
	width: 62px;
	height: 4px;
	margin-top: 14px;
	border-radius: var(--r-pill, 9999px);
	background: linear-gradient(90deg, var(--c-blue-600, #1456ff), var(--c-blue-400, #1284e7));
}

@media (max-width: 1100px) {
	.fcrv-phero__grid { grid-template-columns: 1fr; gap: 24px; align-items: start; }
	.fcrv-phero__aside { padding: 20px; }
}

@media (max-width: 767px) {
	.fcrv-phero__in, .fcrv-band__in { padding-top: 22px; padding-bottom: 26px; }
	.fcrv-phero__aside { padding: 16px 18px; border-radius: var(--r-md, 20px); }
	.fcrv-phero__crumbs { margin-bottom: 14px; }
	.fcrv-phero__facts { gap: 8px; margin-top: 20px; }
	.fcrv-phero__fact { min-width: 0; flex: 1 1 40%; padding: 11px 14px; }
	.fcrv-phero .fcrv-phero__btn, .fcrv-band .fcrv-phero__btn { padding: 12px 20px; font-size: 14px; }
	.fcrv-sec-h { font-size: 20px; margin-bottom: 20px; }
	.fcrv-phero__bg::after { background: linear-gradient(180deg, rgba(0,47,157,.94) 0%, rgba(0,47,157,.86) 100%); }
}

@media (prefers-reduced-motion: reduce) {
	.fcrv-phero__btn, .fcrv-phero__btn svg { transition: none !important; }
	.fcrv-phero__btn:hover { transform: none; }
}

/* Логотип в шапке (элемент 975e5de шаблона 2656) — крупнее по высоте.
   Ширина по пропорциям картинки, а не 43% колонки: иначе при росте высоты
   логотип сплющивало. Ниже 1280px меню и так впритык — там размер прежний. */
@media (min-width: 1280px) {
	/* По левому краю контента: картинка стояла по центру блока, а у шапки
	   поле 10px против 20px у секций — добираем разницу на узких экранах. */
	.elementor-2656 .elementor-element.elementor-element-975e5de { width: auto; max-width: none; --container-widget-width: auto; flex: 0 0 auto;
		text-align: left; margin-left: max(0px, calc(20px - max(10px, (100vw - 1390px) / 2))); }
	.elementor-2656 .elementor-element.elementor-element-975e5de img { width: auto; max-width: none; height: clamp(60px, 4.7vw, 72px); }
}

/* «Контакты»: подписи групп карточек — ФЦРВ СПО и ВДЦ «Смена». */
.elementor .fcrv-ct-org .elementor-heading-title { margin: 6px 0 -4px; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4; color: rgba(255, 255, 255, .78); }
.elementor .fcrv-ct-org + .e-con { margin-top: 0; }

/* ======================= Реестр региональных операторов (/ro-reestr/) =======================
   Разметка — HTML-виджет страницы 1919, стили здесь.
   Шапка сайта закреплена (91px), поэтому поиск и заголовки колонок прилипают под неё. */
.reestr-wrap { --reestr-header: 90px; --rs-h: 76px; --rs-bd: #E3ECF7; font-family: inherit; }
@media (max-width: 1024px) { .reestr-wrap { --reestr-header: 86px; } }

.elementor .reestr-wrap .reestr-search {
	margin: 0 0 14px; padding: 14px 16px; border-radius: 0 0 18px 18px;
	background: color-mix(in srgb, var(--reestr-bg, #F7F8F9) 92%, transparent);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.elementor .reestr-wrap .reestr-search__field::before {
	content: ""; position: absolute; left: 18px; top: 50%; width: 18px; height: 18px; margin-top: -9px; pointer-events: none;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231456ff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.8-3.8'/%3E%3C/svg%3E");
}
.elementor .reestr-wrap .reestr-search__input {
	height: 50px !important; padding: 12px 20px 12px 48px !important; border: 1.5px solid #DCE7FB !important; border-radius: 999px !important;
	background: #fff !important; font-size: 15.5px !important; box-shadow: 0 8px 24px rgba(9, 20, 60, .06) !important;
}
.elementor .reestr-wrap .reestr-search__input:focus { border-color: var(--c-blue-600, #1456ff) !important; box-shadow: 0 0 0 4px rgba(20, 86, 255, .12) !important; }
.elementor .reestr-wrap .reestr-search__count { padding: 8px 14px; border-radius: 999px; background: #EEF3FF; color: var(--c-blue-900, #002f9d); font-size: 13.5px; font-weight: 600; }

@media (min-width: 769px) {
	.elementor .reestr-wrap .reestr-table {
		border-collapse: separate; border-spacing: 0; background: #fff;
		border: 1px solid var(--rs-bd); border-radius: 20px; box-shadow: 0 14px 40px rgba(9, 20, 60, .06);
	}
	.elementor .reestr-wrap .reestr-table th, .elementor .reestr-wrap .reestr-table td {
		padding: 14px 16px; border: 0; border-bottom: 1px solid var(--rs-bd); font-size: 14px; line-height: 1.5;
	}
	.elementor .reestr-wrap .reestr-table thead th {
		top: calc(var(--reestr-header) + var(--rs-h)); background: var(--c-blue-900, #002f9d); color: #fff;
		font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-bottom: 0;
	}
	.elementor .reestr-wrap .reestr-table thead th:first-child { border-top-left-radius: 19px; }
	.elementor .reestr-wrap .reestr-table thead th:last-child { border-top-right-radius: 19px; }
	.elementor .reestr-wrap .reestr-table tbody tr:last-child td { border-bottom: 0; }
	.elementor .reestr-wrap .reestr-table tbody tr:last-child td:first-child { border-bottom-left-radius: 19px; }
	.elementor .reestr-wrap .reestr-table tbody tr:last-child td:last-child { border-bottom-right-radius: 19px; }
	.elementor .reestr-wrap .reestr-table tbody tr:nth-child(even) td { background: #F8FAFE; }
	.elementor .reestr-wrap .reestr-table tbody tr:nth-child(odd) td { background: #fff; }
	.elementor .reestr-wrap .reestr-table tbody tr:hover td { background: #EEF3FF; }
	.elementor .reestr-wrap .reestr-table td:nth-child(1) { color: #8b95ab; font-weight: 700; }
	.elementor .reestr-wrap .reestr-table td:nth-child(2) { font-weight: 700; color: var(--c-blue-900, #002f9d); text-align: left; }
	.elementor .reestr-wrap .reestr-table td:nth-child(3) { color: #3d4665; }
	.elementor .reestr-wrap .reestr-table td:nth-child(4) { color: #1F2933; }
	.elementor .reestr-wrap .reestr-table a { color: var(--c-blue-600, #1456ff); font-weight: 600; }
}
@media (max-width: 768px) {
	.elementor .reestr-wrap .reestr-table tr { border-color: var(--rs-bd); border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(9, 20, 60, .06); }
	.elementor .reestr-wrap .reestr-table tr::before { background: linear-gradient(180deg, var(--c-blue-900, #002f9d), var(--c-blue-600, #1456ff)); }
	.elementor .reestr-wrap .reestr-table tr td:first-child { background: #EEF3FF; color: var(--c-blue-900, #002f9d); }
	.elementor .reestr-wrap .reestr-table tr td:nth-child(2) { color: var(--c-blue-900, #002f9d); }
	.elementor .reestr-wrap .reestr-search__input { font-size: 15px !important; }
}
@media (min-width: 769px) { .elementor .reestr-wrap .reestr-table th:nth-child(1), .elementor .reestr-wrap .reestr-table td:nth-child(1) { width: 5.5%; padding-left: 10px; padding-right: 10px; } .elementor .reestr-wrap .reestr-table th:nth-child(3), .elementor .reestr-wrap .reestr-table td:nth-child(3) { width: 38.5%; } }
@media (max-width: 768px) { .elementor .reestr-wrap .reestr-table tbody tr td, .elementor .reestr-wrap .reestr-table tbody tr:nth-child(odd) td, .elementor .reestr-wrap .reestr-table tbody tr:nth-child(even) td { background: transparent !important; } .elementor .reestr-wrap .reestr-table tr td:first-child { background: #EEF3FF !important; } }
@media (min-width: 769px) and (max-width: 1199px) { .elementor .reestr-wrap .reestr-table th, .elementor .reestr-wrap .reestr-table td { padding: 10px 8px; font-size: 12.5px; } .elementor .reestr-wrap .reestr-table thead th { font-size: 10.5px; letter-spacing: .02em; } .elementor .reestr-wrap .reestr-table td:nth-child(2) { overflow-wrap: normal; hyphens: auto; } .elementor .reestr-wrap .reestr-table th:nth-child(2), .elementor .reestr-wrap .reestr-table td:nth-child(2) { width: 15%; } .elementor .reestr-wrap .reestr-table th:nth-child(3), .elementor .reestr-wrap .reestr-table td:nth-child(3) { width: 34%; } .elementor .reestr-wrap .reestr-table th:nth-child(5), .elementor .reestr-wrap .reestr-table td:nth-child(5) { width: 15.5%; } .elementor .reestr-wrap .reestr-table th:nth-child(6), .elementor .reestr-wrap .reestr-table td:nth-child(6) { width: 15%; } }
