/**
 * Sinmis — новый дизайн (оливково-зелёный + крем).
 *
 * Загружается ПОСЛЕ старых css/style.css и css/style-adaptive.css, поэтому
 * перекрывает их. Вся новая вёрстка использует префикс `sm-`, чтобы не
 * конфликтовать со старой темой, которая продолжает обслуживать внутренние страницы.
 */

/* ==========================================================================
   1. Токены
   ========================================================================== */

:root {
	--sm-olive-900: #2C3A1F;
	--sm-olive-800: #3A4D28;
	--sm-olive-700: #4A6B3A;
	--sm-olive-600: #5C8248;
	--sm-olive-500: #7A9B62;
	--sm-olive-200: #D3E0C4;
	--sm-olive-100: #E6EDDC;
	--sm-olive-50: #F2F6EC;

	--sm-cream: #FAF7F0;
	--sm-cream-2: #F3EDE0;
	--sm-white: #FFFFFF;

	--sm-ink: #23261F;
	--sm-ink-2: #414A38;
	--sm-muted: #78806B;
	--sm-line: #E3DED0;
	--sm-gold: #C9A227;

	--sm-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
	--sm-font-head: Georgia, 'Times New Roman', 'PT Serif', serif;

	--sm-radius: 14px;
	--sm-radius-sm: 10px;
	--sm-shadow: 0 10px 30px rgba(35, 38, 31, .07);
	--sm-shadow-hover: 0 18px 44px rgba(35, 38, 31, .13);
	--sm-wrap: 1240px;
}

/* ==========================================================================
   2. База
   ========================================================================== */

body.sm-body {
	background: var(--sm-cream);
	color: var(--sm-ink);
	font-family: var(--sm-font);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

.sm-body a {
	color: var(--sm-olive-700);
}

.sm-body a:hover {
	color: var(--sm-olive-900);
}

.sm-main {
	display: block;
}

body.sm-no-scroll {
	overflow: hidden;
}

.sm-wrap {
	width: 100%;
	max-width: var(--sm-wrap);
	margin: 0 auto;
	padding: 0 24px;
}

.sm-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--sm-olive-700);
	color: #fff;
	padding: 10px 16px;
	z-index: 999;
}

.sm-skip:focus {
	left: 12px;
	top: 12px;
}

.sm-ico {
	display: block;
	flex: 0 0 auto;
}

/* ==========================================================================
   3. Кнопки
   ========================================================================== */

.sm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--sm-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
	white-space: nowrap;
}

.sm-btn--accent {
	background: var(--sm-olive-700);
	color: #fff !important;
}

.sm-btn--accent:hover {
	background: var(--sm-olive-900);
	color: #fff !important;
	transform: translateY(-1px);
}

.sm-btn--ghost {
	background: transparent;
	color: var(--sm-olive-800) !important;
	border-color: var(--sm-olive-200);
}

.sm-btn--ghost:hover {
	background: var(--sm-olive-50);
	border-color: var(--sm-olive-500);
}

.sm-btn--light {
	background: #fff;
	color: var(--sm-olive-800) !important;
}

/* ==========================================================================
   4. Верхняя служебная полоса
   ========================================================================== */

.sm-topbar {
	background: var(--sm-olive-900);
	color: rgba(255, 255, 255, .72);
	font-size: 13px;
}

.sm-topbar__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 42px;
	flex-wrap: wrap;
}

.sm-topbar__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
}

.sm-topbar__nav a,
.sm-topbar__right a {
	color: rgba(255, 255, 255, .78) !important;
	text-decoration: none;
}

.sm-topbar__nav a:hover,
.sm-topbar__right a:hover {
	color: #fff !important;
}

.sm-topbar__right {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}

.sm-topbar__lang {
	font-weight: 600;
	letter-spacing: .06em;
}

/* ==========================================================================
   5. Шапка
   ========================================================================== */

.sm-header {
	background: var(--sm-white);
	border-bottom: 1px solid var(--sm-line);
}

.sm-header__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding-top: 20px;
	padding-bottom: 20px;
}

.sm-brand {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none;
	min-width: 0;
}

.sm-brand__logo {
	width: 56px;
	height: 56px;
	object-fit: contain;
	background: var(--sm-olive-50);
	border-radius: 12px;
	padding: 6px;
}

.sm-brand__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.sm-brand__title {
	font-family: var(--sm-font-head);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--sm-olive-900);
}

.sm-brand__sub {
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--sm-muted);
	max-width: 520px;
}

.sm-header__actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 auto;
}

.sm-search-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--sm-line);
	border-radius: 50%;
	background: var(--sm-white);
	color: var(--sm-olive-800);
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease;
}

.sm-search-btn:hover {
	background: var(--sm-olive-50);
	border-color: var(--sm-olive-200);
}

/* ==========================================================================
   6. Навигация
   ========================================================================== */

.sm-nav {
	background: var(--sm-olive-50);
	border-bottom: 1px solid var(--sm-line);
	position: sticky;
	top: 0;
	z-index: 60;
}

.sm-nav__in {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: 56px;
}

.sm-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
}

.sm-menu > li {
	position: relative;
}

.sm-menu > li > a {
	display: block;
	padding: 10px 14px;
	border-radius: 8px;
	color: var(--sm-olive-900) !important;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .16s ease;
}

.sm-menu > li > a:hover,
.sm-menu > li.current-menu-item > a,
.sm-menu > li.current-menu-ancestor > a {
	background: var(--sm-olive-100);
}

.sm-menu .sub-menu {
	position: absolute;
	left: 0;
	top: calc(100% + 6px);
	min-width: 250px;
	background: #fff;
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius-sm);
	box-shadow: var(--sm-shadow);
	list-style: none;
	margin: 0;
	padding: 8px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
	z-index: 70;
}

.sm-menu > li:hover > .sub-menu,
.sm-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.sm-menu .sub-menu a {
	display: block;
	padding: 9px 12px;
	border-radius: 8px;
	color: var(--sm-ink-2) !important;
	font-size: 14px;
	text-decoration: none;
}

.sm-menu .sub-menu a:hover {
	background: var(--sm-olive-50);
	color: var(--sm-olive-900) !important;
}

.sm-nav__socials {
	flex: 0 0 auto;
}

.sm-nav__socials img {
	width: 22px;
	height: 22px;
	margin-left: 10px;
	opacity: .75;
	transition: opacity .16s ease;
	display: inline-block;
	vertical-align: middle;
}

.sm-nav__socials a:hover img {
	opacity: 1;
}

.sm-nav__toggle {
	display: none;
	align-items: center;
	gap: 10px;
	background: transparent;
	border: 0;
	padding: 10px 0;
	color: var(--sm-olive-900);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.sm-nav__burger {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
	width: 20px;
}

.sm-nav__burger i {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}

/* ==========================================================================
   7. Поиск
   ========================================================================== */

.sm-search {
	background: var(--sm-white);
	border-bottom: 1px solid var(--sm-line);
	padding: 18px 0;
}

.sm-search__form {
	display: flex;
	gap: 10px;
	max-width: 720px;
}

.sm-search__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 13px 18px;
	border: 1px solid var(--sm-line);
	border-radius: 999px;
	background: var(--sm-cream);
	font-family: var(--sm-font);
	font-size: 15px;
	color: var(--sm-ink);
}

.sm-search__input:focus {
	outline: 2px solid var(--sm-olive-500);
	outline-offset: 1px;
}

/* ==========================================================================
   8. Мобильное меню
   ========================================================================== */

