@charset "UTF-8";
/* Global Reset */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{
border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;margin:0;padding:0;outline:0;vertical-align:baseline}:focus {outline:0}body{line-height:1;color:black;background:white}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0}caption,th,td{text-align:left;font-weight:normal}blockquote:before,blockquote:after,q:before,q:after{content:""}blockquote,q{quotes:"»" "«"}html{font-size:100.01%}body{font-size:1em}
/* Clearfix... */ .cf:after{content:".";display:block;height:0;clear:both;visibility:hidden}.cf{display:inline-block}.cf{display:block}
/* image interpolation on IEs */ img { -ms-interpolation-mode: bicubic; }
/* Basics */ html{position:relative;width:100%;height:100%;overflow-y:scroll}strong{font-weight:bold}em{font-style:italic}.invisible,.hidden_navi{position:absolute;left:-1000em;width:20em}.printonly{display:none}.inactive{opacity:.2;-moz-opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";filter:alpha(opacity=20)}

/* Font-Faces */

/* Links */
a{text-decoration:none;color:#881512;}
a:hover,a:focus{color:#FA0A14}

/* Abbriviations */
abbr{color:#FA0A14;cursor:help}abbr:hover{border-bottom:1px solid #881512;color:#881512}

body {
  position: absolute;
  width: 100%; height: 100%;
  background: #e2e2e2;
  font-family: Helvetica, Arial, sans-serif;
  color: #333;
  font-size: 0.625em;
  line-height: 1.6em;
}
h1,h2,h3,h4,h5,h6 {
  font-family: 'Lucida Grande', 'Lucida Sans', Helvetica, Arial, sans-serif;
  font-weight: normal;
}

a.btn {
  display: inline;
  display:-moz-inline-stack;
  display:inline-block;
  zoom:1;
  *display:inline;
  background: #7D7D7D;
  color: #fff;
  padding: .25em 1em;
}
a.btn:hover, a.btn:focus {
  background-color: #881512;
}

#header {
  position: absolute;
  top: 0; left: 50%;
  margin-left: -32em;
  width: 76em; height: 8em;
  padding: 1em 1em 1em 3em;
  border-bottom: 1em solid #eee;
  background: #881512;
  z-index: 20;
}
#header h1 {
  font-weight: bold;
  font-size: 3.4em;
  line-height: 1.1em;
  font-weight: normal;
  color: #fff;

  font-family: 'Lucida Grande', 'Lucida Sans', Helvetica, Arial, sans-serif;
  font-weight: normal;
}

#header h1 a {
  color: #fff;
  font-weight: bold;
}
#header h1 strong {
  display: block;
}
#header h1 .location {
  font-weight: normal;
  font-size: .75em;
  text-transform: uppercase;
}
#header h1 .tarifzone {
  font-weight: normal;
  font-size: .5em;
  text-transform: none;
  color: #ffdddd;
}
#header h1 .barrierefrei {
  position: relative;
  display: inline;
  display:-moz-inline-stack;
  display:inline-block;
  zoom:1;
  *display:inline;

  height: 26px;

  background: url(../img/icon-barrierefrei-single.png) no-repeat left bottom;
  padding-left: 20px;
}
.svg #header h1 .barrierefrei {
  background-image: url(../img/icons-svg/barrierefrei.svg);
}
#header h1 .barrierefrei .text {
  padding: 1px 2px;
  background: #fff;
  color: #2e5dab;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 10px;
  line-height: 10px;
  vertical-align: top;
}


#page-functions {
  display:  block;
  position: absolute;
  top:    15px;
  right:  15px;
  bottom: 15px;
}
#page-functions ul {
  position: relative;
  display:  block;
  height:   100%;
}
#page-functions li.lang {
  display:  inline-block;
  margin-left:  .5em;
}
#page-functions li.lang a {
  display: inline;
  display:-moz-inline-stack;
  display:inline-block;
  zoom:1;
  *display:inline;
  position: relative;
  width:  32px;
  height: 22px;
  border: 2px solid #fff;
  overflow: hidden;
  text-indent:  40px;
  white-space: nowrap;
  background: no-repeat center;
  background-size:  cover;
}
#page-functions li.lang.de a {
  background-image: url(../img/flags/de.svg);
}
#page-functions li.lang.en a {
  background-image: url(../img/flags/gb.svg);
}
#page-functions li.lang.nl a {
  background-image: url(../img/flags/nl.svg);
}
.no-svg #page-functions li.lang.de a {
  background-image: url(../img/flags/de.svg.png);
}
.no-svg #page-functions li.lang.en a {
  background-image: url(../img/flags/en.svg.png);
}
.no-svg #page-functions li.lang.nl a {
  background-image: url(../img/flags/nl.svg.png);
}

