/* ============================================================
   ПТИЦА-ПОБЕДА — стили лендинга
   Палитра проекта: тёмно-зелёный / кремово-золотой / бордовый
   ============================================================ */

:root {
	--green:       #214536;
	--green-dark:  #18352a;
	--green-deep:  #122820;
	--gold:        #dcce94;
	--gold-light:  #efe7c6;
	--wine:        #9c525a;
	--wine-dark:   #7e3f47;
	--ink:         #131a16;
	--paper:       #f8f5ec;
	--paper-dark:  #efe9d9;
	--text:        #22302a;
	--muted:       #5f6f66;
	--container:   1200px;
	--radius:      14px;
	--shadow:      0 18px 40px -18px rgba(18, 40, 32, .35);
	--tr:          .3s cubic-bezier(.4, 0, .2, 1);
}

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

html { scroll-behavior: smooth; }

body {
	font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.65;
	color: var(--text);
	background: var(--paper);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- Кнопки ---------- */
.btn {
	display: inline-block;
	padding: 14px 30px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: transform var(--tr), background var(--tr), color var(--tr), border-color var(--tr), box-shadow var(--tr);
	cursor: pointer;
	text-align: center;
}
.btn:hover { transform: translateY(-2px); }
.btn-gold {
	background: var(--gold);
	color: var(--green-deep);
	box-shadow: 0 10px 26px -12px rgba(220, 206, 148, .55);
}
.btn-gold:hover { background: var(--gold-light); }
.btn-outline {
	border-color: rgba(220, 206, 148, .55);
	color: var(--gold-light);
}
.btn-outline:hover { border-color: var(--gold); background: rgba(220, 206, 148, .12); }
.btn-lg { padding: 18px 44px; font-size: 14px; }

/* ---------- Шапка ---------- */
.site-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	padding: 18px 0;
	transition: background var(--tr), padding var(--tr), box-shadow var(--tr);
}
.site-header.scrolled {
	background: rgba(18, 40, 32, .92);
	backdrop-filter: blur(10px);
	padding: 10px 0;
	box-shadow: 0 8px 30px -12px rgba(0, 0, 0, .45);
}
.header-inner {
	display: flex;
	align-items: center;
	gap: 28px;
}
.brand {
	display: flex;
	align-items: center;
	gap: 12px;
}
/* Официальный логотип (из брендбука, «Логотип цветной/белый.pdf») */
.brand-logo { height: 30px; width: auto; display: block; }

.main-nav {
	display: flex;
	gap: 26px;
	margin-left: auto;
}
.main-nav a {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
	color: rgba(248, 245, 236, .85);
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	transition: color var(--tr), border-color var(--tr);
}
.main-nav a:hover, .main-nav a.active { color: var(--gold); border-color: var(--gold); }
.header-cta { padding: 11px 22px; font-size: 11px; flex: none; }

.burger {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: 0;
	padding: 8px;
	margin-left: auto;
	cursor: pointer;
}
.burger span {
	width: 26px; height: 2px;
	background: var(--gold-light);
	transition: transform var(--tr), opacity var(--tr);
}
.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; }
.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Главный экран ---------- */
.hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: center;
	background:
		radial-gradient(1000px 600px at 85% 20%, rgba(220, 206, 148, .10), transparent 60%),
		linear-gradient(160deg, var(--green) 0%, var(--green-dark) 55%, var(--green-deep) 100%);
	color: var(--paper);
	overflow: hidden;
	padding: 120px 0 90px;
}
/* Фоновый рисунок — письма военных лет (как в секции выставки) */
.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('../images/letters.jpg') center / 480px repeat;
	opacity: .08;
	mix-blend-mode: luminosity;
	pointer-events: none;
}
/* Фото прижато вправо и не заходит под текст (текст — слева) */
.hero-photo {
	position: absolute;
	inset: 0 0 0 auto;
	width: 46%;
	background: url('../images/band-hero.jpg') center 22% / cover no-repeat;
	-webkit-mask-image: linear-gradient(100deg, transparent 0, #000 55%);
	mask-image: linear-gradient(100deg, transparent 0, #000 55%);
	opacity: .8;
}
/* Мягкое затемнение фото под шапкой и по левому краю — чтобы меню и текст не лежали на лицах */
.hero-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(24, 53, 42, .95) 0, rgba(24, 53, 42, .35) 18%, rgba(24, 53, 42, 0) 38%),
		linear-gradient(100deg, rgba(24, 53, 42, .8) 0, rgba(24, 53, 42, 0) 55%);
}
.hero-inner { position: relative; width: 100%; }
.hero-content { max-width: 56%; }

.hero-kicker {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: 34px;
	line-height: 1.8;
}

/* Официальный логотип в фирменной рамке */
.hero-logo {
	position: relative;
	display: inline-block;
	border: 2px solid rgba(220, 206, 148, .85);
	padding: 34px 38px 26px;
	margin-bottom: 34px;
	background: rgba(18, 40, 32, .35);
}
.hero-logo h1 { line-height: 0; }
.hero-logo-img {
	width: min(560px, 100%);
	height: auto;
	display: block;
}
.hero-sub {
	margin-top: 14px;
	font-size: clamp(11px, 1.4vw, 14px);
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--gold-light);
}

.hero-facts {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 0;
	margin-bottom: 40px;
}
.hero-facts li {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(248, 245, 236, .9);
	padding-right: 18px;
	margin-right: 18px;
	border-right: 1px solid rgba(220, 206, 148, .45);
}
.hero-facts li:last-child { border-right: 0; padding-right: 0; margin-right: 0; }

