.elementor-kit-27{--e-global-color-primary:#0A1741;--e-global-color-secondary:#0056A4;--e-global-color-text:#414141;--e-global-color-accent:#EB5E50;--e-global-color-9670681:#EAF6FE;--e-global-color-541fa18:#FFFFFF;--e-global-color-c75ad52:#0A174108;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-size:28px;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-font-style:normal;--e-global-typography-primary-text-decoration:none;--e-global-typography-primary-line-height:1.2em;--e-global-typography-primary-letter-spacing:-0.5px;--e-global-typography-primary-word-spacing:0px;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:22px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:capitalize;--e-global-typography-secondary-font-style:normal;--e-global-typography-secondary-text-decoration:none;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:-0.5px;--e-global-typography-secondary-word-spacing:0px;--e-global-typography-text-font-family:"Archivo";--e-global-typography-text-font-size:var(--text-copy-m);--e-global-typography-text-font-weight:300;--e-global-typography-text-text-transform:none;--e-global-typography-text-font-style:normal;--e-global-typography-text-text-decoration:none;--e-global-typography-text-line-height:1.5em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-text-word-spacing:0px;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-text-transform:capitalize;--e-global-typography-accent-font-style:normal;--e-global-typography-accent-text-decoration:none;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0px;--e-global-typography-accent-word-spacing:0px;--e-global-typography-34f8ef0-font-family:"Archivo";--e-global-typography-34f8ef0-font-size:12vw;--e-global-typography-34f8ef0-font-weight:600;--e-global-typography-34f8ef0-text-transform:lowercase;--e-global-typography-34f8ef0-font-style:normal;--e-global-typography-34f8ef0-text-decoration:none;--e-global-typography-34f8ef0-line-height:1em;--e-global-typography-34f8ef0-letter-spacing:-8px;--e-global-typography-34f8ef0-word-spacing:0px;--e-global-typography-85fbefb-font-family:"Archivo";--e-global-typography-85fbefb-font-size:46px;--e-global-typography-85fbefb-font-weight:400;--e-global-typography-85fbefb-text-transform:none;--e-global-typography-85fbefb-font-style:normal;--e-global-typography-85fbefb-text-decoration:none;--e-global-typography-85fbefb-line-height:1.2em;--e-global-typography-85fbefb-letter-spacing:-0.5px;--e-global-typography-85fbefb-word-spacing:0px;--e-global-typography-abebd36-font-family:"Archivo";--e-global-typography-abebd36-font-size:14px;--e-global-typography-abebd36-font-weight:400;--e-global-typography-abebd36-text-transform:capitalize;--e-global-typography-abebd36-font-style:normal;--e-global-typography-abebd36-text-decoration:none;--e-global-typography-abebd36-line-height:1em;--e-global-typography-abebd36-letter-spacing:0px;--e-global-typography-abebd36-word-spacing:0px;background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );font-style:var( --e-global-typography-text-font-style );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-kit-27 e-page-transition{background-color:#FFBC7D;}.elementor-kit-27 a{color:var( --e-global-color-accent );}.elementor-kit-27 a:hover{color:var( --e-global-color-primary );}.e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header{padding-inline-end:5%;padding-inline-start:5%;}.site-header .site-branding .site-logo img{width:75px;max-width:75px;}.site-header .site-navigation ul.menu li a{color:var( --e-global-color-primary );}.site-header .site-navigation .menu li{font-family:var( --e-global-typography-abebd36-font-family ), Sans-serif;font-size:var( --e-global-typography-abebd36-font-size );font-weight:var( --e-global-typography-abebd36-font-weight );text-transform:var( --e-global-typography-abebd36-text-transform );font-style:var( --e-global-typography-abebd36-font-style );text-decoration:var( --e-global-typography-abebd36-text-decoration );line-height:var( --e-global-typography-abebd36-line-height );letter-spacing:var( --e-global-typography-abebd36-letter-spacing );word-spacing:var( --e-global-typography-abebd36-word-spacing );}.site-footer{padding-inline-end:5%;padding-inline-start:5%;}.site-footer .site-branding .site-logo img{width:75px;max-width:75px;}.site-footer .copyright p{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );font-style:var( --e-global-typography-text-font-style );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}@media(max-width:1024px){.elementor-kit-27{--e-global-typography-secondary-font-size:18px;--e-global-typography-text-font-size:14px;--e-global-typography-accent-font-size:14px;--e-global-typography-34f8ef0-font-size:14vw;--e-global-typography-85fbefb-font-size:38px;--e-global-typography-abebd36-font-size:14px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}.site-header .site-navigation .menu li{font-size:var( --e-global-typography-abebd36-font-size );line-height:var( --e-global-typography-abebd36-line-height );letter-spacing:var( --e-global-typography-abebd36-letter-spacing );word-spacing:var( --e-global-typography-abebd36-word-spacing );}.site-footer .copyright p{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}}@media(max-width:767px){.elementor-kit-27{--e-global-typography-primary-font-size:22px;--e-global-typography-secondary-font-size:16px;--e-global-typography-34f8ef0-font-size:15vw;--e-global-typography-34f8ef0-letter-spacing:-1.8px;--e-global-typography-85fbefb-font-size:30px;--e-global-typography-abebd36-font-size:12px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}.site-header .site-navigation .menu li{font-size:var( --e-global-typography-abebd36-font-size );line-height:var( --e-global-typography-abebd36-line-height );letter-spacing:var( --e-global-typography-abebd36-letter-spacing );word-spacing:var( --e-global-typography-abebd36-word-spacing );}.site-footer .copyright p{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}}/* Start custom CSS *//* ==========================================================================
   
   JENEWEIN Design System
   
   1.  Basis-Konfiguration: Maßeinheiten (1rem = 10px) & Font-Zuweisung.
   2.  Design-Variablen: Zentrale Steuerung von Font, Farben & Abständen.
   3.  Typografie: Figma-Werte für H1–H6, Copy & Sonderformate.
   4.  Layout: Klassen für 12-col Grid System.
   5.  Buttons: Styles für Primary, Secondary & Interaktionen.
   6.  Stacks: Klassen für vertikale und horizontale Gruppierung.
   7.  Utilities: Visibility, Aspect-Ratio & Divider.
   8.  Barrierefreiheit: Focus-States & Reduced Motion.
   9.  Footer: Hintergrund, Links & Abstände.
   10. Header: Vollständig CSS-gesteuert, Mobile Nav, Logo.
   11. Akkordeon: Styles für Elementor Accordion Widget.
   12. Testimonial Carousel: Swiper-basierter Slider.
   13. Checklist: Elementor Icon List Widget.
   14. Read More: Details/Summary Toggle.
   15. Call to Action Widget: Radius & Hintergrund.
   16. Nav Button: Menüpunkt als Primary Button (.nav-button).
   
   ========================================================================== */

/* ==========================================================================
   1. Basis-Konfiguration
   ========================================================================== */

html {
	font-size: 62.5% !important; /* 1rem = 10px */
}

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

body {
	margin: 0; padding: 0; overflow-x: hidden;
	font-family: var(--primary-font) !important;
	font-size: var(--text-copy-m); 
	line-height: 1.5;
	color: var(--color-grey);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   2. Design-Variablen
   ========================================================================== */

:root {
	
	--primary-font: 'Archivo', sans-serif;
	--secondary-font: 'Source Code Pro', monospace;
	
	--site-width: 172.8rem;
	--grid-width: 148.8rem;
	--col-width: calc((var(--grid-width) - 11 * var(--grid-gutter)) / 12);
	--grid-margin: 12.0rem;
	--grid-gutter: 3.0rem;

	/* Figma Brand Colors */
	--color-coral: #EB5E50;
	--color-ocean: #0A1741;
	--color-ocean-8: rgba(10, 23, 65, 0.08); /* 8% Deckkraft für Linien/Nummern */
	--color-ocean-30: rgba(10, 23, 65, 0.30); /* 30% Deckkraft für Caption/Datum */
	--color-sea: #0056A4;
	--color-sky: #E6F5FE;
	--color-white: #ffffff;
	--color-white-20: rgba(255, 255, 255, 0.2); /* Dark Mode Buttons */
	--color-white-70: rgba(255, 255, 255, 0.70); /* Dark Mode Caption/Datum */
	--color-grey: #414141;

	/* Semantic Assignments (Synchronisiert mit Elementor Systemfarben) */
	--color-primary: var(--color-ocean);    /* System 1: Headlines */
	--color-secondary: var(--color-sky);    /* System 2: Akzente/Bg */
	--color-text: var(--color-grey);        /* System 3: Fließtext */
	--color-accent: var(--color-coral);     /* System 4: Buttons */
	
	--color-bg: var(--color-white);         /* Standard-Hintergrund */

	/* Spacings */
	--space-xxl: 16.8rem; 
	--space-xl: 12.8rem; 
	--space-l: 6.4rem;
	--space-m: 4.8rem; 
	--space-s: 2.6rem; 
	--space-xs: 1.6rem;
	--space-xxs: 0.8rem;

	/* Corners */
	--radius-xl: 100.0rem; --radius-l: 1.6rem; --radius-m: 0.6rem; --radius-s: 0.4rem;

	/* Transitions – NEU: Zentral steuerbar */
	--transition-default: all 0.3s ease-in-out;
	--transition-fast: all 0.15s ease-in-out;
	--transition-slow: all 0.5s ease-in-out;
	--transition-accordion: 0.2s ease-in-out; /* Akkordeon-Animation */

	/* Icons – NEU: Linienstärke zentral steuerbar */
	--icon-stroke: 1.75px;

	/* Typography */
	--text-h1: 8.2rem; --text-h2: 3.4rem; --text-h3: 2.4rem;
	--text-h4: 1.8rem; --text-h5: 1.4rem; --text-h6: 1.2rem;
	--text-copy-l: 2.4rem; --text-copy-m: 1.8rem; --text-copy-s: 1.4rem;
	--text-quote-number: 5.4rem;
	--text-nav: 1.6rem; /* Nav-Links Header & Footer */

}

@media (max-width: 1024px) {
	:root {
		--grid-margin: 6.0rem; --grid-gutter: 2.5rem; --space-xl: 8.0rem;
		--text-h1: 5.8rem; --text-h2: 3.4rem;
	}
}

@media (max-width: 767px) {
	:root {
		--grid-margin: 3.2rem; --grid-gutter: 2.0rem; --space-xl: 6.4rem; 
		--text-h1: 4.4rem; --text-h2: 3.0rem; --text-h3: 2.0rem; --text-h4: 1.6rem;
		--text-quote-number: 3.2rem;
	}
	h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
		hyphens: auto !important;
		-webkit-hyphens: auto !important;
		overflow-wrap: break-word !important;
	}
	.text-quote-number p {
		hyphens: auto !important;
		-webkit-hyphens: auto !important;
		overflow-wrap: break-word !important;
	}
}

/* ==========================================================================
   3. Typografie
   ========================================================================== */

/* Alle Header auf Archivo setzen */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	font-family: var(--primary-font) !important;
	margin-top: 0;
}

