@font-face {
    font-family: 'Space Grotesk';
    src: url('../fonts/SpaceGrotesk-VariableFont_wght.ttf');
}

@font-face {
    font-family: 'TradeGothic LT Extended';
    src: url('../fonts/TradeGothicLT-Extended.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TradeGothic LT';
    src: url('../fonts/TradeGothicLT.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --color-primary: #161616;
    --color-accent: #262626;
    --color-secondary: #eeeeee;
    --color-white: #F9FAFF;
    --color-disabled: #dddddd;
    --color-transparent-overlay: rgba(120, 120, 120, 0.6);;

    --animated-arch-final-size: 200%;

    --padding-container: 75px;
    --menu-height: 70px;

    --animation-timing: 600ms;
    --animation-easing: ease-in-out;

    --font-alternative: 'TradeGothic LT', sans-serif;
    --font-alternative-extended: 'TradeGothic LT Extended', sans-serif;

    --font-title-big-size: 40.5px;
    --font-title-big-height: 107.5px;
    --font-title-big-weight: 500;

    --font-title: 'Space Grotesk', sans-serif;
    --font-title-size: 17.5px;
    --font-title-height: 40.5px;
    --font-title-weight: 700;

    --font-body: 'Space Grotesk', sans-serif;
    --font-body-weight: 400;
    --font-body-size: 25.5px;
    --font-body-height: 42.5px;

    --font-body-small-size: 16px;
    --font-body-small-height: 26px;

    --font-modal-title-weight: 600;
    --font-modal-title-size: 33.5px;
    --font-modal-title-height: 33.5px;

    --font-modal-subtitle-size: 21.5px;
    --font-modal-subtitle-height: 33.5px;

    --font-modal-text-size: 16px;
    --font-modal-text-height: 26px;

    --font-modal-detail: 'Space Grotesk', sans-serif;
    --font-modal-detail-size: 13.5px;
    --font-modal-detail-height: 15.5px;
    --font-modal-detail-weight: 700;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    list-style: none;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

::-moz-selection {
  background: transparent;
}

::selection {
  background: transparent;
}

body {
    font-family: var(--font-body);
    font-size: var(--font-body-size);
	overflow: hidden;
	box-sizing: border-box;
	background-color: var(--color-white);
    color: var(--color-primary);
	min-width: 100vw;
	min-height: 100vh;
}

::-webkit-scrollbar {
    width: 0;
}

#portrait-blocker {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(20px);
    z-index: 1000;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--color-disabled);
    padding: var(--padding-container);
    text-align: center;
}

#portrait-blocker img {
    margin-bottom: var(--padding-container);
    width: calc(3 * var(--padding-container));
}

#videoIntro-container {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100vh;
    background-color: var(--color-primary);
    z-index: 10000;
}

#videoIntro-skip {
    position: absolute;
    color: var(--color-disabled);
    top: var(--padding-container);
    right: var(--padding-container);
    font-size: var(--font-body-size);
    cursor: pointer;
    z-index: 1000;
}

#videoIntro {
    width: 100%;
    height: 100vh;
}

.joystick {
    position: fixed;
    bottom: var(--padding-container);
    width: 100px;
    height: 100px;
    z-index: 1000;
    border-radius: 100%;
    border: 3px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.5) inset, 0 0 5px rgba(0, 0, 0, 0.2);
    transition: border-color 0.3s;
    cursor: pointer;
    touch-action: none;
    display: none;
    pointer-events: none;
}

.joystick-stick {
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 25px);
    height: 50px;
    width: 50px;
    border-radius: 100%;
    background: #888;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.7) inset;
    transition: background 0.3s;
    will-change: transform;
    touch-action: none;
}

.joystick.hidden {
    display: none;
    pointer-events: none;
}

#joystick-rotate {
    right: calc(2 * var(--padding-container));
}

#joystick-move {
    left: calc(2 * var(--padding-container));
}

.VTOUR-toast-message {
    position: fixed;
    bottom: calc(3 * var(--padding-container));
    padding: var(--padding-container);
    background-color: var(--color-accent);
    color: var(--color-secondary);
    right: -100%;
    transition: right var(--animation-timing) var(--animation-easing);
    transition-delay: var(--animation-timing);
    z-index: 100;
}

.VTOUR-toast-message.visible {
    right: var(--padding-container);
}

.VTOUR-toast-close {
    position: absolute;
    top: 0;
    left: 0;
    font-size: var(--font-body-size);
    line-height: var(--font-body-size);
    padding: calc(var(--padding-container) / 4);
    cursor: pointer;
}

#VTOUR-mouse-layer {
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    z-index: 90;
    background-color: rgba(0, 0, 0, 0);
    transition: background-color 4s ease-in;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-alternative-extended);
    font-size: 20px;
    color: var(--color-white);
}

