.noa-container {
	width: 100%;
	height: 100%;
}

:root {
	--warm_color_dark: #1c1c1c;
	--warm_color_light: #ccbba5;
	--dark_grey: #4a4440;
	--medium_grey: #b3b3b3;
	--light_grey: #fafafa;
}


*,
body,
html {
	padding: 0;
	margin: 0;
	text-decoration: none;
	color: var(--dark_grey);
/* 
	overflow-x: hidden;
 */
	box-sizing: border-box;
	background: none;
}
.xl-container {
	max-width: 1400px;
	margin: auto;
    padding-left: 20px;
    padding-right: 20px;
}
.l-container {
	max-width: 1000px;
	margin: auto;
    padding-left: 20px;
    padding-right: 20px;
}
.header {
	width: 100vw;
	height: 50px;
    position:fixed;
	background: var(--warm_color_dark);
    z-index: 999;
    transform: translateY( -60px );
    transition: transform .5s;
	box-shadow: 0px -10px 20px;
	overflow: hidden;
}
.header-show {
    transform: translateY( 0px );
}
.menu-items {
	text-align: right;
    font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	text-transform: uppercase;
  	font-size: 16px;
}
.menu-item-left-wrapper {
	display: inline;
	position: absolute;
}
.leaf:hover {
	cursor: pointer;
	filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.2) ) brightness(140%);
}
.png-leaf-header {
	margin-top: 7px;
	width: 52.5px;
	height: 35px;
}
.png-leaf-separator {
	
}
.menu-item-wrapper {
	display: inline-block;
  	padding: 14px 20px;
	color: var(--warm_color_light);
	transition: background .3s;
}
.menu-item {
	position: relative;
	color: inherit;
}
.menu-item-wrapper:hover {
	cursor: pointer;
    color: black;
	background: var(--warm_color_light);
/* 
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
 */
}
.menu-item-wrapper-active {
    color: black;
	background: var(--warm_color_light);
	pointer-events: none;
	cursor: default;
}
.footer {
	background: var(--warm_color_dark);
	box-shadow: 0px 10px 20px;
}

#overlay{
}
.overlay-transition{
	background: var(--warm_color_light);
  	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: var(--warm_color_light);
}
.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);
 */
}

.hero2-container {
	width: 100vw;
	height: 100vh;
    position: relative;
    overflow: hidden;
}
.hero2-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


video {
    overflow: hidden;
    height: 100%;
    width: 177.77777778vh; /* 100 * 16 / 9 */
    min-width: 100%;
    min-height: 56.25vw; /* 100 * 9 / 16 */
    z-index: 11;
}
.hero-title-abs {
    bottom: 200px;
	text-align: center;
  	position: absolute;
    width: 100%;
  	z-index: 3;
  	color: white;
}
.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;
	}
}
.hero2-arrow-wrapper {
	width: 100%;
	text-align: center;
}
.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: var(--warm_color_light);
}


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;
}
.center-horizontal {
	text-align: center;
    width: 100%;
}

@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;
}


.letter-effect-start {
	bottom: 15px;
	opacity: 0;
	position: relative;
	transition: bottom .7s, opacity .7s;
}
.letter-effect-end {
	bottom: 0px;
	opacity: 1;
}
.bar-wrapper {
	padding-top: 20px;
	padding-bottom: 60px;
}
.bar-restrained {
	margin: auto;
	width: 180px;
	height: 25px;
	background: var(--restrained);
}
.bar-signal {
	margin: auto;
	width: 180px;
	height: 25px;
	background: var(--signal);
}
.bar-effect {
	bottom: -30px;
	opacity: 0;
	position: relative;
	transition: bottom 1s .5s, opacity 1s .5s;
}
.bar-effect-end {
	bottom: 0px;
	opacity: 1;
}


.l-padding {
	padding-top: 120px;
	padding-bottom: 120px;
}
.leaf-separator {
	padding-top: 100px;
	padding-bottom: 100px;
	text-align: center;
}
.ml-padding {
	padding-top: 80px;
	padding-bottom: 80px;
}
.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 {
	padding-top: 30px;
}
.xs-spacing {
	padding-top: 12px;
}
.xs-spacing {
	padding-top: 12px;
}
.columns-container {
  display: flex;
  flex-direction: column;
  gap: 0px;
}
.left-indent {
	padding-left: 0%;
}
@media (min-width: 800px) {
.left-indent {
	padding-left: 160px;
}
}
.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: #e4e4e4;
	overflow-x: hidden;
}
.highlights-title {
	text-align: center;
    width: 100%;
    color: var(--warm_color_dark);
}
sup { 
	vertical-align: top; 
	font-size: 0.6em;
	color: inherit;
}

