

:root {
	--blau: #68a4b8;
	--schwarz: #000;
	--footer: #231f20;
	--grau: #999;
	--linie: #aaa;
	--schrift: "Trebuchet MS", Arial, Helvetica, sans-serif;
	--band: 243px;
	--logo: 233px;
}

*, *::before, *::after { box-sizing: border-box; }

html { background: #fff; }

body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-family: var(--schrift);
	font-size: 16px;
	line-height: 22px;
	color: var(--schwarz);
	background: linear-gradient(var(--blau) 0 var(--band), #fff var(--band));
}

a { color: var(--schwarz); text-decoration: underline; }
a:hover, a:focus { color: var(--grau); }

h1 {
	margin: 0 0 30px;
	font-size: 48px;
	line-height: 56px;
	font-weight: normal;
}

h2, h3 {
	margin: 0 0 20px;
	font-size: 24px;
	line-height: 28px;
	font-weight: normal;
}

h3 { font-size: 20px; line-height: 24px; margin-top: 30px; }

p, ul { margin: 0 0 20px; }

.container {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 16px;
}

/* Kopf + Inhalt
---------------------------------------------------------------*/
.site {
	flex: 1;
	display: grid;
	grid-template-columns: var(--logo) 1fr;
	grid-template-rows: var(--band) auto;
}

.logo {
	grid-row: 1 / 3;
	padding-top: 40px;
}

.logo img { display: block; width: 100%; height: auto; }

.main {
	grid-column: 2;
	grid-row: 2;
	border-left: 1px dotted var(--schwarz);
	border-top: 1px dashed var(--linie);
	padding: 60px 0 60px 50px;
	min-height: 450px;
}

.lead { font-size: 24px; line-height: 30px; }

/* Kontakt-Box im Stil der Original-Boxen */
.box {
	max-width: 390px;
	margin-top: 40px;
	border: 1px solid var(--schwarz);
}

.box h2 {
	margin: 0;
	padding: 12px;
	background: var(--schwarz);
	color: #fff;
	font-size: 21px;
	line-height: 32px;
}

.box address {
	font-style: normal;
	padding: 16px;
}

.box address p:last-child { margin: 0; }

/* Footer
---------------------------------------------------------------*/
.footer {
	background: var(--footer);
	color: #fff;
}

.footer .container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px 30px;
	padding-top: 20px;
	padding-bottom: 20px;
	padding-left: calc(16px + var(--logo));
}

.footer a { color: #fff; }
.footer a:hover, .footer a:focus { color: var(--grau); }

.footer ul {
	display: flex;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Mobile
---------------------------------------------------------------*/
@media (max-width: 900px) {
	:root { --logo: 180px; }
	.main { padding-left: 30px; }
	h1 { font-size: 36px; line-height: 42px; }
}

@media (max-width: 640px) {
	:root { --band: 150px; }

	.site {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
	}

	.logo {
		grid-row: auto;
		width: 110px;
		padding-top: 20px;
	}

	.main {
		grid-column: auto;
		grid-row: auto;
		border-left: 0;
		padding: 30px 0 40px;
		margin-top: 20px;
		min-height: 0;
	}

	h1 { font-size: 30px; line-height: 36px; }
	.lead { font-size: 20px; line-height: 26px; }

	.footer .container { padding-left: 16px; }
}
