/* =========================================================
   SEARCH CONTAINER
   ========================================================= */

.vf-home-search-slot {
	position: relative;
	z-index: 20;
	top: -100px;
	margin-bottom: -78px;
}

/* =========================================================
   MOBILE TRAVELERS — BALANCED HEADER AND INSET ACTION
   ========================================================= */

@media (max-width: 767px) {
	body.vf-home-mobile-travelers-open
	> #vf-home-travelers-menu
	.vf-home-mobile-travelers__header {
		display: flex !important;
		align-items: center !important;
		min-height: calc(64px + env(safe-area-inset-top)) !important;
		padding:
			calc(16px + env(safe-area-inset-top))
			16px
			16px !important;
	}

	body.vf-home-mobile-travelers-open
	> #vf-home-travelers-menu
	.vf-home-mobile-travelers__footer {
		padding:
			12px
			16px
			calc(12px + env(safe-area-inset-bottom)) !important;
	}

	body.vf-home-mobile-travelers-open
	> #vf-home-travelers-menu
	.vf-home-mobile-travelers__ok {
		width: 100% !important;
		min-height: 48px !important;
	}
}

.vf-home-search {
	position: relative;

	width: 100%;
	max-width: 1170px;

	margin: 0 auto;
	padding: 14px 24px 16px;

	background: #fff;

	border: 1px solid #e7ebef;
	border-radius: 18px;

	box-sizing: border-box;

	box-shadow:
		0 8px 24px rgba(0, 0, 0, .08);

	contain: layout;
}


/* =========================================================
   TRIP TYPE
   ========================================================= */

.vf-home-search__trip-types {
	display: flex;
	align-items: center;

	gap: 10px;

	margin-bottom: 10px;
}

.vf-home-trip-option {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 112px;

	width: 112px;
	height: 40px;

	padding: 0 12px;

	border: 0;
	border-radius: 10px;

	background: #f4f5f6;

	box-sizing: border-box;

	font-size: 15px;
	line-height: 20px;
	font-weight: 400;

	color: #252525;

	cursor: pointer;

	appearance: none;
	-webkit-appearance: none;

	transition:
		background-color .15s ease,
		color .15s ease;
}

.vf-home-trip-option.is-active {
	background: #e5f3ff;

	color: #128add;

	font-weight: 700;
}

.vf-home-trip-option:focus,
.vf-home-trip-option:focus-visible,
.vf-home-trip-option:active {
	outline: none !important;
	box-shadow: none !important;
}


/* =========================================================
   MAIN ROW
   ========================================================= */

.vf-home-search__main-row {
	display: grid;

	grid-template-columns:
		1fr
		1fr;

	gap: 10px;
}

.vf-home-search__route,
.vf-home-search__dates {
	position: relative;

	display: grid;

	grid-template-columns:
		1fr
		1fr;

	min-width: 0;
}

.vf-home-search__route {
	overflow: visible;
}


/* =========================================================
   LOCATION FIELDS
   ========================================================= */

.vf-home-field {
	position: relative;

	display: flex;
	flex-direction: column;
	justify-content: center;

	height: 58px;
	min-height: 58px;

	padding: 0 15px;

	background: #fff;

	border: 1px solid #d9dee5;
	border-radius: 10px 0 0 10px;

	box-sizing: border-box;

	text-align: left;
}

.vf-home-field:last-child {
	padding-left: 34px;

	border-left: 0;
	border-radius: 0 10px 10px 0;
}


/* =========================================================
   FIELD LABEL
   Empty field:
   label sits vertically centered.
   ========================================================= */

.vf-home-field__label {
	position: absolute;

	z-index: 2;

	top: 50%;
	left: 15px;

	transform: translateY(-50%);

	margin: 0;

	font-size: 15px;
	line-height: 20px;
	font-weight: 400;

	color: #737d89;

	pointer-events: none;

	transition:
		top .15s ease,
		transform .15s ease,
		font-size .15s ease,
		color .15s ease;
}

.vf-home-field:last-child
.vf-home-field__label {
	left: 34px;
}


/* =========================================================
   INPUT
   ========================================================= */

.vf-home-field input {
	position: relative;

	z-index: 1;

	display: block;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;

	border: 0;
	outline: 0;

	background: transparent;

	font-size: 15px;
	line-height: 20px;
	font-weight: 600;

	color: #171717;

	box-sizing: border-box;
}


/* =========================================================
   EMPTY / UNFOCUSED STATE

   Only "From" / "To" is visible.
   The input and its placeholder remain visually hidden
   until the visitor activates the field.
   ========================================================= */

.vf-home-field:not(.has-value):not(:focus-within)
input::placeholder {
	color: #a0a7b0;
	opacity: 1;
}


/* =========================================================
   ACTIVE / POPULATED STATE

   Float the label whenever:
   1. JavaScript has applied .has-value
   2. the visitor is interacting with the field
   3. the browser contains a real input value

   :has() provides an additional CSS safety net if a value
   is populated dynamically before syncRouteField() runs.
   ========================================================= */

.vf-home-field.has-value,
.vf-home-field:focus-within,
.vf-home-field:has(input:not(:placeholder-shown)) {
	padding-top: 16px;
}


.vf-home-field.has-value
.vf-home-field__label,

.vf-home-field:focus-within
.vf-home-field__label,

.vf-home-field:has(input:not(:placeholder-shown))
.vf-home-field__label {
	top: 7px;
	left: 15px;

	transform: none;

	font-size: 11px;
	line-height: 13px;

	color: #818b98;
}


.vf-home-field:last-child.has-value
.vf-home-field__label,

.vf-home-field:last-child:focus-within
.vf-home-field__label,

.vf-home-field:last-child:has(input:not(:placeholder-shown))
.vf-home-field__label {
	left: 34px;
}


/* =========================================================
   PLACEHOLDER

   "Where from?" / "Where to?" appears only after the
   field becomes active and the label has floated upward.
   ========================================================= */

.vf-home-field input::placeholder {
	color: #a0a7b0;
	opacity: 1;
}

.vf-home-field:not(.has-value):not(:focus-within)
input::placeholder {
	color: transparent;
	opacity: 0;
}

/* =========================================================
   LOCATION RESULTS
   ========================================================= */

.vf-home-location-results {
	position: absolute;

	z-index: 9999;

	top: calc(100% + 7px);

	width: 500px;
	max-width: min(500px, calc(100vw - 32px));
	max-height: 370px;

	padding: 8px;

	overflow-x: hidden;
	overflow-y: auto;

	background: #fff;

	border: 1px solid #dfe4ea;
	border-radius: 12px;

	box-sizing: border-box;

	box-shadow:
		0 12px 30px rgba(0, 0, 0, .15);

	text-align: left;

	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;

	scrollbar-width: thin;
	scrollbar-color: #cfd6dc transparent;
}

.vf-home-location-results[hidden] {
	display: none !important;
}

#vf-home-origin-results {
	left: 0;
	right: auto;
}

#vf-home-destination-results {
	left: auto;
	right: 0;
}

.vf-home-location-results::-webkit-scrollbar {
	width: 6px;
}

.vf-home-location-results::-webkit-scrollbar-track {
	background: transparent;
}

.vf-home-location-results::-webkit-scrollbar-thumb {
	background: #cfd6dc;

	border-radius: 999px;
}

.vf-home-location-results::-webkit-scrollbar-thumb:hover {
	background: #bfc8cf;
}


/* =========================================================
   LOCATION COUNTRY GROUP
   ========================================================= */

.vf-home-location-group +
.vf-home-location-group {
	margin-top: 6px;
	padding-top: 6px;

	border-top: 1px solid #eef1f4;
}

.vf-home-location-country {
	display: flex;
	align-items: center;

	gap: 7px;

	padding: 7px 10px 5px;

	color: #2c3742;
}

.vf-home-location-country__flag {
	display: block;
	flex: 0 0 24px;

	width: 24px;
	height: 16px;

	object-fit: cover;

	border: 1px solid rgba(25, 35, 45, 0.1);
	border-radius: 2px;
}

