:root {
  --color-dark: #111;
  --color-darkest: #000;
  --color-light: #eee;
  --color-lightest: #fff;
  --color-primary: #eb0000;
}

* {
  font-family: 'Open Sans', sans-serif;
}

body,
a,
.item .line span {
  transition: all 0.5s ease-in;
}

body {
  padding-bottom: 70px;
  padding-top: 60px;
}
body:not(.night-mode) .light .shine {
  opacity: 0;
}
.night-mode,
.night-mode .dropdown-menu,
.night-mode .dropdown-menu>li>a:focus,
.night-mode .dropdown-menu>li>a:hover,
.night-mode .item .stops .stop:not(:last-child) .line .start,
.night-mode .item .animation-box .bus .car .top .part .window-frame .window {
  background-color: var(--color-dark);
}
.night-mode .item .animation-box .bus .car .bottom .wheel {
  border-color: var(--color-dark);
}
.night-mode .item .line span,
.night-mode .item .stops .stop:first-child .line .start,
.night-mode .item .animation-box .bus .car .top .part,
.night-mode .item .animation-box .bus .car .top .part .window .dashboard > div,
.night-mode .item .animation-box .bus .car .top .part .window-frame .window .seat,
.night-mode .item .animation-box .bus .car .bottom .wheel,
.night-mode .item .animation-box .train .wagon {
  background-color: var(--color-light);
}
.night-mode .item .animation-box .bus .car .top .part.side-mirror {
  border-color: var(--color-light);
}
.night-mode,
.night-mode a,
.night-mode .nav-pills>li>a,
.night-mode .dropdown-menu>li>a {
  color: var(--color-light);
}
.night-mode .item .stops .stop:not(:last-child) .line .start {
  border-color: var(--color-light);
}
.night-mode .item .detail .stops {
  border-color: #333;
}
.night-mode .card {
  transform: translateX(-100%) rotateY(-180deg);
}

h1 {
  margin-top: 0;
}

object {
  height: auto;
  max-width: 100%;
}

.modal {
  color: var(--color-darkest);
}
.modal-header {
  border: none;
}

/* NAVIGATION */
.navbar {
  margin-bottom: 10px;
}
.navbar-nav {
  margin-bottom: 0;
  margin-top: 0;
}
.navbar-toggle {
  border: none;
  height: 34px;
}
.navbar-inverse,
.dropdown-menu>.active>a, .dropdown-menu>.active>a:focus, .dropdown-menu>.active>a:hover {
  background-color: var(--color-primary);
  border: none;
}
.navbar-inverse .navbar-collapse {
  border-color: rgb(180, 0, 0);
}
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.active>a:hover,
.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:focus, .navbar-inverse .navbar-nav>.open>a:hover {
  background-color: rgb(180, 0, 0);
}
.navbar-inverse .navbar-nav>li>a,
.navbar-inverse .navbar-brand {
  color: #fff;
}
.navbar-inverse .navbar-toggle:focus,
.navbar-inverse .navbar-toggle:hover {
  background-color: transparent;
}
.navbar-toggle .icon-bar {
  border-radius: 0;
  height: 4px;
  width: 26px;
  -webkit-transition: transform 0.3s ease-in;
  -moz-transition: transform 0.3s ease-in;
  transition: transform 0.3s ease-in;
}
.navbar-toggle .icon-bar.first {
  -webkit-transform: rotateZ(45deg);
  -moz-transform: rotateZ(45deg);
  -ms-transform: rotateZ(45deg);
  transform: rotateZ(45deg);
}
.navbar-toggle .icon-bar.last {
  margin-top: -4px;
  -webkit-transform: rotateZ(-45deg);
  -moz-transform: rotateZ(-45deg);
  -ms-transform: rotateZ(-45deg);
  transform: rotateZ(-45deg);
}
.navbar-toggle .icon-bar.middle {
  display: none;
}
.navbar-toggle.collapsed .icon-bar {
  -webkit-transform: rotateZ(0);
  -moz-transform: rotateZ(0);
  -ms-transform: rotateZ(0);
  transform: rotateZ(0);
}
.navbar-toggle.collapsed .icon-bar + .icon-bar {
  margin-top: 5px;
}
.navbar-toggle.collapsed .icon-bar.middle {
  display: block;
}
.nav-pills>li>a {
  color: var(--color-darkest);
}
.nav>li>a:focus, .nav>li>a:hover,
.nav .open>a, .nav .open>a:focus, .nav .open>a:hover {
  background-color: transparent;
}

