:root {
    --bg-color: white;
	--text-color: black;
	--fancybox-content-color:var(--text-color);
	--primary-color: #3d9492;
	--secondary-color: lightgrey;
	--hover-color: var(--secondary-color);
	--swiper-navigation-size: 3em;
	--swiper-theme-color: white;
	--header-height: 0px;
    --footer-bg-color: white;
    --footer-text-color: black;
}

body {
    background-color: var(--bg-color);
	font-size: 21px;
	/* -webkit-text-size-adjust: none; */
}

body.toggled header
{
	overflow: visible;
}

header {
    background-color: var(--bg-color, white);
	box-shadow: 0px 1px 10px rgba(0, 0, 0, .5);
}

header .wrapper,
footer .wrapper {
    display: grid;
    grid-template-columns: auto auto;
	align-items: center;
	gap: 1.5em;
	transition: all .5s ease-in-out;
}

header .wrapper,
main .group > .wrapper,
footer .wrapper {
	max-width:70em;  
}

header .logo img {
	display: block;
	transition: all .5s ease-in-out;
	width: 100%;
	max-height: 4em;
	position: relative;
	left: 0;
}

header nav {
	gap: .25em;
    justify-self: end;
    align-self: center;
	flex-wrap: wrap;
	justify-content: end;
}

header nav a,
footer nav a {
	display: block;
	padding: .5em .25em;
}

footer nav {
	gap: 0 1em;
	justify-content: flex-end;
}

header nav a {
	color: white;
	font-size: clamp(.85em, 1.5vw, 1.3em);
	text-decoration: none;
	font-weight: 500;
	letter-spacing: 0.05em;
}

header nav a:hover,
header nav a.active {
	color: white;
	font-weight: bold;
}

header .language {
	position: absolute;
	top: 0;
	right: 2em;
	transition: all .2s ease-in-out;
}

header .language a {
	color: black;
	outline: 1px solid black;
	text-transform: uppercase;
	padding: .2em .5em;
}

header .language a.active {
	background-color: gray;
	color: white;
}

header .navigation-container {
	position: absolute;
	box-sizing: border-box;
	height: 100svh;
	width: 35vw;
	padding: 2em 4vw;
	left: 0;
	top: 0;
	background-color: #375db3;
	transform: translateX(-100%);
	transition: all .2s ease-in-out;
}

.desktopBurger header nav
{
	display: flex;
	flex-direction: column;
    width: 100%;
    flex-wrap: nowrap;
	transition: all .5s ease-in-out;
}

.desktopBurger.toggled .navigation-container {
	transform: translateX(0);
}

.desktopBurger header .nav-toggle
{
	display: flex;
}

.desktopBurger header .items > .nav-toggle:hover {
	background-color: #375db3;
}

.desktopBurger.toggled header .items > .nav-toggle {
	z-index: 9999;
	background-color: #375db3;
}

.desktopBurger.toggled header .items > .nav-toggle > span {
	opacity: 0;
}

.desktopBurger header .nav-toggle {
	display: flex;
	flex-direction: row-reverse;
	gap: .5em;
	width: fit-content;
	height: fit-content;
	font-size: 1.5em;
	padding: .25em .5em;
	transition: all .2s ease-in-out;
}

.desktopBurger header .wrapper {
	grid-template-columns: auto;
	gap: .5em;
}

.desktopBurger.scrolled header .wrapper {
	padding: .5em var(--content-padding-vertical);
}

.desktopBurger header nav a:first-child {
    border-top: 1px solid var(--primary-color);
}

.desktopBurger header nav a {
	display: flex;
	justify-content: space-between;
    padding: .3em 0;
}

.desktopBurger header nav a::after {
	font-family: "Font Awesome 6 Pro";
	content: '\f054';
	margin-left: auto;
}

.desktopBurger header nav {
    gap: 0;
    margin-top: 1em;
	color: white;
}

.desktopBurger header nav h2 {
	font-size: 2em;
	font-weight: 300;
	margin: 2em 0;
}

.desktopBurger header nav h2::after {
	content: '';
	display: block;
	position: relative;
	background-color: white;
	width: 100%;
	height: 1px;
	top: .5em;
	opacity: .5;
	transform: translateX(10px);
}

.scrolled header .language {
	opacity: 0;
}

a:hover:not(footer nav a, .contactForm a, header nav a) {
	color: var(--hover-color);
}

.scrolled header .wrapper {
	padding: .5em 2em;
}

.scrolled header .logo img {
	transition: all .5s ease-in-out;
	width: 50%;
	height: 50%;
}

h1 {
	margin: 1.2em 0;
	color: var(--primary-color);
	font-size: clamp(1em, 5vw, 1.8em);
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1em;
}

h2,
button.primary,
button.secondary {
	font-size: clamp(.8em, 3vw, 1.2em);
}

