/* Catalog page runtime layout. The existing JetSmartFilters controls remain
 * the data owners; this file only changes their presentation. */

body.cbnb-catalog-page {
	--cbnb-catalog-navy: #003d5b;
	--cbnb-catalog-yellow: #fbaf00;
	--cbnb-catalog-border: #dce4e8;
	--cbnb-catalog-muted: #65737b;
	--cbnb-catalog-surface: #f5f8f9;
	--cbnb-catalog-shadow: 0 14px 38px rgba(0, 61, 91, 0.1);
	background: #fff;
	overflow-x: clip;
}

/* Product decision: Yacht usage is not exposed as a Catalog filter. Hide both
 * the stored Elementor controls and their runtime field wrapper. */
body.cbnb-catalog-page [data-id="30caabe"],
body.cbnb-catalog-page [data-id="a66464c"],
body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="a66464c"] {
	display: none !important;
}

/* Keep the theme's sticky-footer spacer in layout without letting its empty
 * pseudo-element become a cold-load layout-shift source. */
body.cbnb-catalog-page .wrapper::after {
	visibility: hidden !important;
}

html.cbnb-catalog-document {
	overflow-x: clip;
}

body.cbnb-catalog-page .wrapper > section.page {
	padding-top: 12px !important;
	padding-bottom: 12px !important;
}

body.cbnb-catalog-page .page > .container {
	width: 100%;
	max-width: none;
	padding-top: 0 !important;
	padding-inline: clamp(16px, 3vw, 48px);
}

/* The catalog owns its heading through the Yacht/Crew tabs. Remove the theme's
 * duplicate breadcrumb/title rows so the working area starts directly below
 * the site header. */
body.cbnb-catalog-page .page > .container > .page__item:not(:last-child) {
	display: none;
}

body.cbnb-catalog-page .elementor-element-b730a33 > .e-con-inner {
	width: 100%;
	max-width: none;
	padding-inline: 0;
}

body.cbnb-catalog-page #sn-catalog-tabs,
body.cbnb-catalog-page #sn-catalog-tabs > .elementor-widget-container,
body.cbnb-catalog-page #sn-catalog-tabs .e-n-tabs,
body.cbnb-catalog-page #sn-catalog-tabs .e-n-tabs-content,
body.cbnb-catalog-page #sn-catalog-tabs [role="tabpanel"] {
	width: 100%;
	max-width: none;
}

body.cbnb-catalog-page #sn-catalog-tabs .e-n-tabs-heading {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 0 auto 16px;
}

body.cbnb-catalog-page #sn-catalog-tabs .e-n-tab-title {
	min-width: min(230px, 42vw);
	min-height: 46px;
	padding-block: 10px;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: 12px;
	background: #eef2f4;
	color: #4b5961;
	cursor: pointer;
	font-weight: 700;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

body.cbnb-catalog-page #sn-catalog-tabs .e-n-tab-title[aria-selected="true"] {
	border-color: #e9a900;
	background: var(--cbnb-catalog-yellow);
	color: var(--cbnb-catalog-navy);
}

body.cbnb-catalog-page #sn-catalog-tabs .e-n-tab-title:focus-visible,
body.cbnb-catalog-page .cbnb-catalog-shell button:focus-visible,
body.cbnb-catalog-page .cbnb-filter-more__summary:focus-visible,
body.cbnb-catalog-page .cbnb-filter-panel input:focus-visible,
body.cbnb-catalog-page .cbnb-filter-panel select:focus-visible {
	outline: 3px solid rgba(0, 111, 166, 0.3);
	outline-offset: 2px;
}

body.cbnb-catalog-page #sn-catalog-tabs [role="tabpanel"] {
	position: relative;
}

/* Put the server-rendered Yacht map in its final desktop slot before the
 * runtime reorganizes the native filter markup. This lets the eager preview
 * paint above the fold instead of first painting below the long filter list. */
