img {
  width: 550px;
  height: auto;
}

#reveal{
  width: 60px;
  height: 60px;
  background-color: #25aae1;
  border-radius: 50%;
  margin-left: 0;
  text-align: center;
  cursor: pointer;
  transition: height .3s ease-in-out,
              width .3s ease-in-out,
              border-radius .3s ease-in-out,
              margin .3s ease-in-out;
}

#reveal > img{
  width: 40px;
  margin: 10px 0;
}

.img-hotspot-reveal-content{
  width: 550px;
  height: 310px;
  padding: 10px;
  background-color: #fff;
  opacity: 0;
  text-align: center;
  pointer-events: none;
  transition: opacity .01s ease-in-out;
}

.img-hotspot-reveal-content img{
  width: 120px;
  opacity: 0;
  transition: width .01s ease-in-out,
              opacity .01s ease-in-out;
}

.img-hotspot-reveal-content p{
  margin: 10px 0;
  color: #2d2d2d;
  margin-top: -20px;
  opacity: 0;
  transition: margin .01s ease-in-out,
              opacity .01s ease-in-out;
}

.img-hotspot-reveal-content capinfo{
  background-color: rgba(58,68,84,0.6);
}

#reveal:hover{
  width: 550px;
  height: 310px;
  border-radius: 5px;
  margin-left: -50px;
}

#reveal:hover .reveal-content{
  opacity: 1;
  pointer-events: all;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  transition: opacity .3s ease-in-out .3s;
}

#reveal:hover .reveal-content img{
  width: 550px;
	height: 255px;
  opacity: 1;
  transition: width .3s ease-in-out .4s,
              opacity .3s ease-in-out .4s;
}

#reveal:hover .reveal-content p{
  margin-top: 10px;
  opacity: 1;
  transition: margin .3s ease-in-out .6s,
              opacity .3s ease-in-out .6s;
}





* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-text-size-adjust: none;
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
  -ms-content-zooming: none;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}



/* img hotspot */

.img-hotspot {
  line-height: 1.2em;
  opacity: 0.9;
  transition: opacity 0.2s 0.2s;
  z-index: 2;
}

.no-touch .img-hotspot:hover {
  opacity: 1;
  transition: opacity 0.2s;
}

.img-hotspot.visible {
  opacity: 1;
}

.img-hotspot .img-hotspot-header {
  width: 60px;
  height: 60px;
  border-radius: 40px;
  /* background-color: rgb(103,115,131);
  background-color: rgb(187,147,24); */
  background-color: #25aae1;
  cursor: pointer;
  transition: width 0.3s ease-in-out 0.5s,
              border-radius 0.3s ease-in-out 0.5s;
}

.mobile .img-hotspot .img-hotspot-header {
  width: 50px;
  height: 50px;
  border-radius: 25px;
}

.desktop.no-touch .img-hotspot .img-hotspot-header:hover {
  width: 550px;
  border-radius: 5px;
  transition: width 0.3s ease-in-out,
              border-radius 0.3s ease-in-out;
}

.desktop .img-hotspot.visible .img-hotspot-header,
.desktop.no-touch .img-hotspot.visible .img-hotspot-header:hover {
  width: 550px;
  border-radius: 5px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  transition: width 0.3s ease-in-out,
              border-radius 0.3s ease-in-out;
}

.img-hotspot .img-hotspot-icon-wrapper {
  width: 44px;
  height: 44px;
}

.mobile .img-hotspot .img-hotspot-icon-wrapper {
  width: 44px;
  height: 44px;
}

.img-hotspot .img-hotspot-icon {
  width: 90%;
  height: 90%;
  margin: 23%;
}

.img-hotspot .img-hotspot-title-wrapper {
  position: absolute;
  left: 54px;
  top: 6px;
  width: 0;
  height: 50px;
  padding: 0;
  overflow: hidden;
  transition: width 0s 0.4s,
              padding 0s 0.4s;
}

.desktop .img-hotspot.visible .img-hotspot-title-wrapper,
.desktop.no-touch .img-hotspot .img-hotspot-header:hover .img-hotspot-title-wrapper {
  width: 550px;
  padding: 0 5px;
  transition: width 0s 0.4s,
              padding 0s 0.4s;
}

.img-hotspot .img-hotspot-title-wrapper:before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

