/* Лендинг поездок (template-corp-landing.php): школьные / индивидуальные / групповые / корпоративные.
   Макет: «Шаблон страницы Школьные туры v5». Шапка, подвал, ширина полей и отзывы — как на основном сайте. */

.cl-page {
	--cl-pine: #06652e;
	--cl-pine-dark: #064923;
	--cl-leaf: #43ab34;
	--cl-lime: #c9e54d;
	--cl-ink: #16231b;
	--cl-muted: #65736b;
	--cl-paper: #f5f7f2;
	--cl-soft: #edf4eb;
	--cl-line: rgba(6, 101, 46, 0.13);
	--cl-shadow: 0 18px 52px rgba(14, 52, 32, 0.11);
	--cl-shadow-soft: 0 10px 30px rgba(14, 52, 32, 0.08);
	/* Ширина полей — как у главной и каталога (--hp-shell). */
	--cl-shell: min(1340px, calc(100vw - 64px));

	color: var(--cl-ink);
	font-family: Rubik, Arial, Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	background: #fff;
	overflow-x: clip;
}

/* На лендинге не используем стандартные отступы .page_content из main.min.css (70/200px сверху, 90px снизу). */
body.corp-landing .page_content.cl-page {
	margin-top: 0;
	margin-bottom: 0;
}

/* Шапка лежит поверх контента (position: absolute от 1200px и fixed ниже), а у лендинга
   нет отступа сверху — первый экран уезжал под шапку. Ставим шапку в поток: её высота
   сама отодвигает контент, без подгонки под текущую высоту v40.
   На мобиле (<=760px) header-v40.css уже делает это сам. */
@media (min-width: 761px) {
	body.corp-landing .header {
		position: relative;
	}
}

/* Bootstrap-контейнер в теме идёт без боковых полей (.row -15px / .col +15px гасят друг друга),
   поэтому на узких экранах шапка прижималась к краям, а контент лендинга — нет.
   Даём шапке те же поля, что у .cl-shell. */
@media (max-width: 980px) {
	body.corp-landing .header .container,
	body.corp-landing .header-fixed .container {
		padding-left: 32px;
		padding-right: 32px;
	}
}

@media (max-width: 700px) {
	body.corp-landing .header .container,
	body.corp-landing .header-fixed .container {
		padding-left: 14px;
		padding-right: 14px;
	}
}

.cl-page *,
.cl-page *::before,
.cl-page *::after {
	box-sizing: border-box;
}

.cl-page h1,
.cl-page h2,
.cl-page h3,
.cl-page p {
	margin-top: 0;
}

.cl-page h1,
.cl-page h2,
.cl-page h3 {
	font-family: Rubik, Arial, Helvetica, sans-serif;
	letter-spacing: -0.035em;
	color: inherit;
}

.cl-page h2 {
	margin-bottom: 0;
	font-size: clamp(34px, 3.25vw, 54px);
	font-weight: 650;
	line-height: 1.03;
}

.cl-page a {
	text-decoration: none;
}

.cl-shell {
	width: var(--cl-shell);
	margin-inline: auto;
}

.cl-icon {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cl-eyebrow {
	margin: 0 0 12px;
	color: var(--cl-pine);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.cl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 50px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: 13px;
	background: var(--cl-pine);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: 0.2s ease;
}

.cl-page .cl-btn:hover,
.cl-page .cl-btn:focus-visible {
	background: var(--cl-pine-dark);
	color: #fff;
	transform: translateY(-1px);
}

/* Секции */
.cl-section {
	padding: 92px 0;
}

.cl-section--soft {
	background: var(--cl-paper);
}

.cl-section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 34px;
}

.cl-section-head > div:first-child {
	max-width: 760px;
}

.cl-section-note {
	max-width: 430px;
	margin: 0;
	color: var(--cl-muted);
	font-size: 15px;
	line-height: 1.55;
}

/* Разделы (Индивидуальные / Групповые / Школьные / Корпоративные) */
.cl-nav {
	display: none;
	background: #fff;
	border-bottom: 1px solid var(--cl-line);
}

