body{
  padding: 0px;
  margin: 0px;
  font-size: 16px;
  background-color: #363881;
  color: #fff;
  font-family: 'Open Sans', sans-serif, Arial, Tahoma, Verdana;
}
body.ui-mobile-viewport,
body .ui-page,
.ui-mobile .ui-page-active{
  background-color: #564095;
  color: #fff;
  height: auto; 
  display: -moz-flex;
  display: -webkit-flex;
  display: -ie-flex;
  display: -o-flex;
  display: flex;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  -ie-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
}

#info {
  max-width: 100px;
  background-color: #7f72ad;
  color: white;
  opacity: 0.9;
  font-size: 8pt;
  margin: 3px;
  border: 1px solid white;
  padding: 3px;
}

#header{ 
  display: -moz-flex;
  display: -webkit-flex;
  display: -ie-flex;
  display: -o-flex;
  display: flex;
  -moz-justify-content: space-between;
  -webkit-justify-content: space-between;
  -ie-justify-content: space-between;
  -o-justify-content: space-between;
  justify-content: space-between;
  /*-moz-align-items: center;
  -webkit-align-items: center;
  -ie-align-items: center;
  -o-align-items: center;
  align-items: center;*/
  -moz-align-items: flex-end;
  -webkit-align-items: flex-end;
  -ie-align-items: flex-end;
  -o-align-items: flex-end;
  align-items: flex-end;
  clear: both;
  overflow: hidden;
  position: relative;
  padding: 20px;
  padding-bottom: 10px;
  height: auto;
}
#header h1{
  margin-bottom: 0px;
  margin-right: 20px;
  margin-top: 0px;
  overflow: hidden;
  position: relative;
}
#header h1 img{
  width: 100%;
  max-width: 200px;
}
a.link:link, a.link:visited, a.link:hover,  a.link:focus{
  color: white;
  text-shadow: none;
}
/* LOCATION */
#page{
  position: relative;
  overflow: hidden;
  padding: 0px;
  height: auto;
  max-width: 100%;
  margin: 20px;
  margin-top: 0px;
  -webkit-flex-grow: 2;
  -moz-flex-grow: 2;
  -ie-flex-grow: 2;
  -o-flex-grow: 2;
  flex-grow: 2;
   display: -moz-flex;
  display: -webkit-flex;
  display: -ie-flex;
  display: -o-flex;
  display: flex;
  flex-direction: column;
}
#location ul, #nolocation ul{
  border: 0px;
}
#location a, #nolocation a{
  display: block;
  text-decoration: none;
  padding: 7px;
  font-size: 0.9em;
}
#nolocation input{
  font-size: 1em;
  width: auto;
  max-width: 100%;
  margin-bottom: 10px;
  font-size: 0.9em;
}
#nolocation ul{
  max-height: 250px;
  overflow-y: auto;
  overflow-x: hidden;
}
.tab{
   display: -moz-flex;
  display: -webkit-flex;
  display: -ie-flex;
  display: -o-flex;
  display: flex;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  -ie-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
  -moz-flex-grow: 2;
  -webkit-flex-grow: 2;
  -ie-flex-grow: 2;
  -o-flex-grow: 2;
  flex-grow: 2;
}

#mapview{
  display: block;
  display: -moz-flex;
  display: -webkit-flex;
  display: -ie-flex;
  display: -o-flex;
  display: flex;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  -ie-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
  -moz-flex-grow: 2;
  -webkit-flex-grow: 2;
  -ie-flex-grow: 2;
  -o-flex-grow: 2;
  flex-grow: 2;
  position: relative;
}
#buttonrow{
  display: block;
  -moz-flex-grow: 1;
  -webkit-flex-grow: 1;
  -ie-flex-grow: 1;
  -o-flex-grow: 1;
  flex-grow: 1;
  clear: both;
}
#mapcontainer{
  display: block;
  -moz-flex-grow: 2;
  -webkit-flex-grow: 2;
  -ie-flex-grow: 2;
  -o-flex-grow: 2;
  flex-grow: 2;
  width: 100%;
  background-color: #ccc;
  margin-top: 10px;
}
#map{
  display: block;
  margin: 0px;
  width: 100%;
  min-height: 300px;
}
.olAlphaImg{
  cursor: pointer;
}
.gmnoprint{
  -moz-transition: 0.3s;
  -webkit-transition: 0.3s;
  transition: 0.3 s;

}

.buttonrow{
  width: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
.ui-mini{
  margin-left: 0px;
}
.ui-checkbox{
  width: auto;
  float: left;
}
.ui-btn.small{
  width: auto;
  max-width: 200px;
  margin-right: 10px;
}
.ui-dialog{
  padding-top: 30px;
}
.menu{
  list-style: none;
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  margin: 0px;
  padding: 0px;
}

.menu__item{
  display: block;
  float: left;
  cursor: pointer;
}
#languagemenu{
  position: absolute;
  top: 10px;
  right: 10px;
  width: auto;
  height: auto;
  font-size: 0.9em;
}
#tabmenu ul{
  position: relative;
  display: block;
  width: auto;
  float: left;
  overflow: hidden;
  margin: 0px;
  padding: 0px;
  margin-bottom: 10px;
}
#tabmenu li{
  display: block;
  float: left;
  padding: 5px 0px;
  margin: 0px;
  margin-left: 10px;
  background-color: #564095;
  color: white;
  cursor: pointer;
}
#tabmenu li img{
  width: auto;
  height: 100%;
  max-height: 36px;
  min-height: 16px;
}
#tabmenu li.active{
  display: none;
}
#languagemenu li{
  padding: 10px;
}
#languagemenu li.active{
  font-weight: bold;
  cursor: default;
  display: none;
}

