@import "variables";
@import "fonts";
@import "grid";
@import "personnel";

* {
	box-sizing: border-box;
}

html, body, h1, h2, h3, p, ul, li {
	margin: 0;
	padding: 0;
}

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	line-height: 1.6;
	font-size: 16px;
	color: $col-fg-0-light;
	background-color: $col-bg-0-light;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: stretch;

	&>* {
		width: 100%;
	}

	&.mobile-nav-open {
		overflow: hidden;
	}

	@media (prefers-color-scheme: dark) {
		color: $col-fg-0-dark;
		background-color: $col-bg-0-dark;
	}
}

.wrap {
	width: 100%;
	max-width: 80em;
	margin-left: auto;
	margin-right: auto;
}

.narrow {
	max-width: 40em;
}

.centering {
	text-align: center;
}

nav {
	position: relative;
	display: flex;
	align-items: center;
	border-bottom: 8px solid;
	border-image: linear-gradient(to right, $col-red-light 20%, $col-orange-light 20%, $col-orange-light 40%, $col-yellow-light 40%, $col-yellow-light 60%, $col-green-light 60%, $col-green-light 80%, $col-purple-light 80%) 5;

	.wrap {
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		padding: 2.5em 1em 1em 1em;

		.logo {
			height: 4em;
			display: block;

			@media (prefers-color-scheme: dark) {
				filter: contrast(80%) saturate(80%) brightness(180%);
			}
		}

		ul {
			list-style: none;
			display: flex;

			a {
				display: block;
				padding: 1em;
				color: inherit;
				font-weight: bold;

				&:hover {
					text-decoration: underline;
				}
			}
		}

		#mobile-nav-button {
			display: none;
			width: auto;
			font-size: 2em;
			font-family: remixicon;
			cursor: pointer;

			&::after { content: "\ef3e" }
			body.mobile-nav-open &::after { content: "\eb99" }
		}

		@media only screen and (max-width: $width-mobile) {
			padding: 1em 2em;
			align-items: center;

			.logo { height: 2em }
			ul { display: none }
			#mobile-nav-button { display: block }
		}
	}

	.mobile-nav {
		display: none;
		position: absolute;
		left: 0;
		top: 100%;
		width: 100%;
		height: 100vh;
		z-index: 99;
		background-color: $col-bg-0-light;
		overflow: hidden;
		transform: translateY(7px); // Width of nav border

		body.mobile-nav-open & {
			display: block;
		}

		ul {
			list-style: none;
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			gap: 2em;
			padding: 2em 1em;

			a {
				color: inherit;
				font-weight: bold;
				font-size: 1.5em;
				padding: 1rem;
			}
		}

		// Hide the mobile nav when open and screen is resized to wide mode
		@media only screen and (min-width: $width-mobile) {
			body.mobile-nav-open & { display: none }
		}
	}

	@media (prefers-color-scheme: dark) {
		&, .mobile-nav {
			background-color: $col-bg-0-dark;
			color: $col-fg-1-dark;
		}
	}
}

a {
	text-decoration: none;
	color: $col-red-light;

	&:hover {
		text-decoration: underline;
	}

	&[rel~="noreferrer"]::after, &.external::after {
		content: "\ecaf";
		font-family: remixicon;
		font-size: .8em;
		font-weight: normal;
		margin-left: .2em;
	}
}

img {
	max-width: 100%;
	height: auto;
}

header {
	position: relative;
	min-height: 35em;
	color: $col-bg-0-light;
	overflow: hidden;

	.wrap {
		padding: 5em 1em;
	}

	h1 {
		font-size: 2.5em;
		margin-bottom: 1.5em;
	}

	&::before {
		content: "";
		position: absolute;
		z-index: -2;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-image:  url('img/panorama.jpg');
		background-size: cover;
		background-position: center center;
		background-repeat: no-repeat;
		filter: blur(4px);
		transform: scale(1.1); // Fix borders created by the blur
	}

	&::after {
		content: "";
		position: absolute;
		z-index: -1;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-image:  url('img/forest.svg');
		background-size: contain;
		background-position: center bottom -4px; // -4px fixes a visible line on some resolutions
		background-repeat: no-repeat;
		filter: invert(0%) contrast(94.5%);

		@media (prefers-color-scheme: dark) {
			filter: invert(100%) contrast(81%);
		}
	}
}

section {
	padding: 3em 1em;

	h1 {
		font-size: 2em;
		margin: .5em 0 1em 0;

		&::before {
			display: block;
			content: "\ea81";
			font-family: remixicon;
			color: $col-red-light;
		}
	}
}

footer {
	text-align: center;
	padding: 5em 1em 1em 1em;
	margin-top: auto;
}