.cl-nav .cl-shell {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 58px;
	overflow-x: auto;
	scrollbar-width: none;
}

.cl-nav .cl-shell::-webkit-scrollbar {
	display: none;
}

.cl-nav a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 58px;
	padding: 0 22px;
	color: var(--cl-ink);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
}

.cl-nav a::after {
	content: "";
	position: absolute;
	right: 22px;
	bottom: 10px;
	left: 22px;
	height: 2px;
	border-radius: 10px;
	background: var(--cl-lime);
	opacity: 0;
	transform: scaleX(0.4);
	transition: 0.2s;
}

.cl-nav a:hover::after,
.cl-nav a.active::after {
	opacity: 1;
	transform: scaleX(1);
}

.cl-nav a:hover,
.cl-nav a.active {
	color: var(--cl-pine);
}

.cl-nav a.active {
	font-weight: 700;
}

/* Первый экран */
.cl-hero {
	position: relative;
	min-height: 610px;
	background: var(--cl-pine-dark);
	color: #fff;
	isolation: isolate;
	overflow: hidden;
}

.cl-hero__photo {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.cl-hero__photo img,
.cl-hero__photo video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 50%;
}

.cl-hero__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(3, 37, 22, 0.92) 0%, rgba(3, 37, 22, 0.72) 45%, rgba(3, 37, 22, 0.2) 78%),
		linear-gradient(0deg, rgba(3, 37, 22, 0.7), transparent 55%);
}

.cl-hero .cl-shell {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 610px;
	padding: 58px 0;
}

.cl-hero__copy {
	max-width: 760px;
}

.cl-hero .cl-eyebrow {
	color: rgba(255, 255, 255, 0.82);
}

.cl-hero h1 {
	max-width: 760px;
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(48px, 5.6vw, 78px);
	font-weight: 900;
	line-height: 0.99;
	letter-spacing: -0.05em;
	text-wrap: balance;
}

.cl-hero__lead {
	max-width: 620px;
	margin-bottom: 26px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 17px;
	line-height: 1.55;
}

.cl-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.cl-page .cl-hero .cl-btn {
	background: var(--cl-lime);
	color: var(--cl-pine-dark);
}

.cl-page .cl-hero .cl-btn:hover {
	background: #d7ed78;
	color: var(--cl-pine-dark);
}

.cl-page .cl-hero .cl-btn--ghost {
	border-color: rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	backdrop-filter: blur(8px);
}

.cl-page .cl-hero .cl-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

/* Преимущества */
.cl-trust {
	padding: 20px 0 12px;
	background: #fff;
	border-bottom: 1px solid var(--cl-line);
}

.cl-trust__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.cl-trust__item {
	display: flex;
	align-items: center;
	gap: 13px;
	min-height: 78px;
	padding: 12px 15px;
	border: 1px solid var(--cl-line);
	border-radius: 16px;
	background: #fff;
}

.cl-trust__icon {
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 13px;
	background: var(--cl-soft);
	color: var(--cl-pine);
}

.cl-trust__item b {
	display: block;
	font-size: 17px;
	line-height: 1.15;
}

.cl-trust__item > span:last-child > span {
	display: block;
	margin-top: 3px;
	color: var(--cl-muted);
	font-size: 12px;
	line-height: 1.35;
}

/* Шаги */
.cl-steps {
	padding: 24px 0 18px;
}

.cl-steps + .cl-programs {
	padding-top: 18px;
}

.cl-steps__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 14px;
	align-items: stretch;
}

.cl-step {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 248px;
	padding: 20px;
	border: 1px solid var(--cl-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--cl-shadow-soft);
	transition: 0.2s ease;
}

.cl-step:hover {
	border-color: rgba(6, 101, 46, 0.3);
	transform: translateY(-5px);
}

.cl-step__number {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 16px;
	background: var(--cl-pine);
	color: #fff;
	font-size: 18px;
	font-weight: 800;
}

.cl-step h3 {
	margin: 24px 0 9px;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.15;
}

