.xts-travel-header-host,
.wp-site-blocks > header:has(.xts-travel-header) {
	position: sticky;
	inset-block-start: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.xts-travel-header {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 1px 0 rgb(0 0 0 / 10%);
	padding-inline: var(--wp--preset--spacing--30);
}
.xts-travel-header-host { pointer-events: none; }
.xts-travel-header-host .xts-travel-header { pointer-events: auto; }
.xts-travel-header .xts-travel-header-inner {
	display: grid;
	grid-template-columns: minmax(80px, 110px) minmax(0, 1fr);
	gap: 12px 24px;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-block: 12px;
	transition: padding 250ms ease, row-gap 250ms ease;
}
.xts-travel-header-brand { align-self: center; }
.xts-travel-header-brand .wp-block-site-title { font-size: 18px; margin: 0; }
.xts-travel-header-brand img { max-width: 100%; height: auto; max-height: 72px; object-fit: contain; transition: max-height 250ms ease; }
.xts-travel-header .xts-travel-header-top {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	padding-block-end: 10px;
	max-height: var(--xts-travel-header-top-height, 300px);
	box-sizing: content-box;
	transition: max-height 250ms ease, padding 250ms ease, opacity 180ms ease, visibility 250ms;
}
.xts-travel-header.is-compact .xts-travel-header-top {
	max-height: 0;
	min-height: 0;
	padding-block-end: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
}
.xts-travel-header.is-measuring .xts-travel-header-top { max-height: none; }
.xts-travel-header.is-measuring,
.xts-travel-header.is-measuring * { transition: none; }
.xts-travel-header-top p { margin: 0; }
.xts-travel-header-top a { text-decoration: none; }
.xts-travel-header .xts-travel-header-tools { display: flex; align-items: center; gap: 16px; }
.xts-travel-header .xts-account-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-inline-size: 44px;
	min-block-size: 44px;
}
.xts-travel-header .xts-account-link svg { display: block; }
.xts-travel-header .wp-block-social-links { margin: 0; gap: 10px; }
.xts-travel-header .xts-language-switcher { display: flex; gap: 8px; margin-block-start: 0; }
.xts-travel-header .xts-language-switcher a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 44px;
	min-block-size: 28px;
	box-sizing: border-box;
	padding: 0 8px;
	line-height: 1.4;
	border: 1px solid transparent;
	border-radius: 0;
	text-decoration: none;
}
.xts-travel-header .xts-language-switcher a[aria-current] {
	background-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}
