:root {
	color-scheme: light;

	--bg: #fff;
	--text: #333;
	--text-tr: #0005;

	--bg-light: #f5f5f5;

	--accent: #FF6522;
	--accent-tr: #FF4D0080;
	--accent-tr-10: #FF4D0008;
	--accent-tr-20: #FF4D0020;
	--accent-tr-40: #FF4D0050;
	--accent-tr-80: #FF4D00aa;
	--accent-dark: #D16733;
	--accent-light: #FFBEA2;
	--accent-light-tr: #FFBEA280;
	--accent-light-on-gray: #FF9A6F;
	--accent-light-on-gray-tr: #FF9A6F80;

	--red: #ff5555;
	--yellow: #f4e7a3;
	--green: #baf39e;
	--blue: #82d8fd;
	--rose: #fddec6;
	--teal: #85F3CF;
	--orange: #ffbf57;
	--pink: #FFA6FF;

	--font-size: 20px;
	--line-height: 1.75em;
	--mw: 32rem;
	--max-w: 50rem;
}


a,
article,
aside,
body,
button,
dd,
div,
dl,
dt,
em,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
i,
iframe,
img,
input,
label,
li,
main,
nav,
output,
p,
section,
small,
span,
strong,
textarea,
title,
ul {
	all: unset;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var( --gap-y, var(--gap, 1rem) )
		 var( --gap-x, var(--gap, 1rem) )
		 ;
	flex-wrap: wrap;
	word-wrap: break-word;
	hyphens: auto;
	box-sizing: border-box;
	overflow: visible;
	scroll-padding: 3rem;
	color: var(--c, var(--text));
	transition: all 0.125s ease-in-out;
	font-size: var(--font-size);
	line-height: var(--line-height);
	font-family: 'Kadwa'
		, 'DejaVu Sans'
		, 'PT Sans'
		, 'Helvetica'
		, 'Helvetica Rounded'
		, sans-serif
		;
}

/* hidden */
head,
title,
style,
script,
[hidden],
[type=hidden],
.hidden,
summary ::-webkit-details-marker {
	display: none;
}

[disabled],
.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

html {
	scroll-behavior: smooth;
	font-size: var(--font-size);
	display: unset;
	overflow-x: auto;
	overflow-y: scroll;
}

body {
	overflow: hidden;
	position: relative;
	background: var(--bg);
	min-height: 100vh;
	min-width: var(--mw);
	max-width: 100vw;
	--gap: 0;
}

main {
	width: 100%;
	flex-grow: 1;
	position: relative;
	align-content: flex-start;
	justify-content: center;
	--gap: 3rem;
}

footer {
	z-index: 100;
	background-color: var(--accent);
	padding: 2rem 1rem;
	--font-size: 0.75rem;
	--gap-x: 2rem;
	--gap-y: 2rem;
}
footer .col {
	--gap-y: 0.25em;
}
footer .col a {
	--gap-x: 0.5rem;
	flex-wrap: nowrap;
	align-items: flex-start;
}
footer .col a span {
	text-align: left;
}
footer .col a i {
	line-height: 1.25rem;
}
footer * {
	color: white;
}


input::placeholder {
	color: var(--accent);
}

a:any-link,
button,
label[for],
input[type="submit"],
input[type="button"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="color"] {
	cursor: pointer;
}

footer a:hover span,
footer a:focus span,
footer a:active span {
	color: var(--accent);
	background-color: var(--bg);
	box-shadow: -0.3rem 0rem 0 0 var(--bg)
	, 0.3rem 0rem 0 0 var(--bg)
	;
}

.gap-space {
	--gap-x:0.5em;
}
.nogap {
	--gap-x: 0;
	--gap-y: 0;
}

.col {
	flex-direction: column;
	flex-wrap: nowrap;
}
.c {
	align-content: center;
	align-items: center;
	justify-content: center;
	justify-items: center;
	text-align: center;
}

.row.top {
	align-items: flex-start;
}

.col.top {
	justify-items: flex-start;
}

figure {
	display: grid;
	justify-items: flex-start;
	align-items: flex-end;
	grid-template: 'fig';
}
figure > img { grid-area: fig; }
figure > figcaption {
	grid-area: fig;
	margin: 0.5em;
	padding: 0 0.5em;
	backdrop-filter: opacity(0.8) blur(0.25em);
	background-color: var(--accent-tr);
	align-content: flex-end;
	justify-content: flex-start;
	flex-wrap: nowrap;
	text-align: left;
	--gap-x: 0.5em;
}
figure > figcaption,
figure > figcaption i,
figure > figcaption span {
	color: white;
}

nav {
	z-index: 1000;
	background-color: var(--bg);
	padding: 3rem 1rem 2.5rem 0;
	--gap: 1rem;
	flex-wrap: nowrap;
	white-space: pre;
}
.menu-equal-padding-bottom nav {
	padding-bottom: 3rem;
}

nav.fixed {
	z-index: 100;
	background-color: var(--bg);
	padding: 0 1rem;
	--gap: 1rem;
	position: fixed;
	top: 0;
	margin-top: 0 !important;
	width: 100%;
}
nav > a:any-link,
nav .dropdown > a:any-link {
	padding: 0.5rem 1rem;
}
nav .dropdown > ul a:any-link {
	padding: 0.5rem 0.5rem;
}
nav .dropdown > ul a:any-link span {
	padding: 0 0.25em;
	background: #fff1;
	box-shadow: 0 0 0.7rem 0.65rem #fff1;
}

nav > a:hover,
nav > a:focus,
nav > a:active {
	box-shadow: 0 0 0 0.25em #0000000a;
}
nav > a:hover,
nav > a:focus,
nav > a:active,
nav .dropdown:hover > a,
nav .dropdown:focus > a,
nav .dropdown:active > a,
nav .dropdown > a:hover,
nav .dropdown > a:focus,
nav .dropdown > a:active,
nav .dropdown > ul a:hover,
nav .dropdown > ul a:focus,
nav .dropdown > ul a:active {
	background-color: #0001;
}
nav .dropdown > ul a:hover span,
nav .dropdown > ul a:focus span,
nav .dropdown > ul a:active span {
	background: #fff8;
	box-shadow: 0 0 0.7rem 0.65rem #fff8;
}

.relative {
	position: relative;
}

.row,
article.row {
	flex-direction: row;
}
.actions {
	--gap: 2rem;
	margin-top: 0.5rem;
	padding: 0;
	width: 100vw;
	height: 28rem;
	flex-wrap: nowrap;
	justify-content: center;
	background-color: var(--bg);
}
.actions img {
	width: calc(50vw - 1rem);
	height: 28rem;
	object-fit: cover;
	align-content: center;
	justify-content: center;
	background-color: var(--bg-light);
}
.actions figcaption {
	--font-size: 1.5rem;
	padding: 0 0.5em;
	color: var(--bg);
	background-color: var(--accent-tr);
}
.actions figcaption span {
	font-family: 'Nunito Sans', serif;
	font-weight: 500;
	letter-spacing: 0.025em;
}

body.page .actions img {
	height: 14rem;
	width: 100%;
	max-width: var(--max-w);
}
body.page .actions a,
body.page .actions figure {
	max-width: var(--max-w);
	width: 100%;
}
body.page .iframe_container {
	min-width: 0;
}
body.page .actions {
	max-width: var(--max-w);
	width: 100%;
}
body.page .actions {
	height: 14rem;
	margin: 3rem 1rem;
}
body.page .hero:target ~ .actions {
	max-width: 100%;
}
body.page .hero:target ~ .actions a,
body.page .hero:target ~ .actions figure {
	max-width: 100%;
}

.actions figcaption .form-title-active {
	display: none;
}
.hero:target ~ .actions figcaption .form-title-full {
	display: none;
}
.hero:target ~ .actions figcaption .form-title-active {
	display: flex;
}


figure.from-left-to-center {
	justify-items: flex-end;
}