.btn-box { display: flex; flex-wrap: wrap; gap: 16px; }

/* фирменные полосы (по цветовому наброску заказчика) */
.brand-stripes {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	display: flex;
	flex-direction: column;
}
.brand-stripes i { height: 6px; }
.brand-stripes i:nth-child(1) { background: var(--gold); }
.brand-stripes i:nth-child(2) { background: var(--wine); }
.brand-stripes i:nth-child(3) { background: var(--green-deep); }

/* ---------- Секции: общее ---------- */
.section { padding: 96px 0; }

/* Светлые секции: еле заметные тематические SVG-текстуры (inline data-URI,
   без лишних запросов) + лёгкое чередование оттенков — фоны визуально
   разделяют секции. Лого-водяной знак убран по решению заказчика. */
.section-about { background: var(--paper); }
.section-team { background: var(--paper); }
.section-partners { background: #eef2ec; }

/* Тур: светло-золотистый + искры/звёзды салюта */
.section-tour {
	background-color: #f6f0dd;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340'%3E%3Cpath d='M90 46l5 20 20 5-20 5-5 20-5-20-20-5 20-5z' fill='%23a5904f' fill-opacity='.055'/%3E%3Cpath d='M250 202l3.5 14.5 14.5 3.5-14.5 3.5-3.5 14.5-3.5-14.5-14.5-3.5 14.5-3.5z' fill='%23a5904f' fill-opacity='.05'/%3E%3Ccircle cx='205' cy='90' r='2.5' fill='%23a5904f' fill-opacity='.05'/%3E%3Ccircle cx='60' cy='262' r='2' fill='%23a5904f' fill-opacity='.05'/%3E%3Ccircle cx='302' cy='44' r='2' fill='%23a5904f' fill-opacity='.045'/%3E%3C/svg%3E");
	background-size: 340px 340px;
}

/* Программа: кремовый + нотный стан и ноты */
.section-program {
	background-color: var(--paper);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cpath d='M30 70h300M30 78h300M30 86h300M30 94h300M30 102h300' stroke='%23214536' stroke-opacity='.035' stroke-width='1'/%3E%3Cellipse cx='120' cy='100' rx='7' ry='5' transform='rotate(-20 120 100)' fill='%23214536' fill-opacity='.05'/%3E%3Cpath d='M126.5 99V58' stroke='%23214536' stroke-opacity='.05' stroke-width='2.5'/%3E%3Cellipse cx='250' cy='256' rx='7' ry='5' transform='rotate(-20 250 256)' fill='%23214536' fill-opacity='.045'/%3E%3Cpath d='M256.5 255v-40c6 4 12 6 14 14' stroke='%23214536' stroke-opacity='.045' stroke-width='2.5' fill='none'/%3E%3C/svg%3E");
	background-size: 360px 360px;
}

/* Конкурс: светло-бордовый + силуэты журавлей-оригами (линии из лого) */
.section-contest {
	background-color: #f5ecec;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%239c525a' stroke-opacity='.06' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(30 50) scale(0.85)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3Cg fill='none' stroke='%239c525a' stroke-opacity='.05' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(392 258) scale(-0.6 0.6)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 420px 420px;
}

.sec-kicker {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--wine);
	margin-bottom: 14px;
}
.sec-title { max-width: 780px; margin-bottom: 56px; }
.sec-title h2 {
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.2;
	color: var(--green-deep);
	margin-bottom: 18px;
	text-transform: uppercase;
}
.sec-lead { font-size: 17px; color: var(--muted); }
.sec-title.light h2 { color: var(--paper); }
.sec-title.light .sec-lead { color: rgba(248, 245, 236, .78); }
.sec-title.light .sec-kicker { color: var(--gold); }

/* ---------- О проекте ---------- */
.cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.card {
	position: relative;
	display: block;
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	padding: 34px 30px 30px;
	transition: transform var(--tr), box-shadow var(--tr), border-color var(--tr);
}
.card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow);
	border-color: rgba(33, 69, 54, .25);
}
.card-num {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .2em;
	color: var(--wine);
}
.card h3 {
	margin: 14px 0 12px;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--green-deep);
	text-transform: uppercase;
}
.card p { font-size: 15px; color: var(--muted); margin-bottom: 20px; }
.card-more {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--green);
	transition: color var(--tr);
}
.card:hover .card-more { color: var(--wine); }

/* Блок ПФКИ в «О проекте»: цветной логотип на светлом фоне (правила фонда:
   охранное поле = высота буквы «К», не размещать на пёстром фоне) */
.pfki-badge {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 46px;
	padding-top: 26px;
	border-top: 1px solid rgba(33, 69, 54, .15);
}
.pfki-logo {
	height: 64px;
	width: auto;
	flex-shrink: 0;
	padding: 8px;
	background: #fff;
	border-radius: 10px;
}
.pfki-note {
	font-size: 14px;
	color: var(--muted);
}
.pfki-note strong { color: var(--green-deep); }

/* ---------- Цифры ---------- */
/* Шалфейный оттенок — мостик от тёмного hero к светлым секциям + редкие звёзды */
.counters {
	background-color: #eef1e8;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cpath d='M65 48l3.5 7.6 8.3 1-6.1 5.7 1.6 8.2-7.3-4.1-7.3 4.1 1.6-8.2-6.1-5.7 8.3-1z' fill='%23214536' fill-opacity='.045'/%3E%3Cpath d='M190 168l3.5 7.6 8.3 1-6.1 5.7 1.6 8.2-7.3-4.1-7.3 4.1 1.6-8.2-6.1-5.7 8.3-1z' fill='%23214536' fill-opacity='.04'/%3E%3C/svg%3E");
	background-size: 260px 260px;
	color: var(--text);
	padding: 72px 0;
}
.counters-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 36px 24px;
	text-align: center;
}
.count {
	display: block;
	font-size: clamp(40px, 5vw, 62px);
	font-weight: 300;
	letter-spacing: .04em;
	color: var(--green);
	line-height: 1;
	margin-bottom: 12px;
	font-variant-numeric: tabular-nums;
}
.counter-label {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	line-height: 1.7;
}

