#header_min_sitename {
	position: absolute;
	top: 0px;
	left: 5px;
	height: 0;
	color: white;
	font-size: 140%;
	pointer-events: all;
	text-decoration: none;
}

html,
body,
#map {
	color: black;
}

body {
	padding: 0;
	margin: 0;
}

#wrapper {
	background-color: white;
}

#map_header_background {
	position: fixed;
	top: 0;
	left: 0;
	height: 90px;
	width: 100%;
	background-color: #f9f9f9;
	z-index: 5;
}

#main_menu_subcontainer {
	right: 10px;
}

.event_link,
.event_link_past {
	display: block;
	cursor: pointer;
	padding: 5px;
	margin: 5px 0;
	font-size: 80%;
	border: solid 1px;
	border-radius: 3px;
	width: 83%;
	color: white;
	text-decoration: none;
}

.event_link_past {
	background: lightgrey;
}

.leaflet_zoom_popup_open {
	display: none;
}

/* bottom:  20%;  */
#manager_quick_calendar {
	background-color: rgba(0, 0, 0, .7);
	max-width: 150px;
}

.map_dates_container_centered {
	display: inline-block !important;
	width: 56% !important;
	max-width: 100% !important;
	margin: 0 auto;
}

.map_dates_centered {
	width: 48% !important;
	max-width: 48% !important;
	margin-left: 1%;
}

#map {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	width: calc(100% - 840px);
	z-index: 15;
	height: 100vh !important;
}

#map_popup_container {
	position: fixed;
	right: 0;
	bottom: 0;
	width: 100%;
	max-width: 500px;
	text-align: left;
	max-height: 250px;
	height: 20%;
	color: white;
	z-index: 700;
}

#logo::after {
	content: "";
}

.map_view_details_button {
	cursor: pointer;
	text-decoration: none;
	display: block;
	width: 100%;
	height: 100%;
	max-height: 250px;
}

#map_popup_id {
	display: none;
}

#map_popup_image {
	position: relative;
	bottom: 0;
	display: inline-block;
	height: 100%;
	width: 60%;
	padding: 0;
	margin: 0;
}

#main_image_listing {
	height: 100% !important;
}

#map_popup_info {
	display: inline-block;
	height: 100%;
	position: absolute;
	bottom: 0;
	right: 1%;
	width: 38%;
	padding: 0;
	margin: 0;
	font-size: 90%;
	text-align: center;
}

#map_popup_name {
	font-size: 95%;
	line-height: 1.1;
	padding: 2px 5px;
}

#map_popup_category {
	font-size: 85%;
	line-height: 1.1;
}

#map_popup_review {
	padding-bottom: 3px;
}

.map_popup_action_button {
	display: block;
	padding: 5px 0px;
	margin-bottom: 3px;
	text-align: center;
}

.tripadvisor_review_icon {
	width: 70%;
}

.search_tripadvisor_num_reviews {
	color: white;
	font-size: 90%;
	position: relative;
	top: -2px;
}

.grid_name_clamp {
	font-size: 100%;
	font-weight: 700;
	overflow: hidden;

	/* Allow up to two lines; no minimum height */
	line-height: 1.2;
	max-height: calc(1.2em * 2);
	display: block;

	/* WebKit-style clamping */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;

	/* (Optional) if your build supports it, this helps as standards emerge */
	line-clamp: 2;
}

/* Remove default heading margins inside the tile to prevent extra row height */
.search_tile_property_container h2
{
	margin: 0;
}

.search_ptype_title {
	flex: 0 0 100%;
	align-self: stretch;
	text-align: left;
	font-family: 'Montserrat', sans-serif;
	font-size: 110%;
	line-height: 1;
	padding: 10px;
	padding-top: 0px;
	padding-left: 15px;
	box-sizing: border-box;
	color: #212427;
}

.search_active_filter_link {
	float: left;
	color: black;
	background-color: white;
}

.map_with_options {
	float: right;
}

.map_listing_link {
	color: white;
}

.map_listing_link:hover>.map_listing_link_bg {
	opacity: 0.6;
}

.grid_room_link:hover>.grid_room_link_bg {
	opacity: 0.6;
}

.map_listing_link:hover .arrow {
	border-color: white;
}

.map_listing_link:hover .highlighted_text {
	color: white;
}

.focus_arrow {
	position: relative;
	top: 0px !important;
}

#logo_container
{
	position: absolute;
	left: 0;
	display: inline-block;
	width: calc(100% - 100px);
	text-align: left;
}

#map_filters_container {
	position: fixed;
	top: 0;
	left: 0;
	width: 30%;
	max-width: 450px;
	height: 100%;
	z-index: 699;
	display: none;
}