.cards {
	align-items: stretch;
}
.actions > a,
.actions > a img {
	transition: all 0.25s ease-in-out
	, width 1s ease-in-out
	, transform 1s ease-in-out
	;
}
.actions a:hover,
.actions a:focus,
.actions a:active {
	box-shadow: 0 0 0 0.25em var(--bg)
		, 0 0 0 0.5em var(--accent-tr)
		;
}
.grid.params a.key-value > .value,
.grid.params a.key-value span {
	text-decoration: none;
	text-decoration-color: var(--accent-light-on-gray);
	text-decoration-thickness: 0.1em;
}
.grid.params a.key-value:hover > .value,
.grid.params a.key-value:focus > .value,
.grid.params a.key-value:active > .value,
.grid.params a.key-value:hover span,
.grid.params a.key-value:focus span,
.grid.params a.key-value:active span {
	text-decoration: underline;
	text-decoration-color: var(--accent-light-on-gray);
	text-decoration-thickness: 0.1em;
}

a.card:hover,
a.card:focus,
a.card:active,
.immo-objects a.immo-object:hover,
.immo-objects a.immo-object:focus,
.immo-objects a.immo-object:active,
a.immo-obj-map:hover,
a.immo-obj-map:focus,
a.immo-obj-map:active {
	box-shadow: 0 0 0 0.125em var(--bg)
		, 0 0 0 0.25em var(--accent-tr)
		;
}


.immo-objects a.immo-object:hover,
.immo-objects a.immo-object:focus,
.immo-objects a.immo-object:active {
	box-shadow: 0 0 0 0.25em var(--accent-tr);
}

.card {
	--gap: 1rem;
}

.card img {
	width: 14rem;
	height: 9rem;
	aspect-ratio: 14 / 9;
	object-fit: cover;
	align-content: center;
	justify-content: center;
}
.card figcaption {
	max-width: 13rem;
	max-height: 7rem;
}

.immo-objects {
	--gap-y: 2rem;
}
.immo-objects .immo-object {
	width: 22rem;
	padding: 1rem;
	background-color: var(--bg);
	object-fit: cover;
	align-content: stretch;
}

.immo-objects a.immo-object:hover,
.immo-objects a.immo-object:focus,
.immo-objects a.immo-object:active {
	background-color: var(--bg);
}

.immo-objects .immo-object img {
	padding: 0;
	width: 100%;
	height: 15rem;
	object-fit: cover;
	align-content: center;
	justify-content: center;
	box-shadow: inset 0 0 0 0.25em var(--bg-light);
}

.immo-objects .immo-object figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	--gap: 1rem;
}
.immo-objects .immo-object figure > figcaption {
	width: 20rem;
	min-height: 10rem;
	height: auto;
	background: none;
	padding: 0;
	margin: 0;
	--gap-y: 1rem;
}
.immo-objects .immo-object figure,
.immo-objects .immo-object figure > figcaption {
	flex-grow: 1;
	align-content: stretch;
	width: 100%;
}

.immo-objects .immo-object .title {
	--font-size: 1.5rem;
	font-family: 'Nunito Sans', serif;
	font-weight: 300;
}
.immo-objects .immo-object .params {
	--gap: 0;
	display: grid;
	grid-template: auto / 2rem 1fr;
	grid-gap: 1rem 0.5rem;
}
.immo-objects .immo-object .key-value {
	--gap: 0.25em;
}
.immo-objects .immo-object .key-value .param::after {
	content: ':';
}
.immo-objects .immo-object .price {
	--font-size: 1.5rem;
	font-family: 'Nunito Sans', serif;
	font-weight: 300;
	line-height: 2rem;
	flex-grow: 1;
	justify-content: flex-end;
	align-content: flex-end;
}

.immo-objects .params .icon {
	justify-content: center;
	padding-top: 0.35rem;
}

.icon i {
	color: var(--accent-light);
}


input,
textarea,
button,
.button {
	--gap: 0.5em;
	--gap-x: 0.5em;
	--gap-y: 0.5em;
	padding: 0.5em 1.5em;
	border: 0.125em solid var(--accent-light);
}
button.main,
.button.main {
	background-color: var(--accent);
	color: white;
}
button.main,
.button.main,
button.main i,
.button.main i,
button.main span,
.button.main span {
	color: white;
}

input {
	padding: 0 1rem;
}
input:hover,
input:focus,
input:active {
	border: 0.125em solid var(--accent-light);
}

ul {
	flex-direction: column;
	--gap: 0.25em;
}
nav .dropdown {
	position: relative;

}
nav .dropdown > a {
	z-index: 100;
}
nav .dropdown:hover,
nav .dropdown:focus,
nav .dropdown:active,
nav .dropdown:target {
	position: relative;
}
nav .dropdown:hover > a,
nav .dropdown:focus > a,
nav .dropdown:active > a,
nav .dropdown:target > a {
	z-index: 100;
}
nav .dropdown > ul {
	display: none;
	background-color: #0000000a;
	backdrop-filter: opacity(0.8) blur(0.25em);
	flex-direction: column;
	--gap: 0;
	padding: 0.25em;
	top: 100%;
	position: absolute;
	min-width: 100%;
}
nav .dropdown > ul > li > a {
	flex-grow: 1;
	background-color: #fffa;
}
nav .dropdown > ul > li:first-child > a {
	border-top-left-radius: 0.125em;
	border-top-right-radius: 0.125em;
}
nav .dropdown > ul > li:last-child > a {
	border-bottom-left-radius: 0.125em;
	border-bottom-right-radius: 0.125em;
}

nav .dropdown:hover ul,
nav .dropdown ul:target {
	display: flex;
	scroll-margin: 1rem;
}

h1 {
	--font-size: 2rem;
	font-family: 'Nunito Sans', serif;
	font-weight: 350;
	padding: 1em;
	width: 100%;
	justify-content: center;
}

h2 {
	--font-size: 1.5rem;
	font-family: 'Nunito Sans', serif;
	font-weight: 350;
}

h3 {
	--font-size: 1.25rem;
	font-family: 'Nunito Sans', serif;
	font-weight: 500;
}

article > h2 {
	padding: 0 1rem;
}
article {
	min-width: 100vw;
	padding: 2rem 1rem;
	--gap: 2rem;
	--gap-x: 2rem;
	--gap-y: 2rem;
}
article.col {
	align-items: center;
}

body.page {
	--gap-y: 0;
}
body.page main > * {
	background-color: var(--bg);
}
body.page main > :nth-child(2n) {
	background-color: var(--bg-light);
}
body.page main > :nth-child(2n) a.card:hover,
body.page main > :nth-child(2n) a.card:focus,
body.page main > :nth-child(2n) a.card:active {
	box-shadow: 0 0 0 0.125em var(--bg-light)
		, 0 0 0 0.25em var(--accent-tr)
		;
}

body.index main > :nth-child(2n+7) {
	background-color: var(--bg-light);
}
body.index main > :nth-child(2n+7) a.card:hover,
body.index main > :nth-child(2n+7) a.card:focus,
body.index main > :nth-child(2n+7) a.card:active {
	box-shadow: 0 0 0 0.125em var(--bg-light)
		, 0 0 0 0.25em var(--accent-tr)
		;
}
body.page main > :first-child {
	padding-top: 0;
}

.text-block a,
.text-block a figure {
	align-self: flex-start;
	height: max-content;
}

.text-block {
	align-items: stretch;
	--gap: 2rem;
	--gap-x: 2rem;
	--gap-y: 2rem;
}
.text-block.max-w > * {
	max-width: calc(
			( var(--max-w) / 2 )
			-
			( var(--gap-x) * 2 )
		);
}

.col.start {
	justify-content: flex-start;
	text-align: left;
}
.col.start h2 {
	width: 100%;
	max-width: var(--max-w);
	padding: 0;
}

