@font-face {
    font-family: 'Lato';
    src: url('lato-bold-webfont.eot');
    src: url('lato-bold-webfont.eot?#iefix') format('embedded-opentype'),
         url('lato-bold-webfont.woff') format('woff'),
         url('lato-bold-webfont.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Lato';
    src: url('lato-regular-webfont.eot');
    src: url('lato-regular-webfont.eot?#iefix') format('embedded-opentype'),
         url('lato-regular-webfont.woff') format('woff'),
         url('lato-regular-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
  font-family: 'icons';
  src: url('fonts/icons.eot?77798708');
  src: url('fonts/icons.eot?77798708#iefix') format('embedded-opentype'),
       url('fonts/icons.woff?77798708') format('woff'),
       url('fonts/icons.ttf?77798708') format('truetype'),
       url('fonts/icons.svg?77798708#fontello') format('svg');
  font-weight: normal;
  font-style: normal;
}
 
[class^="icons-"]:before, [class*=" icons-"]:before {
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  speak: none;
 
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  margin-left: .2em;
}
 
.icons-bicycle:before { content: '\e800'; }
.icons-wheelchair:before { content: '\e801'; }
.icons-up-hand:before { content: '\e802'; }

body, html {
  height:100%;
  margin:0px;
  font-family:Lato, Verdana, Helvetica, arial, sans-serif !important;
  position:relative;
  line-height: 1 !important;
}

div.ol-attribution {
  -moz-border-radius-topleft: 3px;
  -webkit-border-top-left-radius: 3px;
   border-top-left-radius: 3px;
}

.ol-control button, div.ol-attribution {
  background-color: #333;
  opacity: 0.9;
} 

.ol-control button:hover {
  background-color: #333;
  opacity: 0.7;
} 

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

a:hover {
  color:white;
  text-decoration:underline;
}

h1 {
  font-size: 25px !important;
}

#bar {
  position:absolute;
  bottom:40px;
  left:0px;
  right:0px;
  font-size:11px;
  height:310px;
  opacity:0.9;
  background-color:#494a49;
  color:white;
  overflow:hidden;
  z-index:9999;
}

#about {
  position:absolute;
  top:40px;
  left: 20%;
  right: 20%;
  font-size:15px;
  opacity:0.96;
  background-color:#EEE;
  color:black;
  overflow:hidden;
  z-index:9999;
  -webkit-box-shadow: 2px 2px 5px 0px rgba(50, 50, 50, 0.75);
  -moz-box-shadow:    2px 2px 5px 0px rgba(50, 50, 50, 0.75);
  box-shadow:         2px 2px 5px 0px rgba(50, 50, 50, 0.75);
}

#about a {
  color: black;
  text-decoration: underline;
}

#aboutdesc {
  padding: 20px;
}

#aboutlogos {
  padding-left: 20px;
  padding-bottom: 20px;
  overflow: hidden;
}

#geopslog, #unilog {
  float: left;
  display:block;
  border:none;
}

#geopstweet {
  width: 100px;
  height: 60px;
  background: red;
}

#unilog img {
  float: left;
}

#unilog span {
  display:block;
  float:left;
  line-height: 100px;
  margin-top: 17px;
  font-size: 12px;
}

#geopslog {
  margin-right: 40px;
}

#geopslog img {
  margin-top:14px;
}

#header, #footer {
  height:40px;
  position:absolute;
  width:100%;
  background-color:#333;
  color:white;
  opacity:0.9;
  z-index:9999;
}

#header {
  top:0px;
}

#barclosebut {
  width:10px;
  height:10px;
  background-color:#666;
  position:absolute;
  right:18px;
  top:18px;
  cursor:pointer;
}

#barclosebut:hover {
  background-color:#AAA;
}

#logo {
  line-height: 40px;
}

#barLoading {
  position:absolute;
  left:50%;
  top:50%;
  background-image:url(loading.gif);
  background-repeat:no-repeat;
  width:32px;
  height:32px;
}

#footLoading {
  position:absolute;
  right:10px;
  top:4px;
  background-image:url(loading_dark.gif);
  background-repeat:no-repeat;
  width:32px;
  height:32px;
}

.leaflet-left .leaflet-control, .leaflet-right .leaflet-control {
  margin-top:60px;
}

.olControlZoom {
  margin-top:40px;
}

#title {
  font-size:20px;
  letter-spacing: 2.5px;
  display:block;
  float:left;
  line-height:40px;
  font-weight:bold;
  height:40px;
  margin-left:20px;

}

