

/* Start:/bitrix/templates/leonov/styles.css?178403078928129*/
/* ============================================================
   leonov.rhga.ru — шаблон «Леонид Леонов: pro et contra»
   Вёрстка по макету 2026 (pixso), адаптивная
   ============================================================ */

/* Cormorant Garamond подключается из Google Fonts (см. header.php) */

:root {
	--bg: #faf8f2;
	--bg-header: #dedacd;
	--bg-nav: #cccccc;
	--text: #16171c;
	--muted: #656565;
	--red: #b40000;
	--red-logo: #aa292c;
	--red-dark: #890707;
	--navy: #080789;
	--green: #078926;
	--orange: #ffa200;
	--beige: #c7baa4;
	--beige-dark: #a89272;
	--beige-light: #eee9d0;
	--gold: #ba8f46;
	--card: #ffffff;
	--serif: Georgia, 'Times New Roman', Times, serif;
	--display: 'Cormorant Garamond', Georgia, serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	background: var(--bg);
	color: var(--text);
	font-family: var(--serif);
	font-size: 18px;
	line-height: 1.5;
	min-width: 320px;
}

img { max-width: 100%; height: auto; }
a { color: var(--red-dark); }
a:hover { color: var(--red); }

.wrap {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 24px;
}

.clear { clear: both; }

/* ---------------- Шапка ---------------- */

.site-header {
	background: var(--bg-header);
	position: relative;
}

.site-header .wrap {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding-top: 35px;
	padding-bottom: 14px;
	flex-wrap: wrap;
	position: relative;
}

.header-collage {
	flex: 0 0 auto;
	position: relative;
	z-index: 1;
	margin-right: -25px;
	align-self: flex-end;
	margin-bottom: -14px; /* фото прибито к полосе меню */
}
.header-collage img {
	display: block;
	width: 480px;
	max-width: 100%;
}

.header-brand {
	flex: 0 0 690px;
	position: relative;
	z-index: 2;
	width: 690px;
	height: 123px;
	margin-top: 19px;
}
.header-logo {
	position: absolute;
	left: 0;
	top: 0;
	display: block;
}
.header-logo img {
	display: block;
	width: 385px;
	max-width: none;
}
.brand-line {
	position: absolute;
	left: 263px;
	top: 6px;
	height: 84px;
	border-left: 1px solid var(--muted);
	transform: skewX(-15deg); /* косая, как в макете */
	transform-origin: top;
}
.header-about {
	position: absolute;
	left: 267px;
	top: 18px;
	width: 423px;
}
.header-about img {
	display: block;
	width: 423px;
	max-width: 100%;
}
.header-search {
	position: absolute;
	left: 51%;
	right: 24px;
	bottom: 12px;
	display: flex;
	align-items: center;
	gap: 16px;
}
.header-search form {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 430px;
}
.header-search input[type=text] {
	width: 100%;
	min-width: 200px;
	height: 26px;
	border: 1px solid var(--muted);
	background: #fff;
	font-family: var(--serif);
	font-size: 15px;
	padding: 2px 10px;
	outline: none;
}
.header-search button {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	line-height: 0;
}
.header-search button img { width: 40px; height: 26px; max-width: none; }
.header-search .search-adv {
	white-space: nowrap;
	font-family: var(--display);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.8px;
	color: #000;
	text-decoration: none;
	text-transform: uppercase;
}
.header-search .search-adv:hover { color: var(--red); }

.header-logos {
	flex: 0 0 124px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	margin-top: 32px;
	margin-left: auto;
}
.header-logos a { display: block; }
.header-logos .hl-rnf img { width: 122px; height: auto; display: block; }
.header-logos .hl-sep {
	display: block;
	border-top: 1px solid var(--muted);
	margin: 14px 0 12px;
}
.header-logos .hl-rhga img { width: 124px; height: auto; display: block; }

/* ---------------- Навигация ---------------- */