.listing {
	position: absolute;
	max-width: var(--max-w);
	width: 100%;
}
.listing h2 {
	position: absolute;
	right: calc( 100% - 2rem );
	top: -0.5rem;
	text-align: right;
	justify-content: flex-end;
	width: 2rem;
}
.listing + .spread {
	padding-left: 3rem;
}
.max-w {
	max-width: var(--max-w);
	/* width: 100%; */
}
.spread.max-w {
	max-width: var(--max-w);
	width: 100%;
	justify-content: flex-start;
}


.text-only {
	--gap-y: 1rem;
}
.text-only p {
	padding: 0 2rem;
	max-width: 60rem;
}
body.max-w .text-only p {
	padding: 0 2rem;
	max-width: calc( var(--max-w) + 2rem );
}


.text {
	flex-direction: column;
	max-width: 28rem;
	align-content: flex-start;
	justify-content: flex-start;
	text-align: left;
}


.w-auto {
	width: auto;
}
.left-to-middle {
	align-content: flex-end;
	justify-content: flex-start;
	align-items: flex-end;
}

.portrait {
	width: 14rem;
	justify-items: flex-start;
	align-self: flex-start;
}
.portrait img {
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
}

.high {
	height: 20rem;
	width: 25rem;
	justify-items: center;
	align-self: flex-start;
}
.high img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.high-wide {
	height: 20rem;
	width: 25rem;
	justify-items: flex-end;
	align-self: flex-start;
}
.high-wide img {
	height: 100%;
	object-fit: cover;
}
.extra-wide {
	height: 25rem;
	width: var(--max-w);
	justify-items: flex-end;
	align-self: flex-start;
}
.extra-wide img {
	height: 100%;
	object-fit: cover;
}



a.logo {
	background-color: var(--accent);
	margin-right: 1rem;
	flex-wrap: nowrap;
}
a.logo:hover,
a.logo:focus,
a.logo:active {
	background-color: var(--accent-tr);
}
a.logo:hover span,
a.logo:focus span,
a.logo:active span {
	color: var(--text);
}

a.logo,
a.logo * {
	color: var(--bg);
	white-space: nowrap;
}
a.logo img {
	height: 1.75rem;
	max-width: 3rem;
}
a.logo:hover img,
a.logo:focus img,
a.logo:active img {
	box-shadow: none;
}

a.tag:hover,
a.tag:focus,
a.tag:active {
	background-color: var(--accent);
	color: white;
}

button,
.button {
	border: 0.125em solid var(--accent-light);
}

.jump-back {
	display: none;
}
:target + .jump-back {
	display: flex;
}
.jump-back.fixed {
	position: fixed;
	z-index: 100;
	bottom: 0;
	right: 0;
}
.jump-back figcaption {
	padding: 0.5rem 1rem;
	border: 0.125em solid #fff7;
}

.tags {
	--gap: 0.5rem;
	--gap-x: 0.5rem;
	--gap-y: 0.5rem;
}

.tags li a {
	padding: 0 0.5rem;
	background-color: var(--accent-light);
}

.end {
	justify-items: flex-end;
	justify-content: flex-end;
	align-content: flex-end;
}

.iframe_container {
	padding: 0;
	position: relative;
	overflow: hidden;
}

.hero {
	--gap: 2rem;
	padding: 5.25rem 0 4rem 0;
	width: 100%;
	height: auto;
	flex-wrap: nowrap;
	flex-direction: row;
	justify-content: center;
	transition: all 1s ease-in-out;
}
.hero iframe {
	justify-content: center;
	align-self: flex-start;
	width: 30rem;
	height: 20rem;
	border: 0.25em solid var(--accent-light-tr);
}
.hero figcaption {
	--font-size: 1.25rem;
	padding: 0 0.5em;
	color: var(--bg);
	background-color: var(--accent-tr);
}

.hero:not(:target) {
	pointer-events: none;
	position: absolute;
	opacity: 0;
	transform: translateZ(-1rem);
}
.hero:target {
	display: flex;
	transform: translateZ(0);
	position: relative;
	opacity: 1;
	z-index: 10;
}
.hero:target ~ .actions {
	position: absolute;
	pointer-events: none;
	overflow: hidden;
	top: 0;
}
body.page .hero {
	padding: 4.75rem 0 4rem 0;
}
body.page .hero:target ~ .actions {
	margin: 0;
}
body.page .hero:target ~ .actions,
body.page .hero:target ~ .actions img {
	height: 29rem;
}
body.page .hero:target ~ .actions img {
	max-width: none;
	width: 100vw;
}

.hero:target ~ .actions > a {
	pointer-events: none;
	position: relative;
}
.hero:target ~ .actions > a,
.hero:target ~ .actions > a img {
	width: 100vw;
}
.hero:target ~ .actions > a > figure {
	align-items: flex-start;
	justify-items: center;
}
.hero:target ~ .actions > a > figure > figcaption {
	background-color: #fff7;
	width: 100%;
	padding:	0.25em 1rem;
}
.hero:target ~ .actions > a > figure > figcaption * {
	color: var(--accent-tr);
}

.hero#buy:target ~ .actions > a[href="#buy"],
.hero#buy:target ~ .actions > a[href="#sell"] {
	transform: translateX( calc( -50vw - 1rem ) );
}
.hero#sell:target ~ .actions > a[href="#sell"],
.hero#sell:target ~ .actions > a[href="#buy"] {
	transform: translateX( calc( 50vw + 1rem ) );
}
body.page .hero#sell:target ~ .actions > a[href="#sell"],
body.page .hero#buy:target ~ .actions > a[href="#buy"] {
	transform: none;
}



.button:active,
.button:focus,
.button:hover {
	border: 0.125em solid var(--accent);
	background-color: var(--accent-light-tr);
}
.button:active *,
.button:focus *,
.button:hover * {
	text-shadow: 0 0 0.5em white;
}


body.page .wide {
	--gap: 2rem;
	padding-top: 0;
	width: 100vw;
	flex-wrap: nowrap;
	justify-content: center;
}
.w-100 {
	min-width: 100vw;
}
.w-100-p {
	width: 100%;
}

body.page .wide > figure img {
	width: 100vw;
	height: 100%;
	max-height: 60vh;
	object-fit: cover;
	align-content: center;
	justify-content: center;
	background-color: var(--bg-light);
}
body.page .wide > figure > figcaption {
	--font-size: 1.25rem;
	--gap: 1.5em;
	--gap-x: 1.5em;
	padding: 1em;
	margin: 0;
	color: var(--bg);
	flex-wrap: wrap;
	background-color: var(--accent-tr-20);
	backdrop-filter: none;
	width: 100%;
}
body.page .wide .button {
	flex-wrap: nowrap;
	word-wrap: normal;
	border: 0.125em solid var(--accent-light-tr);
	background-color: var(--accent-tr);
	backdrop-filter: opacity(0.8) blur(0.25em);
	--gap-x: 0.75em;
}
body.page .wide .button * {
	color: white;
	text-shadow: 0 0 0.5em var(--accent-tr);
}
body.page .wide .button:active,
body.page .wide .button:focus,
body.page .wide .button:hover {
	border: 0.125em solid var(--accent-light);
}
body.page .wide .button:active *,
body.page .wide .button:focus *,
body.page .wide .button:hover * {
	text-shadow: 0 0 0.5em white;
}
body.page main > * {
	z-index: 99;
}
body.page main > .wide.fixed ~ * {
	z-index: 97;
}
body.page main > .wide.fixed {
	width: 100%;
	height: 6rem;
	position: fixed;
	bottom: 0;
	right: 0;
	margin: 0;
	padding: 0;
	background: none;
	z-index: 98;
}
body.page main > .wide.fixed figcaption {
	width: 100%;
}

body.page main > #form {
	background-color: var(--bg);
}
body.page main > #form,
body.page main > #form ~ *,
body.page footer {
	z-index: 99;
}


body.page .wide input[type="text"],
body.page .wide input[type="email"] {
	backdrop-filter: opacity(0.8) blur(0.25em);
	padding: 0.5em 1.5em;
	width: 15em;
	color: white;
	text-shadow: 0 0 0.125em var(--accent-light);
	background-color: var(--accent-light-tr);
	box-shadow: 0 0 0 0.125em var(--accent-light);
}
body.page .wide input[type="text"]::placeholder,
body.page .wide input[type="email"]::placeholder {
	opacity: 1;
	color: white;
}

