:root {
    --primary-font: 'BasisGrotesque';
}

html { height: 100%; scroll-behavior: smooth; }

body {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: var(--s-25);
	color: var(--s-900);
	font-size: 16px;
	font-family: var(--primary-font), sans-serif;
	font-weight: 400;
    font-feature-settings: 'ss01' on;
	overflow-y: scroll;
}

* { margin: 0; padding: 0; outline: 0; }

#email,
#email-1 { position: absolute; z-index: -100; width: 1px; height: 1px; opacity: 0; }

a { color: var(--b-100); text-decoration: none; }
a img { border: 0; }

strong { font-weight: 700; }
input, textarea, button { font-family: var(--primary-font), sans-serif; }

h1, h2, h3, h4, h5 { font-family: var(--primary-font), sans-serif; font-weight: 700; }

.wrap { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; min-height: 100%; padding: 0 20px; }
.content { display: flex; flex-wrap: wrap; box-sizing: border-box; width: 1200px; max-width: 100%; padding: 0 10px; }
.content.width-500 { width: 500px; }
.content.width-600 { width: 600px; }
.content.width-1000 { width: 1000px; }

header { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 20px 0; }
header .content { flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 40px; }
header .column { flex-basis: 0; flex-shrink: 0; flex-grow: 1; display: flex; flex-wrap: nowrap; align-items: center; gap: 30px; }
header .column:last-child { justify-content: flex-end; }
header .logo { display: flex; }
header .logo img { height: 40px; }
header .menu { flex-grow: 1; display: flex; justify-content: center; }
header .menu nav { display: flex; position: relative; }
header .menu nav ul { display: flex; flex-wrap: nowrap; justify-content: center; gap: 40px; list-style: none; }
header .menu nav ul li { display: flex; }
header .menu nav ul li a { transition: color 0.2s ease-in-out; display: flex; color: var(--s-500); font-weight: 700; line-height: 26px; }
header .menu nav ul li a:hover { color: var(--s-900); }
header .menu nav ul li.active a { color: var(--b-500); }
header .user-menu { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; min-height: 48px; background: transparent; border: 0; cursor: pointer; }
header .user-menu .image { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
header .user-menu .arrow { transition: color 0.2s ease-in-out; display: flex; color: var(--s-500); font-size: 16px; }
header .user-menu:hover .arrow,
header .dropdown-container:has(.dropdown:hover) .user-menu .arrow { color: var(--s-900); }
header .mobile-menu { display: none; background: transparent; border: 0; color: var(--s-900); font-size: 24px; }
header .menu nav .mobile-menu { position: absolute; z-index: 10; top: 32px; right: 30px; }

.page-container,
.section-container { flex-grow: 1; display: flex; flex-direction: column; width: 100%; }

.hero { display: flex; flex-direction: column; align-items: center; position: relative; box-sizing: border-box; width: 100%; min-height: 720px; padding: 60px 0; background: var(--s-900); border-radius: 24px; }
.hero::after { content: ""; position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(270deg, rgba(0,0,0,0) 0%, var(--s-900-t40) 100%); border-radius: 24px; }
.hero video { display: flex; position: absolute; z-index: 5; top: 0; left: 0; width: 100%; height: 100%; border-radius: 24px; object-fit: cover; }
.hero .content { flex-grow: 1; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 100px; position: relative; z-index: 15; }
.hero .details { display: flex; flex-direction: column; gap: 40px; width: 100%; }
.hero .details h1 { color: var(--s-25); font-size: 60px; line-height: 72px; }
.hero .details h1 span { position: relative; }
.hero .details h1 span::after { content: ""; position: absolute; bottom: -10px; left: 0; width: 100%; height: 18px; background: url('/img/underline.svg') no-repeat center center; background-size: contain; }
.hero .details p { color: var(--s-25); font-size: 20px; line-height: 32px; }
.hero .search-container { flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; box-sizing: border-box; width: 380px; max-width: 100%; padding: 30px; background: linear-gradient(180deg, var(--s-25-t60) 0%, var(--s-25-t30) 100%); border: 1px solid var(--s-25-t30); border-radius: 16px; backdrop-filter: blur(6px); }
.hero .search-container .item { display: flex; width: 100%; }
.hero .search-container .button { margin-top: 10px; }

.page { flex-grow: 1; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; width: 100%; padding: 110px 0; }
.hero + .page,
.page + .page,
.gallery-container + .page { margin-top: 20px; }
.gallery-container + .page { padding: 20px 0 60px 0; }
.page.secondary,
.page.black { border-radius: 24px; }
.page.secondary { background: var(--b-300); }
.page.black { background: var(--s-900); }
.page.center { justify-content: center; }

.page .title { display: flex; flex-direction: column; justify-content: center; width: 100%; margin-bottom: 20px; }
.page .content:last-child .title:last-child { margin-bottom: 10px; }
.page .title h1 { font-size: 48px; line-height: 58px; text-align: center; }
.page .title h1.small,
.page .title h2 { font-size: 30px; line-height: 36px; text-align: center; }
.page .title .subheading { margin-top: 8px; font-size: 20px; font-weight: 500; line-height: 32px; text-align: center; }
.page .title .text-container { align-items: center; margin-top: 14px; text-align: center; }
.page .title .info { line-height: 26px; }

.page .title .row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 20px; width: 100%; margin-bottom: 20px; }
.page .title .row:last-child { margin-bottom: 0; }
.page .title .row h1 { text-align: left; }

.page.black .title h1,
.page.black .title h2,
.page.black .title .text-container p { color: var(--s-25); }

.page .separator { display: flex; width: 100%; height: 1px; background: var(--b-400); margin: 70px 0; }
.form-container .separator { background: var(--s-75); margin: 18px 0 10px 0; }