/* H1 - Light (300) */
h1, .h1 { 
	font-size: var(--text-h1) !important; 
	line-height: 1.0 !important; 
	font-weight: 100 !important; 
	letter-spacing: -0.01em !important;
	color: var(--color-ocean) !important;
	text-transform: uppercase !important;
}

/* H2 - Light (300) */
h2, .h2 { 
	font-size: var(--text-h2) !important; 
	line-height: 1.0 !important; 
	font-weight: 300 !important; 
	letter-spacing: 0.005em !important; 
	color: var(--color-ocean) !important;
	text-transform: none !important;
}

/* H2 Display – Uppercase · ExtraLight (200) */
.h2-display,
.h2-display .elementor-heading-title,
.is-section-title,
.is-section-title .elementor-heading-title {
	font-size: calc(var(--text-h2) + 0.2rem) !important;
	line-height: 1.0 !important;
	font-weight: 200 !important;
	letter-spacing: 0.005em !important;
	color: var(--color-ocean) !important;
	text-transform: uppercase !important;
}
h3, .h3 { 
	font-size: var(--text-h3) !important; 
	line-height: 1.2 !important; 
	font-weight: 400 !important; 
	letter-spacing: 0.01em !important; 
	color: var(--color-ocean) !important; 
}

/* H4 - SemiBold (600) */
h4, .h4 { 
	font-size: var(--text-h4) !important; 
	line-height: 1.2 !important; 
	font-weight: 600 !important; 
	letter-spacing: 0.005em !important; 
	color: var(--color-ocean) !important; 
}

/* H5 - Regular (400) */
h5, .h5 { 
	font-size: var(--text-h5) !important; 
	line-height: 1.2 !important; 
	font-weight: 400 !important; 
	letter-spacing: 0.03em !important; 
	color: var(--color-ocean) !important;
	text-transform: uppercase !important;
}
.is-dark-mode h5,
.is-dark-mode .h5,
.is-dark-mode .elementor-heading-title.elementor-size-small {
	color: var(--color-white-70) !important;
}

h6, .h6 {
	font-size: var(--text-h6) !important;
	line-height: 1.2 !important;
	font-weight: 400 !important;
	letter-spacing: 0.03em !important;
	color: var(--color-ocean) !important;
	font-style: italic !important;
	opacity: 0.6 !important;
}

/* Standard Paragraphen & Copy-Klassen */
p, .copy-m { 
	font-family: var(--primary-font) !important;
	font-size: var(--text-copy-m) !important; 
	font-weight: 400 !important;
	color: var(--color-grey) !important; 
	letter-spacing: normal !important;
	line-height: 1.5 !important;
}

.copy-l { font-size: var(--text-copy-l) !important; letter-spacing: -0.005em !important; line-height: 1.5 !important; }
.copy-s { font-size: var(--text-copy-s) !important; letter-spacing: 0.01em !important; line-height: 1.6 !important; }

/* Prolog – H2 Desktop/Tablet · H3 Mobile */
.prolog,
.prolog .elementor-heading-title,
.prolog p {
	font-size: var(--text-h2) !important;
	line-height: 1.0 !important;
	font-weight: 300 !important;
	letter-spacing: 0.005em !important;
	color: var(--color-ocean) !important;
}
.is-dark-mode .prolog,
.is-dark-mode .prolog .elementor-heading-title,
.is-dark-mode .prolog p {
	color: var(--color-white) !important;
}
@media (max-width: 767px) {
	.prolog,
	.prolog .elementor-heading-title,
	.prolog p {
		font-size: var(--text-h3) !important;
		line-height: 1.2 !important;
		letter-spacing: 0.01em !important;
	}
}

.text-caption,
.text-caption .elementor-heading-title,
.text-caption p {
	font-size: var(--text-copy-s) !important;
	color: var(--color-ocean-30) !important;
	letter-spacing: 0.01em !important;
	line-height: 1.4 !important;
}
.is-dark-mode .text-caption,
.is-dark-mode .text-caption .elementor-heading-title,
.is-dark-mode .text-caption p {
	color: var(--color-white-70) !important;
}

/* Text-Color Utilities */
.text-sea   { color: var(--color-sea)   !important; }
.text-coral { color: var(--color-coral) !important; }
.text-sky   { color: var(--color-sky)   !important; }
.text-grey  { color: var(--color-grey)  !important; }
.text-secondary { color: var(--color-ocean-8) !important; }
.is-dark-mode .text-secondary { color: var(--color-white-20) !important; }

/* Font-Weight Utilities */
.font-light,
.font-light .elementor-heading-title,
.font-light .elementor-widget-container { font-weight: 300 !important; }

.font-regular,
.font-regular .elementor-heading-title,
.font-regular .elementor-widget-container { font-weight: 400 !important; }

.font-medium,
.font-medium .elementor-heading-title,
.font-medium .elementor-widget-container { font-weight: 500 !important; }

.font-semibold,
.font-semibold .elementor-heading-title,
.font-semibold .elementor-widget-container { font-weight: 600 !important; }

.font-bold,
.font-bold .elementor-heading-title,
.font-bold .elementor-widget-container { font-weight: 700 !important; }

.font-thin,
.font-thin .elementor-heading-title,
.font-thin .elementor-widget-container { font-weight: 100 !important; }

.text-quote-number p {
	font-family: var(--primary-font) !important;
	font-size: var(--text-quote-number) !important;
	font-weight: 300 !important;
	line-height: 1.0 !important;
	color: var(--color-ocean) !important;
}

/* Secondary Font Utility – Source Code Pro */
.font-secondary,
.font-secondary .elementor-heading-title,
.font-secondary .elementor-widget-container,
.font-secondary p {
	font-family: var(--secondary-font) !important;
}

/* Display L – fluid 3.2rem (Mobile) → 11.2rem (Desktop) */
.display-l,
.display-l .elementor-heading-title,
.display-l .elementor-widget-container {
	font-family: var(--secondary-font) !important;
	font-size: clamp(3.2rem, 8vw, 11.2rem) !important;
	line-height: 1.1 !important;
	font-weight: 700 !important;
	letter-spacing: 0.001em !important;
	text-transform: none !important;
}

/* Display M – fluid 2.4rem (Mobile) → 6.2rem (Desktop) */
.display-m,
.display-m .elementor-heading-title,
.display-m .elementor-widget-container {
	font-family: var(--secondary-font) !important;
	font-size: clamp(2.4rem, 4.5vw, 6.2rem) !important;
	line-height: 1.1 !important;
	font-weight: 700 !important;
	letter-spacing: 0.001em !important;
	text-transform: none !important;
}

/* Display S – fluid 1.4rem (Mobile) → 2.4rem (Desktop) */
.display-s,
.display-s .elementor-heading-title,
.display-s .elementor-widget-container {
	font-family: var(--secondary-font) !important;
	font-size: clamp(1.4rem, 1.5vw, 2.4rem) !important;
	line-height: 1.2 !important;
	font-weight: 700 !important;
	letter-spacing: 0.001em !important;
	text-transform: none !important;
}

/* Number L – 10.8rem Desktop · Archivo Light */
.number-l,
.number-l h1,
.number-l h2,
.number-l .elementor-heading-title,
.number-l .elementor-widget-container {
	font-family: var(--primary-font) !important;
	font-size: 10.8rem !important;
	line-height: 1.1 !important;
	font-weight: 300 !important;
	letter-spacing: -0.02em !important;
	color: var(--color-ocean-8) !important;
	text-box-trim: both !important;
	text-box-edge: cap alphabetic !important;
}

/* Number M – 5.4rem Desktop · Archivo Light */
.number-m,
.number-m h1,
.number-m h2,
.number-m .elementor-heading-title,
.number-m .elementor-widget-container {
	font-family: var(--primary-font) !important;
	font-size: 5.4rem !important;
	line-height: 1.1 !important;
	font-weight: 300 !important;
	letter-spacing: -0.02em !important;
	color: var(--color-ocean-8) !important;
	text-box-trim: both !important;
	text-box-edge: cap alphabetic !important;
}