.xts-travel-header .xts-language-switcher a:hover {
	background-color: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--base);
}
.xts-travel-header .xts-travel-header-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; }
.xts-travel-header .wp-block-navigation { font-size: 14px; font-weight: 600; }
.xts-travel-header .wp-block-navigation .wp-block-navigation__submenu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
}
.xts-travel-header .wp-block-navigation .wp-block-navigation__submenu-icon svg {
	display: block;
	margin-block-start: 0;
	transform: translateY(-2px);
}
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content {
	position: relative;
	text-decoration: none;
	transition: color 200ms ease;
}
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	block-size: 2px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 200ms ease;
	pointer-events: none;
}
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content:hover,
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--accent-2);
	text-decoration: none;
}
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content:hover::after,
.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content:focus-visible::after {
	transform: scaleX(1);
}
.xts-travel-header .wp-block-button__link { font-size: 13px; padding: 10px 18px; border-radius: 0; white-space: nowrap; }
.xts-travel-header .xts-travel-header-cta { display: flex; }
.xts-travel-header.is-compact .xts-travel-header-inner { padding-block: 8px; row-gap: 0; }
.xts-travel-header.is-compact .xts-travel-header-brand img { max-height: 40px; }
.xts-travel-header a:focus-visible,
.xts-travel-header button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media (min-width: 1101px) {
	.xts-travel-header .xts-travel-header-inner {
		grid-template-columns: 160px minmax(0, 1fr);
		row-gap: 8px;
		padding-block: 8px;
	}
	.xts-travel-header-brand { grid-row: 1 / 3; }
	.xts-travel-header .xts-travel-header-top {
		grid-column: 2;
		min-height: 28px;
		padding-block-end: 0;
	}
	.xts-travel-header .xts-travel-header-bottom {
		grid-column: 2;
		min-height: 44px;
	}
	.xts-travel-header .xts-travel-header-cta .wp-block-button__link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		box-sizing: border-box;
	}
	.xts-travel-header .xts-travel-header-cta { display: flex; }
}
@media (min-width: 1101px) {
	/* Only the country submenu uses columns; core still controls its visibility. */
	.xts-travel-header .wp-block-navigation .wp-block-navigation__submenu-container:has(> li > a[href*="/destinations/"]) {
		display: grid;
		grid-template-columns: repeat(3, minmax(160px, 1fr));
		min-inline-size: 480px;
		gap: 0;
	}
}
/* Core retains responsibility for opening, closing, Escape and keyboard focus. */
.xts-travel-header .wp-block-navigation__responsive-container-open {
	align-items: center;
	justify-content: center;
	min-inline-size: 44px;
	min-block-size: 44px;
}
.xts-travel-header .wp-block-navigation__responsive-container-open svg { display: none; }
.xts-travel-header .wp-block-navigation__responsive-container-open::before {
	content: "";
	inline-size: 22px;
	block-size: 2px;
	background: currentColor;
	box-shadow: 0 -7px currentColor, 0 7px currentColor;
}
.xts-travel-menu-panels { display: none; }
@media (max-width: 1100px) {
	.xts-travel-header.has-menu-panels .is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container { display: none; }
	.xts-travel-header.has-menu-panels .is-menu-open .wp-block-navigation__responsive-dialog {
		block-size: calc(100dvh - 8px);
		min-block-size: 0;
	}
	.xts-travel-header.has-menu-panels .is-menu-open .wp-block-navigation__responsive-container-content { min-block-size: 0; }
	.xts-travel-header .xts-travel-menu-panels {
		display: block;
		position: relative;
		flex: 1;
		min-block-size: 0;
		inline-size: calc(100% + 40px);
		margin-inline: -20px;
		overflow: hidden;
	}
	.xts-travel-header .xts-travel-menu-panel {
		position: absolute;
		inset: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		visibility: hidden;
		transform: translateX(100%);
		transition: transform 250ms ease, visibility 250ms;
		padding: 0;
		background: var(--wp--preset--color--base);
	}
	.xts-travel-header .xts-travel-menu-panel.is-before { transform: translateX(-100%); }
	.xts-travel-header .xts-travel-menu-panel.is-active { transform: translateX(0); visibility: visible; }
	.xts-travel-header .xts-travel-menu-panel ul { list-style: none; padding: 4px 24px; margin: 0; }
	.xts-travel-header .xts-travel-menu-panel li { margin-block: 0; }
	.xts-travel-header .xts-travel-menu-panel a,
	.xts-travel-header .xts-travel-menu-panel button {
		display: flex;
		align-items: center;
		justify-content: space-between;
		inline-size: 100%;
		box-sizing: border-box;
		min-block-size: 40px;
		padding: 8px 8px;
		line-height: 1.5;
		border: 0;
		border-radius: 0;
		background: transparent;
		color: var(--wp--preset--color--contrast);
		font: inherit;
		font-size: 16px;
		font-weight: 400;
		text-align: start;
		text-decoration: none;
		cursor: pointer;
	}
	.xts-travel-header .xts-travel-menu-panel a:hover,
	.xts-travel-header .xts-travel-menu-panel button:hover { color: var(--wp--preset--color--accent-2); }
	.xts-travel-header .xts-travel-menu-forward::after { content: '\2192'; }
	.xts-travel-header .xts-travel-menu-panel .xts-travel-menu-back {
		justify-content: flex-start;
		padding-inline: 32px;
		font-size: 14px;
		background-color: color-mix(in srgb, var(--wp--preset--color--contrast) 6%, var(--wp--preset--color--base));
	}
	.xts-travel-header .xts-travel-menu-back:focus-visible { outline-offset: -4px; }
	.xts-travel-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.xts-travel-header .wp-block-navigation__responsive-container-open { display: flex; }
	/* Hide before the footer script moves tools into the dialog; retain the no-script fallback. */
	.xts-travel-header-js .xts-travel-header .xts-travel-header-tools,
	.xts-travel-header.has-overlay-tools .xts-travel-header-tools { display: none; }
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open {
		padding: 8px 20px 0;
		z-index: 100001;
		animation: xts-travel-menu-enter 250ms ease-out;
	}
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		display: flex;
		flex-direction: column;
		gap: 0;
		min-block-size: calc(100dvh - 8px);
		/* The overlay covers the admin bar, so core's reserved top margin is unnecessary. */
		margin-block-start: 0;
	}
	.xts-travel-header .is-menu-open .wp-block-navigation__responsive-container-close {
		display: flex;
		align-items: center;
		justify-content: center;
		inline-size: 44px;
		block-size: 44px;
	}
	/* Reserve the language row beside the close button when Polylang is inactive. */
	.xts-travel-header .is-menu-open .wp-block-navigation__responsive-dialog:not(:has(> .xts-language-switcher))::before {
		content: "";
		display: block;
		block-size: 44px;
		flex-shrink: 0;
	}
	.xts-travel-header .is-menu-open .xts-language-switcher {
		min-block-size: 44px;
		align-items: center;
		box-sizing: border-box;
		padding-inline-end: 56px;
		flex-wrap: wrap;
		font-size: 14px;
	}
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		flex: 1;
		align-items: stretch;
		gap: 0;
		padding-block-start: 8px;
	}
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
		align-items: stretch;
		inline-size: 100%;
		gap: 0;
	}
	.xts-travel-header .is-menu-open .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		box-sizing: border-box;
		min-block-size: 40px;
		padding-block: 8px;
		line-height: 1.5;
		font-size: 16px;
	}
	.xts-travel-header .is-menu-open .wp-block-social-links {
		margin-block-start: auto;
		margin-inline: -20px;
		inline-size: calc(100% + 40px);
		padding-inline: 20px;
		padding-block: 0;
		block-size: 44px;
		min-block-size: 44px;
		box-sizing: border-box;
		flex-shrink: 0;
		align-items: center;
		background-color: color-mix(in srgb, var(--wp--preset--color--contrast) 6%, var(--wp--preset--color--base));
		border-block-start: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, var(--wp--preset--color--base));
		justify-content: flex-start;
	}
	.xts-travel-header .is-menu-open .wp-block-social-links { gap: 4px; }
	.xts-travel-header .is-menu-open .wp-social-link a {
		display: flex;
		align-items: center;
		justify-content: center;
		inline-size: 44px;
		block-size: 44px;
		box-sizing: border-box;
		padding: 6px;
	}
	.xts-travel-header .is-menu-open .wp-social-link svg {
		inline-size: 30px;
		block-size: 30px;
		flex-shrink: 0;
	}
}
@media (max-width: 1100px) {
	.xts-travel-header .is-menu-open .wp-block-social-links {
		block-size: 48px;
		min-block-size: 48px;
		gap: 0;
	}
	.xts-travel-header .is-menu-open .wp-social-link a {
		inline-size: 48px;
		block-size: 48px;
		padding: 8px;
	}
	.xts-travel-header .is-menu-open .wp-social-link svg {
		inline-size: 32px;
		block-size: 32px;
	}
}
@media (max-width: 1100px) {
	.xts-travel-header .xts-travel-header-inner {
		grid-template-columns: minmax(0, 1fr) 44px 44px;
		gap: 10px 8px;
	}
	.xts-travel-header .xts-travel-header-top,
	.xts-travel-header .xts-travel-header-bottom { display: contents; }
	.xts-travel-header-brand { grid-column: 1; grid-row: 1; }
	.xts-travel-header-brand img { inline-size: 90px; max-height: 44px; }
	.xts-travel-header .xts-travel-header-top > p {
		grid-column: 2;
		grid-row: 1;
		align-self: center;
	}
	.xts-travel-header-top > p a[href^="tel:"] {
		display: flex;
		align-items: center;
		justify-content: center;
		inline-size: 44px;
		block-size: 44px;
		font-size: 0;
	}
	.xts-travel-header-top > p a[href^="tel:"]::before {
		content: "\f3cd";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		font-size: 22px;
	}
	.xts-travel-header .xts-travel-header-bottom > .wp-block-navigation {
		grid-column: 3;
		grid-row: 1;
		align-self: center;
		margin: 0;
	}
	.xts-travel-header .xts-travel-header-cta {
		grid-column: 1 / -1;
		grid-row: 2;
		max-block-size: var(--xts-travel-header-cta-height, 100px);
		margin-block-start: 0;
		overflow: hidden;
		opacity: 1;
		transform: translateY(0);
		visibility: visible;
		transition: max-block-size 250ms ease, opacity 200ms ease, transform 250ms ease, visibility 0s;
	}
	.xts-travel-header.is-cta-hidden .xts-travel-header-cta {
		max-block-size: 0;
		opacity: 0;
		transform: translateY(-8px);
		visibility: hidden;
		pointer-events: none;
		transition-delay: 0s, 0s, 0s, 250ms;
	}
	.xts-travel-header.is-cta-hidden .xts-travel-header-inner {
		row-gap: 0;
		padding-block: 6px;
	}
	.xts-travel-header .xts-travel-header-cta a:focus-visible { outline-offset: -3px; }
	.xts-travel-header-cta .wp-block-button { inline-size: 100%; }
	.xts-travel-header .xts-travel-header-cta .wp-block-button__link {
		display: block;
		min-block-size: 44px;
		padding: 12px 16px;
		font-size: 14px;
		text-align: center;
	}
	.xts-travel-header.is-compact .xts-travel-header-inner { padding-block: 12px; row-gap: 10px; }
	.xts-travel-header.is-compact .xts-travel-header-brand img { max-height: 44px; }
	/* Keep controls available below the CTA if JavaScript cannot move them into the menu. */
	.xts-travel-header:not(.has-overlay-tools) .xts-travel-header-tools { grid-column: 1 / -1; grid-row: 3; flex-wrap: wrap; }
}
@media (max-width: 600px) {
	body.admin-bar .xts-travel-header-host,
	body.admin-bar .wp-site-blocks > header:has(.xts-travel-header) { inset-block-start: 0; }
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open { z-index: 100001; }
}
@media (prefers-reduced-motion: reduce) {
	.xts-travel-header .xts-travel-menu-panel { transition: none; }
	.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content,
	.xts-travel-header .wp-block-navigation a.wp-block-navigation-item__content::after { transition: none; }
	.xts-travel-header .wp-block-navigation__responsive-container.is-menu-open { animation: none; }
	.xts-travel-header .xts-travel-header-inner,
	.xts-travel-header .xts-travel-header-top,
	.xts-travel-header .xts-travel-header-cta,
	.xts-travel-header-brand img { transition: none; }
}
@keyframes xts-travel-menu-enter {
	from { transform: translateX(100%); }
	to { transform: translateX(0); }
}
