/*
Theme Name: Kulturgut44
Theme URI: https://kulturgut44.de/
Description: Child Theme für KulturGut44 auf Basis von Hello Elementor.
Author: erpa.web GmbH / Realgestalt
Template: hello-elementor
Version: 1.0.1
Text Domain: kulturgut44
*/

/* =========================================================
   Local fonts
   ========================================================= */

@font-face {
	font-family: 'Gabarito';
	font-style: normal;
	font-display: swap;
	font-weight: 400 900;
	src: url('./assets/fonts/gabarito-variable.woff2') format('woff2-variations');
}

@font-face {
	font-family: 'DM Serif Display';
	font-style: normal;
	font-display: swap;
	font-weight: 400;
	src: url('./assets/fonts/dm-serif-display-regular.woff2') format('woff2');
}


/* =========================================================
   Design tokens
   ========================================================= */

:root {

	/* Colors */
	--blue-dark: #0000c8;
	--blue: #3264ff;
	--blue-light: #82b4ff;

	--red-dark: #be003c;
	--red: #f00046;
	--red-light: #ff5064;

	--orange: #ff8700;
	--yellow: #ffb400;
	--yellow-light: #ffe164;

	--black: #000000;
	--white: #ffffff;

	/* Semantic colors */
	--color-primary: var(--blue);
	--color-primary-dark: var(--blue-dark);
	--color-primary-light: var(--blue-light);
	--color-secondary: var(--yellow-light);
	--color-text: var(--black);
	--color-background: var(--white);
	--button-hover:#414B5A;
	--button-hover-light:#C2C7D1;
	/* Fonts */
	--font-sans: 'Gabarito', Arial, sans-serif;
	--font-serif: 'DM Serif Display', Georgia, serif;

	/* Text styles from Figma */
	--h1-size: 40px;
	--h1-line-height: 1.2;

	--h2-size: 40px;
	--h2-line-height: 1.2;

	--h3-size: 32px;
	--h3-sans-line-height: 1.2;
	--h3-serif-line-height: 1.2;

	--h4-size: 24px;
	--h4-sans-line-height: 1.2;

	--body-size: 19px;
	--body-line-height: 1.4;
	--font-small: 13px;
	--font-medium: 15px;

	/* Basic UI */
	--button-size: 15px;
	--button-radius: 999px;
	--transition: 0.25s ease;

	/* Layout helpers */
	--content-width: 1200px;
	--content-mwidth: 96%;
	--content-gutter: 32px;
	--container-padding:100px;
	--container-padding-small:40px;
	--container-padding-big:120px;
	--admin-bar-height: 0px;

	@media (max-width: 1200px) {
		--h1-size: 46px;
		--h2-size: 32px;
		--h3-size: 24px;
		--h4-size: 20px;
		--body-size: 16px;
		--body-line-height: 1.4;
		--font-small: 12px;
		--font-medium: 14px;
		--container-padding:80px;
		--container-padding-small:35px;
		--container-padding-big:100px;
	}
	@media (max-width: 900px) {
		--h1-size: 44px;
		--h2-size: 34px;
		--h3-size: 28px;
		--h4-size: 24px;
		--body-size: 17px;
		--body-line-height: 1.4;
		--font-small: 13px;
		--font-medium: 15px;
		--container-padding:50px;
		--container-padding-small:25px;
		--container-padding-big:70px;
	}
}
body.admin-bar {
	--admin-bar-height: 32px;
}
@media (max-width: 782px) {
	body.admin-bar {
		--admin-bar-height: 46px;
	}
}


/* =========================================================
   Base
   ========================================================= */

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

html {
	scroll-behavior: smooth;overflow-x:hidden;
}

body {
	margin: 0;overflow-x:hidden;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-sans);
	font-size: var(--body-size);
	font-weight: 400;
	line-height: var(--body-line-height);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
svg {
	max-width: 100%;
}

img {
	display: block;
	height: auto;
}
.text-center {text-align: center;
	&.narrow p, & .narrow p, &.narrow {max-width:600px;margin-inline: auto;}
}
.text-uppercase {
	text-transform: uppercase;
}

.narrow.narrow-center {margin-inline:auto !important;max-width:900px !important;}

