@charset "UTF-8";
/* Damit auch der IE HTML5-Elemente kennt */

header,
nav,
section,
article,
aside,
footer,
hgroup 
{ 
	display: block;
}

* {
	margin: 0;
	padding: 0;
}

body {
	color: #333333;
	font-family:  Arial, Verdana, sans-serif;
	font-size: 14px;
}

h1 {
	font-size: 30px;
	line-height: 37px;
	padding-bottom: 5px;
	margin-bottom: 10px;
	margin-right: 20px;
	font-weight: 700;
	width:100%;
}

h1 span,
h1 + h2.subline {
	display: block;
	font-size: 14px;
	line-height: 22px;
	font-weight: 400;
}

h2 {
	font-size: 20px;
	line-height: 27px;
	margin-bottom:15px;
	font-weight:normal;
}

h2 span {
	display: block;
	font-size: 16px;
	line-height: 23px;
	font-weight: 400;
}

h3 {
	font-size: 16px;
	line-height: 23px;
	margin-bottom:10px;
}

a {
	text-decoration: none;
	outline:none;
}

a:hover,
a:focus,
a:active {
	text-decoration: underline;
}

a img {
	border: 0;
}

sub {
    height: 0;
    line-height: 1;
    vertical-align: baseline;
    position: relative;
    top: .5ex;
}

p {
	margin-bottom: 15px;
	line-height: 21px;
}

p small {
	font-size: 12px;
	line-height: 19px;	
}

/* XXX warum default disc für ol?! */
ul,
ol {
	margin-bottom: 19px;
	margin-left: 20px;
	list-style: disc;
	line-height: 21px;
}

ol.decimal {
	list-style: decimal;
}

hr {
	border: 0;
	border-bottom: 1px solid #666666;
	margin-bottom:20px;
}

hr.light { border-bottom: 1px solid #CCCCCC; }

.clearer { clear: both; }

.search-form .fieldcontain {
	margin-right: 5px;
	overflow: hidden;
	float: left;
}

.visible-area .search-form .fieldcontain {
	margin-right: 0;
}

.search-form .fieldcontain  label {
	display: block;
	font-size: 16px;
	line-height: 32px;
	float: left;
	padding-right: 5px;
}

.search-form input[type="text"] {
	display: block;
	float: left;
	padding: 5px 8px;
	height: 22px;
	border: 0;
	font-size: 16px;
	font-family: Arial, Verdana, sans-serif;
	color: #333;
	-webkit-border-radius: 0px;
	-moz-border-radius: 0px;
	border-radius: 0px;
}

.search-form select,
.search-form input[type="date"],
.search-form input[type="time"] {
	display: block;
	float: left;
	padding: 0 8px;
	height: 32px;
	border: 0;
	-webkit-appearance: initial;
	border-radius: 0px;
	font-size: 16px;
	font-family: Arial, Verdana, sans-serif;
	color: #333;
	-webkit-border-radius: 0px;
	-moz-border-radius: 0px;
	border-radius: 0px;
}

.search-form select {
	line-height: 18px;
	padding-left: 8px;
	padding-right: 4px;
}

/*@media screen and (min--moz-device-pixel-ratio:0) {*/
	/*.search-form select {*/
		/*padding-left: 4px;*/
		/*padding-top: 4px;*/
		/*padding-bottom: 4px;*/
	/*}*/
/*}*/

.search-form select::-ms-expand {
    display: none;
}

.search-form input[type="date"],
.search-form input[type="time"] {
	padding: 5px 8px;
	height: 22px;
}

.search-form input[type="submit"] {
	clear: both;
	display: block;
	padding: 5px 10px;
	height: 32px;
	border: 0;
	font-size: 16px;
	font-family: Arial, Verdana, sans-serif;
	text-align: center;
	color: #FFF;
	width: 100%;
	cursor: pointer;
	background-image: url('icon-search-small-5DXSjhdNIFUA9L7n3h5uYB9BJksZQqxFR1gLDPkEOCn.png');
	background-repeat: no-repeat;
	background-position: center center;
	-webkit-border-radius: 0px;
	-moz-border-radius: 0px;
	border-radius: 0px;
}

/* .search-form input[type="submit"]:hover { */
/* 	background-color: #666666; */
/* } */

.search-form input[type="submit"][disabled="disabled"],
.search-form input[type="submit"][disabled="disabled"]:hover {
	background-color: #ccc;
	cursor: default;
}

.search-form input[type="submit"].disabled,
.search-form input[type="submit"].disabled:hover {
	background-color: #ccc;
	cursor: default;
}

/* .search-form #departure-or-arrival { width: 150px; } */
.search-form #departure-or-arrival { width: 110px;padding-left:26px; }
.search-form #date, 
.search-form #startDate, 
/* .search-form #date_oepnv { width: 84px; } */
.search-form #date_oepnv { width: 84px; padding-left:26px;text-align:right }
.search-form #time,
/* .search-form #time_oepnv { width: 44px; } */
.search-form #time_oepnv { width: 62px; text-align: right; }

.wrapper-doa:before,
.wrapper-date:before,
.wrapper-time:before,
.wrapper-arrival:before,
.wrapper-departure:before {
	width:20px;
	height:20px;
	display:block;
	overflow:hidden;
	position: absolute;
	left:5px;
	top:7px;
	font-size:18px;
	color:#666;
	font-family: 'greenmobility';
	content: "\e916";
}

.wrapper-doa:before {	
	content: "\e93b";	
}

.wrapper-date:before {	
	content: "\e922";	
}

.wrapper-time:before {	
	content: "\e93a";
}

@media (max-width: 360px){
	.search-form #date, 
	.search-form #startDate, 
	.search-form #date_oepnv { width: 68px; padding-left:26px;text-align:right }
	
	.search-form #time,
	.search-form #time_oepnv { width: 83px; text-align: right; }
	
/* 	body #wrapper #search .fields-wrapper > .field-row select#departure-or-arrival  { width: 70px;padding-left:26px; } */
}
#search {
	background-color: rgba(255,255,255,0.8);
	display: block;
}