.page-head { display: flex; flex-direction: column; align-items: center; position: relative; box-sizing: border-box; width: 100%; padding: 110px 60px; background: var(--s-900); border-radius: 16px; overflow: hidden; }
.page-head::after { content: ""; position: absolute; z-index: 15; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.2); }
.page-head .bg { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.page-head .content { flex-direction: column; align-items: center; gap: 8px; position: relative; z-index: 20; color: var(--s-25); text-align: center; }
.page-head h1 { font-size: 48px; line-height: 58px; }
.page-head p { font-size: 20px; font-weight: 500; line-height: 32px; }

.filters { display: flex; flex-wrap: wrap; align-items: stretch; gap: 20px; box-sizing: border-box; width: 100%; padding: 20px; background: var(--b-300); border-radius: 24px; }
.filters .item { flex-grow: 1; display: flex; flex-direction: column; }
.filters .button { align-self: center; }

.properties-map-container { flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; align-items: stretch; height: 0; padding: 20px 0; }
.properties-map-container .main { display: flex; flex-direction: column; box-sizing: border-box; width: 52%; padding: 14px 20px 0 0; overflow-y: auto; }
.properties-map-container .properties-map { flex-grow: 1; display: flex; flex-direction: column; position: relative; width: 48%; background: var(--s-100); border-radius: 24px; }
.properties-map-container .properties-map #map { width: 100%; height: 100%; border-radius: 24px; }
.properties-map-container .properties-map .overlay { display: flex; flex-wrap: wrap; position: absolute; z-index: 10; top: 20px; left: 20px; max-width: calc(100% - 40px); }
.properties-map-container .paging { margin-top: 30px; }

.estatebud-marker-label { position: absolute; z-index: 150; top: -40px; left: 0; width: 17px; height: 17px; background: var(--s-25); border: 3px solid var(--b-100); border-radius: 50%; color: var(--b-100); font-size: 10px; font-weight: 500; text-align: center; line-height: 16px; overflow: hidden; opacity: 1; cursor: pointer; }

#estatebud-infowindow { position: absolute; z-index: 300; top: 20px; left: 20px; box-sizing: border-box; width: 380px; max-width: calc(100% - 40px); border-radius: 16px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
#estatebud-infowindow .slick-track { display: flex; align-items: stretch; }
#estatebud-infowindow .properties-overview { width: 100%; height: auto; margin-top: 0; }
#estatebud-infowindow .properties-overview .item { width: 100%; height: 100%; }
#estatebud-infowindow .properties-overview .box .image { height: 240px; }
#estatebud-infowindow .estatebud-loader { display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 100%; height: 432px; background: var(--s-25); border-radius: 16px; color: var(--s-200); font-size: 50px; text-align: center; }
#estatebud-infowindow .estatebud-loader i { animation: loading-spin 1s infinite; }

#estatebud-infowindow .estatebud-infowindow-footer { box-sizing: border-box; display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; width: 100%; padding: 20px; background: var(--s-50); }
#estatebud-infowindow .estatebud-infowindow-footer .estatebud-right-arrow,
#estatebud-infowindow .estatebud-infowindow-footer .estatebud-left-arrow { transition: color 0.3s ease-in-out; cursor: pointer; }
#estatebud-infowindow .estatebud-infowindow-footer .estatebud-right-arrow:hover,
#estatebud-infowindow .estatebud-infowindow-footer .estatebud-left-arrow:hover { color: var(--s-900); }

.properties-result { flex-grow: 1; display: flex; flex-direction: column; width: 100%; }

.cta-image-buttons { align-items: stretch; padding: 0; }
.cta-image-buttons .item { flex-basis: 320px; flex-grow: 1; display: flex; box-sizing: border-box; padding: 10px; }
.cta-image-buttons .box { display: flex; flex-direction: column; justify-content: flex-end; position: relative; box-sizing: border-box; width: 100%; height: 100%; min-height: 380px; padding: 30px 30px 0 30px; background: var(--s-900); border-radius: 16px; overflow: hidden; }
.cta-image-buttons .box::after { content: ""; position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(0,0,0,0) 50%, var(--s-900-t60) 100%); }
.cta-image-buttons .box .bg { transition: transform 0.2s ease-in-out; position: absolute; z-index: 5; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.cta-image-buttons .box:hover .bg { transform: scale(1.05); }
.cta-image-buttons .box a.whole { position: absolute; z-index: 50; top: 0; left: 0; width: 100%; height: 100%; }
.cta-image-buttons .box .details { display: flex; flex-direction: column; gap: 6px; position: relative; z-index: 15; width: 100%; }
.cta-image-buttons .box .details::after { content: ""; display: flex; width: 60px; height: 12px; margin-top: 16px; background: var(--b-100); border-radius: 6px 6px 0 0; }
.cta-image-buttons .item.secondary .box .details::after { background: var(--b-500); }
.cta-image-buttons .item.variant-1 .box .details::after { background: var(--b-900); }
.cta-image-buttons .box .details .icon { display: flex; margin-bottom: 18px; }
.cta-image-buttons .box .details .icon img { width: 36px; }
.cta-image-buttons .box .details h2 { color: var(--s-25); font-size: 30px; line-height: 36px; }
.cta-image-buttons .box .details p { color: var(--s-25); font-size: 18px; font-weight: 500; line-height: 28px; }

.cta-icon-buttons { align-items: stretch; margin-top: 40px; padding: 0; }
.cta-icon-buttons .item { flex-basis: 320px; flex-grow: 1; display: flex; box-sizing: border-box; padding: 10px; }
.cta-icon-buttons .box { transition: border-color 0.2s ease-in-out; display: flex; flex-wrap: nowrap; align-items: center; gap: 20px; position: relative; box-sizing: border-box; width: 100%; height: 100%; padding: 30px; border: 1px solid var(--s-75); border-radius: 16px; }
.cta-icon-buttons .box:hover { border-color: var(--s-200); }
.cta-icon-buttons .box a.whole { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; }
.cta-icon-buttons .box .icon { display: flex; color: var(--b-100); font-size: 48px; }
.cta-icon-buttons .box .icon.secondary { color: var(--b-500); }
.cta-icon-buttons .box .icon.variant-1 { color: var(--b-900); }
.cta-icon-buttons .box .headline { flex-grow: 1; display: flex; }
.cta-icon-buttons .box .headline h4 { font-size: 20px; line-height: 24px; }
.cta-icon-buttons .box .arrow { transition: color 0.2s ease-in-out; display: flex; color: var(--s-75); font-size: 20px; }
.cta-icon-buttons .box:hover .arrow { color: var(--s-200); }

.properties-overview { display: flex; flex-wrap: wrap; align-items: stretch; margin-top: 40px; padding: 0; }
.page .title + .properties-overview { margin-top: 0; }
.properties-overview:not(.content) { width: 100%; }
.properties-overview .item { display: flex; box-sizing: border-box; width: 33.33%; padding: 10px; }
.properties-overview .box { transition: border-color 0.2s ease-in-out; display: flex; flex-direction: column; gap: 4px; position: relative; box-sizing: border-box; width: 100%; height: 100%; padding: 10px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 16px; }
.properties-overview .box:hover { border-color: var(--s-200); }
.properties-overview .box a.whole { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; }
.properties-overview .box .image { display: flex; position: relative; width: 100%; height: 240px; background: var(--s-100); border-radius: 8px; overflow: hidden; }
.properties-overview .box .image .favorite { opacity: 0; position: absolute; z-index: 20; top: 12px; left: 12px; }
.properties-overview .box:hover .image .favorite { opacity: 1; }
.properties-overview .box .image img { width: 100%; height: 100%; object-fit: cover; }
.properties-overview .box .details { flex-grow: 1; display: flex; flex-direction: column; gap: 8px; box-sizing: border-box; width: 100%; padding: 10px 10px 4px 10px; }
.properties-overview .box .details .top { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 10px; }
.properties-overview .box .details .top .tags { display: none; justify-content: flex-end; margin-top: 3px; }
.properties-overview .box .details .price { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 24px; font-weight: 700; line-height: 28px; }
.properties-overview .box .details .price .text { font-size: 14px; font-weight: 400; line-height: 16px; }
.properties-overview .box .details .headline { display: flex; }
.properties-overview .box .details .headline h3 { font-size: 20px; font-weight: 700; line-height: 24px; }
.properties-overview .box .details .location { line-height: 24px; }
.properties-overview .box .details .reference { display: none; margin-bottom: 8px; color: var(--s-400); line-height: 26px; }
.properties-overview .box .details .specifications { flex-grow: 1; display: flex; flex-direction: column; justify-content: flex-end; width: 100%; margin-top: 8px; }
.properties-overview .box .details .specifications ul { display: flex; flex-wrap: wrap; gap: 10px 20px; width: 100%; margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--s-75); list-style: none; }
.properties-overview .box .details .specifications ul li { display: flex; flex-wrap: nowrap; gap: 10px; font-weight: 700; line-height: 26px; }
.properties-overview .box .details .specifications ul li .icon { display: flex; align-items: center; min-height: 26px; color: var(--b-100); }
.properties-overview .box .details .specifications ul li .icon.variant-1 { color: var(--b-900); }

.properties-map-container .properties-overview { gap: 10px; }
.properties-map-container .properties-overview .item { width: calc(33.33% - 6.66px); padding: 0; }

.property-header { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 20px; width: 100%; margin-bottom: 30px; padding-bottom: 34px; border-bottom: 1px solid var(--s-75); }
.property-header .column { display: flex; flex-direction: column; gap: 12px; }
.property-header .column:nth-child(2) { align-items: flex-end; }
.property-header:has(.column:nth-child(2) .price .price-tag-container) .column:nth-child(1):not(:has(.tags)) { padding-top: 34px; }
.property-header:has(.column:nth-child(1) .tags) .column:nth-child(2):not(:has(.price .price-tag-container)) { padding-top: 32px; }
.property-header .headline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.property-header .headline h1 { font-size: 24px; font-weight: 700; line-height: 28px; }
.property-header .reference { color: var(--s-400); line-height: 26px; }
.property-header .location { line-height: 26px; }
.property-header .price { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 12px 4px; margin-bottom: 3px; font-size: 30px; font-weight: 700; line-height: 28px; text-align: right; }
.property-header .price .text { order: 3; font-size: 16px; font-weight: 400; line-height: 20px; }
.property-header .price .amount { order: 2; }
.property-header .price .price-tag-container { order: 1; justify-content: flex-end; width: 100%; }
.property-header .price .price-tag-container .price-tag { order: 2; }
.property-header .price .price-tag-container .text { order: 1; }