/* ---------- Тур ---------- */
.tour-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}
.tour-list { list-style: none; }
.tour-item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 26px;
	padding: 20px 24px;
	border-radius: var(--radius);
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	margin-bottom: 14px;
	transition: transform var(--tr), box-shadow var(--tr);
}
.tour-item:hover { transform: translateX(6px); box-shadow: var(--shadow); }
.tour-date {
	flex: none;
	width: 86px;
	text-align: center;
	padding: 10px 0;
	border-radius: 10px;
	background: var(--green);
	color: var(--gold-light);
}
.tour-day { display: block; font-size: 30px; font-weight: 500; line-height: 1; }
.tour-month { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin-top: 4px; color: var(--gold); }
.tour-place h3 {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: .05em;
	color: var(--green-deep);
	text-transform: uppercase;
}
.tour-place { flex: 1 1 auto; }
.tour-place p { font-size: 14px; color: var(--muted); margin-top: 2px; }
.tour-badge {
	margin-left: auto;
	flex: none;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wine);
	border: 1px solid rgba(156, 82, 90, .4);
	border-radius: 999px;
	padding: 7px 14px;
	white-space: nowrap;
}
/* Плашка «регистрация открыта» — золотой заливкой, чтобы читалась как призыв
   к действию рядом с нейтральной «вход свободный» */
.tour-badge--reg {
	color: var(--green-deep);
	background: var(--gold-light);
	border-color: var(--gold);
}
/* Строка тура кликабельна: кнопка-оверлей открывает модальное окно города.
   Подсказка «подробнее» всегда видна на тач-устройствах (ховера там нет). */
.tour-more {
	flex: none;
	margin-left: 16px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--green);
	white-space: nowrap;
	opacity: .35;
	transition: opacity var(--tr), color var(--tr);
}
.tour-item:hover .tour-more { opacity: 1; color: var(--wine); }
.tour-open {
	position: absolute;
	inset: 0;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	border-radius: var(--radius);
	cursor: pointer;
}
.tour-open:focus-visible { outline: 2px solid var(--wine); outline-offset: 3px; }
.tour-item:focus-within .tour-more { opacity: 1; color: var(--wine); }
@media (hover: none) {
	.tour-more { opacity: .75; }
}

.tour-photo {
	position: sticky;
	top: 110px;
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
}
.tour-photo img { width: 100%; height: 520px; object-fit: cover; object-position: top center; }
.tour-photo figcaption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 46px 24px 20px;
	background: linear-gradient(transparent, rgba(18, 40, 32, .92));
	color: var(--paper);
	font-size: 14px;
	line-height: 1.55;
}

/* ---------- Программа ---------- */
.section-program { color: var(--text); }
.program-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	gap: 48px;
	align-items: start;
}
.program-photo {
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, .6);
	position: sticky;
	top: 110px;
}
.program-photo img { width: 100%; object-fit: cover; }
.songs {
	list-style: none;
	counter-reset: song;
	columns: 2;
	column-gap: 40px;
}
.songs li {
	counter-increment: song;
	break-inside: avoid;
	padding: 12px 0 12px 44px;
	position: relative;
	border-bottom: 1px solid rgba(33, 69, 54, .14);
}
.songs li::before {
	content: counter(song, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wine);
	letter-spacing: .06em;
}
.songs strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .03em;
	color: var(--green-deep);
}
.songs span { font-size: 12.5px; color: var(--muted); }

/* ---------- Фотолента ---------- */
.photo-strip {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 1fr);
	gap: 6px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	background: var(--green-deep);
}
.photo-strip img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	scroll-snap-align: start;
	filter: saturate(.92);
	transition: filter var(--tr), transform var(--tr);
}
.photo-strip img:hover { filter: saturate(1.05); }

/* ---------- Выставка ---------- */
/* Сепия + строки фронтовых писем (letters.jpg) — историческая тема раздела */
.section-exhibition {
	position: relative;
	background:
		linear-gradient(rgba(246, 240, 228, .94), rgba(246, 240, 228, .94)),
		url('../images/letters.jpg') center / 480px repeat;
}
.exhibition-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	gap: 48px;
	align-items: start;
}
.exhibition-poster {
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
	transform: rotate(-1.6deg);
}
.exhibition-note {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--wine);
	margin-bottom: 18px;
}
.exhibition-sections ol {
	list-style: none;
	counter-reset: ex;
}
.exhibition-sections li {
	counter-increment: ex;
	position: relative;
	padding: 16px 20px 16px 74px;
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: 12px;
	margin-bottom: 12px;
	font-size: 16.5px;
	font-weight: 500;
	color: var(--green-deep);
	transition: transform var(--tr), box-shadow var(--tr);
}
.exhibition-sections li:hover { transform: translateX(6px); box-shadow: var(--shadow); }
.exhibition-sections li::before {
	content: counter(ex, decimal-leading-zero);
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 15px;
	font-weight: 600;
	color: var(--wine);
	letter-spacing: .06em;
}

