/* CMH Destinations & Routes — [cmh_nonstop_flights] + [cmh_featured_destinations]
   Scoped under .cmh-nonstop / .cmh-gallery. Two-class selectors beat the theme's generic rules.
   Type follows the Figma: Apex New Medium (500) for UI text, Book (400) for the intro,
   Heavy-as-bold (700) for buttons, Medium Italic for the section heading. */

.cmh-nonstop,
.cmh-gallery {
	--cmh-blue: #02568a;
	--cmh-navy: #002855;
	--cmh-bright: #009fd9;
	--cmh-light: #e1f6f9;
	--cmh-light-hover: #cdeef6;
	--cmh-sand: #efedea;
	--cmh-green: #519b4a;
	--cmh-white: #fff;
	--cmh-focus: #002855;
	--cmh-rule: #d7d2cb;
	/* Site buttons are white on #009fd9 (3.0:1, fails AA for 20px Medium text). #007bb3 is the nearest
	   shade that passes (4.7:1). Switch this one variable when the brand decides. */
	--cmh-button-bg: #007bb3;
	--cmh-button-hover: #02568a;
	--cmh-font: "ApexNew", Arial, Helvetica, sans-serif;
	--cmh-sticky-offset: 176px; /* no-JS fallback for native #anchor jumps; the script measures the real pinned header height */
	box-sizing: border-box;
	font-family: var(--cmh-font);
	font-style: normal;
	font-weight: 500;
	color: var(--cmh-navy);
	line-height: 1.5;
}
.cmh-nonstop {
	width: 100%;
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 1rem 2rem;
}
.cmh-nonstop *,
.cmh-nonstop *::before,
.cmh-nonstop *::after,
.cmh-gallery *,
.cmh-gallery *::before,
.cmh-gallery *::after { box-sizing: inherit; }
.cmh-nonstop [hidden],
.cmh-gallery [hidden] { display: none !important; }

/* Inside an Elementor container the widget must take the full row, never shrink-wrap its content. */
.elementor-widget-shortcode:has(> .elementor-widget-container > .cmh-nonstop),
.elementor-widget-shortcode:has(> .elementor-widget-container > .cmh-gallery),
.elementor-widget-shortcode:has(> .cmh-nonstop),
.elementor-widget-shortcode:has(> .cmh-gallery) {
	width: 100% !important;
	max-width: 100%;
	--container-widget-width: 100%;
	align-self: stretch;
}

.cmh-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}

/* ---------- type ---------- */
.cmh-nonstop .cmh-nonstop__heading {
	margin: 1.5rem 0 1.25rem;
	font-family: var(--cmh-font);
	font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2rem);
	font-style: italic;
	font-weight: 500;
	line-height: 1.3;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__label {
	display: block;
	margin: 0 0 0.625rem;
	font-family: var(--cmh-font);
	font-size: 1.0625rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.5;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__intro {
	max-width: 72ch;
	margin: 0 0 1.75rem;
	font-family: var(--cmh-font);
	font-size: 1.25rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.4;
	color: var(--cmh-navy);
}
.cmh-nonstop fieldset {
	min-width: 0;
	margin: 0 0 1.5rem;
	padding: 0;
	border: 0;
}
.cmh-nonstop legend { padding: 0; }

/* ---------- airport choice (radio pills) ---------- */
.cmh-nonstop .cmh-nonstop__segmented {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
}
.cmh-nonstop .cmh-nonstop__segment {
	position: relative;
	flex: 1 1 100%;
	margin: 0;
}
.cmh-nonstop .cmh-nonstop__segment input {
	position: absolute;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	border: 0;
}
.cmh-nonstop .cmh-nonstop__segment span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.625rem 1.25rem;
	border: 2px solid var(--cmh-blue);
	border-radius: 999px;
	background: var(--cmh-white);
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 1rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.3;
	text-align: center;
	cursor: pointer;
}
.cmh-nonstop .cmh-nonstop__segment input:checked + span {
	background: var(--cmh-blue);
	color: var(--cmh-white);
}
.cmh-nonstop .cmh-nonstop__segment input:checked + span::before {
	content: "\2713";
	margin-right: 0.5rem;
	font-weight: 700;
}
.cmh-nonstop .cmh-nonstop__segment input:focus-visible + span {
	outline: 3px solid var(--cmh-focus);
	outline-offset: 3px;
}
.cmh-nonstop .cmh-nonstop__segment span:hover { background: var(--cmh-light); }
.cmh-nonstop .cmh-nonstop__segment input:checked + span:hover { background: var(--cmh-navy); }
@media (min-width: 600px) {
	.cmh-nonstop .cmh-nonstop__segment { flex: 0 1 auto; }
}

