/* ============================================================
   Страница экскурсии /Excursion/DetailsNew — редизайн карточки
   (макет design_handoff_excursion_card). Префикс классов exd-.
   Подключается и в Vue-ветке, и в статике для ботов (_DetailsStaticBody).
   Липкие элементы: оглавление (.exd-toc) и правая колонка (.exd-side).
   ============================================================ */

.exd {
	--exd-ink: #0b0a12;
	--exd-text: #747579;
	--exd-muted: #5a6268;
	--exd-faint: #85878a;
	--exd-faint2: #96969a;
	--exd-slate: #425565;
	--exd-blue: #008EF1;
	--exd-blue-hover: #0077cc;
	--exd-green: #0cbc87;
	--exd-amber: #e6a13c;
	--exd-red: #e5484d;
	--exd-soft: #f5f5f6;
	--exd-soft2: #f8fafc;
	--exd-soft3: #f1f4f7;
	--exd-blue-bg: #eaf4fe;
	--exd-blue-bg2: #f4fafe;
	--exd-blue-bg3: #eaf5ff;
	--exd-blue-bg4: #fbfdff;
	--exd-green-bg: #e9f9ee;
	--exd-green-bg2: #e7f8ef;
	--exd-border: #eef2f6;
	--exd-border2: #dfdfe3;
	--exd-border3: #e6eaf0;
	--exd-border4: #dfe4ea;
	--exd-border-blue: #cfe6fb;
	--exd-border-blue2: #e3ecf4;
	--exd-dash: #b9c6d2;
	--exd-tg: #29a9ea;
	--exd-wa: #25d366;
	--exd-max: #7b61ff;
	--exd-sticky-top: 8px;
	--exd-shadow-card: 0 0 40px rgba(29,58,83,.1);
	--exd-shadow-soft: 0 0 .5rem rgba(29,58,83,.15);
}

/* фиксированная шапка сайта появляется только на широких экранах (header-sticky-on ≥1200px) */
@media (min-width: 1200px) {
	.exd {
		--exd-sticky-top: 72px;
	}
}

/* body темы стоит с overflow-x:hidden, а html — с overflow-x:clip: overflow body не уходит на viewport,
   body становится скролл-контейнером и липкие блоки (.exd-toc, .exd-side) перестают двигаться.
   clip не создает скролл-контейнер. Класс exd-body ставит JS, :has - запас для статики */
body.exd-body,
body:has(.exd) {
	overflow-x: clip;
	overflow-y: visible;
}

.exd button {
	font-family: inherit;
}

.exd-btn-reset {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

/* ---------- Карточки и заголовки ---------- */

.exd-card {
	background: #fff;
	border-radius: 16px;
	box-shadow: var(--exd-shadow-card);
	padding: 20px;
	margin-bottom: 16px;
	scroll-margin-top: calc(var(--exd-sticky-top) + 72px);
}

.exd-card-soft {
	box-shadow: var(--exd-shadow-soft);
}

.exd-h2 {
	margin: 0;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--exd-ink);
}

.exd-h3 {
	margin: 0;
	font-size: 20.8px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--exd-ink);
}

.exd-lead {
	font-size: 14px;
	color: var(--exd-muted);
	margin: 4px 0 12px;
}

@media (max-width: 767.98px) {
	/* на телефоне контейнер без отступов + отрицательные поля .row (колонки p-0) вытягивали карточки
	   на 12px за край экрана - даем воздух по бокам и гасим gutter ряда */
	.exd .container.px-0 {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}

	.exd .row {
		--bs-gutter-x: 0;
	}

	/* ps-2 правой колонки нужен только рядом с левой (десктоп) */
	.exd .exd-main-row > .col-xl-4 {
		padding-left: 0 !important;
	}

	.exd-card {
		padding: 16px;
		border-radius: 16px;
	}

	.exd-h2 {
		font-size: 22px;
	}

	.exd-h3 {
		font-size: 18px;
	}
}

/* ---------- Шапка карточки (десктоп) ---------- */

.exd-topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.exd-back {
	color: var(--exd-faint);
	font-size: 14px;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 2px;
}

	.exd-back:hover {
		color: var(--exd-slate);
	}

.exd-topbar-actions {
	display: flex;
	align-items: center;
	gap: 8px;
}

.exd-iconbtn {
	background: #fff;
	border: 1px solid var(--exd-border3);
	border-radius: 9px;
	padding: 6px 9px;
	line-height: 1;
	cursor: pointer;
	color: var(--exd-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

	.exd-iconbtn:hover {
		border-color: var(--exd-border-blue);
	}

.exd-actions-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	background: #fff;
	border: 1px solid var(--exd-border3);
	color: #5b6b7a;
	border-radius: 10px;
	padding: 8px 13px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	line-height: 1.2;
}

	.exd-actions-btn:hover,
	.exd-actions-btn.show {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

	.exd-actions-btn::after {
		display: none; /* стрелка Bootstrap dropdown не нужна */
	}

.exd-online {
	color: var(--exd-green);
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 4px;
}

.exd-h1 {
	margin: 0 0 10px;
	font-size: 34px;
	line-height: 1.15;
	font-weight: 800;
	color: var(--exd-ink);
	letter-spacing: -0.015em;
	text-wrap: pretty;
}

.exd-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}

.exd-rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 6px;
}

.exd-score {
	display: inline-block;
	background: var(--exd-green);
	color: #fff;
	font-weight: 800;
	font-size: 14px;
	padding: 3px 8px;
	border-radius: 6px;
	line-height: 1.3;
}

	.exd-score.is-mid {
		background: #f59e0b;
	}

	.exd-score.is-low {
		background: #dc3545;
	}

.exd-rating-link {
	font-size: 15px;
	color: var(--exd-blue);
	text-decoration: none;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

	.exd-rating-link:hover {
		color: var(--exd-blue-hover);
	}

.exd-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 11px;
	background: #fff;
	border-radius: 9px;
	font-size: 15px;
	color: var(--exd-muted);
}

	.exd-chip svg {
		flex: none;
		color: var(--exd-faint);
	}

.exd-address {
	display: flex;
	align-items: flex-start;
	gap: 5px;
	font-size: 15px;
	color: var(--exd-muted);
	line-height: 1.45;
}

	.exd-address a {
		color: var(--exd-muted);
		text-decoration: none;
	}

		.exd-address a:hover {
			color: var(--exd-blue);
		}

	.exd-address svg {
		flex: none;
	}

.exd-copy-inline {
	cursor: pointer;
	line-height: 1;
	flex: none;
	color: var(--exd-text);
	background: none;
	border: 0;
	padding: 0;
}

	.exd-copy-inline:hover {
		color: var(--exd-blue);
	}

/* карточка карты рядом с галереей */
.exd-mapcard {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 16px;
	box-shadow: var(--exd-shadow-soft);
	padding: 14px 16px 12px;
}

.exd-mapcard-title {
	font-size: 16.8px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 8px;
	flex: none;
}

/* карта занимает остаток высоты карточки и не диктует ее: Yandex Maps растягивал #map,
   карточка вылезала за ряд галереи и уходила под калькулятор */
.exd-mapcard #map-container {
	flex: 1 1 0;
	min-height: 160px;
	position: relative;
	border-radius: 8px;
	overflow: hidden;
}

.exd-mapcard #map,
.exd-mapcard .map-loader {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	min-height: 0 !important;
	border-radius: 8px;
	overflow: hidden;
}