/* ---------- Конкурс ---------- */
.section-contest { color: var(--text); }
.contest-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 52px;
}
.contest-block {
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	padding: 30px 28px;
}
.contest-block h3 {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wine-dark);
	margin-bottom: 12px;
}
.contest-block p { font-size: 15px; color: var(--text); }

/* Темы конкурса */
.contest-themes {
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	padding: 34px 32px 30px;
	margin-bottom: 52px;
}
.contest-themes h3 {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wine-dark);
	margin-bottom: 10px;
}
.contest-themes-lead {
	font-size: 15px;
	color: var(--muted);
	margin-bottom: 22px;
}
.themes-list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.themes-list li {
	padding: 10px 18px;
	background: var(--paper);
	border: 1px solid rgba(33, 69, 54, .12);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 500;
	color: var(--green-deep);
	transition: transform var(--tr), background var(--tr), border-color var(--tr);
}
.themes-list li:hover {
	transform: translateY(-2px);
	background: var(--gold-light);
	border-color: rgba(156, 82, 90, .3);
}

.contest-cta { text-align: center; }
.contest-cta-note {
	margin-top: 16px;
	font-size: 13px;
	letter-spacing: .08em;
	color: var(--muted);
}
/* Пометка о продлении приёма заявок (contest.accept_extended) */
.contest-cta-extended {
	display: inline-block;
	margin-top: 12px;
	padding: 8px 18px;
	background: var(--gold-light);
	border: 1px solid var(--gold);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
	color: var(--wine);
}

/* Ссылка на Положение под кнопкой подачи заявки */
.contest-cta-doc {
	margin-top: 10px;
	font-size: 14px;
	color: var(--muted);
}
.contest-cta-doc a {
	color: var(--green);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.contest-cta-doc a:hover { color: var(--wine); }

/* Приём закрыт/ещё не открыт: заметный текст вместо кнопки */
.contest-cta-closed {
	font-size: 16px;
	letter-spacing: .02em;
	color: var(--wine);
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Жюри ----------
   Тёмная секция-акцент между бордовым конкурсом и светлой командой:
   тёмно-зелёный фон + текстура журавлей золотом, портреты в золотой рамке. */
.section-jury {
	background-color: var(--green-dark);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%23dcce94' stroke-opacity='.07' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(40 60) scale(0.8)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3Cg fill='none' stroke='%23dcce94' stroke-opacity='.055' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(390 262) scale(-0.55 0.55)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 420px 420px;
}
.jury-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}
.jury-card {
	position: relative;
	padding: 16px 16px 22px;
	text-align: center;
	border: 1px solid rgba(220, 206, 148, .22);
	border-radius: var(--radius);
	background: rgba(248, 245, 236, .04);
	transition: transform var(--tr), border-color var(--tr), background var(--tr);
}
.jury-card.is-clickable { padding-bottom: 42px; }
.jury-card.is-clickable:hover {
	transform: translateY(-6px);
	border-color: var(--gold);
	background: rgba(248, 245, 236, .09);
}
.jury-photo {
	position: relative;
	aspect-ratio: 4 / 5;
	margin-bottom: 18px;
	border: 2px solid var(--gold);
	border-radius: 10px;
	overflow: hidden;
	background: rgba(248, 245, 236, .07);
}
.jury-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* Фото ещё нет — заглушка с журавликом из фирменного стиля */
.jury-photo.is-empty {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='95'%3E%3Cg fill='none' stroke='%23dcce94' stroke-opacity='.5' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(4 4)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 62% auto;
}
.jury-name {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--paper);
}
.jury-role {
	margin-top: 8px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.7;
	text-transform: uppercase;
	color: var(--gold);
}
/* Отдельная строка-акцент под лидом секции (бесплатный вход в туре) */
.sec-note {
	margin-top: 14px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .01em;
	color: var(--green);
}
.sec-title.light .sec-note { color: var(--gold); }
/* Пояснение под кнопками модального окна */
.modal-hint {
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--muted);
}

/* ---------- ПОБЕДИТЕЛИ КОНКУРСА ----------
   Светлая секция между бордовым конкурсом и тёмным жюри: карточки те же
   (.jury-card), но перекрашены под светлый фон. Секция появляется, только
   когда в config_site.yaml есть winners с active: true. */
.section-winners {
	background-color: var(--paper-dark);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%23214536' stroke-opacity='.07' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(40 60) scale(0.8)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3Cg fill='none' stroke='%23214536' stroke-opacity='.055' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(390 262) scale(-0.55 0.55)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 420px 420px;
}
.section-winners .jury-card {
	border-color: rgba(33, 69, 54, .16);
	background: rgba(255, 255, 255, .62);
}
.section-winners .jury-card.is-clickable:hover {
	border-color: var(--green);
	background: #fff;
}
.section-winners .jury-photo {
	border-color: var(--green);
	background: rgba(33, 69, 54, .06);
}
.section-winners .jury-photo.is-empty {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='95'%3E%3Cg fill='none' stroke='%23214536' stroke-opacity='.45' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(4 4)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
}
.section-winners .jury-name { color: var(--text); }
.section-winners .jury-role { color: var(--wine); }
.section-winners .jury-more { color: var(--green); }
/* Название произведения победителя — под именем и городом */
.winner-work {
	margin-top: 8px;
	font-size: 14px;
	font-style: italic;
	line-height: 1.5;
	color: var(--muted);
}

/* Кнопка-оверлей: клик и Tab работают по всей карточке */
.jury-open {
	position: absolute;
	inset: 0;
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0 0 14px;
	border: 0;
	border-radius: var(--radius);
	background: none;
	cursor: pointer;
}
.jury-open:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.jury-more {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gold-light);
	opacity: 0;
	transform: translateY(4px);
	transition: opacity var(--tr), transform var(--tr);
}
.jury-card:hover .jury-more,
.jury-open:focus-visible .jury-more { opacity: 1; transform: none; }
@media (hover: none) {
	.jury-more { opacity: .8; transform: none; }
}

