/* Fonts */

/* pt-serif-regular - latin */
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../webfonts/pt-serif-v16-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../webfonts/pt-serif-v16-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../webfonts/pt-serif-v16-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../webfonts/pt-serif-v16-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../webfonts/pt-serif-v16-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../webfonts/pt-serif-v16-latin-regular.svg#PTSerif') format('svg'); /* Legacy iOS */
}

/* source-sans-pro-300 - latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../webfonts/source-sans-pro-v18-latin-300.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../webfonts/source-sans-pro-v18-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../webfonts/source-sans-pro-v18-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-300.woff') format('woff'), /* Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../webfonts/source-sans-pro-v18-latin-300.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}

/* source-sans-pro-regular - latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../webfonts/source-sans-pro-v18-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../webfonts/source-sans-pro-v18-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../webfonts/source-sans-pro-v18-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../webfonts/source-sans-pro-v18-latin-regular.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}

/* source-sans-pro-700 - latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../webfonts/source-sans-pro-v18-latin-700.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../webfonts/source-sans-pro-v18-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../webfonts/source-sans-pro-v18-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-700.woff') format('woff'), /* Modern Browsers */
       url('../webfonts/source-sans-pro-v18-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../webfonts/source-sans-pro-v18-latin-700.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}

/* Default Settings */

* {
	outline: none;
}

body {
	font-family: 'Source Sans Pro', sans-serif;
	word-wrap: break-word;
	hyphens: auto;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	-ms-hyphens: auto;
	-o-hyphens: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: 'PT Serif', sans-serif;
}

strong.headline {
	font-family: 'PT Serif', sans-serif;	
	font-weight: 400;
	font-size: 25px;
	display: block;
	border-bottom: 2px solid;
	margin-bottom: 15px;
}

a {
	transition: all 0.3s;
}

/* Header */

header {
	box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15);
	position: relative;
	z-index: 999;
}

.header_top {
	padding: 10px 0;
	background-color: #efefef;
}

.header_top a {
	color: #000000;
	margin-right: 15px;
	display: inline-block;
}

.header_top a:last-child {
	margin-right: 0;
}

.header_top a:hover {
	text-decoration: none;
}

.header_bottom {
	padding: 15px 0;
	background-color: #ffffff;
}

.logo img {
	width: 250px;
	max-width: 100%;
	height: auto;
}

.nav_meta_contact {
	text-align: right;
	margin-bottom: 15px;
	font-size: 16px;
}

.nav_meta_contact a {
	color: initial;
	margin-right: 10px;
}

.nav_meta_contact a:hover {
	text-decoration: none;
}

.nav_meta_contact a:last-child {
	margin-right: 0;
}

header nav ul {
	padding: 0;
	margin: 0;
	text-align: right;
}

header nav ul li {
	list-style: none;
	display: inline-block;
}

header nav ul li a {
	font-size: 18px;
	padding: 5px 10px;
	display: block;
	color: #000000;
}

header nav ul li:last-child a {
	padding-right: 0;
}

header nav ul li a:hover {
	text-decoration: none;
}

header nav ul .current_page_item > a {
	font-weight: 700;
}

.mobile_nav_open,
.mobile_nav_close {
	position: absolute;
	right: 0;
	font-size: 35px;
	cursor: pointer;
	display: none;
	z-index: 999;
}

.mobile_nav_close {
	top: 25px;
	right: 25px;
}

/* Content */

main {
	font-size: 18px;
}

.slide {
	position: relative;
}

.slide img {
	height: 600px;
	width: 100%;
	object-fit: cover;
}

.slide_overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.4);
}

.slide_overlay span {
	display: inline-block;
	font-family: 'PT Serif', sans-serif;
	color: #ffffff;
	padding: 25px;
	font-size: 35px;
	line-height: 37px;
	max-width: 100%;
}