#VTOUR-mouse-layer.fadeout {
    background-color: rgba(0, 0, 0, 1);
}

#loading-screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-primary);
    opacity: 1;
    transition: 200ms opacity;
}

#VTOUR-countdown {
    position: fixed;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    font-size: var(--font-title-big-size);
}

#loading-screen.hidden {
    display: none;
}

#loading-screen.visible {
    display: block;
    background-color: transparent;
}

#percent {
    font-size: var(--font-body);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    color: #888;
}

#loader {
    display: block;
    position: absolute;
    top: calc(50% - 60px);
    left: calc(50% - 60px);
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #ccc;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

#loader:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #999;
    -webkit-animation: spin 3s linear infinite;
    animation: spin 3s linear infinite;
}

#loader:after {
    content: "";
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    bottom: 10px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #ddd;
    -webkit-animation: spin 1.5s linear infinite;
    animation: spin 1.5s linear infinite;
}

#VTOUR-vtour-container {
    pointer-events: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 110;
}

#VTOUR-main-canvas {
    z-index: 98;
}

#VTOUR-logo-container {
    pointer-events: auto;
    z-index: 30;
    position: fixed;
    width: 100%;
    height: 100vh;
    left: 0;
    top: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--color-primary);
    justify-content: center;
    align-items: center;
    
}

.VTOUR-animated-arch-layer {
    opacity: 0.6;
    position: absolute;
    width: 100%;
    height: 100vh;
    left: 0;
    top: 0;
    background-image: url("../img/arch.png");
    background-repeat: no-repeat;
    background-size: 0%;
    background-position: bottom 20% center;
    animation: archAnimation calc(2 * var(--animation-timing)) var(--animation-easing) calc(var(--number) * 0.4 * var(--animation-timing)) forwards;
}

@keyframes archAnimation {
    from { background-size: 0%; }
    to { background-size: calc(var(--animated-arch-final-size) - calc(var(--animated-arch-final-size) / 10) * var(--number)); }
}

#VTOUR-logo-container.flex-center {
    align-items: center;
    justify-content: center;
}

#VTOUR-language-selection-container {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

#VTOUR-language-selection-container button {
    margin: 0 20px;
    width: 200px;
    height: 50px;
    border: 0;
    background-color: var(--color-white);
    cursor: pointer;
    transition: all var(--animation-timing) var(--animation-easing);
}

#VTOUR-language-selection-container button:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
}

#VTOUR-language-selection-container h2 {
    color: var(--color-white);
    font-weight: normal;
    font-size: 21px;
    line-height: 34px;
    text-align: center;
}

#VTOUR-language-selection-buttons-container {
    margin-top: var(--padding-container);
}

#VTOUR-logo,
.menu-logo {
    width: 328px;
    height: 25px;
    background-image: url("../icons/logo-monuverse.png");
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    position: fixed;
    top: var(--padding-container);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1020;
}

.menu-logo {
    position: absolute;
    z-index: 1040;
}

#VTOUR-brand {
    font-size: 32px;
    color: var(--color-primary);
    text-align: center;
    padding: 0 2vh;
}

#VTOUR-brand span {
    font-size: 1.2em;
}

#VTOUR-author {
    color: var(--color-white);
    position: fixed;
    bottom: var(--padding-container);
    left: var(--padding-container);
    z-index: 1000;
    font-family: var(--font-alternative-extended);
    font-size: 32px;
    line-height: 40px;
    font-weight: 700;
    pointer-events: auto;
}

#VTOUR-vr-hint {
    color: var(--color-white);
    position: fixed;
    bottom: var(--padding-container);
    right: var(--padding-container);
    z-index: 1000;
    font-family: var(--font-alternative-extended);
    font-size: 14px;
    line-height: 16px;
    letter-spacing: -0.25px;
    pointer-events: auto;
}

#VTOUR-vr-hint:before {
    content: '';
    position: absolute;
    right: calc(100% + 15px);
    top: -4px;
    width: 36px;
    height: var(--font-body-small-height);
    background-image: url("../icons/oculus.png");
    background-size: contain;
    background-repeat: no-repeat;
}

#VTOUR-3dd-logo {
    width: 12vh;
    height: 4vh;
    background-image: url("../icons/3dd-logo.png");
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    vertical-align: middle;
    margin-left: 1em;
}

#VTOUR-startVtour-container {
    padding: var(--padding-container);
    position: absolute;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    background-color: rgba(0, 0, 0, 0.4);
}

.presentation-icon {
    width: 50px;
    height: 30px;
    margin-bottom: 30px;
    background-image: url("../icons/sound.png");
    background-size: contain;
}

.presentation-text {
    color: var(--color-white);
    font-family: var(--font-body);
    font-size: var(--font-title-size);
    line-height: var(--font-body-small-height);
    font-weight: var(--font-body-weight);
    max-width: 800px;
}