body.page .wide input[type="text"]:active,
body.page .wide input[type="text"]:focus,
body.page .wide input[type="text"]:hover,
body.page .wide input[type="email"]:active,
body.page .wide input[type="email"]:focus,
body.page .wide input[type="email"]:hover {
	border: 0.125em solid var(--accent-light);
}

body.page .wide img ~ img:not(:target) {
	opacity: 0;
	pointer-events: none;
}
body.page .wide img:target {
	opacity: 1;
}


.more-immo img {
	height: 7rem;
	width: 10rem;
	aspect-ratio: 10 / 7;
}
.more-immo figcaption {
	height: 7rem;
	width: 9.25rem;
}
.more-immo figcaption {
	max-height: 1.75em;
	--font-size: 0.75rem;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
	white-space: nowrap;
}

.no-bg,
body.page .wide > figure > figcaption.no-bg {
	background: none;
}


.slides {
	padding: 0 2rem;
}


#immo-objects {
	padding-left: 2rem;
	padding-right: 2rem;
}


.grid-2-col {
	width: 100%;
	--gap: 1rem;
	--gap-x: 1rem;
	--gap-y: 1rem;
	display: grid;
	grid-template:
		max-content
		/
		10rem
		1fr
		;
}
.grid-2-icons {
	--gap: 0 1rem;
	--gap-x: 0.5rem;
	--gap-y: 0;
	align-content: space-between;
	align-items: center;

	display: grid;
	grid-template:
		auto
		/
		1rem
		auto
		;
}
.grid-2-icons i {
	color: var(--accent-light-on-gray);
	align-content: center;
	justify-content: center;
}
.grid-2-icons i,
.grid-2-icons span {
	--font-size: 0.75rem;
}

.more-immo .card {
	background-color: var(--bg);
	padding: 0.5rem;
	--gap-x: 0.5rem;
}

.grid-2-col-wide {
	width: 100%;
	--gap: 1rem;
	--gap-x: 1rem;
	--gap-y: 1rem;
	display: grid;
	grid-template:
	auto
	/
	2rem
	28rem
	;
}
.grid-2-col-wide > label {
	justify-content: flex-start;
	text-align: left;
	--font-size: 0.75rem;
}


.grid-2-col > input[type="checkbox"],
.grid-2-col > input[type="radio"],
.grid-2-col > .button:first-of-type,
.grid-3-col > .button:first-of-type {
	justify-self: flex-end;
	flex-wrap: nowrap;
}

.grid-2-col > input[type="checkbox"] + label,
.grid-2-col > input[type="radio"] + label {
	justify-self: flex-start;
	justify-content: flex-start;
	text-align: left;
	flex-wrap: nowrap;
	width: 100%;
}

.grid-2-col > hr + .button,
.grid-2-col > .button + .button,
.grid-3-col > .button + .button {
	justify-self: flex-start;
	text-align: left;
	flex-wrap: nowrap;
	width: 100%;
}

.grid-2-col label,
.grid-3-col label,
.grid-4x2-col label {
	align-content: center;
}

label.end {
	justify-content: flex-end;
}

.grid-2-col > input[type="checkbox"],
.grid-2-col > input[type="radio"],
.grid-2-col > .button:first-of-type,
.grid-3-col > .button:first-of-type {
	justify-self: flex-end;
	flex-wrap: nowrap;
}

.grid-2-col > input[type="checkbox"] + label,
.grid-2-col > input[type="radio"] + label {
	justify-self: flex-start;
	justify-content: flex-start;
	text-align: left;
	flex-wrap: nowrap;
	width: 100%;
}


.row.top {
	align-items: flex-start;
}
.col.top {
	justify-items: flex-start;
}
input[type="checkbox"].top,
input[type="radio"].top {
	align-self: flex-start;
}


input[type="radio"] {
	line-height: 1rem;
	height: 1rem;
	width: 1rem;
	padding: 0.75rem;
	border-radius: 999px;
	color: var(--navy);
	background: url("") 50% 50% no-repeat;
}
input[type="radio"]:checked {
	background-color: var(--navy-20);
	background-image: url("../img/dot.svg");
}

input[type="checkbox"] {
	line-height: 1rem;
	height: 1rem;
	width: 1rem;
	padding: 0.75rem;
	color: var(--navy);
	background: url("") 50% 50% no-repeat;
}
input[type="checkbox"]:checked {
	background-color: var(--navy-20);
	background-image: url("../img/checkmark.svg");
}


input[type="text"]:hover,
input[type="text"]:focus,
input[type="text"]:active,
input[type="email"]:hover,
input[type="email"]:focus,
input[type="email"]:active,
input[type="checkbox"]:hover,
input[type="checkbox"]:focus,
input[type="checkbox"]:active,
input[type="radio"]:hover,
input[type="radio"]:focus,
input[type="radio"]:active,
textarea:hover,
textarea:focus,
textarea:active {
	border: 0.125em solid var(--accent);
}

.contact-box {
	width: 30rem;
}
.contact-box.contact-form input[type="text"],
.contact-box.contact-form input[type="email"] {
	padding: 0.25em 0.5rem;
	justify-content: flex-start;
	text-align: left;
}

textarea,
input[type="text"],
input[type="email"] {
	padding: 0.25em 1em;
}


.grid.params {
	display: grid;
	grid-template: auto / 1fr 1fr;
	grid-gap: 2rem 1rem;
	padding: 0 1rem;
}
.grid.params .key-value {
	--gap-y: 0;
}

.grid.params .param {
	display: grid;
	grid-template: auto / 3rem 1fr;
	grid-gap: 0;
}

.grid.params .icon {
	padding: 1.75rem 1rem 0 0;
	align-content: flex-start;
	justify-content: flex-end;
}
.grid.params .icon-last i {
	margin-right: 0;
	margin-left: 0.5rem;
}
.grid.params .icon * {
	color: var(--accent-light);
	--font-size: 1.125rem;
}
body.page article:nth-child(2n) .grid.params .icon * {
	color: var(--accent-light-on-gray);
}
.grid.params .key {
	--font-size: 0.75rem;
	color: var(--text);
}
.grid.params .value {
	width: 100%;
	align-content: flex-start;
	justify-content: flex-start;
	text-align: left;
	word-wrap: break-word;
	white-space: break-spaces;
	display: block;
	max-width: 10rem;
	--font-size: 1.125rem;
}
.grid.params .value {
	font-family: 'Nunito Sans', serif;
	font-weight: 400;
}
.grid.params .info {
	display: flex;
	align-items: center;
	--gap-x: 0.5rem;
}
.grid.params .info i {
	color:var(--accent-tr);
	--font-size: 0.75rem;
}

img,
figure {
	overflow: hidden !important;
}





.grid-3-fr {
	display: grid;
	grid-template: auto / repeat(3, 1fr);
}
.grid-3x2-fr {
	display: grid;
	grid-auto-flow: column;
	margin: 0 2rem;
	grid-auto-columns: 1fr;
	grid-template-rows: repeat(3, auto);
	max-width: var(--max-w);
}
.grid-3x2-fr figure {
	grid-row-start: 1;
}

.grid-3x2-fr-h3 h3 {
	grid-row-start: 1;
}
.grid-3x2-fr h3 {
	justify-content: center;
}
.grid-3x2-fr p {
	align-self: flex-start;
}

.grid-3-fr label {
	flex-wrap: nowrap;
	--gap-x: 0.5rem;
	align-items: center;
}
.grid-3-auto {
	display: grid;
	grid-template: auto / repeat(3, auto);
	--gap-x: 0;
}
.grid-3-auto label {
	flex-wrap: nowrap;
	--gap-x: 0.5rem;
	align-items: center;
}



#form {
	--font-size: 17px;
}

.signature {
	padding: 0.5rem 0;
}