.img-hotspot .img-hotspot-title {
  display: inline-block;
  vertical-align: middle;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.img-hotspot .img-hotspot-close-wrapper {
  position: absolute;
  left: 490px;
  top: 0;
  height: 60px;
  width: 60px;
  border-top-right-radius: 5px;
  background-color: #25aae1;
  visibility: hidden;
  -ms-transform: perspective(200px) rotateY(90deg);
  -webkit-transform: perspective(200px) rotateY(90deg);
  transform: perspective(200px) rotateY(90deg);
  -ms-transform-origin: 0 50% 0;
  -webkit-transform-origin: 0 50% 0;
  transform-origin: 0 50% 0;
  transition: -ms-transform 0.3s 0.3s,
              -webkit-transform 0.3s 0.3s,
              transform 0.3s 0.3s,
              visibility 0s 0.6s;
  -webkit-transition: -webkit-transform 0.3s 0.3s,
                      visibility 0s 0.6s;
}

.desktop .img-hotspot.visible .img-hotspot-close-wrapper {
  visibility: visible;
  -ms-transform: perspective(200px) rotateY(0deg);
  -webkit-transform: perspective(200px) rotateY(0deg);
  transform: perspective(200px) rotateY(0deg);
  transition: -ms-transform 0.3s,
              -webkit-transform 0.3s,
              transform 0.3s,
              visibility 0s 0s;
  -webkit-transition: -webkit-transform 0.3s,
                      visibility 0s 0s;
}

.img-hotspot .img-hotspot-close-icon {
  width: 70%;
  height: 70%;
  margin: 15%;
}

.img-hotspot .img-hotspot-photo {
  width: 550px;
  height: auto;
  max-height: 500px;
  padding: 10px;
  background-color: rgba(0,0,0,0.8);
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
}
.img-hotspot .img-hotspot-photo {
  position: absolute;
  width: 550px;
  height: auto;
  max-height: 500px;
  left: 0;
  top: 60px;
  padding: 10px;
  background-color: rgba(0,0,0,0.8);
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
	border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
  /* border-top-right-radius: 5px;
  border-top-left-radius: 5px;
	border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px; */
  overflow-y: auto;
  visibility: hidden;
  -ms-transform: perspective(200px) rotateX(-90deg);
  -webkit-transform: perspective(200px) rotateX(-90deg);
  transform: perspective(200px) rotateX(-90deg);
  -ms-transform-origin: 50% 0 0;
  -webkit-transform-origin: 50% 0 0;
  transform-origin: 50% 0 0;
  /*
  -ms-transform: perspective(200px) rotateX(90deg);
  -webkit-transform: perspective(200px) rotateX(90deg);
  transform: perspective(200px) rotateX(90deg);
  -ms-transform-origin: bottom center;
  -webkit-transform-origin: bottom center;
  transform-origin: bottom center; */
  transition: -ms-transform 0.3s,
              -webkit-transform 0.3s,
              transform 0.3s,
              visibility 0s 0.3s;
  -webkit-transition: -webkit-transform 0.3s,
                      visibility 0s 0.3s;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.desktop .img-hotspot.visible .img-hotspot-photo {
  visibility: visible;
  -ms-transform: perspective(200px) rotateX(0deg);
  -webkit-transform: perspective(200px) rotateX(0deg);
  transform: perspective(200px) rotateX(0deg);
  transition: -ms-transform 0.3s 0.3s,
              -webkit-transform 0.3s 0.3s,
              transform 0.3s 0.3s,
              visibility 0s 0s;
  -webkit-transition: -webkit-transform 0.3s 0.3s,
                      visibility 0s 0s;
}









.img-hotspot .img-hotspot-text {
  width: 5500px;
  height: auto;
  max-height: 500px;
  padding: 10px;
  background-color: rgba(0,0,0,0.8);
  /* border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px; */
}
.img-hotspot .img-hotspot-text {
  position: absolute;
  width: 550px;
  height: auto;
  max-height: 500px;
  bottom: 60px;
  left: 0;
  padding: 10px;
  background-color: rgba(0,0,0,0.8);
  /* border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px; */
  border-top-right-radius: 5px;
  border-top-left-radius: 5px;
  overflow-y: auto;
  visibility: hidden;
  -ms-transform: perspective(200px) rotateX(90deg);
  -webkit-transform: perspective(200px) rotateX(90deg);
  transform: perspective(200px) rotateX(90deg);
  -ms-transform-origin: bottom center;
  -webkit-transform-origin: bottom center;
  transform-origin: bottom center;
  /* -ms-transform: perspective(200px) rotateX(-90deg);
  -webkit-transform: perspective(200px) rotateX(-90deg);
  transform: perspective(200px) rotateX(-90deg);
  -ms-transform-origin: 50% 0 0;
  -webkit-transform-origin: 50% 0 0;
  transform-origin: 50% 0 0; */
  transition: -ms-transform 0.3s,
              -webkit-transform 0.3s,
              transform 0.3s,
              visibility 0s 0.3s;
  -webkit-transition: -webkit-transform 0.3s,
                      visibility 0s 0.3s;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.desktop .img-hotspot.visible .img-hotspot-text {
  visibility: visible;
  -ms-transform: perspective(200px) rotateX(0deg);
  -webkit-transform: perspective(200px) rotateX(0deg);
  transform: perspective(200px) rotateX(0deg);
  transition: -ms-transform 0.3s 0.3s,
              -webkit-transform 0.3s 0.3s,
              transform 0.3s 0.3s,
              visibility 0s 0s;
  -webkit-transition: -webkit-transform 0.3s 0.3s,
                      visibility 0s 0s;
}

/* img hotspot modal */

.desktop .img-hotspot-modal {
  display: none;
}

.img-hotspot-modal {
  top: 0;
  left: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 11000 !important;
  background-color: rgba(0,0,0,.5);
  line-height: 1.2em;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease-in-out 0.5s,
              visibility 0s 0.7s;
}

.img-hotspot-modal.visible {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.2s ease-in-out,
              visibility 0s 0s;
}

.img-hotspot-modal .img-hotspot-header {
  position: absolute;
  top: 60px;
  left: 10px;
  right: 10px;
  width: auto;
  height: 50px;
  background-color: rgb(103,115,131);
  background-color: rgba(103,115,131,0.8);
  opacity: 0;
  transition: opacity 0.3s ease-in-out 0.2s;
}

.img-hotspot-modal.visible .img-hotspot-header {
  opacity: 1;
  transition: opacity 0.3s ease-in-out 0.2s;
}

.img-hotspot-modal .img-hotspot-icon-wrapper {
  width: 50px;
  height: 50px;
}

.img-hotspot-modal .img-hotspot-icon {
  width: 90%;
  height: 90%;
  margin: 5%;
}

.img-hotspot-modal .img-hotspot-title-wrapper {
  position: absolute;
  top: 0;
  left: 50px;
  right: 50px;
  width: auto;
  height: 50px;
  padding: 0 10px;
}

.img-hotspot-modal .img-hotspot-title-wrapper:before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

.img-hotspot-modal .img-hotspot-title {
  display: inline-block;
  vertical-align: middle;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.img-hotspot-modal .img-hotspot-close-wrapper {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  background-color: rgb(78,88,104);
  background-color: rgba(78,88,104,0.8);
  cursor: pointer;
}

.img-hotspot-modal .img-hotspot-close-icon {
  width: 70%;
  height: 70%;
  margin: 15%;
}

.img-hotspot-modal .img-hotspot-photo {
  position: absolute;
  width: 95%;
  height: auto;
  top: 110px;
  bottom: 10px;
  left: 10px;
  right: 10px;
  padding: 10px;
  background-color: rgb(58,68,84);
  background-color: rgba(58,68,84,0.8);
  overflow-y: auto;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.img-hotspot-modal.visible .img-hotspot-photo {
  opacity: 1;
  transition: opacity 0.3s ease-in-out 0.4s;
}

.img-hotspot-modal .img-hotspot-text {
	/*display: none;*/
  position: absolute;
  z-index: 1;
  bottom: 10px;
  left: 10px;
  right: 10px;
  padding: 10px;
  background-color: rgb(58,68,84);
  background-color: rgba(58,68,84,0.8);
  overflow-y: auto;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;

  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
	
}

.img-hotspot-modal.visible .img-hotspot-text {
	/*display: none;*/
  opacity: 1;
  transition: opacity 0.3s ease-in-out 0.4s;

  }
  
@media (max-width: 600px) {
  .img-hotspot .img-hotspot-icon {
    margin: 10%;
  }
}