/*
Theme Name: Twenty Twenty-Four Child
Template: twentytwentyfour

Version:      1.0.0
Text Domain:  twentytwentyfourchild
*/


/*
Verfügbare Fonts:
NEU:
AvenirPro 200 AvenirPro35Light.woff2
AvenirPro 300 AvenirPro45Book.woff2
AveniPror 400 AvenirPro55Roman.woff2
AvenirPro 500 AvenirPro65Medium.woff2
AvenirPro 900 AvenirPro95Black.woff2
*/

@font-face {
    font-family: 'AvenirPro';
    font-style: normal;
    font-weight: 200;
    src: url('fonts/AvenirPro35Light.woff2') format('woff2');
}

@font-face {
    font-family: 'AvenirPro';
    font-style: normal;
    font-weight: 300;
    src: url('fonts/AvenirPro45Book.woff2') format('woff2');
}

@font-face {
    font-family: 'AvenirPro';
    font-style: normal;
    font-weight: 400;
    src: url('fonts/AvenirPro55Roman.woff2') format('woff2');
}

@font-face {
    font-family: 'AvenirPro';
    font-style: normal;
    font-weight: 500;
    src: url('fonts/AvenirPro65Medium.woff2') format('woff2');
}

@font-face {
    font-family: 'AvenirPro';
    font-style: normal;
    font-weight: 900;
    src: url('fonts/AvenirPro95Black.woff2') format('woff2');
}


/* BASICS / HEADER / FOOTER  */
/* ======================== */

:root{
	--header-hoehe:5rem;
	--header-transition-easing:cubic-bezier(.5,0,.5,1);
	--header-transition-delay:30ms;
	--content-abstand-oben:12rem;
	/* Check für .custom-input */
	--svg-check:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='33' height='33' viewBox='0 0 33 33'><path d='M16392.668-2296.514l5.633,7.347,14.609-18.8' transform='translate(-16386 2314.761)' fill='none' stroke='black' stroke-linejoin='bevel' stroke-width='2'/></svg>");
	/* Kleines x für die Filter-Tags (.selected-filter) */
	--svg-x-klein:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12.414' height='12.414' viewBox='0 0 12.414 12.414'><g transform='translate(-246.793 -378.793)'><line x2='11' y2='11' transform='translate(247.5 379.5)' fill='none' stroke='black' stroke-width='2'/><line x2='11' y2='11' transform='translate(258.5 379.5) rotate(90)' fill='none' stroke='black' stroke-width='2'/></g></svg>");
	/* drei dots (zB für den "mehr" Button) */
    --svg-dots:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='10'><circle cx='5' cy='5' r='5'/><circle cx='30' cy='5' r='5'/><circle cx='55' cy='5' r='5'/></svg>");
	/* drei dots (zB für den "mehr" Button) der dritte dot fehlt */
    --svg-dots-12x:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='10'><circle cx='5' cy='5' r='5'/><circle cx='30' cy='5' r='5'/></svg>");
	/* drei dots (zB für den "mehr" Button) die zwei ersten dots fehlen */
    --svg-dots-xx3:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='10'><circle cx='55' cy='5' r='5'/></svg>");
    /* Pfeil nach oben (zB für den "to-top" Button) */
	--svg-up:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22.908' height='22.908'><path d='M11.454,22.908,9.372,20.826l7.884-7.884H0V9.967H17.256L9.372,2.083,11.454,0,22.908,11.454Z' transform='translate(0 22.908) rotate(-90)'/></svg>");
	--svg-left:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><path d='M0,50c.17.17,37.77,37.77,39.33,39.33l7.5-7.56-26.44-26.44h79.61v-10.67H20.39l26.44-26.44-7.5-7.56C37.56,12.44.42,49.58,0,50h0Z'/></svg>");
	/* Winkel nach oben (zb für den Akkordeon) */
	--svg-up-angle:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22.177' height='12.589'><path fill='none' stroke-linejoin='round' stroke='black' stroke-width='3' d='M21.116,11.539L11.089,1.511,1.061,11.539'/></svg>");
	
	--fc-calendar-max-width:475px;
}

@media (min-width:1200px) {/* [NAVIBREAKPOINT] ab hier offene Navi ::::: ACHTUNG!!! Bei Änderung des Breakpoints, den Wert entsprechend auch in den anderen mediaqueries anpassen */
	:root{
		--header-hoehe:7.5rem;
		--content-abstand-oben:15rem;
	}
}


*,*:before,*:after{
	box-sizing:border-box;
}
html {
	scroll-behavior: smooth;
}
html, body, input, select, textarea, button{
	font-family: AvenirPro, sans-serif;
}


:root :where(.is-layout-constrained) > *:not(p) {
  margin-block-start: 5rem;
}

h1,
h2,
h4,
h5,
h6{
	text-wrap:balance;
}

h1,
h2{
	position:relative;
	padding-right:1em;
}

h4,
h5{
	margin-bottom:.5em;
}
h4 + p,
h5 + p{
	margin-top:0;
}

h1:after,
h2:after{
	content:"";
	background-color: currentColor;
	position:absolute;
	top:.45em;
	right:0;
	width:.4166em;
	aspect-ratio:1;
	border-radius:9em;
}

i,em{
	font-style:normal;
	font-weight:500;
}

strong,
b{
	font-weight:900;
}
a{
	outline:none;
}


header.wp-block-template-part{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	z-index:111;
	will-change:padding;
	transition:all .5s var(--header-transition-easing);
}
header.wp-block-template-part:before{
	content:"";
	position:absolute;
	inset:0;
	background-color:var(--wp--preset--color--base);
	will-change:transform;
	transition:transform .5s var(--header-transition-easing);
}

main {
	margin-top:var(--content-abstand-oben);
}
header.wp-block-template-part + main{
	margin-top:calc( var(--header-hoehe) + 2em );
}
body.home main{
	margin-top:0;
}



.wp-block-site-logo{
	width:120px;
}
.hamburger__icon { width:40px; height:40px}
.menu-toggler.on .hamburger__icon .p1{d:path("M90,20L50 60 10 20 20 10 50 40 80 10 z")}
.menu-toggler.on .hamburger__icon .p2{d:path("M60,55L50 55 40 55 40 45 50 45 60 45 z")}
.menu-toggler.on .hamburger__icon .p3{d:path("M80,90L50 60 20 90 10 80 50 40 90 80 z")}
.hamburger__icon path { transition:d .5s var(--header-transition-easing)}

body.home .subnavi-super-wrapper,
.subnavi-super-wrapper:not(:has(.current-menu-item)){
	display:none;
}

header.wp-block-template-part .logo-navi-wrapper{
	margin-block-start:0!important;
}

header.wp-block-template-part .menu{
	list-style-type:none;
	padding-left:0;
}
header.wp-block-template-part .menu .sub-menu{
	display:none;
}
header.wp-block-template-part .menu,
header.wp-block-template-part .menu a{
	color:var(--wp--preset--color--contrast);
	text-decoration:none;
}
header.wp-block-template-part .menu a{
	font-size:var(--wp--preset--font-size--large);
	display:grid;
}
header.wp-block-template-part .menu a > *{
	grid-column:1/2;
	grid-row:1/2;
}
header.wp-block-template-part .menu a > b{
	opacity:0;
}
header.wp-block-template-part .menu .current_page_ancestor > a > span,
header.wp-block-template-part .menu .current-menu-item > a > span{
	opacity:0
}
header.wp-block-template-part .menu .current_page_ancestor > a > b,
header.wp-block-template-part .menu .current-menu-item > a > b{
	opacity:1
}

