@charset "UTF-8";

/********************************************************************************************************************
	Perfekt Wohnen
	styles by outline4.ch
********************************************************************************************************************/

@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;700&display=swap");

:root {
	--pw-color-blue: #6d98aa;
	--pw-color-light-blue: #79b2c1;
	--pw-color-hover-blue: #91bcd0;
	--pw-color-text: #707070;
	--pw-color-dark: #3d3d3d;
	--pw-color-muted: rgba(0, 0, 0, 0.5);
	--pw-color-line: #d3d3d3;
	--pw-color-white: #fff;
	--pw-color-card: #a8a7a4;
	--pw-color-bg-light: #f5f5f5;
	--pw-color-green: #23845b;
	--pw-color-red: #bf5b5b;
	--pw-color-yellow: #f6c67d;

	--pw-space: 30px;
	--pw-gap: 20px;
	--dropdown-offset: 40px;

	--pw-full-content-width: 1240px;
	--pw-content-width: 1180px;
	--pw-narrow-content-width: 1022px;
	--pw-text-width: 870px;
	--pw-intro-width: 780px;
	--pw-image-width: 980px;
	--pw-listing-text-width: 510px;

	--pw-header-height: 140px;
	--pw-font: "Rubik", sans-serif;

	--pw-transition: all 0.25s ease;

	--font-body-size: 20px; --line-body-height: 1.5;
	--font-card-size: 22px; --line-card-height: 1.36;
	--font-medium-size: 16px; --line-medium-height: 1.4;
	--font-small-size: 15px; --line-small-height: 1.5;
	--font-nav-size: 19px; --line-nav-height: 1.5;

	--font-h1-size: 45px; --line-h1-height: 1.33;
	--font-h2-size: 35px; --line-h2-height: 1.26;
	--font-h3-size: 30px; --line-h3-height: 1.5;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	font-size: 100%;
}

body {
	margin: 0;
	padding: 0;
	font-family: var(--pw-font);
	font-size: var(--font-body-size);
	line-height: var(--line-body-height);
	font-weight: 400;
	color: var(--pw-color-muted);
	background: #fff;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: var(--pw-transition); }

button,
input,
textarea {
	font-family: inherit;
}
button { cursor: pointer; }


/* Widths
------------------------------------------------------------------------------------------------------- */
.pw-full-content {
	width: 100%;
	max-width: var(--pw-full-content-width);
	margin-left: auto; margin-right: auto;
	padding-left: var(--pw-space); padding-right: var(--pw-space);
}

.pw-content {
	width: 100%;
	max-width: var(--pw-content-width);
	margin-left: auto; margin-right: auto;
	padding-left: var(--pw-space); padding-right: var(--pw-space);
}

.pw-narrow-content {
	width: 100%;
	max-width: var(--pw-narrow-content-width);
	margin-left: auto; margin-right: auto;
	padding-left: var(--pw-space); padding-right: var(--pw-space);
}

	.pw-text-width { width: 100%; max-width: var(--pw-text-width); }
	.pw-intro-width { width: 100%; max-width: var(--pw-intro-width); }
	.pw-listing-text-width { width: 100%; max-width: var(--pw-listing-text-width); }
	.pw-image-width { width: 100%; max-width: var(--pw-image-width); }



/* Button
------------------------------------------------------------------------------------------------------- */
.pw-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 50px; min-width: 300px;
	padding: 0 28px;
	border: 1px solid var(--pw-color-light-blue);
	background: transparent;
	font-size: var(--font-medium-size); line-height: 1;
	font-weight: normal;
	transition: var(--pw-transition);
}

.pw-button:hover {
	background: var(--pw-color-hover-blue);
	color: var(--pw-color-bg-light);
}

	.pw-button__primary { color: var(--pw-color-light-blue); border-color: var(--pw-color-light-blue); }
	.pw-button__primary:hover { color: var(--pw-color-light-blue); background: var(--pw-color-hover-blue); }

	.pw-button__secondary { color: var(--pw-color-text); border-color: var(--pw-color-text); }
	.pw-button__secondary:hover { color: var(--pw-color-bg-light); background: var(--pw-color-text); }



