.elementor-kit-6{--e-global-color-primary:#325928;--e-global-color-secondary:#8A5A2E;--e-global-color-text:#222222;--e-global-color-accent:#A9D18E;--e-global-color-4ec91cc:#FFFFFF;--e-global-color-a871609:#F1B906;--e-global-color-81c2eac:#555555;--e-global-color-35ddb35:#284720;--e-global-color-eb01610:#FFFFFF99;--e-global-color-adfa7e5:#F5F0E8;--e-global-color-dgtief0:#1E3318;--e-global-color-txwarm0:#1F261C;--e-global-color-txdamp0:#5A6255;--e-global-color-liwarm0:#E6DFD3;--e-global-color-rahmen0:#8C857A;--e-global-color-fehler0:#B3261E;--e-global-color-kopftxt:#333333;--e-global-typography-primary-font-family:"Barlow Semi Condensed";--e-global-typography-primary-font-weight:800;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-line-height:1em;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:14px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:1.3em;--e-global-typography-secondary-letter-spacing:0.14em;--e-global-typography-text-font-family:"Archivo";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.06em;--e-global-typography-tyhero0-font-family:"Barlow Semi Condensed";--e-global-typography-tyhero0-font-size:92px;--e-global-typography-tyhero0-font-weight:800;--e-global-typography-tyhero0-text-transform:uppercase;--e-global-typography-tyhero0-line-height:0.95em;--e-global-typography-tykarte-font-family:"Barlow Semi Condensed";--e-global-typography-tykarte-font-size:22px;--e-global-typography-tykarte-font-weight:800;--e-global-typography-tykarte-text-transform:uppercase;--e-global-typography-tykarte-line-height:1.15em;--e-global-typography-tykarte-letter-spacing:0.01em;--e-global-typography-tykache-font-family:"Barlow Semi Condensed";--e-global-typography-tykache-font-size:20px;--e-global-typography-tykache-font-weight:800;--e-global-typography-tykache-text-transform:uppercase;--e-global-typography-tykache-line-height:1.15em;--e-global-typography-tykache-letter-spacing:0.01em;--e-global-typography-tyeinle-font-family:"Archivo";--e-global-typography-tyeinle-font-size:22px;--e-global-typography-tyeinle-font-weight:400;--e-global-typography-tyeinle-line-height:1.5em;--e-global-typography-tyanris-font-family:"Archivo";--e-global-typography-tyanris-font-size:17px;--e-global-typography-tyanris-font-weight:400;--e-global-typography-tyanris-line-height:1.6em;--e-global-typography-tyklein-font-family:"Archivo";--e-global-typography-tyklein-font-size:15px;--e-global-typography-tyklein-font-weight:500;--e-global-typography-tyklein-font-style:normal;--e-global-typography-tyklein-line-height:1.5em;--e-global-typography-tybasis-font-family:"Heebo";--e-global-typography-tybasis-font-size:16px;--e-global-typography-tybasis-font-weight:400;--e-global-typography-tybasis-line-height:1.5em;--e-global-typography-tymobil-font-family:"Archivo";--e-global-typography-tymobil-font-size:18px;--e-global-typography-tymobil-font-weight:600;--e-global-typography-tymobil-text-transform:uppercase;--e-global-typography-tymobil-line-height:1em;--e-global-typography-tymobil-letter-spacing:0.09em;color:var( --e-global-color-txwarm0 );font-family:"Archivo", Sans-serif;font-size:18px;font-weight:400;line-height:1.65em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-4ec91cc );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-primary );border-radius:999px 999px 999px 999px;padding:16px 26px 16px 26px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:var( --e-global-color-35ddb35 );color:var( --e-global-color-4ec91cc );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-35ddb35 );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-primary );}.elementor-kit-6 a:hover{color:var( --e-global-color-35ddb35 );}.elementor-kit-6 h1{color:var( --e-global-color-txwarm0 );font-family:"Barlow Semi Condensed", Sans-serif;font-size:72px;font-weight:800;text-transform:uppercase;line-height:1em;}.elementor-kit-6 h2{color:var( --e-global-color-txwarm0 );font-family:"Barlow Semi Condensed", Sans-serif;font-size:52px;font-weight:800;text-transform:uppercase;line-height:1.02em;}.elementor-kit-6 h3{color:var( --e-global-color-txwarm0 );font-family:"Barlow Semi Condensed", Sans-serif;font-size:26px;font-weight:800;text-transform:uppercase;line-height:1.1em;letter-spacing:0.01em;}.elementor-kit-6 h4{color:var( --e-global-color-txwarm0 );font-family:"Barlow Semi Condensed", Sans-serif;font-size:20px;font-weight:700;text-transform:uppercase;line-height:1.2em;letter-spacing:0.02em;}.elementor-kit-6 h5{color:var( --e-global-color-txwarm0 );font-family:"Archivo", Sans-serif;font-size:17px;font-weight:700;text-transform:uppercase;line-height:1.3em;letter-spacing:0.04em;}.elementor-kit-6 h6{color:var( --e-global-color-txwarm0 );font-family:"Archivo", Sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;line-height:1.4em;letter-spacing:0.1em;}.elementor-kit-6 img{border-radius:15px 15px 15px 15px;}.elementor-kit-6 label{color:var( --e-global-color-txwarm0 );font-family:"Archivo", Sans-serif;font-size:15px;font-weight:600;line-height:1.4em;}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:"Archivo", Sans-serif;font-size:17px;font-weight:400;line-height:1.4em;color:var( --e-global-color-txwarm0 );accent-color:var( --e-global-color-primary );background-color:var( --e-global-color-4ec91cc );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-rahmen0 );border-radius:10px 10px 10px 10px;padding:14px 16px 14px 16px;}.elementor-kit-6 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea:focus,.elementor-kit-6 .elementor-field-textual:focus{color:var( --e-global-color-txwarm0 );background-color:var( --e-global-color-4ec91cc );box-shadow:0px 0px 0px 3px rgba(50,89,40,0.25);border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1400px;}.e-con{--container-max-width:1400px;}.elementor-widget:not(:last-child){--kit-widget-spacing:40px;}.elementor-element{--widgets-spacing:40px 40px;--widgets-spacing-row:40px;--widgets-spacing-column:40px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-tyhero0-font-size:64px;--e-global-typography-tykarte-font-size:21px;--e-global-typography-tykache-font-size:19px;--e-global-typography-tyeinle-font-size:20px;}.elementor-kit-6 h1{font-size:56px;}.elementor-kit-6 h2{font-size:42px;}.elementor-kit-6 h3{font-size:24px;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-secondary-font-size:13px;--e-global-typography-text-font-size:17px;--e-global-typography-tyhero0-font-size:46px;--e-global-typography-tykarte-font-size:20px;--e-global-typography-tykache-font-size:17px;--e-global-typography-tyeinle-font-size:19px;--e-global-typography-tyanris-font-size:16px;--e-global-typography-tyklein-font-size:14px;font-size:17px;}.elementor-kit-6 h1{font-size:40px;}.elementor-kit-6 h2{font-size:32px;}.elementor-kit-6 h3{font-size:22px;}.elementor-kit-6 h4{font-size:18px;}.elementor-kit-6 h5{font-size:16px;}.elementor-kit-6 h6{font-size:14px;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Milchglas (ks-glass). Weichzeichner und Toenung sitzen auf einer Ebene hinter dem Inhalt (::before), nicht am Container:
   ein backdrop-filter am Container macht ihn zum Bezugsrahmen fuer position:fixed, dann scrollte der Sticky-Meterstab mit
   dem Kasten weg. Weiss 88 % (seit 2026-10-28, vorher 70 %), Weichzeichner 10 px. */
.ks-glass {
    isolation: isolate;
}
.e-con.ks-glass::before,
.ks-glass::before {
    content: "";
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    z-index: -1;
    border: 0;
    border-radius: inherit;
    opacity: 1;
    mix-blend-mode: normal;
    background: rgba(255, 255, 255, 0.88);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    pointer-events: none;
}

/* === Design D: Anfang === */
/* Redesign D (Spec 2026-10-07). Farben und Schriften nur über Kit-Variablen; fest sind nur die Schattenwerte.
   Regeln für diesen Block:
   - Das Präfix ".elementor " steht vor Regeln für Eigenschaften, die Elementor ebenfalls setzt (z. B. Schatten, Icon-Farben, Breiten); sonst
     gewinnt Elementor über die Spezifität oder die Ladereihenfolge. Eigene Werte am Widget entfernt das Rezept.
   - Rückfall für Mischfarben (Muster für Phase 3): zuerst ein Grundwert ohne Mischung (Kit-Variable oder die festen rgba-Schatten aus Spec 3),
     die Mischfarbe aus Kit-Variablen steht nur im Block @supports. Ein Wert mit var() wird erst beim Berechnen ungültig und fiele dann auf
     „unset“ zurück, nicht auf eine frühere Zeile. */

/* Header einfrieren: Der Header erbt weiter die bisherigen Body-Werte (Heebo 16 px, Zeile 1,5, Farbe #333),
   obwohl der Body jetzt Archivo 18 px hat. Werte aus Kit-Typo „Kopfzeile Basis“ und Kit-Farbe „Kopfzeile Text“. */
.elementor-location-header {
	font-family: var(--e-global-typography-tybasis-font-family), Sans-serif;
	font-size: var(--e-global-typography-tybasis-font-size);
	font-weight: var(--e-global-typography-tybasis-font-weight);
	line-height: var(--e-global-typography-tybasis-line-height);
	color: var(--e-global-color-kopftxt);
}

/* Lange deutsche Wörter (z. B. „Betriebszugehörigkeit“) und lange Links dürfen umbrechen, statt über den Rand zu ragen.
   Silbentrennung nur bei Wörtern ab 10 Zeichen; der Notumbruch greift, wo der Browser kein Trennwörterbuch hat.
   Am Handy gilt die Trennung für alle Überschriften (erste Regel, unverändert, auch im Header). Überschriften im Seiteninhalt, auch die Kachel-Titel,
   trennen auf allen Breiten (zweite Regel); ohne sie brachen z. B. „FASSADENVERKLEIDUNG“ (Leistungen, 1100 und 1200 px) und „ZUKUNFTSBAUSTOFF“ (702, 768 px)
   ohne Trennstrich mitten im Wort. Der Header (eingefroren) ist ausgenommen: „:not(.elementor-location-header *)“ trifft nichts darin. */
@media (max-width: 767px) {
	h1, h2, h3, h4, h5, h6, .elementor-heading-title {
		-webkit-hyphens: auto;
		hyphens: auto;
		hyphenate-limit-chars: 10 4 4;
	}
}
:is(h1, h2, h3, h4, h5, h6, .elementor-heading-title):not(.elementor-location-header *) {
	-webkit-hyphens: auto;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
}
h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-widget-text-editor {
	overflow-wrap: break-word;
}

/* Links im Fließtext unterstreichen (nicht auf Kit-Ebene, das träfe das Menü) */
.elementor-widget-text-editor a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

/* Tastatur-Fokus an Knöpfen; auf dunklen Flächen (Klasse kh-dunkel) in Hellgrün */
.elementor-button:focus-visible {
	outline: 3px solid var(--e-global-color-primary);
	outline-offset: 3px;
}
.kh-dunkel .elementor-button:focus-visible {
	outline-color: var(--e-global-color-accent);
}

/* Karten (Klasse kh-karte, Spec 3 „Karten“): weiß, Ecken 15 px, Schatten weich; beim Hover hebt sich die Karte um 3 px, der Schatten wird kräftiger,
   das Foto zoomt um 4 %. Alle Regeln für die Karte selbst stehen in diesem Abschnitt. */
.kh-karte {
	background-color: var(--e-global-color-4ec91cc);
	border-radius: 15px;
	overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.kh-karte img {
	transition: transform .4s ease;
}
@media (hover: hover) {
	.kh-karte:hover {
		transform: translateY(-3px);
	}
	.kh-karte:hover img {
		transform: scale(1.04);
	}
}

/* Schatten der Karte: Wird die Karte als Link (Element a) ausgegeben (Container mit Link), überstimmt Elementors ".elementor a { box-shadow: none }"
   (0,1,1) einen Schatten an .kh-karte (0,1,0); deshalb ".elementor " davor. Grundwert sind die Werte aus Spec 3 (Text warm #1F261C = rgb(31, 38, 28));
   Browser mit Mischfarben nehmen im Block @supports dieselben Werte über die Kit-Farbe „Text warm“. */
.elementor .kh-karte {
	box-shadow: 0 1px 2px rgba(31, 38, 28, .06), 0 8px 24px rgba(31, 38, 28, .07);
}
@media (hover: hover) {
	.elementor .kh-karte:hover {
		box-shadow: 0 2px 4px rgba(31, 38, 28, .08), 0 16px 40px rgba(31, 38, 28, .12);
	}
}
@supports (color: color-mix(in srgb, currentColor 50%, transparent)) {
	.elementor .kh-karte {
		box-shadow: 0 1px 2px color-mix(in srgb, var(--e-global-color-txwarm0) 6%, transparent), 0 8px 24px color-mix(in srgb, var(--e-global-color-txwarm0) 7%, transparent);
	}
	@media (hover: hover) {
		.elementor .kh-karte:hover {
			box-shadow: 0 2px 4px color-mix(in srgb, var(--e-global-color-txwarm0) 8%, transparent), 0 16px 40px color-mix(in srgb, var(--e-global-color-txwarm0) 12%, transparent);
		}
	}
}

/* Foto in der Karte ohne eigene Rundung (Spec 3: „Das Foto sitzt oben ohne eigene Rundung“): Das Kit rundet sonst jedes Bild auf 15 px (".elementor-kit-6 img", 0,1,1).
   Die oberen Ecken schneidet die Karte selbst zu (Radius 15 px, overflow: hidden), die unteren bleiben eckig. */
.elementor .kh-karte img {
	border-radius: 0;
}

/* Karten als Listing-Eintrag: volle Höhe in Rastern mit gleich hohen Spalten; ganze Karte als Link ohne Unterstreichung */
.jet-listing-grid__item > .elementor:has(> .kh-karte),
.jet-listing-grid__item > .elementor > .kh-karte {
	height: 100%;
}
a.kh-karte,
a.kh-karte:hover {
	text-decoration: none;
}

/* Foto-Kacheln (Call-to-Action-Widgets mit Klasse kh-foto) */
.kh-foto .elementor-cta {
	border-radius: 15px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(31, 38, 28, .06), 0 8px 24px rgba(31, 38, 28, .07);
}
/* Die Kachel füllt ihre Rasterzelle: Das Raster dehnt die Widgets einer Reihe auf gleiche Höhe, die .elementor-cta darin aber nicht. Kacheln mit Bildtext
   waren bis 24,5 px kürzer als ihre Zelle, die Unterkanten einer Reihe sprangen (gemessen auf 702, 704, 724, 728 bei 1440, 1100 und 768 px).
   Das Foto (.elementor-cta__bg-wrapper) wächst in die freie Höhe, der Bildtext bleibt unten. */
.elementor .kh-foto .elementor-cta { height: 100%; flex-direction: column; flex-wrap: nowrap; }
.kh-foto .elementor-cta__bg-wrapper { flex-grow: 1; }
.kh-foto .elementor-cta__bg {
	transition: transform .4s ease;
}
@media (hover: hover) {
	.kh-foto:hover .elementor-cta__bg {
		transform: scale(1.04);
	}
}

/* Formularfelder: Platzhalter gedämpft (nur Elementor-Formulare, nicht das Suchfeld im Header) */
.elementor-field-group .elementor-field::placeholder {
	color: var(--e-global-color-txdamp0);
	opacity: 1;
}

/* Formularfehler: Rahmen rot, optisch 2 px über einen Schatten (kein Layoutsprung). „.elementor “ davor: Die Formularfeld-Regel des Kits
   („.elementor-kit-6 input:not(…):not(…)“, 0,3,1) schlug die Fehlerregel ohne Präfix (0,3,0); bei Eingabefeldern blieb der Rahmen grau, nur der Schatten war rot.
   Beim Auswahlfeld trägt nur das umgebende div (elementor-select-wrapper) die Klasse elementor-field, deshalb steht das select selbst in der Liste.
   Nur Elementor-Formulare (Feldgruppe im Fehlerzustand); das Suchfeld im Header ist nicht betroffen. */
.elementor .elementor-field-group.elementor-error .elementor-field,
.elementor .elementor-field-group.elementor-error select {
	border-color: var(--e-global-color-fehler0);
	box-shadow: 0 0 0 1px var(--e-global-color-fehler0);
}
.elementor-field-group .elementor-message-danger,
.elementor-error .elementor-message {
	color: var(--e-global-color-fehler0);
}

/* Footer (Vorlage 1103, Klasse kh-footer): Text Weiß 86 %, untere Leiste (kh-footer-leiste) mit Trennlinie Weiß 14 %.
   Grundwert ist Weiß aus dem Kit; Weiß 86 % und die Trennlinie stehen im Block @supports (ohne Mischfarben: Text weiß, Leiste ohne Linie). */
.kh-footer .elementor-icon-list-text,
.kh-footer .elementor-widget-text-editor {
	color: var(--e-global-color-4ec91cc);
}
@supports (color: color-mix(in srgb, currentColor 50%, transparent)) {
	.kh-footer .elementor-icon-list-text,
	.kh-footer .elementor-widget-text-editor {
		color: color-mix(in srgb, var(--e-global-color-4ec91cc) 86%, transparent);
	}
	.kh-footer-leiste {
		border-top: 1px solid color-mix(in srgb, var(--e-global-color-4ec91cc) 14%, transparent);
	}
}

/* Lesetext: Textelemente höchstens 68 Zeichen je Zeile (Klasse kh-lesetext am Text-Widget; Spec 3). „ch“ ist die Breite der Ziffer 0 (Archivo 18 px: 10,3 px),
   im Fließtext sind die Zeichen im Mittel schmaler; gemessen in 12 Beiträgen bei 1440 px ergeben 51ch höchstens 68 Zeichen je volle Zeile (52ch schon 70, 68ch bis 89).
   Begrenzt werden Absätze, Listen, Zwischenüberschriften und Zitate; das Widget selbst und alles darin, was kein Text ist (Galerie, Bilder, figure), behält die volle
   Spaltenbreite. Listen ohne die Galerie-Listen des älteren Gutenberg-Formats (wp-block-gallery, blocks-gallery-grid). */
.elementor .kh-lesetext p,
.elementor .kh-lesetext ul:not(.wp-block-gallery):not(.blocks-gallery-grid),
.elementor .kh-lesetext ol,
.elementor .kh-lesetext blockquote,
.elementor .kh-lesetext h2,
.elementor .kh-lesetext h3,
.elementor .kh-lesetext h4,
.elementor .kh-lesetext h5,
.elementor .kh-lesetext h6 {
	max-width: 51ch;
}

/* Galerie im Beitragsinhalt (Gutenberg-Galerie, z. B. „Betriebsausflug nach Füssen“) als Foto-Raster 3 / 2 / 1, Abstand 16 px, Ecken 15 px
   (Spec 4 Beitrag). Die Spaltenbreiten der Kern-Galerie haben ID-Spezifität (:not(#individual-image)); deshalb der längere Selektor.
   Am Desktop bleiben die 3 Spalten der Kern-Galerie (columns-default). */
.elementor-widget-theme-post-content .wp-block-gallery.has-nested-images {
	--wp--style--unstable-gallery-gap: 16px;
	gap: 16px;
}
.elementor-widget-theme-post-content .wp-block-gallery.has-nested-images figure.wp-block-image img {
	border-radius: 15px;
}
@media (max-width: 1024px) {
	.elementor-widget-theme-post-content .wp-block-gallery.has-nested-images.is-layout-flex figure.wp-block-image:not(#individual-image) {
		width: calc(50% - 8px);
	}
}
@media (max-width: 767px) {
	.elementor-widget-theme-post-content .wp-block-gallery.has-nested-images.is-layout-flex figure.wp-block-image:not(#individual-image) {
		width: 100%;
	}
}

/* Foto-Seitenverhältnis am Bild-Widget (Spec 3: News 3:2, Referenzen 4:3, Team 4:5) – das Bild-Widget hat keinen eigenen Regler.
   Das Widget bekommt volle Breite: Sonst berechnet der Flex-Container seine Höhe aus der Naturbreite des Fotos, und das Foto ragt über das Widget hinaus
   (gemessen an den Referenzen bei 360 bis 767 px, bis 307 px). Gilt für Foto-Widgets in Spalten-Containern (Karten); steht ein Foto neben einem Text in einem
   Zeilen-Container, gehört es in eine eigene Spalte (wie in der großen News-Karte). overflow: hidden am Widget (dort sitzt die Klasse): Beim Hover-Zoom
   der Karte (4 %) ragte das Foto sonst bis 5,8 px über die Unterkante seines Rahmens. */
.kh-bild-32,
.kh-bild-43,
.kh-bild-45 {
	width: 100%;
	overflow: hidden;
}
.kh-bild-32 img,
.kh-bild-43 img,
.kh-bild-45 img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.kh-bild-32 img {
	aspect-ratio: 3 / 2;
}
.kh-bild-43 img {
	aspect-ratio: 4 / 3;
}
.kh-bild-45 img {
	aspect-ratio: 4 / 5;
}

/* Große Karte quer (Klasse kh-karte-quer an der Karte; Foto links in einer eigenen Spalte, Text rechts): Ab 768 px füllt das Foto die Spalte in voller Kartenhöhe
   (mindestens 3:2, darüber zugeschnitten); darunter steht es oben im Format 3:2. */
@media (min-width: 768px) {
	.elementor .kh-karte-quer .kh-bild-32 {
		flex-grow: 1;
	}
	.elementor .kh-karte-quer .kh-bild-32 img {
		min-height: 100%;
	}
}

/* Instagram-Beiträge in den News (Plugin kh-instagram, 2026-10-28): Symbol oben rechts auf dem Bild der Karte. Das Shortcode-Widget mit [kh_insta_symbol] liegt
   absolut im Bildbereich (Rezept news-listings), der Shortcode gibt nur bei Instagram-Beiträgen etwas aus. Kreis 36 px in Grün, Glyphe Weiß 20 px. */
.elementor .kh-insta-symbol {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background-color: var(--e-global-color-primary);
	color: var(--e-global-color-4ec91cc);
}
.elementor .kh-insta-symbol svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* Textlink mit Pfeil (Klasse kh-textlink an Knopf oder Container mit Icon): Pfeil rückt beim Hover 4 px nach rechts */
.kh-textlink .elementor-button-icon,
.kh-textlink .elementor-icon {
	transition: transform .2s ease;
}
.kh-textlink:hover .elementor-button-icon,
.kh-textlink:hover .elementor-icon,
.kh-karte:hover .kh-textlink .elementor-icon {
	transform: translateX(4px);
}

/* Pfeil-Kreis in Karten (Icon-Widget gestapelt/Kreis, Klasse kh-pfeilkreis): Creme mit grünem Pfeil, beim Hover der Karte Grün mit weißem Pfeil.
   Elementors ".elementor-view-stacked .elementor-icon" hat 0,2,0 wie ".kh-pfeilkreis .elementor-icon" und gewänne bei früher geladener Kit-CSS;
   deshalb steht ".elementor " davor (0,3,0 und 0,5,0). display: block: Als inline-block stand der Kreis in einer Textzeile, das Widget war 49 statt
   40 px hoch (Kreis 4,5 bis 4,9 px über der Titelmitte, Abstand zur Kartenunterkante 35,7 statt 26 px). */
.elementor .kh-pfeilkreis .elementor-icon {
	display: block;
	background-color: var(--e-global-color-adfa7e5);
	color: var(--e-global-color-primary);
	fill: var(--e-global-color-primary);
	transition: background-color .2s ease, color .2s ease, fill .2s ease;
}
.elementor .kh-karte:hover .kh-pfeilkreis .elementor-icon {
	background-color: var(--e-global-color-primary);
	color: var(--e-global-color-4ec91cc);
	fill: var(--e-global-color-4ec91cc);
}

/* Suchfeld auf der Ergebnisseite (Vorlage 1779, Such-Widget c3c0de5): Platz für Lupe und Löschen-Kreuz. Die Formularfeld-Regel des Kits
   (".elementor-kit-6 input …", 0,3,1, Innenabstand 14px 16px) überstimmt sonst die Abstandsrechnung des Such-Widgets (0,2,0); die Lupe lag auf dem Platzhalter.
   Wie im Such-Widget gilt der Zuschlag je Seite nur mit Symbol: Das Skript des Widgets setzt no-icon-label / no-icon-clear am Eingabefeld und die
   Symbolbreiten als Variablen am Widget (elementor-pro elements-handlers.js, updateInputStyle); bis dahin gelten die Rückfallwerte (Feld 18 px und Lupe 17 px
   wie im custom_css des Widgets, Kreuz 8 px, Abstand 8 px). Nur in der Archiv-Vorlage: Die Header-Suche bleibt unberührt (Block „Kopfzeile eingefroren“). */
.elementor-location-archive .elementor-widget-search .e-search-form input.e-search-input:not(.no-icon-label) {
	padding-inline-start: calc(var(--e-search-input-padding-inline-start, 18px) + var(--e-search-icon-label-absolute-width, 17px) + var(--e-search-input-gap, 8px));
}
.elementor-location-archive .elementor-widget-search .e-search-form input.e-search-input:not(.no-icon-clear) {
	padding-inline-end: calc(var(--e-search-input-padding-inline-end, 14px) + var(--e-search-icon-clear-absolute-width, 8px) + var(--e-search-input-gap, 8px));
}

/* Knopf „auf Dunkel, Kontur“ (Klasse kh-knopf-hell am Knopf-Widget, Knopf-Variante dunkel_kontur): Rahmen Weiß 85 % (Spec 3 „Knöpfe“).
   Das Kit gibt jedem Knopf einen 2-px-Rahmen in Grün (".elementor-kit-6 .elementor-button", 0,2,0); deshalb steht ".elementor " davor (0,3,0).
   Grundwert Weiß aus dem Kit; Weiß 85 % nur im Block @supports. Die Hover-Rahmenfarbe des Widgets (0,5,0) gewinnt weiter. */
.elementor .kh-knopf-hell .elementor-button {
	border-color: var(--e-global-color-4ec91cc);
}
@supports (color: color-mix(in srgb, currentColor 50%, transparent)) {
	.elementor .kh-knopf-hell .elementor-button {
		border-color: color-mix(in srgb, var(--e-global-color-4ec91cc) 85%, transparent);
	}
}

/* Hero der Startseite (Klasse kh-hero am Container a4a7ca5): ohne Überlagerung. Der grüne Verlauf und danach der neutrale Schatten sind auf Wunsch
   des Users am 2026-10-12 entfallen; die Lesbarkeit von Überzeile, H1 und Einleitung trägt der Pinselstrich (unten). Die Klasse bleibt als Anker am Container. */

/* Pinselstrich hinter Überzeile, H1 und Einleitung im Hero (Variante v3, vom User am 2026-10-12 gewählt): ein gemalter Strich aus Higgsfield (GPT Image, Entwurf #7,
   Variante b), umgewandelt in eine Alpha-Maske (Mediathek 1870, /wp-content/uploads/2026/10/pinsel-maske.png, 1600 × 547 px, PNG mit Palette und 32 Alpha-Stufen,
   126 KB): Form und Borstenstreifen kommen aus der Maske, die Farbe aus der Kit-Variable „Grün“. Der Block d002103 (Klasse kh-pinsel-block) umschließt Überzeile,
   H1 und Einleitung (die Einleitung seit 2026-10-12, Wahl B des Users: ohne Abdunklung ist sie nur auf dem Strich lesbar); er ist so breit wie sein Inhalt (--width: fit-content),
   der Strich steht über den Block hinaus (oben -10 %, links -8 %, 113 % breit, 122 % hoch; seit 2026-10-28 links -8 statt -3 %, rechtes Ende gleich, User: „den Schweif
   mehr nach links“: die Schrift steht in allen Zeilen auf dem vollen Grün, Test neu/p3-pinsel-links). Elementor setzt ::before an Containern selbst (.e-con:before, 0,1,1,
   für Hintergrund-Overlays); ".elementor " davor und die ausdrücklichen Werte für content, Lage, Größe, opacity, mix-blend-mode, border-radius und transition überstimmen das.
   isolation: isolate hält z-index -1 innerhalb des Blocks (über dem Hero-Foto). Ohne Masken-Unterstützung zeigt ein Browser eine grüne Fläche hinter dem Text. */
.elementor .kh-pinsel-block {
	--width: fit-content;
	max-width: 100%;
	position: relative;
	isolation: isolate;
}
.elementor .kh-pinsel-block::before {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: -10%;
	left: -8%;
	width: 113%;
	height: 122%;
	pointer-events: none;
	opacity: 1;
	mix-blend-mode: normal;
	border-radius: 0;
	transition: none;
	background-color: var(--e-global-color-primary);
	-webkit-mask: url("/wp-content/uploads/2026/10/pinsel-maske.png") center / 100% 100% no-repeat;
	mask: url("/wp-content/uploads/2026/10/pinsel-maske.png") center / 100% 100% no-repeat;
}

/* Runde Ecken 15 px für eingebettete Karten, Konfigurator und Videos (Klasse kh-rund am Widget) */
.kh-rund,
.kh-rund iframe,
.kh-rund video {
	border-radius: 15px;
	overflow: hidden;
}

/* Leistungs-Kacheln (Raster kh-leistungen, Seiten 2 und 13, Spec 3): Foto füllt die Kachel im Format 4:5, Ecken 15 px,
   Schatten „Kachel auf Holz“, Titelzone unten mit Verlauf transparent → Schwarz 78 %. Schwarz ist keine Kit-Farbe; der Verlauf
   steht wie die Schatten als Detail-CSS hier. Zollstock, Neigung und Glanz kommen aus dem Snippet 1733. */
.kh-leistungen > .e-con {
	aspect-ratio: 4 / 5;
	border-radius: 15px;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .30);
}
.kh-leistungen > .e-con > .elementor-widget-image {
	position: absolute;
	inset: 0;
}
.kh-leistungen > .e-con > .elementor-widget-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kh-leistungen > .e-con > .e-con {
	background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .78));
}