/* ---------- Модальное окно (города тура и жюри) ---------- */
.modal-sources { display: none; }
body.modal-open { overflow: hidden; }
.modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.modal[hidden] { display: none; }
.modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(18, 40, 32, .74);
	opacity: 0;
	transition: opacity var(--tr);
}
.modal.open .modal-backdrop { opacity: 1; }
.modal-dialog {
	position: relative;
	width: min(680px, 100%);
	max-height: 86vh;
	overflow-y: auto;
	padding: 44px 46px 38px;
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: 0 30px 70px -20px rgba(9, 22, 17, .7);
	opacity: 0;
	transform: translateY(18px) scale(.98);
	transition: opacity var(--tr), transform var(--tr);
}
.modal.open .modal-dialog { opacity: 1; transform: none; }
.modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: rgba(33, 69, 54, .08);
	color: var(--green-deep);
	cursor: pointer;
	transition: background var(--tr), color var(--tr);
}
.modal-close:hover { background: var(--wine); color: var(--paper); }
.modal-close svg { width: 18px; height: 18px; }
.modal-kicker {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--wine);
}
.modal-title {
	margin: 10px 0 8px;
	font-size: clamp(24px, 4vw, 32px);
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--green-deep);
}
.modal-venue { font-size: 16px; font-weight: 600; color: var(--green); }
.modal-address { margin-top: 4px; font-size: 15px; color: var(--muted); }
.modal-photo {
	margin: 24px 0 4px;
	border-radius: 12px;
	overflow: hidden;
}
.modal-photo-portrait img { max-height: 340px; width: auto; margin: 0 auto; }
.modal-text { margin-top: 16px; font-size: 15px; color: var(--muted); }
.modal-text p { margin: 0 0 10px; }
.modal-text p:last-child { margin-bottom: 0; }
/* Адреса в «коротко об авторе» и соцсети автора: длинные ссылки не должны
   распирать модалку на телефоне */
.modal-text a,
.modal-socials a {
	color: var(--wine);
	text-decoration: none;
	overflow-wrap: anywhere;
	transition: color var(--tr);
}
.modal-text a:hover,
.modal-socials a:hover { color: var(--wine-dark); text-decoration: underline; }
.modal-socials {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 16px;
	margin-top: 14px;
	font-size: 14px;
}
.modal-socials-label {
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 12px;
}
.modal-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
	margin-top: 28px;
}
/* Ссылки на Timepad ещё нет: кнопка видна, но не кликается */
.btn.is-disabled {
	background: var(--paper-dark);
	color: var(--muted);
	box-shadow: none;
	cursor: default;
	pointer-events: none;
}
.modal-map {
	font-size: 14px;
	font-weight: 600;
	color: var(--green);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.modal-map:hover { color: var(--wine); }
.modal-contest {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid rgba(33, 69, 54, .12);
	font-size: 14px;
	color: var(--muted);
}
.modal-contest a { color: var(--wine); font-weight: 600; }
.modal-contest a:hover { color: var(--wine-dark); }

/* ---------- Команда ---------- */
.team-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.team-card {
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	padding: 30px 28px;
	transition: transform var(--tr), box-shadow var(--tr);
}
.team-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.team-card h3 {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--green-deep);
}
.team-role {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wine);
	margin: 8px 0 12px;
	line-height: 1.6;
}
.team-bio { font-size: 14px; color: var(--muted); }

/* ---------- Партнёры ---------- */
.section-partners { padding: 80px 0; }
.partners-grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.partner {
	background: #fff;
	border-radius: 12px;
	border: 1px solid rgba(33, 69, 54, .1);
	padding: 22px 24px;
}
/* Логотип партнёра (ПФКИ и др.): соразмерность и охранное поле */
.partner-logo {
	display: block;
	max-height: 56px;
	max-width: 100%;
	width: auto;
	/* Логотипы выровнены по центру карточки: у партнёров знаки разной
	   пропорции, по левому краю ряд смотрелся рваным */
	margin: 0 auto 14px;
}
.partner strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--green-deep);
	letter-spacing: .02em;
	margin-bottom: 6px;
}
.partner span { font-size: 13px; color: var(--muted); }

/* ---------- Футер ---------- */
.site-footer {
	background: var(--green-deep);
	color: rgba(248, 245, 236, .85);
}
.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr .8fr;
	gap: 48px;
	padding: 72px 24px 48px;
}
.footer-brand .brand { margin-bottom: 18px; }
.footer-brand p { font-size: 14px; color: rgba(248, 245, 236, .65); max-width: 380px; }
/* Лого ПФКИ в футере — белая версия фонда для тёмного фона.
   Отступы = охранное поле логотипа */
.pfki-footer {
	display: inline-block;
	margin-top: 20px;
	padding: 6px 0;
}
.pfki-footer img { display: block; height: 56px; width: auto; }
.pfki-links { margin-top: 12px; font-size: 13px; }
.pfki-links a { color: var(--gold); }
.pfki-links a:hover { color: var(--gold-light); }
.site-footer h3 {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: 16px;
}
.footer-contacts p { font-size: 15px; margin-bottom: 8px; }
.footer-contacts a:hover { color: var(--gold); }
.vk-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
	color: var(--gold-light);
}
.vk-icon { width: 20px; height: 20px; flex: none; }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; }
.footer-nav a {
	font-size: 14px;
	padding: 4px 0;
	color: rgba(248, 245, 236, .75);
	transition: color var(--tr);
}
.footer-nav a:hover { color: var(--gold); }
.footer-bottom {
	border-top: 1px solid rgba(220, 206, 148, .18);
	padding: 20px 0;
	font-size: 13px;
	color: rgba(248, 245, 236, .5);
}