.buttons {
	width: 100%;
}

p {
	text-align: left !important;
	justify-content: flex-start !important;
}

.immo-obj-map figure {
	max-width: 30rem;
	max-height: 15rem;
	align-content: center;
	justify-content: center;
}
.immo-obj-map img {
	width: 30rem;
	height: 15rem;
	align-content: center;
	justify-content: center;
	object-fit: cover;
}

small {
	--font-size: 0.75em;
}
.small {
	--font-size: 0.75rem;
	--gap-y: 1rem;
}


dl {
	display: grid;
	grid-template: auto / 1fr 1fr;
	--gap: 0.25em;
	--gap-x: 1rem;
	--gap-y: 0.5rem;
}
dl > dt {
	display: inline;
	text-align: left;
	}
dl > dt::after {
	content: ':';
}


.col.texts {
	padding-left: 2rem;
	padding-right: 2rem;
}

.texts {
	max-width: 60rem;
	align-items: flex-start;
}

.texts ul.col {
	--gap-y: 0.5rem;
	--gap-x: 0;
}
.dash {
	--gap-x: 0.5rem;
	--gap-y: 0.5rem;
}
.dash > li,
.texts ul > li {
	justify-content: flex-start;
	text-align: left;
	flex-wrap: nowrap;
}
.dash > li::before,
.texts ul > li::before {
	height: var(--line-height);
	width: 0rem;
	padding: 0 1rem;
	margin-left: 1rem;
	background: url("../img/dash.svg") 50% 50% no-repeat;
	display: flex;
	content: ''
}

.checks {
	--gap: 0.5rem;
	--gap-y: 0.5rem;
	--gap-x: 0.5rem;
	padding: 0 2rem;
	display: grid;
	max-width: 60rem;
	grid-template: auto / 1fr 1fr;
}
dl.checks,
dl.list {
	grid-template: auto / auto auto;
	max-width: 60rem;
	--gap-y: 1rem;
	--gap-x: 1rem;
}
dl.list:not(:first-child) {
	padding-top: 2rem;
}
h2 + dl.list {
	padding-top: 0;
}

.checks li,
.checks dt,
.big-checks dt,
.checks dd {
	--gap-x: 0.25em;
	justify-content: flex-start;
	text-align: left;
	flex-wrap: nowrap;
	word-wrap: break-word;
	white-space: normal;
	max-width: 28rem;
	display: block;
	margin: 0 0 0 4rem;
}
.checks dt,
.checks dd {
	--font-size: 0.85rem;
}

.checks li::before,
.big-checks dt::before,
.checks dt::before {
	height: var(--line-height);
	width: 0rem;
	padding: 0 1rem;
	margin: 0 0 0 -2rem;
	background: url("../img/checkmark.svg") 0% 50% no-repeat;
	background-size: 0.75rem 0.75rem;
	content: ''
}
.big-checks dt::after {
	content: '';
}
.big-checks {
	--gap-y: 2rem !important;
}
.big-checks .dash {
	--gap-y: 0.25em;
}
.big-checks .dash li::before{
	width: 1rem;
	padding: 0;
}



.grid-3-fr.table {
	max-width: 60rem;
	padding: 0 2rem;
}

dl.with-th {
	grid-template: auto / 1fr;
	--gap-y: 1rem;
	--gap-x: 1rem;
	align-content: flex-start;
	align-items: flex-start;
}
.with-th dt {
	align-content: flex-start;
	--gap-x: 0.25em;
	font-family: 'Nunito Sans', serif;
	font-weight: 400;
	--font-size: 1.25rem;
	justify-content: flex-start;
	text-align: left;
	word-wrap: break-word;
	white-space: normal;
	margin-left: 2.5rem;
}
.with-th dt::before,
.with-th dt::after {
	content: none;
	display: none;
}
.with-th .dash {
	--gap-x: 0.5rem;
	--font-size: 0.85rem;
	padding-left: 1rem;
}
.with-th .dash li::before{
	width: 1rem;
	padding: 0;
	margin:0;
}


.count.checks {
	counter-reset : ol_lvl_1;
}
.count.checks dt,
.count.checks dd {
	margin: 0;
}
.count.checks dt::before {
	background: none;
	content : counter( ol_lvl_1 ) '.';
	counter-increment : ol_lvl_1;
	font-family: 'Nunito Sans', serif;
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1rem;
	color: var(--accent);
	margin: 0;
}

.near-map {
	--font-size: 0.75rem;
}

em {
	font-style: italic;
}

article.expandable {
	left: 0;
	top: 100%;
	min-width: 20rem;
	max-width: 40rem;
	background-color: #fffc !important;
	padding: 1rem !important;
	border: 0.5rem solid var(--accent-light-tr);
	--font-size: 0.75rem;
	backdrop-filter: opacity(0.8) blur(0.25em);
	z-index: 100;
}
.texts p,
.texts p * {
	display: inline;
}

.grid-2-fr {
	padding: 0 2rem;
	max-width: 60rem;
	display: grid;
	grid-template: auto / 1fr 1fr ;
}
.grid-2-fr.max-w {
	max-width: var(--max-w);
	padding: 0;
}
.grid-2-fr > .text {
	width: auto;
	max-width: none;
}
.grid-2-fr > .dash > li::before {
	margin-left: 0;
}


body.index main {
	--gap-y: 0;
}
body.index main > article {
	--gap-y: 1rem;
}

.gap-2rem {
	--gap: 2rem;
	--gap-x: 2rem;
	--gap-y: 2rem;
}


.show-on-mobile,
.show-on-tablet,
.show-on-laptop,
.show-on-desktop {
	display: none;
}


.raw-text,
.raw-text * {
	display: inline;
}
.raw-text a:any-link,
.raw-text a:any-link * {
	color: var(--accent);
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 0.075rem;
	text-underline-offset: 0.125rem;
}
strong {
	font-weight: bold;
}

.f-85 {
	--font-size: 0.85rem;
}
.col.f-85 {
	--gap-y: 0.5rem;
	max-width: 30rem;
}
.col.text-only.f-85 {
	max-width: 60rem;
}

.col.f-85 + aside {
	--gap-y: 1rem;
}
.col.f-85 p + .buttons {
	margin-top: 0.5rem;
}
.gap-1rem {
	--gap: 1rem;
	--gap-x: 1rem;
	--gap-y: 1rem;
}
.rows-of-inputs {
	--gap-x: 1rem;
	--gap-y: 1.5rem;
}


.mid {
	align-content: center;
	align-items: center;
}

textarea {
	height: 10rem;
	padding: 0.25em 0.5rem;
	justify-content: flex-start;
	text-align: left;
	white-space: pre-wrap;
	hyphens: none;
}

.top {
	align-content: flex-start !important;
}

.h-400 {
	height: 12rem !important;
}

.gap-text {
	--gap-y: 1rem;
}
.gap-text > p + .buttons {
	margin-top: 1rem;
}
.no-padding {
	padding: 0;
}

.nowrap {
	flex-wrap: nowrap;
	white-space: nowrap;
}
.nowrap .texts {
	white-space: normal;
}


.as-actions {
	background: var(--accent-tr-80);
}
.as-actions span,
.as-actions i {
	text-shadow: none !important;
	color: var(--bg);
}
.as-actions:hover,
.as-actions:focus,
.as-actions:active {
	background-color: var(--accent);
	border: 0.125em solid var(--bg);
	box-shadow: 0 0 0 0.125em var(--accent-tr);
}

.big.button.stable {
	border: 0.125em solid var(--accent-light) !important;
	box-shadow: none !important;
	background: var(--accent-tr-80) !important;
}
.big.button.stable * {
	text-shadow: none !important;
}
.big.button.stable:hover,
.big.button.stable:focus,
.big.button.stable:active {
	background: var(--accent) !important;
	border: 0.125em solid var(--bg) !important;
	box-shadow: 0 0 0 0.125em var(--accent-tr) !important;
}