.articles-overview { display: flex; flex-wrap: wrap; align-items: stretch; margin-top: 40px; padding: 0; }
.articles-overview .item { display: flex; box-sizing: border-box; width: 33.33%; padding: 10px; }
.articles-overview .box { transition: border-color 0.2s ease-in-out; display: flex; flex-direction: column; gap: 2px; position: relative; box-sizing: border-box; width: 100%; height: 100%; padding: 10px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 16px; }
.articles-overview .box:hover { border-color: var(--s-200); }
.articles-overview .box a.whole { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; }
.articles-overview .box .image { display: flex; position: relative; width: 100%; height: 220px; background: var(--s-100); border-radius: 8px; overflow: hidden; }
.articles-overview .box .image img { transition: transform 0.2s ease-in-out; width: 100%; height: 100%; object-fit: cover; }
.articles-overview .box:hover .image img { transform: scale(1.05); }
.articles-overview .box .details { flex-grow: 1; display: flex; flex-direction: column; gap: 8px; box-sizing: border-box; width: 100%; padding: 10px 10px 2px 10px; }
.articles-overview .box .details h3 { font-size: 24px; line-height: 28px; }
.articles-overview .box .details p { flex-grow: 1; line-height: 26px; }
.articles-overview .box .details .date { display: flex; flex-direction: column; justify-content: flex-end; width: 100%; margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--s-75); color: var(--b-100); font-weight: 700; line-height: 26px; }

.stats-container { display: flex; flex-wrap: nowrap; align-items: center; gap: 100px; box-sizing: border-box; width: 100%; margin: 10px 0; padding: 60px 40px; background: var(--s-50); border-radius: 16px; }
.stats-container .item { flex-basis: 0; flex-grow: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; padding: 0 50px; text-align: center; }
.stats-container .item::after { content: ""; display: flex; position: absolute; top: 0; right: -50px; width: 1px; height: 100%; background: var(--s-75); }
.stats-container .item:last-child::after { display: none; }
.stats-container .item .value { font-size: 48px; font-weight: 700; line-height: 68px; white-space: nowrap; }
.stats-container .item .text { font-size: 20px; font-weight: 500; line-height: 24px; }

.categories-slider { width: 100%; height: 326px; margin-top: 50px; overflow: hidden; }
.categories-slider .slick-list,
.categories-slider .slick-track { height: 100%; }
.categories-slider .item { transition: transform 0.2s ease-in-out; display: flex; flex-direction: column; justify-content: flex-end; position: relative; box-sizing: border-box; width: 350px; height: 100%; padding: 0 10px; }
.categories-slider .box { display: flex; flex-direction: column; align-items: flex-start; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); box-sizing: border-box; width: 280px; height: 240px; padding: 20px 20px 20px 0; border-radius: 16px; cursor: pointer; overflow: hidden; }
.categories-slider .box a.whole { position: absolute; z-index: 15; top: 0; left: 0; width: 100%; height: 100%; }
.categories-slider .item:not(.slick-current) .box a.whole { pointer-events: none; }
.categories-slider .box .image { transition: transform 0.2s ease-in-out; position: absolute; z-index: 5; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.categories-slider .box:hover .image { transform: scale(1.05); }
.categories-slider .box h3 { display: flex; position: relative; z-index: 10; padding: 5px 16px; background: var(--s-25); border-radius: 0 18px 18px 0; color: var(--s-400); font-size: 16px; line-height: 20px; }

.categories-slider .item:not(.slick-current):not(:has( + .item.slick-current)) { transform: translateX(50px); }
.categories-slider .item.slick-current ~ .item { transform: translateX(-50px) !important; }
.categories-slider .item.slick-current + .item { transform: translateX(0) !important; }

.categories-slider .item.slick-current .box,
.categories-slider .item.slick-current .box h3 { animation-duration: 0.2s; animation-delay: 0.2s; animation-fill-mode: forwards; }
.categories-slider .item.slick-current .box { animation-name: slide-expand; }
.categories-slider .item.slick-current .box h3 { animation-name: slide-active; }

@keyframes slide-expand {
    from { width: 280px; height: 240px; }
    to { width: 380px; height: 100%; }
}

@keyframes slide-active {
    from { color: var(--s-400); font-size: 16px; line-height: 20px; }
    to { color: var(--b-100); font-size: 20px; line-height: 26px; }
}

.image-panel-container { display: flex; flex-wrap: nowrap; align-items: center; gap: 60px; width: 100%; margin: 10px 0; }
.stats-container + .image-panel-container { margin-top: 70px; }
.image-panel-container aside { flex-shrink: 0; display: flex; flex-direction: column; width: 560px; }
.image-panel-container aside img { width: 100%; border-radius: 16px; }
.image-panel-container .main { flex-grow: 1; display: flex; flex-direction: column; width: 0; }

.panel-container { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 20px; width: 100%; margin: 10px 0; }
.panel-container:has(aside.sticky) { align-items: flex-start; }
.page .title + .panel-container { margin-top: 50px; }
.panel-container aside { flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; width: 380px; }
.panel-container aside.sticky { position: sticky; top: 20px; }
.panel-container aside.width-280 { width: 280px; }
.panel-container aside .list + .list { flex-grow: 1; justify-content: flex-end; }
.panel-container aside nav { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 420px; }
.panel-container aside nav ul { display: flex; flex-direction: column; gap: 14px 40px; width: 100%; height: 100%; list-style: none; }
.panel-container aside nav ul li { display: flex; flex-direction: column; justify-content: flex-end; }
.panel-container aside nav ul li:last-child { flex-grow: 1; }
.panel-container aside nav ul li a { transition: color 0.2s ease-in-out; color: var(--s-500); font-weight: 700; line-height: 26px; }
.panel-container aside nav ul li a:hover { color: var(--s-900); }
.panel-container aside nav ul li.active a { color: var(--b-500); }
.panel-container .main { flex-grow: 1; display: flex; flex-direction: column; width: 0; }

.columns-container { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 120px; width: 100%; margin-top: 20px; }
.columns-container .main,
.columns-container aside { display: flex; flex-direction: column; }
.columns-container .main { flex-basis: 580px; }
.columns-container aside { flex-basis: 480px; }

.map-container { display: flex; width: 100%; height: 480px; background: var(--s-100); border-radius: 24px; overflow: hidden; }
.page + .map-container { margin-top: 20px; }
.map-container .map { width: 100%; height: 100%; }

.gallery-container { display: flex; flex-wrap: nowrap; gap: 10px; width: 100%; height: 43vw; }
.gallery-container .img { flex-basis: 0; flex-grow: 1; display: flex; width: 100%; height: 0; }
.gallery-container .img img,
.gallery-container .img iframe { width: 100%; height: 100%; border-radius: 24px; object-fit: cover; }
.gallery-container .main { display: flex; flex-direction: column; position: relative; width: 100%; }
.gallery-container .thumbs { flex-shrink: 0; display: flex; flex-direction: column; gap: 10px; width: 32vw; }
.gallery-container .thumbs + .thumbs { display: none; }
.gallery-container .overlay { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 20px; position: absolute; z-index: 10; top: 0; left: 0; box-sizing: border-box; width: 100%; height: 100%; padding: 20px; pointer-events: none; }
.gallery-container .overlay .item { display: flex; flex-wrap: wrap; gap: 10px; max-width: 100%; pointer-events: auto; }

.content-box { flex-grow: 1; display: flex; flex-direction: column; box-sizing: border-box; width: 100%; padding: 30px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 16px; }
.content-box .headline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 20px; width: 100%; margin-bottom: 12px; }
.content-box .headline h2 { font-size: 30px; line-height: 36px; }
.content-box .headline h3 { font-size: 20px; line-height: 32px; }
.content-box .headline p { margin-top: 4px; line-height: 26px; }
.content-box .headline .button { align-self: baseline; }

