/* Tour detail gallery — see assets/css/tour-detail-gallery.css */

.single-tour-hero {
	padding: 28px 0 20px;
	color: var(--color-gray-800);
	background: var(--color-white);
	border-bottom: 1px solid var(--color-gray-200);
}

.single-tour-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 3vw, 2.4rem);
	font-weight: 800;
	margin: 0 0 10px;
	letter-spacing: -0.01em;
	color: var(--color-heading);
}

.single-tour-hero__price {
	display: none;
	margin: 0 0 10px;
	line-height: 1.25;
}

.single-tour-hero__price-label {
	display: block;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--color-heading-sub);
	margin-bottom: 2px;
}

.single-tour-hero__price-value {
	color: #F33FA6;
	font-size: 1.2rem;
	font-weight: 800;
}

.single-tour-hero__price small {
	margin-left: 4px;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--color-heading-sub);
}

.single-tour-hero__chips {
	display: none;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	gap: 6px;
	flex-wrap: wrap;
}

.single-tour-hero__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border-radius: 999px;
	background: #F4F0FF;
	color: #6C3CFF;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.2;
}

.single-tour-hero__chip::before {
	content: '';
	width: 12px;
	height: 12px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.single-tour-hero__chip--duration::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E");
}

.single-tour-hero__chip--transport::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 00-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5L21 16z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 00-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5L21 16z'/%3E%3C/svg%3E");
}

.single-tour-hero__chip--depart::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5c-1.4 0-2.5-1.1-2.5-2.5S10.6 6.5 12 6.5s2.5 1.1 2.5 2.5S13.4 11.5 12 11.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5c-1.4 0-2.5-1.1-2.5-2.5S10.6 6.5 12 6.5s2.5 1.1 2.5 2.5S13.4 11.5 12 11.5z'/%3E%3C/svg%3E");
}

.single-tour-hero__chip--standard::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4l2.7 6.4 6.9.6-5.2 4.5 1.6 6.7L12 16.9 6 20.6l1.6-6.7L2.4 9.4l6.9-.6L12 2.4z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4l2.7 6.4 6.9.6-5.2 4.5 1.6 6.7L12 16.9 6 20.6l1.6-6.7L2.4 9.4l6.9-.6L12 2.4z'/%3E%3C/svg%3E");
}

.single-tour-hero__chip--gift {
	background: #F8F0FF;
	color: #6C3CFF;
	border: 1px solid rgba(108, 60, 255, 0.18);
}

.single-tour-hero__chip--gift::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 7h-2.2c.1-.3.2-.6.2-1 0-1.7-1.3-3-3-3-1.1 0-2 .5-2.6 1.4C11.9 3.5 11 3 9.9 3c-1.7 0-3 1.3-3 3 0 .4.1.7.2 1H5c-1.1 0-2 .9-2 2v2h19V9c0-1.1-.9-2-2-2zM9.9 5c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zm5 0c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zM3 12v7c0 1.1.9 2 2 2h5v-9H3zm11 0v9h5c1.1 0 2-.9 2-2v-7H14z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 7h-2.2c.1-.3.2-.6.2-1 0-1.7-1.3-3-3-3-1.1 0-2 .5-2.6 1.4C11.9 3.5 11 3 9.9 3c-1.7 0-3 1.3-3 3 0 .4.1.7.2 1H5c-1.1 0-2 .9-2 2v2h19V9c0-1.1-.9-2-2-2zM9.9 5c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zm5 0c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zM3 12v7c0 1.1.9 2 2 2h5v-9H3zm11 0v9h5c1.1 0 2-.9 2-2v-7H14z'/%3E%3C/svg%3E");
}

.single-tour-hero .tour-stats {
	justify-content: flex-start;
}

.single-tour-hero .tour-stats__score {
	color: var(--color-heading);
	font-weight: 700;
}

.single-tour-hero .tour-stats__count,
.single-tour-hero .tour-stats__booked {
	color: var(--color-gray-600);
}

.single-tour-hero .tour-stats__star {
	color: var(--color-gold);
}

.single-tour-hero__lead {
	margin: 14px 0 0;
	max-width: 72ch;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--color-gray-600);
}

.single-tour__grid {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 32px;
	padding: 28px 0 80px;
}

.single-tour__main {
	min-width: 0;
}

.tour-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 24px;
	padding: 6px;
	background: #F7F5FF;
	border: 1px solid #ECECF4;
	border-radius: 14px;
}

