/*
 * -----------------------------------
 * Copyright
 * COM.POSiTUM Multimedia-Agentur GmbH
 * -----------------------------------
 */

/* ------------------------------------
 *  FONTS
 * ------------------------------------
 */

@font-face {
	font-family: "Roboto";
	src: url("../fonts/Roboto-VariableFont_wdth,wght.ttf") format("truetype");
	font-weight: 100 900;
	font-stretch: 75% 125%;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Roboto";
	src: url("../fonts/Roboto-Italic-VariableFont_wdth,wght.ttf") format("truetype");
	font-weight: 100 900;
	font-stretch: 75% 125%;
	font-style: italic;
	font-display: swap;
}

/* ------------------------------------
*  BASICS
* ------------------------------------
*/

:root {
	--dark: #3E7378;
	--orange: #F0811E;
	--white: #FFFFFF;
	--light: #8BA9B8;
	--black: #2B414B;

	--site: 5vw;
	--gap: 2vmin;
}

* {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	border: 0 none;
}

html,
body {
	height: 100%;
	font-family: 'Roboto', sans-serif;
}

html {
	font-size: 10px;
	/* 62.5% = 10px = 1rem */
	background-color: var(--white);
}

body {
	font-size: 1.8rem;
	color: var(--black);
	line-height: 1.2;
	min-height: 100vh;
	display: flex;
	align-items: stretch;
	flex-direction: column;
}

main {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

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

a {
	color: inherit;
	text-decoration: none;
}

.content {
	padding: var(--site);
}

/* p {
	line-height: 1.8;
} */

/* table {
	border-collapse: collapse;
}

table td {
	min-width: 8rem;
	padding: 0.2rem 0;
} */

/* ------------------------------------
*  TYPOGRAPHY
* ------------------------------------
*/
h1,
h2,
h3 {
	margin: 0;
	font-size: 2.5rem;
	color: var(--black);
}

h4,
h5,
h6 {
	margin: 0;
	font-size: 2rem;
	color: var(--black);
}

h1 {
	background-color: var(--black);
	padding: 1rem var(--gap);
	position: relative;
	transition: all .5s ease;
	color: var(--white);
}

.h1 {
	margin-bottom: 5em;
	margin-left: calc(0px - var(--site));
	margin-right: calc(var(--site) * 2);
	padding: 2rem var(--gap) 2rem var(--site);
}

.nomargin {
	margin-bottom: 0;
	margin-top: 0;
}

.h1:before,
.h1:after {
	content: '';
	left: 0;
	height: 100%;
	width: calc(100% + var(--site) * 2);
	display: block;
	background: inherit;
	position: absolute;
	transition: all .5s ease;
}

.h1:before {
	top: calc(var(--gap) * 2);
	transform: translateY(100%);
}

.h1:after {
	bottom: calc(var(--gap) * 2);
	transform: translateY(-100%);
}

.h1 img,
.h1 svg {
	display: block;
}

.text h3,
img+p {
	font-size: 2.5rem;
	margin: .5em 0;
}

p {
	/* margin: 2.4rem 0; */
}

p~h1,
p~h2,
p~h3 {
	margin-top: 2em;
}

p~h4,
p~h5,
p~h6 {
	/* margin-top: .5em; */
	margin-bottom: -0.25em;
}

/* ------------------------------------
*  SCELETON
* ------------------------------------
*/

.content-wrapper {
	margin: 0 auto;
	min-height: 100%;
	width: 100%;
}


/* ------------------------------------
*  NAVIGATION
* ------------------------------------
*/

nav ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
}


/* ------------------------------------
*  BUTTONS
* ------------------------------------
*/

button {
	cursor: pointer;
	font: inherit;
}

/* ------------------------------------
*  FOOTER
* ------------------------------------
*/
footer {
	z-index: 3;
	position: absolute;
	bottom: 0;
	position: sticky;
	background: var(--black);
	color: var(--white);
	padding: var(--gap) var(--site);
	width: 100%;
	font-size: 2rem;
}

