/**
 * Definiere den Font montserrat
 * für die Benutzung in Überschriften
 *
 * @version: 7.222
 * @web: https://github.com/JulietaUla/Montserrat
 * @licence: SIL Open Font License 1.1
 */
/** Montserrat Light !!!!! **/
@font-face {
	font-family: "Montserrat";
	font-weight: 300;
	font-style: normal;
	src: url("fonts/Montserrat-Light.woff2") format("woff2");
}

/** Montserrat Light-Italic **/
@font-face {
	font-family: "Montserrat";
	font-weight: 300;
	font-style: italic;
	src: url("fonts/Montserrat-LightItalic.woff2") format("woff2");
}

/** Montserrat Regular !!!!! **/
@font-face {
	font-family: "Montserrat";
	font-weight: 400;
	font-style: normal;
	src: url("fonts/Montserrat-Regular.woff2") format("woff2");
}

/** Montserrat Regular-Italic **/
@font-face {
	font-family: "Montserrat";
	font-weight: 400;
	font-style: italic;
	src: url("fonts/Montserrat-Italic.woff2") format("woff2");
}

/** Montserrat Medium !!!!! **/
@font-face {
	font-family: "Montserrat";
	font-weight: 500;
	font-style: normal;
	src: url("fonts/Montserrat-Medium.woff2") format("woff2");
}

/** Montserrat Medium-Italic **/
@font-face {
	font-family: "Montserrat";
	font-weight: 500;
	font-style: italic;
	src: url("fonts/Montserrat-MediumItalic.woff2") format("woff2");
}

/** Montserrat Bold **/
@font-face {
	font-family: "Montserrat";
	font-weight: 700;
	font-style: normal;
	src: url("fonts/Montserrat-Bold.woff2") format("woff2");
}

/** Montserrat Bold-Italic **/
@font-face {
	font-family: "Montserrat";
	font-weight: 700;
	font-style: italic;
	src: url("Montserrat-BoldItalic.woff2") format("woff2");
}

/** Montserrat ExtraBold **/
@font-face {
	font-family: "Montserrat";
	font-weight: 800;
	font-style: normal;
	src: url("fonts/Montserrat-ExtraBold.woff2") format("woff2");
}

:root {
	color-scheme: light dark;
	--page-text-colour: #131432;
	--page-background: #fff;
	--nav-link-colour: #181d42;
	--nav-focus-colour: #d80400;
	--nav-active-colour: #cabc00;
	--main-link-link-colour: #202548;
	--main-link-focus-colour: #d80400;
	--main-link-active-colour: #cabc00;
	--link-target-colour: #000868;
	--main-border-colour: #f0f2f4;
	--card-inner-border-colour: #c80f4f;
	--image-background: transparent;
	--logo-planet: #c81446;
	--logo-letters: #131432;
	--icons-main-colour: hsl(234 53.1% 53.1%);
	--icons-secondary-colour: #fff;
	--icon-pdf-file-contour: #667782;
	--icon-file-type-face: #800;
}

@media (prefers-color-scheme: dark) {
	:root {
		--page-text-colour: #f8f8f8;
		--page-background: #131432;
		--nav-link-colour: #d3d4f2;
		--nav-focus-colour: #ff2f22;
		--nav-active-colour: #dfe000;
		--main-link-link-colour: #cdd0ed;
		--main-link-focus-colour: #ff2f22;
		--main-link-active-colour: #dfe000;
		--link-target-colour: #000868;
		--main-border-colour: #3c3f5d;
		--card-inner-border-colour: #d61858;
		--image-background: #f8f8f8;
		--logo-planet: #c81446;
		--logo-letters: #f8f8f8;
		--icons-main-colour: hsl(234 51.1% 63.1%);
		--icons-secondary-colour: #fff;
		--icon-pdf-file-contour: #6c7c84;
		--icon-file-type-face: #8f0402;
	}
}

