.map,
.map * {
  box-sizing: border-box;
  -ms-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}

.map {
  clear: both;
  position: relative;
  width: 100%;
  overflow: hidden;
  /**margin-top: 75px;**/
}

.maps-container {
  width: 100%;
  height: 0;
  padding-bottom: 40%;
  position: relative;
  overflow: hidden !important;
  background: #DECFC2;
  z-index: 3;
  /*margin-top: 30px;*/
}

.maps-container-inner {
  position: absolute;
  width: 100%;
  z-index: 3;
  height: 0;
  padding-bottom: 33.7%;
}

.map-control {
  width: 30px;
  height: 30px;
  cursor: pointer;
  position: absolute;
  right: 20px;
  z-index: 15;
  background-size: 15px 15px;
  margin-top:35px;
}

.map-control:hover {
  background-color:#ddd;
}

.map-instructions:hover {
  opacity:1;
  background-color: #fff;
}

#map-close-box {
  position: absolute;
  top: 201px;
  right: 23px;
  font-size: 0.8em;
  float: right;
  opacity: 0.7;
  color: #ff4466;
  cursor: pointer;
  z-index: 999;
}

#map-close-box:hover {
  opacity:1;
}

.map-control-zoomin {
  background: url(../images/zoom-in.svg) center no-repeat;
  top: 20px;
  background-color: #eee;
}

.map-control-zoomout {
  background: url(../images/zoom-out.svg) center no-repeat;
  top: 50px;
  background-color: #eee;
}

#instructions {
  z-index: 15;
  position: absolute;
  right:20px;
  margin-top:165px;
  cursor: pointer;
  opacity:0.5;
}

#instructions:hover {
  opacity:1;
}

.map-instructions {
  width: 200px;
  height: auto;
  padding: 20px;
  position: absolute;
  right: 20px;
  z-index: 15;
  margin-top:200px;
  background-color: #eee;
  opacity:0.8;
}

.map-image {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: #DECFC2;
}

.map-image svg,
.map-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
}

.marker-all {
  height: 280px;
  position: absolute;
  display: inline-block;
  z-index: 20;
  margin-left: -0.4%;
  margin-bottom: -0.1%;
  transform-origin: 0 100% 0;
  -moz-transform-origin: 0 100% 0;
  -webkit-transform-origin: 0 100% 0;
  -ms-transform-origin: 0 100% 0;
}

.maps-zoomed-container {
  position: absolute;
  width: 578%;
  height: 810%;
  transform: scale(0.155);
  transform-origin: 0 0;
  left: 0;
  top: 0px;
}

.marker-all:hover {
  z-index: 25;
}

.marker-all a {
  width: 100px;
  height: 100px;
  display: block;
  position: absolute;
  left: 0px;  
  border-radius: 50%;
  border: 10px solid #fff;
  background-color: #3fa7f8;
}

.marker-all a:before {
  content: "";
  position: relative;
  display: block;
  width: 300%;
  height: 300%;
  box-sizing: border-box;
  margin-left: -100%;
  margin-top: -100%;
  border-radius: 50%;
  border: 10px solid #fff;
  background-color: #01a4e9;
  -webkit-animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
  animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

#group-marker-info a {
  width: 100px;
  height: 100px;
  display: block;
  position: absolute;
  left: 0px;  
  border-radius: 50%;
  border: 10px solid #fff;
  background-color: #84e901!important;
}

#group-marker-info a:before {
  content: "";
  position: relative;
  display: block;
  width: 300%;
  height: 300%;
  box-sizing: border-box;
  margin-left: -100%;
  margin-top: -100%;
  border-radius: 50%;
  border: 10px solid #fff;
  background-color: #84e901;
  -webkit-animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
  animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

