/**********************************************
 * Counter
 **********************************************/
.gh-counter .gh-counter-number-wrapper {
  font-size: 69px;
  font-weight: 600;
  line-height: 1;

  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;;
}

.gh-counter .gh-counter-number-suffix {
  white-space: pre-wrap;

  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;;
}

.gh-counter .gh-counter-number-suffix {
  text-align: left;
}

.gh-counter .gh-counter-title {
  font-size: 19px;
  font-weight: 400;
  line-height: 2.5;
}

/**********************************************
 * Image Map
 **********************************************/
.image-map {
  position: relative;
}

.image-map--left {
  margin-right: auto;
  margin-left: 0;
}

.image-map--center {
  margin-right: auto;
  margin-left: auto;
}

.image-map--right {
  margin-right: 0;
  margin-left: auto;
}

.image-map__item,
.image-map__svg,
.image-map__overlay {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
}

.image-map__item,
.image-map__overlay {
  pointer-events: none;
}

.image-map__item {
  transition: opacity .3s ease-in-out;

  opacity: 0;
}

.image-map__item.active {
  pointer-events: auto;

  opacity: 1;
}

.image-map__area {
  cursor: pointer;
}

/**********************************************
 * Hotspots
 **********************************************/
.elementor-widget-hotspots {
  margin: 0 auto;
}

.gh-hotspots__floor-plan {
  position: relative; 
}

.gh-hotspots__bg img {
  width: 100%;
  vertical-align: top;
}

.gh-hotspots .gh-hotspots__dot {
  position: absolute;
  top: 0;
  left: 0;

  width: 5vw;
  height: 5vw;
  max-width: 50px;
  max-height: 50px;

  transition: opacity .3s ease-in-out;
  cursor: pointer;
}

.gh-hotspots .gh-hotspots__dot:before {
  width: 70%;
  height: 70%;
  background-color: var(--e-global-color-accent);
  border-radius: 50%;
  position: absolute;
  top: 15%;
  left: 15%;
  content: '';
}

.gh-hotspots .gh-hotspots__dot:after {
  border: 5px solid var(--e-global-color-accent);
  -webkit-border-radius: 30px;
  height: 90%;
  width: 90%;
  position: absolute;
  left: 5%;
  top: 5%;
  -webkit-animation: pulsate 1.6s ease-out;
  -webkit-animation-iteration-count: infinite; 
  opacity: 0.0;
  content: '';
}

@-webkit-keyframes pulsate {
  0% {-webkit-transform: scale(0.1, 0.1); opacity: 0.0;}
  50% {opacity: 1.0;}
  100% {-webkit-transform: scale(1.2, 1.2); opacity: 0.0;}
}

.gh-hotspots__image {
  display: none;
  opacity: 0;
  transition: opacity .3s ease-in-out;
  position: relative;
  cursor: pointer;

}

.gh-hotspots__image img {
  vertical-align: top;
}

.gh-hotspots__image.active {
  display: block;
  opacity: 1;
}

.gh-hotspots__image:after {
  content: '';
  position: absolute;
  top: 30px;
  right: 0px;
  width: 40px;
  height: 4px;
  background-color: var(--e-global-color-accent);
  transform: translate(-50%, -50%) rotate(45deg);
}

.gh-hotspots__image:before {
  content: '';
  position: absolute;
  top: 30px;
  right: 0px;
  width: 40px;
  height: 4px;
  background-color: var(--e-global-color-accent);
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media only screen and (max-width: 600px ) {
  .gh-hotspots .gh-hotspots__dot {
    width: 8vw;
    height: 8vw;
  }
}

@media only screen and (max-width: 899px ) {
  .elementor-widget-hotspots {
    max-width: none !important;
  }
  .gh-hotspots__image {
    top: auto !important;
    left: auto !important;
  }
}

@media only screen and (min-width: 900px ) {
  .gh-hotspots__image {
    position: absolute;
    width: 40%;
    -webkit-box-shadow: -5px 5px 15px 5px rgba(0,0,0,0.4); 
    box-shadow: -5px 5px 15px 5px rgba(0,0,0,0.4);
    translate: 0 -50%;  
    z-index: 300;  
  }
}