*,
body,
html {
	padding: 0;
	margin: 0;
	color: black;
	text-decoration: none;
/* 
	overflow-x: hidden;
 */
	box-sizing: border-box;
	background: none;
}
.l-container {
	max-width: 1000px;
	margin: auto;
    padding-left: 20px;
    padding-right: 20px;
}
.header {
	width: 100vw;
	height: 50px;
    position:fixed;
	background: rgb(255, 240, 189);
    z-index: 999;
    transform: translateY( -60px );
    transition: transform .5s;
	box-shadow: 0px -10px 20px;
}
.header-show {
    transform: translateY( 0px );
}
.menu-items {
	margin-top: 13px;
    font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	text-transform: uppercase;
  	font-size: 16px;
}
.menu-item {
	padding-right: 40px;
}
.menu-item-active {
	color: white;
	background: black;
}
.footer {
	background: rgb(255, 240, 189);
	box-shadow: 0px 10px 20px;
}

#overlay{
}
.overlay-transition{
  	background-color: rgb(50,50,50);
	background: rgb(255, 240, 189);
  	pointer-events: none;
    position:fixed;
    top:0vh;
    left:0px;
    bottom:0vh;
    right:0px;
    opacity:0;
    z-index:199;
    transition:.5s;
}
.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}
.overlay-step1{
    opacity:1;
}

.overlay-step2{
	top:100vh;
}
.overlay-none{
	display:none;
}


.hero_words {
	color: white;
	display: inline-block;
	transform-origin: 50% 100%;
	animation-name: hero_anim;
	animation-duration: .5s;
	animation-fill-mode: both;
   	animation-timing-function: cubic-bezier(0, .75, 0.25, 1);
}
.hero {
/* 
	height: 100vh;
	width: 100vw;
 */
    overflow: hidden;
    position: relative;
	text-align: center;
	background: rgb(255, 240, 189);
}
.hero-image {
	width: 100%;
	min-width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
    line-height: 0;   /* https://stackoverflow.com/questions/47013362/removing-unexpected-space-in-before-after-pseudo-elements */
}
.video-wrapper {
    overflow: hidden;
	text-align: center;
  	z-index: 10;
    line-height: 0;   /* https://stackoverflow.com/questions/47013362/removing-unexpected-space-in-before-after-pseudo-elements */
}
.video-wrapper::before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: '';
/* 
    background-color: rgba(0,0,0,0.33);
 */
}
video {
    overflow: hidden;
    height: 100%;
    width: 177.77777778vh; /* 100 * 16 / 9 */
    min-width: 100%;
    min-height: 56.25vw; /* 100 * 9 / 16 */
    z-index: 11;
}
.title-abs {
    overflow: hidden;
    bottom: 150px;
	text-align: center;
  	position: absolute;
    width: 100%;
  	z-index: 3;
	font-family: 'Playfair Display', serif;
	font-weight: 400;
	font-size: 56px;
}
@media only screen and (min-width: 768px) {
.title-abs {
		font-size: 84px;
	}
}
.hero-arrow-down {
	display: inline-block;
	opacity:0; 
	position: absolute;
	animation-name: arrow-down;
	animation-delay: 4s;
	animation-duration: 3s;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}
@keyframes arrow-down {
  0%   {opacity:0; bottom:120px;}
  5%  {opacity:1; bottom:90px;}
  10%  {opacity:1; bottom:60px;}
  15%  {opacity:1; bottom:30px;}
  20%  {opacity:0; bottom:0px;}
  100% {opacity:0; bottom:0px;}
  }
  
.work {
	background: rgb(255,200,255);
}


a {
	text-decoration: none;
	cursor: pointer;
}
h1 {
	font-family: 'Playfair Display', serif;
	font-weight: 400;
	font-size: 56px;
}
h2 {
    font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase;
  	font-size: 20px;
}
h3 {
    font-family: 'Open Sans', sans-serif;
	font-weight: 600;
	font-size: 32px;
}


@media only screen and (min-width: 768px) {
	h1 {
		font-size: 56px;
	}
	h2 {
		font-size: 20px;
	}
	h3 {
		font-size: 32px;
	}
}

p {
	line-height: 1.6;
    font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	font-size: 16px;
}

@keyframes hero_anim {
  from {opacity: 0; transform: matrix(1, 0, 0, .1, 0, 15);}
  to {opacity: 1; transform: matrix(1, 0, 0, 1, 0, 0);}
}

.hero_words {
	color: white;
	display: inline-block;
	transform-origin: 50% 100%;
	animation-name: hero_anim;
	animation-duration: .5s;
	animation-fill-mode: both;
   	animation-timing-function: cubic-bezier(0, .75, 0.25, 1);
}
.w1 {
	animation-delay: 1.5s;
}
.w2 {
	animation-delay: 1.7s;
}
.w3 {
	animation-delay: 1.9s;
}
.w4 {
	animation-delay: 2.1s;
}
.w5 {
	animation-delay: 2.3s;
}