/* Typography
------------------------------------------------------------------------------------------------------- */
.main-format h1,
.main-format .h1,
.page-title {
	margin: 0;
	font-size: var(--font-h1-size); line-height: var(--line-h1-height);
	font-weight: 700;
	color: var(--pw-color-light-blue);
}

.page-subtitle {
	margin-top: calc(var(--pw-space) / 4)!important;
	font-size: var(--font-card-size); line-height: var(--line-card-height);
	font-weight: 700;
	color: var(--pw-color-dark);
}

.main-format h2,
.main-format .h2,
.section-title {
	margin-top: 0;
	font-size: var(--font-h2-size); line-height: var(--line-h2-height);
	font-weight: 700;
	color: var(--pw-color-text);
}

.main-format h3,
.main-format .h3,
.location-title {
	margin-top: 0;
	font-size: var(--font-h3-size); line-height: var(--line-h3-height);
	font-weight: 700;
	color: var(--pw-color-text);
}

.main-format h2 + p,
.main-format h2 + ul { margin-top: var(--pw-space); }

.main-format p,
.main-format ul,
.main-format table { margin: var(--pw-space) 0 0; }

.main-format ul { padding-left: 18px; }
.main-format li::marker { font-size: 0.65em; }
.main-format hr { margin: calc(var(--pw-space) * 1.5) 0; border: 0; height: 1px; background: var(--pw-color-line); }


.main-format p:has(> .pw-button) { margin-top: calc(var(--pw-space) * 1.5); }

.main-format h2:has(+ p),
.main-format h2:has(+ ul),
.main-format h2:has(+ figure),
.main-format h2:has(+ .block-image),
.main-format h2:has(+ .block-button),
.main-format h2:has(+ .google-map) {
	margin-top: calc(var(--pw-space) * 1.5);
}

.main-format h2:not(:first-child):has(+ p),
.main-format h2:not(:first-child):has(+ ul),
.main-format h2:not(:first-child):has(+ figure),
.main-format h2:not(:first-child):has(+ .block-image),
.main-format h2:not(:first-child):has(+ .block-button),
.main-format h2:not(:first-child):has(+ .google-map) {
	margin-top: calc(var(--pw-space) * 1.5);
}

.main-format a:not(.pw-button):not(.object-card){
	text-decoration: none;
	color: inherit;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
	transition:
		background-size 0.28s ease,
		color 0.28s ease;
}

.main-format a:not(.pw-button):not(.object-card):hover {
	color: #000;
	background-size: 0% 1px;
}

/* Header
------------------------------------------------------------------------------------------------------- */
.site-header {
	height: var(--pw-header-height);
	background: var(--pw-color-blue);
	color: #fff;
	position: relative;
	z-index: 20;
}

	.site-header__inner {
		height: 100%;
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
	}

		.site-logo img {
			position: relative; top: 2px;
			width: 348px;
			height: auto;
			padding-bottom: calc(var(--pw-space))
		}

		.site-nav {
			align-self: flex-end;
			padding-bottom: calc(var(--pw-space))
		}

			.site-nav__list {
				display: flex;
				gap: var(--pw-space);
				align-items: center;
				margin: 0; padding: 0;
				list-style: none;
			}

				.site-nav__item { position: relative; }

				.site-nav__link {
					position: relative;
					display: inline-block;
					font-size: var(--font-nav-size);
					line-height: var(--line-nav-height);
					font-weight: 700;
					color: #fff;
					white-space: nowrap;
					text-decoration: none;
				}

				.site-nav__link::after {
					content: "";
					position: absolute;
					left: 0;
					bottom: 4px;
					width: 100%;
					height: 1px;
					background: currentColor;
					transform: scaleX(0);
					transform-origin: left;
					transition: transform 0.28s ease;
				}

				.site-nav__item:hover > .site-nav__link::after,
				.site-nav__item.is-active > .site-nav__link::after {
					transform: scaleX(1);
				}

		.site-nav__dropdown {
			position: absolute;
			top: calc(100% +  var(--dropdown-offset)); left: calc(-1 * var(--pw-space)); width: 340px;
			padding: var(--pw-space);
			background: rgba(109, 152, 170, 0.92);
			opacity: 0;
			visibility: hidden;
			transform: translateY(-6px);
			transition: var(--pw-transition);
			z-index: 30;
		}

		.site-nav__item:hover .site-nav__dropdown,
		.site-nav__item:focus-within .site-nav__dropdown {
			opacity: 1;
			visibility: visible;
			transform: translateY(0);
		}

		.site-nav__dropdown::before {
			content: "";
			position: absolute;
			left: 0; right: 0; top: calc(-1 * var(--dropdown-offset));
			height: var(--dropdown-offset);
		}

		.site-nav__dropdown ul { margin: 0; padding: 0; list-style: none; }
			.site-nav__dropdown a {
				display: block;
				font-size: var(--font-body-size); line-height: var(--line-body-height);
				font-weight: 400;
				color: #fff;
				margin: 3px 0;
			}
				.site-nav__dropdown a:hover,
				.site-nav__dropdown a.is-active {
					text-decoration: underline;
					text-underline-offset: 2px;
				}

		.mobile-nav-toggle {
			display: none;
		}