code,
pre {
  background: #222;
  border: 1px solid #ccc;
  color: ghostwhite;
  display: inline-block;
  margin: 10px;
  padding: 10px;
  word-break: break-word;
}
code.block,
pre.block {
  display: block;
}
pre,
pre.block {
  display: none;
}
pre .title {
  margin-top: 0;
}

.title {
  margin-top: 0;
}

.bg-inverse {
  background-color: #222;
  color: #fff;
}

.item {
  padding-top: 1rem;
}
.item + .item {
  border-top: 1px solid #ddd;
}
.item h2, .item h3, .item h4, .item h5 {
  margin: 0.5rem 0;
}
.item .teaser {
  padding-bottom: 1rem;
}
.item .teaser + .detail {
  /*margin-top: 2rem;*/
}
.item .teaser .station-name {
  font-weight: lighter;
}
.item .time-departure,
.item .teaser .time-arrival,
.item .info-vehicle .name,
.item .detail .stops .stop.first .departure h3,
.item .detail .stops .stop.last .time-arrival,
.item .detail .stops .stop.last .station-name {
  font-weight: 700;
}
.item .line {
  height: 36px;
  line-height: 36px;
  position: relative;
}
.item .line.horizontal {
  padding: 0.3rem 0;
}
.item .line span {
  background-color: var(--color-darkest);
  display: inline-block;
}
.item .line.horizontal span {
  position: absolute;
  top: 10px;
}
.item .line.vertical span {
  display: block;
  /*margin: 0 auto;*/
}
.item .line .start {
  border-radius: 50%;
  height: 16px;
  width: 16px;
}
.item .line.horizontal .start {
  left: 0;
}
.item .line.vertical .start {
  /* margin-top: 8px; */
}
.item .stops .stop:not(:last-child) .line .start {
  background-color: #fff;
  border: 3px solid var(--color-darkest);
}
.item .stops .stop:first-child .line .start {
  background-color: var(--color-darkest);
}
.item .line .voyage {
  height: 120px;
  width: 4px;
}
.item .line.horizontal .voyage {
  height: 4px;
  left: 1%;
  top: 16px;
  width: 99%;
}
.item .line.vertical .voyage {
  margin-left: 6px;
}
.item .stops .stop:last-child .voyage {
  height: 44px;
}
.item .line .end {
  height: 16px;
  width: 4px;
}
.item .line.horizontal .end {
  right: 0;
}
.item .icon ~ span {
  margin-left: 6px;
}
.item .icon {
  display: inline-block;
}
.item .icon.icon-train {
  max-width: 26px;
}
.item .icon.icon-train-ic,
.item .icon.icon-train-re {
  max-width: 58px;
}
.item .icon.icon-train svg,
.info-vehicle i {
  background-color: #27348b;
  border-radius: 2px;
  color: #fff;
  padding: 0.3rem;
}
.item .icon[class*="icon-train-"] svg {
  background-color: #eb0000;
}
.item .icon svg {
  fill: #fff;
}
.item .info-general {
  padding-bottom: 1rem;
  padding-top: 1rem;
}

.hide-overflow {
  overflow: hidden;
}
.item .animation-box .box > div {
  /*  border: 5px solid var(--color-dark);
  border-radius: 6px;
  border-style: none solid;*/
  height: 24px;
  line-height: 24px;
  position: relative;
}
.item .animation-box .box > div .frame {
  position: absolute;
  top: 0;
  width: 100%;
}

