@font-face {
    font-family: 'PT Serif 700';
    src: url('../Fonts/PTSerif-Bold.ttf');
}

* {
    color: #111;
    cursor: default;
    font-family: sans-serif;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.8rem;
    margin: 0;
    outline: none;
    padding: 0;
    -moz-text-size-adjust: none;
    -ms-text-size-adjust: none;
    -webkit-appearance: none;
    -webkit-text-size-adjust: none;
}

::selection {
    background-color: #003463;
    color: #fff;
}

body {
    color: #111;
}

.clearbreak {
    clear: both;
}

a {
    color: inherit;
    position: relative;
    text-decoration: none;
}

a,
a::before {
    transition: background-color .3s ease-in-out, border-bottom .3s ease-in-out, color .3s ease-in-out, opacity .3s ease-in-out;
}

a, a img, a span, a h3, a p, a div, a u {
    cursor: pointer;
}

p a {
    text-decoration: underline;
}

a.btn {
    background-color: #007eb5;
    border-radius: .1rem;
    color: #fff;
    display: inline-block;
    padding: .5rem 1rem .5rem 2.25rem;
}

a.btn::before {
    background-color: #fff;
    border-radius: .75rem;
    color: #007eb5;
    content: '›';
    display: block;
    height: .75rem;
    left: 1rem;
    line-height: .6rem;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    width: .75rem;
}

a.btn:hover {
    background-color: #003463;
}

a.btn:hover::before {
    color: #003463;
}

p + a.btn {
    margin: 2rem 0 1rem;
}

.nav-prev-next .prev a,
.nav-prev-next .next a,
a.marked-link {
    padding-left: 1rem;
    position: relative;
    text-decoration: none;
}

.nav-prev-next .next a {
    padding-left: 0;
    padding-right: 1rem;
}

.nav-prev-next .prev a::before,
.nav-prev-next .next a::before,
a.marked-link::before {
    background-color: #003463;
    border-radius: .75rem;
    color: #fff;
    content: '›';
    display: block;
    height: .75rem;
    left: 0;
    line-height: .6rem;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translateY(-55%);
    width: .75rem;
}

.nav-prev-next .prev a::before {
    content: '‹';
}

.nav-prev-next .next a::before {
    left: auto;
    right: 0;
}

ul {
    list-style: none;
}

img {
    display: inline-block;
    height: auto;
    width: auto;
}

h1 {
    display: none
}

h2,
h2 span {
    color: #003463;
    font-family: 'PT Serif 700', serif;
    font-size: 2.5rem;
    font-weight: normal;
    line-height: 3.5rem;
    margin-bottom: 2rem;
}

h2 span {
    display: inline-block;
    margin-bottom: 0;
    position: relative;
}

h2 span::after {
    background-color: #6e6a4c;
    bottom: .58rem;
    content: '';
    display: block;
    height: .5rem;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: -1;
}

h3 {
    color: #000;
    font-family: 'PT Serif 700', serif;
    font-size: 1.8rem;
    font-weight: normal;
    line-height: 2.5rem;
    margin-bottom: 1rem;
}

p + h3 {
    margin-top: 3rem;
}

h4 {
    color: #000;
}

p + h4 {
    margin-top: 1rem;
}

strong {
    color: #000;
    font-weight: bold;
}

video {
    border-radius: .1rem;
    width: 100%;
}

.table {
    overflow: auto;
}

table {
    border-collapse: collapse;
    border-radius: .1rem;
    overflow: hidden;
    width: 100%;
}

table,
table th,
table td {
    border: none;
}

table th {
    background-color: #003463;
    color: #fff;
    text-align: left;
}

table th,
table td {
    padding: .5rem;
    vertical-align: top;
}

table tr {
    border-bottom: 1px solid #e8ebee;
    transition: all .3s ease-in-out;
}

table tr.table--preview td {
   cursor: pointer;
}

table tr.active,
table tr:hover {
    background-color: #e8ebee;
}

table tr.table--description {
    display: none;
}