p {
	margin-top: 0;
}

strong,
b {
	font-weight: 700;
}

a {
	color: inherit;
}
.hidden {display:none !important;}
/* =========================================================
   Header
   ========================================================= */

.elementor-page header.elementor-location-header {width:100%;position: fixed;z-index: 9;top:var(--admin-bar-height);transition:background-color var(--transition);
	> div {width: min(var(--content-width), var(--content-mwidth));margin-inline: auto;padding-block: 30px;transition:padding-block var(--transition);}
	button.e-button-base {margin:20px 0 0;}
	& .logo img, & .logo img[src$=".svg"], & img.logo {width:105px;transition:width var(--transition), opacity var(--transition);}
	& .mainnav {
		ul.e-n-menu-heading {column-gap:10px;background:rgba(255,255,255,.8);border-radius:255px;padding:0 10px;
			> li > div.e-n-menu-title {padding:5px 15px;}
		}
	}
}

/* =========================================================
   Footer
   ========================================================= */

.elementor-page footer.elementor-location-footer {color:var(--white);background:var(--red-dark);
	> div {width: min(var(--content-width), var(--content-mwidth));margin-inline: auto;padding-block:40px;}
	& .logo img, & .logo img[src$=".svg"] {width:85px;margin-bottom:20px;transition:width var(--transition), opacity var(--transition);}
}

/* =========================================================
   Layout
   ========================================================= */