/* ---------- Кнопка «наверх» ---------- */
.to-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 90;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--green);
	color: var(--gold);
	display: grid;
	place-items: center;
	box-shadow: var(--shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--tr), transform var(--tr), visibility var(--tr), background var(--tr);
}
.to-top.visible { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--green-dark); }
.to-top img { width: 30px; height: auto; }

/* ---------- Появление при скролле ---------- */
.reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s ease, transform .7s ease;
}
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	html { scroll-behavior: auto; }
}

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1024px) {
	.main-nav { display: none; }
	.header-cta { display: none; }
	.burger { display: flex; }

	/* мобильное меню */
	.main-nav.open {
		display: flex;
		position: fixed;
		inset: 0;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 8px;
		background: rgba(18, 40, 32, .97);
		backdrop-filter: blur(12px);
	}
	.main-nav.open a {
		font-size: 18px;
		padding: 12px 0;
		border-bottom: 0;
	}
	.burger { position: relative; z-index: 120; }

	.tour-layout, .program-layout, .exhibition-layout { grid-template-columns: 1fr; }
	.tour-photo, .program-photo { position: static; }
	.tour-photo img { height: 380px; }
	.cards-grid, .contest-grid, .team-grid { grid-template-columns: repeat(2, 1fr); }
	.partners-grid { grid-template-columns: repeat(2, 1fr); }
	.jury-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
	.modal-dialog { padding: 40px 30px 32px; }
	.counters-grid { grid-template-columns: repeat(2, 1fr); }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.songs { columns: 2; }
	/* Мобильная версия: без фото, только фирменный фон хиро */
	.hero-photo { display: none; }
	.hero-content { max-width: 100%; }
}

@media (max-width: 640px) {
	.section { padding: 64px 0; }
	.container { padding: 0 18px; }

	.hero { padding: 104px 0 70px; }
	.hero-kicker { font-size: 11px; margin-bottom: 26px; }
	.hero-logo { margin-bottom: 26px; padding: 24px 20px 18px; }
	.hero-sub { letter-spacing: .2em; }
	.hero-facts li {
		border-right: 0;
		padding-right: 0;
		margin-right: 0;
		width: 100%;
		padding-left: 20px;
		position: relative;
	}
	.hero-facts li::before {
		content: '';
		position: absolute;
		left: 0; top: 8px;
		width: 8px; height: 8px;
		border-radius: 50%;
		background: var(--gold);
	}
	.btn-box .btn { width: 100%; }

	.cards-grid, .contest-grid, .team-grid, .partners-grid { grid-template-columns: 1fr; }
	.counters-grid { gap: 28px 16px; }

	.contest-themes { padding: 26px 20px 22px; margin-bottom: 36px; }
	.themes-list { gap: 8px; }
	.themes-list li { padding: 8px 14px; font-size: 14px; }

	.tour-item { flex-wrap: wrap; gap: 14px 18px; padding: 18px; }
	.tour-date { width: 72px; }
	.tour-day { font-size: 24px; }
	.tour-badge { margin-left: 90px; order: 3; }
	.tour-more { margin-left: 0; order: 4; }
	.tour-photo img { height: 300px; }

	/* Жюри на телефоне — свайп-карусель вместо сетки */
	.jury-grid {
		display: flex;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 10px;
		margin: 0 -18px;
		padding-left: 18px;
		padding-right: 18px;
	}
	.jury-card { flex: 0 0 76%; scroll-snap-align: center; }
	.modal { padding: 0; align-items: flex-end; }
	.modal-dialog {
		width: 100%;
		max-height: 92vh;
		border-radius: var(--radius) var(--radius) 0 0;
		padding: 36px 20px 28px;
	}
	.modal-actions .btn { width: 100%; }

	.songs { columns: 1; }
	.photo-strip { grid-auto-columns: 82%; }
	.photo-strip img { height: 240px; }

	.footer-grid { grid-template-columns: 1fr; gap: 32px; padding: 56px 18px 36px; }
	.to-top { width: 48px; height: 48px; right: 14px; bottom: 14px; }
	.to-top img { width: 24px; }

	/* Текстуры на мобильных — мельче плитка: на узком экране крупный мотив
	   перестаёт быть фоном и начинает конкурировать с текстом */
	.section-tour { background-size: 200px 200px; }
	.section-program { background-size: 220px 220px; }
	.section-contest { background-size: 240px 240px; }
	.section-jury { background-size: 240px 240px; }
	.counters { background-size: 170px 170px; }

	.pfki-badge { flex-direction: column; align-items: flex-start; gap: 16px; }
	.pfki-logo { height: 52px; }
}

@media (max-width: 380px) {
	.brand-logo { height: 24px; }
}

/* ============================================================
   ФОРМА ЗАЯВКИ ПОЭТИЧЕСКОГО КОНКУРСА (/contest/)
   Гамма секции конкурса: бордовый фон + светлая карточка формы
   ============================================================ */