.vf-home-location-country__name {
	font-size: 13px;
	line-height: 18px;
	font-weight: 700;
}


/* =========================================================
   LOCATION RESULT ROW
   ========================================================= */

.vf-home-location-result {
	position: relative;

	display: grid !important;

	grid-template-columns:
		36px
		minmax(0, 1fr);

	align-items: center;

	column-gap: 10px;

	width: 100% !important;
	min-height: 58px;

	margin: 0 !important;
	padding: 8px 12px !important;

	border: 0 !important;
	border-radius: 9px !important;

	background: transparent !important;

	box-shadow: none !important;

	text-align: left !important;

	cursor: pointer;
}

.vf-home-location-result:hover,
.vf-home-location-result:focus {
	background: #f2f7fb !important;

	outline: none !important;
}

.vf-home-location-result__icon {
	grid-column: 1;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 36px;
	height: 36px;

	border-radius: 8px;

	background: #f0f3f5;

	color: #60717d;

	font-family: "Material Symbols Outlined" !important;
	font-size: 21px !important;

	pointer-events: none;
}

.vf-home-location-result__content {
	grid-column: 2;

	display: flex;
	flex-direction: column;
	justify-content: center;

	min-width: 0;
}

.vf-home-location-result__topline {
	display: flex;
	align-items: baseline;

	gap: 8px;

	width: 100%;
	min-width: 0;
}

.vf-home-location-result__title {
	flex: 1 1 auto;

	min-width: 0;

	overflow: hidden;

	font-size: 14px;
	line-height: 18px;
	font-weight: 700;

	color: #171717;

	white-space: nowrap;
	text-overflow: ellipsis;
}

.vf-home-location-result__code {
	flex: 0 0 auto;

	margin-left: auto;

	font-size: 12px;
	line-height: 16px;
	font-weight: 500;

	color: #687786;

	white-space: nowrap;
}

.vf-home-location-result__secondary {
	display: block;

	margin-top: 2px;

	overflow: hidden;

	font-size: 12px;
	line-height: 16px;

	color: #687786;

	white-space: nowrap;
	text-overflow: ellipsis;
}

.vf-home-location-result--child {
	padding-left: 32px !important;
}

.vf-home-location-result__branch {
	position: absolute;

	left: 10px;
	top: 50%;

	transform: translateY(-50%);

	width: 14px;

	text-align: center;

	color: #9aa6af;

	pointer-events: none;
}


/* =========================================================
   SWAP
   ========================================================= */

.vf-home-search__swap {
	position: absolute;

	z-index: 10;

	left: 50%;
	top: 50%;

	transform: translate(-50%, -50%);

	display: flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	border: 1px solid #d9dee5;
	border-radius: 10px;

	background: #fff;

	color: #6f7882;

	font-family: Arial, sans-serif;
	font-size: 20px;
	line-height: 1;

	cursor: pointer;

	transition:
		color .15s ease,
		border-color .15s ease,
		background-color .15s ease;
}

.vf-home-search__swap.is-ready {
	color: #128add !important;

	border-color: #b8dcf8;
}

.vf-home-search__swap.is-ready:hover {
	background: #f4faff;
}

.vf-home-search__swap:focus,
.vf-home-search__swap:focus-visible,
.vf-home-search__swap:active {
	outline: none !important;
	box-shadow: none !important;
}


/* =========================================================
   DATES
   ========================================================= */

.vf-home-date-wrap {
	position: relative;

	min-width: 0;
}

.vf-home-date {
	display: flex;
	flex-direction: column;
	justify-content: center;

	width: 100%;
	height: 58px;
	min-height: 58px;

	padding: 7px 15px;

	background: #fff;

	border: 1px solid #d9dee5;

	box-sizing: border-box;

	text-align: left;

	cursor: pointer;
}

.vf-home-date-wrap:first-child
.vf-home-date {
	padding-right: 82px;

	border-radius: 10px 0 0 10px;
}

#vf-home-return {
	border-left: 0;
	border-radius: 0 10px 10px 0;
}

.vf-home-date span {
	display: block;

	margin-bottom: 2px;

	font-size: 11px;
	line-height: 13px;

	color: #818b98;
}

.vf-home-date strong {
	display: block;

	font-size: 15px;
	line-height: 19px;
	font-weight: 600;

	color: #171717;
}

.vf-home-date--return-empty {
	justify-content: center;
}

.vf-home-date--return-empty > span {
	margin: 0;

	font-size: 15px;
	line-height: 20px;

	color: #a6afb9;
}

.vf-home-date.has-value {
	justify-content: center;
}

.vf-home-date.has-value > span {
	font-size: 11px;
	line-height: 13px;
}

.vf-home-date.is-disabled,
.vf-home-date:disabled {
	opacity: .45;

	cursor: default;
}

.vf-home-date:focus,
.vf-home-date:focus-visible,
.vf-home-date:active {
	outline: none !important;
	box-shadow: none !important;
}


/* =========================================================
   DATE STEPPERS
   ========================================================= */

.vf-home-date-stepper {
	position: absolute;

	z-index: 8;

	top: 50%;
	right: 10px;

	transform: translateY(-50%);

	display: flex;
	align-items: center;

	gap: 2px;
}

.vf-home-date-stepper button {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 30px;
	height: 34px;

	padding: 0;

	border: 0;
	border-radius: 7px;

	background: transparent;

	cursor: pointer;

	font-size: 0;
	color: transparent;

	appearance: none;
	-webkit-appearance: none;
}

.vf-home-date-stepper button::before {
	content: "";

	width: 8px;
	height: 8px;

	border-top: 2px solid #128add;
	border-right: 2px solid #128add;
}

.vf-home-date-stepper button:first-child::before {
	transform: rotate(-135deg);
}

.vf-home-date-stepper button:last-child::before {
	transform: rotate(45deg);
}

.vf-home-date-stepper button:hover:not(:disabled) {
	background: #eef7fd;
}

.vf-home-date-stepper button:focus,
.vf-home-date-stepper button:focus-visible,
.vf-home-date-stepper button:active {
	outline: none !important;
	box-shadow: none !important;
}

.vf-home-date-stepper button:disabled {
	opacity: .28;

	cursor: default;
}

.vf-home-return-wrap {
	position: relative;
}


/* =========================================================
   DESKTOP CALENDAR
   ========================================================= */

.vf-home-calendar {
	position: absolute;

	z-index: 10000;

	top: calc(100% + 10px);
	right: 0;

	width: 780px;
	max-width: calc(100vw - 40px);

	padding: 18px 22px 22px;

	background: #fff;

	border: 1px solid #e2e7ec;
	border-radius: 14px;

	box-sizing: border-box;

	box-shadow:
		0 18px 42px rgba(0, 0, 0, .18);
}

.vf-home-calendar[hidden] {
	display: none !important;
}

.vf-home-calendar__header {
	display: grid;

	grid-template-columns:
		40px
		1fr
		40px;

	align-items: center;

	margin-bottom: 14px;
}

.vf-home-calendar__nav {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	border: 0;
	border-radius: 8px;

	background: transparent;

	cursor: pointer;

	font-size: 0;
}

.vf-home-calendar__nav::before {
	content: "";

	width: 9px;
	height: 9px;

	border-top: 2px solid #3d4650;
	border-right: 2px solid #3d4650;
}

.vf-home-calendar__nav--prev::before {
	transform: rotate(-135deg);
}

.vf-home-calendar__nav--next::before {
	transform: rotate(45deg);
}

.vf-home-calendar__nav:hover {
	background: #f3f6f8;
}

.vf-home-calendar__nav:focus,
.vf-home-calendar__nav:focus-visible {
	outline: none;
	box-shadow: none;
}

.vf-home-calendar__title {
	text-align: center;

	font-size: 14px;
	line-height: 20px;
	font-weight: 600;

	color: #4f5964;
}

.vf-home-calendar__mobile-modes {
	display: none;
}

.vf-home-calendar__months {
	display: grid;

	grid-template-columns:
		1fr
		1fr;

	gap: 42px;
}