.exd-mapcard .exd-address {
	flex: none;
	margin-top: 10px;
	font-size: 14px;
}

/* ---------- Шапка карточки (мобильный) ---------- */

.exd-mhero {
	background: #fff;
	border-radius: 16px;
	box-shadow: var(--exd-shadow-soft);
	padding: 12px 16px 16px;
	margin-bottom: 0;
}

.exd-mhero-img {
	position: relative;
	margin: -12px -16px 12px;
}

	.exd-mhero-img img {
		display: block;
		width: 100%;
		height: 190px;
		object-fit: cover;
		border-radius: 16px 16px 0 0;
	}

.exd-mhero-btns {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
}

.exd-mhero-img .exd-mhero-btns {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	margin: 0;
}

.exd-mhero-btns > div {
	display: flex;
	gap: 8px;
}

.exd-mbtn {
	background: var(--exd-soft);
	border: 0;
	border-radius: 9px;
	padding: 8px 10px;
	line-height: 1;
	cursor: pointer;
	color: var(--exd-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.exd-mhero-img .exd-mbtn {
	background: rgba(255,255,255,.95);
	border-radius: 11px;
	padding: 9px 11px;
	box-shadow: 0 2px 12px rgba(11,10,18,.22);
}

.exd-mhero-title {
	margin: 0 0 8px;
	font-size: 26px;
	line-height: 1.18;
	font-weight: 800;
	color: var(--exd-ink);
	text-wrap: pretty;
}

.exd-mhero .exd-meta {
	gap: 6px;
}

.exd-mhero .exd-chip {
	background: var(--exd-soft);
	border-radius: 8px;
	font-size: 13.5px;
	padding: 5px 10px;
}

.exd-mhero .exd-address {
	font-size: 14px;
}

	.exd-mhero .exd-address a {
		color: var(--exd-blue);
	}

.exd-mhero-museum {
	font-size: 15px;
	color: var(--exd-ink);
	margin-bottom: 6px;
}

/* ---------- Оглавление ---------- */

.exd-toc {
	position: sticky;
	top: var(--exd-sticky-top);
	z-index: 4;
	background: rgba(255,255,255,.97);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	border-radius: 16px;
	box-shadow: 0 2px 14px rgba(29,58,83,.12);
	padding: 11px 14px;
	flex-wrap: wrap;
	gap: 7px;
}

.exd-toc-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--exd-muted);
	margin-right: 4px;
	white-space: nowrap;
}

.exd-toc-link {
	font-size: 14px;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: 20px;
	background: var(--exd-soft);
	color: var(--exd-slate);
	white-space: nowrap;
	text-decoration: none;
	line-height: 1.3;
	flex: none;
}

	.exd-toc-link:hover {
		background: var(--exd-blue-bg);
		color: var(--exd-blue);
	}

	.exd-toc-link.is-active,
	.exd-toc-link.is-active:hover {
		background: var(--exd-blue);
		color: #fff;
		font-weight: 700;
	}

.exd-toc-count {
	color: var(--exd-faint2);
	font-weight: 600;
}

.exd-toc-link.is-active .exd-toc-count {
	color: rgba(255,255,255,.8);
}

@media (max-width: 767.98px) {
	/* на телефоне — одна строка с горизонтальной прокруткой, чтобы липкая панель не съедала экран */
	.exd-toc {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		padding: 9px 12px;
		border-radius: 14px;
		-webkit-overflow-scrolling: touch;
	}

		.exd-toc::-webkit-scrollbar {
			display: none;
		}

	.exd-toc-label {
		display: none;
	}
}

/* ---------- Про экскурсию ---------- */

.exd-about-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.exd-why-title {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--exd-ink);
}

.exd-why {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	line-height: 1.5;
}

.exd-why-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 15px;
	line-height: 1.45;
	color: var(--exd-text);
	margin-bottom: 8px;
	break-inside: avoid;
}

	.exd-why-item svg {
		flex: none;
		margin-top: 2px;
		color: var(--exd-green);
	}

/* две колонки только когда пунктов больше четырех (is-cols), иначе один столбик */
@media (min-width: 768px) {
	.exd-why.is-cols {
		columns: 2;
		column-gap: 26px;
	}
}

.exd-desc {
	font-size: 16px;
	color: var(--exd-text);
}

	.exd-desc p:last-child {
		margin-bottom: 0;
	}

.exd-more-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--exd-border4);
	border-radius: 10px;
	padding: 10px 16px;
	font-size: 15px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
	margin-top: 14px;
}

	.exd-more-btn:hover {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

/* обертка стрелки в кнопках «Показать больше» / «Раскрыть все» - is-open разворачивает ее вверх */
.exd-chev {
	display: inline-flex;
	align-items: center;
	transition: transform .18s ease;
	flex: none;
}

	.exd-chev.is-open {
		transform: rotate(180deg);
	}

.exd-facts {
	border: 1px solid #f0e2c8;
	background: #fffdf7;
	border-radius: 14px;
	padding: 16px 18px;
	margin-top: 16px;
}

.exd-facts-head {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 12px;
	font-size: 16.8px;
	font-weight: 700;
	color: var(--exd-ink);
}

	.exd-facts-head svg {
		flex: none;
		color: var(--exd-amber);
	}

.exd-fact {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 1.5;
	color: #4a4b50;
	margin-bottom: 11px;
}

	.exd-fact:last-child {
		margin-bottom: 0;
	}

.exd-fact-num {
	flex: none;
	width: 23px;
	height: 23px;
	border-radius: 8px;
	background: #fdf0d9;
	color: #b57b1c;
	font-size: 13px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- Цена и тарифы ---------- */

.exd-price-head {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin-bottom: 20px;
}

.exd-price-title-col {
	width: 36%;
	padding-top: 4px;
	flex: none;
}

	.exd-price-title-col.is-full {
		width: 100%;
	}

.exd-price-sub {
	font-size: 15px;
	color: var(--exd-muted);
	margin: 8px 0 0;
}

@media (max-width: 991.98px) {
	.exd-price-head {
		flex-direction: column;
		gap: 16px;
		margin-bottom: 18px;
	}

	.exd-price-title-col {
		width: 100%;
		padding-top: 0;
	}
}

.exd-promo {
	flex: 1;
	min-width: 0;
	background: var(--exd-green-bg);
	border-radius: 16px;
	box-shadow: var(--exd-shadow-soft);
	padding: 16px;
}

.exd-promo-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 14px;
}

.exd-promo-title {
	font-weight: 700;
	font-size: 16px;
	color: var(--exd-ink);
}

.exd-promo-sub {
	font-size: 14px;
	color: var(--exd-muted);
}

.exd-promo-help {
	background: var(--exd-soft);
	border: 1px solid var(--exd-soft);
	border-radius: 8px;
	padding: 4px 8px;
	line-height: 1;
	cursor: pointer;
	color: var(--exd-ink);
	flex: none;
}

.exd-promo-tiles {
	display: flex;
	gap: 8px;
}

.exd-promo-tile {
	flex: 1;
	min-width: 0;
	padding: 8px;
	border: 1px solid var(--exd-faint);
	border-radius: 8px;
	background: #fff;
	color: var(--exd-text);
	cursor: pointer;
	text-align: left;
}

	.exd-promo-tile.is-on-green {
		border-color: var(--exd-green);
		background: var(--exd-green);
		color: #fff;
	}

	.exd-promo-tile.is-on-blue {
		border-color: var(--exd-blue);
		background: var(--exd-blue);
		color: #fff;
	}

	.exd-promo-tile.is-disabled {
		opacity: .5;
		cursor: not-allowed;
	}

.exd-promo-tile-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 14px;
	gap: 6px;
}