#map_options_buttons_container {
	position: fixed;
	left: 0;
	top: 0;
	width: 30%;
	max-width: 450px;
	height: 80px;
	z-index: 700;
	color: white;
	background: transparent;
	font-size: 95%;
	pointer-events: none;
}

#map_dates_container {
	position: relative;
	width: 100%;
	padding-bottom: 5px;
	padding-top: 5px;
	border-radius: 0 0 12px 0;
}

#map_dates_only_container {
	float: left;
	display: inline-block;
	max-width: 270px;
	height: 32px;
}

.search_main_date_field {
	display: inline-block;
	padding-left: 30px;
	max-width: 80px;
	background: transparent;
	color: white;
	border-radius: 0;
	border: 0;
}

.search_main_date_field {
	background-image: url(../images/events_icon.png);
	background-repeat: no-repeat;
	background-position: 4px 8px;
	background-size: 18px 18px;
}

.search_date_field {
	display: inline-block;
	width: 48%;
	max-width: 48%;
	margin: 0;
	background: transparent;
	color: white;
	border-radius: 0;
	border: 0;
}

.search_date_field {
	background-image: url(../images/events_icon.png);
	background-repeat: no-repeat;
	background-position: 4px 8px;
	background-size: 18px 18px;
}

#map_datepicker_subtitle {
	display: none;
	text-align: center;
	padding-left: 2px;
}

.search_favless {
	opacity: 0.4;
}

#search_datepicker,
.search_datepicker_alt {
	cursor: pointer;
	pointer-events: auto;
	border-radius: 20px;
	text-align: center;
}

/*Wraperclass for the divicon*/
.map-label {
	position: absolute;
	bottom: 0;
	left: -50%;
	display: flex;
	flex-direction: column;
	text-align: center;
	font-weight: 600;
}

/*Wrap the content of the divicon (text) in this class*/
.map-label-content {
	order: 1;
	position: relative;
	left: -50%;
	background-color: #fff;
	border-radius: 5px;
	border-width: 2px;
	border-style: solid;
	border-color: #444;
	padding: 3px;
	white-space: nowrap;
	transition: background-color 500ms, color 500ms;
}


/*Add this arrow*/
.map-label-arrow {
	order: 2;
	width: 0px;
	height: 0px;
	left: 50%;
	border-style: solid;
	border-color: #444 transparent transparent transparent;
	border-width: 6px 6px 0 6px;
	/*[first number is height, second/fourth are rigth/left width]*/
	margin-left: -6px;
	margin-top: -1px;
}

/*Instance classes*/
.map-label.inactive {
	opacity: 0.5;
}

.map-label.redborder>.map-label-content {
	border-color: #e00;
}

.map-label.redborder>.map-label-arrow {
	border-top-color: #e00;
}

.map-label.redbackground>.map-label-content {
	white-space: default;
	color: #fff;
	background-color: #e00;
}



.ui-multiselect.search_categories_activities {
	float: left;
	position: relative;
	left: -10px;
	width: 170px !important;
	max-width: 170px;
	border: 0;
	background-color: transparent;
	padding: 6px 0px;
	padding-bottom: 20px;
}

#search_nav_share_container {
	float: right;
	margin-left: 10px;
	padding-top: 2px;
}

#content_menu_container {
	position: fixed;
}
/*
#map_dates_destination { display: inline-block; width: 55%; padding: 0; margin: 0; height: 42px; }
#map_dates_destination > #destination { border: 0; background-color: rgbargba(0,0,0,.7); width: 100%; height: 100%; border-radius: 0; }
#map_filters_destination { display: none; }
*/

#map_filters_display {
	position: relative;
	height: calc(100% - 150px);
	padding: 5px;
	top: 80px;
	text-align: left;
	padding: 0 8px;
}

#map_filters_sections_host {
	padding-bottom: 20px;
}

#map_filters_apply_container {
	position: absolute;
	bottom: 0;
	width: 100%;
}

#map_filters_button,
#map_alt_filters_button {
	float: left;
	top: 4px;
	left: 37px;
	height: 30px;
	width: 30px;
	position: relative;
	color: #FFFFFF;
	pointer-events: auto;
}

#map_alt_filters_button {
	display: none;
}

#map_filters_apply_button {
	display: block;
	border-radius: 0;
	width: 100%;
}

#search_main_results {
	padding-top: 10px !important;
	max-width: 100%;
	overscroll-behavior: contain;
}

.search_main_results_pagination,
.search_main_results_pagination_primary,
.search_main_results_pagination_secondary
{
	display: block;
	text-align: left;
	padding: 5px;
	padding-bottom: 60px;
	flex: 0 0 100%;
	width: 100%;
	box-sizing: border-box;
}

#poi_display_close_button_container {
	position: absolute;
	top: 3px;
	left: 5px;
	z-index: 10;
}