/* ---------- toolbar + search ---------- */
.cmh-nonstop .cmh-nonstop__toolbar {
	display: grid;
	gap: 1.25rem;
	margin: 0 0 2rem;
	padding: 0 0 2rem;
	border-bottom: 1px solid var(--cmh-rule);
}
.cmh-nonstop .cmh-nonstop__toolbar .cmh-nonstop__airports { margin: 0; }
/* Airport choice and search share one row on wide screens (until the map toggle arrives) */
@media (min-width: 1280px) {
	.cmh-nonstop .cmh-nonstop__toolbar {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: end;
		column-gap: 2.5rem;
	}
	.cmh-nonstop .cmh-nonstop__views { grid-column: 1 / -1; }
	.cmh-nonstop .cmh-nonstop__search { justify-self: end; width: 100%; max-width: 720px; }
	.cmh-nonstop .cmh-nonstop__search-row { justify-content: flex-end; }
}
.cmh-nonstop .cmh-nonstop__search-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.cmh-nonstop .cmh-nonstop__search-field {
	position: relative;
	flex: 1 1 260px;
	max-width: 446px;
}
.cmh-nonstop input[type="search"] {
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 0 3rem 0 1rem;
	border: 1px solid var(--cmh-navy);
	border-radius: 0;
	background: var(--cmh-white);
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 0.9375rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.6;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}
.cmh-nonstop input[type="search"]::-webkit-search-cancel-button,
.cmh-nonstop input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.cmh-nonstop input[type="search"]::placeholder { color: var(--cmh-blue); opacity: 1; }
.cmh-nonstop input[type="search"]:placeholder-shown { padding-right: 1rem; } /* the clear button only appears once there is text */
.cmh-nonstop input[type="search"]:focus-visible,
.cmh-nonstop select:focus-visible {
	outline: 3px solid var(--cmh-focus);
	outline-offset: 2px;
}
.cmh-nonstop .cmh-nonstop__clear {
	position: absolute;
	top: 50%;
	right: 0.25rem;
	width: 44px; height: 44px;
	margin: 0; padding: 0;
	transform: translateY(-50%);
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 1.75rem;
	font-style: normal;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}
.cmh-nonstop .cmh-nonstop__clear:hover { background: var(--cmh-light); }
.cmh-nonstop .cmh-nonstop__clear:focus-visible { outline: 3px solid var(--cmh-focus); outline-offset: -2px; }

/* ---------- buttons: the site's Elementor button (Parking amenities "ezPark" spec) ---------- */
.cmh-nonstop .cmh-nonstop__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	height: 54px;
	margin: 0;
	padding: 5px 40px 0; /* Apex New's caps sit high in the line box; 5px top padding centres them optically */
	border: 0;
	border-radius: 0;
	background: var(--cmh-button-bg);
	color: var(--cmh-white);
	font-family: var(--cmh-font);
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none !important; /* the theme underlines every content link with a 3-class selector */
	text-align: center;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.cmh-nonstop .cmh-nonstop__button:hover,
.cmh-nonstop .cmh-nonstop__button:focus-visible {
	background: var(--cmh-button-hover);
	color: var(--cmh-white);
}
/* compact size for the per-airline booking links inside a row (same colour, 4.7:1 at any size) */
.cmh-nonstop .cmh-nonstop__button--compact {
	height: 40px;
	padding: 5px 24px 0;
	font-size: 16px;
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
}
.cmh-nonstop .cmh-nonstop__button:focus-visible,
.cmh-nonstop .cmh-nonstop__link-button:focus-visible,
.cmh-nonstop .cmh-nonstop__filters-btn:focus-visible,
.cmh-nonstop .cmh-nonstop__filters-close:focus-visible,
.cmh-nonstop .cmh-nonstop__soon-list a:focus-visible {
	outline: 3px solid var(--cmh-focus);
	outline-offset: 3px;
}
.cmh-nonstop .cmh-nonstop__search-row > .cmh-nonstop__button { flex: 1 1 100%; }
@media (min-width: 600px) {
	.cmh-nonstop .cmh-nonstop__search-row > .cmh-nonstop__button { flex: 0 0 auto; }
}
.cmh-nonstop .cmh-nonstop__link-button {
	display: inline;
	margin: 0;
	padding: 0.5rem 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 1rem;
	font-style: normal;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
	box-shadow: none;
}
.cmh-nonstop .cmh-nonstop__link-button:hover { color: var(--cmh-navy); }

