/*
Theme Name: mbkb
Theme URI: https://mbkb.ru/
Author: МБКБ
Description: Тема сайта Международного Кремлёвского Кадетского Бала. Направление «Бальный зал». Без конструктора, один CSS, один маленький JS.
Version: 0.4.58
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mbkb
*/

/* ---------- Шрифты: El Messiri (заголовки), Raleway (текст), Manrope (цифры) ---------- */
@font-face { font-family: "El Messiri"; src: url("assets/fonts/ElMessiri-VF.ttf") format("truetype"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Raleway"; src: url("assets/fonts/Raleway-VF.ttf") format("truetype"); font-weight: 100 900; font-display: swap; }
/* Только цифры и %: в Raleway «старые» цифры разной высоты */
@font-face { font-family: "Manrope Digits"; src: url("assets/fonts/Manrope-VF.ttf") format("truetype"); font-weight: 200 800; font-display: swap; unicode-range: U+0030-0039, U+0025; }

@layer tokens, base, layout, components, sections;

/* =========================================================
   ТОКЕНЫ. Уровни: primitive (сырые значения) → semantic (роль) → component.
   Палитра задана заказчиком (цвета приложения МБКБ), поэтому в HEX.
   Компоненты используют только semantic-токены.
   ========================================================= */
@layer tokens {
	:root {
		/* primitive */
		--p-burgundy: #6E0F26;
		--p-burgundy-deep: #4F0A1B;
		--p-burgundy-night: #2A0510;
		--p-gold: #D4A12A;
		--p-gold-hover: #C99522;
		--p-cream: #F7F3EC;
		--p-paper: #FBF8F3;                  /* фон светлых разделов: светлее cream (17.10.2026) */
		--p-white: #FFFFFF;
		--p-brown: #291A14;
		--p-grey: #5F5F5F;
		--p-beige: #D8CFC3;
		--p-field: #9C9185;
		--p-green: #2F7250;
		--p-red: #B42318;

		/* semantic: цвета */
		--c-bg: var(--p-burgundy-night);
		--c-bg-raised: var(--p-burgundy-deep);
		--c-bg-brand: var(--p-burgundy);
		--c-bg-light: var(--p-paper);
		--c-bg-gold: var(--p-gold);
		--c-text: var(--p-cream);            /* текст на тёмном */
		--c-text-soft: #E2D6CC;               /* вторичный на тёмном (≥7:1) */
		--c-text-dark: var(--p-brown);        /* текст на светлом */
		--c-accent: var(--p-gold);            /* акцент на тёмном */
		--c-line: rgba(212, 161, 42, .32);
		--c-focus: var(--p-gold);
		--c-focus-dark: var(--p-brown);
		--c-success: var(--p-green);
		--c-error: var(--p-red);

		--c-heading: var(--p-cream);
		--c-soft: #E2D6CC;

		/* semantic: шрифты */
		--f-head: "El Messiri", Georgia, "Times New Roman", serif;           /* цифры в заголовках остаются El Messiri */
		--f-body: "Manrope Digits", "Raleway", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

		/* fluid-типографика */
		--t-xs: clamp(.75rem, .72rem + .15vw, .8125rem);
		--t-sm: clamp(.875rem, .85rem + .15vw, .9375rem);
		--t-base: clamp(1rem, .96rem + .25vw, 1.125rem);
		--t-lg: clamp(1.125rem, 1.05rem + .45vw, 1.375rem);
		--t-xl: clamp(1.375rem, 1.2rem + .9vw, 1.875rem);
		--t-2xl: clamp(1.75rem, 1.3rem + 2vw, 3rem);
		--t-3xl: clamp(2.25rem, 1.4rem + 4vw, 4.75rem);
		--t-4xl: clamp(2.75rem, 1.2rem + 7vw, 7.5rem);
		--t-mega: clamp(3rem, .5rem + 11vw, 11.5rem);

		/* semantic: отступы */
		--s-1: .5rem;
		--s-2: 1rem;
		--s-3: 1.5rem;
		--s-4: 2rem;
		--s-5: 3rem;
		--s-6: 4.5rem;
		--section: clamp(4rem, 2rem + 8vw, 9.5rem);
		--gutter: clamp(1.25rem, .5rem + 3.4vw, 4rem);
		--wrap: 90rem;

		/* component */
		--btn-h: 3.5rem;
		--btn-h-sm: 2.75rem;
		--radius: 2px;
		--ease: cubic-bezier(.16, 1, .3, 1);
		--dur: .25s;
	}
}

/* ---------- База ---------- */
@layer base {
	*, *::before, *::after { box-sizing: border-box; }
	html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5rem; }
	body { position: relative; margin: 0; background: var(--p-paper); color: var(--c-text); font: 400 var(--t-base)/1.65 var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
	img { display: block; max-width: 100%; height: auto; }
	ul, ol { list-style: none; margin: 0; padding: 0; }
	h1, h2, h3, h4 { font-family: var(--f-head); font-weight: 600; margin: 0; line-height: 1.05; text-wrap: balance; color: var(--c-heading); }
	p { margin: 0 0 1em; text-wrap: pretty; }
	a { color: inherit; text-underline-offset: .2em; }
	:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
	.num { font-variant-numeric: tabular-nums lining-nums; }
	.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	html.menu-open { scroll-behavior: auto; }
	body.menu-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
	.skip-link { position: absolute; left: 12px; top: -80px; z-index: 200; background: var(--p-gold); color: var(--p-brown); padding: .75rem 1.25rem; font-weight: 700; }
	.skip-link:focus { top: 12px; }
	@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; } }
}

/* ---------- Раскладка ---------- */
@layer layout {
	.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
	.section { padding-block: var(--section); position: relative; }
	.section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }
	/* Контекст секции переопределяет роли: компоненты берут цвета только из --c-* */
	.on-light, .on-white { --c-text: var(--p-brown); --c-text-soft: var(--p-grey); --c-accent: var(--p-burgundy); --c-heading: var(--p-burgundy); --c-line: var(--p-beige); --c-focus: var(--p-brown); color: var(--c-text); }
	.on-light { background: var(--p-paper); }
	.on-white { background: var(--p-white); }
	.on-brand { background: var(--p-burgundy); color: var(--c-text); }
	.on-raised { background: var(--p-burgundy-deep); color: var(--c-text); }
}