#poi_display_close_button {
	z-index: 10;
	font-weight: 700;
	font-size: 110%;
	padding: 5px 10px;
}

#faq_contact_button {
	bottom: 50px;
}

.pagesubtitle {
	font-weight: 600;
}

.search_map_marker {
	line-height: 1;
	padding: 3px 7px;
	padding-top: 4px;
	border: solid 2px grey;
	border-radius: 5px;
	transition: border-color 300ms;
}

.search_map_marker:hover {
	border-color: white;
	font-weight: bold;
}

.search_map_icon {
	width: 15px;
	height: 15px;
}

.search_map_marker_content {
	float: left;
	display: inline-block;
	position: relative;
	top: 4px;
}

.search_map_marker_simple {
	filter: drop-shadow(0px 4px 2px gray);
	transition: all 500ms ease;
	background-color: #FFFFFF;
	font-weight: 500;
	font-size: 110%;
	padding: 1px 7px;
	padding-bottom: 0;
	border: solid 2px transparent;
	border-radius: 15px;
}

.search_map_marker_simple_pms {
	font-weight: 600;
	font-size: 120%;
	padding-bottom: 0;
}

.search_map_marker_simple:hover {
	transform: scale(1.4);
	z-index: 500;
	font-family: 'Open Sans', cursive !important;
}

/* Small dot marker for overflow pins */
.search_map_marker_dot
{
	width: 10px;
	height: 10px;
	border: 2px solid #bdbdbd;
	border-radius: 50%;
	background-color: #FFFFFF;
	filter: drop-shadow(0px 2px 1px gray);
}

/* Filters */
#map_category_toggles {
	float: left;
}

.map_category_label {
	position: relative;
	top: 2px;
}

#map_viewtype_container
{
	display: flex;
	margin-top: 5px;
}

.map_viewtype_link
{
	flex: 1;
	padding: 5px;
	border: 0;
	color: black;
	font-size: 90%;
	text-align: center;
	border-radius: 3px;
	text-decoration: none;
}

#map_viewtype_container .map_viewtype_link
{
	display: flex;
	align-items: center;
	justify-content: center;
}

#map_viewtype_container .map_viewtype_link .vertical_align
{
	position: static;
	top: auto;
	transform: none;
	-webkit-transform: none;
	zoom: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	line-height: 0;
}

#map_viewtype_container .map_viewtype_link img
{
	display: block;
	margin: 0 auto;
}

.main_search_type_divider {
	float: left;
	width: 1px;
}

#map_listing_type_toggles_mobile {
	display: none;
}

#calendar_display_container {
	padding-top: 300px;
}

.select_guests_display {
	width: 100%;
}

.search_input {
	display: block;
	font-size: 96%;
	padding-left: 35px !important;
	margin-bottom: 5px !important;
	height: auto;
	border: solid 1px lightgrey;
	text-align: left;
	text-align-last: left;
	border-radius: 3px;
	color: black !important;
}

#map_protip_container {
	position: fixed;
	bottom: 5px;
	right: 5px;
	z-index: 50;
	width: 100%;
	max-width: 500px;
	overflow: hidden;
}

.map_protip_option_group_mobile {
	display: none;
}

#search_results_drag_handle {
	display: none;
}

#protip_message_container {
	clear: both;
	position: relative;
	width: 100%;
}

#map_protip_title_text {
	float: left;
	width: 100%;
	font-weight: bold;
	line-height: 95%;
	text-align: center;
	margin-top: 8px;
	padding-left: 2px;
}

#protip_text
{
	font-family: inherit;
}

.map_protip_option_button {
	font-size: 80%;
	margin: 5px 10px;
	color: #333333;
}

#tip_message {
	width: 100%;
	padding: 0;
	margin: 0;
	border-radius: 99999px;
	overflow: hidden;
}

#map_categories_container {
	width: 100%;
}

#map_lodging_categories_container,
#map_activities_categories_container {
	width: 48%;
	margin-bottom: 25px;
	position: relative;
}

#map_lodging_categories_container {
	float: left;
}

#map_activities_categories_container {
	float: right;
	width: calc(40% + 10px);
	overflow-x: hidden;
}

.map_lodging_categories_container_only,
.map_activities_categories_container_only {
	float: left !important;
	width: calc(100% - 20px) !important;
	margin-left: 10px !important;
}

.map_lodging_categories_title,
.amenities_section_title {
	font-size: 120%;
	font-weight: 700;
}

.amenities_section_title {
	margin-bottom: 10px;
}

#map_pricing_container {
	width: 43%;
	float: right;
	padding-right: 10px;
}

#map_filters_destination {
	margin-bottom: 5px;
}

#search_bedrooms {
	font-size: 100%;
	background-image: url(../images/lodging_icon_black.png);
	background-repeat: no-repeat;
	background-position: 6px 8px;
	background-size: 18px 18px;
}