#page-functions li.print-page {
  display:    block;
  position:   absolute;
  bottom:     -10px;
  right:      -5px;
}

#print-page {
  display: none;
  width: 35px; height: 35px;
  background: url(../img/icon-print.png) no-repeat center;
  text-align: left;
  white-space:  nowrap;
  text-indent: 1000em;
  overflow: hidden;
}
.svg #print-page {
  width: 28px; height: 28px;
  background-image: url(../img/icons-svg/print.svg);
  background-color: #d50a04;

  border:    3px solid #fff;
  background-color: #d50a04;

  -moz-border-radius:     17px;
  -webkit-border-radius:  17px;
  border-radius:          17px;
}






#navigation {
  position: fixed;
  top: 0; left: 50%;
  margin-left: -48em;
  width: 16em;
  background: #881512;
  z-index: 30;
}

#navigation a {
  position:   relative;
  display: block;
  margin: 1em auto 0 auto;
  width: 130px; padding-top: 130px;
  text-align: center;
  color: #fff;
  font-family: 'Lucida Grande', 'Lucida Sans', Helvetica, Arial, sans-serif;
  font-size: 1.2em;
  text-transform: uppercase;
}
.svg #navigation .platforms a:before,
.svg #navigation .links a:before,
.svg #navigation .buildings a:before,
.svg #navigation .images-and-maps a:before {
  content:  " ";
  display:  block;
  position: absolute;
  top:      4px;
  left:     10px;
  right:    10px;
  width:    110px;
  height:   110px;
  background: no-repeat center;
  background-size:  contain;
  border:    2px solid #fff;
  background-color: #d50a04;

  -moz-border-radius:     55px;
  -webkit-border-radius:  55px;
  border-radius:          55px;

  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.svg #navigation a:hover:after {
  content:  " ";
  display:  block;
  position: absolute;
  top:      0px;
  left:     6px;
  right:    6px;
  width:    118px;
  height:   118px;
  border:    10px solid #fff;
  background-color: transparent;

  -moz-border-radius:     59px;
  -webkit-border-radius:  59px;
  border-radius:          59px;

  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.svg #navigation .platforms a:before { background-image: url(../img/icons-svg/platform.svg); }
.svg #navigation .links a:before { background-image: url(../img/icons-svg/links.svg); }
.svg #navigation .buildings a:before { background-image: url(../img/icons-svg/building.svg); }
.svg #navigation .images-and-maps a:before { background-image: url(../img/icons-svg/images-and-maps.svg); }

.no-svg #navigation a {
  background: url(../img/icons.png) no-repeat -100% -100%;
}
.no-svg #navigation .platforms a { background-position: 0 0; }
.no-svg #navigation .links a { background-position: 0 -180px; }
.no-svg #navigation .buildings a { background-position: 0 -360px; }
.no-svg #navigation .images-and-maps a { background-position: 0 -540px; }

.no-svg #navigation .platforms a:hover { background-position: -241px 0; }
.no-svg #navigation .links a:hover { background-position: -241px -180px; }
.no-svg #navigation .buildings a:hover { background-position: -241px -360px; }
.no-svg #navigation .images-and-maps a:hover { background-position: -241px -540px; }


#navigation .basics,
#navigation .overview,
#navigation .positions,
#navigation .not-available {
  display:  block;
  width:    1px;
  height:   1px;
  overflow: hidden;
  margin-left:  -1px;
  margin-right: -1px;

}