.exd-promo-tile-label {
	display: block;
	font-size: 15px;
	line-height: 1.3;
}

.exd-badge {
	display: inline-block;
	font-weight: 700;
	font-size: 12px;
	padding: .35em .65em;
	border-radius: 8px;
	line-height: 1;
	white-space: nowrap;
}

	.exd-badge.is-white {
		background: #fff;
		color: var(--exd-ink);
	}

	.exd-badge.is-green {
		background: var(--exd-green);
		color: #fff;
	}

	.exd-badge.is-blue {
		background: var(--exd-blue);
		color: #fff;
	}

	.exd-badge.is-green-soft {
		background: rgba(12,188,135,.1);
		color: var(--exd-green);
	}

	.exd-badge.is-blue-soft {
		background: rgba(0,142,241,.1);
		color: var(--exd-blue);
	}

.exd-promo-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--exd-border2);
	border-radius: 10px;
	padding: 9px 11px;
	margin-top: 10px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--exd-muted);
}

	.exd-promo-note svg {
		flex: none;
		margin-top: 1px;
		color: var(--exd-faint);
	}

/* полоса транспорта */
.exd-transport {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	background: var(--exd-soft2);
	border: 1px solid var(--exd-border);
	border-radius: 12px;
	padding: 11px 14px;
	margin: 0 8px 18px;
}

.exd-transport-left {
	display: flex;
	align-items: center;
	gap: 10px;
}

.exd-transport-label {
	font-size: 14px;
	color: var(--exd-muted);
	white-space: nowrap;
}

.exd-transport-note {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 15px;
	font-weight: 700;
	color: var(--exd-ink);
}

	.exd-transport-note svg {
		flex: none;
		color: var(--exd-green);
	}

.exd-transport-note-plain {
	margin: 0 8px 18px;
	font-weight: 700;
	color: var(--exd-ink);
	font-size: 15px;
}

@media (max-width: 767.98px) {
	.exd-transport {
		margin: 0 0 16px;
		gap: 10px;
	}

	.exd-transport-note-plain {
		margin: 0 0 16px;
	}
}

/* сегмент-тумблер */
.exd-seg {
	display: flex;
	width: 100%;
}

	.exd-seg.is-auto {
		width: auto;
	}

.exd-seg-btn {
	flex: 1 1 auto;
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	padding: 7px 4px;
	border: 1px solid var(--exd-slate);
	border-right-width: 0;
	background: #fff;
	color: var(--exd-slate);
	cursor: pointer;
	white-space: nowrap;
	line-height: 1.3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 0;
}

	.exd-seg-btn:first-child {
		border-radius: 8px 0 0 8px;
	}

	.exd-seg-btn:last-child {
		border-radius: 0 8px 8px 0;
		border-right-width: 1px;
	}

	.exd-seg-btn.is-on {
		background: var(--exd-slate);
		border-color: var(--exd-slate);
		color: #fff;
		font-weight: 700;
	}

.exd-seg-light .exd-seg-btn {
	border-color: var(--exd-faint);
	color: var(--exd-faint);
	font-weight: 600;
	font-size: 14px;
	padding: 7px 8px;
	flex: none;
}

	.exd-seg-light .exd-seg-btn.is-on {
		border-color: var(--exd-slate);
		background: var(--exd-slate);
		color: #fff;
		font-weight: 700;
	}

.exd-seg-calc .exd-seg-btn {
	font-size: 14px;
	font-weight: 600;
	padding: 6px 8px;
}

	.exd-seg-calc .exd-seg-btn.is-on {
		font-weight: 700;
	}

/* тарифы */
.exd-tariffs {
	display: flex;
	margin: 0 -8px;
}

.exd-tariff-col {
	flex: 1 0 0%;
	padding: 0 8px;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

@media (max-width: 767.98px) {
	.exd-tariffs {
		gap: 12px;
		overflow-x: auto;
		margin: 0 -16px;
		padding: 0 16px 6px;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

		.exd-tariffs::-webkit-scrollbar {
			display: none;
		}

	.exd-tariff-col {
		flex: 0 0 236px;
		padding: 0;
		scroll-snap-align: start;
	}
}

.exd-tariff {
	background: #fff;
	border-radius: 16px;
	flex-grow: 1;
	padding: 14px 14px 26px;
	display: flex;
	flex-direction: column;
	box-shadow: var(--exd-shadow-soft);
	position: relative;
	z-index: 1;
	transition: box-shadow .15s ease;
}

	.exd-tariff.is-selected {
		box-shadow: 0 0 0 2px var(--exd-blue);
	}

.exd-tariff-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

.exd-tariff-group {
	font-size: 20px;
	font-weight: 900;
	color: var(--exd-ink);
	line-height: 1.2;
}

	.exd-tariff-group small {
		font-weight: 400;
		font-size: .75em;
		color: var(--exd-text);
	}

.exd-tariff-sup {
	font-size: 13px;
	color: var(--exd-ink);
	margin: 4px 0 10px;
	line-height: 1.4;
}

.exd-tariff-price {
	margin-top: auto;
	margin-bottom: 12px;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0 6px;
}

.exd-tariff-price-value {
	font-size: 25.6px;
	font-weight: 700;
	color: var(--exd-ink);
	line-height: 1.1;
}

	.exd-tariff-price-value.is-green {
		color: var(--exd-green);
	}

	.exd-tariff-price-value.is-blue {
		color: var(--exd-blue);
	}

.exd-tariff-old {
	color: var(--exd-muted);
	text-decoration: line-through;
	white-space: nowrap;
	font-size: 14px;
}

.exd-tariff-btn {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--exd-slate);
	border: 1px solid var(--exd-slate);
	color: #fff;
	border-radius: 8px;
	padding: 9px;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	line-height: 1.3;
	text-decoration: none;
}

	.exd-tariff-btn:hover {
		background: #5d6d7e;
		border-color: #5d6d7e;
		color: #fff;
	}

	.exd-tariff-btn.is-selected {
		background: var(--exd-blue);
		border-color: var(--exd-blue);
	}

		.exd-tariff-btn.is-selected:hover {
			background: var(--exd-blue-hover);
			border-color: var(--exd-blue-hover);
		}

	.exd-tariff-btn.is-outline {
		background: #fff;
		color: var(--exd-slate);
	}

		.exd-tariff-btn.is-outline:hover {
			background: var(--exd-slate);
			color: #fff;
		}

.exd-tariff-note {
	border-radius: 8px;
	text-align: center;
	background: var(--exd-soft);
	font-size: 12px;
	margin-top: -22px;
	padding: 30px 5px 10px;
	min-height: 74px;
	font-weight: 700;
	color: var(--exd-text);
	line-height: 1.35;
}

.exd-tariff-micro {
	border: 2px dashed #cbd5e1;
	background: var(--exd-soft2);
	box-shadow: none;
}

.exd-tariff-micro-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #e8f4fe;
	color: var(--exd-blue);
}

.exd-tariff-micro .exd-tariff-sup {
	color: var(--exd-faint);
}

/* ---------- Когда поедете ---------- */

.exd-divider {
	height: 1px;
	background: var(--exd-border);
	margin: 22px 8px;
}

