/* Private Custom Travel — route-specific parity with the live TCS landing page. */

.custom-travel-parity {
	--ct-rule: rgb(115 110 109 / 45%);
	--ct-card-gap: 30px;
}

.custom-travel-parity .section__description p { margin-bottom: 0; }

/* Hero */
.ct-custom-hero { padding-bottom: 0; }
.ct-custom-hero .hero__container::after { background: rgb(23 25 26 / 25%); }
.ct-custom-hero .hero__content {
	margin-bottom: auto;
	margin-top: auto;
}
.ct-custom-hero .hero__title {
	color: var(--color-soft-white);
	letter-spacing: normal;
	line-height: 1.2;
	margin-top: 0;
	max-width: none;
}
.ct-custom-hero .hero__custom-cta {
	margin-top: 40px;
	padding-top: 12px;
}
.ct-custom-hero .hero__custom-cta .btn {
	border: 1px solid transparent;
	font-size: 13px;
	letter-spacing: 0.75px;
	line-height: 1.7;
	min-width: 200px;
	padding: 13px 24px;
	text-transform: capitalize;
}
.ct-custom-hero .hero__image { object-position: center center; }

/* Intro and film */
.ct-custom-intro .section__description { max-width: 900px; }
.ct-custom-video {
	color: var(--color-soft-white);
	display: block;
	margin: 30px auto 0;
	max-width: 980px;
	overflow: hidden;
	position: relative;
	text-decoration: none;
}
.ct-custom-video img {
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	transition: transform var(--transition-time) var(--transition-easing);
	width: 100%;
}
.ct-custom-video:hover img { transform: scale(var(--scale-size)); }
.ct-custom-video__shade {
	background: linear-gradient(to top, rgb(23 25 26 / 72%), transparent 55%);
	inset: 0;
	position: absolute;
}
.ct-custom-video__play {
	color: var(--color-soft-white);
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}
.ct-custom-video__play svg { display: block; filter: drop-shadow(0 2px 10px rgb(0 0 0 / 20%)); }
.ct-custom-video__title {
	bottom: 22px;
	color: var(--color-soft-white);
	left: 22px;
	margin: 0;
	position: absolute;
}

/* Burgundy promise bands */
.ct-custom-promise {
	margin-bottom: 0;
	position: relative;
}
.ct-custom-promise::after {
	bottom: 28px;
	color: rgb(254 254 252 / 85%);
	content: "✦";
	font-family: var(--heading-font-family);
	font-size: 30px;
	line-height: 1;
	position: absolute;
	right: 22px;
}
.ct-custom-promise .section__description { max-width: 900px; }
.ct-custom-promise__rows { margin-top: 50px; }
.ct-custom-promise__row {
	align-items: center;
	display: grid;
	gap: var(--ct-card-gap);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ct-custom-promise__row + .ct-custom-promise__row { margin-top: 50px; }
.ct-custom-promise__copy { padding-right: 30px; }
.ct-custom-promise__row--image-first .ct-custom-promise__copy {
	padding-left: 30px;
	padding-right: 0;
}
.ct-custom-promise__copy p,
.ct-custom-promise__copy ul { margin-bottom: 18px; }
.ct-custom-promise__copy li + li { margin-top: 4px; }
.ct-custom-promise__copy li::marker { color: var(--color-soft-white); }
.ct-custom-promise__image {
	aspect-ratio: 16 / 9;
	margin: 0;
	overflow: hidden;
}
.ct-custom-promise__image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ct-custom-time { margin-top: 0; }
.ct-custom-time .section__description { max-width: 900px; }
.ct-custom-time__grid {
	display: grid;
	gap: var(--ct-card-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 50px;
}
.ct-custom-time__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	text-align: center;
}
.ct-custom-time__card figure {
	aspect-ratio: 625 / 400;
	margin: 0;
	overflow: hidden;
}
.ct-custom-time__card img {
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-time) var(--transition-easing);
	width: 100%;
}
.ct-custom-time__card:hover img { transform: scale(var(--scale-size)); }
.ct-custom-time__card > div { padding: 20px 20px 0; }
.ct-custom-time__card h3 { margin-bottom: 10px; }