#navigation .impressum a {
  width: 100%; height: auto;
  padding: 0;
  margin: 5em 0 0 0;
  background: #e2e2e2;
  color: #881512;
  text-align: left;
  font-size: .9em;
  font-weight: normal;
}
#navigation .impressum a:after {
    display: none !important;
}
#content {
  position: relative;
  width: 80em;
  left: 8em;
  margin: 11em auto 2em auto;
  padding-top: 1em;
  background: #fff;
  z-index: 10;
}
.container {
  padding: 0 .83em .83em .83em;
  font-size: 1.2em;
}
.container h3 {
  position: relative;
  display: block;
  font-size: 1em;
  text-transform: uppercase;
  font-weight: bold;
  margin-bottom: .25em;
  background-color: #FA0A14;
  padding: .27em .54em .27em 1.7em;
  color: #fff;
}
.container h2 {
  position: relative;
  display: block;
  background-color: #881512;
  color: #fff;
  text-transform: uppercase;
  font-size: 1.5em;
  padding: .54em .54em .54em 1.15em;
  margin-bottom: .2em;
}

.colset-4 li {
  width: 22.999%;
  margin-right: 2%;
  float: left;
}

.colset-2 li {
  width: 48.999%;
  float: left;
}
.colset-2 li.col-1 { margin-right: 1%; }
.colset-2 li.col-2 { margin-left: 1%; }

iframe { width: 100%; height: 30em; overflow: hidden; }

li .cnt {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
li.colspan-4 .cnt {
  white-space: normal;
  overflow: auto;
  text-overflow: auto;
}
.with-bg { position: relative; padding: 0 .63em .83em .63em; }
.with-bg h2 { margin-left: .11em; margin-right: .11em; }
.with-bg h3 { margin-left: .2em; margin-right: .2em; }
.with-bg li {
  margin: 0;
}

.with-bg .colset-4 li {
  width: 24.999%;
}
.with-bg .colset-4 li.colspan-2 {
  width: 49.999%;
}
.with-bg .colset-4 li.colspan-4 { width: 100%; }
.with-bg .cnt {
  display: block;
  background: #7d7d7d;
  margin: 0 .2em .3em .2em;
  padding: .25em .5em .25em 1.7em;
  color: #fff;
}
.small-collapse {
  margin: 0 .2em;
}

dd,dt {
  display: block;
  float: left;
  white-space: nowrap;
  overflow: hidden;
}
dt { width: 29.999%; margin-right: 2%; }
dt.other { width: 100%; margin: 0; }
dd { width: 67.999%; }
dd.dowrap, dt.dowrap { white-space: normal; }
.a-right { text-align: right; }
table { width: 100%; }

.col-10 { width: 10%; }
.col-20 { width: 20%; }
.col-30 { width: 30%; }
.col-60 { width: 60%; }

th,td {
  background: #7d7d7d;
  color: #fff;
  padding: .2em .83em .2em 1.7em;
  border-left: solid .41em #fff;
  border-bottom: solid .41em #fff;
  *border
}
th:first-child, td:first-child { border-left: none; }
th { text-transform: uppercase; font-weight: bold; }

.thumbnails {
  padding: 1em 1em 1em 2em;
}
.thumbnails a {
  display: inline;
  display:-moz-inline-stack;
  display:inline-block;
  zoom:1;
  *display:inline;

  height: 4em; width: 4em;
  margin: 0 .5em .5em 0;
  border: solid .3em #881512;
  overflow: hidden;
}
.thumbnails a:hover, .thumbnails a:focus { border-color: #FA0A14; }

.thumbnails a img {
  height: 100%;
  width: auto;
}

#basics.container h3 {
  padding: 0;
  background: transparent;
  color: #444;
}
#basics.container { padding-left: 2.5em; color: #444;}

#overview .thumbnails { padding: 0; }
#overview .thumbnails a {
  display: block;
  height: 100%; width: auto;
  margin: 0; border: none;
  overflow: visible;
}
#overview .thumbnails a img { height: auto; width: 100%; }


#footer {
  margin: 0 auto;
  width: 96em;
  text-align: right;
  color: #444;
}
#footer .a-left { text-align: left; width: 49.499%; float: left; }
#footer .a-right { text-align: right; width: 49.499%; float: right; }

#footer a.imprint-footer {
  font-family: 'Lucida Grande', 'Lucida Sans', Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  color: #881512;
  text-align: left;
  font-size: 1em;
  font-weight: normal;
}
body.type-3 #footer a.imprint-footer { visibility: hidden; }