.sm-mobile {
	position: fixed;
	inset: 0;
	background: rgba(44, 58, 31, .55);
	z-index: 200;
	overflow: auto;
}

.sm-mobile__inner {
	background: var(--sm-cream);
	min-height: 100%;
	width: min(420px, 88%);
	padding: 28px 24px 40px;
}

.sm-mobile__menu {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.sm-mobile__menu a {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--sm-line);
	color: var(--sm-olive-900) !important;
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
}

.sm-mobile__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 16px;
}

.sm-mobile__menu .sub-menu a {
	font-size: 15px;
	font-weight: 400;
	color: var(--sm-ink-2) !important;
}

.sm-mobile__cta {
	width: 100%;
}

/* ==========================================================================
   9. Лендинг — общее
   ========================================================================== */

.sm-section {
	padding: 64px 0;
}

.sm-section--tight {
	padding-bottom: 84px;
}

.sm-section--tint {
	background: var(--sm-white);
}

.sm-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 28px;
	border-bottom: 1px solid var(--sm-line);
	padding-bottom: 14px;
}

.sm-section__title {
	font-family: var(--sm-font-head);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--sm-olive-900);
	margin: 0;
}

.sm-section__all {
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-olive-700) !important;
	text-decoration: none;
	white-space: nowrap;
}

.sm-section__all::after {
	content: ' →';
}

.sm-grid {
	display: grid;
	gap: 26px;
}

.sm-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sm-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sm-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* ==========================================================================
   10. Hero
   ========================================================================== */

.sm-hero {
	background:
		radial-gradient(1100px 420px at 88% -10%, rgba(122, 155, 98, .22), transparent 62%),
		var(--sm-cream-2);
	border-bottom: 1px solid var(--sm-line);
}

.sm-hero__in {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 44px;
	align-items: center;
	padding-top: 62px;
	padding-bottom: 62px;
}

.sm-hero__eyebrow {
	margin: 0 0 14px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sm-olive-600);
}

.sm-hero__title {
	font-family: var(--sm-font-head);
	font-size: clamp(34px, 4.6vw, 54px);
	font-weight: 700;
	line-height: 1.08;
	color: var(--sm-olive-900);
	margin: 0 0 18px;
}

.sm-hero__lead {
	font-size: 17px;
	line-height: 1.6;
	color: var(--sm-ink-2);
	margin: 0 0 28px;
	max-width: 60ch;
}

.sm-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.sm-hero__links {
	display: grid;
	gap: 1px;
	background: var(--sm-line);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	overflow: hidden;
}

.sm-hero__links a {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 18px 22px;
	background: var(--sm-white);
	text-decoration: none;
	transition: background-color .16s ease;
}

.sm-hero__links a:hover {
	background: var(--sm-olive-50);
}

.sm-hero__links span {
	font-size: 16px;
	font-weight: 600;
	color: var(--sm-olive-900) !important;
}

.sm-hero__links small {
	font-size: 13px;
	color: var(--sm-muted);
}

/* ==========================================================================
   11. Карточка записи
   ========================================================================== */

.sm-card {
	display: flex;
	flex-direction: column;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.sm-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sm-shadow-hover);
	border-color: var(--sm-olive-200);
}

.sm-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--sm-olive-50);
}

.sm-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}

.sm-card:hover .sm-card__media img {
	transform: scale(1.04);
}

.sm-card__nophoto {
	display: block;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(135deg, var(--sm-olive-100), var(--sm-olive-50));
}

.sm-card__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 18px 22px 0;
	font-size: 12.5px;
}

.sm-card__date {
	color: var(--sm-muted);
	font-weight: 600;
}

.sm-card__cat a,
.sm-card__cat {
	color: var(--sm-olive-600) !important;
	font-weight: 600;
	text-decoration: none;
}

.sm-card__body {
	padding: 10px 22px 24px;
}

.sm-card__title {
	font-family: var(--sm-font-head);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.32;
	margin: 0;
}

.sm-card__title a {
	color: var(--sm-ink) !important;
	text-decoration: none;
}

.sm-card__title a:hover {
	color: var(--sm-olive-700) !important;
}

.sm-card__excerpt {
	margin: 10px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--sm-muted);
}

.sm-card--wide .sm-card__media {
	aspect-ratio: 21 / 9;
}

.sm-card--wide .sm-card__title {
	font-size: 22px;
}

/* ==========================================================================
   12. Плитки направлений
   ========================================================================== */

.sm-tile {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 30px 28px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: var(--sm-radius);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.sm-tile:hover {
	transform: translateY(-3px);
	box-shadow: var(--sm-shadow-hover);
}

.sm-tile__title {
	font-family: var(--sm-font-head);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--sm-olive-900);
}

.sm-tile__text {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--sm-muted);
	flex: 1 1 auto;
}

.sm-tile__more {
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-olive-700);
}

.sm-tile__more b {
	color: var(--sm-olive-900);
}

/* ==========================================================================
   13. Иконочные карточки
   ========================================================================== */

.sm-icon-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 28px 26px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.sm-icon-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sm-shadow-hover);
	border-color: var(--sm-olive-200);
}

.sm-icon-card__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--sm-olive-100);
	color: var(--sm-olive-700);
}

.sm-icon-card__title {
	font-size: 17px;
	font-weight: 700;
	color: var(--sm-olive-900);
}

.sm-icon-card__text {
	font-size: 14px;
	line-height: 1.55;
	color: var(--sm-muted);
}

/* ==========================================================================
   14. Панели «Об отделе» / ПМО
   ========================================================================== */

.sm-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
}

.sm-panel {
	padding: 34px 32px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
}

.sm-panel--accent {
	background: linear-gradient(150deg, var(--sm-olive-800), var(--sm-olive-700));
	border-color: transparent;
	color: rgba(255, 255, 255, .88);
}

.sm-panel__title {
	font-family: var(--sm-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--sm-olive-900);
	margin: 0 0 12px;
}

.sm-panel--accent .sm-panel__title {
	color: #fff;
}

.sm-panel__text {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--sm-muted);
}

.sm-panel--accent .sm-panel__text {
	color: rgba(255, 255, 255, .82);
}

.sm-panel__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.sm-panel__links a {
	color: var(--sm-olive-700) !important;
	font-weight: 600;
	text-decoration: none;
}

.sm-panel__links a::before {
	content: '— ';
	color: var(--sm-olive-500);
}

.sm-panel__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.sm-panel--accent .sm-btn--ghost {
	color: #fff !important;
	border-color: rgba(255, 255, 255, .45);
}

.sm-panel--accent .sm-btn--ghost:hover {
	background: rgba(255, 255, 255, .12);
	border-color: #fff;
}

/* ==========================================================================
   15. Подписка
   ========================================================================== */

.sm-subscribe {
	background: var(--sm-olive-900);
	color: #fff;
	padding: 52px 0;
}

.sm-subscribe__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}

.sm-subscribe__title {
	font-family: var(--sm-font-head);
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 8px;
	color: #fff;
}

.sm-subscribe__text p {
	margin: 0;
	color: rgba(255, 255, 255, .75);
	font-size: 15px;
}

.sm-subscribe__actions {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}

.sm-subscribe__actions .sm-btn--accent {
	background: #fff;
	color: var(--sm-olive-900) !important;
}

.sm-subscribe__actions .sm-btn--accent:hover {
	background: var(--sm-olive-100);
	color: var(--sm-olive-900) !important;
}

.sm-subscribe__socials img {
	width: 26px;
	height: 26px;
	margin-left: 12px;
	filter: brightness(0) invert(1);
	opacity: .8;
}