.vf-home-calendar-month__title {
	margin-bottom: 14px;

	text-align: center;

	font-size: 16px;
	line-height: 22px;
	font-weight: 700;

	color: #171717;
}

.vf-home-calendar-weekdays,
.vf-home-calendar-grid {
	display: grid;

	grid-template-columns:
		repeat(7, 1fr);

	gap: 5px;
}

.vf-home-calendar-weekdays {
	margin-bottom: 7px;
}

.vf-home-calendar-weekdays span {
	display: flex;
	align-items: center;
	justify-content: center;

	height: 28px;

	font-size: 12px;
	font-weight: 500;

	color: #7e8791;
}

.vf-home-calendar-day {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	justify-self: center;

	border: 0;
	border-radius: 8px;

	background: transparent;

	font-size: 14px;
	font-weight: 600;

	color: #171717;

	cursor: pointer;
}

.vf-home-calendar-day:hover:not(:disabled) {
	background: #eaf5fd;

	color: #128add;
}

.vf-home-calendar-day:disabled {
	color: #c5cbd1;

	cursor: default;
}

.vf-home-calendar-day.has-fare {
	border-radius: 8px;
}

.vf-home-calendar-day.is-fare-low {
	--vf-calendar-fare-background: #8ee3bd;
	--vf-calendar-fare-color: #0b573a;
	background: var(--vf-calendar-fare-background);
	color: var(--vf-calendar-fare-color);
}

.vf-home-calendar-day.is-fare-typical {
	--vf-calendar-fare-background: #ffc970;
	--vf-calendar-fare-color: #6a3c00;
	background: var(--vf-calendar-fare-background);
	color: var(--vf-calendar-fare-color);
}

.vf-home-calendar-day.is-fare-high {
	--vf-calendar-fare-background: #ff9aa4;
	--vf-calendar-fare-color: #7a1e2a;
	background: var(--vf-calendar-fare-background);
	color: var(--vf-calendar-fare-color);
}

.vf-home-calendar-day.is-today {
	box-shadow:
		inset 0 0 0 1px #128add;
}

.vf-home-calendar-day.is-depart,
.vf-home-calendar-day.is-return {
	background: #128add;

	color: #fff;

	font-weight: 700;
}

/* Preserve the fare band on a selected date; the inset ring marks selection. */
.vf-home-calendar-day.has-fare.is-depart,
.vf-home-calendar-day.has-fare.is-return {
	background: var(--vf-calendar-fare-background);
	color: var(--vf-calendar-fare-color);
	box-shadow: inset 0 0 0 2px #20262d;
}

.vf-home-calendar-day.is-between {
	background: #eaf5fd;

	color: #128add;

	border-radius: 0;
}

.vf-home-fare-legend {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;

	margin-top: 16px;
	padding-top: 14px;

	border-top: 1px solid #e2e7ec;

	font-size: 11px;
	line-height: 16px;
	color: #4f5964;
}

.vf-home-fare-legend[hidden] {
	display: none !important;
}

.vf-home-fare-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	white-space: nowrap;

	min-height: 30px;
	padding: 5px 8px;

	border-radius: 7px;
}

.vf-home-fare-legend__item i {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 3px;
}

.vf-home-fare-legend__item.is-low {
	background: #e4f8ef;
}

.vf-home-fare-legend__item.is-low i {
	background: #35c98a;
}

.vf-home-fare-legend__item.is-typical {
	background: #fff4df;
}

.vf-home-fare-legend__item.is-typical i {
	background: #f5a623;
}

.vf-home-fare-legend__item.is-high {
	background: #ffe7ea;
}

.vf-home-fare-legend__item.is-high i {
	background: #e55b68;
}

.vf-home-fare-legend__note {
	margin-left: auto;
	color: #6f7983;
}

.vf-home-calendar-day.is-fare-refreshing,
.vf-home-fare-legend.is-refreshing {
	transition: opacity 120ms ease;
	opacity: 0.82;
}


/* =========================================================
   BOTTOM ROW
   ========================================================= */

.vf-home-search__bottom-row {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	gap: 18px;

	margin-top: 10px;

	min-height: 42px;
}


/* =========================================================
   TRAVELERS / CABIN
   ========================================================= */

.vf-home-dropdown {
	position: relative;
}

.vf-home-search__select {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 12px;

	height: 42px;

	padding: 0 17px;

	background: #fff;

	border: 1px solid #d9dee5;
	border-radius: 10px;

	font-size: 15px;
	line-height: 20px;

	color: #252525;

	cursor: pointer;

	white-space: nowrap;
}

.vf-home-search__select:hover {
	border-color: #bfc7d0;
}

.vf-home-search__select:focus,
.vf-home-search__select:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}


/* =========================================================
   SEARCH BUTTON
   ========================================================= */

.vf-home-search__submit {
	width: 210px;
	height: 42px;

	padding: 0 28px;

	border: 0 !important;
	border-radius: 10px;

	outline: none !important;

	background: #0b8df2;

	box-shadow: none !important;

	color: #fff;

	font-size: 16px;
	font-weight: 700;

	cursor: pointer;
}

.vf-home-search__submit:hover {
	background: #087bd7;
}

.vf-home-search__submit:focus,
.vf-home-search__submit:focus-visible,
.vf-home-search__submit:active {
	border: 0 !important;

	outline: none !important;
	box-shadow: none !important;
}


/* =========================================================
   DROPDOWN MENUS
   ========================================================= */

.vf-home-dropdown__menu {
	position: absolute;

	z-index: 1000;

	top: calc(100% + 8px);
	right: 0;

	min-width: 240px;

	padding: 10px;

	background: #fff;

	border: 1px solid #e1e5ea;
	border-radius: 12px;

	box-shadow:
		0 12px 30px rgba(0, 0, 0, .12);
}

.vf-home-dropdown__menu[hidden] {
	display: none !important;
}

.vf-home-traveler-row {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 20px;

	padding: 10px 4px;
}

.vf-home-traveler-row +
.vf-home-traveler-row {
	border-top: 1px solid #eef1f4;
}

.vf-home-traveler-row strong {
	display: block;

	font-size: 14px;
}

.vf-home-traveler-row span {
	font-size: 12px;

	color: #818b98;
}

.vf-home-counter {
	display: flex;
	align-items: center;

	gap: 10px;
}

.vf-home-counter button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 30px;
	height: 30px;

	border: 1px solid #d9dee5;
	border-radius: 50%;

	background: #fff;

	color: #0b8df2;

	font-size: 18px;

	cursor: pointer;
}

.vf-home-counter button:disabled,
.vf-home-counter button.is-disabled {
	opacity: .32;

	color: #8e99a4;

	border-color: #dfe4e8;

	background: #f7f8f9;

	cursor: default;

	pointer-events: none;
}

.vf-home-cabin-menu {
	display: grid;

	gap: 4px;
}

.vf-home-cabin-menu[hidden] {
	display: none !important;
}

.vf-home-cabin-menu button {
	width: 100%;

	padding: 10px 12px;

	border: 0;
	border-radius: 8px;

	background: transparent;

	text-align: left;

	font-size: 14px;

	cursor: pointer;
}

.vf-home-cabin-menu button:hover,
.vf-home-cabin-menu button.is-active {
	background: #eaf5ff;

	color: #0b8df2;
}


/* =========================================================
   MOBILE CABIN CONTENT
   ========================================================= */

.vf-home-mobile-cabin,
.vf-home-mobile-travelers__header,
.vf-home-mobile-travelers__footer {
	display: none;
}


/* =========================================================
   MULTI-CITY
   ========================================================= */

.vf-home-multicity {
	position: relative;

	width: 100%;
}

.vf-home-multicity[hidden] {
	display: none !important;
}

.vf-home-multicity__routes {
	display: flex;
	flex-direction: column;

	gap: 10px;

	width: 100%;
}


/* =========================================================
   MULTI-CITY ROUTE ROW
   ========================================================= */

.vf-home-multicity__route {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 2fr)
		minmax(220px, .72fr);

	align-items: stretch;

	gap: 10px;

	width: 100%;
	min-width: 0;
}


/* =========================================================
   MULTI-CITY LOCATIONS
   ========================================================= */