.cl-step p {
	margin: 0 0 16px;
	color: var(--cl-muted);
	font-size: 14px;
	line-height: 1.55;
}

.cl-step__time {
	margin-top: auto;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--cl-soft);
	color: var(--cl-pine);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

/* Программы */
.cl-programs__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 22px;
}

.cl-programs__filters {
	display: flex;
	gap: 7px;
	overflow-x: auto;
	scrollbar-width: none;
}

.cl-programs__filters::-webkit-scrollbar {
	display: none;
}

.cl-chip {
	flex: 0 0 auto;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--cl-line);
	border-radius: 12px;
	background: #fff;
	color: var(--cl-muted);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: 0.15s ease;
}

.cl-chip:hover {
	border-color: rgba(6, 101, 46, 0.3);
	color: var(--cl-pine);
}

.cl-chip.active {
	border-color: var(--cl-pine);
	background: var(--cl-pine);
	color: #fff;
}

.cl-programs__rail {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	padding: 3px 2px 0;
}

@media (max-width: 1300px) {
	.cl-programs__rail {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 920px) {
	.cl-programs__rail {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
}

.cl-programs__empty {
	margin: 0;
	color: var(--cl-muted);
	font-size: 15px;
}

/* Карточка программы. Корень .tour-cart — ради общей логики «+ N объектов» из main.js. */
.cl-page .tour-cart.cl-program {
	display: flex;
	flex-direction: column;
	overflow: visible;
	border: 1px solid var(--cl-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--cl-shadow-soft);
	transition: 0.2s ease;
}

.cl-page .tour-cart.cl-program[hidden] {
	display: none;
}

.cl-page .tour-cart.cl-program:hover {
	transform: translateY(-4px);
	box-shadow: var(--cl-shadow);
}

.cl-program__image {
	position: relative;
	height: 224px;
	overflow: hidden;
	border-radius: 21px 21px 0 0;
	background: var(--cl-soft);
}

.cl-program__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.cl-program:hover .cl-program__image img {
	transform: scale(1.035);
}

.cl-program__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 6px 9px;
	border-radius: 9px;
	background: #fff;
	color: var(--cl-pine);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	box-shadow: 0 5px 16px rgba(10, 40, 24, 0.12);
}

.cl-program__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px;
}

.cl-program h3 {
	min-height: 50px;
	margin: 0 0 7px;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
}

.cl-program__place {
	margin-bottom: 13px;
	color: var(--cl-pine);
	font-size: 13px;
	font-weight: 700;
}

.cl-program__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
}

.cl-program__meta span {
	padding: 5px 8px;
	border-radius: 8px;
	background: var(--cl-paper);
	color: #526158;
	font-size: 12px;
	line-height: 1.3;
}

/* «Что вас ждёт» — те же классы и стили, что в карточке тура на главной (homepage-tour-cards.css). */
.cl-program .tour-big__objects_on_tour {
	position: relative;
	margin: 0 0 15px;
}

.cl-program .tour-big__objects_on_tour .title_objects_on_tour {
	display: block;
	margin: 0 0 4px;
	color: #7b847f;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}

.cl-program .legacy-object-line {
	display: flex;
	align-items: center;
	min-width: 0;
	color: #303a34;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cl-program .tour-big__objects_on_tour .separator_objects_on_tour {
	display: inline-flex;
	margin: 0 8px;
}

.cl-program .tour-big__objects_on_tour .place_more_objects {
	display: inline-block;
	margin-top: 3px;
	color: #65b548;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: nowrap;
	cursor: pointer;
}

.cl-program .tour-big__objects_on_tour .place_more_objects:empty {
	display: none;
}

.cl-program__format {
	display: flex;
	align-items: center;
	min-height: 48px;
	margin-bottom: 15px;
	padding: 9px 10px;
	border: 1px solid rgba(67, 171, 52, 0.14);
	border-radius: 11px;
	background: #f3f8ee;
	color: #355440;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
}

.cl-program__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--cl-line);
}