.sm-subscribe__socials img:hover {
	opacity: 1;
}

/* ==========================================================================
   16. Контакты
   ========================================================================== */

.sm-contact {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 24px 26px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
}

.sm-contact__label {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--sm-olive-600);
}

.sm-contact__value {
	font-size: 16px;
	color: var(--sm-ink);
	text-decoration: none;
}

a.sm-contact__value:hover {
	color: var(--sm-olive-700);
}

/* ==========================================================================
   17. Подвал
   ========================================================================== */

.sm-footer {
	display: block;
	padding: 56px 0 28px;
	background: var(--sm-olive-900);
	color: rgba(255, 255, 255, .72);
	font-size: 14px;
}

.sm-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 36px;
}

.sm-footer__brand {
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	margin-bottom: 16px;
}

.sm-footer__brand img {
	width: 48px;
	height: 48px;
	object-fit: contain;
	background: rgba(255, 255, 255, .1);
	border-radius: 10px;
	padding: 5px;
}

.sm-footer__brand span {
	display: flex;
	flex-direction: column;
	font-size: 12.5px;
	line-height: 1.4;
	color: rgba(255, 255, 255, .68);
}

.sm-footer__brand strong {
	font-family: var(--sm-font-head);
	font-size: 18px;
	color: #fff;
}

.sm-footer__about {
	margin: 0 0 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .62);
}

.sm-footer__socials img {
	width: 24px;
	height: 24px;
	margin-right: 12px;
	filter: brightness(0) invert(1);
	opacity: .72;
	display: inline-block;
	vertical-align: middle;
}

.sm-footer__socials img:hover {
	opacity: 1;
}

.sm-footer__title {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 16px;
}

.sm-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.sm-footer__menu a {
	color: rgba(255, 255, 255, .72) !important;
	text-decoration: none;
}

.sm-footer__menu a:hover {
	color: #fff !important;
}

.sm-footer__contacts {
	display: grid;
	gap: 10px;
	font-style: normal;
	margin-bottom: 20px;
}

.sm-footer__contacts a {
	color: rgba(255, 255, 255, .72) !important;
	text-decoration: none;
}

.sm-footer__contacts a:hover {
	color: #fff !important;
}

.sm-footer__cta {
	background: #fff;
	color: var(--sm-olive-900) !important;
}

.sm-footer__cta:hover {
	background: var(--sm-olive-100);
	color: var(--sm-olive-900) !important;
}

.sm-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 40px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .14);
	font-size: 13px;
	color: rgba(255, 255, 255, .55);
}

.sm-footer__dev a {
	color: rgba(255, 255, 255, .72) !important;
}

/* ==========================================================================
   18. Адаптив
   ========================================================================== */

@media (max-width: 1180px) {
	.sm-menu,
	.sm-nav__socials {
		display: none;
	}

	.sm-nav__toggle {
		display: inline-flex;
	}

	.sm-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sm-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.sm-hero__in {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
		padding-top: 44px;
		padding-bottom: 44px;
	}

	.sm-grid--3,
	.sm-split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sm-brand__title {
		font-size: 22px;
	}
}

@media (max-width: 720px) {
	.sm-wrap {
		padding: 0 18px;
	}

	.sm-topbar__in {
		justify-content: center;
		text-align: center;
		padding-top: 8px;
		padding-bottom: 8px;
	}

	.sm-topbar__nav {
		justify-content: center;
		gap: 14px;
	}

	.sm-topbar__right {
		justify-content: center;
		gap: 14px;
	}

	.sm-header__in {
		flex-wrap: wrap;
		gap: 16px;
	}

	.sm-brand__sub {
		display: none;
	}

	.sm-header__actions {
		width: 100%;
		justify-content: space-between;
	}

	.sm-section {
		padding: 44px 0;
	}

	.sm-section__title {
		font-size: 24px;
	}

	.sm-grid--2,
	.sm-grid--3,
	.sm-grid--4,
	.sm-split {
		grid-template-columns: minmax(0, 1fr);
	}

	.sm-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.sm-subscribe__in {
		flex-direction: column;
		align-items: flex-start;
	}

	.sm-search__form {
		flex-direction: column;
	}
}

/* Печать */
@media print {
	.sm-topbar,
	.sm-nav,
	.sm-search,
	.sm-mobile,
	.sm-subscribe,
	.sm-footer,
	.scroll-up {
		display: none !important;
	}
}

/* ==========================================================================
   19. Кнопка «Наверх» (перекрываем устаревший чёрный стиль старой темы)
   ========================================================================== */

.scroll-up {
	background-color: var(--sm-olive-700) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 9px 16px !important;
	font-size: 13px !important;
	font-weight: 600;
	right: 24px !important;
	box-shadow: var(--sm-shadow);
	z-index: 90 !important;
}

.scroll-up:hover {
	background-color: var(--sm-olive-900) !important;
}

.scroll-up::before {
	border-bottom-color: #fff !important;
}


/* ---------- Боковая колонка: области виджетов Elementor ---------- */
/* Обёртки заданы в register_sidebar(): .sm-widget / .sm-widget__title. */
.sm-widget {
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	padding: 20px 20px 18px;
	margin: 0 0 20px;
}

.sm-widget:last-child {
	margin-bottom: 0;
}

.sm-widget__title {
	font-family: var(--sm-font-head);
	font-size: 18px;
	line-height: 1.25;
	color: var(--sm-olive-900);
	margin: 0 0 12px;
}

.sm-widget .wp-block-heading {
	font-family: var(--sm-font-head);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--sm-olive-900);
	margin: 0 0 12px;
}

.sm-widget p {
	font-size: 15px;
	line-height: 1.6;
	color: var(--sm-ink-2);
	margin: 0 0 12px;
}

.sm-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sm-widget ul li {
	font-size: 15px;
	line-height: 1.6;
	color: var(--sm-ink-2);
	padding: 0 0 8px;
}

.sm-widget ul li:last-child {
	padding-bottom: 0;
}

.sm-widget a {
	color: var(--sm-olive-700);
	text-decoration: none;
}

.sm-widget a:hover {
	color: var(--sm-olive-900);
	text-decoration: underline;
}

.sm-widget .wp-block-latest-posts__featured-image img {
	border-radius: var(--sm-radius-sm);
	display: block;
	margin-bottom: 8px;
}

.sm-widget .wp-block-latest-posts__post-title {
	font-weight: 500;
}

.sm-widget .wp-block-latest-posts__post-date {
	display: block;
	font-size: 13px;
	color: var(--sm-muted);
	margin-top: 4px;
}

/* Липкая боковая колонка в шаблонах записи и страницы */
.sm-sticky-col {
	position: sticky;
	top: 24px;
}

@media (max-width: 1024px) {
	.sm-sticky-col {
		position: static;
	}
}
/* ---------- Окно поиска в шапке (скин full_screen) ---------- */
/* Окно открывается поверх тёмной подложки: текст белый, впереди значок лупы,
   чтобы поле сразу читалось как строка поиска. */
.elementor-search-form--skin-full_screen .elementor-search-form__container {
	background-color: #2C3A1F;
}

.elementor-search-form--skin-full_screen .elementor-search-form__input {
	color: #FFFFFF;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4.6-4.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 2px 50%;
	background-size: 22px 22px;
	padding-left: 36px !important;
}

.elementor-search-form--skin-full_screen .elementor-search-form__input::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

.elementor-search-form--skin-full_screen .elementor-search-form__close svg {
	fill: #FFFFFF;
}
/* Строка поиска: текст по левому краю — так значок лупы стоит прямо перед запросом,
   а не отдельно от центрированного текста. */