@media (max-width:1199.09px){ /* [NAVIBREAKPOINT] Navi NUR Mobile Darstellung :::: ACHTUNG!!!! Bei Änderung des Breakpoints, den Wert entsprechend auch in den anderen mediaqueries anpassen */
	header.wp-block-template-part{
		padding-top:20px;
		padding-bottom:20px;
	}
	body.scrolled header.wp-block-template-part{
		padding-top:10px;
		padding-bottom:10px;
	}
	header.wp-block-template-part > .wp-block-group{
		position:static;
	}
	header.wp-block-template-part .wp-block-site-logo{
		position:relative;
	}
	.menu-toggler{
		order:1;
		z-index:1;
	}
	header.wp-block-template-part .meta-mobile,	
	header.wp-block-template-part .meta-desktop{
		color:transparent;
	}
	header.wp-block-template-part .menu-wrapper{
		display:flex;
		flex-direction:column;
		justify-content: space-between;
		position:absolute;
		inset:0;
		height:100vh;
		height:100dvh;
		padding:1rem;
		text-align:center;
		background-color:var(--wp--preset--color--base);
		transform:translatey(-100%);
		will-change:transform;
		transition:transform .5s var(--header-transition-easing);
	}
	header.wp-block-template-part .menu-wrapper .meta-mobile--suche{
		text-align:left;
		margin-right:60px;
	}
	header.wp-block-template-part .navi-wrapper.on .menu-wrapper{
		transform:none;
	}
	header.wp-block-template-part .menu-item{
		padding-bottom:1em;
	}
	header.wp-block-template-part .menu a > *{
		place-self:center;
	}
	header.wp-block-template-part .menu a > b{
		position:relative;
	}
	header.wp-block-template-part .menu .current_page_ancestor > a > b:before,
	header.wp-block-template-part .menu .current-menu-item > a > b:before{
		content:"";
		position:absolute;
		top:100%;
		left:0;
		right:0;
		height:3px;
		background-color:currentColor;
	}
	header.wp-block-template-part .menu
	/* wenn an erster stelle ein home-slider ist dann transition */
	.wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .custom-logo-link,
	.wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .meta-wrapper,
	.wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .menu-toggler{
		transition:all .5s var(--header-transition-easing);
	}
	.wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part:before{
		transform:translatey(-100%);
	}
	/* Navi & Invertieren wenn man  */
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .custom-logo-link,
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .meta-wrapper,
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .navi-wrapper:not(.on) .menu-toggler{
		filter:invert(1);
	}
	body:not(.not-scrolled) header.wp-block-template-part:before{
		transform:none!important;
	}
}

@media (max-width:1199.09px) and (min-width:600px){ /* [NAVIBREAKPOINT] Navi NUR Mobile Darstellung mit zwei spaltigem Menu :::: ACHTUNG!!!! Bei Änderung des Breakpoints, den Wert entsprechend auch in den anderen mediaquerys anpassen */
	header.wp-block-template-part .menu{
		margin-left:auto;
		margin-right:auto;
		width:450px;
		text-align:left;
		column-count: 2;
		column-gap: 3em;
	}
	header.wp-block-template-part .menu a > *{
		place-self:center start;
	}
}