.disclaimer-box { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 30px; box-sizing: border-box; width: 100%; padding: 30px; background: var(--s-50); border: 1px solid var(--s-75); border-radius: 16px; }
.content-item .headline + .disclaimer-box { margin-top: 8px; }
.disclaimer-box p { flex-basis: 300px; flex-grow: 1; color: var(--s-500); font-size: 14px; line-height: 20px; }
.disclaimer-box .button { align-self: center; }

.content-item { display: flex; flex-direction: column; width: 100%; }
.content-item + .content-item { margin-top: 34px; }
.content-item .headline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 20px; width: 100%; margin-bottom: 16px; }
.content-item .headline:has(h3) { margin-bottom: 12px; }
.content-item .headline h2 { font-size: 24px; line-height: 28px; }
.content-item .headline h3 { font-size: 18px; line-height: 22px; }
.content-item .map-container { height: 400px; margin: 6px 0; border-radius: 16px; }

.form-container { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px 20px; width: 100%; }
.content-box .headline + .form-container { margin-top: 4px; }
.form-container .form-item { flex-grow: 1; flex-basis: 320px; display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.form-container .form-item.width-full { flex-basis: auto; width: 100%; }
.form-container .form-item:first-child,
.form-container .form-item:has(.item-heading),
.form-container .form-item:has(.checkbox-container),
.form-container .form-item:has(.button) { margin-top: 0; }
.form-container .form-item:has(.dates-container) + .form-item { margin-top: 10px; }
.form-container .form-item:not(:has(.checkbox-container)) + .form-item:has(.button) { margin-top: 18px; }
.form-container .form-item .item-heading { font-weight: 500; line-height: 26px; }
.form-container .form-item .form-split-items { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; }
.form-container .form-item .form-split-items .form-split-item { flex-basis: 130px; flex-grow: 1; display: flex; }
.form-container .form-item .form-split-items .form-split-item .checkbox-container { margin: 10px 0; }

.tabs-container { display: flex; flex-direction: column; width: 100%; }
.tabs-container .tabs { display: flex; width: 100%; }
.tabs-container .tabs ul { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; list-style: none; background: var(--s-50); border-radius: 16px 16px 0 0; }
.tabs-container .tabs ul li { transition: color 0.2s ease-in-out; flex-basis: 0; flex-grow: 1; display: flex; justify-content: center; align-items: center; box-sizing: border-box; min-height: 72px; padding: 10px 20px; border: 1px solid var(--s-50); border-bottom-color: var(--s-75); border-radius: 16px 16px 0 0; color: var(--s-400); font-size: 18px; font-weight: 700; line-height: 24px; text-align: center; cursor: pointer; user-select: none; }
.tabs-container .tabs ul li:hover { color: var(--s-500); }
.tabs-container .tabs ul li.active { background: var(--s-25); border-color: var(--s-75); border-bottom-color: var(--s-25); color: var(--s-900); }
.tabs-container .tab-content { display: flex; flex-direction: column; width: 100%; }
.tabs-container .tab-content .content-box { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }

.text-container { display: flex; flex-direction: column; width: 100%; }
.text-container.center { align-items: center; text-align: center; }
.text-container h1:not(:first-child),
.text-container h2:not(:first-child),
.text-container h3:not(:first-child),
.text-container h4:not(:first-child),
.text-container h5:not(:first-child) { margin-top: 24px; }
.text-container .date + h1:not(:first-child) { margin-top: 6px; }
.text-container .date + h1 { margin-bottom: 24px; }
.text-container h1,
.text-container h2,
.text-container h3 { margin-bottom: 14px; font-size: 30px; line-height: 36px; }
.text-container h3 span { color: var(--b-100); }
.text-container h4 { margin-bottom: 14px; font-size: 26px; line-height: 34px; }
.text-container h5 { margin-bottom: 14px; font-size: 20px; line-height: 32px; }
.text-container p { margin-bottom: 10px; line-height: 26px; }
.text-container p:last-child { margin-bottom: 0; }
.text-container ul { margin: 0 0 10px 14px; }
.text-container ol { margin: 0 0 10px 24px; }
.text-container ul:last-child,
.text-container ol:last-child { margin-bottom: 0; }
.text-container ul li,
.text-container ol li { margin-bottom: 10px; line-height: 26px; }
.text-container ul li:last-child,
.text-container ol li:last-child { margin-bottom: 0; }
.text-container .date { color: var(--b-100); font-weight: 700; }
.text-container .button { margin-top: 0; }
.text-container .error-logo { width: 300px; max-width: 100%; margin-bottom: 50px; }

.text-container table { margin-bottom: 10px; }
.text-container table:last-child { margin-bottom: 0; }
.text-container table tr th,
.text-container table tr td { padding: 11px 20px; border-bottom: 1px solid var(--s-75); border-right: 1px solid var(--s-75); vertical-align: top; text-align: left; line-height: 26px; }
.text-container table tr th { background: var(--s-50); font-weight: 700; }
.text-container table tr td { padding-top: 14px; padding-bottom: 14px; background: var(--s-25); }
.text-container table tbody:first-child tr:first-child td { border-top: 1px solid var(--s-75); }
.text-container table tr th:first-child,
.text-container table tr td:first-child { border-left: 1px solid var(--s-75); }
.text-container table tr:first-child th:first-child,
.text-container table tbody:first-child tr:first-child td:first-child { border-radius: 16px 0 0 0; }
.text-container table tr:first-child th:last-child,
.text-container table tbody:first-child tr:first-child td:last-child { border-radius: 0 16px 0 0; }
.text-container table tr:last-child td:first-child { border-radius: 0 0 0 16px; }
.text-container table tr:last-child td:last-child { border-radius: 0 0 16px 0; }

.disclaimer-container { display: flex; flex-direction: column; width: 100%; padding: 34px 0 4px 0; border-top: 1px solid var(--s-75); }
.disclaimer-container p { font-size: 13px; line-height: 20px; }

.image-container { display: flex; width: 100%; height: 520px; }
.image-container img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }

.video-container { display: flex; flex-direction: column; width: 100%; height: 600px; margin: 50px 0 10px 0; background: var(--s-100); border-radius: 16px; }
.video-container iframe { width: 100%; height: 100%; border-radius: 16px; }
.video-container .thumb { display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; width: 100%; height: 100%; }
.video-container .thumb .bg { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 100%; border-radius: 16px; }
.video-container .thumb .logo { position: absolute; z-index: 15; top: 30px; right: 30px; height: 36px; }
.video-container .thumb .icon { transition: transform 0.2s ease-in-out, background 0.2s ease-in-out; display: flex; justify-content: center; align-items: center; position: relative; z-index: 20; width: 84px; height: 84px; background: var(--s-25); border-radius: 50%; color: var(--s-900); font-size: 26px; }
.video-container .thumb:hover .icon { transform: scale(1.15); background: var(--s-75); }

.link-container { display: flex; justify-content: center; width: 100%; margin-top: 30px; padding-top: 34px; border-top: 1px solid var(--s-75); }

.slider-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; margin: 80px 0 10px 0; }
.slider-button { transition: background 0.2s ease-in-out; display: flex; justify-content: center; align-items: center; width: 60px; height: 60px; background: var(--s-25); border: 0; border-radius: 50%; font-size: 24px; cursor: pointer; }
.slider-button:hover { background: var(--s-75); }

.buttons-container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px; width: 100%; margin: 70px 0 10px 0; }

.buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; margin-top: 30px; }

.settings-container { display: flex; flex-direction: column; gap: 14px; width: 100%; }
.settings-container .item { display: flex; flex-direction: column; gap: 4px; width: 100%; }
.settings-container .item .item-heading { color: var(--s-500); font-size: 14px; line-height: 22px; }
.settings-container .item .item-icon { display: flex; color: var(--s-300); }

.specifications-container { display: flex; flex-direction: column; width: 100%; }
.specifications-container ul { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; width: 100%; list-style: none; }
.specifications-container ul li { flex-basis: 180px; flex-grow: 1; display: flex; flex-direction: column; gap: 4px; box-sizing: border-box; padding: 20px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 16px; }
.specifications-container ul li .name { font-weight: 500; line-height: 26px; }
.specifications-container ul li .value { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 10px; font-weight: 700; line-height: 26px; }
.specifications-container ul li .value .icon { flex-shrink: 0; display: flex; align-items: center; min-height: 26px; color: var(--b-100); }
.specifications-container ul li .value .icon.variant-1 { color: var(--b-900); }