/* Hero
------------------------------------------------------------------------------------------------------- */
.hero {
	position: relative;
	min-height: calc(909px - var(--pw-header-height));
	background: #ddd;
	overflow: hidden;
}

.hero__image { position: absolute; inset: 0; }
	.hero__image img { width: 100%; height: 100%; object-fit: cover; }

	.hero__inner {
		position: relative;
		min-height: calc(909px - var(--pw-header-height));
		display: flex;
		align-items: flex-end;
		justify-content: flex-end;
	}

		.hero-box {
			width: 670px;
			padding: calc(var(--pw-space) * 1.5) calc(var(--pw-space) * 2.5);
			margin-bottom: calc(var(--pw-space) * 2.5);
			background: rgba(245, 245, 245, 0.92);
			color: var(--pw-color-light-blue);
		}

		.hero-box h1 {
			margin: 0;
			font-size: var(--font-h2-size); line-height: var(--line-h2-height);
			font-weight: 700;
			color: var(--pw-color-light-blue);
		}




/* Breadcrumbs
------------------------------------------------------------------------------------------------------- */
.breadcrumbs {
	margin-top: calc(var(--pw-space) * 1);
	font-size: var(--font-small-size); line-height: var(--line-small-height);
	color: #d6d6d6;
}

.breadcrumbs ol {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0; padding: 0;
	list-style: none;
}

	.breadcrumbs img { width: 20px; height: 20px; }

	.breadcrumbs__link { color: #d6d6d6; text-decoration: none; }
	.breadcrumbs__current { color: #616b77; text-decoration: underline; text-underline-offset: 3px; }





/* Location Teasers
------------------------------------------------------------------------------------------------------- */
.location-section { margin-top: calc(var(--pw-space) * 5); }

	.location-list {
		display: grid;
		gap: calc(var(--pw-space) * 3);
		margin-top: calc(var(--pw-space) * 1.5);
	}

	.location-teaser {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--pw-space);
		align-items: center;
	}

		.location-teaser:nth-child(even) .location-teaser__image { order: 2; }
		.location-teaser:nth-child(even) .location-teaser__content { order: 1; }


	.location-teaser__image { overflow: hidden; perspective: 900px; }
	.location-teaser__image img { transition: transform 0.45s ease; will-change: transform; }
	.location-teaser__image:hover img { transform: scale(1.04) translateX(-8px) rotateY(3deg); }
	.location-teaser:nth-child(odd) .location-teaser__image:hover img { transform: scale(1.04) translateX(-8px) rotateY(3deg); }
	.location-teaser:nth-child(even) .location-teaser__image:hover img { transform: scale(1.04) translateX(8px) rotateY(-3deg); }


/* Badges
------------------------------------------------------------------------------------------------------- */
.badge {
	position: absolute;
	top: 0; right: 0;
	padding: 25px var(--pw-space);
	min-width: 170px;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--font-medium-size);
	font-weight: normal;

	color: #fff;
	background: var(--pw-color-green);
}

	.badge--red { background: var(--pw-color-red); }
	.badge--green { background: var(--pw-color-green); }
	.badge--yellow { background: var(--pw-color-yellow); }