.tour-tabs__btn {
	appearance: none;
	border: 0;
	background: transparent;
	color: #4A4D63;
	font: inherit;
	font-size: 0.86rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	padding: 10px 14px;
	border-radius: 10px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.tour-tabs__icon {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	background: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
	opacity: 0.92;
}

.tour-tabs__icon--program {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h10a2 2 0 012 2v14l-7-3-7 3V5a2 2 0 012-2zm0 2v11.2l5-2.1 5 2.1V5H7zm2 2h6v2H9V7zm0 4h6v2H9v-2z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h10a2 2 0 012 2v14l-7-3-7 3V5a2 2 0 012-2zm0 2v11.2l5-2.1 5 2.1V5H7zm2 2h6v2H9V7zm0 4h6v2H9v-2z'/%3E%3C/svg%3E");
}

.tour-tabs__icon--price {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C7.6 2 4 4.7 4 8v9c0 1.1.9 2 2 2h1v1h2v-1h6v1h2v-1h1c1.1 0 2-.9 2-2V8c0-3.3-3.6-6-8-6zm0 2c3.1 0 6 1.8 6 4s-2.9 4-6 4-6-1.8-6-4 2.9-4 6-4zm-1 9.1c.3 0 .7.1 1 .1s.7 0 1-.1c2.3-.3 4.2-1.4 5.3-2.9V17H5v-6.7c1.1 1.5 3 2.6 5.3 2.9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C7.6 2 4 4.7 4 8v9c0 1.1.9 2 2 2h1v1h2v-1h6v1h2v-1h1c1.1 0 2-.9 2-2V8c0-3.3-3.6-6-8-6zm0 2c3.1 0 6 1.8 6 4s-2.9 4-6 4-6-1.8-6-4 2.9-4 6-4zm-1 9.1c.3 0 .7.1 1 .1s.7 0 1-.1c2.3-.3 4.2-1.4 5.3-2.9V17H5v-6.7c1.1 1.5 3 2.6 5.3 2.9z'/%3E%3C/svg%3E");
}

.tour-tabs__icon--terms {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 2h9l5 5v13a2 2 0 01-2 2H6a2 2 0 01-2-2V4a2 2 0 012-2zm8 1.5V8h4.5L14 3.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2zm0-8h4v2H8V7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 2h9l5 5v13a2 2 0 01-2 2H6a2 2 0 01-2-2V4a2 2 0 012-2zm8 1.5V8h4.5L14 3.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2zm0-8h4v2H8V7z'/%3E%3C/svg%3E");
}

.tour-tabs__btn.is-active,
.tour-tabs__btn:hover,
.tour-tabs__btn:focus-visible {
	color: #FFFFFF;
	background: linear-gradient(90deg, #6C3CFF 0%, #F33FA6 100%);
	box-shadow: 0 8px 18px rgba(108, 60, 255, 0.22);
	outline: none;
}

.tour-tabs__label--short {
	display: none;
}

.tour-tab-panel[hidden] {
	display: none;
}

.tour-block {
	margin-bottom: 28px;
}

.tour-block__title {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	font-weight: 800;
	margin: 0 0 14px;
	color: var(--color-heading);
}

.tour-block__subtitle {
	font-size: 1.02rem;
	font-weight: 700;
	margin: 22px 0 10px;
	color: var(--color-primary-deep);
}

.tour-highlights {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.tour-highlights li {
	position: relative;
	padding: 12px 14px 12px 40px;
	background: #F8F7FF;
	border: 1px solid #ECECF4;
	border-radius: 12px;
	line-height: 1.55;
	color: var(--color-gray-700);
}

.tour-highlights li p,
.tour-highlights li > * {
	margin: 2px 0;
}

.tour-highlights li::before {
	content: '';
	position: absolute;
	left: 14px;
	top: 50%;
	width: 14px;
	height: 14px;
	transform: translateY(-50%);
	background: #F33FA6;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.tour-itinerary {
	position: relative;
	display: grid;
	gap: 0;
}

.tour-day {
	position: relative;
	padding-left: 8px;
}

.tour-day + .tour-day {
	margin-top: 8px;
}

.tour-day__toggle {
	appearance: none;
	width: 100%;
	display: grid;
	grid-template-columns: 78px 1fr 18px;
	gap: 12px;
	align-items: start;
	text-align: left;
	border: 0;
	background: transparent;
	padding: 10px 4px;
	cursor: pointer;
	font: inherit;
}

.tour-day__marker {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	position: relative;
}

.tour-day__marker::after {
	content: '';
	position: absolute;
	top: 42px;
	bottom: -24px;
	left: 50%;
	width: 2px;
	background: linear-gradient(180deg, #F33FA6, rgba(243, 63, 166, 0.15));
	transform: translateX(-50%);
}

.tour-day:last-child .tour-day__marker::after {
	display: none;
}

.tour-day__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	padding: 8px 10px;
	border-radius: 999px;
	background: #F33FA6;
	color: #FFFFFF;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}

.tour-day__icon {
	width: 22px;
	height: 22px;
	background: #6C3CFF;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 00-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.tour-day__heading {
	color: #F33FA6;
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.45;
	padding-top: 6px;
}

.tour-day__chevron {
	width: 12px;
	height: 8px;
	margin-top: 12px;
	background: #9B8CC8;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.4 0L6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform 0.2s ease;
}

.tour-day.is-open .tour-day__chevron {
	transform: rotate(180deg);
}

.tour-day__body {
	padding: 0 8px 18px 98px;
}

.tour-day__gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 14px;
}

.tour-day__shot {
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--color-gray-100);
}

.tour-day__shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tour-day__part {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 6px 12px;
	margin: 0 0 14px;
	font-size: 0.94rem;
	line-height: 1.75;
	color: var(--color-gray-700);
}

.tour-day__text,
.tour-day__part-body {
	font-size: 0.94rem;
	line-height: 1.75;
	color: var(--color-gray-700);
}

.tour-day__text {
	margin: 0 0 10px;
}

.tour-day__part-body p {
	margin: 0 0 0.75em;
}

.tour-day__part-body p:last-child {
	margin-bottom: 0;
}

.tour-day__part-body ul,
.tour-day__text ul,
.tour-rich-block ul,
.tour-policy__body ul,
.tour-gift-box__body ul {
	list-style: disc !important;
	margin: 0.15em 0 0.85em;
	padding-left: 1.4em;
}

.tour-day__part-body ol,
.tour-day__text ol,
.tour-rich-block ol,
.tour-policy__body ol,
.tour-gift-box__body ol {
	list-style: decimal !important;
	margin: 0.15em 0 0.85em;
	padding-left: 1.4em;
}

.tour-day__part-body li,
.tour-day__text li,
.tour-rich-block li,
.tour-policy__body li,
.tour-gift-box__body li {
	margin: 0 0 0.4em;
	padding-left: 0.1em;
	line-height: 1.7;
}

.tour-day__part-body li:last-child,
.tour-day__text li:last-child,
.tour-rich-block li:last-child,
.tour-policy__body li:last-child,
.tour-gift-box__body li:last-child {
	margin-bottom: 0;
}

.tour-day__part-body strong,
.tour-day__part-body b,
.tour-day__text strong,
.tour-day__text b,
.tour-rich-block strong,
.tour-rich-block b,
.tour-policy__body strong,
.tour-policy__body b,
.tour-gift-box__body strong,
.tour-gift-box__body b,
.tour-highlights strong,
.tour-highlights b,
.tour-checklist strong,
.tour-checklist b {
	font-weight: 700;
}

.tour-day__part-body .alignleft,
.tour-day__text .alignleft,
.tour-rich-block .alignleft,
.tour-policy__body .alignleft,
.tour-gift-box__body .alignleft,
.tour-day__part-body .has-text-align-left,
.tour-day__text .has-text-align-left,
.tour-rich-block .has-text-align-left,
.tour-policy__body .has-text-align-left,
.tour-gift-box__body .has-text-align-left {
	text-align: left;
}

.tour-day__part-body .aligncenter,
.tour-day__text .aligncenter,
.tour-rich-block .aligncenter,
.tour-policy__body .aligncenter,
.tour-gift-box__body .aligncenter,
.tour-day__part-body .has-text-align-center,
.tour-day__text .has-text-align-center,
.tour-rich-block .has-text-align-center,
.tour-policy__body .has-text-align-center,
.tour-gift-box__body .has-text-align-center {
	text-align: center;
}

.tour-day__part-body .alignright,
.tour-day__text .alignright,
.tour-rich-block .alignright,
.tour-policy__body .alignright,
.tour-gift-box__body .alignright,
.tour-day__part-body .has-text-align-right,
.tour-day__text .has-text-align-right,
.tour-rich-block .has-text-align-right,
.tour-policy__body .has-text-align-right,
.tour-gift-box__body .has-text-align-right {
	text-align: right;
}

.tour-day__part-body .alignjustify,
.tour-day__text .alignjustify,
.tour-rich-block .alignjustify,
.tour-policy__body .alignjustify,
.tour-gift-box__body .alignjustify,
.tour-day__part-body .has-text-align-justify,
.tour-day__text .has-text-align-justify,
.tour-rich-block .has-text-align-justify,
.tour-policy__body .has-text-align-justify,
.tour-gift-box__body .has-text-align-justify {
	text-align: justify;
}

.tour-day__part-label {
	color: #2E7D32;
	font-weight: 800;
}

.tour-gift-box__body {
	font-size: 0.94rem;
	line-height: 1.75;
	color: var(--color-gray-700);
}

.tour-gift-box__body p {
	margin: 0 0 0.75em;
}

.tour-gift-box__body p:last-child {
	margin-bottom: 0;
}

.tour-rich-block,
.tour-policy__body {
	font-size: 0.94rem;
	line-height: 1.75;
	color: var(--color-gray-700);
}

.tour-rich-block p,
.tour-policy__body p {
	margin: 0 0 0.75em;
}

.tour-rich-block p:last-child,
.tour-policy__body p:last-child {
	margin-bottom: 0;
}

.tour-rich-block ul,
.tour-rich-block ol,
.tour-policy__body ul,
.tour-policy__body ol,
.tour-gift-box__body ul,
.tour-gift-box__body ol {
	margin: 0 0 0.75em;
	padding-left: 1.35em;
	list-style-position: outside;
}

.tour-rich-block ul,
.tour-policy__body ul,
.tour-gift-box__body ul {
	list-style-type: disc !important;
}

.tour-rich-block ol,
.tour-policy__body ol,
.tour-gift-box__body ol {
	list-style-type: decimal !important;
}

.tour-price-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 16px;
}

.tour-price-table th,
.tour-price-table td {
	padding: 12px 14px;
	border: 1px solid #ECECF4;
	text-align: left;
}

.tour-price-table th {
	width: 40%;
	background: #F8F7FF;
	font-weight: 700;
	color: var(--color-heading);
}

.tour-price-table td {
	color: #F33FA6;
	font-weight: 700;
}

.tour-schedule-table-wrap {
	overflow-x: auto;
	margin-bottom: 18px;
	border: 1px solid #ECECF4;
	border-radius: 14px;
}

.tour-schedule-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 560px;
}