body.h1-no-padding h1 {
	padding-bottom: 0;
}
body.article-after-h1-no-padding h1 + article {
	padding-top: 2rem;
}

aside.c.col.top {
	justify-content: flex-start;
}
.square {
	height: 14rem;
	width: 14rem;
	box-shadow: inset 0 0 0 0.125em var(--bg-light);
	border: 0.125em solid var(--accent-light) !important;
	background: var(--accent);
	padding: 0.5rem;
	--gap-y: 0.5rem;
}
.square * {
	color: var(--bg);
}
.square h2 {
	font-weight: 900;
}


footer a.portal-logo figure,
footer a.portal-logo img {
	width: 6.125rem;
	object-fit: cover;
}
footer a.portal-logo:hover,
footer a.portal-logo:focus,
footer a.portal-logo:active {
	box-shadow: none;
}
footer .portals {
	height: 100%;
	justify-content: space-between;
}

#menu:target {
	overflow: scroll;
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	min-height: 100vh;
	padding: 3rem;
	flex-direction: column;
	align-items: flex-start;
	justify-items: flex-start;
	justify-content: flex-start;
	--gap-y: 0.5rem;
	background: #ffd7c680;
	backdrop-filter: opacity(0.8) blur(0.25em);
}

#menu:target a.logo {
	margin-right: 0;
}

#menu:target * {
	--font-size: 1.25rem;
}
#menu:target > * {
	display: flex;
}

#menu:target > .dropdown > ul {
	--gap-y: 0;
	left: 100%;
	top: 0;
}

#menu:target .more-menu {
	display: none;
}
#menu:target .less-menu {
	display: flex;
}

#menu:target .dropdown {
	flex-direction: column;
	--gap-y: 0;
	padding-bottom: 0.5rem;
}
#menu:target .dropdown > a {
	align-self: flex-end;
}
#menu:target .dropdown > ul {
	position: relative;
	left: unset;
	right: unset;
	width: auto;
}
#menu:target .dropdown * {
	display: flex !important;
}
#menu:target + nav {
	display: none;
}
#menu:target ~ * {
	opacity: 0.3;
	pointer-events: none;
}
#menu:target .dropdown > ul a:any-link span {
	background: #ffd7c609;
	box-shadow: 0 0 0.7rem 0.65rem #fff1;
}

#menu:target > a:hover,
#menu:target > a:focus,
#menu:target > a:active {
	box-shadow: 0 0 0 0.25em #fff8;
}
#menu:target > a:hover,
#menu:target > a:focus,
#menu:target > a:active,
#menu:target .dropdown:hover > a,
#menu:target .dropdown:focus > a,
#menu:target .dropdown:active > a,
#menu:target .dropdown > a:hover,
#menu:target .dropdown > a:focus,
#menu:target .dropdown > a:active,
#menu:target .dropdown > ul a:hover,
#menu:target .dropdown > ul a:focus,
#menu:target .dropdown > ul a:active {
	background-color: #fffc;
}
#menu:target .dropdown > ul a:hover span,
#menu:target .dropdown > ul a:focus span,
#menu:target .dropdown > ul a:active span {
	background: #ffff;
	box-shadow: 0 0 0.7rem 0.65rem #fff8;
}
#menu:target .dropdown > ul {
	background: #ffd7c6cc;
}

.max-w img {
	width: 100%;
	max-width: var(--max-w);
}

input.no-check {
	display: none;
}


dl.collapsible input[type="checkbox"] ~ dd,
dl.collapsible input[type="checkbox"] ~ dd * {
	max-height: 0;
	height: 0;
	margin: 0;
	overflow: hidden;
	opacity: 0.25;
	transition: max-height 1s
			, height 1s
			, margin 1s
			, opacity 0.5s ease-in-out
			;
}
dl.collapsible input[type="checkbox"]:checked ~ dd,
dl.collapsible input[type="checkbox"]:checked ~ dd * {
	max-height: 100%;
	height: auto;
	opacity: 1;
	transition: max-height 1s ease-in-out
			, height 1s ease-in-out
			, margin 0.5s
			, opacity 0.5s ease-in-out
			;
}
dl.collapsible input[type="checkbox"]:checked ~ dd:last-child {
	padding-bottom: 2rem;
}

dl.with-th.collapsible dt {
	position: relative;
}
dl.with-th.collapsible dt::before {
	content: '';
	display: flex;
	position: absolute;
	right: 100%;
	height: var(--line-height);
	width: 0rem;
	padding: 0 1rem;
	margin: 0 0 0 -2rem;
	background: url("../img/plus.svg") 50% 50% no-repeat;
	background-size: 1rem 1rem;
	transition: all 0.5s ease-out;
}
dl.collapsible input[type="checkbox"]:checked ~ dt::before {
	transform: rotateZ(90deg);
}
dl.collapsible.list {
	padding-top: 0;
}

.r {
	text-align: right;
	justify-content: flex-end;
}

.text.text-wide {
	width: auto;
	max-width: calc( var(--max-w) - 7rem );
}
.col.text-only.f-85.text-wide {
	width: auto;
	max-width: calc( var(--max-w) - 2rem );
}

.flex {
	display: flex !important;
}

.margin-top-2rem {
	margin-top: 2rem;
}
.margin-bottom-2rem {
	margin-bottom: 2rem;
}

.link {
	--gap-x: 1rem;
	align-items: center;
}
.link,
.link * {
	color: var(--accent);
}

.big.link {
	--font-size: 1.25rem
}


.grid-2x2 {
	flex-wrap: wrap;
	align-items: flex-start;
	--gap-x: 1rem;
	display: grid;
	grid-template: auto / 1fr 1fr;
}
body.index .grid-2x2 {
	--gap-x: 2rem;
	--gap-y: 2rem;
	padding: 0 1rem;
}

.grid-2x2 section {
	max-width: 35rem;
	--gap-x: 1rem;
}
.grid-2x2 .text-block {
	--gap-y: 1rem;
}
.grid-2x2 .card img {
	width: 100%;
	height: auto;
	max-width: 28rem;
}


.spread {
	justify-content: space-between;
}

.padding-h-1rem {
	padding-left: 1rem;
	padding-right: 1rem;
}



.less-menu *,
.more-menu * {
	color: var(--accent);
	--font-size: 1.25rem;
}
.more-menu:hover,
.more-menu:focus,
.more-menu:active {
	background-color: var(--accent);
}
.more-menu:hover *,
.more-menu:focus *,
.more-menu:active * {
	color: var(--bg);
}
.less-menu,
.more-menu {
	padding: 0;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
}
nav > * {
	order: 1;
}
.less-menu {
	order: 0;
}


.text-with-portret {
	padding: 3rem 0;
}
.text-with-portret > .text-block > .text{
	justify-content: center;
}
.text-with-portret > .text-block {
	--gap-x: 0rem;
}
.text-with-portret figure {
	margin-bottom: -3rem;
}

.reviews {
	align-items: flex-start;
	justify-content: space-between;
	max-width: var(--max-w);
	--gap: 4rem 2rem;
	--gap-x: 2rem;
	--gap-y: 4rem;
	padding: 2rem 0;
}


.reviews .review {
	--gap-y: 1rem;
	border: 0.25rem solid var(--accent-light);
	padding: 1rem 1rem 0.5rem 1rem;
	width: 23rem;
	height: 23rem;
	position: relative;
}

.reviews .review h3 {
	--gap-x: 0.5rem;
	justify-content: flex-end;
}
.reviews .review h3,
.reviews .review h3 * {
	font-family: 'Nunito Sans', serif;
	font-weight: 400;
}

.reviews .review h3 a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 0.125rem;
	text-underline-offset: 0.125rem;
}

.reviews .review .stars {
	height: 2rem;
	--gap-x: 0.25rem;
}
.reviews .review .stars img {
	height: 2rem;
}

.reviews .review .text {
	max-height: 17rem;
	flex-grow: 1;
	justify-content: center;
	overflow: hidden;
	position: relative;
}
.reviews .review .text p {
	max-height: 15rem;
}
.reviews .review:target,
.reviews .review:target span,
.reviews .review:target p
{
	max-height: none;
	height: auto;
}