#search_reviews {
	font-size: 100%;
	background-image: url(../images/icons/star.png);
	background-repeat: no-repeat;
	background-position: 6px 8px;
	background-size: 18px 18px;
}

#search_price {
	font-size: 100%;
	background-image: url(../images/icons/dollar_black.png);
	background-repeat: no-repeat;
	background-position: 6px 8px;
	background-size: 18px 18px;
}

#map_instant_button {
	padding: 0px !important;
	width: calc(100% - 2px) !important;
}

#search_instant_button_text {
	padding: 10px;
	padding-left: 0px;
}

.search_property_container {
	transition: opacity 0.5s;
	position: relative;
}

.search_tile_property_image_container {
	width: 100%;
	height: 300px;
	max-width: 100% !important;
}

#search_bedrooms,
#search_reviews,
#search_price {
	margin: 0;
}

#search_instant_button {
	margin-bottom: 5px;
	padding: 0;
	width: 95%;
}

.filter_input {
	display: block;
	font-size: 96%;
	padding-left: 35px !important;
	margin-bottom: 5px !important;
	width: 100% !important;
	height: auto;
	border: solid 1px lightgrey;
	text-align: left;
	text-align-last: left;
	border-radius: 3px;
	color: black;
}

.map_amenity {
	float: left;
	width: 48%;
	margin-bottom: 0px;
	margin-right: 5px;
}

.map_amenity_label {
	float: left;
	padding: 2px 0;
	margin-left: 3px;
	margin-top: 2px;
	font-size: 85%;
	overflow: hidden;
	max-width: 76%;
	cursor: pointer;
}

.search_listing_type_label.checkbox span {
	margin-left: 0;
	width: 16px;
	height: 16px;
	color: grey !important;
}

.search_listing_type_label.checkbox :checked+span:after {
	top: -5px;
	left: 1px;
	font-size: 17px;
	color: grey !important;
}

.search_listing_type_label {
	font-size: 85%;
	margin-left: 0px;
	position: relative;
	top: 3px;
	cursor: pointer;
}

.search_icon_phone_property {
	background-image: url('../images/phone_icon_white.png');
}

.property_highlight_td_container {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 47px;
}

#search_main_results,
#search_header_placeholder,
#search_main_results_append {
	background-color: white;
}

#search_main_results_append {
	max-width: 100svw;
	max-width: 100vw;
}

#search_main_results_append_property,
#search_main_results_append_activity {
	display: flex;
	flex-wrap: wrap;
	max-width: 100vw;
}

#search_main_results_secondary_shell
{
	position: relative;
	overflow: hidden;
	max-height: none;
	transition: max-height 350ms ease;
}

#search_main_results_secondary_controls
{
	display: none;
	width: 100%;
	text-align: center;
	padding-top: 16px;
	padding-bottom: 10px;
}

#search_main_results_secondary_toggle
{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	padding: 14px 34px;
	font-size: 100%;
	font-weight: 700;
	font-family: inherit;
	line-height: 1.1;
}

#search_main_results_secondary_section.secondary_results_expandable.secondary_results_collapsed #search_main_results_secondary_controls
{
	display: block;
}

#search_main_results_secondary_section.secondary_results_expandable.secondary_results_collapsed .search_main_results_pagination_secondary
{
	display: none;
}

/* Keep the collapsed secondary call-to-action visible below the fixed desktop search header instead of letting it scroll underneath. */
@media (min-width: 1280px)
{
	#search_main_results_secondary_section.secondary_results_expandable.secondary_results_collapsed #search_main_results_secondary_controls
	{
		padding-top: 76px;
	}
}

/* Prevent the lower availability calendar block from becoming the browser scroll anchor during result pagination. */
#search_grid_title,
#grid_container,
.search_grid_divider
{
	overflow-anchor: none;
}

/* Keep the search availability calendar above the fixed header when it expands under search.php. */
#search_grid_title,
#grid_container,
#grid_container .manager_calendar_wrapper,
#grid_container #manager_calendar,
#grid_container .floatThead-container,
#grid_container .floatThead-table
{
	position: relative;
	z-index: 705;
	background-color: inherit;
}

/* List Search */
.search_list_property_container {
	overscroll-behavior: contain;
	table-layout: fixed;
	position: relative;
	border-collapse: collapse;
	padding: 0;
	margin-bottom: 20px;
	margin-top: 10px;
	width: 100%;
	max-width: 100%;
	height: 220px;
	background-color: white;
}

.search_list_property_image_container {
	position: relative;
	width: 280px;
	height: 100%;
	margin: 0;
	padding: 0;
}

.search_list_details_container {
	position: relative;
	width: 40%;
	text-align: left;
	vertical-align: top;
	border: solid 1px #E8E8E8;
}