.tour-schedule-table th,
.tour-schedule-table td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid #ECECF4;
	vertical-align: middle;
}

.tour-schedule-table th {
	background: #F8F7FF;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-heading);
	white-space: nowrap;
}

.tour-schedule-table tbody tr:last-child td {
	border-bottom: 0;
}

.tour-schedule-table__price {
	color: #F33FA6;
	font-weight: 800;
	white-space: nowrap;
}

.tour-seat-status {
	display: inline-flex;
	align-items: center;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.tour-seat-status--available {
	background: #E8F8EF;
	color: #1B7A45;
}

.tour-seat-status--limited {
	background: #FFF4E5;
	color: #B86E00;
}

.tour-seat-status--full {
	background: #FDECEC;
	color: #C0392B;
}

.tour-seat-status--contact {
	background: #F0ECFF;
	color: #6C3CFF;
}

.tour-gift-box {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 8px 0 18px;
	padding: 14px 16px;
	border-radius: 14px;
	background: linear-gradient(135deg, rgba(108, 60, 255, 0.08), rgba(243, 63, 166, 0.08));
	border: 1px solid #E8E0FF;
}

.tour-gift-box__icon {
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	margin-top: 2px;
	background: #6C3CFF;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 7h-2.2A3 3 0 0015 4a3 3 0 00-2.8 2H12a3 3 0 00-2.8-2 3 3 0 00-2.8 3H4a1 1 0 00-1 1v3a1 1 0 001 1v8a1 1 0 001 1h14a1 1 0 001-1v-8a1 1 0 001-1V8a1 1 0 00-1-1zM9.2 6c.4 0 .8.4.8 1H7c0-.6.4-1 .8-1h1.4zM14 7c0-.6.4-1 .8-1H16c.4 0 .8.4.8 1H14zm5 4H5V9h14v2zm-1 9H6v-7h4v2h4v-2h4v7z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 7h-2.2A3 3 0 0015 4a3 3 0 00-2.8 2H12a3 3 0 00-2.8-2 3 3 0 00-2.8 3H4a1 1 0 00-1 1v3a1 1 0 001 1v8a1 1 0 001 1h14a1 1 0 001-1v-8a1 1 0 001-1V8a1 1 0 00-1-1zM9.2 6c.4 0 .8.4.8 1H7c0-.6.4-1 .8-1h1.4zM14 7c0-.6.4-1 .8-1H16c.4 0 .8.4.8 1H14zm5 4H5V9h14v2zm-1 9H6v-7h4v2h4v-2h4v7z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.tour-gift-box .tour-block__subtitle {
	margin-top: 0;
}

.tour-gift-box p {
	margin: 0;
	color: var(--color-gray-700);
	line-height: 1.6;
}

.tour-block__empty {
	margin: 0 0 16px;
	color: var(--color-gray-600);
}

.tour-policy__item {
	margin-bottom: 22px;
}

.tour-policy__item:last-child {
	margin-bottom: 0;
}

.tour-policy__item p {
	margin: 0 0 10px;
	line-height: 1.7;
	color: var(--color-gray-600);
}

.tour-checklist {
	margin: 0 0 12px;
	padding-left: 1.35em;
	line-height: 1.7;
	color: var(--color-gray-700);
	list-style: disc !important;
	list-style-position: outside;
}

.tour-checklist li {
	margin-bottom: 8px;
	padding-left: 0.15em;
	display: list-item;
}

.tour-checklist li::marker {
	color: #F33FA6;
	font-size: 1.05em;
}

.tour-checklist--yes li::marker {
	color: #2E7D32;
}

.tour-checklist--no li::marker {
	color: #C62828;
}

.tour-checklist ul {
	list-style: circle !important;
	margin: 0.35em 0 0.5em;
	padding-left: 1.2em;
}

.tour-checklist li > p {
	margin: 0 0 0.35em;
}

.tour-checklist li > p:last-child {
	margin-bottom: 0;
}

.tour-schedule {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.tour-schedule li {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 14px;
	background: #F8F7FF;
	border-radius: 12px;
	border: 1px solid #ECECF4;
}

.tour-schedule__label {
	color: var(--color-gray-500);
}

.tour-month-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}

.tour-month-chip {
	display: inline-flex;
	padding: 8px 12px;
	border-radius: 999px;
	background: #FFFFFF;
	border: 1px solid #E0D8FF;
	color: #6C3CFF;
	font-size: 0.84rem;
	font-weight: 700;
}

.tour-policy p {
	margin: 0 0 14px;
	line-height: 1.7;
	color: var(--color-gray-600);
}

.single-tour__sidebar {
	position: sticky;
	top: 96px;
	align-self: start;
}

.booking-card {
	background: var(--color-white);
	border: 1px solid var(--color-gray-200);
	border-radius: var(--radius-lg);
	padding: 22px;
	box-shadow: var(--shadow-card);
}

.booking-card--rich {
	padding: 20px;
}

.booking-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
	margin: 0 0 18px;
	line-height: 1.2;
}

