/*

Template Name: Monumente Template

*/

@font-face {
    font-family: 'Rokkitt';
    src: url('font/rokkit/Rokkitt-Regular.woff2') format('woff2'),
        url('font/rokkit/Rokkitt-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Rokkitt';
    src: url('font/rokkit/Rokkitt-Thin.woff2') format('woff2'),
        url('font/rokkit/Rokkitt-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Rokkitt';
    src: url('font/rokkit/Rokkitt-Bold.woff2') format('woff2'),
        url('font/rokkit/Rokkitt-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Rokkitt';
    src: url('font/rokkit/Rokkitt-Black.woff2') format('woff2'),
        url('font/rokkit/Rokkitt-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('font/roboto/Roboto-Regular.woff2') format('woff2'),
        url('font/roboto/Roboto-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('font/roboto/Roboto-Thin.woff2') format('woff2'),
        url('font/roboto/Roboto-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('font/roboto/Roboto-Bold.woff2') format('woff2'),
        url('font/roboto/Roboto-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('font/roboto/Roboto-Medium.woff2') format('woff2'),
        url('font/roboto/Roboto-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SF';
    src: url('font/sf/subset-SFProDisplay-Regular.woff2') format('woff2'),
        url('font/sf/subset-SFProDisplay-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SF';
    src: url('font/sf/subset-SFProDisplay-Medium.woff2') format('woff2'),
        url('font/sf/subset-SFProDisplay-Medium.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SF';
    src: url('font/sf/subset-SFProDisplay-Bold.woff2') format('woff2'),
        url('font/sf/subset-SFProDisplay-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}


/* Color Schema */
/*

    Light Grey: ececec;
    Dark Grey:  333;
    Identity Cyan: 00adee;
    Identity Blue: 0078ff;    
    Identity Green: 4dfa7f;
    Identity Yellow: e3d952;
    Identity Orange: fa974d;
    Identity Magenta: f509c4;

*/


/* order

	display
	position
	box-model
	typography
	manipulation
	misc

*/

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    width: 100%;
    height: 100%;
    scroll-behavior: smooth;
}

img,
iframe,
video,
picture {
  display: block;
  max-width: 100%;
}

/*
Font
100
400
700
900
*/

:root {
    --light-grey: #ececec;
    --dark-grey: #999;
    --identity-red: #be1e2d;
    --identity-dark-red: #be1e2d;
    --identity-darker-red: #851621;
    --identity-blue: #0078ff;
    --identity-dark-blue: #0054ff;
    --identity-green:  #4dfa7f;
    --identity-yellow: #e3d952;
    --identity-orange: #fa974d;
    --identity-magenta: #f509c4;
    --ff-rokkitt: "Rokkitt", serif;
    --ff-sf: "SFProDisplay", sans-serif;
}

body {
	background-color: #00AEEF;
}

body, p {
    font-size: min(max(1.3rem, 4vw), 1.5rem);

}

p {
    color: #444;
    font-family: var(--ff-rokkitt);
    line-height: 1.25;
    font-weight: normal;
    margin-bottom: 2em;
}

strong,
b {
    font-weight: bolder;
}

em {
    font-style: italic;
}

h1,
h2,
h3 {
    font-family: var(--ff-rokkitt);
}

h1,
h2 {
    font-weight: bold;
}

h3 {
    font-weight: normal;
    text-transform: uppercase;
}

h1 {
    font-size: 2rem;
}

h2 {
    font-size: 1.618rem;
}

h3 {
    font-size: 1.2rem;
}

ul, ol {
    list-style: none;
}

a {
    text-decoration: none;
}

.full-width {
    width: 100%;
    margin: 0 auto;
/*    padding: 32px 3vw 0 3vw;*/
}

.vh-height {
    height: 100vh;
}


header {
	position: fixed;
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
	top: 0;
	height: 10%;
	padding: 8px 10vw 8px;
	z-index: 100;
	overflow: hidden;
	background-color: #00AEEF;
	background-image: linear-gradient(19deg, #2b3990 0%, #00aeef 100%);	
}

header img {
	max-height: 90px;
}

header a {
    font-family: sans-serif;
    font-weight: normal;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 300ms ease-out;
}

header a:hover {
    text-decoration: underline;
}

@media (max-width: 48em) {
	header {
/*		height: 10%;*/
		padding: 0 3vw;
	}

	header img {
		max-height:  48px;
	}
}

span.gradient  {
	content: '';
	width: 100%;
	height: 3px;
	position: fixed;
	z-index: 101;
	background-color: #FA8BFF;
	background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BFF88 90%);
}

span.gradient-top {
	top: 10%;
}

span.gradient-bottom {
	bottom: calc(10% + 3px);
}








.top-nav-menu-toggle {
    font: bold 32px "evmono", sans-serif;
    color: #fff;
    text-decoration: none !important;
    width: 64px;
    height: 48px;
    padding-right: 2vw;
   	text-align: center;
}

.top-nav-menu-toggle:hover {
	color: var(--identity-orange);
}

#top-nav-menu {
	background: #a53b95 left 10% center no-repeat url('img/stefan-bg-01.svg');
    display: flex;
    justify-content: flex-end;
    position: fixed;
    width: 0;
    right: 0;
    top:  10%;
    transition: all 400ms ease-in-out;
    padding: 32px 0 32px 0;
    z-index: 100;
}

@media (max-width: 40em) {
	#top-nav-menu {
		background-size: 50%;
	}
}

.top-nav-menu {
	bottom: 0;
	overflow-y: auto;
}

.top-nav-menu ul {
    justify-self: end;
    grid-column: 2;
    padding-right: 32px;
    list-style: none;
}

.top-nav-menu li {
    font-weight: normal;
    color:  #fff;
    margin-bottom: 12px;
    text-align: right;
}

.top-nav-menu span {
	font-weight: bold;
	margin-top: 24px;
	display: inline-block;
}

.top-nav-menu li a {
    background: linear-gradient(to right, #A53B95 50%, #ED2E74 50%); /* dark red variant */
    background-size: 200% 100%;
    background-position: left bottom;
    display: inline-block;
    padding: 8px 16px 8px 16px;
    padding-left: 64px;
    color: #fff;
    border-bottom: 1px dotted #eee;
    text-decoration: none;
    border-radius: 4px 0 0 4px;
    font-family: var(--ff-rokkitt);
    transition: all 300ms ease;
}

.top-nav-menu li a:hover {
    /*background-color: var(--identity-light-red);*/
    background-position: right bottom;
}

.intro,
.video-splash {
	position: fixed;
	top: 0;
	width: 100vw;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0,0,0,0.4);
	transition: opacity 300ms ease-in-out;
}

.intro {
	z-index: 999;
}

.video-splash {
	z-index: 90;
}

.video-splash video {
	width: 100%;
	height: 100%;
	max-width: unset;
	max-height: unset;
	margin: unset;
	object-fit: cover;
  	position: absolute;
  	object-fit: cover;
	top: 50%;
  	left: 50%;
  	transform: translate(-50%, -50%);
}

.intro img {
	margin-bottom: 1em;
	width: 80%;
	height: auto;
}
.intro section {
	max-width: 40%;
	background-color: #fff;
	border-radius: 1em;
	padding: 1em;
	box-shadow: 0px 0px 15px rgba(0,0,0,0.3);
  	display: flex;
  	flex-flow: column wrap;
  	justify-content: center;
}

.intro section p {
	font-weight: bold;
}

.closeButton {
	cursor: pointer;
	width: 36px;
	height: 36px;
	background-image: url('img/close-icon.png');
	background-repeat: no-repeat;
	z-index: 950;
}

.intro .closeButton {
	margin-left: auto;
	margin-top: calc(-1em - 18px);
}

.intro button {
	color: #fff;
	font-family: 'Roboto', 'Helvetica', sans;
	font-weight: 500;
	font-size: .8em;
	background-color: var(--identity-dark-red);
	padding: .7em 1em;
	background: rgb(58,124,180);
	background: linear-gradient(45deg, rgba(58,124,180,1) 0%, rgba(29,97,253,1) 100%, rgba(252,176,69,1) 100%);	border: none;
	margin-bottom: 1em;
	margin-right: .5em;
	box-shadow: 0px 0px 3px rgba(0,0,0,0.3);
	cursor: pointer;
	transition: outline 300ms ease-in-out;
	max-height: 50px;
	border-radius: 50px;
}


.intro button:hover {
	outline: 2px solid yellowgreen;
}

.intro button:active {
	transform: scale(.95);
}

@media (max-width: 48em) {

	.intro {
	}

	.intro section {
		max-width: 90%;
	}

	.intro img {
		max-width: 80%;
	}

}


.contest-wrapper {
	position: absolute;
	bottom: 0;
	width: 100%;
/*	max-height: 10vh;*/
	display: flex;
	align-items: center;
	gap: 1em;
	justify-content: center;
	flex-flow: row nowrap;
	z-index: 1001;
	padding: .5em;
	background: linear-gradient(269.1deg, #FF00E5 9.64%, #A4004F 92.04%);
	transition: opacity 300ms ease-in-out;
}

.contest-wrapper img {
	max-width: 80%;
}


.contest-wrapper a, .contest-wrapper h3, .contest-wrapper p {
	color: #fff;
	font: bold 12pt 'Roboto', sans-serif;
}

.contest-wrapper a {
	border-radius: 6px;
	background-color: #d0d408;
	padding: .3em 1em;
	box-shadow: 1px 1px 1px #333;
}

.contest-wrapper .closeButton {
	position: absolute;
	top: -18px;
	left: 18px;
	background-color: unset;
	padding: unset;
	border-radius: unset;
	box-shadow: unset;
}


.contest-wrapper h3 {
	margin-top: 1em;
	text-shadow: 1px 1px 1px #333;
}

.contest-wrapper p {
	color: #d0d408;
	text-shadow: 1px 1px 1px #333;
}

.contest-wrapper section {
	display: flex;
	flex-flow: column wrap;
}


@media (min-width: 75em) {

	.contest-wrapper {
		gap: 2em;
	}

	.contest-wrapper h3 {
		font-size: 1em;
	}
	
	.contest-wrapper a {
		border-radius: 6px;
		background-color: #d0d408;
		padding: .3em 1em;
		font-size: 1em;
	}

	.contest-wrapper .closeButton {
		left: 30%;
	}
}


main {
	display: flex;
	flex-flow: row nowrap;
	width: 100vw;
	height: 100	vh;
}

@media (max-width: 40em) {
	main {
	}
}


#map {
	width: 100%;
	height: 100%;
}

/*span.before, span.after {
	content: '';
	width: 100%;
	height: 3px;
	position: fixed;
	z-index: 101;
	background-color: #FA8BFF;
	background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BFF88 90%);
}*/

/*main::before, footer::before {
	content: '';
	width: 100%;
	height: 3px;
	position: fixed;
	z-index: 101;
	background-color: #FA8BFF;
	background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BFF88 90%);
}


main::before {
	top: 10vh;
}
footer::before {

	top: 0;
	left: 0;
}*/

/*#map::before {
	top: 20vh;
}

#map::after {
	bottom: 0vh;
}*/

@media (max-width:  40em) {
/*	#map {
		height: 70vh;
		margin-top: 15vh;
	}*/

	#map::before {
	top: 0;
	}

	#map::after {
	bottom: 0;
	}

	.video-splash video {
		width: auto;
		height: 100%;
		margin: unset;
		aspect-ratio: 9/16;
	}

}

.directions {
	position: fixed;
	right: 0;
	width: 0;
	height: 100%;
	transition: all 400ms ease-in-out;
	z-index: 12;
	pointer-events: none;
}

.directions .closeButton {
	position: absolute;
	display: block;
	top: calc(15vh - 18px);
	left: 18px;
	pointer-events: all;
}

.directionsPanel {
	position: absolute;
	pointer-events: all;
	top: 15vh;
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	z-index: 12;
	width: 100%;
	height: 50%;
  	padding: 1em;
  	background-color: #fff;
  	box-shadow: 0px 0px 15px rgba(0,0,0,0.3);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: yellowgreen #333;
}

.directionsPanel h1, .directionsPanel ul, .directionsPanel .music-container {
	width: 100%;
}
.directionsPanel img {
	max-width: 70%;
}

.directionsPanel li {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	/*outline: 1px solid yellowgreen;*/
	padding: 0.5em;
	width: 100%;
	margin-bottom: 0.5em;
}

.directionsPanel li:active, .directionsPanel li.current {
	background-color: #eee;
	box-shadow: 0 0px 6px var(--identity-blue);
	box-shadow: 0 0px 6px #c3d839;
	border: 1px solid #c3d839;
	border-radius: 1em;
}

.directionsPanel li p {
	margin-bottom: 0;
}

.directionsPanel span {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: .5em;
	border-radius: 50%;
	color: #fff;
	font-family: 'Roboto', 'Helvetica', sans;
	font-weight: bold;
	min-width: 36px;
	height: 36px;
	padding-top: .15em;
/*	text-align: center;*/
	

}

.directionsPanel audio {
	border-radius: 1em;
	width: 100%;
}

@media (max-width: 75em) {
	.directions {
		top:  unset;
		bottom: 0;
		height: 100%;
		width: 0;
	}

	.directions .closeButton {
		top: calc(55% - 18px);
		left: 18px;
	}

	.directionsPanel {
		top: unset;
		height: 45%;
		bottom: 0;
		padding-bottom: 3em;
	}

	.directionsPanel img {
		max-width: 50%;
	}

	.directionsPanel h1 {
		font-size: 1rem;
		margin-left: 0.5rem;
	}

	.directionsPanel section {
		display: inline-flex;
	}
}


.infoWindow {
	background-color: #fff;
	margin: 0;
	padding: 2em;
	max-width: 30vw;
	max-height: 60vh;
	/*outline: 1px solid yellowgreen;*/
	pointer-events: all;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: yellowgreen #333;
}

@media (max-width: 48em) {
	.infoWindow {
		max-width: 80vw;
		max-height: 90vh;
		padding: 1em;
	}
}


.infoWindow .content {
	padding: 1em;
	padding-bottom: 5em;
	background:
		bottom center no-repeat url('img/content-logo-bottom-01.png'),
		top right no-repeat url('img/content-bg-stefan-01.png'),
		radial-gradient(circle, rgba(255,255,255,1) 0%, rgba(246,241,234,1) 100%);
}

.infoWindow h1, p {
	font-family: 'Rokkitt', Helvetica, sans;
}

.infoWindow h1 {
	margin-top: 0;
}
.infoWindow .content,
.infoWindow .video,
.infoWindow .images {
	width: 100%;
	margin: 0 auto;
	margin-top: 2em;
}

.infoWindow video {
	width: 100%;
}

.infoWindow .images {
	display: flex;
	flex-flow: row wrap;
}

.infoWindow .en {
	max-width: 64px;
}

.infoWindow .images img {
	flex: 1 1 50%;
	max-width: 50%;
	height: 100%;
	border: 3px solid #F6F1EA;
}

.main-content {
	background-color: #fff;
	margin-top: 10vh;
	padding: 2em 10vw 10vh;
	min-height: 90vh;
}

.main-content a {
	color: #00AEEF;
	transition: all 300ms ease;
}

.main-content a:hover,
.main-content a:focus {
	background-color: yellowgreen;
	color: #fff;
}

.main-content img {
	display: inline;
	width: auto;
	max-height: 400px;
}

footer {
	width: 100%;
	min-height: 10%;
	margin-top: 3px;
	position: fixed;
	display: flex;
	flex-flow: row wrap;
	padding: 1em 10vw;
	gap: 1em;
	bottom: 0;
    font-family: var(--ff-rokkitt);
	background-color: #00AEEF;
	background-image: linear-gradient(19deg, #2b3990 0%, #00aeef 100%);	
	z-index: 100;
}

footer .nav-wrap {

}

footer > * {
    flex: 1 1 280px;
}

footer p {
	line-height: 1;
	margin-bottom: .2em;
	color: #fff;
}

footer img {
    max-width: 200px;
}

footer a {
    color: #fff;
    text-decoration: underline;
    font-weight: bold;
    transition: all 300ms ease-in-out;
}

footer a:hover,
footer a:focus {
    color: yellowgreen;
}

.footer-nav ul {
	display: flex;
	flex-flow: row wrap;
	gap: .5em;
}

.footer-nav li {
	color: #B721FF;
}

.si-wrapper-top {
	/*height: 60%;*/
}

.si-content-wrapper {
	width: 100%;
	padding: 1em;
}

.si-close-button {
  position: absolute;
  top: 40%;
  right: 0;
  background-color: #f00;
  outline: none;
  border: 1px solid red;
  /*padding: 0.3;*/
  width: 1.5em;
  color: #fff;
  font-size: 2em;
  cursor: pointer;
  opacity: 0.7;
}

@media (max-width: 48em) {

	.si-float-wrapper {
		margin:  auto auto;
	}

	footer {
		/*position: relative;*/
		height: 10%;
		padding-top: .5em;
	}
	footer p {
		font-size: .8em;
	}

	footer .footer-nav-wrapper {
		display: none;
	}

}

.overlay {
	position: fixed;
	top: 0vh;
	margin: 0 auto;
	width: 90vw;
	height: 90vh;
	z-index: 9999;
	background-color: #fff;
	border-radius: 12px;
	box-shadow: 3px 3px 3px #333;
	padding: .5em;
	max-width: 600px;
}

.overlay h1 {
	font-size: 1.25em;
	color: #333;
}