.exd-dates {
	padding: 0 8px;
	scroll-margin-top: calc(var(--exd-sticky-top) + 80px);
}

@media (max-width: 767.98px) {
	.exd-divider {
		margin: 18px 0;
	}

	.exd-dates {
		padding: 0;
	}
}

.exd-dates-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
}

	.exd-dates-head svg {
		flex: none;
		color: var(--exd-blue);
	}

.exd-date-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.exd-date-chip {
	padding: 9px 14px;
	border-radius: 9px;
	background: var(--exd-blue-bg3);
	border: 1px solid var(--exd-blue-bg3);
	color: #142433;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	line-height: 1.3;
}

	.exd-date-chip:hover {
		background: #d3ebff;
		border-color: #d3ebff;
	}

	.exd-date-chip.is-on,
	.exd-date-chip.is-on:hover {
		background: var(--exd-blue);
		border-color: var(--exd-blue);
		color: #fff;
	}

	.exd-date-chip.is-dashed {
		background: #fff;
		border: 1px dashed var(--exd-dash);
		color: var(--exd-slate);
	}

		.exd-date-chip.is-dashed:hover {
			background: var(--exd-soft2);
		}

.exd-cal {
	border: 1px solid var(--exd-border);
	border-radius: 12px;
	padding: 16px;
}

.exd-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

/* календарь гарантированных дат (перенесен из inline-стилей DetailsNew) */
.sc-months {
	display: flex;
	gap: 26px;
}

.sc-month {
	flex: 1 1 0;
	min-width: 0;
}

.sc-cal-head {
	text-align: center;
	font-weight: 600;
	margin-bottom: 10px;
	color: var(--exd-ink);
}

.sc-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 5px;
}

.sc-cal-dow {
	font-size: .7rem;
	color: #6b7a89;
	text-align: center;
	font-weight: 600;
	padding-bottom: 2px;
}

.sc-cal-cell {
	aspect-ratio: 1 / 1;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: .9rem;
	position: relative;
	box-sizing: border-box;
}

.sc-empty {
	visibility: hidden;
}

.sc-off {
	color: #c4ccd4;
}

.sc-has {
	color: #142433;
	background: var(--exd-blue-bg3);
	cursor: pointer;
}

	.sc-has:hover {
		background: #d3ebff;
	}

	.sc-has::after {
		content: '';
		position: absolute;
		bottom: 5px;
		left: 50%;
		transform: translateX(-50%);
		width: 5px;
		height: 5px;
		border-radius: 50%;
		background: var(--exd-blue);
	}

	.sc-has.sc-sel,
	.sc-has.sc-sel:hover {
		background: var(--exd-blue);
		color: #fff;
	}

		.sc-has.sc-sel::after {
			background: #fff;
		}

.sc-req {
	color: #142433;
	background: #fff;
	border: 1px dashed var(--exd-dash);
	cursor: pointer;
}

	.sc-req:hover {
		background: #f2f6fa;
	}

	.sc-req.sc-sel,
	.sc-req.sc-sel:hover {
		background: var(--exd-slate);
		color: #fff;
		border-color: var(--exd-slate);
	}

.sc-nav-btn {
	border: 1px solid #e7edf3;
	background: #fff;
	border-radius: 9px;
	width: 34px;
	height: 34px;
	line-height: 1;
	font-size: 1.1rem;
	color: #142433;
	flex: none;
}

	.sc-nav-btn:disabled {
		opacity: .4;
		cursor: default;
	}

.sc-legend {
	font-size: .78rem;
	color: #6b7a89;
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
}

	.sc-legend > span {
		display: inline-flex;
		align-items: center;
	}

.sc-box-avail {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 4px;
	background: var(--exd-blue-bg3);
	margin-right: 5px;
}

.sc-box-req {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 4px;
	background: #fff;
	border: 1px dashed var(--exd-dash);
	margin-right: 5px;
}

@media (max-width: 767.98px) {
	.sc-months {
		gap: 0;
	}
}

.exd-times-label {
	font-size: 14px;
	color: var(--exd-muted);
	margin: 16px 0 8px;
}

	.exd-times-label strong {
		color: var(--exd-ink);
	}

.exd-times {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.exd-time-btn {
	background: transparent;
	border: 1px solid var(--exd-blue);
	color: var(--exd-blue);
	border-radius: 8px;
	padding: 6px 14px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

	.exd-time-btn.is-on {
		background: var(--exd-blue);
		color: #fff;
	}

.exd-summary {
	display: flex;
	align-items: center;
	gap: 8px;
}

.exd-summary-box {
	flex-grow: 1;
	padding: 9px 16px;
	border-radius: 8px;
	background: var(--exd-green-bg2);
	border: 1px solid #b9ead0;
	font-size: 14px;
	color: var(--exd-text);
}

	.exd-summary-box strong {
		color: var(--exd-ink);
	}

	.exd-summary-box.is-request {
		background: #f4f7fa;
		border: 1px dashed var(--exd-dash);
	}

.exd-summary-hint {
	font-size: 14px;
	color: var(--exd-muted);
	margin-top: 12px;
}

@media (max-width: 767.98px) {
	.exd-summary {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
}

/* ---------- Кнопки ---------- */

.exd-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--exd-blue);
	border: 1px solid var(--exd-blue);
	color: #fff;
	border-radius: 8px;
	padding: 9px 18px;
	font-weight: 700;
	font-size: 16px;
	white-space: nowrap;
	cursor: pointer;
	line-height: 1.3;
	text-decoration: none;
}

	.exd-btn-primary:hover {
		background: var(--exd-blue-hover);
		border-color: var(--exd-blue-hover);
		color: #fff;
	}

	.exd-btn-primary:disabled {
		opacity: .6;
		cursor: not-allowed;
	}

.exd-btn-soft {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: var(--exd-soft);
	border: 1px solid var(--exd-border);
	border-radius: 8px;
	padding: 8px 14px;
	font-size: 14px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
	line-height: 1.3;
	text-decoration: none;
}

	.exd-btn-soft:hover {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

.exd-linkbtn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: 0;
	padding: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--exd-blue);
	cursor: pointer;
	text-decoration: none;
}

	.exd-linkbtn:hover {
		color: var(--exd-blue-hover);
	}

.exd-expand-all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #f5f7fa;
	border: 1px solid #e6ecf2;
	border-radius: 9px;
	padding: 7px 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
}

	.exd-expand-all:hover {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

/* ---------- Организация поездки (аккордеон) ---------- */

.exd-org {
	padding: 0;
	overflow: hidden;
}

.exd-org-head {
	padding: 20px 20px 14px 28px;
}

.exd-org-item {
	border-top: 1px solid var(--exd-border);
}

.exd-org-row {
	width: 100%;
	text-align: left;
	background: #fff;
	border: 0;
	padding: 18px 20px 18px 28px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
	color: inherit;
}

	.exd-org-row.is-open {
		background: var(--exd-blue-bg4);
	}

.exd-org-row-left {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
}

.exd-org-icon {
	flex: none;
	margin-top: 2px;
	color: var(--exd-blue);
}

	.exd-org-icon.is-green {
		color: var(--exd-green);
	}

	.exd-org-icon.is-slate {
		color: var(--exd-slate);
	}

.exd-org-title {
	font-size: 17.6px;
	font-weight: 700;
	color: var(--exd-ink);
	line-height: 1.3;
}

.exd-org-meta-row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 4px;
}

