/* ==========================================================================
   FHG Global Styles v1.0.0
   Globale Layout-Regeln fuer die Waldgeschwister Website
   ========================================================================== */

/* Content immer 50px vom Rand auf Desktop + Tablet.
   max-width bleibt bei Elementor (default 1700px),
   nur das aeussere Padding wird von 40px auf 50px erhoeht.

   Fuer Full-Bleed-Sections (Bilder, Videos edge-to-edge):
   CSS-Klasse "fhg-no-padding" im Elementor Advanced Tab setzen.
   Der Content-Text bleibt trotzdem im 1700px-Rahmen. */
@media (min-width: 768px) {
	.e-con.e-parent {
		padding-left: 50px !important;
		padding-right: 50px !important;
	}

	.e-con.e-parent.fhg-no-padding {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Sub-Header (698): Top-Banner über FullscreenMenu sichtbar halten.
   Stacking-Context-Issue: Sticky-Section (z-index 99) enthält das
   FullscreenMenu-Overlay (z-index 9999). Wenn der Top-Banner gleichen
   z-index hat (99 = 99), gewinnt die DOM-Order und Menu deckt Banner ab.
   Home-Header (212) hat Banner mit z-index 100 ab Elementor-Editor —
   Sub-Header (698) wird hier gleichgezogen, damit Banner und der
   rechts angedockte Sticky-Button bei offenem Menü sichtbar bleiben. */
.elementor-698 .elementor-element.elementor-element-383c7463 {
	z-index: 100 !important;
}

/* Hamburger-Schlagschatten nur auf Startseite (Header 212) — auf
   allen anderen Headern (z. B. 698 Sub-Pages) wird der Schatten
   entfernt. Default im FHG-FullscreenMenu Plugin ist
   "box-shadow: 0 0 2px #444444" auf .fhg-fsmenu__bar. */
.elementor-698 .fhg-fsmenu__bar {
	box-shadow: none !important;
}

/* ==========================================================================
   Leading-Trim (text-box-trim)
   Schneidet den unsichtbaren Half-Leading-Puffer über und unter Text-Boxen
   weg, damit Margin/Padding visuell stimmen (Figma "Vertical Trim" Pendant).
   Line-Heights vom Kunden bleiben unangetastet — der Zeilenabstand
   innerhalb mehrzeiliger Texte bleibt erhalten, nur die äußere Box wird
   an Cap-Höhe (oben) und Alphabetic-Baseline (unten) getrimmt.

   Browser-Support Mai 2026 (caniuse): ~82 % global.
   Chrome 133+, Edge 133+, Chrome Android 148+, Safari 18.2+, iOS 18.2+.
   Firefox bis 153 ohne Support → @supports-Fallback mit negativen em-Margins
   approximiert den Effekt.
   ========================================================================== */
/* Trim auf Block-Container — NIE auf <span>, weil Custom-Widgets wie
   FHG-ImageText pro Zeile einen <span class="...__title-line"> rendern
   (Stagger-Animation). Trim auf Zeilen-Spans killt das Inner-Half-Leading
   und lässt Zeilen aufeinanderkleben. */
.elementor h1, .elementor h2, .elementor h3,
.elementor h4, .elementor h5, .elementor h6,
.elementor p, .elementor .elementor-heading-title,
.elementor-widget-text-editor p,
[class*="fhg-"] h1, [class*="fhg-"] h2, [class*="fhg-"] h3,
[class*="fhg-"] h4, [class*="fhg-"] h5, [class*="fhg-"] h6,
[class*="fhg-"] p {
	text-box-trim: trim-both;
	text-box-edge: cap alphabetic;
}

/* Spezifischer Fix für FHG-IntroText-Wrapper (Container, kein Span) */
.fhg-introtext,
.fhg-introtext__text,
.fhg-introtext p {
	text-box-trim: trim-both;
	text-box-edge: cap alphabetic;
}

/* Hello-Biz Child Theme setzt margin-block-end: 0.9rem auf alle <p>
   (theme.css?ver=1.2.0). Das überlagert text-box-trim mit ~14px Phantom-Puffer.
   Reset nur am letzten <p> jedes Containers — so bleibt der Abstand
   zwischen mehreren <p> im selben Block erhalten (Theme-Standard für
   Fliesstext), aber das Widget endet pixel-genau ohne Phantom-Puffer. */
.elementor p:last-child,
[class*="fhg-"] p:last-child {
	margin-block-end: 0;
}


/* Fallback ohne text-box-trim (Firefox, ältere Browser, Editor-Iframes).
   Formel: Half-Leading = (LH - Font-Size) / 2 / Font-Size.
   Bei Poppins 22/36 → 0.318em; bei SangBleu 30/37 → 0.117em.
   Kompromiss-Wert -0.3em greift bei großen LH-Ratios spürbar und ist
   bei tight LH (1.0-1.1) nur minimal zu stark. */
@supports not (text-box-trim: trim-both) {
	.elementor h1, .elementor h2, .elementor h3,
	.elementor h4, .elementor h5, .elementor h6,
	.elementor p, .elementor .elementor-heading-title,
	.elementor-widget-text-editor p,
	[class*="fhg-"] h1, [class*="fhg-"] h2, [class*="fhg-"] h3,
	[class*="fhg-"] h4, [class*="fhg-"] h5, [class*="fhg-"] h6,
	[class*="fhg-"] p,
	.fhg-introtext,
	.fhg-introtext p {
		margin-top: -0.3em;
		margin-bottom: -0.3em;
	}
}

.elementor-widget-video .e-hosted-video .elementor-video {
    -o-object-fit: cover;
    object-fit: cover;
}

.full-height-video .elementor-wrapper {
	position: relative;
	height: 95vh;
	width: 100%;
}

.elementor-widget-video .elementor-wrapper iframe, .elementor-widget-video .elementor-wrapper video {
	background-color: transparent !important;
}

.elementor-widget-video .elementor-wrapper iframe, .elementor-widget-video .elementor-wrapper video {
    background-color: #000;
    border: none;
    display: flex;
    height: 100%;
    width: 100%;
}