.booking-card__price-from {
	width: 100%;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-gray-500);
}

.booking-card__price-value {
	color: #F33FA6;
	font-size: 1.55rem;
	font-weight: 800;
}

.booking-card__price small {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--color-gray-500);
}

.booking-card__facts {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.booking-card__facts li {
	display: flex;
	gap: 10px;
	align-items: center;
	min-width: 0;
	padding: 8px 0;
	border-bottom: 1px solid var(--color-border);
}

.booking-card__facts li:first-child {
	padding-top: 0;
}

.booking-card__facts li:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.booking-card__facts li > span:last-child {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 6px;
	min-width: 0;
	font-size: 0.88rem;
	line-height: 1.4;
}

.booking-card__facts small {
	display: inline;
	font-size: inherit;
	font-weight: 500;
	color: #8B849E;
}

.booking-card__facts small::after {
	content: ':';
}

.booking-card__facts strong {
	display: inline;
	font-size: inherit;
	font-weight: 600;
	color: #3F3A55;
	line-height: inherit;
	word-break: break-word;
}

.booking-card__facts-item--gift strong {
	color: #6C3CFF;
}

.booking-card__facts-item--gift small {
	color: #6C3CFF;
}

.booking-card__fact-icon {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: 8px;
	background-color: #6C3CFF;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 16px 16px;
	mask-size: 16px 16px;
}

.booking-card__fact-icon--pin {
	background-color: #F33FA6;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5c-1.4 0-2.5-1.1-2.5-2.5S10.6 6.5 12 6.5s2.5 1.1 2.5 2.5S13.4 11.5 12 11.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5c-1.4 0-2.5-1.1-2.5-2.5S10.6 6.5 12 6.5s2.5 1.1 2.5 2.5S13.4 11.5 12 11.5z'/%3E%3C/svg%3E");
}

.booking-card__fact-icon--calendar {
	background-color: #6C3CFF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2zm13 8H6v10h14V10z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2zm13 8H6v10h14V10z'/%3E%3C/svg%3E");
}

.booking-card__fact-icon--clock {
	background-color: #6C3CFF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 11H7v-2h4V6h2v7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 11H7v-2h4V6h2v7z'/%3E%3C/svg%3E");
}

.booking-card__fact-icon--plane {
	background-color: #6C3CFF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 00-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 00-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z'/%3E%3C/svg%3E");
}

.booking-card__fact-icon--star {
	background-color: #FF9F1C;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.3l6.2 3.7-1.6-7.1L21 9.2l-7.2-.6L12 2 10.2 8.6 3 9.2l4.4 4.7-1.6 7.1z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.3l6.2 3.7-1.6-7.1L21 9.2l-7.2-.6L12 2 10.2 8.6 3 9.2l4.4 4.7-1.6 7.1z'/%3E%3C/svg%3E");
}

.booking-card__fact-icon--gift {
	background-color: #6C3CFF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 7h-2.2c.1-.3.2-.6.2-1 0-1.7-1.3-3-3-3-1.1 0-2 .5-2.6 1.4C11.9 3.5 11 3 9.9 3c-1.7 0-3 1.3-3 3 0 .4.1.7.2 1H5c-1.1 0-2 .9-2 2v2h19V9c0-1.1-.9-2-2-2zM9.9 5c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zm5 0c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zM3 12v7c0 1.1.9 2 2 2h5v-9H3zm11 0v9h5c1.1 0 2-.9 2-2v-7H14z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 7h-2.2c.1-.3.2-.6.2-1 0-1.7-1.3-3-3-3-1.1 0-2 .5-2.6 1.4C11.9 3.5 11 3 9.9 3c-1.7 0-3 1.3-3 3 0 .4.1.7.2 1H5c-1.1 0-2 .9-2 2v2h19V9c0-1.1-.9-2-2-2zM9.9 5c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zm5 0c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1 .4-1 1-1zM3 12v7c0 1.1.9 2 2 2h5v-9H3zm11 0v9h5c1.1 0 2-.9 2-2v-7H14z'/%3E%3C/svg%3E");
}

.booking-card__cta {
	min-height: 50px;
	margin-bottom: 16px;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.booking-card__cta-icon {
	display: inline-block;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.booking-card__cta-icon--book {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2zm13 8H6v10h14V10zm-8 2h2v2h-2v-2zm0 4h2v2h-2v-2zm-4-4h2v2H8v-2zm0 4h2v2H8v-2z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h2v2h6V2h2v2h3v18H4V4h3V2zm13 8H6v10h14V10zm-8 2h2v2h-2v-2zm0 4h2v2h-2v-2zm-4-4h2v2H8v-2zm0 4h2v2H8v-2z'/%3E%3C/svg%3E");
}

.booking-card__cta-icon--send {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.01 21L23 12 2.01 3 2 10l15 2-15 2z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.01 21L23 12 2.01 3 2 10l15 2-15 2z'/%3E%3C/svg%3E");
}

.booking-card__divider {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	color: var(--color-gray-500);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.booking-card__divider::before,
.booking-card__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #ECECF4;
}

.booking-card__contacts {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 10px;
	margin-bottom: 18px;
}

.booking-card__contacts:not(:has(.booking-card__contact--zalo)) {
	grid-template-columns: 1fr;
}

.booking-card__contact {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 58px;
	padding: 8px 12px;
	border-radius: 12px;
	border: 1.5px solid #F3C6DE;
	background: #fff;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.booking-card__contact:hover,
.booking-card__contact:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(44, 34, 88, 0.08);
}

.booking-card__contact--phone {
	border-color: #F3C6DE;
}

.booking-card__contact--phone:hover,
.booking-card__contact--phone:focus-visible {
	border-color: #F33FA6;
}

.booking-card__contact--zalo {
	border-color: #B7D4FF;
}

.booking-card__contact--zalo:hover,
.booking-card__contact--zalo:focus-visible {
	border-color: #0068FF;
}

.booking-card__contact-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	border-radius: 8px;
	background: currentColor;
	-webkit-mask: center / 14px 14px no-repeat;
	mask: center / 14px 14px no-repeat;
}

.booking-card__contact-icon--phone {
	color: #F33FA6;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.2 1.2.4 2.5.6 3.8.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1l-2.2 2.9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.2 1.2.4 2.5.6 3.8.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.6.6 3.8.1.4 0 .8-.3 1.1l-2.2 2.9z'/%3E%3C/svg%3E");
}

.booking-card__contact-icon--zalo {
	color: #0068FF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.5 3 2 6.9 2 11.7c0 2.8 1.5 5.3 3.9 6.9L5 21l3.3-1.2c1.1.3 2.4.5 3.7.5 5.5 0 10-3.9 10-8.6S17.5 3 12 3z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.5 3 2 6.9 2 11.7c0 2.8 1.5 5.3 3.9 6.9L5 21l3.3-1.2c1.1.3 2.4.5 3.7.5 5.5 0 10-3.9 10-8.6S17.5 3 12 3z'/%3E%3C/svg%3E");
}

.booking-card__contact-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
	min-width: 0;
}

.booking-card__contact-body strong {
	font-size: 0.84rem;
	font-weight: 800;
	color: var(--color-heading);
	line-height: 1.25;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.booking-card__contact--phone .booking-card__contact-body strong {
	color: #F33FA6;
}

.booking-card__contact--zalo .booking-card__contact-body strong {
	color: #0068FF;
}

.booking-card__contact-body small {
	font-size: 0.7rem;
	color: var(--color-gray-500);
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.booking-card__form {
	padding-top: 4px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 12px;
}

.booking-card__form-title {
	grid-column: 1 / -1;
	margin: 0 0 14px;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-heading);
}

.booking-card__field {
	margin-bottom: 12px;
	display: block;
	grid-column: 1 / -1;
}

.booking-card__field--half {
	grid-column: span 1;
}

.booking-card__field span {
	display: block;
	font-size: 0.88rem;
	font-weight: 600;
	margin-bottom: 4px;
}

.booking-card__field input,
.booking-card__field select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--color-gray-200);
	border-radius: var(--radius-sm);
	font: inherit;
	background: #fff;
}

