/* - resources */
@font-face
{
	 font-family: "M+ 2p";
	 src: url('img/mplus-2p.ttf');
	 /* a big thanks to the M+ FONTS PROJECT for providing their design under the Free License */
}

/* - elements */

* {
	margin:0px;
	padding:0px;
}

body {
	position:absolute;
	top:0px;
	right:0px;
	bottom:0px;
	left:0px;
	font-family: "M+ 2p", sans-serif;
	font-size: 14px;
	color:#242424;
	background:#fff;
	text-align:left;
}

a {
	color:#C50B29;
	text-decoration:none;
	border-style:solid;
	border-width:0px 0px 1px 0px;
	border-color:#C50B29;
	transition:text-shadow 0.2s;
}

a:hover {
	text-shadow:0px 0px 1px #cacaca;
}

a * {
	border-style:none;
}

h2, h3 {
	font-weight:normal;
}

ul {
	list-style-type: square;
}

input {
	font-family: "M+ 2p";
	font-size: 1em;
}

input[type="text"], input[type="email"], input[type="tel"] {
	padding:0.5em;
	border-style:none;
	border-radius:6px;
	box-shadow: 0px 0px 3px #8d8d8d inset;
}

input[type="checkbox"], input[type="radio"] {
	margin:0.5em;
}

input[type="submit"] {
	padding:0.5em;
	border-style:none;
	border-radius:6px;
	cursor:pointer;
}

select {
	-webkit-appearance: none;
	appearance: none;
	padding: 0.5em 3em 0.5em 0.5em;
	background-image: url("img/dropdown.png");
	background-repeat: no-repeat;
	background-position: center right;
	background-size: contain;
	background-color: #fff;
	border: none;
	border-radius: 6px;
	box-shadow: 0px 0px 3px #8d8d8d inset;
	font-family: "M+ 2p";
	font-size: 1em;
}

textarea {
	padding:0.5em;
	border-style:none;
	border-radius:6px;
	box-shadow: 0px 0px 3px #8d8d8d inset;
	font-family: "M+ 2p";
	font-size: 1em;
	resize: none;
}

/* - menu */

#menu-container {
	position:fixed;
	top:0px;
	right:0px;
	left:0px;
	z-index:100;
	padding:0px 20px 0px 20px;
	background-color:rgba(255,255,255,0.9);
	box-shadow:0px 0px 10px #424242;
}

#menu-container ul {
	display:inline;
}

#menu-container li {
	display:inline-block;
	padding:0px 15px 4px 15px;
	vertical-align:bottom;
}

#menu-container li a {
	border-width:0px;
	opacity:0.6;
	transition:border-width 0.1s ease-in-out, opacity 0.2s;
}

#menu-container li:hover a {
	border-width:0px 0px 5px 0px;
	opacity:1;
	text-shadow:none;
}

/* - content */

#content-container {
	position:absolute;
	top:0px;
	left:0px;
	right:0px;
	bottom:0px;
}

.content-full-page {
	padding:3em 2em 2em 2em;
	background-color:#424242;
	color:#cacaca;
	overflow-y: auto;
}

.content-full-page h2 {
	margin:0.5em 0px 0.5em -0.5em;
	font-size:1.5em;
	color:#fff;
}

.content-full-page h3 {
	margin-top:1em;
}

.content-full-page li {
	margin-left: 2em;
}

.content-full-page .content-row-content {
	padding-left:0px;
	padding-right: 0px;
}

/* -- headers */

#header {
	position:fixed;
	top:0px;
	left:0px;
	right:0px;
	min-height:55%;
	background-repeat:no-repeat;
	background-size:cover;
	background-position:center;
}

#header-content {
	/*padding:4.5em 1.5em 1.5em 1.5em;*/
	margin-top:5%;
	color:#fff;
	text-align:center;
}

#header-content p {
	font-size:1.25em;
}

#header-padding {
	position:relative;
	z-index:-1;
	width:100%;
	min-height:55%;
}

/* --- tacos header */