.elementor-search-form--skin-full_screen .elementor-search-form__input {
	text-align: left;
	max-width: 760px;
	margin: 0 auto;
	padding-right: 12px !important;
}
/* Elementor подключает свои стили позже темы, поэтому правила окна поиска
   приходится помечать !important (иначе они перебиваются). */
.elementor-search-form--skin-full_screen .elementor-search-form__input {
	text-align: left !important;
	max-width: 760px !important;
	margin: 0 auto !important;
	color: #FFFFFF !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4.6-4.6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: 2px 50% !important;
	background-size: 22px 22px !important;
	padding-left: 36px !important;
}

.elementor-search-form--skin-full_screen .elementor-search-form__input::placeholder {
	color: rgba(255, 255, 255, 0.6) !important;
}
/* ---------- Подрубрики: шорткод [sm_child_terms] ---------- */
/* Кнопки-«кирпичики»: ширину задаёт содержимое, ряд переносится (flex-wrap) —
   как кирпичная кладка, без фиксированных колонок. Фон у блока прозрачный. */
.sm-terms-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	margin: 6px 0 0;
	padding: 0;
	background: none;
	border: 0;
}

/* Шрифт и внутренние отступы — как у пунктов главного меню (`.sm-menu > li > a`). */
.sm-chip {
	display: inline-flex;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	padding: 10px 14px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: 8px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--sm-olive-900);
	text-decoration: none;
	overflow-wrap: anywhere;
	word-break: break-word;
	transition: background-color .16s ease, transform .18s ease, box-shadow .18s ease;
}

.sm-chip:hover {
	background: var(--sm-olive-100);
	transform: translateY(-2px);
	box-shadow: var(--sm-shadow-hover);
}

.sm-chip--active {
	border-color: var(--sm-olive-600);
	box-shadow: 0 0 0 2px var(--sm-olive-100);
}

@media (max-width: 600px) {
	.sm-chip {
		flex: 1 1 auto;
	}
}

/* ==========================================================================
   Библиотека материалов: сетка карточек, обложки-заглушки, бейджи,
   кнопки «Читать»/«Скачать», панель фильтров FacetWP и просмотр PDF.
   Токены — общие (олива / крем / белая карточка), префикс классов `.sm-lib-`.
   ========================================================================== */

/* ---------- Карточка материала (Loop Item шаблона 54) ---------- */

.sm-lib-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-top: 4px solid var(--sm-olive-600);
	border-radius: var(--sm-radius);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.sm-lib-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sm-shadow-hover);
	border-color: var(--sm-olive-200);
}

.sm-lib-card .e-con-inner,
.sm-lib-card__body {
	flex: 1 1 auto;
}

.sm-lib-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.sm-lib-card__media {
	display: block;
	text-decoration: none;
}

.sm-lib-card__title,
.sm-lib-card .elementor-widget-theme-post-title .elementor-heading-title {
	font-family: var(--sm-font-head);
	font-size: 19px;
	font-weight: 400;
	line-height: 1.28;
	color: var(--sm-olive-900);
	margin: 0;
}

.sm-lib-card .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

.sm-lib-card .elementor-heading-title a:hover {
	color: var(--sm-olive-700);
}

.sm-lib-card__text,
.sm-lib-card .sm-lib-annotation {
	font-size: 14.5px;
	line-height: 1.6;
	color: #5A6350;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sm-lib-card .sm-lib-actions {
	margin-top: auto;
}

/* ---------- Обложка: 3:4, изображение по cover, заглушка — олива ---------- */

.sm-lib-cover {
	position: relative;
	aspect-ratio: 3 / 4;
	width: 100%;
	overflow: hidden;
	background: var(--sm-cream-2);
}

.sm-lib-cover__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sm-lib-cover--placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	background: linear-gradient(150deg, var(--sm-olive-700) 0%, var(--sm-olive-900) 100%);
	color: #FFFFFF;
	text-align: center;
	padding: 20px;
}

.sm-lib-cover__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .13);
	border: 1px solid rgba(255, 255, 255, .28);
}

.sm-lib-cover__type {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .9);
	max-width: 90%;
	overflow-wrap: anywhere;
}

/* Обложка на странице материала: колонка 32%, поэтому ограничиваем высоту. */
.sm-lib-cover--single {
	border-radius: var(--sm-radius);
	border: 1px solid var(--sm-line);
	box-shadow: var(--sm-shadow);
}

.sm-lib-cover--single .sm-lib-cover__ico {
	width: 88px;
	height: 88px;
}

/* ---------- Бейджи ---------- */

.sm-lib-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.sm-lib-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.4;
	text-transform: uppercase;
}

.sm-lib-badge--type {
	background: var(--sm-cream-2);
	color: var(--sm-olive-900);
}

.sm-lib-badge--featured {
	background: var(--sm-olive-700);
	color: #FFFFFF;
}

.sm-lib-badge--new {
	background: var(--sm-olive-100);
	color: var(--sm-olive-800);
	border: 1px solid var(--sm-olive-200);
}

/* ---------- Строка метаданных ---------- */

.sm-lib-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--sm-ink-2);
}

.sm-lib-meta li {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
}

.sm-lib-meta li + li::before {
	content: "·";
	margin-right: 6px;
	color: var(--sm-muted);
}

.sm-lib-meta__label {
	font-size: 12px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sm-muted);
}

/* ---------- Счётчик скачиваний и кнопки ---------- */

.sm-lib-dl {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--sm-muted);
	white-space: nowrap;
}

.sm-lib-dl__num {
	color: var(--sm-olive-800);
	font-weight: 700;
}

.sm-lib-dl--zero {
	color: #9AA18C;
}

.sm-lib-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sm-lib-actions__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sm-lib-actions--card .sm-lib-actions__btns {
	width: 100%;
}

.sm-lib-actions--card .sm-lib-btn {
	flex: 1 1 0;
	min-width: 0;
}

.sm-lib-actions--single .sm-lib-dl {
	font-size: 13.5px;
}

.sm-lib-actions--empty {
	gap: 8px;
}

.sm-lib-card__soon {
	font-size: 13px;
	color: var(--sm-muted);
}

.sm-lib-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: var(--sm-font);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.sm-lib-actions--single .sm-lib-btn {
	height: 46px;
	padding: 0 24px;
	font-size: 15px;
}

.sm-lib-btn--read {
	background: var(--sm-olive-700);
	color: #FFFFFF;
	border-color: var(--sm-olive-700);
}

.sm-lib-btn--read:hover {
	background: var(--sm-olive-900);
	border-color: var(--sm-olive-900);
	color: #FFFFFF;
}

.sm-lib-btn--download {
	background: var(--sm-white);
	color: var(--sm-olive-700);
	border-color: var(--sm-olive-200);
}

.sm-lib-btn--download:hover {
	background: var(--sm-olive-50);
	color: var(--sm-olive-900);
	border-color: var(--sm-olive-500);
}

.sm-lib-nofile {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--sm-muted);
}

/* ---------- Панель фильтров (фасеты FacetWP) ---------- */

.sm-lib-filters__row {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 34px;
}

.sm-lib-filters__cell {
	flex: 1 1 190px;
	min-width: 170px;
}

.sm-lib-filters__cell h4,
.sm-lib-filters__bottom h4 {
	margin: 0 0 6px;
}

.sm-lib-filters .facetwp-facet {
	margin: 0;
}