/**
 * lege das Boxmodell so fest,
 * dass Außenabstände (margin)
 * nicht in die Elementbreite
 * einberechnet werden.
 */
*, :before, :after {
	box-sizing: border-box;
}

/**
 * formatiere das Dokument an sich
 */
html, body {
	margin: 0;
	padding: 0;
	font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 1em;
	font-size: 1rem;
	line-height: 150%;
	color: var(--page-text-colour);
	text-align: start;
	background-color: var(--page-background);
}

/**
 * formatiere body als Flexbox,
 * um main auch bei wenig Inhalt
 * auf die Gesamthöhe des Viewports
 * abzüglich der Höhen der Elemente
 * header und footer auszudehnen
 */
body {
	margin: 0 auto;
	padding: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	max-width: 64em;
}

/**
 * reguliere die Abstände der direkten
 * Kindelemente von body untereinander
 */
body > * {
	margin: 0 0 1em 0;
	padding: 0 0.5em;
}
/**
 * hebe die zuvor definierten Abstände
 * der direkten Kindelemente von body
 * für das letzte betroffene Element auf
 */
body > *:last-child {
	margin-bottom: 0;
}

/**
 * formatiere das Firmenlogo
 * im Dokumentenkopf
 */
#header-logo {
	margin: 0;
	padding: 0.5em 0;
}
#header-logo a,
#header-logo svg {
	display: block;
}
#header-logo svg {
	width: 100%;
}

/**
 * formatiere die Linklisten der
 * Navigation im Dokumentenkopf und -fuß
 */
body > header nav ul,
body > footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 500;
}
body > header nav {
	padding: 0.5em 0 0 0;
}
nav a,
body > footer a {
	text-decoration: none;
	color: var(--nav-link-colour);
	font-variant: small-caps;
}
nav a:focus,
nav a:hover,
body > footer a:focus,
body > footer a:hover {
	text-decoration: underline;
	color: var(--nav-focus-colour);
	outline: none;
}
nav a:active,
body > footer a:active {
	text-decoration: underline;
	color: var(--nav-active-colour);
	outline: none;
}

body > footer {
	padding-block: 0.5em;
	padding-inline: 0.5em;
	border-block-start: round(0.15em, 1px) dotted var(--main-border-colour);
}

/**
 * flex: 1; sorgt für die Dehnung
 * von main über die gesamte verfügbare
 * Höhe des Viewports, siehe auch: body
 */
main {
	display: block;
	flex: 1;
}

/**
 * Regeln für Links im Hauptbereich
 */
main a {
	color: var(--main-link-link-colour);
	text-decoration: underline 0.1em dotted;
}
main a:is(:focus, :hover) {
	color: var(--main-link-focus-colour);
	text-decoration-style: solid;
}
main a:active {
	color: var(--main-link-active-colour);
	text-decoration-style: solid;
}

/**
 * Wende spezielle Regeln für die Seiten-
 * hauptüberschriften an, wenn sie in
 * Haupt- und Untertitel gegliedert sind
 */
h1 {
	font-weight: 800;
	font-size: 1rem;
	color: #fff;
	-webkit-text-fill-color: #f8f8f8;
	-webkit-text-stroke: 0.0666em black;
	margin: 0;
	max-width: 90%;
}

h1 span {
	display: block;
}
h1 .title-main {
	font-size: 2.75em;
	font-size: 3em;
	line-height: 100%;
}
h1 .title-sub {
	font-size: 1.333em;
	line-height: 100%;
}

/**
 * Lege die Regeln für die Überschriften
 * zweiter und dritter Ordnung fest
 * weitere Ebenen werden nicht verwendet
 */
h2,
h3 {
	font-weight: 700;
	/*
	text-decoration-line: underline;
	text-decoration-color: #c80f4f;
	text-decoration-style: solid;
	text-decoration-thickness: 0.2em;
	*/
}
section {
	margin-block: 1.5em 0;
}
:target > * {
	color: var(--link-target-colour);
}