.ui-selectmenu-open{
  max-height: 250px;
  overflow-y: scroll;
}
.ui-checkbox:disabled,
.ui-disabled, .ui-state-disabled, button[disabled], .ui-select .ui-btn.ui-state-disabled{
  background-color: #7f72ad;
  color: #564095;
}
.ui-checkbox:disabled label,
.ui-disabled label, .ui-state-disabled label, .ui-select .ui-btn.ui-state-disabled label{
  color: #564095;
}
.hide{
  display: none !important;
}
.show{
  display: block;
}
.info_bar {
  position: relative;
  min-height: 50px;
  width: 100%;
  display: block;
  height: auto;
  min-height: 50px;
  background-color: rgba(255,255,255,0.2);
  border-radius: 5px;
  display: flex;
  align-items: center;
}

.info_bar .close{
  cursor: pointer;
}
.loader_container{
  display: block;
}
#msg{
  display: inline-block;
  font-size: 0.9em;
  padding-left: 15px;
  flex-grow: 2;
}
.info_bar .close{
  padding: 10px;
  flex-grow: 0;
}
#map{
  max-width: 1920px;
}
.explanations{
 width: 100%; 
}
.zone{
  display: inline-block;
}
.dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px white solid;
  float: left;
  margin: 3px;
  margin-left: 10px;
}
.ol-control button{
  position: relative;
}
.ol-control button img{
  width: 100%;
  height: 100%;
}
#zoneA .dot{
  background-color: #00ACD5;
}
#zoneB .dot{
  background-color: #9fcd2f;
}
#zoneC .dot{
  background-color: #ef8ab6;
}
#zoneD .dot{
  background-color: #7f72ad;
}
#zoneE .dot{
  /*background-color: #FFB700;*/
  background-color: #39384e;
}
#zoneF .dot{
  background-color: #992222;
}

/*CLUSTERS ON MAP*/
.vilkku-cluster {
  width: 30px;
  height: 30px;
  text-align: center;
  font-size: 14px;
  line-height: 30px;
  border-radius: 50%;
  opacity: 0.5 !important;
  filter:alpha(opacity=50) !important;
}
.vilkku-clusterA {
  background-color: #0ab1c8;
}
.vilkku-clusterB {
  background-color: #9fcd2f;
}
.vilkku-clusterC {
  background-color: #ef8ab6;
}
.vilkku-clusterD {
  background-color: #7f72ad;
}
.vilkku-clusterE {
  /*background-color: #FFB700;*/
  background-color: #39384e;
}
.vilkku-clusterF {
  /*background-color: #FFB700;*/
  background-color: #992222;
}

#relocate{
  cursor: pointer;
  text-decoration: underline;
}

/*COOKIE SCRIPT STYLES*/
#cookiescript_injected,
#cookiescript_injected *{
  text-shadow: none;
}

/*MAP ELEMENTS*/
.stop-label {
  background: none;
  border: 0px;
  padding: 0px;
  font-size: 10px;
}

.busnumber{
  background: none;
  border-radius: 50%;
  font-size: 12px;
  line-height: 16px;
  color: white;
  width: 16px;
  height: 16px;
  border: 0px;
  box-shadow: none;
  text-align: center;
}

.you-are-here{
  width: 30px;
  height: 30px;
  margin-left: -15px;
  margin-top: -15px;
  opacity: 1;
  border: 2px white solid;
  background-color: #ef8ab6;
  border-radius: 50%;
  animation: fade 1s infinite alternate;
}
.you-are-here-label{
  background: none;
  border: 0px;
  padding: 0px;
  font-size: 10px;
}

@keyframes fade { 
  from { opacity: 0.5; width: 20px; height: 20px; margin-left: -10px; margin-top: -10px;} 
}

/*LOADER*/
.loader_container{
  padding: 9px;
}
.loader {
  border: 3px solid #f3f3f3; /* Light grey */
  border-top: 3px solid #0ab1c8; /* Blue */
  border-radius: 50%;
  width: 32px;
  height: 32px;
  animation: spin 2s linear infinite;
}
.success img, .error img{
  width: 32px;
  height: 32px;
}
.explanation{
  padding: 30px;
  font-size: 1.3em;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@media(max-width: 700px){
  body{
    font-size: 13px;
  }
  #header{
    -moz-justify-content: flex-start;
    -webkit-justify-content: flex-start;
    -ie-justify-content: flex-start;
    -o-justify-content: flex-start;
    justify-content: flex-start;
    margin-bottom: 0px;
    padding-bottom: 0px;
  }
  #header h1 img{
    max-width: 100px;
  }
  #header h1{
    float: left;
    display: block; 
    width: auto;
  }
  #tabmenu{
    float: left;
    display: block; 
    width: auto;
  }
  #tabmenu ul li img{
    max-height: 20px;
  }
  #tabmenu ul li{
    padding: 2px;
    line-height: 1.2em;
  }
  .loader_container{
    width: 25px;
    height: 25px;
    padding-top: 5px;
  }
  .loader, .error img, .success img{
    width: 24px;
    height: 24px;
  }
  .ui-btn, .ui-checkbox label{
  font-size: 1em;
  }
  #buttonrow{
     margin-top: 10px;
  }
}
@media(max-width: 400px){
  .dot{
    margin: 2px;
    margin-left: 5px;
  }
}