#VTOUR-startVtour {
    height: 48px;
    border-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 1000ms;
    border: 1px solid var(--color-white);
    overflow: hidden;
    color: var(--color-white);
    background: transparent;
    z-index:1;
    cursor:pointer;
	cursor: pointer;
    margin-top: 60px;
    font-family: var(--font-alternative-extended);
    font-size: 14px;
    line-height: 16px;
    font-weight: 700;
    letter-spacing: -0.25px;
}

#VTOUR-startVtour:hover {
    color: var(--color-primary);
    border: 1px solid transparent;
}

#VTOUR-startVtour > div {
    padding: 16px 40px;
    height: 48px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index:1;
}

#VTOUR-startVtour > div:after {
    content: '';
    transform: scaleY(0);
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 1000ms;
    background: var(--color-white);
    transform-origin: bottom;
    border-top-left-radius: 200%;
    border-top-right-radius: 200%;
}

#VTOUR-startVtour > div:hover::after {
   transform: scaleY(160%);
}

#VTOUR-startVtour span {
  position: relative;
  z-index: 10;
}

#VTOUR-menu-container {
    position: fixed;
    top: 0;
    left: 100%;
    width: 100vw;
    height: 100vh;
    background-color: white;
    z-index: 1030;
    pointer-events: auto;
    padding: var(--padding-container);
    padding-top: 350px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    background-color: var(--color-accent);
    transition: left var(--animation-timing) var(--animation-easing);
}

#VTOUR-menu-container.menu-active {
    left: 0;
}

.menu-row {
    display: flex;
    width: 100%;
    padding: 20px 0;
    min-height: 300px;
    border-top: solid 1px white;
}

.menu-col {
    min-width: 15vw;
    display: flex;
    flex-direction: column;
    padding-right: 20px;
}

.menu-col a {
    font-weight: bold;
    color: var(--color-primary);
    margin-bottom: 10px;
    max-width: 200px;
    transition: color var(--animation-timing) var(--animation-easing);
}

.menu-col a:hover {
    color: var(--color-secondary);
}

.menu-col .menu-row-title {
    color: var(--color-secondary);
    text-transform: uppercase;
    font-family: var(--font-title);
    font-size: var(--font-title-size);
    line-height: var(--font-title-height);
    font-weight: var(--font-title-weight);
}

#VTOUR-menu-about {
    color:  var(--color-accent);
    display: flex;
    flex-direction: column;
    pointer-events: auto;
    position: absolute;
    left: 0;
    top: 100%;
    width: 100%;
    height: 100vh;
    overflow: auto;
    background-color: var(--color-white);
    z-index: 1050;
    padding: var(--padding-container);
    transition: top var(--animation-timing) var(--animation-easing)
}

#VTOUR-menu-about.section-visible {
   top: 0;
}

.VTOUR-hamburger-menu {
    position: fixed;
    top: var(--padding-container);
    right: var(--padding-container);
    width: 50px;
    height: 20px;
    border-top: solid 3px var(--color-white);
    z-index: 1040;
    pointer-events: auto;
    cursor: pointer;
    transition: all var(--animation-timing) var(--animation-easing);
}

.VTOUR-hamburger-menu:before,
.VTOUR-hamburger-menu:after {
    content: "";
    position: absolute;
    left: 0;
    border-top: solid 3px var(--color-white);
    transform: rotateZ(0);
    transition: all var(--animation-timing) var(--animation-easing);
}

.VTOUR-hamburger-menu:before {
    top: 7px;
    width: 80%;
}

.VTOUR-hamburger-menu:after {
    top: 16px;
    width: 50%;
}

.VTOUR-hamburger-menu.icon-active:before {
    width: 100%;
    top: 16px;
    transform: rotateZ(45deg);
}

.VTOUR-hamburger-menu.icon-active:after {
    width: 100%;
    transform: rotateZ(-45deg);
}

.VTOUR-hamburger-menu.icon-active {
    border-top-color: transparent;
    height: 50px;
}

.VTOUR-goback {
    position: fixed;
    top: var(--padding-container);
    left: var(--padding-container); 
    z-index: 1000;
    pointer-events: auto;
    cursor: pointer;
    font-family: var(--font-alternative-extended);
    font-size: 20px;
    line-height: 32px;
    color: var(--color-disabled);
}

.VTOUR-goback:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .2s;
    transition-property: width;
    width: 0%;
    border-bottom: solid 1px var(--color-white);
}

.VTOUR-goback:hover:before {
    width: 100%;
}

.VTOUR-credits {
    position: fixed;
    bottom: var(--padding-container);
    left: var(--padding-container); 
    z-index: 1000;
    pointer-events: auto;
    font-family: var(--font-alternative-extended);
    font-size: 11px;
    line-height: 18px;
    color: var(--color-disabled);
}

