/* Frame emulation */
body, html
{
    margin: 0px;
    padding: 0px;
    /* display: flex; */
	/* flex-direction: column; */
	/* justify-content: space-between; */
    overflow-y: scroll;
	overflow-x: clip;
    font-family: Verdana,Geneva,Arial,Helvetica,sans-serif;
    font-size: 11pt;
	color: #000;
	height: calc(var(--vh, 1vh) * 100); /* braucht den sticky header*/
	width: calc(var(--vw, 1vw) * 100);
	background: #fff;
	min-width: 400px;
	--vh: 1vh;

	--black: 			hsl(0, 0%, 0%);
	--dark: 			hsl(43, 5%, 29%);
	--medium: 			hsl(51, 11%, 88%);
	--light:		 	hsl(20, 18%, 97%);
	--mainAccentDark: 	hsl(199, 100%, 28%);
	--mainAccentLight: 	hsl(200, 66%, 57%);
	--accent1VeryDark: 	hsl(from var(--mainAccentDark) h s 18%);
	--accent1Dark: 		var(--mainAccentDark);
	--accent1Light: 	var(--mainAccentLight);
	--accent2Dark: 		hsl(328, 100%, 26%);
	--accent2Light: 	hsl(315, 40%, 38%);
	--accent3Dark: 		hsl(347, 94%, 36%);
	--accent3Light: 	hsl(26, 81%, 44%);
	--accent4Dark: 		hsl(48, 88%, 47%);
	--accent4Light: 	hsl(51, 93%, 56%);
	--accent5Dark: 		hsl(70, 28%, 38%);
	--accent6Light: 	hsl(64, 35%, 50%);
}

html
{
	height: calc(var(--vh, 1vh) * 100); /* braucht den sticky header*/
	--vh: 1vh;
}

body {
	height: 100%;
	display: flex;
	flex-direction: column;
	scrollbar-gutter: stable;
}

h1 
{
    margin-left:1%;
    font-size:1.6em;
}
h2 
{
    margin-left:1%;
    font-size:1.4em;
}
h3 
{
    margin-left:1%;
    font-size:1.2em;
}

a{
	color: #011E52;
}

ul {
	margin-left: -30px;
}

#horizontal_menu{	
	background:#011E52; 
	height:19px; 
	line-height: 17px;
}

#horizontal_menu a{
	text-decoration: none; 
	color: White;
	font-size: 10pt;
	font-weight: bold;
	margin: 0 15px;
}

#menu{
	width: 0px; 
	background:#E9E9E9; 
	font-size: large;
	border-style:none; 
	border-bottom-style:solid; 
	border-right-style:solid; 
	border-left-style:solid; 
	border-color: #bbbbbb; 
	border-width: 1px;
	visibility: hidden;
    height: fit-content;
	font-weight: bold;
}

img {
	border: 0;
}

.vert_menu li{
	padding: 0 0; 
	margin: 5px 0 5px 2px; 
	list-style: none;
	font-weight: bold;
}

.vert_menu li a{
	font-weight: normal;
	text-decoration: none;
	color: #000f;
	color: var(--accent1VeryDark);
}

select{
	font-size: 11pt;
}


main {
	flex: 1;
	position: relative; 
	width: 100%; 
	margin: 0 auto; 
}

#banner {
	width:100%;
}

#banner_galery{
	width:175px; 
	height:90px; 
	float: left;
}

#banner_contact{
	width:181px; 
	height:86px; 
	float: right;
	font-size: 9pt;
	font-family: "Times New Roman", Times, serif;
	text-align: right;
	margin: 2px;
}

#banner_emblem {
	height: 90px; 
	margin:0 185px 0 175px; 
	text-align: center; 
}

#printed_page{
	width:175px; 
	height:90px; 
	float: left;
}

#printed_banner_contact{
	width:181px; 
	height:86px; 
	float: right;
	font-size: 9pt;
	font-family: "Times New Roman", Times, serif;
	text-align: right;
	margin: 2px;
}

#printed_banner_emblem{
	height: 90px; 
	margin:0 185px 0 350px; 
	text-align: center; 
}

#printed_page{
	width:350px; 
	height:90px; 
	float: left;
}

#main_page{
	display: flex;
    width: 100%;
    justify-content: center;
    flex-direction: row;
    flex-wrap: nowrap;
	align-items: flex-start;
}

/* Tooltip at navigation bar*/
.tooltip {
    position: relative;
    display: inline-block;
}