/* Списки фасетов — компактные, без «простыни» из пунктов. */
.sm-lib-filters .facetwp-checkbox {
	display: flex;
	align-items: baseline;
	gap: 7px;
	padding: 3px 0;
	font-family: var(--sm-font);
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--sm-ink-2);
	cursor: pointer;
}

.sm-lib-filters .facetwp-checkbox .facetwp-counter {
	font-size: 12.5px;
	color: var(--sm-muted);
}

.sm-lib-filters .facetwp-checkbox.checked,
.sm-lib-filters .facetwp-checkbox:hover {
	color: var(--sm-olive-700);
}

.sm-lib-filters .facetwp-dropdown,
.sm-lib-filters .facetwp-sort-select {
	width: 100%;
	max-width: 240px;
	height: 40px;
	padding: 0 12px;
	background-color: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: 10px;
	font-family: var(--sm-font);
	font-size: 14.5px;
	color: var(--sm-ink);
}

.sm-lib-filters__bottom {
	margin-top: 2px;
	padding-top: 16px;
	border-top: 1px solid var(--sm-line);
}

.sm-lib-filters__sort {
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
}

.sm-lib-filters__sort h4 {
	margin: 0;
}

.sm-lib-filters__reset {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: 999px;
	font-family: var(--sm-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-olive-700);
	text-decoration: none;
	cursor: pointer;
}

.sm-lib-filters__reset:hover {
	background: var(--sm-olive-100);
	color: var(--sm-olive-900);
}

.sm-lib-filters .facetwp-facet-reset {
	display: none;
}

/* Выбранные условия — «крестики» под панелью. */
.sm-lib-filters .facetwp-selections {
	flex: 1 1 100%;
}

.sm-lib-filters .facetwp-selections ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sm-lib-filters .facetwp-selections li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: 8px;
	font-size: 13px;
	color: var(--sm-olive-900);
}

.sm-lib-filters .facetwp-selection-label {
	color: var(--sm-muted);
}

.sm-lib-filters .facetwp-selection-value {
	color: var(--sm-olive-700);
	text-decoration: none;
	border-bottom: 1px dashed var(--sm-olive-200);
	cursor: pointer;
}

.sm-lib-filters .facetwp-selection-value:hover {
	color: var(--sm-olive-900);
	border-bottom-color: var(--sm-olive-500);
}

/* Навигация по темам библиотеки. */
.sm-lib-topics-nav {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 4px;
}

.sm-lib-topics-nav__title {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sm-muted);
}

.sm-chip__count {
	margin-left: 7px;
	font-size: 12px;
	color: var(--sm-muted);
}

/* ---------- Страница материала ---------- */

.sm-lib-material {
	align-items: flex-start;
}

.sm-lib-material__side {
	position: sticky;
	top: 24px;
}

.sm-lib-material__annotation {
	margin: 0;
	padding: 18px 20px;
	background: var(--sm-cream);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: var(--sm-radius-sm);
	font-size: 16.5px;
	line-height: 1.7;
	color: var(--sm-ink-2);
}

.sm-lib-material__main .elementor-heading-title {
	margin: 0;
}

/* ---------- Встроенный просмотр PDF ---------- */

.sm-lib-viewer {
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	overflow: hidden;
	background: var(--sm-white);
}

.sm-lib-viewer__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	padding: 12px 16px;
	background: var(--sm-cream-2);
	border-bottom: 1px solid var(--sm-line);
}

.sm-lib-viewer__title {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sm-olive-900);
}

.sm-lib-viewer__open {
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-olive-700);
	text-decoration: none;
}

.sm-lib-viewer__open:hover {
	color: var(--sm-olive-900);
	text-decoration: underline;
}

.sm-lib-viewer__frame {
	display: block;
	width: 100%;
	height: 80vh;
	min-height: 520px;
	border: 0;
	background: #EFEFEA;
}

/* ---------- Мобильные уточнения ---------- */

@media (max-width: 1024px) {
	.sm-lib-material__side {
		position: static;
	}

	.sm-lib-cover--single {
		max-width: 340px;
	}
}

@media (max-width: 767px) {
	.sm-lib-filters__cell {
		flex: 1 1 100%;
	}

	.sm-lib-filters .facetwp-dropdown,
	.sm-lib-filters .facetwp-sort-select {
		max-width: 100%;
	}

	.sm-lib-actions--card .sm-lib-actions__btns {
		gap: 6px;
	}

	.sm-lib-actions--card .sm-lib-btn {
		font-size: 13.5px;
		padding: 0 10px;
	}

	.sm-lib-cover--single {
		max-width: 260px;
		margin: 0 auto;
	}

	.sm-lib-viewer__frame {
		height: 70vh;
		min-height: 380px;
	}
}
/* ---------- Библиотека: каталог (липкие фильтры + сетка карточек) ---------- */
.sm-lib-catalog {
	display: flex;
	flex-wrap: nowrap;
	gap: 32px;
	align-items: flex-start;
}

.sm-lib-catalog__side {
	position: sticky;
	top: 92px;
	align-self: flex-start;
	flex: 0 0 288px !important;
	width: 288px !important;
	max-width: 288px !important;
}

.sm-lib-catalog__main {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
}

/* В сайдбаре фасеты идут столбиком и занимают ширину карточки целиком. */
.sm-lib-filters--side .sm-lib-filters__row { gap: 22px; }
.sm-lib-filters--side .sm-lib-filters__cell { flex: 1 1 auto; width: 100%; min-width: 0; }
.sm-lib-filters--side .sm-lib-filters__bottom { flex-direction: column; align-items: stretch; gap: 12px; }
.sm-lib-filters--side .sm-lib-filters__sort { flex-direction: column; align-items: flex-start; width: 100%; }
.sm-lib-filters--side .facetwp-sort-select,
.sm-lib-filters--side .facetwp-dropdown { width: 100%; max-width: none; }
.sm-lib-filters--side .facetwp-reset { width: 100%; justify-content: center; }

/* Свои чекбоксы фасетов: оливковый квадрат и галочка вместо картинки плагина. */
.sm-lib-filters .facetwp-checkbox {
	position: relative;
	align-items: flex-start;
	padding: 5px 0 5px 26px;
	line-height: 1.4;
}

.sm-lib-filters .facetwp-checkbox::before {
	content: '';
	position: absolute;
	left: 0;
	top: 5px;
	width: 16px;
	height: 16px;
	box-sizing: border-box;
	border: 1.5px solid var(--sm-olive-500);
	border-radius: 4px;
	background-color: var(--sm-white);
	background-image: none !important;
}

.sm-lib-filters .facetwp-checkbox.checked::before,
.sm-lib-filters .facetwp-checkbox.is-checked::before {
	background-color: var(--sm-olive-600);
	border-color: var(--sm-olive-600);
}

.sm-lib-filters .facetwp-checkbox.checked::after,
.sm-lib-filters .facetwp-checkbox.is-checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 8px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.sm-lib-filters .facetwp-checkbox .facetwp-display-value { flex: 1 1 auto; }

.sm-lib-filters .facetwp-checkbox .facetwp-counter {
	margin-left: auto;
	padding-left: 8px;
	color: var(--sm-muted);
	font-variant-numeric: tabular-nums;
}