.vf-home-multicity__locations {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr);

	min-width: 0;
}

.vf-home-multicity__locations
.vf-home-field:first-child {
	padding-left: 15px;

	border-left: 1px solid #d9dee5;
	border-radius: 10px 0 0 10px;
}

.vf-home-multicity__locations
.vf-home-field:last-child {
	padding-left: 34px;

	border-left: 0;
	border-radius: 0 10px 10px 0;
}

.vf-home-multicity__locations
.vf-home-field:first-child
.vf-home-field__label {
	left: 15px;
}

.vf-home-multicity__locations
.vf-home-field:last-child
.vf-home-field__label {
	left: 34px;
}

.vf-home-multicity__locations
.vf-home-field:first-child.has-value
.vf-home-field__label,

.vf-home-multicity__locations
.vf-home-field:first-child:focus-within
.vf-home-field__label {
	left: 15px;
}

.vf-home-multicity__locations
.vf-home-field:last-child.has-value
.vf-home-field__label,

.vf-home-multicity__locations
.vf-home-field:last-child:focus-within
.vf-home-field__label {
	left: 34px;
}


/* =========================================================
   LINKED ORIGIN
   ========================================================= */

.vf-home-multicity
.vf-home-field.is-linked-origin {
	background: #f8fafc;
}

.vf-home-multicity
.vf-home-field.is-linked-origin input {
	color: #384653;

	cursor: default;
}


/* =========================================================
   MULTI-CITY LOCATION RESULTS
   ========================================================= */

.vf-home-multicity__locations
.vf-home-field:first-child
.vf-home-location-results {
	left: 0;
	right: auto;
}

.vf-home-multicity__locations
.vf-home-field:last-child
.vf-home-location-results {
	left: auto;
	right: 0;
}


/* =========================================================
   MULTI-CITY DATE
   ========================================================= */

.vf-home-multicity__date {
	position: relative;

	min-width: 0;
}

.vf-home-multicity__date-button {
	width: 100%;

	padding: 7px 15px;

	border: 1px solid #d9dee5 !important;
	border-radius: 10px !important;
}

.vf-home-multicity__date-button.has-value {
	justify-content: center;
}

.vf-home-multicity__date-button strong {
	overflow: hidden;

	white-space: nowrap;
	text-overflow: ellipsis;
}

.vf-home-multicity__date-button.vf-home-date--return-empty {
	justify-content: center;
}

.vf-home-multicity__date-button.vf-home-date--return-empty > span {
	margin-bottom: 2px;

	font-size: 11px;
	line-height: 13px;

	color: #818b98;
}

.vf-home-multicity__date-button.vf-home-date--return-empty > strong {
	font-size: 15px;
	line-height: 20px;
	font-weight: 400;

	color: #a0a7b0;
}


/* =========================================================
   REMOVE FLIGHT
   ========================================================= */

.vf-home-multicity__remove {
	position: absolute;

	z-index: 20;

	top: -9px;
	right: -9px;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 28px;
	height: 28px;

	margin: 0;
	padding: 0;

	border: 1px solid #e0e5ea;
	border-radius: 50%;

	background: #fff;

	color: #75818c;

	font-size: 19px;
	line-height: 1;

	cursor: pointer;

	box-shadow:
		0 3px 10px rgba(0, 0, 0, .10);

	appearance: none;
	-webkit-appearance: none;
}

.vf-home-multicity__remove:hover {
	border-color: #f0bcbc;

	background: #fff5f5;

	color: #dc4f4f;
}

.vf-home-multicity__remove:focus,
.vf-home-multicity__remove:focus-visible,
.vf-home-multicity__remove:active {
	outline: none !important;
}


/* =========================================================
   ADD ANOTHER FLIGHT
   ========================================================= */

.vf-home-multicity__action {
	display: flex;
	align-items: center;
	justify-content: center;

	min-height: 42px;
}

.vf-home-multicity__action[hidden] {
	display: none !important;
}

.vf-home-multicity__add {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 7px;

	min-width: 174px;
	height: 42px;

	margin: 0;
	padding: 0 16px;

	border: 1px solid #c9d3dc;
	border-radius: 10px;

	background: #fff;

	color: #34424e;

	font-size: 14px;
	line-height: 20px;
	font-weight: 600;

	cursor: pointer;

	white-space: nowrap;

	appearance: none;
	-webkit-appearance: none;
}

.vf-home-multicity__add span {
	color: #128add;

	font-size: 20px;
	line-height: 1;
	font-weight: 500;
}

.vf-home-multicity__add:hover {
	border-color: #a9d2ef;

	background: #f6fbff;

	color: #128add;
}

.vf-home-multicity__add:focus,
.vf-home-multicity__add:focus-visible,
.vf-home-multicity__add:active {
	outline: none !important;
	box-shadow: none !important;
}

.vf-home-multicity__limit {
	display: flex;
	align-items: center;

	height: 42px;

	padding: 0 14px;

	font-size: 13px;
	line-height: 18px;
	font-weight: 600;

	color: #7a8590;

	white-space: nowrap;
}

.vf-home-multicity__limit[hidden] {
	display: none !important;
}


/* =========================================================
   TABLET / NARROW DESKTOP
   ========================================================= */

@media (max-width: 1180px) {

	.vf-home-search-slot {
		top: -65px;

		margin-bottom: -45px;
	}

	.vf-home-search {
		width: calc(100% - 64px);
		max-width: 820px;

		margin-left: auto;
		margin-right: auto;

		padding: 16px 18px;
	}

	.vf-home-search__main-row {
		grid-template-columns: 1fr;

		gap: 10px;
	}

	.vf-home-search__route,
	.vf-home-search__dates {
		width: 100%;
	}

	.vf-home-location-results {
		width: min(
			500px,
			calc(100vw - 64px)
		);
	}

	.vf-home-calendar {
		left: 0;
		right: auto;

		width: 100%;
		max-width: 100%;
	}

	.vf-home-calendar__months {
		gap: 20px;
	}

	.vf-home-search__bottom-row {
		flex-wrap: wrap;

		gap: 10px;
	}

	.vf-home-multicity__route {
		grid-template-columns:
			minmax(0, 1fr)
			260px;
	}

	.vf-home-multicity__date {
		min-width: 0;
	}

	.vf-home-multicity__action {
		flex: 1 1 auto;
	}

}


/* =========================================================
   HALF-SCREEN / TABLET CONTENT WIDTH
   Matches the site's 720px content container.

   IMPORTANT:
   This applies to the shared search component everywhere,
   including both the homepage and Flights page.
   ========================================================= */

@media (min-width: 992px) and (max-width: 1199px) and (orientation: landscape) {

	.vf-home-search,
	#vf-home-search {
		width: 960px !important;
		max-width: calc(100% - 30px) !important;

		margin-left: auto !important;
		margin-right: auto !important;
	}

}

@media (min-width: 1200px) and (max-width: 1366px) and (orientation: landscape) {

	.vf-home-search,
	#vf-home-search {
		width: 1110px !important;
		max-width: calc(100% - 30px) !important;

		margin-left: auto !important;
		margin-right: auto !important;
	}

}

@media (min-width: 768px) and (max-width: 991px) {

	.vf-home-search-slot {
		width: 100%;
	}

	.vf-home-search,
	#vf-home-search {
		width: 720px !important;
		max-width: calc(100% - 30px) !important;

		margin-left: auto !important;
		margin-right: auto !important;

		box-sizing: border-box !important;
	}

}

/* Match the established Stories container in tablet portrait. */
@media (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
	.vf-home-search,
	#vf-home-search {
		width: 690px !important;
		max-width: calc(100% - 30px) !important;
		margin-right: auto !important;
		margin-left: auto !important;
	}
}


/* =========================================================
   COMPACT TABLET / HALF-SCREEN MULTI-CITY
   ========================================================= */

@media (max-width: 900px) {

	.vf-home-multicity__route {
		grid-template-columns: 1fr;

		gap: 8px;
	}

	.vf-home-multicity__date-button {
		width: 100%;
	}

}