/* Bus */
.item .animation-box .box > div.bus {
  height: 42px;
  line-height: 42px;
}
.item .animation-box .bus .frame,
.item .animation-box .bus .car,
.item .animation-box .bus .car > div {
  height: 38px;
  line-height: 38px;
}
.item .animation-box .box.direction-right .bus .car {
  transform: rotateY(180deg);
}
.item .animation-box .bus .car > div {
  float: left;
}
.item .animation-box .bus .car {
}
.item .animation-box .bus .car .left {
  width: 44px;
}
.item .animation-box .bus .car .right {
  position: relative;
  width: 114px;
}
.item .animation-box .bus .car .bottom,
.item .animation-box .bus .car .top {
  left: 0;
  position: absolute;
  width: 100%;
}
.item .animation-box .bus .car .top .part,
.item .animation-box .bus .car .top .part .window .dashboard > div,
.item .animation-box .bus .car .top .part .window-frame .window .seat,
.item .animation-box .bus .car .bottom .wheel {
  background-color: var(--color-darkest);
}
.item .animation-box .bus .car .top {
  top: 0;
}
.item .animation-box .bus .car .top .part {
  float: left;
  height: 30px;
  width: 3px;
}
.item .animation-box .bus .car .light {
  background-color: transparent;
  width: 34px;
}
.item .animation-box .bus .car .light .shine {
  border-bottom: 12px solid transparent;
  border-left: 36px solid #FFEB3B;
  border-radius: 12px 0px 0px 12px;
  border-top: 12px solid transparent;
  height: 0;
  margin-right: -8px;
  margin-top: 16px;
  transform: rotateZ(-24deg);
  transition: all 0.3s ease-in;
  width: 0;
}
.item .animation-box .bus .car .top .part.side-mirror {
  background-color: transparent;
  border-color: var(--color-darkest);
  border-radius: 12px 0 0 6px;
  border-style: solid none none solid;
  border-width: 3px;
  height: 14px;
  width: 6px;
}
.item .animation-box .bus .car .top .part.first {
  border-radius: 0 0 0 2px;
  width: 22px;
}
.item .animation-box .bus .car .top .part.first .window-frame {
  height: 16px;
}
.item .animation-box .bus .car .top .part.first .window-frame .window {
  height: 16px;
  left: 2px;
  top: 4px;
  width: 18px;
  position: relative;
}
.item .animation-box .box.direction-left .bus .car .top .part.first .window-frame .window {
  border-bottom-right-radius: 4px;
}
.item .animation-box .bus .car .top .part.first .window-frame .window .seat {
  margin-left: 12px;
  margin-top: 8px;
}
.item .animation-box .bus .car .top .part.last {
  border-radius: 0 2px 2px 0;
}
.item .animation-box .bus .car .top .part.middle {
  width: 82px;
}
.item .animation-box .bus .car .top .part.middle .window-frame {
  margin: 0 2px;
  margin-top: 4px;
}
.item .animation-box .bus .car .top .part .window-frame,
.item .animation-box .bus .car .top .part .window-frame .window {
  height: 14px;
}
.item .animation-box .bus .car .top .part .window-frame .window {
  background-color: #fff;
  border-radius: 1px;
  float: left;
  width: 14px;
}
.item .animation-box .bus .car .top .part.middle .window-frame .window + .window {
  margin-left: 2px;
}
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(3) {
  border-bottom-right-radius: 6px;
}
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(4) {
  border-bottom-left-radius: 4px;
}
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(4),
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(5) {
  height: 12px;
}
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(4) .seat,
.item .animation-box .box.direction-left .bus .car .top .part.middle .window-frame .window:nth-child(5) .seat {
  margin-top: 4px;
}
.item .animation-box .bus .car .top .part .window .dashboard .wheel-stand {
  border-top-right-radius: 2px;
  bottom: 0;
  height: 3px;
  left: 3px;
  position: absolute;
  /* transform: rotateZ(-60deg); */
  width: 2px;
}
.item .animation-box .bus .car .top .part .window .dashboard .steering-wheel {
  border-radius: 1px;
  bottom: 0px;
  height: 6px;
  left: 3px;
  position: absolute;
  transform: rotateZ(-60deg);
  width: 1px;
}
.item .animation-box .bus .car .top .part .window .seat {
  border-radius: 2px 2px 0 0;
  height: 8px;
  margin-left: 9px;
  margin-top: 6px;
  width: 3px;
}
.item .animation-box .bus .car .bottom {
  bottom: 0;
  padding: 0 10px 0 20px;
}
.item .animation-box .bus .car .bottom .wheel {
  border-radius: 50%;
  float: left;
  height: 14px;
  width: 14px;
  border: 1px solid var(--color-lightest);
}
.item .animation-box .bus .car .bottom .wheel:last-child {
  float: right;
}