/* Sample itinerary track */
.ct-custom-itineraries .section__description { max-width: 900px; }
.ct-custom-itineraries__viewport {
	margin-top: 50px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.ct-custom-itineraries__viewport::-webkit-scrollbar { display: none; }
.ct-custom-itineraries__track {
	display: flex;
	gap: var(--ct-card-gap);
}
.ct-custom-itinerary-card {
	flex: 0 0 calc((100% - var(--ct-card-gap) * 2) / 3);
	min-height: 650.922px;
	scroll-snap-align: start;
}
.ct-custom-itinerary-card .product-cards__image {
	height: 210px;
	min-height: 210px;
}
.ct-custom-itinerary-card .product-cards__image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}
.ct-custom-itinerary-card .product-cards__content { padding: 22px 30px 25px; }
.ct-custom-itinerary-card .product-cards__category { margin-bottom: 5px; }
.ct-custom-itinerary-card .product-cards__title {
	font-size: 26px;
	line-height: var(--heading-line-height);
	margin-bottom: 10px;
}
.ct-custom-itinerary-card .product-cards__linked-list {
	line-height: 1.35;
	margin-bottom: 20px;
}
.ct-custom-itinerary-card .product-cards__linked-list-item:not(:last-child)::after { margin: 0 4px; }
.ct-custom-itinerary-card .product-cards__btn {
	margin-bottom: 20px;
	margin-top: auto;
}
.ct-custom-itinerary-card .product-cards__info { margin-top: 0; }
.ct-custom-itinerary-card .product-cards__info-item { padding: 12px 15px; }
.ct-custom-itinerary-card .product-cards__info-item ul { flex-direction: column; }
.ct-custom-itinerary-card .product-cards__info-item li + li::before {
	display: block;
	margin: 0 2px;
}
.ct-custom-itineraries__pagination {
	align-items: center;
	display: flex;
	gap: 10px;
	height: 42px;
	justify-content: center;
	margin: 20px 0 58.78px;
}
.ct-custom-itineraries__pagination a {
	align-items: center;
	border: 1px solid var(--color-soft-black);
	border-radius: 50%;
	color: var(--color-soft-black);
	display: inline-flex;
	height: 8px;
	justify-content: center;
	text-decoration: none;
	width: 8px;
}
.ct-custom-itineraries__pagination a:first-child,
.ct-custom-itineraries__pagination a:last-child {
	font-size: 24px;
	height: 34px;
	line-height: 1;
	width: 34px;
}
.ct-custom-itineraries__pagination a.is-active { background: var(--color-soft-black); }

/* Reviews and Trustpilot ribbon */
.ct-custom-reviews .reviews-carousel__slider { margin-top: 34px; }
.ct-custom-reviews .reviews-carousel__slide-content { gap: 12px; }
.ct-custom-reviews .reviews-carousel__title {
	font-size: 26px;
	line-height: 1.2;
	margin-bottom: 0;
}
.ct-custom-reviews .reviews-carousel__content {
	line-height: 1.45;
	max-height: 255px;
	overflow: hidden;
}
.ct-custom-reviews .reviews-carousel__content p::before { content: "\201C"; }
.ct-custom-reviews .reviews-carousel__content p::after { content: "\201D"; }
.ct-custom-reviews .reviews-carousel__author { margin-top: auto; }
.ct-custom-trustpilot {
	align-items: center;
	border-bottom: 1px solid var(--ct-rule);
	border-top: 1px solid var(--ct-rule);
	color: var(--color-soft-black);
	display: flex;
	font-weight: var(--font-weight-medium);
	gap: 12px;
	height: 52px;
	justify-content: center;
	margin-top: 30px;
	text-decoration: none;
}
.ct-custom-trustpilot__stars {
	background: #00b67a;
	color: var(--color-soft-white);
	letter-spacing: 2px;
	padding: 2px 6px 3px 8px;
}