.search_list_price_container {
	position: relative;
	width: 20%;
	text-align: center;
	border: solid 1px #E8E8E8;
	border-right: 0;
}

.search_list_price {
	position: relative;
	top: -15px;
	left: 0;
	max-width: 100%;
	padding: 0 10px;
	line-height: 1.1;
}

.main_image_listing {
	object-fit: cover;
	text-align: center;
	margin: 0 auto;
	width: 100%;
	height: 100%;
}

.main_image_listing_list {
	height: 220px;
}

.search_list_highlight_amenities {
	display: inline-block;
	position: relative;
	top: 3px;
	margin-bottom: 5px;
}

.search_list_amenity_icon {
	display: inline-block;
	position: relative;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center center;
	width: 20px;
	height: 20px;
}

.search_list_go_button {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	font-weight: 600;
	font-size: 90%;
	border-radius: 3px;
}

.search_link_active_filter_link {
	display: block;
	float: left;
	margin: 2px;
	font-size: 80%;
	border: solid 1px;
	border-radius: 8px;
	padding: 2px 5px;
	text-decoration: none;
}

.search_link_active_filter_link h1 {
	padding: 0;
	margin: 0;
	font-size: 100%;
	font-weight: normal;
}

#search_amenities_list {
	position: fixed;
	top: 40px;
	left: 0;
	display: inline-block;
	max-width: 850px;
	width: 100%;
	z-index: 20;
}

.search_map_focus_icon
{
	transform: scale(1.2);
	transition: background-color 500ms, color 500ms;
}

.search_sub_number_mobile {
	font-size: 130%;
	font-weight: bold;
}

.transition_background_transparent {
	background-color: transparent !important;
	-webkit-transition: background 0.5s linear;
	-moz-transition: background 0.5s linear;
	-ms-transition: background 0.5s linear;
	-o-transition: background 0.5s linear;
	transition: background 0.5s linear;
}

.transition_background_opaque {
	background-color: rgba(0, 0, 0, .6) !important;
	-webkit-transition: background 0.5s linear;
	-moz-transition: background 0.5s linear;
	-ms-transition: background 0.5s linear;
	-o-transition: background 0.5s linear;
	transition: background 0.5s linear;
}

#map_dates_container ::-webkit-input-placeholder {
	color: #3b3b3b !important;
}

::-moz-placeholder {
	color: #3b3b3b !important;
}

:-ms-input-placeholder {
	color: #3b3b3b !important;
}

:-moz-placeholder {
	color: #3b3b3b !important;
}

.leaflet-bottom {
	bottom: 7% !important;
}

table.calendar {
	border-left: 1px solid #999;
	width: 100%;
	height: 60%;
	background: white;
	margin-bottom: 100px;
}

tr.calendar-row {
	vertical-align: top;
}

td.calendar-day {
	min-height: 80px;
	position: relative;
}

* html div.calendar-day {
	height: 80px;
}

td.calendar-day:hover {
	background: #eceff5;
}

td.calendar-day-np {
	background: #eee;
	min-height: 80px;
}

* html div.calendar-day-np {
	height: 80px;
}

div.day-number {
	font-size: 80%;
	padding: 5px;
	color: black;
	font-weight: bold;
	float: right;
	margin: -5px 0px 0px 0px;
	width: 20px;
	text-align: center;
}

/* shared */
td.calendar-day,
td.calendar-day-np {
	width: 120px;
	padding: 5px;
	border-bottom: 1px solid #999;
	border-right: 1px solid #999;
}

.search_add_to_favorites_button {
	display: none;
}

.search_add_to_favorites_button {
	z-index: 5;
	position: absolute;
	right: 5px;
	top: 5px;
}

.search_favless_container {
	position: absolute;
	left: 5px;
	top: 0;
	transform: translateY(-18px);
}

.splide_wrapper {
	position: relative;
	font-size: initial;
	line-height: normal;
}

.search_add_to_favless_button {
	display: inline-block;
	visibility: hidden;
	visibility: none;
	color: grey;
	font-size: 70%;
	padding-left: 5px;
}

.toggle-slide {
	height: 20px;
}

#affiliate_search_toggle {
	display: flex;
	max-width: 300px;
	flex-direction: column;
	position: absolute;
	top: -39px;
	left: calc(100% + 3px);
	padding: 0px 8px;
	font-size: 90%;
	background: none !important;
	border: none;
}

/* When a small menu id (<100) exists, allow CSS to control the new top */
body.affiliate_search_top_0 #affiliate_search_toggle
{
	top: 0px;
}

#affiliate_search_description {
	width: calc(300px - 20px);
	max-width: 100%;
	padding: 10px 10px;
	font-size: 100%;
	background: white;
	border-radius: 16px;
	margin-top: 5px;
}