body.type-1 #footer {
  height: 3em;
}

body.type-1 #header {
  width:	92em;
  margin-left:	-48em;
}
body.type-1 #content {
  width: 96em;
  left:	0;
}


#maps {
  padding:	0 !important;
}
#map {
  display:	block;
  height:	450px;
  background:	#e1e1e1;
}
#maps p.cnt {
  text-align:	right;
  margin-right:	0;
  margin-left:	0;
}
/* #############################################################################
   ## CSS Tricks
   ############################################################################# */
/* cross browser display-inline */
.display-inline {
  display: inline;
  display:-moz-inline-stack;
  display:inline-block;
  zoom:1;
  *display:inline;
}
/* cross browser round corners */
.round-corners {
  -o-border-radius: 10px 10px 10px 10px;
  -moz-border-radius: 10px 10px 10px 10px;
  -webkit-border-radius:  10px 10px 10px 10px;
  border-radius: 10px 10px 10px 10px;
}
/* cross browser shadow */
.shadow {
  /* box-shadow: [x] [y] [size] [color] <inset>; */
  -o-box-shadow: 0 0 5px #ccc;
  -moz-box-shadow: 0 0 5px #ccc;
  -webkit-box-shadow: 0 0 5px #ccc;
  box-shadow: 0 0 5px #ccc;
  filter: progid:DXImageTransform.Microsoft.Shadow(color='#cccccc', Direction=135, Strength=3) progid:DXImageTransform.Microsoft.Shadow(color='#cccccc', Direction=225, Strength=4);
}
/* cross browser rotation */
.rotate {
  -moz-transform:rotate(40deg);
  -webkit-transform:rotate(40deg);
  -o-transform:rotate(40deg);
  -ms-transform:rotate(40deg);
   /* for IE see http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/ */
   filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',
        M11=1.5320888862379554, M12=-1.2855752193730787,
        M21=1.2855752193730796, M22=1.5320888862379558);
}


body.nav-hidden #navigation li a {
  zoom:		.6;
}
body.nav-hidden #navigation li.impressum a {
  zoom:		1;
}

/* #############################################################################
   ## MEDIA QUERIES
   ############################################################################# */