/* Number S – 2.4rem Desktop · Archivo Light */
.number-s,
.number-s h1,
.number-s h2,
.number-s .elementor-heading-title,
.number-s .elementor-widget-container {
	font-family: var(--primary-font) !important;
	font-size: 2.4rem !important;
	line-height: 1.1 !important;
	font-weight: 300 !important;
	letter-spacing: -0.02em !important;
	color: var(--color-ocean-8) !important;
	text-box-trim: both !important;
	text-box-edge: cap alphabetic !important;
}

/* Number – Dark Mode */
.is-dark-mode .number-l h1,
.is-dark-mode .number-l h2,
.is-dark-mode .number-l .elementor-heading-title,
.is-dark-mode .number-l .elementor-widget-container,
.is-dark-mode .number-m h1,
.is-dark-mode .number-m h2,
.is-dark-mode .number-m .elementor-heading-title,
.is-dark-mode .number-m .elementor-widget-container,
.is-dark-mode .number-s h1,
.is-dark-mode .number-s h2,
.is-dark-mode .number-s .elementor-heading-title,
.is-dark-mode .number-s .elementor-widget-container {
	color: var(--color-white-20) !important;
}

/* ==========================================================================
   4. Layout
   ========================================================================== */

/* ==========================================================================
   4.1 Setup
   ========================================================================== */

.e-con, .e-con-grid.e-con {
	--gap: var(--grid-gutter) !important;
	--row-gap: var(--grid-gutter) !important;
	--column-gap: var(--grid-gutter) !important;
}

.e-con.e-parent {
	--padding-left: var(--grid-margin) !important;
	--padding-right: var(--grid-margin) !important;
}

/* Entfernt die 1140px Standard-Breiten-Begrenzung von Elementor Widgets */
.elementor-widget-template,
.elementor-widget-template .elementor-widget-container,
.elementor-widget-template .elementor-template {
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}

.elementor-template .e-con, 
.elementor-template .e-con-inner,
.elementor-template .elementor-section,
.elementor-template .elementor-container {
	width: 100% !important;
	max-width: 100% !important;
	--content-width: 100% !important;
}

.elementor-template .elementor-widget-image,
.elementor-template .elementor-widget-image .elementor-widget-container,
.elementor-template .elementor-widget-image img {
	width: 100% !important;
	max-width: 100% !important;
	object-fit: cover; 
}

/* ==========================================================================
   4.2 Container Struktur
   ========================================================================== */

.is-site-wide {
	--container-widget-width: var(--site-width) !important;
	--content-width: var(--site-width) !important;
	max-width: var(--site-width) !important;
	width: 100% !important;
	margin: 0 auto !important;
	overflow: hidden !important;
}

/* Logo Marquee Section braucht overflow visible damit der Track nicht geclippt wird */
.is-site-wide.logo-marquee {
	overflow: visible !important;
}

.e-con.e-parent.is-site-wide {
	background-color: var(--color-white) !important;
	padding-top: var(--space-xl) !important;
	padding-bottom: var(--space-xl) !important;
}

.e-con.e-parent.is-site-wide.no-padding-top {
	padding-top: 0 !important;
}

.e-con.e-parent.is-site-wide.no-padding-bottom {
	padding-bottom: 0 !important;
}

body .is-section-title {
	width: 100% !important;
	margin-bottom: var(--space-xl) !important; 
	display: block !important;
}

body .is-site-wide > .e-con-inner {
	align-content: flex-start !important;
	gap: 0 !important;
	--widgets-spacing: 0px !important;
}

.is-section-title h1, .is-section-title h2, .is-section-title h3, 
.is-section-title .elementor-widget-heading,
.is-section-title .elementor-widget-container {
	margin-bottom: 0 !important;
	margin-top: 0 !important;
}

@media (max-width: 1024px) {
	body .is-section-title {
		margin-bottom: var(--space-l) !important;
	}
}

@media (max-width: 767px) {
	.e-con.e-parent.is-site-wide {
		padding-top: var(--space-l) !important; 
		padding-bottom: var(--space-l) !important;
	}

	body .is-site-wide > .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
	}

	body .is-section-title {
		margin-bottom: var(--space-m) !important; 
	}
}

