
/*

    Aluminium Deutschland
    
    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: 'Geist';
    font-style: normal;
    font-weight: normal;
    src: url( 'fonts/Geist/Geist-Medium.ttf' ) format( 'truetype' );
}



/* ### VARS ### */


:root {

    --color-dark: #000000;
    --color-light: #ffffff;
    
    --color-offwhite: #F7F6F5;
    --color-orange: #FF3A00;
    
    --font-small-size: 0.9375rem; /* 15 / 20 */
    --font-small-lineheight: 1.33333333em;
    
    --font-normal-size: 1.5625rem; /* 25 / 30 */
    --font-normal-lineheight: 1.2em;

    --font-large-size: 4.375rem; /* 70 / 75 */
    --font-large-lineheight: 1.0714em;

    --font-extralarge-size: clamp( 4.375rem, 9.5vw, 8.75rem ); /* 140 / 140 */
    --font-extralarge-lineheight: 1em;
    
    --card-border-radius: 5px;

    --animation-spring-timing: cubic-bezier(.22,.62,.29,1.07);

    --header-height: 110px;
    --page-padding-side: 15px;
    --page-margin-large: 150px;
    --page-margin-small: 30px;
    
}


@media ( max-width: 550px ) {
    
    :root {
    
        --font-small-size: 0.625rem; /* 10 / 15 */
        --font-small-lineheight: 1.5em;
    
        --font-normal-size: 0.9375rem; /* 15 / 20 */
        --font-normal-lineheight: 1.33333333em;
    
        --font-large-size: 1.875rem; /* 30 / 35 */
        --font-large-lineheight: 1.16em;
        
        --font-extralarge-size: 3.125rem; /* 50 / 55 */
        --font-extralarge-lineheight: 1.1em;
    
        --header-height: 80px;
        --page-padding-side: 10px;
        --page-margin-large: 100px;
        --page-margin-small: 10px;

    }
    
}



/* ### GENERAL ### */


body {
    margin: 0px;
    padding: 0px;
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    font-family: 'Geist', sans-serif;
    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;
    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: normal;
}

em {
    font-style: normal;
}

button:focus-visible,
a:focus-visible,
*[tabindex = "0"]:focus-visible {
    outline: 3px solid var( --color-orange );
    outline-offset: 5px;
    border-radius: 10px;
}



/* ### COMPONENT ### */




/* ### HEADER ### */


header {
    position: fixed;
    left: 0px;
    top: 0px;
    z-index: 99999999;
    width: 100%;
    min-height: var( --header-height );
    background-color: var( --color-light );
    padding: 20px;
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
    display: flex;
    justify-content: flex-end;
    overflow-x: clip;
    overflow-y: visible;
    transition: transform 1s;
}

header.state-initial {
    transform: translate3d( 0px, 100px, 0 );
}

header .logo {
    display: flex;
    position: absolute;
    left: 0px;
    top: 0px;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    height: var( --header-height );
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
    background-color: var( --color-light );
    transition: /*opacity 1s,*/ transform 1s, gap 1s, height 1s, padding-left 1s, padding-right 1s;
    
    --logo-scale: 1; /* calculated in js */

}

header .logo video {
    display: block;
    height: 70px;
    width: 118px;
    flex-shrink: 0;
    mix-blend-mode: difference;
    transform-origin: center right;
    transition: height 1s, width 1s;
}

header .logo svg {
    display: block;
    height: 60px;
    width: auto;
    transform-origin: center left;
    transition: height 1s, width 1s;
}

header.state-initial .logo,
header.state-one .logo {
    gap: calc( 15px * var( --logo-scale ) );
    height: calc( var( --header-height ) * var( --logo-scale ) );
    padding-left: calc( var( --page-padding-side ) * var( --logo-scale ) );
    padding-right: calc( var( --page-padding-side ) * var( --logo-scale ) );
    transform: translate3d( 10vw, calc( ( 100svh - 20px - 20px - ( var( --header-height ) * var( --logo-scale ) ) ) / 2 ), 0 );
}

header.state-initial .logo {
    top: 100px;
    /*opacity: 0;*/
}

header.state-initial .logo video,
header.state-one .logo video {
    height: calc( 70px * var( --logo-scale ) );
    width: calc( 118px * var( --logo-scale ) );
}