.cl-program__price small {
	display: block;
	color: var(--cl-muted);
	font-size: 11px;
	line-height: 1.3;
}

.cl-program__price b {
	font-size: 20px;
	line-height: 1.2;
}

.cl-page .cl-program__download {
	min-height: 38px;
	padding: 0 12px;
	border-radius: 10px;
	font-size: 12px;
	white-space: nowrap;
}

/* Кейсы */
.cl-cases__grid {
	display: grid;
	grid-template-columns: 1.25fr 0.75fr;
	grid-template-rows: repeat(2, 280px);
	gap: 14px;
}

.cl-cases__grid--1 {
	grid-template-columns: 1fr;
	grid-template-rows: 460px;
}

.cl-cases__grid--2 {
	grid-template-rows: 460px;
}

.cl-case {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	background: var(--cl-pine-dark);
	color: #fff;
	isolation: isolate;
	cursor: pointer;
	outline: none;
}

.cl-case:focus-visible {
	box-shadow: 0 0 0 4px rgba(67, 171, 52, 0.34), var(--cl-shadow);
}

.cl-cases__grid--3 .cl-case--featured {
	grid-row: 1 / 3;
}

.cl-case::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(3, 37, 22, 0.9), rgba(3, 37, 22, 0.08) 68%);
}

.cl-case img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.cl-case:hover img,
.cl-case:focus-visible img {
	transform: scale(1.035);
}

.cl-case__content {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 24px;
}

.cl-case--featured .cl-case__content {
	padding: 30px;
}

.cl-case h3 {
	max-width: 580px;
	margin: 0 0 12px;
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.1;
}

.cl-case--featured h3 {
	font-size: clamp(23px, 2.5vw, 34px);
	line-height: 1.06;
}

.cl-case__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cl-case__stats span {
	padding: 6px 9px;
	border-radius: 9px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--cl-pine-dark);
	font-size: 12px;
	font-weight: 700;
}

.cl-case__summary {
	max-width: 520px;
	margin: 13px 0 0;
	color: rgba(255, 255, 255, 0.79);
	font-size: 14px;
}

.cl-case__open {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 14px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
}

.cl-case__open::after {
	content: "→";
	font-size: 16px;
	transition: transform 0.2s ease;
}

.cl-case:hover .cl-case__open::after,
.cl-case:focus-visible .cl-case__open::after {
	transform: translateX(3px);
}

/* Окно кейса */
body.cl-modal-open {
	overflow: hidden;
}

.cl-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.cl-modal[hidden] {
	display: none;
}

.cl-modal.open {
	opacity: 1;
	pointer-events: auto;
}

.cl-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(7, 27, 17, 0.68);
	backdrop-filter: blur(4px);
}

.cl-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(760px, 100%);
	max-height: calc(100svh - 48px);
	padding: 34px;
	overflow: auto;
	border: 1px solid rgba(6, 101, 46, 0.15);
	border-radius: 28px;
	background: #fff;
	color: var(--cl-ink);
	box-shadow: 0 28px 90px rgba(3, 32, 18, 0.28);
	transform: translateY(16px) scale(0.985);
	transition: transform 0.22s ease;
	outline: none;
}

.cl-modal.open .cl-modal__dialog {
	transform: none;
}

.cl-modal__close {
	position: absolute;
	top: 18px;
	right: 18px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--cl-line);
	border-radius: 13px;
	background: var(--cl-paper);
	color: var(--cl-pine);
	cursor: pointer;
	transition: 0.18s ease;
}

.cl-modal__close:hover {
	border-color: rgba(6, 101, 46, 0.28);
	background: var(--cl-soft);
}

.cl-modal__close .cl-icon {
	width: 20px;
	height: 20px;
}

.cl-modal__dialog > .cl-eyebrow {
	margin-right: 56px;
}

.cl-modal__dialog h2 {
	max-width: 650px;
	margin: 0 58px 18px 0;
	font-size: clamp(30px, 3.2vw, 42px);
	line-height: 1.06;
}

.cl-modal__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 24px;
}