/* --- Content --- */
.is-grid-fixed {
	--container-widget-width: var(--grid-width) !important;
	--content-width: var(--grid-width) !important;
	max-width: var(--grid-width) !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

/* ==========================================================================
   4.3 Utilities – Theme Modes
   ========================================================================== */

.is-sky-mode,
.e-con.e-parent.is-site-wide.is-sky-mode {
	background-color: var(--color-sky) !important;
}

.radius-top {
	border-top-left-radius: var(--radius-l) !important;
	border-top-right-radius: var(--radius-l) !important;
	overflow: hidden !important;
}

.radius-bottom {
	border-bottom-left-radius: var(--radius-l) !important;
	border-bottom-right-radius: var(--radius-l) !important;
	overflow: hidden !important;
}

.radius-all {
	border-radius: var(--radius-l) !important;
	overflow: hidden !important;
}

/* Dark Mode */
.is-dark-mode,
.e-con.e-parent.is-site-wide.is-dark-mode {
	background-color: var(--color-ocean) !important;
}

.is-dark-mode h1, 
.is-dark-mode h2, 
.is-dark-mode h3, 
.is-dark-mode h4, 
.is-dark-mode h5, 
.is-dark-mode h6,
.is-dark-mode .elementor-heading-title {
	color: var(--color-white) !important;
}

.is-dark-mode,
.is-dark-mode p,
.is-dark-mode span,
.is-dark-mode li,
.is-dark-mode .elementor-text-editor {
	color: var(--color-white) !important;
}

.is-dark-mode .elementor-icon i,
.is-dark-mode .elementor-icon svg {
	fill: var(--color-white) !important;
	color: var(--color-white) !important;
}

.is-dark-mode .btn-secondary .elementor-button {
	background-color: var(--color-white-20) !important;
	color: var(--color-white) !important;
}

.is-dark-mode .btn-secondary .elementor-button .elementor-button-text {
	color: var(--color-white) !important;
}

.is-dark-mode .btn-secondary .elementor-button:hover {
	background-color: var(--color-white-20) !important;
	color: var(--color-white) !important;
}

/* ==========================================================================
   4.4 Spaltensteuerung
   ========================================================================== */

/* span-cols-* – funktioniert in CSS Grid UND Elementor Flex-Container */
.span-cols-1  { grid-column: span 1  !important; flex: 0 0 calc(100% *  1/12 - var(--grid-gutter) * 11/12) !important; max-width: calc(100% *  1/12 - var(--grid-gutter) * 11/12) !important; }
.span-cols-2  { grid-column: span 2  !important; flex: 0 0 calc(100% *  2/12 - var(--grid-gutter) * 10/12) !important; max-width: calc(100% *  2/12 - var(--grid-gutter) * 10/12) !important; }
.span-cols-3  { grid-column: span 3  !important; flex: 0 0 calc(100% *  3/12 - var(--grid-gutter) *  9/12) !important; max-width: calc(100% *  3/12 - var(--grid-gutter) *  9/12) !important; }
.span-cols-4  { grid-column: span 4  !important; flex: 0 0 calc(100% *  4/12 - var(--grid-gutter) *  8/12) !important; max-width: calc(100% *  4/12 - var(--grid-gutter) *  8/12) !important; }
.span-cols-5  { grid-column: span 5  !important; flex: 0 0 calc(100% *  5/12 - var(--grid-gutter) *  7/12) !important; max-width: calc(100% *  5/12 - var(--grid-gutter) *  7/12) !important; }
.span-cols-6  { grid-column: span 6  !important; flex: 0 0 calc(100% *  6/12 - var(--grid-gutter) *  6/12) !important; max-width: calc(100% *  6/12 - var(--grid-gutter) *  6/12) !important; }
.span-cols-7  { grid-column: span 7  !important; flex: 0 0 calc(100% *  7/12 - var(--grid-gutter) *  5/12) !important; max-width: calc(100% *  7/12 - var(--grid-gutter) *  5/12) !important; }
.span-cols-8  { grid-column: span 8  !important; flex: 0 0 calc(100% *  8/12 - var(--grid-gutter) *  4/12) !important; max-width: calc(100% *  8/12 - var(--grid-gutter) *  4/12) !important; }
.span-cols-9  { grid-column: span 9  !important; flex: 0 0 calc(100% *  9/12 - var(--grid-gutter) *  3/12) !important; max-width: calc(100% *  9/12 - var(--grid-gutter) *  3/12) !important; }
.span-cols-10 { grid-column: span 10 !important; flex: 0 0 calc(100% * 10/12 - var(--grid-gutter) *  2/12) !important; max-width: calc(100% * 10/12 - var(--grid-gutter) *  2/12) !important; }
.span-cols-11 { grid-column: span 11 !important; flex: 0 0 calc(100% * 11/12 - var(--grid-gutter) *  1/12) !important; max-width: calc(100% * 11/12 - var(--grid-gutter) *  1/12) !important; }
.span-cols-12 { grid-column: span 12 !important; flex: 0 0 100% !important; max-width: 100% !important; }

@media (max-width: 1024px) {
	[class*="span-cols-"] {
		grid-column: span 12 !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}

@media (max-width: 767px) {
	[class*="span-cols-"] {
		grid-column: span 1 !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}

/* .keep-cols-tablet – verhindert das Kollabieren der Span-Klassen auf Tablet.
   Am Grid-Container vergeben damit span-cols-4 und span-cols-7 nebeneinander bleiben. */
@media (max-width: 1024px) {
	.keep-cols-tablet .span-cols-1  { grid-column: span 1  !important; flex: 0 0 calc(100% *  1/12 - var(--grid-gutter) * 11/12) !important; max-width: calc(100% *  1/12 - var(--grid-gutter) * 11/12) !important; }
	.keep-cols-tablet .span-cols-2  { grid-column: span 2  !important; flex: 0 0 calc(100% *  2/12 - var(--grid-gutter) * 10/12) !important; max-width: calc(100% *  2/12 - var(--grid-gutter) * 10/12) !important; }
	.keep-cols-tablet .span-cols-3  { grid-column: span 3  !important; flex: 0 0 calc(100% *  3/12 - var(--grid-gutter) *  9/12) !important; max-width: calc(100% *  3/12 - var(--grid-gutter) *  9/12) !important; }
	.keep-cols-tablet .span-cols-4  { grid-column: span 4  !important; flex: 0 0 calc(100% *  4/12 - var(--grid-gutter) *  8/12) !important; max-width: calc(100% *  4/12 - var(--grid-gutter) *  8/12) !important; }
	.keep-cols-tablet .span-cols-5  { grid-column: span 5  !important; flex: 0 0 calc(100% *  5/12 - var(--grid-gutter) *  7/12) !important; max-width: calc(100% *  5/12 - var(--grid-gutter) *  7/12) !important; }
	.keep-cols-tablet .span-cols-6  { grid-column: span 6  !important; flex: 0 0 calc(100% *  6/12 - var(--grid-gutter) *  6/12) !important; max-width: calc(100% *  6/12 - var(--grid-gutter) *  6/12) !important; }
	.keep-cols-tablet .span-cols-7  { grid-column: span 7  !important; flex: 0 0 calc(100% *  7/12 - var(--grid-gutter) *  5/12) !important; max-width: calc(100% *  7/12 - var(--grid-gutter) *  5/12) !important; }
	.keep-cols-tablet .span-cols-8  { grid-column: span 8  !important; flex: 0 0 calc(100% *  8/12 - var(--grid-gutter) *  4/12) !important; max-width: calc(100% *  8/12 - var(--grid-gutter) *  4/12) !important; }
	.keep-cols-tablet .span-cols-9  { grid-column: span 9  !important; flex: 0 0 calc(100% *  9/12 - var(--grid-gutter) *  3/12) !important; max-width: calc(100% *  9/12 - var(--grid-gutter) *  3/12) !important; }
	.keep-cols-tablet .span-cols-10 { grid-column: span 10 !important; flex: 0 0 calc(100% * 10/12 - var(--grid-gutter) *  2/12) !important; max-width: calc(100% * 10/12 - var(--grid-gutter) *  2/12) !important; }
	.keep-cols-tablet .span-cols-11 { grid-column: span 11 !important; flex: 0 0 calc(100% * 11/12 - var(--grid-gutter) *  1/12) !important; max-width: calc(100% * 11/12 - var(--grid-gutter) *  1/12) !important; }
	.keep-cols-tablet .span-cols-12 { grid-column: span 12 !important; flex: 0 0 100% !important; max-width: 100% !important; }
}

/* Grid Definitionen */
.grid-cols-2  { grid-template-columns: repeat(2,  minmax(0, 1fr)) !important; display: grid !important; }
.grid-cols-3  { grid-template-columns: repeat(3,  minmax(0, 1fr)) !important; display: grid !important; }
.grid-cols-4  { grid-template-columns: repeat(4,  minmax(0, 1fr)) !important; display: grid !important; }
.grid-cols-6  { grid-template-columns: repeat(6,  minmax(0, 1fr)) !important; display: grid !important; }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; display: grid !important; }

/* Number Grid – 2 Spalten auf Mobile · Copy-S Text */
.number-grid {
	container-type: inline-size;
}
@media (max-width: 767px) {
	.number-grid.e-con-grid,
	.number-grid .e-con-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
.number-grid p,
.number-grid .elementor-widget-text-editor p,
.number-grid .elementor-text-editor p {
	font-size: var(--text-copy-s) !important;
	letter-spacing: 0.01em !important;
}
/* Count Label – Fade-In nach Count-Up */
.count-label {
	opacity: 0;
	transition: opacity 1.2s ease;
}
.count-label.is-visible {
	opacity: 1;
}

/* Logo Row – Logos gleich hoch, flexibel breit */
.logo-row .elementor-widget-wrap,
.logo-row.elementor-widget-wrap {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: var(--space-m) !important;
}
.logo-row .elementor-widget-image {
	width: auto !important;
	flex: 0 0 auto !important;
}
.logo-row .elementor-widget-image a,
.logo-row .elementor-widget-image .elementor-widget-container {
	display: flex !important;
	align-items: center !important;
}
.logo-row .elementor-widget-image img,
.logo-row .elementor-image-img {
	width: auto !important;
	height: 60px !important;
	max-width: none !important;
	object-fit: contain !important;
	opacity: 0.45;
}
@media (max-width: 767px) {
	.logo-row .elementor-widget-image img,
	.logo-row .elementor-image-img {
		height: 40px !important;
	}
}
.elementor-editor-active .fade-in,
.elementor-editor-active .count-up {
	opacity: 1 !important;
}

/* Count-Up – Schriftgröße number-m */
.count-up .elementor-heading-title,
.count-up h1, .count-up h2, .count-up h3, .count-up h4 {
	font-size: 5.4rem !important;
	line-height: 1.1 !important;
	font-weight: 300 !important;
	letter-spacing: -0.02em !important;
}

/* Fade-In */
.fade-in {
	opacity: 0;
	transition: opacity 1.4s ease;
}

/* Footer Social Icons */
.elementor-widget-social-icons .elementor-grid,
.elementor-social-icons-wrapper.elementor-grid {
	--grid-row-gap: var(--space-s) !important;
	--grid-column-gap: var(--space-s) !important;
	gap: var(--space-s) !important;
	column-gap: var(--space-s) !important;
	row-gap: var(--space-s) !important;
}
.elementor-widget-social-icons .elementor-social-icon {
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	background: none !important;
	line-height: 1 !important;
}
.elementor-widget-social-icons .elementor-social-icon svg {
	width: 2rem !important;
	height: 2rem !important;
	display: block !important;
}

/* Footer Nav Menu – gap zwischen Items */
.elementor-location-footer .elementor-nav-menu {
	gap: var(--space-s) !important;
}
.row-gap { --row-gap: var(--space-l) !important; row-gap: var(--space-l) !important; }

@media (max-width: 1024px) {
	.grid-cols-3, .grid-cols-4, .grid-cols-6, .grid-cols-12 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.e-con.e-con-grid, .grid-cols-2, .grid-cols-3, .grid-cols-4, .grid-cols-6, .grid-cols-12 { 
		grid-template-columns: repeat(1, minmax(0, 1fr)) !important; 
	}
}

/* ==========================================================================
   5. Buttons
   ========================================================================== */

/* 1. BASIS (Für alle Buttons) */
.elementor-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-xl) !important;
	padding: 1.0rem 2.4rem !important; 
	transition: all 0.3s ease-in-out !important;
	font-weight: 600 !important;
	border: none !important;
}

/* 2. PRIMARY (Standard / Coral) */
.elementor-button {
	background-color: var(--color-coral) !important;
	color: var(--color-white) !important;
}

/* 3. SECONDARY (Ocean 8% / Ocean Text) */
.btn-secondary .elementor-button {
	background-color: var(--color-ocean-8) !important;
	color: var(--color-ocean) !important;
}

.btn-secondary .elementor-button .elementor-button-text {
	color: var(--color-ocean) !important;
}

/* 4. ICON-LOGIK */
/* 5. HOVER-ZUSTAND */
.elementor-button:hover,
.btn-secondary .elementor-button:hover {
	transform: scale(1.03) !important;
}

/* Arrow SVG – inline via Pseudoelement */
.btn-arrow .elementor-button .elementor-button-content-wrapper,
.btn-secondary-arrow .elementor-button .elementor-button-content-wrapper {
	display: flex !important;
	align-items: center !important;
	gap: 0.6em !important;
}
.btn-arrow .elementor-button .elementor-button-content-wrapper::after,
.btn-secondary-arrow .elementor-button .elementor-button-content-wrapper::after,
.btn-tertiary .elementor-button .elementor-button-content-wrapper::after {
	content: '' !important;
	display: inline-block !important;
	width: 1em !important;
	height: 1em !important;
	flex-shrink: 0 !important;
	background-color: currentColor !important;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z'/%3E%3C/svg%3E") !important;
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z'/%3E%3C/svg%3E") !important;
	-webkit-mask-size: contain !important;
	mask-size: contain !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	transition: transform 0.2s ease !important;
}
.btn-arrow .elementor-button:hover .elementor-button-content-wrapper::after,
.btn-secondary-arrow .elementor-button:hover .elementor-button-content-wrapper::after,
.btn-tertiary .elementor-button:hover .elementor-button-content-wrapper::after {
	transform: none !important;
}

/* Secondary Arrow – erbt btn-secondary Stil */
.btn-secondary-arrow .elementor-button {
	background-color: var(--color-ocean-8) !important;
	color: var(--color-ocean) !important;
}
.btn-secondary-arrow .elementor-button .elementor-button-text {
	color: var(--color-ocean) !important;
}
.btn-secondary-arrow .elementor-button .elementor-button-content-wrapper {
	display: flex !important;
	align-items: center !important;
	gap: 0.6em !important;
}
.is-dark-mode .btn-secondary-arrow .elementor-button {
	background-color: var(--color-white-20) !important;
	color: var(--color-white) !important;
}
.is-dark-mode .btn-secondary-arrow .elementor-button .elementor-button-text {
	color: var(--color-white) !important;
}
.is-dark-mode .btn-secondary-arrow .elementor-button:hover {
	background-color: var(--color-white-20) !important;
	color: var(--color-white) !important;
}

.btn-tertiary .elementor-button .elementor-button-content-wrapper::after {
	width: 2.4rem !important;
	height: 2.4rem !important;
}
.btn-tertiary .elementor-button {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	box-shadow: none !important;
	color: var(--color-ocean) !important;
	font-size: var(--text-nav) !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	min-height: unset !important;
	text-transform: uppercase !important;
}
.btn-tertiary .elementor-button .elementor-button-content-wrapper {
	display: flex !important;
	align-items: center !important;
	gap: 0.6em !important;
}
.btn-tertiary .elementor-button:hover {
	background: none !important;
	transform: scale(1.03) !important;
	opacity: 1 !important;
}
.is-dark-mode .btn-tertiary .elementor-button {
	color: var(--color-white) !important;
}

/* ==========================================================================
   6. Stacks
   ========================================================================== */

.btn-stack {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	--gap: var(--space-xs) !important;
	--column-gap: var(--space-xs) !important;
	gap: var(--space-xs) !important;
}

@media (max-width: 480px) {
	.btn-stack {
		flex-direction: column !important;
		align-items: flex-start !important;
	}
}

.stack-xs { 
	gap: var(--space-xs) !important;
	row-gap: var(--space-xs) !important;
}

.stack-s { 
	gap: var(--space-s) !important;
	row-gap: var(--space-s) !important;
}

.stack-m { 
	gap: var(--space-m) !important;
	row-gap: var(--space-m) !important;
}

.stack-l { 
	gap: var(--space-l) !important;
	row-gap: var(--space-l) !important;
}

.stack-xl { 
	gap: var(--space-xl) !important;
	row-gap: var(--space-xl) !important;
}

.stack-xxl { 
	gap: var(--space-xxl) !important;
	row-gap: var(--space-xxl) !important;
}

/* ==========================================================================
   7. Utilities
   ========================================================================== */

/* Line Left – farbige Border links mit Abstand zum Inhalt */
.line-left-blue,
.line-left-coral,
.line-left-light {
	border-left-style: solid !important;
	border-left-width: var(--icon-stroke) !important;
	padding-left: var(--space-s) !important;
}
.line-left-blue  { border-left-color: var(--color-sea)   !important; }
.line-left-coral { border-left-color: var(--color-coral) !important; }
.line-left-light { border-left-color: var(--color-ocean-8) !important; }
.is-dark-mode .line-left-light { border-left-color: var(--color-white-20) !important; }

/* Inline Text Links – innerhalb von p */
p a {
	text-decoration: none !important;
	color: inherit !important;
	padding-bottom: 2px !important;
	background-image: linear-gradient(var(--color-coral), var(--color-coral)) !important;
	background-size: 0% var(--icon-stroke) !important;
	background-repeat: no-repeat !important;
	background-position: left bottom !important;
	transition: color 0.3s ease, background-size 0.3s ease !important;
}
p a:hover {
	color: var(--color-coral) !important;
	background-size: 100% var(--icon-stroke) !important;
}

/* Width & Flex Utilities */
.w-auto { width: auto !important; flex: 0 0 auto !important; }
.w-full { width: 100% !important; }

/* No Horizontal Padding – bricht aus dem Grid-Padding der is-site-wide Sektion heraus */
.no-h-padding {
	width: 100vw !important;
	margin-left: calc(-1 * var(--grid-margin)) !important;
	margin-right: calc(-1 * var(--grid-margin)) !important;
	max-width: 100vw !important;
	padding: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Section Padding Utilities – siehe .e-con.e-parent.is-site-wide.no-padding-* oben */

/* Padding-L rundum – für Content-Container */
.padding-l,
.padding-l.e-con {
	padding: var(--space-l) !important;
}
.padding-l > .e-con-inner {
	padding: 0 !important;
	width: 100% !important;
}

.padding-m,
.padding-m.e-con {
	padding: var(--space-m) !important;
}
.padding-m > .e-con-inner {
	padding: 0 !important;
	width: 100% !important;
}

.padding-s,
.padding-s.e-con {
	padding: var(--space-s) !important;
}
.padding-s > .e-con-inner {
	padding: 0 !important;
	width: 100% !important;
}

/* Cols Equal – alle direkten Widgets teilen den Platz gleichmäßig */
.cols-equal {
	display: flex !important;
	flex-direction: row !important;
}
.cols-equal > .elementor-widget {
	flex: 1 1 0% !important;
	min-width: 0 !important;
	max-width: none !important;
	width: auto !important;
}
.cols-equal > .elementor-widget .elementor-widget-container,
.cols-equal > .elementor-widget .elementor-image {
	width: 100% !important;
	max-width: none !important;
}
.cols-equal > .elementor-widget img {
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	display: block !important;
}

/* Cols Auto – erstes Widget behält seine Größe, letztes füllt den Rest */
.cols-auto {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
}
.cols-auto > .elementor-widget {
	flex: 0 0 auto !important;
	min-width: 0 !important;
}
.cols-auto > .elementor-widget:last-child {
	flex: 1 1 0% !important;
	max-width: none !important;
	width: auto !important;
}

/* No Gap – entfernt Grid-Gutter auf einem Container */
.no-gutter,
.no-gutter.e-con {
	--gap: 0px !important;
	--grid-gutter: 0px !important;
	gap: 0 !important;
	column-gap: 0 !important;
	row-gap: 0 !important;
}


/* Image Fill – Bild füllt den Container in voller Höhe */
.image-fill {
	align-self: stretch !important;
	height: auto !important;
	min-height: 100% !important;
}
.image-fill .elementor-widget-container,
.image-fill .elementor-image {
	height: 100% !important;
	min-height: 100% !important;
}
.image-fill img {
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
	display: block !important;
}

/* Fill Container – Element füllt den Container in voller Höhe */
.fill-container,
.fill-container.e-con,
.fill-container.e-con-full {
	align-self: stretch !important;
	flex-grow: 1 !important;
	height: 100% !important;
}
.fill-container > .e-con-inner {
	height: 100% !important;
	flex-grow: 1 !important;
	padding: 0 !important;
}
/* Parent-Container muss stretch weitergeben – alle Ebenen */
.e-con:has(.fill-container),
.e-con-full:has(.fill-container) {
	align-items: stretch !important;
}
.e-con:has(> .e-con-inner > .fill-container) > .e-con-inner,
.e-con-full:has(> .e-con-inner > .fill-container) > .e-con-inner,
.e-con-boxed:has(.fill-container) > .e-con-inner {
	align-items: stretch !important;
	flex-direction: row !important;
	height: 100% !important;
}
.fill-container .elementor-widget-container,
.fill-container .elementor-image,
.fill-container .elementor-widget-image {
	height: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	flex-grow: 1 !important;
}
.fill-container img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	flex: 1 !important;
	min-height: 0 !important;
}
@media (max-width: 767px) {
	.fill-container,
	.fill-container.e-con,
	.fill-container.e-con-full {
		min-height: 60vw !important;
		height: auto !important;
	}
	.padding-l.e-con {
		padding: var(--space-s) !important;
	}
}
@media (max-width: 1024px) {
}

/* .img-cover – Bild mit fester Höhe und object-fit: cover
   Für Bilder innerhalb von gemischten Containern (Text + Bild)
   Kein Einfluss auf Parent-Container, keine flex-grow Änderung */
.img-cover .elementor-widget-container,
.img-cover .elementor-image {
	width: 100% !important;
}
.img-cover img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

/* 7.2 Aspect-Ratio – NEU */
.ratio-16-9 { aspect-ratio: 16 / 9 !important; }
.ratio-4-3  { aspect-ratio: 4  / 3 !important; }
.ratio-3-2  { aspect-ratio: 3  / 2 !important; }
.ratio-1-1  { aspect-ratio: 1  / 1 !important; }

.ratio-16-9 img,
.ratio-4-3  img,
.ratio-3-2  img,
.ratio-1-1  img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* 7.4 Logo Marquee
   
   Aufbau in Elementor:
   1. Äußerer Container: Klasse .logo-marquee + .is-site-wide
   2. Innerer Container: Klasse .logo-marquee__track (Flex, horizontal, kein Wrap)
   3. Jedes Logo: Bild-Widget in eigenem Container mit Klasse .logo-marquee__item
   
   Der Track wird automatisch per JS geklont – Logos nur einmal pflegen.
   Geschwindigkeit: .is-slow (60s) / Standard (40s) / .is-fast (20s)
   ========================================================================== */

@keyframes marquee-scroll {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.logo-marquee {
	overflow: hidden !important;
	width: 100% !important;
	max-width: 100% !important;
	--marquee-duration: 40s;
}

/* Wrapper wird per JS erstellt und animiert */
.logo-marquee__wrapper {
	display: flex !important;
	flex-wrap: nowrap !important;
	width: max-content !important;
	animation: marquee-scroll var(--marquee-duration, 40s) linear infinite !important;
}

.logo-marquee .logo-marquee__track,
.logo-marquee .logo-marquee__clone {
	display: flex !important;
	flex-wrap: nowrap !important;
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	width: max-content !important;
	max-width: none !important;
	min-width: unset !important;
	align-items: center !important;
	gap: var(--space-l) !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: var(--space-l) !important;
	animation: none !important;
	overflow: visible !important;
}

.logo-marquee .logo-marquee__item {
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	width: auto !important;
	min-width: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
}

.logo-marquee .logo-marquee__item > .elementor-widget-wrap,
.logo-marquee .logo-marquee__item > .e-con-inner {
	width: auto !important;
	padding: 0 !important;
}

.logo-marquee .logo-marquee__item img,
.logo-marquee .logo-marquee__item .elementor-widget-image img {
	height: 10.0rem !important;
	width: auto !important;
	max-width: none !important;
	min-width: unset !important;
	object-fit: contain !important;
	opacity: 0.45;
	filter: grayscale(100%) !important;
	display: block !important;
}
.logo-marquee .logo-marquee__item .elementor-widget-container,
.logo-marquee .logo-marquee__item figure {
	width: auto !important;
	max-width: none !important;
	line-height: 0;
}

.is-dark-mode .logo-marquee .logo-marquee__item img,
.is-dark-mode .logo-marquee .logo-marquee__item .elementor-widget-image img {
	filter: grayscale(100%) brightness(10) !important;
}

.logo-marquee.is-slow { --marquee-duration: 60s; }
.logo-marquee.is-fast { --marquee-duration: 20s; }

@media (prefers-reduced-motion: reduce) {
	.logo-marquee .logo-marquee__track {
		animation: none !important;
	}
}
.divider {
	width: 100% !important;
	height: 1px !important;
	background-color: var(--color-ocean-8) !important;
	border: none !important;
	margin: 0 !important;
}

.elementor-widget-divider {
	padding-top: var(--space-l) !important;
	padding-bottom: var(--space-l) !important;
}
.elementor-widget-divider .elementor-divider-separator {
	border-top: 1px solid var(--color-ocean-8) !important;
	width: 100% !important;
}

.is-dark-mode .divider,
.is-dark-mode .elementor-widget-divider .elementor-divider-separator {
	background-color: var(--color-white-20) !important;
	border-top-color: var(--color-white-20) !important;
}



/* ==========================================================================
   9. Footer
   ========================================================================== */

/* ── Footer ── */
.elementor-location-footer .e-con.e-parent {
	background-color: var(--color-ocean) !important;
}
.elementor-location-footer .e-con-boxed > .e-con-inner > .e-con {
	--container-default-padding-top: 0px !important;
	--container-default-padding-right: 0px !important;
	--container-default-padding-bottom: 0px !important;
	--container-default-padding-left: 0px !important;
	padding: 0 !important;
}
.elementor-location-footer .e-con-boxed > .e-con-inner > .e-con > .e-con-inner {
	padding: 0 !important;
}
.elementor-location-footer a,
.elementor-location-footer a.elementor-item,
.elementor-location-footer a.elementor-item:active,
.elementor-location-footer a.elementor-item.elementor-item-active {
	font-family: var(--primary-font) !important;
	font-size: var(--text-nav) !important;
	line-height: 1.2 !important;
	font-weight: 400 !important;
	color: var(--color-white) !important;
	opacity: 0.4 !important;
	text-decoration: none !important;
	display: inline-block !important;
	background-image: linear-gradient(var(--color-white), var(--color-white)) !important;
	background-size: 0% var(--icon-stroke) !important;
	background-repeat: no-repeat !important;
	background-position: left bottom !important;
	padding: 0 0 2px 0 !important;
	margin-bottom: var(--space-xs) !important;
	box-shadow: none !important;
	hyphens: auto !important;
	-webkit-hyphens: auto !important;
	transition: opacity 0.3s ease, background-size 0.3s ease !important;
}
.elementor-location-footer a.elementor-item:hover {
	opacity: 1 !important;
	color: var(--color-white) !important;
	background-size: 100% var(--icon-stroke) !important;
}
.elementor-location-footer a:hover { opacity: 1 !important; }
.elementor-location-footer a::after,
.elementor-location-footer a:hover::after,
.elementor-location-footer a:active::after,
.elementor-location-footer .elementor-item::after {
	display: none !important;
	content: none !important;
	width: 0 !important;
	height: 0 !important;
}

/* ==========================================================================
   10. Header
   ========================================================================== */

/* ── Header – vollständig CSS-gesteuert ── */

/* Hintergrund & Breite */
.elementor-location-header {
	background-color: var(--color-ocean) !important;
	position: relative !important;
}
.elementor-location-header .e-con.e-parent {
	background-color: var(--color-ocean) !important;
	max-width: var(--site-width) !important;
	padding-top: var(--space-s) !important;
	padding-bottom: var(--space-s) !important;
	padding-left: var(--grid-gutter) !important;
	padding-right: var(--grid-gutter) !important;
	margin: 0 auto !important;
}
.elementor-location-header .e-con.e-parent > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 0 !important;
	gap: 0 !important;
	flex-wrap: nowrap !important;
}

/* Logo – immer 200px */
.elementor-location-header .elementor-widget-theme-site-logo {
	flex-shrink: 0 !important;
	width: 200px !important;
	max-width: 200px !important;
}
.elementor-location-header .elementor-widget-theme-site-logo img {
	width: 200px !important;
	max-width: 200px !important;
	height: auto !important;
}

/* Nav-Links */
.elementor-location-header .elementor-nav-menu a,
.elementor-location-header .elementor-nav-menu a.elementor-item,
.elementor-location-header .elementor-nav-menu a.elementor-item-active,
.elementor-location-header .elementor-nav-menu a.elementor-item-anchor {
	font-family: var(--primary-font) !important;
	font-size: var(--text-nav) !important;
	line-height: 1.2 !important;
	font-weight: 500 !important;
	color: var(--color-white) !important;
	text-decoration: none !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	transition: opacity 0.2s ease-in-out !important;
}
.elementor-location-header .elementor-nav-menu a:hover,
.elementor-location-header .elementor-nav-menu .elementor-item:hover {
	opacity: 0.8 !important;
	color: var(--color-white) !important;
	background: none !important;
}
.elementor-location-header .elementor-nav-menu a:active,
.elementor-location-header .elementor-nav-menu a.elementor-item-active {
	opacity: 1 !important;
	color: var(--color-white) !important;
	background: none !important;
}

/* Nav-Button Ausnahme – überschreibt Header-Nav-Regeln */
.elementor-location-header .elementor-nav-menu .nav-button > a,
.elementor-location-header .elementor-nav-menu .nav-button > a.elementor-item,
.elementor-location-header .elementor-nav-menu .nav-button > a.elementor-item-active {
	background-color: var(--color-coral) !important;
	color: var(--color-white) !important;
	border-radius: var(--radius-xl) !important;
	padding: 0.8rem 2rem !important;
	opacity: 1 !important;
	border: none !important;
}
.elementor-location-header .elementor-nav-menu .nav-button > a:hover,
.elementor-location-header .elementor-nav-menu .nav-button:hover > a {
	background-color: var(--color-coral) !important;
	color: var(--color-white) !important;
	padding: 0.8rem 2rem !important;
	opacity: 0.85 !important;
}

/* Alle Nav-Items – gleiches Padding damit kein Ruckeln beim aktiven Item */
.elementor-location-header .elementor-nav-menu li > a.elementor-item {
	padding: 0.8rem 2rem !important;
	border-radius: var(--radius-xl) !important;
}


/* Aktiver Menüpunkt – Border */
.elementor-location-header .elementor-nav-menu li.current-menu-item > a.elementor-item,
.elementor-location-header .elementor-nav-menu li.current-menu-ancestor > a.elementor-item,
.elementor-location-header .elementor-nav-menu li.current_page_item > a.elementor-item,
.elementor-location-header .elementor-nav-menu li.current-menu-item > a.elementor-item-active,
.elementor-location-header .elementor-nav-menu li.current_page_item > a.elementor-item-active {
	border: 1px solid rgba(255,255,255,0.4) !important;
	border-radius: var(--radius-xl) !important;
	padding: 0.7rem 1.9rem !important;
	opacity: 1 !important;
}
/* Hover – dezentere Border */
.elementor-location-header .elementor-nav-menu li:not(.nav-button) > a.elementor-item:hover {
	border: 1px solid rgba(255,255,255,0.2) !important;
	border-radius: var(--radius-xl) !important;
	padding: 0.7rem 1.9rem !important;
	opacity: 1 !important;
}

/* Nav-Button vom aktiven Stil ausschliessen */
.elementor-location-header .elementor-nav-menu li.nav-button.current-menu-item > a,
.elementor-location-header .elementor-nav-menu li.nav-button.current_page_item > a {
	background: var(--color-coral) !important;
}

/* Unterlinie entfernen */
.elementor-location-header a::after,
.elementor-location-header a:hover::after,
.elementor-location-header .elementor-item::after {
	display: none !important;
	content: none !important;
	width: 0 !important;
	height: 0 !important;
}

/* Desktop Nav Liste */
.elementor-location-header .elementor-nav-menu,
.elementor-location-header .elementor-nav-menu > ul {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: var(--space-xxs) !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.elementor-location-header .elementor-widget-nav-menu {
	height: auto !important;
	align-self: center !important;
}
.elementor-location-header .elementor-widget-nav-menu .e-con-inner,
.elementor-location-header .elementor-widget-nav-menu .elementor-widget-container {
	height: auto !important;
	align-items: center !important;
}

/* Desktop: kein Burger – komplett aus dem Flow */
@media (min-width: 1025px) {
	.elementor-location-header .elementor-menu-toggle {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
		position: absolute !important;
	}
}

/* Tablet & Mobile: kein Text-Menü, nur Burger */
@media (max-width: 1024px) {
	.elementor-location-header .elementor-nav-menu--main {
		display: none !important;
	}
	/* Elementor Mobile-Variablen überschreiben */
	.elementor-location-header .e-con.e-parent {
		--flex-direction: row !important;
		--flex-wrap: wrap !important;
		--flex-wrap-mobile: wrap !important;
		--align-items: center !important;
		--justify-content: space-between !important;
	}
	.elementor-location-header .e-con.e-parent > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: flex-start !important;
		justify-content: space-between !important;
	}
	/* Logo – Zeile 1 links */
	.elementor-location-header .elementor-widget-theme-site-logo {
		flex: 0 0 auto !important;
		width: 200px !important;
		order: 1 !important;
	}
	/* WordPress-Menü Widget – Zeile 1 rechts */
	.elementor-location-header .elementor-widget-wp-widget-nav_menu {
		flex: 0 0 auto !important;
		width: auto !important;
		max-width: none !important;
		order: 2 !important;
		--container-widget-width: auto !important;
		--container-widget-flex-grow: 0 !important;
	}
	.elementor-location-header .elementor-widget-wp-widget-nav_menu .elementor-widget-container {
		width: auto !important;
		height: auto !important;
	}
}

/* Burger Toggle Stil */
.elementor-location-header .elementor-nav-menu--toggle,
.elementor-location-header .elementor-menu-toggle {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: auto !important;
	min-height: unset !important;
	color: var(--color-white) !important;
}
.elementor-location-header .elementor-menu-toggle svg,
.elementor-location-header .elementor-menu-toggle i,
.elementor-location-header .elementor-menu-toggle .eicon-menu-bar,
.elementor-location-header .elementor-menu-toggle .eicon-close {
	color: var(--color-white) !important;
	fill: var(--color-white) !important;
	stroke: var(--color-white) !important;
}

@media (max-width: 1024px) {
	/* e-con-inner: Logo oben ausrichten */
	.elementor-location-header .e-con.e-parent > .e-con-inner {
		align-items: flex-start !important;
	}
	/* Nav-Widget – nur so breit wie Burger, oben ausrichten */
	.elementor-location-header .elementor-widget-nav-menu {
		flex: 0 0 auto !important;
		width: auto !important;
		height: auto !important;
		overflow: visible !important;
		order: 2 !important;
		margin-left: auto !important;
	}
	/* Burger/X rechtsbündig */
	.elementor-location-header .elementor-widget-nav-menu .elementor-widget-container {
		display: flex !important;
		flex-direction: row !important;
		justify-content: flex-end !important;
		width: 100% !important;
	}
	.elementor-location-header .elementor-widget-nav-menu .elementor-widget-container .elementor-nav-menu--toggle.elementor-menu-toggle {
		margin-left: auto !important;
		align-self: flex-start !important;
	}
	.elementor-location-header .elementor-menu-toggle {
		display: flex !important;
		width: auto !important;
		height: auto !important;
		color: var(--color-white) !important;
		align-self: flex-start !important;
	}
	/* post-27.css override – align-self: center entfernen */
	.elementor-location-header .elementor-widget-nav-menu {
		--align-self: flex-start !important;
	}
	.elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle,
	.elementor-location-header .elementor-nav-menu--toggle {
		align-self: flex-start !important;
		margin-left: auto !important;
	}
}

/* Dropdown – geschlossen */
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="true"] {
	display: none !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* Dropdown Mobile – gezielt Hintergrund und Zentrierung */
@media (max-width: 1024px) {
	.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		background-color: var(--color-ocean) !important;
		width: 100vw !important;
		margin-left: calc(-1 * var(--grid-margin)) !important;
	}
	.elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu {
		flex-direction: column !important;
		align-items: center !important;
		gap: var(--space-xs) !important;
	}
	.elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
		text-align: center !important;
		color: var(--color-white) !important;
		width: 100% !important;
	}
}