.exd-org-meta {
	font-size: 14px;
	color: var(--exd-faint);
}

.exd-org-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: var(--exd-blue-bg);
	color: var(--exd-blue);
	border-radius: 8px;
	padding: 3px 9px;
	font-size: 13px;
	font-weight: 700;
}

.exd-org-chev {
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: var(--exd-soft);
	border: 1px solid var(--exd-border);
	color: var(--exd-slate);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .18s ease, background .18s ease;
}

.exd-org-row.is-open .exd-org-chev {
	background: var(--exd-blue-bg);
	border-color: var(--exd-border-blue);
	color: var(--exd-blue);
	transform: rotate(180deg);
}

.exd-org-body {
	padding: 0 24px 20px 62px;
}

@media (max-width: 767.98px) {
	.exd-org-head {
		padding: 18px 16px 14px;
	}

	.exd-org-row {
		padding: 15px 16px;
	}

	.exd-org-body {
		padding: 0 16px 18px;
	}
}

.exd-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 15px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exd-list-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	line-height: 1.45;
	color: var(--exd-faint);
}

	.exd-list-item svg {
		flex: none;
		margin-top: 3px;
		color: var(--exd-blue);
	}

	.exd-list-item.is-green svg {
		color: var(--exd-green);
	}

	.exd-list-item strong {
		color: var(--exd-ink);
	}

.exd-steps {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exd-step {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--exd-muted);
}

.exd-step-num {
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 8px;
	background: var(--exd-border);
	color: var(--exd-slate);
	font-size: 13px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* доп. услуги */
.exd-svc-lead {
	margin: 0 0 12px;
	font-size: 14px;
	color: var(--exd-muted);
}

.exd-svc-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.exd-svc-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--exd-border);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	width: 100%;
	text-align: left;
	color: inherit;
}

	.exd-svc-row.is-on {
		border-color: var(--exd-blue);
		background: var(--exd-blue-bg2);
	}

.exd-svc-box {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	margin-top: 2px;
	border: 1px solid #c9d2db;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

.exd-svc-row.is-on .exd-svc-box {
	border-color: var(--exd-blue);
	background: var(--exd-blue);
}

.exd-svc-text {
	flex: 1;
	min-width: 0;
}

.exd-svc-name {
	font-weight: 700;
	color: var(--exd-ink);
	font-size: 15px;
}

.exd-svc-desc {
	font-size: 13px;
	color: var(--exd-faint);
	line-height: 1.4;
}

.exd-svc-price {
	text-align: right;
	flex: none;
}

.exd-svc-price-value {
	font-weight: 700;
	color: var(--exd-ink);
	white-space: nowrap;
}

.exd-svc-unit {
	font-size: 12px;
	color: var(--exd-faint);
	white-space: nowrap;
}

.exd-formula {
	margin-top: 14px;
	border: 1px solid var(--exd-border-blue2);
	border-radius: 14px;
	padding: 16px 18px;
	background: var(--exd-blue-bg4);
}

.exd-formula-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 8px;
}

.exd-formula-row {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 7px 0;
}

.exd-formula-sign {
	flex: none;
	width: 16px;
	font-size: 18.4px;
	font-weight: 800;
	color: var(--exd-blue);
	line-height: 1;
}

.exd-formula-label {
	flex: 1;
	font-size: 16px;
	color: var(--exd-ink);
}

.exd-formula-value {
	font-size: 16px;
	font-weight: 700;
	color: var(--exd-ink);
	white-space: nowrap;
}

.exd-formula-sep {
	height: 2px;
	background: #d7e3ee;
	margin: 9px 0 11px;
}

.exd-formula-total .exd-formula-label {
	font-size: 16.8px;
	font-weight: 700;
}

.exd-formula-total .exd-formula-value {
	font-size: 25.6px;
	font-weight: 900;
}

.exd-formula-hint {
	font-size: 14px;
	color: var(--exd-muted);
	margin-top: 9px;
	line-height: 1.5;
}

.exd-formula-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--exd-border-blue2);
}

	.exd-formula-cta .exd-btn-primary {
		flex: 1 1 220px;
		padding: 12px 18px;
	}

	.exd-formula-cta span {
		font-size: 14px;
		color: var(--exd-muted);
		line-height: 1.45;
	}

/* FAQ внутри аккордеона */
.exd-faq {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.exd-faq-tools {
	display: flex;
	justify-content: flex-end;
}

.exd-faq-item {
	border: 1px solid var(--exd-border);
	border-radius: 12px;
	padding: 13px 15px;
	background: #fff;
}

	.exd-faq-item.is-open {
		background: var(--exd-blue-bg4);
	}

.exd-faq-q {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
	text-align: left;
	font-weight: 700;
	color: var(--exd-ink);
	font-size: 15px;
	line-height: 1.4;
}

.exd-faq-sign {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	font-size: 16.8px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--exd-soft);
	color: var(--exd-slate);
}

.exd-faq-item.is-open .exd-faq-sign {
	background: var(--exd-blue-bg);
	color: var(--exd-blue);
}

.exd-faq-a {
	font-size: 15px;
	line-height: 1.55;
	color: var(--exd-muted);
	margin-top: 7px;
	padding-right: 28px;
}

	.exd-faq-a p:last-child {
		margin-bottom: 0;
	}

.exd-faq-foot {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 6px;
	font-size: 14px;
	color: var(--exd-muted);
}

/* ---------- Важно знать ---------- */

.exd-know {
	background: #e9f3ff;
	padding: 20px 20px 20px 28px;
}

.exd-know-list {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exd-know-item {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	line-height: 1.5;
	color: var(--exd-text);
	font-size: 15px;
}

	.exd-know-item svg {
		flex: none;
		margin-top: 2px;
		color: var(--exd-blue);
	}

	.exd-know-item.is-warn svg {
		color: var(--exd-amber);
	}

	.exd-know-item.is-bold {
		font-weight: 700;
		color: var(--exd-ink);
	}

	.exd-know-item p:last-child {
		margin-bottom: 0;
	}

@media (max-width: 767.98px) {
	.exd-know {
		padding: 16px;
	}
}

/* ---------- Отзывы ---------- */

.exd-reviews-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 4px;
}

.exd-reviews-total {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 16.8px;
	color: var(--exd-text);
}

	.exd-reviews-total .exd-score {
		font-size: 17.6px;
		padding: 3px 10px;
		border-radius: 8px;
	}

.exd-review {
	display: flex;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid #f2f4f7;
}

.exd-review-score {
	background: var(--exd-green);
	color: #fff;
	font-weight: 700;
	font-size: 16.8px;
	padding: 2px 0;
	width: 44px;
	text-align: center;
	border-radius: 8px;
	flex: none;
	height: fit-content;
}

	.exd-review-score.is-mid {
		background: #f59e0b;
	}

	.exd-review-score.is-low {
		background: #dc3545;
	}

.exd-review-body {
	flex: 1;
	min-width: 0;
}

.exd-review-meta {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.exd-review-name {
	color: var(--exd-ink);
	font-weight: 700;
}

.exd-review-class {
	font-size: 13px;
	color: var(--exd-slate);
	font-weight: 600;
}

.exd-review-date {
	font-size: 13px;
	color: var(--exd-faint);
}

.exd-review-text {
	line-height: 1.6;
	color: #4a4b50;
	margin-top: 3px;
	white-space: pre-line;
}

.exd-review-toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 4px;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--exd-blue);
}

	.exd-review-toggle:hover {
		color: var(--exd-blue-hover);
	}