/* ---------- Компоненты ---------- */
@layer components {
	.eyebrow { font: 700 var(--t-xs)/1.4 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 var(--s-2); }
	.title { font-size: var(--t-3xl); line-height: .98; }
	.title--xl { font-size: var(--t-4xl); line-height: .92; }

	/* кнопки */
	.btn { --btn-bg: transparent; --btn-fg: var(--c-accent); --btn-bd: var(--c-accent); --btn-bg-hover: rgba(212, 161, 42, .14); --btn-fg-hover: var(--c-accent);
		display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: var(--btn-h); padding: 0 2.1rem; border: 1.5px solid var(--btn-bd); border-radius: var(--radius); background: var(--btn-bg); color: var(--btn-fg);
		font: 700 .875rem/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; cursor: pointer; text-align: center; transition: background-color var(--dur), color var(--dur), border-color var(--dur); }
	.btn:hover { background: var(--btn-bg-hover); color: var(--btn-fg-hover); }
	.btn--gold { --btn-bg: var(--p-gold); --btn-fg: var(--p-brown); --btn-bg-hover: var(--p-cream); --btn-fg-hover: var(--p-brown); }
	.btn--dark { --btn-bg: var(--p-brown); --btn-fg: var(--p-gold); --btn-bd: var(--p-brown); --btn-bg-hover: var(--p-burgundy-night); --btn-fg-hover: var(--p-gold); }
	.btn--burgundy { --btn-bg: var(--p-burgundy); --btn-fg: var(--p-white); --btn-bd: var(--p-burgundy); --btn-bg-hover: var(--p-burgundy-deep); --btn-fg-hover: var(--p-white); }
	.btn--outline-dark { --btn-fg: var(--p-brown); --btn-bd: var(--p-brown); --btn-bg-hover: rgba(41, 26, 20, .08); --btn-fg-hover: var(--p-brown); }
	/* Бордовая кнопка: мягкий золотистый блик пробегает при наведении и фокусе */
	.btn--burgundy { position: relative; overflow: hidden; isolation: isolate; }
	.btn--burgundy::after { content: ""; position: absolute; z-index: -1; top: -30%; bottom: -30%; left: 0; width: 70%; opacity: 0; transform: translateX(-45%) skewX(-18deg); background: linear-gradient(100deg, transparent 0%, rgba(212, 161, 42, .08) 30%, rgba(255, 240, 200, .26) 50%, rgba(212, 161, 42, .08) 70%, transparent 100%); transition: opacity .3s ease, transform 0s linear .3s; pointer-events: none; }
	.btn--burgundy:hover::after, .btn--burgundy:focus-visible::after { opacity: 1; transform: translateX(170%) skewX(-18deg); transition: opacity .2s ease, transform 1.6s cubic-bezier(.25, .6, .35, 1); }
	.btn--sm { min-height: var(--btn-h-sm); padding: 0 1.4rem; font-size: .75rem; }
	.btn:disabled { opacity: .5; cursor: not-allowed; }

	/* ссылка со стрелкой */
	.arrow { display: inline-flex; align-items: center; gap: .9em; font-weight: 700; text-decoration: none; color: inherit; }
	/* Единая стрелка сайта: тонкая линия 1,2 px и открытый наконечник (как в мега-меню) */
	.arrow::after { content: ""; flex: none; width: 2.6rem; height: .7rem; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 14' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7h49M44 1.6 50 7l-6 5.4'/%3E%3C/svg%3E") no-repeat center / 100% 100%; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 14' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7h49M44 1.6 50 7l-6 5.4'/%3E%3C/svg%3E") no-repeat center / 100% 100%; transition: transform var(--dur) var(--ease); }
	.arrow:hover::after { transform: translateX(.4rem); }

	/* ---------- Шапка ---------- */
	.site-header { --hdr-h: 5.25rem; position: sticky; top: calc(-1 * var(--strip-h)); height: 0; display: flow-root; z-index: 100; background: transparent; transition: background-color var(--dur), backdrop-filter var(--dur), box-shadow var(--dur); }
	/* Стекло на псевдоэлементе: backdrop-filter на самой шапке ломал бы fixed-меню внутри неё */
	.site-header::before { content: ""; position: absolute; top: var(--strip-h); left: 0; right: 0; height: var(--hdr-h); z-index: -1; background: rgba(247, 243, 236, 0); transition: background-color var(--dur), box-shadow var(--dur), height .35s var(--ease); }
	.menu-open .site-header.site-header::before { background: var(--p-cream); box-shadow: 0 1px 0 var(--p-beige); }
	.site-header.is-solid::before, .is-inner .site-header::before { background: rgba(247, 243, 236, .58); box-shadow: 0 1px 0 rgba(216, 207, 195, .55); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); }
	/* Шапка (sticky) едет вместе со страницей: сначала под полосой ТАСС, при прокрутке прилипает к верху. Высота 0, сама панель сдвинута на высоту полосы, а top отрицательный: так прилипание считает браузер, без JS. */
	.menu-open .site-header.site-header { position: fixed; top: calc(var(--hdr-top, 0px) - var(--strip-h)); left: 0; right: 0; } /* при открытом мобильном меню страница заморожена (body fixed), sticky не работает */
	/* Панель администратора WordPress (видна только вошедшему в админку): шапка прилипает под ней */
	.admin-bar .site-header { top: calc(32px - var(--strip-h)); }
	@media (max-width: 782px) { .admin-bar .site-header { top: calc(46px - var(--strip-h)); } }
	@media (max-width: 600px) { .admin-bar .site-header { top: calc(-1 * var(--strip-h)); } } /* на узких экранах панель не фиксирована и уезжает со страницей */
	.site-header.is-solid { --hdr-h: 3.75rem; } /* при прокрутке шапка плавно становится ниже */
	.site-header__bar { position: absolute; top: var(--strip-h); left: 0; right: 0; display: flex; align-items: center; gap: 0; height: var(--hdr-h); transition: height .35s var(--ease); }
	.brand { display: inline-flex; align-items: center; gap: .7rem; min-height: 3.5rem; font: 600 1.9rem/1 var(--f-head); letter-spacing: .1em; color: var(--p-burgundy); text-decoration: none; flex: none; transition: font-size .35s var(--ease); }
	.is-solid .brand { font-size: 1.6rem; }
	/* Логотип перекрашен в цвет надписи: картинка служит маской, цвет берётся у текста */
	.brand__logo { flex: none; width: 2.9rem; height: 2.9rem; transition: width .35s var(--ease), height .35s var(--ease); background-color: currentColor; -webkit-mask: url("assets/img/logo-mbkb.webp") center / contain no-repeat; mask: url("assets/img/logo-mbkb.webp") center / contain no-repeat; filter: drop-shadow(0 0 .35px currentColor) drop-shadow(0 0 .35px currentColor); }
	.is-solid .brand__logo { width: 2.3rem; height: 2.3rem; }
	.nav { margin-left: auto; }
	.nav__list { display: flex; gap: .25rem; height: var(--hdr-h); transition: height .35s var(--ease); }
	.nav__item { position: relative; display: flex; align-items: center; }
	.nav__link { display: block; padding: .7rem .7rem; font: 500 .9375rem/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--c-text); text-decoration: none; white-space: nowrap; }
	.nav__link:hover, .nav__item:focus-within > .nav__link { color: var(--c-accent); }
	.has-sub > .nav__link { padding-right: .2rem; }
	.nav__toggle { width: 1.1rem; height: 2.75rem; margin-left: -.35rem; border: 0; background: none; color: var(--c-text); cursor: pointer; }
	.nav__toggle::after { content: ""; display: block; width: .45rem; height: .45rem; margin: 0 auto; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform var(--dur); }
	.nav__toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }
	.nav__sub { z-index: 20; /* выше кнопки «Подать заявку», поиска и логотипа в шапке */ display: block; visibility: hidden; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .18s ease, transform .24s var(--ease), visibility 0s linear .24s; position: absolute; left: 0; top: calc(var(--hdr-h) / 2 + 1.35rem); min-width: 19rem; padding: .5rem; background: var(--p-white); border: 1px solid var(--c-line); box-shadow: 0 1.25rem 2.5rem rgba(41, 26, 20, .15); }
	.nav__item.is-open > .nav__sub { visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition: opacity .18s ease, transform .24s var(--ease), visibility 0s; }
	.nav__sub a { display: block; padding: .7rem 1rem; color: var(--c-text); text-decoration: none; font-size: .9375rem; line-height: 1.35; }
	.nav__sep { height: 0; margin: .4rem 1rem; border-top: 1px solid var(--c-line); }
	.nav__note { padding: .7rem 1rem .1rem; color: var(--c-text-soft); font-size: .8125rem; line-height: 1.35; }
	.nav__note + li a { padding-top: .15rem; color: var(--c-accent); font-weight: 600; }
	.nav__sub .nav__bottom a { color: var(--c-accent); font-weight: 600; }
	/* Одинаковое выделение пункта во всех выпадающих меню и в мега-меню: бордовый цвет и подчёркивание, без плашки */
	.nav__sub a:hover, .nav__sub a:focus-visible { background: none; color: var(--c-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
	/* NEW и мега-меню «Бал» */
	/* NEW: бордовый квадратик (#6E0F26, цвет «Кремлёвский Кадетский Бал») с белой надписью */
	.nav__new { display: inline-block; margin-right: .55em; padding: .26em .5em; background: var(--p-burgundy); color: var(--p-white); font: 800 .625rem/1 var(--f-body); letter-spacing: .1em; vertical-align: .32em; border-radius: 0; }
	.nav__mega { position: fixed; left: var(--gutter); right: var(--gutter); top: calc(var(--hdr-h) / 2 + 1.35rem + var(--hdr-top, 0px)); min-width: 0; max-width: 84rem; margin-inline: auto; padding: 0; background: var(--p-white); border: 1px solid var(--c-line); box-shadow: 0 1.25rem 2.5rem rgba(41, 26, 20, .15); display: block; }
	.nav__mega-in { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.75rem 1.5rem; padding: 1.75rem 2rem 2rem; max-height: calc(100svh - 5.5rem - var(--hdr-top, 0px)); overflow-y: auto; overscroll-behavior: contain; }
	.nav__group-title { margin: 0 0 .6rem; font: 700 var(--t-lg)/1.2 var(--f-head); color: var(--c-accent); }
	.nav__group-title a { padding: 0; color: inherit; }
	.nav__group-title a:hover { background: none; text-decoration: underline; }
	.nav__group-title .arrow { display: inline-flex; padding: 0; }
	.nav__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 3.5rem; margin-top: .25rem; padding-top: 1.1rem; border-top: 1px solid var(--c-line); }
	.nav__foot a { display: inline-flex; align-items: center; gap: .8rem; padding: .2rem 0; color: var(--c-accent); font-weight: 600; font-size: .9375rem; }
	.nav__foot a:hover { background: none; color: var(--c-text); text-decoration: none; }
	.nav__mega .nav__group li a { padding: .4rem 0; font-size: .875rem; line-height: 1.35; }
	.nav__mega .nav__group li a:hover { background: none; text-decoration: underline; }
	/* Мостик над панелью: курсор не «вылетает» в зазоре (STATUS.md, раздел 5, правило 2) */
	.nav__sub::before, .nav__mega::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 1.25rem; }
	.nav__close { position: absolute; z-index: 3; right: .6rem; top: .5rem; width: 2.5rem; height: 2.5rem; border: 0; background: none; font-size: 1.75rem; line-height: 1; color: var(--c-text); cursor: pointer; border-radius: 50%; }
	.nav__close:hover { color: var(--c-accent); background: rgba(110, 15, 38, .06); }
	.nav__cta { display: none; }
	.site-header__actions { display: flex; align-items: center; gap: .75rem; flex: none; }
	.live { display: none; font: 700 .75rem var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); text-decoration: none; margin-right: .75rem; }
	.live::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .6rem; border-radius: 50%; background: var(--c-accent); animation: pulse 2s infinite; }
	@keyframes pulse { 50% { opacity: .35; } }
	.icon-btn { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border: 0; background: none; color: var(--c-text); cursor: pointer; border-radius: 50%; }
	.icon-btn:hover { color: var(--c-accent); }
	/* Бургер плавно превращается в крестик */
	.menu-btn__bars { position: relative; display: block; width: 1.5rem; height: 1.1rem; }
	.menu-btn__bars span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform .55s var(--ease), opacity .3s ease, top .55s var(--ease); }
	.menu-btn__bars span:nth-child(1) { top: 0; }
	.menu-btn__bars span:nth-child(2) { top: calc(50% - 1px); }
	.menu-btn__bars span:nth-child(3) { top: calc(100% - 2px); }
	.menu-btn[aria-expanded="true"] .menu-btn__bars span:nth-child(1) { top: calc(50% - 1px); transform: rotate(45deg); }
	.menu-btn[aria-expanded="true"] .menu-btn__bars span:nth-child(2) { opacity: 0; transform: scaleX(.2); }
	.menu-btn[aria-expanded="true"] .menu-btn__bars span:nth-child(3) { top: calc(50% - 1px); transform: rotate(-45deg); }
	.menu-btn { display: none; }
	/* Плотнее строки в выпадающих меню «МБКБ», «Посетителям», «СМИ» (на компьютере; на телефоне крупные зоны нажатия) */
	@media (min-width: 1181px) {
		ul.nav__sub { padding: .35rem; }
		ul.nav__sub a { padding: .38rem 1rem; line-height: 1.3; }
		.nav__sep { margin: .3rem 1rem; }
		.nav__note { padding: .5rem 1rem 0; }
	}
	@media (min-width: 1500px) { .live { display: inline-block; } }
	@media (max-width: 1180px) {
		.menu-btn { display: inline-flex; }
		.site-header__actions { margin-left: auto; gap: .25rem; }
		.site-header__cta { display: none; }
		.nav { position: fixed; inset: calc(var(--hdr-h) + var(--hdr-top, 0px)) 0 0 0; overscroll-behavior: contain; display: none; background: var(--p-cream); overflow-y: auto; padding: 1rem var(--gutter) 3rem; }
		.nav.is-open { display: block; }
		.nav__list { flex-direction: column; gap: 0; height: auto; }
		.nav__item { flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--p-beige); }
		.nav__link { flex: 1; padding: 1.1rem 0; font: 600 1.6rem/1.1 var(--f-head); letter-spacing: 0; text-transform: none; }
		.nav__toggle { width: 3rem; height: 3.5rem; margin: 0; }
		.nav__new { font-size: .75rem; }
		.nav__sub { display: none; visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition: none; position: static; width: 100%; border: 0; border-left: 1px solid var(--c-accent); margin: 0 0 1rem; padding: 0 0 0 1rem; min-width: 0; background: none; box-shadow: none; }
		.nav__item.is-open > .nav__sub { display: block; }
		.nav__close { display: none; }
		.nav__sub::before, .nav__mega::before { display: none; }
		.nav__mega { display: none; position: static; max-width: none; padding: 0 0 0 1rem; margin: 0 0 1rem; }
		.nav__mega-in { grid-template-columns: 1fr; gap: 1rem; padding: 0; max-height: none; overflow: visible; }
		.nav__item.is-open > .nav__mega { display: block; }
		.nav__group-title { font-size: 1.15rem; margin-bottom: .2rem; }
		.nav__foot { flex-direction: column; justify-content: flex-start; gap: .5rem; margin-top: .5rem; }
		.nav__cta { display: block; padding-top: 2rem; }
		.nav__cta .btn { width: 100%; }
	}

	/* поиск */
	.search-dialog { border: 1px solid var(--c-line); background: var(--p-burgundy-night); color: var(--c-text); padding: 2rem; width: min(36rem, calc(100% - 2rem)); }
	.search-dialog::backdrop { background: rgba(10, 0, 4, .75); }
	.search-dialog label { display: block; font: 600 var(--t-xl) var(--f-head); margin-bottom: 1rem; color: var(--c-accent); }
	.search-dialog__row { display: flex; gap: .75rem; }
	.search-dialog input { flex: 1; min-height: var(--btn-h); padding: 0 1rem; border: 1.5px solid var(--p-gold); background: transparent; color: var(--c-text); font: inherit; border-radius: var(--radius); }
	.search-dialog input:focus { outline: 3px solid var(--c-focus); outline-offset: 2px; }
	.search-dialog__close { position: absolute; right: .5rem; top: .25rem; width: 2.75rem; height: 2.75rem; border: 0; background: none; font-size: 2rem; line-height: 1; cursor: pointer; color: var(--c-text); }

	/* cookie */
	.cookie { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 150; max-width: 46rem; margin-inline: auto; display: flex; align-items: center; gap: 1rem 1.5rem; flex-wrap: wrap; padding: 1rem 1.25rem; background: var(--p-burgundy-night); color: var(--c-text); border: 1px solid var(--p-gold); font-size: .875rem; line-height: 1.5; }
	.cookie[hidden] { display: none; }
	.cookie p { margin: 0; flex: 1 1 18rem; }
	.cookie a { color: var(--c-accent); }
	.cookie__btns { display: flex; gap: .6rem; flex-wrap: wrap; }
}