@media (max-width: 1100px) {
	.sm-lib-catalog {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		gap: 20px;
	}

	.sm-lib-catalog__side,
	.sm-lib-catalog__main {
		flex: 1 1 auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.sm-lib-catalog__side { position: static; top: auto; }
}

/* Фасет «Сортировка» отдаёт простой <select> без класса — стилизуем по месту. */
.sm-lib-filters .facetwp-facet-sort select,
.sm-lib-filters .facetwp-facet-sort .facetwp-sort-select {
	width: 100%;
	max-width: none;
	height: 42px;
	padding: 0 34px 0 12px;
	background-color: var(--sm-white);
	background-image: linear-gradient(45deg, transparent 50%, var(--sm-muted) 50%), linear-gradient(135deg, var(--sm-muted) 50%, transparent 50%);
	background-position: calc(100% - 17px) 18px, calc(100% - 12px) 18px;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	border: 1px solid var(--sm-line);
	border-radius: 10px;
	font-family: var(--sm-font);
	font-size: 14.5px;
	color: var(--sm-ink);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.sm-lib-filters .facetwp-facet-sort select:focus {
	outline: 2px solid var(--sm-olive-200);
	outline-offset: 1px;
}

.sm-lib-filters .facetwp-facet-sort option {
	color: var(--sm-ink);
}

/* Elementor оборачивает «boxed»-контейнер во внутренний flex-слой `.e-con-inner` —
   строку колонок задаёт именно он, поэтому правила пишем и для него. */
.sm-lib-catalog > .e-con-inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 32px;
	width: 100%;
}

@media (max-width: 1100px) {
	.sm-lib-catalog > .e-con-inner {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		gap: 20px;
	}
}

/* Кнопка «Читать»: текст был оливковым на оливковом фоне — делаем белым. */
.sm-lib-btn--read,
.sm-lib-btn--read:visited {
	color: var(--sm-white) !important;
	background-color: var(--sm-olive-700);
	border-color: var(--sm-olive-700);
}

.sm-lib-btn--read:hover,
.sm-lib-btn--read:focus {
	color: var(--sm-white) !important;
	background-color: var(--sm-olive-900);
	border-color: var(--sm-olive-900);
}

/* ---------- Карточка материала: обложка слева, текст справа ----------
   У контейнера стоит flex-wrap: wrap, а у колонки текста ширина 100 % —
   из-за этого текст переносился на строку ниже и уезжал ПОД липкую обложку.
   Прижимаем колонки друг к другу жёстко, без переноса. */
.sm-lib-material,
.sm-lib-material > .e-con-inner {
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 32px !important;
}

.sm-lib-material__side {
	flex: 0 0 360px !important;
	width: 360px !important;
	max-width: 360px !important;
	position: sticky;
	top: 96px;
	align-self: flex-start;
	z-index: 1;
}

.sm-lib-material__main {
	flex: 1 1 auto !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	position: relative;
	z-index: 2;
}

@media (max-width: 1024px) {
	.sm-lib-material,
	.sm-lib-material > .e-con-inner {
		flex-wrap: wrap !important;
		gap: 22px !important;
	}

	.sm-lib-material__side,
	.sm-lib-material__main {
		flex: 1 1 auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.sm-lib-material__side {
		position: static;
		top: auto;
	}
}

/* ---------- Кликабельная строка меты материала ---------- */
.sm-lib-meta__link {
	color: var(--sm-olive-700);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .16s ease, border-color .16s ease;
}

.sm-lib-meta__link:hover,
.sm-lib-meta__link:focus {
	color: var(--sm-olive-900);
	border-bottom-color: var(--sm-olive-300);
}

.sm-lib-meta__link:focus-visible {
	outline: 2px solid var(--sm-olive-200);
	outline-offset: 2px;
	border-radius: 3px;
}

/* В карточке ссылки не должны «перетягивать» внимание с заголовка. */
.sm-lib-card .sm-lib-meta__link {
	color: var(--sm-ink-2);
}

.sm-lib-card .sm-lib-meta__link:hover {
	color: var(--sm-olive-700);
}

/* Бейдж типа стал ссылкой — снимаем подчёркивание и добавляем отклик на наведение. */
a.sm-lib-badge--type {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

a.sm-lib-badge--type:hover,
a.sm-lib-badge--type:focus {
	background: var(--sm-olive-600);
	border-color: var(--sm-olive-600);
	color: var(--sm-white);
}

a.sm-lib-badge--type:focus-visible {
	outline: 2px solid var(--sm-olive-200);
	outline-offset: 2px;
}

/* ---------- Сайдбар библиотеки: ширины ячеек и аккуратные чекбоксы ----------
   В режиме сайдбара строка фильтров идёт колонкой, но у неё остался
   align-items: flex-start — ячейки сжимались по содержимому (186 px вместо 228),
   подписи переносились, а квадратик чекбокса «отъезжал» на вторую строку. */
.sm-lib-filters--side .sm-lib-filters__row {
	align-items: stretch !important;
}

.sm-lib-filters--side .sm-lib-filters__cell {
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
}

.sm-lib-filters--side .facetwp-facet,
.sm-lib-filters--side .facetwp-checkbox,
.sm-lib-filters .facetwp-facet,
.sm-lib-filters .facetwp-checkbox {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

/* Квадрат рисуем в потоке (flex), а не абсолютом — тогда он всегда стоит
   на первой строке подписи, какой бы длинной она ни была. */
.sm-lib-filters .facetwp-checkbox {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px;
	padding: 6px 0 !important;
	text-align: left;
}

.sm-lib-filters .facetwp-checkbox::before {
	content: '';
	position: static !important;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	margin-top: 2px;
	box-sizing: border-box;
	border: 1.5px solid var(--sm-olive-500);
	border-radius: 4px;
	background-color: var(--sm-white);
	background-image: none !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 12px;
	transition: background-color .14s ease, border-color .14s ease;
}

.sm-lib-filters .facetwp-checkbox::after {
	content: none !important;
}

.sm-lib-filters .facetwp-checkbox.checked::before,
.sm-lib-filters .facetwp-checkbox.is-checked::before {
	background-color: var(--sm-olive-600);
	border-color: var(--sm-olive-600);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.2 2.2L10 3.5' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

.sm-lib-filters .facetwp-checkbox .facetwp-display-value {
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}

.sm-lib-filters .facetwp-checkbox .facetwp-counter {
	flex: 0 0 auto;
	margin-left: auto;
	padding-left: 8px;
	white-space: nowrap;
}

/* FacetWP рисует свой квадратик фоном самого элемента .facetwp-checkbox —
   отсюда «второй чекбокс» рядом с нашим. Гасим фон и его отступ. */
.sm-lib-filters .facetwp-checkbox,
.sm-lib-filters .facetwp-checkbox.checked,
.sm-lib-filters .facetwp-checkbox.is-checked {
	background-image: none !important;
	background-color: transparent !important;
	padding-left: 0 !important;
	box-shadow: none !important;
}

/* В сайдбаре у ячейки фильтра свой padding — из-за него содержимое
   оседало на 186 px вместо 228. */
.sm-lib-filters--side .sm-lib-filters__cell {
	padding: 0 !important;
	margin: 0 !important;
}

/* Список фильтров — компактнее, чтобы подписи влезали в строку. */
.sm-lib-filters .facetwp-checkbox {
	font-size: 14px !important;
	line-height: 1.4 !important;
	gap: 9px !important;
}

.sm-lib-filters .facetwp-facet {
	margin: 0 !important;
}

/* Колонка фильтров чуть шире: длинные русские подписи («Синодальный миссионерский
   отдел») больше не разваливаются на три строки, сетке всё равно хватает места. */
.sm-lib-catalog__side {
	flex: 0 0 320px !important;
	width: 320px !important;
	max-width: 320px !important;
}

@media (max-width: 1100px) {
	.sm-lib-catalog__side {
		flex: 1 1 auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* ---------- Длинные списки фильтров: поиск + прокрутка ----------
   Включается скриптом (`sinmis_core_library_facets_script`), когда пунктов больше 5:
   над списком появляется поле поиска, сам список получает ограниченную высоту. */
.sm-lib-filters__search {
	width: 100%;
	height: 38px;
	margin: 0 0 8px;
	padding: 0 12px 0 34px;
	background-color: var(--sm-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='5' fill='none' stroke='%2378806B' stroke-width='1.6'/%3E%3Cpath d='M10.6 10.6L14 14' stroke='%2378806B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 10px center;
	background-size: 15px 15px;
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius-sm);
	font-family: var(--sm-font);
	font-size: 14px;
	color: var(--sm-ink);
}

.sm-lib-filters__search::placeholder {
	color: var(--sm-muted);
}

.sm-lib-filters__search:focus {
	outline: none;
	border-color: var(--sm-olive-500);
	box-shadow: 0 0 0 3px var(--sm-olive-100);
}

.sm-lib-filters__search::-webkit-search-cancel-button {
	cursor: pointer;
}

/* Ограниченная высота + аккуратная прокрутка вместо «простыни» пунктов. */
.sm-lib-filters .facetwp-facet.sm-lib-filters__scroll {
	max-height: 244px;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 6px;
	scrollbar-width: thin;
	scrollbar-color: var(--sm-olive-200) transparent;
}

.sm-lib-filters .facetwp-facet.sm-lib-filters__scroll::-webkit-scrollbar {
	width: 6px;
}

.sm-lib-filters .facetwp-facet.sm-lib-filters__scroll::-webkit-scrollbar-track {
	background: transparent;
}

.sm-lib-filters .facetwp-facet.sm-lib-filters__scroll::-webkit-scrollbar-thumb {
	background: var(--sm-olive-200);
	border-radius: 999px;
}

.sm-lib-filters .facetwp-facet.sm-lib-filters__scroll::-webkit-scrollbar-thumb:hover {
	background: var(--sm-olive-500);
}

.sm-lib-filters__empty {
	margin: 2px 0 0;
	font-size: 13.5px;
	color: var(--sm-muted);
}

/* ---------- Главная библиотеки: лента, полки, темы ---------- */

/* Полоса «Рекомендуем» — светлый фон, чтобы герой читался как отдельный блок. */
.sm-lib-shelf-section--featured {
	background: var(--sm-cream);
	border-bottom: 1px solid var(--sm-line);
	padding-bottom: 26px !important;
}

.sm-lib-shelf-section--featured .sm-lib-cover__img,
.sm-lib-shelf-section--featured .sm-lib-cover--placeholder {
	box-shadow: var(--sm-shadow);
}

/* Шапка полки: заголовок и ссылка «смотреть все». */
.sm-lib-shelf__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 16px;
}

.sm-lib-shelf__heading {
	margin: 0;
	font-family: var(--sm-font-head);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.2;
	color: var(--sm-olive-900);
}

.sm-lib-shelf__all {
	flex: 0 0 auto;
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-olive-700);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .16s ease, color .16s ease;
}

.sm-lib-shelf__all:hover {
	color: var(--sm-olive-900);
	border-bottom-color: var(--sm-olive-300);
}

/* Сама полка: ряд обложек, нативная прокрутка, «полочная» линия снизу. */
.sm-lib-shelf {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 2px 2px 18px;
	border-bottom: 1px solid var(--sm-line);
	scrollbar-width: none;
}

.sm-lib-shelf::-webkit-scrollbar {
	height: 0;
}

.sm-lib-shelf__item {
	flex: 0 0 168px;
	width: 168px;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-decoration: none;
	color: inherit;
}

.sm-lib-shelf__item .sm-lib-cover,
.sm-lib-shelf__item .sm-lib-cover__img,
.sm-lib-shelf__item .sm-lib-cover--placeholder {
	display: block;
	width: 100%;
}

.sm-lib-shelf__item .sm-lib-cover__img,
.sm-lib-shelf__item .sm-lib-cover--placeholder {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border: 1px solid var(--sm-line);
	border-radius: 10px;
	background: var(--sm-white);
	transition: box-shadow .18s ease, transform .18s ease;
}

.sm-lib-shelf__item:hover .sm-lib-cover__img,
.sm-lib-shelf__item:hover .sm-lib-cover--placeholder {
	box-shadow: var(--sm-shadow-hover);
	transform: translateY(-2px);
}

.sm-lib-shelf__title {
	font-family: var(--sm-font-head);
	font-size: 15px;
	line-height: 1.3;
	color: var(--sm-olive-900);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sm-lib-shelf__meta {
	font-size: 12.5px;
	line-height: 1.35;
	color: var(--sm-muted);
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Темы библиотеки карточками. */
.sm-lib-topics-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(198px, 1fr));
	gap: 14px;
}

.sm-lib-topic-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: var(--sm-radius);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .16s ease;
}

.sm-lib-topic-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--sm-shadow-hover);
	border-color: var(--sm-olive-500);
}

.sm-lib-topic-card__ico {
	display: inline-flex;
	color: var(--sm-olive-600);
}

.sm-lib-topic-card__name {
	font-family: var(--sm-font-head);
	font-size: 16.5px;
	line-height: 1.25;
	color: var(--sm-olive-900);
}

.sm-lib-topic-card__count {
	font-size: 12.5px;
	color: var(--sm-muted);
}

@media (max-width: 700px) {
	.sm-lib-shelf__item {
		flex: 0 0 138px;
		width: 138px;
	}

	.sm-lib-shelf__heading {
		font-size: 21px;
	}
}

/* ---------- Каталог: компактная «полка» (маленькие книги, 3 колонки) ----------
   По умолчанию в правой части выводится архив материалов (свежие поступления),
   при выборе фильтров — та же полка, но с подборкой. Карточки делаем компактными:
   обложка, тип, название, автор с годом и одна кнопка «Читать». */
.sm-lib-catalog__main .elementor-loop-container,
.sm-lib-catalog__main .elementor-grid {
	gap: 20px;
}

.sm-lib-catalog__main .elementor-post,
.sm-lib-catalog__main .elementor-grid-item {
	width: 100%;
}

.sm-lib-catalog__main .sm-lib-card__body {
	padding: 12px 14px 14px;
}

/* Аннотацию в полке не показываем — она есть на странице материала. */
.sm-lib-catalog__main .sm-lib-annotation,
.sm-lib-catalog__main .sm-lib-card__soon {
	display: none !important;
}

/* Кнопки карточки в полке компактные, но на месте: «Читать» и «Скачать»
   нужны в сетке так же, как на странице материала (T38). */
.sm-lib-catalog__main .sm-lib-actions {
	margin-top: 10px;
}

.sm-lib-catalog__main .sm-lib-actions__btns .sm-lib-btn {
	height: 34px;
	padding: 0 14px;
	font-size: 13.5px;
}

.sm-lib-catalog__main .sm-lib-meta {
	margin-top: 6px;
	font-size: 12.5px;
}

.sm-lib-catalog__main .sm-lib-badges {
	margin-bottom: 6px;
}

.sm-lib-catalog__main .sm-lib-badge {
	font-size: 11px;
	padding: 3px 8px;
}

.sm-lib-catalog__main .elementor-heading-title,
.sm-lib-catalog__main .entry-title {
	font-size: 17px !important;
	line-height: 1.25 !important;
}

/* Герой: тёмная полоса, заголовок без лишних отступов. */
.sm-lib-hero h1 {
	margin: 0;
}

.sm-lib-hero p {
	margin: 0;
	max-width: 720px;
}

/* ---------- Полка каталога: поиск над полкой ---------- */

/* Строку со счётчиком сервер отдаёт только когда скачивания есть. */
.sm-lib-catalog__main .sm-lib-actions {
	margin-top: 8px;
	min-height: 0;
}

/* Поле «Поиск по фонду» над полкой. */
.sm-lib-search {
	margin-bottom: 4px;
}

.sm-lib-search .facetwp-facet {
	margin: 0;
}

.sm-lib-search .facetwp-search,
.sm-lib-search input[type="text"] {
	width: 100%;
	height: 48px;
	padding: 0 16px 0 44px;
	background-color: var(--sm-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='5' fill='none' stroke='%2378806B' stroke-width='1.6'/%3E%3Cpath d='M10.6 10.6L14 14' stroke='%2378806B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 15px center;
	background-size: 17px 17px;
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius-sm);
	font-family: var(--sm-font);
	font-size: 15px;
	color: var(--sm-ink);
}

.sm-lib-search .facetwp-search::placeholder {
	color: var(--sm-muted);
}

.sm-lib-search .facetwp-search:focus {
	outline: none;
	border-color: var(--sm-olive-500);
	box-shadow: 0 0 0 3px var(--sm-olive-100);
}

/* FacetWP добавляет свою иконку лупы справа — оставляем только нашу (слева). */
.sm-lib-search .facetwp-icon {
	display: none !important;
}

.sm-lib-search .facetwp-input-wrap {
	display: block;
	width: 100%;
}

/* ---------- Епархии: список «в какую епархию обратиться» и контакты ---------- */

.sm-ep-list__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	margin: 0 0 18px;
}

.sm-ep-list__search {
	flex: 1 1 300px;
	display: block;
}

.sm-ep-search {
	width: 100%;
	height: 46px;
	padding: 0 16px 0 42px;
	background-color: var(--sm-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='5' fill='none' stroke='%2378806B' stroke-width='1.6'/%3E%3Cpath d='M10.6 10.6L14 14' stroke='%2378806B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 14px center;
	background-size: 16px 16px;
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius-sm);
	font-family: var(--sm-font);
	font-size: 15px;
	color: var(--sm-ink);
}

.sm-ep-search:focus {
	outline: none;
	border-color: var(--sm-olive-500);
	box-shadow: 0 0 0 3px var(--sm-olive-100);
}

.sm-ep-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sm-ep-filter__btn {
	padding: 9px 14px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: 999px;
	font-family: var(--sm-font);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--sm-ink-2);
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

.sm-ep-filter__btn:hover {
	border-color: var(--sm-olive-500);
	color: var(--sm-olive-900);
}

.sm-ep-filter__btn.is-active {
	background: var(--sm-olive-700);
	border-color: var(--sm-olive-700);
	color: var(--sm-white);
}

.sm-ep-filter__count {
	opacity: .7;
	font-weight: 400;
}

.sm-ep-list__found {
	margin: 0 0 12px;
	font-size: 13.5px;
	color: var(--sm-muted);
}

.sm-ep-list__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
}

