body {
    overflow: hidden;
    background-color: black;
    background-image: url("/img/backgrounds/bg-gradient-blue.png");
    background-size: 100% 100%;
    background-position: center;
    min-height: 100vh;
}

h2 {
    font-weight: bold;
    font-size: 1.666em;
    color: #666;
    font-family: 'PT Sans', Helvetica, Arial, Lucida, sans-serif;
    text-align: center;
    margin: 0;
}

h3 {
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 1em;
}

h4 {
    font-weight: bold;
    line-height: 1.7;
    margin-bottom: 1em;
}

p, ul, ol {
    margin-bottom: 2em;
}

canvas#viewport_main,
canvas#viewport_product {
    position: fixed;
    top: 0;
    left: 0;
    transition: filter linear 0.5s;
}

canvas#viewport_product {
    pointer-events: none;
}

canvas.blurred {
    filter: blur(0.5em);
}

button#launch-button {
    border: 0.1em solid white;
    border-radius: 0.5em;
    text-transform: uppercase;
    background: transparent;
    color: white;
    font-size: 4rem;
    position: absolute;
    padding: 0.5em;
    min-width: 8em;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.3s linear,
    background-color 0.1s ease-in-out;
}

button#launch-button:hover {
    cursor: pointer;
    opacity: 0.8;
    transform: translate(-50%, -50%) scale(1.1);
    background-color: rgba(255, 255, 255, 0.1);
}

.interaction-point {
    position: absolute;
    transform: translate(-50%, -50%);
    width: 2em;
    height: 2em;
    font-size: 2em;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    display: none;
}

.interaction-point[data-active="false"] {
    display: none !important;
}

.interaction-point[data-visible="true"] {
    display: initial;
}

.interaction-point::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.5);
    border-radius: 50%;
    border: 1em solid white;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1),
    border-width 0.2s ease-in-out;
    box-sizing: border-box;
    box-shadow: rgba(200, 200, 200, 0.8) 0 0 1rem,
    inset rgba(200, 200, 200, 0.8) 0 0 0.5rem;
}

.interaction-point[data-expanded="true"]::before {
    border-width: 0.2em;
    transform: translate(-50%, -50%) scale(1);
}

.interaction-point[data-expanded="true"]:active::before {
    transform: translate(-50%, -50%) scale(0.5);
}

.interaction-point > span {
    color: white;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 0.3em;
    box-shadow: rgba(0, 0, 0, 0.5) 0 0 0.1em 0.1em;
    font-weight: bold;
    position: absolute;
    left: 130%;
    top: 50%;
    transform: translate(0, -50%) scale(0.5);
    text-align: left;
    display: block;
    padding: 0.1em 0.4em;
    transition: background-color 0.2s linear,
    box-shadow 0.2s linear,
    opacity 0.2s ease-in-out,
    transform 0.2s ease-out;
    user-select: none;
    overflow-x: hidden;
    opacity: 0;
    transform-origin: -0.3em 50%;
    white-space: nowrap;
}

.interaction-point[data-expanded="true"] > span {
    opacity: 1;
    transform: translate(0, -50%) scale(1);
}

.interaction-point[data-expanded="true"]:active > span {
    background-color: rgba(50, 130, 150, 0.8);
    box-shadow: rgba(50, 130, 150, 0.8) 0 0 0.1em 0.1em;
}

#views {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.view {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    margin: 0;
    position: absolute;
    top: 0;
    left: 0;
}

.layout-group {
    display: flex;
}

.horizontal-layout-group {
    flex-direction: column;
}

.vertical-layout-group {
    flex-direction: row;
}

.close-button {
    transition: all 0.1s ease-in-out;
}

.close-button:hover {
    cursor: pointer;
    opacity: 0.6;
    transform: scale(1.3);
}

.close-button:active {
    transform: scale(0.8);
    opacity: 1;
}

.close-button::before {
    content: '';
    background-image: url("/img/icons/icon-cross.png");
    background-size: 90%;
    background-repeat: no-repeat;
    background-position: center;
    display: block;
    width: 100%;
    height: 100%;
}

.text-gray {
    color: #555;
}

.back label,
.contact label
{
    display: inline-block;
    position: relative;
    vertical-align: middle;
    margin-left: 0.5em;
    margin-right: 0.5em;
    color: white;
    font-weight: bold;
    font-size: 2.5em;
}

.links .icon {
    display: block;
    font-size: 1.5em;
    text-transform: uppercase;
    color: #666;
    font-weight: bold;
    vertical-align: middle;
    margin-bottom: 1em;
}

.links .icon ul{
    margin-left: 3em;
    font-size: 0.75em;
}

.links .icon::before {
    margin-right: 0.5em;
}

.icon {

}

.icon::before {
    content: '';
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    width: 1.5em;
    height: 1.5em;
    display: inline-block;
    vertical-align: middle;
}

.icon-brochure::before {
    background-image: url('https://elysator.com/wp-content/uploads/icon_prospekt.png');
}