/* Karten-Spalte (Klasse kh-karten-spalte am Spalten-Container um ein Listing-Raster, z. B. Aktuelles auf der Startseite): Die Karte füllt die Spalte in voller Höhe,
   damit Karten aus getrennten Listings in einer Zeile gleich hoch sind (gemessen: 592 px gegen 540 px). Das Listing-Widget wächst im Spalten-Container; .jet-listing-grid und
   .jet-listing-grid__items dehnen sich als Flex-Spalte mit, die Karte darin ist über ".jet-listing-grid__item > .elementor > .kh-karte" schon volle Höhe. Die Lücke zwischen den
   Einträgen (Innenabstand 12 px, „erste und letzte Lücke entfernen“ als negativer Außenabstand von .jet-listing-grid) bleibt erhalten, Flex rechnet sie mit. Mit „Optimized Markup“
   liegt .jet-listing-grid direkt im Widget (kein .elementor-widget-container). */
.kh-karten-spalte > .elementor-widget-jet-listing-grid {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}
.kh-karten-spalte .jet-listing-grid {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}
.kh-karten-spalte .jet-listing-grid__items {
	flex-grow: 1;
}

/* Knopf mit sehr langem Wort (Klasse kh-knopf-umbruch am Knopf-Widget, z. B. „zum Bewertungsformular“ im Kasten auf Referenzen & Projekte, Seite 1058):
   „BEWERTUNGSFORMULAR“ ist in der Knopf-Typo 214 px breit, der Knopf mit Symbol und Innenabstand 291 px. Der Kasten ist ab 768 px 356 px breit (Rezept referenzen), dort hat der Knopf Platz.
   Am Handy ist der Kasten so breit wie das Fenster minus 80 px, der Knopf passt erst ab etwa 355 px: Der seitliche Innenabstand sinkt auf 18 px, und wo das Wort trotzdem nicht
   passt, darf es umbrechen (mit Silbentrennung, wo der Browser ein Trennwörterbuch hat, sonst an jeder Stelle). „anywhere“ (nicht „break-word“) senkt auch die Mindestbreite des Knopfs:
   Er schrumpft, statt über den Kasten und den Seitenrand zu ragen (gemessen: bis 130 px über den Kasten bei 280 px Fensterbreite, 70 px Seitenüberbreite).
   Seit 2026-10-12 hat der Knopf kein Stern-Symbol mehr und ist 20 px schmaler (längstes Wort mit Innenabstand 270 px, am Handy 250 px); die Regeln bleiben als Schutz. */