div.tacos-header {
	background-image:url('img/header.jpg');
}

#logo-container {
	display:inline-block;
	width:30%;
	height:200px;
	/*border-style:dashed;
	border-color:#E16868;
	border-width:3px;
	background-color:rgba(0,0,0,0.2);*/
}

div.tacos-logo {
	width:100%;
	height:100%;
	background-color:transparent;
	border:none;
	background-repeat: no-repeat;
	background-size:contain;
	background-image: url('img/logo.png');
}

/* ---- flipboard */

div.flipboard {
	display:inline-block;
	position:relative;
	margin:0px 10px 0px 10px;
	height:40px;
	min-width:40px;
	vertical-align: middle;
	opacity:0.75;
	transition:width 950ms;
}

div.flipcard {
	position:absolute;
	top:0px;
	left:0px;
	border:1px solid black;
	height:100%;
	padding:0px 8px;
	color:#FAFAFA;
	border-radius:6px;
	background-color:#444444;
	font-weight:normal;
	font-size:40px;
	line-height:1em;
	text-shadow:0px -1px #000;
	box-shadow:0px 1px 2px rgba(0,0,0,.3), 0px 1px 0px rgba(255,255,255,.3) inset, 0px 0px 1px rgba(255,255,255,.3) inset;
	overflow:hidden;
	transition:transform 950ms, width 950ms;
}

div.flipcard-top {
	transform-origin:bottom;
	height:50%;
	border-radius:6px 6px 0px 0px;
	z-index:2;
	backface-visibility:hidden;
}

div.flipcard-back {
	line-height:0em;
	transform-origin:top;
	transform:rotateX(180deg);
	margin-top:20px;
	border-radius:0px 0px 6px 6px;
}

div.flipcard-bottom {
	height:50%;
	margin-top:20px;
	border-radius:0px 0px 6px 6px;
	border-top:none;
	line-height:0em;
	z-index:1;
}

div.flipboard-divider {
	display:inline-block;
	vertical-align:middle;
	text-shadow:0px 0px 4px #000;
}

a.registration-link {
	display: inline-block;
	margin:0.25em;
	padding:0.3em;
	font-size:1.5em;
	border:3px solid #C50B29;
	border-radius: 6px;
	background-color: rgba(255,255,255,0.95);
	box-shadow: 0px 0px 10px #000;
	color: #c50b29;
}

/* --- subpage header */

div.subpage-header #header-content {
	padding:0em 1em;
	text-align:right;
	text-shadow:0px 0px 4px #000;
}

div.subpage-header h1 {
	display: inline-block;
	border-style: solid;
	border-width: 0 0 2px 0;
	border-color: #C50B29;
	font-size:2em;
	font-weight: normal;
}

div.subpage-logo-container {
	display:inline-block;
	float:left;
	margin-top: -2em;
	height:10em;
	width:25%;
}

/* -- content rows */

#content-rows {
	position:relative;
	z-index:5;
	width:100%;
	min-height:60%;
	box-shadow:0px 0px 10px #000;
}

div.content-row {
	position:relative;
	width:100%;
	overflow:hidden;
}

div.content-row-odd {
	background-color:#f2f2f2;
}

div.content-row-odd h2 {
	text-align:left;
}

div.content-row-even {
	background-color:#fff;
}

div.content-row-even h2 {
	text-align: right;
}

div.content-row-content {
	padding:1.5em;
}

div.content-row-content h2 {
	margin-bottom:0.5em;
	font-size: 2em;
	font-weight:lighter;
	color:#C50B29;
}

div.content-row-content h2 small {
	font-size: 0.7em;
	color: #8d8d8d;
}

div.content-row-content h3 {
	margin-bottom:0.5em;
	font-size: 1.5em;
	font-weight:lighter;
}

div.content-row-split {
	text-align:center;
}

div.content-row-split div {
	display: inline-block;
	width: 45%;
}

div.content-row-split div:first-child {
	border-style: solid;
	border-color: #cacaca;
	border-width: 0px 2px 0px 0px;
}