.VTOUR-credits a,
.VTOUR-credits a:visited {
    color: var(--color-white);
}

.VTOUR-sound-menu {
    position: fixed;
    bottom: var(--padding-container);
    right: var(--padding-container);
    width: 50px;
    height: 50px;
    z-index: 1000;
    pointer-events: auto;
    cursor: pointer;
}

.sound-menu-bar {
    position: absolute;
    bottom: 0;
    border-left: solid 3px var(--color-disabled);
    height: 20%;
    transition: all var(--animation-timing) var(--animation-easing);
}

.VTOUR-sound-menu .sound-menu-bar:nth-child(1) { left: 0; }
.VTOUR-sound-menu .sound-menu-bar:nth-child(2) { left: 10px; }
.VTOUR-sound-menu .sound-menu-bar:nth-child(3) { left: 20px; }
.VTOUR-sound-menu .sound-menu-bar:nth-child(4) { left: 30px; }
.VTOUR-sound-menu .sound-menu-bar:nth-child(5) { left: 40px; }

.VTOUR-sound-menu.icon-active .sound-menu-bar { border-left: solid 3px var(--color-white); }
.VTOUR-sound-menu.icon-active .sound-menu-bar:nth-child(1) {
    animation: soundbar-animation-1 1.5s var(--animation-easing) infinite;
}
.VTOUR-sound-menu.icon-active .sound-menu-bar:nth-child(2) {
    animation: soundbar-animation-2 1.5s var(--animation-easing) infinite;
}
.VTOUR-sound-menu.icon-active .sound-menu-bar:nth-child(3) {
    animation: soundbar-animation-3 1.5s var(--animation-easing) infinite;
}
.VTOUR-sound-menu.icon-active .sound-menu-bar:nth-child(4) {
    animation: soundbar-animation-4 1.5s var(--animation-easing) infinite;
}
.VTOUR-sound-menu.icon-active .sound-menu-bar:nth-child(5) {
    animation: soundbar-animation-5 1.5s var(--animation-easing) infinite;
}

@keyframes soundbar-animation-1 {
    0% { height: 30%; }
    50% { height: 50%; }
    75% { height: 20%; }
    100% { height: 30%; }
}

@keyframes soundbar-animation-2 {
    0% { height: 50%; }
    25% { height: 30%; }
    50% { height: 60%; }
    75% { height: 40%; }
    100% { height: 50%; }
}

@keyframes soundbar-animation-3 {
    0% { height: 100%; }
    50% { height: 60%; }
    100% { height: 100%; }
}

@keyframes soundbar-animation-4 {
    0% { height: 80%; }
    25% { height: 90%; }
    50% { height: 70%; }
    100% { height: 80%; }
}

@keyframes soundbar-animation-5 {
    0% { height: 50%; }
    50% { height: 40%; }
    75% { height: 60%; }
    100% { height: 50%; }
}

#iframe-container {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 100vh;
    pointer-events: auto;
    background-color: rgba(0,0,0,0.6);
    align-items: center;
    justify-content: center;
}

#iframe-container iframe {
    width: 80vw;
    height: 80vh;
    background-color: var(--color-accent);
}

#iframe-container.visible {
    display: flex;
    z-index: 9999;
}

.iframe-close-icon {
    position: absolute;
    top: var(--padding-container);
    right: var(--padding-container);
    width: 60px;
    height: 60px;
    z-index: 1020;
    pointer-events: auto;
    cursor: pointer;
    background-color: var(--color-white);
    border-radius: 50%;
    box-shadow: 0 0 6px 0 var(--color-primary);
}

.iframe-close-icon:before,
.iframe-close-icon:after {
    content: "";
    position: absolute;
    left: 20%;
    top: 50%;
    width: 60%;
    border-top: solid 2px var(--color-accent);
    transform: rotateZ(0);
}

.iframe-close-icon:before {
    transform: rotateZ(45deg);
}

.iframe-close-icon:after {
    transform: rotateZ(-45deg);
}

#VTOUR-startDeviceOrientation {
    pointer-events: auto;
    position: fixed;
    bottom: var(--padding-container);
    left: var(--padding-container);
    width: 5vw;
    height: 5vw;
    border-radius: 50%;
    box-shadow: 0 0 5px 1px #222;
    background-image: url("../icons/device-360.png");
    background-position: center;
    background-size: 50%;
    background-repeat: no-repeat;
    background-color: rgba(255,255,255,0.6);
    z-index: 99;
    transform: scale(0.8);
    transition: background-color 500ms, transform 300ms;
    transform-origin: bottom left;
}

#VTOUR-startDeviceOrientation.active {
    background-color: rgba(255,255,255,0.8);
    transform: scale(1);
}