table tr.table--description:hover {
    background-color: #fff;
}

table tr.table--description > td > div {
    display: none;
}

table tr.table--preview.active + tr.table--description {
    display: table-row;
}

table tr td {
    width: 20%;
}

table tr td:first-child {
    width: 60%;
}

.content-outer {
    background-size: cover;
    margin: 0 auto;
    max-width: 1920px;
    padding: 3rem 0;
}

.content-outer.content-outer--dark {
    background-color: #003463;
}

.content-outer.content-outer--dark h2,
.content-outer.content-outer--dark h2 span,
.content-outer.content-outer--dark p,
.content-outer.content-outer--dark strong {
    color: #fff;
}

.content-outer.content-outer--no-image .btn {
    background-color: #496578;
}

.content-outer.content-outer--no-image .btn::before {
    color: #496578;
}

.content-outer.content-outer--no-image .btn:hover {
    background-color: #007eb5;
}

.content-outer.content-outer--no-image .btn:hover::before {
    color: #007eb5;
}

.content {
    box-sizing: border-box;
    margin: 0 auto;
    max-width: 1308px; /* 1200px + 6rem * 18px */
    padding: 0 3rem;
    position: relative;
}

.social-media-right {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateX(100%) translateY(-50%);
    transition: all .6s ease-in-out;
    z-index: 1;
}

.social-media-right.active {
    transform: translateX(0) translateY(-50%);
}

.social-media-right > img {
    height: 2.5rem;
    position: absolute;
    right: 1rem;
    top: 0;
    transform: translateY(-120%);
}

.social-media-right > a {
    border-bottom-left-radius: .5rem;
    border-top-left-radius: .5rem;
    color: #fff;
    display: block;
    font-style: italic;
    height: 2.5rem;
    line-height: 2.5rem;
    margin: .25rem 0;
    padding: 0 .75rem 0 2.5rem;
    transform: translateX(76%);
    transition: transform .6s ease-in-out;
}

.social-media-right > a:nth-child(2) {
    background-color: #2977c9;
}