.reviews .review:target a.info-expand {
	display: none;
}
.reviews .review:target a.info-collapse {
	display: flex;
}

.reviews a.link {
	position: absolute;
	width: 100%;
	justify-content: center;
}
.reviews a.info-collapse {
	position: relative;
}
.reviews a.info-expand {
	top: 12rem;
	height: 3rem;
	align-content: flex-end;
	background:
		linear-gradient(
			to bottom
			, transparent 0
			, var(--bg) 25%
			)
		;
}

.reviews .review::before,
.reviews .review::after {
	font-family: 'Nunito Sans', serif;
	font-weight: 900;
 	font-size: 5rem;
	color: var(--accent-light-on-gray);
	left: -0.8rem;
	top: -0.3rem;
	content: '“';
	position: absolute;
}
.reviews .review::after {
	content: '”';
	top: unset;
	left: unset;
	right: -0.8rem;
	bottom: -2.45rem;
}


main.c.col {
	justify-content: flex-start;
}

.show-on-mobile-target {
	display: none;
}

label.label-within {
	position: relative;
	cursor: text;
}
label.label-within input::placeholder,
label.label-within textarea::placeholder {
	color: transparent;
}
label.label-within input + span,
label.label-within textarea + span {
	position: absolute;
	top: 0;
	height: 100%;
	align-content: center;
	padding-left: 0.75rem;
	pointer-events: none;
	user-select: none;
	color: #999;
}
label.label-within textarea + span {
	align-content: flex-start;
	padding-top: 0.5rem;
}
label.label-within :active + span,
label.label-within :focus + span,
label.label-within :not(:placeholder-shown) + span {
	top: -1.75rem;
	padding-left: 0;
	--font-size: 0.75rem;
	color: var(--accent-light-on-gray);
}
.contact-form {
	max-width: 20rem;
}

.contact-form .grid-2-fr {
	padding: 0;
	width: 100%;
}
.contact-form .grid-2-fr input {
	width: 100%;
}
.contact-form textarea {
	width: 100%;
}
.contact-form .gap-space,
.contact-form .gap-space span {
	align-content: center;
}
.short-form .grid-2-col-wide {
	grid-template-columns: 2rem 19rem;
}
.rows-of-inputs .grid-2-col-wide {
	grid-template-columns: 1.5rem auto;
}
.rows-of-inputs.with-textbox .grid-2-col-wide {
	grid-template-columns: 1.5rem 34rem;
}
.rows-of-inputs.with-textbox input[type="text"] {
	padding: 0.45rem 0.5rem;
}

input + .one-liner {
	height: 1.75rem;
}

.hidden:target {
	display: flex;
}
.hidden:target ~ .info-expand {
	display: none;
}
.hidden:target ~ .info-collapse,
.hidden:target .info-collapse {
	display: flex;
}

.fixed {
	position: fixed;
}
.full-page {
	background-color: #333;
	bottom: 0;
	left: 0;
	right: 0;
	top: 0;
	padding: 0 !important;
	min-width: 100vw;
	min-height: 100vh;
	overflow: scroll;
	z-index: 10000;
	grid-template-columns: 8rem auto;
	grid-template-rows: 1fr max(15%, 8rem);
	grid-template-areas :
      ' photo   photo '
      ' close  slider '
	  ;
	--gap-x: 0;
	--gap-y: 1rem;
}

.full-page label.link {
	grid-area: photo;
	position: absolute;
	justify-self: flex-start;
	width: 4rem;
	height: 4rem;
	background: var(--accent);
	padding: 1rem;
}
.full-page .link,
.full-page .link * {
	color: var(--bg);
	--font-size: 1.5rem;
}
.full-page label#photo-prev {}
.full-page label#photo-next {
	justify-self: flex-end;
}

.full-page:target {
	display: grid;
}
.full-page:target ~ * {
	opacity: 0;
	pointer-events: none;
}

.full-page .full-photo {
	grid-area: photo;
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
}
.full-page .full-photo > input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.full-page .full-photo > input[type="radio"] + img {
	position: absolute;
	opacity: 0;
	height: 100%;
	width: 100%;
	object-fit: contain;
	transform: translateX(-100%);
	transition: all 0.5s ease-out;
}
.full-page .full-photo > input[type="radio"]:checked + img {
	display: flex;
	opacity: 1;
	transform: translateX(0);
}
.full-page .full-photo > input[type="radio"]:checked + img ~ img {
	transform: translateX(100%);
}
.full-page > #close {
	grid-area: close;
	width: 100%;
	height: 100%;
}
.full-page > .h-slider {
	grid-area: slider;
	flex-direction: row;
	flex-wrap: nowrap;
	overflow-x: scroll;
	justify-content: flex-start;
	align-items: flex-start;
	height: 100%;
	transition: all 0.5s ease-out;
	--gap-x: 1rem;
}
.full-page > .h-slider > label {
	height: calc( 100% - 1rem );
	border: 0 solid var(--accent);
}
.full-page > .h-slider > label > figure {
	height: 100%;
	min-width: 6rem;
	width: 10rem;
}
.full-page > .h-slider > label > figure > img {
	height: 100%;
	width: 100%;
}

@media (max-width:800px) {
	.full-page {
		grid-template-columns: 4rem auto;
		grid-template-rows: 1fr min(8rem, 15%);
	}
	.full-page label.link {
		align-self: flex-end;
	}
}