.banner {
    position: relative;
    min-height: 500px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.banner img {
    width: 50%;
    top: 0;
    right: 0;
    height: 100%;
    object-fit: cover;
    position: absolute;
    background-color: #efefef;
}

.bannertext {
    margin: auto;
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 50px 0;
}

.bannertext p:last-child {
	padding: 0;
	margin: 0;
}

.bannertext .row {
	align-items: center;
}

.alternierendes_element {
	margin-bottom: 25px;
	padding: 0 15px;
}

.alternierendes_element_inner {
	display: flex;
	flex-wrap: wrap;
}

.alternierendes_element:nth-child(even) .alternierendes_element_inner {
	flex-direction: row-reverse;
}

.alternierendes_image {
	position: relative;
	min-height: 300px;
}

.alternierendes_element img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 300px;
	position: absolute;
	left: 0;
}

.alternierender_text {
	padding: 25px;
	background-color: #F4F4F4; 
}

.alternierender_text p:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
}

.member_inner {
	display: flex;
	flex-wrap: wrap;
	font-size: 16px;
	height: 100%;
}

.member_image {
	width: 40%;
	position: relative;
	height: 100%;
}

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

.member_info {
	width: 60%;
	padding: 25px;
	background-color: #F4F4F4;
	height: 100%;
}

.member_info span {
	display: block;
}

.member_info span.name {
	font-family: 'PT Serif', sans-serif;
	font-size: 25px;
}

.member_info span.position {
	margin-bottom: 10px;
}

.member_info p.information {
	margin: 10px 0 0 0;
}

/* Formulare */

form.wpcf7-form {
	width: 750px;
	display: block;
	margin: 75px auto 75px auto;
	max-width: 100%;
}

.formfield input,
.formfield select,
.formfield textarea {
	width: 100%;
	border: none;
	background-color: #efefef;
	padding: 15px;
}

form.wpcf7-form .datenschutz input {
	width: auto;
	margin-right: 10px;
}

form.wpcf7-form .datenschutz .wpcf7-list-item {
	margin: 0;
	padding: 0;
}

form.wpcf7-form .submit-row input {
	border: none;
	padding: 10px 25px;
	text-align: left;
	cursor: pointer;
	color: #ffffff;
}

/* Immobilien */

.estate-tile {
	margin-top: 30px;
}

.estate-tile-inner {
	background-color: #F4F4F4;
}

.estate-image img,
.estate-image picture {
	width: 100%;
	height: 250px;
	object-fit: cover;
}

.estate-tile-info {
	padding: 15px;
	font-size: 15px;
}

.estate-title {
	display: block;
	font-family: 'PT Serif', sans-serif;
	transition: all 0.3s;
	font-size: 20px;
	height: 60px;
	overflow: hidden;
	margin: 5px 0 15px 0;
}

.estate-title:hover {
	text-decoration: none;
	opacity: 0.8;
}

.estate-tile-table .label {
	font-weight: 700;
}

.estate-button {
	display: block;
	text-align: center;
	color: #ffffff;
	transition: all 0.3s;
	padding: 5px;
	margin-top: 15px;
}

.estate-button:hover {
	color: #ffffff;
	text-decoration: none;
	opacity: 0.8;
}

.estate-details {
	font-size: 18px;
}

.details-gallery {
	margin-bottom: 30px;
}

.details-gallery .gallery_item {
	height: 700px;
	position: relative;
	overflow: hidden;
}

.details-gallery .gallery_item picture:first-child,
.details-gallery .gallery_item picture:first-child img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	left: 0;
	top: 0;
	filter: blur(14px);
}

.details-gallery .gallery_item picture:last-child,
.details-gallery .gallery_item picture:last-child img {
	height: 100%;
	display: block;
	margin: auto;
	position: relative;
	z-index: 999;
}

.estate-details .title h1 {
	border-bottom: 2px solid;
	padding-bottom: 10px;
	margin-bottom: 30px;
}

.details-table .label {
	font-weight: 700;
}

.estate-details .description h2 {
	margin-top: 25px;
}


#energyscale {
	margin-top: 25px;
}

#energyscale .background {
	width: 550px;
	max-width: 100%;
}

.energyscale_wrapper {
	position: relative;
	line-height: 0px;
}

.energyscale_wrapper img.pointer  {
	height: 100% !important;
	position: absolute;
	top: 0;
	left: 0;
}

.pagination {
	margin-top: 50px;
	text-align: right;
	font-size: 20px;
}