/* Train */
.item .animation-box .train .wagons,
.item .animation-box .train .wagon {
  height: 20px;
  line-height: 20px;
}
.item .animation-box .train .wagon {
  background-color: var(--color-darkest);
  color: var(--color-light);
  float: left;
  padding: 0 0.5rem;
  position: relative;
  width: 19%;
}
.item .animation-box .train .wagon + .wagon {
  margin-left: 1%;
}
/* To the left */
.item .animation-box .train .wagon.first:first-child {
  border-radius: 60px 0 0 12px;
}
.item .animation-box .train .wagon.last:last-child {
  border-radius: 0 6px 6px 0;
}
/* To the right */
.item .animation-box .train .wagon.first:last-child {
  border-radius: 0 60px 12px 0;
}
.item .animation-box .train .wagon.last:first-child {
  border-radius: 6px 0 0 6px;
}
.item .animation-box .train .wagon .windows {
  height: 12px;
  line-height: 12px;
  left: 0;
  padding: 0 6px;
  position: absolute;
  top: 0;
  width: 100%;
}
.item .animation-box .train .wagon .windows .window {
  background-color: var(--color-lightest);
  display: inline-block;
  height: 6px;
  width: 6px;
}
.item .animation-box .box.direction-left .train .wagon.first .windows .window:first-child {
  border-radius: 6px 0 0 0;
}
.item .animation-box .box.direction-right .train .wagon.first .windows .window:last-child {
  border-radius: 0 6px 0 0;
}
.item .animation-box .train .wagon .wheels {
  height: 6px;
  line-height: 6px;
  margin-left: 3px;
  margin-top: 14px;
}
.item .animation-box .train .wagon .wheels .wheel {
  background-color: var(--color-darkest);
  border-radius: 50%;
  display: inline-block;
  height: 6px;
  width: 6px;
}
.item .animation-box .train .wagon .wheels .wheel + .wheel {
  margin-left: 2px;
}
.item .animation-box .direction-arrow {
  height: 18px;
  position: relative;
}
.item .animation-box .direction-arrow .arrow {
  margin: 0;
  position: absolute;
}
.item .animation-box.direction-right .direction-arrow .arrow {
  /*right: 0;*/
}
/* Animate! */
.item .animation-box.animate .direction-right .bus .frame,
.item .animation-box.animate .direction-right .train .wagons,
.item .animation-box.animate .direction-right .direction-arrow .arrow {
  animation: ILikeTrains 5s linear 2s infinite;
}
.item .animation-box.animate .direction-left .bus .frame,
.item .animation-box.animate .direction-left .train .wagons,
.item .animation-box.animate .direction-left .direction-arrow .arrow {
  animation: IHateTrains 5s linear 2s infinite;
}
.item .animation-box.animate .bus .car .top,
.item .animation-box.animate .train .wagons .wagon:nth-child(even) {
  animation: RumblingUp 2s linear 2s infinite;
}
.item .animation-box.animate .bus .car .bottom,
.item .animation-box.animate .train .wagons .wagon:nth-child(odd) {
  animation: RumblingDown 2s linear 2s infinite;
}
body.night-mode .item .animation-box.animate .bus .car .light .shine {
  animation: Shiny 5s linear 2s infinite;
}
.item .animation-box.animate.rotate .bus .frame .car,
.item .animation-box.animate.rotate .bus .frame .car .part,
.item .animation-box.animate.rotate .train .wagons .wagon:nth-child(even) {
  animation: Surprise 5s linear 2s infinite;
}
.item .animation-box.animate.rotate .train .wagons .wagon:nth-child(odd) {
  animation: Surprise 5s linear 2s infinite reverse;
}
.item .animation-box.animate.rotate .bus .car .top .part,
.item .animation-box.animate.rotate .bus .car .top .part .window .dashboard,
.item .animation-box.animate.rotate .bus .car .top .part .window .dashboard > div,
.item .animation-box.animate.rotate .bus .car .top .part .window-frame .window .seat,
.item .animation-box.animate.rotate .bus .car .bottom .wheel {
  background-color: seagreen;
  border-color: seagreen;
}
.item .animation-box.animate.rotate .bus .frame .car .bottom {
  bottom: -18px;
}
.item .animation-box.animate.rotate .bus .frame .car .bottom .wheel {
  background-color: tomato;
  height: 32px;
  width: 32px;
}
.item .animation-box.animate.rotate .train .wagons .wagon:nth-child(even) {
  background-color: tomato;
}
.item .animation-box.animate.rotate .train .wagons .wagon:nth-child(odd) {
  background-color: mediumaquamarine;
}
@keyframes ILikeTrains {
  0%   {left:-100%;}
  5%   {left:-90%;}
  10%  {left:-80%;}
  15%  {left:-70%;}
  20%  {left:-60%;}
  25%  {left:-50%;}
  30%  {left:-40%;}
  35%  {left:-30%;}
  40%  {left:-20%;}
  45%  {left:-10%;}
  50%  {left:0%;}
  55%  {left:10%;}
  60%  {left:20%;}
  65%  {left:30%;}
  70%  {left:40%;}
  75%  {left:50%;}
  80%  {left:60%;}
  85%  {left:70%;}
  90%  {left:80%;}
  95%  {left:90%;}
  100% {left:100%;}
}
@keyframes IHateTrains {
  0%   {right:-100%;}
  5%   {right:-90%;}
  10%  {right:-80%;}
  15%  {right:-70%;}
  20%  {right:-60%;}
  25%  {right:-50%;}
  30%  {right:-40%;}
  35%  {right:-30%;}
  40%  {right:-20%;}
  45%  {right:-10%;}
  50%  {right:0%;}
  55%  {right:10%;}
  60%  {right:20%;}
  65%  {right:30%;}
  70%  {right:40%;}
  75%  {right:50%;}
  80%  {right:60%;}
  85%  {right:70%;}
  90%  {right:80%;}
  95%  {right:90%;}
  100% {right:100%;}
}
@keyframes RumblingUp {
  0%   {margin-top:1px;}
  25%  {margin-top:0px;}
  50%  {margin-top:1px;}
  75%  {margin-top:0px;}
  100% {margin-top:1px;}
}
@keyframes RumblingDown {
  0%   {margin-top:0;}
  25%  {margin-top:1px;}
  50%  {margin-top:0px;}
  75%  {margin-top:1px;}
  100% {margin-top:0px;}
}
@keyframes Shiny {
  0%   {opacity:0.8; transform: rotateZ(-18deg);}
  25%  {opacity:0.4;}
  50%  {opacity:0.8; transform: rotateZ(-18deg);}
  75%  {opacity:0.4;}
  100% {opacity:0.8; transform: rotateZ(-18deg);}
}
@keyframes Surprise {
  0%   {transform: rotate(0deg);}
  25%  {transform: rotate(90deg);}
  50%  {transform: rotate(180deg);}
  75%  {transform: rotate(270deg);}
  100% {transform: rotate(360deg);}
}