footer {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

footer img {
	height: 2em;
	max-height: 2em;
	width: auto;
}


/*************************/

.akkordion {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	align-items: stretch;
	height: 100%;
	min-height: 100%;
	width: 100%;
	max-width: 100%;
	transition: all .5s ease;
	overflow: hidden;
}

section {
	flex-shrink: 1;
	display: flex;
	align-items: stretch;
	transition: all .5s ease;
	background-color: var(--white);
	position: relative;
}



@media screen and (min-width: 769px) {


	.h1 img,
	.h1 svg {
		height: 5vmax;
		max-height: 7.5rem;
		min-height: 4rem;
		width: auto;
	}

	section {
		width: 8.5rem;
		width: var(--width, 0px);
	}

	section>button {
		writing-mode: sideways-lr;
	}

	section>button * {
		max-height: 100vh;
		margin-bottom: auto;
		margin: 0 0 auto 0;
	}

	.content {
		width: calc(100vw - var(--size, 255px));
	}

	section.active,
	section:only-child {
		width: calc(100% - var(--size, 225px));
		margin-right: auto;
	}

	.hover,
	.h1~.text {
		opacity: 0;
		transition: all 1s ease;
	}
	.h1~.text {
		width: calc(30% - var(--site));
	}

	.h1:hover {
		margin-right: 0px;
		padding-left: calc(var(--site) * 3);
	}

	.h1:hover:before,
	.h1:hover:after {
		width: 100%;
	}
}

section.active,
section:only-child {
	flex-grow: 1;
}

section>button {
	font-size: calc(var(--gap) * 2);
	padding: var(--gap);
	background-color: var(--primary, var(--black));
	color: var(--white);
	text-transform: uppercase;
	font-weight: 700;
}

section>button * {
	color: inherit;
	font: inherit;
}

.content {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--site);
	align-items: flex-end;
	height: auto;
	margin: auto;
	transition: all .5s ease;
	flex-shrink: 0;
	pointer-events: all;
	overflow: visible;

	overflow: auto;
	padding: 5rem var(--site);
	max-height: calc(100vh - 8rem);
}

#content_0 {
	overflow: visible;
}

section:first-child .content {
	align-items: flex-start;
}


.hover:hover,
.hover:focus,
.hover:focus-within,
h1~.text:hover,
h1~.text:focus,
h1~.text:focus-within,
.h1:hover~.text {
	opacity: 1;
}

.content[aria-hidden="true"] {
	pointer-events: none
}

.text {
	display: flex;
	flex-direction: column;
	gap: 1em;
	width: calc(50% - var(--site));
	flex-grow: 1;
	min-width: 30rem;
	max-width: 90rem;
}

.text ul {
	margin-left: 1em;
	list-style: '– ';

}

button,
.button {
	background-color: var(--black);
	color: var(--white);
	font-weight: 700;
	padding: .5em 1em;
	width: fit-content;
	transition: all .3s ease;
	outline-offset: -3px;
}

button:hover,
.button:hover {
	opacity: .8;
}


@media screen and (max-width: 768px) {

	:root {
		--gap: 2rem;
	}

	h3 br {
		display: none;
	}

	section>button {
		font-size: var(--gap);
	}

	body {
		font-size: 1.5rem;
	}

	.akkordion {
		flex-direction: column;
		min-height: 100vh;
	}

	section>button {
		writing-mode: initial;
		transform: none;
		width: 100%;
	}

	section,
	footer {
		flex-direction: column;
	}

	footer {
		row-gap: 1em;
	}

	.text {
		min-width: 0;
		width: 100%;
	}

	h1 {
		margin-top: 4em;
		margin-bottom: 4em;
	}

	.h1:before {
		top: var(--gap);
	}

	.h1:after {
		bottom: var(--gap);
	}

	.content {
		max-height: none;
	}
}




/* Wackel Animation Startseite */


#movement {
  animation-name: subtle-shake;
  animation-duration: 5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
  animation-direction: alternate;
}

@keyframes subtle-shake {
  75%   { transform: translateX(0); }
  100%  { transform: translateX(-1.5rem); }
}

#movement:hover {
  animation-play-state: paused;
}

.text ol {
	margin-left: 1em;
}


main p a:hover {
	text-decoration: underline;
}