.social-media-right > a:nth-child(3) {
    background: linear-gradient(45deg, #fd1d1d, #e1306c, #c13584, #833ab4, #5851db, #405de6);
}

.social-media-right > a:hover {
    transform: translateX(0);
}

.social-media-right > a img {
    height: 1.5rem;
    left: .5rem;
    position: absolute;
    top: .5rem;
}

header {
    background-color: rgba(255, 255, 255, .92);
    border-bottom: 1px solid #ddd;
    display: block;
    height: 9.5rem;
    left: 0;
    position: fixed;
    top: 0;
    transition: top .6s ease-in-out;
    width: 100%;
    z-index: 3;
}

header.scrolled {
    top: -3.5rem;
}

body.nav-main-sub-active header {
    background-color: rgba(255, 255, 255, 1);
}

header .meta-top {
    position: absolute;
    right: 3rem;
    top: 0;
    z-index: 1;
}

header .meta-top li {
    float: left;
    margin-left: 1rem;
    position: relative;
}

header .meta-top li:first-child {
    margin-left: 0;
}

header .meta-top li:last-child {
    margin-left: .25rem;
}

header .meta-top li a {
    display: inline-block;
    font-size: .8rem;
    line-height: 2.5rem;
    position: relative;
}

header .meta-top > li > a {
    opacity: .75;
}

header .meta-top li a:hover {
    opacity: 1;
}

header .meta-top li span {
    background-image: url('../Icons/Globe.svg');
    background-position: .75rem center;
    background-repeat: no-repeat;
    background-size: 1.5rem 1.5rem;
    cursor: pointer;
    display: inline-block;
    height: 2.5rem;
    padding-left: .75rem;
    width: 1.5rem;
}

header .meta-top li hr {
    background-color: #ddd;
    border: none;
    display: block;
    height: 1px;
    margin: .5rem 0;
}

header .meta-top li ul {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: .1rem;
    opacity: 0;
    overflow: hidden;
    padding: .5rem 0;
    position: absolute;
    right: 0;
    top: -100vh;
    transition: opacity .3s ease-in-out;
}

header .meta-top li:hover ul {
    opacity: 1;
    top: 3rem;
}

header .meta-top li ul li,
header .meta-top li ul li:last-child {
    float: none;
    margin-left: 0;
}

header .meta-top li ul li a,
header .meta-top li ul li small {
    color: inherit;
    display: block;
    padding: 0 1.5rem;
}

header .meta-top li ul li a.active,
header .meta-top li ul li a:hover {
    background-color: rgba(0, 53, 99, .05);
}

header .meta-top li ul li small {
    opacity: .4;
    white-space: nowrap;
}

header .meta-top li ul li a.i18n,
.nav-main-mobile nav a.i18n {
    background-position: 1.5rem center;
    background-repeat: no-repeat;
    background-size: 1rem auto;
    padding-left: 3rem;
}

.nav-main-mobile nav a.i18n {
    background-position: left center;
    padding-left: 1.5rem;
}

header .meta-top li ul li a.i18n.i18n-de,
.nav-main-mobile nav a.i18n.i18n-de {
    background-image: url('/typo3/sysext/core/Resources/Public/Icons/Flags/de.webp');
}

header .meta-top li ul li a.i18n.i18n-en,
.nav-main-mobile nav a.i18n.i18n-en {
    background-image: url('/typo3/sysext/core/Resources/Public/Icons/Flags/gb.webp');
}

header .meta-top li ul li a.i18n.i18n-at,
.nav-main-mobile nav a.i18n.i18n-at {
    background-image: url('/typo3/sysext/core/Resources/Public/Icons/Flags/at.webp');
}

header .meta-top li ul li a.i18n.i18n-ch,
.nav-main-mobile nav a.i18n.i18n-ch {
    background-image: url('/typo3/sysext/core/Resources/Public/Icons/Flags/ch.webp');
}

header .meta-top li ul li a.i18n.i18n-dk,
.nav-main-mobile nav a.i18n.i18n-dk {
    background-image: url('/typo3/sysext/core/Resources/Public/Icons/Flags/dk.webp');
}

header .logo {
    left: 50%;
    position: absolute;
    top: 4.5rem;
    transform: translateX(-50%);
}

header.scrolled .logo {
    top: 5rem;
}

header .logo img {
    height: 4rem;
    transition: all .3s ease-in-out;
}

header.scrolled .logo img {
    height: 3rem;
}

header .nav-main {
    left: 50%;
    position: absolute;
    top: calc(5.5rem - 3px);
}

header .nav-main.nav-main--left {
    left: calc(50% - 8rem);
    transform: translateX(-100%);
}

header .nav-main.nav-main--right {
    left: calc(50% + 8rem);
}

header .nav-main a {
    border-bottom: 3px solid transparent;
    box-sizing: border-box;
    color: #525252;
    float: left;
    line-height: 5.5rem;
    margin-right: 1.5rem;
    padding: 0 .5rem;
    transform: translateY(-1.5rem);
}

header .nav-main a:last-child {
    margin-right: 0;
}

header .nav-main a:hover,
header .nav-main a.hover,
header .nav-main a.active {
    border-bottom: 3px solid #003463;
    color: #000;
}

header > .nav-main-sub {
    background-color: #ebeef0;
    background-size: cover;
    box-shadow: inset 0 .5rem .5rem -.5rem #666;
    display: block;
    left: -100%;
    max-height: calc(100vh - 9.5rem - 3.5rem - 1rem); /* 1rem zur Sicherheit */
    opacity: 0;
    overflow: scroll;
    padding: 1.5rem 0;
    position: absolute;
    top: 9.5rem;
    width: 100%;
}

header > .nav-main-sub > img {
    bottom: 0;
    height: 100%;
    right: 0;
    opacity: .05;
    position: absolute;
    width: 100%;
}

header > .nav-main-sub.active {
    left: 0;
    opacity: 1;
}

header > .nav-main-sub .content {
    padding-top: 3rem;
}

header > .nav-main-sub .content > div {
    display: flex;
    flex-wrap: wrap;
    margin: -1rem;
}

header > .nav-main-sub .content > div a {
    background-color: transparent;
    border-bottom: 2px solid transparent;
    border-radius: .1rem;
    box-sizing: border-box;
    flex: 0 0 auto;
    flex-basis: calc(25% - 2rem);
    margin: 1rem;
    max-width: calc(25% - 2rem);
    width: calc(25% - 2rem);
}

header > .nav-main-sub .content > div a:hover,
header > .nav-main-sub .content > div a.active {
    background-color: #f7f9fa;
    border-bottom: 2px solid #003463;
}

header > .nav-main-sub .content > div a img {
    width: 100%;
}

header > .nav-main-sub .content > div a span {
    display: inline-block;
    line-height: 1.25rem;
    padding-left: 1.6rem;
    position: relative;
}

header > .nav-main-sub .content > div a span::before {
    background-color: #003463;
    border-radius: .75rem;
    color: #fff;
    content: '›';
    display: block;
    height: .75rem;
    left: .5rem;
    line-height: .6rem;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translateY(-55%);
    width: .75rem;
}

header > .nav-main-sub .content > div a p {
    color: #525252;
    font-size: .8rem;
    line-height: 1.2rem;
    padding: .5rem;
    position: relative;
}

header > .nav-main-sub .content > button {
    background-color: transparent;
    border: none;
    cursor: pointer;
    display: block;
    font-size: 1.5rem;
    height: 2rem;
    position: absolute;
    right: 3rem;
    text-align: right;
    top: 0;
}

header > .nav-main-sub .content hr {
    background-color: #ccc;
    border: none;
    display: block;
    height: 1px;
    margin: 1.5rem 0;
    width: 100%;
}

header .content .nav-main-mobile--trigger-open,
.nav-main-mobile .nav-main-mobile--trigger-close {
    background-image: url('../Icons/Menu.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 3rem auto;
    cursor: pointer;
    display: none;
    height: 3rem;
    position: absolute;
    right: 2rem;
    top: 2rem;
    width: 3rem;
}

.nav-main-mobile .nav-main-mobile--trigger-close {
    background-image: url('../Icons/Close.svg');
    background-size: 2rem auto;
}

.nav-main-mobile {
    background-color: #fff;
    box-sizing: border-box;
    display: none;
    height: 100vh;
    padding: 6rem 4rem 4rem;
    position: fixed;
    right: -75%;
    transition: right .6s ease-in-out;
    width: 75%;
    z-index: 4;
}

.nav-main-mobile.active {
    right: 0;
}

.nav-main-mobile > div {
    max-height: 80%;
    overflow: scroll;
    padding-bottom: 4rem;
    position: relative;
}

.nav-main-mobile > div:after {
    background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    bottom: -4rem;
    content: '';
    display: block;
    height: 4rem;
    left: 0;
    position: sticky;
    width: 100%;
}

.nav-main-mobile > div > div > a {
    border-bottom: 3px solid transparent;
    display: inline-block;
    font-size: 1.8rem;
    line-height: 2.6rem;
    margin-bottom: 1rem;
}

.nav-main-mobile > div > div > a.active {
    border-bottom: 3px solid #003463;
}

.nav-main-mobile > div > div > a + div a {
    display: inline-block;
    font-size: 1rem;
    line-height: 1.2rem;
    max-width: 100%;
    opacity: .5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-main-mobile > div > div > a + div a.active {
    opacity: 1;
}

.nav-main-mobile nav {
    margin-top: 1.5rem;
}

.nav-main-mobile nav span {
    display: block;
    margin-bottom: .5rem;
    opacity: .5;
}

.nav-main-mobile nav span,
.nav-main-mobile nav a {
    font-size: .8rem;
    line-height: 1rem;
}

main {
    box-sizing: border-box;
    min-height: calc(100vh - 5.8rem);
    overflow: hidden;
    padding-bottom: 3rem;
    padding-top: 9.5rem;
}

main .content-outer,
main .content {
    margin-top: 6rem;
}

main .content:first-child {
    margin-top: 3rem;
}

main .stage-image + .content-outer,
main .content-outer > .content {
    margin-top: 0;
}

main .content-outer--dark:last-child {
    margin-bottom: -3rem;
}

main .content-outer + .content-outer {
    margin-top: 0;
}

main .content p + p {
    margin-top: 1rem;
}

main .content ul {
    margin: -.75rem 0;
}

main .content ul li {
    background-image: url('../Images/LogoSingle.png');
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 2rem auto;
    display: block;
    line-height: 1.25rem;
    padding: .75rem 0 .75rem 2.75rem;
}

main .content-outer--dark .content ul li {
    background-image: url('../Images/LogoSingleWhite.png');
}

main .content-outer--dark .content ul li,
main .content-outer--dark .content ul li a u,
main .content-outer--dark .content ul li u,
main .content-outer--dark .content ul li u a {
    color: #fff;
}

main .nav-prev-next {
    border-top: 1px solid #ddd;
    padding-top: 1rem;
}

main .nav-prev-next span {
    display: inline-block;
}

main .nav-prev-next span {
    max-width: 20rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

main .nav-prev-next .prev {
    float: left;
}

main .nav-prev-next .back {
    left: 0;
    margin-left: 50%;
    position: absolute;
    transform: translateX(-50%);
}

main .nav-prev-next .back a {
    background-image: url('../Icons/Overview.svg');
    background-position: left center;
    background-repeat: no-repeat;
    background-size: auto 1.5rem;
    padding-left: 1.8rem;
}

main .nav-prev-next .next {
    float: right;
}

footer {
    background-color: #6e6a4c;
    overflow: hidden;
    padding: 2rem 0;
}

footer .meta-bottom {
    margin: 0 -1rem;
    width: calc(100% - 5rem);
}

footer .meta-bottom a {
    color: #fff;
    display: inline-block;
    margin: 0 1rem;
    opacity: .7;
    text-transform: uppercase;
}

footer .meta-bottom a:hover {
    opacity: 1;
}

footer .social-media {
    margin: 0 -.5rem;
    position: absolute;
    right: 3rem;
    top: 50%;
    transform: translateY(-50%);
}

footer .social-media a {
    background-position: center;
    background-repeat: no-repeat;
    background-size: 2rem 2rem;
    color: transparent;
    display: block;
    float: left;
    font-size: 0;
    height: 2rem;
    margin: 0 .5rem;
    opacity: .7;
    width: 2rem;
}

footer .social-media a:hover {
    opacity: 1;
}

footer .social-media a:nth-child(1) {
    background-image: url('../Icons/SocialMedia/LinkedIn.svg');
}

footer .social-media a:nth-child(2) {
    background-image: url('../Icons/SocialMedia/Instagram.svg');
}

.layer,
.layer-mobile {
    background-color: rgba(0, 0, 0, .85);
    height: 100vh;
    left: -100%;
    opacity: 0;
    position: fixed;
    top: 0;
    transition: opacity .3s ease-in-out;
    width: 100%;
    z-index: 2;
}

.layer-mobile {
    display: none;
    z-index: 3;
}

body.nav-main-sub-active .layer,
.layer-mobile.active {
    left: 0;
    opacity: 1;
}

@media (max-width: 1199px) {
    .social-media-right > img {
        display: none;
    }

    header .meta-top {
        right: 1rem;
    }

    header > .nav-main-sub .content > div a {
        flex-basis: calc(33.333% - 2rem);
        max-width: calc(33.333% - 2rem);
        width: calc(33.333% - 2rem);
    }
}

@media (max-width: 991px) {
    p + h3 {
        margin-top: 2rem;
    }

    .content {
        padding: 0 2rem;
    }

    .social-media-right > a:hover {
        transform: translateX(80%);
    }

    header,
    header.scrolled {
        background-color: #fff;
        height: 7rem;
        top: 0;
    }

    header .meta-top {
        display: none;
    }

    header .logo,
    header.scrolled .logo {
        left: 2rem;
        top: 2rem;
        transform: none;
    }

    header .logo img,
    header.scrolled .logo img {
        height: 3rem;
    }

    header .nav-main {
        display: none;
    }

    header > .nav-main-sub {
        display: none;
    }

    header .content .nav-main-mobile--trigger-open,
    .nav-main-mobile .nav-main-mobile--trigger-close {
        display: block;
    }

    .nav-main-mobile {
        display: block;
    }

    main {
        padding-bottom: 2rem;
        padding-top: 7rem;
    }

    main .content-outer,
    main .content {
        margin-top: 4rem;
    }

    main .content-outer--dark:last-child {
        margin-bottom: -2rem;
    }

    main .content:first-child {
        margin-top: 2rem;
    }

    main .content-outer--dark .content {
        margin-top: 0;
    }

    main .nav-prev-next span {
        color: transparent;
        width: 1.5rem;
    }

    main .nav-prev-next .next a::before {
        left: .7rem;
        right: auto;
    }

    footer {
        padding: 2rem 0;
    }

    footer .meta-bottom a {
        opacity: 1;
    }

    footer .social-media {
        right: 2rem;
    }

    footer .social-media a {
        opacity: 1;
    }

    .layer {
        display: none !important;
    }

    .layer-mobile {
        display: block;
    }
}

@media (max-width: 767px) {
    h2,
    h2 span {
        font-size: 2rem;
        line-height: 2.5rem;
        margin-bottom: 1rem;
    }

    h2 span {
        margin-bottom: 0;
    }

    h2 span::after {
        bottom: .34rem;
        height: .4rem;
    }

    h3 {
        font-size: 1.5rem;
        line-height: 2rem;
        margin-bottom: .5rem;
    }

    p + h3 {
        margin-top: 1rem;
    }

    table a,
    table th,
    table td {
        font-size: .9rem;
        line-height: 1.2rem;
    }

    .content {
        padding: 0 1rem;
    }

    header,
    header.scrolled {
        height: 5rem;
    }

    header .logo,
    header.scrolled .logo {
        left: 1rem;
        top: 1.25rem;
    }

    header .logo img,
    header.scrolled .logo img {
        height: 2.5rem;
    }

    header .content .nav-main-mobile--trigger-open,
    .nav-main-mobile .nav-main-mobile--trigger-close {
        background-size: 2rem auto;
        height: 2rem;
        right: 1rem;
        top: 1.5rem;
        width: 2rem;
    }

    .nav-main-mobile .nav-main-mobile--trigger-close {
        background-size: 1.5rem auto;
    }

    .nav-main-mobile {
        padding: 2rem;
        right: -90%;
        width: 90%;
    }

    .nav-main-mobile > div > div > a {
        font-size: 1.2rem;
        line-height: 1.6rem;
        margin-bottom: .5rem;
    }

    .nav-main-mobile > div > div > a + div a {
        font-size: .9rem;
        line-height: 1.1rem;
    }

    main {
        padding-bottom: 1rem;
        padding-top: 5rem;
    }

    main .content-outer,
    main .content {
        margin-top: 2rem;
    }

    main .content-outer--dark:last-child {
        margin-bottom: -1rem;
    }

    main .content:first-child {
        margin-top: 1rem;
    }

    footer {
        padding: 1rem 0;
    }

    footer .meta-bottom {
        margin: 0 -.5rem;
        width: calc(100% - 4.5rem);
    }

    footer .meta-bottom a {
        font-size: .8rem;
        margin: 0 .5rem;
    }

    footer .social-media {
        right: 1rem;
    }

    footer .social-media a {
        background-size: 1.5rem 1.5rem;
        height: 1.5rem;
        width: 1.5rem;
    }
}

@media (max-width: 576px) {
    h2,
    h2 span {
        font-size: 1.5rem;
        line-height: 2rem;
    }

    h2 span::after {
        bottom: .3rem;
        height: .3rem;
    }
}