.item .detail-toggle a {
  color: #ddd;
  display: block;
}
.item .detail-toggle a.collapsed i {
  transform: rotateX(180deg);
}
.item .detail .stops {
  border: 1px solid #ddd;
  border-style: none solid;
}
.item .detail .stops .stop.first {
 padding-top: 1rem;
}
.item .detail .stops .stop {
  overflow: hidden;
}
.item .stops .stop:not(:first-child) .time-departure,
.item .stops .stop:not(:first-child) .station-name {
  margin-top: 0;
}
.item .stops .stop:last-child .time-departure {
  display: none;
}

#clock {
  border: 2px solid #222;
  border-radius: 50%;
  padding: 0.8rem;
}
#clock.default {
  background-color: #fff;
}
#clock.inverse {
  background: var(--color-dark);
  border-color: var(--color-dark);
}
.date-info {
  padding: 1.5rem;
}
.date-info * {
  margin: 0.5rem 0;
}

.scene {
  width: 100%;
  height: 264px;
  perspective: 600px;
}
.card {
  position: relative;
  width: 100%;
  height: 100%;
  /*cursor: pointer;*/
  transform-style: preserve-3d;
  transform-origin: center right;
  transition: transform 1s;
}
.card.is-flipped {
  transform: translateX(-100%) rotateY(-180deg);
}
.card__face {
  position: absolute;
  width: 100%;
  height: 100%;
  line-height: 260px;
  color: white;
  text-align: center;
  font-weight: bold;
  font-size: 40px;
  backface-visibility: hidden;
}
.card__face--front {

}
.card__face--back {

  transform: rotateY(180deg);
}