/* .mainNavOpen #search { */
/* 	left: 214px; */
/* } */

#search.ui-draggable {
	cursor: move;
}

/* Seite mit großer Karte */
.visible-area > #search {
	position: absolute;
	left: 20px;
	top: 20px;
	z-index: 3000;
}

aside #search {
	float: left;
	max-width: 356px;
	position: relative;
}
#search .search-form {
	padding: 13px 15px 15px 15px;
}

#search .fields-wrapper {
	/*padding: 13px 10px 13px 15px;*/
	width: 326px;
	margin-bottom: 10px;
}

#search .fieldcontain {
	overflow: hidden;
}

#search .fields-wrapper > .fieldcontain {
	margin-bottom: 10px;
	position: relative;
}

#search .fields-wrapper > .fieldcontain label,
#search .fields-wrapper > .field-group > .fieldcontain:first-child label {
	width: 35px;
	padding-right: 10px;
	text-align: right;
}

#search .fields-wrapper > .fieldcontain select#person-count,
#search .fields-wrapper > .fieldcontain select#room-type {
	width: 317px;
}

#search .fields-wrapper > .fieldcontain input[type="text"],
#search .fields-wrapper > .fieldcontain input[type="date"],
#search .fields-wrapper > .fieldcontain input[type="time"] {
/* 	width: 310px; */
	width: 290px;
	padding-left:26px;
}

#search .fields-wrapper > .field-row {
	overflow: hidden;
	clear: both;
}

#search .fields-wrapper > .field-group {
	overflow: hidden;
	clear: both;
}

#search .fields-wrapper > .field-row .fieldcontain,
#search .fields-wrapper > .field-group .fieldcontain {
	display: block;
	float: left;
	position:relative;
}

#search .fields-wrapper > .field-group .fieldcontain + .fieldcontain,
#search .fields-wrapper > .field-row .fieldcontain + .fieldcontain {
	margin-left: 8px;
}

#search .fields-wrapper > .field-row label {
	padding-right: 8px; 
}

#search-query {
/* 	padding: 5px 15px; */
	font-size: 16px;
	display: none;
	position: relative;
	height: 50px;
}

#search-query .search-query-left {
	width: 280px;
	position: absolute;
	left: 15px;
	top: 5px;
	bottom: 5px;
}

#search-query .search-query-right {
	width: 46px;
	position: absolute;
	right: 0;
/* 	top: -1px; keine ahnung mehr, warum das -1 war */
	top: 0px;
	bottom: 0;
}

#search-query .search-query-primary-params {
	display: block;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

#search-query .search-query-secondary-params {
	display: block;
	font-size: 14px;
	line-height: 16px;
	margin-top: 3px;
}