.kh-knopf-umbruch .elementor-button-text {
	overflow-wrap: anywhere;
}
@media (max-width: 767px) {
	.kh-knopf-umbruch .elementor-button-text {
		-webkit-hyphens: auto;
		hyphens: auto;
	}
	.elementor .kh-knopf-umbruch .elementor-button {
		padding-inline: 18px;
	}
}

/* Bewertungszeile des Plugins WT Kundenstimmen ([kundenstimmen_bewertung], Klasse kh-bewertung-mitte am Shortcode-Widget), z. B. im Kasten „Sie möchten uns bewerten?“ auf
   Referenzen & Projekte (Seite 1058): Die Zeile des Plugins (p.wt-ks-bewertung) ist ein Flex-Container ohne Ausrichtung, also linksbündig. Im 300 px breiten Kasten bricht sie um
   (Sterne, darunter der Text); mit der Klasse stehen beide mittig untereinander, passt die Zeile in eine Reihe, steht sie mittig. Die Regel (0,2,0) überstimmt die des Plugins (0,1,0). */
.kh-bewertung-mitte .wt-ks-bewertung {
	justify-content: center;
	text-align: center;
}

/* Auswahlfeld (select) im Elementor-Formular (Jetzt bewerben, Feld „Anrede“): Das Kit gibt allen Formularfeldern 17 px (".elementor-kit-6 .elementor-field-textual", 0,2,0).
   Elementor setzt am Auswahlfeld aber "font-size: inherit" (".elementor-field-group .elementor-select-wrapper select", 0,2,1); es erbte die 18 px des Inhalts
   (gemessen am Browser) statt der 17 px aus Spec 3 „Formulare“ (der Text „-- bitte wählen --“ berührte dadurch bei 1440 px das Pfeil-Symbol). Der Wert 17 px steht so auch im Kit (Formularfelder). */