.booking-card__submit {
	grid-column: 1 / -1;
	min-height: 50px;
	margin-top: 4px;
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.booking-card__trust {
	list-style: none;
	margin: 18px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid #ECECF4;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.booking-card__trust li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-gray-500);
}

.booking-card__trust-icon {
	width: 22px;
	height: 22px;
	background: #6C3CFF;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.booking-card__trust-icon--headset {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a9 9 0 00-9 9v5a3 3 0 003 3h1v-7H5v-1a7 7 0 0114 0v1h-2v7h1a3 3 0 003-3v-5a9 9 0 00-9-9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a9 9 0 00-9 9v5a3 3 0 003 3h1v-7H5v-1a7 7 0 0114 0v1h-2v7h1a3 3 0 003-3v-5a9 9 0 00-9-9z'/%3E%3C/svg%3E");
}

.booking-card__trust-icon--cost {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-1.1c-1.7-.4-3-1.6-3-3.4h2c0 .8.7 1.5 2 1.5s2-.5 2-1.2c0-.8-.5-1.1-2.2-1.5-2-.5-3.8-1.2-3.8-3.4 0-1.7 1.3-2.9 3-3.3V5h2v1.1c1.6.4 2.8 1.5 2.9 3.3h-2c0-.8-.6-1.4-1.9-1.4s-1.9.5-1.9 1.2c0 .7.5 1 2.3 1.5 2.1.6 3.7 1.3 3.7 3.4 0 1.8-1.3 3-3.1 3.4V17z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-1.1c-1.7-.4-3-1.6-3-3.4h2c0 .8.7 1.5 2 1.5s2-.5 2-1.2c0-.8-.5-1.1-2.2-1.5-2-.5-3.8-1.2-3.8-3.4 0-1.7 1.3-2.9 3-3.3V5h2v1.1c1.6.4 2.8 1.5 2.9 3.3h-2c0-.8-.6-1.4-1.9-1.4s-1.9.5-1.9 1.2c0 .7.5 1 2.3 1.5 2.1.6 3.7 1.3 3.7 3.4 0 1.8-1.3 3-3.1 3.4V17z'/%3E%3C/svg%3E");
}

.booking-card__trust-icon--fast {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 11H7v-2h4V6h2v7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 11H7v-2h4V6h2v7z'/%3E%3C/svg%3E");
}

.booking-card__share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #ECECF4;
}