body.scrolled {
	header.elementor-location-header {
		> div {padding-block:15px;}
		& .logo img, & .logo img[src$=".svg"], & img.logo {width:75px;opacity:0;pointer-events: none;z-index:-999;}
	}
	&.hheader-dark-red header.elementor-location-header{background:var(--red-dark);}
	&.hheader-dark-yellow header.elementor-location-header{background:var(--yellow);}
}
.button-wrapper {align-items: center;}
.bg-blue {background:var(--blue);}
.bg-blue-light {background:var(--blue-light);}
.bg-yellow {background:var(--yellow);}
.bg-yellow-light {background:var(--yellow-light);}
.noPadding {padding:8px 0 !important;}
.noBlockPadding {padding-block:0 !important;}
.rounded {border-radius:255px !important;aspect-ratio: 1 / 1;
	img {border-radius:255px;}
}
.text-small {font-size: var(--font-small);}
.text-right {text-align:right;}
.text-bu {padding-top:8px;}
.page-content > div.elementor {
	.elementor-widget-button.back {margin-block-start: -60px;margin-block-end:20px;
		> a {color:var(--black);background:transparent;font-size:19px;}
		svg {fill:var(--black);}
	}
	.widget-image-caption {text-align:right;padding-bottom:10px;}
	.grid.overlap {gap:0;}
	.textbox {background:var(--blue-light);	clip-path: polygon(0 0,100% 0,100% 8%,95% 15%,95% 85%,100% 92%,100% 100%,0 100%,0 92%,5% 85%,5% 15%,0 8%);padding:50px 90px;box-sizing: border-box;width:624px !important;
		&.form2 {background: var(--yellow-light);
			clip-path: polygon(
				13.1% 0,
				86.9% 0,
				87.3% .6%,
				87.8% 1.4%,
				88.4% 2.2%,
				88.9% 2.9%,
				90% 4%,
				91.1% 5.1%,
				92.2% 5.9%,
				93.3% 6.6%,
				94.4% 7.2%,
				95.5% 7.8%,
				96.6% 8.1%,
				97.7% 8.4%,
				98.8% 8.5%,
				100% 8.5%,
				100% 100%,
				0 100%,
				0 8.5%,
				.7% 8.5%,
				1.8% 8.4%,
				2.9% 8.2%,
				4% 7.9%,
				5.1% 7.5%,
				6.2% 6.9%,
				7.3% 6.3%,
				8.4% 5.5%,
				9.5% 4.6%,
				10.5% 3.5%,
				11.6% 2.2%,
				12.2% 1.3%,
				12.7% .4%
			);}
		& + img {width:120%;margin-left:-20%;max-width:none;}}
	> .e-atomic-element {padding-block:var(--container-padding);
		&.padding-bottom-0 {padding-bottom:0;}
		&.content-width {width: min(var(--content-width), var(--content-mwidth));margin-inline: auto;}
		> div, > h2, > p, > img.full {
			width: min(var(--content-width), var(--content-mwidth));margin-inline: auto;
		}
	}
	& .hero {position:relative;
		&::before {pointer-events:none;}
		div {padding:0 !important;}
		pre, h1, h2 {color:var(--white);font-family:var(--font-sans);font-weight:600;font-size:55px;line-height:60px;max-width:400px;white-space:normal;margin:0 0 10px;
			em {font-family:var(--font-serif);font-weight:400;}
		}
		p {color:var(--white);max-width:400px;
			&.ki-visu {max-width:96%;transform:translateX(-50%);left:50%;padding:0 10px;}
		}
		&.hero-home {padding:0;background-color:var(--blue);
			&::before {content:"";height:90%;width:50vw;background:url("/wp-content/uploads/2026/09/saeule-dark-blue.svg") no-repeat 0 0 / auto 100%;position:absolute;left:0;top:0;z-index:6;}
			& .hero-image {display:flex;justify-content: flex-end;max-width:40vw;}
			& .hero-inner {padding:0;width:100%;}
			& .hero-content {margin-top:6vw;padding-inline: 10px !important;padding-left:calc((100vw - 1200px) / 2) !important;z-index:7;}
			& .elementor-image-carousel-wrapper {position:relative;padding-top:30px !important;
				&::after {content:"";height:100%;width:100%;background:url("/wp-content/uploads/2026/09/KG44-Header-Mask.svg") no-repeat 0 0 / auto 100%;position:absolute;left:-38vw;top:0;z-index:5;pointer-events:none;}
				& .elementor-swiper-button {display:none;}
			}
		}
		&.hero-form2 {background-color:var(--blue-dark);
			&::before {left:auto;top:auto;content:"";height:80%;width:50vw;background:url("/wp-content/uploads/2026/09/form2.svg") no-repeat bottom right / auto 100%;position:absolute;right:5px;bottom:0;}
			& .hero-inner {padding:0;}
			& .hero-content {margin-top:6vw;padding-inline: 10px !important;}
		}
		&.hero-form3 {background-color:var(--yellow);
			&::before {left:auto;top:auto;content:"";height:70%;width:50vw;background:url("/wp-content/uploads/2026/09/bg-hero-haus.svg") no-repeat bottom right / auto 100%;position:absolute;right:5px;bottom:0;}
			& .hero-inner {padding:0;
				pre, h1, h2, p {color:var(--black);}
			}
			& .hero-content {margin-top:6vw;padding-inline: 10px !important;}
		}
		&.hero-form4 {background-color:var(--red-dark);
			&::before {left:auto;top:auto;content:"";height:70%;width:50vw;background:url("/wp-content/uploads/2026/09/header-frame-medium-red.svg") no-repeat bottom right / auto 100%;position:absolute;right:0;bottom:0;}
			& .hero-inner {padding:0;
				pre, h1, h2, p {color:var(--white);}
			}
			& .hero-content {margin-top:6vw;padding-inline: 10px !important;}
		}
		&.hero-form5 {background-color:var(--yellow-light);
			&::before {left:auto;top:auto;content:"";height:100%;width:66vw;background:url("/wp-content/uploads/2026/09/header-kontakt.svg") no-repeat bottom right / auto 100%;position:absolute;right:0;bottom:0;}
			& .hero-inner {padding:0;
				pre, h1, h2, p {color:var(--black);}
			}
			& .hero-content {margin-top:6vw;padding-inline: 10px !important;}
		}
		&.hero-video {padding:0;
			video {width:100vw;height:auto;}
			& .hero-inner {padding:0;width:100%;}
		}
	}
	& .fakten {
		& .fakten-wrapper {padding:0;
			.elementor-widget-text-editor {border-top:1px solid #999;padding-top:15px;
				& strong {font-size:20px;font-weight:600;}
				& p:first-of-type {margin-bottom:3px;
					+ ul {margin-top:4px;padding-left:15px;}
				}
				&:last-of-type {border-bottom:1px solid #999;}
			}
		}
	}
	& .elementor-image-carousel-wrapper {
		& .elementor-swiper-button-prev, & .elementor-swiper-button-next {position:absolute;top:auto;bottom:20px;left:20px;right:auto;}
		& .elementor-swiper-button-next {left:60px;}
	}
	& .elementor-blockquote--skin-border .elementor-blockquote {border:0;
		& .elementor-blockquote__author {font-weight:500;}
		& .elementor-blockquote__content {font-weight:400;font-family:var(--font-serif);font-size:28px;max-width:700px;color:var(--black);}
	}
	& .ansprechpartner {
		h3 {margin:0;font-size:22px;}
		img {max-width:200px;}
	}
	& .restaurant {
		& .restaurant-inner {padding-bottom:0;padding-top:10vw;}
	}
	& .raeume-grid {position:relative;isolation: isolate;--parallax-y: 0px;
		&::before {position:absolute;top:0;pointer-events:none;content:"";background:url("/wp-content/uploads/2026/09/bg-raeume-buchen.svg") no-repeat 0 0 / 100% auto;width:100%;height:90%;z-index: -1;max-width: 1600px;left: 50%;transform: translateX(-50%);}
		& .raeume-box {background:var(--white);box-shadow: 0 0 25px rgba(0, 0, 0, 0.25);
			img {width: 100%;aspect-ratio: 3 / 2;object-fit: cover;display: block;}
			&.noPadding {padding:0 !important;}
			& .raeume-box-inner {padding:20px;
				h3 {margin:0;}
			}
			& p.subtitle {font-family: var(--font-serif);margin:4px 0 15px;}
		}
	}

	& .raum-anlass {
		& .rounded {width:150px;}
		& h2 {font-family:var(--font-serif);font-size:24px;margin:12px 0 8px;font-weight:400;}
	}
	& .loop-category {background: var(--yellow-light);padding:5px 12px;text-transform: uppercase;font-size:var(--font-small);width:fit-content;}
	& .event-loop-wrapper {margin-block: 70px;
		& .event-loop {background:var(--white);height:100%;}
		& .event-loop-inner {padding:15px;}
		& .event-datum {font-family:var(--font-serif);font-weight:400;font-size:19px;margin-block-end: 20px;}
		& h3 {margin:12px 0 3px;}
	}
	& .programm {padding-top:0;position:relative;isolation: isolate;--parallax-y: 0px;--programm-parallax-before: 0px;--programm-parallax-after: 0px;
		&::before, &::after {position:absolute;content:"";background:url("/wp-content/uploads/2026/09/bg-form-red.svg") no-repeat 0 0 / 33% auto;width:100%;height:90%;z-index: -1;left:0;top:200px;pointer-events: none;transform: translateY(
				var(--programm-parallax-before)
			);
			will-change: transform;}
		&::after {background:url("/wp-content/uploads/2026/09/bg-form-red2.svg") no-repeat right bottom / 33% auto;right:0;bottom:-100px;left:auto;top:auto;transform: translateY(
				var(--programm-parallax-after)
			);}
		& .event-loop-wrapper {
			& .event-loop {box-shadow: 0 0 25px rgba(0, 0, 0, 0.25);}
		}
		.events-by-month {
			display: flex;
			flex-direction: column;
			gap: 96px;
		}

		.event-month-title {
			margin: 0 0 28px;
		}

		.event-month-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 32px;
		}

		@media (max-width: 1024px) {
			.event-month-grid {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}
		}

		@media (max-width: 767px) {
			.event-month-grid {
				grid-template-columns: 1fr;
			}
		}
	}
	& .rounded {max-width:65vw;}
	& .news-carousel {margin-block-start: 50px;
		& .news-carousel-inner {
			& .date {margin-block-start: 10px;font-size:var(--font-small);}
			& h3 {margin:5px 0 10px;font-size:28px;}
			& .news-carousel-content {font-size:var(--font-medium);padding-right:10px;}
			& img {width: 100%;aspect-ratio: 4 / 3;object-fit: cover;display: block;}

		}
	}
	& .elementor-widget-loop-carousel, & .elementor-widget-n-carousel {
		.swiper-pagination-bullet {width:9px;height:9px;margin-inline:5px;transition:width .3s ease, background-color .3s ease, opacity .3s ease;
			&.swiper-pagination-bullet-active {width:28px;border-radius:14px;}
		}
		.elementor-swiper-button {
			svg {fill:var(--black);width:20px;}
		}
		.elementor-loop-container {padding-bottom:30px !important;}
	}

/* Swiper-Pfeile neben der bestehenden Pagination */

	.elementor-widget-loop-carousel .elementor-swiper-button {
		top: auto !important;
		bottom: -7px !important;
		transform: none !important;
	}

	.elementor-widget-loop-carousel .elementor-swiper-button-prev {
		left: calc(50% - 90px) !important;
		right: auto !important;
	}

	.elementor-widget-loop-carousel .elementor-swiper-button-next {
		left: calc(50% + 76px) !important;
		right: auto !important;
	}
	.grid {
		display: grid;
		gap: 32px;
	}
	.grid-50 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.grid-33 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.grid-25 {padding-inline:10px;
		grid-template-columns: repeat(4, minmax(0, 1fr));gap:20px;
	}
	button.e-button-base, a.e-button-base {width:fit-content;background:var(--black);color:var(--white);border-radius:23px;padding:5px 15px;line-height:145%;letter-spacing: .01em;display:block;margin-top:30px;font-size:var(--button-size);font-family:var(--font-sans);transition:background-color .3s ease, color .3s ease, border-color .3s ease;
		&:hover {background:var(--button-hover);}
		&.button-center {margin-inline: auto;}
		&.button-v2 {color:var(--black);background:var(--white);border:1px solid transparent;
			&:hover {background:var(--button-hover-light);border-color:var(--black);}
		}
		&.outline {color:var(--black);background:var(--white);border:1px solid var(--black);
			&:hover {background:var(--button-hover-light);border-color:var(--black);}
		}
	}
	& .elementor-widget-counter {margin-bottom:20px;
		& .elementor-counter-number-wrapper {
			& .elementor-counter-number, & .elementor-counter-number-suffix, & .elementor-counter-number-prefix {font-weight:400;font-size:64px;line-height:1;}
		}
		& .elementor-counter-title {font-size:20px;font-family:var(--font-sans);line-height: 1;font-weight:600;margin-block-start:7px;}
		&.noCount .elementor-counter-number {display:none;}
	}

/* =========================================================
	   Default headings
	   ========================================================= */
	& .headline-xl {font-size:60px !important;max-width:560px;margin-inline: auto;}
	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		margin-top: 0;
		color: inherit;
		font-family: var(--font-sans);
		font-weight: 600;
	}

	h1 {
		font-size: var(--h1-size);
		line-height: var(--h1-line-height);
	}

	h2 {margin-bottom:30px;
		font-size: var(--h2-size);
		line-height: var(--h2-line-height);
	}

	h3 {
		margin-bottom:20px;
		font-size: var(--h3-size);
		line-height: var(--h3-sans-line-height);
	}

	h4 {
		font-size: var(--h4-size);
		line-height: var(--h4-sans-line-height);
	}
}