.cl-modal__meta:empty {
	display: none;
}

.cl-modal__meta span {
	padding: 6px 9px;
	border-radius: 9px;
	background: var(--cl-soft);
	color: var(--cl-pine);
	font-size: 12px;
	font-weight: 700;
}

.cl-modal__details {
	border-top: 1px solid var(--cl-line);
}

.cl-case-detail {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 22px;
	padding: 19px 0;
	border-bottom: 1px solid var(--cl-line);
}

.cl-page .cl-case-detail h3 {
	margin: 2px 0 0;
	color: var(--cl-pine);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0;
}

.cl-case-detail p {
	margin: 0;
	color: #46554c;
	font-size: 15px;
	line-height: 1.62;
}

.cl-modal__action {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 24px;
}

.cl-modal__action p {
	max-width: 430px;
	margin: 0;
	color: var(--cl-muted);
	font-size: 13px;
	line-height: 1.5;
}

.cl-modal__action .cl-btn {
	flex: 0 0 auto;
}

/* Форма */
.cl-request__card {
	display: grid;
	grid-template-columns: 0.88fr 1.12fr;
	overflow: hidden;
	border: 1px solid var(--cl-line);
	border-radius: 28px;
	background: #fff;
	box-shadow: var(--cl-shadow);
}

.cl-request__card--single {
	grid-template-columns: 1fr;
	max-width: 820px;
}

.cl-request__visual {
	position: relative;
	min-height: 640px;
	background: var(--cl-pine-dark);
	color: #fff;
	isolation: isolate;
}

.cl-request__visual::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(3, 37, 22, 0.92), rgba(3, 37, 22, 0.08) 70%);
}

.cl-request__visual img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cl-request__message {
	position: absolute;
	right: 28px;
	bottom: 28px;
	left: 28px;
}

.cl-request__message .cl-eyebrow {
	color: var(--cl-lime);
}

.cl-request__message h2 {
	max-width: 480px;
	color: #fff;
	font-size: clamp(34px, 3.6vw, 50px);
}

.cl-request__message p {
	max-width: 410px;
	margin: 15px 0 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 14px;
}

.cl-request__form {
	padding: 42px;
}

.cl-request__form h3 {
	margin: 0 0 8px;
	font-size: 29px;
	font-weight: 700;
	line-height: 1.15;
}

.cl-request__lead {
	margin: 0 0 25px;
	color: var(--cl-muted);
	font-size: 14px;
}

/* CF7-разметка общей формы лендингов */
.cl-request .wpcf7 form > p,
.cl-request .wpcf7 br {
	display: none;
}

.cl-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.cl-field {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.cl-field--full {
	grid-column: 1 / -1;
}

.cl-field label {
	color: #4e5c53;
	font-size: 12px;
	font-weight: 700;
}

.cl-field .wpcf7-form-control-wrap {
	display: block;
}

.cl-page .cl-field input,
.cl-page .cl-field select,
.cl-page .cl-field textarea {
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 12px 13px;
	border: 1px solid #ccd8cf;
	border-radius: 12px;
	background: #fff;
	color: var(--cl-ink);
	font: inherit;
	font-size: 15px;
	outline: 0;
	box-shadow: none;
	transition: 0.15s;
}

.cl-page .cl-field select {
	appearance: none;
	padding-right: 38px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1.5 5 5 5-5' stroke='%2306652e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
}

.cl-page .cl-field textarea {
	height: 108px;
	min-height: 108px;
	resize: vertical;
}

.cl-page .cl-field input:focus,
.cl-page .cl-field select:focus,
.cl-page .cl-field textarea:focus {
	border-color: #6fa985;
	box-shadow: 0 0 0 3px rgba(6, 101, 46, 0.08);
}

.cl-page .cl-field .wpcf7-not-valid {
	border-color: #e24420;
}

.cl-field .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #e24420;
	font-size: 12px;
}

.cl-form-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 18px;
}

.cl-consent {
	max-width: 330px;
	margin: 0;
	color: var(--cl-muted);
	font-size: 11px;
	line-height: 1.4;
}