/* =========================================================
   MOBILE SEARCH CARD
   ========================================================= */

@media (max-width: 575px) {

	.vf-home-search-slot {
		top: -40px;

		margin-bottom: -170px;
	}

	.vf-home-search {
		padding: 14px;

		border-radius: 14px;
	}

	.vf-home-trip-option {
		flex: 1;

		width: auto;

		font-size: 13px;
	}

	.vf-home-search__route,
	.vf-home-search__dates {
		grid-template-columns: 1fr;

		gap: 8px;
	}

	.vf-home-field,
	.vf-home-date {
		border: 1px solid #d9dee5;
		border-radius: 10px !important;
	}

	.vf-home-field:last-child {
		padding-left: 15px;

		border-left:
			1px solid #d9dee5 !important;
	}

	.vf-home-field:last-child
	.vf-home-field__label,

	.vf-home-field:last-child.has-value
	.vf-home-field__label,

	.vf-home-field:last-child:focus-within
	.vf-home-field__label {
		left: 15px;
	}

	#vf-home-return {
		border-left:
			1px solid #d9dee5 !important;
	}

	.vf-home-search__swap {
		display: none;
	}

	.vf-home-search__bottom-row {
		display: grid;

		grid-template-columns: 1fr;
	}

	.vf-home-search__submit,
	.vf-home-search__select {
		width: 100%;
	}

	.vf-home-search__bottom-row
	.vf-home-dropdown:nth-child(2) {
		display: none;
	}

	#vf-home-travelers-toggle {
		width: 100%;
	}

	#vf-home-travelers-label {
		min-width: 0;

		overflow: hidden;

		white-space: nowrap;
		text-overflow: ellipsis;
	}


	/* -----------------------------------------------------
	   MULTI-CITY MOBILE
	   ----------------------------------------------------- */

	.vf-home-multicity__route {
		grid-template-columns: 1fr;

		gap: 8px;
	}

	.vf-home-multicity__locations {
		grid-template-columns: 1fr;

		gap: 8px;
	}

	.vf-home-multicity__locations
	.vf-home-field:first-child,

	.vf-home-multicity__locations
	.vf-home-field:last-child {
		padding-left: 15px;

		border:
			1px solid #d9dee5;

		border-radius:
			10px !important;
	}

	.vf-home-multicity__locations
	.vf-home-field:first-child
	.vf-home-field__label,

	.vf-home-multicity__locations
	.vf-home-field:last-child
	.vf-home-field__label,

	.vf-home-multicity__locations
	.vf-home-field:first-child.has-value
	.vf-home-field__label,

	.vf-home-multicity__locations
	.vf-home-field:last-child.has-value
	.vf-home-field__label,

	.vf-home-multicity__locations
	.vf-home-field:first-child:focus-within
	.vf-home-field__label,

	.vf-home-multicity__locations
	.vf-home-field:last-child:focus-within
	.vf-home-field__label {
		left: 15px;
	}

	.vf-home-multicity__date-button {
		border-radius:
			10px !important;
	}

	.vf-home-multicity__remove {
		top: -7px;
		right: -7px;
	}

	.vf-home-multicity__action {
		width: 100%;
	}

	.vf-home-multicity__add,
	.vf-home-multicity__limit {
		width: 100%;
	}

	.vf-home-multicity__add {
		justify-content: center;
	}

}


/* =========================================================
   MOBILE WIDGET POSITION
   ========================================================= */

@media (max-width: 767px) {

	#vf-home-search {
		width:
			calc(100vw - 32px) !important;

		max-width: none !important;

		margin-left: 50% !important;
		margin-right: 0 !important;

		transform:
			translate(-50%, -110px) !important;

		box-sizing:
			border-box !important;
	}

}


/* =========================================================
   MOBILE HERO TYPOGRAPHY
   ========================================================= */

@media (max-width: 767px) {

	.banner-content .h1-title {
		margin-bottom: 16px !important;

		font-size:
			clamp(
				42px,
				12vw,
				50px
			) !important;

		line-height:
			1.04 !important;

		letter-spacing:
			-0.025em !important;
	}

	.banner-content .h4-title {
		max-width: 34ch;

		font-size:
			clamp(
				17px,
				4.8vw,
				19px
			) !important;

		line-height:
			1.5 !important;

		letter-spacing:
			0 !important;
	}

}


/* =========================================================
   MOBILE FULL-SCREEN LOCATION SEARCH
   ========================================================= */

.vf-mobile-location-search {
	display: none;
}