.icon-gear::before {
    background-image: url('https://elysator.com/wp-content/uploads/icon_anleitung.png');
}

.icon-ce::before {
    background-image: url('https://elysator.com/wp-content/uploads/icon_ce.png');
}

.icon-video::before {
    background-image: url('https://elysator.com/wp-content/uploads/icon_video_play.png');
}

.icon-bim::before {
    background-image: url('https://elysator.com/wp-content/uploads/icon_bim.png');
}

.icon-phone::before {
    background-image: url('/img/icons/icon-phone.png');
}

.icon-email::before {
    background-image: url('/img/icons/icon-email.png');
}

.button-main {
    padding: 0.5em;
    border-radius: 0.5em;
    position: fixed;
    left: 50%;
    top: 67%;
    transform: translate(-50%, -50%);
    min-width: 10em;
    font-size: 2em;
    transition: transform ease-in-out 0.1s;
}

.button-main:hover {
    cursor: pointer;
    transform: translate(-50%, -50%) scale(1.1);
}

.button-main:active {
    transform: translate(-50%, -50%) scale(0.8);
}

.frame-belowContent {
    padding: 0.5em;
    border-radius: 0.5em;
    position: fixed;
    left: 50%;
    bottom: 5vh;
    transform: translate(-50%, 0);
    min-width: 10em;
    font-size: 2em;
}

.frame-belowContent span {
    display: inline-block;
    text-align: center;
    color: white;
}

.sticker {
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(50%, -50%) rotate(-10deg);
    width: 4em;
    height: 4em;
}

.sticker-new img {
    width: 100%;
    height: 100%;
}

.factsheet {
    width: 100%;
    table-layout: fixed;
}

.factsheet tr:not(:last-child) td {
    border-bottom: 1px solid rgb(209, 213, 219);
}

.carousel-button {
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    width: 20%;
    height: 8rem;
    min-width: 8rem;
    max-width: 16rem;
    pointer-events: auto;
}

.carousel-button::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.1s ease-in-out;
}

.carousel-button:hover::after {
    cursor: pointer;
}

.carousel-button:hover::after {
    transform: scale(1.1);
}

.carousel-button:active::after {
    transform: scale(0.1);
}

.carousel-button.left {
    left: 2rem;
}

.carousel-button.left::after {
    background-image: url("/img/icons/icon-arrowLight-left.png");
    transform-origin: 10% 50%;
}

.carousel-button.right {
    right: 2rem;
}

.carousel-button.right::after {
    background-image: url("/img/icons/icon-arrowLight-right.png");
    transform-origin: 90% 50%;
}

.bar-graph {
    width: 100%;
    margin-bottom: 2em;
}

.bar-graph td {
    font-size: 0.8em;
    position: relative;
    border-radius: 0.2rem;
}

.bar-graph td:hover {
    cursor: pointer;
    background-color: rgba(203, 208, 215, 0.5);
}

.bar-graph td:hover .value {
    opacity: 1;
}

.bar-graph td:first-child {
    min-width: 20%;
}

.bar-graph td:last-child {
    width: 100%;
}

.bar-graph .bar {
    font-size: 1em;
    display: block;
    height: 0.5rem;
    color: white;
    border-radius: 0.2rem;
    vertical-align: middle;
    padding: 0.2rem;
    margin-bottom: 0.5em;
    overflow-x: visible;
    position: relative;
}

.bar-graph.purotap .bar {
    background-color: #ED1C24;
}

.bar-graph.elysator .bar {
    background-color: #006EB8;
}

.bar-graph .value {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0.3;
}

input:not([type="checkbox"]),
button.input,
select{
    display: block;
    width: 100%;
    padding: 0.5em;
    font-size: 1.33em;
    border-radius: 0.5em;
    text-align: center;
    color: #888;
    margin: 0.5em 0;
}

input[type="submit"],
button.input{
    background-color: black;
    color: white;
    margin: 0.5em auto;
    max-width: 20rem;
}

a.language{
    display: inline-block;
    width: 4rem;
    height: 2rem;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 0.1s ease-in-out;
}

a.language:not(:last-child){
    margin-right: 0.5rem;
}

a.language:hover{
    transform: scale(1.2);
}

a.language:active{
    transform: scale(0.8);
}

@media screen and (max-height: 600px) {
    .frame-belowContent span {
        font-size: 1em;
    }
}

@media screen and (min-device-width: 720px) {
    .interaction-point:hover {
        cursor: pointer;
    }

    .interaction-point:hover::before {
        transform: translate(-50%, -50%) scale(1.2);
    }

    .interaction-point:hover > span {
        background-color: rgba(50, 50, 50, 0.5);
        box-shadow: rgba(50, 50, 50, 0.5) 0 0 0.1em 0.1em;
    }
}

@media screen and (max-device-width: 720px), screen and (max-width: 720px) {
    body {
        font-size: 6pt;
    }

    p {
        font-size: 1.5em;
    }

    .back label {
        display: none;
    }

    .carousel-button{
        height: 6em;
        min-width: 6rem;
        max-width: 12rem;
    }
}