/* roboto-100 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100;
  src: local(''),
       url('../fonts/roboto-v20-latin-100.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-100.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local(''),
       url('../fonts/roboto-v20-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-500 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: local(''),
       url('../fonts/roboto-v20-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: local(''),
       url('../fonts/roboto-v20-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}


/*-------------------------------------------*\
    HTML
\*-------------------------------------------*/

*, *:before, *:after {
    box-sizing: border-box;
}

:root {
  --animate-duration: 800ms;
}

html, body {
    margin: 0;
    padding: 0;
    color: #fff;
    font-family: 'Roboto';
    font-weight: 400;
    font-size: 16px;
    background-color: #000;
}

h1 {
  font-weight: 400;
  font-size: 30px;
  margin: 0px 0 0 0;
}

h2 {
	font-size: 16px;
  margin: 0 0 2px 0;
}

h2 span {
  color:#f3901d
}

h3 {
	font-family: 'Roboto';
  font-weight: 400;
	font-size: 17px;
	margin: 0 0 13px 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

p {
  line-height: 28px;
  margin: 0 0 13px 0;
}

#btnFullscreen {
  position: absolute;
  background-color: #fff;
  right: 1%;
  bottom: 1%;
  width: 50px;
  height: 50px;
  cursor: pointer;
  
}

#btnFullscreen::before {
  content: '';
  background-color: #006bb3;
  width: 100%;
  height: 100%;
  position: absolute;
  -webkit-mask: url(../media/icon_fullscreen_negativ.svg) no-repeat;
  mask: url(../media/icon_fullscreen_negativ.svg) no-repeat;
  mask-size: 90%;
  mask-position: center;
}

.techtxt{
	font-size: 11px;
	line-height: 15px;
	color: #999;
	border: 1px solid #999;
	padding: 12px;
}

.container {
    display: grid;
    grid-template-rows: 1fr;
    align-items: center;
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

input {
  display: none;
}

.infoBox {
    width: 550px;
    min-height: 50px;
    background-color: rgba(30, 30, 30, 0.94);
    z-index: 3;
    border: 3px solid #006bb3;
    position: absolute;
    right: 5%;
    top: 35%;
    opacity: 0;
    padding: 50px;
    pointer-events: none;
}

#btnClose {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 1;
  width: 20px;
  height: 20px;
  background-image: url(../media/close.svg);
  background-size: cover;
  cursor: pointer;
}

.infoBox h2 {
  color: #006bb3;
}

.infoBox img {
  position: relative;
  width: 100%;
  margin-top: -150px;
}

.infoBox .btnVarianten {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 5px;
  margin: -40px 0 40px 0;
}

.infoBox .btnVarianten div {
  background-color:rgba(255, 255, 255, 0.2);
  color: #fff;
  text-align: center;
  padding: 10px 0;
  text-transform: uppercase;
  opacity: 0.4;
  cursor: pointer;
}

.infoBox .btnVarianten div.active {
  opacity: 1;
}

/* .show {
  opacity: 1 !important;
  transition-duration: 0.1s !important;
} */

.animate__instant {
  animation-duration: 0.1s;
}


/*-------------------------------------------*\
    SVG
\*-------------------------------------------*/

:root {
  --animate-delay: 0.2s;
}

svg {
    margin-bottom: 8%;
}

.Overlay {
  opacity: 0;
  display: none;
  transition-duration: 2s;
}

.Overlay_Animholder {
  opacity: 0;
  display: none;
  /* transition-duration: 1s; */
}

svg #Masken .st2 {
    cursor: pointer;
    fill: #0c78f2;
    opacity: 0.0;
    transition-duration: 0.4s;
}

svg #Masken .st1:hover #Active, svg #Masken .selected #Active {
    opacity: 0.5;
    
}

svg #Masken g.st1:hover .st2, svg #Masken g.selected .st2 {
  opacity: 0.2;
}

svg .st1 {
    position: relative;
}

.hotspots foreignObject {
  overflow: visible;
  pointer-events: none;
}

.hotspots div {
  width: 100%;
  height: 100%;
  background-image: url(../media/hotspot.svg);
  background-size: contain;
  cursor: pointer;
  /* pointer-events: visible; */
}

.hotspots div::before {
  content: '';
  width: 100%;
  height: 100%;
  border: 3px solid #0065ab;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  transform: scale(0.9);
  transform-origin: center center;
  z-index: 2;
  animation: pulse-me 6s linear infinite;
  opacity: 0;
  border-radius: 50%;
}
.hotspots div:before {
  animation-delay: 1s;
}

.hotspots div span {
  background-color: #333;
  color: #fff;
  padding: 13px 50px;
  font-size: 30px;
  position: absolute;
  left: 50%;
  top: -45%;
  white-space: nowrap;
  z-index: -1;
  opacity: 0;
  /* transform-origin: left bottom;
  transform: scaleX(0) scaleY(0); */
}

@keyframes pulse-me {
  0% {
    transform: scale(0.9);
    opacity: 0.2;
  }
  10% {
    opacity: 0.9;
  }
  25% {
    transform: scale(2.0);
    opacity: 0;
  }
    100% {
    opacity: 0;
  }
}

.hotspots {
  cursor: pointer;
}

/*-------------------------------------------*\
    Responsive
\*-------------------------------------------*/

@media only screen and (max-width: 1920px){
    .infoBox {
      width: 550px;
      top: 20%;
  }
  .hotspots foreignobject {
    width: 60px;
    height: 60px;
  }
}

@media only screen and (max-width: 1440px){
  .infoBox {
    width: 500px;
    top: 10%;
}
.hotspots foreignobject {
  width: 80px;
  height: 80px;
}
}

@media only screen and (min-aspect-ratio: 16/8){
  .infoBox {
    padding: 25px;
  }
  .infoBox img {
    width: 60%;
    margin: -100px auto 0 auto;
    display: flex;
  }

  .infoBox .btnVarianten {
    margin: -40px 0 20px 0;
  }
  p {
    line-height: 24px;
  }
}

@media only screen and (max-width: 1024px){
  .infoBox {
    width: 350px;
    top: 10%;
    padding: 25px;
  }
  .hotspots foreignobject {
    width: 120px;
    height: 120px;
  }
  .hotspots div span {
    padding: 33px 100px;
    font-size: 60px;
    left: 50%;
    top: -45%;
    white-space: nowrap;
  }
  html, body {
    font-size: 14px;
  }

  h1 {
    font-size: 25px;
  }

  h2 {
    font-size: 16px;
  }

  h3 {
    font-size: 18px;
  }

  p {
    line-height: 24px;
  }
}