#search-query .wficon.search {
	position: absolute;
	right: 7px;
	top: 9px;
}

#search .search-form.loading:after,
#search #search-query.loading:after {
	content: '.';
	text-indent: -999em;
	display: block;
	background-color: #FFFFFF; /* IE 8 */
	background-color: rgba(255,255,255,0.8);
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background-image: url('ajax-loader-big-RUqKjjg0blqYq46cT6pZl3avB2GM1AWLPs1pE4vbKUr.gif');
	background-repeat: no-repeat;
	background-position: center center;
	visibility: visible;
	height: auto;
}

#search .search-form.loading span#cancel-search {
	display: block;
	bottom: 20%;
	left: 0px;
	width: 100%;
	height: 30px;
	position: absolute;
	z-index: 10;
	cursor: pointer;
	overflow: hidden;
	text-align: center;
}

table#overview-arrival tr.loading span.cancel-search {
	display: inline-block;
	width: 20px;
	height: 20px;
	cursor: pointer;
	overflow: hidden;
}

/* TODO Webfont */
table#overview-arrival tr.loading span.cancel-search:before {
	content: '\2715';
	display: inline-block;
	width: 20px;
	height: 20px;
	text-align: center;
	font-size: 20px;
	font-weight: bold;
	line-height: 20px;
}


/* TODO: Theme */
.search-form .more-options{
	text-decoration: none;
	line-height: 28px;
	font-size: 14px;
	padding-right: 17px;
	cursor:pointer;
/* 	deactivated for release without bahn */
/* 	display: none; */
}
/* .more-options .wficon { */
/* 	color:#94ba00 */
/* } */

.wrapper-doa:before,
.wrapper-date:before,
.wrapper-time:before,
.wrapper-arrival:before,
.wrapper-departure:before {
	width:20px;
	height:20px;
	display:block;
	overflow:hidden;
	position: absolute;
	left:5px;
	top:7px;
	font-size:18px;
	color:#666;
	font-family: 'greenmobility';
	content: "\e916";
}

.wrapper-doa:before {	
	content: "\e93b";	
}

.wrapper-date:before {	
	content: "\e922";
}

.wrapper-time:before {	
	content: "\e93a";
}


.train-booking-options {
	display:none;
	margin-bottom: 10px;
	height: 45px;
}

.train-options-description{
	font-size:11px;
	display:block;
}

@media (min-width: 768px) {
	.onlymobile {
		display: none !important;
	}
}

@media (max-width: 768px) { /* Tablet */
	aside #search,
	aside .maptitle {
		margin-bottom: 20px;
		width: 100%;
		float: none;
		width: 355px;
		margin: 0 auto;
		
	}
		
	.visible-area > #search {
		top: 0px;
		left: 0px;
		margin-bottom: 0px;
	}
	
	.visible-area > #search.ui-draggable {
		cursor: default;
	}

	#search .fields-wrapper {
		width: 326px;
		margin: 0 auto;
		overflow: hidden;
	}
	
	body #search .fields-wrapper .fieldcontain {
		display: block;
	}
	
	body #search .fields-wrapper > .fieldcontain input[type="text"],
	body #search .fields-wrapper > .fieldcontain input[type="date"],
	body #search .fields-wrapper > .fieldcontain input[type="time"] {
		display: block;
		float: none;
	}
	
	body #search input[type="submit"] {
		width: 326px;
		margin: 0 auto;
	}
	
	body #search .fields-wrapper > .field-row,
	body #search .fields-wrapper > .field-group {
		margin-bottom: 10px;
	}

	body .visible-area > #search {
		position: static;
	}
	
	table#overview-arrival tr.loading span.cancel-search {
		display:none;
	}
}

@media (max-width: 419px) { /* Smartphone */
	body #search {
		width: 284px;
	}

	body #search .fields-wrapper {
		width: 300px;
	}

	body #search .fields-wrapper > .fieldcontain input[type="text"],
	body #search .fields-wrapper > .fieldcontain input[type="date"],
	body #search .fields-wrapper > .fieldcontain input[type="time"] {
/* 		width: 239px; */
		width: 253px;
	}
	
	#search-nav-switch {right:45px !important;}
	
	body #search input[type="submit"] {
		width: 287px;
		margin: 0 0 0 0;
	}

	.search-form select {
		width: 143px; 
	}
	
	body #search .fields-wrapper > .field-row > .fieldcontain.select-wrapper {
		width: auto;
	}
	
	body #search .fields-wrapper > .field-row select#departure-or-arrival {
		width: 52px;
	}
}