#aboutbut, #overview {
  margin:0px;
  padding:0px;
  border: 0px;
  font-weight:normal;
  display:block;
  float:left;
  font-size:15px;
  margin-left:20px;
  letter-spacing: .5px;
  height:40px;
  line-height:40px;
  padding-left:10px;
  padding-right:10px;
  background: transparent;
  color: white;
  cursor: pointer;
}

#aboutbut:hover, #aboutbut.active, #overview:hover {
  background-color: #EEE;
  color:black;
}

#aboutbut {
  margin-left: 60px;
}

#subtitle {
  font-weight:normal;
  display:block;
  float:left;
  font-size:15px;
  margin-left:20px;
  letter-spacing: .5px;
  height:40px;
  line-height:40px;
}

#imp {
  font-weight:normal;
  display:block;
  float:right;
  font-size:14px;
  margin-right:10px;
  font-size:12px;
  letter-spacing: .5px;
  line-height:40px;
  height:40px;
}

#imp a {
  margin-right: 10px;
  margin-left: 10px;
}

#imp #perml:hover, #imp #twitterl:hover {
  opacity: 0.8;
}

#footer {
  bottom:0px;
  height:39px;
  opacity:0.9;
  border-top:solid 1px #111;
  background:#222;
}

#localtime {
  position:absolute;
  top:0px;
  height:39px;
  line-height:39px;
  font-size:13px;
  left:120px;
}

#clock {
  position:absolute;
  left:20px;
  top:0px;
  height:39px;
  line-height:39px;
  font-size:20px;
}

#speedometer {
  position:absolute;
  left:300px;
  top:0px;
  height:39px;
  padding:0px;
  margin:0px;
  line-height:39px;
}

#speedometer button {
  display:block;
  float:right;
  background:transparent;
  border:0px;
  border-left:solid black 2px;
  height:39px;
  width:39px;
  margin:0px;
  outline-width:0px;
  padding:0px;
  color:white;
  font-size:26px;
  cursor:pointer;
}

#speedoview {
  display:block;
  float:right;
  margin-left:10px;
  font-size:12px;
  font-weight:bold;
}

#speedometer #slowerbut, #speedometer #fasterbut {
  font-size:20px;
  font-weight: bold;
}

#speedometer #fasterbut {
  border-right:solid black 2px;
}

button::-moz-focus-inner {
    padding: 0;
    border: 0
}

#speedometer button:hover {
  background:#EEE;
}

#mapwrap {
  position:absolute;
  top:0px;
  bottom:40px;
  left:0px;
  right:0px;
}

#map {
  width:100%;
  height:100%;
}

#lineNumber {

  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  min-width:20px;
  height:20px;
  line-height:20px;
  border: solid black 2px;
  padding:5px;
  display:block;
  float:left;
  margin:15px;
  margin-top:10px;
  margin-bottom:50px;
  text-align:center;
  font-size:14px;
  font-weight:bold;

}

#lineTo {
  font-weight:bold;
  font-size:18px;
  margin-top:10px;
  letter-spacing:.5px;
}

#lineVerlauf {
  position:absolute;
  top:85px;
  width:100%;
  height:230px;
  bottom:0px;
}

#lineDesc {
  font-size:13px;
  font-weight:normal;
}

#lineVerlaufScroll {
  height:100%;
  width:100%;
}

#lineVerlauf ul {
  height:150px;
  padding:0px;
  margin:0px;
  padding-left:20px;
  padding-right:20px;
  clear:both;
}

#lineVerlauf li {
  list-style-type:none;
  margin-left:0px;
  padding-left:0px;
  margin:0px;
  overflow:hidden;
  padding-top:80px;
  padding-bottom:80px;
  padding-left:35px;
  padding-right:35px;
  position:relative;
  float:left;
  overflow:visible;
  line-height: 1 !important;
}

#lineVerlauf li .stationbubble {
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 8px;
  bottom: 0;
  left: 0;
  background-color: white;
}

#lineVerlauf li.nopickupanddropoff .stationbubble {
  display: none;
}

#lineVerlauf li .process {
  position: absolute;
  width: 100%;
  height: 3px;
  bottom: 6px;
  left: 0;
  background-color: white;
}

#lineVerlauf li.last .process {
  display: none;
}

#lineVerlauf li.passed {
  color: #888;
}

#lineVerlauf li.passed .process,
#lineVerlauf li.passed .stationbubble {
  background-color: #888;
}

#lineVerlauf li.passed .depDelay,
#lineVerlauf li.passed .arrDelay {
  color: #B07272;
}

.leaflet-bottom .leaflet-control {
  color: black;
}

.time {
  display:block;
  position:absolute;
  top:165px;
  width:60px;
  left:-23px;
  text-align:center;
  height:20px;
}