#trail-select { width: 300px; max-width: 100%; margin-bottom: 30px !important; padding-bottom: 30px !important; }

#main_menu_accessibility_widget {
	right: 10px;
}

#map_poi_container
{
	/* full-screen overlay */
	position: fixed;
	top: 0;
	right: 0;
	width: 100vw;
	max-width: 500px;
	height: 100vh;
	background-color: white;
	z-index: 801;
	display: none;
	/* Block horizontal swipe-to-back on Android/Chrome while allowing vertical scroll into #poi_display. */
	overscroll-behavior-x: none;
	overscroll-behavior-y: contain;

	/* JS intercepts horizontal swipe-close gestures while native vertical scrolling remains available. */
	touch-action: pan-y;

	/* hint: we may animate/transform the container, so promote to its own layer */
	will-change: transform;
}

#poi_display {
	/* fill the overlay’s content area */
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;

	/* enable native vertical scrolling with momentum */
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;

	/* only allow vertical pan here (no horizontal) */
	touch-action: pan-y;

	/* promote to its own composited layer */
	will-change: transform;
	transform: translateZ(0);

	/* isolate painting—don’t force parent to repaint on scroll */
	contain: paint;

	/* create a stacking context so children don’t bleed into the overlay */
	isolation: isolate;
}

.search_map_marker {
	line-height: 1;
	padding: 3px 7px;
	padding-top: 4px;
	border: solid 2px grey;
	border-radius: 5px;
	transition: border-color 300ms;
}

.search_map_marker:hover {
	border-color: white;
	font-weight: bold;
}

.trail_icon {
	width: 20px;
	height: 20px;
}

.leaflet_zoom_popup_open {
	display: none;
}

.leaflet-right {
	right: 15px !important;
}

.text_editor {
	border: none;
	background: #ddd;
	color: #000;
	height: auto;
	cursor: text;
}

#splide_carousel_poi {
	max-height: 300px;
}

.property_popup_dates_panel
{
	appearance: none;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	width: 100%;
	gap: 8px;
	padding: 10px;
	border: 0;
	border-bottom: solid 1px;
	background: none;
	font-family: inherit;
	color: inherit;
	cursor: pointer;
}

.property_popup_datepicker_input
{
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	opacity: 0;
	pointer-events: none;
}

.property_popup_date_column
{
	min-width: 0;
	text-align: center;
}

.property_popup_date_label
{
	font-size: 70%;
	font-weight: 600;
	line-height: 1.1;
	text-transform: uppercase;
}

.property_popup_date_value
{
	font-size: 90%;
	font-weight: 600;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.property_popup_dates_nights
{
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 16px;
	border-left: solid 1px;
	border-right: solid 1px;
	font-size: 80%;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
}

@media all and (max-width: 600px), all and (max-device-width: 600px)
{
	.flatpickr-calendar.property_popup_flatpickr_calendar
	{
		left: 0 !important;
		right: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		box-sizing: border-box;
	}

	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-innerContainer,
	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-rContainer,
	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-days,
	.flatpickr-calendar.property_popup_flatpickr_calendar .dayContainer,
	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-weekdays,
	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-weekdaycontainer
	{
		width: 100% !important;
		min-width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-day
	{
		width: calc(100% / 7);
		max-width: calc(100% / 7);
		box-sizing: border-box;
	}

	.flatpickr-calendar.property_popup_flatpickr_calendar .flatpickr-months
	{
		max-width: none;
	}
}

.splide_carousel_listings {
	border-radius: 15px !important;
}

.poi_popup_lodging_listing,
.poi_popup_activity_listing {
	width: 100%;
	padding: 10px;
	margin-bottom: 10px;
	border-radius: 15px;
}

.poi_popup_lodging_listing {
	table-layout: fixed;
	width: 100%;
	transition: background-color 0.15s ease-in-out;
	border: 1px solid #ddd;
}

.poi_popup_lodging_listing:hover {
	background-color: #f9f9f9;
	color: black;
	cursor: pointer;
}

#poi_display_content {
	position: relative;
	padding-bottom: 200px !important;
}

#poi_display_footer {
	position: sticky;
	bottom: 0;
	right: 0;
	left: 0;
	height: 60px;
	background-color: white;
	border-top: solid 1px dimgrey;
}