#VTOUR-loading-screen {
	position: absolute;
	z-index: 3000 !important;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 1;
 	transition: 200ms opacity;
}

#VTOUR-loading-screen.fade-out {
    opacity: 0;
    display: none;
}

#VTOUR-loader {
    display: block;
    position: fixed;
	top: calc(50vh - 50px);
	left: calc(50vw - 50px);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #ccc;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

#VTOUR-loader:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #999;
    -webkit-animation: spin 3s linear infinite;
    animation: spin 3s linear infinite;
}

#VTOUR-loader:after {
    content: "";
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    bottom: 10px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #ddd;
    -webkit-animation: spin 1.5s linear infinite;
    animation: spin 1.5s linear infinite;
}

#VTOUR-nav-menu-wrapper {
    pointer-events: auto;
    color: var(--color-white);
    display: none;
    z-index: 1005;
    background-color: var(--color-transparent-overlay);
    backdrop-filter: blur(15px);
    position: fixed;
    width: 470px;
    min-height: 630px;
    top: 50%;
    left: 0;
    padding: var(--padding-container);
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    transform: translateY(-50%);
    transition: all 0.3s ease-out;
}

#VTOUR-nav-menu-wrapper.hidden {
    left: -470px;
}

#VTOUR-arrow {
    cursor: pointer;
    width: calc(var(--menu-height) / 2);
    height: calc(var(--menu-height) / 2);
    position: absolute;
    top: 0;
    right: 0;
    background-image: url("../icons/arrow.png");
    padding: calc(var(--padding-container) / 2 );
    border-radius: 10px;
    background-size: 20%;
    background-repeat: no-repeat;
    background-position: center;
    transform: rotateZ(90deg) rotateX(180deg);
    transition: all var(--animation-timing) var(--animation-easing);
}

#VTOUR-nav-menu-wrapper.hidden #VTOUR-arrow {
    transform: rotateZ(90deg) rotateX(0deg);
    right: calc(var(--padding-container) * -1 + 8px);
    background-color: var(--color-transparent-overlay);
    padding: calc(var(--padding-container) / 2 );
    border-radius: 10px;
    background-size: 20%;
}

.VTOUR-instructions {
    margin-bottom: 50px;
}

.VTOUR-instructions h3 {
    margin-bottom: 20px;
}

#VTOUR-nav-menu-wrapper h3 {
    font-size: 24px;
    line-height: 32px;
    font-weight: 400;
}

.VTOUR-instructions p {
    font-size: var(--font-body-small-size);
    line-height: 22px;
    margin-bottom: 20px;
    font-weight: 400;
}

.nav-menu-container {
    opacity: 0;
    transition: all 200ms ease-in, left 400ms;
}

.nav-menu-container.onscreen {
    opacity: 1;
}

.nav-item {
    font-size: 16px;
    line-height: 22px;
    cursor: pointer;
    opacity: 0.5;
    padding: var(--font-modal-detail-height);
    padding-left: 0;
    color: #fff;
    border-bottom: solid 1px var(--color-disabled);
    transition: all 300ms ease-in;
    display: flex;
    align-items: center;
}

.nav-item:hover {
    opacity: 1;
}

.nav-item-icon {
    width: 46px;
    height: 46px;
    margin-right: 25px;
}

#VTOUR-overlay {
    pointer-events: none;
    position: fixed;
    cursor: default;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    background-color: #ffffff;
    opacity: 0;
    transition: opacity 0.8s ease-out;
    z-index: 1000;
}

#VTOUR-overlay.active {
    pointer-events: auto;
    opacity: 0.4;
}

#VTOUR-details-container {
    cursor: default;
    pointer-events: auto;
    position: fixed;
    width: 50vw;
    left: 25vw;
    top: 100vh;
    z-index: 1030;
    box-sizing: border-box;
    opacity: 0;
    background-color: #ffffff;
    transition: all 0.3s ease-in, opacity 0.5s, top 0.8s;
}

#VTOUR-details-container.visible {
    opacity: 1;
    top: 30vh;
}

#VTOUR-close-details, #VTOUR-close-keyshot {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 20px;
    height: 20px;
    cursor: pointer;
    background-image: url("../icons/cross.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#VTOUR-close-keyshot {
    background-image: url("../icons/arrow.png");
    transform: rotateZ(-90deg);
}

#VTOUR-details {
    min-height: 100%;
    background-size: auto 5vh;
    background-repeat: no-repeat;
    background-position: 25px 25px;
    display: flex;
    flex-direction: row;
    height: 100%;
}

#VTOUR-description {
    position: relative;
    color: var(--color-accent);
    padding-bottom: 120px !important;
    justify-content: flex-start !important;
    border-left: solid 1px var(--color-accent);
}