@media only screen and (max-width: 1024px), only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) {
  /* <1024-screens, (i)pads (landscape) */
}
@media only screen and (max-width: 960px) {
  /* <960-screens */
  #header {
    width: 54em;
    margin-left: -21em;
  }
  #navigation {
    margin-left: -37em;
  }

  #content {
    width: 58em;
  }
  #footer { width: 100%; text-align: center; }

  body.type-3 #basics ul.colset-4 li { width: 47.999%; margin-bottom: 1em;  }

  body.type-1 #header {
    width: 70em;
    margin-left: -37em;
  }
  body.type-1 #content,
  body.type-1 #footer {
    width: 74em;
  }


  iframe { height: 25em; }
}
@media only screen and (max-width: 768px), only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) {
  /* <768-screens, (i)pads (portrait) */

  body #header, #navigation { position: relative; left: 0; margin: 0 auto 1em 0; width: 100%; height: auto; padding: 0; border-bottom: none; }
  body #header { overflow: hidden; }
  #header h1 { margin: .25em .33em;}
  #navigation { padding-bottom: 1em; left: auto; }
  #navigation li { width: 24.999%; float: left; }
  #navigation .impressum { display: none; }

  body.nav-hidden #navigation li a {
	zoom:		1;
  }

  #basics.container { padding-left: 1em;}

  div#images-and-maps { margin-bottom: 0 !important; }
  #footer a.imprint-footer { visibility: visible; }
  #content { left: 0; width: 100%; margin-top: 0; overflow: hidden; }


  body.type-1 #header {
	width:			100%;
	margin-left:	0;
  }
  body.type-1 #basics ul.colset-4 li { width: 47.999%; margin-bottom: 1em;  }
  body.type-1 #basics ul.colset-4 li:nth-child(2n+1) { clear: left; }

  body.type-1 #content,
  body.type-1 #footer {
	width:		100%;
  }

  #header h1 strong {
	font-size:		0.8em;
  }
}
@media only screen and (max-width: 640px), only screen and (min-device-width : 480px) and (max-device-width : 640px) and (orientation : landscape) {
  /* <640-screens, phones (landscape) */

  #page-functions {
    max-width:  95px;
    text-align: right;
  }
  #page-functions li.lang {
    margin:  0 0 .5em .5em;
  }
}
@media screen and (max-width: 480px),  only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : landscape)  {
  /* <480-screens, smartphones (landscape) */

  body { -webkit-text-size-adjust: none; }
  #navigation { padding: 1em 0 0 0; }
  #navigation li { float: none; width: 100%; }
  #navigation li a {
    margin: .5em 0;
    width: auto; padding: 0 0 0 1em;
    background: none;
    text-align: left;
  }
  #navigation li a:before,
  #navigation li a:after {
    content: "";
    display:  none !important;
  }

  .colset-2 li { width: 100%; float: none; }
  .colset-2 li.col-1, .colset-2 li.col-2 { margin: 0; }


  iframe { width: 460px; }

  .with-bg .colset-4 li { width: 49.999%;  }

  #header h1 .location,
  #header h1 .tarifzone,
  #header h1 .barrierefrei {
    display: block;
  }

  #langnav li {
	display:	block;
  }
  body.type-1 #platform-features table thead {
	display:	none;
  }
  body.type-1 #platform-features table,
  body.type-1 #platform-features table tbody,
  body.type-1 #platform-features table tr,
  body.type-1 #platform-features table td {
	display:	block;
	border:		none;
	margin:		0;
  }
  body.type-1 #platform-features table tr {
	border-top:	.5em solid #fff;
  }
  body.type-1 #platform-features table tr td:first-child {
	font-weight:	bold;
  }
}
@media screen and (max-width: 320px), only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : portrait) {
  /* <320-screens, smartphones (portrait) */
  #header h1 { font-size: 2.8em; }
  #basics ul.colset-4 li { width: 100% !important; float: none !important; margin: 0 0 1em 0 !important; }
  .with-bg .colset-4 li, .with-bg .colset-4 li.colspan-2 { width: 100%; float: none;  }
  iframe { width: 300px; }


  body.type-1 #header {
	min-height:		13em;
  }
  body.type-1 #header h1 {

  }
  body.type-1 #header h1 strong {
	  font-size:		0.625em;
  }
}

/* 2016-06-08 */
/* -- Aufzuege */
li.aufzug-inactive>span:after {
  content: ' \25CF';
  color: #881512;
}
/*
li.aufzug-active>span:after {
  content: ' \25CF';
  color: #008800;
}
li.aufzug-unknown>span:after {
  content: ' \25CF';
  color: #881512;
}
*/


/* -- E-Mobility */
#header h1 .has-emob-bike,
#header h1 .has-emob-car {
  display: inline-block;
  width: 52px;
  height: 26px;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url(../img/icon-emob-bike.svg);
  vertical-align: top;
}
#header h1 .has-emob-car {
  background-image: url(../img/icon-emob-car.svg);
}
#header h1 .has-emob-bike .text,
#header h1 .has-emob-car .text {
  display: none;
}
@media screen and (max-width: 480px), only screen and (max-device-width: 480px) and (min-device-width: 320px) and (orientation: landscape) {
  #header h1 .barrierefrei {
    display: inline-block;
  }
}
#header h1 .tarifzone:after {
  content: "";
  display: block;
  float: none;
  clear: both;
  width: 100%;
  height: 0px;
}
/*
@media screen and (min-width: 481px) {
  #header h1 .tarifzone {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  #header h1 .barrierefrei {
    display: inline-block;
  }
}
*/
@media screen and (min-width: 769px) {

  #header h1 .tarifzone {
    display: inline;
  }
  #header h1 .tarifzone:after {
    display: none;
  }
  #header h1 .has-emob-bike,
  #header h1 .has-emob-car {
    width: 32px;
    height: 16px;
  }
}
li.has-emob-bike>.cnt,
li.has-emob-car>.cnt {
  padding-left: 5.5em;
  background-image: url(../img/icon-emob-bike.svg);
  background-repeat: no-repeat;
  background-position: left 0.9em top 0.5em;
  background-size: auto 2em;
}

li.has-emob-car>.cnt {
  background-image: url(../img/icon-emob-car.svg);
}