h2 {
	font-size: 1.25em;
}
h3 {
	font-size: 1em;
}
section[id] h2 {
	padding-block: 0.75em 1.5em;
	margin-block: 0 1em;
	margin-block: 0 1rem;
	display: flex;
	align-items: center;
	gap: 0.375em;
}
section[id] h2 svg.icon {
	width: 1.5em;
	height: auto;
}

/**
 * Formatiere normale Textelemente
 */
p,
main li,
th,
td,
dd,
dt {
	font-size: 1.1em;
}
strong {
	font-weight: 700;
}
em {
	font-style: italic;
}

/**
 * Von der konkreten Seite abhängige Titelbilder
 */
main header {
	height: 17.5em;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
	display: flex;
	justify-content: center;
	align-items: center;
 }

#compliance header {
	background-color: #cea27e;
}

#datenschutzerklaerung header {
	background-color: #dcbfac;
}

#faq header {
	background-color: #c5b5d7;
}

#impressum header {
	background-color: #ac72ac;
}

#karriere header {
	background-color: #b39c87;
	background-image: url("grafik/header-karriere-860.jpg");
	background-image: -webkit-image-set(
		url("grafik/header-karriere-860.webp") type("image/webp") 1x,
		url("grafik/header-karriere-1413.webp") type("image/webp") 2x,
		url("grafik/header-karriere-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-karriere-1413.jpg") type("image/jpeg") 2x
	);
	background-image: image-set(
		url("grafik/header-karriere-860.webp") type("image/webp") 1x,
		url("grafik/header-karriere-1413.webp") type("image/webp") 2x,
		url("grafik/header-karriere-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-karriere-1413.jpg") type("image/jpeg") 2x
	);
	background-position: center -32px;
}
#leistungen header {
	background-color: #c1c5c9;
	background-image: url("grafik/header-leistungen-860.jpg");
	background-image: -webkit-image-set(
		url("grafik/header-leistungen-860.webp") type("image/webp") type("image/webp") 1x,
		url("grafik/header-leistungen-1417.webp") type("image/webp") type("image/webp") 2x,
		url("grafik/header-leistungen-860.jpg") type("image/webp") type("image/jpeg") 1x,
		url("grafik/header-leistungen-1417.jpg") type("image/webp") type("image/jpeg") 2x
	);
	background-image: image-set(
		url("grafik/header-leistungen-860.webp") type("image/webp") type("image/webp") 1x,
		url("grafik/header-leistungen-1417.webp") type("image/webp") type("image/webp") 2x,
		url("grafik/header-leistungen-860.jpg") type("image/webp") type("image/jpeg") 1x,
		url("grafik/header-leistungen-1417.jpg") type("image/webp") type("image/jpeg") 2x
	);
	background-position: center top;
}
#referenzen header {
	background-color: #bdc7ca;
	background-image: url("grafik/header-referenzen-860.jpg");
	background-image: -webkit-image-set(
		url("grafik/header-referenzen-860.webp") type("image/webp") 1x,
		url("grafik/header-referenzen-1413.webp") type("image/webp") 2x,
		url("grafik/header-referenzen-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-referenzen-1413.jpg") type("image/jpeg") 2x
	);
	background-image: image-set(
		url("grafik/header-referenzen-860.webp") type("image/webp") 1x,
		url("grafik/header-referenzen-1413.webp") type("image/webp") 2x,
		url("grafik/header-referenzen-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-referenzen-1413.jpg") type("image/jpeg") 2x
	);
}
#service header {
	background-color: #c8c4c3;
	background-image: url("grafik/header-service-860.jpg");
	background-image: -webkit-image-set(
		url("grafik/header-service-860.webp") type("image/webp") 1x,
		url("grafik/header-service-1415.webp") type("image/webp") 2x,
		url("grafik/header-service-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-service-1415.jpg") type("image/jpeg") 2x
	);
	background-image: image-set(
		url("grafik/header-service-860.webp") type("image/webp") 1x,
		url("grafik/header-service-1415.webp") type("image/webp") 2x,
		url("grafik/header-service-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-service-1415.jpg") type("image/jpeg") 2x
	);
}
#vorstellung header {
	background-color: #6888ba;
	background-image: url("grafik/header-vorstellung-860.jpg");
	background-image: -webkit-image-set(
		url("grafik/header-vorstellung-860.webp") type("image/webp") 1x,
		url("grafik/header-vorstellung-1372.webp") type("image/webp") 2x,
		url("grafik/header-vorstellung-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-vorstellung-1372.jpg") type("image/jpeg") 2x
	);
	background-image: image-set(
		url("grafik/header-vorstellung-860.webp") type("image/webp") 1x,
		url("grafik/header-vorstellung-1372.webp") type("image/webp") 2x,
		url("grafik/header-vorstellung-860.jpg") type("image/jpeg") 1x,
		url("grafik/header-vorstellung-1372.jpg") type("image/jpeg") 2x
	);
}