.list-container { display: flex; flex-direction: column; width: 100%; }
.list-container ul { margin-left: 8px; column-count: 2; column-gap: 20px; }
.list-container ul li { margin-bottom: 8px; line-height: 26px; break-inside: avoid; }
.list-container ul li:last-child { margin-bottom: 0; }
.list-container ul li::marker { content: "• "; }

.data-container { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; padding: 10px 30px; border: 1px solid var(--s-75); border-radius: 16px; }
.data-container + .headline { margin-top: 16px; }
.data-container + .buttons-container { margin-top: 12px; }
.data-container ul { display: flex; flex-wrap: wrap; gap: 0 40px; list-style: none; overflow: hidden; }
.data-container ul li { flex-basis: 220px; flex-grow: 1; display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 10px; position: relative; box-sizing: border-box; padding: 12px 0 11px 0; line-height: 26px; break-inside: avoid; }
.data-container ul li::after { content: ""; position: absolute; bottom: 0; left: 0; transform: translateY(1px); width: 100%; height: 0; border-bottom: 1px solid var(--s-75); }
.data-container ul li .value { font-weight: 700; }
.data-container[data-expand-target] ul li:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)) { display: none; }

.agent-container { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 16px; box-sizing: border-box; width: 100%; padding: 20px; background: var(--b-300); border: 1px solid var(--b-400); border-radius: 16px; }
.agent-container .image { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.agent-container .details { display: flex; flex-direction: column; width: 100%; }
.agent-container .details .name { font-weight: 700; line-height: 22px; }
.agent-container .details .text { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 8px; color: var(--s-900); line-height: 20px; line-height: 26px; }
.agent-container .details .text .icon { display: flex; align-items: center; min-height: 26px; color: var(--b-900); font-size: 14px; }

.table-container { display: flex; flex-direction: column; width: 100%; margin-top: 8px; overflow: auto; }
table.table tr th,
table.table tr td { padding: 11px 10px; border-bottom: 1px solid var(--s-75); }
table.table tr th { background: var(--s-50); color: var(--s-500); font-size: 14px; font-weight: 400; line-height: 20px; }
table.table tr td { padding-top: 14px; padding-bottom: 14px; background: var(--s-25); line-height: 22px; }
table.table tr th:first-child,
table.table tr td:first-child { padding-left: 20px; border-left: 1px solid var(--s-75); }
table.table tr th:last-child,
table.table tr td:last-child { padding-right: 20px; border-right: 1px solid var(--s-75); }
table.table tr:first-child th:first-child { border-radius: 16px 0 0 0; }
table.table tr:first-child th:last-child { border-radius: 0 16px 0 0; }
table.table tr:last-child td:first-child { border-radius: 0 0 0 16px; }
table.table tr:last-child td:last-child { border-radius: 0 0 16px 0; }

.paging { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; width: 100%; margin: 70px 0 10px 0; }
.paging a { transition: background 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out; display: flex; justify-content: center; align-items: center; box-sizing: border-box; min-width: 48px; min-height: 48px; padding: 10px 14px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 24px; color: var(--s-900); font-weight: 700; line-height: 26px; text-align: center; }
.paging a:hover { border-color: var(--s-200); }
.paging a.active { background: var(--s-900); color: var(--s-25); }

footer { display: flex; flex-direction: column; width: 100%; margin-top: 20px; }

.cta { display: flex; flex-direction: column; align-items: center; position: relative; box-sizing: border-box; width: 100%; padding: 100px 60px; background: var(--b-100); border-radius: 24px; overflow: hidden; }
.cta .bg { position: absolute; z-index: 10; top: 50%; left: 50%; transform: translate(-50%, -50%); height: 100%; object-fit: cover; }
.cta .details { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 40px; position: relative; z-index: 20; width: 100%; }
.cta .details h4 { color: var(--s-25); font-size: 30px; line-height: 48px; text-align: center; }
.cta .details .button { align-self: center; }

.cta.small { padding-top: 50px; padding-bottom: 60px; }
.cta.small .details { flex-direction: column; gap: 30px; }
.cta.small .details h4 { font-size: 24px; line-height: 38px; }

.footer { display: flex; flex-direction: column; align-items: center; width: 100%; }
.cta + .footer { margin-top: 20px; }
.footer .columns { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 120px; width: 100%; padding: 100px 0 150px 0; }
.footer .columns .column { flex-basis: 180px; display: flex; flex-direction: column; }
.footer .logo { display: flex; margin-bottom: 30px; }
.footer .logo a { display: flex; }
.footer .logo img { height: 40px; }
.footer .title { display: flex; flex-direction: column; width: 100%; margin: 20px 0 12px 0; }
.footer .title h5 { font-size: 20px; line-height: 32px; }
.footer .bottom { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 20px; width: 100%; padding: 30px 0; border-top: 1px solid var(--s-75); }
.footer .bottom ul { display: flex; flex-wrap: wrap; max-width: 100%; list-style: none; }
.footer .bottom ul:nth-child(2) { justify-content: flex-end; }
.footer .bottom ul li,
.footer .bottom ul li a { transition: color 0.2s ease-in-out; color: var(--s-500); font-size: 14px; line-height: 20px; }
.footer .bottom ul li a:hover { color: var(--s-900); }
.footer .bottom ul li { padding: 0 10px; border-right: 1px solid var(--s-75); }
.footer .bottom ul li:first-child { padding-left: 0; }
.footer .bottom ul li:last-child { padding-right: 0; border-right: 0; }
.footer:not(.small) .settings-container { max-width: 180px; }

.footer.small { padding: 30px 0 24px 0; border-top: 1px solid var(--s-75); }
.footer.small .logo { margin-bottom: 0; }
.footer.small .settings-container { flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 40px; }
.footer.small .settings-container .item { flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 10px; width: auto; }
.footer.small .settings-container .item:has(.select) { flex-basis: 180px; }
.footer.small .bottom { flex-direction: column; align-items: center; gap: 14px; padding: 30px 0 26px 0; border-top: 0; }
.footer.small .bottom ul,
.footer.small .bottom ul:nth-child(2) { justify-content: center; text-align: center; }

.list { display: flex; flex-direction: column; width: 100%; }
.list + .list { margin-top: 20px; }
.list ul { display: flex; flex-direction: column; gap: 10px; width: 100%; list-style: none; }
.list ul li,
.list ul li a { transition: color 0.2s ease-in-out; display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 10px; color: var(--s-900); line-height: 26px; }
.list ul li a:hover { color: var(--b-900); }
.list ul li .icon { display: flex; align-items: center; min-height: 26px; color: var(--b-900); }

.socials { display: flex; width: 100%; margin-top: 10px; }
.socials ul { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
.socials ul li { display: flex; }
.socials ul li a { transition: border-color 0.2s ease-in-out; display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 40px; height: 40px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 50%; color: var(--s-900); }
.socials ul li a:hover { border-color: var(--s-200); }

.original-amount { color: var(--red-100); text-decoration: line-through; }

.favorite { transition: background 0.2s ease-in-out, opacity 0.2s ease-in-out; flex-shrink: 0; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; background: var(--s-25); border: 0; border-radius: 50%; font-size: 16px; cursor: pointer; }
.favorite:hover { background: var(--s-75); }
.favorite.active { color: var(--b-500); }
.favorite.active:hover { background: var(--b-800); }
.favorite.small { width: 36px; height: 36px; font-size: 14px; }

.price-tag-container { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.price-tag { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 2px; padding: 2px 4px; background: var(--red-25); border-radius: 4px; color: var(--red-100); font-size: 12px; font-weight: 700; line-height: 14px; text-align: center; }
.price-tag .icon { display: flex; font-size: 10px; }

.selections { display: flex; flex-wrap: wrap; gap: 10px; box-sizing: border-box; width: 100%; }
.selection { transition: background 0.2s ease-in-out; display: flex; flex-wrap: nowrap; justify-content: flex-start; align-items: flex-start; gap: 12px; padding: 8px 12px; background: var(--s-400); border: 0; border-radius: 4px; color: var(--s-25); font-size: 16px; font-weight: 400; line-height: 20px; text-align: left; cursor: pointer; user-select: none; }
.selection:hover { background: var(--s-500); }
.selection .icon { display: flex; align-items: center; min-height: 20px; font-size: 12px; }

.tags { display: flex; flex-wrap: wrap; gap: 20px; }
.tag { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; line-height: 22px; }
.tag.secondary { color: var(--b-500); }
.tag.red { color: var(--red-100); }
.tag.gold { color: var(--yellow-100); }
.tag .icon { display: flex; }

.labels-container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; width: 100%; margin: 10px 0; }
.label { transition: background 0.2s ease-in-out; display: flex; padding: 8px 16px; background: var(--s-400); border-radius: 18px; color: var(--s-25); font-weight: 700; line-height: 20px; text-align: center; }
.label:hover { background: var(--s-500); }

.button { transition: background 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out; align-self: flex-start; flex-shrink: 0; display: flex; justify-content: center; align-items: center; gap: 12px; box-sizing: border-box; min-height: 48px; padding: 8px 22px; background: var(--b-100); border: 2px solid var(--b-100); border-radius: 24px; color: var(--s-25); font-size: 16px; font-weight: 700; line-height: 26px; text-align: center; cursor: pointer; }
.button:hover { background: var(--b-200); border-color: var(--b-200); }

.button.small { min-height: 40px; padding: 4px 18px; }
.button.x-small { gap: 10px; min-height: 36px; padding: 4px 14px; font-size: 14px; font-weight: 700; line-height: 22px; }
.button.width-full { width: 100%; }

.button.secondary { background: var(--b-500); border-color: var(--b-500); }
.button.secondary:hover { background: var(--b-600); border-color: var(--b-600); }

.button.black { background: var(--s-700); border-color: var(--s-700); }
.button.black:hover { background: var(--s-900); border-color: var(--s-900); }

.button.white { background: var(--s-25); border-color: var(--s-25); color: var(--s-900); }
.button.white:hover { background: var(--s-75); border-color: var(--s-75); }

.button.grey-light { background: var(--s-50); border-color: var(--s-50); color: var(--s-400); }
.button.grey-light:hover,
.dropdown-container:has(.dropdown:hover) .button.grey-light { background: var(--s-75); border-color: var(--s-75); color: var(--s-500); }

.button.outline-black { background: transparent; border-color: var(--s-900); color: var(--s-900); }
.button.outline-black:hover { background: var(--s-900); color: var(--s-25); }

.button.outline-white { background: transparent; border-color: var(--s-25); color: var(--s-25); }
.button.outline-white:hover { background: var(--s-25); color: var(--s-900); }

.button.link { min-height: 0; padding: 0; background: transparent !important; border: 0; color: var(--b-100); }
.button.link:hover { color: var(--b-200); }

.button.secondary.link { color: var(--b-500); }
.button.secondary.link:hover { color: var(--b-600); }

.button.black.link { color: var(--s-700); }
.button.black.link:hover { color: var(--s-900); }

.button.grey-light.link { color: var(--s-400); }
.button.grey-light.link:hover { color: var(--s-500); }

.button.red.link { color: var(--red-100); }
.button.red.link:hover { color: var(--red-200); }

.button .icon { display: flex; }

.input { box-sizing: border-box; width: 100%; height: 48px; padding: 0 16px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; color: var(--s-900); font-size: 16px; }
.input::placeholder { opacity: 1; color: var(--s-400); }
.input:hover { border-color: var(--s-200); }
.input:focus { border-color: var(--b-500); }
.input.error { border-color: var(--red-100); }
.input[readonly] { background: var(--s-50); color: var(--s-500); }

.textarea { box-sizing: border-box; width: 100%; height: 152px; padding: 10px 16px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; color: var(--s-900); font-size: 16px; line-height: 26px; resize: none; }
.textarea::placeholder { opacity: 1; color: var(--s-400); }
.textarea:hover { border-color: var(--s-200); }
.textarea:focus { border-color: var(--b-500); }
.textarea.error { border-color: var(--red-100); }

.select { width: 100%; height: 48px; }

.checkbox-container { display: flex; flex-wrap: nowrap; align-items: flex-start; margin: 18px 0; }
.checkbox-container + .checkbox-container { margin-top: 0; }
.checkbox-container input { display: none; }
.checkbox-container .checkbox { flex-shrink: 0; display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 24px; height: 24px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; cursor: pointer; }
.checkbox-container .checkbox:hover,
.checkbox-container:has(.checkbox-label:hover) input:not(:checked):not(.error) + .checkbox { border-color: var(--s-200); }
.checkbox-container input.error + .checkbox { border-color: var(--red-100); }
.checkbox-container .checkbox span { display: none; color: var(--s-25); font-size: 14px; }
.checkbox-container .checkbox:hover span,
.checkbox-container:has(.checkbox-label:hover) input:not(:checked) + .checkbox span { display: flex; color: var(--s-75); }
.checkbox-container input:checked + .checkbox { background: var(--s-900); }
.checkbox-container input:checked + .checkbox span { display: flex; }
.checkbox-container .checkbox-label { padding-left: 10px; line-height: 22px; cursor: pointer; user-select: none; }
.checkbox-container .checkbox-label a { color: var(--s-900); font-weight: 700; }

.toggle-container { flex-shrink: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; box-sizing: border-box; min-width: 180px; padding: 6px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; white-space: nowrap; }
.toggle-container .toggle { transition: background 0.2s ease-in-out, color 0.2s ease-in-out; flex-basis: 0; flex-grow: 1; flex-shrink: 0; display: flex; justify-content: center; align-items: center; box-sizing: border-box; min-height: 36px; padding: 10px; border-radius: 4px; color: var(--s-400); font-size: 12px; font-weight: 700; line-height: 14px; text-transform: uppercase; text-align: center; cursor: pointer; user-select: none; }
.toggle-container .toggle:hover { color: var(--s-500); }
.toggle-container .toggle input { display: none; }
.toggle-container .toggle:has(input:checked) { background: var(--s-900); color: var(--s-25); }

.switch-container { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; box-sizing: border-box; padding: 16px; background: var(--s-25); border: 1px solid var(--s-75); border-radius: 8px; }
.switch-container .item { display: flex; cursor: pointer; }
.switch-container .item input { display: none; }
.switch-container .item svg { height: 18px; }
.switch-container .item svg rect { transition: fill 0.2s ease-in-out; fill: var(--s-300); }
.switch-container .item:hover svg rect { fill: var(--s-400); }
.switch-container .item:has(input:checked) svg rect { fill: var(--s-900); }

.input-container { display: flex; flex-wrap: nowrap; align-items: stretch; position: relative; width: 100%; }
.input-container .input-label { display: flex; justify-content: center; align-items: center; padding: 0 10px 0 16px; background: var(--s-25); border: 1px solid var(--s-100); border-right: 0; border-radius: 8px 0 0 8px; color: var(--s-400); }
.input-container:has(.input-label) .input { padding-left: 0; border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-container:hover .input:not(:focus),
.input-container:hover .input-label { border-color: var(--s-200); }
.input-container:has(.result.open ul:not(:empty)) .input,
.input-container:has(.result.open .selections:not(:empty)) .input,
.input-container:has(.result.open ul:not(:empty)) .input-label,
.input-container:has(.result.open .selections:not(:empty)) .input-label,
.input-container:has(input:focus) .input-label { border-color: var(--b-500); }
.input-container:has(.result.open ul:not(:empty)) .input-label,
.input-container:has(.result.open .selections:not(:empty)) .input-label,
.input-container:has(.result.open ul:not(:empty)) .input,
.input-container:has(.result.open .selections:not(:empty)) .input { border-bottom-color: transparent; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

.input-container .result { display: none; flex-direction: column; position: absolute; z-index: 450; top: 100%; left: 0; box-sizing: border-box; width: 100%; background: var(--s-25); border: 1px solid var(--b-500); border-top: 0; border-radius: 0 0 8px 8px; }
.input-container .result.open:has(ul:not(:empty)),
.input-container .result.open:has(.selections:not(:empty)) { display: flex; }
.input-container .result ul { display: flex; flex-direction: column; width: 100%; max-height: 288px; border-radius: 0 0 8px 8px; list-style: none; overflow: auto; }
.input-container .result ul li { display: flex; box-sizing: border-box; width: 100%; padding: 11px 16px; line-height: 26px; cursor: pointer; user-select: none; }
.input-container .result ul li:hover { background: var(--s-50-t50); }
.input-container .result .selections:not(:empty) { padding: 10px 16px; }

.code-input { display: flex; flex-wrap: nowrap; gap: 10px; width: 100%; }
.code-input .input { flex-basis: 0; flex-grow: 1; width: 48px; height: 72px; font-size: 18px; font-weight: 500; text-align: center; }

.dates-container { display: flex; flex-wrap: wrap; align-items: stretch; gap: 6px; position: relative; box-sizing: border-box; width: 100%; padding: 0 22px; }
.dates-container .arrow { display: flex; position: absolute; z-index: 10; top: 50%; transform: translateY(-50%); background: transparent; border: 0; font-size: 18px; cursor: pointer; }
.dates-container .arrow.previous { left: 0; }
.dates-container .arrow.next { right: 0; }
.dates-container .arrow[disabled] { color: var(--s-400); cursor: not-allowed; }
.dates-container .item { flex-basis: 60px; flex-grow: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; box-sizing: border-box; padding: 12px 16px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; user-select: none; }
.dates-container .item:hover { border-color: var(--s-200) }
.dates-container .item:has(input:checked) { background: var(--b-200); border-color: var(--b-200); color: var(--s-25); }
.dates-container .item:has(input[disabled]) { opacity: 0.25; cursor: not-allowed; }
.dates-container .item input { display: none; }
.dates-container .item .number { font-size: 24px; font-weight: 700; }

.field-container { flex-shrink: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; max-width: 100%; }
.field-container .field-label { line-height: 26px; }
.field-container .field { display: flex; width: 220px; max-width: 100%; }

.dropdown-container { display: flex; position: relative; }
.dropdown-container .dropdown { display: none; position: absolute; z-index: 500; top: 100%; left: 50%; transform: translateX(-50%); min-width: 100%; padding-top: 10px; }
.dropdown-container .user-menu:hover + .dropdown,
.dropdown-container .button:hover + .dropdown,
.dropdown-container .dropdown:hover { display: flex; }
.dropdown-container .dropdown ul { display: flex; flex-direction: column; width: 100%; max-height: 288px; background: var(--s-25); border: 1px solid var(--s-100); border-radius: 8px; list-style: none; overflow-y: auto; }
.dropdown-container .dropdown ul li { display: flex; width: 100%; }
.dropdown-container .dropdown ul li a { transition: color 0.2s ease-in-out; display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; box-sizing: border-box; width: 100%; padding: 11px 16px; color: var(--s-500); font-weight: 700; line-height: 26px; white-space: nowrap; }
.dropdown-container .dropdown ul li a:hover { color: var(--s-900); }
.dropdown-container .dropdown ul li.active a { color: var(--b-500); }
.dropdown-container .dropdown ul li .icon { display: flex; }

.modal { display: flex; flex-direction: column; justify-content: center; align-items: center; position: fixed; z-index: 800; top: 0; left: 0; width: 100%; height: 100%; background: var(--s-900-t60); }
.modal .modal-box { display: flex; flex-direction: column; width: 580px; max-width: 100%; max-height: 100%; background: var(--s-25); border-radius: 16px; overflow: auto; }
.modal .modal-box .modal-title { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 20px; position: sticky; z-index: 10; top: 0; box-sizing: border-box; width: 100%; padding: 24px 30px; background: var(--s-25); border-bottom: 1px solid var(--s-75); border-radius: 16px 16px 0 0; }
.modal .modal-box .modal-title h2 { font-size: 30px; line-height: 36px; }
.modal .modal-box .modal-title .close { transition: color 0.2s ease-in-out; display: flex; margin-top: 6px; background: transparent; border: 0; color: var(--s-300); font-size: 24px; cursor: pointer; }
.modal .modal-box .modal-title .close:hover { color: var(--s-400); }
.modal .modal-box .modal-content { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; padding: 30px; }
.modal .modal-box .modal-buttons { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; position: sticky; z-index: 10; bottom: 0; box-sizing: border-box; width: 100%; padding: 30px; background: var(--s-25); border-top: 1px solid var(--s-75); border-radius: 0 0 16px 16px; }

.loading-container { flex-grow: 1; display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 100%; padding: 40px 0; color: var(--s-200); font-size: 60px; }
.loading-container i { animation: loading-spin 1s infinite; }

@keyframes loading-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.success { display: none; width: 100%; height: 100%; }
.success .success-inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 10px; box-sizing: border-box; width: 100%; height: 100%; padding: 40px 0; line-height: 26px; text-align: center; }
.success .success-inner .icon { color: var(--s-200); font-size: 40px; }

.fancybox-show-thumbs .fancybox-inner { right: 0; bottom: 104px; }
.fancybox-thumbs.fancybox-thumbs-x { top: auto; width: 100%; background: transparent; text-align: center; }
.fancybox-thumbs.fancybox-thumbs-x .fancybox-thumbs__list { display: inline-block; }
.fancybox-thumbs.fancybox-thumbs-x .fancybox-thumbs__list a { border-radius: 8px; }
.fancybox-thumbs.fancybox-thumbs-x .fancybox-thumbs__list a::before { border: 2px solid var(--b-500); border-radius: 8px; }
.fancybox-image, .fancybox-spaceball, .fancybox-content, .fancybox-content iframe { border-radius: 24px; }

.preload { display: none; }

.hidden { display: none !important; }

@media (min-width: 1930px) {
    .gallery-container { height: 32.5vw; }
    .gallery-container .thumbs { width: 24vw; }
    .gallery-container .thumbs + .thumbs { display: flex; }
}

@media (max-width: 1920px) {
    .properties-map-container .properties-overview:not(.list-view) .item { width: calc(50% - 5px); }
}

@media (min-width: 1321px) {
    .properties-overview.list-view { flex-direction: column; }
    .properties-overview.list-view .item { width: 100%; }
    .properties-overview.list-view .box { flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: 8px; }
    .properties-overview.list-view .box .image { flex-shrink: 0; width: 300px; max-width: 100%; height: auto; min-height: 200px; }
    .properties-overview.list-view .box .details { padding-top: 4px; }
    .properties-overview.list-view .box .details .top .tags,
    .properties-overview.list-view .box .details .reference { display: flex; }

    .properties-overview.list-view .item.compact .box .image { width: 150px; min-height: 100px; }
    .properties-overview.list-view .item.compact .box .details .reference,
    .properties-overview.list-view .item.compact .box .details .specifications { display: none; }
}

@media (max-width: 1320px) {
    header .dropdown-container .dropdown,
    .property-header .dropdown-container .dropdown { left: auto; right: 0; transform: none; }
    
    .properties-map-container .properties-overview .item { width: calc(50% - 5px); }
    .properties-map-container .properties-overview .box .image { height: 15vw; }
    .properties-map-container .properties-result .switch-container { display: none; }
}

@media (max-width: 1240px) {
    .properties-overview .box .image { height: 20vw; }
    
    .articles-overview .box .image { height: 18vw; }
}

@media (max-width: 1200px) {
    .stats-container .item { padding: 0 20px; }
    
    .image-panel-container { flex-direction: column; }
    .image-panel-container .main { order: 2; width: 100%; }
    .image-panel-container aside { order: 1; width: 100%; }
}

@media (max-width: 1000px) {
    .wrap { padding: 0 10px; }
    
    header .logo img { height: 36px; }
    header .menu { flex-direction: column; align-items: flex-end; position: fixed; z-index: 900; top: 0; left: 0; width: 100%; height: 100%; background: var(--s-900-t60); }
    header .menu:not(.open) { display: none; }
    header .menu nav { box-sizing: border-box; width: 300px; max-width: 90%; height: 100%; padding-top: 88px; background: var(--s-25); overflow-y: auto; }
    header .menu nav ul { flex-direction: column; justify-content: flex-start; gap: 0; width: 100%; }
    header .menu nav ul li { width: 100%; }
    header .menu nav ul li a { box-sizing: border-box; width: 100%; padding: 10px 20px; }
    header .mobile-menu { display: flex; }
    
    .hero { min-height: 300px; }
    .hero .content { flex-direction: column; gap: 40px; }
    .hero .details { align-items: center; gap: 16px; box-sizing: border-box; padding: 0 10px; }
    .hero .details h1 { font-size: 32px; line-height: 40px; text-align: center; }
    .hero .details p { font-size: 16px; line-height: 26px; text-align: center; }
    
    .page { padding: 40px 0; }
    .gallery-container + .page { padding-bottom: 40px; }
    
    .page .title { margin-bottom: 10px; }
    .page .title h1 { font-size: 30px; line-height: 34px; }
    .page .title h1.small,
    .page .title h2 { font-size: 24px; line-height: 30px; }
    .page .title .subheading { font-size: 17px; line-height: 26px; }
    
    .page .separator { margin: 40px 0; }
    .form-container .separator { margin: 18px 0 10px 0; }
    
    .page-head { padding: 50px 10px; }
    .page-head h1 { font-size: 30px; line-height: 34px; }
    .page-head p { font-size: 16px; line-height: 26px; }
    
    .properties-overview { margin-top: 10px; }
    .properties-overview .item { width: 50%; }
    .properties-overview .box .image,
    .properties-map-container .properties-overview .box .image { height: 28vw; }
    
    .properties-map-container { flex-direction: column; height: auto; padding: 20px 0; }
    .properties-map-container .main { order: 2; width: 100%; padding: 40px 0 0 0; overflow-y: visible; }
    .properties-map-container .properties-map { order: 1; width: 100%; height: 70vh; }
    .properties-map-container .button[data-toggle-map] { display: none; }
    
    .articles-overview { margin-top: 10px; }
    .articles-overview .item { width: 50%; }
    .articles-overview .box .image { height: 28vw; }
    .articles-overview .box .details h3 { font-size: 20px; line-height: 24px; }
    
    .cta-image-buttons .box { min-height: 260px; }
    .cta-image-buttons .box .details::after { height: 8px; }
    .cta-image-buttons .box .details .icon img { height: 40px; }
    .cta-image-buttons .box .details h2 { font-size: 24px; line-height: 30px; }
    .cta-image-buttons .box .details p { font-size: 16px; line-height: 26px; }
    
    .cta-icon-buttons { margin-top: 20px; }
    .cta-icon-buttons .box .icon { font-size: 40px; }
    .cta-icon-buttons .box .headline h4 { font-size: 18px; line-height: 22px; }
    .cta-icon-buttons .box .arrow { font-size: 18px; }
    
    .stats-container { flex-direction: column; gap: 40px; padding: 40px 20px; }
    .stats-container .item::after { top: auto; bottom: -24px; right: 0; width: 100%; height: 1px; }
    .stats-container .item .value { font-size: 36px; line-height: 52px; }
    .stats-container .item .text { font-size: 16px; }
    
    .image-panel-container { gap: 40px; }
    
    .columns-container { flex-direction: column; gap: 50px; }
    .columns-container .main { flex-basis: auto; width: 100%; }
    .columns-container aside { flex-basis: auto; width: 100%; }
    
    .panel-container { flex-direction: column; }
    .page .title + .panel-container { margin-top: 20px; }
    .panel-container .main { width: 100%; }
    .panel-container aside,
    .panel-container aside.width-280 { width: 100%; }
    .panel-container aside nav { min-height: 0; }
    .panel-container aside nav ul { flex-direction: row; flex-wrap: wrap; }
    
    .map-container,
    .content-item .map-container { height: 300px; }
    
    .categories-slider { margin-top: 30px; }
    
    .slider-buttons { margin-top: 40px; }
    
    .buttons-container { margin-top: 30px; }
    
    .paging { margin-top: 30px; }
    
    .text-container h1,
    .text-container h2,
    .text-container h3 { font-size: 24px; line-height: 30px; }
    .text-container h4 { font-size: 20px; line-height: 28px; }
    .text-container h5 { font-size: 17px; line-height: 26px; }
    .text-container .error-logo { margin-bottom: 20px; }
    
    .image-container { height: 50vw; }
    
    .video-container { height: 50vw; margin-top: 20px; }
    .video-container .thumb .icon { width: 60px; height: 60px; font-size: 20px; }
    
    .gallery-container { flex-direction: column; height: 97.5vw; }
    .gallery-container .main { height: 100%; }
    .gallery-container .thumbs { flex-direction: row; flex-wrap: nowrap; width: 100%; height: 32%; }
    .gallery-container .thumbs .img { width: 0; height: 100%; }
    
    .tabs-container .tabs ul li { min-height: 60px; padding: 8px 10px; font-size: 16px; }
    
    .cta { padding: 60px 20px; }
    .cta .details h4,
    .cta.small .details h4 { font-size: 24px; line-height: 32px; }
    .cta.small .details { gap: 20px; }
    
    .footer .settings-container .item .item-heading { text-align: center; }
    .footer .columns { flex-direction: column; align-items: center; gap: 20px; padding: 40px 0; }
    .footer .columns .column { flex-basis: auto; align-items: center; width: 100%; }
    .footer .title { justify-content: center; text-align: center; }
    .footer .list ul { align-items: center; }
    .footer .list ul li { justify-content: center; text-align: center; }
    .footer .socials ul { justify-content: center; }
    .footer .bottom { flex-direction: column; align-items: center; }
    .footer .bottom ul,
    .footer .bottom ul:nth-child(2) { justify-content: center; text-align: center; }
    
    .modal .modal-box .modal-title h2 { font-size: 24px; line-height: 32px; }
    .modal .modal-box .modal-title .close { font-size: 20px; }
}

@media (max-width: 700px) {
    .properties-overview .item,
    .properties-map-container:not(.list-view) .properties-overview .item { width: 100%; }
    .properties-overview .box .image,
    .properties-map-container .properties-overview .box .image { height: 57vw; }
    
    .articles-overview .item { width: 100%; }
    .articles-overview .box .image { height: 57vw; }
    
    .property-header { flex-direction: column; align-items: center; }
    .property-header .column { width: 100%; }
    .property-header .column,
    .property-header .column:nth-child(2) { align-items: center; }
    .property-header:has(.column:nth-child(2) .price .price-tag-container) .column:nth-child(1):not(:has(.tags)),
    .property-header:has(.column:nth-child(1) .tags) .column:nth-child(2):not(:has(.price .price-tag-container)) { padding-top: 0; }
    .property-header .tags { justify-content: center; }
    .property-header .headline,
    .property-header .location { justify-content: center; text-align: center; }
    .property-header .price { justify-content: center; text-align: center; }
    .property-header .price .price-tag-container { justify-content: center; }
    .property-header .dropdown-container .dropdown { left: 50%; right: auto; transform: translateX(-50%); }
}

@media (max-width: 580px) {
    .modal .modal-box { border-radius: 0; }
}

@media (max-width: 500px) {
    .categories-slider { height: 163px; }
    .categories-slider .item { width: 175px; }
    .categories-slider .box { width: 140px; height: 120px; }
    .categories-slider .box h3 { font-size: 13px; line-height: 16px; }
    
    .categories-slider .item:not(.slick-current):not(:has( + .item.slick-current)) { transform: translateX(25px); }
    .categories-slider .item.slick-current ~ .item { transform: translateX(-25px) !important; }
    .categories-slider .item.slick-current + .item { transform: translateX(0) !important; }

    @keyframes slide-expand {
        from { width: 140px; height: 120px; }
        to { width: 190px; height: 100%; }
    }
    
    @keyframes slide-active {
        from { color: var(--s-400); font-size: 13px; line-height: 16px; }
        to { color: var(--b-100); font-size: 16px; line-height: 20px; }
    }
}

@media (max-width: 440px) {
    .code-input .input { width: 0; padding: 0; }
}

@media (max-width: 360px) {
    .list-container ul { column-count: 1; }
}