/* Theme presentation bridge. Loaded after Travel; no plugin markup or behavior changes. */
.ast-travel-hub,
.ast-travel-shell {
	--ast-catalog-columns: var(--ast-catalog-columns-desktop, 4);
	--ast-catalog-title-size: var(--ast-catalog-title-desktop, 18px);
	--ast-catalog-body-size: var(--ast-catalog-body-desktop, 15px);
	--ast-catalog-card-gap: var(--ast-catalog-gap-desktop, 20px);
	--ast-catalog-card-padding: var(--ast-catalog-padding-desktop, 18px);
	--ast-catalog-image-ratio: var(--ast-catalog-ratio-desktop, 3/2);
}
.ast-travel-hub .ast-travel-shell,
.ast-travel-shell.adl-travel-discovery {
	font-family: var(--ast-catalog-font-family, var(--ast-base-font-family, system-ui));
	font-size: var(--ast-catalog-body-size);
	font-weight: var(--ast-catalog-body-weight, 400);
	line-height: var(--ast-catalog-line-height, 1.55);
	letter-spacing: normal;
	text-transform: none;
	white-space: normal;
	min-width: 0;
}
.ast-travel-hub .ast-travel-page-content code:has(.ast-travel-shell) {
	display: block;
	font: inherit;
	white-space: normal;
	padding: 0;
	background: transparent;
	border: 0;
}
.ast-travel-single-hero .ast-travel-hub .ast-travel-page-content .adl-travel-hero { display: none; }
.ast-travel-hub .ast-travel-discovery-grid,
.ast-travel-shell.adl-travel-discovery .ast-travel-discovery-grid {
	display: grid;
	grid-template-columns: repeat(var(--ast-catalog-columns), minmax(0, 1fr));
	gap: var(--ast-catalog-card-gap, 20px);
	align-items: stretch;
}
.ast-travel-shell .ast-travel-discovery-grid > .astalias-travel-card {
	min-width: 0;
	display: flex;
	flex-direction: column;
	border-radius: 14px;
}
.ast-travel-shell .astalias-travel-card .adl-card__image {
	aspect-ratio: var(--ast-catalog-image-ratio, 3/2);
	min-height: 0;
	overflow: hidden;
	flex: none;
}
.ast-travel-shell .astalias-travel-card .adl-card__image img,
.ast-travel-shell .astalias-travel-card .adl-card__image .adl-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
}
.ast-travel-shell .astalias-travel-card .adl-card__body {
	padding: var(--ast-catalog-card-padding, 18px);
	font-family: var(--ast-catalog-font-family, var(--ast-base-font-family, system-ui));
	font-size: var(--ast-catalog-body-size);
	font-weight: var(--ast-catalog-body-weight, 400);
	line-height: var(--ast-catalog-line-height, 1.55);
	text-transform: none;
	overflow-wrap: anywhere;
}
.ast-travel-shell .astalias-travel-card .adl-card__body h3,
.ast-travel-shell .astalias-travel-card .adl-card__body h3 a {
	font-family: var(--ast-catalog-font-family, var(--ast-base-font-family, system-ui));
	font-size: var(--ast-catalog-title-size);
	font-weight: var(--ast-catalog-title-weight, 600);
	color: var(--ast-catalog-title-color, #172033);
	line-height: 1.3;
	letter-spacing: normal;
	text-transform: none;
}
.ast-travel-shell .astalias-travel-card .adl-card__body p {
	font: inherit;
	color: var(--ast-catalog-body-color, #475569);
	margin: 0 0 .65em;
}
.ast-travel-shell .astalias-travel-card .adl-card__body .adl-card-destination,
.ast-travel-shell .astalias-travel-card .adl-card__body .adl-layout-kicker {
	font-size: var(--ast-catalog-meta-size, 12px);
	font-weight: 500;
	line-height: 1.4;
	color: var(--ast-catalog-meta-color, #526173);
	text-transform: none;
	letter-spacing: normal;
}
.ast-travel-shell .astalias-travel-card a:focus-visible {
	outline: 3px solid var(--ast-color-primary, #005dbd);
	outline-offset: -3px;
}
.ast-travel-hub .ast-travel-discovery-search,
.ast-travel-shell.adl-travel-discovery .ast-travel-discovery-search {
	display: grid;
	grid-template-columns: minmax(200px, 2fr) repeat(3, minmax(120px, 1fr)) minmax(100px, .7fr);
	gap: 12px;
	padding: 16px;
	margin-bottom: 16px;
}
.ast-travel-shell .ast-travel-discovery-search :is(input, select, button) {
	box-sizing: border-box;
	min-width: 0;
	width: 100%;
	min-height: 44px;
	font-family: var(--ast-base-font-family, system-ui);
	font-size: 16px;
	text-transform: none;
}
.ast-travel-shell .ast-travel-discovery-search input[type="hidden"] { display: none; }
.ast-travel-shell .adl-travel-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}
.ast-travel-shell .adl-travel-tabs a {
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	font-family: var(--ast-base-font-family, system-ui);
	font-size: 14px;
	padding: 8px 14px;
	color: var(--ast-color-primary, #005dbd);
}
.ast-travel-shell .adl-travel-tabs a.is-active {
	background: var(--ast-color-primary, #005dbd);
	color: #fff;
}
.ast-travel-shell .ast-travel-discovery-search > .adl-button {
	background: var(--ast-color-accent, #f77a01);
	color: #172033;
}
.ast-travel-shell .ast-travel-discovery-search > .adl-button:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--ast-color-accent, #f77a01) 90%, #172033);
	color: #172033;
}
/* Exact current Travel widget class contract; fields and submission stay untouched. */
.ast-travel-hub .astalias-travel-search-widget {
	--ast-travel-accent: var(--ast-color-primary, #005dbd);
	--ast-travel-accent-dark: color-mix(in srgb, var(--ast-color-primary, #005dbd) 80%, #172033);
	font-family: var(--ast-base-font-family, system-ui);
	text-transform: none;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-tab {
	color: #fff;
	font-size: 16px;
	border-radius: 8px;
	padding: 10px 14px;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-tabs {
	gap: 8px;
	padding: 8px;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-tab:is(:hover, :focus-visible) {
	color: #fff;
	background: var(--ast-travel-accent-dark);
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-tab.is-active {
	background: var(--ast-color-accent, #f77a01);
	color: #172033;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-tab::after { display: none; }
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-submit button {
	background: var(--ast-color-accent, #f77a01);
	color: #172033;
	font-size: 16px;
	min-height: 60px;
	text-transform: none;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-submit button:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--ast-color-accent, #f77a01) 90%, #172033);
	color: #172033;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-field > span { font-size: 12px; }
.ast-travel-hub .astalias-travel-search-widget .ast-travel-field :is(input, select) {
	font-size: 16px;
	line-height: 1.4;
	text-align: start;
}
.ast-travel-hub .astalias-travel-search-widget .ast-travel-field:focus-within {
	outline: 2px solid var(--ast-color-primary, #005dbd);
	outline-offset: -2px;
}
@media (min-width: 1200px) {
	.ast-travel-hub .ast-travel-search-form[data-travel-service="hotel"] > .ast-travel-field:has(input[type="number"]),
	.ast-travel-hub .ast-travel-search-form[data-travel-service="hotel"] > .ast-travel-field:has(input[name="at_currency"]) { grid-column: span 1; }
}
@media (max-width: 1100px) {
	.ast-travel-hub, .ast-travel-shell {
		--ast-catalog-columns: var(--ast-catalog-columns-tablet, 2);
		--ast-catalog-title-size: var(--ast-catalog-title-tablet, 18px);
		--ast-catalog-body-size: var(--ast-catalog-body-tablet, 15px);
		--ast-catalog-card-gap: var(--ast-catalog-gap-tablet, 20px);
		--ast-catalog-card-padding: var(--ast-catalog-padding-tablet, 18px);
		--ast-catalog-image-ratio: var(--ast-catalog-ratio-tablet, 3/2);
	}
	.ast-travel-hub .ast-travel-discovery-search,
	.ast-travel-shell.adl-travel-discovery .ast-travel-discovery-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ast-travel-shell .ast-travel-discovery-search button { grid-column: 1/-1; }
}
@media (max-width: 767px) {
	.ast-travel-hub, .ast-travel-shell {
		--ast-catalog-columns: var(--ast-catalog-columns-mobile, 1);
		--ast-catalog-title-size: var(--ast-catalog-title-mobile, 17px);
		--ast-catalog-body-size: var(--ast-catalog-body-mobile, 14px);
		--ast-catalog-card-gap: var(--ast-catalog-gap-mobile, 14px);
		--ast-catalog-card-padding: var(--ast-catalog-padding-mobile, 14px);
		--ast-catalog-image-ratio: var(--ast-catalog-ratio-mobile, 3/2);
	}
	.ast-travel-hub .ast-travel-container { padding-inline: 16px; box-sizing: border-box; }
	.ast-travel-hub .ast-travel-discovery-search,
	.ast-travel-shell.adl-travel-discovery .ast-travel-discovery-search { grid-template-columns: minmax(0, 1fr); padding: 12px; }
	.ast-travel-hub .astalias-travel-search-widget .ast-travel-search-form { display: grid; grid-template-columns: minmax(0, 1fr); }
	.ast-travel-hub .astalias-travel-search-widget :is(.ast-travel-field, .ast-travel-search-submit, .ast-travel-checkbox) { grid-column: auto; }
	.ast-travel-hub .astalias-travel-search-widget .ast-travel-field { padding: 10px 12px; }
}
