.elementor-kit-4{--e-global-color-primary:#132A46;--e-global-color-secondary:#294E73;--e-global-color-text:#252B2E;--e-global-color-accent:#1EAFEE;--e-global-color-salbegr:#667C68;--e-global-color-holzbrn:#C0814D;--e-global-color-weiss00:#FFFFFF;--e-global-color-hellgra:#D3D6DB;--e-global-color-mittgra:#B3BBC8;--e-global-color-dunkgra:#6B717B;--e-global-color-zartbla:#B3E3F7;--e-global-color-8b46876:#000000;--e-global-color-ovl25sw:#00000040;--e-global-color-dblau90:#132A46E6;--e-global-color-weiss90:#FFFFFFE6;--e-global-color-zartb30:#B3E3F74D;--e-global-typography-primary-font-family:"Source Sans 3";--e-global-typography-primary-font-size:clamp(1.75rem, 1.15rem + 2.5vw, 2.75rem);--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.1em;--e-global-typography-primary-letter-spacing:0.02em;--e-global-typography-secondary-font-family:"Source Sans 3";--e-global-typography-secondary-font-size:clamp(1.375rem, 1.15rem + 1vw, 1.875rem);--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.17em;--e-global-typography-secondary-letter-spacing:0.02em;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:clamp(0.95rem, 0.9rem + 0.25vw, 1rem);--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.375em;--e-global-typography-text-letter-spacing:0rem;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:clamp(1rem, 0.95rem + 0.35vw, 1.125rem);--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.11em;--e-global-typography-accent-letter-spacing:0rem;--e-global-typography-typh4-font-family:"Montserrat";--e-global-typography-typh4-font-size:clamp(1.25rem, 1.05rem + 0.9vw, 1.5rem);--e-global-typography-typh4-font-weight:700;--e-global-typography-typh4-line-height:1.17em;--e-global-typography-typh4-letter-spacing:0rem;--e-global-typography-typftg-font-family:"Montserrat";--e-global-typography-typftg-font-size:clamp(1rem, 0.95rem + 0.3vw, 1.125rem);--e-global-typography-typftg-font-weight:400;--e-global-typography-typftg-line-height:1.39em;--e-global-typography-typftg-letter-spacing:0rem;--e-global-typography-typftk-font-family:"Montserrat";--e-global-typography-typftk-font-size:clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);--e-global-typography-typftk-font-weight:400;--e-global-typography-typftk-line-height:1.57em;--e-global-typography-typftk-letter-spacing:0rem;--e-global-typography-typbtn-font-family:"Montserrat";--e-global-typography-typbtn-font-size:clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);--e-global-typography-typbtn-font-weight:500;--e-global-typography-typbtn-line-height:1.54em;--e-global-typography-typbtn-letter-spacing:0rem;--e-global-typography-typnavc-font-family:"Montserrat";--e-global-typography-typnavc-font-size:clamp(1rem, 0.9rem + 0.55vw, 1.25rem);--e-global-typography-typnavc-font-weight:600;--e-global-typography-typnavc-line-height:1em;--e-global-typography-typnavc-letter-spacing:0rem;--e-global-typography-typslb-font-family:"Source Sans 3";--e-global-typography-typslb-font-size:clamp(3.25rem, -0.1786rem + 17.1429vw, 4rem);--e-global-typography-typslb-font-weight:700;--e-global-typography-typslb-line-height:0.95em;--e-global-typography-typslb-letter-spacing:0.02em;--e-global-typography-typslw-font-family:"Source Sans 3";--e-global-typography-typslw-font-size:clamp(2.5rem, 1.3571rem + 5.7143vw, 2.75rem);--e-global-typography-typslw-font-weight:600;--e-global-typography-typslw-line-height:1.1em;--e-global-typography-typslw-letter-spacing:0.02em;--e-global-typography-typslu-font-family:"Source Sans 3";--e-global-typography-typslu-font-size:clamp(1.625rem, 0.4821rem + 5.7143vw, 1.875rem);--e-global-typography-typslu-font-weight:600;--e-global-typography-typslu-line-height:1.17em;--e-global-typography-typslu-letter-spacing:0.02em;--e-global-typography-typhzt-font-family:"Source Sans 3";--e-global-typography-typhzt-font-size:clamp(3rem, -0.4286rem + 17.1429vw, 3.75rem);--e-global-typography-typhzt-font-weight:700;--e-global-typography-typhzt-line-height:0.8em;--e-global-typography-typhzt-letter-spacing:0.02em;--e-global-typography-typhzu-font-family:"Montserrat";--e-global-typography-typhzu-font-size:clamp(1.4rem, 8.6vw - 0.3rem, 2.1875rem);--e-global-typography-typhzu-font-weight:700;--e-global-typography-typhzu-line-height:1.143em;--e-global-typography-typhzu-letter-spacing:0em;--e-global-typography-typsti-font-family:"Source Sans 3";--e-global-typography-typsti-font-size:clamp(2rem, 10vw, 4rem);--e-global-typography-typsti-font-weight:700;--e-global-typography-typsti-text-transform:uppercase;--e-global-typography-typsti-line-height:1.0625em;--e-global-typography-typsti-letter-spacing:0.02em;--e-global-typography-typbtp-font-family:"Montserrat";--e-global-typography-typbtp-font-size:clamp(1rem, 0.95rem + 0.3vw, 1.125rem);--e-global-typography-typbtp-font-weight:700;--e-global-typography-typbtp-line-height:1.111em;--e-global-typography-typbtp-letter-spacing:0em;--e-global-typography-typh3u-font-family:"Source Sans 3";--e-global-typography-typh3u-font-size:clamp(1.375rem, 1.15rem + 1vw, 1.875rem);--e-global-typography-typh3u-font-weight:600;--e-global-typography-typh3u-text-transform:uppercase;--e-global-typography-typh3u-line-height:1.17em;--e-global-typography-typh3u-letter-spacing:0.02em;--e-global-typography-typmarke-font-family:"Source Sans 3";--e-global-typography-typmarke-font-size:clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem);--e-global-typography-typmarke-font-weight:400;--e-global-typography-typmarke-line-height:1.4em;--e-global-typography-typmarke-letter-spacing:0rem;--e-global-typography-typfti-font-family:"Source Sans 3";--e-global-typography-typfti-font-size:clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem);--e-global-typography-typfti-font-weight:600;--e-global-typography-typfti-line-height:1.4em;--e-global-typography-typfti-letter-spacing:0rem;--e-global-typography-typbtg-font-family:"Montserrat";--e-global-typography-typbtg-font-size:1.125rem;--e-global-typography-typbtg-font-weight:700;--e-global-typography-typbtg-line-height:1.111em;--e-global-typography-typbtg-letter-spacing:0rem;--e-global-typography-typkat-font-family:"Source Sans 3";--e-global-typography-typkat-font-size:clamp(1.625rem, 0.53rem + 5.5vw, 4rem);--e-global-typography-typkat-font-weight:700;--e-global-typography-typkat-line-height:0.95em;--e-global-typography-typkat-letter-spacing:0.02em;--e-global-typography-typausg-font-family:"Montserrat";--e-global-typography-typausg-font-size:clamp(1.375rem, 1.15rem + 1vw, 1.875rem);--e-global-typography-typausg-font-weight:400;--e-global-typography-typausg-line-height:1.375em;--e-global-typography-typausg-letter-spacing:0rem;--e-global-typography-typaus-font-family:"Montserrat";--e-global-typography-typaus-font-size:clamp(1.25rem, 1.05rem + 0.9vw, 1.5rem);--e-global-typography-typaus-font-weight:400;--e-global-typography-typaus-line-height:1.17em;--e-global-typography-typaus-letter-spacing:0rem;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 a{color:var( --e-global-color-accent );}.elementor-kit-4 a:hover{color:var( --e-global-color-primary );}.elementor-kit-4 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea:focus,.elementor-kit-4 .elementor-field-textual:focus{box-shadow:0px 0px 0px 2px var(--e-global-color-primary);}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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 .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ==========================================================
   PM Hochbau - Rest-CSS
   Alles Uebrige steht nativ in den Elementor-Einstellungen.
   Hier bleibt nur, wofuer Elementor keinen Regler anbietet.
   ========================================================== */

/* 1) Button-Hover: Breite +10px nach rechts (Figma 185 -> 195, Abstand 10 -> 20).
      Elementor hat fuer den Abstand weder einen Hover-Zustand
      noch eine Transition. Der Basisabstand kommt nativ aus
      Layout -> Elemente -> Abstand (10px). */
.pm-btn{
	transition:column-gap .35s ease;
}
.pm-btn:hover{
	column-gap:20px!important;
}

/* 1b) Buttons mit Bewegungseffekt (z. B. Floating "Projekt anfragen" mit Transparenz beim Scrollen):
      Elementors motion-fx.min.css setzt dort transition-property: transform, opacity und schaltet damit
      die Abstands-Animation (1) und den weichen Hintergrundwechsel ab -> alle vier Uebergaenge zusammenfuehren.
      Transform/Transparenz behalten Elementors Werte (1 s, cubic-bezier). */
.pm-btn.elementor-motion-effects-element{
	transition-property:transform,opacity,column-gap,background;
	transition-duration:1s,1s,.35s,.3s;
	transition-timing-function:cubic-bezier(0,.33,.07,1.03),cubic-bezier(0,.33,.07,1.03),ease,ease;
}

/* 2) Formular-Absendebutton: Icon-Kreis.
      Elementor Forms hat keine Steuerung fuer Hintergrund,
      Groesse oder Farbe des Button-Icons.
      Rahmen, Radius, Padding, Icon-Abstand und alle Farben
      stehen nativ unter Stil -> Schaltflaeche. */
.pm-form .elementor-button{
	display:inline-flex;
	align-items:center;
}
.pm-form .elementor-button .elementor-button-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	flex:0 0 40px;
	width:40px;
	height:40px;
	margin:-1px;
	border-radius:50%;
	background-color:var(--e-global-color-accent);
}
.pm-form .elementor-button .elementor-button-icon svg,
.pm-form .elementor-button .elementor-button-icon svg *{
	width:16px;
	height:16px;
	fill:var(--e-global-color-weiss00)!important;
}