/* ==========================================================================
   11. Akkordeon
   ========================================================================== */

/* Border & Padding auf Titel – Padding hier damit Animation smooth bleibt */
.e-n-accordion-item-title {
	--n-accordion-border-width: 0px !important;
	border: none !important;
	border-color: transparent !important;
	padding-top: var(--space-m) !important;
	padding-bottom: var(--space-m) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Content-Container – kein Rahmen */
.e-n-accordion-item > div,
.e-n-accordion-item .e-con,
.e-n-accordion-item .e-con-inner {
	border: none !important;
	box-shadow: none !important;
}

/* Titel-Text – H3 Stil */
.e-n-accordion-item-title-text {
	font-family: var(--primary-font) !important;
	font-size: var(--text-h3) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em !important;
	color: var(--color-ocean) !important;
}

/* Items – nur Divider, kein Padding */
.e-n-accordion-item {
	border: none !important;
	border-bottom: 1px solid var(--color-ocean-8) !important;
	padding: 0 !important;
}

.e-n-accordion-item:first-child {
	border-top: 1px solid var(--color-ocean-8) !important;
}

/* Inhalt – Abstand nach unten */
.e-n-accordion-item > [role="region"] {
	padding-bottom: var(--space-m) !important;
	transition: var(--transition-accordion) !important;
}

.e-n-accordion {
	--n-accordion-animation-duration: 200ms !important;
}

/* Dark Mode */
.is-dark-mode .e-n-accordion-item {
	border-bottom-color: var(--color-white-20) !important;
}
.is-dark-mode .e-n-accordion-item:first-child {
	border-top-color: var(--color-white-20) !important;
}
.is-dark-mode .e-n-accordion-item-title-text {
	color: var(--color-white) !important;
}

/* .more-info – Akkordeon-Variante mit H4-Titeln, Ocean-8 Hintergrund & Padding-L */
.more-info .e-n-accordion-item-title-text {
	font-size: var(--text-h4) !important;
}
.more-info .e-n-accordion-item,
.elementor-widget-n-accordion.more-info .e-n-accordion-item {
	background-color: var(--color-ocean-8) !important;
	padding-left: var(--space-m) !important;
	padding-right: var(--space-m) !important;
	border: none !important;
	border-top: none !important;
	border-bottom: none !important;
}
.more-info .e-n-accordion-item:first-child,
.elementor-widget-n-accordion.more-info .e-n-accordion-item:first-child {
	border-top: none !important;
}
.more-info.elementor-widget-n-accordion,
.more-info .e-n-accordion {
	border-top: none !important;
}
.more-info .e-n-accordion::before {
	display: none !important;
	content: none !important;
	border: none !important;
}
.more-info .e-n-accordion-item > .e-con-inner {
	padding: 0 !important;
}
.more-info details.e-n-accordion-item {
	border: none !important;
	border-top: none !important;
	border-bottom: none !important;
}

/* ==========================================================================
   12. Testimonial Carousel
   ========================================================================== */

/* Swiper darf über den Container hinausragen */
.elementor-widget-testimonial-carousel,
.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-testimonial-carousel .swiper-wrapper {
	overflow: visible !important;
}

/* Kein zusätzliches Padding */
.elementor-widget-testimonial-carousel .elementor-main-swiper {
	padding: 0 !important;
	width: 100% !important;
}

/* Kein Padding auf dem Slide selbst */
.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-testimonial-carousel .elementor-testimonial,
.elementor-widget-testimonial-carousel .elementor-testimonial__content,
.elementor-widget-testimonial-carousel .elementor-testimonial__footer {
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Navigation-Buttons */
.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .elementor-swiper-button-next {
	color: var(--color-ocean) !important;
}

/* Max-Cols Utilities – begrenzt die maximale Breite auf N Spalten
   Nützlich für Text-Blöcke, Hero-Content etc.
   Wird ab einer gewissen Breite full-width */
.max-cols-4  { max-width: calc(4  * var(--col-width) + 3  * var(--grid-gutter)) !important; width: 100% !important; }
.max-cols-5  { max-width: calc(5  * var(--col-width) + 4  * var(--grid-gutter)) !important; width: 100% !important; }
.max-cols-6  { max-width: calc(6  * var(--col-width) + 5  * var(--grid-gutter)) !important; width: 100% !important; }
.max-cols-7  { max-width: calc(7  * var(--col-width) + 6  * var(--grid-gutter)) !important; width: 100% !important; }
.max-cols-8  { max-width: calc(8  * var(--col-width) + 7  * var(--grid-gutter)) !important; width: 100% !important; }
.max-cols-10 { max-width: calc(10 * var(--col-width) + 9  * var(--grid-gutter)) !important; width: 100% !important; }

.hero-section {
	position: relative !important;
	min-height: 80vh !important;
	display: flex !important;
	align-items: flex-end !important;
	padding-top: var(--space-xl) !important;
	padding-bottom: var(--space-xl) !important;
	overflow: hidden !important;
}

/* Hintergrundbild als Pseudo-Element – bewegbar per transform */
.hero-section::after {
	content: '' !important;
	position: absolute !important;
	inset: -20% 0 !important;
	background-image: inherit !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	z-index: 0 !important;
	will-change: transform !important;
}

/* Gradient Overlay – über dem Parallax-Bild */
.hero-section::before {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	background: linear-gradient(
		to right,
		rgba(10, 23, 65, 0.75) 0%,
		rgba(10, 23, 65, 0.4) 50%,
		rgba(10, 23, 65, 0.1) 100%
	) !important;
	z-index: 1 !important;
}

/* Content links unten */
.hero-section > .e-con-inner {
	position: relative !important;
	z-index: 2 !important;
	width: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-end !important;
}

.hero-section .e-con-inner > .e-con {
	align-self: flex-start !important;
}

/* Texte & Headlines im Hero weiß */
.hero-section h1,
.hero-section h2,
.hero-section h3,
.hero-section h4,
.hero-section h5,
.hero-section .elementor-heading-title {
	color: var(--color-white) !important;
}

/* Eyebrow-Text */
.hero-eyebrow,
.hero-eyebrow .elementor-heading-title {
	font-size: var(--text-copy-s) !important;
	font-weight: 400 !important;
	color: rgba(255, 255, 255, 0.7) !important;
	letter-spacing: 0.02em !important;
}

/* Copy im Hero */
.hero-section .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.85) !important;
	font-size: var(--text-copy-m) !important;
}