@media (max-width: 1024px) {
	.page-content > div.elementor {
		& .hero.hero-home {min-height:0;}
		.grid-33 {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
	}

}


@media (max-width: 767px) {

	.page-content > div.elementor {
		.grid-50,
		.grid-33 {
			grid-template-columns: 1fr;
		}
	}

}
.programm:has(.kg44-events[data-view="list"])::before,
.programm:has(.kg44-events[data-view="list"])::after {
	display: none;
}

/* =========================================================
   Figma text-style classes
   ========================================================= */

.h1-gabarito,
.h1-dm-serif,
.h2-gabarito,
.h2-dm-serif,
.h3-gabarito,
.h3-dm-serif,
.h4-gabarito,
.h4-dm-serif,
.bodycopy {
	margin-top: 0;
}


.h1-gabarito {
	font-family: var(--font-sans);
	font-size: 64px;
	font-weight: 600;
	line-height: 80px;
}

.h1-dm-serif {
	font-family: var(--font-serif);
	font-size: 64px;
	font-weight: 400;
	line-height: 80px;
}


.h2-gabarito {
	font-family: var(--font-sans);
	font-size: 40px;
	font-weight: 600;
	line-height: 50px;
}

.h2-dm-serif {
	font-family: var(--font-serif);
	font-size: 40px;
	font-weight: 400;
	line-height: 50px;
}


.h3-gabarito {
	font-family: var(--font-sans);
	font-size: 32px;
	font-weight: 600;
	line-height: 39.4px;
}

.h3-dm-serif {
	font-family: var(--font-serif);
	font-size: 32px;
	font-weight: 400;
	line-height: 38.4px;
}


.h4-gabarito {
	font-family: var(--font-sans);
	font-size: 28px;
	font-weight: 600;
	line-height: 39.2px;
}

.h4-dm-serif {
	font-family: var(--font-serif);
	font-size: 28px;
	font-weight: 400;
	line-height: normal;
}


.bodycopy {
	font-family: var(--font-sans);
	font-size: 19px;
	font-weight: 400;
	line-height: 27.55px;
}


/* =========================================================
   Minimal UI helpers
   ========================================================= */

.font-sans {
	font-family: var(--font-sans);
}

.font-serif, em {
	font-family: var(--font-serif);font-style: normal;
	font-weight: 400;
}


.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;

	padding: 9px 16px;

	border: 1px solid var(--black);
	border-radius: var(--button-radius);

	background: var(--black);
	color: var(--white);

	font-family: var(--font-sans);
	font-size: var(--button-size);
	font-weight: 500;
	line-height: 1;

	text-decoration: none;

	transition:
		background-color var(--transition),
		color var(--transition),
		border-color var(--transition);
}