/* Object Cards
------------------------------------------------------------------------------------------------------- */

.object-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: calc(var(--pw-space) * 2) var(--pw-space);
}

.object-card {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr;
	color: var(--pw-color-white);
	background: var(--pw-color-card);
	overflow: hidden;
}

	.object-card__image {
		aspect-ratio: 575 / 381;
		overflow: hidden;
		perspective: 900px;
	}

	.object-card__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.45s ease;
		will-change: transform;
	}

	.object-card:hover .object-card__image img {
		transform: scale(1.04) translateX(-8px) rotateY(3deg);
	}
		.object-card:nth-child(odd):hover .object-card__image img { transform: scale(1.04) translateX(-8px) rotateY(3deg); }
		.object-card:nth-child(even):hover .object-card__image img { transform: scale(1.04) translateX(8px) rotateY(-3deg); }


	.object-card__price {
		position: absolute;
		top: 0; right: 0;
		min-height: 52px;
		padding: 25px calc(var(--pw-space) * 2);

		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--pw-color-green);

		color: var(--pw-color-white);
		font-size: var(--font-medium-size); line-height: var(--line-medium-height);
		font-weight: 700;
		z-index: 2;
	}

	.object-card__body {
		color: var(--pw-color-white);
		min-height: 112px;
		padding: var(--pw-space) calc(var(--pw-space) * 2) var(--pw-space) var(--pw-space);
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.object-card__title {
		font-size: var(--font-card-size); line-height: var(--line-card-height);
		font-weight: 700;
	}

	.object-card__meta {
		font-size: var(--font-card-size); line-height: var(--line-card-height);
		font-weight: 400;
	}

	.object-card__arrow {
		position: absolute;
		right: 28px;
		top: 50%;
		transform: translateY(-50%);
		width: 18px;
		transition: transform 0.25s ease;
	}

	.object-card:hover .object-card__arrow {
		transform: translate(8px, -50%);
	}

/* Listing Pages
------------------------------------------------------------------------------------------------------- */

.page-main { padding-top: calc(var(--pw-space) * 2); }

.grouped-objects { margin-top: calc(var(--pw-space) * 2); }
.grouped-objects + .grouped-objects { margin-top: calc(var(--pw-space) * 5); }
.object-group + .object-group { margin-top: calc(var(--pw-space) * 5); }
.object-group .object-grid { margin-top: var(--pw-space); }



/* Standort Detail
------------------------------------------------------------------------------------------------------- */
.location-detail__image { margin-top: calc(var(--pw-space) * 2); }
.location-detail__content { margin-top: calc(var(--pw-space) * 1.5); }
.location-detail__objects { margin-top: calc(var(--pw-space) * 3); }
.location-detail__objects .object-grid { margin-top: var(--pw-space); }


.image-tilt { overflow: hidden; perspective: 900px; }
.image-tilt img { width: 100%; transition: transform 0.45s ease; will-change: transform; }
.image-tilt:hover img { transform: scale(1.04) translateX(-8px) rotateY(3deg); }



/* Object Detail
------------------------------------------------------------------------------------------------------- */

.object-detail-layout {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 20px;
	align-items: start;
}


/* gallery
-------------------------------------------------------------------*/
.object-detail__gallery { margin-top: calc(var(--pw-space) * 2); }

.gallery-grid {
	display: grid;
	gap: var(--pw-gap);
}

.gallery-grid__item {
	position: relative;
	overflow: hidden;
	display: block;
}

.gallery-grid__item img {
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.gallery-grid__item:hover img {
	transform: scale(1.03);
}

/* 1 image */
.gallery-grid--count-1 { grid-template-columns: 1fr; }
.gallery-grid--count-1 .gallery-grid__item img { aspect-ratio: 2 / 1; }

/* 2 images */
.gallery-grid--count-2 { grid-template-columns: repeat(2, 1fr); }

/* 3 images */
.gallery-grid--count-3 { grid-template-columns: 3fr 1fr; grid-template-rows: repeat(2, 1fr); }
.gallery-grid--count-3 .gallery-grid__main { grid-row: span 2; }

/* 4 images: like 3, but last one gets overlay */
.gallery-grid--count-4 { grid-template-columns: 3fr 1fr; grid-template-rows: repeat(2, 1fr); }
.gallery-grid--count-4 .gallery-grid__main { grid-row: span 2; }

/* 5+ images: screenshot layout */
.gallery-grid--count-5 {
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(2, 1fr);
}

.gallery-grid--count-5 .gallery-grid__main { grid-row: span 2; }


/* More button */
.gallery-grid__more {
	position: absolute;
	right: calc(var(--pw-space) * 0.5); bottom: calc(var(--pw-space) * 0.5);
	min-height: 52px;
	padding: 0 24px;
	background: #fff;
	color: #000;
	font-size: var(--font-medium-size); line-height: var(--line-medium-height);

	display: inline-flex;
	align-items: center;
	gap: 12px;
	z-index: 2;
	pointer-events: none;
}
	.gallery-grid__more-icon { font-size: 20px; line-height: 1; }





.object-actions {
	display: flex;
	gap: 28px;
	margin-top: 24px;
	font-size: 16px;
	color: var(--pw-color-text);
}

.object-actions button {
	border: 0;
	background: transparent;
	padding: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: inherit;
	font-size: 16px;
}

.object-actions img {
	width: 18px;
	height: 18px;
}

.detail-block {
	margin-top: 42px;
	padding-bottom: 36px;
	border-bottom: 1px solid var(--pw-color-line);
}

.detail-block h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--pw-color-text);
}