.booking-card__share-label {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--color-gray-500);
}

.booking-card__share-links {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.booking-card__share-link {
	appearance: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid #E8E3F8;
	background: #F7F5FD;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.booking-card__share-link:hover,
.booking-card__share-link:focus-visible {
	transform: translateY(-1px);
	border-color: #C9B8F5;
	background: #F0EBFF;
}

.booking-card__share-link span {
	display: block;
	width: 16px;
	height: 16px;
	background: #6C3CFF;
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.booking-card__share-link--facebook span {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 9h3V6h-3c-2.2 0-4 1.8-4 4v2H7v3h3v7h3v-7h3l1-3h-4v-2c0-.6.4-1 1-1z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 9h3V6h-3c-2.2 0-4 1.8-4 4v2H7v3h3v7h3v-7h3l1-3h-4v-2c0-.6.4-1 1-1z'/%3E%3C/svg%3E");
}

.booking-card__share-link--zalo span {
	background: #0068FF;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.5 3 2 6.9 2 11.7c0 2.8 1.5 5.3 3.9 6.9L5 21l3.3-1.2c1.1.3 2.4.5 3.7.5 5.5 0 10-3.9 10-8.6S17.5 3 12 3z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.5 3 2 6.9 2 11.7c0 2.8 1.5 5.3 3.9 6.9L5 21l3.3-1.2c1.1.3 2.4.5 3.7.5 5.5 0 10-3.9 10-8.6S17.5 3 12 3z'/%3E%3C/svg%3E");
}

.booking-card__share-link--telegram span {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.7 14.7l-.3 4.2c.5 0 .7-.2 1-.4l2.3-2.2 4.8 3.5c.9.5 1.5.2 1.7-.8l3.1-14.6h.0c.3-1.2-.4-1.7-1.2-1.4L2.6 9.5c-1.1.4-1.1 1.1-.2 1.4l4.9 1.5 11.4-7.2c.5-.3 1-.1.6.2L9.7 14.7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.7 14.7l-.3 4.2c.5 0 .7-.2 1-.4l2.3-2.2 4.8 3.5c.9.5 1.5.2 1.7-.8l3.1-14.6h.0c.3-1.2-.4-1.7-1.2-1.4L2.6 9.5c-1.1.4-1.1 1.1-.2 1.4l4.9 1.5 11.4-7.2c.5-.3 1-.1.6.2L9.7 14.7z'/%3E%3C/svg%3E");
}

.booking-card__share-link--copy span {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.9 12a5 5 0 017.1-7.1l1.4 1.4-1.4 1.4-1.4-1.4a3 3 0 10-4.2 4.2l1.4 1.4-1.4 1.4L3.9 12zm4.2 1.4l1.4-1.4 5.7 5.7-1.4 1.4-5.7-5.7zm7.5-9.5l1.4-1.4A5 5 0 0120.1 12l-1.4 1.4-1.4-1.4 1.4-1.4a3 3 0 10-4.2-4.2l-1.4 1.4-1.4-1.4 1.4-1.4z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.9 12a5 5 0 017.1-7.1l1.4 1.4-1.4 1.4-1.4-1.4a3 3 0 10-4.2 4.2l1.4 1.4-1.4 1.4L3.9 12zm4.2 1.4l1.4-1.4 5.7 5.7-1.4 1.4-5.7-5.7zm7.5-9.5l1.4-1.4A5 5 0 0120.1 12l-1.4 1.4-1.4-1.4 1.4-1.4a3 3 0 10-4.2-4.2l-1.4 1.4-1.4-1.4 1.4-1.4z'/%3E%3C/svg%3E");
}

.booking-card--mobile-lift {
	display: none;
}

.tour-mobile-cta {
	display: none;
}

@media (max-width: 767px) {
	.booking-card--mobile-lift {
		display: block;
		margin: 0 0 8px;
		padding: 8px 10px;
		border-radius: 12px;
		box-shadow: none;
	}

	.booking-card--mobile-lift .booking-card__summary--mobile {
		padding: 0;
	}

	.booking-card--mobile-lift .booking-card__cta,
	.booking-card--mobile-lift .booking-card__divider {
		display: none;
	}

	.booking-card--mobile-lift .booking-card__contacts {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 8px;
		margin-bottom: 0;
	}

	.booking-card--mobile-lift .booking-card__contact {
		min-height: 46px;
		padding: 7px 10px;
		gap: 8px;
		border-radius: 10px;
	}

	.booking-card--mobile-lift .booking-card__contact-icon {
		width: 26px;
		height: 26px;
		border-radius: 8px;
		-webkit-mask-size: 15px 15px;
		mask-size: 15px 15px;
	}

	.booking-card--mobile-lift .booking-card__contact-body strong {
		font-size: 0.88rem;
		line-height: 1.15;
	}

	.booking-card--mobile-lift .booking-card__contact-body small {
		font-size: 0.7rem;
		margin-top: 1px;
	}

	.booking-card__summary--sidebar {
		display: none;
	}

	.tour-highlights {
		gap: 4px;
	}

	.tour-highlights li {
		padding: 5px 10px 5px 28px;
		border-radius: 8px;
		font-size: 0.84rem;
		line-height: 1.35;
	}

	.tour-highlights li::before {
		left: 8px;
		top: 50%;
		width: 12px;
		height: 12px;
		transform: translateY(-50%);
	}

	.single-tour-hero {
		padding: 12px 0 10px;
	}

	.single-tour-hero__title {
		margin: 0 0 8px;
		font-size: 1.05rem;
		line-height: 1.3;
		letter-spacing: 0;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.single-tour-hero__price--mobile {
		display: block;
	}

	.single-tour-hero__chips {
		display: flex;
	}

	.single-tour-hero .tour-stats {
		gap: 6px 10px;
		margin-bottom: 0;
		font-size: 0.78rem;
	}

	.single-tour-hero__lead {
		display: none;
	}

	.single-tour__grid {
		grid-template-columns: 1fr;
		padding: 12px 0 88px;
		gap: 16px;
	}

	.single-tour__sidebar {
		position: static;
		width: 100%;
		max-width: 100%;
	}

	.tour-tabs {
		display: flex;
		gap: 2px;
		width: calc(100% + var(--layout-gutter));
		max-width: none;
		margin: 0 calc(var(--layout-gutter) / -2) 14px;
		padding: 3px 4px;
		flex-wrap: nowrap;
		border-radius: 0;
		border-left: 0;
		border-right: 0;
		box-sizing: border-box;
		position: sticky;
		top: var(--bt-sticky-offset, 56px);
		z-index: 50;
		background: #F7F5FF;
		box-shadow: 0 4px 14px rgba(35, 37, 58, 0.08);
	}

	.tour-tabs__btn {
		flex: 1 1 0;
		min-width: 0;
		font-size: 0.78rem;
		padding: 9px 4px;
		border-radius: 8px;
		gap: 0;
		letter-spacing: 0;
		white-space: nowrap;
		line-height: 1.2;
		text-align: center;
	}

	.tour-tabs__btn--price {
		white-space: normal;
	}

	.tour-tabs__btn--price .tour-tabs__label--full {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		line-height: 1.25;
	}

	.tour-tabs__break {
		display: block;
	}

	.tour-tabs__icon {
		display: none;
	}

	/* Keep full labels on mobile — short labels unused here */
	.tour-tabs__label--full {
		display: inline;
	}

	.tour-tabs__label--short {
		display: none;
	}

	.tour-block {
		margin-bottom: 20px;
	}

	.tour-block__title {
		font-size: 1.1rem;
		margin-bottom: 12px;
	}

	.tour-day + .tour-day {
		margin-top: 4px;
		padding-top: 4px;
		border-top: 1px solid #F0EEF6;
	}

	.tour-day__toggle {
		grid-template-columns: auto minmax(0, 1fr) 16px;
		gap: 10px;
		align-items: center;
		padding: 12px 4px;
		background: #FFFFFF;
	}

	.tour-day__toggle.is-fixed {
		position: fixed;
		left: 0;
		right: 0;
		top: var(--bt-sticky-offset, 56px);
		z-index: 45;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 12px 16px;
		box-shadow: 0 6px 16px rgba(44, 34, 88, 0.1);
		border-bottom: 1px solid #F0EEF6;
	}

	.tour-day__toggle-spacer {
		display: none;
	}

	.tour-day__toggle-spacer.is-active {
		display: block;
	}

	.tour-day__marker {
		gap: 0;
		min-width: 56px;
	}

	.tour-day__marker::after {
		display: none;
	}

	.tour-day__badge {
		min-width: 56px;
		padding: 7px 8px;
		font-size: 0.72rem;
		line-height: 1.15;
	}

	.tour-day__icon {
		display: none;
	}

	.tour-day__heading {
		padding-top: 0;
		font-size: 0.88rem;
		line-height: 1.4;
	}

	.tour-day__chevron {
		margin-top: 0;
		align-self: center;
	}

	.tour-day__body {
		padding: 0 0 14px;
		margin: 0;
	}

	.tour-day__gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
		margin-bottom: 12px;
	}

	.tour-day__shot {
		aspect-ratio: 4 / 3;
		border-radius: 8px;
	}

	.tour-day__part {
		grid-template-columns: 1fr;
		gap: 4px;
		margin: 0 0 16px;
		font-size: 0.9rem;
		line-height: 1.7;
	}

	.tour-day__part-label {
		display: block;
		font-size: 0.92rem;
	}

	.tour-day__part-body,
	.tour-day__text {
		font-size: 0.9rem;
		line-height: 1.7;
	}

	.tour-day__part-body ul,
	.tour-day__text ul,
	.tour-day__part-body ol,
	.tour-day__text ol {
		padding-left: 1.2em;
		margin-top: 0.35em;
	}

	/* Sticky bottom CTAs */
	.tour-mobile-cta {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
		background: rgba(255, 255, 255, 0.96);
		border-top: 1px solid var(--color-gray-200);
		box-shadow: 0 -8px 24px rgba(35, 37, 58, 0.1);
		backdrop-filter: blur(10px);
	}

	.tour-mobile-cta__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		min-height: 46px;
		padding: 0 10px;
		border: 0;
		border-radius: 12px;
		font: inherit;
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		text-decoration: none;
		cursor: pointer;
		color: #fff;
	}

	.tour-mobile-cta__btn--book {
		background: linear-gradient(135deg, #F33FA6 0%, #FF5E7A 100%);
	}

	.tour-mobile-cta__btn--consult {
		background: linear-gradient(135deg, #6C3CFF 0%, #8B5CF6 100%);
	}

	.tour-mobile-cta__icon {
		width: 16px;
		height: 16px;
		flex-shrink: 0;
		background: #fff;
		-webkit-mask: center / contain no-repeat;
		mask: center / contain no-repeat;
	}

	.tour-mobile-cta__icon--book {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10z'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10z'/%3E%3C/svg%3E");
	}

	.tour-mobile-cta__icon--consult {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.2L4 17.2V4h16v12z'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.2L4 17.2V4h16v12z'/%3E%3C/svg%3E");
	}

	body.single-bt_tour .bt-contact-float {
		bottom: 78px;
	}

	body.single-bt_tour .section--related-tours {
		padding-bottom: 96px;
	}
}

/* Tour consult modal — compact centered card */
.tour-consult-modal {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	box-sizing: border-box;
}

.tour-consult-modal[hidden] {
	display: none !important;
}

.tour-consult-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(24, 18, 48, 0.45);
	border: 0;
	padding: 0;
	cursor: pointer;
}

.tour-consult-modal__panel {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 340px;
	max-height: min(78vh, 560px);
	overflow: auto;
	margin: 0;
	padding: 16px 14px 14px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(35, 37, 58, 0.22);
	-webkit-overflow-scrolling: touch;
}

.tour-consult-modal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 999px;
	background: #f3f0fa;
	color: #4b3f72;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.tour-consult-modal__title {
	margin: 0 28px 4px 0;
	font-size: 1rem;
	font-weight: 800;
	color: var(--color-heading, #2b2440);
}

.tour-consult-modal__desc {
	margin: 0 0 12px;
	font-size: 0.78rem;
	line-height: 1.4;
	color: var(--color-heading-sub, #6f6888);
}

.tour-consult-modal__form {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.tour-consult-modal__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

.tour-consult-modal__field span {
	font-size: 0.72rem;
	font-weight: 700;
	color: #4b3f72;
}

.tour-consult-modal__field input,
.tour-consult-modal__field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 9px 10px;
	border: 1px solid #e4dff2;
	border-radius: 8px;
	font: inherit;
	/* >= 16px prevents iOS Safari auto-zoom on focus */
	font-size: 16px;
	line-height: 1.3;
	color: #2b2440;
	background: #fff;
}

.tour-consult-modal__field input[readonly] {
	background: #f7f4ff;
	color: #5b3fd4;
	font-weight: 700;
	font-size: 13px;
	border-color: #ddd4f8;
}

.tour-consult-modal__field input[name="tour_interest"] {
	font-weight: 600;
}

.tour-consult-modal__field textarea {
	resize: vertical;
	min-height: 56px;
}

.tour-consult-modal__field input:focus,
.tour-consult-modal__field textarea:focus {
	outline: 2px solid rgba(108, 60, 255, 0.28);
	outline-offset: 0;
	border-color: #6c3cff;
}

.tour-consult-modal__form .btn {
	min-height: 42px;
	margin-top: 2px;
	font-size: 0.88rem;
}

.tour-consult-modal__form .bt-form-message {
	margin: 0;
	font-size: 0.8rem;
}

html.is-tour-consult-open,
html.is-tour-consult-open body {
	overflow: hidden;
}

@media (min-width: 768px) {
	.tour-consult-modal {
		padding: 24px;
	}

	.tour-consult-modal__panel {
		max-width: 380px;
		padding: 18px 16px 16px;
	}
}

.section--related-tours {
	padding: 24px 0 72px;
	background: #FAFAFC;
}

.section--related-tours .section-heading--solo {
	text-align: center;
	margin-bottom: 24px;
}

.tour-grid--related {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tour-stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-bottom: 8px;
}

.tour-stats--compact {
	margin-bottom: 4px;
}

.tour-stats__rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.tour-stats__stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	line-height: 1;
}

.tour-stats__star.is-half {
	opacity: 1;
}

.tour-stats__score {
	font-size: 0.88rem;
	color: var(--color-primary);
}

.tour-stats__count {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	color: #9B8CC8;
}

.tour-stats__booked {
	font-size: 0.78rem;
	color: #6C3CFF;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-weight: 600;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.tour-stats__booked-icon {
	font-size: 0.85rem;
	line-height: 1;
}

.tour-reviews {
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--color-gray-200);
}

.tour-reviews__title {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	font-weight: 800;
	margin: 0 0 20px;
	color: var(--color-heading);
}

.tour-reviews__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 16px;
}

.tour-review {
	background: var(--color-warm);
	border: 1px solid var(--color-gray-200);
	border-radius: var(--radius-md);
	padding: 16px 18px;
}

.tour-review__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 6px;
}