/* 3) Gleiche Hover-Animation wie bei den uebrigen Buttons. */
.pm-form .elementor-button .elementor-button-content-wrapper{
	transition:column-gap .35s ease;
}
.pm-form .elementor-button:hover .elementor-button-content-wrapper{
	column-gap:20px!important;
}

/* 4) Sichtbarer Tastatur-Fokus (A10, WCAG 2.4.7).
      Elementor hat fuer Links/Buttons keinen Fokus-Regler; der Theme-Standard (schwarz bzw.
      Textfarbe) ist auf den dunkelblauen Flaechen unsichtbar. Zweifarbig: innen Weiss,
      aussen Dunkelblau -> auf hellem und dunklem Grund sichtbar. Nur bei Tastatur (:focus-visible).
      Formularfelder: nativ unter Website-Einstellungen -> Formularfelder -> Fokus. */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible{
	outline:2px solid var(--e-global-color-weiss00);
	outline-offset:0;
	box-shadow:0 0 0 4px var(--e-global-color-primary);
}

/* 5) Vollbild-Suche: Seite dahinter nicht scrollbar (Elementor sperrt den Scroll dabei nicht, kein Regler).
   Greift nur, solange die Suche offen ist (Klasse --full-screen). scrollbar-gutter verhindert den Seitensprung
   durch den verschwindenden Scrollbalken; Lenis (Eigener Code) pausiert dabei automatisch. */