.button:hover,
.button:focus-visible {
	background: var(--white);
	color: var(--black);
}

.content-width {
	width: min(
		var(--content-width),
		calc(100% - (2 * var(--content-gutter)))
	);

	margin-inline: auto;
}

@media (max-width: 1200px) {
	.page-content > div.elementor {
		& .hero {
			pre, h1, h2 {font-size:42px;line-height:50px;max-width:300px;}
			&.hero-home {
				& .hero-content {padding-left:calc((100vw - 94%) / 2) !important;}
				& .elementor-image-carousel-wrapper::after {left:-42vw;}
			}
		}
		& .elementor-widget-counter {margin-bottom:5px;
			& .elementor-counter-number-wrapper {
				& .elementor-counter-number, & .elementor-counter-number-suffix, & .elementor-counter-number-prefix {font-size: 38px;line-height: 1;
				}
			}
		}
		& .raum-anlass {
			& .rounded {width:120px;}
			& h2 {font-size:20px;}
		}
	}
}


@media (max-width: 900px) {
	.page-content > div.elementor {
		& .event-loop-wrapper {margin-block:0;}

		& .elementor-widget-counter {margin-bottom:5px;
			& .elementor-counter-number-wrapper {
				& .elementor-counter-number, & .elementor-counter-number-suffix, & .elementor-counter-number-prefix {font-size:26px;}
			}
		}

		.grid {gap:24px;}
		.grid-25 {padding-inline:10px;grid-template-columns: repeat(4, minmax(0, 1fr));gap:10px;}
	}
	.elementor-page header.elementor-location-header {
		> div {padding-block:15px;}
		& .logo img, & .logo img[src$=".svg"], & img.logo {width:90px;}
	}
}
.slider-mobil, .mob {display:none !important;}
@media (max-width: 760px) {
	header.elementor-location-header {
		& nav.e-n-menu {row-gap:10px;
			button {background:var(--white);padding:10px;border-radius:255px;}
		}
	}
	.elementor-page footer.elementor-location-footer {padding:0;
		> div {padding:20px 0 40px;flex-wrap: wrap;
			> * {flex: 1 1 0;}
			& .logo-column {flex: 0 0 100%;margin-bottom:25px;}
		}
	}

	.mob {display:block !important;}
	.nomob {display:none !important;}
	.slider-mobil {display:block !important;width:100%;}
	.text-center-mobil {text-align: center;
		& .swiper-slide > div, & .elementor-counter-title, & .elementor-counter-number-wrapper {text-align:center;justify-content: center !important;}
	}
	.rounded {margin-inline:auto;}
	.page-content > div.elementor {
		img.full, .full {min-width:calc(100% + 40px);left:-20px;position: relative;
			&.map {min-width:200%;left:-52%;}
		}
		& .raum-anlass {text-align: center;margin-inline:auto;max-width:300px;}
		& .headline-xl {font-size:40px !important;}
		& .event-loop-wrapper {margin-block:0;}
		& .hero {padding-bottom:30px;padding-top:170px;
			pre, h1, h2 {font-size:30px;line-height:1.3;max-width:100%;margin-bottom:10px;}
			&.hero-home {padding-top:100px;
				& .hero-inner {display:block;}
				&::before {height:100%;top:-60%;width:90%;}
				pre, h1, h2 {max-width:275px;margin:0;font-size:40px;}
				& .hero-content {padding-left: 18px !important;margin-bottom:25px;}
				& a.e-button-base.button-v2 {font-size:18px !important;}
				& .elementor-image-carousel-wrapper::after {right: 85vw;left: auto;}
			}
			&.hero-form2 {
				&::before {height:50%;width:90%;right:-20%;}
			}
			&.hero-form3 {
				&::before {height: 57%;width: 118%;right: -36%;}
			}
			&.hero-form4 {
				&::before {height:50%;width:90%;right:-20%;}
			}
			&.hero-form5 {
				&::before {height: 100%;
					width: 74%;
					right: -14%;
					top: 0;
					background-position: bottom left;}
			}
		}

		& .ansprechpartner {flex-flow: column;row-gap:30px;
			> div {display:block;}
			img {max-width:200px;margin-block-end:13px;}
		}

		& .elementor-blockquote--skin-border .elementor-blockquote {border:0;padding:0 20px;
			& .elementor-blockquote__content {font-size:24px;margin-top:15px;text-align:center;}
			& .e-q-footer {text-align:center;justify-content: center;}
		}
		& .elementor-widget-counter {margin-bottom:5px;
			& .elementor-counter-number-wrapper {
				& .elementor-counter-number, & .elementor-counter-number-suffix, & .elementor-counter-number-prefix {font-size:34px;}
				& .elementor-counter-number {margin-bottom:10px;}
			}
		}
		& .history {
			& .elementor-counter-number, & .elementor-counter-number-suffix, & .elementor-counter-number-prefix {font-size:40px !important;}
		}

		& .raeume-grid {
			&::before {display:none;}}
		& .restaurant {background-size:auto 140%;background-position:0 -50px;
			& .restaurant-inner {margin-bottom:55vw;padding-bottom:25vw;}
		}
		& .elementor-image-carousel-wrapper {
			& .elementor-swiper-button-prev, & .elementor-swiper-button-next {width:22px;bottom:0;left:20px;}
			& .elementor-swiper-button-next {left:55px;}
		}
		& .textbox {
			&.form1 {order:2;position:relative;top:-17vw;margin-bottom:-22vw;padding-left:60px;
				> * {max-width:75vw;}
			}
			&.form2 {padding:50px 0 50px 40px;min-width: 120vw;left: 35vw;bottom: -75vw;
				clip-path: polygon(
					13.1% 0,
					100% 0,
					100% 100%,
					13.1% 100%,

					12.7% 99.6%,
					12.2% 98.7%,
					11.6% 97.8%,
					10.5% 96.5%,
					9.5% 95.4%,
					8.4% 94.5%,
					7.3% 93.7%,
					6.2% 93.1%,
					5.1% 92.5%,
					4% 92.1%,
					2.9% 91.8%,
					1.8% 91.6%,
					.7% 91.5%,
					0 91.5%,

					0 8.5%,
					.7% 8.5%,
					1.8% 8.4%,
					2.9% 8.2%,
					4% 7.9%,
					5.1% 7.5%,
					6.2% 6.9%,
					7.3% 6.3%,
					8.4% 5.5%,
					9.5% 4.6%,
					10.5% 3.5%,
					11.6% 2.2%,
					12.2% 1.3%,
					12.7% .4%
				);
				& > * {max-width:75vw;}
				h2 {margin-block-end:10px;}}
			& + img {width:140%;}
		}
		& .fakten {
			& .fakten-wrapper {
				> div:last-of-type {
					.elementor-widget-text-editor:first-of-type {border-top:0;padding-top:0;}
				}
		}}
		& .event-list-item__image {width:150px;}
		& .event-list-item {grid-template-columns:150px minmax(0, 1fr) !important;}
		.grid {gap:24px;}
		.grid-50 {grid-template-columns: minmax(0, 1fr);
			& > div {padding-inline:0;}
		}
		.history .grid-50 {padding-inline: 0;}
		.grid-50.grid-50-mobil {grid-template-columns: repeat(2, minmax(0, 1fr));}
		.grid-33 {grid-template-columns: minmax(0, 1fr);}
		.grid-25 {padding-inline:10px;grid-template-columns: repeat(2, minmax(0, 1fr));gap:10px;}
	}
	.elementor-page header.elementor-location-header {
		> div {padding-block:15px;}
		& .logo img, & .logo img[src$=".svg"], & img.logo {width:90px;}
		& .mainnav {
			ul.e-n-menu-heading {padding-top:15px;row-gap:10px;background:transparent;border-radius:0;flex-direction: column;align-items:flex-end;justify-content: flex-end;
				> li.e-n-menu-item {width:fit-content;background:rgba(255,255,255,.8);border-radius:10px;
					> div {background:transparent;}
				}
			}
		}
	}
}