h2 small
{
	font-weight: normal;
	white-space: nowrap;
}

section {
	scroll-margin-top: var(--header-height);
}

.typo,
.legend,
.consent-dialog .consent-message,
footer nav a {
	font-size: clamp(.6em, 2vw, 1.1em);
	line-height: 1.4em;
	letter-spacing: .5px;
}

.button,
button {
	background:var(--primary-color);
}

button.primary:hover {
	background: var(--secondary-color);
}

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

button.secondary:hover {
	color: var(--secondary-color);
	background-color: var(--primary-color);
}

.group:not(.group-nopad) > .wrapper
{
	padding:var(--content-padding-vertical) var(--content-padding-horizontal);
	padding-top:4em;
	padding-bottom: 3em;
}

.offer-popup .group:not(.group-nopad) > .wrapper {
	padding-top: 2rem;
	padding-bottom: 0;
}

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

.group:not(.group-noclip) > .wrapper > .element:first-child,
.group:not(.group-noclip) > .wrapper > .element.title:first-child > .wrapper > h1,
.group:not(.group-noclip) > .wrapper > .element.subtitle:first-child > .wrapper > h2
{
	margin-top:0;
}

.group:not(.group-noclip) > .wrapper > .element:last-child,
.group:not(.group-noclip) > .wrapper > .element.title:last-child > .wrapper > h1,
.group:not(.group-noclip) > .wrapper > .element.subtitle:last-child > .wrapper > h2
{
	margin-bottom:0;
}

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

main section:first-child .group .wrapper .slideshow:first-child 
{
	margin-top: -4em;
}

.consent-settings .group > .wrapper .links button.primary,
.consent-settings .group > .wrapper .links button.secondary {
	font-size: clamp(.6em, 3vw, 1em);
}

/* elements */
.group .element {
	margin:2em 0;
}

.images .legend {
	display: none;
}

.image-link .link {
	display: block;
	position: relative;
}

.image-link img {
	display: block;
	width: 100%;
}


.gallery .items {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap:1em;
}

.gallery .items a {
	width: calc(32.5% - 0.3333333333em);
}

.viewport-animated.viewport-visible {
	opacity: 1;
	transform:translateY(0);
}

.box {
    background-color: var(--bg-color);
    color: var(--text-color);
}

.box:has(+ .offer) .group > .wrapper {
	padding-bottom: 0;
}

.buttons 
{
	position: relative;
}

.buttons .wrapper 
{
	position: absolute;
	right: -2em;
	top: calc(clamp(80px, 20vw, 300px) * -.7);
	z-index: 20;
	display: flex;
	gap: 1em;
}

.buttons .wrapper div img {
	width: clamp(90px, 24vw, 350px);
	transition: all .2s ease-in-out;
}

.buttons .wrapper div > a:hover img {
	transform: scale(1.05);
}

.distances table
{
	width: 100%;
	border-spacing: 1px;
	border-collapse: collapse;
}

.distances table thead td {
	color: var(--text-color);
	background: none;
}

.distances table tbody tr {
	border-bottom: 1px solid var(--text-color);
}

.distances table td,
.distances table th {
	padding: .5em;
	text-align: center;
	min-width: 2em;
}

.distances table th {
	text-align: left;
	font-weight: normal;
}

.distances table td {
	white-space: nowrap;
}

.distances .walk::before {
	font-family: "Font Awesome 6 Pro";
	content: "\f554";
}

.distances .bike::before {
	font-family: "Font Awesome 6 Pro";
	content: "\f206";
}

.distances .car::before {
	font-family: "Font Awesome 6 Pro";
	content: "\f1b9";
}

.distances .public::before {
	font-family: "Font Awesome 6 Pro";
	content: "\f238";
}

.swiper {
	overflow-y: initial;
}

.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
	display: none;
}

.group .slideshow {
	margin-bottom: 4em;
}

.image-link .legend,
.slideshow .swiper-slide > .legend {
	position: absolute;
	color: black;
	text-align: start;
	text-shadow: none;
	left: 0;
	bottom: 0;
	text-align: center;
	padding: .5em 1em;
	width: fit-content;
	background-color: var(--primary-color);
	color: white;
}

.button-links .items {
	display:flex;
	gap: 1em 3em;
	flex-wrap:wrap;
	justify-content: center;
}

.button-links span {
	font-size: .9em;
	align-self: start;
}

.button-links .items .icon {
	display: grid;
	grid-template-columns: auto;
	grid-template-rows: minmax(0, 1fr) .3fr;
	font-weight: 400;
	max-width: 10em;
	width: 100%;
}

.button-links .items .icon:hover {
	color: black;
}

.button-links .items .icon:hover > img {
	transform: scale(1.1);
}

.button-links .items .icon img {
	width: 100%;
	padding-bottom: 1em;
	transition: all .2s ease-in-out;
}