@media (max-width:800px) {
	:target .show-on-mobile-target,
	.show-on-mobile {
		display: flex;
	}

	:target .hide-on-mobile-target,
	.hide-on-mobile {
		display: none;
	}

 	.text-block:not(.row) {
		flex-direction: column;
		padding: 1rem;
	}
	.text-block:not(.row) > figure,
	.text-block > a.card {
		align-self: center;
	}
	.text-block .buttons {
		justify-content: center;
	}
	.grid-2-fr {
		padding: 0;
		max-width: 60rem;
		display: grid;
		grid-template: auto / auto ;
	}

	.text,
	.tags {
		max-width: var(--mw);
	}

	.tags {
		flex-wrap: wrap;
		word-break: break-all;
		flex-direction: row;
		justify-items: flex-start;
	}

	.actions {
		--gap: 1rem;
		width: 100%;
	}

	.hero:not(:target) ~ .actions {
		height: 20rem;
		flex-wrap: wrap;
	}

	.hero:not(:target) ~ .actions a,
	.hero:not(:target) ~ .actions a img {
		height: 11rem;
		width: var(--mw);
	}
	body.page .hero:not(:target) ~ .actions {
		height: 14rem;
		flex-wrap: wrap;
		margin: 1rem 0;
		padding: 0 1rem;
	}

	body.page .hero:not(:target) ~ .actions a {
		height: 14rem;
		width: 100%;
	}
	body.page .hero:not(:target) ~ .actions figure {
		width: 100%;
	}
	body.page .hero:not(:target) ~ .actions a img {
		height: 14rem;
		width: 100%;
	}
	.hero:target ~ .actions {
		gap: 0;
		height: 30rem;
		flex-wrap: nowrap;
	}
	.hero:target ~ .actions > a,
	.hero:target ~ .actions > a figure,
	.hero:target ~ .actions > a img,
	body.page .wide,
	body.page .wide > figure,
	body.page .wide > figure img {
		max-height: none;
		height: 100%;
		width: 100%;
	}

	body.page .wide {
		--gap: 1rem;
	}
	body.page .wide .slides {
		padding: 0;
		--gap-x: 1rem;
		--gap-y: 1rem;
	}
	body.page .wide .slides .card,
	body.page .wide .slides .card figure {
		flex-basis: 10rem;
		height: 10rem;
	}
	body.page .wide .slides .card img {
		width: 100%;
		height: 100%;
	}
	body.page .wide .slides figcaption {
		--font-size: 1rem;
	}

	.hero#buy:target ~ .actions > a[href="#sell"],
	.hero#sell:target ~ .actions > a[href="#buy"] {
		width: 0;
	}

	.hero#buy:target ~ .actions > a[href="#buy"],
	.hero#sell:target ~ .actions > a[href="#sell"] {
		height: 30rem;
		transform: translateX( 0 );
	}
	.hero#buy:target ~ .actions > a[href="#buy"] img,
	.hero#sell:target ~ .actions > a[href="#sell"] img {
		height: 100%;
		width: 100%;
	}
	article {
		width: 100%;
	}

	body.page .checks {
		grid-template: auto / 30rem;
	}
	body.page p {
		max-width: 25rem;
	}
	body.page .checks.count dd {
		margin-left: 3rem;
		max-width: 22rem;
	}

	.no-padding-bottom-on-mobile {
		padding-bottom: 0;
	}
	.no-padding-top-on-mobile {
		padding-top: 0;
	}
	.no-vert-padding-on-mobile {
		padding-top: 0;
		padding-bottom: 0;
	}

	.mobile-gap-1rem {
		--gap-x: 1rem;
		--gap-y: 1rem;
	}
	.mobile-gap-05rem {
		--gap-x: 0.5rem;
		--gap-y: 0.5rem;
	}
	.mobile-gap-0 {
		gap: 0;
	}

	main > article {
		padding-top: 3rem;
		padding-bottom: 1rem;
	}
	main > .actions + article {
		padding-top: 6rem;
	}

	.grid-3-fr.table {
		display: flex;
		flex-direction: column;
	}

	nav > :nth-child(n+3):not(.more-menu) {
		display: none;
	}

	body.page > main {
		--gap-y:0;
	}
	body.page > main > article:not(.iframe_container) {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
	body.page > main > article.wide {
		padding: 0;
	}

	.big-checks {
		display: flex;
		flex-direction: column;
		--gap-y: 1rem !important;
	}
	.big-checks dt {
		margin-left: 1rem;
	}
	.big-checks dd + dt {
		margin-top: 1rem;
	}

	.grid-3x2-fr {
		display: flex;
		flex-direction: column;
	}
	.grid-3x2-fr figure:not(:first-of-type) {
		margin-top: 2rem;
	}
	.grid-3x2-fr figure {
		max-width: 12rem;
		justify-self: center;
		align-self: center;
	}

	.f-85,
	.small,
	li,
	p,
	dt,
	dd,
	.checks dd {
		--font-size: 1.125rem;
	}
	.checks dt {
		--font-size: 1.25rem;
	}
	.count.checks dt::before {
		font-size: 1.5rem;
		display: inline-block;
		width: 1rem;
		height: 1rem;
		white-space: nowrap;
	}
	.count.checks dd + dt {
		margin-top: 0.5rem;
	}

	h3 {
		--font-size: 1.35rem;
	}

	.text-only p {
		padding-left: 0;
		padding-right: 0;
	}
	.card figcaption,
	.button {
		--font-size: 1.25rem;
	}
	.card img {
		width: 100%;
		height: auto;
	}
	.more-immo .card {
		width: 100%;
	}
	.more-immo .card img {
		width: 18rem;
		height: auto;
		aspect-ratio: 5 / 2;
  	}
	.more-immo .card figcaption {
		--font-size: 1rem;
		max-width: 17rem;
		width: auto;
	}


	p {
		text-align: center !important;
	}
	.text {
		align-items: center;
	}
	h2 {
		align-self: center;
		text-align: center;
		justify-content: center;
	}
	.grid-2-fr.spread.max-w {
		display: flex;
		flex-direction: column;
	}

	.high-wide {
		justify-items: center;
	}
	body:not(.h1-no-padding) .text-block:not(.no-reorder) > aside {
		order: 1;
	}
	body:not(.h1-no-padding) .text-block:not(.no-reorder) > div {
		order: 2;
	}

	body.page main > article:first-child {
		padding-top: 0;
	}
	.square {
		width: 100%;
		height: auto;
		--font-size: 1.75em;
		padding: 2rem 1rem;
	}

	.extra-wide img {
		height: 100%;
		width: 100%;
		object-fit: cover;
	}
	.extra-wide {
		height: auto;
	}
	.grid-2x2 {
		display: flex;
	}
	footer * {
		--font-size: 1.25rem
	}

	footer .h-adr {
		align-items: flex-end;
	}
	footer .col a {
		align-items: center;
	}

	footer .col:last-child {
		flex-direction: row;
	}
	footer .col:last-child a[href="haftungsausschluss.html"] {
		display: none;
	}
	footer .col:last-child a[href="agb.html"] {
		order: 1;
	}
	footer .col:last-child a[href="datenschutz.html"] {
		order: 2;
	}

	footer a[href^="mailto:"] {
		flex-wrap: nowrap;
		max-width: 12rem;
		justify-content: flex-start;
	}
	footer a[href^="mailto:"] span {
		overflow: hidden	;
		text-overflow: ellipsis;
		display: block;
		white-space: nowrap;
	}

	footer > .portals {
		width: 100%;
		flex-direction: row;
		--gap-x: 2rem;
		--gap-y: 1rem;
	}
	footer a.portal-logo:first-child + * {
		margin-left: -0.5rem;
	}
	footer a.portal-logo figure,
	footer a.portal-logo img {
		width: 100%;
		height: auto;
	}

	.mobile-col,
	.row.mobile-col {
		flex-direction: column;
	}

	body.index .mobile-col {
		--gap-y: 0.85rem;
	}
	body.index .mobile-col * {
		--font-size: 1.25rem;
	}

	body.index .portrait.show-on-mobile {
		margin-top: -3rem;
		display: grid;
		height: 23rem;
	}

	.spread.max-w {
		align-content: center;
		align-items: center;
	}

	#menu:target a.logo {
		background: none;
	}
	#menu:target a.logo img.show-on-mobile-target {
		height: auto;
		max-width: 7rem;
  	}
	#menu:target a.logo span {
		display: none;
	}
}

@media (max-width: 1023px) {
	.hide-on-tablet {
		display: none;
	}
	.show-on-tablet {
		display: flex;
	}

	nav > :nth-child(n+4):not(.more-menu) {
		display: none;
	}

	.reviews,
	.reviews .review,
	.reviews .review .stars,
	.reviews .review .text,
	.reviews .review h3 {
		justify-content: center;
		text-align: center;
	}
	.reviews .review .text {
		margin-top: 0;
	}

	.reviews .review {
		height: 27rem;
	}
	.reviews .review .text,
	.reviews .review .text p {
	  max-height: 18rem;
	}

	.reviews a.link {
		top: 15rem;
	}
}

@media (min-width: 801px) and (max-width: 1080px) {
	footer > .portals {
		align-items: flex-end;
		order: 1;
	}
	footer > .portals:first-child {
		flex-basis: calc( 45% - 8rem );
		align-items: flex-end;
	}
	footer > .h-adr,
	footer > .h-adr ~ * {
		flex-basis: 45%;
		order: 4;
	}
	footer > .h-adr + * {
		order: 2;
	}
	footer .h-adr {
		align-items: flex-end;
		order: 3;
	}
}
@media (max-width: 1199px) {
	.grid-3-fr.table {
		grid-template-columns: 1fr 1fr;
	}

	.hide-on-laptop {
		display: none;
	}
	.show-on-laptop {
		display: flex;
	}

	nav > :nth-child(n+5):not(.more-menu) {
		display: none;
	}
}
@media (max-width: 1439px) {
	nav > :nth-child(n+6):not(.more-menu) {
		display: none;
	}
	.show-on-desktop {
		display: flex;
	}
}

@media (min-width: 800px) {
	.grid.params {
		grid-template: auto / 1fr 1fr 1fr;
	}
}

@media (min-width: 1024px) {
	.grid.params {
		grid-template: auto / repeat(4, 1fr);
	}
}

@media (min-width: 1280px) {
	.grid.params {
		grid-template: auto / repeat(5, 1fr);
	}
}