.site-nav {
	background: var(--bg-nav);
	position: relative;
}
.site-nav .wrap {
	display: flex;
	align-items: center;
}
.nav-toggle {
	display: none;
	background: none;
	border: none;
	font-family: var(--serif);
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 10px 0;
	cursor: pointer;
	color: var(--text);
}
.nav-toggle:before {
	content: '\2630';
	margin-right: 8px;
}
.nav-menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	flex: 1;
}
.nav-menu li { margin-right: 4px; position: relative; }
.nav-menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--bg-nav);
	box-shadow: 0 8px 18px rgba(0,0,0,0.18);
	list-style: none;
	z-index: 100;
	padding: 4px 0;
}
.nav-menu li:hover > .sub-menu { display: block; }
.nav-menu .sub-menu li { margin: 0; }
.nav-menu .sub-menu a {
	padding: 7px 14px;
	font-size: 16px;
	text-transform: none;
	letter-spacing: 0.2px;
}
.nav-menu .sub-menu li.sub-active > a {
	background: var(--red-dark);
	color: #fff;
}
.nav-menu li.active .sub-menu a { background: none; color: #000; }
.nav-menu li.active .sub-menu a:hover { color: var(--red-dark); }
.nav-menu li.active .sub-menu li.sub-active > a { background: var(--red-dark); color: #fff; }
.nav-menu a {
	display: block;
	padding: 5px 12px;
	font-size: 18px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #000;
	text-decoration: none;
	white-space: nowrap;
}
.nav-menu a:hover { color: var(--red-dark); }
.nav-menu li.active a,
.nav-menu a.active {
	background: var(--red-dark);
	color: #fff;
}

/* ---------------- Хлебные крошки ---------------- */

.bc {
	padding: 14px 0 0;
	font-size: 15px;
	color: var(--muted);
}
.bc a { color: var(--muted); text-decoration: none; }
.bc a:hover { color: var(--red); text-decoration: underline; }

/* ---------------- Страница ---------------- */

.page-main {
	padding: 30px 0 60px;
	min-height: 40vh;
}
.page-content {
	max-width: 1160px;
	margin: 0 auto;
}

.page-head { text-align: center; margin-bottom: 28px; }
.page-head h1, h1.page-title {
	font-family: var(--serif);
	font-weight: bold;
	font-size: 34px;
	line-height: 1.25;
	color: var(--red);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-align: center;
	margin-bottom: 14px;
}
.page-head .page-sub {
	font-style: italic;
	font-size: 19px;
	color: var(--text);
	max-width: 860px;
	margin: 0 auto 10px;
}

article {
	font-size: 18px;
	line-height: 1.55;
}
article p, article ul, article ol { margin-bottom: 20px; }
article ul, article ol { padding-left: 28px; }
article h2, article h3 {
	margin: 28px 0 14px;
	line-height: 1.3;
}
article img { border-radius: 4px; }

/* ---------------- Вкладки / фильтры ---------------- */

.tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 24px 0 30px;
}
.tabs a, .tabs button {
	display: inline-block;
	font-family: var(--serif);
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #000;
	background: var(--bg-nav);
	border: none;
	padding: 7px 16px;
	text-decoration: none;
	cursor: pointer;
}
.tabs a:hover, .tabs button:hover { background: #bdbdbd; color: #000; }
.tabs a.active, .tabs button.active {
	background: var(--red-dark);
	color: #fff;
}

.tab-note {
	text-align: center;
	font-size: 19px;
	margin: 6px 0 24px;
}

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

.card {
	background: var(--card);
	border-radius: 22px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 26px 32px;
	margin-bottom: 30px;
	position: relative;
	overflow: hidden;
}
.card--line { border-top: 3px solid var(--navy); border-top-right-radius: 22px; }
.card--line-red { border-top: 3px solid var(--red-dark); }
.card--line-green { border-top: 3px solid var(--green); }
.card--line-orange { border-top: 3px solid var(--orange); }

.card h3, .card h2 {
	font-size: 21px;
	margin-bottom: 12px;
	line-height: 1.3;
}

.tag {
	display: inline-block;
	background: var(--beige-light);
	border: 1px solid #ddd3b8;
	font-size: 14px;
	padding: 2px 10px;
	margin: 0 6px 6px 0;
	border-radius: 3px;
	color: var(--text);
	text-decoration: none;
}
.tag--gray { background: #d6d6d6; border-color: #c4c4c4; text-transform: uppercase; font-size: 13px; letter-spacing: 0.5px; }

.btn {
	display: inline-block;
	background: var(--beige);
	color: var(--text);
	font-family: var(--serif);
	font-size: 15px;
	padding: 6px 16px;
	border: none;
	border-radius: 3px;
	cursor: pointer;
	text-decoration: none;
	margin: 4px 8px 4px 0;
}
.btn:hover { background: var(--beige-dark); color: #fff; }
.btn--gray { background: #d6d6d6; text-transform: uppercase; font-size: 14px; letter-spacing: 0.5px; }
.btn--gray:hover { background: #bdbdbd; color: var(--text); }

.quote, .quote-mini {
	font-style: italic;
	border-left: 3px solid var(--navy);
	padding: 4px 0 4px 16px;
	margin: 14px 0;
	color: #333;
}
.quote-mini { border-left-color: #e2cfaa; color: #6b5a48; font-size: 16px; }

.key-thesis {
	background: var(--beige-light);
	padding: 14px 18px;
	border-radius: 6px;
	margin-top: 18px;
	font-size: 17px;
}
.key-thesis b, .key-thesis strong { color: var(--text); }

.note-block {
	background: var(--beige);
	border-radius: 6px;
	padding: 20px 26px;
	margin: 34px 0 26px;
}
.note-block h3 { margin-bottom: 12px; font-size: 20px; }

.foot-note {
	text-align: center;
	font-size: 17px;
	color: var(--text);
	margin: 30px 0 10px;
}

/* ---------------- Карта смыслов (круги) ---------------- */

.map-nodes {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 10px;
	margin: 40px 0 26px;
	position: relative;
}
.map-node {
	flex: 1 1 150px;
	max-width: 210px;
	min-width: 140px;
	text-align: center;
	text-decoration: none;
	color: var(--text);
	position: relative;
	transition: transform 0.2s ease;
}
.map-node:hover { transform: translateY(-6px); color: var(--text); }
.node-circle {
	width: 110px;
	height: 110px;
	margin: 0 auto 14px;
	border-radius: 50%;
	background: #fff;
	border: 7px solid var(--red-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: bold;
	box-shadow: 0 6px 14px rgba(0,0,0,0.10);
}
.map-node--c1 .node-circle { border-color: var(--red-dark); }
.map-node--c2 .node-circle { border-color: #de0e0e; }
.map-node--c3 .node-circle { border-color: var(--orange); }
.map-node--c4 .node-circle { border-color: var(--green); }
.map-node--c5 .node-circle { border-color: var(--navy); }
.node-name { display: block; font-weight: bold; font-size: 19px; line-height: 1.25; }
.node-sub { display: block; font-size: 16px; color: var(--text); margin-top: 4px; line-height: 1.3; }

/* соединительная линия между кругами */
.map-nodes:before {
	content: '';
	position: absolute;
	top: 55px;
	left: 12%;
	right: 12%;
	height: 8px;
	background: linear-gradient(to right, var(--red-dark), #de0e0e, var(--orange), var(--green), var(--navy));
	z-index: -1;
}

.map-hint {
	text-align: center;
	font-style: italic;
	font-size: 18px;
	margin: 10px 0 24px;
}

/* мета-строка романа (теги под заголовком) */
.detail-meta { margin-bottom: 22px; }
.detail-meta .tag { font-size: 16px; padding: 4px 14px; }

.detail-sub {
	text-align: center;
	font-weight: bold;
	font-size: 24px;
	letter-spacing: 1px;
	margin: -6px 0 22px;
	text-transform: uppercase;
}

.experts-title {
	font-size: 22px;
	margin: 36px 0 18px;
}
.expert-name { font-weight: bold; }
.expert-degree { font-size: 15px; color: var(--muted); }

/* ---------------- Хронология ---------------- */

.timeline {
	position: relative;
	margin: 36px 0;
	padding-left: 0;
}
.timeline:before {
	content: '';
	position: absolute;
	left: 110px;
	top: 0;
	bottom: 0;
	width: 3px;
	background: linear-gradient(to bottom, var(--red-dark), var(--orange), var(--green));
}
.timeline-item {
	display: flex;
	margin-bottom: 30px;
	position: relative;
}
.timeline-item:before {
	content: '';
	position: absolute;
	left: 110px;
	top: 28px;
	width: 13px;
	height: 13px;
	margin-left: -5px;
	border-radius: 50%;
	background: var(--bg);
	border: 3px solid var(--muted);
}
.timeline-year {
	width: 110px;
	flex-shrink: 0;
	text-align: right;
	padding-right: 28px;
	font-size: 22px;
	font-weight: bold;
	color: var(--red-dark);
	padding-top: 20px;
	white-space: nowrap;
}
.timeline-card {
	flex: 1;
	background: var(--card);
	border-radius: 20px;
	box-shadow: 0 5px 12px rgba(0,0,0,0.06);
	padding: 18px 26px;
	margin-left: 30px;
	border-left: 6px solid var(--muted);
	transition: transform 0.2s, box-shadow 0.2s;
	min-width: 0;
}
.timeline-card:hover { transform: translateX(6px); box-shadow: 0 8px 18px rgba(0,0,0,0.1); }
.timeline-card h3 { font-size: 20px; margin-bottom: 4px; }
.timeline-card .sub { font-style: italic; font-size: 16px; color: #8f7356; margin-bottom: 8px; }
.timeline-card p { font-size: 17px; }
.timeline-card--novel { border-left-color: #c9a234; background: #fffef7; }
.timeline-card--award { border-left-color: #b8865b; }
.timeline-card--biography { border-left-color: #7f9f5e; }
.timeline-card--publication { border-left-color: var(--red-dark); }
.timeline-card--milestone { border-left-color: #4a2c1a; }

/* ---------------- Новости ---------------- */

.news-card {
	background: var(--card);
	border-radius: 20px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 22px 30px;
	margin-bottom: 28px;
}
.news-card .news-date { font-size: 15px; color: var(--muted); margin-bottom: 8px; }
.news-card h3 { font-size: 21px; margin-bottom: 12px; }
.news-card h3 a { color: var(--text); text-decoration: none; }
.news-card h3 a:hover { color: var(--red-dark); }
.news-card .news-text { font-size: 17px; margin-bottom: 6px; }
.news-card .news-full { display: none; margin-top: 10px; font-size: 17px; }
.news-card .news-more {
	font-size: 15px;
	color: var(--red-dark);
	text-decoration: underline;
	cursor: pointer;
	background: none;
	border: none;
	font-family: var(--serif);
	padding: 0;
}

/* ---------------- Галерея / мультимедиа ---------------- */

.section-caption {
	text-align: center;
	font-size: 21px;
	margin: 6px 0 26px;
}

.gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 34px;
	margin-bottom: 20px;
}
.gallery-card {
	background: var(--card);
	border-radius: 16px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.09);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.gallery-card .g-img { position: relative; }
.gallery-card .g-img img { display: block; width: 100%; height: 250px; object-fit: cover; cursor: pointer; }
.gallery-card .g-body { padding: 16px 20px 18px; }
.gallery-card h3 { font-size: 19px; margin-bottom: 6px; }
.gallery-card .g-sub { font-size: 16px; color: var(--muted); }

.media-card {
	background: var(--card);
	border-radius: 16px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.09);
	padding: 20px 26px;
	margin-bottom: 24px;
}
.media-card .m-type {
	display: inline-block;
	background: var(--red-dark);
	color: #fff;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 2px 10px;
	border-radius: 3px;
	margin-bottom: 10px;
}
.media-card h3 { font-size: 20px; margin-bottom: 6px; }
.media-card .m-sub { font-size: 16px; color: var(--muted); margin-bottom: 8px; }
.media-card p { font-size: 17px; }

/* ---------------- Библиотека Pro et Contra ---------------- */

.lib-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
	align-items: start;
}
.lib-search {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	background: var(--beige-light);
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 30px;
}
.lib-search input[type=text] {
	flex: 1 1 240px;
	border: 1px solid #bbb;
	padding: 7px 12px;
	font-family: var(--serif);
	font-size: 16px;
}
.lib-period { font-size: 21px; font-weight: bold; margin: 30px 0 18px; }
.lib-card {
	background: var(--card);
	border-radius: 18px;
	border-top: 3px solid var(--red-dark);
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 20px 28px;
	margin-bottom: 26px;
}
.lib-card--p1 { border-top-color: var(--red-dark); }
.lib-card--p2 { border-top-color: var(--green); }
.lib-card--p3 { border-top-color: var(--navy); }
.lib-card--p4 { border-top-color: var(--navy); }
.lib-card .lib-head { display: flex; justify-content: space-between; gap: 14px; }
.lib-card h3 { font-size: 19px; margin-bottom: 4px; }
.lib-card .lib-year { color: var(--muted); font-size: 16px; flex-shrink: 0; }
.lib-card .lib-author { font-style: italic; color: var(--red-logo); margin-bottom: 10px; }
.lib-card .lib-quote { font-size: 17px; margin-bottom: 12px; }
.lib-card .lib-contra {
	display: none;
	background: #f3efe4;
	border-left: 3px solid var(--gold);
	padding: 12px 16px;
	margin: 12px 0;
	font-size: 16px;
}
.lib-aside .aside-box {
	background: var(--beige-light);
	border-radius: 12px;
	padding: 18px 20px;
	margin-bottom: 26px;
	font-size: 15px;
}
.lib-aside .aside-box h3 { font-size: 18px; margin-bottom: 12px; text-align: center; }

/* полемика романов */
.polemic-grid { margin-top: 10px; }
.polemic-card {
	background: var(--card);
	border-radius: 18px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 22px 28px;
	margin-bottom: 26px;
}
.polemic-card h3 { font-size: 21px; margin-bottom: 4px; }
.polemic-card .p-meta { font-size: 16px; color: var(--muted); margin-bottom: 10px; }
.polemic-card p { font-size: 17px; margin-bottom: 8px; }

/* дуэльные блоки детальной полемики */
.duel-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 18px;
}
.position-card {
	border-radius: 12px;
	padding: 18px 22px;
	background: #fdfcf8;
	border-top: 4px solid var(--green);
}
.position-card--pro { border-top-color: var(--green); background: #f6faf2; }
.position-card--contra { border-top-color: var(--red-dark); background: #fbf4f2; }
.position-label {
	font-weight: bold;
	letter-spacing: 1px;
	margin-bottom: 8px;
}
.position-card--pro .position-label { color: var(--green); }
.position-card--contra .position-label { color: var(--red-dark); }
.critic-name { font-weight: bold; font-size: 18px; }
.critic-title { font-size: 15px; color: var(--muted); margin-bottom: 10px; }
.critic-argument { font-size: 16px; margin: 10px 0; }
.source-ref { font-size: 14px; color: var(--muted); font-style: italic; margin-top: 8px; }

@media (max-width: 768px) {
	.duel-grid { grid-template-columns: 1fr; }
}

/* ---------------- Обсуждение ---------------- */

.forum-card {
	background: var(--card);
	border-radius: 18px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 22px 30px;
	margin-bottom: 26px;
}
.forum-card h3 { font-size: 20px; margin-bottom: 6px; }
.forum-card .f-meta { font-size: 15px; color: var(--red-logo); margin-bottom: 12px; }
.forum-card .f-meta .f-date { color: var(--muted); }
.forum-card p { font-size: 17px; }
.forum-card .f-comments { display: none; margin-top: 14px; border-top: 1px solid #eee; padding-top: 12px; }
.forum-card .f-comment { margin-bottom: 12px; font-size: 16px; }
.forum-card .f-comment .fc-author { font-weight: bold; font-size: 15px; }
.forum-card .f-toggle {
	font-size: 15px;
	color: var(--red-dark);
	text-decoration: underline;
	cursor: pointer;
	background: none;
	border: none;
	font-family: var(--serif);
	padding: 0;
	margin-top: 10px;
}

/* форма «Вопрос эксперту» */
.question-form {
	display: grid;
	gap: 12px;
	max-width: 560px;
}
.question-form input[type=text],
.question-form input[type=email],
.question-form textarea {
	padding: 8px 12px;
	font-family: var(--serif);
	font-size: 16px;
	border: 1px solid #bbb;
	background: #fff;
}
.question-form button { justify-self: start; }
.question-form .hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-ok {
	background: #eef5e3;
	border-left: 4px solid var(--green);
	padding: 12px 16px;
	font-size: 17px;
}
.form-err {
	background: #fbf4f2;
	border-left: 4px solid var(--red-dark);
	padding: 12px 16px;
	font-size: 17px;
	margin-bottom: 12px;
}

/* ---------------- Исследования ---------------- */

.pub-card {
	background: var(--card);
	border-radius: 22px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.08);
	padding: 30px 36px;
	margin-bottom: 30px;
	display: flex;
	gap: 36px;
}
.pub-card .pub-cover {
	flex: 0 0 220px;
	background: var(--beige);
	border-radius: 12px;
	min-height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 20px;
	font-size: 17px;
}
.pub-card .pub-body { flex: 1; min-width: 0; }
.pub-card h3 { font-size: 22px; margin-bottom: 10px; }
.pub-card .pub-meta { font-style: italic; color: var(--red-logo); font-size: 18px; margin-bottom: 14px; }
.pub-card p { font-size: 17px; margin-bottom: 12px; }
.pub-card ul { padding-left: 24px; margin-bottom: 14px; font-size: 17px; }
.pub-card ul li { margin-bottom: 6px; }

.person-card {
	background: var(--card);
	border-radius: 18px;
	box-shadow: 0 6px 16px rgba(0,0,0,0.07);
	padding: 22px 28px;
	margin-bottom: 24px;
}
.person-card h3 { font-size: 20px; margin-bottom: 4px; }
.person-card .p-role { font-style: italic; color: var(--muted); margin-bottom: 10px; font-size: 16px; }
.person-card p { font-size: 17px; }

/* ---------------- Список материалов (старый вид, авторы и пр.) ---------------- */

.article_items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin: 24px 0; }
.article_item { background: var(--card); border-radius: 14px; box-shadow: 0 5px 12px rgba(0,0,0,0.07); overflow: hidden; }
.article_item_pic img { width: 100%; display: block; }
.article_item_text { padding: 14px 18px 18px; }
.article_item_text h3 { font-size: 18px; margin-bottom: 8px; }
.article_item_text h3 a { color: var(--text); text-decoration: none; }
.article_item_text h3 a:hover { color: var(--red-dark); }
.article_item_text_tag { font-size: 14px; color: var(--muted); }
.article_item_text_tag a { color: var(--red-logo); text-decoration: none; margin-right: 6px; }

/* ---------------- Пагинация ---------------- */

.pagination, .modern-page-navigation {
	text-align: center;
	margin: 26px 0 10px;
	font-size: 17px;
}
.pagination a, .modern-page-navigation a,
.pagination span, .modern-page-navigation span {
	display: inline-block;
	min-width: 38px;
	height: 38px;
	line-height: 38px;
	border-radius: 50%;
	background: #d6d6d6;
	color: var(--text);
	text-decoration: none;
	margin: 0 5px;
	text-align: center;
}
.pagination .current, .modern-page-current,
.pagination a:hover, .modern-page-navigation a:hover {
	background: var(--gold);
	color: #fff;
}

/* ---------------- Модальное окно ---------------- */

.ll-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(20, 18, 14, 0.75);
	z-index: 1000;
	padding: 30px 16px;
	overflow-y: auto;
}
.ll-modal-overlay.open { display: block; }
.ll-modal {
	background: var(--card);
	border-radius: 16px;
	max-width: 820px;
	margin: 4vh auto;
	padding: 30px 36px;
	position: relative;
}
.ll-modal img { display: block; margin: 0 auto; max-height: 78vh; width: auto; max-width: 100%; }
.ll-modal-close {
	position: absolute;
	top: 12px;
	right: 18px;
	background: none;
	border: none;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	color: var(--muted);
}
.ll-modal-close:hover { color: var(--red); }

/* ---------------- Главная ---------------- */

.index-banner { margin: 4px 0 30px; }
.index-banner img { width: 100%; border-radius: 4px; display: block; }

/* ---------------- Футер ---------------- */

.site-footer {
	margin-top: 40px;
	background: #6d6053 url('/bitrix/templates/leonov/images/footer_bg.jpg') center/cover no-repeat;
	position: relative;
	color: #4b4438;
}
.site-footer:before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(222, 218, 205, 0.55);
}
.site-footer .wrap {
	position: relative;
	display: flex;
	align-items: center;
	gap: 50px;
	padding-top: 30px;
	padding-bottom: 30px;
	flex-wrap: wrap;
}
.footer-logos {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.footer-logos img { height: 42px; width: auto; display: block; filter: grayscale(1) opacity(0.75); }
.footer-nav {
	display: flex;
	gap: 60px;
	flex: 1;
	flex-wrap: wrap;
}
.footer-nav ul { list-style: none; }
.footer-nav a {
	display: block;
	font-family: var(--display);
	font-weight: 600;
	font-size: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #4b4438;
	text-decoration: none;
	padding: 4px 0;
}
.footer-nav a:hover { color: var(--red-dark); }
.footer-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 20px;
	margin-left: auto;
}
.footer-social { display: flex; gap: 14px; }
.footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: #f5f2ea;
	border-radius: 10px;
	text-decoration: none;
}
.footer-social svg { width: 24px; height: 24px; fill: #5a5348; }
.footer-social a:hover svg { fill: var(--red-dark); }
.footer-copy { font-family: var(--display); font-size: 18px; }

/* ---------------- Поиск ---------------- */

.search-page input[type=text] {
	border: 1px solid var(--muted);
	padding: 7px 12px;
	font-family: var(--serif);
	font-size: 16px;
}
.search-page input[type=submit] {
	background: var(--beige);
	border: none;
	padding: 7px 18px;
	font-family: var(--serif);
	font-size: 16px;
	cursor: pointer;
}

/* ---------------- Адаптивность ---------------- */

@media (max-width: 1200px) {
	.header-collage img { width: 340px; }
	.header-brand {
		flex: 1 1 320px;
		width: auto;
		height: auto;
		min-width: 300px;
	}
	.header-logo { position: static; }
	.header-logo img { width: 320px; }
	.brand-line { display: none; }
	.header-about { position: static; width: auto; margin-top: 10px; }
	.footer-nav { gap: 36px; }
}

@media (max-width: 992px) {
	.header-collage { display: none; }
	.lib-layout { grid-template-columns: 1fr; }
	.lib-aside { order: -1; }
	.lib-aside .aside-box { margin-bottom: 18px; }
	.gallery { grid-template-columns: repeat(2, 1fr); gap: 24px; }
	.article_items { grid-template-columns: repeat(2, 1fr); }
	.pub-card { flex-direction: column; }
	.pub-card .pub-cover { flex-basis: auto; min-height: 180px; }
}

@media (max-width: 768px) {
	body { font-size: 17px; }
	.site-header .wrap { gap: 16px; padding-top: 20px; }
	.header-collage { margin-right: 0; align-self: flex-start; margin-bottom: 0; }
	.header-brand { margin-top: 0; }
	.header-search { position: static; margin-top: 16px; flex: 1 1 100%; }

	.nav-menu .sub-menu {
		display: block;
		position: static;
		box-shadow: none;
		background: none;
		padding: 0 0 4px 18px;
		min-width: 0;
	}
	.header-logos {
		flex-direction: row;
		flex-basis: auto;
		align-items: center;
		gap: 20px;
		margin-top: 0;
		margin-left: 0;
	}
	.header-logos .hl-sep { display: none; }
	.header-logos .hl-rnf img { width: 110px; }
	.header-logos .hl-rhga img { width: 110px; }
	.page-head h1, h1.page-title { font-size: 26px; }

	.nav-toggle { display: block; }
	.nav-menu {
		display: none;
		flex-direction: column;
		width: 100%;
		padding-bottom: 10px;
	}
	.nav-menu.open { display: flex; }
	.nav-menu li { margin: 0; }
	.nav-menu a { padding: 9px 4px; }

	.map-nodes:before { display: none; }
	.map-node { flex-basis: 40%; }

	.timeline:before { left: 20px; }
	.timeline-item { flex-direction: column; }
	.timeline-item:before { left: 20px; top: 6px; }
	.timeline-year { width: auto; text-align: left; padding: 0 0 6px 44px; }
	.timeline-card { margin-left: 44px; }

	.gallery { grid-template-columns: 1fr; }
	.article_items { grid-template-columns: 1fr; }
	.card { padding: 20px 20px; }
	.news-card, .forum-card, .lib-card, .polemic-card { padding: 18px 20px; }
	.pub-card { padding: 22px 20px; }

	.footer-nav { gap: 8px 30px; }
	.footer-nav a { font-size: 17px; }
	.footer-right { margin-left: 0; align-items: flex-start; }
}

@media (max-width: 480px) {
	.wrap { padding: 0 16px; }
	.header-logo img { width: 260px; }
	.header-search .search-adv { display: none; }
	.page-head h1, h1.page-title { font-size: 22px; }
	.map-node { flex-basis: 100%; }
	.node-circle { width: 90px; height: 90px; border-width: 5px; }
}

/* End */
/* /bitrix/templates/leonov/styles.css?178403078928129 */