.sm-ep-card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 16px;
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-left: 4px solid var(--sm-olive-600);
	border-radius: var(--sm-radius);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .16s ease;
}

.sm-ep-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--sm-shadow-hover);
	border-color: var(--sm-olive-500);
}

.sm-ep-card__name {
	font-family: var(--sm-font-head);
	font-size: 16.5px;
	line-height: 1.25;
	color: var(--sm-olive-900);
}

.sm-ep-card__head {
	font-size: 13.5px;
	color: var(--sm-ink-2);
}

.sm-ep-card__meta {
	font-size: 12.5px;
	color: var(--sm-muted);
}

.sm-ep-list__empty {
	margin: 16px 0 0;
	font-size: 14.5px;
	color: var(--sm-muted);
}

/* Контакты в карточке епархии. */
.sm-ep-contacts {
	padding: 20px 22px;
	background: var(--sm-cream);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
}

.sm-ep-contacts__title {
	margin: 0 0 12px;
	font-family: var(--sm-font-head);
	font-weight: 400;
	font-size: 21px;
	color: var(--sm-olive-900);
}

.sm-ep-contacts__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sm-ep-contact {
	display: flex;
	gap: 10px;
	padding: 6px 0;
	font-size: 15px;
	line-height: 1.45;
}

.sm-ep-contact + .sm-ep-contact {
	border-top: 1px solid var(--sm-line);
}

