/* =============================
   RESET / BASE
============================= */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html, body {
	margin: 0;
	padding: 0;
}

img, video {
	max-width: 100%;
	height: auto;
	display: block;
}

/* =============================
   PANELS (sections as pages)
============================= */

.panel {
	position: relative;
	min-height: 100vh;
	width: 100%;
	overflow: hidden;

	/*
		display: flex;
		align-items: center;
		justify-content: center;
	*/

	padding: 80px 40px;
}

.panel.no-padding {
	padding: 0;
}

.panel.footer {
	min-height: auto;
	background-color: #000;

}


/* Optional inner wrapper */
.panel-inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}


/* =============================
   ANIMATION BASE
============================= */

.anim {
	will-change: transform, opacity;
	backface-visibility: hidden;
	transform: translateZ(0);

}

/* Prevent layout shifts for inline elements */
.anim span {
	display: inline-block;
}

/* =============================
   STAGGER / GRID
============================= */

.anim[data-anim*="stagger"],
.anim[data-anim*="grid"] {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

.anim .card {
	flex: 1 1 220px;
	padding: 20px;
	border-radius: 10px;
	background: #f5f5f5;
}

/* =============================
   PARALLAX
============================= */

.anim[data-anim*="parallax"] {
	overflow: hidden;
}

.anim[data-anim*="parallax"] img,
.anim[data-anim*="parallax"] video {
	width: 100%;
	height: 120%;
	object-fit: cover;
}

/* =============================
   REVEAL (clip-path)
============================= */

.anim[data-anim*="reveal"] {
	overflow: hidden;
}

/* =============================
   TEXT ANIMATIONS
============================= */

.anim[data-anim*="text-fade"] span {
	display: inline-block;
	will-change: transform, opacity;
}

/* =============================
   HORIZONTAL SCROLL
============================= */

.anim[data-anim*="horizontal"] {
	overflow: hidden;
	width: 100%;
}

.anim[data-anim*="horizontal"] .inner {
	display: flex;
	width: max-content;
}

.anim[data-anim*="horizontal"] .inner > * {
	min-width: 100vw;
	flex-shrink: 0;
}

/* =============================
   PINNED SECTIONS
============================= */

.anim[data-anim*="pin-fade"] {
	position: relative;
}

/* =============================
   BLUR SUPPORT
============================= */

.anim[data-anim*="blur-in"] {
	will-change: filter, opacity;
}

/* =============================
   MEDIA / IMAGE SAFETY
============================= */

.anim img {
	display: block;
	max-width: 100%;
}

.anim video {
	display: block;
	width: 100%;
}

/* =============================
   DEBUG MODE (optional)
============================= */

.anim.debug {
	outline: 2px dashed red;
}

/* =============================
   TYPOGRAPHY (optional defaults)
============================= */

h1, h2, h3, h4 {
	margin: 0 0 20px;
}

p {
	margin: 0 0 15px;
}

/* =============================
   MOBILE OPTIMIZATION
============================= */

@media (max-width: 768px) {
	.panel {
		min-height: auto;
		padding: 60px 20px;
		flex-direction: column;
	}

	.anim {
		will-change: auto;
	}

	.anim[data-anim*="horizontal"] .inner > * {
		min-width: 80vw;
	}
}

.frame-type-mmscrollerlayout_parallax-text {
	padding: 0 !important;
	max-width: none !important;
	margin: 0 !important;
}

.parallax-text-wrap {
	position: relative;
	width: 100%;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.parallax-text-wrap .bg-image-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	box-shadow: inset 0 0 150px rgba(0, 0, 0, 0.7); /* Verstärkter innerer Schatten */
}



.parallax-text-wrap .bg-image-container .bg-image {
	width: 100%;
	height: 260%; /* Erhöht auf 260%, um bei +/- 30% yPercent Versatz (entspricht +/- 78% der Containerhöhe) sicher zu decken */
	object-fit: cover;
	position: absolute;
	top: -80%; /* Startet bei -80%, so dass bei +78% Versatz noch 2% Überlappung oben bleibt */
	left: 0;
	will-change: transform;
}

.parallax-text-content {
	position: relative;
	z-index: 1;
	background: rgba(255, 255, 255, 0.9);
	padding: 4rem;
	max-width: 800px;
	text-align: center;
	color: #47243C;
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.50); /* Angepasster leichter Schatten */
}

