@import url("/static/fonts.css");
/* Наш слой поверх исходных стилей: страховка от скрытых блоков и мелочи,
   которых не было в сохранённой копии. */

/* Без JS элементы оставались невидимыми, потому что чужой скрипт удалён.
   Возвращаем видимость всему, что не успел показать наш наблюдатель. */
.no-js .demo-block, .no-js .demo-hero { opacity: 1 !important; transform: none !important; }
.demo-block, .demo-hero { will-change: auto }

/* Плашка об отправке заявки */
.vozduh-note{ position:fixed; left:50%; bottom:28px; transform:translate(-50%,20px);
  background:#127a53; color:#fff; padding:14px 26px; border-radius:999px;
  font:600 15px/1.2 system-ui,sans-serif; box-shadow:0 10px 30px rgba(0,0,0,.25);
  opacity:0; transition:opacity .3s ease, transform .3s ease; z-index:9999 }
.vozduh-note.is-visible{ opacity:1; transform:translate(-50%,0) }


/* ── Наши блоки: кнопки, формы, программа, инвест гостиная ───────────── */

:root {
	--vz-blue: #1c9a6b;
	--vz-blue-dark: #127a53;
	--vz-paper: #eef8f2;
}

/* Кнопки */
.vz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 30px;
	border: 2px solid var(--vz-blue);
	border-radius: 999px;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.1;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.vz-btn--primary { background: var(--vz-blue); color: #fff; }
.vz-btn--primary:hover { background: var(--vz-blue-dark); border-color: var(--vz-blue-dark); color: #fff; }
.vz-btn--ghost { background: transparent; color: var(--vz-blue); }
.vz-btn--ghost:hover { background: var(--vz-blue); color: #fff; }
.vz-btn--wide { width: 100%; margin-top: 8px; }

.vz-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 18px;
}

/* Призыв подписаться на телеграм */
.vz-tg {
	margin: 14px 0 0;
	max-width: 620px;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.5;
}

.vz-tg__link { color: var(--vz-blue); font-weight: 700; text-decoration: underline; }
.demo-block-06__meta .vz-tg { color: rgba(255, 255, 255, 0.9); }
.demo-block-06__meta .vz-tg__link { color: #c9f0dc; }

/* Поля форм */
.vz-field {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(17, 17, 17, 0.18);
	border-radius: 10px;
	background: #fff;
	color: #111;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 0.9375rem;
	line-height: 1.3;
}

.vz-field:focus { outline: 2px solid var(--vz-blue); outline-offset: 1px; }

/* Полоса «стать партнёром» в середине страницы */
.vz-inline-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.vz-inline-form .vz-field { width: auto; min-width: 0; flex: 1 1 150px; }
.vz-inline-form .vz-btn { padding: 12px 22px; font-size: 0.8125rem; }

/* Три карточки-приглашения внизу страницы вместо трёх открытых форм:
   человек видит, куда именно он записывается, и открывает нужную форму
   уже осознанно. auto-fit вместо breakpoint'а на конкретную ширину —
   колонка встаёт в ряд, пока хватает места, и переносится сама, без
   скачков на заранее угаданных значениях (тот же приём, что и раньше
   для форм — раскладка держится одинаково что при 90%, что при 150%). */
.demo-block-07__inner { max-width: 1100px; }

.vz-promo {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}

.vz-promo__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	min-height: 236px;
	padding: 28px 26px;
	border: 0;
	border-radius: 20px;
	font-family: Montserrat, system-ui, sans-serif;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vz-promo__card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(10, 30, 23, 0.22); }

.vz-promo__eyebrow {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.75;
}

.vz-promo__title {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.vz-promo__sub { margin: 0; font-size: 0.875rem; line-height: 1.45; opacity: 0.85; }

.vz-promo__cta {
	margin-top: auto;
	padding-top: 14px;
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.02em;
}

.vz-promo__card--blue { background: var(--vz-blue); color: #fff; }
.vz-promo__card--blue:hover { background: var(--vz-blue-dark); }

.vz-promo__card--black { background: #0d0d0d; color: #fff; border: 1px solid rgba(255, 255, 255, 0.16); }
.vz-promo__card--black:hover { background: #17191c; }

.vz-promo__card--white { background: #fff; color: #10352a; border: 2px solid var(--vz-blue); }
.vz-promo__card--white .vz-promo__eyebrow, .vz-promo__card--white .vz-promo__cta { color: var(--vz-blue); }
.vz-promo__card--white:hover { background: var(--vz-paper); }

/* Значок «заявка отправлена» на самой карточке — заметнее, чем общий
   тост внизу экрана, и сразу видно, какая именно форма ушла. */
.vz-promo__badge {
	display: none;
	position: absolute;
	top: 14px;
	right: 14px;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--vz-blue);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	box-shadow: 0 4px 10px rgba(10, 30, 23, 0.25);
}
.vz-promo__card--done .vz-promo__badge { display: flex; }

/* ── Модальные окна регистрации ─────────────────────────────────────── */
.vz-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 10000;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.vz-modal.is-open { display: flex; }
body.vz-modal-open { overflow: hidden; }

.vz-modal__backdrop { position: absolute; inset: 0; background: rgba(6, 11, 9, 0.72); }

.vz-modal__panel {
	position: relative;
	width: 100%;
	max-width: 480px;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	animation: vz-modal-in 0.2s ease;
}

.vz-modal__panel .vz-form-card { margin: 0; }

.vz-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	z-index: 1;
}

.vz-modal__close:hover { background: rgba(255, 255, 255, 0.16); }

@keyframes vz-modal-in {
	from { opacity: 0; transform: translateY(12px) scale(0.98); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.vz-modal__panel { animation: none; }
	.vz-promo__card:hover { transform: none; }
}

.vz-form-card {
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 18px;
	/* фон под формой светлеет из-за ленты партнёров, поэтому карточка своя тёмная */
	background: #0d0d0d;
	scroll-margin-top: 24px;
}

.vz-form-card__title {
	margin: 0 0 18px;
	color: #fff;
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.vz-form { display: flex; flex-direction: column; }

.vz-label {
	margin-bottom: 6px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
}

.vz-form .vz-field + .vz-label,
.vz-form select.vz-field + .vz-label { margin-top: 14px; }

.vz-req { color: #ff8a8a; }

.vz-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 16px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.vz-check input { margin: 2px 0 0; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--vz-blue); }

/* ── Общие части наших секций ── */

.vz-block { padding: 56px 0; }
.vz-block--program { background: var(--vz-paper); color: #111; }
.vz-block--invest { background: #000; color: #fff; }

.vz-head { margin-bottom: 32px; text-align: center; }

.vz-head__title {
	margin: 0 0 10px;
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.1;
	text-transform: uppercase;
}

.vz-head__sub {
	margin: 0 auto;
	max-width: 720px;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.5;
}

.vz-block--program .vz-head__title { color: var(--vz-blue); }
.vz-head--invert .vz-head__title {
	background: linear-gradient(180deg, #c9f0dc 0%, #1c9a6b 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.vz-head--invert .vz-head__sub { color: rgba(255, 255, 255, 0.85); }

/* ── Расписание ── */

.vz-sched { margin: 0; padding: 0; list-style: none; }

.vz-slot {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid rgba(21, 66, 49, 0.12);
}

.vz-slot:first-child { border-top: 0; padding-top: 0; }

.vz-slot__time {
	color: var(--vz-blue);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.vz-slot__body { min-width: 0; }

.vz-slot__kind {
	display: block;
	margin-bottom: 4px;
	color: rgba(17, 17, 17, 0.6);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.vz-slot__name {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

.vz-slot__text { margin: 8px 0 0; font-size: 0.875rem; line-height: 1.5; }

.vz-slot__lead {
	margin: 10px 0 4px;
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.vz-slot__list { margin: 0; padding-left: 18px; font-size: 0.875rem; line-height: 1.5; }
.vz-slot__list li { margin-top: 4px; }
.vz-slot__list--num { padding-left: 20px; }

/* Расписание на тёмном фоне */
.vz-sched--invert .vz-slot { border-top-color: rgba(255, 255, 255, 0.14); }
.vz-sched--invert .vz-slot__time { color: #c9f0dc; }
.vz-sched--invert .vz-slot__kind { color: rgba(255, 255, 255, 0.6); }

/* ── Программа как календарь: три площадки, время — вживую с платформы AG.
   Сетка CSS Grid: строка = момент времени (в любом зале), поэтому
   одновременные блоки в разных залах стоят строго друг напротив друга;
   высота строки — по самому высокому блоку в ней (обычное поведение
   грида), а не по минутам, поэтому короткие блоки остаются короткими. ── */

.vz-cal { margin-top: 4px; }

.vz-cal__scroll {
	overflow-x: auto;
	padding-bottom: 6px;
	-webkit-overflow-scrolling: touch;
}

.vz-cal__grid {
	display: grid;
	gap: 8px 12px;
	align-items: start;
}

.vz-cal__col-head {
	position: sticky;
	top: 0;
	z-index: 1;
	padding: 8px 4px 10px;
	background: var(--vz-paper);
	color: #111;
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	border-bottom: 2px solid rgba(21, 66, 49, 0.1);
}

.vz-cal__col-head span {
	display: block;
	margin-top: 2px;
	color: var(--vz-blue);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: none;
}

.vz-cal__cell { min-width: 0; }

.vz-cal__block {
	display: flex;
	flex-direction: column;
	gap: 3px;
	width: 100%;
	padding: 8px 12px;
	border: 0;
	border-left: 4px solid var(--vz-blue);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 4px 14px rgba(21, 66, 49, 0.08);
	text-align: left;
	cursor: pointer;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.vz-cal__block:hover, .vz-cal__block:focus-visible {
	box-shadow: 0 8px 20px rgba(21, 66, 49, 0.16);
	transform: translateY(-1px);
}

.vz-cal__block--dark { background: var(--vz-blue-dark); border-left-color: #146444; color: #fff; }
.vz-cal__block--dark .vz-cal__block-kind { color: rgba(255, 255, 255, 0.75); }

.vz-cal__block--muted { background: var(--vz-paper); border-left-color: rgba(21, 66, 49, 0.25); box-shadow: none; }

.vz-cal__block-time { font-size: 0.6875rem; font-weight: 800; opacity: 0.8; }
.vz-cal__block-kind { font-size: 0.625rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.65; }
.vz-cal__block-title {
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.3;
}

/* Разворот вниз: на десктопе — само наведение (hover), на телефоне, где
   hover не срабатывает, — клик/тап (класс is-open ставит vozduh.js). */
.vz-cal__detail {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height 0.25s ease, opacity 0.2s ease;
}

@media (hover: hover) {
	.vz-cal__cell:hover .vz-cal__detail { max-height: 3000px; opacity: 1; margin-top: 8px; }
	.vz-cal__cell:hover .vz-cal__block { box-shadow: 0 8px 20px rgba(21, 66, 49, 0.16); transform: translateY(-1px); }
}

.vz-cal__cell.is-open .vz-cal__detail { max-height: 3000px; opacity: 1; margin-top: 8px; }

.vz-cal__detail-text { margin: 0 0 8px; font-size: 0.875rem; line-height: 1.5; color: #333; }
.vz-cal__detail-sp { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.vz-cal__sp-name { margin: 0; font-weight: 700; font-size: 0.875rem; }
.vz-cal__sp-pos { margin: 2px 0 0; color: rgba(17, 17, 17, 0.6); font-size: 0.8125rem; }
.vz-cal__sp-topic { margin: 2px 0 0; color: #111; font-size: 0.8125rem; font-style: italic; }
.vz-cal__detail .vz-slot__lead { margin: 8px 0 4px; font-size: 0.75rem; }
.vz-cal__detail .vz-slot__list { font-size: 0.8125rem; }

.vz-cal__hint { margin: 10px 0 0; color: rgba(17, 17, 17, 0.5); font-size: 0.8125rem; }

@media (max-width: 600px) {
	.vz-cal__block-title { font-size: 0.75rem; }
}

/* ── Инвест гостиная ── */

.vz-invest__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin-bottom: 24px;
}

.vz-fact {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
}

.vz-fact__label {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.vz-fact__value { font-size: 1rem; font-weight: 700; line-height: 1.35; }

.vz-logo-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 64px;
	margin-top: 6px;
	border: 1px dashed rgba(255, 255, 255, 0.35);
	border-radius: 12px;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.vz-invest__intro {
	margin: 0 0 28px;
	max-width: 900px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 1rem;
	line-height: 1.6;
}

.vz-sub {
	margin: 28px 0 16px;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vz-block--invest .vz-sub { color: #c9f0dc; }

.vz-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}

.vz-card {
	padding: 20px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
}

.vz-card__title { margin: 0 0 8px; font-size: 1rem; font-weight: 800; }
.vz-card p { margin: 0; color: rgba(255, 255, 255, 0.85); font-size: 0.875rem; line-height: 1.5; }

.vz-invest__cta { margin-top: 28px; text-align: center; }
/* Пояснение под кнопкой: заявка в Гостиную это не регистрация на форум */
.vz-invest__note { margin: 14px auto 0; max-width: 560px; color: #a2bfb4;
	font-size: 14px; line-height: 1.55; }

/* ── Узкие экраны ── */

@media (max-width: 900px) {
	.vz-block { padding: 36px 0; }
}

@media (max-width: 600px) {
	.vz-slot { grid-template-columns: minmax(0, 1fr); gap: 6px; }
	.vz-hall { padding: 18px; }
	.vz-form-card { padding: 18px; }
	.vz-hero-actions .vz-btn { flex: 1 1 100%; }
	.vz-inline-form { flex-direction: column; align-items: stretch; }
	.vz-inline-form .vz-field, .vz-inline-form .vz-btn { width: 100%; flex: 0 0 auto; }
}

/* Первый экран синий, поэтому кнопки и ссылки там светлые */
.demo-hero .vz-btn--primary { background: #fff; border-color: #fff; color: var(--vz-blue-dark); }
.demo-hero .vz-btn--primary:hover { background: var(--vz-paper); border-color: var(--vz-paper); color: var(--vz-blue-dark); }
.demo-hero .vz-btn--ghost { border-color: rgba(255, 255, 255, 0.85); color: #fff; }
.demo-hero .vz-btn--ghost:hover { background: #fff; color: var(--vz-blue-dark); }
.demo-hero .vz-tg { color: #fff; }
.demo-hero .vz-tg__link { color: #fff; }
.demo-block-06__meta .vz-tg { max-width: 100%; }

/* ── Правки после сверки с оригиналом ─────────────────────────────── */

/* Теги первого экрана в оригинале стоят одной строкой. Наш шрифт чуть шире,
   поэтому «Дизайн» переносился: поджимаем отступы и кегль. */
.demo-hero__tags{ flex-wrap:nowrap; gap:8px }
.demo-hero__tag{ padding-left:14px; padding-right:14px; font-size:14px; white-space:nowrap }
@media (max-width:1100px){ .demo-hero__tags{ flex-wrap:wrap } }

/* Строка про телеграм упиралась в нижний край синего блока и обрезалась */
.demo-hero{ padding-bottom:clamp(24px,4vh,48px) }
.demo-hero__content{ padding-bottom:0 }
.vozduh-tg{ margin-top:14px; line-height:1.45; max-width:46ch }

/* Фотография площадки рядом со схемой и логотип палаты */
.vozduh-vdnh{ margin:24px 0 0; }
.vozduh-vdnh img{ width:100%; height:auto; border-radius:18px; display:block }
.vozduh-vdnh figcaption{ margin-top:10px; font-size:14px; opacity:.7 }
/* Фото площадки идёт во всю ширину блока, под схемой */
.demo-block-05 .vozduh-vdnh{ grid-column:1 / -1; width:100%; margin-top:28px }
.demo-block-05 .vozduh-vdnh img{ width:100%; max-height:420px; object-fit:cover }
/* Пока фотографии спикера нет, вместо битой картинки стоит буква имени */
.vozduh-noface{ display:flex; align-items:center; justify-content:center;
  width:240px; height:280px; background:linear-gradient(160deg,#e9f9f3,#ccefe1);
  color:#1c9a6b; font:700 84px/1 Montserrat,system-ui,sans-serif; border-radius:12px }

/* ── Инвест Гостиная в общем стиле сайта ──────────────────────────────
   Была сплошная чёрная простыня, оторванная от остальной страницы.
   Возвращаем светлый фон, белые карточки и синие плашки, как в блоках
   «Контекст» и «О проекте». */
#invest{ background:#eef8f2 !important; color:#111 !important; padding:72px 0 }
#invest h2, #invest h3, #invest h4, #invest b, #invest strong{ color:#10352a !important }
#invest p, #invest li, #invest span, #invest div{ color:#2c4a3f }
#invest .demo-tag, #invest .vozduh-pill{ display:inline-block; background:#1c9a6b; color:#fff !important;
  border-radius:999px; padding:10px 22px; font-weight:700; letter-spacing:.04em; text-transform:uppercase }
#invest .vozduh-card, #invest .invest-card, #invest .demo-card{ background:#fff !important;
  border:0 !important; border-radius:22px; padding:26px 28px;
  box-shadow:0 12px 30px rgba(21, 75, 54,.07) }
#invest .vozduh-row, #invest .invest-row{ border-bottom:1px solid #ddf1e9 !important }
#invest .vozduh-time, #invest .invest-time{ color:#1c9a6b !important; font-weight:700 }

/* ── Блок регистрации: текст был тёмным по тёмному ─────────────────── */
#lead, #partner{ background:#0d0d0d }
#lead h2, #partner h2, #lead h3, #partner h3{ color:#fff !important }
#lead p, #partner p, #lead label, #partner label{ color:#cae0d8 !important }
#lead input, #lead select, #lead textarea,
#partner input, #partner select, #partner textarea{
  background:#17191c !important; color:#fff !important;
  border:1px solid #3b4742 !important; border-radius:12px !important;
  padding:14px 16px !important; font-size:15px !important; width:100% }
#lead input::placeholder, #partner input::placeholder{ color:#8a939e }
#lead input:focus, #lead select:focus, #lead textarea:focus,
#partner input:focus, #partner select:focus, #partner textarea:focus{
  outline:none; border-color:#1c9a6b !important }
#lead button, #partner button, #lead [type="submit"], #partner [type="submit"]{
  background:#65ddac !important; color:#091a14 !important; border:0 !important;
  border-radius:12px !important; padding:15px 28px !important; font-weight:700 }

/* Классы, которыми свёрстан блок гостиной, приводим к светлому виду */
#invest .vz-head--invert, #invest .vz-head__title{ color:#10352a !important }
#invest .vz-head__sub, #invest .vz-invest__intro{ color:#2c4a3f !important }
#invest .vz-fact, #invest .vz-card{ background:#fff !important; color:#2c4a3f !important;
  border:0 !important; border-radius:22px; padding:24px 26px;
  box-shadow:0 12px 30px rgba(21, 75, 54,.07) }
#invest .vz-card b, #invest .vz-card strong, #invest .vz-fact b{ color:#10352a !important }
#invest .vz-sub{ color:#1c9a6b !important; text-transform:uppercase; letter-spacing:.06em }
#invest .vz-sched--invert{ background:#fff; border-radius:22px; padding:8px 26px;
  box-shadow:0 12px 30px rgba(21, 75, 54,.07) }
#invest .vz-slot{ border-bottom:1px solid #e4f4ee !important; color:#2c4a3f !important }
#invest .vz-slot:last-child{ border-bottom:0 !important }
#invest .vz-slot time, #invest .vz-slot .vz-slot__time{ color:#1c9a6b !important; font-weight:700 }
#invest .vz-btn--primary{ background:#1c9a6b !important; color:#fff !important; border:0 }
/* «При поддержке» / «Стратегический партнёр»: логотип + подпись плашкой,
   четвёртая и пятая карточка в общем ряду vz-invest__facts */
.vz-fact--brand{ gap:10px }
.vz-fact__brand-row{ display:flex; align-items:center; gap:14px; margin-top:2px }
.vz-fact__brand-logo{ flex:0 0 auto; width:56px; height:56px; object-fit:contain;
  background:#fff; border-radius:10px; padding:6px; box-shadow:0 2px 8px rgba(21, 75, 54,.1) }
/* Отдельные слова в гостиной подкрашивались синим от общих стилей сайта:
   внутри карточек цвет наследуется, синими остаются только ссылки */
#invest .vz-card *, #invest .vz-fact *, #invest .vz-slot *,
#invest .vz-invest__intro *{ color:inherit !important }
#invest .vz-card b, #invest .vz-card strong, #invest .vz-slot b,
#invest .vz-slot strong, #invest .vz-fact b{ color:#10352a !important }
#invest .vz-slot time, #invest .vz-slot .vz-slot__time{ color:#1c9a6b !important }
#invest a:not(.vz-btn){ color:#1c9a6b !important; text-decoration:underline }

/* ── Правки после финальной проверки ───────────────────────────────── */

/* Блок «Пространство»: на планшете и телефоне схема обрезалась наполовину,
   под ней оставалось пустое поле, а вертикальный заголовок схлопывался */
@media (max-width:1100px){
  .demo-block-05{ display:block !important }
  .demo-block-05__aside{ display:block !important; width:auto !important; height:auto !important;
    margin-bottom:18px }
  .demo-block-05__aside img{ display:none }
  .demo-block-05__aside::before{ content:"Пространство"; display:block;
    font:800 26px/1.1 Montserrat,system-ui,sans-serif; color:#1c9a6b;
    text-transform:uppercase; letter-spacing:.02em }
  .demo-block-05__media, .demo-block-05__map{ height:auto !important; max-height:none !important;
    overflow:visible !important }
  .demo-block-05__map img, .demo-block-05 img[src*="map"]{ width:100% !important;
    height:auto !important; object-fit:contain !important; max-height:none !important }
}

/* Подпись под формами была почти белой на светлом фоне */
#lead .vz-head__sub, #lead p.vz-head__sub, #partner .vz-head__sub,
#lead .demo-section__sub, #lead h2 + p{ color:#cae0d8 !important }

/* «ДЛЯ НОВЫХ» тонуло в чёрном фоне */
.demo-block-06 .accent, .demo-block-06 em, .demo-block-06 .muted,
.demo-block-06 span[style*="color"]{ color:#95d8be !important }

/* Чёрный логотип инфопартнёра на чёрной плашке: даём светлую подложку
   всем логотипам лент, тогда видно любой */
.demo-partner-logo{ background:#141414 }
.demo-partner-logo img{ filter:none }
.demo-block-09__row:nth-child(2) .demo-partner-logo{ background:#1b1b1b }

@media (max-width:520px){
  /* Адрес в карточке «До встречи в Казани» заезжал под башню */
  .demo-block-10__card, .demo-block-10__text{ position:relative; z-index:2 }
  .demo-block-10 img[src*="tower"], .demo-block-10 .demo-block-10__tower{ opacity:.35 }
  /* Заголовок «Свежий воздух» налезал на сетку точек и на логотип */
  .demo-block-06__title, .demo-block-06 h2{ position:relative; z-index:3 }
  .demo-block-06 .dots, .demo-block-06 [class*="dots"]{ display:none }
}

/* Ленты должны обрезаться по краю экрана: после добавления копий
   набора трек стал шире окна и появилась горизонтальная прокрутка */
.demo-block-08__marquee, .demo-block-09__marquee{ overflow:hidden !important; max-width:100% }
.demo-block-08, .demo-block-09{ overflow:hidden }
html, body{ overflow-x:clip; max-width:100% }

/* На телефоне и планшете карточки блока «Пространство» держали жёсткие
   420 px: заголовок висел в пустой карточке, схема жалась в полоску.
   Высоту отдаём содержимому, схема идёт во всю ширину. */
@media (max-width:1100px){
  .demo-block-05__media{ height:auto !important }
  .demo-block-05__aside{ height:auto !important; min-height:0 !important; padding:18px 20px }
  .demo-block-05__main{ height:auto !important; min-height:0 !important; padding:12px }
  /* у картинки схемы стоял min-height 420px, из-за него она сжималась
     в полоску внутри высокой карточки */
  .demo-block-05__main-image{ height:auto !important; min-height:0 !important;
    width:100% !important; object-fit:contain !important }
}

/* Схема площадки на телефоне нечитаема, если ужать её в 334 px.
   Даём ей прокрутку вбок внутри карточки: детали видно, страница
   при этом вбок не едет. */
@media (max-width:1100px){
  .demo-block-05__main{ overflow-x:auto !important; overflow-y:hidden;
    -webkit-overflow-scrolling:touch }
  .demo-block-05__main-image{ min-width:720px !important; width:720px !important }
  .demo-block-05__main::after{ content:"Схему можно двигать пальцем";
    display:block; font-size:12px; color:#7d9a8f; padding:6px 2px 0 }
}

/* ── Формы: одинаковые поля, ровные галочки ──────────────────────────── */
#lead .vz-form, #partner .vz-form{ width:100%; max-width:560px; margin-inline:auto }
#lead .vz-field, #partner .vz-field{
  width:100% !important; box-sizing:border-box;
  height:54px; padding:14px 16px !important }
#lead textarea.vz-field, #partner textarea.vz-field{ height:auto }
#lead .vz-btn, #partner .vz-btn{ width:100%; box-sizing:border-box }

/* Галочка съезжала: квадратик по центру, текст уезжал вправо.
   Ставим их в одну строку, текст слева направо, без растягивания. */
#lead .vz-check, #partner .vz-check, .vz-check{
  display:flex !important; align-items:flex-start; gap:10px;
  text-align:left !important; margin:12px 0 0; width:100%;
  font-size:14px; line-height:1.45; color:#cae0d8 !important; cursor:pointer }
.vz-check input[type="checkbox"]{ flex:0 0 auto; width:18px !important; height:18px;
  margin:2px 0 0 !important; accent-color:#65ddac }
.vz-check__text{ flex:1 1 auto; min-width:0 }
.vz-check a{ color:#97edcb !important; text-decoration:underline }
.vz-check--soft{ color:#96b2a7 !important; font-size:13px }
.vz-req{ color:#e57373 }

/* Подпись над формами была белой на светлом и не читалась */
#lead .vz-head__sub, #lead .vz-head__title + p, #partner .vz-head__sub{
  color:#cae0d8 !important }

/* Значок телеграма на первом экране вместо длинной фразы */
.vozduh-tg-icon{ display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; margin-top:18px; border-radius:50%;
  background:rgba(255,255,255,.16); color:#fff; text-decoration:none;
  transition:background .25s ease }
.vozduh-tg-icon:hover{ background:rgba(255,255,255,.3) }

/* Логотипы партнёров одним цветом: разноцветные выбивались из ленты */
.demo-partner-logo img{ filter:brightness(0) invert(1); opacity:.92;
  transition:opacity .25s ease }
.demo-partner-logo:hover img{ opacity:1 }

/* Подпись над формами белая, а секция под ней светлая: не читалась */
.demo-block-07__subtitle, .demo-block-07__title{ color:#10352a !important }
.demo-block-07__subtitle{ opacity:1 !important }

/* Плашка про файлы cookie */
.vozduh-cookie{ position:fixed; left:16px; right:16px; bottom:16px; z-index:9998;
  display:flex; flex-wrap:wrap; align-items:center; gap:16px;
  max-width:960px; margin:0 auto; padding:18px 22px; border-radius:18px;
  background:#10352a; color:#e0f2eb; font-size:14px; line-height:1.5;
  box-shadow:0 18px 44px rgba(10, 30, 23,.35);
  opacity:0; transform:translateY(16px); transition:opacity .3s ease, transform .3s ease }
.vozduh-cookie.is-visible{ opacity:1; transform:none }
.vozduh-cookie__text{ flex:1 1 320px; min-width:0 }
.vozduh-cookie__text a{ color:#97edcb }
.vozduh-cookie__buttons{ display:flex; gap:10px; flex:0 0 auto }
.vozduh-cookie button{ border:0; cursor:pointer; border-radius:10px;
  padding:11px 20px; font:600 14px Montserrat,system-ui,sans-serif;
  background:#65ddac; color:#091a14 }
.vozduh-cookie button.ghost{ background:transparent; color:#e0f2eb;
  border:1px solid rgba(255,255,255,.35) }
@media (max-width:560px){
  .vozduh-cookie{ padding:16px 18px }
  .vozduh-cookie__buttons{ width:100% }
  .vozduh-cookie button{ flex:1 1 auto }
}

/* Отступ перед кнопкой одинаковый во всех трёх формах */
#lead .vz-btn, #partner .vz-btn{ margin-top:14px }

/* ── Спикеры: два ряда, едут сами, тянутся пальцем ──────────────────
   Полосы прокрутки тут не нужно: лента движется и перетаскивается. */
.demo-block-08__marquee{ overflow:hidden !important; cursor:grab;
  touch-action:pan-y; -webkit-user-select:none; user-select:none }
.demo-block-08__marquee:active{ cursor:grabbing }
.demo-block-08__marquee .demo-speaker-card img{ -webkit-user-drag:none }

@media (max-width:767px){
  /* На телефоне в кадр должны попадать две карточки целиком, поэтому
     ширина считается от экрана, а описание ограничено тремя строками */
  .demo-block-08 .demo-speaker-card{ width:calc((100vw - 46px) / 2) !important;
    min-width:0 !important; max-width:190px; padding:10px !important }
  .demo-block-08 .demo-speaker-card__photo{ height:150px }
  .demo-block-08 .demo-speaker-card__photo img{ height:100%; object-fit:contain }
  .demo-block-08 .demo-speaker-card__name{ font-size:12px; line-height:1.2 }
  /* Регалии показываем целиком: обрезка прятала самое важное */
  .demo-block-08 .demo-speaker-card__role{ font-size:10.5px; line-height:1.32;
    display:block; overflow:visible }
  .demo-block-08 .demo-speaker-card{ height:auto !important; align-self:stretch }
  .demo-block-08__group{ align-items:stretch }
  .demo-block-08__group{ gap:10px !important }
}

/* Кнопки первого экрана и значок телеграма в одну линию */
.vozduh-hero-actions{ display:flex !important; flex-wrap:wrap; align-items:center;
  gap:14px }
.vozduh-hero-actions .vozduh-tg-icon{ margin-top:0 }
@media (max-width:767px){
  /* На телефоне кнопки и значок идут по центру, значок в фирменном синем */
  .vozduh-hero-actions{ justify-content:center; width:100% }
  .vozduh-hero-actions .vozduh-tg-icon{ width:52px; height:52px;
    background:#fff; color:#1c9a6b }
  .vozduh-hero-actions .vozduh-tg-icon:hover{ background:#ebfaf4 }
}

/* Галочка в голубых полосах «Стать партнёром»: коротко, в одну строку */
.vz-check--inline{ display:inline-flex !important; align-items:center; gap:8px;
  margin:0 12px 0 0 !important; font-size:13px; color:#10352a !important;
  white-space:normal }
.vz-check--inline .vz-check__text{ line-height:1.3 }
.vz-check--inline a{ color:#10352a !important; text-decoration:underline }
@media (max-width:720px){ .vz-check--inline{ margin-bottom:10px !important; width:100% } }

/* Подсказка, что ленту можно листать пальцем: показываем только на телефоне
   и только у спикеров, где это неочевидно */
@media (max-width:767px){
  .demo-block-08__marquee{ touch-action:pan-y }

}
.vozduh-swipe{ display:none }
/* Плавность движения ленты под пальцем */
.demo-block-08__track, .demo-block-09__track{ will-change:transform }

/* ── Режим «уменьшение движения» ──────────────────────────────────────
   Исходные стили в этом режиме разворачивали обе ленты в сетку с
   переносом: карточки спикеров и логотипы уходили колонкой вниз и
   наезжали друг на друга. Именно так сайт выглядел у части людей,
   в том числе на айфонах с включённой настройкой. Ленты у нас двигает
   свой скрипт и в этом режиме тоже, только медленнее, поэтому
   возвращаем горизонтальный ряд. */
@media (prefers-reduced-motion: reduce){
  .demo-block-08__marquee, .demo-block-09__marquee{ overflow:hidden !important }
  .demo-block-08__track, .demo-block-09__track{ flex-wrap:nowrap !important;
    width:max-content !important; justify-content:flex-start !important }
  .demo-block-08__group, .demo-block-09__group{ flex-wrap:nowrap !important;
    justify-content:flex-start !important; padding-right:20px !important }
  .demo-block-08__group[aria-hidden="true"],
  .demo-block-09__group[aria-hidden="true"]{ display:flex !important }
}


/* ── Дополнительные мероприятия: экскурсии ────────────────────────────
   Тот же язык карточек, что у блока регистрации внизу, но с фото. */
.vz-block--excursions { background: #fff; }
.vz-block--excursions .vz-head__title { color: var(--vz-blue); }
.vz-block--excursions .vz-head__sub { color: #2c4a3f; }

.vz-excursions {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 24px;
}

.vz-excursion-card {
	display: block;
	border-radius: 20px;
	overflow: hidden;
	background: var(--vz-paper);
	text-decoration: none;
	color: inherit;
	box-shadow: 0 10px 30px rgba(21, 66, 49, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vz-excursion-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(21, 66, 49, 0.14); }

.vz-excursion-card__img { width: 100%; height: 220px; object-fit: cover; }

.vz-excursion-card__body { padding: 22px 24px 26px; }

.vz-excursion-card__date {
	display: block;
	color: var(--vz-blue);
	font-weight: 700;
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.vz-excursion-card__title { margin: 0 0 8px; font-size: 1.25rem; font-weight: 800; color: #111; }
.vz-excursion-card__sub { margin: 0 0 14px; font-size: 0.875rem; line-height: 1.5; color: #2c4a3f; }
.vz-excursion-card__cta { font-weight: 800; font-size: 0.875rem; color: var(--vz-blue); }

@media (max-width: 640px) {
	.vz-excursion-card__img { height: 180px; }
}

/* Логотип БИМ-радио — уже готовый чёрно-белый бейдж (не силуэт на
   прозрачном фоне, как у соседей): оба его цвета залиты сплошь, поэтому
   общий фильтр обесцвечивания превращает его в белое пятно. Показываем
   этот логотип своими цветами, остальные — как раньше. */
.demo-partner-logo img[src*="bim-radio"]{ filter:none; opacity:1 }

/* Медовая ловушка против спам-ботов в формах заявок: поле для человека
   не видно и не доступно по табу, но бот, который заполняет всё подряд,
   его находит и выдаёт себя (main.py, captcha_check). display:none, а не
   смещение за экран — иначе браузер иногда сам подставляет туда автозаполнение
   (адрес, сайт из профиля), и живой человек ложно попадает под бан. */
.vz-hp{ display:none }

/* Блок «прошлый сезон»: белая карточка над контактами, как остальные блоки сайта */
.vz-prev__card { background: #fff; border-radius: 32px; padding: 56px 32px; text-align: center; font-family: Montserrat, system-ui, sans-serif; }
.vz-prev__eyebrow { margin: 0 0 14px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; color: var(--vz-blue); }
.vz-prev__title { margin: 0 0 18px; font-size: clamp(1.75rem, 4.5vw, 2.75rem); font-weight: 800; line-height: 1.15; color: #10352a; }
.vz-prev__text { margin: 0 auto 28px; max-width: 620px; font-size: 1rem; line-height: 1.6; color: #4c695e; }
.vz-prev__btn { text-decoration: none; }

/* ── Весна 2027: салатовый акцент и мятные поверхности ─────────────── */
:root { --vz-lime: #c6ef4a; --vz-mint: #dff5ea; }
.demo-hero__title-accent { color: var(--vz-lime) !important; }
.demo-hero__tags li { color: #127a53; }
.demo-hero__tagline, .demo-hero__meta { letter-spacing: 0; }
.demo-hero__title, .demo-block-03__heading, .demo-block-06__heading, .vz-head__title, .vz-prev__title { letter-spacing: -0.01em; }

/* весна: подкрутка контраста и размеров под широкий Unbounded */
.demo-block-02__panel--right::before { background: #178a5f; }
.demo-block-03__panel--left::before { background: #0f3d2e; }
.demo-block-07__title-accent { background: linear-gradient(180deg, #7fdcae 0%, #127a53 100%); -webkit-background-clip: text; background-clip: text; }
.demo-block-06__section-title { font-size: clamp(1.05rem, 1.35vw, 1.3rem); overflow-wrap: anywhere; }
.demo-block-06__section-title--dark { color: #127a53; }
@media (max-width: 640px) {
	.demo-block-01__visual-title { font-size: 1.45rem; overflow-wrap: anywhere; }
	.demo-block-02__heading, .demo-block-03__heading, .demo-block-04__heading, .demo-block-06__heading { font-size: 1.4rem; overflow-wrap: anywhere; }
	.demo-block-06__place { font-size: 0.85rem; }
	.demo-block-03__heading { position: relative; z-index: 3; }
}