.poi_icon
{
	display: inline-block;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.poi_icon_navigate
{
	width: 25px;
	height: 25px;
	background-image: url('../images/icons/navigate-black.png');
}

.poi_icon_add
{
	width: 25px;
	height: 25px;
	background-image: url('../images/icons/add-black.png');
}

.poi_icon_upload
{
	width: 30px;
	height: 30px;
	background-image: url('../images/icons/upload-cloud-black.png');
}

.poi_top_menu_option {
	font-size: 90%;
	padding: 5px 0;
	width: calc(49% - 8px);
}

.poi_top_menu_option {
	cursor: pointer;
	overflow: hidden;
	display: inline-block;
	background-color: rgba(0, 0, 0, .4);
	text-align: center;
	color: white;
	border: solid 2px lightgrey;
	border-radius: 3px;
	transition: border 1s, background-color 2s, color 1s;
	border-radius: 5px;
	text-decoration: none;
	line-height: 1.1;
}

.poi_top_menu_option:hover {
	background-color: lightgrey;
	border: solid 2px white;
	color: black;
}

.poi_top_menu_option_selected {
	background-color: grey;
	color: white;
}

.poi_review_rating_container,
.poi_review_rating_label,
.poi_review_rating {
	display: inline-block;
	width: 49%;
	padding: 0;
	margin: 0;
}

.poi_review_rating_container {
	margin-bottom: 5px;
}

.poi_review_text_container {
	text-align: left;
	padding: 10px 20px;
}

.poi_review_text_label {
	font-weight: 600;
	text-decoration: underline;
}

.poi_review_manager_response_container {
	background-color: grey;
}

#poi_tag_display_container {
	margin-top: 10px;
	margin-bottom: 10px;
}

.poi_tag_display {
	font-size: 80%;
	padding: 3px 6px;
	margin-right: 3px;
	border-radius: 5px;
}

.poi_input {
	font-size: 90%;
	padding: 10px 12px;
	margin-bottom: 5px;
}

#poi_input_form {
	padding: 0px 10px;
	max-width: 100% !important;
}

.select2-selection__choice {
	padding: 2px 5px !important;
}

/* this is the size where our affiliate toggle overlaps with our main menu in search */
@media all and (max-width: 1465px), all and (max-device-width: 1465px)
{
	.desktop_menu
	{
		display: none;
	}

	body.affiliate_search_top_0 #affiliate_search_toggle
	{
		top: -39px;
	}
}