.l-padding {
	padding-top: 120px;
	padding-bottom: 120px;
}
.m-padding {
	padding-top: 60px;
	padding-bottom: 60px;
}

@media only screen and (min-width: 768px) {
	.l-padding {
		padding-top: 220px;
		padding-bottom: 220px;
	}
}

.l-spacing {
	padding-top: 220px;
}
.m-spacing {
	padding-top: 60px;
}
.s-spacing {
	margin-top: 30px;
}
.xs-spacing {
	padding-top: 12px;
}
.xs-spacing {
	padding-top: 12px;
}
.columns-container {
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.column{
  flex: 50%;
}

.column-right {
  flex: 50%;
}

@media (min-width: 800px) {
  .columns-container {
    flex-direction: row;
    gap: 30px;
  }
}

.black-bar {
	width: 120px;
	height: 10px;
	color: blue;
	background: black;
	transition: width 1s cubic-bezier(0, .75, 0.25, 1);
}
.bar-shrink {
	width: 0px;
}

.highlights {
	background: #eafbff;
	overflow-x: hidden;
}
.highlights-title {
	text-align: center;
    width: 100%;
}
.highlights-item {
	font-family: 'Playfair Display', serif;
	font-weight: 400;
	font-size: 36px;
	position: relative;
	opacity: 0;
	transform: matrix(1, 0, 0, .1, 0, 15);
	transform-origin: 50% 100%;
	transition-duration: .5s;
   	transition-timing-function: cubic-bezier(0, .75, 0.25, 1);
}
@media only screen and (min-width: 768px) {
.highlights-item {
	font-size: 48px;
}
}
.highlights-item-show {
	opacity: 1;
	transform: matrix(1, 0, 0, 1, 0, 0);
}

.carousel-image-wrapper {
	display: inline-block;
	width: 90vw;
	height: 56.25vw;
	overflow: hidden;
}
@media only screen and (min-width: 768px) {
.carousel-image-wrapper {
	width: 60vw;
	height: 37.5vw;
}
}
.carousel-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 1s cubic-bezier(0, .75, 0.25, 1);
}
.carousel-image:hover {
	transform: scale(1.05);
	cursor: pointer;
	object-fit: cover;
}
.page-width-container {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.carousel-container {
	width: 999999px;
	overflow: hidden;
	margin-left: calc( 50vw - 500px );
	transform: translate( 0px );
	transition: transform 1s cubic-bezier(0, .75, 0.25, 1);
}
.carousel-container-follow-finger {
	transition-duration: 33ms;
}
.carousel-container-out {
	transform: translate( 100vw );
}
@media screen and (max-width: 1000px) {
  .carousel-container {
    margin-left: 0px;
  }
}

.arrow-left {
	z-index: 9999;
	position: absolute;
	top: 50%;
	transform: translate(50%,-50%);
}
.arrow-right {
	z-index: 9999;
	position: absolute;
	top: 50%;
	left: 100%;
	transform: translate(-150%,-50%);
}
.arrow-left:hover, .arrow-right:hover {
	cursor: pointer;
}
.arrow-left:hover > .arrow-line, .arrow-right:hover > .arrow-line{
	stroke-width: 5;
}
.hide-me {
	display: none;
}
.map_wrapper {
  position: relative;
  padding-top: 40%; /* 16:9 Aspect Ratio */
}
#map {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: auto;
}
.link_hover  {
    display: inline-block;
    height: 2.5em;
    background-image: linear-gradient(to right, #000, #000);
    background-position: bottom left;
    background-repeat: no-repeat;
    background-size: 120px 10px;
    transition: background-size .5s ease;
}
.link_hover:hover  {
	cursor: pointer;
    background-size: 100% 10px;
}

.architektur-image-wrapper {
	display: inline-block;
	width: 100%;
	height: 16.25%;
	overflow: hidden;
}

.parallax-image {
	width: 100vw;
}

.fall_down {
	position: relative;
	animation-name: fall_anim;
	animation-duration: .8s;
	animation-fill-mode: both;
   	animation-timing-function: ease-out;
}
@keyframes fall_anim {
  from {top: -60px;}
  to {top: 0px;}
}

.map_control_container {
	text-align: center;
}
.map_control {
	cursor: pointer;
	display: inline-block;
	position: relative;
	bottom: 20px;
	text-align: center;
	width: 200px;
	margin: 5px;
	padding: 10px;
	background: white;
	border: 1px solid black;
	z-index: 99;
}
.map_control:hover {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.map_control_top {
	bottom: -20px;
}


.video-separator-wrapper {
	height: 240px;
	overflow: hidden;
}
.video-separator {
	min-width: 0;
	min-height: 0;
    width: 100%;
	object-fit: cover;
}
.normal-image-wrapper {
	display: inline-block;
	overflow: hidden;
}
.svg-wrapper {
	width: 100%;
}
.svg-hide {
	display: none;
}
.svg-move {
	transform: translateY(400px);
}
.svg-animate {
	transition: transform 0.4s;
}