@media (max-width: 424px) {

  h1, .h1 {
    font-size: 32px;
  }
  h2, .h2 {
    font-size: 28px;
  }

  .item .teaser > div > .info-additional > .vehicle {
    padding-left: 0;
    padding-right: 0;
  }
  .item .teaser > div > .info-additional > .duration {
    padding-left: 5px;
  }
  .item .animation-box .box > div .frame {
    top: 18px;
  }

}

@media (max-width: 767px) {

  .navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
    color: #fff;
  }
  #nav-secondary.navbar-nav.pull-right {
    float: none !important;
  }
  #nav-secondary.navbar-nav.pull-right > li {
    display: inline-block;
  }
  .item .h3, .item h3 {
    font-size: 18px;
  }
  .item .teaser .info-vehicle {
    padding-right: 0;
  }
  .item .icon.icon-train {
    max-width: 20px;
  }
  .item .icon.icon-train-ic,
  .item .icon.icon-train-re {
    max-width: 38px;
  }
  .item .line {
    height: 30px;
    line-height: 30px;
  }
  .item .time-arrival {
    margin-bottom: 0;
  }
  .item .animation-box .box > div.bus {
    height: 82px;
    line-height: 82px;
  }

}

@media (min-width: 768px) {

  .item .line.vertical .start {
    margin-top: 8px;
  }
  .item .stops .stop:last-child .voyage {
    height: 54px;
  }

}

@media (min-width: 992px) {

  body {
    padding-top: 100px;
  }
  .dropdown-menu>li>a,
  .navbar,
  .navbar .navbar-nav {
    font-size: 2.2rem;
  }
  .navbar,
  .navbar .navbar-nav {
    min-height: 82px;
  }
  .navbar-nav>li>a {
    padding-bottom: 31px;
    padding-top: 31px;
  }

}

@media (min-width: 992px) and (max-width: 1100px) {

  .item .icon.icon-train-ic,
  .item .icon.icon-train-re {
    max-width: 38px;
  }

}