
/*

    Museum Frieder Burda
    
    Design: BOROS
    Entwicklung: Leon Klaßen—www.leonklassen.com
    
    2026

*/



*,
*:before,
*:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

ol, ul {
    list-style: none;
}

b, strong {
    font-weight: normal;
}

i, em {
    font-style: normal;
}

dialog:modal {
    max-width: 100%;
    max-height: 100%;
}



/* ### FONTS ### */


@font-face {
    font-family: 'TSTARPRO';
    font-style: normal;
    font-weight: normal;
    src: url( 'fonts/TSTARPRO/TSTARPRO-Regular.otf' ) format( 'opentype' );
}

@font-face {
    font-family: 'TSTARPRO';
    font-style: italic;
    font-weight: normal;
    src: url( 'fonts/TSTARPRO/TSTARPRO-Italic.otf' ) format( 'opentype' );
}

@font-face {
    font-family: 'TSTARPRO';
    font-style: normal;
    font-weight: bold;
    src: url( 'fonts/TSTARPRO/TSTARPRO-Bold.otf' ) format( 'opentype' );
}

@font-face {
    font-family: 'TSTARPRO';
    font-style: normal;
    font-weight: 900;
    src: url( 'fonts/TSTARPRO/TSTARPRO-Headline.otf' ) format( 'opentype' );
}



/* ### VARS ### */


:root {

    --color-dark: #000000;
    --color-light: #ffffff;
    
    --font-small-size: 1.125rem; /* 18 / 21.6 */
    --font-small-lineheight: 1.2em;
    
    --font-normal-size: 1.5625rem; /* 25 / 30 */
    --font-normal-lineheight: 1.2em;
    
    --font-large-size: 2.5rem; /* 40 / 40 */
    --font-large-lineheight: 1em;

    --font-smalltitle-size: 3.75rem; /* 60 / 60 */
    --font-smalltitle-lineheight: 1em;
    
    --font-title-size: 5rem; /* 80 / 80 */
    --font-title-lineheight: 1em;
    
    --page-padding-side: 40px;
    --page-margin-large: 200px;

}

@media ( max-width: 850px ) {
    
    :root {
    
        --font-small-size: 1.125rem; /* 18 / 21.6 */
        --font-small-lineheight: 1.2em;
    
        --font-normal-size: 1.125rem; /* 18 / 21.6 */
        --font-normal-lineheight: 1.2em;
        
        --font-large-size: 1.875rem; /* 30 / 30 */
        --font-large-lineheight: 1em;
        
        --font-smalltitle-size: 1.875rem; /* 30 / 30 */
        --font-smalltitle-lineheight: 1em;
    
        --font-title-size: 2.5rem; /* 40 / 40 */
        --font-title-lineheight: 1em;
    
        --page-padding-side: 20px;

    }
    
}

@media ( max-width: 500px ) {

    :root {
        --page-padding-side: 10px;
    }
    
}



/* ### GENERAL ### */


body {
    margin: 0px;
    padding: 0px;
    font-family: 'TSTARPRO', sans-serif;
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    background-color: var( --color-light );
    color: var( --color-dark );
    cursor: default;
    -webkit-user-select: text; 
    -moz-user-select: text; 
    -ms-user-select: text; 
    user-select: text;
    font-weight: normal;
    overflow-wrap: break-word;
    min-height:100%;
    height: 100%;
    width: 100%;
}

::selection {
    background: var( --color-dark );
    color: var( --color-light );
}

::-moz-selection {
    background: var( --color-dark );
    color: var( --color-light );
}

a {
    color: inherit;
    text-decoration: inherit;
    cursor: pointer;
}

button {
    background-color: transparent;
    text-align: left;   
    color: inherit;     
}

a:hover {

}

strong {
    font-weight: bold;
}

em {
    font-style: normal;
}

button:focus-visible,
a:focus-visible,
*[tabindex = "0"]:focus-visible,
details summary:focus-visible {
    outline: 2px solid blue;
    outline-offset: 5px;
    border-radius: 5px;
}



/* ### HIGH CONTRAST ### */


/*@media (prefers-contrast: more) { 

    body {
        
        --color-dark: #ffffff;
        --color-light: #000000;
        
        --color-magenta: #000000;
        --color-blue: #000000;
        
    }
    
    button:focus-visible,
    a:focus-visible,
    *[tabindex = "0"]:focus-visible,
    details summary:focus-visible {
        outline: 3px solid #F00078;
    }

}

body.mode-highcontrast {
    
    --color-dark: #ffffff;
    --color-light: #000000;
    
    --color-magenta: #000000;
    --color-blue: #000000;
    
}

body.mode-highcontrast button:focus-visible,
body.mode-highcontrast a:focus-visible,
body.mode-highcontrast *[tabindex = "0"]:focus-visible,
body.mode-highcontrast details summary:focus-visible {
    outline: 3px solid #F00078;
}*/



/* ### GENERAL ### */


body {
    --header-height: 200px;
    --header-footer-height: 200px;
}



/* ### COMPONENTS ### */


.wp-element-button {
    min-height: 50px;
    background-color: transparent;
    color: var( --color-dark );
    border: 2px solid var( --color-dark );
    border-radius: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 900;
    padding-top: 5px;
    padding-left: 15px;
    padding-right: 15px;
    cursor: pointer;
}

.wp-element-button[target="_blank"]:not([download]) {
    background-color: var( --color-dark );
    color: var( --color-light );
    border: none;
}

.wp-element-button[download]::after,
.wp-element-button.--download::after {
    content: "";
    display: block;
    position: relative;
    width: 22px;
    height: 22px;
    top: -2px;
    background-image: url( 'graphics/arrow-download.svg' );
}

@media ( max-width: 850px ) {

    .wp-element-button {
        min-height: 40px;
        padding-top: 3px;
    }
}



/* ### HEADER ### */


header {
    position: sticky;
    top: 0px;
    margin-top: 0px;
    height: auto;
    background-color: var( --color-light );
    display: grid;
    align-items: center;
    grid-template-columns: repeat( 12, 1fr );
    column-gap: 20px;
    padding: 30px var( --page-padding-side );
    flex-shrink: 0;
    flex-grow: 0;
    pointer-events: all;
    z-index: 99999999;
    transition: background-color .4s, color .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) {
    background-color: transparent;
    color: var( --color-light );
}

@media (prefers-contrast: more) { 
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) {
        background-color: var( --color-light );
        color: var( --color-dark );
    }
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) {
    background-color: var( --color-light );
    color: var( --color-dark );
}

header.--display-transparent::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0px;
    width: auto;
    height: 30svh;
    background: linear-gradient( rgb( 0 0 0 / 0.5 ), transparent );
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) )::before {
    opacity: 1;
}

@media (prefers-contrast: more) { 
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) )::before {
        opacity: 0;
    }
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) )::before {
    opacity: 0;
}

header .logo {
    position: relative;
    grid-column: span 4;
    display: flex;
    justify-content: center;
}