.pulsating-circle {
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translateX(-50%) translateY(-50%);
  width: 100px;
  height: 100px;
}
.pulsating-circle:before {
  content: "";
  position: relative;
  display: block;
  width: 300%;
  height: 300%;
  box-sizing: border-box;
  margin-left: -100%;
  margin-top: -100%;
  border-radius: 50%;
  border: 2px solid #fff;
  background-color: #01a4e9;
  -webkit-animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
          animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}
.pulsating-circle:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #3fa7f8;
  border-radius: 50%;
  border: 10px solid #fff;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
  -webkit-animation: pulse-dot 1.25s cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite;
          animation: pulse-dot 1.25s cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite;
}

@-webkit-keyframes pulse-ring {
  0% {
    transform: scale(0.33);
  }
  80%, 100% {
    opacity: 0;
  }
}

@keyframes pulse-ring {
  0% {
    transform: scale(0.33);
  }
  80%, 100% {
    opacity: 0;
  }
}
@-webkit-keyframes pulse-dot {
  0% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.8);
  }
}
@keyframes pulse-dot {
  0% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.8);
  }
}

.beacon:after {
  width: 20px;
  position: absolute;
  height: 20px;
  right: 0;
  left: 2px;
  top: 25px;
  border: 3px solid #3fa7f8;
  -webkit-border-radius: 30px;
  -webkit-animation: pulsate 2s ease-out;
  -webkit-animation-iteration-count: infinite;
  opacity: 0;
}

.map-box-header {
  display:block;
  font-size:2em;
  text-align: left;
  border-bottom:1px solid;
  padding-bottom:10px;
  margin-bottom:10px;
}

.map-box-text {
  display:block;
}

.marker-all span {
  width: auto;
  height: auto;
  display: none;
  background-color: #c4c4c4;
  z-index: 27;
  padding: 20px 150px;
  font-size: 7em;
  margin-left: 190px;
  color: #004576;
}

.marker-all:hover span {
  display: block;
}

.marker-group a {
  display: block;
  position: absolute;
  z-index: 11;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1, 1);
}

.marker-group span {
  display: none;
}

.marker-group a {
  -moz-opacity: 1;
  -khtml-opacity: 1;
  opacity: 1;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
  filter: alpha(opacity=100);
}

.marker-group a:hover {
  -moz-opacity: 1;
  -khtml-opacity: 1;
  opacity: 1;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
  filter: alpha(opacity=100);
}

#group-marker-maisr {
  left: 56%;
  bottom: 37%;
}

#group-marker-ntf {
  left: 52%;
  bottom: 34%;
}

#group-marker-info {
  left: 60%;
  bottom: 23%;
}

#group-marker-iesb {
  left: 50%;
  bottom: 48%;
}

#group-marker-smt {
  left: 52%;
  bottom: 43%;
}

#group-marker-14x22 {
  left: 38%;
  bottom: 53%;
}

#group-marker-vdt {
  left: 54.5%;
  bottom: 51.5%;
}

#group-marker-gantry {
  left: 25%;
  bottom: 92%;
}

#group-marker-aamtr {
  left: 47%;
  bottom: 89%;
}

#group-marker-as {
  left: 26.5%;
  bottom: 68.5%;
}

#group-marker-sacd {
  left: 30.8%;
  bottom: 73%;
}

#group-marker-arl {
  left: 33.8%;
  bottom: 68%;
}

#group-marker-fdrf {
  left: 39.8%;
  bottom: 67%;
}

#group-marker-crf {
  left: 70%;
  bottom: 42%;
}

#group-marker-vacuum-spheres {
  left: 60%;
  bottom: 61%;
}

#group-marker-hq {
  left: 63.5%;
  bottom: 43%;
}

#group-marker-am {
  left: 67.5%;
  bottom: 52%;
}

#group-marker-sim {
  left: 52%;
  bottom: 57%;
}


#group-marker-msl {
  left: 47%;
  bottom: 57%;
}

#group-marker-hangar {
  left: 83.5%;
  bottom: 22%;
}