.detail-block table,
.detail-block p,
.detail-block ul {
	margin-top: calc(var(--pw-space) * 0.5);
	font-size: var(--font-body-size);
	line-height: var(--line-body-height);
	color: var(--pw-color-text);
}

.detail-block table {
	border-collapse: collapse;
}

.detail-block td {
	padding: 0 70px 0 0;
	vertical-align: top;
}

.detail-block ul {
	padding-left: 18px;
}

.map-placeholder {
	margin-top: calc(var(--pw-space) * 0.5);
	width: 100%;
	aspect-ratio: 680 / 430;
	background:
		linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,.5)),
		repeating-linear-gradient(45deg, #e7e7e7 0, #e7e7e7 8px, #f2f2f2 8px, #f2f2f2 16px);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #777;
	font-size: 16px;
}

.download-button {
	margin-top: calc(var(--pw-space) * 0.5);
	min-height: 50px;
	padding: 0 calc(var(--pw-space) * 2);
	display: inline-flex;
	align-items: center;
	gap: 12px;
	border: 1px solid var(--pw-color-text);
	background: transparent;
	color: var(--pw-color-text);
	font-size: 16px;
}

.download-button img { width: 16px; }



/* Contact Form
------------------------------------------------------------------------------------------------------- */
.contact-box {
	position: sticky;
	top: var(--pw-space);
	margin-top: 0;
	padding: calc(var(--pw-space) * 1.5);
	background: rgba(168, 167, 164, 0.3);
}

.contact-box h2 {
	margin: 0 0 18px;
	font-size: 25px;
	font-weight: 500;
	line-height: 2.28;
	color: rgba(0, 0, 0, 0.85);
}

.contact-form {
	display: grid;
	gap: 18px;
}

.contact-form input,
.contact-form textarea {
	width: 100%;
	border: 0;
	background: #fff;
	padding: 0 var(--pw-gap);
	min-height: calc(var(--pw-space) * 2);
	font-size: 16px;
	line-height: 1.4;
	color: var(--pw-color-text);
	border-radius: 0;
	appearance: none;
}

