/*========================================================================
General
========================================================================*/

:root {
	--color-primary: #4B4B4F;
	--color-secondary: #DDDDDD;
	--color-tertiary: #3B3B3F;
	--color-highlight: #FF0000;
	--navbar-height: 3rem;
}

html {
	font-size: 100%;
	font-family: Verdana, Arial, sans-serif;
}

body {
	margin: var(--navbar-height) 0 0 0;
}

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

a {
	color: #007BFF;
    text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

.content {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 0.5rem;
}

.thin-content {
	max-width: 900px;
}

main {
	min-height: calc(100vh - 3rem);
	display: flex;
	flex-direction: column;
}

#main-content {
	width: 100%;
}

/*========================================================================
Navigation Bar
========================================================================*/

.navbar {
	position: fixed;
	z-index: 10;
	top: 0;
	width: 100%;
	height: 3rem;
	background-color: var(--color-primary);
	user-select: none;
	border-bottom: 1px solid var(--color-tertiary);
}

.navbar > .content {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0;
}

.logo {
	padding: 0 1rem;
	margin-right: auto;
	display: flex;
	height: 100%;
	align-items: center;
	color: #323232;
}

.logo > img {
	height: 100%;
	padding: 0.25rem;
}

#navbar-menu-toggle {
	height: 100%;
	padding: 0.5rem;
	display: none;
	transition: background-color 0.3s;
}

#navbar-menu-toggle:hover {
	cursor: pointer;
	background-color: var(--color-tertiary);
	transition: background-color 0.3s;
}

#navbar-links-container {
	height: 100%;
}

nav {
	display: flex;
	align-items: center;
	height: 100%;
}

.navbar-item {
	color: #FFFFFF;
	padding: 0 1rem;
	display: flex;
	height: 100%;
	align-items: center;
	transition: background-color 0.3s;
}

.navbar-item:hover {
	background-color: var(--color-tertiary);
	text-decoration: none;
	transition: background-color 0.3s;
}

.navbar-item.active {
	color: var(--color-highlight);
}

#navbar-overlay {
	position: fixed;
	width: 100%;
	height: 100%;
	top: var(--navbar-height);
	left: 0;
	transition: background-color 0.5s;
	pointer-events: none;
}

/*========================================================================
Footer
========================================================================*/

#footer {
	margin-top: auto;
}

.copyright {
	text-align: center;
	padding: 20px 10px;
}

.affiliations {
	width: 100%;
	background-color: var(--color-secondary);
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.affiliations > * {
	padding: 20px;
	height: 150px;
	transition: 0.5s;
}

.affiliations > *:hover {
	padding: 10px;
	transition: 0.5s;
}

/*========================================================================
Responsiveness
========================================================================*/

@media screen and (max-width: 900px) {
	#navbar-menu-toggle {
		height: 100%;
		padding: 0.5rem;
		display: block;
	}
	
	#navbar-links-container {
		overflow: auto;
		box-sizing: content-box;
		position: fixed;
		z-index: 10;
		top: 3rem;
		right: 0;
		width: 10rem;
		height: calc(100vh - 3rem);
		background-color: #2B2B2F;
		transition: width 0.5s;
	}
	
	#navbar-links-container.hidden {
		width: 0;
		transition: width 0.5s;
	}
	
	#navbar-links-container:not(.hidden) {
		border-left: 1px solid var(--color-tertiary);
	}
	
	nav {
		flex-direction: column;
		padding-top: 0.5rem;
	}
	
	.navbar-item {
		height: 2rem;
		width: 100%;
		flex-shrink: 0;
		justify-content: end;
		white-space: nowrap;
		overflow: hidden;
	}
	
	#navbar-overlay:not(.hidden) {
		background-color: rgba(22, 22, 22, 0.5);
		transition: background-color 0.5s;
	}
}