input[type=text],
input[type=email],
input[type=tel],
textarea,
select {
	background-color: white;
	border:1px solid var(--primary-color);
	padding:.3em;
	box-sizing:border-box;
	font:inherit;
	color:black;
}

input::placeholder {
	color:#1D140B;
	opacity: 1;
	font:inherit;
}

input[type=checkbox],
input[type=radio] {
	appearance:none;
	-webkit-appearance:none;
	flex:0 0 auto;
	width:1.5em;
	height: 1.5em;
	background: white;
	border: 1px solid var(--text-color);
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	border-radius: 0;
	margin-bottom: 0;
	margin-top: .6em;
}

input[type=checkbox]:after,
input[type=radio]:after {
	color: black;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	font-family: 'Font Awesome 6 Pro';
	font-weight: 400;
	font-size:1.2em;
}

input[type=checkbox]:after{content: "";}
input[type=checkbox]:checked:after{content: "\f00c";}
input[type=radio]:after{content:"";}
input[type=radio]:checked:after{content: "\f00c";}

.contact .wrapper {
	max-width: 60em;
	margin: auto;
}

.contact .items {
	grid-template-columns: minmax(0, 1fr) minmax(0, .6fr);
	gap: 2em;
	margin:0;
	justify-items: center;
}

.contact .items .person .image {
	margin-bottom: 2em;
}

.contact .items .person .image img {
	width: 100%;
	max-width: 15em;
}

.contact .items .company .logo img {
	width: 100%;
	max-width: 15em;
}

.contact .info {
	display: flex;
	flex-direction: column;
	gap: 3em;
}

.contact .selectables {
	gap: .5em 1em;
}

.contact .selectables > label {
	align-items: start;
}

.contact button.primary {
	color: var(--bg-color);
}

.contact button.primary:hover {
	background-color: var(--primary-color);
}

.consent-dialog .wrapper {
	max-width: 70em;
}

.responsive
{
	padding-top: 1em;
}

.responsive.offer_custom {
	height: calc(100svh - var(--header-height));
	padding: 0;
}

.offer.element .house > h2 {
	font-weight: normal;
	font-size: clamp(.9em, 3vw, 1.2em);
}

.offer.element.offer-has-iso > .wrapper {
	padding-top: 0;
}

.accordion .accordion-header h3
{
	margin: 0;
	font-size: clamp(.8em, 2.5vw, 1.2em);
	display: flex;
	align-items: baseline;
	gap: .5em;
	transition: all .1s ease-in-out;
}

.accordion .accordion-header h3:before 
{
	flex-shrink: 0;
	text-align: center;
	content: "\f054";
	font: var(--fa-font-regular);
	width: 1em;
	transition: all .1s ease-in-out;
}

.accordion .accordion-item {
	margin: 2em 0;
}

.accordion .accordion-item h3:hover {
	cursor: pointer;
}

.accordion .accordion-item.toggled .accordion-header h3:before 
{
	transform: rotate(90deg);
}

.accordion .accordion-item:not(.toggled) .accordion-body
{
	display: none;
}

.columns.element .items
{
	display:grid;
	gap: var(--content-padding);
}

.columns.element .items-2
{
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 3em;
}

.columns.element .items-3
{
	grid-template-columns: repeat(3, minmax(0, 1fr));
}


.columns.element .items-2 .image-link .item {
	text-align: center;
}

.columns.element .items-2 .image-link .legend {
	position: static;
}

.box .wrapper > .group > .wrapper .compare-multi.element {
	margin-bottom: 4em;
}

.compare-multi.element .wrapper {
	display: grid;
	justify-items: center;
	gap: clamp(.5em, 2vw, 1em);
}

.compare-multi .tabs-nav
{
	display:flex;
	flex-wrap: wrap;
}

.compare-multi .tabs-nav-item
{
	margin-bottom: -1px;
	border:1px solid #00000000;
}

.compare-multi .tabs-nav-item.active
{
	border-bottom:1px solid black;
}

.compare-multi .tabs-nav-item h3
{
	font-size: clamp(.8em, 2vw, 1em);
	font-weight: normal;
	padding: .5em;
	margin:0;
	transition: all .1s ease-in-out;
}

.compare-multi .tabs-nav-item h3:hover
{
	transform: scale(1.05);
	cursor: pointer;
}

.compare-multi .tabs-item:not(.toggled) .tabs-body
{
	display: none;
}

.compare-multi .icv {
	overflow: visible;
}

.compare-multi .tabs-item .icv__label {
	font-size: clamp(.65rem, 1.5vw, 1rem);
	white-space:break-spaces;
	background-color: transparent;
	bottom: 0;
	left: 0;
	transform: translateY(100%);
	padding: .5rem 0;
}