.elementor .elementor-field-group .elementor-select-wrapper select {
	font-size: 17px;
}

/* Handy-Leiste und mobiles Menü (Variante B „Meterstab“, vom User am 2026-10-15 freigegeben). Unter 768 px ersetzt eine schwebende
   Glas-Leiste im Header 1844 (Container mit Klasse kh-mb-leiste und Kit-Klasse ks-glass: Logo, Anrufen, Menü) die beiden Header-Zeilen.
   Der Menü-Knopf öffnet das Elementor-Popup „Mobiles Menü“ (Klasse kh-mb-popup am Popup, kh-mb-pop am Inhalt, dieselbe Leiste mit
   Schließen-Knopf). Darin hängen die Menüpunkte als weiße Zollstock-Glieder schräg im Zickzack, an den Nieten verbunden wie ein echter
   Gliedermaßstab (seit 2026-10-27, User: „realistisch nach unten auf, an den Gliedern verbunden, die Elemente dann halt schräg“;
   Nav-Menü mit Klasse kh-mb-stab, Schrift Kit „Mobilmenü Glied“): Neigung ±13°, Niet 26 px vom Gliedende, Gliedenden wie im
   Desktop-Stab als flacher Kreisbogen (Radius = Gliedhöhe), Teilung oben und unten, Scharnier-Ring am Ende, an dem das nächste Glied
   hängt. Die Schrift steht an diesem Ende; das andere Ende liegt unter dem Vorgänger. Aktuelle Seite: grünes Glied, weiße Schrift. Darunter Telefon, E-Mail,
   Knopf und Social-Icons. Das Aufklappen beim Öffnen macht das Snippet „Mobiles Menü: Zollstock“. Farben aus dem Kit; "%23000" in den
   Masken ist keine sichtbare Farbe, nur die Form. Die Popup-Höhe kommt nicht aus der Popup-Einstellung (Elementor schreibt sie mit einer
   ID-Regel), sondern aus der Mindesthöhe des Inhalts (100dvh, sonst 100vh); Elementor scrollt den Inhalt selbst, wenn er höher ist. */