.cl-consent a {
	color: inherit;
	text-decoration: underline;
}

.cl-form-foot .cl-btn {
	flex: 0 0 auto;
}

.cl-request .wpcf7-spinner {
	position: absolute;
}

.cl-request .wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 14px;
	border: 1px solid var(--cl-line);
	border-radius: 12px;
	font-size: 14px;
}

.cl-request .wpcf7 form.sent .wpcf7-response-output {
	border-color: rgba(67, 171, 52, 0.4);
	background: var(--cl-soft);
	color: var(--cl-pine);
}

/* Отзывы — блок главной; шапку секции выравниваем со стилем лендинга. */
.cl-page .homepage-reviews.tour-reviews {
	--hp-rev-shell: var(--cl-shell);
	padding: 92px 0;
	background: var(--cl-paper);
}

.cl-page .homepage-reviews .section-head {
	gap: 32px;
	margin-bottom: 34px;
}

.cl-page .homepage-reviews .section-head .eyebrow {
	margin: 0 0 12px;
	color: var(--cl-pine);
	font-size: 14px;
	letter-spacing: 0.03em;
	text-transform: none;
}

.cl-page .homepage-reviews .section-head h2 {
	font-size: clamp(34px, 3.25vw, 54px);
	font-weight: 650;
	line-height: 1.03;
	letter-spacing: -0.035em;
}

/* SEO-текст */
.cl-seo__inner {
	max-width: 900px;
}

.cl-seo h2 {
	margin-bottom: 24px;
	font-size: clamp(28px, 2.4vw, 38px);
}

.cl-seo__text {
	color: #3d4b43;
	font-size: 16px;
	line-height: 1.65;
}

.cl-seo__text p {
	margin: 0 0 14px;
}

.cl-seo__text a {
	color: var(--cl-pine);
	text-decoration: underline;
}

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