.compare-multi .tabs-item .icv__label-after {
	display: none;
}

.compare-multi .icv__img-a {
	max-height: 825px;
}

footer {
	background-color: var(--footer-bg-color);
	color: var(--footer-text-color);
}

footer nav a {
	color: var(--footer-text-color);
}

@media(max-width: 1570px) {
	.buttons .wrapper {
		right: -1.5em;
	}
}

@media(max-width:1200px) {
	.layout2cols .items {
		grid-template-columns: auto;
	}

	.buttons .wrapper {
		top: -2em;
	}

	.offer.group .wrapper {
		padding: 0;
	}

	.offer-popup .group:not(.group-nopad) > .wrapper {
		padding: var(--content-padding-vertical) var(--content-padding-horizontal);
	}
}

@media(max-width:1000px) {
	header nav {
		gap: 0;
		margin-top: 1em;
	}

	header nav a {
		padding: 1.5em 2.5em;
	}
	header nav a:first-child {
		border-top: 1px solid var(--primary-color);
	}


	header .language 
	{
		right: 1em;
	}

	header .wrapper,
	footer .wrapper {
		grid-template-columns: auto;
		gap: .5em;
		padding: 1em;
	}

	footer .wrapper {
		text-align: center;
		justify-content: center;
	}

	header .items {
		gap: 2em;
	}

	header .navigation-container {
		width: 100vw;
	}
	
	.scrolled header .wrapper {
		padding: .5em 1em;
	}

	.scrolled header .logo img {
		transition: all .5s ease-in-out;
		width: 80%;
		height: 100%;
		margin: 0;
		opacity: 1;
	}

	.toggled header nav
	{
		justify-self: center;
		text-align: center;
		width: 100%;
		flex-wrap: nowrap;
	}

	.toggled header nav {
		display: flex;
		flex-direction: column;
		justify-content: center;
		transition: all .5s ease-in-out;
	}

	
	.gallery .items a {
		width: calc(50% - .5em);
	}

	.columns.element .items-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.columns.element .items-3 .item:nth-child(3) {
		grid-column: 1 / span 2;
		justify-self: center;
		width: 50%;
	}
	
	.buttons .wrapper 
	{
		right: -1em;
	}

	.contact .items .info {
		padding-top: 2em;
	}

	main .group:not(.group-nopad, .offer) > .wrapper
	{
		padding: 2em 1em;
	}
	
	.offer-popup .group:not(.group-nopad, .offer) > .wrapper {
		padding: 1em;
	}

	main section:first-child .group .wrapper .slideshow:first-child 
	{
		margin-top: -2em;
	}


	.consent-dialog .wrapper {
		padding: 1em;
	}

	.contact .form-split-1-3 {
		grid-template-columns: auto auto;
	}

	input[type=checkbox],
	input[type=radio] {
		width:1.2em;
		height: 1.2em;
		margin-top: .5em;
	}

	input[type=checkbox]:after,
	input[type=radio]:after {
		font-size:1em;
	}
}

@media(max-width:800px) {
	.distances table td,
	.distances table th
	{
		min-width: .8em;
	}

	.compare-multi .tabs-item .icv__label {
		left: 0;
		right: 0;
		bottom: 0;
	}
}

@media(max-width:600px) {
	header .wrapper {
		padding: .5em;
	}

	header .items {
		gap: 1em;
	}
	header > .wrapper .nav-toggle {
		font-size: 1.2em;
	}
	header .nav-toggle span {
		display: none;
	}
}

@media(max-width:550px) {
	.buttons .wrapper {
		top: 1em;
	}

	.columns.element .items-2 {
		grid-template-columns: minmax(0, 1fr);
		gap: 1em;
	}

	.columns.element .items-3 {
		grid-template-columns: minmax(0, 1fr);
	}

	.columns.element .items-3 .item:nth-child(3) {
		grid-column: 1;
		width: 100%;
	}

	.columns .typo ul {
		margin: 0;
	}

	.columns .items:has(.typo ul) {
		gap: 0;
	}

	.icv {
		overflow: visible;
	}
}

@media(max-width:500px) 
{
	.group .element 
	{
		margin: 1em 0;
	}

	.buttons .wrapper 
	{
		gap: .5em;
	}

	.layout2cols .items {
		gap: 2em;
	}

	.button-links .items {
		justify-content: center;
	}

	.consent-cover-info {
		font-size: 14px;
	}

	input[type=checkbox],
	input[type=radio] {
		margin-top: .3em;
	}

	.swiper-button-next:after,
	.swiper-button-prev:after {
		font-size: 2em;
	}

	footer .wrapper {
		text-align: center;
	}

	footer nav {
		flex-direction: column;
		gap: 0;
	}

	.fancybox__content .group > .wrapper,
	.consent-settings .group > .wrapper {
		padding: 1em;
	}
}