/* --- content row : introduction */

#map-container {
	display:inline-block;
	float:right;
	position:relative;
	height: 150px;
	margin:-3em 50px 0px 50px;
	vertical-align: text-top;
	overflow: hidden;
}

img.map-overlay {
	position:relative;
	z-index: 10;
	height:100%;
	width:auto;
}

div.city-pin {
	position:absolute;
	height:7px;
	width:7px;
	background-color:#DC6666;
	border-radius:50%;
}

@keyframes mapexpand {
	0% {top:0px; left:0px;width:150px; height:150px; border-radius: 0%;background-color:transparent;}
	50% {top:0px; left:0px;width:150px; height:150px; border-radius: 0%;background-color:#DC6666;}
	100% {background-color:transparent;}
}

/* --- content row : progress */

/* ---- progress cog wheels */

div.cog-container {
	position:absolute;
	top:0px;
	bottom:0px;
	z-index:0;
}

img.cog {
	position:absolute;
	width:200px;
	height:200px;
}

.cog-clockwise {
	animation:rotateclockwise 20s linear infinite;
}

.cog-counterclockwise {
	animation:rotatecounterclockwise 20s linear infinite;
}

@keyframes rotateclockwise {
	to {transform:rotateZ(360deg);}
}

@keyframes rotatecounterclockwise {
	to {transform:rotateZ(-360deg);}
}

/* ---- schedule elements */

ul.schedule {
	display: inline-block;
	padding: 0 3em 0 0;
	margin: 0 3em 0 0;
	font-size: 1.25em;
	list-style: none;
	vertical-align: middle;
	border-style: solid;
	border-width: 0px 2px 0px 0px;
	border-color: #C50B29;
}

ul.schedule li {
	display: inline-block;
	padding:0.5em;
	width: 400px;
	border-style: solid;
	border-width: 2px;
	border-radius: 6px;
	border-color: rgba(197,11,41,0.5);
	background-color: rgba(255,255,255,0.8);
	overflow:hidden;
	text-align:left;
}

ul.schedule li span.date {
	display: inline-block;
	margin:-0.5em 0.5em -0.5em -0.5em;
	padding:0.5em 1em;
	min-width: 2em;
	border-style: solid;
	border-width: 0px 2px 0px 0px;
	border-color: rgba(197,11,41,0.5);
	border-collapse: collapse;
	vertical-align: middle;
	text-align: center;
	color: rgba(197,11,41,1);
}

ul.schedule li span.date div {
	font-size: 0.75em;
}

ul.schedule li span.slot {
	display:inline-block;
	max-width:73%;
	margin:-0.5em 0.5em -0.5em -0.8em;
	padding:0.5em 1em;
	vertical-align:middle;
	border-style: solid;
	border-width: 0px 0px 0px 2px;
	border-color: rgba(197,11,41,0.5);
	border-collapse: collapse;
}

ul.schedule-full li span.date {
	border: none;
}

.talk-container {
	display: inline-block;
	width: 40%;
	margin: 2em;
	padding: 1em;
	vertical-align: top;
	background-color: #fff;
	border-style: solid;
	border-width: 1px;
	border-color: rgba(197,11,41,0.5);
	font-size: 1.25em;
	text-align: left;
}

div.talk-container h3 {
	font-size: 1.25em;
	font-weight: bold;
}

div.talk-container h3 small {
	font-size: 1.05em;
	font-weight: normal;
}

div.talk-container h4 {
	margin-top: -0.5em;
	font-weight: normal;
	color: rgba(0,0,0,0.5);
}

div.talk-container span.talk-sponsored-badge {
	float: right;
}

.talk-title {
	color: rgba(197,11,41,1);
	font-weight: normal !important;
}

span.talk-sponsored-badge {
	display: inline-block;
	margin: 0.25em;
	padding: 0.25em 0.5em;
	background-color: rgba(197,11,41,0.7);
	color: #fff;
	border-radius: 0.75em;
}

p.talk-abstract {
	margin-top: 1em;
}

p.talk-abstract-short {
	position: relative;
	max-height: 5.5em;
	overflow-y: hidden;
}

p.talk-abstract-short::after {
	content: "mehr";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;
	z-index: 1;
	padding-top: 3.5em;
	background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
	text-align: center;
	color: rgba(197,11,41,1);
	font-weight: bold;
	cursor: pointer;
}

/* --- content row : subscription */

#form-registration-status {
	padding: 1em;
	text-align:center;
}