.elementor .kh-mb-leiste .elementor-icon {
	width: 46px;
	height: 46px;
	padding: 0;
	display: grid;
	place-items: center;
}
.elementor .kh-mb-leiste .elementor-icon svg {
	width: 18px;
	height: 18px;
}
/* Logo ohne Grundlinien-Lücke: Sonst steht unter dem verlinkten Bild die Unterlänge der Zeile (Widget 49 statt 42 px hoch, Leiste 67 statt 64 px). */
.elementor .kh-mb-leiste .kh-mb-logo {
	line-height: 0;
}
.elementor .kh-mb-leiste .kh-mb-logo a {
	display: inline-block;
	vertical-align: top;
}
.elementor .kh-mb-leiste .kh-mb-logo img {
	display: block;
	border-radius: 0;
}
.elementor-sticky--active.kh-mb-leiste {
	z-index: 1000;
}
.kh-mb-popup .dialog-message {
	overscroll-behavior: contain;
}
.elementor .kh-mb-pop {
	min-height: 100vh;
	min-height: 100dvh;
	background-image: radial-gradient(80% 40% at 100% 0%, rgba(50, 89, 40, .10), transparent 70%);
}
@supports (color: color-mix(in srgb, currentColor 50%, transparent)) {
	.elementor .kh-mb-pop {
		background-image: radial-gradient(80% 40% at 100% 0%, color-mix(in srgb, var(--e-global-color-primary) 10%, transparent), transparent 70%);
	}
}
.elementor .kh-mb-pop-kontakt {
	margin-top: auto;
}
/* Fokus beim Öffnen: Elementor (Popup-Einstellung „Barrierefreie Navigation“) fokussiert per Skript das erste fokussierbare Element im Popup.
   Das ist der Inhalt kh-mb-pop selbst (tabindex -1, Rezept mobilmenue), nicht mehr das Logo: Safari am iPhone wertet diesen Skript-Fokus als
   sichtbar, das Logo hatte dann einen schwarzen Rahmen (User-Foto 2026-10-28). Der Inhalt ist kein Bedienelement, darum ohne Rahmen; der erste
   Tab-Schritt geht zum Logo, dort mit Rahmen. */