.contact-form textarea {
	min-height: 200px;
	padding-top: 18px;
	resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: var(--pw-color-text);
	opacity: 1;
}

.contact-form button {
	justify-self: start;
	min-height: 42px;
	padding: 0 20px;
	border: 0;
	background: var(--pw-color-hover-blue);
	color: #fff;
	font-size: 16px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.contact-form button img {
	width: 16px;
}



/* Footer
------------------------------------------------------------------------------------------------------- */

.site-footer {
	margin-top: 120px;
	background: var(--pw-color-blue);
	color: #fff;
}

.site-footer__inner {
	min-height: 470px;
	padding-top: calc(var(--pw-space) * 4);
	padding-bottom: calc(var(--pw-space) * 1.5);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

	.site-footer__logo img { width: 380px; height: auto; }
	.site-footer__managed { margin-top: calc(var(--pw-space) * 4); }
	.site-footer__adimmo { margin-top: var(--pw-space); }
		.site-footer__adimmo img { width: 230px; height: auto; }
	.site-footer__bottom {
		width: 100%;
		margin-top: calc(var(--pw-space) * 4);

		display: flex;
		gap: calc(var(--pw-space) * 2);
		justify-content: flex-start;
		font-size: var(--font-small-size);
		line-height: var(--line-small-height);
	}

		.site-footer__bottom a {
			position: relative;
			display: inline-block;
			text-decoration: none;
			color: inherit;
		}

		.site-footer__bottom a::after {
			content: "";
			position: absolute;
			left: 0;
			bottom: 4px;
			width: 100%;
			height: 1px;
			background: currentColor;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.28s ease;
		}

		.site-footer__bottom a:hover::after,
		.site-footer__bottom a.is-active::after {
			transform: scaleX(1);
		}


/* Lightbox
------------------------------------------------------------------------------------------------------- */

body.lightbox-open {
	overflow: hidden;
}

.lightbox {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.88);
	z-index: 100;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 40px;
}

.lightbox.is-open {
	display: flex;
}

.lightbox img {
	max-width: 90vw;
	max-height: 86vh;
	object-fit: contain;
}

.lightbox__close,
.lightbox__prev,
.lightbox__next {
	position: absolute;
	border: 0;
	background: rgba(255, 255, 255, 0.9);
	color: #000;
	width: 46px;
	height: 46px;
	font-size: 28px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox__close {
	top: 24px;
	right: 24px;
}

.lightbox__prev {
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.lightbox__next {
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}




/* Responsive
------------------------------------------------------------------------------------------------------- */

@media (max-width: 1080px) {
	:root {
		--pw-header-height: 110px;
	}


	.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; }

		.site-header__inner { align-items: center; }

		.site-logo img { width: 250px; padding-bottom: 0; top: -1px;}

		.mobile-nav-toggle {
			display: flex;
			flex-direction: column;
			justify-content: center;
			gap: 6px;

			width: 42px;
			height: 42px;
			padding: 0;
			border: 0;
			background: transparent;
		}

			.mobile-nav-toggle span {
				display: block;
				width: 36px;
				height: 3px;
				background: #fff;
				border-radius: 2px;
				transform-origin: center;
				transition: transform 0.25s ease, opacity 0.2s ease;
			}
				/* animation */
				body.nav-open .mobile-nav-toggle span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
				body.nav-open .mobile-nav-toggle span:nth-child(2) { opacity: 0; }
				body.nav-open .mobile-nav-toggle span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }


		.site-nav {
			position: fixed;
			top: var(--pw-header-height); left: 0; right: 0;
			height: calc(100vh - var(--pw-header-height));
			bottom: auto;
			background: var(--pw-color-blue);
			padding: var(--pw-space);
			display: none;
			z-index: 99;
			box-shadow: 0 24px 24px rgba(0, 0, 0, 0.12);
		}

		body.nav-open .site-nav { display: block; }

		.site-nav__list {
			display: grid;
			gap: var(--pw-gap);
		}

		.site-nav__dropdown {
			position: static;
			width: auto;
			padding: 18px 0 0 20px;
			background: transparent;
			opacity: 1;
			visibility: visible;
			transform: none;
			display: none;
		}
			.site-nav__dropdown::before { display: none; content: none; }

		.site-nav__item:hover .site-nav__dropdown,
		.site-nav__item:focus-within .site-nav__dropdown {
			display: none;
		}

		.site-nav__item.is-open .site-nav__dropdown { display: block; }


}


@media (max-width: 900px) {

	.page-title {
		font-size: 36px;
	}

	.location-teaser,
	.object-detail-layout {
		grid-template-columns: 1fr;
	}

	.location-teaser:nth-child(even) .location-teaser__image,
	.location-teaser:nth-child(even) .location-teaser__content {
		order: initial;
	}

	.object-grid {
		grid-template-columns: 1fr;
	}

	.object-group + .object-group {
		margin-top: calc(var(--pw-space) * 3);
	}

	.gallery-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gallery-grid__main {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.contact-box {
		position: static;
		margin-top: calc(var(--pw-space) * 2);
	}

	.site-footer__bottom {
		justify-content: space-between;
	}
}


@media (max-width: 750px) {
	.hero {
		min-height: 0;
		aspect-ratio: auto;
		display: flex;
		flex-direction: column;
		overflow: visible;
		background: var(--pw-color-blue);
	}

	.hero__image {
		position: relative;
		inset: auto;
		width: 100%;
		aspect-ratio: 4 / 3;
		overflow: hidden;
	}

	.hero__image img {
		width: 100%; height: 100%;
		object-fit: cover;
	}

	.hero__inner {
		position: relative;
		inset: auto;
		min-height: 0;
		display: block;
		width: 100%; max-width: none;
		padding-left: 0; padding-right: 0;
	}

	.hero-box {
		width: 100%;
		margin: 0;
		padding: var(--pw-space);
		background: var(--pw-color-blue);
		color: #fff;
	}

	.hero-box h1 {
		font-size: var(--pw-space);
		color: #fff;
	}

	.hero-box p {
		color: #fff;
	}

	.hero-box .pw-button {
		color: #fff;
		border-color: #fff;
	}

	.hero-box .pw-button:hover {
		background: #fff;
		color: var(--pw-color-blue);
	}
}


@media (max-width: 520px) {
	.pw-content, .pw-full-content, .pw-narrow-content {
		padding-left: var(--pw-gap);
		padding-right: var(--pw-gap);
	}

	.hero__image { aspect-ratio: 1 / 1; }

	.site-logo img,
	.site-footer__logo img {
		width: 230px;
	}

	.hero-box { padding: var(--pw-space) 0; }

	.pw-button { width: 100%; }

	.object-card__title,
	.object-card__meta {
		font-size: 18px;
	}

	.contact-box {
		padding: var(--pw-space);
	}

	.site-footer__inner {
		min-height: 420px;
	}
}


/* Specials */
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: center; }





/*-------------------------------------------------------------------------------------------------------

 						Blocks
						======

------------------------------------------------------------------------------------------------------- */



/* image Block
------------------------------------------------------------------------------------------------------- */
.block-image { margin-top: calc(var(--pw-space) * 2); }
	.block-image:first-child { margin-top: 0; }



/* Intro block
------------------------------------------------------------------------------------------------------- */
.intro {
	margin-top: calc(var(--pw-space) * 3);
	text-align: center; margin-left: auto; margin-right: auto;
}


/* block button
------------------------------------------------------------------------------------------------------- */
.block-button { margin-top: calc(var(--pw-space) * 1.5); }

.pw-button__icon { display: inline-flex; align-items: center; }
	.pw-button__icon--left { margin-right: 10px; }
	.pw-button__icon--right { margin-left: 10px; }


/* google maps block
------------------------------------------------------------------------------------------------------- */
.google-map {
	width: 100%;
	aspect-ratio: 680 / 430;
	margin-top: calc(var(--pw-space) * 1.5);
	background: #e7e7e7;
	overflow: hidden;
}

.google-map iframe {
	display: block;
	width: 100%;
	height: 100%;
}