@media (max-width: 767px) {

	html.vf-mobile-location-search-open,
	body.vf-mobile-location-search-open {
		overflow: hidden !important;
	}


	.vf-mobile-location-search {
		--vf-mobile-location-gutter: 16px;

		position: fixed !important;

		inset: 0 !important;

		z-index: 2147483647 !important;

		display: flex;
		flex-direction: column;

		width: 100vw;
		height: 100dvh;
		box-sizing: border-box;

		background: #fff;

		overflow: hidden;
	}


	.vf-mobile-location-search[hidden] {
		display: none !important;
	}


	body.vf-mobile-location-search-open #masthead,
	body.vf-mobile-location-search-open #site-header,
	body.vf-mobile-location-search-open .site-header,
	body.vf-mobile-location-search-open .main-header,
	body.vf-mobile-location-search-open .header-area,
	body.vf-mobile-location-search-open .elementor-location-header {
		display: none !important;
	}


	.vf-mobile-location-search__header {
		position: relative;

		flex: 0 0 auto;

		width: 100% !important;
		box-sizing: border-box !important;

		padding-top: calc(12px + env(safe-area-inset-top)) !important;
		padding-right: calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-right)) !important;
		padding-bottom: 16px !important;
		padding-left: calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-left)) !important;

		background: #168fda;

		color: #fff;

		overflow: hidden;

		isolation: isolate;
	}


	.vf-mobile-location-search__header::before {
		content: "";

		position: absolute;

		z-index: -1;

		top: 0;
		right: 0;
		bottom: 0;

		width: 72%;

		background:
			url("../images/mobile-search-travel-pattern.png")
			right center / cover
			no-repeat;

		opacity: .42;

		-webkit-mask-image:
			linear-gradient(
				to right,
				transparent 0%,
				rgba(0, 0, 0, .15) 18%,
				#000 55%
			);

		mask-image:
			linear-gradient(
				to right,
				transparent 0%,
				rgba(0, 0, 0, .15) 18%,
				#000 55%
			);

		pointer-events: none;
	}


	.vf-mobile-location-search__back {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 32px;
		height: 32px;

		margin: 0 0 14px !important;
		padding: 0;

		border: 0;
		border-radius: 8px;

		background:
			rgba(255, 255, 255, .18);

		color: #fff;

		cursor: pointer;
	}


	.vf-mobile-location-search__back svg {
		width: 20px;
		height: 20px;
	}


	.vf-mobile-location-search__route-row {
		display: grid;

		grid-template-columns:
			minmax(0, .9fr)
			38px
			minmax(0, 1.1fr);

		align-items: center;
		justify-content: start;

		column-gap: 8px;

		width: 100%;
		max-width: none;
	}


	.vf-mobile-location-search__route-value {
		display: block;

		width: 100%;
		min-width: 0;
		max-width: none;

		margin: 0 !important;
		padding: 0 !important;

		overflow: hidden;

		border: 0 !important;
		outline: 0 !important;

		background:
			transparent !important;

		box-shadow:
			none !important;

		color: #fff !important;

		font-size: clamp(16px, 4.8vw, 19px) !important;
		line-height: 24px !important;
		font-weight: 400 !important;

		opacity: .72;

		text-align: left;

		white-space: nowrap;
		text-overflow: ellipsis;

		appearance: none;
		-webkit-appearance: none;

		-webkit-tap-highlight-color:
			transparent;
	}


	.vf-mobile-location-search__route-value:first-child {
		text-align: left;
	}


	.vf-mobile-location-search__route-value:last-child {
		text-align: left;
	}


	.vf-mobile-location-search__route-value:disabled {
		cursor: default;
		opacity: 1;
	}


	.vf-mobile-location-search__route-value span {
		display: block;

		width: 100%;

		overflow: hidden;

		color: inherit !important;

		font-size: inherit !important;
		line-height: inherit !important;
		font-weight: inherit !important;

		white-space: nowrap;
		text-overflow: ellipsis;
	}


	.vf-mobile-location-search__route-value.is-active {
		color: #fff !important;

		font-weight: 700 !important;

		opacity: 1;
	}


	.vf-mobile-location-search__route-value:first-child,
	.vf-mobile-location-search__route-value:first-child.is-active {
		color: #fff !important;
		font-weight: 400 !important;
		opacity: 1 !important;
	}


	.vf-mobile-location-search__switch {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 38px !important;
		height: 34px !important;

		margin: 0 !important;
		padding: 0 !important;

		border: 0 !important;
		outline: 0 !important;
		border-radius: 9px !important;

		background: #fff !important;

		box-shadow:
			0 2px 6px
			rgba(0, 0, 0, .08) !important;

		appearance: none;
		-webkit-appearance: none;

		-webkit-tap-highlight-color:
			transparent;
	}


	.vf-mobile-location-search__switch-icon {
		display: block;

		width: 24px;
		height: 20px;

		pointer-events: none;
	}


	.vf-mobile-location-search__switch-icon path {
		fill: none;

		stroke: #394653;
		stroke-width: 2;

		stroke-linecap: round;
		stroke-linejoin: round;
	}


	.vf-mobile-location-search__passengers {
		margin: 14px 0 0 !important;
		padding: 0 !important;

		font-size: 16px;
		line-height: 22px;
		font-weight: 600;

		color: #fff;
	}


	.vf-mobile-location-search__body {
		display: flex;
		flex-direction: column;

		flex: 1 1 auto;

		min-height: 0;

		width: 100% !important;
		box-sizing: border-box !important;

		padding-top: 12px !important;
		padding-right: calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-right)) !important;
		padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
		padding-left: calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-left)) !important;

		overflow: hidden;

		background: #fff;

	}


	.vf-mobile-location-search__toolbar {
		position: relative;
		top: auto;
		z-index: 5;
		flex: 0 0 auto;

		box-sizing: border-box;

		margin: -12px calc(0px - var(--vf-mobile-location-gutter) - env(safe-area-inset-right)) 0 calc(0px - var(--vf-mobile-location-gutter) - env(safe-area-inset-left));
		padding: 12px calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-right)) 15px calc(var(--vf-mobile-location-gutter) + env(safe-area-inset-left));

		background: #fff;
	}


	.vf-mobile-location-search__toolbar::after {
		content: "";

		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;

		height: 1px;

		background: #d9dee3;
		opacity: 0;

		pointer-events: none;

		transition: opacity .12s ease;
	}


	.vf-mobile-location-search__toolbar.is-scrolled::after {
		opacity: 1;
	}


	.vf-mobile-location-search__input-wrap {
		position: relative;

		z-index: 1;

		top: auto;

		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			36px;

		align-items: center;

		column-gap: 9px;

		width: 100% !important;
		height: 60px;
		box-sizing: border-box !important;

		margin: 0 !important;
		padding: 0 12px !important;

		border: 2px solid #168fda;
		border-radius: 10px;

		background: #fff;

		box-shadow: none;
	}


	.vf-mobile-location-search__results {
		flex: 1 1 auto;
		min-height: 0;

		width: 100%;
		box-sizing: border-box;

		padding: 4px 2px 20px !important;

		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}


	#vf-mobile-location-input {
		width: 100%;
		min-width: 0;

		padding: 0;

		border: 0;
		outline: 0;

		background: transparent;

		font-size: 20px;
		line-height: 26px;
		font-weight: 500;

		color: #202a35;

		appearance: none;
		-webkit-appearance: none;
	}


	#vf-mobile-location-input::placeholder {
		color: #9aa4af;

		opacity: 1;
	}


	.vf-mobile-location-search__clear {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 34px;
		height: 34px;

		padding: 0;

		border: 0 !important;
		border-radius: 9px !important;

		background: #eef1f4 !important;

		color: #7d8894 !important;

		font-size: 22px;
		line-height: 1;

		outline: none !important;
		box-shadow: none !important;
	}


	.vf-mobile-location-search__status {
		margin: 0 0 10px;

		font-size: 14px;

		color: #7e8893;
	}


	.vf-mobile-location-search__status:empty {
		display: none;
	}


	.vf-mobile-location-country {
		margin-bottom: 18px;
	}


	.vf-mobile-location-country__heading {
		display: flex;
		align-items: center;

		gap: 9px;

		padding: 5px 0 8px;

		font-size: 18px;
		line-height: 24px;

		color: #252f3a;
	}


	.vf-mobile-location-country__heading strong {
		font-weight: 700;
	}


	.vf-mobile-location-country__flag {
	display: block;
	flex: 0 0 30px;

	width: 30px;
	height: 20px;

	object-fit: cover;

	border: 1px solid rgba(25, 35, 45, 0.1);
	border-radius: 3px;
}


	.vf-mobile-location-city {
		border-bottom:
			1px solid #e7ebef;
	}


	.vf-mobile-location-city__header {
		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			44px;

		align-items: center;

		column-gap: 8px;

		width: 100%;
		min-height: 54px;

		padding: 0;

		background: #fff;
	}


	.vf-mobile-location-city__select {
		display: grid;

		grid-template-columns:
			38px
			minmax(0, 1fr);

		align-items: center;

		column-gap: 8px;

		min-width: 0;
		min-height: 54px;

		padding: 8px 6px;

		border: 0;

		background: #fff;

		text-align: left;

		cursor: pointer;
	}


	.vf-mobile-location-city__toggle {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 44px;
		height: 44px;

		padding: 0;

		border: 0;
		border-radius: 10px;

		background: transparent;

		cursor: pointer;
	}


	.vf-mobile-location-city__icon {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 34px;
		height: 34px;

		border-radius: 8px;

		background: #f0f3f5;

		color: #60717d;

		font-size: 20px !important;
	}


	.vf-mobile-location-city__content {
		display: flex;
		align-items: baseline;

		gap: 8px;

		min-width: 0;
	}


	.vf-mobile-location-city__name {
		min-width: 0;

		overflow: hidden;

		font-size: 16px;
		line-height: 21px;
		font-weight: 700;

		color: #168fda;

		white-space: nowrap;
		text-overflow: ellipsis;
	}


	.vf-mobile-location-city__all {
		flex: 0 0 auto;

		font-size: 11px;
		line-height: 15px;
		font-weight: 600;

		letter-spacing: .04em;

		color: #7d8793;

		white-space: nowrap;
	}


	.vf-mobile-location-city__chevron {
		justify-self: end;

		color: #718091;

		font-size: 22px !important;

		transition:
			transform .15s ease;
	}


	.vf-mobile-location-city.is-open
	.vf-mobile-location-city__chevron {
		transform: rotate(180deg);
	}


	.vf-mobile-location-city__airports {
		display: none;
	}


	.vf-mobile-location-city.is-open
	.vf-mobile-location-city__airports {
		display: block;
	}


	.vf-mobile-location-airport {
		display: grid;

		grid-template-columns:
			38px
			minmax(0, 1fr)
			auto;

		align-items: center;

		column-gap: 8px;

		width: 100%;
		min-height: 54px;

		padding:
			8px
			6px
			8px
			38px;

		border: 0;
		border-top:
			1px solid #eef1f4;

		background: #fff;

		text-align: left;

		cursor: pointer;
	}


	.vf-mobile-location-airport__icon {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 30px;
		height: 30px;

		border-radius: 8px;

		background: #f0f3f5;

		color: #60717d;

		font-size: 18px !important;
	}


	.vf-mobile-location-airport__name {
		min-width: 0;

		overflow: hidden;

		font-size: 14px;
		line-height: 19px;
		font-weight: 600;

		color: #283340;

		white-space: nowrap;
		text-overflow: ellipsis;
	}


	.vf-mobile-location-airport__code {
		padding-left: 8px;

		font-size: 13px;
		line-height: 18px;
		font-weight: 600;

		color: #168fda;

		white-space: nowrap;
	}


	.vf-mobile-location-airport:active,
	.vf-mobile-location-city__select:active,
	.vf-mobile-location-city__toggle:active {
		background: #f4f8fb;
	}


	.vf-mobile-location-search__empty {
		padding: 28px 12px;

		text-align: center;

		font-size: 15px;
		line-height: 22px;

		color: #7e8893;
	}


	.vf-mobile-location-search button,
	.vf-mobile-location-search button:hover,
	.vf-mobile-location-search button:focus,
	.vf-mobile-location-search button:focus-visible,
	.vf-mobile-location-search button:active {
		outline: none !important;
		box-shadow: none !important;

		-webkit-tap-highlight-color:
			transparent;
	}

}