/* ---------- layout ---------- */
.cmh-nonstop .cmh-nonstop__layout {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}
@media (min-width: 900px) {
	.cmh-nonstop .cmh-nonstop__layout {
		grid-template-columns: minmax(200px, 250px) minmax(0, 1fr);
		gap: 2.5rem;
	}
}

/* ---------- results ---------- */
.cmh-nonstop .cmh-nonstop__results { min-width: 0; }
.cmh-nonstop .cmh-nonstop__results-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem 1rem;
	margin: 0 0 0.875rem;
}
/* The result count is hidden visually at the client's request but stays in the document:
   it is the only heading the destination list has, and screen readers still hear the total. */
.cmh-nonstop .cmh-nonstop__count { margin: 0; }
.cmh-nonstop .cmh-nonstop__filters-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	margin: 0;
	padding: 0.5rem 1rem;
	border: 2px solid var(--cmh-blue);
	border-radius: 999px;
	background: var(--cmh-white);
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 1rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
}
.cmh-nonstop .cmh-nonstop__filters-btn:hover { background: var(--cmh-light); }
@media (min-width: 900px) {
	.cmh-nonstop .cmh-nonstop__filters-btn { display: none !important; }
	/* nothing visible is left in this row on desktop, so it should take no space */
	.cmh-nonstop .cmh-nonstop__results-head { margin: 0; }
}

.cmh-nonstop .cmh-nonstop__list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cmh-nonstop .cmh-nonstop__item {
	margin: 0;
	padding: 0;
	scroll-margin-top: var(--cmh-sticky-offset);
}
.cmh-nonstop .cmh-nonstop__item-heading {
	margin: 0;
	font-family: var(--cmh-font);
	font-size: inherit;
	font-style: normal;
	font-weight: inherit;
	line-height: inherit;
}
.cmh-nonstop .cmh-nonstop__toggle {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.375rem 1rem;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0.75rem 1rem 0.75rem 0.625rem;
	border: 0;
	border-left: 6px solid var(--cmh-bright);
	border-radius: 0;
	background: var(--cmh-light);
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-style: normal;
	text-align: left;
	cursor: pointer;
	box-shadow: none;
}
.cmh-nonstop .cmh-nonstop__toggle:hover { background: var(--cmh-light-hover); }
.cmh-nonstop .cmh-nonstop__toggle:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--cmh-focus);
	outline-offset: 2px;
}
.cmh-nonstop .cmh-nonstop__name {
	flex: 1 1 14rem;
	font-size: 1.1875rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--cmh-blue);
}
.cmh-nonstop .cmh-nonstop__code { white-space: nowrap; }
.cmh-nonstop .cmh-nonstop__meta {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 0.5rem;
	margin-left: auto;
	color: var(--cmh-blue);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
}
.cmh-nonstop .cmh-nonstop__options-label { white-space: nowrap; }
@media (max-width: 599px) {
	.cmh-nonstop .cmh-nonstop__toggle { flex-wrap: nowrap; align-items: center; }
	.cmh-nonstop .cmh-nonstop__name { flex: 1 1 auto; min-width: 0; }
	.cmh-nonstop .cmh-nonstop__meta { margin-left: 0.75rem; }
	.cmh-nonstop .cmh-nonstop__options-label {
		position: absolute !important;
		width: 1px; height: 1px;
		padding: 0; margin: -1px;
		overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
		white-space: nowrap; border: 0;
	}
}
.cmh-nonstop .cmh-nonstop__chevron {
	flex: 0 0 auto;
	width: 18px; height: 11px;
	color: var(--cmh-navy);
	transition: transform 0.2s ease;
}
.cmh-nonstop .cmh-nonstop__toggle[aria-expanded="true"] .cmh-nonstop__chevron { transform: rotate(180deg); }
@media (min-width: 600px) {
	.cmh-nonstop .cmh-nonstop__name { font-size: 1.375rem; }
}