.highlights-item {
    color: var(--warm_color_dark);
	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-special-background {
    background: var(--warm_color_light);
	padding-top: 60px;
	padding-bottom: 60px;
}

.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;
}
.half-half {
	display: grid;
	grid-template-columns: auto auto;
}
.four-quarters {
	display: grid;
	grid-template-columns: auto auto auto auto;
}
.grid-image-cover {
	height: 100%;
	width: 100%;
	object-fit: cover;
}
.carousel-container {
	width: 999999px;
	overflow: hidden;
	margin-left: calc( 50vw - 500px );
	padding-left: 20px;
    padding-right: 20px;
	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;
	padding-left: 0px;
    padding-right: 0px;
  }
}
@media screen and (max-width: 800px) {
  .arrow-left {
  	display: none;
  }
  .arrow-right {
  	display: none;
  }
}

.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;
}


/* 
.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;
}
 */
.link_hover  {
    display: inline-block;
    color: var(--warm_color_dark);
	transition: transform 1s cubic-bezier(0, .75, 0.25, 1), opacity 1s;

/* 
    padding: 10px 25px;
	border: 1px solid var(--dark_grey);
    transition: color .5s ease;
 */
}
.link_move_out {
	transform: translateX(-200px);
	opacity: 0;
}
.link_hover:hover  {
    color: var(--warm_color_light);
	cursor: pointer;
/* 
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.1);
 */
}




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

.full-width-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_wrapper {
	overflow: hidden;
	position: relative;
	padding-top: 50%;
}
#map {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: auto;
}

.map_control_container {
	position: relative;
}
.map_control_group {
	text-align: center;
	position: relative;
	bottom: 90px;
}
.map_control {
	cursor: pointer;
	display: inline-block;
	position: relative;
	text-align: center;
    font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	text-transform: uppercase;
  	font-size: 16px;
	width: 160px;
	margin: 5px;
	padding: 10px;
    color: var(--warm_color_light);
	background: var(--warm_color_dark);
	transition: background .3s;
	z-index: 99;
}
.map_control:hover {
	background: var(--warm_color_light);
    color: black;
}
.map_control_active {
	background: var(--warm_color_light);
    color: black;
}
.map_overlay {
	position: absolute;
	left: 50%;
  	right: 0;
	top: 0;
	bottom: 0;
	height: auto;
	background: white;
	opacity: 1;
	overflow: hidden;
	transform: translateX(100%);
	transition: transform 1s;
}
.map_overlay_show {
	transform: translateX(0%);
}
.map_overlay_content_container {
	background: white;
	position: absolute;
	width: 100%;
	transition: transform 1s;
}
.map_overlay_content_container_start_hidden {
	transform: translateX(100%);
}

.map_overlay_content_container_hide {
	transform: translateX(-30%);
}
.map_overlay_content_image {
	width: 100%;
	height: 100%;
  	object-fit: cover;
}
.map_overlay_content_text {
	padding: 20px;
	padding-left: 40px;
}
.map_control_small {
	width: 60px;
	height: 60px;
	line-height: 40px; /* same as height! */
  	border-radius: 30px;
}
.map-content-marker {
  background-size: cover;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  visibility: hidden;
}
.map-content-marker-show {
  visibility: visible;
}
.map-content-marker-img0 {
  background-image: url('../images/icon_church.png');
}
.map-content-marker-img1 {
  background-image: url('../images/icon_autobahn.png');
}

.loading-gif {
	position: absolute;
  left: 0; 
  right: 0; 
  top: 0;
  bottom: 0;
  margin: auto; 
}

.flat_navigator_wrapper {
	overflow: hidden;
	position: relative;
	padding-top: 56.25%;
	background: #211841;
}
#flat_navigator {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: auto;
}
.flat_control_container {
	transition: opacity 1s;
	position: relative;
	bottom: 70px;
}
.flat_control_group {
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
}
.opacity0 {
	opacity: 0;
}

.buttons {
	position: absolute;
	bottom: 10px;
	right: 10px;
	padding: 10px;
}
.buttons_inner {
	background: rgba(64,157,132,0.95);
	color: white;
	margin: 10px;
	width: 200px;
	height: 60px;
	z-index: 11111;
	padding: 10px;
	transform: translateY(20px);
	opacity: 0;
	transition: transform 1s, opacity 1s;
}
.buttons_inner_to_add {
	opacity: 1;
	transform: translateY(0px);
}

.buttons_inner:hover {
	cursor: pointer;
	background: rgba(84,177,152,0.95);
}

@media only screen and (max-width: 768px) {
    p {
        font-size: 12px;
    }
    .buttons_inner {
        width: 100px;
        height: 30px;
    }
}




.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;
}




	.bubble_background {
		position: absolute;
		z-index: 1;
	    pointer-events:none;
	}
	.info-content {
		background-image: url(../images/bubble2.svg);
		width: 348px;
		height: 197px;
		z-index: 11111;
		padding: 10px;
	    pointer-events:none;
	}
	.infocontainer {
		position: absolute;
		top: 50px;
		left: 50px;
	    pointer-events: none;
/* 
    	transition: left .1s ease-in-out, top .1s ease-in-out;
 */
	}

	.infocontent {
		position: absolute;
	}
	.blendout {
  		opacity: 0;
    	transition: opacity .5s ease-in-out;
    	transition-delay: 0s;
	}
	.blendin {
  		opacity: 1;
    	transition-delay: 3s;
	}	