.elementor-element .swiper .elementor-swiper-button.swiper-button-disabled, .elementor-element .swiper~.elementor-swiper-button.swiper-button-disabled, .elementor-lightbox .swiper .elementor-swiper-button.swiper-button-disabled, .elementor-lightbox .swiper~.elementor-swiper-button.swiper-button-disabled {opacity: 0;}

/* =========================================================
   Reduced motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	html {scroll-behavior:auto;}
	.elementor-page header.elementor-location-header {
		transition:none;
		> div {transition:none;}
		& .logo img, & img.logo {transition:none;}
	}
	.elementor-page footer.elementor-location-footer {
		& .logo img {transition:none;}
	}
	.page-content > div.elementor {
		button.e-button-base, a.e-button-base {transition:none;}
		& .elementor-widget-loop-carousel, & .elementor-widget-n-carousel {
			.swiper-pagination-bullet {transition:none;}
		}
		& .programm {
			&::before, &::after {transform:none;will-change:auto;}
		}
	}
	.button {transition:none;}
}


/* Am Ende der style.css einfügen. Gilt nur für den Desktop-Startseitenhero. */
@media (min-width: 1201px) {
  .page-content > div.elementor .hero.hero-home {
	--hero-text-width: 400px;
	--hero-text-left: max(24px, calc((100% - var(--content-width)) / 2));
	--hero-top-bar: 30px;
	--hero-image-edge: clamp(70px, 6vw, 140px);
  }

  .page-content > div.elementor .hero.hero-home::before {
	width: calc(var(--hero-text-left) + var(--hero-text-width) / 2);
	height: 90%;
	background-image: url('/wp-content/uploads/2026/10/saeule-dark-blue-fluid.svg');
	background-size: 100% 100%;
	background-position: left top;
  }

  .page-content > div.elementor .hero.hero-home .hero-content {
	padding-left: var(--hero-text-left) !important;
  }

  .page-content > div.elementor .hero.hero-home .elementor-image-carousel-wrapper {
	padding-top: var(--hero-top-bar) !important;
  }

  .page-content > div.elementor .hero.hero-home .elementor-image-carousel-wrapper::after {
	left: 0;
	right: auto;
	top: var(--hero-top-bar);
	width: var(--hero-image-edge);
	height: calc(100% - var(--hero-top-bar));
	background: var(--blue);
	clip-path: polygon(0 0, 0 16%, 100% calc(16% + var(--hero-image-edge) * 0.831), 100% 100%, 0 100%);
  }
}
@media (min-width: 1201px) {
  .page-content > div.elementor .hero.hero-home
  .elementor-image-carousel-wrapper::after {
	left: -2px;
	width: calc(var(--hero-image-edge) + 2px);
	clip-path: polygon(
	  0 0,
	  2px 0,
	  2px 16%,
	  100% calc(16% + var(--hero-image-edge) * 0.831),
	  100% 100%,
	  0 100%
	);
  }
}