/**
 * hide certain elements from being displayed
 * but do not remove them from the DOM
 * like it is done i.e. with display: none
 */
.visually-hidden,
.sr-only:not(:focus):not(:active) {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap; 
	width: 1px;
}

/**
 * Block Zusatzinfos mit Infografiken auf der Startseite
 */
#zusatzinfos ul {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
}
#zusatzinfos img {
	display: block;
	background-color: var(--image-background);
}

/**
 * Formatiere die Downloadbar
 * auf der Compliance-Seite
 */
#downloadbar {
	display: grid;
	gap: 1em 2em;
	grid-template-columns: repeat(auto-fill, minmax(20em, 1fr));
}
#downloadbar > * {
	text-align: center;
}
#downloadbar a {
	display: block;
}
#downloadbar a:is(:focus, :hover) {
	background: #e8e8f8;
}


/**
 * Formatiere Infoblöcke, die als Card
 * angezeigt werden sollen
 */
dl.cards {
	display: grid;
	grid-gap: 0.5em;
	grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
}
.cards > div {
	border: 1px solid var(--main-border-colour);
	border-radius: 0.5em;
	margin-bottom: 1em;
	padding: 0.25em 0.5em;
	text-align: center;
	/*box-shadow: ;*/
}
.cards > div > * {
	display: block;
	height: auto;
	line-height: 1.35em;
}
.cards > div dt {
	margin: 0 0 0.5em 0;
	padding: 0 0 0.25em;
	border-bottom: 0.2em solid var(--card-inner-border-colour);
	font-weight: 700;
}
.cards > div dd {
	margin: 0;
	font-size: 2.5em;
	font-weight: 800;
}


@media (min-width: 36em) {
	#header-logo a {
		width: calc(36em - 0.5em - 0.5em);
	}
	body > header nav ul,
	body > footer ul {
		display: flex;
		gap: 0.5em;
		flex-wrap: wrap;
		font-size: 1.1em;
	}
	main header {
		height: 22em;
	}
	h1 {
		-webkit-text-stroke: 1.25px black;
	}
	h1 .title-main {
		font-size: 4em;
		line-height: 105%;
	}
	h1 .title-sub {
		font-size: 1.75em;
	}
	#zusatzinfos ul {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}
}

@media (min-width: 48em) {
	h1 {
		-webkit-text-stroke: 2px black;
		max-width: 80%;
	}
	main header {
		height: 27em;
	}
	h1 .title-main {
		font-size: 7.25em;
		line-height: 105%;
	}
	h1 .title-sub {
		font-size: 3.5em;
	}
	body > footer ul {
		justify-content: flex-end;
	}
	body > footer ul li:first-child {
		flex: 1 1 auto;
	}
}