/* Tablet & Smaller */
@media all and (max-width: 1279px), all and (max-device-width: 1279px) {
	#map {
		position: fixed;
		left: 0;
		bottom: 0;
		top: 0;
		right: 0;
		width: 100vw;
		height: 100vh;
	}

	#search_main_results {
		position: sticky;
		top: calc(100vh - 230px) !important;
		top: calc(100svh - 160px) !important;
		left: 0 !important;
		width: 100% !important;
		overflow: visible;
		overscroll-behavior: auto;
		touch-action: pan-y;
		z-index: 20;
		background-color: white;
		border-radius: 15px 15px 0 0;
		padding-top: 80px;
		min-height: 100vh;
		max-width: 100vw;
		max-width: 100svw;
		background: rgba(255, 255, 255, 0.95);
		backdrop-filter: blur(6px);
	}

	#search_main_results_append,
	#search_main_results_append_property,
	#search_main_results_append_activity {
		overflow: visible;
		justify-content: center;
		align-items: center;
	}

	#search_main_results_append {
		padding-top: 0 !important;
	}

	#search_wrapper {
		width: 100%;
		max-width: 100%;
		padding: 0px 5px;
		box-sizing: border-box;
	}

	#map_options_buttons_container {
		width: 320px !important;
	}

	.search_ptype_title {
		margin: 0 auto;
		text-align: center;
		padding: 0;
		padding-top: 20px;
	}

	#affiliate_search_description {
		font-size: 90%;
		border: solid 1px lightgrey;
	}

	#map_dates_only_container {
		margin-bottom: 8px;
	}

	#map_filters_sections_host {
		padding-bottom: 80px;
	}

	#search_datepicker,
	.search_datepicker_alt {
		filter: drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.08));
		border-radius: 20px;
		text-align: center;
	}

	#map_protip_container {
		display: none;
		position: relative;
		top: auto;
		bottom: auto;
		right: auto;
		margin-top: 28px;
		max-width: calc(100% - 10px);
	}

	.map_protip_option_button {
		color: grey;
	}

	.map_protip_option_group_desktop {
		display: none;
	}

	.map_protip_option_group_mobile {
		display: block;
	}

	#content_menu_container {
		z-index: 700;
	}

	#core_menu_shoppingcart { display: none !important; }
	#core_menu_accessibility { margin-left: 0px !important; }

	#map_filters_button,
	#map_alt_filters_button {
		float: left;
		top: 4px;
		left: 3px;
		height: 30px;
		width: 30px;
		position: relative;
		color: #FFFFFF;
		pointer-events: auto;
	}

	#map_filters_container {
		width: 100% !important;
		max-width: 100% !important;
	}

	#search_results_drag_handle {
		display: block;
	}

	#search_header_placeholder {
		height: 100px;
	}

	#search_amenities_list {
		top: 80px;
	}

	.search_list_property_image_container {
		position: relative;
		width: 20%;
	}

	.main_image_listing {
		width: 100% !important;
	}

	#affiliate_search_toggle {
		position: fixed;
		width: auto;
		min-width: calc(100vw - 10px);
		max-width: 100vw;
		max-width: 100svw;
		left: 4px;
		right: 4px;
		margin: 0 auto;
		padding: 0;
		top: auto;
		bottom: 4px;
	}

	/* Keep the desktop menu offset from pulling the tablet toggle upward. */
	body.affiliate_search_top_0 #affiliate_search_toggle
	{
		top: auto;
	}

	#affiliate_search_toggle.affiliate_toggle_below_protip
	{
		display: block;
		clear: both;
		position: relative;
		left: 0;
		right: 0;
		top: auto;
		bottom: auto;
		min-width: 0;
		width: calc(100% - 24px);
		max-width: calc(100% - 24px);
		margin: 12px 12px 0 12px;
		padding: 0 12px 12px 12px;
		box-sizing: border-box;
	}

	#affiliate_search_toggle.affiliate_toggle_below_protip #trail-select,
	#affiliate_search_toggle.affiliate_toggle_below_protip .select2,
	#affiliate_search_toggle.affiliate_toggle_below_protip .select2-container
	{
		width: 100% !important;
		max-width: 100%;
		min-width: 0;
		margin: 0;
		box-sizing: border-box;
	}

	.ui-multiselect.search_categories_activities {
		margin-left: 15px;
		width: auto !important;
		min-width: 50%;
		padding-bottom: 15px;
	}

	#map_dates_destination {
		display: none;
	}

	.search_date_field {
		width: 49%;
		max-width: 49%;
	}

	#map_listing_type_toggles {
		display: none;
	}

	.search_input {
		clear: both;
		width: 100% !important;
		margin-bottom: 5px !important;
		color: black;
	}

	#map_listing_type_toggles_floating {
		display: none;
	}

	#map_lodging_categories_container,
	#map_activities_categories_container {
		width: auto;
	}

	.filter_input {
		font-size: 80%;
	}

	.leaflet-bottom {
		display: none;
	}

	table.calendar {
		width: 100%;
		height: 60%;
	}

	tr.calendar-row {
		vertical-align: top;
	}

	td.calendar-day {
		min-height: 80px;
		position: relative;
	}

	* html div.calendar-day {
		height: 80px;
	}

	td.calendar-day:hover {
		background: #eceff5;
	}

	td.calendar-day-np {
		background: #eee;
		min-height: 80px;
	}

	* html div.calendar-day-np {
		height: 80px;
	}

	/* shared */
	td.calendar-day,
	td.calendar-day-np {
		width: 100%;
		padding: 5px;
		border-bottom: 1px solid #999;
	}

	td.calendar-day-1 {
		border-top: 1px solid #999;
	}

	.event_link,
	.event_link_past {
		display: block;
		cursor: pointer;
		padding: 5px 10px;
		margin: 5px 0;
		font-size: 80%;
		width: 83%;
		text-decoration: none;
		border-radius: 5px;
		background-color: white;
		border: 0;
		color: black;
	}

	.event_link_past {
		background: lightgrey;
	}

	#main_menu_accessibility_widget {
		right: 95px;
	}

	#accessibilityWidget {
		max-width: 25px;
		max-height: 25px;
	}

	#map_poi_container {
		max-width: auto;
	}

	#search_main_results {
		padding-top: 80px;
		max-width: 100%;
		width: 100% !important;
	}

	#map_header_background {
		display: none;
	}

	.manager_calendar_wrapper {
		padding: 0;
		margin: 0;
		text-align: center;
		max-width: 100svw !important;
		max-width: 100vw !important;
		overflow-x: scroll !important;
	}
}

@media all and (max-width: 768px), all and (max-device-width: 768px) {
	#map_options_buttons_container {
		width: 100% !important;
		max-width: 100% !important;
	}

	.search_property_hold_element {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	#map_options_buttons_container {
		width: 100% !important;
		max-width: 100% !important;
	}

	.search_property_hold_element {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	#scroll_to_map_button {
		position: fixed;
		bottom: 15px;
		right: 15px;
		width: 45px;
		height: 45px;
		z-index: 1000;
		background-color: rgba(0, 0, 0, 0.5);
		border-radius: 50%;
		display: none;
	}

	#map_dates_only_container #search_datepicker,
	#map_dates_only_container .search_datepicker_alt
	{
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	/* When a small menu id (<100) exists, allow CSS to control the new top */
	body.affiliate_search_top_0 #affiliate_search_toggle
	{
		top: auto;
	}
}