.tooltip .tooltiptext {
    visibility: hidden;
    width: 50px;
	background-color: #ddd;
    color: #011E52;
    text-align: center;
    border-radius: 0;
	margin-top: 7px;
    padding: 5px 0;
    
    /* Position the tooltip */
    position: absolute;
    z-index: 1;
    top: 100%;
    left: 50%;
    margin-left: -25px;
}

.tooltip:hover .tooltiptext {
    visibility: visible;
}



/* Dennis' edits and additions*/
.lazyImage {
	opacity: 0;
	width: -webkit-fill-available;
}

.lazyImage.loaded {
	animation: fadeIn .5s ease forwards;
	border-radius: 20px;
}

.scroll-x {
	overflow-x: auto;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.lazyImageContainer {
	aspect-ratio: 1;
	align-content: center;
}

.lazyImageContainer.loading {
	background: #ededed;
	border-radius: 20px;
	aspect-ratio: 1;
	animation: pulsating 2.5s infinite;
}

@keyframes pulsating {
	0% {
		opacity: 0.2;
	}
	50% {
		opacity: 0.4;
	}
	100% {
		opacity: 0.2;
	}
}

.lazyImageOuterContainer {
	max-height:200px; 
	max-width:200px; 
	height:200px; 
	width:200px; 
	align-content:center; 
	text-align:-webkit-center;
}

.lazyImageContainer.loaded {
	background: #FFFFFF;
}

.flex-container {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
}

.img200-container {
	max-height:200px; 
	height:200px; 
	align-content:center; 
	text-align:-webkit-center;
	margin-right: 10px;
	margin-top: 5px;
	margin-bottom: 5px;
    max-width: 200px;
    width: 30%;
}

.flex-sideText {
	width: 100%;
}

footer {
	display: inline-flex;
	align-content: center;
    flex-wrap: wrap;
    justify-content: space-evenly;
    flex-direction: row;
	background-color: #f0f0f0;
	padding: 20px 0;
	margin-top: 20px;
	text-align: center;
	align-content: center;
	width: 100%;
}
footer a {
	margin: 0 10px;
}
footer div {
	width: 100%;
	max-width: 1400px;
	display: inline-flex;
	align-content: center;
    flex-wrap: wrap;
    justify-content: center;
    flex-direction: row;
}

header {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 10;
	/* From https://css.glass */
	background: hsl(200, 66%, 57%, 0.4);
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(9.8px);
	-webkit-backdrop-filter: blur(9.8px);
	width: 100%;
	height: 100%;
	overflow-y: clip;
}

#bottomHeader {
	display: flex;
    flex-wrap: nowrap;
	margin: 0 auto;
	justify-content: center;
}
#bottomHeader img {
	margin: 8px 20px;
}

#mainNav {
	display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
}

#mainNav a{
	margin-left: 2ex;
    margin-right: 2ex;
	font-size: large;
    color: var(--accent1VeryDark);
    text-decoration: none;
    font-weight: bold;
}



#topHeader {
	display: flex;
    flex-wrap: nowrap;
	background: linear-gradient(0deg, transparent, #ffffff80 10%);
}

#secondaryNav {
	display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
	width: 100%;
	margin-right: 20px;
    margin-top: 10px;
	margin-bottom: 10px;
}

#secondaryNav a{
	margin-left: 2ex;
    margin-right: 2ex;
	font-size: medium;
    color: #000000;
    text-decoration: none;
    font-weight: normal;
}

.bar {
	width: 25px;
    height: 5px;
    background: #000000;
    margin-top: 3px;
    margin-bottom: 3px;
    border-radius: 40px;
}

div#hamburger-menu-button {
    align-content: center;
}
div#hamburger-menu-icon {
	padding-right: 25px;
    padding-left: 25px;
}


#content {
	display: flow;
    align-content: center;
    justify-items: center;
	max-width: 1400px;
    margin: 0 auto;
	margin-top: 1em;
	padding: 0 1%;
	scrollbar-gutter: stable;
}

@media only screen and (max-width: 980px) {
	#mainNav {
		visibility: hidden;
		width: 0;
	}
	#bottomHeader {
		justify-content: space-between;
	}
	#topHeader {
		visibility: hidden;
		height: 0;
	}
	header {
		position: fixed;
		max-height: 69px;
	}
	main {
		margin-top: 69px;
	}
	#content {
		overflow: auto;
	}
	#content table {
		width:100%;
	}
	.scroll-x {
	overflow-x: auto;
	}
}