.tour-review__name {
	font-size: 0.92rem;
	color: var(--color-heading);
	font-weight: 700;
}

.tour-review__date {
	font-size: 0.78rem;
	color: var(--color-gray-400);
}

.tour-review__stars {
	color: var(--color-gold);
	font-size: 0.85rem;
	letter-spacing: 1px;
	margin-bottom: 8px;
}

.tour-review__text {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--color-gray-600);
}

@media (max-width: 991px) {
	.single-tour__grid {
		grid-template-columns: 1fr;
	}

	.single-tour__sidebar {
		position: static;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
	.tour-day__toggle {
		grid-template-columns: 64px 1fr 18px;
	}

	.tour-day__body {
		padding-left: 76px;
	}

	.tour-day__gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}

	.tour-grid--related {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575px) {
	.tour-tabs__btn {
		font-size: 0.48rem;
		padding: 7px 1px;
	}

	.tour-schedule-table-wrap {
		-webkit-overflow-scrolling: touch;
	}

	.tour-schedule-table {
		min-width: 520px;
	}

	.tour-schedule-table th,
	.tour-schedule-table td {
		padding: 10px 12px;
		font-size: 0.82rem;
	}

	.tour-schedule-table th {
		font-size: 0.72rem;
	}

	.tour-grid--related {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}