header.state-initial .logo svg,
header.state-one .logo svg {
    height: calc( 60px * var( --logo-scale ) );
}

header nav {
    transition: opacity 1s, transform 1s, scale .6s;
    scale: .6;
    transform-origin: top right;
}

header:hover nav,
header:focus-within nav,
header nav:has( .sub-menu.extended ) {
    scale: 1;
}

header.state-initial nav,
header.state-one nav {
    transform: translate3d( 0px, -100px, 0 );
    opacity: 0;
}

header nav .primary-menu {
    display: flex;
    gap: 15px;
}

header nav .primary-menu .menu-item.menu-item-has-children {
    position: relative;
}

header nav .primary-menu .sub-menu {
    padding-top: 15px;
    padding-bottom: 30px;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    display: none;
    flex-direction: column;
    gap: 10px;
    white-space: nowrap;
    background-color: var( --color-light );
    margin-right: -500px;
}

header nav .primary-menu .sub-menu.extended {
    display: flex;
}

@media ( max-width: 550px ) {

    header .logo video {
        height: 40px;
        width: 70px;
    }
    
    header .logo svg {
        height: 40px;
    }
    
    header nav {
        display: none;
    }
    
}



/* ### SPLASH ### */


.splash {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    background-color: var( --color-light );    
    z-index: 999999999;
    font-size: var( --font-extralarge-size );
    line-height: var( --font-extralarge-lineheight );
    text-transform: uppercase;
    padding: 60px 20px 60px 20px;
    overflow: hidden;
    transition: opacity 1s;
}

.splash.hidden {
    display: none;
}

.splash .statement {
    transition: transform 1s;
    transition-timing-function: var( --animation-spring-timing );
}

.splash .part {
    display: block;
    transition: opacity 1s;
}

.splash .part .word {
    display: inline-block;
    transition: transform 1s;
    transition-timing-function: var( --animation-spring-timing );
}

.splash.state-initial .statement {
    transform: translate3d( 0px, calc( 100svh - 100% - 60px - 60px ), 0 );
}

.splash.state-initial .part {
    opacity: 0;
}

.splash.state-initial .part-one .word:nth-child( 1 ) {
    transform: translate3d( -100px, 0px, 0 );
}

.splash.state-initial .part-one .word:nth-child( 2 ) {
    transform: translate3d( -200px, 0px, 0 );
}

.splash.state-one .statement {
    transform: translate3d( 0px, calc( 100svh - 100% - 60px - 60px ), 0 );
}

.splash.state-one .part-two {
    opacity: 0;
}

.splash.state-two .statement {
    transform: translate3d( 0px, 0px, 0 );
}

.splash.state-three .statement {
    transform: translate3d( 0px, calc( -100% - 60px ), 0 );
}

.splash.state-three {
    opacity: 0;
    pointer-events: none;
}



/* ### CONTENT ### */


.content {
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
    margin-top: calc( var( --header-height ) + 90px );
    transition: opacity 1s, transform 1s;
}

.content:has( .hero:first-child ) {
    margin-top: var( --header-height );
}

.content.state-initial {
    opacity: 0;
    transform: translate3d( 0px, 70%, 0px );
}

.content p + p {
    margin-top: var( --font-normal-lineheight );
}

.content p a {
    text-decoration: underline;
    cursor: pointer;
    transition: color .6s;
}

.content p a:hover { 
    color: var( --color-orange );
}



/* ### CONTENT: HEADING ### */


.content h1.wp-block-heading,
.content h2.wp-block-heading {
    font-size: var( --font-extralarge-size );
    line-height: var( --font-extralarge-lineheight );
    text-wrap: balance;
}

.content h1.wp-block-heading:not( :first-child ),
.content h2.wp-block-heading:not( :first-child ) {
    margin-top: var( --page-margin-large );
}

.content h1.wp-block-heading:not( :last-child ),
.content h2.wp-block-heading:not( :last-child ) {
    margin-bottom: var( --page-margin-large );
}

.content h3.wp-block-heading,
.content h4.wp-block-heading,
.content h5.wp-block-heading,
.content h6.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
}

.content h3.wp-block-heading:not( :first-child ),
.content h4.wp-block-heading:not( :first-child ),
.content h5.wp-block-heading:not( :first-child ),
.content h6.wp-block-heading:not( :first-child ) {
    margin-top: var( --page-margin-large );
}