html:has(.elementor-search-form--full-screen){overflow:hidden;scrollbar-gutter:stable;}

/* 6) Sprungmarken: Ueberschriften mit CSS-ID (Erweitert -> CSS-ID, z. B. Bauprojekte-Kategorien) landen nicht unter
   der Sticky-Navigation. Ab Laptop 80 px Navi + 40 px Luft; darunter scrollt die Mobil-Leiste weg -> nur Luft.
   Wirkt beim Klick auf derselben Seite und beim Aufruf von einer anderen Seite (der Browser scrollt selbst).
   Seit 02.11.: auch die Projekt-Anker der Loop-Vorlage 163 (CSS-ID dynamisch projekt-<SCF anker>, Ziel der Startseiten-Projektboxen). */
.elementor-widget-heading[id],[id^="projekt-"]{scroll-margin-top:24px;}
@media (min-width:1025px){.elementor-widget-heading[id],[id^="projekt-"]{scroll-margin-top:120px;}}

/* Bild wächst mit dem Text (seit 21.10.2026), Klasse am Bild-Widget: pm-bild-mitwachsen
   Zeile: Elemente ausrichten „Strecken“ + Mindesthöhe; Bild: Höhe 100 %, Objekt-Anpassung „Abdecken“ (alles nativ).
   Elementor hat keinen Regler dafür, dass das Bild die Zeilenhöhe übernimmt, OHNE sie mit seiner eigenen Höhe zu vergrößern:
   Hochformat-Bilder machten die Zeile sonst so hoch wie das Bild (Über uns, Manuel: 864 statt 560 px).
   contain:size + aspect-ratio:auto = das Bild bringt keine eigene Höhe/kein Seitenverhältnis mehr in die Berechnung ein. */
.pm-bild-mitwachsen img{contain:size;aspect-ratio:auto}

/* 1c) Floating-Elemente mit Transparenz beim Scrollen (seit 23.10.2026), Klasse pm-floating:
   Elementors Bewegungseffekt blendet nur ueber opacity aus (Inline-Style). Das Element bleibt dabei klickbar
   und faengt Klicks auf darunterliegende Links ab (Handy: Tipp auf "Impressum" sprang zum Formular).
   Elementor hat keinen Regler fuer pointer-events/visibility. Teiltransparent = nicht klickbar,
   ganz ausgeblendet = auch nicht per Tab erreichbar. Wieder sichtbar -> alles normal. */
.pm-floating[style*="opacity: 0"]{pointer-events:none}
.pm-floating[style*="opacity: 0;"]{visibility:hidden}/* End custom CSS */