.stationname {
  position:absolute;
  bottom:20px;
  left:0px;
  white-space:normal;
  margin-left:1em;
  font-size:13px;
  width:150px;
  font-weight:bold;
  letter-spacing:.3px;
  padding:5px;
  padding-left:2px;
  transform: rotate(-40deg);
  transform-origin: 20px 50%;
  -webkit-transform: rotate(-40deg);
  -webkit-transform-origin:20px 50%;
  -moz-transform: rotate(-40deg);
  -moz-transform-origin: 20px 50%;
  -ms-transform: rotate(-40deg);
  -ms-transform-origin: 20px 50%;
  -o-transform: rotate(-40deg);
  -o-transform-origin: 20px 50%;
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  cursor:pointer;
  z-index: 1000;
}

.stationname:hover {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
  padding:0px;
  border:solid 5px #777;
  border-left:solid 2px #777;
  background-color:#777;
}

.vehType, .oper {
  margin-right:10px;
  font-weight:bold;
}

.depDelay, .arrDelay {
  color:#ff9595;
  font-size:10px;
}

#tooltip {
  background-color: black;
  position: absolute;
  width:50px;
  height:50px;
}

.olControlAttribution {
  bottom:5px !important;
}

.leaflet-bar a {
  background: #333;
  color: white;
}

.leaflet-control {
  background: #333;
  color: white;
  font: Lato, Verdana, Helvetica, arial, sans-serif;
}

#twitterl {
  margin-left:20px;
}

#twitterl img {
  position: relative;
  top: 4px;
  vertical-align: inherit !important;
}

#imp #perml {
  margin-left:20px;
  margin-right: 15px;
}

#imp #perml img {
  position: relative;
  top: 1px;
  vertical-align: inherit !important;
}

#imprint {
  display:block;
  height:39px;
  line-height:39px;
  position:absolute;
  right:80px;
  font-size: 12px;
  font-family:Lato, Verdana, Helvetica, arial, sans-serif;
}

.ol-control {
  margin-top: 50px;
}

.popover {
  width: 250px !important;
  background-color: #333 !important;
  color: white;
  font-size: 13px;
}

.popover .arrow::after {
  border-top-color: #333 !important;
}

.ol-logo {
  display: none;
}

.layer-switcher {
  position: absolute !important;
  top: 0.5em !important;
  right: 0.5em !important;
}

.layer-switcher .panel {
  width: 200px !important;
  background-color: #333 !important;
  opacity: 0.8;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}

.layer-switcher .panel {
  display: none !important;
  margin: 2px;
  color: white;
}

.layer-switcher.shown .panel {
  display: block !important;
}

.layer-switcher button {
  float: right;
  width: 34px;
  height: 34px;
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gsQFBYFtPT7hQAAAOhJREFUWMPt1t0RgjAQBOA9G6AExsqkBDuwBTtIK3RCOgArWB8M/jCKxyVBHbNvBG74JslBgJKSkmWRmGKSFYB9uDyKyGlVPcmK5IFkz1v6MFZ9CjBNPpASkA9kBKQDJQLYQZkAKtDmoZcv7ecBDBn3/ADAq1ud5I5kl3AmOpI7yx6pE4GuAJK1dY+4CNAU4NR75EkaAJ6kA9CKyHYcm6nxAJrwbBtqfahL1r5zM/RqBuK+J+N6KkEqwFhj6RanAWkAd/ffd4/ihYt+etFLZASlA0SA8gAMoLyArzsYrXFU/O3Dc0nJX+cMhQxC0lPOeV4AAAAASUVORK5CYII=');
  background-repeat: no-repeat;
  background-position: 0px;
  border: none;
}

.layer-switcher.shown button {
  background: transparent;
}

.layer-switcher ul {
  margin-left: .1em !important;
  list-style: none !important;
  margin: 0px !important;
  overflow: hidden;
}

.layer-switcher li {
  padding-left: .5em !important;
}

.layer-switcher li.group {
  padding-top: 5px !important;
}

.layer-switcher li.group > label {
  font-weight: bold !important;
}

.layer-switcher li input {
  display: block;
  float: left;
  margin-bottom: .5em;
  margin-right: 5px;
}

.layer-switcher li label {
  display: block;
}

@media (max-width: 1000px) {
  #imp a, #imp .imppholder {
    display: none;
  }
}

@media (max-width: 700px) {
  #aboutbut, #overview {
    display: none;
  }
}

@media (max-width: 470px) {
  #imp {
    display: none;
  }
}

@media (max-width: 350px) {
  #subtitle {
    display: none;
  }
}