.content h3.wp-block-heading:not( :last-child ),
.content h4.wp-block-heading:not( :last-child ),
.content h5.wp-block-heading:not( :last-child ),
.content h6.wp-block-heading:not( :last-child ) {
    margin-bottom: var( --page-margin-large );
}



/* ### CONTENT: LIST ### */


.wp-block-list {
    list-style: disc;
    padding-left: 1em;    
}

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

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



/* ### CONTENT: HERO ### */


.content .hero {
    position: relative;
    aspect-ratio: 2.75 / 1;
    background-color: var( --color-offwhite );    
    border-radius: var( --card-border-radius );
    overflow: hidden;
}

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

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

.content .hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.content .hero.hero-fullsize img {
    opacity: 0.3;
}

.content .hero .wp-block-cover__inner-container {
    position: absolute;
    left: 0px;
    top: 0px;
    padding: 10px 20px;
}

.content .hero.hero-fullsize h1.wp-block-heading,
.content .hero.hero-fullsize h2.wp-block-heading {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
}

@media ( max-width: 550px ) {

    .content .hero {
        aspect-ratio: 3 / 2;
    }
}



/* ### CONTENT: HERO ANIMATED ### */


.content .hero-animation .frame {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    overflow: hidden;
    transition: opacity .4s;
}

.content .hero-animation .frame.hidden {
    opacity: 0;
}

.content .hero-animation img {
    position: absolute;
    width: 100%;
    height: auto;
    transition: transform 2s, scale 2s, rotate 2s;
}

.content .hero-animation .image-one-one {
    top: 0px;
    width: 100%;
    left: -4%;
}

.content .hero-animation .frame.state-initial .image-one-one {
    transform: translate3d( -100px, 50px, 0 );
}

.content .hero-animation .image-one-two {
    top: 0px;
    width: 100%;
    left: -35%;
}

.content .hero-animation .frame.state-initial .image-one-two {
    transform: translate3d( -50px, 50px, 0 );
}

.content .hero-animation .image-two-one {
    width: 87%;
    left: -5%;
    transform-origin: top left;
}

.content .hero-animation .frame.state-initial .image-two-one {
    scale: 0.8;
}

.content .hero-animation .image-three-one {
    width: 85%;
    rotate: -11deg;
    top: 25%;
    left: 62%;
}

.content .hero-animation .frame.state-initial .image-three-one {

}

.content .hero-animation .image-three-two {
    width: 85%;
    rotate: -15deg;
    top: 0%;
    left: 5%;
}

.content .hero-animation .frame.state-initial .image-three-two {
    rotate: -38deg;
}

.content .hero-animation .image-three-three {
    width: 85%;
    rotate: -11deg;
    top: 30%;
    left: -53%;
}

.content .hero-animation .frame.state-initial .image-three-three {

}



/* ### CONTENT: COLUMNS ### */


.content > .wp-block-columns {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 10px;
}

.content > .wp-block-columns:not( :first-child ) {
    margin-top: var( --page-margin-large );
}

.content > .wp-block-columns:not( :last-child ) {
    margin-bottom: var( --page-margin-large );
}

.content > .wp-block-columns > .wp-block-column {

}

.content > .wp-block-columns > .wp-block-column:first-child {
    padding-right: 30px;
}

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

@media ( max-width: 550px ) {

    .content > .wp-block-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }
    
    .content > .wp-block-columns > .wp-block-column:last-child {
        grid-column: span 2;
    }

}


/* +SIDEBAR */

.content > .wp-block-columns.sidebar {
    gap: 30px;
}

.content > .wp-block-columns.sidebar > .wp-block-column {
    padding-top: 10px;
    padding-bottom: 10px;
}

.content > .wp-block-columns.sidebar > .wp-block-column:first-child {
    background-color: var( --color-offwhite );
    border-radius: var( --card-border-radius );
    box-shadow: -30px 0px 0px var( --color-offwhite );
}

.content > .wp-block-columns.sidebar > .wp-block-column:first-child h3.wp-block-heading {
    margin-bottom: 0px;
}