@media (max-width: 980px) {
	.cl-hero,
	.cl-hero .cl-shell {
		min-height: 560px;
	}

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

	.cl-cases__grid,
	.cl-cases__grid--3 {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 420px 280px;
	}

	.cl-cases__grid--3 .cl-case--featured {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.cl-request__card {
		grid-template-columns: 1fr;
	}

	.cl-request__visual {
		min-height: 430px;
	}
}

@media (max-width: 700px) {
	.cl-page {
		--cl-shell: min(1340px, calc(100vw - 28px));
		font-size: 14px;
	}

	.cl-section {
		padding: 58px 0;
	}

	.cl-section-head {
		display: block;
		margin-bottom: 22px;
	}

	.cl-page .cl-section-head h2,
	.cl-page .homepage-reviews .section-head h2 {
		font-size: clamp(27px, 7.7vw, 32px);
		line-height: 1.09;
		letter-spacing: -0.032em;
	}

	.cl-section-note {
		margin-top: 12px;
		font-size: 14px;
	}

	.cl-nav .cl-shell {
		justify-content: flex-start;
		min-height: 48px;
		scroll-snap-type: x proximity;
	}

	.cl-nav a {
		flex: 0 0 auto;
		min-height: 48px;
		padding: 0 14px;
		font-size: 13px;
		scroll-snap-align: start;
	}

	.cl-nav a::after {
		right: 14px;
		bottom: 7px;
		left: 14px;
	}

	.cl-hero,
	.cl-hero .cl-shell {
		min-height: 0;
	}

	.cl-hero .cl-shell {
		padding: 40px 0 56px;
	}

	.cl-hero__photo img,
	.cl-hero__photo video {
		object-position: 72% center;
	}

	.cl-hero__photo::after {
		background: linear-gradient(180deg, rgba(3, 37, 22, 0.82) 0%, rgba(3, 37, 22, 0.47) 48%, rgba(3, 37, 22, 0.83) 100%);
	}

	.cl-hero h1 {
		max-width: 520px;
		margin-bottom: 14px;
		font-size: clamp(33px, 9.6vw, 39px);
		line-height: 1.02;
		letter-spacing: -0.043em;
	}

	.cl-hero__lead {
		max-width: 480px;
		margin-bottom: 20px;
		font-size: 14px;
	}

	.cl-hero__actions {
		gap: 8px;
	}

	.cl-hero__actions .cl-btn {
		min-height: 46px;
		padding: 0 15px;
		font-size: 13px;
	}

	.cl-trust {
		padding: 16px 0;
	}

	.cl-trust__grid {
		display: flex;
		gap: 8px;
		padding: 0 14px 4px 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cl-trust__grid::-webkit-scrollbar {
		display: none;
	}

	.cl-trust__item {
		flex: 0 0 76vw;
		min-height: 70px;
		scroll-snap-align: start;
	}

	.cl-steps {
		padding: 20px 0 16px;
	}

	.cl-steps + .cl-programs {
		padding-top: 16px;
	}

	.cl-steps__grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.cl-step {
		min-height: 0;
	}

	.cl-step__number {
		width: 48px;
		height: 48px;
		border-radius: 14px;
	}

	.cl-step h3 {
		margin-top: 20px;
	}

	.cl-programs__toolbar {
		display: block;
	}

	.cl-programs__filters {
		margin-right: calc((100vw - var(--cl-shell)) / -2);
		padding-right: 14px;
	}

	.cl-programs__rail {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}

	.cl-program__image {
		height: 205px;
	}

	.cl-program h3 {
		min-height: 0;
		font-size: 20px;
	}

	.cl-cases__grid,
	.cl-cases__grid--1,
	.cl-cases__grid--2,
	.cl-cases__grid--3 {
		display: flex;
		gap: 10px;
		margin-right: calc((100vw - var(--cl-shell)) / -2);
		padding-right: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cl-cases__grid::-webkit-scrollbar {
		display: none;
	}

	.cl-case {
		flex: 0 0 86vw;
		min-height: 440px;
		scroll-snap-align: start;
	}

	.cl-case h3 {
		font-size: 24px;
	}

	.cl-case__summary {
		font-size: 13px;
	}

	.cl-modal {
		padding: 12px;
	}

	.cl-modal__dialog {
		max-height: calc(100svh - 24px);
		padding: 26px 20px 22px;
		border-radius: 22px;
	}

	.cl-modal__close {
		top: 14px;
		right: 14px;
		width: 40px;
		height: 40px;
		border-radius: 12px;
	}

	.cl-modal__dialog > .cl-eyebrow {
		margin: 0 50px 9px 0;
		font-size: 12px;
	}

	.cl-modal__dialog h2 {
		margin: 0 48px 15px 0;
		font-size: clamp(27px, 8vw, 34px);
		line-height: 1.08;
	}

	.cl-modal__meta {
		margin-bottom: 18px;
	}

	.cl-case-detail {
		grid-template-columns: 1fr;
		gap: 5px;
		padding: 15px 0;
	}

	.cl-page .cl-case-detail h3 {
		margin: 0;
	}

	.cl-case-detail p {
		font-size: 14px;
		line-height: 1.55;
	}

	.cl-modal__action {
		display: block;
		padding-top: 18px;
	}

	.cl-modal__action .cl-btn {
		width: 100%;
		margin-top: 14px;
	}

	.cl-request__card {
		border-radius: 22px;
	}

	.cl-request__visual {
		min-height: 350px;
	}

	.cl-request__message {
		right: 20px;
		bottom: 20px;
		left: 20px;
	}

	.cl-request__message h2 {
		font-size: 32px;
	}

	.cl-request__form {
		padding: 24px 18px;
	}

	.cl-request__form h3 {
		font-size: 25px;
	}

	.cl-form-grid {
		grid-template-columns: 1fr;
	}

	.cl-field--full {
		grid-column: auto;
	}

	.cl-form-foot {
		display: block;
	}

	.cl-form-foot .cl-btn {
		width: 100%;
		margin-top: 14px;
	}

	.cl-page .homepage-reviews.tour-reviews {
		padding: 58px 0;
	}
}
