/*
 * Mobile property header. The theme remains untouched until the controller
 * confirms that a title, gallery and at least one real image are available.
 */

body.waoh-single-property-enabled {
	--waoh-single-accent: #2c7a7b;
	--waoh-single-ink: #343b3d;
	--waoh-single-muted: #626978;
	--waoh-single-surface: #fff;
	--waoh-single-divider: #e2e5e8;
}

.waoh-single-property-mobile {
	display: none;
}

@media (max-width: 767px) {
	body.waoh-single-property-ready {
		overflow-x: hidden;
		overflow-x: clip;
		background: var(--waoh-single-surface) !important;
		padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
	}

	body.single-estate_property.waoh-single-property-ready .mobile_booking_wrapper {
		position: fixed !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		border: 0 !important;
		border-top: 1px solid var(--waoh-single-divider) !important;
		background: #fff !important;
		box-shadow: 0 -8px 24px rgb(28 39 40 / 12%) !important;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom)) !important;
		z-index: 9999 !important;
	}

	body.single-estate_property.waoh-single-property-ready .mobile_booking_wrapper_flex {
		display: none !important;
	}

	body.single-estate_property.waoh-single-property-ready #mobile_booking_triger {
		display: flex !important;
		width: 100% !important;
		min-height: 56px !important;
		height: auto !important;
		align-items: center;
		justify-content: center;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 12px !important;
		background: var(--waoh-single-accent) !important;
		box-shadow: none !important;
		color: #fff !important;
		font-family: inherit !important;
		font-size: 16px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		padding: 16px 20px !important;
		text-align: center;
	}

	body.single-estate_property.waoh-single-property-ready #mobile_booking_triger:focus-visible {
		outline: 3px solid color-mix(in srgb, var(--waoh-single-accent) 32%, white);
		outline-offset: 2px;
	}

	body.single-estate_property.waoh-single-property-ready #all_wrapper,
	body.single-estate_property.waoh-single-property-ready .container.main_wrapper,
	body.single-estate_property.waoh-single-property-ready .content_wrapper.listing_wrapper,
	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5,
	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing,
	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 {
		background: var(--waoh-single-surface) !important;
	}

	body.single-estate_property.waoh-single-property-ready .content_wrapper.listing_wrapper,
	body.waoh-single-property-ready .content-fixed-listing.listing_type_5 {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .listing_type_title_wrapper,
	body.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .listing_main_image.header_masonry {
		display: none !important;
	}

	.waoh-single-property-mobile {
		position: relative;
		left: 50%;
		display: block;
		box-sizing: border-box;
		width: 100vw;
		max-width: none;
		margin: 0;
		transform: translateX(-50%);
		background: var(--waoh-single-surface);
		color: var(--waoh-single-ink);
		font-family: inherit;
	}

	.waoh-single-property-mobile *,
	.waoh-single-property-mobile *::before,
	.waoh-single-property-mobile *::after {
		box-sizing: border-box;
	}

	.waoh-single-gallery {
		position: relative;
		width: 100%;
		background: #e9eeee;
		isolation: isolate;
	}

	.waoh-single-gallery__track {
		display: flex;
		width: 100%;
		aspect-ratio: 4 / 3;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-behavior: smooth;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
		-webkit-overflow-scrolling: touch;
	}

	.waoh-single-gallery__track::-webkit-scrollbar {
		display: none;
	}

	.waoh-single-gallery__slide {
		position: relative;
		flex: 0 0 100%;
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		background: #e9eeee;
	}

	.waoh-single-gallery__slide > a {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		display: block;
		float: none !important;
		width: 100%;
		max-width: none !important;
		height: 100%;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		cursor: zoom-in;
		touch-action: pan-x;
	}

	.waoh-single-gallery__slide img {
		display: block;
		width: 100% !important;
		max-width: none !important;
		height: 100% !important;
		margin: 0;
		border: 0;
		object-fit: cover;
		object-position: center;
	}

	.waoh-single-gallery__actions {
		position: absolute;
		z-index: 4;
		top: max(14px, env(safe-area-inset-top));
		right: 16px;
		display: flex;
		gap: 10px;
	}

	.waoh-single-gallery__action,
	.waoh-single-gallery__arrow {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 999px !important;
		background: rgb(255 255 255 / 96%) !important;
		box-shadow: 0 3px 14px rgb(26 37 38 / 16%);
		color: #303536 !important;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
	}

	.waoh-single-gallery__action {
		width: 46px;
		height: 46px;
		padding: 0 !important;
	}

	.waoh-single-gallery__action svg,
	.waoh-single-gallery__arrow svg {
		display: block;
		width: 23px;
		height: 23px;
		pointer-events: none;
	}

	.waoh-single-gallery__favorite svg {
		fill: none;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 2;
	}

	.waoh-single-gallery__favorite.waoh-favorite-is-saved {
		color: var(--waoh-single-accent) !important;
	}

	.waoh-single-gallery__favorite.waoh-favorite-is-saved svg {
		fill: currentColor;
	}

	.waoh-single-gallery__action:focus-visible,
	.waoh-single-gallery__arrow:focus-visible,
	.waoh-single-gallery__slide > a:focus-visible {
		outline: 3px solid var(--waoh-single-accent);
		outline-offset: 3px;
	}

	.waoh-single-gallery__arrow {
		position: absolute;
		z-index: 3;
		top: 50%;
		width: 42px;
		height: 42px;
		padding: 0 !important;
		transform: translateY(-50%);
		background: rgb(255 255 255 / 88%) !important;
		box-shadow: 0 2px 10px rgb(0 0 0 / 12%);
	}

	.waoh-single-gallery__arrow--previous {
		left: 12px;
	}

	.waoh-single-gallery__arrow--next {
		right: 12px;
	}

	.waoh-single-gallery__arrow[disabled] {
		display: none !important;
	}

	.waoh-single-gallery__counter {
		position: absolute;
		z-index: 3;
		right: 16px;
		bottom: 30px;
		display: inline-flex;
		min-width: 58px;
		min-height: 38px;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
		background: rgb(31 35 35 / 78%);
		color: #fff;
		font-size: 14px;
		font-weight: 600;
		line-height: 1;
		padding: 0 13px;
	}

	.waoh-single-summary {
		position: relative;
		z-index: 5;
		margin-top: 0;
		border-bottom: 1px solid var(--waoh-single-divider);
		border-radius: 0;
		background: var(--waoh-single-surface);
		padding: 24px 20px;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > .single-content.listing-content {
		width: 100% !important;
		margin: 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--waoh-single-divider) !important;
		border-radius: 0 !important;
		background: var(--waoh-single-surface) !important;
		box-shadow: none !important;
		padding: 0 20px !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > .single-content.listing-content .category_wrapper {
		margin: 0 !important;
		padding: 24px 0 !important;
	}

	body.single-estate_property.waoh-single-property-ready.waoh-single-keyfacts-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > .single-content.listing-content {
		display: none !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > .panel-wrapper {
		box-sizing: border-box;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--waoh-single-divider) !important;
		border-radius: 0 !important;
		background: var(--waoh-single-surface) !important;
		box-shadow: none !important;
		padding: 24px 20px !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > #listing_calendar {
		box-sizing: border-box;
		width: 100% !important;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: var(--waoh-single-surface) !important;
		box-shadow: none !important;
		padding: 24px 20px 12px !important;
	}

	body.single-estate_property.waoh-single-property-ready .content-fixed-listing.listing_type_5 > .row.content-fixed-listing > .col-md-8 > .property_page_container.wprentals_front_avalability {
		box-sizing: border-box;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		border: 0 !important;
		border-bottom: 1px solid var(--waoh-single-divider) !important;
		border-radius: 0 !important;
		background: var(--waoh-single-surface) !important;
		box-shadow: none !important;
		padding: 0 20px 24px !important;
	}

	.waoh-single-summary__title {
		margin: 0;
		color: var(--waoh-single-ink);
		font-family: inherit;
		font-size: clamp(24px, 6.7vw, 28px);
		font-weight: 600;
		letter-spacing: -0.02em;
		line-height: 1.18;
	}

	.waoh-single-rating {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 9px 12px;
		margin-top: 18px;
	}

	.waoh-single-rating[hidden] {
		display: none !important;
	}

	.waoh-single-rating__badge {
		display: inline-flex;
		overflow: hidden;
		align-items: stretch;
		border: 1px solid #cfe3e2;
		border-color: color-mix(in srgb, var(--waoh-single-accent) 28%, white);
		border-radius: 999px;
		background: #fff;
		color: var(--waoh-single-accent);
		font-size: 14px;
		font-weight: 700;
		line-height: 1;
	}

	.waoh-single-rating__score,
	.waoh-single-rating__label {
		display: inline-flex;
		min-height: 36px;
		align-items: center;
		padding: 0 12px;
	}

	.waoh-single-rating__score {
		gap: 5px;
		background: var(--waoh-single-accent);
		color: #fff;
	}

	.waoh-single-rating__reviews {
		color: var(--waoh-single-ink) !important;
		font-size: 14px;
		font-weight: 600;
		text-decoration: underline;
		text-underline-offset: 3px;
	}

	.waoh-single-summary__location {
		display: flex;
		align-items: flex-start;
		gap: 8px;
		margin-top: 17px;
		color: var(--waoh-single-muted);
		font-size: 15px;
		line-height: 1.45;
	}

	.waoh-single-summary__location svg {
		flex: 0 0 auto;
		width: 19px;
		height: 19px;
		margin-top: 1px;
		color: var(--waoh-single-accent);
		fill: none;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 2;
	}

	.waoh-single-keyfacts {
		width: 100%;
		border-bottom: 1px solid var(--waoh-single-divider);
		background: var(--waoh-single-surface);
		padding: 24px 20px 22px;
	}

	.waoh-single-keyfacts__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 16px;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.waoh-single-keyfacts__item {
		display: flex;
		min-width: 0;
		align-items: center;
		gap: 10px;
		margin: 0;
		color: var(--waoh-single-ink);
		font-family: inherit;
		font-size: 16px;
		font-weight: 500;
		letter-spacing: -0.01em;
		line-height: 1.28;
	}

	.waoh-single-keyfacts__item svg {
		flex: 0 0 25px;
		width: 25px;
		height: 25px;
		color: var(--waoh-single-accent);
		fill: none;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.9;
	}

	.waoh-single-keyfacts__label {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	@media (max-width: 359px) {
		.waoh-single-keyfacts {
			padding-right: 16px;
			padding-left: 16px;
		}

		.waoh-single-keyfacts__grid {
			gap: 18px 12px;
		}

		.waoh-single-keyfacts__item {
			gap: 8px;
			font-size: 15px;
		}

		.waoh-single-keyfacts__item svg {
			flex-basis: 23px;
			width: 23px;
			height: 23px;
		}
	}

	.waoh-single-share-status {
		position: fixed;
		z-index: 1000000;
		bottom: max(22px, env(safe-area-inset-bottom));
		left: 50%;
		max-width: calc(100vw - 40px);
		transform: translate(-50%, 20px);
		border-radius: 12px;
		background: #263638;
		box-shadow: 0 8px 24px rgb(0 0 0 / 22%);
		color: #fff;
		font-size: 14px;
		font-weight: 600;
		opacity: 0;
		padding: 12px 16px;
		pointer-events: none;
		transition: opacity 160ms ease, transform 160ms ease;
	}

	.waoh-single-share-status.is-visible {
		transform: translate(-50%, 0);
		opacity: 1;
	}

	@media (prefers-reduced-motion: reduce) {
		.waoh-single-gallery__track {
			scroll-behavior: auto;
		}
		.waoh-single-share-status {
			transition: none;
		}
	}
}