.VTOUR-details-info-link {
    width: 20px;
    height: 20px;
    display: inline-block;
    margin-left: 20px;
    position: absolute;
    right: 0;
    bottom: 50%;
    transform: translateY(50%);
    background-image: url("../icons/info.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#VTOUR-description a {
    color: var(--color-primary);
    text-decoration: underline;
}

#VTOUR-description, #VTOUR-details-visual-container {
    padding: 10vh 30px 45px 30px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
}

#VTOUR-details.popup-third #VTOUR-details-visual-container  {
    flex: 2;
}

#VTOUR-details.popup-third #VTOUR-description  {
    flex: 3;
}

#VTOUR-details.popup-half #VTOUR-description,
#VTOUR-details.popup-half #VTOUR-details-visual-container  {
    flex: 1;
}

#VTOUR-details-image {
    width: 100%;
}

.popup-half #VTOUR-model-viewer,
.popup-half #VTOUR-details-image,
.popup-half #VTOUR-details-video {
    height: 100%;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
}

#VTOUR-description > h3 {
    font-size: var(--font-modal-title-size);
    line-height: var(--font-modal-title-height);
    font-weight: var(--font-modal-title-weight);
    position: relative;
    width: 100%;
}

#VTOUR-description > h4 {
    font-size: var(--font-modal-subtitle-size);
    line-height: var(--font-modal-subtitle-height);
    font-weight: normal;
    margin-bottom: 20px;
}

#VTOUR-description > p {
    font-size: var(--font-modal-text-size);
    line-height: var(--font-modal-text-height);
    margin-bottom: 2vw;
}

#VTOUR-details-footer {
    position: absolute;
    bottom: 45px;
}

.VTOUR-details-footer-row {
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    font-size: var(--font-modal-detail-size);
    font-family: var(--font-modal-detail);
    line-height: var(--font-modal-detail-height);
    text-transform: uppercase;
}

.VTOUR-details-footer-row:last-child {
    margin-bottom: 0;
}

.VTOUR-details-footer-row > h4 {
    font-weight: var(--font-modal-detail-weight);
    min-width: 100px;
}

#VTOUR-buttons-container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
}

.VTOUR-details-button {
    font-size: var(--font-modal-detail-size);
    font-family: var(--font-modal-detail);
    font-weight: var(--font-modal-detail-weight);
    line-height: var(--font-modal-detail-height);
    text-transform: capitalize;
    padding: 10px 20px;
    margin: 4px;
    color: var(--color-primary);
    background-color: #a8f0d2;
    cursor: pointer;
    opacity: 0.9;
    transition: all 0.2s ease-out;
}

.VTOUR-details-button:hover {
    opacity: 1;
    background-color: var(--color-primary);
    color: #fff;
}

#VTOUR-view-keyshot {
    left: auto;
}

#VTOUR-buy-product {
    left: 12vw;
}

#VTOUR-KeyShotXR {
    background-color: #fff;
    z-index: 1000;
    cursor: grab;
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    top: 0;
    right: 0;
    opacity: 1;
    transition: all 0.4s ease-in;
}

#VTOUR-KeyShotXR.hidden {
    right: 100%;
    opacity: 0;
    pointer-events: none;
}

.icon-360 {
    position: absolute;
    z-index: 1020;
    bottom: 10vh;
    left: 50%;
    width: 40px;
    height: 40px;
    background-image: url("../icons/360.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transform: translateX(-50%);
}

#viewwindow {
    position: relative;
    width: 40vw !important;
    height: 40vw !important;
    transform: translateX(50%);
}

#viewwindow div {
    position: relative;
    width: 100% !important;
    height: 100% !important;
}

#turntable {
    width: 100% !important;
    height: 100% !important;
}

img#iframe-image {
    z-index: 101;
    position: absolute;
    left: 44%;
    top: 0;
    opacity: 0.6;
    width: 8%;
    height: auto;
}

#VRButton {
    z-index: 99 !important;
    top: var(--padding-container);
    bottom: auto !important;
    right: var(--padding-container);
    left: auto !important;
    font-family: var(--font-alternative-extended) !important;
    width: auto !important;
    padding: 12px 40px !important;
    border-radius: 8px !important;
}

#VRButton .vr-icon {
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
    width: 36px;
    height: var(--font-body-small-height);
    background-image: url("../icons/oculus.png");
    background-size: contain;
    background-repeat: no-repeat;
}

#final-code {
    text-align: center;
}

#final-code:selection {
    background-color: var(--color-transparent-overlay) !important;
}