.parallax-text-content >  * {
	color: #47243C!important;
}

/* =============================
   ACCESSIBILITY (VERY IMPORTANT)
   ============================= */

@media (prefers-reduced-motion: reduce) {
	.anim {
		animation: none !important;
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
		filter: none !important;
	}
}

.parallax {
	position: relative;
	height: 100vh;
	overflow: hidden;
}

.bgparallax {
	position: absolute;
	width: 100%;
	height: 140%;
	top: -25%;
	background: url('/fileadmin/Bilder/besucherzentrum_visualsierung.jpg');
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	top: 0;
	left: 0;
}

.parallaxtext {
	padding: 2rem;
	background-color: #fff;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;

}

h2 {
	margin-bottom: 2rem;
}

section {
	background-color: #5F1D63;
	color: #fff;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 0 !important;
	background-position: center center;
}

section, section a {
	color: #fff;
}

section h1, section h2, section h3 {
	font-family: 'Alegreya';
	font-weight: normal;
	color: #fff !important;
}

@media (min-width: 992px) {
	.bigstart h1 {
		font-size: 12rem;
	}

	.bigstart h2 {
		font-size: 5.5rem;
	}
}

.hero {
	position: relative;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at center, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.6)),
	linear-gradient(to bottom, rgba(0, 0, 0, 0.6), transparent 40%, transparent 60%, rgba(0, 0, 0, 0.6));
	z-index: 1;
}


.video-bg-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	overflow: hidden;
}

.video-bg-container video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.1;
}

.timeelement {
	font-family: 'Alegreya';
	background-color: #941781;
	text-align: center;
	padding: 5rem 0 5rem 0;

}

.timeelement .te-date {
	font-size: 2.4rem;
}

.timeelement .te-text {
	margin-top: 2rem;
	font-size: 1.35rem;
}

.timeelement hr.te-trenner {
	width: 100px;
	margin: 0 auto; /* centers it */

}

@media (min-width: 992px) {
	.timeelement .te-date {
		font-size: 4rem;
	}

	.timeelement .te-text {
		margin-top: 2rem;
		font-size: 2rem;
	}
}


.aktuellbox {
	font-style: italic;
	background-color: #ECEBE5;
	color: #47243C;
	padding: 2rem;
}

.aktuellbox h3 {
	font-family: 'Open Sans' !important;
	color: #5F1D63 !important;
}


.bgzoomimagewrap {
	overflow: hidden; /* 👈 THIS is what creates the zoom illusion */
	position: relative;
	width: 80%;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
}

.bgzoomimage {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}


.accordion-wrap {
	background-color: #47243c;
	padding: 2rem 0 2rem 0;
}

.accordion-footer {
	text-align: center !important;
}

.accordion-footer button.accordion-button {
	justify-content: center;

	background-color: transparent;
	display: block;

	background-image: url("data:image/svg+xml,%3Csvg id='uuid-9f436817-d881-45be-9682-4d884fad13c2' data-name='Ebene 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 27'%3E%3Cpath id='uuid-1b32a9bc-2864-4dcf-bf52-31516fc91125' data-name='chevron-right' d='M0,3.38C-.002,1.516,1.531.003,3.425.001c.91,0,1.784.354,2.427.988l18.145,17.864L42.143.989c1.34-1.319,3.513-1.319,4.852,0,1.34,1.319,1.34,3.457,0,4.776l-20.574,20.246c-1.339,1.318-3.51,1.318-4.848,0L1,5.766C.358,5.133-.002,4.274,0,3.38Z' style='fill: %234df433;'/%3E%3C/svg%3E");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	font-size: 0.3rem;
	margin-top: 1rem;

}
.accordion-footer .accordion-subheader button.accordion-button{
	background-image:none
}
.accordion-footer .accordion-button::after {
	display: none;
}