.content > .wp-block-columns.sidebar > .wp-block-column:first-child p {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.content > .wp-block-columns.sidebar > .wp-block-column:first-child h3.wp-block-heading + p,
.content > .wp-block-columns.sidebar > .wp-block-column:first-child p + p {
    margin-top: var( --font-small-lineheight );
}



/* ### CONTENT: IMAGE ### */


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



/* ### CONTENT: VIDEO ### */


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

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

.wp-block-video video {
    display: block;
    width: 100%;
    height: auto;
}



/* ### CONTENT: BUTTON ### */


.wp-block-buttons {

}

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

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

.wp-block-buttons .wp-element-button {
    color: var( --color-orange );   
}

.wp-block-buttons .wp-element-button::after {
    content: "->";
    padding-left: 0.5em;
    padding-right: 0.2em;
}



/* ### CONTENT: LIST / LIST ANIMATED ### */


.content .wp-block-columns:has( .list-animated ) {
    overflow: hidden;
}

.content .list,
.content .list-animated {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    list-style: none;
    padding-left: 0px;
}

.content .list.small,
.content .list-animated.small {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
}

.content .list li,
.content .list-animated li {
    transition: color .6s;
}

.content .list li:hover,
.content .list-animated li:hover {
    color: var( --color-orange );
}

.content .list li:not( :first-child ),
.content .list-animated li:not( :first-child ) div {
    border-top: 1px solid var( --color-dark );
    padding-top: 10px;
}

.content .list li:not( :last-child ),
.content .list-animated li:not( :last-child ) div {
    padding-bottom: 15px;
}

.content .list.small li:not( :last-child ),
.content .list-animated.small li:not( :last-child ) div {
    padding-bottom: 25px;
}

.content .list strong,
.content .list-animated strong {
    display: block;
    font-size: var( --font-extralarge-size );
    line-height: var( --font-extralarge-lineheight );
}

.content .list.small strong,
.content .list-animated.small strong {
    display: block;
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
}

.content .list li:not( :first-child ):has( strong ),
.content .list-animated li:not( :first-child ):has( strong ) div {
    padding-top: 0px;
}

.content .list.small li:not( :first-child ):has( strong ),
.content .list-animated.small li:not( :first-child ):has( strong ) div {
    padding-top: 10px;
}

.content .list-animated li.animationscroll div {
    transition: transform 1s, opacity 1s;
    transition-timing-function: var( --animation-spring-timing );
}

.content .list-animated li.animationscroll.hidden div {
    transform: translate3d( 100%, 0px, 0 );
    opacity: 0;
}

.content .list-animated.list-animated-count li.animationscroll.hidden div {
    transform: none;
}

.content .list-animated li.animationscroll.hidden:first-child div {
    transform: none;
    opacity: 0;
}



/* ### CONTENT: CARD GRID ### */


.content .card-grid > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
}

.content .card-grid .wp-block-cover {
    position: relative;
    background-color: var( --color-offwhite );   
    border-radius: var( --card-border-radius );
    overflow: hidden; 
}

.content .card-grid .wp-block-cover img {
    display: block;
    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
    object-fit: cover;
    transition: filter 0.6s;
}

.content .card-grid .wp-block-cover:has( p )::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0px;
    background-color: #ffaf80;
    z-index: 1;
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity 0.6s;
}

.content .card-grid .wp-block-cover:has( p ):hover::before {
    opacity: 1;
}