/* =========================================================
   MOBILE FULL-SCREEN PASSENGERS / CABIN
   ========================================================= */

@media (max-width: 767px) {

	html.vf-home-mobile-travelers-open,
	body.vf-home-mobile-travelers-open {
		width: 100% !important;
		height: 100% !important;

		overflow: hidden !important;

		overscroll-behavior:
			none !important;
	}


	body.vf-home-mobile-travelers-open #masthead,
	body.vf-home-mobile-travelers-open #site-header,
	body.vf-home-mobile-travelers-open .site-header,
	body.vf-home-mobile-travelers-open .main-header,
	body.vf-home-mobile-travelers-open .header-area,
	body.vf-home-mobile-travelers-open .elementor-location-header {
		display: none !important;
	}


	body.vf-home-mobile-travelers-open
	> #vf-home-travelers-menu {
		position: fixed !important;

		inset: 0 !important;

		z-index:
			2147483647 !important;

		display: flex !important;
		flex-direction:
			column !important;

		width: 100vw !important;
		height: 100dvh !important;

		min-width: 0 !important;
		max-width: none !important;

		margin: 0 !important;
		padding: 0 !important;

		overflow: hidden !important;

		border: 0 !important;
		border-radius: 0 !important;

		background: #fff !important;

		box-shadow: none !important;

		transform: none !important;

		box-sizing:
			border-box !important;
	}


	body.vf-home-mobile-travelers-open
	> #vf-home-travelers-menu[hidden] {
		display: none !important;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-travelers__header {
		display: block !important;

		flex: 0 0 auto !important;

		width: 100%;

		padding:
			calc(
				16px +
					env(safe-area-inset-top)
			)
			16px
			14px !important;

		border-bottom:
			1px solid #e5e9ed;

		background: #fff;

		box-sizing: border-box;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-travelers__header strong {
		font-size: 22px !important;
		line-height: 28px !important;
		font-weight: 700 !important;

		color: #20262d;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-travelers__close {
		display: none !important;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-traveler-row {
		flex: 0 0 auto !important;

		width: 100%;

		min-height: 72px;

		margin: 0 !important;
		padding:
			12px
			16px !important;

		border-top: 0 !important;
		border-bottom:
			1px solid #edf0f3 !important;

		box-sizing: border-box;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-traveler-row strong {
		display: block;

		margin-bottom: 3px;

		font-size: 16px;
		line-height: 21px;
		font-weight: 600;

		color: #20262d;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-traveler-row
	> div:first-child span {
		font-size: 13px;
		line-height: 18px;

		color: #7b8792;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-counter {
		display: flex;
		align-items: center;

		gap: 12px;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-counter button {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 44px;
		height: 44px;

		padding: 0;

		border: 1px solid #cad3da;
		border-radius: 50%;

		background: #fff;

		color: #128add;

		font-size: 22px;
		line-height: 1;

		box-shadow: none;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-counter button:disabled,

	body.vf-home-mobile-travelers-open
	.vf-home-counter button.is-disabled {
		opacity: .32 !important;

		border-color:
			#d9dee3 !important;

		background:
			#f5f6f7 !important;

		color:
			#8c969f !important;

		cursor:
			default !important;

		pointer-events:
			none !important;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-counter > span {
		min-width: 22px;

		font-size: 16px !important;
		font-weight: 700 !important;

		color: #20262d !important;

		text-align: center;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin {
		display: block !important;

		flex: 0 0 auto !important;

		padding: 18px 16px 16px !important;

		background: #fff;

		box-sizing: border-box;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin__divider {
		display: none !important;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin__title {
		margin: 0 0 12px;

		font-size: 22px !important;
		line-height: 28px !important;
		font-weight: 700 !important;

		color: #20262d;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin__options {
		display: grid;

		grid-template-columns:
			1fr
			1fr;

		gap: 10px;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin__option {
		height: 48px;

		padding: 0 12px;

		border: 1px solid #d9dee5;
		border-radius: 10px;

		background: #fff;

		color: #252525;

		font-size: 15px;
		font-weight: 600;

		text-align: center;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-cabin__option.is-active {
		border-color: #b9dcf5;

		background: #eaf5fd;

		color: #128add;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-travelers__footer {
		display: block !important;

		flex: 0 0 auto !important;

		width: 100%;

		margin-top: auto !important;

		padding:
			12px
			16px
			calc(
				12px +
					env(safe-area-inset-bottom)
			) !important;

		border-top:
			1px solid #e5e9ed;

		background: #fff;

		box-sizing: border-box;
	}


	body.vf-home-mobile-travelers-open
	.vf-home-mobile-travelers__ok {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 100% !important;
		height: 48px !important;

		margin: 0 !important;
		padding: 0 !important;

		border: 0 !important;
		border-radius:
			10px !important;

		background:
			#128add !important;

		color: #fff !important;

		font-size: 16px !important;
		line-height: 1 !important;
		font-weight: 700 !important;

		box-shadow:
			none !important;
	}

}


/* =========================================================
   MOBILE FULL-SCREEN CALENDAR
   ========================================================= */

@media (max-width: 767px) {

	html.vf-home-mobile-calendar-open,
	body.vf-home-mobile-calendar-open {
		width: 100% !important;
		height: 100% !important;

		overflow: hidden !important;

		overscroll-behavior:
			none !important;
	}


	body.vf-home-mobile-calendar-open #masthead,
	body.vf-home-mobile-calendar-open #site-header,
	body.vf-home-mobile-calendar-open .site-header,
	body.vf-home-mobile-calendar-open .main-header,
	body.vf-home-mobile-calendar-open .header-area,
	body.vf-home-mobile-calendar-open .elementor-location-header {
		display: none !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar {
		position: fixed !important;

		inset: 0 !important;

		z-index:
			2147483647 !important;

		display: flex !important;
		flex-direction:
			column !important;

		width: 100vw !important;
		height: 100dvh !important;

		max-width: none !important;
		max-height: none !important;

		margin: 0 !important;
		padding: 0 !important;

		overflow: hidden !important;

		border: 0 !important;
		border-radius: 0 !important;

		background: #fff !important;

		box-shadow: none !important;

		transform: none !important;

		box-sizing:
			border-box !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar[hidden] {
		display: none !important;
	}


	/* -----------------------------------------------------
	   MOBILE CALENDAR HEADER
	   ----------------------------------------------------- */

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__header {
		position: relative !important;

		z-index: 20;

		flex: 0 0 auto !important;

		display: block !important;

		width: 100% !important;
		height: auto !important;

		margin: 0 !important;

		padding:
			env(safe-area-inset-top)
			0
			0 !important;

		border-bottom:
			1px solid #e3e8ec !important;

		background: #fff !important;

		box-sizing:
			border-box !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__nav,

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__title {
		display: none !important;
	}


	/* -----------------------------------------------------
	   DEPART / RETURN TABS
	   ----------------------------------------------------- */

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-modes {
		display: grid !important;

		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			) !important;

		width: 100% !important;
		height: 72px !important;

		margin: 0 !important;
		padding: 0 !important;

		background: #fff !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode {
		position: relative;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 100% !important;
		height: 72px !important;

		margin: 0 !important;
		padding: 0 !important;

		border: 0 !important;
		border-radius: 0 !important;

		background:
			transparent !important;

		color: #707070 !important;

		font: inherit !important;
		font-size: 20px !important;
		line-height: 24px !important;
		font-weight: 700 !important;

		text-align: center;

		cursor: pointer;

		appearance: none;
		-webkit-appearance: none;

		box-shadow:
			none !important;

		outline:
			none !important;

		-webkit-tap-highlight-color:
			transparent;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode::after {
		content: "";

		position: absolute;

		left: 0;
		right: 0;
		bottom: -1px;

		height: 4px;

		background: transparent;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode.is-active {
		color: #1598dc !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode.is-active::after {
		background:
			#1598dc !important;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode:disabled {
		color: #b7bdc2 !important;

		cursor: default;
	}


	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode:disabled::after {
		background:
			transparent !important;
	}


	/* -----------------------------------------------------
	   SCROLLABLE MONTH AREA
	   ----------------------------------------------------- */

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__months {
		flex: 1 1 auto !important;

		display: block !important;

		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;

		margin: 0 !important;

		padding:
			30px
			18px
			calc(
				34px +
					env(safe-area-inset-bottom)
			) !important;

		overflow-x:
			hidden !important;

		overflow-y:
			auto !important;

		background: #fff !important;

		box-sizing:
			border-box !important;

		overscroll-behavior: contain;

		-webkit-overflow-scrolling:
			touch;

		scroll-behavior: smooth;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-month {
		display: block !important;

		width: 100% !important;

		margin:
			0
			0
			42px !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-month:last-child {
		margin-bottom:
			12px !important;
	}


	/* -----------------------------------------------------
	   MONTH TITLE
	   ----------------------------------------------------- */

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-month__title {
		margin:
			0
			0
			18px !important;

		font-size: 20px !important;
		line-height: 26px !important;
		font-weight: 700 !important;

		text-align:
			center !important;

		color: #20262d !important;
	}


	/* -----------------------------------------------------
	   WEEKDAYS / DAYS
	   ----------------------------------------------------- */

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-weekdays,

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-grid {
		display: grid !important;

		grid-template-columns:
			repeat(
				7,
				minmax(0, 1fr)
			) !important;

		gap: 5px !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-weekdays {
		margin-bottom:
			8px !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-weekdays span {
		display: flex;
		align-items: center;
		justify-content: center;

		height: 32px !important;

		font-size: 13px !important;
		line-height: 18px !important;
		font-weight: 500 !important;

		color: #84909a !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 42px !important;
		height: 42px !important;

		max-width: 100% !important;

		justify-self:
			center !important;

		margin: 0 !important;
		padding: 0 !important;

		border: 0 !important;
		border-radius: 8px !important;

		background: transparent;

		font-size: 15px !important;
		line-height: 1 !important;
		font-weight: 600 !important;

		color: #20262d;

		box-shadow: none;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day:disabled {
		color: #c6cdd3 !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-fare-low {
		background: #8ee3bd !important;
		color: #0b573a !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-fare-typical {
		background: #ffc970 !important;
		color: #6a3c00 !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-fare-high {
		background: #ff9aa4 !important;
		color: #7a1e2a !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-today {
		box-shadow:
			inset
			0 0 0 1px
			#128add !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-depart,

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-return {
		background:
			#128add !important;

		color: #fff !important;

		border-radius:
			8px !important;

		font-weight:
			700 !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.has-fare.is-depart,

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.has-fare.is-return {
		background:
			var(--vf-calendar-fare-background) !important;

		color:
			var(--vf-calendar-fare-color) !important;

		box-shadow:
			inset 0 0 0 2px #20262d !important;
	}


	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day.is-between {
		background:
			#eaf5fd !important;

		color:
			#128add !important;

		border-radius:
			0 !important;
	}

}

@media (max-width: 767px),
	(orientation: landscape) and (max-width: 932px) and (max-height: 500px) {
	body.vf-home-mobile-calendar-open > #vf-home-calendar .vf-home-fare-legend {
		flex: 0 0 auto;
		width: 100%;
		margin: 0 !important;
		padding:
			10px
			18px
			calc(10px + env(safe-area-inset-bottom)) !important;
		background: #fff;
		box-sizing: border-box;
	}

	body.vf-home-mobile-calendar-open > #vf-home-calendar .vf-home-fare-legend__note {
		width: 100%;
		margin-left: 0;
		text-align: center;
	}
}


/* =========================================================
   HEADER SUPPORT LOCAL SVG
   ========================================================= */

.vf-header-support__icon {
	display: block !important;

	flex: 0 0 20px !important;

	width: 20px !important;
	height: 20px !important;

	min-width: 20px !important;
	max-width: 20px !important;

	margin: 0 !important;
	padding: 0 !important;

	object-fit: contain;

	background: none !important;
}

.vf-header-support__icon::before,
.vf-header-support__icon::after,
.vf-header-support::before,
.vf-header-support::after {
	content: none !important;

	display: none !important;
}

.vf-header-support__label {
	display: inline-block !important;
}


/* =========================================================
   FLIGHTS PAGE — SHARED SEARCH POSITION

   Width remains controlled by the same responsive
   .vf-home-search rules above, so the homepage and
   Flights page stay visually identical.
   ========================================================= */

.page-template-template-flights
.vf-home-search-slot {
	top: -10px;

	margin-bottom: 10px;
}

/* =========================================================
   PHONE SPACING — PORTRAIT AND LANDSCAPE
   Keep the established position; normalize internal rhythm.
   ========================================================= */

@media (max-width: 767px),
	(orientation: landscape) and (max-width: 932px) and (max-height: 500px) {
	.vf-home-search__route > .vf-home-field:last-child .vf-home-field__label,
	.vf-home-search__route > .vf-home-field:last-child.has-value .vf-home-field__label,
	.vf-home-search__route > .vf-home-field:last-child:focus-within .vf-home-field__label {
		left: 15px !important;
		right: auto !important;
		width: auto !important;
		text-align: left !important;
	}

	.vf-home-search,
	#vf-home-search {
		width: calc(100vw - 32px) !important;
		max-width: none !important;
		padding: 16px !important;
		border-radius: 14px;
		box-sizing: border-box !important;
	}

	.vf-home-search__trip-types,
	.vf-home-search__main-row,
	.vf-home-search__bottom-row {
		gap: 12px;
	}

	.vf-home-search__trip-types {
		margin-bottom: 12px;
	}

	.vf-home-trip-option,
	.vf-home-search__select,
	.vf-home-search__submit,
	.vf-home-multicity__add {
		min-height: 44px;
	}
}

/* Match the homepage Stories container on landscape phones. */
@media (orientation: landscape) and (max-width: 932px) and (max-height: 500px) {
	.vf-home-search,
	#vf-home-search {
		width: 688px !important;
		max-width: calc(100vw - 62px) !important;
		margin-right: auto !important;
		margin-left: auto !important;
		box-sizing: border-box !important;
	}
}

/* =========================================================
   MOBILE CALENDAR — ACCESSIBLE TOUCH TARGETS AND SPACING
   ========================================================= */

@media (max-width: 767px) {
	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-modes {
		height: 64px !important;
		min-height: 64px !important;
	}

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__mobile-mode {
		height: 64px !important;
		min-height: 64px !important;
		font-size: 16px !important;
		line-height: 24px !important;
		font-weight: 600 !important;
	}

	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__months {
		padding-top: 40px !important;
	}

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-day {
		width: 44px !important;
		height: 44px !important;
	}
}

@media (max-width: 374px) {
	body.vf-home-mobile-calendar-open
	> #vf-home-calendar
	.vf-home-calendar__months {
		padding-right: 12px !important;
		padding-left: 12px !important;
	}

	body.vf-home-mobile-calendar-open
	.vf-home-calendar-weekdays,
	body.vf-home-mobile-calendar-open
	.vf-home-calendar-grid {
		gap: 4px !important;
	}
}

/* Keep translated trip-type labels on one line. */
.vf-home-trip-option {
	flex-basis: auto;
	width: auto;
	min-width: 112px;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.vf-home-trip-option {
		flex: 1 1 0;
		min-width: 0;
	}
}