/* expanded options */
.cmh-nonstop .cmh-nonstop__options {
	padding: 0 1rem;
	border: 1px solid var(--cmh-light);
	border-top: 0;
	border-left: 6px solid var(--cmh-bright);
	background: var(--cmh-white);
}
.cmh-nonstop .cmh-nonstop__airlines {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cmh-nonstop .cmh-nonstop__airline {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "logo link" "body link";
	gap: 0.5rem 1rem;
	align-items: center;
	margin: 0;
	padding: 1rem 0;
}
/* a line between visible options only — never after the last one, whichever airport is selected */
.cmh-nonstop .cmh-nonstop__airline:not([hidden]) ~ .cmh-nonstop__airline:not([hidden]) {
	border-top: 1px solid var(--cmh-sand);
}
.cmh-nonstop .cmh-nonstop__airline-logo {
	grid-area: logo;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: min(150px, 100%); height: 44px;
}
.cmh-nonstop .cmh-nonstop__airline-logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
}
/* no logo yet: the name stands in for it */
.cmh-nonstop .cmh-nonstop__airline-logo--text { width: auto; height: auto; min-height: 44px; }
@media (max-width: 359px) {
	.cmh-nonstop .cmh-nonstop__airline { grid-template-columns: minmax(0, 1fr); grid-template-areas: "logo" "body" "link"; }
	.cmh-nonstop .cmh-nonstop__book { justify-self: start; }
}
.cmh-nonstop .cmh-nonstop__airline-body {
	grid-area: body;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.375rem 0.75rem;
	min-width: 0;
}
.cmh-nonstop .cmh-nonstop__airline-name {
	font-size: 1.0625rem;
	font-weight: 500;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__soon-note {
	flex-basis: 100%;
	margin-top: 0.25rem;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__book { grid-area: link; justify-self: end; align-self: center; }
@media (min-width: 600px) {
	.cmh-nonstop .cmh-nonstop__airline {
		grid-template-columns: 190px minmax(0, 1fr) auto;
		grid-template-areas: "logo body link";
		gap: 0.75rem 1.25rem;
	}
	.cmh-nonstop .cmh-nonstop__airline--no-logo { grid-template-columns: minmax(190px, max-content) minmax(0, 1fr) auto; }
	.cmh-nonstop .cmh-nonstop__airline-logo { width: 190px; height: 56px; }
	.cmh-nonstop .cmh-nonstop__airline-logo--text { width: auto; height: auto; min-height: 56px; }
}

/* schedule pills — one style per schedule, brand palette */
.cmh-nonstop .cmh-nonstop__pill {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 5px 0.75rem 2px; /* Apex New's caps sit ~1.75px high at this size; the uneven padding centres them optically */
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--cmh-font);
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__pill--year-round { background: var(--cmh-light); border-color: var(--cmh-bright); }
.cmh-nonstop .cmh-nonstop__pill--seasonal { background: var(--cmh-sand); border-color: var(--cmh-rule); }
.cmh-nonstop .cmh-nonstop__pill--soon { background: var(--cmh-navy); border-color: var(--cmh-navy); color: var(--cmh-white); }

/* coming soon strip */
.cmh-nonstop .cmh-nonstop__soon {
	margin: 0 0 1rem;
	padding: 0.875rem 1rem;
	border-left: 6px solid var(--cmh-bright);
	background: var(--cmh-sand);
}
.cmh-nonstop .cmh-nonstop__soon-title {
	margin: 0 0 0.25rem;
	font-family: var(--cmh-font);
	font-size: 1.0625rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.4;
	color: var(--cmh-navy);
}
.cmh-nonstop .cmh-nonstop__soon-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
}
.cmh-nonstop .cmh-nonstop__soon-list li { margin: 0; }
.cmh-nonstop .cmh-nonstop__soon-list a {
	display: inline-block;
	padding: 0.25rem 0;
	color: var(--cmh-blue);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.cmh-nonstop .cmh-nonstop__soon-list a:hover { color: var(--cmh-navy); }

.cmh-nonstop .cmh-nonstop__empty {
	margin: 0;
	padding: 1rem;
	background: var(--cmh-sand);
	font-size: 1.0625rem;
}

/* ---------- filters (a <dialog>: in flow on desktop, bottom sheet on phones) ---------- */
.cmh-nonstop .cmh-nonstop__filters {
	position: static;
	display: block;
	width: auto;
	max-width: none;
	height: auto;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	inset: auto;
	overflow: visible;
}
.cmh-nonstop .cmh-nonstop__filters:not([open]) { display: none; }
.cmh-nonstop .cmh-nonstop__filters-head { display: none; }
.cmh-nonstop .cmh-nonstop__filter { margin: 0 0 1.5rem; }
.cmh-nonstop select {
	width: 100%;
	max-width: 260px;
	min-height: 44px;
	margin: 0;
	padding: 0.375rem 2.5rem 0.375rem 0.75rem;
	border: 1px solid var(--cmh-blue);
	border-radius: 0;
	background: var(--cmh-white) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 19.4 11.1'%3E%3Cpath d='M.7.7l9 9 9-9' fill='none' stroke='%23002855' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 0.9375rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.cmh-nonstop .cmh-nonstop__radios {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}
.cmh-nonstop .cmh-nonstop__radio {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 28px;
	margin: 0;
	color: var(--cmh-blue);
	font-family: var(--cmh-font);
	font-size: 1rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
}
.cmh-nonstop .cmh-nonstop__radio input[type="radio"] {
	display: grid;
	flex: 0 0 auto;
	place-content: center;
	width: 23px; height: 23px;
	margin: 0;
	border: 1px solid var(--cmh-blue);
	border-radius: 50%;
	background: var(--cmh-white);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.cmh-nonstop .cmh-nonstop__radio input[type="radio"]::before {
	content: "";
	width: 11px; height: 11px;
	border-radius: 50%;
	background: var(--cmh-green);
	transform: scale(0);
}
.cmh-nonstop .cmh-nonstop__radio input[type="radio"]:checked::before { transform: scale(1); }
.cmh-nonstop .cmh-nonstop__radio input[type="radio"]:focus-visible {
	outline: 3px solid var(--cmh-focus);
	outline-offset: 2px;
}
.cmh-nonstop .cmh-nonstop__filters-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	margin: 0 0 1.5rem;
}
.cmh-nonstop .cmh-nonstop__download { margin-top: 0.25rem; }
.cmh-nonstop .cmh-nonstop__download svg { flex: 0 0 auto; }

@media (max-width: 899px) {
	.cmh-nonstop .cmh-nonstop__filters:modal {
		position: fixed;
		inset: auto 0 0 0;
		width: 100%;
		max-width: 100%;
		max-height: 85vh;
		max-height: 85dvh;
		margin: 0;
		padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
		border: 0;
		border-radius: 16px 16px 0 0;
		background: var(--cmh-white);
		color: var(--cmh-navy);
		font-family: var(--cmh-font);
		overflow: auto;
		box-shadow: 0 -6px 24px rgba(0, 40, 85, 0.25);
	}
	.cmh-nonstop .cmh-nonstop__filters::backdrop { background: rgba(0, 40, 85, 0.55); }
	.cmh-nonstop .cmh-nonstop__filters:modal .cmh-nonstop__filters-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		margin: 0 0 1rem;
	}
	.cmh-nonstop .cmh-nonstop__filters-title {
		margin: 0;
		font-family: var(--cmh-font);
		font-size: 1.25rem;
		font-style: normal;
		font-weight: 500;
		color: var(--cmh-navy);
	}
	.cmh-nonstop .cmh-nonstop__filters-close {
		width: 44px; height: 44px;
		margin: 0; padding: 0;
		border: 0;
		border-radius: 50%;
		background: transparent;
		color: var(--cmh-blue);
		font-family: var(--cmh-font);
		font-size: 1.875rem;
		font-style: normal;
		line-height: 1;
		cursor: pointer;
		box-shadow: none;
	}
	.cmh-nonstop .cmh-nonstop__filters-close:hover { background: var(--cmh-light); }
	.cmh-nonstop .cmh-nonstop__filters:modal select { max-width: none; }
	.cmh-nonstop .cmh-nonstop__filters:modal .cmh-nonstop__filters-actions {
		position: sticky;
		bottom: calc(-1rem - env(safe-area-inset-bottom, 0px));
		margin: 0 -1rem;
		padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
		background: var(--cmh-white);
		border-top: 1px solid var(--cmh-sand);
	}
	.cmh-nonstop .cmh-nonstop__filters:modal .cmh-nonstop__filters-actions .cmh-nonstop__button { flex: 1 1 auto; }
}

/* ---------- featured destinations gallery (full-bleed, Figma "Destination Horz Gallery") ----------
   The theme's single-page template boxes all content at 1300px; the gallery breaks out to the viewport
   (the theme sets body { overflow-x: hidden }, so the scrollbar width cannot cause a horizontal scroll). */
.cmh-gallery {
	position: relative;
	z-index: 1; /* the gallery overlaps the template's trailing spacer (pull-up margin); stay above it so hover and clicks reach the cards */
	width: 100vw;
	max-width: 100vw;
	margin: 0 0 0 calc(50% - 50vw);
	padding: 0;
}
.cmh-gallery .cmh-gallery__track {
	display: flex;
	gap: 15px;
	margin: 0;
	padding: 6px 15px 15px;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding: 0 15px;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	cursor: grab;
}
.cmh-gallery .cmh-gallery__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
.cmh-gallery .cmh-gallery__track.is-dragging .cmh-gallery__card { pointer-events: none; }
.cmh-gallery .cmh-gallery__track::-webkit-scrollbar { display: none; }
.cmh-gallery .cmh-gallery__track:focus-visible { outline: 3px solid var(--cmh-focus); outline-offset: -3px; }
.cmh-gallery .cmh-gallery__item {
	display: block;
	flex: 0 0 auto;
	width: clamp(240px, 22.2vw, 426px);
	margin: 0;
	padding: 0;
	line-height: 0;
	scroll-snap-align: start;
}
.cmh-gallery .cmh-gallery__card {
	position: relative;
	display: block;
	margin: 0;
	vertical-align: top;
	aspect-ratio: 426 / 452;
	overflow: hidden;
	background: var(--cmh-light);
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
	color: var(--cmh-white);
	text-decoration: none !important;
	-webkit-user-drag: none;
}
.cmh-gallery .cmh-gallery__card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-user-drag: none;
	pointer-events: none;
}
.cmh-gallery .cmh-gallery__name {
	position: absolute;
	inset: 55% 0 0 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0 1rem 7%;
	background: linear-gradient(180deg, rgba(2, 86, 138, 0) 0%, rgba(2, 86, 138, 0.81) 55%, rgba(2, 86, 138, 0.81) 100%);
	color: var(--cmh-white);
	font-family: var(--cmh-font);
	font-size: clamp(1.25rem, 0.5rem + 1.5vw, 2rem);
	font-style: normal;
	font-weight: 500;
	line-height: 1.1;
	text-align: center;
	opacity: 0;
	transition: opacity 0.2s ease;
}
.cmh-gallery .cmh-gallery__card:hover .cmh-gallery__name,
.cmh-gallery .cmh-gallery__card:focus-visible .cmh-gallery__name { opacity: 1; }
.cmh-gallery .cmh-gallery__card:focus-visible { outline: 3px solid var(--cmh-focus); outline-offset: 3px; }
@media (hover: none) {
	.cmh-gallery .cmh-gallery__name { opacity: 1; }
	.cmh-gallery .cmh-gallery__track { cursor: auto; }
}
.cmh-gallery .cmh-gallery__nav {
	position: absolute;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	margin: 0; padding: 0;
	transform: translateY(-60%);
	border: 2px solid var(--cmh-blue);
	border-radius: 50%;
	background: var(--cmh-white);
	color: var(--cmh-blue);
	cursor: pointer;
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
}
.cmh-gallery .cmh-gallery__nav:hover { background: var(--cmh-blue); color: var(--cmh-white); }
.cmh-gallery .cmh-gallery__nav:focus-visible { outline: 3px solid var(--cmh-focus); outline-offset: 3px; }
.cmh-gallery .cmh-gallery__nav[disabled] { opacity: 0.35; cursor: default; }
.cmh-gallery .cmh-gallery__nav--prev { left: 15px; }
.cmh-gallery .cmh-gallery__nav--next { right: 15px; }
.cmh-gallery .cmh-gallery__nav svg { width: 22px; height: 22px; }

/* ---------- motion & contrast preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	.cmh-nonstop *,
	.cmh-nonstop *::before,
	.cmh-nonstop *::after,
	.cmh-gallery *,
	.cmh-gallery *::before,
	.cmh-gallery *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
	.cmh-nonstop .cmh-nonstop__segment input:checked + span { outline: 3px solid CanvasText; outline-offset: -3px; }
	.cmh-nonstop .cmh-nonstop__toggle,
	.cmh-nonstop .cmh-nonstop__options,
	.cmh-gallery .cmh-gallery__card { border: 1px solid CanvasText; }
	.cmh-nonstop .cmh-nonstop__radio input[type="radio"]::before { background: CanvasText; }
	.cmh-gallery .cmh-gallery__name { opacity: 1; background: Canvas; color: CanvasText; }
}