.accordion-footer button.accordion-button:not(.collapsed) {
	background-color: transparent;
	transform: rotate(180deg);
}

.accordion-collapse, .accordion-button, .accordion-header, .accordion-item, .accordion-subheader {
	border: 0 !important;
	box-shadow: none !important;
}


.accordion-wrap .accordion-item, .accordion-wrap .accordion-header .accordion-button, .accordion-subheader {
	background-color: transparent !important;
	color: #fff !important;
	border: 0 !important;
}

.accordion-wrap .accordion-header .accordion-button {
	text-align: center;
	font-size: 2rem;
	display: inline-block;
}
.accordion-subheader{
	background-color: transparent;
	color: #fff;
	text-align: center;
	justify-content: center;
	font-size: 1rem;
	font-style: italic;
	display: block;
}
.accordion-footer .accordion-subheader button.accordion-button{
	background-image:none;
	font-size: 22px;
	display: flex;
}
.accordion-subheader button.accordion-button{
	background-color: transparent;
	color: #fff;
	font-style: italic;
	justify-content: center;
	display: inline-block;
	margin-top: 0;
}
.accordion-subheader button.accordion-button.collapsed .visibleifexpanded{
	display: none;
}

.accordion-subheader button.accordion-button.collapsed .visibleifcollapsed{
	display: inline-block;
}
.accordion-subheader button.accordion-button:not(.collapsed) {
	transform: none;
}
.accordion-subheader button.accordion-button:not(.collapsed) .visibleifexpanded{
	display: inline-block;
}

.accordion-subheader button.accordion-button:not(.collapsed) .visibleifcollapsed{
	display: none;
}

accordion-subheader button.accordion-button:after{
	display:none;
}
.carousel-item {
	background-color: #ECEBE5;
	color: #5F1D63;
	padding: 2rem;
}

.carousel-item h2, .carousel-item h3 {
	color: #5F1D63 !important;
}


.carousel-control-prev-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%234DF433'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e")*/;
}

.carousel-control-next-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%234DF433'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e")*/;
}


.carousel-top-controls {
	display: flex;
	justify-content: flex-start;
	gap: 10px;
	margin-bottom: 15px;
}

.carousel-top-controls .carousel-control-prev,
.carousel-top-controls .carousel-control-next {
	position: relative;
	width: auto;
}

.carousel-top-controls .carousel-control-prev-icon,
.carousel-top-controls .carousel-control-next-icon {
	background-color: transparent;

	padding: 18px;
}

.frame-type-scrolly-2cols-33-66,
.frame-type-scrolly-2cols-50-50 {
	padding: 5rem 0 5rem 0;
	margin-bottom: 0 !important;
}

.frame-type-scrolly-slider .frame {
	margin: 0 !important;
}

.frame-layout-120 {
	background-color: #47243C;
	padding: 5rem 0 5rem 0;
}


.bgimage {
	position: relative;
	margin-bottom: 5rem;

}

.bgimage .frame {
	margin-bottom: 0 !important;

}


.bgimage .bg-image-container {
	position: relative;
	z-index: 0;
	height: auto;
}

.bgimage > .frame,
.bgimage > .csc-default,
.bgimage > div:not(.bg-image-container) {
	position: absolute;
	top: 20%;
	left: 50%;
	transform: translate(-50%, -20%);
	z-index: 10;
	width: 100%;
}



.frame-type-scrolly-bgimage-wrap,
.frame-type-scrolly-bgimage-wrap-wasservideo
{
	margin-bottom: 0 !important;
}

.fullbg {
	position: relative;
	background-size: cover;
	background-repeat: no-repeat;
	padding: 2rem 0 2rem 0;
	z-index: 1;
	min-height: 100vh;
}

.fullbg > *:not(.video-bg-container) {
	position: relative;
	z-index: 2;
}

.fullbg::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(71, 36, 60, 0.8); /* Semitransparente Fläche mit #47243C */
	z-index: -1;
}


.bg-image-container {
	position: relative;
}

.bg-image-container img {
	display: block;
	width: 100%;
	transform-origin: center center;
	will-change: transform;
}