.exd-reviews-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding-top: 14px;
}

.exd-reviews-foot-right {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

/* ---------- Карта (когда нет фото / мобильный) ---------- */

.exd-map-title {
	font-size: 20.8px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 6px;
}

.exd-map-museum {
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 10px;
}

.exd-card #map-container2 #map {
	border-radius: 8px;
	overflow: hidden;
}

/* ---------- Онлайн калькулятор (правая колонка) ---------- */

@media (min-width: 1200px) {
	.exd-side {
		position: sticky;
		top: calc(var(--exd-sticky-top) + 8px);
	}
}

.exd-calc {
	padding: 20px;
}

.exd-calc-title {
	font-size: 20.8px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 16px;
}

.exd-label {
	display: block;
	font-size: 14px;
	color: var(--exd-muted);
	margin-bottom: 8px;
}

.exd-calc-block {
	margin-bottom: 16px;
}

.exd-calc-hint {
	font-size: 12.5px;
	color: var(--exd-faint);
	margin-top: 8px;
	line-height: 1.4;
}

.exd-bonus-head {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 8px;
	font-size: 15px;
	color: var(--exd-text);
}

.exd-bonus-help {
	cursor: pointer;
	line-height: 1;
	color: var(--exd-faint);
	background: none;
	border: 0;
	padding: 0;
	display: inline-flex;
}

.exd-bonus-tiles {
	display: flex;
	gap: 8px;
}

.exd-bonus-tile {
	flex: 1;
	min-width: 0;
	padding: 12px;
	border-radius: 12px;
	cursor: pointer;
	border: 1px solid var(--exd-border2);
	background: #fff;
	text-align: left;
	color: var(--exd-ink);
}

	.exd-bonus-tile.is-on-green {
		border-color: var(--exd-green);
		background: var(--exd-green-bg);
	}

	.exd-bonus-tile.is-on-blue {
		border-color: var(--exd-blue);
		background: rgb(231,241,251);
	}

	.exd-bonus-tile.is-disabled {
		cursor: not-allowed;
		opacity: .5;
	}

.exd-bonus-tile-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 10px;
	gap: 6px;
}

	.exd-bonus-tile-top s {
		font-size: 13px;
		color: var(--exd-muted);
	}

.exd-bonus-tile-label {
	display: block;
	font-size: 15px;
	line-height: 1.3;
}

.exd-bonus-check {
	flex: none;
	color: #c4ccd4;
}

	.exd-bonus-check.is-green {
		color: var(--exd-green);
	}

	.exd-bonus-check.is-blue {
		color: var(--exd-blue);
	}

.exd-hr-dashed {
	border: 0;
	border-top: 1px dashed var(--exd-faint);
	opacity: .25;
	margin: 16px 0;
}

.exd-calc-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 12px;
	font-size: 16px;
	color: var(--exd-text);
}

	.exd-calc-row.is-top {
		align-items: flex-start;
		margin-bottom: 14px;
	}

.exd-calc-price-wrap {
	text-align: right;
}

.exd-calc-old {
	color: var(--exd-faint);
	margin-right: 6px;
	font-size: 15px;
}

.exd-calc-price {
	font-weight: 700;
	font-size: 24px;
	color: var(--exd-ink);
	line-height: 1.1;
}

	.exd-calc-price.is-green {
		color: var(--exd-green);
	}

	.exd-calc-price.is-blue {
		color: var(--exd-blue);
	}

.exd-calc-adult {
	display: block;
	font-size: 14px;
	color: var(--exd-muted);
	margin-top: 2px;
}

.exd-calc-strong {
	font-weight: 700;
	font-size: 18.4px;
	color: var(--exd-ink);
	white-space: nowrap;
}

	.exd-calc-strong.is-blue {
		color: var(--exd-blue);
	}

.exd-calc-svc {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

	.exd-calc-svc svg {
		flex: none;
		color: var(--exd-blue);
	}

.exd-calc-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	background: var(--exd-blue-bg2);
	border: 1px solid var(--exd-border-blue);
	border-radius: 10px;
	padding: 10px 12px;
	margin-bottom: 12px;
}

	.exd-calc-total span:first-child {
		font-weight: 700;
		color: var(--exd-ink);
	}

	.exd-calc-total span:last-child {
		font-weight: 900;
		font-size: 22.4px;
		color: var(--exd-ink);
		white-space: nowrap;
	}

.exd-cta {
	width: 100%;
	padding: 11px;
	margin-top: 16px;
	font-size: 16px;
}

.exd-tabs {
	position: relative;
	margin-top: 12px;
}

.exd-tabs-row {
	display: flex;
	gap: 7px;
}

.exd-tab {
	flex: 1;
	min-width: 0;
	background: var(--exd-soft);
	border: 1px solid var(--exd-border);
	border-radius: 8px;
	padding: 10px 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	line-height: 1.2;
}

	.exd-tab:hover,
	.exd-tab.is-on,
	.exd-tab.show {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

	.exd-tab::after {
		display: none;
	}

.exd-tab-dots {
	flex: none;
	width: 42px;
	padding: 10px 0;
}

.exd-tab-icons {
	display: inline-flex;
	align-items: center;
	gap: 2px;
}

.exd-pane {
	margin-top: 9px;
}

.exd-pane-row {
	display: flex;
	gap: 7px;
}

.exd-msg-btn {
	flex: 1;
	min-width: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	border: 1px solid var(--exd-border2);
	background: #fff;
	border-radius: 8px;
	padding: 9px 4px;
	font-size: 13px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
	text-decoration: none;
}

	.exd-msg-btn:hover {
		border-color: var(--exd-border-blue);
		background: var(--exd-blue-bg2);
		color: var(--exd-slate);
	}

	.exd-msg-btn svg {
		flex: none;
	}

.exd-pane-hint {
	font-size: 13px;
	color: var(--exd-faint);
	margin: 10px 0 8px;
	line-height: 1.4;
}

.exd-copy-btn {
	flex: 1;
	min-width: 0;
	background: var(--exd-soft);
	border: 1px solid var(--exd-border);
	border-radius: 8px;
	padding: 9px;
	font-size: 13px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
}

	.exd-copy-btn:hover {
		background: var(--exd-blue-bg);
		border-color: var(--exd-border-blue);
		color: var(--exd-blue);
	}

.exd-c-tg {
	color: var(--exd-tg);
}

.exd-c-wa {
	color: var(--exd-wa);
}

.exd-c-max {
	color: var(--exd-max);
}

.exd-c-slate {
	color: var(--exd-slate);
}

/* ---------- Меню «Действия» (Bootstrap dropdown) ---------- */

.exd-menu {
	width: 306px;
	max-width: calc(100vw - 24px);
	border: 0;
	border-radius: 14px;
	box-shadow: 0 18px 44px rgba(11,10,18,.22);
	padding: 8px;
	z-index: 1060;
}

.exd-menu-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 11px;
	border-radius: 10px;
	font-size: 15px;
	color: var(--exd-ink);
	line-height: 1.35;
	white-space: normal;
	width: 100%;
	background: none;
	border: 0;
	text-align: left;
	cursor: pointer;
}

	.exd-menu-item:hover,
	.exd-menu-item:focus {
		background: #f5f7fa;
		color: var(--exd-ink);
	}

	.exd-menu-item svg {
		flex: none;
		margin-top: 1px;
	}