/***************************
* SCROLLBARS
***************************/
.scrollbar,
.scrollbar .up,
.scrollbar .down,
.scrollbar .left,
.scrollbar .right,
.vertical-scrollbar .track .horizontal-scrollbar .track,
.scrollbar .track .dragBar {
  -moz-user-select: -moz-none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  border: 0;
  outline: none;
}

.scrollbar {
  position: absolute;
  background: #fff;
  visibility: hidden;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  transition: all 0.3s ease;
  -moz-opacity: 0.50;
  -khtml-opacity: 0.50;
  opacity: 0.50;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
  filter: alpha(opacity=50);
}

.scrollbar:hover {
  -moz-opacity: 1;
  -khtml-opacity: 1;
  opacity: 1;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
  filter: alpha(opacity=100);
}

.vertical-scrollbar {
  right: 0;
  top: 0;
  bottom: 0;
  width: 15px;
  height: auto;
}

.vertical-scrollbar:hover {
  width: 20px;
}

.vertical-scrollbar.visible {
  visibility: visible;
}

.horizontal-scrollbar {
  left: 0;
  right: 0;
  bottom: 0;
  width: auto;
  height: 15px;
}

.horizontal-scrollbar:hover {
  height: 20px;
}

.horizontal-scrollbar.visible {
  visibility: visible;
}

.scrollbar .up,
.scrollbar .down,
.scrollbar .left,
.scrollbar .right {
  width: 20px;
  height: 20px;
  position: absolute;
  background: #e6e6e6;
  cursor: pointer;
  background-repeat: no-repeat;
  background-size: 70%;
}

.scrollbar .up:hover,
.scrollbar .down:hover,
.scrollbar .left:hover,
.scrollbar .right:hover,
.scrollbar .track .dragBar:hover {
  background-color: #3a9d82;
}

.scrollbar .up {
  left: 0;
  top: 0;
  background-image: url("../images/icons/scrollbar-arrow-up.svg");
  background-position: center center;
  width: 100%;
}

.scrollbar .down {
  left: 0;
  bottom: 20px;
  background-image: url("../images/icons/scrollbar-arrow-down.svg");
  background-position: center center;
  width: 100%;
}

.scrollbar .left {
  left: 0;
  bottom: 0;
  background-image: url("../images/icons/scrollbar-arrow-left.svg");
  background-position: center center;
  height: 100%;
}

.scrollbar .right {
  right: 20px;
  bottom: 0;
  background-image: url("../images/icons/scrollbar-arrow-right.svg");
  background-position: center center;
  height: 100%;
}

.vertical-scrollbar .track {
  position: absolute;
  width: 100%;
  height: auto;
  left: 0;
  top: 20px;
  bottom: 40px;
  background: #f1f1f1;
  overflow: hidden;
}

.horizontal-scrollbar .track {
  position: absolute;
  width: auto;
  height: 100%;
  left: 20px;
  right: 40px;
  bottom: 0px;
  background: #f8f8f8;
  overflow: hidden;
}

.scrollbar .track .dragBar {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: #3a9d82;
  cursor: pointer;
  z-index: 10;
}

.vertical-scrollbar .track .dragBar {
  height: 33%;
  top: 33%;
  width: 100%;
}

.horizontal-scrollbar .track .dragBar {
  width: 33%;
  left: 33%;
  height: 100%;
}






/***************************
* RESPONSIVE STATES
***************************/

@media screen and (max-width: 1300px) {
  .maps-container {
    /**height: 500px;**/
    padding-bottom: 0;
  }

  .maps-container-inner {
    height: 0;
    padding-bottom: 32.5%;
  }
}

@media screen and (max-width: 1024px) {

  .maps-container {
    width: 100%;
    height: 484px;
    padding-bottom: 0;
    margin-top: 54px;
  }

  .map {
    margin-top: 0;
  }
}

@media screen and (max-width: 480px) {
  .maps-container {
    height: 300px;
  }
}