.caption, .image-caption {
	position: relative;
	margin-top: 0.5rem;
	z-index: 2;
	font-size: 0.95rem;
}


.frame-indent {
	margin-left: 15px;
	margin-right: 15px;
}

@media (min-width: 992px) {

	[data-anim="from-right"] {
		padding-left: 50vW;
	}

	[data-anim="from-left"] {
		padding-right: 33vW;

	}

	.frame-indent {
		margin-left: 25%;
		margin-right: 25%;
	}


	.frame-layout-125 i {
		font-size: 2rem;
		line-height: 2.5rem;
	}

	.frame-indent {
		margin-left: 25%;
		margin-right: 25%;
	}
}


[data-anim="from-left"] .frame-layout-120 {
	padding-left: 2rem;
	padding-right: 2rem;
}


.bigstart [data-anim="from-left"],
.bigstart [data-anim="from-right"] {
	padding: 0;
}

.frame-space-before-n-200 {
	margin-top: -200px;
}

body {
	font-size: 22px;
}

p {
	line-height: 1.8;
}


.schatten {
	transition: box-shadow 0.3s ease;
}

.schatten:hover {
	box-shadow: 0 0 10px rgba(255, 255, 255, .10),
	0 0 24px rgba(255, 255, 255, .14);
}

.frame-type-scrolly-accordion {
	margin-bottom: 0 !important;
}

#logo {
	max-width: 416px;
	width: 100%;
	height: auto;
}

.boximage {
	position: relative;
	display: inline-block;
}

.boxoverlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 30%;
	background: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 50%, rgba(0, 0, 0, 0) 100%);
	display: flex;
	justify-content: right;
	align-items: end;
	pointer-events: none;
	opacity: 0.8;
	transition: opacity 0.3s ease;
	padding: 0 1.5rem 1rem 1rem;
}

.boximage:hover .boxoverlay {
	opacity: 1;
}

.boxoverlay img {
	width: 30px;
	height: auto;
}


.hero > * {
	position: relative;
	z-index: 3;
}

/* Fix for Bootstrap Modals inside .hero elements */
.hero .modal {
	z-index: 1070; /* Higher than standard backdrop (1050) and potentially nested z-index:3 */
}

.hero .modal-backdrop {
	display: none !important;
}


.modal {
	height: 100vh;
	overflow: scroll;

}

@media (max-width: 480px) {
	.modal-header {
		padding-top: 50px;

	}

	.modal-content {
		margin-bottom: 50px;
	}
}

.modal-content {
	background-color: rgba(71, 36, 60, 1); /* Semitransparente Fläche mit #47243C */
	color: white;
}

.modal-header {
	font-family: 'Alegreya';
	font-weight: normal;

}

.btn-close {
	background-color: transparent;
	opacity: 1;
	background-image: url("data:image/svg+xml,%3Csvg   xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cpath d='M21.636,18l13.611-13.611c1.004-1.004,1.004-2.632,0-3.636-1.004-1.004-2.632-1.004-3.636,0l-13.611,13.611L4.389.753C3.385-.251,1.757-.251.753.753-.251,1.757-.251,3.385.753,4.389l13.611,13.611L.753,31.611c-1.004,1.004-1.004,2.632,0,3.636.482.482,1.136.753,1.818.753.682,0,1.336-.271,1.818-.753l13.611-13.611,13.611,13.611c.482.482,1.136.753,1.818.753.682,0,1.336-.271,1.818-.753,1.004-1.004,1.005-2.632,0-3.637l-13.611-13.611Z' style='fill: %23fff;'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;

}


/* Zoom-Animation */
@keyframes modalZoomIn {
	from {
		transform: scale(0.2);
		opacity: 0;
	}
	to {
		transform: scale(1);
		opacity: 1;
	}
}

/* Bootstrap Modal */
.modal.fade .modal-dialog {
	transform: scale(0.7);
	transition: none;
}

.modal.show .modal-dialog {
	animation: modalZoomIn 1.5s ease-out forwards;
}

html[dir="rtl"] .btn-close {
	margin-left: 0;
	margin-right: auto;
}