.exd-menu-sep {
	height: 1px;
	background: var(--exd-border);
	margin: 6px 4px;
}

/* ---------- Админ-панель менеджера ---------- */

.exd-admin {
	padding: 14px 16px;
	background: var(--exd-soft2);
}

.exd-admin-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 10px;
}

/* ---------- Модалка «Заказ экскурсии» ---------- */

.exd-modal .modal-content {
	border: 0;
	border-radius: 18px;
	box-shadow: 0 30px 80px rgba(11,10,18,.42);
}

.exd-modal .modal-body {
	padding: 22px 24px 24px;
}

@media (max-width: 575.98px) {
	.exd-modal .modal-body {
		padding: 18px 16px 20px;
	}
}

.exd-modal-head {
	display: flex;
	align-items: center;
	gap: 12px;
}

.exd-modal-title {
	flex: 1;
	min-width: 0;
	font-size: 24px;
	font-weight: 800;
	color: var(--exd-ink);
	line-height: 1.2;
}

.exd-back-btn {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--exd-soft3);
	border: 0;
	color: var(--exd-slate);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.exd-close-btn {
	flex: none;
	width: 34px;
	height: 34px;
	border: 0;
	background: none;
	color: var(--exd-faint);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

	.exd-close-btn:hover {
		color: var(--exd-ink);
	}

.exd-info-strip {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	background: #f7fbff;
	border: 1px solid #dbeafc;
	border-radius: 12px;
	padding: 10px 12px;
	margin: 14px 0 20px;
	font-size: 13px;
	color: var(--exd-faint);
	line-height: 1.4;
}

	.exd-info-strip svg {
		flex: none;
		margin-top: 1px;
		color: var(--exd-blue);
	}

.exd-field {
	margin-bottom: 20px;
}

.exd-field-label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--exd-slate);
	margin-bottom: 7px;
}

.exd-req {
	color: var(--exd-red);
}

.exd-field-hint {
	font-size: 13px;
	color: var(--exd-faint);
	line-height: 1.4;
	margin-top: 7px;
}

.exd-input {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 14px;
	border: 1px solid var(--exd-border4);
	border-radius: 12px;
	font-size: 16px;
	color: var(--exd-ink);
	background: #fff;
	line-height: 1.4;
}

	.exd-input:focus {
		outline: 0;
		border-color: var(--exd-blue);
		box-shadow: 0 0 0 3px rgba(0,142,241,.12);
	}

	.exd-input.is-invalid {
		border-color: var(--exd-red);
	}

	.exd-input.is-lg {
		font-size: 17.6px;
		padding: 15px 16px;
	}

textarea.exd-input {
	resize: vertical;
	line-height: 1.5;
}

.exd-seg-lg .exd-seg-btn {
	padding: 13px 6px;
	font-size: 16.8px;
	border-color: #cfd8e0;
	color: var(--exd-ink);
	font-weight: 600;
}

	.exd-seg-lg .exd-seg-btn:first-child {
		border-radius: 10px 0 0 10px;
	}

	.exd-seg-lg .exd-seg-btn:last-child {
		border-radius: 0 10px 10px 0;
	}

	.exd-seg-lg .exd-seg-btn.is-on {
		background: var(--exd-slate);
		border-color: var(--exd-slate);
		color: #fff;
		font-weight: 800;
	}

.exd-seg-ch .exd-seg-btn {
	font-size: 14px;
	padding: 11px 4px;
	border-color: #cfd8e0;
	color: var(--exd-ink);
	font-weight: 600;
}

	.exd-seg-ch .exd-seg-btn:first-child {
		border-radius: 10px 0 0 10px;
	}

	.exd-seg-ch .exd-seg-btn:last-child {
		border-radius: 0 10px 10px 0;
	}

	.exd-seg-ch .exd-seg-btn.is-on {
		background: var(--exd-slate);
		border-color: var(--exd-slate);
		color: #fff;
		font-weight: 700;
	}

		.exd-seg-ch .exd-seg-btn.is-on svg {
			color: #fff !important;
		}

@media (max-width: 575.98px) {
	.exd-seg-ch .exd-seg-btn {
		font-size: 13px;
		gap: 4px;
	}
}

.exd-date-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.exd-date-pill {
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid var(--exd-border4);
	background: #fff;
	color: var(--exd-ink);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	line-height: 1.3;
}

	.exd-date-pill:hover {
		border-color: var(--exd-border-blue);
		background: var(--exd-blue-bg2);
	}

	.exd-date-pill.is-on,
	.exd-date-pill.is-on:hover {
		border-color: var(--exd-blue);
		background: var(--exd-blue-bg);
		color: var(--exd-blue);
		font-weight: 700;
	}

	.exd-date-pill.is-dashed {
		border: 1px dashed var(--exd-dash);
		color: var(--exd-slate);
	}

	.exd-date-pill.is-guaranteed {
		border-color: var(--exd-green);
		background: var(--exd-green-bg2);
		color: #146c43;
	}

		.exd-date-pill.is-guaranteed.is-on {
			background: var(--exd-green);
			border-color: var(--exd-green);
			color: #fff;
		}

.exd-other-date {
	margin-top: 10px;
}

	.exd-other-date .form-control {
		border-radius: 12px;
		padding: 12px 14px;
	}

.exd-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	margin: 0;
}