.content .card-grid .wp-block-cover:has( p ):hover > img {
    filter: grayscale( 100% );
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container {
    position: absolute;
    left: 0px;
    top: 0px;
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    width: 100%;
    height: 100%;
    padding: 20px;
    overflow: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    z-index: 2;
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    margin-top: 0px;
    margin-bottom: 0px;
    transition: color .6s;
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading a {
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading a::after {
    content: "->";
    width: 1.2em;
    flex-shrink: 0;
    margin-left: 10px;
    opacity: 0;
    transform: translate3d( -30px, 0px, 0 );
    transition: opacity .6s, transform .6s;
}

.content .card-grid .wp-block-cover:hover > .wp-block-cover__inner-container h4.wp-block-heading a::after {
    opacity: 1;
    transform: none;
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h5.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    margin-top: 10px;
    margin-bottom: var( --font-normal-lineheight );
    transition: color .6s;
}

.content .card-grid .wp-block-cover:has( p ):hover > .wp-block-cover__inner-container h4.wp-block-heading,
.content .card-grid .wp-block-cover:has( p ):hover > .wp-block-cover__inner-container h5.wp-block-heading {
    color: var( --color-orange );
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container p {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    max-width: 80%;
    transform: translate3d( -50%, 0px, 0 );
    opacity: 0;
    transition: transform 0.6s, opacity 0.6s;
    transition-timing-function: var( --animation-spring-timing );
}

.content .card-grid .wp-block-cover:hover > .wp-block-cover__inner-container p {
    transform: none;
    opacity: 1;
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container p + p {
    margin-top: var( --font-small-lineheight );
}

.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading + p,
.content .card-grid .wp-block-cover > .wp-block-cover__inner-container h5.wp-block-heading + p {
    margin-top: auto;
}

@media ( max-width: 550px ) {

    .content .card-grid > .wp-block-group__inner-container {
        grid-template-columns: 1fr;
    }

    .content .card-grid .wp-block-cover > .wp-block-cover__inner-container {
        padding: 10px;
    }

    .content .card-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading {
        font-size: var( --font-extralarge-size );
        line-height: var( --font-extralarge-lineheight );
    }
    
    .content .card-grid .wp-block-cover > .wp-block-cover__inner-container h5.wp-block-heading {
        font-size: var( --font-large-size );
        line-height: var( --font-large-lineheight );
    }

}



/* ### CONTENT: CARD CONTACT GRID ### */


.content .card-contact-grid > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px;
    row-gap: 15px;
}

.content .card-contact-grid .wp-block-cover {
    position: relative;
    background-color: var( --color-offwhite );   
    border-radius: var( --card-border-radius ) var( --card-border-radius ) 0px 0px;
    overflow: hidden; 
}

.content .card-contact-grid .wp-block-cover img {
    display: block;
    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.content .card-contact-grid .wp-block-cover > .wp-block-cover__inner-container {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    padding: 10px;
    overflow: hidden;
}

.content .card-contact-grid .wp-block-cover > .wp-block-cover__inner-container h4.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    margin-top: 0px;
    margin-bottom: 0px;
}

.content .card-contact-grid p {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    padding-left: 10px;
    padding-right: 10px;
    margin-top: 10px;
}

.content .card-contact-grid p + p {
    margin-top: var( --font-small-lineheight );
}



/* ### CONTENT: CARD LOGO GRID ### */


.content .card-logo-grid > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px;
    row-gap: 50px;
}

.content .card-logo-grid .wp-block-image {
    background-color: var( --color-offwhite );   
    border-radius: var( --card-border-radius );
    overflow: hidden; 
}

.content .card-logo-grid h4.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    margin: 0px !important;
    margin-top: 5px !important;
}

.content .card-logo-grid p {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 5px;
}

.content .card-logo-grid p + p {
    margin-top: var( --font-small-lineheight );
}



/* ### CONTENT: EVENT GRID ### */


.content .event-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px;
    row-gap: 50px;
}

.content .event-grid li {
    overflow: hidden;
    border-radius: var( --card-border-radius );
    transition: background-color .6s;
}

.content .event-grid li:has( a:hover ) {
    background-color: var( --color-offwhite );
}

.content .event-grid li a {
    cursor: pointer;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.content .event-grid li .heroimage img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.content .event-grid li .info {
    padding: 10px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.content .event-grid li .info .categories {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    display: flex;
    gap: 10px;
}

.content .event-grid li .info .categories li {
    padding: 5px;
    border-radius: var( --card-border-radius );
    background-color: var( --color-offwhite );
    transition: color 0.6s;
}

.content .event-grid li:has( a:hover ) .info .categories li {
    color: var( --color-orange );
}

.content .event-grid li .info .date {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 5px;
}

.content .event-grid li .info .title {
    margin-top: 5px;
}

.content .event-grid li .info .action {
    width: 100%;
    text-align: right;
    color: var( --color-orange );
    padding-right: 8px;
    padding-top: 30px;
    margin-top: auto;
    opacity: 0;
    transform: translate3d( -20px, 0px, 0 );
    transition: opacity .6s, transform .6s;
}

.content .event-grid li:has( a:hover ) .info .action {
    opacity: 1;
    transform: none;
}



/* ### CONTENT: IMAGE TITLE TEXT ### */


.content .image-title-text {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.content .image-title-text p + p {
    margin-top: var( --font-small-lineheight );
}

.content .image-title-text > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 10px;
}

.content .image-title-text > .wp-block-group__inner-container .wp-block-group > .wp-block-group__inner-container {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.content .image-title-text .wp-block-image {
    grid-column: span 1;
}

.content .image-title-text .wp-block-group {
    grid-column: span 2;
}

.content .image-title-text .wp-block-group h4.wp-block-heading {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    margin-bottom: 35px;
    text-box-trim: trim-start;
    text-box-edge: cap alphabetic;
}

.content .image-title-text .wp-block-group .wp-block-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 10px;
    margin-top: 0px;
}

.content .image-title-text .wp-block-buttons {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    margin-top: auto;
    margin-left: auto;
    transform: translate3d( -20px, 0px, 0 );
    opacity: 0;
    transition: transform .6s, opacity .6s;
}

.content .image-title-text:hover .wp-block-buttons {
    transform: none;
    opacity: 1;
}

@media ( max-width: 550px ) {

    .content .image-title-text > .wp-block-group__inner-container {
        display: flex;
        flex-direction: column;
    }
    
    .content .image-title-text .wp-block-group .wp-block-columns {
        display: flex;
        flex-direction: column;
    }
    
}


/* ### CONTENT: CARD IMAGE TEXT ### */


.content .card-image-text {
    background-color: var( --color-offwhite );   
    border-radius: var( --card-border-radius );
    overflow: hidden; 
}

.content .card-image-text .wp-block-columns {
    display: flex;
    align-items: center;
}

.content .card-image-text .wp-block-columns .wp-block-column:first-child img {
    width: 250px;
}

.content .card-image-text .wp-block-columns .wp-block-column:last-child {
    padding: 50px;
    padding-top: 20px;
    padding-bottom: 60px;
}

.content .card-image-text .wp-block-columns .wp-block-column:last-child h4 {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    margin-bottom: 60px;
}

@media ( max-width: 550px ) {

    .content .card-image-text .wp-block-columns .wp-block-column:first-child img {
        width: 200px;
        margin-left: -100px;
    }

    .content .card-image-text .wp-block-columns .wp-block-column:last-child {
        padding-left: 10px;
        padding-right: 10px;
        padding-bottom: 20px;
    }
}



/* ### CONTENT: NEWS TILES ### */


.content .news-tiles {
    position: relative;
    overflow: hidden;    
    padding-top: 35px;
}

.content .news-tiles .arrows {
    position: absolute;
    right: 0px;
    top: 0px;
    width: 30px;
    height: 30px;
    cursor: pointer;
}

.content .news-tiles .arrows.left {
    right: 40px;
}

.content .news-tiles .arrows.left::before {
    content: "<-";
}

.content .news-tiles .arrows.right::before {
    content: "->";
}

.content .news-tiles .strip {
    display: flex;
    transition: transform .6s;
}

.content .news-tiles li {
    border-radius: var( --card-border-radius );
    overflow: hidden;
    transition: background-color .6s;
}

.content .news-tiles li:has( a:hover ) {
    background-color: var( --color-offwhite );
}

.content .news-tiles .strip li a {
    display: flex;
    min-height: 100%;
}

.content .news-tiles .strip li .heroimage img {
    display: block;
    width: 490px;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    flex-shrink: 0;
}

.content .news-tiles .strip li .info {
    padding: 10px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    flex-shrink: 1;
}

.content .news-tiles .strip li .info .meta {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-bottom: 5px;
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.content .news-tiles .strip li .info .meta p {
    margin-top: 0px;
    margin-bottom: 0px;
}

.content .news-tiles .strip li .info .teaser {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 20px;
}

.content .news-tiles li .info .action {
    width: 100%;
    text-align: right;
    color: var( --color-orange );
    padding-right: 8px;
    /*padding-top: 30px;*/
    margin-top: auto;
    opacity: 0;
    transform: translate3d( -20px, 0px, 0 );
    transition: opacity .6s, transform .6s;
}

.content .news-tiles li:has( a:hover ) .info .action {
    opacity: 1;
    transform: none;
}



/* ### CONTENT: DETAILS ### */


.content .wp-block-details {
    position: relative;
    border-radius: var( --card-border-radius );
    background-color: var( --color-offwhite );   
    background-size: auto 250px;
    background-repeat: no-repeat;
    background-position: right top;
    overflow: hidden;
    transition: background-size .6s;
}

.content .wp-block-details.has-background {
    min-height: 150px;
}

.content .wp-block-details + .wp-block-details {
    margin-top: 5px;
}

.content .wp-block-details summary {
    position: relative;
    list-style: none;
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    transition: color .6s, background-color .6s;
    cursor: pointer;
    padding: 10px;
    padding-right: calc( 10px + 50px + 10px );
}

.content .wp-block-details[open] summary {
    background-color: rgba(247, 246, 245, 0.85 );
}

.content .wp-block-details summary::after {
    content: "↓";
    position: absolute;
    right: 10px;
    top: 10px;
    color: var( --color-orange );
    transform: translate3d( 0px, -10px, 0 );
    opacity: 0;
    transition: rotate .6s, transform .6s, opacity .6s;
}

.content .wp-block-details[open] summary::after {
    rotate: 180deg;
}

.content .wp-block-details summary:hover {
    color: var( --color-orange );
}

.content .wp-block-details summary:hover::after,
.content .wp-block-details[open] summary::after {
    transform: none;
    opacity: 1;
}

.content .wp-block-details .wrapper {
    position: relative;
    overflow: hidden;
    height: 0px;
    padding: 0px 10px;
    transition: height .6s, background-color .6s;
}

.content .wp-block-details[open] .wrapper {
    background-color: rgba(247, 246, 245, 0.85 );
}

.content .wp-block-details .wrapper > *:first-child {
    margin-top: 60px;
}

.content .wp-block-details .wrapper > *:last-child {
    margin-bottom: 10px;
}

.content .wp-block-details p {
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    max-width: 650px;
}



/* ### CONTENT: MITGLIEDER MAP ### */

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

.content .mitglieder-map svg {
    position: relative;
    width: 60%;
    height: auto;
    margin-left: 10%;
}



/* ### CONTENT: MITGLIEDER ### */


.content .mitglieder {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 100px;
}

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

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

.content .mitglieder .lettergroup {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 10px;
}

.content .mitglieder .lettergroup .letter {
    font-size: var( --font-extralarge-size );
    line-height: var( --font-extralarge-lineheight );
    text-box-trim: trim-start;
    text-box-edge: cap alphabetic;
}

.content .mitglieder .lettergroup .bubbles {
    grid-column: span 3;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: flex-start;
}

.content .mitglieder .lettergroup .bubbles > li {
    background-color: var( --color-offwhite );
    border-radius: var( --card-border-radius );
    overflow: hidden;
    transition: width .6s, height .6s;
}

.content .mitglieder .lettergroup .bubbles > li .title {
    padding: 10px;
    transition: color .6s;
    cursor: pointer;
}

.content .mitglieder .lettergroup .bubbles > li .title:hover {
    color: var( --color-orange );
}

.content .mitglieder .lettergroup .bubbles > li .info {
    padding: 10px;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
    margin-top: 10px;
    width: 260px;
    display: none;
    overflow-wrap: break-word;
}

.content .mitglieder .lettergroup .bubbles > li.extended .info {
    display: block;
}

.content .mitglieder .lettergroup .bubbles > li .info img {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: 10px;
}

.content .mitglieder .lettergroup .bubbles > li .info .type {
    color: var( --color-orange );
}

.content .mitglieder .lettergroup .bubbles > li .info .products {
    list-style: disc;
    padding-left: 1.2em;
}



/* ### CONTENT: CROSS ELEMENT MARGINS ### */


/* H1/H2 + HERO */

.content h1.wp-block-heading:has( + .hero ),
.content h2.wp-block-heading:has( + .hero ) {
    margin-bottom: 40px;
}

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


/* H3/H4/H5/H6 + COLUMNS */

.content h3.wp-block-heading:has( + .wp-block-columns ),
.content h4.wp-block-heading:has( + .wp-block-columns ),
.content h5.wp-block-heading:has( + .wp-block-columns ),
.content h6.wp-block-heading:has( + .wp-block-columns ) {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
    margin-bottom: 20px;
}

.content h3.wp-block-heading + .wp-block-columns,
.content h4.wp-block-heading + .wp-block-columns,
.content h5.wp-block-heading + .wp-block-columns,
.content h6.wp-block-heading + .wp-block-columns {
    margin-top: 20px;
}


/* HERO + COLUMNS */

.content .hero:has( + .wp-block-columns:not( .sidebar ) ) {
    margin-bottom: 5px;
}

.content .hero + .wp-block-columns:not( .sidebar ) {
    margin-top: 5px;
}


/* HERO + COLUMNS > EVENT GRID */

.content .hero:has( + .wp-block-columns .event-grid ) {
    margin-bottom: var( --page-margin-large );
}

.content .hero + .wp-block-columns:has( .event-grid ) {
    margin-top: var( --page-margin-large );
}


/* H3/H4/H5/H6 + CARD GRID */

.content h3.wp-block-heading:has( + .card-grid ),
.content h4.wp-block-heading:has( + .card-grid ),
.content h5.wp-block-heading:has( + .card-grid ),
.content h6.wp-block-heading:has( + .card-grid ) {
    margin-bottom: var( --page-margin-small );
}

.content h3.wp-block-heading + .card-grid,
.content h4.wp-block-heading + .card-grid,
.content h5.wp-block-heading + .card-grid,
.content h6.wp-block-heading + .card-grid {
    margin-top: var( --page-margin-small );
}


/* H3/H4/H5/H6 + CARD IMAGE TEXT */

.content h3.wp-block-heading:has( + .card-image-text ),
.content h4.wp-block-heading:has( + .card-image-text ),
.content h5.wp-block-heading:has( + .card-image-text ),
.content h6.wp-block-heading:has( + .card-image-text ) {
    margin-bottom: var( --page-margin-small );
}

.content h3.wp-block-heading + .card-image-text,
.content h4.wp-block-heading + .card-image-text,
.content h5.wp-block-heading + .card-image-text,
.content h6.wp-block-heading + .card-image-text {
    margin-top: var( --page-margin-small );
}


/* COLUMNS > CONTACT CARD GRID + COLUMNS > CONTACT CARD GRID */

.content .wp-block-columns:has( .card-contact-grid ):has( + .wp-block-columns .card-contact-grid ) {
    margin-bottom: 40px;
}

.content .wp-block-columns:has( .card-contact-grid ) + .wp-block-columns:has( .card-contact-grid ) {
    margin-top: 40px;
}


/* COLUMNS > EVENT GRID + COLUMNS > EVENT GRID */

.content .wp-block-columns:has( .event-grid ):has( + .wp-block-columns .event-grid ) {
    margin-bottom: 50px;
}

.content .wp-block-columns:has( .event-grid ) + .wp-block-columns:has( .event-grid ) {
    margin-top: 50px;
}



/* ### FOOTER ### */


.newsletter {
    background-color: var( --color-offwhite );
    padding: 10px;   
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
    display: flex;
    gap: 100px;
    margin-top: 200px;
    align-items: center;
}

.newsletter .title {
    font-size: var( --font-large-size );
    line-height: var( --font-large-lineheight );
}

.newsletter .description {
    text-wrap: balance;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

.newsletter .action {
    cursor: pointer;
    margin-left: auto;
}

.newsletter .action svg {
    display: block;
}

.newsletter .action svg.hover {
    display: none;
}

.newsletter .action:hover svg.default {
    display: none;
}

.newsletter .action:hover svg.hover {
    display: block;
}

@media ( max-width: 1150px ) {
    
    .newsletter .description {
        display: none;
    }
    
}

@media ( max-width: 550px ) {
    
    .newsletter {
        gap: 10px;
    }
    
    .newsletter .action svg {
        height: 32px;
        width: auto;
    }
    
}

footer {
    padding-left: var( --page-padding-side );
    padding-right: var( --page-padding-side );
    margin-top: 200px;
    margin-bottom: 25px;
    font-size: var( --font-small-size );
    line-height: var( --font-small-lineheight );
}

footer p + p {
    margin-top: var( --font-small-lineheight );
}

footer p a {
    transition: color .6s;
}

footer p a:hover { 
    color: var( --color-orange );
}

footer h3.wp-block-heading {
    font-size: var( --font-normal-size );
    line-height: var( --font-normal-lineheight );
    margin-bottom: 10px;
}

footer .wp-block-columns {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 100px;
}

footer .wp-block-columns .wp-block-column:first-child {
    margin-right: auto;
}

.newsletter + footer {
    margin-top: 25px;
}