@media (max-width: 360px) { /* Smartphone */
	body #search {
		width: 284px;
	}

	body #search .fields-wrapper {
		width: 300px;
	}

	body #search .fields-wrapper > .fieldcontain input[type="text"],
	body #search .fields-wrapper > .fieldcontain input[type="date"],
	body #search .fields-wrapper > .fieldcontain input[type="time"] {
/* 		width: 239px; */
		width: 253px;
	}
	
	#search-nav-switch {right:45px !important;}
	
	body #search input[type="submit"] {
		width: 287px;
		margin: 0 0 0 0;
	}

	.search-form select {
		width: 143px; 
	}
	
	body #search .fields-wrapper > .field-row > .fieldcontain.select-wrapper {
		width: auto;
	}
	
	body #search .fields-wrapper > .field-row select#departure-or-arrival {
		width: 44px;
	}
}

#map.map-overview {
	background-color: #e5e3df;
	height: 100%;
	width: 100%;
	border: 0;
}

.maps-infobox-content {
	overflow: hidden;
}

.maps-infobox-content .preview-image {
	float: right;
	height: auto;
	width: auto;
	max-width: 70px;
	max-height: 60px;
	margin-top: 5px;
}

.maps-infobox-content a {
	cursor: pointer;
}

.maps-infobox {
	z-index: 9999;
}
#text {
	padding: 60px 0;
}

#text .wrapper2 {
	overflow: hidden;
}

#text .module.col-9 {
	overflow: hidden;
	float: left;
	margin-bottom: 20px;
}

#text .col-9 + .col-9 + .col-9 {
	padding-top: 40px;
}

#text .module.col-4 {
	float: left;
	overflow: hidden;
} 

#text #spacer_p0,
#text #spacer_h0 {
	display: none;
}
.offer-single {
	max-width: 260px;
	padding: 0 20px;
	float: left;
	text-align: center;
}

.offer-single .image {
	margin-bottom: 10px;
}

.offer-single .image img {
	display: inline-block;
	max-width: 140px;
	max-height: 120px;
}

.offer-single a {
	text-decoration: none;
	color: #333;
}

.offer-single a:hover h3 {
	text-decoration: underline;
}

.offer-single .price {
	font-size: 18px;
	font-weight: bold;
}
#content .schedule-container > table {
	max-width: 823px;
	width: 100%;
}

/* Fehler */

.schedule-container .error {
	padding: 0 20px;
	color: #FF0000;
}

/*
 * CSS für Buttons
 *
 * Es gibt zwei definierte Arten von Fromular-Buttons:
 * - Buttons mit der Klasse "button" sind für Submit-Buttons gedacht die Formulare absenden.
 * - Buttons mit der Klasse "add-content" sind Buttons innerhalb eines Formulares die z.B. per AJAX Daten nachladen oder Bilder hochladen.
 * 
 */
a.button,input[type="submit"].button,input[type="button"].button {
	padding: 4px 7px;
	color: #FFFFFF !important;
	font-size: 14px;
	line-height: 23px;
	border: 0;
}

/* #content a.button:hover,#content input[type="submit"].button:hover,#content input[type="button"].button:hover { */
/* 	background-color: #666666; */
/* } */

a.button.small {
	font-size: 12px;
	line-height: 16px;
	padding: 2px 7px;
}

a.button {
	display: inline-block;
}

a.button+small {
	display: block;
	text-align: right;
	font-size: 11px !important;
	margin-top: -7px;
	color: #999;
}

#content a.button,#content input[type="submit"].button,#content input[type="button"].button
	{
	border: 0px;
}

input[type="submit"][disabled="disabled"].button {
	opacity: 0.5;
}

input[type="submit"].button,input[type="button"].button {
	cursor: pointer;
}

.button.button-left {
	float: left;
	margin-right: 10px;
}

.button.button-right {
	float: right;
	margin-left: 10px;
}

a.button.button-small {
	padding: 2px 6px;
}

a.button:hover {
	text-decoration: none;
}

.maps-infobox a.button.external,
#content a.button.external {
	background-image: url('external-link-kOzwDYJZ2TPQEJJXKc7QApvsWxkcf7JOvGPrcXToRv.png');
	background-repeat: no-repeat;
	background-position: 10px center;
	padding-left: 26px;
}