body.contest-page {
	/* Гамма секции конкурса: светло-бордовый + журавли чуть слабее, чем на главной */
	background-color: #f5ecec;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%239c525a' stroke-opacity='.045' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(30 50) scale(0.85)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3Cg fill='none' stroke='%239c525a' stroke-opacity='.035' stroke-width='4' stroke-linejoin='round' stroke-linecap='round' transform='translate(392 258) scale(-0.6 0.6)'%3E%3Cpath d='M6 52 L28 45'/%3E%3Cpath d='M28 45 L47 62 L20 66 Z'/%3E%3Cpath d='M47 62 L98 55 L122 68 L76 80 Z'/%3E%3Cpath d='M47 62 L62 14 L98 55 Z'/%3E%3Cpath d='M62 14 L108 9 L98 55'/%3E%3Cpath d='M98 55 L134 33 L122 68'/%3E%3Cpath d='M47 62 L76 80'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 420px 420px;
	min-height: 100vh;
}
.contest-form-section { padding: 150px 0 90px; }
.contest-form-container { max-width: 820px; }
.contest-form-section .sec-title { margin-bottom: 36px; }
.contest-page .contest-themes { margin-bottom: 30px; }

/* Индикатор шагов */
.form-steps {
	display: flex;
	gap: 10px;
	list-style: none;
	margin-bottom: 26px;
	flex-wrap: wrap;
}
.step-dot {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 18px 9px 10px;
	border-radius: 999px;
	border: 1px solid rgba(33, 69, 54, .28);
	color: var(--muted);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	transition: background var(--tr), color var(--tr), border-color var(--tr);
}
.step-dot span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: rgba(33, 69, 54, .1);
	font-size: 13px;
}
.step-dot.active {
	background: var(--gold);
	border-color: var(--gold);
	color: var(--green-deep);
}
.step-dot.active span { background: rgba(18, 40, 32, .16); }
.step-dot.done { border-color: var(--green); color: var(--green); }

/* Карточка формы */
.contest-form {
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 40px 42px 34px;
}
.form-step { display: none; border: none; }
.form-step.active { display: block; }
.form-step legend {
	font-size: 22px;
	font-weight: 700;
	color: var(--green-deep);
	margin-bottom: 8px;
}
.form-note { color: var(--muted); font-size: 14px; margin-bottom: 22px; }

.field-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px 20px;
	margin-top: 18px;
}
.field-grid.one-col { grid-template-columns: 1fr; }
.field { display: block; }
.field > span {
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--green-dark);
	margin-bottom: 7px;
}
.field > span i { color: var(--wine); font-style: normal; }
.field input[type="text"],
.field input[type="tel"],
.field input[type="email"],
.field textarea {
	width: 100%;
	padding: 13px 16px;
	border: 1.5px solid var(--paper-dark);
	border-radius: 10px;
	background: #fff;
	font: inherit;
	font-size: 15px;
	color: var(--text);
	transition: border-color var(--tr), box-shadow var(--tr);
}
.field textarea { resize: vertical; min-height: 180px; line-height: 1.6; }
.field input:focus, .field textarea:focus {
	outline: none;
	border-color: var(--green);
	box-shadow: 0 0 0 3px rgba(33, 69, 54, .12);
}

/* Пояснение под полем формы */
.field-hint {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted);
}

/* Превью загруженного файла: фото автора и видео с чтением */
.upload-preview {
	display: block;
	margin-top: 14px;
	max-width: 100%;
	border-radius: 12px;
	border: 1px solid rgba(33, 69, 54, .12);
	background: var(--paper);
}
img.upload-preview { max-height: 320px; width: auto; }
video.upload-preview { width: 100%; }

/* Подсказки городов (ФИАС) */
.suggest-wrap { position: relative; }
.suggest-list {
	position: absolute;
	left: 0; right: 0;
	top: 100%;
	margin-top: 4px;
	background: #fff;
	border: 1.5px solid var(--gold);
	border-radius: 10px;
	box-shadow: var(--shadow);
	overflow: hidden;
	z-index: 30;
}
.suggest-item {
	display: block;
	width: 100%;
	padding: 11px 16px;
	border: 0;
	background: none;
	font: inherit;
	font-size: 14px;
	color: var(--text);
	text-align: left;
	cursor: pointer;
}
.suggest-item:hover, .suggest-item.active {
	background: var(--paper);
	color: var(--wine);
}

/* Чекбоксы */
.check-line {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 20px 0 4px;
	cursor: pointer;
	font-size: 14.5px;
	color: var(--text);
}
.check-line input {
	width: 20px; height: 20px;
	margin-top: 2px;
	accent-color: var(--green);
	flex: none;
	cursor: pointer;
}
.check-line i { color: var(--wine); font-style: normal; }

/* Загрузка видео */
.file-drop {
	display: block;
	border: 2px dashed rgba(33, 69, 54, .35);
	border-radius: 12px;
	padding: 30px 20px;
	text-align: center;
	cursor: pointer;
	background: #fff;
	transition: border-color var(--tr), background var(--tr);
}
.file-drop:hover, .file-drop.dragging { border-color: var(--green); background: rgba(220, 206, 148, .12); }
.file-drop.has-file { border-style: solid; border-color: var(--green); }
.file-drop input[type="file"] { display: none; }
.file-drop-text { color: var(--green-dark); font-weight: 600; font-size: 15px; line-height: 1.5; }
.file-drop-text small { color: var(--muted); font-weight: 400; font-size: 13px; }

.upload-progress {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 12px;
}
.upload-bar {
	flex: 1;
	height: 10px;
	border-radius: 999px;
	background: var(--paper-dark);
	overflow: hidden;
}
.upload-bar i {
	display: block;
	height: 100%;
	width: 0%;
	background: linear-gradient(90deg, var(--green), var(--gold));
	border-radius: 999px;
	transition: width .2s linear;
}
#uploadPercent { font-size: 13px; font-weight: 600; color: var(--green-dark); min-width: 40px; text-align: right; }