/* Parallax auf Mobile deaktivieren */
@media (max-width: 1024px) {
	.hero-section,
	.scroll-effect {
		background-position: center center !important;
	}
}

/* .scroll-effect – Parallax-Hintergrundbild für beliebige Sektionen */
.scroll-effect {
	position: relative !important;
	background-size: cover !important;
	background-position: center 30% !important;
	background-repeat: no-repeat !important;
	overflow: hidden !important;
}

/* ==========================================================================
   13. Checklist · Elementor Icon List Widget
   ========================================================================== */

/* Liste – flex, wrap, zentriert */
.checklist .elementor-icon-list-items {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	column-gap: var(--space-xs) !important;
	row-gap: var(--space-xs) !important;
	padding: 0 !important;
	margin: 0 !important;
	margin-inline: 0 !important;
}

/* Einzelnes Item – Pill */
.checklist .elementor-icon-list-item {
	display: inline-flex !important;
	align-items: center !important;
	gap: 1.2rem !important;
	background: var(--color-grey-8, rgba(10, 23, 65, 0.06)) !important;
	border-radius: var(--radius-xl) !important;
	padding: 1.0rem 2.0rem !important;
	white-space: nowrap !important;
	margin: 0 !important;
}

/* Icon – 24px, kein Margin */
.checklist .elementor-icon-list-icon {
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	margin: 0 !important;
	margin-inline-end: 0 !important;
}