@media only screen and (min-width: 980px) {
	div#hamburger-menu-button {
		visibility: hidden;
		width: 0;
	}
	#menu {
		width: 230px;
		visibility: visible;
		min-width: 145px;
		margin-right: -4%;
	}
	#content {
		margin-left:  5%;
		margin-right: 5%;
	}
	header {
		position: fixed;
		height: 108px;
	}
	main {
		margin-top: 108px;
	}
	.scroll-x {
	overflow-x: unset;
	}
}

/* Busieness Cards */
.business-card-container {
	display: flex;
    justify-content: center;
    align-content: center;
    flex-wrap: wrap;
    align-items: flex-end;
	flex-direction: row;
	max-width: 1100px;
	margin: 0 auto;
}
.business-card-container a {
	text-decoration: none;
    color: black;
}
.business-card {
	width: 351px;
    border: 3px solid;
    border-color: var(--medium);
    background: var(--light);
    border-radius: 10px;
    margin: 2px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
	box-shadow: 4px 3px 20px 0px rgba(0, 0, 0, 0.1);
}
.business-card-short {
	width: 261px;
	margin: 6px;
	height: 110px;
	position: relative;
	justify-content: right;
}
.business-card-shortB {
	min-width: 381px;
	margin: 6px 0;
	height: 75px;
	position: relative;
	justify-content: right;
}
.business-card img {
	max-width: 100px;
	max-height: 120px;
	border-radius: 10px;
	vertical-align: top;
}
.business-card-image {
	margin: 0.25em;
	height: 120px;
	align-content: center;
}
.business-card-image-short {
	margin: 0.25em;
	height: 60px;
	border-radius: 0;
	position: absolute;
	opacity: 0.2;
}
.business-card-image-short img{
	max-height: 100%;
}
.business-card-text-block{
	margin: 0.5em;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: flex-end;
    align-content: flex-end;
    justify-content: space-between;
	/* height: -webkit-fill-available; */
}
.business-card-title{
	color: var(--mainAccentDark);
    font-size: medium;
	text-align: end;
}
.business-card-name{
	font-size: large;
	text-align: end;
}
.business-card-description{
	text-align: end;
}
.business-card-affiliation{
	font-size: smaller;
    color: var(--dark);
	text-align: end;
}

/* mobile Nav */
#mobileNav {
	display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
}

#mobileNav a{
    margin: 0.5em;
    margin-left: 2em;
    margin-right: 3vh;
    font-size: x-large;
    color: var(--accent1VeryDark);
    text-decoration: none;
    font-weight: bold;
}

.mobile-menu-open-bg {
	position: fixed;
	overflow-x: clip;
	overflow-y: scroll;
	animation: openMenu 0.5s ease forwards;
}
.mobile-menu-closed-bg {
	position: fixed;
	overflow-x: clip;
	overflow-y: clip;
	animation: closeMenu 0.5s ease forwards;
}
.mobile-menu-sublayer1 {
	font-size: large !important;
    margin-top: 0.1em !important;
    color: var(--dark) !important;
}

.mobile-menu-sublayer2 {
	font-size: large !important;
    font-weight: normal !important;
    margin-top: 0em !important;
    color: var(--dark) !important;
}

.mobile-menu-sublayer3 {
	font-size: medium !important;
    font-weight: normal !important;
    margin-top: 0em !important;
    color: var(--dark) !important;
}

@keyframes openMenu {
	0% {
		max-height: 69px;
		background: hsl(200, 66%, 57%, 0.4);
		backdrop-filter: blur(9.8px);
    	-webkit-backdrop-filter: blur(9.8px);
	}
	100% {
		max-height: 100%;
		background: hsla(200, 66%, 80%, 80%);
		backdrop-filter: blur(12px);
    	-webkit-backdrop-filter: blur(12px);
	}
}
@keyframes closeMenu {
	0% {
		max-height: 100%;
		background: hsla(200, 66%, 80%, 80%);
		backdrop-filter: blur(12px);
    	-webkit-backdrop-filter: blur(12px);
	}
	100% {
		max-height: 69px;
		background: hsl(200, 66%, 57%, 0.4);
		backdrop-filter: blur(9.8px);
    	-webkit-backdrop-filter: blur(9.8px);
	}
}

.content:has(div.publication-list) {
	max-width: max-content;
}