/* Ошибки и навигация */
.form-error {
	margin-top: 20px;
	padding: 13px 18px;
	border-radius: 10px;
	background: rgba(156, 82, 90, .12);
	border: 1px solid rgba(156, 82, 90, .4);
	color: var(--wine-dark);
	font-size: 14.5px;
	font-weight: 600;
}
.form-nav {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	margin-top: 28px;
	flex-wrap: wrap;
}
.form-nav .btn { flex: none; }
.form-nav #btnNext, .form-nav #btnSubmit { margin-left: auto; }
.contest-form .btn-outline { border-color: rgba(33, 69, 54, .4); color: var(--green-dark); }
.contest-form .btn-outline:hover { border-color: var(--green); background: rgba(33, 69, 54, .08); }
.contest-form .btn[disabled] { opacity: .6; cursor: default; transform: none; }

/* Помощь заявителю: техническая поддержка формы */
.contest-help {
	margin-top: 34px;
	padding: 24px 28px;
	background: #fff;
	border: 1px solid rgba(156, 82, 90, .28);
	border-radius: var(--radius);
}
.contest-help h3 {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wine-dark);
	margin-bottom: 8px;
}
.contest-help p {
	font-size: 14.5px;
	color: var(--muted);
	line-height: 1.6;
}
.contest-help-contacts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin-top: 12px;
}
.contest-help-contacts a {
	font-size: 15px;
	font-weight: 600;
	color: var(--green-deep);
	border-bottom: 1px solid rgba(33, 69, 54, .25);
	transition: color var(--tr), border-color var(--tr);
}
.contest-help-contacts .ci {
	margin-right: 8px;
	border: 0;
}
.contest-help-contacts a:hover {
	color: var(--wine-dark);
	border-color: rgba(156, 82, 90, .5);
}

/* Экран успеха */
.form-success { text-align: center; padding: 30px 10px 16px; }
.form-success.active { display: block; }
.success-crane { width: 96px; height: auto; margin: 0 auto 18px; display: block; }
.form-success h3 { font-size: 26px; color: var(--green-deep); margin-bottom: 14px; }
.form-success p { color: var(--text); margin-bottom: 12px; }
.form-success strong { color: var(--wine-dark); }
.form-success .btn { margin-top: 18px; }

/* Шапка/футер страницы формы */
.contest-page .site-footer { padding-top: 0; }
.contest-page .header-cta { display: inline-block; }

@media (max-width: 760px) {
	/* Мельче плитка журавлей: на узком экране крупный мотив перестаёт быть
	   фоном. Правило живёт здесь, а не в общем мобильном блоке, — иначе его
	   перебивает объявление body.contest-page выше по файлу. */
	body.contest-page { background-size: 240px 240px; }
	.contest-form-section { padding: 120px 0 56px; }
	.contest-form { padding: 26px 18px 22px; }
	.field-grid { grid-template-columns: 1fr; }
	.form-steps { gap: 8px; }
	.step-dot { padding: 7px 14px 7px 8px; font-size: 12px; }
	.step-dot span { width: 24px; height: 24px; font-size: 12px; }
	.form-nav .btn { flex: 1; }
	.contest-help { padding: 20px 18px; }
	.contest-help-contacts { gap: 8px 18px; }
	.contest-page .header-cta { display: inline-block; }
}

/* Атрибут hidden сильнее display у кнопок/гридов формы */
.contest-page [hidden] { display: none !important; }

/* ============================================================
   СТРАНИЦЫ ДОКУМЕНТОВ (/regulation/, /popd/)
   Спокойный кремовый фон, длинный текст — читаемость важнее декора
   ============================================================ */

body.doc-page { background: var(--paper); min-height: 100vh; }
.doc-section { padding: 150px 0 90px; }
.doc-container { max-width: 860px; }
.doc-section .sec-title { margin-bottom: 40px; }
.doc-section .sec-title h2 { font-size: clamp(24px, 3vw, 34px); text-transform: none; }

.doc-block {
	background: #fff;
	border: 1px solid rgba(33, 69, 54, .1);
	border-radius: var(--radius);
	padding: 28px 32px;
	margin-bottom: 18px;
}
.doc-block h3 {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--green-deep);
	margin-bottom: 16px;
}
.doc-block ol, .doc-block ul { padding-left: 0; list-style: none; }
.doc-block > ol > li {
	font-size: 15px;
	line-height: 1.7;
	color: var(--text);
	margin-bottom: 12px;
}
.doc-block ul { margin: 10px 0 4px 0; }
.doc-block ul li {
	position: relative;
	padding-left: 18px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--text);
	margin-bottom: 6px;
}
.doc-block ul li::before {
	content: '';
	position: absolute;
	left: 2px; top: 11px;
	width: 5px; height: 5px;
	border-radius: 50%;
	background: var(--wine);
}
.doc-block p { font-size: 15px; line-height: 1.7; color: var(--text); }
.doc-block p + p { margin-top: 10px; }
.doc-block a { color: var(--green); text-decoration: underline; }
.doc-block a:hover { color: var(--wine); }
.doc-note { margin-top: 14px; font-size: 14px; color: var(--muted); }

/* Темы конкурса в Положении — в две колонки на широком экране */
.doc-themes { columns: 2; column-gap: 28px; }
.doc-cta { margin-top: 32px; text-align: center; }

@media (max-width: 760px) {
	.doc-section { padding: 120px 0 60px; }
	.doc-block { padding: 22px 18px; }
	.doc-themes { columns: 1; }
}
