:root {
	--bg: #ffffff;
	--text: #000000;
	--headline-accent: #658553;
	--meta: #777777;
	--body-text: #353535;
	--quote-mark: #e6dddd;
	--line: #d9d9d9;
	--field-border: #aaaaaa;
	--placeholder: #bdbdbd;
	--container-max: 1488px;
	--page-grid-margin: 120px;
	--page-grid-gutter: 20px;
	--radius: 24px;
}

* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	background: var(--bg);
	color: var(--text);
	font-family: "Inter", sans-serif;
}

html {
	scroll-behavior: smooth;
}

#projekte,
#about-me,
#contact {
	scroll-margin-top: 110px;
}

app-navigation,
app-footer {
	display: block;
}

.header {
	height: 80px;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--page-grid-gutter);
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 0 var(--page-grid-margin);
	border-bottom: 1px solid var(--line);
	background: #ffffff;
	z-index: 100;
}

.nav-brand {
	grid-column: 1 / 2;
	color: var(--text);
	text-decoration: none;
	font-family: "Syne", sans-serif;
	font-weight: 800;
	font-size: 1rem;
	line-height: 1;
	justify-self: start;
}

.nav {
	display: contents;
}

.nav-link {
	align-self: center;
	justify-self: start;
	color: var(--text);
	text-decoration: none;
	font-size: 1rem;
	line-height: 1;
}

.nav-link:nth-child(1) {
	grid-column: 7 / 8;
}

.nav-link:nth-child(2) {
	grid-column: 8 / 9;
}

.nav-link:nth-child(3) {
	grid-column: 9 / 10;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-brand:hover,
.nav-brand:focus-visible {
	color: var(--headline-accent);
	opacity: 1;
}

img {
	max-width: 100%;
	display: block;
}

.page-shell {
	padding-top: 130px;
}

.content-container {
	width: min(var(--container-max), calc(100% - clamp(2.5rem, 7vw, 9rem)));
	margin: 0 auto;
}

.section {
	padding-top: clamp(4rem, 7vw, 6.5rem);
	padding-bottom: clamp(4rem, 7vw, 6.5rem);
}

.section-divider {
	border-bottom: 1px solid var(--line);
}

.site-footer {
	width: 100%;
	padding: 0 0 30px;
}

.site-footer__divider {
	width: 100%;
	height: 0;
	border-top: 1px solid var(--line);
	margin-bottom: 30px;
}

.site-footer__bar {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--page-grid-gutter);
	align-items: center;
	padding: 0 var(--page-grid-margin);
	font-size: 1rem;
	font-family: "Inter", sans-serif;
	font-weight: 400;
	color: var(--text);
}

.site-footer__bar .site-footer__link:nth-of-type(1) {
	grid-column: 1 / 2;
}

.site-footer__bar .site-footer__link:nth-of-type(2) {
	grid-column: 2 / 3;
}

.site-footer__link {
	color: var(--text);
	text-decoration: none;
}

.site-footer__link:hover,
.site-footer__link:focus-visible {
	color: var(--headline-accent);
	opacity: 1;
}

.site-footer__copy {
	grid-column: 11 / 13;
	justify-self: end;
}

.section-meta {
	margin: 0;
	color: var(--meta);
	font-size: 1rem;
	line-height: 1.4;
}

.section-title {
	margin: 0 0 clamp(2.25rem, 3vw, 3.5rem);
	font-family: "Syne", sans-serif;
	font-weight: 800;
	font-size: clamp(3rem, 5.9vw, 6rem);
	line-height: 0.95;
}

@media (max-width: 1024px) {
	.page-shell {
		padding-top: 130px;
	}
}

@media (max-width: 768px) {
	.page-shell {
		padding-top: 32px;
	}

	.content-container {
		width: min(var(--container-max), calc(100% - 2.5rem));
	}

	.section {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.header {
		height: auto;
		display: flex;
		padding: 1rem 1.25rem;
		flex-wrap: wrap;
		gap: 0.85rem 1.5rem;
	}

	.nav {
		display: flex;
		gap: 1rem;
		flex-wrap: wrap;
	}

	.nav-link:nth-child(1),
	.nav-link:nth-child(2),
	.nav-link:nth-child(3) {
		grid-column: auto;
	}

	.site-footer__bar {
		display: flex;
		padding: 0 1.25rem;
		flex-wrap: wrap;
		gap: 0.75rem 1rem;
	}

	.site-footer__copy {
		margin-left: 0;
		width: 100%;
	}
}