.elementor .kh-mb-pop:focus {
	outline: none;
}
/* Endlage der Kette: Die Glieder liegen im Fluss untereinander (Abstand 0); jedes wird um seine Mitte um ±--kh-mb-a gedreht und so
   verschoben, dass sich die Nieten benachbarter Glieder treffen: dx = (1 − cos a)·(c − W/2), dy = k·(s − h) + s/2 mit
   s = (W − 2c)·sin a (Fall von Niet zu Niet). W = 100cqw (Container ist das nav des Menüs). Der Außenabstand unten nimmt den
   schrägen Überstand der Kette auf (für 6 Glieder gerechnet; bei mehr Menüpunkten die 6 anpassen).
   Schmale Handys: Unter 340 px Menübreite (Handy unter 370 px) wird das Glied mit allem darauf maßstäblich kleiner, Faktor --kh-mb-f =
   Menübreite / 340 px (tan(atan2(a, b)) teilt zwei Längen). Sonst reicht der Platz zwischen dem Vorgänger, der über dem Gliedanfang liegt, und
   dem Doppelpfeil nicht: bei 320 px lag „UN“ von „UNTERNEHMEN“ unter „PROJEKTE“ (User-Foto 2026-10-28; gemessen: frei ab 330 px, 340 lässt
   einen Buchstaben Luft). --kh-mb-c ist als Länge registriert, damit das Snippet beim Aufklappen den gerechneten Wert in px liest. Die
   Gliedhöhe ist auf ganze px gerundet: Das Snippet rechnet mit offsetTop/offsetHeight (ganze px); bei krummen Höhen klafften die Nieten
   beim Aufklappen bis 0,65 px. */
