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

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-width: 320px;
	max-width: 100%;
	overflow-x: hidden;
	
	font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	line-height: 1.5;
	transition: font-size 300ms ease 0s;
	
	-ms-text-size-adjust: none;
	-moz-text-size-adjust: none;
	-o-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	background: #3498DB;
}

a, a:hover, a:active {
	outline: 0;
	color: #2980b9;
	font-weight: 600;
	text-decoration: none;
}

h2, h3 {
	font-weight: 700;
	color: #2980b9 !important;
}

input[type="submit"], .button {
	font-weight: 600;
	color: #2980b9;
}

nav ol li:hover, nav ol li.active {
	font-weight: 400;
	background: #2c3e50;
}

h1 {
	font-size: 2em;
	font-weight: 700;
	margin-bottom: 0.25em;
	line-height: 1.2em;
}

h2 {
	display: block;
	margin-bottom: 0.9375em;
	font-size: 1.6em;
}

h3 {
	font-size: 1.2em;
	margin-bottom: 0.3em;
}

h4 {
	font-size: 1em;
	font-weight: 700;
}

ul {
    margin: 0 0 1.5em 1.5em;
}

li {
    line-height: 1.5em;
}

p {
	margin-bottom: 1.5em;
	line-height: 1.5em;
}


button,
input,
optgroup,
select,
textarea {
	width: 100%;
	padding: 0.5em;
	margin-bottom: 1.5em;
	
	font-family: 'Open Sans', 'Helvetica', sans-serif;
	border: 1px solid #ccc;
	border-radius: 0;
    background-image: none;
    background-color: transparent;
    
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

input[type="submit"], .button {
	display: inline-block;
	width: auto;
	padding: 0.5em 2em;
	
	background: #ECF0F1;
	border: 0;
	font-size: 1em;
	text-decoration: inherit;
	cursor: pointer;
}

.buttonlist-1 {
	text-align: right;
}

input[type="submit"]:hover, .button:hover {
	background: #2980b9;
	color: white;
	transition: all 300ms ease 0s;
}

textarea {
	min-height: 12em;
}

.container {
	overflow: hidden;
	max-width: 960px;
	margin: 0 auto;
	padding: 0em 1em;
	transition: padding 300ms ease 0s;
	min-width: 320px;
}

p:last-child {
	margin-bottom: 0;
}

header {
	position: fixed;
	z-index: 100;
	width: 100%;
	white-space: nowrap;
	transition: all 300ms ease 0s;
	
	-ms-user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	background: #34495e;
	color: white;
}

header .container {
	display: flex;
	flex-wrap: wrap;
	border: 0;
}

header div {
	flex: 1;
	align-items: center;
}

header .logo {
	color: white;
	font-weight: 800;
	font-size: 1.4em;
	text-transform: uppercase;
	text-decoration: none;
}

nav {
	flex: 1;
	transition: max-height 300ms ease 0s;
}

nav ol {
	display: flex;
	justify-content: flex-end;
	list-style: none;
}

nav ol li a,nav ol li a:hover {
	display: block;
	padding: 1em 1.5em;
	color: inherit;
	text-decoration: inherit;
	text-align: center;
	cursor: pointer;
	transition: all 300ms ease 0s;
}

nav a[href="impressum.html"] {
	display: none;
}

header .hamburger {
	padding: 0.25em;
	opacity: 0;
	font-size: 2.3em;
	cursor: pointer;
}

main {
	margin-top: 3.5em;
	flex: 1;
}

main .container {
	padding: 4.5em 1em;
}

footer, section:nth-child(2n) {
  background: #ecf0f1;
}
section {
  background: white;
}

footer .container {
	padding: 1.5em 1em;
	border-bottom: 0 none;
}

footer a {
	color: inherit;
	float: right;
	white-space: nowrap;
}

.flexfooter {
	display: none;
	position: fixed;
	bottom: 0;
	width: 100%;
	margin: 0;
	list-style: none;
	background: #34495e;
	color: white;
}

.flexfooter li {
	flex: 1;
}

.flexfooter li span {
	display: block;
	width: 100%;
	line-height: 1em;
	margin-bottom: 0.15em;
}

.flexfooter li span:last-child {
    font-size: 0.9em;
    font-weight: 300;
}

.flexfooter a {
	display: flex;
	flex-direction: column;
	padding: 0.4em;
	color: inherit;
	text-decoration: none;
	text-align: center;
}

.flexfooter i {
	font-size: 1.5em;
}

.mainheader {
	text-align: center;
	background: #3498db;
	color: white;
}

.mainheader .container {
	min-height: 300px;
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	border: 0;
}

.mainheader h1 {
	flex: 1 0 100%;
	color: inherit;
}

.mainheader p {
	flex: 1 1 100%;
	font-size: 1.2em;
	color: inherit;
}

.flex-box {
	display: flex;
	margin: 1em 0;
	flex-wrap: wrap;
}

.flex-container {
	flex: 1 1 auto;
	height: 80px;
	display: inline;
	text-align: center;
	background: white;
	padding: 0.5em;
}

.flex-container img {
	height: 100%;
}

.flex .container {
	display: flex;
	flex-wrap: wrap;
	padding-bottom: 1.5em;
	padding-right: 0;
}

.flex article {
	flex: 1 1 275px;
	margin: 0 2em 3em 0;
}


.publications li {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5em;
}


.publications .prize {
	color: #27ae60;
}

.publications .details {
	color: #666;
	font-style: italic;
}

.cv li:LAST-CHILD, .publications li:LAST-CHILD {
    margin-bottom: 0;
}

.cv h3 {
	margin-left: 10em;
	margin-bottom: 1.25em;
}

.cv ul, .publications ul {
	margin: 0;
}

.projects h2 {
	text-align: center;
}

.projects h3 {
    margin-top: 3em;
}

.cv li {
    display: flex;
    margin-bottom: 1.5em;
    flex-wrap: wrap;
}



.cv .left {
	flex: 0 1 12em;
	text-align: right;
	padding-right: 1.5em;
}

.cv .right {
    flex: 1 1 440px;
}

.cv span span {
    width: 100%;
    display: block;
}

.cv .company, .cv .title {
	font-weight: 600;
}

.cv .details {
    color: #666;
    font-size: 0.9em;
    font-style: italic;
}

.impressum > .container > p {
    margin-top: 0;
}


@media only screen and (max-width: 1920px)  {
	
	
}


@media only screen and (max-width: 1000px)  {
	
	header nav, header.opened .logo {
		color: white;
	}
	
	header.opened {
		color: white;
		background: #2c3e50;
	}
	
	body>* {
		transition: filter 300ms ease;
	}
	
	header.opened+*, header.opened+*+*+* {
		filter: blur(5px);
	}
	
	header .hamburger {
		opacity: 1;
		transition: opacity 800ms ease 0s;
	}
	
	nav {
		max-height: 0;
		flex: 1 1 100%;
		overflow: hidden;
	}
	
	nav ol {
		flex-direction: column;
		padding: 1em 0;
	}
	
	nav ol li:hover, nav ol li.active {
		color: inherit;
		border-bottom: 0 none;
	}
	
	nav a[href="impressum.html"] {
		display: block;
	}
	
	main .container {
	    padding: 3em 1em;
	}
	
	.opened nav {
		max-height: 20em;
	}
	
	.flexfooter + footer {
		margin-bottom: 3.4em;
	}
	
	.flexfooter {
		display: flex;
	}
	
	.flex article {
		margin-bottom: 2em;
	}
	
	.flex .container {
	    padding-bottom: 1em;
	}
	
	.cv h3 {
	    margin-left: 0;
	}
	
	.cv .left {
   		text-align: left;
   		flex: 0 0 100%;
		padding-right: 2em;
		order: 1;
	}
	
	.cv span span {
		display: inline;
	}
	
	.cv .description {
	    display: block;
	}
	
	.cv .right span {
	   	padding-bottom: 0.15em;
	}
	
	
	.cv .left span {
	   	font-weight: normal;
	   	color: #666;
		font-style: italic;
	}
	
	.cv .left span:not(:last-child)::after {
		content: ',';
	}
	
}


@media only screen and (max-width: 480px)  {
	
	footer {
		text-align: center;
	}
	
	footer a {
		float: none;
	}
	
	.buttonlist-1 {
		text-align: center;
	}
	
	.flex article {
	    margin-right: 1em;
	}
	
}


/* pca http://purecssapple.com */

.pca-flex {
    display: flex;
    flex-wrap: wrap;
    /* overflow: hidden; */
    justify-content: space-around;
    width: 100%;
}

.pca-hold .pca-inner img {
	width: 100%;
}



.pca-hold {
  width: 340px;
  margin: 1.5em 0;
}
.pca-hold .pca-main {
  display: block;
  position: relative;
  background-color: #c8c8c8;
  height: 204px;
  border: 12.24px solid #2d2d2d;
  border-top-left-radius: 8.16px;
  border-top-right-radius: 8.16px;
}
.pca-hold .pca-main:after {
  content: '';
  position: absolute;
  top: -9.82px;
  left: 50%;
  -webkit-transform: translate(-50%,0);
  -ms-transform: translate(-50%,0);
  -o-transform: translate(-50%,0);
  transform: translate(-50%,0);
  width: 6.46px;
  height: 6.46px;
  background-color: #959595;
  border-radius: 100%;
}
.pca-hold .pca-main:before {
  content: '';
  opacity: 0;
}
.pca-hold .pca-inner {
  display: block;
}
.pca-hold .pca-sub {
  display: block;
  text-align: center;
}
.pca-hold .pca-sub .pca-top {
  position: relative;
  display: block;
  width: 340px;
  height: 27.2px;
  background-color: #e8e8e8;
  border-bottom-left-radius: 8.16px;
  border-bottom-right-radius: 8.16px;
  opacity: 1;
  z-index: 2;
}
.pca-hold .pca-sub .pca-top:after {
  content: '';
  position: absolute;
  width: 13.6px;
  height: 13.6px;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%,-50%);
  -ms-transform: translate(-50%,-50%);
  -o-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzAuMyIgaGVpZ2h0PSIxNjAiIHZpZXdCb3g9IjE5IDUgMTMwLjMgMTYwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDE5IDUgMTMwLjMgMTYwIj48dGl0bGU+TGF5ZXIgMTwvdGl0bGU+PHBhdGggZD0iTTEyNy44IDkwYy4yIDI0LjIgMjEuMiAzMi4zIDIxLjUgMzIuNC0uMi42LTMuNCAxMS41LTExLjEgMjIuOC02LjcgOS43LTEzLjYgMTkuNS0yNC41IDE5LjctMTAuNy4yLTE0LjItNi40LTI2LjQtNi40cy0xNi4xIDYuMi0yNi4yIDYuNmMtMTAuNS40LTE4LjUtMTAuNS0yNS4zLTIwLjMtMTMuNy0xOS45LTI0LjItNTYuMS0xMC4xLTgwLjYgNy0xMi4yIDE5LjUtMTkuOSAzMy4xLTIwLjEgMTAuMy0uMiAyMC4xIDcgMjYuNCA3IDYuMyAwIDE4LjItOC42IDMwLjYtNy4zIDUuMi4yIDE5LjkgMi4xIDI5LjMgMTUuOS0uOC4zLTE3LjUgMTAuMS0xNy4zIDMwLjNtLTIwLjEtNTkuNWM1LjYtNi44IDkuMy0xNi4yIDguMy0yNS41LTguMS4zLTE3LjggNS40LTIzLjYgMTIuMS01LjIgNi05LjcgMTUuNi04LjUgMjQuNyA5IC44IDE4LjItNC41IDIzLjgtMTEuMyIvPjwvc3ZnPg==);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
}
.pca-hold .pca-sub .pca-mid {
  display: block;
  text-align: center;
  height: 27.2px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.pca-hold .pca-sub .pca-mid .pca-part {
  display: block;
  margin: 0 auto;
  border-bottom: 34px solid #cdcdcd;
  border-left: 17px solid transparent;
  border-right: 17px solid transparent;
  height: 0;
  width: 102px;
}
.pca-hold .pca-sub .pca-bot {
  position: relative;
  display: block;
  width: 136px;
  height: 10.2px;
  margin: 0 auto;
  background-color: #e8e8e8;
  border-radius: 6.8px 6.8px 0 0;
  opacity: 1;
  z-index: 2;
}