/* ---------- Секции главной ---------- */
@layer sections {
	/* ПЕРВЫЙ ЭКРАН: светлый зал, крупная иллюстрация в золотом свечении */
	.hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; background: linear-gradient(180deg, var(--p-white) 0%, var(--p-cream) 100%); }
	.hero__art { position: absolute; z-index: 1; right: max(var(--gutter), calc((100% - var(--wrap)) / 2)); bottom: 0; height: min(calc(100svh - 6rem - var(--strip-h, 0rem)), 50vw, 46rem); margin: 0; } /* правый край иллюстрации = правый край колонки контента */
	.hero__art img { height: 100%; width: auto; max-width: none; mix-blend-mode: multiply; }
	/* Полоса генерального информационного партнёра над шапкой: ТАСС, подпись, ТАСС, подпись, ТАСС, подпись, ТАСС.
	   Подложка под логотипом того же цвета, что фон логотипа (#393E71), чуть больше его по краям. */
	.tass-strip { position: absolute; z-index: 101; top: 0; left: 0; right: 0; height: var(--strip-h); background: #393E71; color: #fff; } /* тёмно-синяя плашка как на старом сайте (решение заказчика 21.10.2026, вместо светлой от 16.10.2026); цвет совпадает с фоном логотипа ТАСС */
	.tass-strip__in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
	.tass-strip__label { color: #fff; flex: 1 1 0; min-width: 0; max-width: 15rem; margin-inline: auto; text-align: center; font: 400 .75rem/1.3 var(--f-body); letter-spacing: .02em; }
	.tass-strip__logo { display: block; flex: none; }
	.tass-strip__logo img { display: block; height: 1.6rem; width: auto; }
	:root { --strip-h: 3.125rem; --hdr-top: var(--strip-h); } /* высота полосы ТАСС; JS уменьшает --hdr-top при прокрутке */
	.has-strip .hero__in { padding-top: calc(7rem + var(--strip-h)); }
	.has-strip .page-head { padding-top: calc(9rem + var(--strip-h)); }
	@media (max-width: 1099px) { .tass-strip__in > :nth-child(n+4) { display: none; } .tass-strip__in { justify-content: space-between; } }
	@media (max-width: 1000px) { .has-strip .hero__art { margin-top: calc(6.5rem + var(--strip-h)); height: auto; } .has-strip .hero__in { padding-top: 1.25rem; } }
	@media (max-width: 760px) { :root { --strip-h: 2.9rem; } .tass-strip__label { font-size: .5625rem; line-height: 1.3; letter-spacing: .02em; } .tass-strip__in { gap: .6rem; } .tass-strip__logo img { height: 1.85rem; } }

	/* Плавное появление пары и свечения: только прозрачность, без движения */
	.js .hero__art { opacity: 0; transition: opacity 3.6s cubic-bezier(.4, 0, .2, 1) .2s; }
	.js .hero.is-in .hero__art { opacity: 1; }
	.hero__in { position: relative; z-index: 2; width: 100%; padding-top: 7rem; padding-bottom: clamp(2rem, 7vh, 5rem); }
	.hero__title { font-size: clamp(3rem, .5rem + 6.2vw, 6.25rem); line-height: .92; letter-spacing: -.015em; max-width: 54%; }
	.hero__pre { display: block; font: 700 var(--t-sm)/1.3 var(--f-body); letter-spacing: .3em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 1.25rem; }
	.hero__title em { font-style: normal; background: linear-gradient(transparent 84%, var(--p-gold) 84%, var(--p-gold) 94%, transparent 94%); }
	.hero__row { max-width: 54%; display: flex; flex-wrap: wrap; align-items: center; gap: 1.75rem 3.5rem; margin-top: clamp(1.75rem, 5vh, 3.5rem); }
	.hero__when { display: flex; flex-wrap: wrap; gap: .5rem 2rem; font: 500 var(--t-lg) var(--f-head); }
	.hero__when li { position: relative; padding-left: 1.4rem; }
	.hero__when li::before { content: ""; position: absolute; left: 0; top: .75em; width: .8rem; height: 1.5px; background: var(--c-accent); }
	.hero__btns { display: flex; gap: 1rem; flex-wrap: wrap; }
	.hero__scroll { position: absolute; z-index: 3; right: var(--gutter); bottom: 2.5rem; writing-mode: vertical-rl; font: 700 .6875rem var(--f-body); letter-spacing: .3em; text-transform: uppercase; color: var(--c-accent); text-decoration: none; }
	@media (max-width: 1000px) { .hero { flex-direction: column; justify-content: flex-start; align-items: stretch; } .hero__art { position: relative; right: auto; bottom: auto; height: auto; width: min(92vw, 28rem); margin: 6rem auto 0; } .hero__art img { height: auto; width: 100%; } .hero__in { padding-top: 1.5rem; } .hero__title, .hero__row { max-width: none; } .hero__scroll { display: none; } .hero__in { padding-bottom: 2rem; } }
	@media (max-width: 760px) {
		.hero__btns .btn { width: 100%; }
		.hero__pre { line-height: 1.8; margin-bottom: .5rem; }
		.hero__title { line-height: 1.04; }
	}

	/* ЦИФРЫ */
	.facts__list { display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between; } /* колонки по ширине содержимого: «России» того же размера, что цифры */
	.fact { padding: clamp(1.75rem, 4vw, 4rem) clamp(1rem, 2.2vw, 2.5rem); border-left: 1px solid var(--c-line); }
	.fact:first-child { border-left: 0; padding-left: 0; }
	.fact__pre::before { content: ""; display: block; width: 2.5rem; height: 3px; margin-bottom: 1.1rem; background: var(--p-gold); }
	.fact__pre { display: block; font: 700 var(--t-xs) var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 1rem; }
	.fact__num { color: var(--c-accent); display: block; white-space: nowrap; font: 700 clamp(2.5rem, 1rem + 5vw, 6.5rem)/.95 var(--f-body); letter-spacing: -.02em; }
	.fact__post { display: block; margin-top: .75rem; font: 500 var(--t-lg) var(--f-head); color: var(--c-text); }
	/* «России» набрано тем же размером, что и цифры соседних блоков */
	.fact__word { position: relative; top: .114em; /* выравнивание базовой линии с цифрами Manrope */ display: block; white-space: nowrap; font: 700 clamp(2.5rem, 1rem + 5vw, 6.5rem)/.95 var(--f-head); letter-spacing: -.02em; color: var(--c-accent); }
	@media (max-width: 1279px) { .facts__list { grid-template-columns: 1fr 1fr; justify-content: stretch; } .fact:nth-child(3) { border-left: 0; padding-left: 0; } .fact:nth-child(n+3) { border-top: 1px solid var(--c-line); } }

	/* ОБРАЩЕНИЕ */
	.address { overflow: hidden; }
	.address__grid { text-align: center; }
	.address__head { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
	.letters { display: flex; justify-content: center; gap: clamp(.75rem, 2.5vw, 2.5rem); align-items: flex-start; max-width: 62rem; margin: 2rem auto 0; text-align: center; }
	.letters__item { flex: 1; transition: transform .4s var(--ease); }
	.letters__item:nth-child(2) { transform: translateY(-2rem); }
	.letters__item:hover { transform: translateY(-.6rem); }
	.letters__item a { display: block; text-decoration: none; }
	.letters__item img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; background: var(--p-white); border: 1px solid var(--c-line); box-shadow: 0 2rem 3.5rem -1.5rem rgba(41, 26, 20, .45); }
	.letters__cap { display: block; margin-top: .9rem; font: 600 var(--t-lg) var(--f-head); color: var(--c-accent); }
	@media (max-width: 900px) { .letters__item:nth-child(2) { transform: none; } .letters { margin-top: 0; } }
	@media (max-width: 520px) { .letters { justify-content: flex-start; max-width: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin: 0 calc(-1 * var(--gutter)); padding: .5rem var(--gutter) 1.25rem; gap: 1rem; overscroll-behavior-x: contain; } .letters__item { flex: 0 0 72%; scroll-snap-align: center; } }

	/* ОРГАНИЗАТОР */
	.org { text-align: center; }
	.org__main { padding-bottom: clamp(2.5rem, 5vw, 4.5rem); margin-bottom: clamp(2.5rem, 5vw, 4.5rem); border-bottom: 1px solid var(--c-line); }
	.crests { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2.5rem 1.5rem; align-items: center; justify-items: center; max-width: 72rem; margin: 0 auto; }
	.crests a { display: block; }
	.crests img { height: 5.25rem; width: auto; max-width: 100%; object-fit: contain; }
	.org__logo { display: inline-block; margin-bottom: 1.25rem; }
	.org__logo img { height: 7rem; width: auto; }
	.org__name { font-size: var(--t-2xl); line-height: 1.05; color: var(--c-accent); margin-bottom: .5rem; }
	.org__note { color: var(--c-text-soft); margin: 0; }
	.logos { display: flex; flex-wrap: wrap; gap: 1.75rem 2.75rem; align-items: center; }
	.logos a { display: block; }
	.logos img { height: 4.5rem; width: auto; max-width: 11rem; object-fit: contain; }
	.logos--mute img { filter: grayscale(1); opacity: .85; transition: filter var(--dur), opacity var(--dur); }
	.logos--mute a:hover img, .logos--mute a:focus-visible img { filter: none; opacity: 1; }
	.logos--mute img { height: 3.75rem; }
	@media (max-width: 900px) { .crests { grid-template-columns: repeat(3, 1fr); gap: 1.5rem 1rem; } .crests img { height: 4rem; } }

	/* РУКОВОДСТВО */
	.leaders__head { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
	.leaders__head .org__name { max-width: 36ch; margin-inline: auto; }
	/* Две карточки делят общие строки (subgrid): должность, имя и описание начинаются на одной высоте у руководителя и председателя */
	.leaders__list { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; column-gap: clamp(2rem, 5vw, 6rem); }
	.leader { display: grid; grid-row: span 3; grid-template-columns: minmax(0, 15rem) 1fr; grid-template-rows: subgrid; column-gap: clamp(1.25rem, 3vw, 3rem); align-items: start; }
	.leader__photo { position: relative; grid-column: 1; grid-row: 1 / span 3; margin: 0 .9rem .9rem 0; }
	.leader__photo::before { content: ""; position: absolute; inset: 0; transform: translate(.9rem, .9rem); border: 1.5px solid var(--p-gold); }
	.leader__photo img { position: relative; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; background: var(--p-burgundy-deep); }
	.leader__role { grid-column: 2; grid-row: 1; margin: 0 0 .75rem; }
	.leader__name { grid-column: 2; grid-row: 2; font-size: var(--t-2xl); line-height: 1; margin-bottom: 1rem; }
	.leader__name span { display: block; color: var(--c-accent); }
	.leader__text { grid-column: 2; grid-row: 3; color: var(--c-text-soft); font-size: var(--t-sm); margin: 0; }
	@media (max-width: 1000px) { .leaders__list { grid-template-columns: 1fr; grid-template-rows: none; row-gap: 3rem; } .leader { grid-row: auto; grid-template-rows: none; } }
	@media (max-width: 520px) { .leaders__list { row-gap: 3.5rem; } .leader { grid-template-columns: 1fr; justify-items: center; text-align: center; max-width: 21rem; margin-inline: auto; row-gap: 0; } .leader__photo { grid-column: 1; grid-row: auto; width: min(100%, 15rem); margin: 0 .9rem 2rem 0; } .leader__role, .leader__name, .leader__text { grid-column: 1; grid-row: auto; } .leader__role { margin-bottom: .6rem; } }

	/* ПОПЕЧИТЕЛЬСКИЙ СОВЕТ */
	.board__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 3rem); }
	.member { display: grid; grid-template-columns: minmax(0, 8.5rem) 1fr; column-gap: clamp(1rem, 2vw, 1.75rem); align-items: start; }
	.member__photo { position: relative; margin: 0 .7rem .7rem 0; }
	.member__photo::before { content: ""; position: absolute; inset: 0; transform: translate(.7rem, .7rem); border: 1.5px solid var(--p-gold); }
	.member__photo img { position: relative; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; background: var(--p-cream); }
	.member__name { font-size: var(--t-lg); line-height: 1.1; margin-bottom: .6rem; }
	.member__name span { display: block; color: var(--c-accent); }
	.member__role { margin: 0; font-size: var(--t-xs); line-height: 1.55; color: var(--c-text-soft); }
	@media (max-width: 1100px) { .board__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
	@media (max-width: 700px) { .board__list { grid-template-columns: 1fr; } }

	/* НОВОСТИ */
	.news__date { display: block; font: 700 var(--t-xs) var(--f-body); letter-spacing: .18em; color: var(--c-accent); }
	/* Горизонтальная лента: начало по линии контейнера, справа карточка выглядывает за край */
	.newsbelt { display: flex; gap: clamp(1.5rem, 3vw, 3rem); justify-content: safe center; margin: -1.5rem 0 -2.5rem; padding: 3rem max(var(--gutter), calc((100vw - var(--wrap)) / 2)) 5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--p-gold) transparent; list-style: none; }
	.newsbelt:focus-visible { outline: 2px solid var(--c-focus); outline-offset: -2px; }
	.newsbelt__item { position: relative; display: flex; flex-direction: column; flex: 0 0 clamp(16rem, 28vw, 24rem); scroll-snap-align: start; }
	.newsbelt__img { display: block; overflow: hidden; background: var(--p-cream); aspect-ratio: 4 / 3; }
	.newsbelt__img img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .6s var(--ease); }
	.newsbelt__item:hover .newsbelt__img img { transform: scale(1.04); }
	/* нет обложки: лёгкая заглушка, пара на фоне Кремля (иллюстрация первого экрана) */
	.newsbelt__img.is-ph { background: linear-gradient(180deg, var(--p-white), var(--p-cream)); }
	.newsbelt__img.is-ph img { object-fit: contain; object-position: center bottom; mix-blend-mode: multiply; padding: 4% 8% 0; }
	.newsbelt__item .news__date { margin: 1rem 0 .45rem; }
	.newsbelt__title { font-size: var(--t-lg); line-height: 1.2; margin: 0; }
	.newsbelt__title a { text-decoration: none; }
	.newsbelt__title a::after { content: ""; position: absolute; inset: 0; }
	.newsbelt__title a:hover { color: var(--c-accent); }
	.news__excerpt { margin: .9rem 0 0; color: var(--c-text-soft); font-size: var(--t-sm); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	/* Рамка и мягкая тень проявляются при наведении на карточку ленты */
	.newsbelt__item { isolation: isolate; }
	.newsbelt__item::before { content: ""; position: absolute; z-index: -1; inset: -1rem; background: var(--p-white); border: 1px solid transparent; box-shadow: 0 1.5rem 3.5rem -1rem rgba(41, 26, 20, 0), 0 .4rem 1.25rem rgba(41, 26, 20, 0); opacity: 0; transition: opacity .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease); pointer-events: none; }
	.newsbelt__item:hover::before, .newsbelt__item:focus-within::before { opacity: 1; border-color: var(--p-gold); box-shadow: 0 1.5rem 3.5rem -1rem rgba(41, 26, 20, .2), 0 .4rem 1.25rem rgba(41, 26, 20, .05); }
	/* Кнопка проявляется при наведении; место под неё занято всегда, в лентах кнопки на одном уровне у нижнего края */
	.news__btn { align-self: flex-start; margin-top: 1.4rem; opacity: 0; transform: translateY(.6rem); transition: opacity .35s var(--ease), transform .35s var(--ease), background .2s; pointer-events: none; }
	.newsbelt__item:hover .news__btn, .newsbelt__item:focus-within .news__btn { opacity: 1; transform: none; }
	.newsbelt__item .news__btn { margin-top: auto; }
	.newsbelt__item .news__excerpt { margin-bottom: 1.4rem; }
	@media (hover: none) { .news__btn { opacity: 1; transform: none; } }
	.news__all { display: flex; justify-content: center; margin: clamp(2rem, 4vw, 3rem) 0 0; }
	.news__all .arrow { color: var(--c-accent); }

	/* Видимый индикатор прокрутки вбок (вместо системной полосы, которую не видно): дорожка и золотой ползунок */
	.js [data-scrollbar] { scrollbar-width: none; }
	.js [data-scrollbar]::-webkit-scrollbar { display: none; }
	.sbar { position: relative; width: min(20rem, calc(100% - 2 * var(--gutter))); height: 2px; margin: 1.5rem auto 0; background: var(--c-line); border-radius: 2px; }
	.sbar[hidden] { display: none; }
	.sbar span { position: absolute; top: -1px; bottom: -1px; left: 0; width: 30%; background: var(--p-gold); border-radius: 2px; transition: left .12s linear; }
	.on-light .sbar span, .on-white .sbar span { background: var(--p-burgundy); }

	/* СЕРТИФИКАТ */
	.cert__grid { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 32rem); justify-content: center; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
	.cert__img { position: relative; margin: 0; padding: 0 1rem 1rem 0; }
	.cert__img::before { content: ""; position: absolute; inset: 1rem 0 0 1rem; border: 1.5px solid var(--p-gold); }
	.cert__zoom { position: relative; z-index: 1; display: block; cursor: zoom-in; }
	/* Спасская башня линией (негатив), вдвое крупнее блока, выходит за его верх и низ, наполовину прячется за сертификатом */
	.cert__logo { position: absolute; z-index: 0; left: 0; top: 50%; width: clamp(19rem, 30vw, 27rem); aspect-ratio: 800 / 784; transform: translate(-52%, -50%); background-color: var(--p-gold); opacity: .26; -webkit-mask: url("assets/img/logo-mbkb-thin.webp") center / contain no-repeat; mask: url("assets/img/logo-mbkb-thin.webp") center / contain no-repeat; pointer-events: none; } /* наш логотип из шапки, пропорции и тонкие линии сохранены (не растянут) */
	.cert__img img { position: relative; width: 100%; height: auto; transition: transform .4s var(--ease); }
	.cert__zoom:hover img { transform: scale(1.03); }
	.cert__zoom::after { content: ""; position: absolute; right: .6rem; bottom: .6rem; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: rgba(79, 10, 27, .85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D4A12A' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='5.5'/%3E%3Cpath d='m15 15 4.5 4.5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 62% no-repeat; }
	/* Предновогодний декор: золотые четырёхконечные искры вперемешку с классическими пятиконечными звёздами, без людей; справа плотнее, к тексту истаивает */
	.cert { position: relative; overflow: hidden; }
	.cert__decor { position: absolute; inset: 0 0 0 auto; width: min(68%, 56rem); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 340'%3E%3Cpath d='M95.0 57.0L99.4 68.9L112.1 69.4L102.2 77.3L105.6 89.6L95.0 82.6L84.4 89.6L87.8 77.3L77.9 69.4L90.6 68.9zM300.0 138.0L303.0 145.9L311.4 146.3L304.8 151.6L307.1 159.7L300.0 155.0L292.9 159.7L295.2 151.6L288.6 146.3L297.0 145.9zM470.0 45.0L472.5 51.6L479.5 51.9L474.0 56.3L475.9 63.1L470.0 59.2L464.1 63.1L466.0 56.3L460.5 51.9L467.5 51.6zM560.0 215.0L564.9 228.2L579.0 228.8L568.0 237.6L571.8 251.2L560.0 243.4L548.2 251.2L552.0 237.6L541.0 228.8L555.1 228.2zM240.0 281.0L242.2 286.9L248.6 287.2L243.6 291.2L245.3 297.3L240.0 293.8L234.7 297.3L236.4 291.2L231.4 287.2L237.8 286.9zM380.0 287.0L383.2 295.6L392.4 296.0L385.2 301.7L387.6 310.5L380.0 305.5L372.4 310.5L374.8 301.7L367.6 296.0L376.8 295.6zM620.0 102.0L622.0 107.3L627.6 107.5L623.2 111.0L624.7 116.5L620.0 113.4L615.3 116.5L616.8 111.0L612.4 107.5L618.0 107.3z' fill='none' stroke='%23D4A12A' stroke-width='1.2' stroke-linejoin='round'/%3E%3Cpath d='M190 24Q190 35 201 35Q190 35 190 46Q190 35 179 35Q190 35 190 24zM420 144Q420 160 436 160Q420 160 420 176Q420 160 404 160Q420 160 420 144zM500 298Q500 310 512 310Q500 310 500 322Q500 310 488 310Q500 310 500 298zM40 171Q40 180 49 180Q40 180 40 189Q40 180 31 180Q40 180 40 171zM600 315Q600 330 615 330Q600 330 600 345Q600 330 585 330Q600 330 600 315zM310 51Q310 60 319 60Q310 60 310 69Q310 60 301 60Q310 60 310 51zM150 152Q150 160 158 160Q150 160 150 168Q150 160 142 160Q150 160 150 152zM540 10Q540 20 550 20Q540 20 540 30Q540 20 530 20Q540 20 540 10zM80 290Q80 300 90 300Q80 300 80 310Q80 300 70 300Q80 300 80 290zM250 207Q250 215 258 215Q250 215 250 223Q250 215 242 215Q250 215 250 207z' fill='%23D4A12A'/%3E%3C/svg%3E") right center / cover no-repeat; opacity: .34; -webkit-mask-image: linear-gradient(to right, transparent, #000 40%); mask-image: linear-gradient(to right, transparent, #000 40%); pointer-events: none; }
	.cert__nom { display: flex; flex-direction: column; gap: .55rem; margin: 1.75rem 0 0; padding-left: 1.4rem; border-left: 1.5px solid var(--c-accent); }
	.cert__nom-label { font: 700 var(--t-xs)/1.4 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
	.cert__nom-text { color: var(--c-accent); font: 600 clamp(1.4rem, 1rem + 1.4vw, 2.1rem)/1.18 var(--f-head); }
	.cert__when { margin: .75rem 0 0; color: rgba(255, 255, 255, .72); font-size: var(--t-sm); line-height: 1.5; }
	.cert .wrap { position: relative; }
	/* Окно увеличения */
	.zoom-dialog { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100%; height: 100%; display: none; align-items: center; justify-content: center; }
	.zoom-dialog[open] { display: flex; }
	.zoom-dialog::backdrop { background: rgba(10, 0, 4, .85); }
	.zoom-dialog { overscroll-behavior: contain; }
	html.is-zoom { overflow: hidden; scrollbar-gutter: stable; } /* пока фото увеличено, страница не прокручивается и не дёргается от пропавшей полосы прокрутки */
	.zoom-dialog img { max-width: min(92vw, 70rem); max-height: 74vh; width: auto; height: auto; box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .5); cursor: default; }
	.zoom-dialog__close { position: absolute; top: 1rem; right: 1.25rem; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: rgba(247, 243, 236, .12); color: var(--p-cream); font-size: 1.75rem; line-height: 1; cursor: pointer; }
	.zoom-dialog__close:hover { background: rgba(247, 243, 236, .24); }
	.cert__text .org__name { color: var(--p-white); margin: 0; font-size: var(--t-2xl); line-height: 1.1; }
	@media (max-width: 760px) { .cert__nom { align-items: center; padding: 1.25rem 0 0; border-left: 0; border-top: 1.5px solid var(--c-accent); text-align: center; } .cert__grid { grid-template-columns: 1fr; justify-items: center; text-align: center; } .cert__img { width: min(100%, 14rem); } .cert__logo { left: 50%; transform: translate(-50%, -50%); width: 20rem; } }

	/* ПАРТНЁРЫ */
	.partners__group + .partners__group { margin-top: clamp(2.5rem, 5vw, 4.5rem); padding-top: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid var(--c-line); }
	.partners .leaders__head { margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
	.logos--center { justify-content: center; }
	/* Партнёры: по 5 в строке, неполная последняя строка по центру */
	.logos--grid { gap: 2.25rem 0; }
	.logos--grid li { flex: 0 0 20%; display: flex; align-items: center; justify-content: center; padding-inline: clamp(.75rem, 1.5vw, 1.75rem); }
	@media (max-width: 900px) { .logos--grid li { flex-basis: 33.333%; } }
	@media (max-width: 560px) { .partners .logos.logos--grid { column-gap: 0; } .logos--grid li { flex-basis: 50%; } }
	@media (min-width: 900px) { .logos--line { flex-wrap: nowrap; } .logos--line li { min-width: 0; flex: 0 1 auto; }  }
	.logos--lead img { height: clamp(7rem, 14vw, 10rem); max-width: none; }
	.partners .logos:not(.logos--lead) img { height: auto; width: auto; max-width: min(13rem, 100%); max-height: clamp(3.25rem, 5vw, 4.25rem); }
	@media (max-width: 640px) { .partners .logos { gap: 1.5rem 2rem; } .partners .logos:not(.logos--lead) img { max-width: 8rem; } }

	/* ПРИЛОЖЕНИЕ */
	/* Приложение: слева текст и официальные бейджи, справа веер из трёх экранов приложения на фоне тонких золотых колец */
	.app { overflow: hidden; }
	/* Контурная надпись МБКБ, как в подвале: только обводка, за текстом и телефонами */
	.app__mark { position: absolute; left: 50%; top: 50%; z-index: 0; margin: 0; transform: translate(-50%, -50%) scaleY(1.5); font: 700 clamp(9rem, 30vw, 28rem)/.8 var(--f-head); letter-spacing: -.02em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(110, 15, 38, .16); user-select: none; pointer-events: none; }
	.app .wrap { position: relative; z-index: 1; }
	.app__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
	.app__text { max-width: 30rem; margin: 1.25rem 0 0; color: var(--c-text-soft); font-size: var(--t-lg); line-height: 1.5; }
	/* Бейджи по платформе (класс на <html> ставит маленький скрипт в шапке): iPhone — только App Store, Android — RuStore и APK, компьютер — все */
	.is-ios [data-store]:not([data-store="ios"]), .is-android [data-store="ios"] { display: none; }
	.app__badges { display: flex; flex-wrap: wrap; gap: .85rem 1rem; margin: 2.25rem 0 0; padding: 0; list-style: none; }
	.app__badges a { display: block; transition: transform .3s var(--ease); }
	.app__badges a:hover, .app__badges a:focus-visible { transform: translateY(-3px); }
	.app__badges img { display: block; height: 3rem; width: auto; }
	.app__phones { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; }
	.phone { position: relative; z-index: 1; flex: none; margin: 0; width: clamp(6.6rem, 14vw, 12.5rem); padding: 5px; background: #1c1114; border-radius: 1.7rem; box-shadow: 0 1.75rem 3rem -1rem rgba(41, 26, 20, .45); }
	.phone img { display: block; width: 100%; height: auto; border-radius: 1.3rem; }
	.phone--1 { z-index: 3; width: clamp(8.4rem, 17vw, 14.5rem); margin-inline: calc(clamp(6.6rem, 14vw, 12.5rem) * -.12); }
	.phone--0 { z-index: 2; transform: translateY(1.5rem) rotate(-6deg); }
	.phone--2 { z-index: 2; transform: translateY(1.5rem) rotate(6deg); }
	@media (max-width: 900px) { .app__grid { grid-template-columns: minmax(0, 1fr); text-align: center; } .app__text { margin-inline: auto; } .app__badges { justify-content: center; } .app__phones { min-height: 22rem; } }

	/* ПОДВАЛ */
	.site-footer { background: var(--p-burgundy-night); color: var(--c-text); padding-top: clamp(3.5rem, 7vw, 6rem); font-size: .9375rem; }
	.site-footer a { text-decoration: none; }
	.site-footer a:hover, .site-footer a:focus-visible { color: var(--c-accent); }
	.footer__grid { display: grid; grid-template-columns: minmax(23rem, 1.7fr) repeat(3, 1fr); gap: 2.5rem clamp(2rem, 4vw, 4rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
	.footer__home { display: flex; align-items: center; gap: 1rem; }
	.footer__logo { flex: none; width: 3.6rem; height: 3.6rem; background-color: var(--p-gold); -webkit-mask: url("assets/img/logo-mbkb.webp") center / contain no-repeat; mask: url("assets/img/logo-mbkb.webp") center / contain no-repeat; }
	.footer__name { display: inline-block; font: 600 var(--t-lg)/1.15 var(--f-head); color: var(--p-gold); white-space: nowrap; }
	/* Мелкая строка: одна строка и не длиннее крупной (width: 0 + min-width: 100% не растягивает блок) */
	.footer__kk, .footer__bal { display: block; }
	.footer__pre { display: block; width: 0; min-width: 100%; margin-bottom: .35rem; font: 700 .6rem/1.3 var(--f-body); letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; color: var(--p-gold); }
	.footer__mail { margin: 1.75rem 0 0; font-size: .9375rem; font-weight: 400; line-height: 1.4; }
	.footer__mail a { color: rgba(247, 243, 236, .72); }
	.footer__mail a:hover { color: var(--p-gold); }
	.footer__mail a:hover { text-decoration: underline; text-underline-offset: .25em; }
	.footer__mail--next { margin-top: .65rem; }
	.footer__title { font: 700 var(--t-xs)/1.4 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: var(--p-gold); margin: 0 0 1.25rem; }
	.footer__col ul { margin: 0; padding: 0; list-style: none; }
	.footer__col li { margin-bottom: .65rem; line-height: 1.4; }
	.footer__col li a { color: rgba(247, 243, 236, .72); }
	.footer__col li a:hover { text-decoration: underline; text-underline-offset: .25em; }
	.footer__socials { display: flex; flex-direction: column; }
	.footer__app { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; padding-block: clamp(1.75rem, 3.5vw, 2.5rem); border-top: 1px solid rgba(212, 161, 42, .28); }
	.footer__app-title { font: 600 var(--t-lg)/1.15 var(--f-head); color: rgba(247, 243, 236, .86); margin: 0 0 .4rem; }
	.footer__app-text { max-width: 34rem; margin: 0; color: rgba(247, 243, 236, .7); font-size: .875rem; line-height: 1.55; }
	.footer__badges { display: flex; flex-wrap: wrap; gap: .75rem 1rem; margin: 0; padding: 0; list-style: none; }
	.footer__badges a { display: block; transition: transform .3s var(--ease); }
	.footer__badges a:hover, .footer__badges a:focus-visible { transform: translateY(-3px); }
	.footer__badges img { display: block; height: 2.75rem; width: auto; }
	.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-block: 1.5rem 2rem; border-top: 1px solid rgba(212, 161, 42, .28); font-size: .8125rem; color: rgba(247, 243, 236, .6); }
	.footer__bottom p { margin: 0; }
	.footer__bottom a { color: rgba(247, 243, 236, .66); }
	.footer__bottom a:hover { text-decoration: underline; text-underline-offset: .25em; }
	@media (max-width: 1000px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }
	@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } .footer__pre { font-size: .52rem; letter-spacing: .06em; } }

	/* ВНУТРЕННИЕ СТРАНИЦЫ (базовый вид) */
	.page-head { padding-top: 9rem; padding-bottom: 3rem; background: var(--p-burgundy-deep); }
	.page-head h1 { font-size: var(--t-3xl); color: var(--c-accent); }
	/* СТАТЬЯ (новость) и обычные страницы: светлая подложка, заголовок по центру, текст колонкой */
	/* ФОРМЫ (шорткод [mbkb_form]): компактные поля, короткие пары в два столбца */
	.mform { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1rem; max-width: 44rem; margin: 1.5rem auto 0; }
	.mform > * { grid-column: 1 / -1; margin: 0; }
	.mform > .mform__row--half { grid-column: auto; }
	.mform__row label { display: block; margin-bottom: .25rem; font-size: .8125rem; font-weight: 600; color: var(--c-text); }
	.mform input[type="text"], .mform input[type="email"], .mform input[type="tel"], .mform input[type="number"], .mform textarea { box-sizing: border-box; width: 100%; height: 2.6rem; padding: 0 .85rem; border: 1px solid var(--c-line); background: var(--p-white); color: var(--c-text); font: inherit; font-size: .9375rem; border-radius: 0; }
	.mform textarea { height: auto; min-height: 5.5rem; padding: .6rem .85rem; resize: vertical; line-height: 1.5; }
	.mform input[type="file"] { box-sizing: border-box; width: 100%; padding: .45rem .6rem; border: 1px dashed var(--c-line); background: var(--p-white); font: inherit; font-size: .875rem; }
	.mform input:focus, .mform textarea:focus { outline: 2px solid var(--c-focus); outline-offset: 1px; border-color: var(--p-gold); }
	.mform__hint { display: block; margin-top: .25rem; color: var(--c-text-soft); font-size: .75rem; }
	.mform__consent { margin: .2rem 0 0; font-size: .8125rem; line-height: 1.45; color: var(--c-text-soft); }
	.mform__consent label { display: flex; gap: .6rem; align-items: flex-start; }
	.mform__consent input { margin-top: .2rem; accent-color: var(--p-burgundy); }
	.mform .btn { min-height: 2.75rem; padding-inline: 1.75rem; }
	.mform__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
	.mform__note { padding: .7rem .9rem; border-left: 3px solid var(--p-gold); background: var(--p-white); font-size: .9375rem; font-weight: 600; }
	/* Всплывающее окно после отправки: затемнение, закрывается само (JS) или через 8 с (CSS, без JS) */
	.mpop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(22, 12, 10, .6); animation: mpop-hide .4s 8s forwards; }
	.mpop.is-closed { display: none; }
	.mpop__box { position: relative; box-sizing: border-box; width: min(26rem, 100%); padding: 2rem 1.75rem 1.75rem; background: var(--p-white); border-top: 4px solid var(--p-gold); text-align: center; }
	.mpop--err .mpop__box { border-top-color: var(--p-red); }
	.mpop__title { margin: 0 0 .5rem; font-family: var(--f-head); font-size: 1.5rem; color: var(--p-burgundy); }
	.mpop--err .mpop__title { color: var(--p-red); }
	.mpop__text { margin: 0; font-size: 1rem; line-height: 1.5; }
	.mpop__x { position: absolute; top: .4rem; right: .6rem; width: 2.25rem; height: 2.25rem; border: 0; background: none; font-size: 1.75rem; line-height: 1; color: var(--p-grey); cursor: pointer; }
	@keyframes mpop-hide { to { opacity: 0; visibility: hidden; } }
	@media (max-width: 620px) { .mform { grid-template-columns: 1fr; } .mform > .mform__row--half { grid-column: 1 / -1; } }

	/* КОНТАКТЫ: слева почта и соцсети, справа форма */
	.contacts { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; max-width: 62rem; margin: 0 auto; }
	.contacts h2 { margin: 0 0 1rem; font-size: 1.25rem; color: var(--c-accent); }
	.contacts__block + .contacts__block { margin-top: 2.25rem; }
	.contacts__mail { display: inline-flex; align-items: center; gap: .7rem; font: 600 1.25rem/1.2 var(--f-head); color: var(--c-text); text-decoration: none; }
	.entry a.contacts__mail { color: var(--c-text); text-decoration: none; }
	.contacts__mail .ico { background-color: currentColor; }
	.entry a.contacts__mail:hover { color: var(--c-accent); }
	.contacts .mform { margin-top: 0; max-width: none; }
	.socials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: 0; list-style: none; }
	.entry .socials li { padding: 0; margin: 0; }
	.entry .socials li::before { display: none; }
	.socials__link { display: flex; align-items: center; gap: .7rem; padding: .6rem .85rem; border: 1px solid var(--c-line); background: var(--p-white); color: var(--c-text); font-size: .9375rem; font-weight: 600; text-decoration: none; transition: border-color .25s, color .25s; }
	.entry a.socials__link { color: var(--c-text); text-decoration: none; }
	.entry a.socials__link:hover { color: var(--c-accent); border-color: var(--p-gold); }
	.ico { flex: none; width: 1.35rem; height: 1.35rem; background-color: var(--c-accent); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
	.ico--telegram { --ico: url("assets/img/social/telegram.svg"); }
	.ico--vk { --ico: url("assets/img/social/vk.svg"); }
	.ico--dzen { --ico: url("assets/img/social/dzen.svg"); }
	.ico--rutube { --ico: url("assets/img/social/rutube.svg"); }
	.ico--odnoklassniki { --ico: url("assets/img/social/odnoklassniki.svg"); }
	.ico--max { --ico: url("assets/img/social/max.svg"); }
	.ico--mail { --ico: url("assets/img/social/mail.svg"); }
	@media (max-width: 800px) { .contacts { grid-template-columns: 1fr; } }

	/* СТРАНИЦА 404 */
	.e404 { min-height: 100svh; display: flex; align-items: center; padding-top: calc(7rem + var(--strip-h)); padding-bottom: clamp(3rem, 7vw, 6rem); text-align: center; }
	.e404 .wrap { display: flex; flex-direction: column; align-items: center; }
	.e404__num { display: flex; align-items: center; justify-content: center; gap: clamp(.25rem, 1.5vw, 1.25rem); margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); font: 700 clamp(7rem, 4rem + 17vw, 17rem)/.8 var(--f-head); color: transparent; -webkit-text-stroke: 1.5px var(--p-burgundy); }
	.e404__zero { position: relative; display: grid; place-items: center; width: .82em; height: .82em; border: 1.5px solid var(--p-burgundy); border-radius: 50%; overflow: hidden; }
	.e404__art { position: absolute; left: 50%; bottom: 0; width: auto; height: 92%; max-width: none; transform: translateX(-50%); mix-blend-mode: multiply; }
	.e404__title { margin: 0 0 1rem; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem); line-height: 1.08; }
	.e404__text { max-width: 34rem; margin: 0 auto 2rem; color: var(--c-text-soft); }
	.e404__search { display: flex; align-items: stretch; gap: .75rem; width: min(100%, 30rem); margin-bottom: 2.5rem; }
	.e404__search input, .e404__search .btn { box-sizing: border-box; height: 3.25rem; min-height: 3.25rem; }
	.e404__search input { flex: 1; min-width: 0; padding: 0 1rem; border: 1.5px solid var(--c-line); background: var(--p-white); color: var(--c-text); font: inherit; }
	.e404__search input:focus { outline: 2px solid var(--c-focus); outline-offset: 1px; border-color: var(--p-gold); }
	.e404__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 2.5rem; margin: 0; padding: 0; list-style: none; }
	.e404__links .arrow { color: var(--c-accent); }
	.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

	/* ВНУТРЕННЯЯ СТРАНИЦА: фото на всю ширину ПОД шапкой (шапка не закрывает снимок), под фото крошки слева, затем заголовок по центру.
	   Одна колонка содержимого .wrap--page (66 rem); текст-статья 44 rem по центру; широкие блоки (плитки, списки, галереи) на всю колонку. */
	.wrap--page { max-width: calc(66rem + var(--gutter) * 2); }
	.pagehero { position: relative; isolation: isolate; display: flex; align-items: flex-end; height: clamp(12rem, 24vw, 22rem); margin-top: calc(var(--strip-h) + 5.25rem); background: var(--p-burgundy-deep) var(--hero, none) center 100% / cover no-repeat; color: var(--p-white); }
		.pagehero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(22, 12, 10, .45); } /* ровное нейтральное затемнение без градиента; цвета фото сохраняются */
	.pagehero .wrap { padding-bottom: clamp(1.25rem, 3vw, 2.5rem); }
	.pagehero__pre { display: block; font: 700 clamp(.6rem, .45rem + .5vw, .8rem)/1.3 var(--f-body); letter-spacing: .3em; text-transform: uppercase; color: rgba(247, 243, 236, .92); }
	.pagehero__name { display: block; margin: .4rem 0 0; font: 600 clamp(1.5rem, .9rem + 2.4vw, 3rem)/1.05 var(--f-head); color: var(--p-white); }
	.pagehead { padding-top: 1.5rem; padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
	.pagehead .crumbs { margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); }
	.pagehead__title { margin: 0 auto; max-width: 30ch; text-align: center; color: var(--c-heading); font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem); line-height: 1.08; }
	.pagehead__title::after { content: ""; display: block; width: 4rem; height: 3px; margin: 1.5rem auto 0; background: var(--p-gold); }
	.article--page { padding-top: 0; display: flow-root; } /* flow-root: верхний отступ первого блока не вылезает наружу и не открывает кремовый фон страницы полосой */
	.entry.entry--wide { max-width: none; }
	/* Ширина текста внутренней страницы = ширина списков (62 rem, как у «Архива МБКБ»), выравнивание по левому краю (решение заказчика 18.10.2026) */
	.entry--wide > p, .entry--wide > h2, .entry--wide > h3, .entry--wide > h4, .entry--wide > ul:not(.columns-2):not(.tiles), .entry--wide > ol, .entry--wide > blockquote, .entry--wide > table, .entry--wide > hr, .entry--wide > figure.wp-block-image, .entry--wide > .wp-block-embed { max-width: 62rem; margin-inline: auto; }
	/* Остатки импорта из Elementor (обёртки-виджеты с текстом и заголовком) выравниваем так же, как обычные абзацы: иначе старый текст стоит левее нового (то же поле 62 rem по центру колонки) */
	.entry--wide > .elementor-element.elementor-widget-heading, .entry--wide > .elementor-element.elementor-widget-text-editor { max-width: 62rem; margin-inline: auto; }
	.entry--lead > p { text-align: center; }
	.entry--wide > .partners { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
	.entry .partners .org__name { margin: 0 0 .5rem; font-size: var(--t-2xl); line-height: 1.05; }
	.entry .partners--page .partners__group + .partners__group { margin-top: clamp(2.5rem, 5vw, 4rem); }
	.entry .logos li { padding-left: 0; margin: 0; }
	.entry .logos li::before { display: none; }
	.entry .logos a, .entry .logos a:hover { text-decoration: none; }
	.entry .logos img { display: inline-block; }
	.entry .soon { font-size: .9375rem; color: var(--c-text); }
	.entry [id] { scroll-margin-top: 8rem; }
	.entry .poem { line-height: 1.6; }
	.entry .wp-block-embed.wp-block-embed--form iframe { aspect-ratio: auto; height: 3900px; background: var(--p-white); } /* анкета волонтёра ~3700 px высотой: рамка не должна обрезать форму; JS подгоняет точнее, если Яндекс сообщит высоту */
	@media (max-width: 720px) { .entry .wp-block-embed.wp-block-embed--form iframe { height: 4700px; } }
	@media (max-width: 480px) { .entry .wp-block-embed.wp-block-embed--form iframe { height: 5400px; } }
	.pagehead.on-light, .article--page.on-light { background: var(--p-white); } /* внутренние страницы целиком на белом, без деления на два фона (заказчик 18.10.2026) */
	.entry--wide > * + .columns-2, .entry--wide > * + .wp-block-gallery, .entry--wide > * + .wp-block-buttons { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
	.entry .wp-block-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
	.entry .wp-block-button__link { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 1.75rem; border: 1.5px solid var(--c-accent); background: transparent; color: var(--c-accent); font-weight: 700; letter-spacing: .02em; text-transform: none; text-decoration: none; transition: background .2s, color .2s; }
	.entry .wp-block-button__link:hover { background: var(--c-accent); color: var(--p-white); }
	/* Человек / награда: фото слева, имя и текст справа */
	.entry .person { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: 1.5rem 2.25rem; align-items: start; max-width: 62rem; margin: clamp(2rem, 4vw, 3rem) auto; }
	.entry .person > figure { margin: 0; }
	.entry .person--cert { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); align-items: center; }
	.entry .person--cert .person__text > h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
	.entry .person--cert figure a { display: block; cursor: zoom-in; }
	.entry .person img { width: 100%; height: auto; }
	.entry .person__text > h2 { margin-top: 0; }
	.entry .person__text > * + * { margin-top: .9em; }
	@media (max-width: 620px) { .entry .person { grid-template-columns: 1fr; } .entry .person > figure { max-width: 14rem; } }
	.entry .tiles li { padding: 0; margin: 0; }
	.entry .tiles li::before { display: none; }
	.entry .tiles a, .entry .tiles a:hover { color: inherit; text-decoration: none; }
	.entry .tiles__link { display: flex; flex-direction: column; align-items: center; gap: 1rem; height: 100%; padding: 1.5rem 1rem 1.25rem; background: var(--p-white); border: 1px solid var(--c-line); text-align: center; }
	.entry .tiles a.tiles__link:hover { border-color: var(--p-gold); }
	.entry .videopair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; max-width: 62rem; margin-inline: auto; }
	.entry .videopair figure { margin: 0; }
	.entry--wide:has(.videopair) > h3 { max-width: 62rem; }
	@media (max-width: 700px) { .entry .videopair { grid-template-columns: 1fr; } }
	/* Список в две колонки (организации региона) */
	.entry .columns-2 { columns: 2; column-gap: 3rem; max-width: 62rem; margin-inline: auto; }
	.entry .columns-2 li { break-inside: avoid; padding-block: .7rem; margin: 0; border-bottom: 1px solid var(--c-line); }
	.entry .columns-2 li::before { top: 1.55em; }
	.entry .columns-2 li a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: inherit; text-decoration: none; font-weight: 400; }
	.entry .columns-2 li a::after { width: 1.75rem; flex: none; color: var(--p-gold); }
	.entry .columns-2 li a:hover { color: var(--c-accent); }
	/* Галерея (письма, фото): колонки, картинки целиком без обрезки, по клику увеличиваются */
	.entry .wp-block-gallery { display: block; columns: 3 15rem; column-gap: 2rem; margin: 0; padding: 0; list-style: none; }
	.entry .wp-block-gallery .wp-block-image, .entry .wp-block-gallery figure { margin: 0 0 2rem; break-inside: avoid; }
	.entry .wp-block-gallery a { display: block; background: var(--p-white); box-shadow: 0 .25rem 1rem rgba(41, 26, 20, .08); transition: box-shadow .3s var(--ease), transform .3s var(--ease); }
	.entry .wp-block-gallery a:hover { box-shadow: 0 .75rem 1.75rem rgba(41, 26, 20, .16); transform: translateY(-3px); }
	.entry .wp-block-gallery img { display: block; width: 100%; height: auto; }
	.entry .wp-block-gallery figcaption { margin: .75rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--c-text-soft); }
	.entry .wp-block-embed iframe, .entry .wp-block-embed__wrapper iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
	/* Плитки подразделов: регионы, номинации, годы */
	.tiles { display: grid; grid-template-columns: repeat(auto-fit, 12rem); justify-content: center; gap: 1.25rem; margin: clamp(2rem, 4vw, 3rem) auto 0; padding: 0; list-style: none; max-width: 66rem; }
	.tiles__link { display: flex; flex-direction: column; align-items: center; gap: 1rem; height: 100%; padding: 1.5rem 1rem 1.25rem; background: var(--p-white); border: 1px solid var(--c-line); text-align: center; text-decoration: none; transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease); }
	.tiles__link:hover, .tiles__link:focus-visible { border-color: var(--p-gold); box-shadow: 0 1rem 2rem -.75rem rgba(41, 26, 20, .2); transform: translateY(-3px); }
	.tiles__img { display: flex; align-items: center; justify-content: center; height: 5.5rem; }
	.tiles__img img { max-width: 5.5rem; max-height: 5.5rem; width: auto; height: auto; object-fit: contain; }
	.tiles__title { font: 600 var(--t-base)/1.25 var(--f-head); color: var(--c-accent); }
	@media (max-width: 700px) { .entry .columns-2 { columns: 1; } }
	/* Список новостей (архив рубрики): сетка тех же карточек, что в ленте */
	.newsgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.5rem, 4vw, 4rem) clamp(1.5rem, 3vw, 3rem); margin: 0; padding: 0 0 1rem; list-style: none; }
	.newsgrid .newsbelt__item { flex: none; }
	.newsgrid .newsbelt__img img[src*="zaglushka"] { object-fit: contain; padding: 15%; }
	.newslist .navigation.pagination { margin-top: clamp(2.5rem, 5vw, 4rem); }
	.newslist .nav-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; }
	.newslist .page-numbers { display: inline-flex; min-width: 2.5rem; height: 2.5rem; padding: 0 .9rem; align-items: center; justify-content: center; border: 1px solid var(--c-line); color: var(--c-text); font-weight: 600; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
	.newslist a.page-numbers:hover { border-color: var(--p-gold); color: var(--c-accent); }
	.newslist .page-numbers.current { background: var(--c-accent); border-color: var(--c-accent); color: var(--p-white); }
	.newslist .page-numbers.dots { border-color: transparent; }
	.newslist__empty { text-align: center; color: var(--c-text-soft); }
	@media (max-width: 1000px) { .newsgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
	@media (max-width: 620px) { .newsgrid { grid-template-columns: 1fr; } }
	.article { padding-bottom: clamp(3rem, 6vw, 5.5rem); }
	.article__head { padding-top: calc(9rem + var(--strip-h)); padding-bottom: clamp(2rem, 4vw, 3rem); text-align: center; }
	.crumbs { display: flex; flex-wrap: wrap; justify-content: flex-start; text-align: left; gap: .35rem .6rem; margin-bottom: 1.75rem; font-size: .8125rem; color: var(--c-text-soft); }
	.crumbs a { color: var(--c-text-soft); text-decoration: none; }
	.crumbs a:hover { color: var(--c-accent); text-decoration: underline; }
	.article__title { max-width: 40ch; margin: 0 auto; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem); line-height: 1.08; }
	.article__title::after { content: ""; display: block; width: 4rem; height: 3px; margin: 1.5rem auto 0; background: var(--p-gold); }
	/* Новость: фото целиком слева (без обрезки), текст справа; на узком экране друг под другом */
	.article__body.has-media { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; max-width: 66rem; margin-inline: auto; }
	.article__body.has-media .entry { max-width: none; margin: 0; }
	.article__media { position: relative; max-width: 44rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); padding: 0 .9rem .9rem 0; }
	.has-media .article__media { order: 2; position: sticky; top: 7rem; width: 100%; margin: 0; }
	.article__media::before { content: ""; position: absolute; inset: .9rem 0 0 .9rem; border: 1.5px solid var(--p-gold); pointer-events: none; }
	.article__img { position: relative; display: block; width: 100%; height: auto; background: var(--p-white); }
	.entry { max-width: 44rem; margin-inline: auto; font-size: 1.0625rem; line-height: 1.75; color: var(--c-text); }
	.entry > * + * { margin-top: 1.25em; }
	.entry h2, .entry h3, .entry h4 { margin-top: 2em; color: var(--c-accent); line-height: 1.15; }
	.entry h2 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); }
	.entry h3 { font-size: 1.1875rem; }
	.entry a { color: var(--c-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
	.entry a:hover { color: var(--c-text); }
	.entry strong { font-weight: 700; }
	.entry ul, .entry ol { padding: 0; list-style: none; counter-reset: li; }
	.entry li { position: relative; padding-left: 1.6rem; margin-bottom: .45em; }
	.entry ul li::before { content: ""; position: absolute; left: 0; top: .85em; width: .9rem; height: 1.5px; background: var(--p-gold); }
	.entry ol li { counter-increment: li; }
	.entry ol li::before { content: counter(li) "."; position: absolute; left: 0; top: 0; font-weight: 700; color: var(--c-accent); }
	.entry blockquote { margin-inline: 0; padding: .25rem 0 .25rem 1.5rem; border-left: 2px solid var(--p-gold); font: 500 1.375rem/1.4 var(--f-head); color: var(--c-accent); }
	.entry figure, .entry .wp-block-image { margin-inline: 0; }
	.entry img { display: block; max-width: 100%; height: auto; }
	.entry figcaption { margin-top: .6rem; font-size: .875rem; line-height: 1.5; color: var(--c-text-soft); }
	.entry hr { border: 0; border-top: 1px solid var(--c-line); margin-block: 2.5rem; }
	.entry table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
	.entry th, .entry td { padding: .7rem .9rem; border-bottom: 1px solid var(--c-line); text-align: left; }
	.article__back { max-width: 44rem; margin: clamp(2.5rem, 5vw, 3.5rem) auto 0; padding-top: 1.75rem; border-top: 1px solid var(--c-line); text-align: center; }
	.article__back .arrow { color: var(--c-accent); }
	@media (max-width: 860px) { .article__body.has-media { display: block; max-width: 44rem; } .has-media .article__media { position: relative; top: 0; margin-bottom: 2.5rem; } }
	@media (max-width: 640px) { .entry { font-size: 1rem; } .article__media { padding: 0 .6rem .6rem 0; } .article__media::before { inset: .6rem 0 0 .6rem; } }
	/* УЧАСТНИКИ БАЛА ГОДА: поиск, гербы регионов, раскрывающийся список учебных заведений с фото делегации (inc/participants.php) */
	.parts { max-width: 66rem; margin-inline: auto; }
	.parts__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 2rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
	.parts__search { flex: 1 1 22rem; max-width: 34rem; }
	.parts__search input { box-sizing: border-box; width: 100%; height: 3.25rem; padding: 0 1rem 0 3rem; border: 1px solid var(--c-line); border-radius: 0; background: var(--p-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236E0F26' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") no-repeat 1rem 50%; color: var(--c-text); font: inherit; font-size: 1rem; }
	.parts__search input:focus { outline: 2px solid var(--c-focus); outline-offset: 1px; border-color: var(--p-gold); }
	.parts__count { margin: 0; font-size: .875rem; color: var(--c-text-soft); }
	.entry .parts ul, .entry .parts li { padding: 0; margin: 0; list-style: none; }
	.entry .parts li::before { display: none; }
	.entry .parts a, .entry .parts a:hover { text-decoration: none; color: inherit; }
	.parts__regions { position: relative; }
	.parts [hidden] { display: none !important; }
	.parts.is-js .parts__regions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
	.parts__tile { display: flex; flex-direction: column; align-items: center; gap: .5rem; width: 100%; height: 100%; padding: 1.25rem .75rem 1rem; border: 1px solid var(--c-line); background: var(--p-white); color: var(--c-text); font: inherit; text-align: center; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
	.parts__tile:hover { border-color: var(--p-gold); box-shadow: 0 .5rem 1.25rem rgba(41, 26, 20, .08); }
	.parts__tile:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
	.parts__region.is-open .parts__tile { border-color: var(--p-burgundy); background: var(--p-paper); box-shadow: 0 2px 0 var(--p-burgundy); }
	.parts__gerb { display: flex; align-items: center; justify-content: center; height: 5.5rem; }
	.parts__gerb img { width: auto; height: 100%; max-width: 5rem; object-fit: contain; }
	.parts__name { font: 600 1.0625rem/1.2 var(--f-head); color: var(--c-heading); }
	.parts__n { font-size: .8125rem; color: var(--c-text-soft); }
	.entry .parts .parts__drawer { grid-column: 1 / -1; padding: clamp(1.25rem, 3vw, 2rem); border-top: 2px solid var(--p-gold); background: var(--p-paper); }
	.parts__title { margin: 0 0 1.25rem; font: 600 clamp(1.25rem, 1.1rem + .6vw, 1.5rem)/1.2 var(--f-head); color: var(--c-heading); }
	.parts.is-js .parts__panel { display: none; }
	.parts.is-js .parts__drawer .parts__panel { display: block; }
	.parts__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.5rem 1.25rem; }
	.parts__card { display: block; }
	.parts__zoom { display: block; cursor: zoom-in; }
	.parts__photo { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; overflow: hidden; background: var(--p-beige); }
	.parts__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
	.parts__zoom:hover .parts__photo img { transform: scale(1.04); }
	.parts__zoom:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
	.parts__label { display: block; margin-top: .6rem; font-size: .9375rem; line-height: 1.4; color: var(--c-text); }
	.parts__reg { display: block; margin-top: .25rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--p-gold-hover); }
	.parts.is-js.parts--plain .parts__regions { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
	.parts__sep { grid-column: 1 / -1; list-style: none; margin: 1.5rem 0 .25rem; padding-top: 1.25rem; border-top: 1px solid var(--p-gold); text-align: center; }
	.parts__sep h3 { font: 600 clamp(1.25rem, 2.4vw, 1.75rem)/1.2 var(--f-head); color: var(--p-burgundy); letter-spacing: .02em; }
	.parts__tile--text { justify-content: center; min-height: 6.5rem; }
	.parts__sub { display: block; margin-top: .2rem; font-size: .8125rem; line-height: 1.4; color: var(--c-text-soft); }
	.parts--video .parts__photo { position: relative; background: var(--p-burgundy-deep); }
	.parts__play { position: absolute; left: 50%; top: 50%; width: 3.5rem; height: 3.5rem; margin: -1.75rem 0 0 -1.75rem; border: 1.5px solid var(--p-cream); border-radius: 50%; background: rgba(22, 12, 10, .55); transition: background .25s, transform .25s; }
	.parts__play::after { content: ""; position: absolute; left: 50%; top: 50%; margin: -.55rem 0 0 -.3rem; border-style: solid; border-width: .55rem 0 .55rem .9rem; border-color: transparent transparent transparent var(--p-cream); }
	.parts__zoom:hover .parts__play { background: var(--p-burgundy); transform: scale(1.08); }
	.parts--video .parts__photo { aspect-ratio: 16 / 9; }
	.parts__badge { position: absolute; right: .5rem; bottom: .5rem; padding: .25rem .55rem; background: rgba(22, 12, 10, .72); color: var(--p-cream); font-size: .75rem; font-weight: 600; letter-spacing: .02em; }
	.zoom-dialog__list { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
	.zoom-dialog__list button { min-height: 2.25rem; padding: 0 .9rem; border: 1px solid rgba(247, 243, 236, .4); background: rgba(247, 243, 236, .08); color: var(--p-cream); font: 600 .8125rem/1 var(--f-body); cursor: pointer; }
	.zoom-dialog__list button.is-on, .zoom-dialog__list button:hover { background: var(--p-burgundy); border-color: var(--p-gold); }
	.zoom-dialog__frame { width: min(92vw, 60rem); aspect-ratio: 16 / 9; max-height: 74vh; border: 0; background: #000; box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .5); }
	.zoom-dialog__video { max-width: min(92vw, 60rem); max-height: 74vh; width: auto; height: auto; background: #000; box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .5); }
	.parts__soon { font-size: .8125rem; color: var(--c-text-soft); }
	.parts__card--empty .parts__photo { background: linear-gradient(180deg, var(--p-white), var(--p-cream)); } /* нет фото: наша заглушка, пара на фоне Кремля (как у новостей без обложки; заказчик 19.10.2026) */
	.parts__card--empty .parts__photo img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; mix-blend-mode: multiply; padding: 4% 8% 0; box-sizing: border-box; }
	.parts__results { margin-top: .5rem; }
	.parts__none { margin: 2rem 0; text-align: center; color: var(--c-text-soft); }
	@media (max-width: 1000px) { .parts.is-js .parts__regions { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
	@media (max-width: 780px) { .parts.is-js .parts__regions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; } }
	@media (max-width: 520px) { .parts.is-js .parts__regions { grid-template-columns: repeat(2, minmax(0, 1fr)); } .parts__gerb { height: 4.5rem; } .parts__list { grid-template-columns: 1fr; } }
	.zoom-dialog__fig { display: flex; flex-direction: column; align-items: center; gap: .9rem; margin: 0; }
	.zoom-dialog__cap { max-width: min(92vw, 52rem); margin: 0; color: var(--p-cream); font-size: .9375rem; line-height: 1.4; text-align: center; }
		.zoom-dialog__cap:empty { display: none; }
	.zoom-dialog__fig { margin-bottom: 3.5rem; }
	.zoom-dialog__share { position: absolute; left: 0; right: 0; bottom: 1.1rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem .6rem; padding-inline: 1rem; }
	.share__btn { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.5rem; padding: 0 .95rem; border: 1px solid rgba(247, 243, 236, .4); border-radius: 0; background: rgba(247, 243, 236, .08); color: var(--p-cream); font: 600 .8125rem/1 var(--f-body); cursor: pointer; transition: background .2s, border-color .2s; }
	.share__btn:hover { background: rgba(247, 243, 236, .2); border-color: var(--p-gold); }
	.share__btn .ico { width: 1.1rem; height: 1.1rem; background-color: currentColor; }

}

/* Страховка: стили кнопок блока ядра WordPress (серая «таблетка») идут без слоя и сильнее слоёв; кнопки в тексте страниц задаём здесь, вне слоя */
.entry .wp-block-button__link { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 1.75rem; border: 1.5px solid var(--c-accent); border-radius: 0; background: transparent; color: var(--c-accent); font-size: inherit; font-weight: 700; letter-spacing: .02em; text-transform: none; text-decoration: none; }
.entry .wp-block-button__link:hover { background: var(--c-accent); color: var(--p-white); }