header .logo svg {
    display: block;
    width: calc( ( ( ( 100% - 3 * 20px ) / 4 ) * 2 + 20px ) * 1.84 );
    height: auto;
    fill: var( --color-dark );
    transition: fill .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .logo svg {
    fill: var( --color-light );
}

@media (prefers-contrast: more) { 
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .logo svg {
        fill: var( --color-dark );
    }
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .logo svg {
    fill: var( --color-dark );
}

header .menu {
    position: relative;
    grid-column: span 4;
}

header .menu > ul {
    width: 100%;
    display: flex;
    gap: 20px;
    align-items: center;
}

header .menu.menu__right > ul {
    justify-content: flex-end;
}

header .menu > ul > li.language > ul,
.header-footer .menu > ul > li.language > ul {
    display: flex;
    gap: 10px;
}

header .menu > ul > li.language > ul > li.active,
.header-footer .menu > ul > li.language > ul > li.active {
    font-weight: bold;
}

header .menu > ul > li.language > ul > li > a,
.header-footer .menu > ul > li.language > ul > li > a {
    display: block;
    text-box-edge: cap alphabetic;
    text-box-trim: trim-both;
}

header .menu > ul > li.easy-language > a,
.header-footer .menu > ul > li.easy-language > a {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;
}

header .menu > ul > li.easy-language > a svg,
.header-footer .menu > ul > li.easy-language > a svg {
    display: block;
    position: absolute;
    width: 22px;
    height: 30px;
    inset: 0px;
    margin: auto;
    fill: var( --color-dark );
    transition: fill .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.easy-language > a svg {
    fill: var( --color-light );
}

@media (prefers-contrast: more) { 
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.easy-language > a svg {
        fill: var( --color-dark );
    }
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.easy-language > a svg {
    fill: var( --color-dark );
}

header .menu > ul > li.search .search-button,
.header-footer .menu > ul > li.search .search-button {
    width: 50px;
    height: 50px;
    border: 2px solid var( --color-dark );
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color .4s;
}

header.search-extended .menu > ul > li.search,
.header-footer.search-extended .menu > ul > li.search,
header.search-extended .menu > ul > li.ticketshop,
.header-footer.search-extended .menu > ul > li.ticketshop {
    display: none;
}

header .menu > ul > li.search .search-button svg,
.header-footer .menu > ul > li.search .search-button svg {
    display: block;
    width: 30px;
    height: auto;
    fill: var( --color-dark );
    transition: fill .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg {
    fill: var( --color-light );
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button {
    border-color: var( --color-light );
}

@media (prefers-contrast: more) { 

    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg {
        fill: var( --color-dark );
    }
    
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button {
        border-color: var( --color-dark );
    }
    
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button svg {
    fill: var( --color-dark );
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search .search-button {
    border-color: var( --color-dark );
}

header .menu > ul > li.search-action,
.header-footer .menu > ul > li.search-action {
    display: flex;
    gap: 10px;
    flex-grow: 1;
    align-items: center;
    display: none;
}

.header-footer .menu > ul > li.search-action {
    padding-right: 20px;
}

header.search-extended .menu > ul > li.search-action,
.header-footer.search-extended .menu > ul > li.search-action {
    display: flex;
}

header .menu > ul > li.search-action input,
.header-footer .menu > ul > li.search-action input {
    width: 0px;
    flex-grow: 1;
    background-color: transparent;
    border-bottom: 2px solid var( --color-dark );
    outline: none;
    font-weight: 900;
    padding-top: 7px;
    transition: color .4s, border-color .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input {
    color: var( --color-light );
    border-color: var( --color-light );
}

@media (prefers-contrast: more) { 
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input {
        color: var( --color-dark );
        border-color: var( --color-dark );
    }
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.search-action input {
    color: var( --color-dark );
    border-color: var( --color-dark );
}

header .menu > ul > li.menu .menu-button,
.header-footer .menu-button {
    position: relative;
    width: 35px;
    height: 35px;
    cursor: pointer;
}

header .menu > ul > li.menu .menu-button span,
.header-footer .menu-button span {
    position: absolute;
    top: 0px;
    bottom: 0px;
    margin-top: auto;
    margin-bottom: auto;
    display: block;
    width: 100%;
    height: 2px;
    background-color: var( --color-dark );
    transition: rotate .4s, margin .4s, top .4s, bottom .4s, opacity .4s, background-color .4s;
}

@media (prefers-reduced-motion) {
    header .menu > ul > li.menu .menu-button span,
    .header-footer .menu-button span {
        transition: opacity .4s, background-color .4s;
    }
}

header .menu > ul > li.menu .menu-button span:first-child,
.header-footer .menu-button span:first-child {
    top: 7px;
    margin-top: 0px;
}

header .menu > ul > li.menu .menu-button span:last-child,
.header-footer .menu-button span:last-child {
    bottom: 7px;
    margin-bottom: 0px;
}

header .menu > ul > li.menu .menu-button[aria-expanded="true"] span:first-child,
.header-footer .menu-button[aria-expanded="true"] span:first-child {
    rotate: 45deg;
    top: 16.5px;
}

header .menu > ul > li.menu .menu-button[aria-expanded="true"] span:last-child,
.header-footer .menu-button[aria-expanded="true"] span:last-child {
    rotate: -45deg;
    bottom: 16.5px;
}

header .menu > ul > li.menu .menu-button[aria-expanded="true"] span:nth-child( 2 ),
.header-footer .menu-button[aria-expanded="true"] span:nth-child( 2 ) {
    opacity: 0;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.menu .menu-button span,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu-button span {
    background-color: var( --color-light );
}

header.--display-transparent .wp-element-button,
.header-footer.--display-transparent .wp-element-button {
    transition: background-color .4s, color .4s, border-color .4s;
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button {
    background-color: var( --color-light );
    color: var( --color-dark );
}

header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button,
.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button {
    background-color: transparent;
    color: var( --color-light );
    border-color: var( --color-light );
}

@media (prefers-contrast: more) { 

    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.menu .menu-button span,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu-button span {
        background-color: var( --color-dark );
    }
    
    header.--display-transparent .wp-element-button,
    .header-footer.--display-transparent .wp-element-button {
        transition: background-color .4s, color .4s, border-color .4s;
    }
    
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button {
        background-color: var( --color-dark );
        color: var( --color-light );
    }
    
    header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button,
    .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button {
        background-color: transparent;
        color: var( --color-dark );
        border-color: var( --color-dark );
    }

}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu > ul > li.menu .menu-button span,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .menu-button span {
    background-color: var( --color-dark );
}

body.mode-highcontrast header.--display-transparent .wp-element-button,
body.mode-highcontrast .header-footer.--display-transparent .wp-element-button {
    transition: background-color .4s, color .4s, border-color .4s;
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) .wp-element-button {
    background-color: var( --color-dark );
    color: var( --color-light );
}

body.mode-highcontrast header.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button,
body.mode-highcontrast .header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) ) button.wp-element-button {
    background-color: transparent;
    color: var( --color-dark );
    border-color: var( --color-dark );
}


@media ( max-width: 1000px ) {

    header {
        padding-top: 20px;
        padding-bottom: 20px;    
    }
    
    header .menu {
        display: none;
    }
    
    header .logo {
        grid-column: span 12;
    }
    
    header .logo svg {
        display: block;
        width: 100%;
        height: auto;
        max-width: 400px;
        margin-left: auto;
        margin-right: auto;
    }

}

@media ( max-width: 850px ) {

    header .menu > ul > li.search .search-button,
    .header-footer .menu > ul > li.search .search-button {
        width: 40px;
        height: 40px;
    }
    
    header .menu > ul > li.search .search-button svg,
    .header-footer .menu > ul > li.search .search-button svg {
        display: block;
        width: 20px;
        height: auto;
    }
    
    header .menu > ul > li.menu .menu-button,
    .header-footer .menu-button {
        width: 40px;
    }
    
}

/*@media ( max-width: 500px ) {

}*/


/* ### HEADER FOOTER ### */


.header-footer {
    position: fixed;
    left: 0px;
    bottom: 0px;
    width: 100%;
    height: auto;
    background-color: var( --color-light );    
    padding: 20px var( --page-padding-side );
    z-index: 99999999;
    display: none;
    transition: background-color .4s;
}

.header-footer.--display-transparent.--is-transparent {
    background-color: transparent;
}

.header-footer.--display-transparent::before {
    content: "";
    display: block;
    position: absolute;
    width: auto;
    height: 30svh;
    left: 0px;
    right: 0px;
    bottom: 0px;
    background: linear-gradient( transparent, rgb( 0 0 0 / 0.5 ) );
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s;
}

.header-footer.--display-transparent.--is-transparent:not( :has( .menu-button[aria-expanded="true"] ) )::before {
    opacity: 1;
}

.header-footer .menu {
    position: relative;
}

.header-footer .menu > ul {
    width: 100%;
    display: flex;
    gap: 20px;
    align-items: center;
    padding-right: 50px;
}

.header-footer .menu > ul li.ticketshop {
    margin-left: auto;
    margin-right: auto;
}

.header-footer .menu.menu__extended {
    position: absolute;
    left: var( --page-padding-side );
    top: 0px;
    width: 100%;
    height: 100%;
    background-color: var( --color-light );
    display: flex;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s;
}

.header-footer.extended .menu.menu__extended {
    opacity: 1;
    pointer-events: all;
}

.header-footer .menu-button {
    position: absolute;
    right: var( --page-padding-side );
    top: 0px;
    bottom: 0px;
    margin-top: auto;
    margin-bottom: auto;
}

@media ( max-width: 1000px ) {

    .header-footer {
        display: block;
    }
    
}

@media ( max-width: 850px ) {

    .header-footer .menu > ul {
        padding-right: 40px;
    }
    
}


/* ### MAIN MENU ### */


.main-menu {
    position: fixed;
    width: calc( ( ( 100% - 13 * 20px ) / 12 ) * 4 + ( 5 * 20px ) );
    height: 100svh;
    top: 0px;
    right: 0px;
    background-color: var( --color-light );
    padding: 20px var( --page-padding-side );
    padding-top: calc( var( --header-height ) + 20px );
    padding-bottom: calc( var( --header-footer-height ) + 20px );
    display: flex;
    flex-direction: column;
    overflow: hidden;
    overflow-y: auto;
    pointer-events: all;
    z-index: 99999991;
    transform: translate3d( 0px, -100%, 0px );
    transition: transform .4s;
}

@media (prefers-reduced-motion) {
    .main-menu {
        transition: none;
    }
}

.main-menu.visible {
    transform: none;
}

.main-menu .main-menu__topbar {
    margin-bottom: 40px;
}

.main-menu .main-menu__topbar ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.main-menu .main-menu__topbar .contrast .contrast-button {
    position: relative;
    width: 50px;
    height: 50px;
    border: 2px solid var( --color-dark );
    border-radius: 50%;
    overflow: hidden;
    cursor: pointer;
    background-size: 100%;
}

.main-menu .main-menu__topbar .contrast .contrast-button[aria-pressed="false"] {
    background-image: url( "graphics/contrast-high.svg" );
}

.main-menu .main-menu__topbar .contrast .contrast-button[aria-pressed="true"] {
    background-image: url( "graphics/contrast-default.svg" );
}

.main-menu .main-menu__menu {
    display: grid;
    grid-template-columns: repeat( 4, 1fr );
    column-gap: 20px;
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    font-weight: 900;
}

.main-menu .main-menu__menu ul {
    grid-column: span 4;
}

.main-menu .main-menu__menu ul li {
    border-bottom: 2px solid var( --color-dark );
    padding-bottom: 3px;
}

.main-menu .main-menu__menu ul li + li {
    margin-top: 15px;
}

@media ( max-width: 1000px ) {

    .main-menu {
        width: 100%;
        transform: translate3d( 0px, 100%, 0px );
    }
    
    .main-menu .main-menu__menu ul {
        grid-column: span 4;
    }
    
}

@media ( max-width: 850px ) {

    .main-menu .main-menu__topbar .contrast .contrast-button {
        position: relative;
        width: 40px;
        height: 40px;
    }
    
    .main-menu .main-menu__menu ul li {
        padding-bottom: 8px;
    }
    
}

.main-menu-back {
    position: fixed;
    inset: 0px;
    width: 100%;
    height: 100%;
    background-color: #ECECEC80;
    z-index: 99999990;
    opacity: 0;
    transition: opacity .4s, backdrop-filter .4s;
}

.main-menu-back.visible {
    opacity: 1;
    backdrop-filter: blur( 10px );
}

@media (prefers-contrast: more) { 

    .main-menu-back {
        background-color: black;
        backdrop-filter: none !important;
    }

}

body.mode-highcontrast .main-menu-back {
    background-color: black;
    backdrop-filter: none !important;
}



/* ### CONTENT ### */


.content {
    position: relative;
    width: 100%;
    padding: 40px var( --page-padding-side ) 150px var( --page-padding-side );
}

.content:has( .content-intro:first-child ) {
    margin-top: calc( var( --header-height ) * -1 );
    padding-top: 0px;
}

@media ( max-width: 850px ) {
    
    .content {
        position: relative;
        width: 100%;
        padding: 20px var( --page-padding-side ) 100px var( --page-padding-side );
    }

}



/* ### HEADING ### */


.wp-block-heading { 
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;   
    scroll-margin-top: var( --header-height );
}

.wp-block-heading:not(:first-child) {
    margin-top: 150px;
}

.wp-block-heading:not(:last-child) {
    margin-bottom: 75px;
}

h1.wp-block-heading {
    font-size: var( --font-title-size );
    line-height: var( --font-title-lineheight );
    font-weight: 400;
    text-wrap: balance;
    text-transform: uppercase;
}

h2.wp-block-heading {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    font-weight: 900;
    text-transform: uppercase;
}

h2.wp-block-heading:not(:last-child) {
    margin-bottom: 50px;
}

h3.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: 900;
    text-transform: uppercase;
    width: calc( ( ( 100% - 11 * 20px ) / 12 ) * 9 + 8 * 20px );
}

h3.wp-block-heading:not(:first-child) {
    margin-top: var( --font-normal-lineheight );
}

h3.wp-block-heading:not(:last-child) {
    margin-bottom: var( --font-normal-lineheight );
}

@media ( max-width: 850px ) {

    .wp-block-heading:not(:first-child) {
        margin-top: 100px;
    }
    
    .wp-block-heading:not(:last-child) {
        margin-bottom: 30px;
    }

    h2.wp-block-heading:not(:last-child) {
        margin-bottom: 30px;
    }
    
    h3.wp-block-heading { 
        width: 100%;
    }

}



/* ### PARAGRAPH ### */


.wp-block-paragraph {
    width: calc( ( ( 100% - 11 * 20px ) / 12 ) * 9 + 8 * 20px );
}

.wp-block-paragraph:not(:first-child) {
    margin-top: var( --font-small-lineheight );   
}

.wp-block-paragraph:not(:last-child) {
    margin-bottom: var( --font-small-lineheight );   
}

.wp-block-paragraph strong {
    font-weight: 900;
}

.wp-block-paragraph a {
    text-decoration: underline;
}

.wp-block-paragraph.has-small-font-size {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

@media ( max-width: 850px ) {

    .wp-block-paragraph {
        width: 100%;
    }

}



/* ### IMAGE ### */


.wp-block-image {
    position: relative;
    width: 100%;
}

.wp-block-image:has( figure.alignleft ) {
    width: calc( ( ( 100% - 11 * 20px ) / 12 ) * 9 + 8 * 20px );
}

.wp-block-image.max-width {
    max-width: 1000px;
}

.wp-block-image:not(:first-child) {
    margin-top: 50px;
}

.wp-block-image:not(:last-child) {
    margin-bottom: 50px;
}

.wp-block-image img {
    display: block;
    width: 100% !important;
    height: auto !important;
}

.wp-block-image figcaption {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 15px;
}

@media ( max-width: 850px ) {

    .wp-block-image:not(:first-child) {
        margin-top: 20px;
    }
    
    .wp-block-image:not(:last-child) {
        margin-bottom: 20px;
    }

}



/* ### GALLERY ### */


.wp-block-gallery {
    position: relative;
    width: auto;
    margin-left: calc( var( --page-padding-side ) * -1 );    
    margin-right: calc( var( --page-padding-side ) * -1 );    
    padding-left: var( --page-padding-side );    
    padding-right: var( --page-padding-side );    
    overflow: hidden;
}

.wp-block-gallery:not( :first-child ) {
    margin-top: 150px;
}

.wp-block-gallery:not( :last-child ) {
    margin-bottom: 150px;
}

.wp-block-gallery .strip {
    display: flex;
    gap: 20px;
    width: fit-content;
    padding-bottom: 80px;
    transition: transform .5s;
}

@media (prefers-reduced-motion) {
    .wp-block-gallery .strip {
        transition: transform .05s;
    }
}

.wp-block-gallery .strip .wp-block-image {
    width: min-content;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

.wp-block-gallery .strip .wp-block-image img {
    height: min( 35vw, calc( ( 100vw - ( var( --page-padding-side ) * 2 ) ) / var( --largest-ratio ) ) ) !important;
    width: auto !important;
    aspect-ratio: auto;
}

.wp-block-gallery .arrows {
    position: absolute;
    width: 25px;
    height: 50px;
    bottom: 0px;
    background-size: 25px auto;
    background-position: center center;
    background-repeat: no-repeat;
    cursor: pointer;
    transition: opacity .5s, transform .5s;
}

@media (prefers-reduced-motion) {
    .wp-block-gallery .arrows { 
        transition: opacity .5s, transform .05s;
    }
}

.wp-block-gallery .arrows.left {
    right: calc( var( --page-padding-side ) + 45px );
    background-image: url( 'graphics/arrow-left.svg' );
}

.wp-block-gallery .arrows.right {
    right: var( --page-padding-side );
    background-image: url( 'graphics/arrow-right.svg' );
}

.wp-block-gallery .arrows.disabled {
    opacity: 0;
    pointer-events: none;
}

.wp-block-gallery .arrows.left:has( + .arrows.right.disabled ),
.wp-block-gallery .arrows.left + .arrows.right.disabled {
    transform: translate3d( 45px, 0px, 0 );
}

.wp-block-gallery .wp-block-image figcaption {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 10px;
}

.wp-block-gallery:not( .wp-block-gallery--press ) .wp-block-image figcaption {
    display: none;
}

.wp-block-gallery.wp-block-gallery--masonry {
    margin-left: 0px;    
    margin-right: 0px;    
    padding-left: 0px;    
    padding-right: 0px;   
}

.wp-block-gallery.wp-block-gallery--masonry .wp-block-image {
    position: absolute;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

.wp-block-gallery.wp-block-gallery--press {
    margin-top: 50px !important;
}

.wp-block-gallery.wp-block-gallery--press > a {
    display: block;
    height: auto;
    position: absolute;
}

.wp-block-gallery.wp-block-gallery--press > a > .wp-block-image {
    position: relative;
}

.wp-block-gallery.wp-block-gallery--press figcaption {
    background-image: url( 'graphics/arrow-downloadbutton.svg' );
    background-size: 40px auto;
    background-repeat: no-repeat;
    background-position: right top;
    padding-right: 50px;
}

.wp-block-gallery.wp-block-gallery--shadow .wrapper {
    padding-top: 5px;
}

.wp-block-gallery.wp-block-gallery--shadow .wp-block-image {
    box-shadow: 0px 0px 5px rgb( 0 0 0 / 0.2 );
}



/* ### BUTTONS ### */


.wp-block-buttons {
    position: relative;
    width: 100%;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.wp-block-buttons:not(:first-child) {
    margin-top: 50px;
}

.wp-block-buttons:not(:last-child) {
    margin-bottom: 50px;
}

@media ( max-width: 850px ) {
    
    .wp-block-buttons:not(:first-child) {
        margin-top: 20px;
    }
    
    .wp-block-buttons:not(:last-child) {
        margin-bottom: 20px;
    }

}



/* ### DETAILS ### */


.wp-block-details {
    border-bottom: 2px solid var( --color-dark );
    width: calc( ( ( 100% - 11 * 20px ) / 12 ) * 9 + 8 * 20px );
}

.wp-block-details:not(:first-child ) {
    margin-top: 30px;
}

.wp-block-details:not(:last-child ) {
    margin-bottom: 20px;
}

.wp-block-details > summary {
    position: relative;
    list-style: none;
    padding: 0px 55px 0px 0px;
    margin-bottom: 25px;
    font-weight: 900;
    background-image: url( 'graphics/arrow-down.svg' );
    background-size: 35px 15px;
    background-position: right center;
    background-repeat: no-repeat;
    cursor: pointer;
    transition: color .4s;
}

.wp-block-details[open] > summary {
    background-image: url( 'graphics/arrow-up.svg' );
}

.wp-block-details > .wrapper {
    height: 0px;
    transition: height .4s;
    overflow: hidden;
}

.wp-block-details[open]:not( .animating ) > .wrapper {
    overflow: visible;
}

@media (prefers-reduced-motion) {

    .wp-block-details > .wrapper {
        transition: none;
    }

}

.wp-block-details > .wrapper > *:last-child {
    padding-bottom: 20px;
}

.wp-block-details .wp-block-paragraph {
    width: 100%;
}

.wp-block-details.wp-block-details--date {
    width: 100%;
}

.wp-block-details.wp-block-details--date summary {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.wp-block-details.wp-block-details--date summary .wp-block-details__meta {
    font-weight: normal;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.wp-block-details.wp-block-details--date summary .wp-block-details__meta p:first-child {
    font-weight: 900;
}

.wp-block-details.wp-block-details--date summary .wp-block-details__subtitle {
    font-weight: normal;
}

@media ( max-width: 850px ) {
    
    .wp-block-details {
        width: 100%;
    }
    
    .wp-block-details > summary { 
        background-size: 22px 15px;
        padding: 0px 35px 0px 0px;
    }

}



/* ### QUOTE ### */


.wp-block-quote {
        
}

.wp-block-quote:not( :first-child ) {
    margin-top: var( --font-normal-lineheight );
}

.wp-block-quote:not( :last-child ) {
    margin-bottom: var( --font-normal-lineheight );
}

.wp-block-quote .wp-block-paragraph:not( :last-child ) {
    font-style: italic;
}



/* ### COLUMNS ### */


.wp-block-columns {
    display: grid;
    grid-template-columns: repeat( 12, 1fr );
    column-gap: 20px;    
}

.wp-block-columns:not(:first-child) {
    margin-top: 50px;
}

.wp-block-columns:not(:last-child) {
    margin-bottom: 50px;
}

.wp-block-columns > .wp-block-column {
    min-width: 0px;
}

.wp-block-columns > .wp-block-column:first-child {
    grid-column: span 5;
}

.wp-block-columns > .wp-block-column:last-child {
    grid-column: span 7;
}

.wp-block-columns:has( > .wp-block-column:last-child > .wp-block-image ) > .wp-block-column:first-child {
    grid-column: span 7;
}

.wp-block-columns:has( > .wp-block-column:last-child > .wp-block-image ) > .wp-block-column:last-child {
    grid-column: span 5;
}

.wp-block-columns .wp-block-paragraph {
    width: 100%;
}

@media ( max-width: 850px ) {

    .wp-block-columns { 
        row-gap: 30px;
    }
    
    .wp-block-columns > .wp-block-column:first-child,
    .wp-block-columns > .wp-block-column:last-child {
        grid-column: span 12 !important;
    }

}



/* ### INTRO ### */


.content-intro {
    margin-left: calc( var( --page-padding-side ) * -1 );
    margin-right: calc( var( --page-padding-side ) * -1 );
    display: flex;
    flex-direction: column;
    max-height: 100svh;
}

.content-intro .content-intro__filmwrapper {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 0px;
    flex-shrink: 1;
    display: flex;
    flex-direction: column;
}

.content-intro .content-intro__film {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    min-height: 0px;
    flex-shrink: 1;
}

.content-intro .content-intro__controls {
    position: absolute;
    top: auto;
    bottom: 30px;
    right: var(  --page-padding-side );
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html:has( header.--display-transparent.--is-transparent ) .content-intro .content-intro__controls {
    z-index: 999999999;
}

html:has( .main-menu.visible ) .content-intro .content-intro__controls {
    z-index: 1 !important;
}

.content-intro .content-intro__controls button {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 2px solid var( --color-light );
    cursor: pointer;
    background-size: 100%;
}

@media (prefers-contrast: more) { 

    .content-intro .content-intro__controls button {
        background-color: var( --color-dark );
    }

}

body.mode-highcontrast .content-intro .content-intro__controls button {
    background-color: var( --color-dark );
}

.content-intro .content-intro__controls .start-stop-button.--paused {
    background-image: url( "graphics/play-white.svg" );
}

.content-intro .content-intro__controls .start-stop-button.--playing {
    background-image: url( "graphics/pause-white.svg" );
}

.content-intro .content-intro__controls .contrast-button[aria-pressed="false"] {
    background-image: url( "graphics/contrast-high-white.svg" );
}

.content-intro .content-intro__controls .contrast-button[aria-pressed="true"] {
    background-image: url( "graphics/contrast-default-white.svg" );
}

.content-intro .content-intro__info {
    padding: 20px var( --page-padding-side );
    flex-shrink: 0;
    display: flex;
    gap: 20px;
    align-items: center;
}

.content-intro .content-intro__info .wp-block-paragraph,
.content-intro .content-intro__info .wp-block-buttons {
    margin-top: 0px !important;
    margin-bottom: 0px !important;
    width: auto;
}

.content-intro .content-intro__info .wp-block-buttons {
    flex-shrink: 0;   
}

@media ( max-width: 850px ) {

    .content-intro {
        height: auto;
        max-height: unset;
    }
    
    .content-intro .content-intro__film {
        height: 100svh;
    }
    
    .content-intro .content-intro__controls {
        bottom: auto;
        top: calc( var( --header-height ) + 10px );
    }
    
    .content-intro .content-intro__controls button {
        width: 40px;
        height: 40px;
    }
    
}



/* ### TICKET ### */


.content-ticket {
    display: flex;    
    gap: 20px;
    align-items: center;
}

.content-ticket:not( :first-child ) {
    margin-top: 20px;
}

.content-ticket:not( :last-child ) {
    margin-bottom: 20px;
}

.content-ticket .wp-block-column .wp-block-paragraph {
    width: 100%;
    margin: 0px;
}

.content-ticket .wp-block-column .wp-block-paragraph:not( :first-child ) {
    margin-top: 5px;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.content-ticket .wp-block-column:first-child {
    flex-grow: 1;
}

.content-ticket .wp-block-column:last-child {
    white-space: nowrap;
    text-align: right;
    flex-shrink: 0;
}



/* ### INFO ### */


.content-info {
    position: relative;
    align-items: center;
    width: fit-content;
    padding-right: 50px;
}

.content-info .wp-block-paragraph {
    margin: 0px;
}

.content-info .content-info__button {
    position: absolute;
    right: 0px;
    top: -3px;
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid var( --color-dark );
    cursor: pointer;
}

.content-info .content-info__button::before {
    position: absolute;
    width: 100%;
    text-align: center;
    top: 1px;
    content: "i";
}

.content-info:has( .content-info__button[aria-expanded="true"] ) .content-info__button {
    border-color: var( --color-light );
    color: var( --color-light );
}

.content-info .content-info__info {
    position: absolute;
    left: calc( 100% - 20px - 30px );
    top: -20px;
    background-color: var( --color-dark );
    color: var( --color-light );
    width: 500px !important;
    height: auto;
    padding: 20px;
    padding-left: calc( 20px + 30px + 20px  );
    padding-right: calc( 15px + 30px + 20px  );
    display: none;
}

.content-info:has( .content-info__button[aria-expanded="true"] ) .content-info__info {
    display: block;
}

.content-info .content-info__close-button {
    position: absolute;
    right: 15px;
    top: 15px;
    width: 30px;
    height: 30px;
    cursor: pointer;
}

.content-info .content-info__close-button::before,
.content-info .content-info__close-button::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 1.5px;
    inset: 0px;
    margin: auto;
    background-color: var( --color-light );
}

.content-info .content-info__close-button::before {
    rotate: 45deg;
}

.content-info .content-info__close-button::after {
    rotate: -45deg;
}

@media ( max-width: 850px ) {

    .content-info {
        max-width: 100%;
        padding-right: 30px;
    }
    
    .content-info .content-info__info {
        position: relative;
        left: 0px;
        top: 0px;    
        padding: 10px;
        padding-right: calc( 10px + 22px + 10px  );
        max-width: 100%;
    }
    
    .content-info .content-info__button {
        width: 20px;
        height: 20px;
        top: -1px;
    }
    
    .content-info .content-info__close-button {
        width: 22px;
        height: 22px;
    }

}


/* ### TEXT + BUTTON ### */


.content-text-button {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
}

.content-text-button.--align-left {
    justify-content: flex-start;
}

.content-text-button:not( :first-child ) {
    margin-top: 10px;
}

.content-text-button:not( :last-child ) {
    margin-bottom: 10px;
}

.content-text-button .wp-block-paragraph {
    width: auto;
}

/*.content-text-button:not( .--align-left ) .wp-block-column:first-child {
    flex-grow: 1;
}*/

.content-text-button .wp-block-column:last-child {
    white-space: nowrap;
    text-align: right;
}

@media ( max-width: 850px ) {

    .content-text-button { 
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    
    .content-text-button:not( :last-child ) {
        margin-bottom: 20px;
    }
    
}



/* ### READ MORE ### */


.content-readmore > .wp-block-group__inner-container > *:not( .content-readmore__button ) {
    display: none;
}

.content-readmore.content-readmore--extended > .wp-block-group__inner-container > .content-readmore__button {
    display: none;
}

.content-readmore.content-readmore--extended > .wp-block-group__inner-container > *:not( .content-readmore__button ) {
    display: block;
}



/* ### OPENING HOURS ### */


.content-opening-hours {
    padding-left: 35px;
    background-image: url( 'graphics/opening-hours.svg' );
    background-size: 25px auto;
    background-position: top left;
    background-repeat: no-repeat;
}

@media ( max-width: 850px ) {
    
    .content-opening-hours { 
        padding-top: 3px;
    }
    
}


/* ### LOGOS ### */


.content-logos {
    display: flex;
    gap: 80px;
    flex-wrap: wrap;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 120px !important;
}

.content-logos .wp-block-column {
    display: flex;
    gap: 50px;
    flex-wrap: wrap;
    row-gap: 20px;
}

.content-logos .wp-block-column .wp-block-paragraph {
    width: 100%;
}

.content-logos .wp-block-column .wp-block-image {
    max-width: 120px;
    margin-top: 0px;
    margin-bottom: 0px;
}



/* ### TOUR ### */


.content-tour:not(:last-child) {
    margin-bottom: var( --font-small-lineheight );
}

.content-tour:not(:first-child) {
    margin-top: var( --font-small-lineheight );
}

.content-tour > .wp-block-group__inner-container > .wp-block-paragraph {
    margin-bottom: 10px;
}

.content-tour > .wp-block-group__inner-container > .wp-block-details {
    margin-top: 10px;    
}



/* ### SLIDE TILES ### */


.content-slide-tiles {
    position: relative;
    width: 100%;
    height: auto;
    padding-bottom: 80px;
    margin-bottom: 50px;
}

.content-slide-tiles .strip {
    position: relative;
    display: flex;
    height: auto;
    transition: transform .5s;
}

@media (prefers-reduced-motion) {
    .content-slide-tiles .strip {
        transition: transform .05s;
    }
}

.content-slide-tiles .strip .content-slide-tiles__tile {
    position: relative;
    height: auto;
    padding-left: 10px;
    padding-right: 10px;
}

.content-slide-tiles .strip .content-slide-tiles__tile .content-slide-tiles__thumbnail {
    margin-bottom: 0px !important;    
}

.content-slide-tiles .strip .content-slide-tiles__tile .content-slide-tiles__thumbnail img {
    aspect-ratio: 7 / 5;
    object-fit: cover;
}

.content-slide-tiles .strip .content-slide-tiles__tile .content-slide-tiles__inner-subtitle {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: normal;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    width: 100%;
}

.content-slide-tiles.content-slide-tiles--small .strip .content-slide-tiles__tile .content-slide-tiles__inner-subtitle {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.content-slide-tiles .strip .content-slide-tiles__tile .content-slide-tiles__inner-title {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    font-weight: 900;
    margin-top: 20px !important;
    margin-bottom: 20px !important;   
    width: 100%;
}

.content-slide-tiles .strip .content-slide-tiles__tile .content-slide-tiles__date {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: 400;
    text-transform: uppercase;
}

.content-slide-tiles.content-slide-tiles--small .strip .content-slide-tiles__tile .content-slide-tiles__date {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.content-slide-tiles .arrows {
    position: absolute;
    width: 25px;
    height: 50px;
    bottom: 0px;
    background-size: 25px auto;
    background-position: center center;
    background-repeat: no-repeat;
    cursor: pointer;
    transition: opacity .5s, transform .5s;
}

@media (prefers-reduced-motion) {
    .content-slide-tiles .arrows {
        transition: transform .05s;
    }
}

.content-slide-tiles .arrows.left {
    right: calc( -1 * ( ( ( 100% - 10px * 2 ) - 9 * 20px ) / 10 * 2 + 1 * 20px + 10px - 25px - 20px ) );
    background-image: url( 'graphics/arrow-left.svg' );
}

.content-slide-tiles .arrows.right {
    right: calc( -1 * ( ( ( 100% - 10px * 2 ) - 9 * 20px ) / 10 * 2 + 1 * 20px + 10px ) );
    background-image: url( 'graphics/arrow-right.svg' );
}

.content-slide-tiles.content-slide-tiles--blog .arrows.left {
    right: calc( 25px + 20px );
}

.content-slide-tiles.content-slide-tiles--blog .arrows.right {
    right: 0px;
}

.content-slide-tiles .arrows.disabled {
    opacity: 0;
    pointer-events: none;
}

.content-slide-tiles .arrows.left:has( + .arrows.right.disabled ),
.content-slide-tiles .arrows.left + .arrows.right.disabled {
    transform: translate3d( 45px, 0px, 0 );
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile .content-slide-tiles__thumbnail img {
    aspect-ratio: 2 / 3;
    object-fit: cover;
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile.content-slide-tiles__tile--youtube .content-slide-tiles__thumbnail::after {
    content: "";
    display: block;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: var( --color-light );
    background-image: url( 'graphics/play.svg' );
    position: absolute;
    inset: 0px;
    margin: auto;
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile .content-slide-tiles__inner-title {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: normal;
    margin-top: 20px !important;
    margin-bottom: 0px !important;   
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--instagram .content-slide-tiles__inner-title,
.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--youtube .content-slide-tiles__inner-title,
.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--facebook .content-slide-tiles__inner-title {
    position: relative;
    padding-left: 35px;
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--instagram .content-slide-tiles__inner-title::before,
.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--youtube .content-slide-tiles__inner-title::before,
.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--facebook .content-slide-tiles__inner-title::before {
    content: "";
    display: block;
    position: absolute;
    left: 0px;
    top: -4px;
    width: 25px;
    height: 25px;
    background-size: 100%;
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--instagram .content-slide-tiles__inner-title::before {
    background-image: url( 'graphics/social-instagram.svg' );
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--youtube .content-slide-tiles__inner-title::before {
    background-image: url( 'graphics/social-youtube.svg' );
}

.content-slide-tiles.content-slide-tiles--insights .strip .content-slide-tiles__tile--facebook .content-slide-tiles__inner-title::before {
    background-image: url( 'graphics/social-facebook.svg' );
}


@media ( max-width: 850px ) {

    .content-slide-tiles { 
        padding-bottom: 60px;
    }
    
    .content-slide-tiles .arrows {
        height: 40px;
    }
    
}

@media ( max-width: 500px ) {
    
    .content-slide-tiles .strip .content-slide-tiles__tile {
        position: relative;
        height: auto;
        padding-left: 5px;
        padding-right: 5px;
    }
    
    .content-slide-tiles .arrows.left {
        right: calc( -1 * ( ( ( 100% - 5px * 2 ) - 3 * 10px ) / 4 * 2 + 1 * 10px + 5px - 25px - 20px ) );
    }
    
    .content-slide-tiles .arrows.right {
        right: calc( -1 * ( ( ( 100% - 5px * 2 ) - 3 * 10px ) / 4 * 2 + 1 * 10px + 5px ) );
    }

}



/* ### GRID TILES ### */


.content-grid-tiles {
    display: grid;
    grid-template-columns: repeat( 4, 1fr );
    column-gap: 20px;
    row-gap: 30px;    
    /* min width per tile 320px */
}

.content-grid-tiles .content-grid-tiles__tile {
    min-width: 0px;
    position: relative;
}

.content-grid-tiles .content-grid-tiles__tile.--hidden {
    display: none;    
}

.content-grid-tiles .content-grid-tiles__thumbnail {
    margin-bottom: 20px !important;
}

.content-grid-tiles .content-grid-tiles__thumbnail img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.content-grid-tiles .content-grid-tiles__inner-subtitle {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: 900;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    width: 100%;
}

.content-grid-tiles .content-grid-tiles__inner-title {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    font-weight: 900;
    margin-top: 20px !important;
    margin-bottom: 20px !important;   
    width: 100%;
}

.content-grid-tiles .content-grid-tiles__buttons {
    margin-top: 20px !important;
}

@media ( max-width: 1280px ) {

    .content-grid-tiles {
        grid-template-columns: repeat( 3, 1fr );
    }

}

@media ( max-width: 960px ) {

    .content-grid-tiles {
        grid-template-columns: repeat( 2, 1fr );
    }
    
}

@media ( max-width: 500px ) {

    .content-grid-tiles {
        column-gap: 10px;
    }

}

.content-grid-tiles-loadmore {
    margin-top: 30px;
}



/* ### HERO ### */


.content-hero {

}

.content-hero:not( :last-child ) {
    margin-bottom: var( --page-margin-large );
}

.content-hero:not( :first-child ) {
    margin-top: var( --page-margin-large );
}

.content-hero .content-hero__title {
    font-size: var( --font-smalltitle-size );
    line-height: var( --font-smalltitle-lineheight );
    margin-bottom: 40px !important;
    font-weight: 900;
}

.content-hero.content-hero--frontpage .content-hero__title {
    font-size: var( --font-title-size );
    line-height: var( --font-title-lineheight );
    margin-bottom: 40px !important;
    font-weight: 400;
}

.content-hero.content-hero--singlepage .content-hero__title {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    margin-bottom: 40px !important;
}

.content-hero .content-hero__thumbnail {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.content-hero .content-hero__thumbnail img {
    aspect-ratio: 21 / 9;
    object-fit: cover;
}

.content-hero .content-hero__buttons:not( :first-child ) {
    margin-top: 20px;
}

.content-hero .content-hero__buttons:not( :last-child ) {
    margin-bottom: 20px;
}

.content-hero.content-hero--exhibition .content-hero__thumbnail {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.content-hero.content-hero--exhibition .content-hero__inner-subtitle {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    font-weight: 900;
    margin-top: 0px !important;
    margin-bottom: 20px !important;
}

.content-hero.content-hero--exhibition .content-hero__inner-title {
    font-size: var( --font-smalltitle-size );
    line-height: var( --font-smalltitle-lineheight );
    margin-top: 20px !important;
    margin-bottom: 0px !important;
}

.content-hero.content-hero--exhibition .content-hero__date {
    margin-top: var( --font-normal-lineheight ) !important;
}

.content-hero.content-hero--slidetiles {
    overflow: clip;
    overflow-y: visible;
    margin-left: calc( var( --page-padding-side ) * -1 );
    margin-right: calc( var( --page-padding-side ) * -1 );
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
}

.content-hero.content-hero--slidetiles .content-slide-tiles {
    width: calc( ( ( ( 100% - 11 * 20px ) / 12 ) * 10 + 9 * 20px ) + 10px * 2 );    
    margin-left: -10px;
}

.content-hero.content-hero--slidetiles .content-slide-tiles.content-slide-tiles--blog {
    width: calc( 100% + 20px );
}

@media ( max-width: 500px ) {
    
    .content-hero:not( :last-child ) {
        margin-bottom: 100px;
    }
    
    .content-hero:not( :first-child ) {
        margin-top: 100px;
    }

    .content-hero.content-hero--slidetiles .content-slide-tiles {
        width: calc( ( ( ( 100% - 5 * 10px ) / 6 ) * 4 + 3 * 10px ) + 5px * 2 );    
        margin-left: -5px;
    }

}



/* ### BLOG ### */


.content-blog {
    position: relative;
    width: 100%;
}

.content-blog__tile {
    position: absolute;    
}

.content-slide-tiles .content-blog__tile {
    position: relative;
}

.content-blog__tile.--hidden {
    display: none;
}

.content-blog__tile .content-blog__tile__thumbnail {
    margin-bottom: 0px;
}

.content-blog__tile.--insight.--video .content-blog__tile__thumbnail::after {
    content: "";
    display: block;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: var( --color-light );
    background-image: url( 'graphics/play.svg' );
    position: absolute;
    inset: 0px;
    margin: auto;
}

.content-blog__tile .content-blog__tile__date,
.content-blog__tile .content-blog__tile__inner-subtitle {
    width: 100%;
    margin-top: 20px !important;
    margin-bottom: 0px !important;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.content-blog__tile .content-blog__tile__date span {
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.content-blog__tile .content-blog__tile__date {
    display: flex;
    gap: 20px;
    row-gap: 12px;
    flex-wrap: wrap;
}

.content-blog__tile .content-blog__tile__inner-title {
    width: 100%;
    margin-top: 20px !important;
    margin-bottom: 0px !important;
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
}

.content-blog__tile.--insight .content-blog__tile__inner-title {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: 400;
    text-transform: none;
}

.content-blog__tile.--insight.--instagram .content-blog__tile__inner-title,
.content-blog__tile.--insight.--youtube .content-blog__tile__inner-title,
.content-blog__tile.--insight.--facebook .content-blog__tile__inner-title {
    position: relative;
    padding-left: 35px;
}

.content-blog__tile.--insight.--instagram .content-blog__tile__inner-title::before,
.content-blog__tile.--insight.--youtube .content-blog__tile__inner-title::before,
.content-blog__tile.--insight.--facebook .content-blog__tile__inner-title::before {
    content: "";
    display: block;
    position: absolute;
    left: 0px;
    top: -4px;
    width: 25px;
    height: 25px;
    background-size: 100%;
}

.content-blog__tile.--insight.--instagram .content-blog__tile__inner-title::before {
    background-image: url( 'graphics/social-instagram.svg' );
}

.content-blog__tile.--insight.--youtube .content-blog__tile__inner-title::before {
    background-image: url( 'graphics/social-youtube.svg' );
}

.content-blog__tile.--insight.--facebook .content-blog__tile__inner-title::before {
    background-image: url( 'graphics/social-facebook.svg' );
}

.content-blog__tile .content-blog__tile__content {
    margin-top: 20px;
}

.content-blog__tile .content-blog__tile__content > * {
    width: 100%;
}



/* ### CALENDAR ### */


.content-calendar {
    position: relative;
    width: 100%;
    display: grid;
    grid-template-columns: repeat( 12, 1fr );
    gap: 20px;
}

.content-calendar:not( :first-child ) {
    margin-top: 150px;
}

.content-calendar:not( :last-child ) {
    margin-bottom: 150px;
}

.content-calendar__filter {
    grid-column: span 5;
}

.content-calendar__filter-reset {
    text-decoration: underline;
    cursor: pointer;
    display: none;
}

.content-calendar__filter-reset.--active {
    display: block;
}

.content-calendar__filter-wrapper {
    display: flex;
    gap: 15px;
    row-gap: 20px;
    flex-wrap: wrap;
    margin-top: 40px;
}

.content-calendar__filter-group h4 {
    margin-bottom: 20px !important;
}

.content-calendar__filter-group__buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.content-calendar__filter-group__buttons button.--active {
    background-color: var( --color-dark );
    color: var( --color-light );
}

.content-calendar__content {
    grid-column: span 7;
}

.content-calendar__content-header {
    display: flex;
    gap: 20px;
    align-items: center;
}

.content-calendar__content-header button {
    width: 25px;
    height: 50px;
    background-size: 25px auto;
    background-position: center center;
    background-repeat: no-repeat;
    cursor: pointer;
}

.content-calendar__content-header button.content-calendar__content-header__month-prev {
    background-image: url( 'graphics/arrow-left.svg' );
}

.content-calendar__content-header button.content-calendar__content-header__month-next {
    background-image: url( 'graphics/arrow-right.svg' );
}

.content-calendar__content-header h2 {
    flex-grow: 1;
    text-align: center;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

.content-calendar__content-list {
    padding-top: 50px;   
}

.content-calendar__content-list ul {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.content-calendar__content-list ul li {
    display: none;
}

.content-calendar__content-list ul li.visible {
    display: block;
}

.content-calendar__content-noentries {
    display: none;
}

.content-calendar__content:not( .loading ):not( :has( .content-calendar__content-list ul li.visible ) ) .content-calendar__content-noentries {
    display: block;
}

.content-calendar__content-loading {
    display: none;
}

.content-calendar__content.loading .content-calendar__content-loading {
    display: block;
}

@media ( max-width: 850px ) {

    .content-calendar {
        row-gap: 40px;
    }
    
    .content-calendar:not( :first-child ) {
        margin-top: 60px;
    }
    
    .content-calendar:not( :last-child ) {
        margin-bottom: 60px;
    }

    .content-calendar__filter {
        grid-column: span 12;
    }
    
    .content-calendar__filter > .wp-block-heading {
        background-image: url( 'graphics/arrow-down.svg' );
        background-size: 22px 10px;
        background-position: right center;
        background-repeat: no-repeat;
        cursor: pointer;
    }

    .content-calendar__filter.--extended > .wp-block-heading {
        background-image: url( 'graphics/arrow-up.svg' );
    }
    
    .content-calendar__filter:not( .--extended ) .content-calendar__filter-wrapper {
        display: none;
    }
    
    .content-calendar__content {
        grid-column: span 12;
    }

}



/* ### FORM ### */


.content-form {
    position: relative;
    width: 100%;
    display: grid;
    grid-template-columns: repeat( 24, 1fr );
    gap: 20px;
}

.content-form:not( :first-child ) {
    margin-top: 150px;
}

.content-form:not( :last-child ) {
    margin-bottom: 150px;
}

.content-form.--minimal {
    row-gap: 50px;
}

.content-form .content-form__fields {
    grid-column: span 14;
    display: grid;
    grid-template-columns: repeat( 14, 1fr );
    gap: 20px;
    row-gap: 10px;
    margin-top: -30px;
}

.content-form.--minimal .content-form__fields {
    grid-column: span 7;
}

.content-form.--maximal .content-form__fields {
    grid-column: span 24;
}

.content-form .content-form__fields fieldset {
    position: relative;
    display: block;
    border-bottom: 2px solid var( --color-dark );
    padding-top: 20px;
    overflow: hidden;
    min-width: 0px;
}

.content-form.--light .content-form__fields fieldset {
    border-color: var( --color-light );
}

.content-form.--minimal .content-form__fields fieldset {
    grid-column: span 14;
}

.content-form.--maximal .content-form__fields fieldset {
    grid-column: span 24;
}

.content-form .content-form__fields fieldset.error {
    border-color: red;
    color: red;
}

.content-form .content-form__fields fieldset label {
    position: absolute;
    display: block;
    top: 30px;
    left: 0px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    width: 100%;
    opacity: .5;
    transition: font-size .2s, top .2s;
}

@media (prefers-reduced-motion) {
    .content-form .content-form__fields fieldset label {
        transition: none;
    }
}

.content-form .content-form__fields fieldset.filled label {
    font-size: 0.875rem;
    top: 0px;
}

.content-form .content-form__fields fieldset.active label {
    opacity: 1;
}

.content-form .content-form__fields fieldset input,
.content-form .content-form__fields fieldset textarea {
    display: block;
    width: 100%;
    outline: none;
    background-color: transparent;
    padding: 10px 0px;
    position: relative;
    color: inherit;
}

.content-form .content-form__fields fieldset textarea {
    resize: none;
    field-sizing: content;
    padding: 0px;
}

.content-form .content-form__fields fieldset select {
    position: absolute;
    top: 30px;
    left: 0px;
    width: 100%;
    opacity: 0;
    z-index: 1;
    cursor: pointer;
}     

.content-form .content-form__fields fieldset .select-text { 
    padding: 10px 0px;
    background-image: url( 'graphics/arrow-down.svg' );
    background-size: 35px 15px;
    background-position: right center;
    background-repeat: no-repeat;
    padding-right: 55px;
}

.content-form .content-form__fields fieldset.--number {
    min-height: 72px;
}

.content-form .content-form__fields fieldset.--number label {
    padding-left: 26px;
}

.content-form .content-form__fields fieldset.--number button { 
    position: absolute;
    left: 0px;
    width: 16px;
    height: 18px;
    background-image: url( 'graphics/arrow-down.svg' );
    background-size: 16px auto;
    background-position: center center;
    background-repeat: no-repeat;
    cursor: pointer;
}

.content-form .content-form__fields fieldset.--number button[disabled] { 
    opacity: 0.5;
}

.content-form .content-form__fields fieldset.--number button.up { 
    background-image: url( 'graphics/arrow-small-up.svg' );
    top: 24px;
}

.content-form .content-form__fields fieldset.--number button.down { 
    background-image: url( 'graphics/arrow-small-down.svg' );
    top: 42px;
}

.content-form .content-form__fields fieldset.--checkbox {
    border-bottom: none;
    overflow: visible;
}

.content-form .content-form__fields fieldset.--checkbox input {
    position: absolute;
    display: block;
    width: 25px;
    height: 25px;
    opacity: 0;
    z-index: 1;
}

.content-form .content-form__fields fieldset.--checkbox label {
    opacity: 1;
    position: relative;
    top: 0px;
    white-space: initial;
    padding-left: 35px;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    overflow: visible;
}

.content-form .content-form__fields fieldset.--checkbox.--large label {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-weight: 900;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.content-form .content-form__fields fieldset.--checkbox label::before {
    content: "";
    display: block;
    width: 25px;
    height: 25px;
    border: 1.5px solid var( --color-dark );
    border-radius: 50%;
    position: absolute;
    left: 0px;
    top: -2px;
}

.content-form.--light .content-form__fields fieldset.--checkbox label::before {
    border-color: var( --color-light );
}

.content-form .content-form__fields fieldset.--checkbox:has( input:checked ) > label::before {
    background-color: var( --color-dark );
}

.content-form.--light .content-form__fields fieldset.--checkbox:has( input:checked ) > label::before {
    background-color: var( --color-light );
}

.content-form .content-form__fields fieldset.--checkbox.error label::before {
    border-color: red;
}

.content-form .content-form__fields fieldset.--checkbox.error:has( input:checked ) > label::before {
    background-color: red;
}

.content-form .content-form__fields fieldset.--textfield .wrapper {
    position: relative;
    display: flex;
    min-height: calc( 10px + 4lh + 10px );
    flex-direction: column;
    justify-content: flex-end;
    padding: 10px 0px;
}

.content-form .content-form__fields fieldset.--textfield .wrapper__inner {
    position: relative;
    height: auto;
}

.content-form .content-form__fields fieldset.--textfield .wrapper label {
    top: 0px;
}

.content-form .content-form__fields fieldset.--textfield .wrapper__inner.filled label {
    top: -30px;
    font-size: 0.875rem;
}

.content-form .content-form__fields fieldset.--additional {
    display: none;
}

.content-form .content-form__additional {
    grid-column: 17 / 25;
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.content-form .content-form__additional__group > label {
    margin-bottom: 20px;
    display: block;
}

.content-form .content-form__additional__group > fieldset {
    display: block;
    margin-top: 10px;
}

.content-form .content-form__additional__group > fieldset > input {
    position: absolute;
    display: block;
    width: 25px;
    height: 25px;
    opacity: 0;
    z-index: 1;
}

.content-form .content-form__additional__group > fieldset > label {
    position: relative;
    font-weight: 900;
    padding-left: 35px;
    cursor: pointer;
}

.content-form .content-form__additional__group > fieldset > label::before {
    content: "";
    display: block;
    width: 25px;
    height: 25px;
    border: 1.5px solid var( --color-dark );
    border-radius: 50%;
    position: absolute;
    left: 0px;
    top: -2px;
}

.content-form .content-form__additional__group > fieldset:has( input:checked ) > label::before {
    background-color: var( --color-dark );
}

.content-form .content-form__send {
    grid-column: span 24;
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.content-form.--minimal .content-form__send {
    justify-content: flex-start;
}

.content-form .content-form__send__action {
    
}

.content-form.--light .content-form__send__action {
    color: var( --color-light );
    border-color: var( --color-light );
}

.content-form .content-form__send__action.--sending::after {
    content: "...";
}

.content-form .content-form__message {
    grid-column: span 24;
}

.content-form .content-form__error {
    grid-column: span 24;
    color: red;
}

@keyframes button-wiggle {
    0% {
        transform: translate3d( 0px, 0px, 0 );
    }
    20% {
        transform: translate3d( 10px, 0px, 0 );
    }
    40% {
        transform: translate3d( -10px, 0px, 0 );
    }
    60% {
        transform: translate3d( 5px, 0px, 0 );
    }
    80% {
        transform: translate3d( -5px, 0px, 0 );
    }
    100% {
        transform: translate3d( 0px, 0px, 0 );
    }
}

@media ( max-width: 850px ) {

    .content-form {
        grid-template-columns: 1fr;
    }
    
    .content-form:not( :first-child ) {
        margin-top: 50px;
    }
    
    .content-form:not( :last-child ) {
        margin-bottom: 50px;
    }

    .content-form .content-form__fields,
    .content-form.--minimal .content-form__fields,
    .content-form.--maximal .content-form__fields {
        grid-column: span 1;
    }
    
    .content-form .content-form__fields {
        grid-template-columns: 1fr;
    }
    
    .content-form .content-form__fields fieldset {
        grid-column: span 1 !important;
    }
    
    .content-form .content-form__fields fieldset .select-text {
        background-size: 22px 15px;
    }
    
    .content-form .content-form__fields fieldset.--number {
        min-height: 64px;
    }
    
    .content-form .content-form__fields fieldset.--number button.up { 
        top: 22px;
    }
    
    .content-form .content-form__fields fieldset.--number button.down { 
        top: 40px;
    }
    
    .content-form .content-form__additional {
        grid-column: span 1 !important;
    }
    
    .content-form .content-form__send {
        grid-column: span 1 !important;
    }

}



/* ### MODAL ### */


.content-modal {
    position: fixed;
    left: 0px;
    top: var( --header-height );
    background-color: var( --color-dark );
    width: 100%;
    height: calc( 100% - var( --header-height ) - var( --header-footer-height ) );
    z-index: 99999980;    
}

.content-modal .content-modal__close {
    position: absolute;
    right: var( --page-padding-side );
    top: 0px;
    width: 35px;
    height: 35px;
    cursor: pointer;
    z-index: 100;
}

.content-modal .content-modal__close span {
    position: absolute;
    top: 0px;
    bottom: 0px;
    margin-top: auto;
    margin-bottom: auto;
    display: block;
    width: 100%;
    height: 2px;
    background-color: var( --color-dark );
}

.content-modal .content-modal__close span:first-child {
    rotate: 45deg;
}

.content-modal .content-modal__close span:last-child {
    rotate: -45deg;
}

.content-modal .content-modal__content {
    position: relative;
    width: 100%;
    background-color: var( --color-light );
    padding: 40px var( --page-padding-side ) 50px var( --page-padding-side );
    overflow: hidden;
    overflow-y: auto;
    max-height: 100%;
}



/* ### OVERLAY ### */


.content-overlay {
    position: fixed;
    left: 0px;
    top: var( --header-height );
    width: 100%;
    height: calc( 100% - var( --header-height ) - var( --header-footer-height ) );
    background-color: #ECECECDE;
    backdrop-filter: blur( 10px );
    z-index: 99999980;    
}

@media (prefers-contrast: more) { 
    .content-overlay {
        background-color: var( --color-light );
        backdrop-filter: none !important;
    }
}

body.mode-highcontrast .content-overlay {
    background-color: var( --color-light );
    backdrop-filter: none !important;
}

.content-overlay .content-overlay__close {
    position: absolute;
    right: var( --page-padding-side );
    top: 20px;
    width: 35px;
    height: 35px;
    cursor: pointer;
    z-index: 100;
}

.content-overlay .content-overlay__close span {
    position: absolute;
    top: 0px;
    bottom: 0px;
    margin-top: auto;
    margin-bottom: auto;
    display: block;
    width: 100%;
    height: 2px;
    background-color: var( --color-dark );
}

.content-overlay .content-overlay__close span:first-child {
    rotate: 45deg;
}

.content-overlay .content-overlay__close span:last-child {
    rotate: -45deg;
}

.content-overlay .content-overlay__content {
    position: absolute;
    inset: 0px;
    margin: auto;
    top: 20px;
    bottom: 50px;
    left: var( --page-padding-side );
    right: var( --page-padding-side );
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.content-overlay .content-overlay__content img {
    object-fit: contain;
    flex-shrink: 1;   
    flex-grow: 1;
    min-width: 0;
    min-height: 0;
 }

.content-overlay .content-overlay__content figcaption {
    font-size: var( --font-small-size );   
    line-height: var( --font-small-lineheight ); 
    flex-shrink: 0;   
    flex-grow: 0;
    text-align: center;
}



/* ### SPECIAL MARGINS ### */


h3.wp-block-heading:has( + .wp-block-paragraph ) {
    margin-bottom: 0px;
}

h3.wp-block-heading + .wp-block-paragraph {
    margin-top: 0px;
}

.wp-block-details .wp-block-buttons:not( :first-child ) {
    margin-top: 20px;
}

.wp-block-details .wp-block-buttons:not( :last-child ) {
    margin-bottom: 20px;
}

.wp-block-paragraph:has( + .wp-block-image ) {
    margin-bottom: 0px;
}

h2.wp-block-heading:has( + h1.wp-block-heading ) {
    margin-bottom: 30px;
}

h2.wp-block-heading + h1.wp-block-heading {
    margin-top: 30px;
}

h1.wp-block-heading:has( + h2.wp-block-heading ) {
    margin-bottom: 100px;
}

h1.wp-block-heading + h2.wp-block-heading {
    margin-top: 100px;
}

.wp-block-buttons:has( + .wp-block-buttons ) {
    margin-bottom: 20px;
}

.wp-block-buttons + .wp-block-buttons {
    margin-top: 20px;
}

.content-slide-tiles + .wp-block-buttons,
.wp-block-gallery + .wp-block-buttons {
    margin-top: -70px !important;
    margin-right: calc( 20px + 25px + 20px + 25px );   
    width: auto;
}

@media ( max-width: 850px ) {
    
    .content-slide-tiles + .wp-block-buttons {
        margin-top: -90px !important;
    }

}

.content > .wp-block-image:not( :has( .alignleft ) ) img {
    aspect-ratio: 21/9;
    object-fit: cover;
}

body.wp-type-ausstellung h1:has( + .wp-block-gallery ) {
    margin-bottom: 30px;
}

body.wp-type-ausstellung .wp-block-gallery {
    margin-top: 30px;
    margin-bottom: 0px;
}

/*.wp-block-paragraph:has( + .wp-block-details ) {
    margin-bottom: 10px;
}

.wp-block-paragraph + .wp-block-details {
    margin-top: 10px;
}*/

h2.wp-block-heading:has( + .content-hero ) {
    margin-top: 100px;
    font-size: var( --font-smalltitle-size );
    line-height: var( --font-smalltitle-lineheight );
    margin-bottom: 40px !important;
}

h2.wp-block-heading + .content-hero {
    margin-top: 40px;
}



/* ### NEWSLETTER ### */


.newsletter {
    position: relative;
    width: 100%;
    background-color: var( --color-dark );
    color: var( --color-light );
    overflow: hidden;
    transition: height .4s;
}

.newsletter .newsletter__folded,
.newsletter .newsletter__unfolded {
    padding: 20px var( --page-padding-side );
    transition: opacity .4s;
}

.newsletter .newsletter__folded {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding-right: calc( var( --page-padding-side ) + 35px + 15px );
    cursor: pointer;
}

.newsletter .newsletter__unfolded {
    display: none;
    opacity: 0;
}

.newsletter.--unfolded .newsletter__folded {
    display: none;
}

.newsletter.--animating .newsletter__unfolded,
.newsletter.--unfolded .newsletter__unfolded {
    display: block;
}

.newsletter.--animating .newsletter__folded,
.newsletter.--animating .newsletter__unfolded {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    /*display: block;*/
}

.newsletter h2 {
    font-size: var( --font-title-size );
    line-height: var( --font-title-lineheight );
    font-weight: 400;
    text-transform: uppercase;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;   
}

.newsletter .newsletter__folded h3 {
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;   
    text-align: right;
}

.newsletter .newsletter__unfolded h2 {
    margin-bottom: 25px;
}

.newsletter .newsletter__unfolded .content-form {
    margin-top: 30px;
}

.newsletter .newsletter__foldbutton {
    position: absolute;
    z-index: 1;
    right: var( --page-padding-side );
    top: 31px;
    width: 35px;
    height: 35px;
    background-image: url( 'graphics/arrow-down-white.svg' );
    background-size: 35px 15px;
    background-position: right center;
    background-repeat: no-repeat;
    cursor: pointer;
    transition: rotate .4s;
}

.newsletter.--animating .newsletter__foldbutton,
.newsletter.--unfolded .newsletter__foldbutton {
    rotate: 180deg;    
}

@media ( max-width: 850px ) {

    .newsletter .newsletter__folded { 
        gap: 10px;
        padding-right: calc( var( --page-padding-side ) + 22px + 10px );
    }
    
    .newsletter .newsletter__foldbutton { 
        width: 22px;
        top: 17px;
        background-size: 22px 15px;
    }
    
}



/* ### FOOTER ### */


footer {
    position: relative;
    width: 100%;
    padding: 40px var( --page-padding-side ) calc( 100px + var( --header-footer-height ) ) var( --page-padding-side );
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

footer .wp-block-columns {
    display: flex;
    align-items: flex-start;
}

footer .wp-block-columns .wp-block-column:first-child {
    flex-grow: 1;
}

footer .wp-block-columns .wp-block-column:last-child {
    display: flex;
    gap: 20px;
    align-items: center;
}

footer .wp-block-columns .wp-block-column:last-child .wp-block-image {
    margin-top: 0px !important;    
    margin-bottom: 0px !important;    
}

footer .wp-block-columns .wp-block-column:last-child .wp-block-image img {
    width: 32px !important;
    height: auto !important;
}

footer .footer-menu {
    margin-top: 80px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media ( max-width: 850px ) {

    footer .wp-block-columns {
        flex-direction: column;
        gap: 40px;
    }

    footer .footer-menu {
        margin-top: 40px;
    }
    
}



/* ### TEMP ### */


.wp-block-paragraph.has-vivid-red-color {
    color: red;
}

.wp-block-paragraph.has-vivid-purple-color {
    color: magenta;
}