.exd-check-box {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	margin-top: 1px;
	border: 1px solid #cfd8e0;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

	.exd-check-box.is-invalid {
		border-color: var(--exd-red);
	}

.exd-check input:checked ~ .exd-check-box {
	border-color: var(--exd-blue);
	background: var(--exd-blue);
}

.exd-check input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.exd-check-text {
	font-size: 13px;
	color: var(--exd-muted);
	line-height: 1.45;
}

	/* глобальное a { font-size: 17px } из site.css делало ссылки крупнее текста согласия */
	.exd-check-text a {
		color: var(--exd-blue);
		font-size: inherit;
		line-height: inherit;
	}

.exd-submit {
	width: 100%;
	padding: 15px;
	border-radius: 12px;
	font-size: 16.8px;
	font-weight: 700;
	border: 0;
	background: var(--exd-blue);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

	.exd-submit:hover {
		background: var(--exd-blue-hover);
	}

	.exd-submit:disabled {
		background: #dceaf6;
		color: #8fa7bb;
		cursor: not-allowed;
	}

.exd-after {
	font-size: 13px;
	color: var(--exd-faint);
	line-height: 1.4;
	text-align: center;
	margin-top: 10px;
}

/* ---------- Модалка «Оставить отзыв» ---------- */

.exd-rv-head {
	padding: 24px 26px 18px;
	border-bottom: 1px solid var(--exd-border);
}

.exd-rv-title {
	font-size: 24px;
	font-weight: 800;
	color: var(--exd-ink);
	letter-spacing: -0.01em;
}

.exd-rv-sub {
	font-size: 15px;
	color: var(--exd-muted);
	line-height: 1.5;
	margin: 6px 0 0;
}

.exd-rv-body {
	padding: 20px 26px 24px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	max-height: 60vh;
	overflow-y: auto;
}

.exd-rv-label {
	display: block;
	font-size: 16px;
	font-weight: 700;
	color: var(--exd-ink);
	margin-bottom: 9px;
}

	.exd-rv-label .is-opt {
		font-weight: 600;
		color: var(--exd-faint);
	}

.exd-rv-label-hint {
	font-size: 13px;
	color: var(--exd-faint);
	margin: -6px 0 9px;
}

.exd-rv-row {
	display: flex;
	gap: 10px;
}

.exd-rv-select {
	flex: 1;
	min-width: 0;
	padding: 13px 14px;
	border: 1px solid var(--exd-border4);
	border-radius: 12px;
	background: #fff;
	font-size: 16px;
	font-weight: 600;
	color: var(--exd-ink);
	cursor: pointer;
}

	.exd-rv-select.is-year {
		flex: none;
		width: 118px;
	}

.exd-rv-tile {
	flex: 1;
	text-align: center;
	padding: 15px 12px;
	border-radius: 12px;
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	border: 1px solid var(--exd-border4);
	background: #fff;
	color: var(--exd-slate);
}

	.exd-rv-tile.is-on {
		border: 2px solid var(--exd-blue);
		background: var(--exd-blue-bg2);
		color: var(--exd-ink);
		font-weight: 700;
		padding: 14px 11px;
	}

.exd-rv-stepper {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.exd-rv-step-btn {
	width: 48px;
	height: 48px;
	flex: none;
	border: 1px solid var(--exd-border4);
	background: var(--exd-soft2);
	border-radius: 12px;
	font-size: 22px;
	color: var(--exd-ink);
	cursor: pointer;
	line-height: 1;
}

.exd-rv-step-value {
	min-width: 84px;
	text-align: center;
	font-size: 24px;
	font-weight: 800;
	color: var(--exd-ink);
}

.exd-rv-step-hint {
	font-size: 15px;
	color: var(--exd-faint);
}

.exd-rv-classes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.exd-rv-class {
	min-width: 46px;
	height: 46px;
	padding: 0 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	border: 1px solid var(--exd-border4);
	background: #fff;
	color: var(--exd-slate);
}

	.exd-rv-class.is-on {
		border: 2px solid var(--exd-blue);
		background: var(--exd-blue);
		color: #fff;
		font-weight: 800;
	}

.exd-rv-contacts {
	background: var(--exd-soft2);
	border: 1px solid var(--exd-border);
	border-radius: 14px;
	padding: 16px;
}

	.exd-rv-contacts .exd-rv-label {
		margin-bottom: 3px;
	}

.exd-rv-contacts-hint {
	font-size: 13px;
	color: var(--exd-faint);
	line-height: 1.45;
	margin-bottom: 10px;
}

.exd-rv-contacts-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

	.exd-rv-contacts-row .exd-input {
		flex: 1 1 180px;
		min-width: 0;
		width: auto;
	}

.exd-rv-foot {
	display: flex;
	gap: 10px;
	padding: 16px 26px 18px;
	border-top: 1px solid var(--exd-border);
}

.exd-rv-cancel {
	flex: none;
	min-width: 140px;
	padding: 14px 20px;
	border: 1px solid var(--exd-border4);
	background: #fff;
	border-radius: 12px;
	font-size: 16px;
	font-weight: 700;
	color: var(--exd-slate);
	cursor: pointer;
}

.exd-rv-save {
	flex: 1;
	padding: 14px 20px;
	border-radius: 12px;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	border: 1px solid var(--exd-blue);
	background: var(--exd-blue);
	color: #fff;
}

	.exd-rv-save:disabled {
		border-color: #e3e8ee;
		background: var(--exd-soft3);
		color: #a8b0b8;
		cursor: not-allowed;
	}

.exd-rv-done {
	padding: 44px 30px;
	text-align: center;
}

	.exd-rv-done svg {
		color: var(--exd-green);
	}

.exd-rv-done-title {
	font-size: 24px;
	font-weight: 800;
	color: var(--exd-ink);
	margin: 14px 0 8px;
}

.exd-rv-done-text {
	font-size: 16px;
	color: var(--exd-muted);
	line-height: 1.55;
	max-width: 380px;
	margin: 0 auto 24px;
}

@media (max-width: 575.98px) {
	.exd-rv-head {
		padding: 20px 16px 14px;
	}

	.exd-rv-body {
		padding: 16px;
		gap: 18px;
		max-height: none;
	}

	.exd-rv-foot {
		padding: 14px 16px 16px;
	}

	.exd-rv-cancel {
		min-width: 110px;
	}

	.exd-rv-select.is-year {
		width: 100px;
	}
}

/* ---------- Микро-правки Bootstrap внутри страницы ---------- */

.exd .modal-dialog.exd-modal-dialog {
	max-width: 540px;
}

.exd .modal-dialog.exd-modal-dialog-wide {
	max-width: 620px;
}

/* ---------- Правки после первого прогона (03.09.2026) ---------- */

/* основной двухколоночный ряд: g-lg-5 давал ряду margin-top -48px, а колонки с mt-3 компенсировали
   только 16px - ряд наезжал на карточку карты сверху. Вертикальный gutter тут не нужен */
.exd-main-row {
	--bs-gutter-y: 0;
}

/* кнопка «Отправить заявку» + крестик закрытия слева от нее */
.exd-submit-row {
	display: flex;
	gap: 10px;
	align-items: stretch;
}

	.exd-submit-row .exd-submit {
		flex: 1;
		width: auto;
	}

.exd-submit-x {
	flex: none;
	width: 54px;
	border-radius: 12px;
	border: 1px solid var(--exd-border4);
	background: #fff;
	color: var(--exd-slate);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

	.exd-submit-x:hover {
		background: var(--exd-soft3);
		color: var(--exd-ink);
	}

/* подсказка под сегментом «до N / N+» в модалке заказа */
.exd-modal .exd-calc-hint {
	font-size: 13px;
	color: var(--exd-muted);
}

/* модалка «Едете небольшой группой?»: две кнопки в ряд */
.exd-small-foot {
	display: flex;
	gap: 10px;
}

	.exd-small-foot .btn {
		flex: 1;
		margin: 0;
	}

/* ползунок «Сколько человек было в группе» в отзыве */
.exd-rv-range-wrap {
	display: flex;
	align-items: center;
	gap: 14px;
}

.exd-rv-range-value {
	flex: none;
	min-width: 64px;
	text-align: center;
	font-size: 24px;
	font-weight: 800;
	color: var(--exd-ink);
	line-height: 1;
}

	.exd-rv-range-value small {
		display: block;
		font-size: 12px;
		font-weight: 600;
		color: var(--exd-faint);
		margin-top: 3px;
	}

.exd-rv-range {
	flex: 1;
	min-width: 0;
	height: 6px;
	accent-color: var(--exd-blue);
	cursor: pointer;
	margin: 0;
}

.exd-rv-range-scale {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	color: var(--exd-faint);
	margin-top: 6px;
}

/* чекбоксы отзыва (публикация имени, согласие) */
.exd-rv-checks {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

	.exd-rv-checks .exd-check-text {
		font-size: 14px;
	}

/* «Рекомендуем также» на странице экскурсии: кнопка карточки приглушена, чтобы самой яркой
   оставалась «Заказать экскурсию». На каталоге и остальных страницах кнопка остается синей */
.excursion-page-extras .excard-btn {
	background: #fff;
	color: var(--bs-primary, #008ef1);
	border: 1px solid #b9dcf8;
}

	.excursion-page-extras .excard-btn:hover {
		background: #eaf4fe;
		color: #0077cc;
		border-color: #8fc6f3;
	}