@media only screen and (max-device-width: 1280px) and (orientation: portrait) {

    :root {
        --padding-container: 30px;
        --menu-height: 50px;

        --animated-arch-final-size: 500%;

        --font-title-big-size: 27.5px;
        --font-title-big-height: 27.5px;

        --font-title-size: 11.5px;
        --font-title-height: 17.5px;

        --font-body-size: 16.5px;
        --font-body-height: 28.5px;

        --font-body-small-size: 12px;
        --font-body-small-height: 19px;

        --font-modal-title-size: 24.5px;
        --font-modal-title-height: 29.5px;

        --font-modal-subtitle-size: 14.5px;
        --font-modal-subtitle-height: 17.5px;

        --font-modal-text-size: 11px;
        --font-modal-text-height: 17.5px;

        --font-modal-detail-size: 7.5px;
        --font-modal-detail-height: 11.5px;
    }

    #portrait-blocker.active {
        display: flex !important;
    }

    #VTOUR-vtour-container {
        display: flex;
        flex-direction: column-reverse;
        align-items: center;
        justify-content: space-between; 
    }

    #VTOUR-vr-hint {
        position: relative;
        bottom: var(--padding-container);
        left: 20px;
    }

    #VTOUR-language-selection-container button {
        margin: 0 5px;
        width: 140px;
    }

    #VTOUR-logo,
    .menu-logo {
        width: 130px;
        height: 28px;
    }

    #VTOUR-logo-container h2 {
        font-size: 16px;
        margin-bottom: 10px;
        margin-top: -10px;
    }

    #VTOUR-author {
        top: auto;
        bottom: calc(100px + var(--padding-container));
        width: 100%;
        text-align: center;
        left: 0;
    }

    #VTOUR-startVtour > div {
        padding: 15px 20px;
    }

    #VTOUR-menu-container {
        flex-direction: column;
        padding-top: 130px;
    }

    .menu-col .menu-row-title {
        margin-bottom: 20px;
    }

    .menu-row {
        flex-direction: column;
        min-height: 160px;
    }

    .menu-col a {
        max-width: unset;
    }

    .VTOUR-hamburger-menu {
        width: 30px;
    }

    .VTOUR-hamburger-menu.icon-active {
        height: 30px;
    }

    .VTOUR-sound-menu {
        width: 30px;
        height: 30px;
    }

    .VTOUR-sound-menu .sound-menu-bar:nth-child(2) { left: calc(1px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(3) { left: calc(2px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(4) { left: calc(3px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(5) { left: calc(4px * 30/5); }

    .VTOUR-hamburger-menu.icon-active::before,
    .VTOUR-hamburger-menu.icon-active::after {
        top: 14px;
    }

    #VTOUR-startDeviceOrientation {
        width: 50px;
        height: 50px;
    }

    .nav-item {
        border-width: 2px;
        padding-top: calc(0.6 * var(--font-body-height));
    }

    #VTOUR-nav-menu-label {
        padding: 2px;
        bottom: 130px;
    }

    #VTOUR-nav-menu-label.close {
        bottom: 90px;
    }

    .label-item {
        padding: 3px 14px;
        font-size: 18px;
    }

    .releases {
        margin-top: 2px;
    }

    .releases li {
        font-size: 12px;
        margin: 2px 0;
    }

    #VTOUR-details-container {
        left: 5vw;
        width: 90vw;
    }

    #VTOUR-details-container.visible {
        top: 10vh;
    }

    #VTOUR-details-container:before, #VTOUR-details-container:after {
        content: '';
        display: none;
    }

    #VTOUR-details {
        flex-direction: column;
    }

    #VTOUR-description, #VTOUR-details-visual-container {
        padding: 11vh 15px 15px 15px;
    }

    #VTOUR-description {
        padding-top: 10px;
        border-left: none;
        border-top: solid 1px var(--color-accent);
    }

    #VTOUR-details-footer {
        bottom: 15px;
    }

    #VTOUR-view-keyshot {
        right: 3vw;
        left: auto;
    }

    #VTOUR-buy-product {
        left: 130px;
    }

    #VTOUR-KeyShotXR {
        padding-top: 20%;
    }

    .icon-360 {
        width: 30px;
        height: 30px;
    }

    #viewwindow {
        width: 97vw !important;
        height: 50vh !important;
        transform: translateX(0);
    }

    #VTOUR-vr-button {
        top: calc(var(--padding-container) - 10px);
        right: calc(var(--padding-container) + 50px);
        left: auto !important;
        bottom: auto !important;
    }

    #VRButton {
        display: none !important;
    }

}