.page-numbers {
	background-color: #F4F4F4;
	display: inline-block;
	width: 40px;
	text-align: center;
	padding: 5px;
	transition: all 0.3s;
}

.page-numbers.current {
	color: #ffffff;	
}

.page-numbers:hover {
	text-decoration: none;
	color: #ffffff;
}

.pagination .next,
.pagination .prev {
	display: none;
}

/* Footer */

footer {
	margin-top: 150px;
}

.footer_bottom a {
	color: #000000;
}

.footer_bottom a:hover {
	text-decoration: none;
}

.footer_top {
	background-color: #efefef;
	padding: 25px 0;
	font-size: 18px;
}

footer ul.social {
	margin: 0 0 25px 0;
	padding: 0;
}

footer ul.social li {
	list-style: none;
	display: inline-block;
}

footer ul.social li a {
	display: block;
	padding: 0 15px 0 0;
	font-size: 25px;
}

.footer_bottom {
	padding: 10px 0;
	background-color: #dcdcdc;
}

.footer_navigation ul {
	margin: 0;
	padding: 0;
}

.footer_navigation ul li {
	display: inline-block;
	list-style: none;
	position: relative;
	padding-right: 20px;
}

.footer_navigation ul li::after {
	content: '|';
	position: absolute;
	right: 8px;
	top: 0;
}

.footer_navigation ul li:last-child {
	padding-right: 0;
}

.footer_navigation ul li:last-child::after {
	display: none;
}

.powered_by {
	text-align: right;
}

/* WPML */

.wpml-ls-menu-item {
	position: relative;
	padding-right: 20px;
}

.wpml-ls-menu-item::after {
	position: absolute;
	right: 0px;
	top: calc(50% - 12px);
	content: "\f078";
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	cursor: pointer;
}

.wpml-ls-menu-item ul {
	display: none;
	position: absolute;
	left: 0;
	top: 100%;
	background: #ffffff;
	box-shadow: 0px 10px 10px 0px rgba(0,0,0,0.15);
}

.wpml-ls-menu-item:hover ul {
	display: block;
}

.wpml-ls-menu-item ul li::after {
	display: none;
}

/* Responsive */

@media only screen and (max-width: 1400px) {
	
	.details-gallery .gallery_item {
		height: 600px;
	}

}

@media only screen and (max-width: 1250px) {
	
	.navigation {
		display: block;
		position: fixed;
		height: 100vh;
		left: -100%;
		top: 0;
		z-index: 999;
		background: #fff;
		width: 75%;
		transition: all 0.3s;
		box-shadow: 5px 0px 5px 0px rgba(0,0,0,0.25);
		padding: 25px;
	}

	.navigation.navisopen {
		left: 0;
	}

	header nav ul {
		text-align: left;
		width: calc(100% - 50px);
	}

	header nav ul li {
		display: block;
	}

	.mobile_nav_open,
	.mobile_nav_close {
		display: block;
	}

	.logo img {
		display: block;
		margin: auto;
	}

	.meta_contact,
	.powered_by,
	.footer_navigation ul {
		text-align: center;
	}

	.nav_meta_contact {
		display: none;
	}

}

@media only screen and (max-width: 991px) {

	.slide img {
		height: 500px;
	}

	.banner img {
		position: initial;
		width: 100%;
		height: 400px;
	}

	.banner picture {
		width: 100%;
	}

	.bannertext {
		padding: 25px 0 0 0;
	}

	.teammember {
		margin-bottom: 25px;
	}

	.details-gallery .gallery_item {
		height: 450px;
	}

}

@media only screen and (max-width: 767px) {

	.details-gallery .gallery_item {
		height: 350px;
	}

}

@media only screen and (max-width: 575px) {

	.mobile_nav_open {
		right: 15px;
	}

	.logo img {
		margin: initial;
	}

	.slide img {
		height: 400px;
	}

	.slide_overlay span {
		font-size: 30px;
		line-height: 32px;
		padding: 15px;
	}

	.member_image,
	.member_info {
		width: 100%;
	}

	.member_image {
		height: 200px;
	}

	.member_image img {
		object-fit: contain;
		background-color: #F4F4F4;
	}

	.member_info {
		height: initial;
	}

	.details-gallery .gallery_item {
		height: 250px;
	}

}