.checklist .elementor-icon-list-icon svg,
.checklist .elementor-icon-list-icon i {
	width: 2.4rem !important;
	height: 2.4rem !important;
	color: var(--color-ocean) !important;
	font-size: 2.4rem !important;
	margin: 0 !important;
}

/* Text – identisch mit Button Label */
.checklist .elementor-icon-list-text {
	font-family: var(--primary-font) !important;
	font-size: 1.6rem !important;
	font-weight: 600 !important;
	color: var(--color-ocean) !important;
	line-height: 1.2 !important;
	letter-spacing: 0.005em !important;
	padding: 0 !important;
	margin: 0 !important;
}

@media (max-width: 767px) {
	.checklist .elementor-icon-list-items {
		justify-content: flex-start !important;
		row-gap: var(--space-xs) !important;
	}
	/* Überschreibt Elementors margin-inline: calc(50px / 2) auf inline items */
	body .checklist .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item,
	body .checklist .elementor-inline-items .elementor-icon-list-item {
		margin-inline-start: 0 !important;
		margin-inline-end: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

/* List H3 – Icon List Widget Items in H3 Stil */
.list-h3 .elementor-icon-list-items,
body .list-h3 ul.elementor-icon-list-items {
	--icon-vertical-effect: var(--space-s) !important;
	gap: var(--space-s) !important;
	row-gap: var(--space-s) !important;
}
.list-h3 .elementor-icon-list-item {
	padding-bottom: var(--space-s) !important;
}
.list-h3 .elementor-icon-list-item:last-child {
	padding-bottom: 0 !important;
}
.list-h4 .elementor-icon-list-items,
body .list-h4 ul.elementor-icon-list-items {
	--icon-vertical-effect: var(--space-xs) !important;
	gap: var(--space-xs) !important;
	row-gap: var(--space-xs) !important;
}
.list-h4 .elementor-icon-list-item {
	padding-bottom: var(--space-xs) !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
}
.list-h4 .elementor-icon-list-item:last-child {
	padding-bottom: 0 !important;
}
.list-h3 .elementor-icon-list-text {
	font-size: var(--text-h3) !important;
	line-height: 1.2 !important;
	font-weight: 400 !important;
	letter-spacing: 0.01em !important;
	color: var(--color-ocean) !important;
}
.is-dark-mode .list-h3 .elementor-icon-list-text {
	color: var(--color-white) !important;
}

/* List H4 – Icon List Widget Items in H4 Stil */
.list-h4 .elementor-icon-list-text {
	font-size: var(--text-h4) !important;
	line-height: 1.2 !important;
	font-weight: 400 !important;
	letter-spacing: 0.01em !important;
	color: var(--color-ocean) !important;
}
.is-dark-mode .list-h4 .elementor-icon-list-text {
	color: var(--color-white) !important;
}
	background: rgba(255, 255, 255, 0.08) !important;
}
.is-dark-mode .checklist .elementor-icon-list-icon svg,
.is-dark-mode .checklist .elementor-icon-list-icon i {
	color: var(--color-white) !important;
}
.is-dark-mode .checklist .elementor-icon-list-text {
	color: var(--color-white) !important;
}

.elementor-button:focus-visible {
	outline: 2px solid var(--color-coral) !important;
	outline-offset: 3px !important;
}

.is-dark-mode .elementor-button:focus-visible {
	outline-color: var(--color-white) !important;
}

a:focus-visible {
	outline: 2px solid var(--color-coral) !important;
	outline-offset: 2px !important;
	border-radius: var(--radius-s) !important;
}

@media (prefers-reduced-motion: reduce) {
	.elementor-button {
		transition: none !important;
	}
}



/* Slider Headline → H3 Stil */
.elementor-slide-heading {
	font-family: var(--primary-font) !important;
	font-size: var(--text-h3) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em !important;
}


/* ==========================================================================
   14. Read More – Details/Summary Toggle
   ========================================================================== */

.read-more {
	border: none;
}

/* Standard-Dreieck entfernen */
.read-more__toggle {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	color: var(--color-ocean);
	font-family: var(--primary-font);
	font-size: var(--text-copy);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	user-select: none;
}
.read-more__toggle::-webkit-details-marker { display: none; }


/* Label-Switching */
.read-more__label-less { display: none; }
.read-more[open] .read-more__label-more { display: none; }
.read-more[open] .read-more__label-less { display: inline; }

/* Inhalt */
.read-more__content {
	margin-top: var(--space-s);
}
.read-more__content > * {
	margin-top: var(--space-s);
	margin-bottom: 0;
}
.read-more__content > *:first-child {
	margin-top: 0;
}
.read-more__content ol,
.read-more__content ul {
	padding-left: 1.6rem;
}

/* Call-out – gleicher Stil wie CTA Widget · am Container vergeben */
.call-out,
.call-out.e-con {
	background-color: var(--color-ocean-8) !important;
	border-radius: var(--radius-l) !important;
	overflow: hidden !important;
	padding: var(--space-s) !important;
}
.is-dark-mode .call-out,
.is-dark-mode .call-out.e-con {
	background-color: var(--color-white-20) !important;
}

/* ==========================================================================
   15. Call to Action Widget
   ========================================================================== */

.elementor-cta {
	border-radius: var(--radius-l) !important;
	overflow: hidden !important;
}
.elementor-cta__content {
	background-color: var(--color-ocean-8) !important;
}
/* .person – Profilbild mit 1:1 Ratio und rundem Radius */
.person,
.person.elementor-widget-image {
	width: fit-content !important;
	flex-shrink: 0 !important;
}
.person img,
.person .elementor-image img {
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	border-radius: var(--radius-xl) !important;
	display: block !important;
}

.elementor-cta__description {
	font-family: var(--primary-font) !important;
	font-size: var(--text-copy) !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--color-ocean) !important;
}
/* .person – Profilbild mit 1:1 Ratio und rundem Radius */
.person,
.person.elementor-widget-image {
	width: fit-content !important;
	flex-shrink: 0 !important;
}
.person img,
.person .elementor-image img {
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	border-radius: var(--radius-xl) !important;
	display: block !important;
}

.elementor-cta__description {
	font-family: var(--primary-font) !important;
	font-size: var(--text-copy) !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--color-ocean) !important;
}

/* ==========================================================================
   16. Nav Button – Menüpunkt als Primary Button
   ========================================================================== */

/* Styles sind direkt im Header-Abschnitt als Ausnahme definiert */

/* ==========================================================================
   17. Loop Grid – Artikel Übersicht
   ========================================================================== */

/* Padding am Loop-Item entfernen */
.e-loop-item .e-con,
.e-loop-item .e-con-inner {
	--container-default-padding-top: 0px !important;
	--container-default-padding-right: 0px !important;
	--container-default-padding-bottom: 0px !important;
	--container-default-padding-left: 0px !important;
	padding: 0 !important;
}

/* Row-Gap via .row-gap Klasse am Loop Grid Widget */
.row-gap.e-grid,
.row-gap .e-grid,
.row-gap .elementor-grid,
.row-gap.elementor-widget-loop-grid .elementor-grid {
	--row-gap: var(--space-l) !important;
	--e-con-grid-row-gap: var(--space-l) !important;
	row-gap: var(--space-l) !important;
}/* End custom CSS */