@media (min-width:1200px){ /* [NAVIBREAKPOINT] ab hier offene Navi ::::: ACHTUNG!!! Bei Änderung des Breakpoints, den Wert entsprechend auch in den anderen mediaqueries anpassen */
	.menu-toggler{
		display:none;
	}
	header.wp-block-template-part{
		padding-top:5px;
		padding-bottom:25px;
	}
	body.scrolled header.wp-block-template-part{
		padding-top:0;
		padding-bottom:10px;
	}
	header.wp-block-template-part .wp-block-site-logo{
		will-change:transform;
		transition:all .5s var(--header-transition-easing);
		transform-origin: 0 100%;
		transform:scale(.8);
	}
	header.wp-block-template-part .navi-wrapper{
		display:block;
		text-align:right;
	}
	header.wp-block-template-part .menu-wrapper{
		margin-top:1.5em;
	}
	header.wp-block-template-part .meta-wrapper{
		will-change:transform;
		transition:all .5s var(--header-transition-easing);
	}
	header.wp-block-template-part .meta-mobile{
		display:none;
	}
header.wp-block-template-part .meta-mobile,	
	header.wp-block-template-part .meta-desktop{
		color:transparent;
	}
	header.wp-block-template-part .menu{
		position:relative;
	}
	header.wp-block-template-part .menu:after{
		content:"";
		position:absolute;
		top:100%;
		left:var(--links, 0);
		right:var(--rechts, 100%);
		height:3px;
		background-color:currentcolor;
		will-change:transform;
		transition:all .5s var(--header-transition-easing);
	}
	header.wp-block-template-part .menu .menu-item{
		display:inline-block;
		will-change:transform;
		transition:all .5s var(--header-transition-easing);
	}
	header.wp-block-template-part .menu .menu-item:not(:first-child){
		margin-left:1em;
	}
	header.wp-block-template-part .menu a{
		transition:all .5s var(--header-transition-easing);
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(2) {
		transition-delay:var(--header-transition-delay);
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(3) {
		transition-delay:calc( var(--header-transition-delay) * 2 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(4) {
		transition-delay:calc( var(--header-transition-delay) * 3 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(5) {
		transition-delay:calc( var(--header-transition-delay) * 4 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(6) {
		transition-delay:calc( var(--header-transition-delay) * 5 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(7) {
		transition-delay:calc( var(--header-transition-delay) * 6 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(8) {
		transition-delay:calc( var(--header-transition-delay) * 7 );
	}
	header.wp-block-template-part .menu .menu-item:nth-last-child(9) {
		transition-delay:calc( var(--header-transition-delay) * 8 );
	} /* ... hier noch weitere ergänzen falls notwendig */
	
	/* wenn an erster stelle ein home-slider ist dann farbe invertieren */
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .menu a,
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .menu:after,
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part .wp-block-site-logo{
		filter:invert(1);
	}
	body.not-scrolled .wp-site-blocks:has(.entry-content > .wp-block-lazyblock-home-slider:first-child) header.wp-block-template-part:before{
		transform:translatey(-55%);
	}
	
	
	body.scrolled header.wp-block-template-part:before{
		transform:none!important;
	}
	body.scrolled header.wp-block-template-part .meta-wrapper{
		transform:translatey(-200%);
	}
	body.scrolled header.wp-block-template-part .wp-block-site-logo,
	body.scrolled header.wp-block-template-part .menu .menu-item{
		transform:translatey(-1rem);
	}
	body.scrolled header.wp-block-template-part .menu:after{
		transform:translateY(-1rem);
	}
}

/* Unternavi */
.subnavi-super-wrapper{
	/* .subnavi-super-wrapper wird per JS ein- oder ausgeblended */
	position:fixed;
	left: 0;
    top: var(--header-hoehe);
    right: 0;
	padding-top:1em;
	padding-bottom:1em;
	margin-block-start:0;
	z-index:2;
	background-color:var(--wp--preset--color--base);
	box-shadow:0 -100px 0 100px var(--wp--preset--color--base);
	transition: transform .5s var(--header-transition-easing);
}
body.scrolled .subnavi-super-wrapper{
	transform:translatey(-120%);
}
@media (min-width:1200px){ /* [NAVIBREAKPOINT] ab hier offene Navi ::::: ACHTUNG!!! Bei Änderung des Breakpoints, den Wert entsprechend auch in den anderen mediaqueries anpassen */
	body.scrolled .subnavi-super-wrapper{
		transform:translatey(-10%);
	}
}
.subnavi-wrapper{
	position:relative;
}
.subnavi-buttons{
	display:contents;
}
.subnavi-button{
	display:none;
	position:absolute;
	top:0;
	width:2em;
	height:1em;
	background:transparent no-repeat var(--svg-up-angle) center;
	background-size:auto 75%;
	overflow:hidden;
	text-indent:-33em;
	cursor:pointer;
}
.subnavi-button--L{
	right: calc( 100% - .125em );
	transform:rotate(-90deg);
}
.subnavi-button--R{
	left:calc( 100% - .125em );
	transform:rotate(90deg);
}
.L-on .subnavi-button--L,
.R-on .subnavi-button--R{
	display:block;
}
.subnavi-super-wrapper .menu{
	padding-left:0;
	width:100%;
	border-bottom:3px solid var(--wp--preset--color--contrast);
}
.subnavi-super-wrapper .menu > .menu-item::-webkit-scrollbar {
  display: none;
}
.subnavi-super-wrapper .menu > .menu-item{
	overflow:auto;
	overflow-y:hidden;
	scrollbar-width: none;  /* Firefox */
}
.subnavi-super-wrapper .menu > .menu-item > .sub-menu{
	position:relative;
}
.subnavi-super-wrapper .menu > .menu-item > .sub-menu:after{
	display:block;
	content:"";
	position:absolute;
	top:calc( 100% - 6px) ;
	left:var(--links, 0%);
	right:var(--rechts, 100%);
	height:6px;
	background-color:currentcolor;
	will-change:transform;
	transition:all .5s var(--header-transition-easing);
	pointer-events:none;
}
.subnavi-super-wrapper .menu  a{
	text-decoration:none;
}
.subnavi-super-wrapper .menu > .menu-item,
.subnavi-super-wrapper .menu > .menu-item > a{
	display:none;
}
.subnavi-super-wrapper .menu > .menu-item.current-menu-item,
.subnavi-super-wrapper .menu > .menu-item.current-menu-ancestor{
	display:block; /* Anzeige erfolgt per JS nach gleicher Logik, zusätzlich wird die gesamte Subnavi entfernt wenn keine Unterpunkte vorhanden sind */
	min-width:100%;
	max-width:100%;
}



.subnavi-super-wrapper .menu .sub-menu{
	display:block;
	padding-left:0;
	list-style-type:none;
	min-width:100%;
	white-space:nowrap;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item{
	font-size: var(--wp--preset--font-size--large);
	display:inline-block;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item:not(:first-child){
	margin-left:.5em;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item:not(:last-child){
	margin-right:.5em;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item > a{
	color:var(--wp--preset--color--contrast);
	border-bottom:6px solid transparent;
	display:grid;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item:not(:first-child) > a,
.subnavi-super-wrapper .menu .sub-menu .menu-item:not(:last-child) > a {
	text-align:center;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item > a > *{
	grid-column:1/2;
	grid-row:1/2;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item > a > b{
    opacity:0;
}

.subnavi-super-wrapper .menu .sub-menu .menu-item.current-menu-item > a{
	/*border-bottom-color:deeppink;*/
}
.subnavi-super-wrapper .menu .sub-menu .menu-item.current-menu-item > a > span{
	opacity:0;
}
.subnavi-super-wrapper .menu .sub-menu .menu-item.current-menu-item > a > b{
	opacity:1;
}



/* footer */
footer.wp-block-template-part{
	margin-top: calc( var(--wp--style--block-gap) * 3 );
}

/* ECT Logo verkleinern */
footer .wp-image-1540 {
	max-width: 70%;
}
/* ECT Logo verkleinern */


/* custom inputs (RADIO & CHECKBOX) */
/* Benötigter Aufbau:
label[for='myid'].custom-input > input[id='myid' name='myname' type='radio|checkbox']
*/
label.custom-input{
	display:inline-block;
}
label.custom-input input[type="radio"], 
label.custom-input input[type="checkbox"] {
	display: none;
}
label.custom-input:before {
	content: "";
	display: inline-block; 
	vertical-align: middle; 
	border:1px solid var(--wp--preset--color--contrast); 
	cursor: pointer; 
	box-shadow:inset 0 0 0 .25em var(--wp--preset--color--base);
	width: 1.38em; 
	height: 1.38em; 
	margin: -.25em .25em 0 0;
}
label.custom-input:has(input[type="radio"]):before{ 	
	border-radius: 50%;
}
label.custom-input:has(input[type="radio"]):before, 
label.custom-input:has(input[type="checkbox"]):before { 
	background-color: #fff; 
}
label.custom-input:has(input[type="radio"]:checked):before{   
	background-color: var(--wp--preset--color--contrast);
}
label.custom-input:has(input[type="checkbox"]:checked):before{   
	background: var(--wp--preset--color--base) var(--svg-check) no-repeat center center;
	background-size:contain;
}





/* custom select für beliebigen content */
.custom-select {
    display: inline-block;
    position: relative;
	font-size: var(--wp--preset--font-size--large);
}
.custom-select a{
	color:var(--wp--preset--color--contrast);
}
.custom-select__toggler {
    display: block;
    position: relative;
    height: 2.5em;
    /* border: .125em solid #ddd; */
    line-height: 1.5em;
    outline: 0 none;
    background-color: #fff;
}
.custom-select__toggler:after {
    content: "";
    position: absolute;
    top:.3333em;
    right: .6666em;
    width: 1.5em;
	height: 1.5em;
    pointer-events: none;
    transition: all .4s;
    background: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' width='1792' height='1792' viewBox='0 0 1792 1792' ><path d='M1395,738c0,8.7-3.3,16.3-10,23l-466,466c-6.7,6.7-14.3,10-23,10s-16.3-3.3-23-10L407,761c-6.7-6.7-10-14.3-10-23s3.3-16.3,10-23l50-50c6.7-6.7,14.3-10,23-10s16.3,3.3,23,10l393,393l393-393c6.7-6.7,14.3-10,23-10s16.3,3.3,23,10l50,50C1391.7,721.7,1395,729.3,1395,738z' /></svg>") center center no-repeat;
    background-size: contain;
}
.custom-select.on .custom-select__toggler:after {
    transform:rotate(-180deg)
}
.custom-select__select {
    position: absolute;
    z-index:13;
    left: 0;
    top: 100%;
    /*width:100%;*/ /* Breite soll von den Options bestimmt werden */ 
    padding: .6666em .6666em;
    background:#fff;
    box-shadow:0 1em 2em rgba(0, 0, 0, .1)
}
.custom-select__label {
    display:inline-block;
    position: relative;
    padding: 0 .6666em 0 0;
    line-height: 2.25em;
    width:100%;
    padding-right:2.5em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.custom-select select {
    display:none
}
.custom-option {
    display: block;
    position: relative;
    cursor: pointer;
    padding:.3333em .125em .75em;
    min-height: 1.75em;
    /* mindesthöhe falls tag leer */
}
.custom-option:hover, .custom-option.hover {
	opacity:.7;
	/*
    background:#f0f0f0;
    box-shadow:-.25em 0 0 0 #fff, .25em 0 0 0 #fff;
    box-decoration-break:clone;*/
    /* https://css-tricks.com/multi-line-padded-text/ */
}
.custom-option:before {
    content:"";
    position: absolute;
    top:.25em;
    left:.2em;
    width: 1.38em; 
	height: 1.38em;  
	margin: -.125em .25em 0 0;
	border-radius: 50%;
    background-position:center center;
    background-repeat: no-repeat;
	border:1px solid var(--wp--preset--color--contrast); 
	cursor: pointer; 
	box-shadow:inset 0 0 0 .25em var(--wp--preset--color--base);
}
.custom-select--multiple .custom-option:before{
	border-radius:0;
}
.custom-option.on:before {
    background-color: var(--wp--preset--color--contrast);
}
.custom-select--multiple .custom-option.on:before {
    background: var(--wp--preset--color--base) var(--svg-check) no-repeat center center;
	background-size:contain;
}
 .custom-option__text {
    display:inline-block;
    white-space:nowrap;
    margin-left:1.75em;
}
.custom-select--disabled {
    pointer-events: none;
    opacity: .3;
}







/* BLÖCKE und MODULE */
/* ================= */




/* wp-block-spacer */
.wp-block-spacer.is-style-relative-space{
	margin-block-start: 0!important;
	height:80px!important;
}

/* button */
.wp-block-button .wp-block-button__link.wp-element-button{
    padding: 0.6rem 1.5625rem .3rem;
	min-width:13.5em;
	font-size:20px;
	line-height:2.28;
	display:inline-block;
	text-align:center;
}
.wp-block-button.has-custom-width .wp-block-button__link.wp-element-button{
	min-width:0;
}
.wp-block-button__link.wp-element-button:hover{
	opacity:.7;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link.wp-element-button:hover{
	background-color:var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button{
	border:0;
	color:var(--wp--preset--color--contrast);
	background-color:transparent!important;
	box-shadow:inset 0 0 0 4px var(--wp--preset--color--contrast);
}
.wp-block-button:not(.mehr) .wp-block-button__link.wp-element-button{
	letter-spacing:.06em;
}
.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:hover{
	color:var(--wp--preset--color--contrast);
}
.wp-block-button.negativ, 
.wp-block-buttons.negativ .wp-block-button{
	filter:invert(1);
}
.wp-block-button.mehr .wp-block-button__link.wp-element-button{
	min-width:0;
	position:relative;
	padding-right:80px;
}
.wp-block-button.mehr .wp-block-button__link.wp-element-button:hover{
	opacity:1;
}
.wp-block-button.mehr .wp-block-button__link{
	padding:0;
	background-color:transparent;
	color:var(--wp--preset--color--contrast);
	text-transform:none;
	font-size:22px;
	font-weight:300;
}
.wp-block-button:not(.is-style-outline).mehr .wp-block-button__link:hover{
	background-color:transparent;
}
.wp-block-button.mehr .wp-block-button__link:before,
.wp-block-button.mehr .wp-block-button__link:after{
	content:"";
	position:absolute;
	right:0;
	bottom:38%;
	display:inline-block;
	width:60px;
	aspect-ratio:6;
	background-size:contain;
}
.wp-block-button.mehr .wp-block-button__link:after{
	background:transparent var(--svg-dots-12x) center center;
}
.wp-block-button.mehr .wp-block-button__link:before{
	background:transparent var(--svg-dots-xx3) center center;
	transition:transform .25s ease-in-out;
}
.wp-block-button.mehr .wp-block-button__link.wp-element-button:hover:before{
	transform: translate( 20%, -100% );
}




/* Bild-Block */
.wp-block-image .wp-element-caption{
	color:var(--wp--preset--color--contrast);
	font-size:var(--wp--preset--font-size--medium);
}




/* .wp-block-cover grundsätzliche Änderung des Cover-Blocks (Inhalt soll oben bündig sein) */
.wp-block-cover{
	align-items: stretch;
}
.wp-block-cover .wp-block-cover__inner-container{
	display:flex;
	flex-direction:column;
}
.wp-block-cover .wp-block-cover__inner-container > p{
	font-size:109.091%; /* von 22px auf 24px  */
}
.wp-block-cover .wp-block-cover__inner-container > .wp-block-heading{
	
}
.wp-block-cover .wp-block-cover__inner-container > p + .wp-block-heading{
	margin-block-start:.5em;
}
.wp-block-cover .wp-block-cover__inner-container > .wp-block-heading{
	
}
.wp-block-cover .wp-block-cover__inner-container > .wp-block-heading:first-child{
	margin-block-start:0;
}




/* .bildmodul (für die Benutzung mit Galerie-Block / wp-block-gallery) */

.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image {
  overflow:hidden;
}

.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before {
  content: none; /* entferne weichgezeichnetes Bildoverlay von der unterkante */
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image img{
	transition:filter .3s ease-out;
}
.bildmodul.wp-block-gallery {
  margin-bottom: calc( var(--wp--preset--spacing--50) - var(--wp--style--block-gap) );
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image:after {
	content:"";
	position:absolute;
	inset:0;
	background: var(--wp--preset--color--accent);
	opacity:0;
	transition:opacity .3s ease-out;
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image:hover:after {
	opacity:.7;
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
    filter: blur(5px);
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
    background: transparent;
    inset:0 auto 0 50%;
    width:100%;
    height:100%;
    max-width:14em;
    transform: translateX(-50%);
    font-size: var(--wp--preset--font-size--x-large);
    text-transform:uppercase;
    font-weight:900;
    max-height: 100%;
    padding: .5em;
	display:flex;
	align-items:center;
	justify-content:center;
	margin-top:0;
	overflow:hidden;
	text-wrap:balance;
	z-index:1;
	opacity:0;
	transition:opacity .3s ease-out;
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:has(a) { /* wenn caption verlinkt ist, dann soll der Linkk das ganze Bild füllen */
    padding: 0;
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image a{ /* wenn caption verlinkt ist, dann soll der Linkk das ganze Bild füllen */
	position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding-left: 2em;
	padding-right: 2em;
	display:flex;
	align-items:center;
	justify-content:center;
	text-wrap:balance;
	text-decoration:none!important;
}
.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image:hover figcaption {
	opacity:1;
}

@media (min-width:800px) {
	.bildmodul.wp-block-gallery{
		display:block;
		column-count: 2;
		column-gap: var(--wp--style--block-gap);
	}
	.bildmodul.wp-block-gallery.has-nested-images figure.wp-block-image{
		margin-bottom:var(--wp--style--block-gap)!important;
	}
}
@media (min-width:1400px) {
	.bildmodul.wp-block-gallery{
		column-count: 3;
	}
}



/* Grid-Block stapeln */
@media (max-width:781.95px){
	.wp-block-group-is-layout-grid.stack-on-mobile{
		grid-template-columns: minmax(0, 1fr);
	}
	
}



/* .footer-widget */
.footer-widget .wp-social-link {
  background-color: transparent;
}

/* Buttons mobil links ausrichten */
.wp-block-buttons.is-content-justification-right {
  justify-content: flex-start;
}
/* Buttons mobil links ausrichten */

.footer-widget .wp-social-link .wp-block-social-link-anchor{
	transform:scale(1.5);
}





/* .wp-block-table */
.wp-block-table table{
	border-collapse:separate;
	border-spacing: 0;
}
.wp-block-table th{
    font-size: var(--wp--preset--font-size--x-large);
	text-transform:uppercase;
	font-weight:500;
}
@media (max-width:600.01px){
	#preistabelle.wp-block-table th{
		font-size: 12px;
	}
}
.wp-block-table th:not(.has-text-align-center){
	text-align:left;
}
.wp-block-table:not(.is-style-stripes) th,
.wp-block-table:not(.is-style-stripes) td{
	padding-top:.125em;
	padding-bottom:.125em;
}

.wp-block-table.is-style-stripes th,
.wp-block-table.is-style-stripes td{
	padding-top:1em;
	padding-bottom:1em;
}

.wp-block-table th,
.wp-block-table td{
    padding-left:0;
	padding-right:0;
	border-color:transparent;
	border-width: 0 calc( var(--wp--style--block-gap) / 2 );
	position:relative;
	vertical-align:top;
}
.wp-block-table th:first-child,
.wp-block-table td:first-child{
	border-left-width:0;
}
.wp-block-table th:last-child,
.wp-block-table td:last-child{
	border-right-width:0;
}
.wp-block-table.is-style-stripes th:after,
.wp-block-table.is-style-stripes td:after{
	content:"";
	position:absolute;
	width:100%;
	height:3px;
	left:0;
	bottom:0;
	background: var(--wp--preset--color--contrast);
}

.wp-block-table.is-style-stripes tfoot td:before{
    content:"";
	position:absolute;
	width:100%;
	height:3px;
	left:0;
	top:0;
	background: var(--wp--preset--color--contrast);
}
.wp-block-table .wp-element-caption{
	margin-top:.5em;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(2n+1) { /* KEIN Zebra */
    background-color: transparent;
}
.wp-block-table.is-style-stripes { /* FIX: kein Border */
    border-bottom: 0;
}
/* (Spalte >) Stapel-Block mit Künstler einer Tabelle mit der class "konzerte"  */
.wp-block-column:has(.wp-block-table.konzerte) {
	display:flex;
	flex-direction:column;
}
.wp-block-column:has(.wp-block-table.konzerte) .wp-block-buttons:last-child{
	margin-top:auto;
	padding-top: var(--wp--style--block-gap);
}

.wp-block-table th.event_date, /* .event_date */
.wp-block-table td.event_date{
	white-space:nowrap;
	vertical-align:baseline;
	width:5.5em;
}



/* .wp-block-video */
.wp-block-video video{
	display:block;
}
.wp-block-video,
.wp-block-video video{
	outline:none;
}
.wp-block-video .wp-element-caption{
    font-size:var(--wp--preset--font-size--medium);
	margin-top:1.5em;
}

/* Inhaltsslider (Galerie-Block) */
.inhaltsslider.wp-block-gallery{
	container: inhaltsslider / inline-size;
}
.inhaltsslider.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  text-shadow: none!important;
}
.inhaltsslider.wp-block-gallery figure.wp-block-image:has(figcaption)::before{
	opacity:0;
}
.inhaltsslider.wp-block-gallery .flickity-viewport{
	width:100%;
}
.inhaltsslider.wp-block-gallery .wp-block-image{
	width:100%;
}
.inhaltsslider.wp-block-gallery .flickity-button {
  background:transparent;
}
.inhaltsslider.wp-block-gallery .flickity-prev-next-button{
	top: calc( 100cqw * 9 / 16 / 2 );
}
.inhaltsslider.wp-block-gallery .flickity-button-icon{
	fill:var(--wp--preset--color--base);
}
.inhaltsslider.wp-block-gallery.has-nested-images figure.wp-block-image .wp-element-caption{
	position:relative;
	padding-left:0;
	padding-right:0;
	background-image:none;
	color:var(--wp--preset--color--contrast);
	text-align:left;
	font-size:var(--wp--preset--font-size--medium);
}
@container inhaltsslider (min-width: 800px) {
	.wp-block-image{
		width:80%!important;
		margin-right:var(--wp--style--block-gap)!important;
	}
	.flickity-prev-next-button{
	    top: calc( 66cqw * 9 / 16 / 2 )!important;
    }
}
@container inhaltsslider (min-width: 1400px) {
	.wp-block-image{
		--sieben-spalten: calc( ( 100% + var(--wp--style--block-gap) ) / 12 * 7 - var(--wp--style--block-gap) );
		width:var(--sieben-spalten)!important;
	}
	.flickity-prev-next-button{
		top: calc( 48cqw * 9 / 16 / 2 )!important;
    }
}


/* thumbnails (Group-Block mit Medien und Text Block) */
.thumbnails.wp-block-group .wp-block-media-text > .wp-block-media-text__media,
.thumbnails.wp-block-group .wp-block-media-text > .wp-block-media-text__content{
	align-self: start;
}

@media (min-width:600.01px){
	.thumbnails.wp-block-group .wp-block-media-text > .wp-block-media-text__content > *:first-child{
	    margin-top:0;
    }
}
@media (min-width:1400px){
	.thumbnails.wp-block-group{
		display:grid;
		grid-template-columns:1fr 1fr;
		column-gap:var(--wp--style--block-gap);
		row-gap:var(--wp--style--block-gap);
	}
	.thumbnails.wp-block-group .wp-block-media-text{
	    margin-top:0;
		margin-block-end:var(--wp--style--block-gap);
    }
}




/* home-slider / .wp-block-lazyblock-home-slider */
.wp-block-lazyblock-home-slider{
	max-width:none;
	margin-right: calc(var(--wp--style--root--padding-right) * -1)!important;
    margin-left: calc(var(--wp--style--root--padding-left) * -1)!important;
	overflow:hidden;
}
.entry-content > .wp-block-lazyblock-home-slider:first-child{ /* wenn an erster Stelle, dann hochziehen, unter die Navi */
	/* margin-top: calc( var(--wp--style--block-gap) * -1 ); */
}
.home-slider__slide{
	width:100%;
	height:100vh;
	height:100dvh;
	position:relative;
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	padding-right: var(--wp--style--root--padding-right);
    padding-left: var(--wp--style--root--padding-left);
}
.home-slider__texte{
	position:relative;
	width:100%;
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
    margin-right: auto;
	padding-bottom: max( 6rem, calc( var(--wp--preset--spacing--40) * 3 ) );
}
.home-slider:not(.flickity-enabled) .home-slider__texte{ /* wenn flickity slider NICHT initiiert wurde */
	padding-bottom: max( 3rem, var(--wp--preset--spacing--40) );
}
.home-slider__texte h2,
.home-slider__texte p{
	color:var(--wp--preset--color--base);
}
.home-slider__texte h2{
	font-size: calc( var(--wp--preset--font-size--xx-large) * 1.25 );
}
.home-slider__texte h2:after{
	content:none;
}
.home-slider__texte p{
	font-size: var(--wp--preset--font-size--xx-large);
}

.home-slider__img,
.home-slider__video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
}
.flickity-prev-next-button {
  top: auto;
  bottom: var(--wp--preset--spacing--40);
  width: 3rem;
  height: 3rem;
  transform: none;
	z-index:1;
}
.home-slider .flickity-button {
  background:transparent;
}
.home-slider .flickity-button-icon{
	fill:var(--wp--preset--color--base);
}
.home-slider .flickity-page-dots {
  bottom: var(--wp--preset--spacing--40);
}
.home-slider .flickity-page-dots .dot {
  width: calc( var(--wp--preset--spacing--10) * 1.25 );
  height: calc( var(--wp--preset--spacing--10) * 1.25 );
  margin: 0 8px;
  background: var(--wp--preset--color--base);
  opacity: 1;
  transition:transform .5s ease-in-out;
}
.home-slider .flickity-page-dots .dot.is-selected {
    transform:translateY(-100%);
	pointer-events:none;
}

@media (min-width:900px){
	.flickity-prev-next-button {
	  width: 4rem;
	  height: 4rem;
	}
}
@media (min-width:1200px){
	.flickity-prev-next-button {
	  width: 5rem;
	  height: 5rem;
	}
}
@media (min-width:1600px){
	.flickity-prev-next-button {
	  width: 6rem;
	  height: 6rem;
	}
}





/* .konzert.wp-block-cover zur benutzung mit dem Cover-Block */
.wp-block-cover.konzert .wp-block-cover__inner-container > p:last-child {
	margin-top:auto;
	margin-bottom:0;
}




/* opas_chronik_shortcode (zB "Nächste Konzerte" auf Detailseite) */
/* so weit es ging, wurde hier mit helper classen gearbeitet um möglichst wiederverwendbare Classes einzusetzen  */
.opas_chronik_shortcode__item{
	overflow:hidden;
	margin-bottom: var(--wp--style--block-gap);
}
.opas_chronik_shortcode__item,
.opas_chronik_shortcode__item *{
	text-decoration:none !important;
	color:#fff;
}
.opas_chronik_shortcode__item:before{
	content:"";
	opacity:.3;
	background-color:var(--wp--preset--color--contrast);
	z-index:1;
}
.opas_chronik_shortcode__item .wp-block-heading{
	text-wrap: balance;
	hyphens: auto;
	lang: de;
}
.opas_chronik_shortcode img{
	display:block;
	position:relative;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .3s ease-out;
	will-change:transform;
}
a.opas_chronik_shortcode__item:hover img{
	transform:scale(1.1);
}
.opas_chronik_shortcode__texte{
	padding:var(--wp--preset--spacing--10);
	position:relative;
	z-index:1;
}



/* .footer-widget ACHTUNG: parent muss .footer-widgets als Class erhalten*/
.footer-widget h5{
	color:var(--wp--preset--color--base);
	margin-top:0;
}
.footer-widget a{
	text-decoration:none;
}
.footer-widget a:hover{
	text-decoration:underline;
}
@media (min-width:800px){
	.footer-widgets{
		display:grid;
		grid-template-columns: 1fr 1fr 1fr;
		column-gap: var(--wp--style--block-gap);
    	row-gap: var(--wp--style--block-gap);
	}
	.footer-widget{
		margin-top:0;
	}
}
@media (min-width:1400px){
	.footer-widgets{
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
	.footer-widget.footer-widget-5{ /* social widget */
		grid-column: 1 / span 3;
	}
}








/* Wiederverwendbarer Block "Abos-Tickets" */
.abos-tickets .wp-block-column{
	display:flex;
	flex-direction:column;
	justify-content: space-between;
}




/* .lightweight-accordion */ 
.lightweight-accordion{
	border-bottom:3px solid var(--wp--preset--color--contrast-3);
}
.lightweight-accordion .lightweight-accordion-title{
	background:transparent;
	outline:none;
	padding:0 0 1.125em 0;
	padding-right:0;
	list-style: none; /* :marker (dreieck) entfernen */
	display:flex;
}
.lightweight-accordion .lightweight-accordion-title > *{
	flex-basis:100%;
}
.lightweight-accordion .lightweight-accordion-title:after{
	content:"";
	width:.936em;
	aspect-ratio:1;
	flex-shrink: 0;
	flex-grow:0;
	background: var(--svg-up-angle) center center no-repeat;
	background-size:contain;
	margin-left:1em;
	margin-right:0;
	transform:rotate(180deg);
}
.lightweight-accordion details[open] .lightweight-accordion-title:after{
	transform:none;
	transition:transform .5s ease-in-out;
}
.lightweight-accordion .lightweight-accordion-title span{
	font-size:109.0909%;
}

.lightweight-accordion .lightweight-accordion-body {
    padding:0 0 1em 0;
}

.lightweight-accordion summary{
	cursor:pointer;
}
.lightweight-accordion details[open] summary ~ * {
  animation: lwopen .5s ease-out;
}
@keyframes lwopen {
  0% {
    opacity:0;
	transform:translatey(-1em);
  }
  100% {
    opacity:1;
	transform:none;
  }
}




/* .fc (calendar) */
.fc{
	width:100%;
	max-width:var(--fc-calendar-max-width);
	margin-left:auto;
	margin-right:auto;
	padding-bottom:.5rem;
}
.fc a{
	text-decoration:none;
	color:var(--wp--preset--color--contrast);
}
.fc-theme-standard .fc-scrollgrid {
  border: 0;
}
.fc-header-toolbar{
	display:flex;
}
.fc .fc-toolbar.fc-header-toolbar {
  margin-bottom: .75em;
}
.fc-header-toolbar > .fc-toolbar-chunk,
.fc-header-toolbar > .fc-toolbar-chunk > .fc-button-group{
	display:contents;
}
.fc-header-toolbar .fc-toolbar-title{
	padding-left:1em;
	text-align:center;
	font-size: var(--wp--preset--font-size--large) !important;
	font-weight:500;
	text-transform:uppercase;
}
.fc-header-toolbar .fc-toolbar-title:after{
	content:none;
}
.fc-header-toolbar .fc-today-button {
	display:none;
}
.fc-header-toolbar .fc-prev-button{
	order:-1;
}
.fc-header-toolbar .fc-prev-button,
.fc-header-toolbar .fc-next-button{
	width:1.75em;
	flex-grow:0!important;
	flex-shrink:0!important;
	background:transparent var(--svg-left) center center no-repeat;
	background-size:contain;
	background-color:transparent!important;
	outline:none!important;
	box-shadow:none!important;
	border:0;
}
.fc-header-toolbar .fc-prev-button:hover,
.fc-header-toolbar .fc-next-button:hover{
	background-color:transparent!important;
	opacity:.5;
}
.fc-header-toolbar .fc-next-button{
	transform:rotate(180deg);
}
.fc-header-toolbar .fc-button > .fc-icon{
	opacity:0;
}
.fc th {
  text-align: left;
  font-weight:400;
  font-size: var(--wp--preset--font-size--large) !important;
}
.fc-theme-standard td, 
.fc-theme-standard th {
  border: 0 solid transparent!important;
}
.fc-col-header{
	margin-bottom:.2em;
}
.fc .fc-daygrid-day.fc-day-today { /* "heute" hat einen Kreis */
  background-color: transparent;
  font-weight:900;
  position:relative;
}
.fc .fc-daygrid-day.fc-day-today:before{ /* heute hat einen Kreis */
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	width:2em;
	height:2em;
	transform:translate(-50%, calc( -50% - .1em ) );
	background-color: var(--wp--preset--color--contrast);
	opacity:.1;
	border-radius:9em;
}
.fc .fc-daygrid-day-top {
  justify-content: center;
}
.fc-daygrid-day-number{
	font-size: var(--wp--preset--font-size--large) !important;
}
.fc-theme-standard td, .fc-theme-standard th {
  border: 10px solid transparent;
}
.fc-daygrid-day-frame{
	inset:0;
	display:grid;
	grid: 1fr / 1fr;
	aspect-ratio:1;
}
.fc-daygrid-day-frame > *,
.fc-daygrid-day-frame:before,
.fc-daygrid-day-frame:after{
	display:grid;
	grid-area: 1 / 1 / 2 / 2;
	place-self: center;
}
.fc-h-event {
  background-color: var(--wp--preset--color--contrast);
	border:0;
	border-radius:0;
}
.fc-event-title{
	width: 3em;
	aspect-ratio: 1;
    display: inline-block;
    overflow: hidden;
	text-indent:-66em;
	cursor:pointer;
}
.fc-daygrid-day-frame:has(.fc-daygrid-event) .fc-daygrid-day-top{
	pointer-events:none; /* ...damit das darunteriegende Event anklickbar ist UND NUR wenn Event vorhanden, sonst kann man die Box (.fc-scrollgrid) nicht scrollen. */
}
.fc-daygrid-day-events{
	opacity:.3;
	transform:translateY(-.1em);
}
.fc-daygrid-event-harness ~ .fc-daygrid-event-harness{ /* nur ein event anzeigen */
	display:none;
}
.fc-daygrid-event-harness a.fc-daygrid-event{
	overflow:hidden;
} 
.fc-daygrid-event-harness:has( ~ .fc-daygrid-event-harness) > a.fc-daygrid-event:after{
    content:"";
	position:absolute;
	top:calc( 50% - 1px );
	left:0;
	bottom:0;
	width:100%;
	height:2px;
	background-color: #fff;
	transform: rotate(-45deg) scaleX(2);
}
.fc-daygrid-day-frame:has(.fc-daygrid-event) .fc-daygrid-day-number{ /* wenn an dem Tag ein Event da ist, Schrift-Schnitt Black */
	font-weight:900;
}

	/* -- Scrollen im Kalender entfernen (hat aber Abstand nach unten) */
	.fc .fc-view-harness.fc-view-harness-active{
		margin-bottom:5.5em; /* künstlichen Abstand nach unten erzeugen da Box Höhe mit JS inline bestimmt wird :-( */
	} 
	.fc .fc-view-harness-active > .fc-view{
		bottom: -5.5em; /* yes boss! I give bore than 100% */
	}
	.fc .fc-scroller.fc-scroller-liquid-absolute, /* scrollverhalter in der scrollbox deaktivieren */
	.fc .fc-header-toolbar.fc-toolbar /* ebentuelle scrollbar auch in der Monatsanzeige deactivieren */
	{
		overflow:visible; 
	}
	/* -- ENDE */

#eventModal{
	z-index:999;
	display:none; 
	position:absolute; 
	top:0;
	left:50%;
	bottom:0;
	width:100%;
	max-width:var(--fc-calendar-max-width);
	transform:translatex(-50%);
	margin:0;
}
.eventModal__closeBG{
	position:absolute;
	inset:0;
	background-color:#000;
	opacity:.2;
	cursor:pointer;
}
.eventModal__inside{
	position:absolute; 
	top:50%; 
	left:50%;
	width:16em;
	transform:translate(-50%, -50%); 
	background-color:white; 
	padding:10px 20px; 
	box-shadow:0 2px 16px rgba(0,0,0,0.1);
}
.eventModal__close{
	cursor:pointer;
	float:right;
}
.eventModal__title,
.eventModal__description,
.eventModal__venue{
	margin-bottom:.05em;	
}
.eventModal__description,
.eventModal__venue{
	margin-top:.05em;	
}
.eventModal__title{
	margin-top:1.3333em;
	font-size: calc( var(--wp--preset--font-size--medium) * 1.1) !important;
	font-weight:500;
	padding-right:0;
}
.eventModal__inhalt > div:last-child{
	margin-bottom:1.125em;
}
.eventModal__title:after{
	content:none;
}

@media (max-width:1199.95px){
	.wp-block-columns.stack-below-1200 .wp-block-group:has(> #calendar) + .wp-block-buttons > .wp-block-button.wp-block-button__width-100{
		max-width:475px;
		margin-left:auto;
		margin-right:auto;
	}
}



/* Filterung der Events (zB auf /alle-veranstaltungen/) */
#event-filter-form{
	display:flex;
	flex-direction:column;
}
#event-filter-form > .custom-select,
#event-filter-form > .eventDate{
	vertical-align:top;
	width:min-content;
}
#event-filter-form label{
	font-size: var(--wp--preset--font-size--large);
}

#selected-filters {
	border-top:1px solid var(--wp--preset--color--contrast);
	margin-top:1.25rem;
	padding-top:1.25rem;
}
#selected-filters .inside{
	display:contents;
}
#selected-filters  .selected-filter {
	display:inline-block;
	margin-bottom:.3333em;
	font-size:15px;
	padding:.55em 1em .25em;
	border:1px solid var(--wp--preset--color--contrast);
	white-space:nowrap;
}
#selected-filters  .selected-filter .remove-filter{
	display:inline-block;
	text-indent:-9em;
	width:1em;
	height:1em;
	vertical-align: -.15em;
	overflow:hidden;
	background:transparent var(--svg-x-klein) no-repeat center;
	background-size:80%;
}
#event-filter-form .eventDate{
	display:inline-block;
	line-height:2.25;
	white-space:nowrap;
}
#event-filter-form #eventDate{
	margin-left:.75em;
	margin-right:1.5em;
}
#event-filter-form .munichOnly{
	margin-top:.25em
}
#event-filter-form button[type='submit']{
	display:none;
}

@media (min-width:900px) {
	#event-filter-form{
		flex-direction:row;
	}
	#event-filter-form .munichOnly{
		margin-left:auto;
	}
}



/* #events_overview übersicht der Events (mit oder ohne Filterung) */
#events_overview .wp-block-button__link{
	border-radius:0;
}
#events_overview > .wp-block-columns{
	margin-bottom:10rem;
}
#events_overview a{
	text-decoration:none;
}
#events_overview a:not(.wp-element-button){
	color:var(--wp--preset--color--contrast);
}
#events_overview .null-result{
	color:var(--wp--preset--color--base);
	background-color: var(--wp--preset--color--accent);
	padding:2rem;
	text-align:center;
}






/* .back-to-top */
.back-to-top{
	font-size:127.2727%;
}
.back-to-top a{
	color:var(--wp--preset--color--contrast);
}
.back-to-top a:after{
	content:"";
	display:inline-block;
	background:var(--svg-up) center center no-repeat;
	background-size:contain;
	width:.82em;
	aspect-ratio:1;
	margin-left:.5em;
	transform:translatey(.1em);
}
.back-to-top a:hover{
	opacity:.6;
}




/* Contact Form 7 */
.wpcf7-form input {
	font-size:var(--wp--preset--font-size--medium);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
	font-size:var(--wp--preset--font-size--medium);
	background-color: var(--wp--preset--color--base-2);
	border: 3px solid var(--wp--preset--color--contrast-3);
	padding:.75em 1em;
	width:100%;
}
.wpcf7-form input[type="submit"]{
	font-family: var(--wp--preset--font-family--heading);
	color:var(--wp--preset--color--base);
	background-color:var(--wp--preset--color--contrast);
	border:0;
	font-weight: 700;
	min-width:13.5em;
    line-height: 2.28;
    padding-top: 0.6rem;
    padding-right: 2rem;
    padding-bottom: 0.3rem;
    padding-left: 2rem;
    text-transform: uppercase;
}
.wpcf7-form input[type="submit"]:not([disabled]):hover{
	cursor:pointer;
	opacity:.7;
}
.wpcf7-form input[type="submit"][disabled]{
	opacity:.3;
}
.wpcf7-form-control > .wpcf7-list-item{
	margin-left:0;
	margin-right:1.5em;
}
.wpcf7-form-control.block-list > .wpcf7-list-item{
	display:block;
}
.wpcf7-list-item > label{
	position:relative;
}
.wpcf7-list-item > label > input[type="radio"],
.wpcf7-list-item > label > input[type="checkbox"]{
	display:none;
}
.wpcf7-list-item > label > .wpcf7-list-item-label:before{
	display:inline-block;
	background: var(--wp--preset--color--base-2) var(--svg-check) no-repeat center 700%;
	background-size:75%;
	width:2.727em;
	height:2.727em;
	flex-grow:0;
	flex-shrink:0;
	margin-right:1em;
	border: 3px solid var(--wp--preset--color--contrast-3);
	transition:background .3s ease-out;
}
.wpcf7-list-item > label > input[type="radio"] ~ .wpcf7-list-item-label:before{
	border-radius:99em;
}
.wpcf7-list-item > label > input[type="radio"]:checked ~ .wpcf7-list-item-label:before,
.wpcf7-list-item > label > input[type="checkbox"]:checked ~ .wpcf7-list-item-label:before {
	background-position: center 50%;
}
.wpcf7-list-item > label > input[type="radio"] ~ .wpcf7-list-item-label,
.wpcf7-list-item > label > input[type="checkbox"] ~ .wpcf7-list-item-label{
	display:inline-flex;
	align-items: center;
}







/* newsletter2go anmeldeformulare, das Snippet muss in einer Gruppe sein mit der class .newsletter-anmeldung */
.newsletter-anmeldung input[type="text"], 
.newsletter-anmeldung input[type="tel"], 
.newsletter-anmeldung input[type="email"], 
.newsletter-anmeldung textarea {
  font-size: var(--wp--preset--font-size--medium);
  background-color: var(--wp--preset--color--base-2);
  border: 3px solid var(--wp--preset--color--contrast-3)!important;
  padding: .75em 1em!important;
  width: 100%;
}
.newsletter-anmeldung button[type="submit"]{
	font-family: var(--wp--preset--font-family--heading);
	color:var(--wp--preset--color--base);
	background-color:var(--wp--preset--color--contrast)!important;
	border:0!important;
	border-radius:0!important;
	font-weight: 700;
	min-width:13.5em!important;
    line-height: 2.28;
    padding: 0.6rem 2rem 0.3rem 2rem!important;
    text-transform: uppercase;
	font-size: var(--wp--preset--font-size--medium);
}
.newsletter-anmeldung form > div > :first-child{ /* erstes element sollte "Anrede" sein. Dieses wird schmaler dargestellt */
	width:50%;
}

.newsletter-anmeldung .checkbox-inline input[type="checkbox"]{
	display:none;
}
.newsletter-anmeldung .checkbox-inline label{
	display:block;
	padding-left:3.5em;
	padding-top:.9em;
	position:relative;
}
.newsletter-anmeldung .checkbox-inline label:before {
  content:"";
  display: block;
  position:absolute;
  left:0;
  top:0;
  background: var(--wp--preset--color--base-2) var(--svg-check) no-repeat center 700%;
  background-size: 75%;
  width: 2.727em;
  height: 2.727em;
  border: 3px solid var(--wp--preset--color--contrast-3);
  transition:background .3s ease-out;
}
.newsletter-anmeldung .checkbox-inline input[type="checkbox"]:checked ~ label:before {
  background-position:
  center 50%;
}



@media (min-width:1000px){
	.newsletter-anmeldung form > div{
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
  		column-gap: var(--wp--style--block-gap);
	}
	.newsletter-anmeldung form > div > :not(:has(input[type="text"], input[type="tel"], input[type="email"], textarea) ),
	.newsletter-anmeldung form > div > :first-child{
		grid-column: span 3;
	}
	.newsletter-anmeldung form > div > :first-child{ /* erstes element sollte "Anrede" sein. Dieses wird schmaler dargestellt */
		width:20%;
	}
}





/* HELPER CLASSES */
/* ============== */



/* .absatz-zweispalter // Zweispaltiger Text in Absätzen */

@media (min-width: 781.01px){

	.absatz-zweispalter{
		column-count: 2;
		column-gap: var(--wp--style--block-gap);
	}
	
}

.relative{
	position:relative;
}

.flex{display:flex;}
.flex--column{flex-direction:column;}

.grid{ 
	display:grid;
	column-gap:var(--wp--style--block-gap);
	max-width:none;
}

.grid--stack{ /* alle inhalte stapeln (alles in die erste Zelle) */
	grid-template-columns:1fr;
	grid-template-rows:1fr;
}
.grid--stack > *,
.grid--stack:before,
.grid--stack:after{ /* alle inhalte stapeln (alles in die erste Zelle) */
	grid-column:1/2;
	grid-row:1/2;
}

@media (min-width:1000px){
	.grid--x3{
		grid-template-columns:1fr 1fr 1fr;
	}
}

.text-transform-none{
	text-transform:none;
}

.mt0{margin-top:0}
.mb0{margin-bottom:0}

.mtA{margin-top:auto}
.mbA{margin-bottom:auto}

.height100pro{
	height:100%;
}


@media (max-width:999.95px){
	.stack-below-1000.wp-block-columns{
		flex-wrap:wrap!important;
	}
	.stack-below-1000.stack-below-1000--reverse.wp-block-columns{
		flex-wrap:wrap-reverse!important;
	}
	.stack-below-1000.wp-block-columns > *{
		flex-basis:100%!important;
	}
}

@media (max-width:1199.95px){
	.stack-below-1200.wp-block-columns{
		flex-wrap:wrap!important;
	}
	.stack-below-1200.stack-below-1200--reverse.wp-block-columns{
		flex-wrap:wrap-reverse!important;
	}
	.stack-below-1200.wp-block-columns > *{
		flex-basis:100%!important;
	}
}