.sm-ep-contact__label {
	flex: 0 0 132px;
	color: var(--sm-muted);
	font-size: 13.5px;
}

.sm-ep-contact__value a {
	color: var(--sm-olive-700);
	text-decoration: none;
	border-bottom: 1px solid var(--sm-olive-200);
}

.sm-ep-contact__value a:hover {
	border-bottom-color: var(--sm-olive-600);
}

.sm-ep-contact--empty {
	color: var(--sm-muted);
	font-size: 14px;
}

.sm-ep-contacts__note {
	margin: 12px 0 0;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--sm-ink-2);
}

@media (max-width: 700px) {
	.sm-ep-contact {
		flex-direction: column;
		gap: 2px;
	}

	.sm-ep-contact__label {
		flex: 0 0 auto;
	}
}

/* ---------- Видео: карточка, плеер, мета ---------- */

.sm-video-card {
	background: var(--sm-white);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease;
}

.sm-video-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--sm-shadow-hover);
}

.sm-video-card__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.sm-video-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.sm-video-card .elementor-heading-title a {
	color: var(--sm-olive-900);
	text-decoration: none;
}

.sm-video-card .elementor-heading-title a:hover {
	color: var(--sm-olive-700);
}

.sm-video-meta {
	display: block;
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--sm-muted);
}

/* Плеер: рамка 16:9, iframe заполняет её целиком. */
.sm-video-player {
	position: relative;
	width: 100%;
	background: #000;
	border-radius: var(--sm-radius);
	overflow: hidden;
}

.sm-video-player::before {
	content: '';
	display: block;
	padding-top: 56.25%;
}

.sm-video-player iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.sm-video-player--4x3::before {
	padding-top: 75%;
}

.sm-video-fallback {
	margin: 0;
	padding: 16px 18px;
	background: var(--sm-cream);
	border: 1px solid var(--sm-line);
	border-radius: var(--sm-radius-sm);
	font-size: 14.5px;
}

.sm-video-fallback a {
	color: var(--sm-olive-700);
	word-break: break-all;
}

/* Витрина видео. */
.sm-video-grid {
	display: grid;
	gap: 22px;
}

.sm-video-single .sm-video-meta {
	font-size: 14px;
}

/* Заглушка раздела видео: прячем, как только появились карточки (:has — без JS). */
.sm-video-section:has(.sm-video-card) .sm-video-empty {
	display: none !important;
}

/* Карточка видео кликается целиком: ссылка заголовка растягивается на всю карточку. */
.sm-video-card {
	position: relative;
}

.sm-video-card .elementor-heading-title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.sm-video-card .elementor-heading-title a {
	color: var(--sm-olive-900);
	text-decoration: none;
}

.sm-video-card:hover .elementor-heading-title a {
	color: var(--sm-olive-700);
	text-decoration: underline;
}

/* FIX 2026-11-08: duplicate submenu arrows. Elementor Pro and SmartMenus both inject <span class="sub-arrow">, so each parent item shows two identical carets. Keep only the first. */
.elementor-nav-menu a > .sub-arrow ~ .sub-arrow {
	display: none !important;
}