/* Closing TCS box */
.ct-custom-form-box {
	background: var(--color-burgundy-2);
	color: var(--color-soft-white);
	min-height: 783px;
	overflow: hidden;
	padding: 30px;
	position: relative;
}
.ct-custom-form-box .section__description { max-width: 900px; }
.ct-custom-form-box .section__description a { color: var(--color-brass-1); }
.ct-custom-form-box__ornament {
	color: rgb(254 254 252 / 8%);
	font-family: var(--heading-font-family);
	font-size: 160px;
	line-height: 1;
	position: absolute;
	right: -14px;
	top: -12px;
}
.ct-custom-form {
	margin: 34px auto 0;
	max-width: 900px;
	position: relative;
}
.ct-custom-form .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ct-custom-form .form-row:nth-of-type(2) .form-field { grid-column: 1 / -1; }
.ct-custom-form select option { color: var(--color-soft-black); }
.ct-custom-form__message textarea {
	height: 38px;
	min-height: 38px;
	resize: vertical;
}
.ct-custom-form__radios {
	align-items: center;
	border: 0;
	display: flex;
	gap: 20px;
	margin: 20px 0 0;
	padding: 0;
}
.ct-custom-form__radios legend {
	float: left;
	margin-right: 12px;
}
.ct-custom-form__radios .radio { align-items: center; }
.ct-custom-form .form__required-info { margin-top: 10px; }
.ct-custom-form .checkbox { margin-top: 16px; }
.ct-custom-form .checkbox .checkbox__content a {
	color: #fff;
	font-size: 13px;
	line-height: 20.8px;
}
.ct-custom-form .form-submit .btn { margin-top: 0; min-width: 120px; }
.ct-custom-form .form__demo-note { margin-top: 10px; }

@media screen and (max-width: 1023px) {
	.custom-travel-parity { --ct-card-gap: 20px; }
	.ct-custom-promise__copy,
	.ct-custom-promise__row--image-first .ct-custom-promise__copy { padding: 0; }
	.ct-custom-itinerary-card { flex-basis: calc(70% - 10px); }
	.ct-custom-itinerary-card .product-cards__title { font-size: 23px; }
}

@media screen and (max-width: 767px) {
	.ct-custom-hero { padding-left: 15px; padding-right: 15px; }
	.ct-custom-hero .hero__title { font-size: 42px; }
	.ct-custom-hero .hero__pre-heading { font-size: 10px; max-width: 300px; }
	.ct-custom-hero .hero__custom-cta { margin-top: 22px; }
	.ct-custom-video { margin-top: 24px; }
	.ct-custom-video__title { bottom: 15px; font-size: 25px; left: 15px; }
	.ct-custom-video__play svg { height: 40px; width: 40px; }

	.ct-custom-promise__row {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}
	.ct-custom-promise__row + .ct-custom-promise__row { margin-top: 42px; }
	.ct-custom-promise__row--image-first .ct-custom-promise__image { order: 0; }
	.ct-custom-promise__row--image-first .ct-custom-promise__copy { order: 1; }
	.ct-custom-promise__copy,
	.ct-custom-promise__image { width: 100%; }
	.ct-custom-promise::after { bottom: 14px; font-size: 24px; right: 10px; }

	.ct-custom-time__grid {
		display: flex;
		margin-right: calc(var(--grid-col-gutter) * -1);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.ct-custom-time__grid::-webkit-scrollbar { display: none; }
	.ct-custom-time__card { flex: 0 0 86%; scroll-snap-align: start; }
	.ct-custom-time__card > div { padding-left: 8px; padding-right: 8px; }

	.ct-custom-itineraries__viewport { margin-right: calc(var(--grid-col-gutter) * -1); }
	.ct-custom-itinerary-card { flex-basis: 88%; }
	.ct-custom-itinerary-card .product-cards__content { padding: 16px; }

	.ct-custom-reviews .reviews-carousel__title { font-size: 22px; }
	.ct-custom-reviews .reviews-carousel__content { max-height: none; }
	.ct-custom-trustpilot__label { display: none; }

	.ct-custom-form-box {
		min-height: 0;
		padding: 25px 20px;
	}
	.ct-custom-form-box__ornament { font-size: 100px; }
	.ct-custom-form .form-row { grid-template-columns: 1fr; }
	.ct-custom-form .form-row:nth-of-type(2) .form-field { grid-column: auto; }
	.ct-custom-form__radios { align-items: flex-start; flex-wrap: wrap; }
	.ct-custom-form__radios legend { float: none; flex: 0 0 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.ct-custom-video img,
	.ct-custom-time__card img { transition: none; }
}