@media only screen and (max-device-width: 1280px) and (orientation: landscape) {

    :root {
        --padding-container: 30px;
        --menu-height: 50px;

        --font-title-big-size: 27.5px;
        --font-title-big-height: 27.5px;

        --font-title-size: 11.5px;
        --font-title-height: 11.5px;

        --font-body-size: 12px;
        --font-body-height: 19px;

        --font-body-small-size: 11px;
        --font-body-small-height: 17.5px;

        --font-modal-title-size: 14.5px;
        --font-modal-title-height: 17.5px;

        --font-modal-subtitle-size: 11px;
        --font-modal-subtitle-height: 17.5px;

        --font-modal-text-size: 9px;
        --font-modal-text-height: 14.5px;

        --font-modal-detail-size: 7.5px;
        --font-modal-detail-height: 11.5px;
    }

    #VTOUR-author {
        font-size: 16px;
        line-height: 20px;
    }

    #VTOUR-vr-hint {
        font-size: 10px;
        line-height: 12px;
        letter-spacing: -0.25px;
    }

    #VTOUR-vr-hint:before {
        right: calc(100% + 10px);
        top: -2px;
        width: 26px;
    }

    .menu-row {
        min-height: unset;
    }

    #VTOUR-logo,
    .menu-logo {
        width: 130px;
        height: 28px;
    }

    .VTOUR-sound-menu {
        width: 30px;
        height: 30px;
        top: var(--padding-container);
        bottom: auto;
    }

    .VTOUR-sound-menu .sound-menu-bar:nth-child(2) { left: calc(1px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(3) { left: calc(2px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(4) { left: calc(3px * 30/5); }
    .VTOUR-sound-menu .sound-menu-bar:nth-child(5) { left: calc(4px * 30/5); }

    #VTOUR-startVtour {
        margin-top: 25px;
    }

    #VTOUR-startDeviceOrientation {
        width: 6vw;
        height: 6vw;
    }

    .VTOUR-credits {
        display: none !important;
        width: 100%;
        left: 0;
        bottom: 15px;
        text-align: center;
    }

    .VTOUR-credits.visible {
        display: block !important;
        z-index: 1005;
    }

    #VTOUR-nav-menu-label {
        padding: 2px;
        bottom: 110px;
    }

    #VTOUR-nav-menu-label.close {
        bottom: 80px;
    }

    .label-item {
        font-size: 1.8vw;
    }

    .releases {
        margin-top: 2px;
    }

    .releases li {
        font-size: 1.2vw;
        padding: 2px;
        margin: 2px 0;
    }

    .icon-360 {
        bottom: 0;
        width: 30px;
        height: 30px;
    }

    #VTOUR-details-container.visible {
        top: 25vh;
    }

    #VTOUR-description, #VTOUR-details-visual-container {
        padding: 11vh 10px 10px 10px;
    }

    #VTOUR-description {
        padding-bottom: 40px !important;
    }

    #VTOUR-close-details, #VTOUR-close-keyshot {
        width: 20px;
        height: 20px;
    }

    #VTOUR-description > h4 {
        margin-bottom: 10px;
    }

    #VTOUR-details {
        background-position: 10px 10px;
    }

    #VTOUR-details-footer {
        bottom: 10px;
    }

    .VTOUR-details-footer-row {
        margin-bottom: 4px;
    }

    #viewwindow {
        height: 35vw !important;
    }

    #VTOUR-vr-button {
        top: calc(var(--padding-container) - 10px);
        bottom: auto !important;
    }

    #VRButton {
        right: calc(2.6 * var(--padding-container));
    }

    #VTOUR-nav-menu-wrapper {
        width: 100%;
        min-height: 210px;
        top: auto;
        left: 0;
        bottom: 0;
        transform: translateY(0);
        border-top-right-radius: 20px;
        border-top-left-radius: 20px;
        border-bottom-right-radius: 0;
    }

    #VTOUR-nav-menu-wrapper.hidden {
        left: 0;
        bottom: -210px;
    }

    #VTOUR-nav-menu-wrapper h3 {
        font-size: 24px;
        line-height: 32px;
        font-weight: normal;
        margin-bottom: 20px;
    }

    #VTOUR-arrow {
        width: var(--menu-height);
        height: var(--menu-height);
        background-color: transparent;
        background-size: 30%;
        top: 0;
        right: 50%;
        transform: rotateZ(0deg) translateX(50%) rotateX(180deg);
    }

    #VTOUR-nav-menu-wrapper.hidden #VTOUR-arrow {
        transform: rotateZ(0deg) translateX(50%) rotateX(0deg);
        top: calc(var(--padding-container) * -2);
        right: 50%;
        background-size: 30%;
        background-color: transparent;
    }

    .VTOUR-instructions {
        display: none;
    }

    .nav-menu-container {
        display: flex;
        justify-content: space-between;
    }

    .nav-item {
        border-bottom: none;
    }

    .joystick {
        display: block;
        pointer-events: auto;
    }

    #VRButton {
        font-size: 10px !important;
        font-family: var(--font-title) !important;
        padding: 4px 8px !important;
    }

    #VRButton .vr-icon {
        width: 24px;
    }

    .VTOUR-goback {
        font-size: 12px;
        line-height: 16px;
    }

    .VTOUR-goback:before {
        width: 100%;
    }

}

@-webkit-keyframes spin {
    0%   {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes spin {
    0%   {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}