:root
{
	--text-color: white;
	--fancybox-content-color:var(--text-color);
	--theme-color: #676D74;
	--hover-color: #e8e8e855;
	--odd-color: #e8e8e822;
	--swiper-navigation-size: 3em;
	--swiper-theme-color: white;
	--header-height: 0px;
}

body
{
	color:var(--text-color);
	font-family: sans-serif;
	margin:0;
	font-size:18px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.toggled
{
	overflow: hidden;
}

body.toggled header
{
	overflow: auto;
	max-height: 100vh;
}


a
{
	color:inherit;
	text-decoration: none;
}

.selectables a
{
	text-decoration: underline;
}

header
{
	position:sticky;
	background:white;
	top:0;
	z-index:100;
}

header .wrapper,
footer .wrapper
{
	margin:auto;
	max-width:80em;
	padding:1em 2em;
}

header .items
{
	display:flex;
	justify-content: space-between;
	align-items: center;
}

header .logo img
{
	display:block;
	width:16em;
	height:6em;
	object-fit:contain;
}

header nav,
footer nav
{
	display:flex;
	gap: 1em;
}

header nav a.active,
header nav a:hover
{
	color: var(--hover-color);
}

header .nav-toggle
{
	display: none;
	width: 2em;
	height: 2em;
	align-items: center;
	justify-content: center;
}

header .nav-toggle::after
{
	content: "\f0c9";
}

.toggled header .nav-toggle::after
{
	content: "\f00d";
}

main .group > .wrapper,
.offer > .wrapper
{
	max-width:80em;
	margin:auto;
}

.group > .wrapper,
.offer > .wrapper
{
	padding:2em;
}

.group > .wrapper > :first-child,
.group > .wrapper > .title:first-child > .wrapper > h1,
.group > .wrapper > .subtitle:first-child > .wrapper > h2
{
	margin-top:0;
}

.group > .wrapper > :last-child,
.group > .wrapper > .title:last-child > .wrapper > h1,
.group > .wrapper > .subtitle:last-child > .wrapper > h2
{
	margin-bottom:0;
}

.group .element
{
	margin:1em 0;
}

.group + .offer:not(.offer-has-iso) > .wrapper,
.offer:not(.offer-has-iso) + .group > .wrapper,
.offer + .offer:not(.offer-has-iso) > .wrapper
{
	padding-top:0;
}

/* elements */

.images img
{
	display:block;
	width:100%;
}

.gallery .items
{
	display:grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap:1em;
}

.gallery img
{
	display:block;
	width:100%;
}

.links .items
{
	display:flex;
	gap: .5em;
	flex-wrap:wrap;
}

[data-slider] .slider-input
{
	padding:0 8px;
	margin:8px 0;
	height: 10px;
}

[data-slider] .slider-value
{
	font-size:smaller;
}

[data-slider] .slider-value span
{
	white-space: nowrap;
}

[data-slider] .slider-input,
[data-slider] .slider-input .noUi-handle
{
	box-shadow: none;
}

/* Hide markers on slider handles */
[data-slider] .slider-input .noUi-handle::before,
[data-slider] .slider-input .noUi-handle::after
{
	display: none;
}

[data-slider] .slider-input .noUi-connect
{
	background: var(--hover-color);
}

[data-slider] .slider-input .noUi-handle
{
	height: 18px;
	width: 18px;
	top: -5px;
	right: -9px; /* half the width */
	border-radius: 9px;
}

[data-iso3d]
{
	position:relative;
	aspect-ratio:1; /* todo: aspect ratio from content*/
}

[data-iso3d] canvas 
{
	position: absolute;
	top:0;
	left:0;
	box-sizing: border-box;
	background: transparent;
	bottom: 0;
	width: 100% !important;
	height: 100% !important;
	outline: none;
}

[data-iso3d] .model-toolbar
{
	position:absolute;
	bottom:0;
	display:flex;
	align-items: center;
	justify-content: center;
	z-index:1;
	width:100%;
}

[data-iso3d] .model-overlay,
[data-iso3d] .model-loading
{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	display:grid;
	place-items: center;
	box-sizing: border-box;
	z-index:1;
	pointer-events:none;
	color:black;
}

[data-iso3d] .model-overlay
{
	display:none;
}


[data-iso3d] .model-overlay.model-overlay-mouse,
[data-iso3d] .model-overlay.model-overlay-touch
{
	display:grid;
	color:white;
	font-size:clamp(1em,3vw,1.3em);
	padding:2em;
	text-align:center;
}

[data-iso3d] .model-overlay.model-overlay-mouse > div,
[data-iso3d] .model-overlay.model-overlay-touch > div
{
	background:rgba(0,0,0,.3);
	padding: .5em 1em;
}

[data-iso3d] .model-overlay.model-overlay-mouse .model-info-touch,
[data-iso3d] .model-overlay.model-overlay-touch .model-info-mouse
{
	display:none;
}

[data-iso3d] .model-loading-done
{
	display:none;
}

[data-iso3d] .model-toolbar > div
{
	background:var(--theme-color);
	outline:1px solid rgb(200,200,200);
}

[data-iso3d] .model-toolbar > div::after,
[data-iso3d] .model-loading > div::after
{
	display: block;
	font:var(--fa-font-regular);
	cursor: pointer;
	width:1em;
	height:1em;
	padding: 1em;
	margin:auto;
}

[data-iso3d] .model-loading > div::after{
	content:"\f110";
	animation-name: fa-spin;
	animation-duration: var(--fa-animation-duration, 2s);
	animation-iteration-count: var(--fa-animation-iteration-count, infinite);
	animation-timing-function: var(--fa-animation-timing, linear);
}

[data-iso3d] .model-toolbar .model-prev::after{content:"\f01e"; transform:rotate(-45deg)}
[data-iso3d] .model-toolbar .model-next::after{content:"\f0e2"; transform:rotate(45deg)}
[data-iso3d] .model-toolbar .model-zoom-in::after{content:"\f00e";}
[data-iso3d] .model-toolbar .model-zoom-out::after{content:"\f010";}
[data-iso3d] .model-toolbar .model-fullscreen::after{content:"\f065";}
[data-iso3d] .model-toolbar .model-maximize::after{content:"\f31e";}
[data-iso3d] .model-toolbar .model-settings::after{content:"\f013";}
[data-iso3d] .model-toolbar .model-home::after{content:"\f14e";}

.offer.offer-has-iso
{
	outline:1px solid rgb(200,200,200);
	overflow:hidden;
}

.offer.offer-has-iso > .wrapper
{
	max-width:100em;
}

.offer.offer-has-iso .offer-iso
{
	grid-area: iso;
	display:grid;
	background: #e4e2df;
	outline:1px solid rgb(200,200,200);
}

.offer [data-iso3d]
{
	--is-iso-meta_zone_state_active_free_color: #00ff004d;
	--is-iso-meta_zone_state_active_reserved_color: #ffff004d;
	--is-iso-meta_zone_state_active_rented_color: #ff00004d;
	--is-iso-meta_zone_state_active_sold_color: #ff00004d;
	--is-iso-meta_zone_state_selected_free_color: #00ff0099;
	--is-iso-meta_zone_state_selected_reserved_color: #ffff0099;
	--is-iso-meta_zone_state_selected_rented_color: #ff000099;
	--is-iso-meta_zone_state_selected_sold_color: #ff000099;
	--is-iso-meta_zone_state_filter_free_color: #00ff001a;
	--is-iso-meta_zone_state_filter_reserved_color: #ffff001a;
	--is-iso-meta_zone_state_filter_rented_color: #ffff001a;
	--is-iso-meta_zone_state_filter_sold_color: #ff00001a;
}

.offer [data-iso3d]
{
	aspect-ratio: auto;
}

.offer [data-iso]
{
	--is-iso-meta_zone_state_active_free_color: #00ff00cc;
	--is-iso-meta_zone_state_active_reserved_color: #ffff00cc;
	--is-iso-meta_zone_state_active_rented_color: #ff0000cc;
	--is-iso-meta_zone_state_active_sold_color: #ff0000cc;
	--is-iso-meta_zone_state_selected_free_color: #00ff00ff;
	--is-iso-meta_zone_state_selected_reserved_color: #ffff00ff;
	--is-iso-meta_zone_state_selected_rented_color: #ff0000ff;
	--is-iso-meta_zone_state_selected_sold_color: #ff0000ff;
	--is-iso-meta_zone_state_filter_free_color: #00ff0099;
	--is-iso-meta_zone_state_filter_reserved_color: #ffff0099;
	--is-iso-meta_zone_state_filter_rented_color: #ff000099;
	--is-iso-meta_zone_state_filter_sold_color: #ff000099;
	
	--is-iso-level-spacing:-200px;
	--is-iso-level-active-count:1;
}

.offer [data-iso] svg
{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
}

.offer [data-iso] .is-iso-level 
{
	transition: all .6s ease;
}

.offer [data-iso] .is-iso-level.is-iso-open 
{
	transform: translateY(calc(var(--is-iso-level-spacing) * var(--is-iso-level-active-count) ) );
}

.offer.offer-has-iso .offer-sidebar
{
	grid-area: sidebar;
	position:relative;
	min-height: 0;
}

.offer.offer-has-iso .offer-sidebar,
.offer.offer-has-iso .offer-detail,
.offer.offer-has-iso .offer-detail .offer-close
{
	outline:1px solid rgb(200,200,200);
	background:var(--theme-color);
}

.offer.offer-has-iso .offer-list
{
	grid-area: list;
	overflow-x:hidden;
	overflow-y:auto;
	height:100%;
	padding:2em;
	box-sizing: border-box;
}

.offer.offer-has-iso .offer-detail
{
	grid-area: detail;
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	z-index:99;

	transition:transform 1s;
	transform:translateX(-100%);
}

.offer.offer-has-iso .offer-detail .offer-close
{
	position:absolute;
	top:50%;
	right:-1px;
	font-size:2em;
	display:grid;
	place-items:center;
	width:2em;
	height:2em;
	cursor:pointer;
	transform:translateX(0%) translateY(-50%);
	transition:transform .5s;
}

.offer.offer-has-iso .offer-detail .offer-close::after
{
	content: "\f00d";
	display: block;
	font:var(--fa-font-regular);
}

.offer.offer-has-iso.offer-state-popup .offer-detail
{
	transform:translateX(0%);
	display:grid;
}

.offer.offer-has-iso.offer-state-popup .offer-detail .offer-close
{
	transform:translateX(100%) translateY(-50%);
}

.offer.offer-has-iso .offerpopup
{
	display:none;
	overflow:hidden;
	transition: display 1s;
}

.offer.offer-has-iso .offerpopup.toggled
{
	display:block;
	overflow:auto;
}

.offer.offer-has-iso > .wrapper
{
	padding:0;
	max-width: none;
}

.offer.offer-has-iso > .wrapper > .items
{
	display:grid;
	grid-template-columns:30em auto;
	grid-template-areas: "sidebar iso";
	height:calc(100vh - var(--header-height));

}

.offer .houses table,
.facts table
{
	width: 100%;
	border-collapse: collapse;
}

.offer .house h2
{
	margin:1.5em 0 .5em 0;
}

.offer .house p
{
	margin-top:.25em;
}

.offer .houses [data-offer-link]:hover
{
	cursor:pointer;
}

.offer .houses .odd,
.facts tr:nth-child(odd)
{
	background: var(--odd-color);
}

.offer .houses td,
.offer .houses th,
.facts td
{
	padding:.5em .5em;
	white-space: nowrap;
}

.offer .property-header,
.offer .property-body
{
	display:grid;
	grid-template-columns: minmax(0,.6fr) minmax(0,.7fr) minmax(0,0.5fr) minmax(0,0.8fr) minmax(0,1.5fr);
}

.offer .property-header
{
	display:none;
}

.offer .property-field
{
	display:none;
	overflow:hidden;
	text-overflow: ellipsis;
	white-space:nowrap;
	padding:.5em .25em;
}

.offer .property-field.required
{
	display:block;
}

.offer .houses [data-reference]:not([data-availability_status="free"]) .primary
{
	color:darkred;
}

.offer .houses [data-reference][data-availability_status="reserved"] .primary
{
	color:darkorange;
}

.offer .houses [data-reference]:hover,
.offer .houses [data-reference].active
{
	background:var(--hover-color);
}

.offer .houses [data-reference].selected
{
	background:#918379;
}

.offer.offer-has-iso .iso 
{
	position:relative;
	display:grid;
}

.offer.offer-has-iso .iso > img
{
	width:100%;
}

.offer .filter .button
{
	display:inline-block;
	text-align:center;
	background:none;
	outline:1px solid rgb(200,200,200);
}

.offer .filters
{
	display:flex;
	flex-direction:column;
	flex-wrap:wrap;
	gap:1em;
	padding: 1em;
	outline:1px solid rgb(200,200,200);
	margin-top:1px;
}

.offer .filters.toggled
{
	display:none;
}

/*
.offer .filter-disabled,
.offer .filters-disabled
{
	display:none;
}
*/

.offer .filters .filter[data-filter-type=slider]
{
	flex: 1 0 auto;
	min-width:8em;
}

.offer .filters .filter[data-filter-type=slider][data-filter-field=rentalprice_incl],
.offer .filters .filter[data-filter-type=slider][data-filter-field=sellingprice],
.offer .filters .filter[data-filter-type=slider][data-filter-field=rentalpriceexcl_m2y]
{
	flex: 2 0 auto;
}

.offer .filters .checkbox
{
	display:block;
	margin:5px 0;
	white-space: nowrap;
}

.offer .filtered
{
	display:none;
}

.plan img
{
	display:block;
	width:100%;
	box-shadow: 0 0 2px 1px #ddd;
}

.button,
button
{
	background:var(--theme-color);
	border:none;
	color:white;
	cursor:pointer;
	padding:.5em 1em;
	white-space: nowrap;
	display: inline-block;
	font-weight:normal;
	outline:1px solid rgb(200,200,200);
}

.button.primary,
button.primary
{
	font-weight:bold;
}

.button.secondary,
button.secondary
{
	color:var(--theme-color);
	border:1px solid var(--theme-color);
	background:none;
}

/* */
.text-left
{
	text-align: left;
}

.text-center
{
	text-align: center;
}

.text-right
{
	text-align: right;
}

.icon::after,
.icon::before
{
	text-align: center;
	font: var(--fa-font-regular);
}

.toggle-button
{
	font-size:1.4em;
	position:relative;
	width:2em;
	height:1em;
	background:gray;
	box-sizing:border-box;
	border-radius:.5em;
	transition:background .5s;
	cursor:pointer;
}

.toggle-button::after
{
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:calc(1em - 4px);
	height:calc(1em - 4px);
	margin:2px;
	background:white;
	border-radius:.4em;
}

.toggle-button.active
{
	background:green;
}

.toggle-button.active::after
{
	right:0;
	left:auto;
}

.tab .body.toggled
{
	display:block;
}

.hidden
{
	display:none;
}

h2
{
	font-size:1.2em;
}

@media(orientation: portrait)
{
	.offer.offer-has-iso > .wrapper > .items
	{
		grid-template-columns:none;
		grid-template-areas: "iso"
		"sidebar";
		height:auto;
	}
	
	.offer .offer-iso
	{
		position:sticky;
		top:var(--header-height);
		z-index:99;
		height: calc(50svh - var(--header-height) / 2);
	}
	
	.offer.offer-has-iso .offer-detail
	{
		position:sticky;
		top: calc((50svh + var(--header-height) / 2));
		transition: none;
	}
	
	.offer.offer-has-iso.offer-state-popup .offer-detail
	{
		height:calc((100dvh - var(--header-height)) - (50svh - var(--header-height) / 2));
	}
	
	.offer.offer-has-iso .offer-list
	{
		height:auto;
	}
	
	.offer.offer-has-iso .offer-sidebar
	{
		display:grid;
		grid-template-areas: "detail"
			"list";
	}
	
	.offer.offer-has-iso
	{
		overflow:visible;
	}
	
	.offer.offer-has-iso .offer-detail .offer-close
	{
		right:0px;
	}
	
	.offer.offer-has-iso.offer-state-popup .offer-detail .offer-close
	{
		right:1px;
		top:-1px;
		transform: translateY(-100%);
	}
}

@media(max-width:1000px)
{
	body
	{
		font-size: 16px;
	}
	
	header nav
	{
		display:none;
	}
	
	.toggled header nav,
	.offer.offer-has-iso .items,
	.contact .items
	{
		display:block;
	}
	
	header .nav-toggle
	{
		display: flex;
	}
	
	.offer.offer-has-iso .offer-list,
	.group > .wrapper, 
	.offer > .wrapper
	{
		padding:1em;
	}
}