@font-face {
    font-family: 'Encode Sans';
    font-style: normal;
    font-weight: 300;
    font-stretch: normal;
    font-display: swap;
    src: url(../fonts/encode-sans-light.woff) format('woff');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Encode Sans';
    font-style: normal;
    font-weight: 500;
    font-stretch: normal;
    font-display: swap;
    src: url(../fonts/encode-sans-medium.woff) format('woff');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
    --grey: #313131;
    --grey-rgb: 49,49,49;
    --grey-light: #c5c5c5;
    --grey-light-rgb: 197,197,197;
    --light: #fff;
    --blue: #0a3161;
    --blue-rgb: 10,49,97;
    --red: #b31942;
    --red-rgb: 179,25,66;
    --padding: 36px;
    --shadow-null: 0 0 0px rgba(0,0,0,0);
    --shadow: 0 0 5px rgba(0,0,0,0.5);
    --border-radius: 20px;
    --shadow-large: 0 0 60px rgba(0,0,0,0.15);
    --plyr-color-main: var(--red);
    --plyr-video-control-color: #fff;
    --plyr-video-background: #fff;
    --plyr-video-controls-background: linear-gradient(rgba(var(--blue-rgb),0),rgba(var(--blue-rgb),.75));
}
::selection {
    color: #fff;
    background-color: var(--blue);
}
html, body {
    padding: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
}
html {
    overflow-x: hidden;
    font-size: 22px;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
    transition: scrollbar-color 0.5s ease-in-out;
}
html:hover {
    scrollbar-color: rgba(var(--grey-rgb),0.2) transparent;
}
html.scrolling {
    transition: scrollbar-color 0.1s ease-in-out;
    scrollbar-color: rgba(var(--grey-rgb),0.6) transparent;
}
body {
    font-family: 'Encode Sans', sans-serif;
    overflow: hidden;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    color: var(--grey);
    font-weight: 300;
}
body, body * {
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    position: relative;
}
a {
    text-decoration: none;
    color: var(--red);
}
p {
    margin: 0.5rem 0;
}
h1, h2, h3 {
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
h1 {
    font-size: 1.8rem;
    color: var(--blue);
}
.index h2 {
    text-align: center;
    font-size: 2.3rem;
    margin-top: 1vh;
    /*! align-self: flex-start; */
}
body:not(.index) h2 {
    margin: 1.5em 0 0.5em
}
h3 {
    font-size: 1.4rem;
    color: var(--blue);
}
.index h3 {
    font-size: 1.8rem;
}
img.inlinelogo {
    display: inline-block;
    height: 0.9em;
    vertical-align: -0.05em;
}
h4, h5, h6, b, strong {
    font-weight: 500;
}
b, strong {
    color: var(--red);
}
.table > .trow {
    display: flex;
    flex-flow: row wrap;
    max-width: 300px;
}
.table > .trow > .tcell {
    display: block;
}
.table > .trow > .tcell.t1 {
    flex: 1 1 50px;
}
.table > .trow > .tcell.t2 {
    flex: 2 1 100px;
}
.flex {
    display: flex;
    flex-flow: row wrap;
}
.flex .box1 {
    flex: 1 1 170px;
}
.flex .box2 {
    flex: 2 1 340px;
}
.flex .box3 {
    flex: 3 1 510px;
}
.flex .box4 {
    flex: 4 1 680px;
}
.flex .boxfull {
    flex: 1 1 100%;
}
header {
    padding: var(--padding);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
    height: 6.2rem;
    background-color: transparent;
    box-shadow: var(--shadow-null);
    transition: all 0.5s ease-in-out;
    z-index: 4;
}
.sticked header {
    height: 3rem;
    padding: 20px var(--padding);
    box-shadow: var(--shadow);
    background-color: #fff;
}
header #logo {
    display: block;
    height: 100%;
}
header #logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center left;
}
header .settings {
    display: flex;
    flex-flow: row;
    justify-content: flex-end;
    align-items: center;
    margin: -5px -10px; 
}
header .settings > * {
    margin: 5px 10px; 
    cursor: pointer;
    position: relative;
}
header .settings .clang {
    transition: all 0.5s ease-in-out;
}
header .settings .clang:hover {
    color: var(--blue);
}
header .settings .clang:after {
    content: '';
    position: absolute;
    left: -4%;
    right: -210%;
    bottom: -5%;
    border-radius: 0.5rem;
    width: 500%;
    height: 0.8rem;
    background-color: rgba(var(--grey-rgb),0);
    transform: scale(0.22);
    transform-origin: bottom left;
    transition: all 0.5s ease-in;
}
header .settings .clang.langactive:after {
    background-color: rgba(var(--grey-rgb),0.2);
}
header .settings .clang:hover:after {
    background-color: rgba(var(--grey-rgb),0.1);
}
header .settings > div#mbb {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 6;
}
#menubutton {
    position: absolute;
    width: 270%;
    height: 250%;
    top: -79%;
    left: -93%;
    right: -40%;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    pointer-events: none;
}
#menubutton path {
    fill: none;
    -webkit-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke 0.5s ease-in;
    -moz-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke 0.5s ease-in;
    -o-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke 0.5s ease-in;
    -ms-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke 0.5s ease-in;
    transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke 0.5s ease-in;
    stroke-width: 40px;
    stroke-linecap: round;
    stroke: var(--grey);
    stroke-dashoffset: 0px;
}
#menubutton path#top,
#menubutton path#bottom {
    stroke-dasharray: 240px 950px;
}
#menubutton path#middle {
    stroke-dasharray: 240px 240px;
}
#mbb:hover #menubutton path {
    stroke: var(--blue);
}
.mopen #menubutton path {
    stroke: var(--red);
}
.mopen #menubutton path#top,
.mopen #menubutton path#bottom {
    stroke-dashoffset: -650px;
    stroke-dashoffset: -650px;
}
.mopen #menubutton path#middle {
    stroke-dashoffset: -115px;
    stroke-dasharray: 1px 220px;
}
nav#mainnav {
    position: fixed;
    top: 0;
    right: -500px;
    width: 100%;
    height: 100%;
    max-width: 500px;
    background-color: #fff;
    box-shadow: var(--shadow-null);
    text-align: right;
    padding: 5rem var(--padding) var(--padding);
    transition: all 0.5s ease-in-out;
    z-index: 4;
    display: flex;
    flex-flow: column;
    justify-content: space-between;
}
.mopen nav#mainnav {
    right: 0;
    box-shadow: var(--shadow);
}
header:before {
    content: '';
    position: fixed;
    top: 0;
    right: 0;
    width: 0%;
    height: 100%;
    background-color: rgba(var(--blue-rgb),0.4);
    opacity: 1;
    z-index: 1;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    transition: all 0.5s ease-in-out;
}
.mopen header:before {
    width: 100%;
}
nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
nav > ul li a {
    display: inline-block;
    color: var(--blue);
    text-transform: uppercase;
    padding: 10px 0;
    transition: all 0.5s ease-in;
    position: relative;
}
nav > ul li a:before {
    content: '';
    position: absolute;
    width: 0%;
    height: 2px;
    border-radius: 1px;
    right: calc(-1 * var(--padding));
    bottom: 0.1rem;
    background-color: var(--red);
    transition: all 0.5s ease-in-out;
}
nav > ul li.active a:before {
    width: 100%;
    right: 0;
}
nav > ul li a:hover {
    color: var(--red);
}
.sbox .shariff .orientation-horizontal {
    justify-content: flex-end;
}
.sbox .shariff .orientation-horizontal li, .sbox .shariff li a {
    height: 1.7rem;
    width: 1.7rem;
}
.sbox .shariff li a {
    border-radius: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.5s ease-in;
}
.sbox .shariff li a span {
    font-size: 1rem;
}
.sbox .tosoc p {
    font-size: 0.7rem;
    margin: 0;
}
article {
    position: relative;
}
article .wrapper {
    position: relative;
    min-height: 100vh;
    padding: 6rem var(--padding) 5rem;
    margin: 0 auto;
    max-width: 1800px;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-content: center;
}
.index article .wrapper {
    padding: calc(3rem + 2vh) var(--padding) 5rem;
}
article .wrapper .subwrapper {
    max-width: 1100px;
}
article .wrapper .subwrapper {
    line-height: 1.7;
}
.error article .wrapper {
    display: flex;
    flex-flow: column;
    justify-content: center;
    min-height: calc(100vh - var(--padding) - var(--padding) - 1.15rem)
}
article .jtn {
    display: block;
    position: absolute;
    width: 100%;
    height: 2.5rem;
    top: -3rem;
    text-align: center;
    opacity: 0.2;
    transition: all 0.5s ease-in-out;
}
article .jtn:hover {
    opacity: 0.5;
}
article .jtn svg {
    height: 50%;
    width: auto;
    fill: var(--grey);
}
article#start .wrapper {
    display: flex;
    align-items: center;
}
article.deco:before {
    content: '';
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-repeat: no-repeat;
    pointer-events: none;
    opacity: 0;
    transform: scale(1.2);
    transition: all 1s ease-in-out;
}
article.deco.deco_on:before {
    opacity: 1;
    transform: scale(1);
}
article#start:before {
    background-image: url(../images/bg-start.svg);
    background-size: 40% auto;
    background-position: bottom right;
}
.imprint article:before, .privacy article:before {
    background-image: url(../images/bg-legal.svg);
    background-size: 40% auto;
    background-position: bottom right;
}
.press article:before, body[class^="pressrelease"] article:before {
    background-image: url(../images/bg-press.svg);
    background-size: 40% auto;
    background-position: bottom right;
}
article#start h1 {
    color: var(--blue);
    font-size: 2rem;
    max-width: 920px;
    align-self: flex-start;
}
article#start h1 small {
    display: block;
    color: var(--red);
    margin-top: 0.7em;
    font-size: 1rem;
    letter-spacing: 0.06em;
}
article#kontakt:before, article#contact:before {
    background-image: url(../images/bg-contact.svg);
    background-size: 40% auto;
    background-position: bottom right;
}
.error article:before {
    background-image: url(../images/bg-error.svg);
    background-repeat: no-repeat;
    background-position: center right;
}
article .videoplayer {
    /*-webkit-mask-image: -webkit-radial-gradient(white, black);*/
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-large);
    height: 65vh;
    width: calc((65vh / 9) * 16);
    margin: 3vh auto;
    max-width: calc(100vw - (2 * var(--padding)));
    max-height: calc(((100vw - (2 * var(--padding))) / 16) * 9)
}
article .videoplayer .plyr__control--overlaid svg {
    height: 50px;
    width: 50px;
}
article .videoplayer .plyr__control--overlaid {
    padding: 50px;
}
article .videoplayer .plyr__video-wrapper, article .videoplayer .plyr__poster {
    background-color: #fff;
}
article .plyr--video {
    background: #fff;
}
article #about, article #win-win {
    margin: calc(-0.5 * var(--padding));
    filter: drop-shadow(var(--shadow-large));
}
article #about > div, article #win-win > div {
    margin: calc(0.5 * var(--padding));
    padding: var(--padding);
    background-color: #fff;
    border-radius: var(--border-radius);
}
article #about > div p:last-of-type, article #win-win > div p:last-of-type {
    margin-bottom: 0;
}
article #about > div h3 {
    text-align: center;
    margin-top: 0;
}
article #about > div > img, article #win-win > div > img {
    display: block;
    width: 80%;
    margin: 0 auto 1rem;
    max-height: 14vh;
    object-fit: contain;
}
article #win-win > div > img {
    width: 100%;
    max-height: 20vh;
}
article .stepslider h3 {
    color: var(--red);
    font-size: 2.3rem;
}
article .stepslider > .flex {
    align-items: center;
    padding: var(--padding);
}
article .stepslider > .flex > * {
    display: block;
    width: 100%;
}
article .stepslider > .flex > img {
    max-height: 450px;
    object-fit: contain;
}
article .bigimage {
    display: block;
    margin: 0 auto;
    width: 90%;
    max-height: 65vh;
    object-fit: contain;
}
article #companies .companybox {
    background-color: #fff;
    padding: var(--padding);
    border-radius: var(--border-radius);
}
article #companies .companybox img {
    width: 100%;
    max-width: 400px;
    display: block;
    margin: 0 auto;
}
article .contactdata > img {
    width: 7rem;
    display: block;
}
article .flex.contact {
    align-items: center;
}
article .flex.contact > * {
    padding: var(--padding);
}
article .formbox {
    background-color: #fff;
    box-shadow: 0 0 15px rgba(0,0,0,0.5);
    border-radius: var(--border-radius);
}
article .formbox *:last-child {
    margin-bottom: 0;
}
.sliderbox {
    display: flex;
}
.sliderbox.themebox-3d {
    margin: 3vh 0;
    align-items: center;
    justify-content: center;
    position: relative;
}
.slider.theme-3d {
    justify-content: center;
    position: relative;
    width: auto;
}
.touchdevice .slider:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
}
.slider.theme-3d .slideritem {
    flex: 1 1 40%;
    display: none;
}
.slider.theme-3d .slideritem:nth-child(1){
    display: block;
}
.sliderbox.themebox-3d .slider.theme-3d {
    flex: 1 1 100%;
    width: 100%;
}
.slider.theme-3d .slideritem[data-index] {
    min-width: 260px;
    width: 40%;
    position: absolute;
    display: block;
    z-index: -1;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    transform: scale(1) translate(0,0);
    -webkit-user-select: none;
    user-select: none;
    transition: all 0.5s ease-in-out;
}
.slider.theme-3d .slideritem.hiddenitem {
    opacity: 0;
}
.slider.theme-3d .slideritem[data-viewindex] {
    position: absolute;
    opacity: 1;
    cursor: pointer;
}
.slider.theme-3d .slideritem[data-viewindex="1"] {
    position: relative;
    box-shadow: 0 0 15px rgba(0,0,0,0.5);
    order: 3;
    z-index: 3;
    transform: scale(1.1) translate(0%, 0%);
}
.slider.theme-3d .slideritem[data-viewindex="2"] {
    order: 4;
    z-index: 2;
    box-shadow: 0 0 13px rgba(0,0,0,0.45);
    transform: scale(1.05) translate(37%, 0%);
}
.slider.theme-3d .slideritem[data-viewindex="3"] {
    order: 5;
    z-index: 1;
    box-shadow: 0 0 8px rgba(0,0,0,0.4);
    transform: scale(1) translate(70%, 0%);
}
.slider.theme-3d .slideritem[data-viewindex="4"] {
    order: 1;
    z-index: 1;
    box-shadow: 0 0 8px rgba(0,0,0,0.4);
    transform: scale(1) translate(-70%, 0%);
}
.slider.theme-3d .slideritem[data-viewindex="5"] {
    order: 2;
    z-index: 2;
    box-shadow: 0 0 13px rgba(0,0,0,0.45);
    transform: scale(1.05) translate(-37%, 0%);
}
.stepsliderbox ul.slidersteps {
    list-style: none;
    padding: 0;
    margin: 2vh auto;
    display: flex;
    justify-content: space-between;
    text-transform: uppercase;
    color: var(--grey-light);
    width: 100%;
    max-width: 800px;
    font-size: 1.2rem;
}
.stepsliderbox ul.slidersteps li {
    color: var(--grey-light);
    cursor: pointer;
    transition: all 0.5s ease-in;
}
.stepsliderbox ul.slidersteps li.stepactive, 
.stepsliderbox ul.slidersteps li:hover {
    color: var(--blue);
}
.stepslider {
    position: relative;
    overflow: hidden;
}
.stepslider > div {
    position: absolute;
    top: 0;
    left: 100%;
    transition: left 0.8s ease-in-out, opacity 0.3s ease-in 0.5s;
    width: 100%;
    opacity: 0;
}
.stepslider .stepslideritem.stepout {
    left: -100%;
}
.stepslider .stepslideritem.stepitem-active {
    position: relative;
    left: 0%;
    opacity: 1;
}
.stepslider .step-next {
    text-transform: uppercase;
    color: var(--blue);
    cursor: pointer;
    font-size: 1.45rem;
}
.pressbox {
    margin: 0 calc(-1 * var(--padding));
}
.pressbox > * {
    margin: var(--padding);
}
/* FORM */
form {
    position: relative;
}
.formbox h3 {
    margin: 0 0 0.5em;
}
form.flex {
    margin: calc(0.5 * var(--padding)) calc(-0.25 * var(--padding));
}
form.flex > *[class^=box]:not(.divider) {
    margin: calc(0.25 * var(--padding));
    position: relative;
}
form.flex > .unpad-v[class^=box] {
    padding-top: 0;
    padding-bottom: 0;
}
form .switchlabel {
    position: relative;
}
form label {
    display: block;
}
form .switchlabel > label {
    position: absolute;
    top: 0;
    left: 0;
    padding: calc(0.25 * var(--padding));
    transform: scale(1);
    transform-origin: bottom left;
    transition: all 0.5s ease-in;
    z-index: 1;
    pointer-events: none;
}
form .switchlabel.labelup > label {
    top: calc(-0.8rem - (0.6 * var(--padding)));
    transform: scale(0.8);
    opacity: 0.5;
}
form input[type="text"],form input[type="email"], form textarea {
    border: none;
    padding: calc(0.25 * var(--padding));
    background-color: rgba(var(--grey-light-rgb),0.5);
    border-radius: calc(0.5 * var(--border-radius));
    width: 100%;
    display: block;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    outline: none;
}
form textarea {
    resize: none;
}
form input[type="checkbox"], form input[type="checkbox"] + label{
    display: inline-block;
    width: auto;
}
form input[type="checkbox"] + label{
    padding-left: 1.5rem;
    position: relative;
}
form input[type="checkbox"] + label:before{
    content: "";
    width: 1rem;
    height: 1rem;
    border-radius: 100%;
    background-color: var(--blue);
    display: inline-block;
    position: absolute;
    left: 0;
    top: 0.2rem;
    bottom: auto;
    margin: auto;
    background-image: url(../images/check.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 0%;
    transition: all 0.5s;
}
form input[type="checkbox"] + label:hover:before{
    background-color: var(--red);
    background-size: 50%;
}
form input[type="checkbox"]:checked + label:before{
    background-size: 90%;
}
form input[type="checkbox"]{
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
}
.buttons {
    justify-content: space-between;
}
form button {
    border: none;
    background-color: transparent;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    padding: calc(0.25 * var(--padding)) 0;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: calc(0.5 * var(--border-radius));
    transition: all 0.5s ease-in;
    letter-spacing: 0.06em;
}
form button:hover, form button:active {
    padding: calc(0.25 * var(--padding)) calc(0.5 * var(--padding));
}
form button[type="reset"] {
    color: var(--red);
}
form button[type="reset"]:hover, form button[type="reset"]:active {
    background-color: var(--red);
    color: #fff;
}
form button[type="submit"] {
    color: var(--blue);
}
form button[type="submit"]:hover, form button[type="submit"]:active {
    background-color: var(--blue);
    color: #fff;
}
form #form-result {
    position: absolute;
    left: -1rem;
    top: -1rem;
    bottom: -1rem;
    right: -1rem;
    margin: auto;
    padding: var(--padding);
    text-align: center;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    z-index: 10;
    background-color: rgba(255,255,255,0.8);
    pointer-events: none;
    opacity: 0;
    transition: all 0.5s ease-in-out;
}
form #form-result.shownotice {
    opacity: 1;
    pointer-events: all;
}
.hpt {
    visibility: hidden;
    position: absolute;
    z-index: -10000;
    top: -100vh;
}
input.input.hpt {
    width: 0px;
    height: 0px;
    border: none;
    padding: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
}
@keyframes fadeout {
    0% {opacity: 1}
    100% {opacity: 0}
}
@supports(backdrop-filter: blur(5px)){
form #form-result {
    background-color: rgba(255,255,255,0.5);
    backdrop-filter: blur(5px);
}
}
form #form-result p i.fas {
    display: block;
    margin-bottom: 1rem;
    font-size: 5rem;
    color: var(--blue);
}
form #form-result p.error i.fas {
    color: var(--red);
}
form #form-result i.close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    cursor: pointer;
    color: var(--grey-light);
    transition: all 0.5s ease-in;
}
form #form-result i.close:hover {
    color: var(--grey);
}
i.turnicon:before {
    animation: turning 1s linear infinite;
}
@keyframes turning {
    0% {transform: rotate(0deg)}
    100% {transform: rotate(-360deg)}
}
footer {
    text-align: center;
    font-size: 0.9rem;
    padding: var(--padding);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
footer p {
    margin: 0;
}


/* POPUPS */
.tpu-box, .sharebuttons, .tooltip {
    position: fixed;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--light);
    color: var(--grey);
    opacity: 0;
    pointer-events: none;
    z-index: 2100;
    transition: opacity 0.5s ease-in-out;
}
.tpu-box.tpu-show, .sharebuttons.showbuttons, .tooltip.ttopen {
    opacity: 1;
    pointer-events: all;
}
.tpu-box > .tpu, .sharebuttons .shbox, .tooltip .tti {
    position: relative;
    display: block;
    width: 90%;
    max-width: 500px;
    margin: 0;
    padding: 20px;
    background-color: transparent;
}
.tpu-box > .tpu {
    max-width: 1000px;
    max-height: 90vh;
    overflow-y: scroll;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
    transition: scrollbar-color .5s ease-in-out;
}
.tpu-box > .tpu:hover {
    scrollbar-color: var(--blue) var(--light);
}
.tpu-box p > span:not(.heading) {
    display: flex;
    width: 100%;
}
.tpu-box p > span > *:first-child {
    flex: 1 1 100px;
}
.tpu-box p > span > *:last-child {
    flex: 2 1 200px;
}
#tpu-close, .closeshare, #sc-close, .tooltip .ctt, .pu-close {
    position: absolute;
    z-index: 3000;
    cursor: pointer;
    top: calc(0.5 * var(--padding));
    right: calc(0.5 * var(--padding));
    height: 2rem;
    width: 2rem;
    font-size: 2rem;
    margin: 0;
    text-align: center;
    line-height: 1;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none; 
}
#tpu-close:hover, .closeshare:hover, #sc-close:hover, #closeform:hover, .tooltip .ctt:hover {
    color: var(--red)
}
.sharebuttons {
    text-align: center;
}
.sharebuttons .shariff ul {
    justify-content: center;
}
.sharebuttons .shariff .orientation-horizontal li, .sharebuttons .shariff .orientation-horizontal li  a {
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
}
.sharebuttons .tosoc {
    font-size: 0.7rem;
    line-height: 1.2em;
}