@media (min-width: 768px) {
	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-dd0ebfb {
		--padding-top: 0px !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-dd0ebfb > .e-con-inner {
		display: grid !important;
		grid-template-columns: clamp(280px, 24vw, 350px) minmax(0, 1fr) !important;
		align-items: start !important;
		gap: 28px !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-eb6c751 {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 100% !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-cb017a1 {
		display: none !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-8fd0e30 {
		grid-column: 2 !important;
		grid-row: 1 !important;
		width: 100% !important;
		padding-top: 110px !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-8fd0e30 .cbnb-hero {
		height: 500px !important;
		min-height: 500px !important;
		max-height: 500px !important;
	}
}

@media (max-width: 767px) {
	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-eb6c751 {
		display: flex !important;
		order: 1 !important;
		width: 100% !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-8fd0e30 {
		order: -1 !important;
		width: 100% !important;
		padding-top: 105px !important;
	}

	body.cbnb-catalog-page:not(.cbnb-catalog-ready) .elementor-element-8fd0e30 .cbnb-hero {
		height: 350px !important;
		min-height: 350px !important;
		max-height: 350px !important;
	}
}

body.cbnb-catalog-page .cbnb-catalog-provider-only {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 1px !important;
	height: 1px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body.cbnb-catalog-page .cbnb-catalog-shell {
	display: grid;
	grid-template-columns: clamp(280px, 24vw, 350px) minmax(0, 1fr);
	align-items: start;
	width: 100%;
	gap: 28px;
	padding-bottom: 72px;
	color: #263238;
}

/* Column flex rather than grid.
   As a grid, each row was sized from its item's intrinsic height, measured against an
   indefinite width — so the toolbar's wrapping tag plates were measured unwrapped and
   the row came out far shorter than the plates really needed, letting them spill over
   the section heading below. Column flex gives every child the container's definite
   width before it wraps, so the tag row grows to fit at any viewport. */
body.cbnb-catalog-page .cbnb-catalog-main {
	display: flex;
	flex-direction: column;
	grid-column: 2;
	grid-row: 1;
	justify-content: flex-start;
	gap: 15px;
	min-width: 0;
}

/* Children keep their content height; the workspace scrolls instead of squashing. */
body.cbnb-catalog-page .cbnb-catalog-main > * {
	flex: 0 0 auto;
}

body.cbnb-catalog-page .cbnb-catalog-sidebar {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	min-width: 0;
}

/* Flex, not grid.
   As a grid, the tag block sat in a minmax(0, 1fr) column: the browser measured the
   toolbar's intrinsic height against the tags' max-content width (one line), so the
   row was sized ~92px while the tags actually wrapped to 160px and spilled over the
   "Explore … on the map" heading below. Flex measures the wrapped height correctly,
   and lets the whole tag block drop to its own line when it needs the width. */
body.cbnb-catalog-page .cbnb-catalog-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-height: 48px;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__filter {
	flex: 0 0 auto;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__clear {
	flex: 0 0 auto;
	margin-left: 0;
}

body.cbnb-catalog-page .cbnb-catalog-status {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	overflow: hidden !important;
	white-space: nowrap !important;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__filter,
body.cbnb-catalog-page .cbnb-catalog-toolbar__clear {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--cbnb-catalog-border);
	border-radius: 999px;
	background: #fff;
	color: var(--cbnb-catalog-navy);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__filter {
	grid-column: 1;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__filter::before {
	content: '';
	width: 16px;
	height: 16px;
	margin-right: 8px;
	background: linear-gradient(var(--cbnb-catalog-navy), var(--cbnb-catalog-navy)) 1px 3px / 14px 2px no-repeat,
		linear-gradient(var(--cbnb-catalog-navy), var(--cbnb-catalog-navy)) 1px 11px / 14px 2px no-repeat;
	clip-path: polygon(0 0, 100% 0, 100% 38%, 62% 38%, 62% 62%, 100% 62%, 100% 100%, 0 100%, 0 62%, 38% 62%, 38% 38%, 0 38%);
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__filter:hover,
body.cbnb-catalog-page .cbnb-catalog-toolbar__filter.has-active-filters {
	border-color: var(--cbnb-catalog-yellow);
	background: #fff8e1;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__badge {
	min-width: 22px;
	height: 22px;
	margin-left: 8px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--cbnb-catalog-yellow);
	color: var(--cbnb-catalog-navy);
	font-size: 12px;
	line-height: 22px;
	text-align: center;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__clear {
	min-height: 32px;
	padding: 4px 8px;
	border-color: transparent;
	background: transparent;
	color: var(--cbnb-catalog-navy);
	font-size: 13px;
	line-height: 1.2;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__clear::before,
body.cbnb-catalog-page .cbnb-filter-panel__clear::before {
	content: '\21ba';
	margin-right: 6px;
	font-size: 17px;
	line-height: 1;
}

body.cbnb-catalog-page .cbnb-catalog-clear:not(:disabled):hover {
	border-color: transparent;
	background: #fff8e1;
	text-decoration: none;
}

body.cbnb-catalog-page .cbnb-catalog-clear:disabled,
body.cbnb-catalog-page .cbnb-catalog-clear.is-disabled {
	border-color: transparent;
	background: transparent;
	color: #9ca3af;
	cursor: not-allowed;
	opacity: .72;
}

body.cbnb-catalog-page .cbnb-catalog-toolbar__clear[hidden] {
	display: none !important;
}

/* Keep the title and tag list compact so Clear all follows the final tag. */
body.cbnb-catalog-page .cbnb-catalog-active-filters {
	display: flex;
	flex: 0 1 auto;
	flex-wrap: nowrap;
	align-items: center;
	gap: 6px;
	min-width: 0;
	padding: 0;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters:empty {
	display: none;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters:not(:has(.jet-active-tag)) {
	display: none;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters.is-empty {
	display: none;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters > .elementor-widget,
body.cbnb-catalog-page .cbnb-catalog-active-filters > .elementor-widget > .elementor-widget-container,
body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tags {
	width: 100%;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tags__list {
	display: flex;
	flex: 0 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	min-width: 0;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tags__title {
	margin: 0 2px 0 0 !important;
	color: var(--cbnb-catalog-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 30px;
	white-space: nowrap;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag {
	display: inline-flex !important;
	align-items: center;
	gap: 5px;
	min-width: 0;
	max-width: min(320px, 100%);
	min-height: 30px;
	margin: 0 !important;
	padding: 3px 4px 3px 10px !important;
	border: 1px solid var(--cbnb-catalog-border);
	border-radius: 999px;
	background: #f5f8f9;
	color: #33434b;
	font-size: 13px;
	line-height: 1.25;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__label,
body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__val {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__label {
	flex: 0 0 auto;
	font-weight: 700;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__val {
	flex: 0 1 auto;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__label-separator {
	margin-right: 3px;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__remove {
	position: static !important;
	display: inline-flex;
	flex: 0 0 24px;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-left: 3px;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	border-radius: 50%;
	color: #8d3029;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__remove:hover {
	background: #ffe9e6;
	color: #b23b32;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .jet-active-tag__remove:focus-visible {
	outline: 3px solid #006b9c;
	outline-offset: 2px;
}

/* Store-rendered active tags. The plates reuse the .jet-active-tag styling above;
   only the list container and the <button> remove control need their own reset. */
body.cbnb-catalog-page .cbnb-catalog-active-filters .cbnb-active-tags {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.cbnb-catalog-page .cbnb-catalog-active-filters .cbnb-active-tag__remove {
	appearance: none;
	border: 0;
	background: transparent;
	padding: 0;
}

body.cbnb-catalog-page .cbnb-filter-panel {
	--cbnb-filter-panel-padding: clamp(16px, 2vw, 26px);
	display: grid;
	align-self: start;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	gap: 16px;
	padding: var(--cbnb-filter-panel-padding) !important;
	padding-bottom: 60px !important;
	border: 1px solid var(--cbnb-catalog-border);
	border-radius: 18px;
	background: var(--cbnb-catalog-surface) !important;
	overflow: visible !important;
	box-shadow: 0 6px 20px rgba(0, 61, 91, 0.05);
}

body.cbnb-catalog-page .cbnb-filter-panel__header {
	position: sticky;
	top: calc(-1 * var(--cbnb-filter-panel-padding));
	/* The panel scrolls inside itself, so the header has to clear everything in it.
	   JetSmartFilters gives each range thumb z-index 20 and 21, which is why the Price,
	   Length, Passengers and Age handles slid over the header instead of under it
	   (issue #442). Those two are the only other z-indexes in the panel. */
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: calc(-1 * var(--cbnb-filter-panel-padding)) calc(-1 * var(--cbnb-filter-panel-padding)) 0;
	padding: 18px var(--cbnb-filter-panel-padding) 14px;
	border-bottom: 1px solid var(--cbnb-catalog-border);
	border-radius: 18px 18px 0 0;
	background: var(--cbnb-catalog-surface);
}

body.cbnb-catalog-page .cbnb-filter-panel__title {
	margin: 0;
	color: var(--cbnb-catalog-navy);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
}

body.cbnb-catalog-page .cbnb-filter-panel__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 7px 10px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: transparent;
	color: var(--cbnb-catalog-navy);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
}

/* The catalog owns reset through its reactive store. Suppress JetSmartFilters'
 * native/generated controls explicitly, regardless of their Elementor position. */
body.cbnb-catalog-page .jet-remove-all-filters,
body.cbnb-catalog-page .jet-remove-all-filters__button,
body.cbnb-catalog-page .jet-smart-filters-remove-filters,
body.cbnb-catalog-page [data-cbnb-clear-generated],
body.cbnb-catalog-page #custom-date-range-clear,
body.cbnb-catalog-page #cbnb-clear-btn {
	display: none !important;
	visibility: hidden !important;
}

body.cbnb-catalog-page .cbnb-filter-panel[hidden],
body.cbnb-catalog-page .cbnb-catalog-toolbar__badge[hidden] {
	display: none !important;
}

body.cbnb-catalog-page .cbnb-filter-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 16px;
	width: 100%;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick {
	grid-template-columns: minmax(0, 1fr);
}

body.cbnb-catalog-page .cbnb-filter-range-column {
	display: grid;
	grid-column: auto;
	grid-row: auto;
	grid-template-columns: minmax(0, 1fr);
	align-content: start;
	gap: 12px;
	min-width: 0;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-field[data-filter-widget="e147d84"] {
	grid-column: auto;
	grid-row: auto;
	align-self: stretch;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick--crew {
	grid-template-columns: minmax(0, 1fr);
}

body.cbnb-catalog-page .cbnb-filter-grid--quick--crew > .cbnb-filter-field {
	grid-row: auto;
	align-self: stretch;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick--crew > .cbnb-filter-field[data-filter-widget="5253f89"] {
	grid-column: auto;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick--crew > .cbnb-filter-field[data-filter-widget="5c5bbb5"] {
	grid-column: auto;
}

body.cbnb-catalog-page .cbnb-filter-grid--quick--crew > .cbnb-filter-field[data-filter-widget="68d1e9a"] {
	grid-column: auto;
}

body.cbnb-catalog-page .cbnb-filter-field {
	align-self: start;
	min-width: 0;
	padding: 16px;
	border: 1px solid #e2e9ec;
	border-radius: 14px;
	background: #fff;
}

body.cbnb-catalog-page .cbnb-filter-field--wide {
	grid-column: auto;
}

body.cbnb-catalog-page .cbnb-filter-field__heading,
body.cbnb-catalog-page .cbnb-filter-field__heading > .elementor-widget-container,
body.cbnb-catalog-page .cbnb-filter-field__title {
	margin: 0 0 12px !important;
	padding: 0 !important;
}

body.cbnb-catalog-page .cbnb-filter-field__heading .elementor-heading-title,
body.cbnb-catalog-page .cbnb-filter-field__title {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--cbnb-catalog-navy) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
}

body.cbnb-catalog-page .cbnb-filter-field > .elementor-element,
body.cbnb-catalog-page .cbnb-filter-field > .elementor-element > .elementor-widget-container,
body.cbnb-catalog-page .cbnb-filter-field .jet-filter {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

body.cbnb-catalog-page .cbnb-filter-panel fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

body.cbnb-catalog-page .cbnb-filter-panel select,
body.cbnb-catalog-page .cbnb-filter-panel input[type="text"],
body.cbnb-catalog-page .cbnb-filter-panel input[type="date"] {
	width: 100%;
	min-height: 44px;
	padding: 9px 38px 9px 12px;
	border: 1px solid #cfd9de;
	border-radius: 9px;
	background-color: #fff;
	color: #263238;
	font-size: 15px;
	line-height: 1.3;
}

body.cbnb-catalog-page .cbnb-filter-panel input[type="checkbox"],
body.cbnb-catalog-page .cbnb-filter-panel input[type="radio"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 8px 0 0;
	accent-color: var(--cbnb-catalog-yellow);
}

body.cbnb-catalog-page .cbnb-crew-date-field .jet-date-range {
	display: none !important;
}

body.cbnb-catalog-page .cbnb-crew-date-field .jet-date-range__submit {
	display: none !important;
}

body.cbnb-catalog-page .cbnb-crew-date-range,
body.cbnb-catalog-page .cbnb-crew-date-field input.flatpickr-input:not([type="hidden"]) {
	width: 100% !important;
	min-height: 48px !important;
	padding: 10px 42px 10px 14px !important;
	border: 1px solid #cfd9de !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: #263238 !important;
	font-size: 15px !important;
	cursor: pointer;
}

body.cbnb-catalog-page .cbnb-filter-panel .jet-filter-row {
	margin: 0 0 9px;
}

body.cbnb-catalog-page .cbnb-filter-panel .jet-checkboxes-list__item,
body.cbnb-catalog-page .cbnb-filter-panel .jet-radio-list__item {
	display: flex;
	align-items: flex-start;
	min-width: 0;
	color: #33434b;
	font-size: 14px;
	line-height: 1.4;
	cursor: pointer;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="6f6eb92"] fieldset {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 20px;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] fieldset {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] .jet-checkboxes-list__row {
	min-width: 0;
	margin: 0 0 9px !important;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] .jet-checkboxes-list__button {
	align-items: center;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] .cbnb-boat-type-icon {
	display: inline-flex !important;
	width: 30px;
	height: 24px;
	flex: 0 0 30px;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] .cbnb-boat-type-label {
	display: flex !important;
	align-items: center;
	gap: 8px !important;
}

body.cbnb-catalog-page .cbnb-filter-panel .jet-range__slider {
	display: grid;
	gap: 10px;
}

body.cbnb-catalog-page .cbnb-filter-panel .jet-range__slider__track {
	color: var(--cbnb-catalog-yellow);
}

body.cbnb-catalog-page .cbnb-filter-panel .jet-range__values {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	color: #485861;
	font-size: 14px;
}

body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="848fa37"] > [data-id="848fa37"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
}

body.cbnb-catalog-page .cbnb-filter-field #custom-date-range {
	padding-right: 12px;
	cursor: pointer;
}

body.cbnb-catalog-page .cbnb-filter-panel [data-id="65277aa"] .e-n-tabs-heading {
	justify-content: stretch !important;
	gap: 6px !important;
	margin: 0 0 12px !important;
}

body.cbnb-catalog-page .cbnb-filter-panel [data-id="65277aa"] .e-n-tab-title {
	min-width: 0 !important;
	min-height: 34px !important;
	padding: 7px 12px !important;
	border-radius: 8px !important;
	font-size: 13px !important;
}

body.cbnb-catalog-page .cbnb-filter-more {
	width: 100%;
	border-top: 1px solid var(--cbnb-catalog-border);
	padding-top: 14px;
}

body.cbnb-catalog-page .cbnb-filter-more__summary {
	display: flex;
	align-items: center;
	width: max-content;
	min-height: 40px;
	padding: 8px 14px;
	border-radius: 9px;
	color: var(--cbnb-catalog-navy);
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

body.cbnb-catalog-page .cbnb-filter-more__summary::-webkit-details-marker {
	display: none;
}

body.cbnb-catalog-page .cbnb-filter-more__summary::after {
	content: '+';
	margin-left: 9px;
	font-size: 20px;
	font-weight: 500;
}

body.cbnb-catalog-page .cbnb-filter-more[open] .cbnb-filter-more__summary::after {
	content: '−';
}

body.cbnb-catalog-page .cbnb-filter-more[open] .cbnb-filter-grid {
	margin-top: 14px;
}

body.cbnb-catalog-page .cbnb-filter-native-extras {
	display: none !important;
}

body.cbnb-catalog-page .cbnb-catalog-section-heading,
body.cbnb-catalog-page .cbnb-catalog-results__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 14px;
}

body.cbnb-catalog-page .cbnb-catalog-map-section {
	min-width: 0;
	padding: 0 !important;
}

body.cbnb-catalog-page .cbnb-catalog-results {
	min-width: 0;
	padding: 0 !important;
}

body.cbnb-catalog-page .cbnb-catalog-section-heading h2,
body.cbnb-catalog-page .cbnb-catalog-results__heading h2 {
	margin: 0;
	color: var(--cbnb-catalog-navy);
	font-size: clamp(24px, 2vw, 32px);
	font-weight: 700;
	line-height: 1.2;
}

body.cbnb-catalog-page .cbnb-catalog-section-heading p,
body.cbnb-catalog-page .cbnb-catalog-results__count {
	margin: 0;
	color: var(--cbnb-catalog-muted);
	font-size: 14px;
}

body.cbnb-catalog-page .cbnb-catalog-results__count strong {
	color: var(--cbnb-catalog-navy);
	font-size: 17px;
}

body.cbnb-catalog-page .cbnb-catalog-map,
body.cbnb-catalog-page .cbnb-catalog-map.cbnb-hero,
body.cbnb-catalog-page #cbnb-yacht-map,
body.cbnb-catalog-page #lessee_map,
body.cbnb-catalog-page #lessee_map > .elementor-widget-container,
body.cbnb-catalog-page #lessee_map .jet-map-listing,
body.cbnb-catalog-page #lessee_map .jet-map-listing__map {
	display: block !important;
	width: 100% !important;
	height: 500px !important;
	min-height: 500px !important;
	max-height: 500px !important;
}

body.cbnb-catalog-page .cbnb-catalog-map {
	border: 1px solid var(--cbnb-catalog-border);
	border-radius: 18px;
	overflow: hidden;
	background: #dff2f4;
	box-shadow: var(--cbnb-catalog-shadow);
}

body.cbnb-catalog-page #cbnb-yacht-map {
	position: relative;
	overflow: hidden;
}

body.cbnb-catalog-page #lessee_map {
	position: relative;
}

body.cbnb-catalog-page .cbnb-hero {
	position: relative;
}

body.cbnb-catalog-page .cbnb-map-preview {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100% !important;
	max-height: 100% !important;
	border-radius: inherit;
	object-fit: cover;
	pointer-events: none;
	transition: opacity 160ms ease;
}

body.cbnb-catalog-page .cbnb-map-preview.is-loaded {
	opacity: 0;
}

body.cbnb-catalog-page .cbnb-catalog-results {
	margin-top: 0;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid,
body.cbnb-catalog-page #lessee_post .jet-listing-grid__items {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	grid-auto-rows: auto;
	align-items: start;
	gap: 15px !important;
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}

body.cbnb-catalog-page #lessee_post,
body.cbnb-catalog-page #lessee_post > .elementor-widget-container,
body.cbnb-catalog-page #lessee_post .jet-listing-grid {
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid > .jet-listing-grid__item,
body.cbnb-catalog-page #lessee_post .jet-listing-grid__item {
	display: flex !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	height: auto;
	align-self: start;
	padding: 0 !important;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor,
body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor > .elementor-element,
body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor-widget-container,
body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__item {
	width: 100%;
	height: auto;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor,
body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor > .elementor-element {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor > .e-con {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor-widget,
body.cbnb-catalog-page .cbnb-catalog-results-grid .elementor-shortcode {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	height: auto;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__item {
	display: flex;
	flex-direction: column;
	border-color: var(--cbnb-catalog-border);
	box-shadow: 0 7px 22px rgba(0, 61, 91, 0.06);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__item:hover {
	transform: translateY(-3px);
	border-color: #bdcdd4;
	box-shadow: 0 15px 32px rgba(0, 61, 91, 0.13);
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__image {
	position: relative;
	width: 100%;
	flex: 0 0 auto;
	background: #e8f2f4;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__image-placeholder {
	display: flex;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 16px;
	text-align: center;
}

/* The caption-only variant (the API cards) used to be a pale, near-empty tint the width of
   the card, which on a phone - one card per row - reads as a grid cell that failed to render
   rather than a listing without a photo. Same navy empty state the cabinet cards already use.
   `:not(:has(...))` leaves the logo variant, and browsers without `:has`, untouched. */
body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__image-placeholder:not(:has(img)) {
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	background: linear-gradient(135deg, #003d5b 0%, #005d7f 100%);
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__image-placeholder img {
	width: 45%;
	height: auto;
	max-height: 70%;
	object-fit: contain;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__cont {
	flex: 1 1 auto;
	padding: 18px;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__title {
	color: #27343a;
	text-decoration: none;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__rating-price {
	margin-top: auto;
	gap: 10px;
}

body.cbnb-catalog-page .cbnb-catalog-results-grid .fleet-compay__price {
	text-align: right;
}

body.cbnb-catalog-page .cbnb-no-results {
	grid-column: 1 / -1;
	padding: 56px 20px;
	border: 1px dashed var(--cbnb-catalog-border);
	border-radius: 16px;
	background: var(--cbnb-catalog-surface);
	color: var(--cbnb-catalog-muted);
	font-size: 16px;
}

body.cbnb-catalog-page #lessee_post .jet-listing-grid__items.cbnb-no-results {
	display: block !important;
	grid-template-columns: none !important;
	align-items: normal !important;
	min-height: auto !important;
	padding: 56px 20px !important;
}

body.cbnb-catalog-page #lessee_map .jet-map-marker-image {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

@media (min-width: 768px) {
	/* The document owns result scrolling. Only an overlong filter panel gets an
	 * internal scrollbar, while its sticky shell remains reachable. */
	body.cbnb-catalog-page .cbnb-catalog-shell {
		height: auto;
		min-height: 0;
		padding-bottom: 72px;
		overflow: visible;
	}

	body.cbnb-catalog-page .cbnb-catalog-main {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	body.cbnb-catalog-page .cbnb-catalog-sidebar {
		position: sticky;
		top: 90px;
		max-height: calc(100dvh - 106px) !important;
	}

	body.cbnb-catalog-page .cbnb-filter-panel {
		position: static;
		max-height: inherit !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior-y: contain;
	}

	body.cbnb-catalog-page .cbnb-catalog-toolbar__filter,
	body.cbnb-catalog-page .cbnb-filter-more__summary {
		display: none;
	}

	body.cbnb-catalog-page .cbnb-filter-more,
	body.cbnb-catalog-page .cbnb-filter-more[open] .cbnb-filter-grid {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}
}

@media (max-width: 1260px) {
	body.cbnb-catalog-page .cbnb-catalog-results-grid,
	body.cbnb-catalog-page #lessee_post .jet-listing-grid__items {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 1100px) {
	body.cbnb-catalog-page .cbnb-filter-grid--quick {
		grid-template-columns: minmax(0, 1fr);
	}

	body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] fieldset {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 940px) {
	body.cbnb-catalog-page .cbnb-catalog-results-grid,
	body.cbnb-catalog-page #lessee_post .jet-listing-grid__items {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	body.cbnb-catalog-page .cbnb-filter-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] fieldset {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 820px) {
	body.cbnb-catalog-page .cbnb-filter-grid--quick {
		grid-template-columns: minmax(0, 1fr);
	}

	body.cbnb-catalog-page .cbnb-filter-grid--quick--crew {
		grid-template-columns: minmax(0, 1fr);
	}

	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-range-column,
	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-field[data-filter-widget="848fa37"],
	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-field[data-filter-widget="e147d84"],
	body.cbnb-catalog-page .cbnb-filter-grid--quick--crew > .cbnb-filter-field {
		grid-column: 1;
		grid-row: auto;
	}
}

	@media (max-width: 767px) {
	body.cbnb-catalog-page .page > .container {
		padding-inline: 14px;
	}

	body.cbnb-catalog-page .elementor-element-b730a33 > .e-con-inner {
		padding-inline: 0;
	}

	body.cbnb-catalog-page #sn-catalog-tabs .e-n-tabs-heading {
		gap: 8px;
		margin-bottom: 14px;
	}

	body.cbnb-catalog-page #sn-catalog-tabs .e-n-tab-title {
		min-width: 0;
		width: 50%;
		min-height: 48px;
	}

	body.cbnb-catalog-page .cbnb-catalog-shell {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		padding-bottom: 48px;
	}

	body.cbnb-catalog-page .cbnb-catalog-toolbar,
	body.cbnb-catalog-page .cbnb-catalog-sidebar,
	body.cbnb-catalog-page .cbnb-filter-panel,
	body.cbnb-catalog-page .cbnb-catalog-main {
		grid-column: 1;
		grid-row: auto;
	}

	body.cbnb-catalog-page .cbnb-catalog-main {
		gap: 15px;
	}

	body.cbnb-catalog-page .cbnb-catalog-toolbar {
		grid-template-columns: max-content minmax(0, 1fr) max-content;
	}

	body.cbnb-catalog-page .cbnb-catalog-active-filters {
		flex: 1 1 100%;
		width: 100%;
		padding: 0;
	}

	body.cbnb-catalog-page .cbnb-catalog-toolbar__clear {
		order: 4;
	}

	body.cbnb-catalog-page .cbnb-filter-panel {
		--cbnb-filter-panel-padding: 14px;
		padding: 14px 14px 60px !important;
	}

	body.cbnb-catalog-page .cbnb-catalog-sidebar:has(.cbnb-filter-panel[hidden]) {
		display: none;
	}

	body.cbnb-catalog-page .cbnb-filter-panel__header {
		padding-top: 14px;
	}

	body.cbnb-catalog-page .cbnb-catalog-map,
	body.cbnb-catalog-page .cbnb-catalog-map.cbnb-hero,
	body.cbnb-catalog-page #cbnb-yacht-map,
	body.cbnb-catalog-page #lessee_map,
	body.cbnb-catalog-page #lessee_map > .elementor-widget-container,
	body.cbnb-catalog-page #lessee_map .jet-map-listing,
	body.cbnb-catalog-page #lessee_map .jet-map-listing__map {
		height: 350px !important;
		min-height: 350px !important;
		max-height: 350px !important;
	}

	body.cbnb-catalog-page .cbnb-filter-grid {
		grid-template-columns: 1fr;
	}

	body.cbnb-catalog-page .cbnb-filter-grid--quick {
		grid-template-columns: minmax(0, 1fr);
	}

	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-range-column,
	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-field[data-filter-widget="848fa37"],
	body.cbnb-catalog-page .cbnb-filter-grid--quick > .cbnb-filter-field[data-filter-widget="e147d84"] {
		grid-column: 1;
		grid-row: auto;
	}

	body.cbnb-catalog-page .cbnb-filter-field--wide {
		grid-column: auto;
	}

	body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="e147d84"] fieldset,
	body.cbnb-catalog-page .cbnb-filter-field[data-filter-widget="6f6eb92"] fieldset {
		grid-template-columns: 1fr;
	}

	body.cbnb-catalog-page .cbnb-catalog-section-heading,
	body.cbnb-catalog-page .cbnb-catalog-results__heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}

	body.cbnb-catalog-page .cbnb-catalog-results-grid,
	body.cbnb-catalog-page #lessee_post .jet-listing-grid__items {
		grid-template-columns: 1fr !important;
	}
}

/* Store-driven date range picker. JetSmartFilters' own date inputs stay in the
   markup but are inert (aria-hidden, tabindex -1); this is the real control. */
body.cbnb-catalog-page .cbnb-filter-field--date .jet-date-range {
	display: none;
}

body.cbnb-catalog-page .cbnb-filter-date-range,
body.cbnb-catalog-page .cbnb-filter-field--date .flatpickr-input.form-control.input {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--cbnb-catalog-border);
	border-radius: 10px;
	background: #fff;
	color: #33434b;
	font-size: 14px;
}

body.cbnb-catalog-page .cbnb-filter-date-range:focus-visible {
	outline: 3px solid #006b9c;
	outline-offset: 2px;
}

/* Crew map canvas. JetEngine's own wrapper has no intrinsic height, so the map gets
   its own sized element inside it — the equivalent of #cbnb-yacht-map. */
body.cbnb-catalog-page #lessee_map {
	position: relative;
	min-height: 500px;
}

body.cbnb-catalog-page #cbnb-crew-map {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border-radius: 18px;
	overflow: hidden;
}