@property --kh-mb-c {
	syntax: "<length>";
	inherits: true;
	initial-value: 26px;
}
.elementor .kh-mb-stab .elementor-nav-menu--main {
	container-type: inline-size;
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu {
	--kh-mb-a: 13deg;
	--kh-mb-f: min(1, tan(atan2(100cqw, 340px)));
	--kh-mb-h: round(calc(52px * var(--kh-mb-f)), 1px);
	--kh-mb-c: calc(26px * var(--kh-mb-f));
	--kh-mb-s: calc((100cqw - 2 * var(--kh-mb-c)) * sin(var(--kh-mb-a)));
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-bottom: calc(var(--kh-mb-h) / 2 + 6 * (var(--kh-mb-s) - var(--kh-mb-h)) + var(--kh-mb-c) * sin(var(--kh-mb-a)) + var(--kh-mb-h) / 2 * cos(var(--kh-mb-a)) + 8px);
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li {
	--kh-mb-k: 0;
	--kh-mb-r: var(--kh-mb-a);
	position: relative;
	margin: 0;
	transform: translate(calc((1 - cos(var(--kh-mb-a))) * (var(--kh-mb-c) - 50cqw)), calc(var(--kh-mb-k) * (var(--kh-mb-s) - var(--kh-mb-h)) + var(--kh-mb-s) / 2)) rotate(var(--kh-mb-r));
	filter: drop-shadow(0 0 .6px rgba(0, 0, 0, .45)) drop-shadow(0 3px 4px rgba(31, 38, 28, .22));
}
/* Lagen: Jedes Glied liegt unter seinem Vorgänger, wie im zusammengeklappten Zollstock (zählt beim Aufklappen). */
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(1) { z-index: 9; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(2) { z-index: 8; --kh-mb-k: 1; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(3) { z-index: 7; --kh-mb-k: 2; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(4) { z-index: 6; --kh-mb-k: 3; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(5) { z-index: 5; --kh-mb-k: 4; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(6) { z-index: 4; --kh-mb-k: 5; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(7) { z-index: 3; --kh-mb-k: 6; }
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(8) { z-index: 2; --kh-mb-k: 7; }
/* Zickzack: 1., 3., 5. Glied fallen nach rechts ab (+a, Scharnier rechts), 2., 4., 6. nach links (−a, Scharnier links). */
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(even) {
	--kh-mb-r: calc(-1 * var(--kh-mb-a));
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
	--R: var(--kh-mb-h);
	--kh-scharnier: calc(100% - var(--kh-mb-c));
	--kh-tick-l: rgba(40, 71, 32, .38);
	--kh-tick-s: rgba(40, 71, 32, .2);
	--kh-ring: rgba(40, 71, 32, .32);
	--kh-dot: rgba(40, 71, 32, .05);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: calc(10px * var(--kh-mb-f));
	height: var(--R);
	padding: 0 calc(46px * var(--kh-mb-f)) 0 calc(26px * var(--kh-mb-f));
	font-size: calc(var(--e-global-typography-tymobil-font-size) * var(--kh-mb-f));
	background-color: var(--e-global-color-4ec91cc);
	background-image:
		radial-gradient(circle at var(--kh-scharnier) 50%, var(--kh-dot) 0 calc(7px * var(--kh-mb-f)), var(--kh-ring) calc(7.5px * var(--kh-mb-f)) calc(9px * var(--kh-mb-f)), transparent calc(9.5px * var(--kh-mb-f))),
		repeating-linear-gradient(90deg, var(--kh-tick-l) 0 1px, transparent 1px calc(30px * var(--kh-mb-f))),
		repeating-linear-gradient(90deg, var(--kh-tick-s) 0 1px, transparent 1px calc(6px * var(--kh-mb-f))),
		repeating-linear-gradient(90deg, var(--kh-tick-l) 0 1px, transparent 1px calc(30px * var(--kh-mb-f))),
		repeating-linear-gradient(90deg, var(--kh-tick-s) 0 1px, transparent 1px calc(6px * var(--kh-mb-f)));
	background-size: 100% 100%, 100% calc(7px * var(--kh-mb-f)), 100% calc(4px * var(--kh-mb-f)), 100% calc(7px * var(--kh-mb-f)), 100% calc(4px * var(--kh-mb-f));
	background-position: 0 0, calc(14px * var(--kh-mb-f)) 0, calc(14px * var(--kh-mb-f)) 0, calc(14px * var(--kh-mb-f)) 100%, calc(14px * var(--kh-mb-f)) 100%;
	background-repeat: no-repeat;
	-webkit-mask:
		radial-gradient(circle var(--R) at 100% 50%, #000 calc(var(--R) - .5px), transparent var(--R)) left / var(--R) 100% no-repeat,
		radial-gradient(circle var(--R) at 0 50%, #000 calc(var(--R) - .5px), transparent var(--R)) right / var(--R) 100% no-repeat,
		linear-gradient(#000 0 0) center / calc(100% - var(--R) * 2 + 2px) 100% no-repeat;
	mask:
		radial-gradient(circle var(--R) at 100% 50%, #000 calc(var(--R) - .5px), transparent var(--R)) left / var(--R) 100% no-repeat,
		radial-gradient(circle var(--R) at 0 50%, #000 calc(var(--R) - .5px), transparent var(--R)) right / var(--R) 100% no-repeat,
		linear-gradient(#000 0 0) center / calc(100% - var(--R) * 2 + 2px) 100% no-repeat;
}
@supports (color: color-mix(in srgb, currentColor 50%, transparent)) {
	.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
		--kh-tick-l: color-mix(in srgb, var(--e-global-color-35ddb35) 38%, transparent);
		--kh-tick-s: color-mix(in srgb, var(--e-global-color-35ddb35) 20%, transparent);
		--kh-ring: color-mix(in srgb, var(--e-global-color-35ddb35) 32%, transparent);
		--kh-dot: color-mix(in srgb, var(--e-global-color-35ddb35) 5%, transparent);
	}
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(even) > a.elementor-item {
	--kh-scharnier: var(--kh-mb-c);
	justify-content: flex-start;
	padding: 0 calc(26px * var(--kh-mb-f)) 0 calc(46px * var(--kh-mb-f));
}
/* Doppelpfeil am Ende jedes Glieds: Maske, Farbe = Schriftfarbe */
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item::after {
	content: "";
	position: static;
	display: block;
	flex: none;
	width: calc(22px * var(--kh-mb-f));
	height: calc(22px * var(--kh-mb-f));
	opacity: .55;
	transform: none;
	transition: none;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M6 6l6 6-6 6M12 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M6 6l6 6-6 6M12 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item.elementor-item-active {
	--kh-tick-l: rgba(255, 255, 255, .35);
	--kh-tick-s: rgba(255, 255, 255, .18);
	--kh-ring: rgba(255, 255, 255, .45);
	--kh-dot: transparent;
	background-color: var(--e-global-color-primary);
}
.elementor .kh-mb-stab .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item.elementor-item-active::after {
	opacity: .9;
}

/* Weniger Bewegung */
@media (prefers-reduced-motion: reduce) {
	.kh-karte,
	.kh-karte img,
	.kh-foto .elementor-cta__bg,
	.kh-textlink .elementor-button-icon,
	.kh-textlink .elementor-icon {
		transition: none;
	}
	.kh-karte:hover,
	.kh-karte:hover img,
	.kh-foto:hover .elementor-cta__bg,
	.kh-textlink:hover .elementor-button-icon,
	.kh-textlink:hover .elementor-icon,
	.kh-karte:hover .kh-textlink .elementor-icon {
		transform: none;
	}
}
/* === Design D: Ende === */

/* === Kopfzeile eingefroren: Anfang === */
/* Erzeugt von freeze_css.py aus 3312 Abweichungen. Werte = Referenz-Schnappschuss vor Redesign D. Nur Header. */
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1):focus {
	border-bottom-left-radius: 999px;
	border-bottom-right-radius: 999px;
	border-top-left-radius: 999px;
	border-top-right-radius: 999px;
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) > svg:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-68ed41c > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) > svg:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-2d1ed66 > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-2d1ed66 > a:nth-child(1):hover > img:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-54bab90 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > button:nth-child(3):hover {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > button:nth-child(3) {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1) {
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > input:nth-child(4) {
	background-color: rgba(0, 0, 0, 0);
	border-bottom-color: rgb(195, 195, 195);
	border-bottom-left-radius: 0px;
	border-bottom-right-radius: 0px;
	border-left-color: rgb(195, 195, 195);
	border-right-color: rgb(195, 195, 195);
	border-top-color: rgb(195, 195, 195);
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
	color: rgb(0, 0, 0);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	line-height: 24px;
	padding-bottom: 0px;
	padding-left: 0px;
	padding-right: 0px;
	padding-top: 0px;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > span:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-c5ea7c1 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > svg:nth-child(2) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1):focus {
	border-bottom-left-radius: 999px;
	border-bottom-right-radius: 999px;
	border-top-left-radius: 999px;
	border-top-right-radius: 999px;
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) > svg:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-81f94db > ul:nth-child(1) > li:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) > svg:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-78f03d6 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > button:nth-child(3):hover {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > button:nth-child(3) {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1) {
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > input:nth-child(4) {
	background-color: rgba(0, 0, 0, 0);
	border-bottom-color: rgb(195, 195, 195);
	border-bottom-left-radius: 0px;
	border-bottom-right-radius: 0px;
	border-left-color: rgb(195, 195, 195);
	border-right-color: rgb(195, 195, 195);
	border-top-color: rgb(195, 195, 195);
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
	color: rgb(0, 0, 0);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	line-height: 24px;
	padding-bottom: 0px;
	padding-left: 0px;
	padding-right: 0px;
	padding-top: 0px;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > span:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-1c00195 > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > svg:nth-child(2) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1):focus {
	border-bottom-left-radius: 999px;
	border-bottom-right-radius: 999px;
	border-top-left-radius: 999px;
	border-top-right-radius: 999px;
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-044bcce > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-044bcce > a:nth-child(1):hover > img:nth-child(1) {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > button:nth-child(3):hover {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(1) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > span:nth-child(1) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-1f41454 > div:nth-child(1) > span:nth-child(2) > a:nth-child(1):hover > svg:nth-child(2) {
	color: rgb(255, 255, 255);
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > button:nth-child(3) {
	font-family: Heebo, sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	line-height: 24px;
	text-transform: none;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > div:nth-child(2) > input:nth-child(1) {
	color: rgb(34, 34, 34);
	padding-bottom: 7px;
	padding-left: 37px;
	padding-right: 29.5625px;
	padding-top: 7px;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > input:nth-child(4) {
	background-color: rgba(0, 0, 0, 0);
	border-bottom-color: rgb(195, 195, 195);
	border-bottom-left-radius: 0px;
	border-bottom-right-radius: 0px;
	border-left-color: rgb(195, 195, 195);
	border-right-color: rgb(195, 195, 195);
	border-top-color: rgb(195, 195, 195);
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
	color: rgb(0, 0, 0);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	line-height: 24px;
	padding-bottom: 0px;
	padding-left: 0px;
	padding-right: 0px;
	padding-top: 0px;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > span:nth-child(1) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-d8ad4be > search:nth-child(1) > form:nth-child(1) > label:nth-child(1) > svg:nth-child(2) {
	color: rgb(51, 51, 51);
	font-family: Heebo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 16px;
}
html body .elementor-location-header .elementor-element-00d9779 > a:nth-child(1):hover {
	color: rgb(50, 89, 40);
}
html body .elementor-location-header .elementor-element-00d9779 > a:nth-child(1):hover > img:nth-child(1) {
	color: rgb(50, 89, 40);
}
/* === Kopfzeile eingefroren: Ende === *//* End custom CSS */