@media (max-width: 1650px){
html {
    font-size: 20px;
}
}

@media (max-width: 1050px){
html {
    font-size: 18px;
}
}
/* Tablet */
@media (max-width: 900px){
.flex .box1 {
    flex: 1 1 200px;
}
.sbox .shariff .orientation-horizontal li, .sbox .shariff li a {
    height: 2rem;
    width: 2rem;
}
article#start h1 {
    font-size: 1.8rem;
}   
article .videoplayer .plyr__control--overlaid {
    padding: 40px;
}
.stepsliderbox ul.slidersteps {
    font-size: 1.3rem;
}
article .stepslider h3 {
    font-size: 1.6rem;
}
article .stepslider > .flex {
    padding: 0;
}
article .stepslider > .flex > img {
    max-height: 270px;
}    
}
/* Phone */
@media (max-width: 500px){
:root {
    --padding: 24px;
}
html {
    font-size: 16px;
}
.sbox .shariff .orientation-horizontal li, .sbox .shariff li a {
    height: 2.4rem;
    width: 2.4rem;
}
.flex .box1, .flex .box2, .flex .box3, .flex .box4 {
    flex: 1 1 100%;
}
article .wrapper {
    padding: 5rem calc(0.75 * var(--padding));
}
.sticked header {
    height: 3rem;
    padding: 13px var(--padding);
}
header #logo {
    width: 7rem;
}
article#start h1 {
    font-size: 1.2rem;
    margin: 2em 0;
}  
article .videoplayer .plyr__control--overlaid {
    padding: 20px;
}  
h2, .index h2 {
    font-size: 1.5rem;
}
h3, article .stepslider h3 {
    font-size: 1.3rem;
}
.stepsliderbox ul.slidersteps {
    margin: 40px auto;
    font-size: 1rem;
}
article .stepslider > .flex {
    padding: 0;
}
article .stepslider > .flex > img {
    max-height: 170px;
}
}
@media (max-height: 500px){
.sliderbox.themebox-3d {
    min-height: 470px;
}
article .videoplayer {
    margin: var(--padding) 0;
}
}