#form-registration-status input[type="text"] {
	width:50%;
	font-size:1.25em;
}

#form-registration-status input[type="submit"] {
	width:2.5em;
	height:2.5em;
	background-color:#DC6666;
	background-image:url("img/check.png");
	background-size:contain;
	font-size:1.25em;
	color:#fff;
	vertical-align: bottom;
	transition: background-color 0.5s;
}

#form-registration-status input[type="submit"]:hover {
	background-color:#C50B29;
}

/* --- content row : links */

div.speech-bubble {
	display:inline-block;
	position:relative;
	left:-20px;
	vertical-align: top;
	padding:1em;
	background-color: #fff;
	border:4px solid #C50B29;
	border-radius:4px;
	box-shadow: 0px 0px 10px #cacaca;
}

div.speech-bubble::before {
	content:"";
	display:block;
	position:absolute;
	left:-4px;
	width:0px;
	height:0px;
	bottom:-25px;
	border-width:25px 25px 0px 0px;
	border-style:solid;
	border-color:#C50B29 transparent;
}

div.speech-bubble::after {
	content:"";
	display:block;
	position:absolute;
	left:0px;
	width:0px;
	height:0px;
	bottom:-16px;
	border-width:17px 17px 0px 0px;
	border-style:solid;
	border-color:#fff transparent;
}

a.block-link {
	display: inline-block;
	margin:0.25em;
	padding:0.3em;
	font-size:1.5em;
	border:2px solid #C50B29;
	background-color: #fff;
	box-shadow: 0px 0px 10px #cacaca;
}

/* --- content row : sponsors */

div.content-row-sponsors a {
	color:#fff;
	border:none;
}

div.content-row-sponsors a:hover {
	text-shadow:none;
}

div.sponsor-container {
	display:inline-block;
	position:relative;
	height:7em;
	max-width:50%;
	margin:20px;
}

div.sponsor-container:hover div.sponsor-title {
	opacity:1;
}

div.sponsor-heart {
	width:200px;
	height:7em;
	vertical-align: bottom;
	background-color: transparent;
	background-image: url("img/sponsors/sponsor-heart.png");
	background-size: cover;
	text-align:center;
	cursor:pointer;
	transition: background-color 0.5s;
}

div.sponsor-heart div.sponsor-title {
	background-color: #DC6666;
}

div.sponsor-heart:hover {
	background-color:#DC6666;
}

img.sponsor-logo {
	width:auto;
	height:100%;
	background-repeat:no-repeat;
	background-size:contain;
}

div.sponsor-title {
	position:absolute;
	bottom:0px;
	left:0px;
	right:0px;
	margin-bottom:-2em;
	padding:3px;
	color:#fff;
	background-color:rgba(0,0,0,0.6);
	text-align:center;
	opacity:0;
	transition:opacity 0.3s;
}

/* -- footer */

#footer {
	background-color:#424242;
	color:#cacaca;
}

#footer a {
	color:#cacaca;
	border-style:none;
}

/* - message-boxes */


.message-box {
	position: absolute;
	top:50%;
	left:50%;
	padding:1em;
	border-radius: 6px;
	box-shadow: 0px 0px 5px #cacaca;
	transform: translate(-50%, -50%);
}

.message-box a {
	color:inherit;
	border:none;
}

.message-box-green {
	background-color:#26D87C;
	color:#fff;
}

.message-box-red {
	background-color:#C50B29;
	color:#fff;
}
