:root {
	--hg2-ink: var(--naib-text, #162a36);
	--hg2-muted: var(--naib-muted, #5c6b73);
	--hg2-brand: var(--naib-primary, #004b76);
	--hg2-accent: var(--naib-accent, #d4aa3a);
	--hg2-on-brand: var(--naib-on-primary, #fff);
	--hg2-surface: var(--naib-surface, #f3f6f7);
	--hg2-white: var(--naib-background, #fff);
	--hg2-radius: var(--naib-radius-card, 24px);
	--hg2-shadow: var(--naib-card-shadow, 0 18px 50px rgba(16, 42, 55, .10));
}

/* Commerce-Navigation: echte Kategorien, dynamischer Warenkorb und Footerlinks. */
.naib-product-categories {
	display: grid;
	grid-template-columns: repeat(var(--naib-category-columns, 4), minmax(0, 1fr));
	gap: clamp(14px, 2vw, 24px);
}
.naib-category-card {
	display: grid;
	grid-template-rows: minmax(160px, 1fr) auto;
	position: relative;
	min-width: 0;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--hg2-ink) 13%, transparent);
	border-radius: var(--hg2-radius);
	background: var(--naib-background, #fff);
	color: var(--hg2-ink);
	text-decoration: none;
	box-shadow: var(--hg2-shadow);
	transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.naib-category-card:hover,
.naib-category-card:focus-visible { transform: translateY(-4px); border-color: var(--hg2-accent); box-shadow: 0 24px 60px rgba(16,42,55,.16); }
.naib-category-media { display: grid; place-items: center; min-height: 180px; overflow: hidden; background: color-mix(in srgb, var(--hg2-accent) 8%, var(--hg2-surface)); }
.naib-category-media img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; transition: transform .45s ease; }
.naib-category-card:hover .naib-category-media img { transform: scale(1.035); }
.naib-category-placeholder { font-size: 58px; color: var(--hg2-accent); }
.naib-category-copy { display: flex; flex-direction: column; gap: 3px; padding: 20px 52px 20px 20px; }
.naib-category-copy strong { font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.naib-category-copy small { color: var(--hg2-muted); }
.naib-category-arrow { position: absolute; right: 20px; bottom: 21px; color: var(--hg2-accent); font-size: 1.35rem; }

.menu-item.naib-menu-cart { flex: 0 0 auto !important; white-space: nowrap; }
.menu-item.naib-menu-cart > a { display: inline-flex !important; align-items: center; justify-content: center; gap: 7px; position: relative; min-width: 54px; }
.naib-menu-cart svg,
.naib-mobile-cart-link svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.naib-cart-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding-inline: 5px; border-radius: 999px; background: var(--hg2-accent); color: var(--naib-accent-contrast, #101828); font-size: 11px; font-weight: 800; line-height: 1; }
.naib-cart-total { white-space: nowrap; font-size: .9em; }
.naib-mobile-cart-link { display: none; }

/* Der Mini-Warenkorb ist bewusst kompakt. Sein Preis erscheint als ruhiges
 * Hover-/Focus-Label statt die Astra-Navigation in eine zweite Zeile zu drücken. */
#ast-desktop-header .main-header-menu { flex-wrap: nowrap !important; }
/* Ein vorhandener Kontakt-CTA ersetzt am Desktop den gleichnamigen
 * Navigationspunkt. Mobil bleibt der Link im Drawer vollständig erhalten. */
@media (min-width: 922px) {
	#ast-desktop-header .main-header-menu > .naib-mobile-only-contact { display: none !important; }
}
#ast-desktop-header .naib-cart-total {
	position: absolute;
	top: calc(100% - 10px);
	left: 50%;
	z-index: 20;
	min-width: max-content;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--hg2-brand, #102a36);
	color: var(--hg2-on-brand, #fff);
	box-shadow: 0 10px 28px rgba(0,0,0,.18);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 6px);
	transition: opacity .18s ease, transform .18s ease;
}
#ast-desktop-header .naib-cart-link:hover .naib-cart-total,
#ast-desktop-header .naib-cart-link:focus-visible .naib-cart-total { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1024px) {
	[data-section="section-header-mobile-trigger"] { gap: 8px; }
	.naib-mobile-cart-link {
		position: relative;
		display: inline-grid;
		place-items: center;
		width: 42px;
		height: 42px;
		flex: 0 0 42px;
		border-radius: 999px;
		background: var(--hg2-accent, #e7c817);
		color: var(--naib-accent-contrast, #101828) !important;
		box-shadow: 0 8px 22px color-mix(in srgb, var(--hg2-brand, #102a36) 20%, transparent);
		text-decoration: none;
	}
	.naib-mobile-cart-link .naib-cart-count {
		position: absolute;
		top: -4px;
		right: -5px;
		min-width: 18px;
		height: 18px;
		padding-inline: 4px;
		border: 2px solid var(--naib-background, #fff);
		background: var(--hg2-brand, #102a36);
		color: var(--hg2-on-brand, #fff);
		font-size: 10px;
	}
}
.naib-shop-footer-links { display: flex; flex-direction: column; gap: 8px; }
.naib-products-empty { display: grid; place-items: center; gap: 10px; min-height: 260px; padding: 36px; border: 1px dashed color-mix(in srgb, var(--hg2-ink) 20%, transparent); border-radius: var(--hg2-radius); background: color-mix(in srgb, var(--hg2-accent) 5%, var(--naib-background, #fff)); text-align: center; color: var(--hg2-muted); }
.naib-products-empty > span { font-size: 48px; color: var(--hg2-accent); }
.naib-products-empty strong { color: var(--hg2-ink); font-size: clamp(1.25rem, 2vw, 1.7rem); }
.naib-products-empty p { max-width: 560px; margin: 0; }
.naib-products-empty a { display: inline-flex; min-height: 44px; align-items: center; padding: 10px 20px; border-radius: var(--naib-radius-button, 999px); background: var(--hg2-accent); color: #101828; font-weight: 800; text-decoration: none; }

@media (max-width: 1024px) {
	.naib-product-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.naib-cart-total { display: none; }
}
@media (max-width: 600px) {
	.naib-product-categories { grid-template-columns: 1fr; }
	.naib-category-card { grid-template-columns: 108px minmax(0, 1fr); grid-template-rows: minmax(108px, auto); }
	.naib-category-media, .naib-category-media img { min-height: 108px; height: 100%; }
}

body.naib-archetype-local_service {
	--naib-archetype-radius-button: 999px;
	--naib-archetype-radius-card: 14px;
	--naib-archetype-radius-image: 16px;
	--naib-archetype-radius-input: 10px;
}
body.naib-archetype-healthcare {
	--naib-archetype-radius-button: 999px;
	--naib-archetype-radius-card: 22px;
	--naib-archetype-radius-image: 26px;
	--naib-archetype-radius-input: 12px;
}
body.naib-archetype-professional {
	--naib-archetype-radius-button: 8px;
	--naib-archetype-radius-card: 10px;
	--naib-archetype-radius-image: 10px;
	--naib-archetype-radius-input: 8px;
}
body.naib-archetype-craft_industry {
	--naib-archetype-radius-button: 8px;
	--naib-archetype-radius-card: 8px;
	--naib-archetype-radius-image: 10px;
	--naib-archetype-radius-input: 8px;
}
body.naib-archetype-automotive {
	--naib-archetype-radius-button: 4px;
	--naib-archetype-radius-card: 3px;
	--naib-archetype-radius-image: 2px;
	--naib-archetype-radius-input: 4px;
}
/* Die Branche steuert Formen, nicht mehr ungefragt das Farbsystem. Nur ein
 * ausdrücklich gewählter Dark-Master erhält dunkle Automotive-Flächen. */
body.naib-archetype-automotive.naib-master-dark {
	--naib-text: #f4f4f2;
	--naib-muted: #b9b9b4;
	--naib-background: var(--naib-master-background, #111315);
	--naib-surface: var(--naib-master-surface, #191c1f);
	--naib-card-shadow: 0 18px 54px rgba(0, 0, 0, .32);
}
body.naib-archetype-automotive.naib-master-dark .hg2-section {
	background-color: var(--naib-background);
}
body.naib-archetype-automotive.naib-master-dark .hg2-card,
body.naib-archetype-automotive.naib-master-dark .hg2-media-card,
body.naib-archetype-automotive.naib-master-dark .hg2-article-panel {
	border-color: rgba(255,255,255,.10);
	background: var(--naib-surface, #191c1f);
}
body.naib-archetype-automotive.naib-master-dark .hg2-hero-split {
	background: radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--hg2-accent) 25%, transparent), transparent 30%), #111315;
}
body.naib-archetype-automotive .hg2-card-number .elementor-heading-title {
	border-radius: 2px;
}

/* Zwei getrennte Master-Designs. Alle nachgelagerten Komponenten beziehen
 * ihre Text-, Karten- und Flächenfarben aus genau diesem Token-Satz. */
body.naib-master-light {
	--naib-background: var(--naib-master-background, #fff);
	--naib-surface: var(--naib-master-surface, #f5f7fa);
	--naib-text: var(--naib-master-text, #1f2430);
	--naib-muted: var(--naib-master-muted, #5d6470);
	background: var(--naib-background);
	color: var(--naib-text);
}
body.naib-master-dark {
	--naib-background: var(--naib-master-background, #091018);
	--naib-surface: var(--naib-master-surface, #121c26);
	--naib-text: var(--naib-master-text, #f7f8fa);
	--naib-muted: var(--naib-master-muted, #c7cdd4);
	--naib-card-shadow: 0 22px 58px rgba(0,0,0,.34);
	background: var(--naib-background);
	color: var(--naib-text);
}
body:is(.naib-master-light,.naib-master-dark) :is(.elementor-location-single,[data-elementor-type="wp-page"]) {
	background: var(--naib-background);
}
body:is(.naib-master-light,.naib-master-dark) .e-con.hg2-section:not(.hg2-hero-cinematic):not(.hg2-footer) {
	background-color: var(--naib-background);
}
body:is(.naib-master-light,.naib-master-dark) :is(.hg2-card,.hg2-media-card,.hg2-article-panel,.hg2-process-card,.hg2-contact-card) {
	border-color: color-mix(in srgb, var(--naib-text) 13%, transparent);
	background: var(--naib-surface);
	color: var(--naib-text);
}
body:is(.naib-master-light,.naib-master-dark) :is(.hg2-display,.hg2-title,.hg2-card-title) .elementor-heading-title {
	color: var(--naib-text);
}
body:is(.naib-master-light,.naib-master-dark) :is(.hg2-lead,.hg2-body,.hg2-card-copy),
body:is(.naib-master-light,.naib-master-dark) :is(.hg2-lead,.hg2-body,.hg2-card-copy) p {
	color: var(--naib-muted);
}
body:is(.naib-master-light,.naib-master-dark) .site-primary-header-wrap:not(.ast-theme-transparent-header .site-primary-header-wrap) {
	background: color-mix(in srgb, var(--naib-header-bg) 94%, transparent);
	color: var(--naib-header-text);
}
body:is(.naib-master-light,.naib-master-dark) .e-con.hg2-footer-mode-color {
	background: radial-gradient(circle at 14% 0, color-mix(in srgb, var(--hg2-accent) 24%, transparent), transparent 30rem), var(--naib-footer-bg);
	color: var(--naib-footer-text);
}

/* Websiteweite Designregie: robuste Oberflächenunterschiede, die alle Seiten
 * verbinden, ohne die jeweilige Markenpalette zu überschreiben. */
body.naib-direction-cinematic_precision {
	--naib-card-shadow: 0 22px 58px rgba(16, 42, 55, .13);
}
body.naib-direction-cinematic_precision .hg2-image img,
body.naib-direction-cinematic_precision .hg2-media-card {
	box-shadow: var(--naib-card-shadow);
}
body.naib-direction-editorial_authority {
	--naib-radius-card: min(var(--naib-radius-card, 14px), 12px);
	--naib-card-shadow: 0 12px 34px rgba(16, 42, 55, .07);
}
body.naib-direction-editorial_authority .hg2-section-intro,
body.naib-direction-editorial_authority .hg2-knowledge-copy {
	border-left: 2px solid color-mix(in srgb, var(--hg2-accent) 64%, transparent);
	padding-left: clamp(18px, 2vw, 28px);
}
body.naib-direction-warm_editorial {
	--naib-surface: color-mix(in srgb, var(--hg2-accent) 7%, #faf9f6);
	--naib-card-shadow: 0 20px 54px rgba(58, 42, 28, .09);
}
body.naib-direction-warm_editorial .hg2-card,
body.naib-direction-warm_editorial .hg2-media-card {
	border-color: color-mix(in srgb, var(--hg2-accent) 20%, transparent);
}
body.naib-direction-industrial_grid {
	--naib-radius-card: min(var(--naib-radius-card, 8px), 8px);
	--naib-radius-image: min(var(--naib-radius-image, 10px), 8px);
	--naib-card-shadow: 0 12px 28px rgba(16, 42, 55, .08);
}
body.naib-direction-industrial_grid .hg2-card,
body.naib-direction-industrial_grid .hg2-media-card,
body.naib-direction-industrial_grid .hg2-article-panel {
	border-width: 1px;
	border-color: color-mix(in srgb, var(--hg2-brand) 22%, transparent);
}
body.naib-direction-luminous_tech {
	--naib-card-shadow: 0 24px 64px color-mix(in srgb, var(--hg2-brand) 13%, transparent);
}
body.naib-direction-luminous_tech .hg2-surface,
body.naib-direction-luminous_tech .hg2-glass-stage {
	background-image:
		radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--hg2-accent) 12%, transparent), transparent 28rem),
		linear-gradient(145deg, color-mix(in srgb, var(--hg2-brand) 5%, #fff), #fff);
}

.e-con.hg2-section {
	width: 100%;
	padding: clamp(48px, 4.7vw, 76px) max(20px, calc((100% - var(--naib-content-width, 1200px)) / 2));
	color: var(--hg2-ink);
}

.e-con.hg2-section-compact { padding-top: 32px; padding-bottom: 32px; }
.e-con.hg2-surface { background: var(--hg2-surface); }
.e-con.hg2-shell { width: 100%; max-width: var(--naib-content-width, 1200px); margin-inline: auto; }
.e-con.hg2-stack, .e-con.hg2-stack-large, .e-con.hg2-stack-small { display: flex; flex-direction: column; }
.e-con.hg2-stack { gap: 24px; }
.e-con.hg2-stack-large { gap: clamp(30px, 4vw, 52px); }
.e-con.hg2-stack-small { gap: 10px; }
.e-con.hg2-grid-2, .e-con.hg2-grid-3, .e-con.hg2-grid-4, .e-con.hg2-grid-faq {
	display: grid;
	width: 100%;
	gap: clamp(20px, 2.5vw, 32px);
}
.e-con.hg2-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.hg2-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.hg2-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.hg2-grid-faq { grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); }
.e-con.hg2-align-center { align-items: center; }
.e-con.hg2-align-start { align-items: start; }
.e-con.hg2-actions { display: flex; flex-flow: row wrap; align-items: center; gap: 12px; }

/*
 * Elementor rendert jeden "boxed" Container mit einem zusätzlichen
 * .e-con-inner. Damit Layoutklassen nicht nur diesen einen Wrapper, sondern
 * die eigentlichen Kinder anordnen, wird die Layout-DNA hier gezielt auf den
 * Laufzeit-Wrapper übertragen. Ohne diese Brücke landete der Wrapper in der
 * ersten Grid-Spalte und alle Karten standen schmal untereinander.
 */
.e-con.hg2-grid-2 > .e-con-inner,
.e-con.hg2-grid-3 > .e-con-inner,
.e-con.hg2-grid-4 > .e-con-inner,
.e-con.hg2-grid-faq > .e-con-inner {
	grid-column: 1 / -1;
	display: grid;
	width: 100%;
	max-width: none;
	gap: clamp(20px, 2.5vw, 32px);
}
/* Vier dynamisch erzeugte Karten sollen auf großen Bildschirmen als ruhiges
 * 2×2-Raster erscheinen, nicht als 3+1-Komposition mit leerer Fläche. */
@media (min-width: 768px) {
	.e-con.hg2-grid-3 > .e-con-inner:has(> :nth-child(4):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.e-con.hg2-grid-2 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.hg2-grid-3 > .e-con-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.hg2-grid-4 > .e-con-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.hg2-grid-faq > .e-con-inner { grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); }
.e-con.hg2-align-center > .e-con-inner { align-items: center; }
.e-con.hg2-align-start > .e-con-inner { align-items: start; }

/* Längere redaktionelle Karten und FAQ-Inhalte brauchen auf klassischen
 * 768–921-px-Tablets die volle Zeilenbreite. Drei Textspalten bzw. eine sehr
 * schmale FAQ-Einleitung erzeugen dort sonst Ein-Wort-Zeilen und große
 * scheinbar leere Flächen. Kompakte Kartenraster bleiben davon unberührt. */
@media (max-width: 921px) {
	.e-con.hg2-seo-depth-grid,
	.e-con.hg2-seo-depth-grid > .e-con-inner,
	.e-con.hg2-grid-faq,
	.e-con.hg2-grid-faq > .e-con-inner {
		grid-template-columns: 1fr !important;
	}
}

.e-con.hg2-stack > .e-con-inner,
.e-con.hg2-stack-large > .e-con-inner,
.e-con.hg2-stack-small > .e-con-inner,
.e-con.hg2-section-intro > .e-con-inner,
.e-con.hg2-card > .e-con-inner,
.e-con.hg2-floating-card > .e-con-inner,
.e-con.hg2-contact-info > .e-con-inner {
	display: flex;
	width: 100%;
	max-width: none;
	flex-direction: column;
}
.e-con.hg2-stack > .e-con-inner { gap: 24px; }
.e-con.hg2-stack-large > .e-con-inner { gap: clamp(30px, 4vw, 52px); }
.e-con.hg2-stack-small > .e-con-inner { gap: 10px; }
.e-con.hg2-actions > .e-con-inner {
	display: flex;
	width: 100%;
	max-width: none;
	flex-direction: row !important;
	flex-flow: row wrap;
	align-items: center;
	gap: 12px;
}

.hg2-kicker .elementor-heading-title {
	color: var(--hg2-accent) !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.25 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
}
.hg2-display .elementor-heading-title {
	max-width: 760px;
	color: var(--hg2-ink) !important;
	font-size: clamp(40px, 4.4vw, 68px) !important;
	font-weight: 750 !important;
	line-height: 1.04 !important;
	letter-spacing: -.04em !important;
	text-wrap: balance;
	hyphens: none;
	overflow-wrap: break-word;
	word-break: normal;
}
.hg2-display-sub .elementor-heading-title { font-size: clamp(36px, 3.35vw, 52px) !important; }
.hg2-title .elementor-heading-title {
	color: var(--hg2-ink) !important;
	font-size: clamp(30px, 3.15vw, 48px) !important;
	font-weight: 740 !important;
	line-height: 1.1 !important;
	letter-spacing: -.035em !important;
	text-wrap: balance;
	hyphens: none;
	overflow-wrap: break-word;
	word-break: normal;
}
/* Zweispaltige Wissens-/Prozessmodule sind absichtlich kompakter als eine
 * normale Abschnittsüberschrift. Deutsche Komposita dürfen hier sauber
 * getrennt werden, statt am Spaltenende in einzelne Buchstaben zu zerfallen. */
.hg2-knowledge-copy .hg2-title .elementor-heading-title {
	font-size: clamp(28px, 2.55vw, 40px) !important;
	text-wrap: pretty;
	-webkit-hyphens: none;
	hyphens: none;
	overflow-wrap: break-word;
	word-break: normal;
}
.hg2-lead, .hg2-body, .hg2-card-copy, .hg2-floating-copy, .hg2-quote-meta { color: var(--hg2-muted); }
.hg2-lead { max-width: 690px; font-size: clamp(18px, 1.65vw, 21px); line-height: 1.65; }
.hg2-body { max-width: 720px; font-size: 17px; line-height: 1.75; }
.hg2-knowledge-body p,
.hg2-seo-copy p { margin-block: 0 1.15em; }
.hg2-body p:last-child, .hg2-lead p:last-child, .hg2-card-copy p:last-child { margin-bottom: 0; }
.e-con.hg2-section-intro { max-width: 780px; display: flex; flex-direction: column; gap: 16px; }
.e-con.hg2-section-intro > .e-con-inner { gap: 16px; }

.hg2-button { width: auto !important; }
.hg2-button .elementor-button {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 52px;
	padding: 15px 24px;
	border: 1px solid transparent;
	border-radius: var(--naib-radius-button, var(--naib-archetype-radius-button, 999px)) !important;
	font-weight: 750;
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.hg2-button .elementor-button:hover,
.hg2-button .elementor-button:focus-visible {
	border-radius: var(--naib-radius-button, var(--naib-archetype-radius-button, 999px)) !important;
	transform: translateY(-2px) scale(1.012);
	box-shadow: 0 15px 34px color-mix(in srgb, var(--hg2-brand) 30%, transparent);
}
.hg2-button .elementor-button:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--hg2-accent) 70%, #fff);
	outline-offset: 3px;
}
.hg2-button-primary .elementor-button {
	background: var(--hg2-accent);
	color: var(--naib-accent-contrast, #162a36);
	box-shadow: 0 10px 24px color-mix(in srgb, var(--hg2-accent) 28%, transparent);
}
.hg2-cta :is(.hg2-button-primary, .hg2-button-light) .elementor-button,
.hg2-cta-panel :is(.hg2-button-primary, .hg2-button-light) .elementor-button {
	border-color: var(--hg2-accent) !important;
	background: var(--hg2-accent) !important;
	color: var(--naib-accent-contrast, #162a36) !important;
}
.hg2-button-secondary .elementor-button {
	border-color: color-mix(in srgb, var(--hg2-brand) 28%, transparent);
	background: transparent;
	color: var(--hg2-brand);
}
/* Elementor-Globalfarben können selbst einem als sekundär zertifizierten
 * Button wieder die Akzentfläche geben. Auf hellen Komponenten bleibt die
 * zweite Aktion deshalb verbindlich als Outline erkennbar. */
body.naib-master-light .hg2-button-secondary .elementor-button {
	border-color: color-mix(in srgb, var(--hg2-brand) 62%, transparent) !important;
	background: transparent !important;
	color: var(--hg2-brand) !important;
	box-shadow: none !important;
}
.hg2-button-light .elementor-button { background: #fff; color: var(--hg2-brand); }

.e-con.hg2-hero-split {
	min-height: min(760px, 86svh);
	padding-top: clamp(96px, 11vw, 150px);
	padding-bottom: clamp(70px, 8vw, 112px);
	background:
		radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--hg2-accent) 22%, transparent), transparent 30%),
		linear-gradient(145deg, #f8faf9, #edf3f4);
}
body.naib-master-light .e-con.hg2-hero-split {
	background: radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--hg2-accent) 20%, transparent), transparent 30%), linear-gradient(145deg, var(--naib-surface), var(--naib-background));
}
body.naib-master-dark .e-con.hg2-hero-split {
	background: radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--hg2-accent) 24%, transparent), transparent 30%), linear-gradient(145deg, var(--naib-surface), var(--naib-background));
}
.hg2-display-split .elementor-heading-title { max-width: 700px; }
.hg2-hero-split-copy,
.hg2-hero-split-copy > .e-con-inner { max-width: 690px; }
.hg2-hero-split-media {
	position: relative;
	min-height: clamp(420px, 48vw, 620px);
	overflow: hidden;
	border-radius: clamp(24px, 3vw, 42px);
	box-shadow: 0 34px 80px rgba(16,42,55,.18);
}
.hg2-hero-split-media:after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, transparent 55%, rgba(9,28,38,.22));
}
.hg2-hero-split-media .elementor-widget-container,
.hg2-hero-split-media img {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}
.hg2-hero-split-media .hg2-image {
	width: 100%;
	height: 100%;
}

/* Ein 50/50-Split ist bei 768px für deutsche, keywordnahe Hero-Headlines zu
 * schmal. Gleichzeitig vermeidet der frühere Einspaltenwechsel die lange
 * leere Medienfläche unter einem nur oben ausgerichteten Bild. */
@media (max-width: 921px) {
	.e-con.hg2-hero-split .e-con.hg2-grid-2,
	.e-con.hg2-hero-split .e-con.hg2-grid-2 > .e-con-inner {
		grid-template-columns: 1fr !important;
	}
	.hg2-hero-split-copy,
	.hg2-hero-split-copy > .e-con-inner { max-width: none; }
	.hg2-hero-split-media { min-height: clamp(360px, 58vw, 520px); }
}
.hg2-hero-video-player,
.hg2-hero-video-player .elementor-widget-container,
.naib-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hg2-hero-video-player { z-index: 1; opacity: 0; transition: opacity .35s ease; }
.hg2-hero-video-media.naib-video-ready .hg2-hero-video-player { opacity: 1; }
.hg2-hero-video-media.naib-video-ready .hg2-hero-video-fallback { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
	.hg2-hero-video-player { display: none; }
	.hg2-hero-video-fallback { opacity: 1 !important; }
}
.hg2-hero-proof {
	max-width: 590px;
	padding-top: 18px;
	border-top: 1px solid color-mix(in srgb, var(--hg2-brand) 18%, transparent);
	color: var(--hg2-muted);
	font-size: 14px;
	line-height: 1.6;
}
.hg2-hero-split .hg2-hero-proof {
	padding-top: 0;
	border-top: 0;
}
.hg2-hero-proof strong { color: var(--hg2-brand); }

/* Barrierefreie interaktive Zweierkarten. Ohne JavaScript stehen Vorder- und
 * Rückseite untereinander; erst die progressive Klasse aktiviert den Flip. */
.e-con.hg2-flip-grid,
.hg2-flip-grid {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 34px);
}
/* Auch diese interaktive Kartenfamilie wird von Elementor bei boxed
 * Containern in .e-con-inner eingepackt. Die Grid-Regeln muessen deshalb wie
 * bei den normalen hg2-Grids auf den Laufzeit-Wrapper weitergereicht werden. */
.e-con.hg2-flip-grid > .e-con-inner {
	grid-column: 1 / -1;
	display: grid;
	width: 100%;
	max-width: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 34px);
}
.hg2-flip-card {
	position: relative;
	min-height: clamp(390px, 42vw, 540px);
	overflow: hidden;
	isolation: isolate;
	background: var(--hg2-brand);
	color: var(--hg2-on-brand);
	perspective: 1200px;
}
.hg2-flip-card .hg2-flip-image,
.hg2-flip-card .hg2-flip-image .elementor-widget-container,
.hg2-flip-card .hg2-flip-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hg2-flip-card:after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(180deg, rgba(5,10,15,.12), rgba(5,10,15,.86));
	pointer-events: none;
}
.hg2-flip-face {
	position: relative;
	z-index: 2;
	display: flex;
	min-height: inherit;
	padding: clamp(28px, 5vw, 58px);
	justify-content: flex-end;
	transform-style: preserve-3d;
	backface-visibility: hidden;
}
.hg2-flip-face :is(.elementor-heading-title,.hg2-card-copy,.hg2-card-copy p,.hg2-flip-cue,.hg2-flip-cue p) { color: #fff !important; }
.hg2-flip-back { display: none; background: color-mix(in srgb, var(--hg2-brand) 88%, rgba(5,10,15,.94)); }
.hg2-flip-cue { font-weight: 800; text-decoration: underline; text-underline-offset: 5px; }
.hg2-flip-card.naib-flip-ready { cursor: pointer; }
.hg2-flip-card.naib-flip-ready .hg2-flip-face {
	position: absolute;
	inset: 0;
	transition: transform .58s cubic-bezier(.2,.75,.2,1), opacity .3s ease;
}
.hg2-flip-card.naib-flip-ready .hg2-flip-front { transform: rotateY(0); }
.hg2-flip-card.naib-flip-ready .hg2-flip-back { display: flex; transform: rotateY(180deg); }
.hg2-flip-card.naib-flip-ready:is(:hover,.is-flipped) .hg2-flip-front { transform: rotateY(-180deg); }
.hg2-flip-card.naib-flip-ready:is(:hover,.is-flipped) .hg2-flip-back { transform: rotateY(0); }
.naib-flip-toggle {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 5;
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.7);
	border-radius: 999px;
	background: rgba(5,10,15,.5);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.naib-flip-toggle:hover,
.naib-flip-toggle:focus-visible { background: var(--hg2-accent); color: var(--naib-accent-contrast,#111827); }
.naib-flip-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (max-width: 767px) {
	.hg2-flip-grid,
	.e-con.hg2-flip-grid > .e-con-inner { grid-template-columns: 1fr; }
	.hg2-flip-card { min-height: 420px; }
}
@media (prefers-reduced-motion: reduce) {
	.hg2-flip-card.naib-flip-ready .hg2-flip-face { transition: opacity .01ms linear; transform: none !important; }
	.hg2-flip-card.naib-flip-ready .hg2-flip-back { opacity: 0; }
	.hg2-flip-card.naib-flip-ready:is(:hover,.is-flipped) .hg2-flip-front { opacity: 0; }
	.hg2-flip-card.naib-flip-ready:is(:hover,.is-flipped) .hg2-flip-back { opacity: 1; }
}

.e-con.hg2-hero {
	position: relative;
	overflow: hidden;
	min-height: min(780px, 90vh);
	padding-top: clamp(72px, 9vw, 140px);
	padding-bottom: clamp(72px, 9vw, 140px);
	background:
		radial-gradient(circle at 82% 18%, color-mix(in srgb, var(--hg2-accent) 20%, transparent), transparent 28%),
		linear-gradient(135deg, #f8faf9 0%, #edf3f4 100%);
}
.e-con.hg2-hero-cinematic {
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 88svh;
	padding: 0 max(20px, calc((100% - var(--naib-content-width, 1200px)) / 2));
	background: #102a36;
}
.hg2-hero-cinematic:before { display: none; }
.hg2-hero-cinematic > .e-con-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 88svh;
}
.hg2-hero-backdrop {
	position: absolute !important;
	z-index: -2;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}
.hg2-hero-backdrop .elementor-widget-container,
.hg2-hero-backdrop .elementor-swiper,
.hg2-hero-backdrop .swiper,
.hg2-hero-backdrop .swiper-wrapper,
.hg2-hero-backdrop .swiper-slide { height: 100% !important; min-height: 88svh; }
/*
 * Hintergrund-Slider haben absichtlich eine eigene stabile Text-Ebene.
 * Elementor-Pro-Defaults dürfen deshalb weder sichtbar noch anklickbar sein.
 */
.hg2-hero-backdrop .swiper-slide-contents,
.hg2-hero-backdrop .elementor-slide-button {
	display: none !important;
}
.hg2-hero-backdrop .swiper-slide-inner { pointer-events: none; }
.hg2-hero-backdrop-image img {
	width: 100%;
	height: 100%;
	min-height: 88svh;
	border-radius: 0;
	object-fit: cover;
	filter: brightness(.48) saturate(.86);
}
.e-con.hg2-hero-overlay {
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 88svh;
	padding: clamp(130px, 15vh, 190px) 0 clamp(90px, 11vh, 140px);
}
.e-con.hg2-hero-overlay > .e-con-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: var(--naib-content-width, 1200px);
	margin-inline: auto;
}
.hg2-hero-cinematic .hg2-hero-copy,
.hg2-hero-cinematic .hg2-hero-copy > .e-con-inner {
	align-items: center;
	justify-content: center;
	width: min(100%, 940px) !important;
	max-width: 940px;
	margin-inline: auto !important;
	text-align: center;
}
.hg2-hero-cinematic .hg2-display .elementor-heading-title {
	max-width: 940px;
	color: #fff !important;
	font-size: clamp(42px, 4.65vw, 68px) !important;
	font-weight: 680 !important;
	line-height: 1.03 !important;
	letter-spacing: -.04em !important;
	text-shadow: 0 5px 30px rgba(0,0,0,.28);
	overflow-wrap: break-word;
}
.hg2-hero-cinematic .hg2-kicker .elementor-heading-title { color: #f2ce91 !important; }
.hg2-hero-cinematic .hg2-lead {
	max-width: 720px;
	color: rgba(255,255,255,.88);
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.55;
}
.hg2-hero-cinematic .hg2-proofline { color: rgba(255,255,255,.74); }
.hg2-hero-cinematic .hg2-actions,
.hg2-hero-cinematic .hg2-actions > .e-con-inner {
	width: 100% !important;
	flex-direction: row !important;
	justify-content: center !important;
}
.hg2-hero-cinematic .hg2-actions .hg2-button { width: auto !important; }
.hg2-hero-cinematic .hg2-button-primary .elementor-button {
	background: var(--hg2-accent);
	color: var(--naib-accent-contrast, #162a36);
}
.hg2-hero-cinematic .hg2-button-secondary .elementor-button {
	border-color: rgba(255,255,255,.64);
	background: rgba(255,255,255,.08);
	color: #fff;
	backdrop-filter: blur(8px);
}
.hg2-hero-left .hg2-hero-overlay,
.hg2-hero-left .hg2-hero-overlay > .e-con-inner {
	justify-content: flex-start;
}
.hg2-hero-left .hg2-hero-copy,
.hg2-hero-left .hg2-hero-copy > .e-con-inner {
	align-items: flex-start;
	justify-content: center;
	width: min(100%, 720px) !important;
	max-width: 720px;
	margin-inline: 0 auto !important;
	text-align: left;
}
.hg2-hero-left .hg2-actions,
.hg2-hero-left .hg2-actions > .e-con-inner {
	justify-content: flex-start !important;
}
.hg2-hero-form .hg2-hero-overlay {
	display: flex;
	align-items: center;
	justify-content: center;
}
.hg2-hero-form .hg2-hero-overlay > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(340px, .7fr);
	gap: clamp(34px, 5vw, 76px);
	align-items: center;
	justify-content: stretch;
}
.hg2-hero-form .hg2-hero-copy,
.hg2-hero-form .hg2-hero-copy > .e-con-inner {
	align-items: flex-start;
	justify-content: center;
	width: 100% !important;
	max-width: 720px;
	margin-inline: 0 !important;
	text-align: left;
}
.e-con.hg2-hero-lead-card {
	max-width: 460px;
	margin-left: auto;
	padding: clamp(26px, 3vw, 38px);
	border: 1px solid rgba(255,255,255,.72);
	background: rgba(255,255,255,.96);
	box-shadow: 0 30px 80px rgba(0,0,0,.25);
	backdrop-filter: blur(18px);
}
.hg2-hero-lead-card .hg2-card-title .elementor-heading-title { color: #162a36 !important; }
.hg2-hero-lead-card .hg2-card-copy { color: #5c6b73; }
.hg2-hero-form .hg2-proofline { text-align: left; }
.e-con.hg2-hero:before {
	content: "";
	position: absolute;
	inset: 10% auto auto -120px;
	width: 320px;
	aspect-ratio: 1;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 14%, transparent);
	border-radius: 50%;
}
.e-con.hg2-hero-grid { gap: clamp(40px, 6vw, 84px); align-items: center; }
.e-con.hg2-hero-grid > .e-con-inner { gap: clamp(40px, 6vw, 84px); align-items: center; }
.e-con.hg2-hero-copy { gap: 22px; position: relative; z-index: 2; }
.e-con.hg2-hero-copy > .e-con-inner { gap: 22px; }
.hg2-proofline { color: var(--hg2-muted); font-size: 14px; font-weight: 650; }
.e-con.hg2-media-frame { position: relative; min-width: 0; }
.hg2-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--naib-radius-image, 28px);
	box-shadow: var(--hg2-shadow);
}
.hg2-hero-image img { aspect-ratio: 4 / 5; }
.e-con.hg2-floating-card {
	display: flex;
	flex-direction: column;
	position: absolute;
	right: -24px;
	bottom: 28px;
	width: min(230px, 54%);
	padding: 22px;
	gap: 4px;
	border: 1px solid rgba(255,255,255,.75);
	border-radius: var(--hg2-radius);
	background: rgba(255,255,255,.92);
	box-shadow: var(--hg2-shadow);
	backdrop-filter: blur(12px);
}
.e-con.hg2-floating-card > .e-con-inner { gap: 4px; }
.hg2-floating-number .elementor-heading-title { color: var(--hg2-brand) !important; font-size: 34px !important; font-weight: 800 !important; line-height: 1.1 !important; }
.hg2-floating-copy { font-size: 14px; line-height: 1.45; }

.e-con.hg2-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(24px, 2.4vw, 34px);
	gap: 14px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 11%, transparent);
	border-radius: var(--hg2-radius);
	background: var(--hg2-white);
	box-shadow: 0 8px 32px rgba(16, 42, 55, .055);
}
.e-con.hg2-card > .e-con-inner { gap: 14px; }
.hg2-card-number .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 44px;
	min-height: 32px;
	padding: 7px 11px;
	border: 1px solid color-mix(in srgb, var(--hg2-accent) 28%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--hg2-accent) 18%, #fff);
	color: color-mix(in srgb, var(--hg2-accent) 72%, #4d3513) !important;
	font-size: 13px !important;
	font-weight: 850 !important;
	line-height: 1.15 !important;
}
.hg2-card-title .elementor-heading-title {
	color: var(--hg2-ink) !important;
	font-size: 22px !important;
	font-weight: 740 !important;
	line-height: 1.25 !important;
	letter-spacing: -.015em !important;
	overflow-wrap: normal;
	hyphens: none;
	word-break: normal;
}
.hg2-card-copy { font-size: 16px; line-height: 1.65; }
.e-con.hg2-media-card {
	display: flex;
	overflow: hidden;
	min-width: 0;
	height: 100%;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 11%, transparent);
	border-radius: var(--hg2-radius);
	background: var(--hg2-white);
	box-shadow: 0 10px 34px rgba(16,42,55,.08);
}
.e-con.hg2-media-card > .e-con-inner {
	display: flex;
	width: 100%;
	max-width: none;
	flex: 1 1 auto;
	flex-direction: column;
}
.hg2-media-card-image .elementor-widget-container { overflow: hidden; }
.hg2-media-card-image img {
	aspect-ratio: 16 / 10;
	border-radius: 0;
	box-shadow: none;
	transition: transform .45s cubic-bezier(.2,.7,.2,1);
}
.hg2-media-card:hover .hg2-media-card-image img { transform: scale(1.035); }
.e-con.hg2-media-card-body { display: flex; flex: 1 1 auto; padding: clamp(22px, 2.5vw, 32px); }
.e-con.hg2-media-card-body > .e-con-inner { display: flex; flex: 1 1 auto; flex-direction: column; gap: 13px; }
.hg2-media-card .hg2-button { margin-top: auto; padding-top: 8px; }
.e-con.hg2-pricing-grid,
.e-con.hg2-pricing-grid > .e-con-inner { align-items: stretch; }
.e-con.hg2-price-card {
	position: relative;
	display: flex;
	height: 100%;
	min-width: 0;
	padding: clamp(26px, 3vw, 38px);
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 14%, transparent);
	border-radius: var(--hg2-radius);
	background: var(--hg2-white);
	box-shadow: 0 12px 38px rgba(16,42,55,.075);
}
.e-con.hg2-price-card > .e-con-inner {
	display: flex;
	width: 100%;
	max-width: none;
	flex-direction: column;
	gap: 16px;
}
.e-con.hg2-price-card-featured {
	border-color: color-mix(in srgb, var(--hg2-accent) 72%, transparent);
	background:
		linear-gradient(var(--hg2-white), var(--hg2-white)) padding-box,
		linear-gradient(145deg, var(--hg2-accent), color-mix(in srgb, var(--hg2-brand) 42%, var(--hg2-accent))) border-box;
	box-shadow: 0 20px 54px color-mix(in srgb, var(--hg2-accent) 16%, transparent);
	transform: none;
}
.hg2-price-badge .elementor-heading-title {
	display: inline-flex;
	width: auto;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--hg2-accent);
	color: #162a36 !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
}
.hg2-price-summary,
.hg2-price-summary p { color: var(--hg2-muted); font-size: 15px; line-height: 1.55; }
.hg2-price-value .elementor-heading-title {
	color: var(--hg2-ink) !important;
	font-size: clamp(27px, 2.4vw, 34px) !important;
	font-weight: 800 !important;
	letter-spacing: -.025em !important;
}
.hg2-price-features { flex: 1 1 auto; color: var(--hg2-ink); font-size: 15px; line-height: 1.55; }
.hg2-price-features ul { display: grid; margin: 2px 0 8px; padding: 0; gap: 11px; list-style: none; }
.hg2-price-features li { position: relative; padding-left: 25px; }
.hg2-price-features li:before {
	content: "✓";
	position: absolute;
	top: 0;
	left: 0;
	color: color-mix(in srgb, var(--hg2-accent) 78%, #4d3513);
	font-weight: 850;
}
.hg2-price-card .hg2-button { margin-top: auto; padding-top: 8px; }
.hg2-pricing-note { max-width: 760px; margin-inline: auto; color: var(--hg2-muted); font-size: 14px; text-align: center; }
@media (max-width: 544px) {
	.hg2-display .elementor-heading-title,
	.hg2-title .elementor-heading-title,
	.hg2-card-title .elementor-heading-title {
		overflow-wrap: break-word;
		hyphens: none;
		word-break: normal;
	}
	.e-con.hg2-media-card-body > .e-con-inner { gap: 16px; }
	.e-con.hg2-price-card-featured { transform: none; }
}
.e-con.hg2-process-grid { counter-reset: hg2step; }
.e-con.hg2-process-grid .hg2-card { position: relative; }
.e-con.hg2-process-grid .hg2-card:not(:last-child):after {
	content: "";
	position: absolute;
	top: 54px;
	left: calc(100% + 1px);
	width: 32px;
	border-top: 1px dashed color-mix(in srgb, var(--hg2-brand) 28%, transparent);
}

.hg2-stars .elementor-heading-title { color: var(--hg2-accent) !important; font-size: 15px !important; line-height: 1.2 !important; letter-spacing: .14em !important; }
.hg2-quote blockquote { margin: 0; color: var(--hg2-ink); font-size: 19px; line-height: 1.55; }
.hg2-quote-meta { font-size: 14px; font-weight: 650; }
.hg2-team-card { overflow: hidden; padding-top: 20px !important; }
.hg2-team-image img { aspect-ratio: 4 / 3; }

.hg2-accordion .elementor-accordion-item {
	overflow: hidden;
	margin-bottom: 12px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 12%, transparent) !important;
	border-radius: calc(var(--hg2-radius) * .7);
	background: #fff;
}
.hg2-accordion .elementor-tab-title { padding: 22px 24px !important; color: var(--hg2-ink); font-weight: 730 !important; }
.hg2-accordion .elementor-accordion-title {
	color: var(--hg2-ink) !important;
	font-size: 18px !important;
	font-weight: 730 !important;
	line-height: 1.4 !important;
	letter-spacing: -.01em !important;
}
.hg2-accordion .elementor-accordion-icon,
.hg2-accordion .elementor-accordion-icon svg { width: 15px !important; height: 15px !important; }
.hg2-accordion .elementor-tab-title .elementor-accordion-icon,
.hg2-accordion .elementor-tab-title .elementor-accordion-icon span,
.hg2-accordion .elementor-tab-title .elementor-accordion-icon svg,
.hg2-accordion .elementor-tab-title .elementor-accordion-icon svg path {
	/* The accordion sits on a certified white card. Pale brand accents can fall
	 * below WCAG's 3:1 requirement for meaningful UI controls, so the open/close
	 * glyph deliberately uses the high-contrast card ink. */
	color: var(--hg2-ink, #17212b) !important;
	fill: currentColor !important;
	opacity: 1 !important;
}
.hg2-accordion .elementor-tab-title { transition: background-color .2s ease, color .2s ease; }
.hg2-accordion .elementor-tab-title:hover,
.hg2-accordion .elementor-tab-title:focus-visible {
	background: color-mix(in srgb, var(--hg2-accent) 9%, transparent);
}
.hg2-accordion .elementor-accordion-icon-left { margin-right: 12px; }
.hg2-accordion .elementor-accordion-icon-right { margin-left: 12px; }
.hg2-accordion .elementor-tab-content { padding: 0 24px 24px !important; border-top: 0 !important; color: var(--hg2-muted); line-height: 1.7; }

.e-con.hg2-cta {
	overflow: hidden;
	padding: 0 !important;
	background: var(--hg2-brand);
}
.e-con.hg2-cta > .e-con-inner {
	width: 100%;
	max-width: none !important;
}
.e-con.hg2-cta-panel {
	display: grid;
	width: 100%;
	max-width: none !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 32px;
	padding: clamp(34px, 5vw, 68px);
	border-radius: 0;
	background:
		radial-gradient(circle at 90% 20%, color-mix(in srgb, var(--hg2-accent) 32%, transparent), transparent 32%),
		var(--hg2-brand);
	box-shadow: inset 0 1px rgba(255,255,255,.10), inset 0 -1px rgba(255,255,255,.08);
}
.e-con.hg2-cta-panel > .e-con-inner {
	display: grid;
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 32px;
}
.hg2-cta-panel .hg2-kicker .elementor-heading-title { color: #f2ce91; }
.hg2-cta-panel .hg2-title .elementor-heading-title,
.hg2-cta-panel .hg2-lead,
.hg2-cta-panel .hg2-lead p { color: var(--hg2-on-brand) !important; }
.e-con.hg2-cta-panel-centered,
.e-con.hg2-cta-panel-centered > .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	max-width: none;
	margin-inline: auto;
	text-align: center;
}
.e-con.hg2-cta-panel-centered > .e-con-inner { max-width: 1200px; }
.hg2-cta-panel-centered .hg2-title .elementor-heading-title,
.hg2-cta-panel-centered .hg2-lead { max-width: 760px; }
.e-con.hg2-cta.hg2-cta-mode-image {
	background-color: #081923 !important;
	background-image:
		linear-gradient(90deg, rgba(5,18,27,.94), rgba(5,18,27,.77) 58%, rgba(5,18,27,.88)),
		var(--naib-cta-image, linear-gradient(135deg, #15394a, #081923)) !important;
	background-position: center !important;
	background-size: cover !important;
}
.e-con.hg2-cta.hg2-cta-mode-image .hg2-cta-panel {
	background:
		radial-gradient(circle at 90% 20%, color-mix(in srgb, var(--hg2-accent) 24%, transparent), transparent 32%),
		linear-gradient(90deg, rgba(5,18,27,.24), rgba(5,18,27,.04)) !important;
}
.e-con.hg2-cta.hg2-cta-mode-color {
	background-color: var(--hg2-brand) !important;
	background-image: linear-gradient(135deg, var(--hg2-brand), color-mix(in srgb, var(--hg2-brand) 76%, #07141e)) !important;
}
.e-con.hg2-cta.hg2-cta-mode-dark {
	background-color: #081923 !important;
	background-image: linear-gradient(135deg, #102a36, #07141b) !important;
}
.e-con.hg2-cta.hg2-cta-mode-dark .hg2-cta-panel {
	background: radial-gradient(circle at 88% 15%, rgba(198,154,82,.16), transparent 34%) !important;
}
.e-con.hg2-hero-sub { min-height: 560px; background: linear-gradient(145deg, #f8faf9, #edf3f4); }
.hg2-sub-media img { aspect-ratio: 16 / 11; }

.e-con.hg2-subhero-band {
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 0;
	background: var(--hg2-white);
}
.e-con.hg2-subhero-band > .e-con-inner {
	display: flex;
	width: 100%;
	max-width: none;
	flex-direction: column;
}
.e-con.hg2-subhero-band-media,
.e-con.hg2-subhero-band-media > .e-con-inner { width: 100%; }
.hg2-subhero-band-image .elementor-widget-container { width: 100%; }
.hg2-subhero-band-image img {
	width: 100%;
	height: clamp(300px, 42svh, 500px);
	aspect-ratio: auto;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
}
.e-con.hg2-subhero-band-copy {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: clamp(46px, 5.5vw, 78px) 24px clamp(44px, 5vw, 70px);
}
.e-con.hg2-subhero-band-copy > .e-con-inner {
	display: flex;
	width: min(100%, 880px);
	max-width: 880px;
	flex-direction: column;
	gap: 18px;
}
.e-con.hg2-subhero-split {
	min-height: 580px;
	padding-top: clamp(110px, 12vw, 156px);
	padding-bottom: clamp(64px, 7vw, 96px);
	background: var(--hg2-surface);
}
.hg2-subhero-split-media img {
	min-height: 410px;
	aspect-ratio: 5 / 4;
}

/* Kompakter Unterseiten-Slider: dieselbe Bildsprache wie auf der Startseite,
 * aber niedriger und mit linksbündiger, dauerhaft stabiler Textebene. */
.e-con.hg2-hero-sub-cinematic {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: clamp(500px, 60svh, 660px);
	padding: 0 max(20px, calc((100% - var(--naib-content-width, 1200px)) / 2));
	overflow: hidden;
	background: #102a36;
}
.hg2-hero-sub-cinematic > .e-con-inner {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: clamp(500px, 60svh, 660px);
}
.hg2-hero-sub-backdrop .elementor-widget-container,
.hg2-hero-sub-backdrop .elementor-swiper,
.hg2-hero-sub-backdrop .swiper,
.hg2-hero-sub-backdrop .swiper-wrapper,
.hg2-hero-sub-backdrop .swiper-slide {
	min-height: clamp(500px, 60svh, 660px);
}
.e-con.hg2-hero-sub-overlay {
	z-index: 2;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: clamp(500px, 60svh, 660px);
	padding: clamp(110px, 13vh, 150px) 0 clamp(68px, 8vh, 96px);
}
.e-con.hg2-hero-sub-overlay > .e-con-inner { width: 100%; }
.hg2-hero-sub-copy,
.hg2-hero-sub-copy > .e-con-inner { max-width: 760px; }
.hg2-hero-sub-cinematic .hg2-display .elementor-heading-title {
	max-width: 760px;
	color: #fff !important;
	font-size: clamp(38px, 4vw, 58px) !important;
	line-height: 1.05 !important;
	text-shadow: 0 5px 28px rgba(0,0,0,.30);
}
.hg2-hero-sub-cinematic .hg2-kicker .elementor-heading-title { color: #f2ce91 !important; }
.hg2-hero-sub-cinematic .hg2-lead { max-width: 650px; color: rgba(255,255,255,.88); }
.hg2-hero-sub-cinematic .hg2-button { align-self: flex-start; }

.e-con.hg2-seo-depth-grid > .e-con-inner { align-items: stretch; }
.e-con.hg2-knowledge-copy > .e-con-inner { gap: 22px; }
.hg2-knowledge-body { max-width: 760px; }
.hg2-knowledge-media img { aspect-ratio: 5 / 4; min-height: 420px; }
.e-con.hg2-content-reverse { background: var(--hg2-surface); }
.e-con.hg2-glass-stage {
	position: relative;
	padding: clamp(22px, 3vw, 40px);
	border-radius: calc(var(--hg2-radius) * 1.35);
	background:
		radial-gradient(circle at 12% 10%, color-mix(in srgb, var(--hg2-accent) 18%, transparent), transparent 34%),
		linear-gradient(145deg, color-mix(in srgb, var(--hg2-brand) 8%, #fff), #fff);
	box-shadow: var(--hg2-shadow);
}
.e-con.hg2-glass-panel {
	z-index: 2;
	margin-left: clamp(-90px, -6vw, -38px);
	padding: clamp(28px, 4vw, 54px);
	border: 1px solid rgba(255,255,255,.72);
	border-radius: var(--hg2-radius);
	background: rgba(255,255,255,.84);
	box-shadow: 0 24px 64px rgba(16,42,55,.14);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}
.e-con.hg2-article-panel {
	padding: clamp(24px, 2.6vw, 34px);
	border-top: 3px solid var(--hg2-accent);
	border-radius: calc(var(--hg2-radius) * .75);
	background: var(--hg2-surface);
}
.e-con.hg2-article-panel > .e-con-inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.hg2-seo-copy { max-width: none; font-size: 16px; line-height: 1.72; }

.e-con.hg2-contact-info { gap: 22px; }
.e-con.hg2-contact-info > .e-con-inner {
	gap: 22px;
	padding-block: 0;
}
.e-con.hg2-contact-methods {
	display: flex;
	width: 100%;
	padding-inline: 0 !important;
}
.e-con.hg2-contact-methods > .e-con-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	padding-block: 0 !important;
}
.e-con.hg2-contact-method {
	display: flex;
	align-items: start;
	width: 100%;
	min-width: 0;
	padding: 12px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 12%, transparent);
	border-radius: calc(var(--hg2-radius) * .7);
	background: color-mix(in srgb, var(--hg2-surface) 74%, #fff);
}
.e-con.hg2-contact-method > .e-con-inner {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
	width: 100%;
	max-width: none;
}
.hg2-contact-method-icon {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border-radius: 14px;
	background-color: var(--hg2-accent) !important;
	background-image: none !important;
	color: var(--naib-accent-contrast, #162a36) !important;
	box-shadow: 0 8px 20px color-mix(in srgb, var(--hg2-accent) 24%, transparent);
}
.hg2-contact-method-icon .elementor-icon {
	display: grid;
	place-items: center;
	color: inherit !important;
	font-size: 19px;
}
.hg2-contact-method-icon .elementor-icon i,
.hg2-contact-method-icon .elementor-icon svg {
	color: inherit !important;
	fill: currentColor !important;
}
.hg2-contact-method-icon .elementor-icon svg path { fill: currentColor !important; }
.e-con.hg2-contact-method-copy,
.e-con.hg2-contact-method-copy > .e-con-inner {
	gap: 5px;
	width: 100%;
	max-width: none;
	min-width: 0;
}
.e-con.hg2-contact-method-copy {
	align-self: stretch;
	width: 100%;
	padding: 0 !important;
}
.e-con.hg2-contact-method-copy > .e-con-inner { padding: 0 !important; }
.hg2-contact-method-copy .elementor-widget {
	width: 100% !important;
	max-width: 100%;
	min-width: 0;
}
.hg2-contact-label .elementor-heading-title { color: var(--hg2-muted) !important; font-size: 13px !important; font-weight: 800 !important; line-height: 1.25 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }
.hg2-contact-value p { margin: 0; }
.hg2-contact-value,
.hg2-contact-value a {
	color: var(--hg2-brand);
	font-size: 16px;
	font-weight: 760;
	line-height: 1.35;
	overflow-wrap: normal;
	word-break: normal;
	text-decoration: none;
}
.hg2-contact-value a { white-space: nowrap; }
.hg2-contact-value span {
	display: block;
	margin-top: 5px;
	color: var(--hg2-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.45;
}

/* Kontakt-Split: Beide Spalten reichen am Desktop bis auf dieselbe Unterkante.
 * Die Kontaktmethoden sitzen am unteren Rand der Informationsspalte und damit
 * buendig zum Formular. Auf schmaleren Zweispalten-Ansichten werden die beiden
 * Methoden gestapelt, bevor ihre Inhalte gequetscht werden koennen. */
@media (min-width: 768px) {
	.e-con.hg2-contact .e-con.hg2-shell > .e-con-inner { align-items: stretch; }
	.e-con.hg2-contact-info,
	.e-con.hg2-contact-info > .e-con-inner,
	.e-con.hg2-contact .e-con.hg2-form-card { height: 100%; }
	.e-con.hg2-contact-methods { margin-top: auto; }
}

@media (min-width: 768px) and (max-width: 1100px) {
	.e-con.hg2-contact-methods > .e-con-inner { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
	.e-con.hg2-contact-method { padding: 12px; }
	.e-con.hg2-contact-method > .e-con-inner {
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 8px;
	}
	.hg2-contact-method-icon {
		width: 38px;
		height: 38px;
	}
	.hg2-contact-value,
	.hg2-contact-value a { font-size: 15px; }
}
.e-con.hg2-form-card { padding: clamp(28px, 3vw, 42px); }
.hg2-form .elementor-field:not([type="checkbox"]):not([type="radio"]) { min-height: 50px; border: 1px solid color-mix(in srgb, var(--hg2-brand) 22%, #fff) !important; border-radius: var(--naib-radius-input, 12px) !important; }
.hg2-form textarea.elementor-field { min-height: 140px; }
.hg2-form .elementor-field-type-acceptance .elementor-field-subgroup,
.hg2-form .elementor-field-type-acceptance .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
}
.hg2-form .elementor-field-type-acceptance input[type="checkbox"] {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	min-height: 20px !important;
	margin: 2px 0 0;
}
.hg2-form .elementor-field-type-acceptance label {
	flex: 1 1 auto;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
}
.hg2-form .elementor-button {
	min-height: 52px;
	overflow: hidden;
	border-radius: var(--naib-radius-button, 999px) !important;
	background: var(--hg2-accent) !important;
	color: var(--naib-accent-contrast, #162a36) !important;
	font-weight: 750;
}
.hg2-form .elementor-button:hover,
.hg2-form .elementor-button:focus,
.hg2-form .elementor-button:focus-visible,
.hg2-form .elementor-button:active {
	border-radius: var(--naib-radius-button, 999px) !important;
	background: color-mix(in srgb, var(--hg2-accent) 88%, #fff) !important;
	color: var(--naib-accent-contrast, #162a36) !important;
	box-shadow: 0 14px 30px color-mix(in srgb, var(--hg2-accent) 28%, transparent);
	transform: translateY(-1px);
}
.hg2-form .elementor-button[disabled] {
	opacity: .58;
	color: var(--naib-accent-contrast, #162a36) !important;
}
.hg2-posts .elementor-posts-container,
.elementor-widget-archive-posts .elementor-posts-container {
	align-items: stretch;
	gap: clamp(22px, 2.6vw, 34px);
}
.hg2-posts .elementor-post,
.elementor-widget-archive-posts .elementor-post {
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 10%, transparent);
	border-radius: var(--hg2-radius);
	background: #fff;
	box-shadow: 0 12px 36px rgba(16,42,55,.075);
}
.hg2-posts .elementor-post__thumbnail__link,
.elementor-widget-archive-posts .elementor-post__thumbnail__link {
	overflow: hidden;
	aspect-ratio: 16 / 10;
}
.hg2-posts .elementor-post__thumbnail,
.elementor-widget-archive-posts .elementor-post__thumbnail { height: 100%; padding-bottom: 0 !important; }
.hg2-posts .elementor-post__thumbnail img,
.elementor-widget-archive-posts .elementor-post__thumbnail img {
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: none;
}
.hg2-posts .elementor-post__text,
.elementor-widget-archive-posts .elementor-post__text { padding: 24px 26px 28px; }
.hg2-posts .elementor-post__title,
.elementor-widget-archive-posts .elementor-post__title {
	margin: 0 0 10px !important;
	font-size: clamp(21px, 1.8vw, 27px) !important;
	font-weight: 740 !important;
	line-height: 1.18 !important;
	letter-spacing: -.025em !important;
}
.hg2-posts .elementor-post__title a,
.elementor-widget-archive-posts .elementor-post__title a {
	/* Post cards are certified light surfaces even when the surrounding site
	 * uses a dark token set. The global --hg2-ink token may therefore be light
	 * and must not be inherited into the white card. */
	color: #1f2430 !important;
}
.hg2-posts .elementor-post__meta-data,
.elementor-widget-archive-posts .elementor-post__meta-data {
	margin: 0 0 14px !important;
	color: var(--hg2-muted) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: .07em;
	text-transform: uppercase;
}
.hg2-posts .elementor-post__excerpt,
.elementor-widget-archive-posts .elementor-post__excerpt {
	color: var(--hg2-muted);
	font-size: 15px;
	line-height: 1.65;
}
.hg2-posts .elementor-post__read-more,
.elementor-widget-archive-posts .elementor-post__read-more {
	color: var(--hg2-brand) !important;
	font-size: 14px !important;
	font-weight: 760 !important;
}
body .hg2-posts .elementor-post__read-more,
body .elementor-widget-archive-posts .elementor-post__read-more {
	color: var(--naib-a11y-link, var(--hg2-brand, #17212b)) !important;
}

.e-con.hg2-footer {
	padding-top: clamp(56px, 7vw, 88px);
	padding-bottom: 28px;
	background: var(--naib-surface, #f8f4f0);
	color: var(--hg2-muted);
}
.e-con.hg2-footer-visual {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		linear-gradient(rgba(10,25,38,.88), rgba(10,25,38,.94)),
		var(--naib-footer-image, radial-gradient(circle at 18% 18%, #37586a, #0a1926 66%));
	background-position: center;
	background-size: cover;
	color: rgba(255,255,255,.78);
}
.e-con.hg2-footer-mode-color {
	background:
		radial-gradient(circle at 16% 8%, color-mix(in srgb, var(--hg2-accent) 23%, transparent), transparent 30rem),
		linear-gradient(135deg, var(--hg2-brand), color-mix(in srgb, var(--hg2-brand) 82%, #07141e));
}
.e-con.hg2-footer-mode-image {
	background:
		linear-gradient(rgba(10,25,38,.84), rgba(10,25,38,.93)),
		var(--naib-footer-image, radial-gradient(circle at 18% 18%, #37586a, #0a1926 66%));
	background-position: center;
	background-size: cover;
}
.e-con.hg2-footer-visual:before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		radial-gradient(circle at 18% 0, color-mix(in srgb, var(--hg2-accent) 20%, transparent), transparent 27rem),
		linear-gradient(90deg, rgba(4,16,26,.18), transparent 42%, rgba(4,16,26,.22));
}
.e-con.hg2-footer-grid-visual {
	display: flex;
	width: 100%;
	max-width: none;
}
.e-con.hg2-footer-grid-visual > .e-con-inner {
	display: grid;
	width: 100%;
	max-width: none;
	grid-template-columns: minmax(230px, 1.2fr) repeat(4, minmax(0, 1fr));
	gap: clamp(26px, 3vw, 48px);
	align-items: start;
}
.hg2-footer-grid-visual .hg2-card-title .elementor-heading-title {
	font-size: clamp(16px, 1.45vw, 20px) !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}
.hg2-footer.hg2-footer-visual .elementor-heading-title { color: #fff !important; }
.hg2-footer-visual .hg2-body,
.hg2-footer-visual .hg2-body p { color: rgba(255,255,255,.76); }
.hg2-footer-visual a { color: rgba(255,255,255,.92); }
.hg2-footer-visual .hg2-footer-links a {
	color: rgba(255,255,255,.92) !important;
	text-decoration-color: color-mix(in srgb, var(--hg2-accent) 62%, transparent);
}
.hg2-footer-visual a:hover,
.hg2-footer-visual a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.hg2-footer-visual .hg2-footer-bottom {
	border-top-color: rgba(255,255,255,.18);
	color: rgba(255,255,255,.62);
}
.hg2-footer-social .elementor-social-icon {
	background: rgba(255,255,255,.12) !important;
	color: #fff !important;
}
.hg2-footer-social .elementor-social-icon:hover { background: var(--hg2-accent) !important; color: #102a36 !important; }
.e-con.hg2-footer-grid > .e-con-inner {
	grid-template-columns: minmax(0, 1.35fr) minmax(180px, .65fr) minmax(230px, .8fr);
}
.hg2-footer .elementor-heading-title { color: var(--hg2-ink) !important; }
.hg2-footer a { color: var(--hg2-brand); }
.hg2-footer a[href^="tel:"] { white-space: nowrap; }
.hg2-footer .hg2-body { color: var(--hg2-muted); font-size: 15px; line-height: 1.7; }

/* Astra-Header-CTAs folgen demselben Rundungs-Token wie alle zertifizierten
 * Inhaltsbuttons. Theme-Defaults dürfen den Site Contract nicht überschreiben. */
.ast-header-button-1 .ast-custom-button,
.ast-header-button-1 .ast-button {
	border-radius: var(--naib-radius-button, 8px) !important;
}
.hg2-footer-logo {
	display: flex;
	width: 100%;
	margin-bottom: 8px;
	justify-content: flex-start;
}
.hg2-footer-logo img {
	width: 224px !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	aspect-ratio: auto !important;
	border-radius: 0;
	box-shadow: none;
	object-fit: contain;
	object-position: left center;
}
.hg2-footer-links a { display: block; margin-bottom: 9px; text-decoration: none; }
.naib-legal-links { display: flex; flex-wrap: wrap; gap: 9px 14px; align-items: center; }
.hg2-footer-links .naib-legal-links a,
.naib-legal-links a { display: inline-flex; margin: 0; }
.hg2-footer-bottom {
	padding-top: 22px;
	border-top: 1px solid color-mix(in srgb, var(--hg2-brand) 15%, transparent);
	color: var(--hg2-muted);
	font-size: 13px;
}

/* Certified Editorial Gallery
 * Fünf einzeln generierbare Image-Widgets ergeben ein kuratiertes Mosaik.
 * Die Komposition bleibt auch ohne JavaScript vollständig sichtbar. */
.e-con.hg2-gallery-mosaic {
	display: flex;
	width: 100%;
}
.e-con.hg2-gallery-mosaic > .e-con-inner {
	display: grid;
	width: 100%;
	max-width: none;
	min-width: 0;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(210px, 28vw));
	gap: clamp(12px, 1.5vw, 22px);
}
.hg2-gallery-image {
	min-width: 0;
	overflow: hidden;
	border-radius: var(--naib-radius-image, var(--hg2-radius));
	background: color-mix(in srgb, var(--hg2-brand) 7%, var(--hg2-surface));
	box-shadow: var(--hg2-shadow);
}
.hg2-gallery-image .elementor-widget-container,
.hg2-gallery-image a,
.hg2-gallery-image img {
	display: block;
	width: 100%;
	height: 100%;
}
.hg2-gallery-image img {
	min-height: 100%;
	object-fit: cover;
	transition: transform .55s cubic-bezier(.2,.7,.2,1);
}
.hg2-gallery-image:hover img { transform: scale(1.025); }
.hg2-gallery-image-primary { grid-column: 1 / span 7; grid-row: 1 / span 2; }
.hg2-gallery-image-detail:nth-child(2) { grid-column: 8 / span 3; grid-row: 1; }
.hg2-gallery-image-portrait { grid-column: 11 / span 2; grid-row: 1; }
.hg2-gallery-image-detail:nth-child(4) { grid-column: 8 / span 2; grid-row: 2; }
.hg2-gallery-image-wide { grid-column: 10 / span 3; grid-row: 2; }

/* Certified Consent Map
 * Die Karte erhält ihre src erst durch certified-components.js. */
.e-con.hg2-map { background: var(--hg2-white); }
.e-con.hg2-map-grid {
	display: flex;
	width: 100%;
}
.e-con.hg2-map-grid > .e-con-inner {
	display: grid;
	width: 100%;
	max-width: none;
	min-width: 0;
	grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
	gap: clamp(32px, 5vw, 72px);
}
.hg2-map-address {
	display: grid;
	gap: 8px;
	padding: 20px 22px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 14%, transparent);
	border-left: 4px solid var(--hg2-accent);
	border-radius: var(--naib-radius-card, 14px);
	background: var(--hg2-surface);
}
.hg2-map-address span {
	color: var(--hg2-muted);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.hg2-map-address strong { color: var(--hg2-ink); font-size: clamp(18px, 2vw, 22px); line-height: 1.45; }

/*
 * Cinematic Precision ist die dunkle Premium-Designrichtung. Elementor schreibt
 * bei der Generierung zusätzlich konkrete helle Hintergrundfarben in die
 * Seitendaten. Diese Regeln halten die Designrichtung auch nach einer erneuten
 * CSS-Erzeugung konsistent dunkel. Das helle Formular bleibt bewusst als
 * kontrastierende Bedienfläche erhalten und bekommt dafür lokale Textfarben.
 */
body.naib-direction-cinematic_precision {
	/* Midnight Steel: kuehles Anthrazit mit kontrolliertem Blauanteil. Die
	 * Oberflaechen bleiben neutral genug fuer Business, wirken aber klar
	 * moderner als Schwarz oder braunes Taupe. */
	--naib-background: #0f1720;
	--naib-surface: #1a2833;
	--naib-text: #f7f4ed;
	--naib-muted: #d8d4cc;
	--naib-accent-contrast: #17130c;
	--hg2-brand: #1f3545;
	--hg2-accent: #d4aa3a;
	--hg2-white: #141f29;
	--hg2-surface: #1a2833;
	--hg2-ink: #f7f4ed;
	--hg2-muted: #d8d4cc;
	--hg2-meta: #c7c2b9;
	background: #0f1720;
	color: var(--hg2-ink);
}

body.naib-direction-cinematic_precision .elementor-location-single,
body.naib-direction-cinematic_precision [data-elementor-type="wp-page"] {
	background: #0f1720;
}

body.naib-direction-cinematic_precision .e-con.hg2-section:not(.hg2-hero):not(.hg2-footer) {
	background-color: #141f29 !important;
	background-image: none !important;
	color: var(--hg2-ink);
}

body.naib-direction-cinematic_precision .e-con.hg2-section.hg2-hero {
	background-color: #0f1720 !important;
}

body.naib-direction-cinematic_precision .e-con.hg2-section:is(.hg2-trust, .hg2-surface, .hg2-content-reverse, .hg2-seo-depth, .hg2-contact, .hg2-blog) {
	background-color: #1a2833 !important;
}

body.naib-direction-cinematic_precision :is(.hg2-card, .hg2-service-card, .hg2-process-card, .hg2-stat-card, .hg2-contact-card, .hg2-floating-card, .hg2-quote, .hg2-price-card, .hg2-accordion .elementor-accordion-item) {
	border-color: rgba(174,205,224,.15) !important;
	background: linear-gradient(145deg, #253847, #20313e) !important;
	background-color: #223443 !important;
	box-shadow: 0 20px 54px rgba(2,9,15,.34), inset 0 1px rgba(255,255,255,.035);
}

/* Die grossen Leistungskarten sind ein eigener Komponententyp und erhielten
 * deshalb bisher dieselbe Flaeche wie ihre Section. Eine etwas klarere
 * Steel-Abstufung trennt sie sichtbar vom Hintergrund, ohne wie ein heller
 * Fremdkoerper im Midnight-Design zu wirken. */
body.naib-direction-cinematic_precision .e-con.hg2-media-card {
	border-color: rgba(174,205,224,.20) !important;
	background: linear-gradient(150deg, #2a4050 0%, #233746 54%, #1f303d 100%) !important;
	background-color: #253a49 !important;
	box-shadow: 0 24px 62px rgba(2,9,15,.42), inset 0 1px rgba(255,255,255,.045) !important;
}

body.naib-direction-cinematic_precision .hg2-media-card-image .elementor-widget-container {
	border-bottom: 1px solid rgba(174,205,224,.16);
}

body.naib-direction-cinematic_precision :is(.hg2-display, .hg2-title, .hg2-section-intro) .elementor-heading-title {
	color: #fff !important;
}

body.naib-direction-cinematic_precision :is(.hg2-card-title, .hg2-accordion) .elementor-heading-title,
body.naib-direction-cinematic_precision .hg2-accordion .elementor-tab-title,
body.naib-direction-cinematic_precision .hg2-accordion .elementor-accordion-title,
body.naib-direction-cinematic_precision .hg2-accordion .elementor-tab-content {
	color: #f7f4ed !important;
}

body.naib-direction-cinematic_precision :is(.hg2-lead, .hg2-body, .hg2-card-copy),
body.naib-direction-cinematic_precision :is(.hg2-lead, .hg2-body, .hg2-card-copy) p {
	color: #d8d4cc !important;
}

body.naib-direction-cinematic_precision :is(.hg2-floating-copy, .hg2-quote-meta),
body.naib-direction-cinematic_precision :is(.hg2-floating-copy, .hg2-quote-meta) p,
body.naib-direction-cinematic_precision :is(.hg2-contact-label .elementor-heading-title, .hg2-contact-value span) {
	color: #c7c2b9 !important;
}

body.naib-direction-cinematic_precision .hg2-accordion .elementor-tab-title.elementor-active {
	background: rgba(198,154,82,.16) !important;
}

body.naib-direction-cinematic_precision .hg2-media,
body.naib-direction-cinematic_precision .hg2-media-frame {
	border-color: rgba(255,246,229,.09) !important;
	background-color: #1b2a35 !important;
}

/* Die aeussere Section darf nicht selbst zur blauen Riesenkarte werden.
 * Nur Bildrahmen und die eigentliche Inhaltskarte bekommen eine Flaeche. */
body.naib-direction-cinematic_precision .hg2-content-glass > .e-con-inner {
	background: transparent !important;
	background-color: transparent !important;
}

body.naib-direction-cinematic_precision .e-con.hg2-glass-stage {
	border: 1px solid rgba(255,246,229,.08);
	background: #141f29 !important;
	background-color: #141f29 !important;
	box-shadow: 0 28px 72px rgba(0,0,0,.32);
}

body.naib-direction-cinematic_precision .e-con.hg2-glass-panel {
	border-color: rgba(255,246,229,.11) !important;
	background: linear-gradient(145deg, rgba(38,57,70,.98), rgba(25,39,50,.98)) !important;
	background-color: #263946 !important;
	box-shadow: 0 24px 64px rgba(0,0,0,.36);
}

/* Elementor speichert bei einzelnen Certified-Komponenten eigene Farben in
 * den Seitendaten. Diese Richtungsebene normalisiert auch solche Altwerte und
 * verhindert blaue Inseln auf bestehenden sowie neu generierten Seiten. */
body.naib-direction-cinematic_precision :is(.e-con.hg2-results-stage, .e-con.hg2-results-panel) {
	border-color: rgba(255,246,229,.10) !important;
	background:
		radial-gradient(circle at 100% 0, rgba(198,154,82,.18), transparent 38%),
		linear-gradient(145deg, #263a49, #172633) !important;
	background-color: #1f303d !important;
	box-shadow: 0 28px 76px rgba(0,0,0,.34) !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-contact-method {
	border: 1px solid rgba(255,246,229,.10) !important;
	background: linear-gradient(145deg, #29404f, #1d2d38) !important;
	background-color: #233743 !important;
	box-shadow: 0 18px 46px rgba(0,0,0,.22);
}
body.naib-direction-cinematic_precision .e-con.hg2-card.hg2-form-card,
body.naib-direction-cinematic_precision .e-con.hg2-form-card {
	--hg2-ink: #201f1c;
	--hg2-muted: #4f4b45;
	--hg2-white: #fff;
	--naib-text: #201f1c;
	--naib-muted: #4f4b45;
	border-color: rgba(52,49,43,.14) !important;
	background: #f4f0e8 !important;
	color: #201f1c !important;
	box-shadow: 0 24px 64px rgba(23,22,19,.24) !important;
}
body.naib-direction-cinematic_precision .hg2-form-card :is(.elementor-heading-title, .elementor-field-label, .elementor-field-option label, .elementor-field-subgroup label),
body.naib-direction-cinematic_precision .hg2-form-card .elementor-field-type-acceptance {
	color: #201f1c !important;
}
body.naib-direction-cinematic_precision .hg2-form-card :is(.hg2-body, .hg2-body p, .hg2-card-copy, .hg2-card-copy p) {
	color: #4f4b45 !important;
}
body.naib-direction-cinematic_precision .hg2-form-card .elementor-field-type-acceptance a {
	color: #765222 !important;
	font-weight: 700;
}
body.naib-direction-cinematic_precision .hg2-form-card .elementor-field:not([type="checkbox"]):not([type="radio"]) {
	border: 1px solid #b8b1a6 !important;
	background: #fff !important;
	color: #201f1c !important;
}
body.naib-direction-cinematic_precision .hg2-form-card .elementor-field::placeholder {
	color: #5f5a52 !important;
	opacity: 1 !important;
}
body.naib-direction-cinematic_precision .hg2-form-card .elementor-field:focus {
	border-color: var(--hg2-accent) !important;
	outline: 0 !important;
	box-shadow: 0 0 0 3px rgba(198,154,82,.30) !important;
}
body.naib-direction-cinematic_precision .hg2-contact-value a {
	color: #e2c48e !important;
	text-decoration-color: rgba(226,196,142,.58) !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-bento-lead {
	background:
		radial-gradient(circle at 78% 14%, rgba(198,154,82,.20), transparent 35%),
		linear-gradient(145deg, #2a4050, #172633) !important;
	background-color: #20323f !important;
}
body.naib-direction-cinematic_precision .hg2-map-embed {
	background:
		radial-gradient(circle at 84% 12%, rgba(198,154,82,.20), transparent 34%),
		linear-gradient(145deg, #2d4657, #172633) !important;
}

body.naib-direction-cinematic_precision .hg2-glass-panel :is(.hg2-body, .hg2-knowledge-body),
body.naib-direction-cinematic_precision .hg2-glass-panel :is(.hg2-body, .hg2-knowledge-body) p {
	color: #d8d4cc !important;
}

/* Auch kompakte Fakten und Kennzahlen muessen als echte Elemente erkennbar
 * bleiben, statt optisch auf der Section zu schweben. */
body.naib-direction-cinematic_precision :is(.hg2-results-metric, .hg2-stat-card) {
	border: 1px solid rgba(174,205,224,.12) !important;
	border-radius: 14px;
	background: rgba(42,64,80,.58) !important;
	box-shadow: inset 0 1px rgba(255,255,255,.025);
}
body.naib-direction-cinematic_precision .hg2-results-metrics {
	display: grid;
	gap: 10px !important;
}
body.naib-direction-cinematic_precision .hg2-results-metric {
	padding: 16px 18px !important;
}

body.naib-direction-cinematic_precision .hg2-footer-visual :is(.hg2-body, .hg2-body p) {
	color: #d8d4cc !important;
}
body.naib-direction-cinematic_precision .hg2-footer-visual .hg2-footer-bottom {
	color: #b8b4ab !important;
}

body.naib-direction-cinematic_precision .hg2-hero-form :is(.hg2-form-card, .hg2-form-panel) {
	--hg2-ink: #201f1c;
	--hg2-muted: #4f4b45;
	--hg2-white: #fff;
	--naib-text: #201f1c;
	--naib-muted: #4f4b45;
	background: #f4f0e8 !important;
	color: #201f1c !important;
}

body.naib-direction-cinematic_precision .hg2-hero-form :is(.hg2-form-card, .hg2-form-panel) .elementor-heading-title,
body.naib-direction-cinematic_precision .hg2-hero-form :is(.hg2-form-card, .hg2-form-panel) :is(.hg2-title, .hg2-body, .hg2-lead),
body.naib-direction-cinematic_precision .hg2-hero-form :is(.hg2-form-card, .hg2-form-panel) :is(.hg2-title, .hg2-body, .hg2-lead) p {
	color: #201f1c !important;
}

/* Moduswahl des CTA hat Vorrang vor der allgemeinen Regel, die alle
 * Cinematic-Sections dunkel stabilisiert. */
body.naib-direction-cinematic_precision .e-con.hg2-section.hg2-cta.hg2-cta-mode-image {
	background-color: #0b151f !important;
	background-image:
		linear-gradient(90deg, rgba(11,21,31,.95), rgba(11,21,31,.76) 58%, rgba(11,21,31,.90)),
		var(--naib-cta-image, linear-gradient(135deg, #284356, #0b151f)) !important;
	background-position: center !important;
	background-size: cover !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-section.hg2-cta.hg2-cta-mode-image .hg2-cta-panel {
	background:
		radial-gradient(circle at 90% 20%, rgba(198,154,82,.22), transparent 32%),
		linear-gradient(90deg, rgba(11,21,31,.24), rgba(11,21,31,.04)) !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-section.hg2-cta.hg2-cta-mode-color {
	background-color: var(--hg2-brand) !important;
	background-image: linear-gradient(135deg, var(--hg2-brand), color-mix(in srgb, var(--hg2-brand) 76%, #07141e)) !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-section.hg2-cta.hg2-cta-mode-dark {
	background-color: #0b151f !important;
	background-image: linear-gradient(135deg, #1f3545, #0b151f) !important;
}

body.naib-direction-cinematic_precision .e-con.hg2-footer-mode-image,
body.naib-direction-cinematic_precision .e-con.hg2-footer-visual {
	background:
		linear-gradient(rgba(13,24,34,.84), rgba(13,24,34,.94)),
		var(--naib-footer-image, radial-gradient(circle at 18% 18%, #2c4a5e, #0d1822 66%)) !important;
	background-position: center !important;
	background-size: cover !important;
}
body.naib-direction-cinematic_precision .e-con.hg2-footer-visual:before {
	background:
		radial-gradient(circle at 18% 0, rgba(198,154,82,.17), transparent 27rem),
		linear-gradient(90deg, rgba(13,24,34,.18), transparent 42%, rgba(13,24,34,.22)) !important;
}

/* Blog und Einzelbeitraege gehoeren sichtbar zum selben Cinematic-System.
 * Elementor Pro erzeugt diese Templates ausserhalb der normalen Seitenrollen;
 * deshalb erhalten Archiv, Karten und Artikel hier ihre eigene robuste Ebene. */
body.naib-direction-cinematic_precision:is(.blog, .single-post) #content,
body.naib-direction-cinematic_precision:is(.blog, .single-post) #primary,
body.naib-direction-cinematic_precision:is(.blog, .single-post) #main,
body.naib-direction-cinematic_precision:is(.blog, .single-post) .elementor-location-archive,
body.naib-direction-cinematic_precision:is(.blog, .single-post) .elementor-location-single {
	background: #0f1720 !important;
	color: var(--hg2-ink);
}
body.ast-theme-transparent-header.naib-direction-cinematic_precision:is(.blog, .single-post) .site-header {
	position: absolute;
	z-index: 99;
	top: 0;
	right: 0;
	left: 0;
	width: 100%;
}
body.naib-direction-cinematic_precision:is(.blog, .single-post) #content > .ast-container {
	width: 100%;
	max-width: none;
	padding-inline: 0;
}
body.naib-direction-cinematic_precision:is(.blog, .single-post) #primary {
	margin-block: 0 !important;
}

body.naib-direction-cinematic_precision.blog .elementor-location-archive > .e-con:first-child,
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:first-child {
	position: relative;
	isolation: isolate;
	min-height: clamp(330px, 42svh, 480px);
	padding-top: clamp(128px, 14vw, 180px) !important;
	padding-bottom: clamp(58px, 8vw, 96px) !important;
	background-image:
		linear-gradient(90deg, rgba(8,18,27,.90), rgba(8,18,27,.62) 52%, rgba(8,18,27,.82)),
		radial-gradient(circle at 82% 12%, rgba(212,170,58,.20), transparent 34rem),
		var(--naib-blog-hero-image, none),
		linear-gradient(145deg, #284356, #141f29 72%) !important;
	background-position: center, center, center 48%, center !important;
	background-size: cover, auto, cover, cover !important;
	background-repeat: no-repeat !important;
	background-color: #141f29 !important;
}
body.naib-direction-cinematic_precision.blog .elementor-location-archive > .e-con:first-child .elementor-heading-title,
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:first-child .elementor-heading-title {
	max-width: 980px;
	color: #f5f7f8 !important;
	font-size: clamp(42px, 6vw, 76px) !important;
	line-height: 1.04 !important;
	letter-spacing: -.045em !important;
}

body.naib-direction-cinematic_precision.blog .elementor-location-archive > .e-con:nth-child(2) {
	padding-top: clamp(56px, 8vw, 96px) !important;
	padding-bottom: clamp(72px, 10vw, 120px) !important;
	background: #0f1720 !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-posts-container {
	gap: clamp(22px, 2.6vw, 34px);
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post {
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.12) !important;
	border-radius: var(--hg2-radius, 24px) !important;
	background: linear-gradient(145deg, #253847, #1a2833) !important;
	box-shadow: 0 24px 64px rgba(0,0,0,.28) !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__text {
	padding: clamp(28px, 4vw, 48px) !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__title a {
	color: #f5f7f8 !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__meta-data {
	color: rgba(238,244,247,.62) !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__excerpt,
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__excerpt p {
	color: rgba(238,244,247,.78) !important;
}
body.naib-direction-cinematic_precision.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__read-more {
	color: var(--hg2-accent) !important;
	font-weight: 780 !important;
}

body.naib-direction-cinematic_precision.single-post .elementor-location-single {
	padding: clamp(94px, 9vw, 118px) 20px clamp(72px, 10vw, 120px);
}
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con {
	width: min(1040px, 100%);
	margin-inline: auto;
	border-right: 1px solid rgba(255,255,255,.11);
	border-left: 1px solid rgba(255,255,255,.11);
}
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:first-child {
	min-height: clamp(300px, 38svh, 430px);
	padding-top: clamp(72px, 9vw, 112px) !important;
	border-top: 1px solid rgba(255,255,255,.11);
	border-radius: var(--hg2-radius, 24px) var(--hg2-radius, 24px) 0 0;
}
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:nth-child(2) {
	padding-top: clamp(42px, 6vw, 72px) !important;
	padding-bottom: clamp(52px, 7vw, 86px) !important;
	border-bottom: 1px solid rgba(255,255,255,.11);
	border-radius: 0 0 var(--hg2-radius, 24px) var(--hg2-radius, 24px);
	background: linear-gradient(145deg, #253847, #1a2833) !important;
	background-color: #223443 !important;
}
body.naib-direction-cinematic_precision.single-post .elementor-widget-theme-post-content,
body.naib-direction-cinematic_precision.single-post .elementor-widget-theme-post-content p,
body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:nth-child(2) {
	color: rgba(238,244,247,.82) !important;
}
body.naib-direction-cinematic_precision.single-post .elementor-widget-theme-post-content :is(h2, h3, h4, h5, strong) {
	color: #f5f7f8 !important;
}
body.naib-direction-cinematic_precision.single-post .elementor-widget-theme-post-content a {
	color: var(--hg2-accent) !important;
}

/* -------------------------------------------------------------------------
 * Rechtsseiten: native WordPress-Dokumente im selben Midnight-Steel-System.
 * Die Texte bleiben bewusst im Standardeditor, damit externe Rechtstext-
 * Generatoren sie aktualisieren koennen, ohne ein Elementor-Layout anzufassen.
 * ---------------------------------------------------------------------- */
body.naib-legal-page {
	background: #0f1720;
	color: #d8d4cc;
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.naib-legal-page #content {
	position: relative;
	padding: clamp(145px, 13vw, 184px) 22px clamp(76px, 8vw, 112px);
	background:
		radial-gradient(circle at 16% 5%, rgba(53,88,110,.30), transparent 32%),
		radial-gradient(circle at 88% 18%, rgba(198,154,82,.12), transparent 25%),
		linear-gradient(180deg, #0f1720 0%, #141f29 100%);
}

body.naib-legal-page #content > .ast-container {
	display: block;
	width: min(100%, 1120px);
	max-width: 1120px;
	margin: 0 auto;
	padding: 0;
}

body.naib-legal-page #primary,
body.naib-legal-page #main {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

body.naib-legal-page #main > article {
	overflow: hidden;
	width: min(100%, 920px);
	margin: 0 auto;
	border: 1px solid rgba(174,205,224,.16);
	border-radius: 28px;
	background: linear-gradient(155deg, rgba(39,59,74,.98), rgba(24,38,49,.99));
	box-shadow: 0 32px 84px rgba(2,9,15,.44), inset 0 1px rgba(255,255,255,.04);
}

body.naib-legal-page .entry-header {
	position: relative;
	margin: 0;
	padding: clamp(38px, 5.5vw, 64px) clamp(28px, 6vw, 72px) clamp(28px, 4vw, 42px);
	border-bottom: 1px solid rgba(174,205,224,.14);
	background:
		radial-gradient(circle at 92% 0, rgba(198,154,82,.18), transparent 38%),
		linear-gradient(135deg, rgba(43,66,82,.96), rgba(31,49,62,.96));
}

body.naib-legal-page .entry-header::before {
	display: block;
	margin-bottom: 16px;
	content: "RECHTLICHES";
	color: #d7ad68;
	font-size: 12px;
	font-weight: 850;
	line-height: 1.2;
	letter-spacing: .18em;
}

body.naib-legal-page .entry-title {
	max-width: 820px;
	margin: 0;
	color: #fff !important;
	font-family: Manrope, Inter, system-ui, sans-serif !important;
	font-size: clamp(38px, 4.2vw, 54px) !important;
	font-weight: 750 !important;
	line-height: 1.06 !important;
	letter-spacing: -.04em !important;
}

body.naib-legal-page .entry-content {
	margin: 0;
	padding: clamp(34px, 5.5vw, 68px) clamp(28px, 6vw, 72px) clamp(48px, 6vw, 78px);
	color: #d8d4cc;
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(16px, 1.2vw, 17px);
	line-height: 1.75;
}

body.naib-legal-page .entry-content > :first-child { margin-top: 0; }
body.naib-legal-page .entry-content > :last-child { margin-bottom: 0; }

body.naib-legal-page .entry-content :is(h2, h3, h4) {
	color: #fff !important;
	font-family: Manrope, Inter, system-ui, sans-serif !important;
	font-weight: 740 !important;
	letter-spacing: -.025em !important;
}

body.naib-legal-page .entry-content h2 {
	margin: clamp(38px, 5vw, 58px) 0 16px;
	padding-top: clamp(30px, 4vw, 44px);
	border-top: 1px solid rgba(174,205,224,.13);
	font-size: clamp(24px, 2.6vw, 31px) !important;
	line-height: 1.18 !important;
}

body.naib-legal-page .entry-content h2:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

body.naib-legal-page .entry-content h3 {
	margin: 34px 0 12px;
	font-size: clamp(20px, 2.1vw, 25px) !important;
	line-height: 1.25 !important;
}

body.naib-legal-page .entry-content :is(p, li, td, th) { color: #d8d4cc; }
body.naib-legal-page .entry-content p { margin: 0 0 20px; }
body.naib-legal-page .entry-content :is(ul, ol) { margin: 0 0 24px 1.25em; }
body.naib-legal-page .entry-content li { margin-bottom: 8px; }
body.naib-legal-page .entry-content strong { color: #fff; font-weight: 760; }
body.naib-legal-page .entry-content a {
	color: #e0b871 !important;
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
body.naib-legal-page .entry-content a:hover,
body.naib-legal-page .entry-content a:focus { color: #f0ce91 !important; }

body.naib-legal-page .entry-content p > em:only-child {
	display: block;
	padding: 18px 20px;
	border: 1px solid rgba(198,154,82,.30);
	border-left: 3px solid #d4aa3a;
	border-radius: 14px;
	background: rgba(198,154,82,.095);
	color: #eee1ca;
	font-style: normal;
}

body.naib-legal-page .entry-content :is(table, pre, blockquote) {
	max-width: 100%;
	border-color: rgba(174,205,224,.16);
	background: rgba(7,17,24,.34);
	color: #d8d4cc;
}

body.naib-legal-page .site-header,
body.naib-legal-page .main-header-bar {
	border-bottom-color: rgba(174,205,224,.12) !important;
	background: #0b1721 !important;
}

body.naib-legal-page .site-header :is(.site-title a, .site-title, .site-description),
body.naib-legal-page .site-header .main-header-menu > .menu-item > .menu-link,
body.naib-legal-page .site-header .ast-header-navigation-arrow,
body.naib-legal-page .site-header .ast-icon {
	color: #fff !important;
}

body.naib-legal-page .site-header .main-header-menu > .menu-item > .menu-link:hover,
body.naib-legal-page .site-header .main-header-menu > .current-menu-item > .menu-link {
	color: #e0b871 !important;
}

body.naib-legal-page .site-header .menu-toggle,
body.naib-legal-page .site-header .menu-toggle .ast-mobile-svg,
body.naib-legal-page .site-header .mobile-menu-toggle-icon svg {
	color: #fff !important;
	fill: #fff !important;
}

/* Der dynamische Rechtsfooter ist semantisch eine Liste. Flex-Wrapping liess
 * bei drei Links die letzten zwei nebeneinander erscheinen; eine echte Spalte
 * ist auf allen Breiten ruhiger und eindeutig scannbar. */
.elementor-location-footer .naib-legal-links {
	display: flex !important;
	width: 100%;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 9px !important;
}

.elementor-location-footer .naib-legal-links > a {
	display: inline-flex !important;
	width: fit-content !important;
	margin: 0 !important;
}

@media (max-width: 767px) {
	body.naib-legal-page #content {
		padding: 120px 16px 72px;
	}
	body.naib-legal-page #main > article { border-radius: 20px; }
	body.naib-legal-page .entry-header { padding: 30px 22px 25px; }
	body.naib-legal-page .entry-header::before { margin-bottom: 12px; font-size: 11px; }
	body.naib-legal-page .entry-title {
		font-size: clamp(30px, 8.4vw, 38px) !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
		hyphens: auto;
		-webkit-hyphens: auto;
	}
	body.naib-legal-page .entry-content { padding: 30px 22px 46px; }
	body.naib-legal-page .entry-content h2 { overflow-wrap: anywhere; }
}

@media (max-width: 767px) {
	body.naib-direction-cinematic_precision.single-post .elementor-location-single { padding-inline: 14px; }
	body.naib-direction-cinematic_precision.blog .elementor-location-archive > .e-con:first-child,
	body.naib-direction-cinematic_precision.single-post .elementor-location-single > .e-con:first-child {
		min-height: 300px;
		padding-top: 112px !important;
	}
}
.hg2-map-route {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 20px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 24%, transparent);
	border-radius: var(--naib-radius-button, 999px);
	background: var(--hg2-brand);
	color: #fff !important;
	font-weight: 750;
	text-decoration: none !important;
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.hg2-map-route:hover,
.hg2-map-route:focus-visible {
	transform: translateY(-2px);
	background: color-mix(in srgb, var(--hg2-brand) 86%, #000);
	box-shadow: 0 14px 32px color-mix(in srgb, var(--hg2-brand) 22%, transparent);
}
.hg2-map-embed {
	position: relative;
	isolation: isolate;
	min-height: clamp(390px, 42vw, 560px);
	overflow: hidden;
	border-radius: var(--naib-radius-image, var(--hg2-radius));
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--hg2-brand) 91%, #000), color-mix(in srgb, var(--hg2-brand) 72%, var(--hg2-accent)));
	box-shadow: var(--hg2-shadow);
}
.hg2-map-embed:before,
.hg2-map-embed:after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 9% -8%;
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 48%;
	transform: rotate(-12deg);
}
.hg2-map-embed:after { inset: -18% 27% 8% -16%; transform: rotate(32deg); }
.hg2-map-consent {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: clamp(28px, 5vw, 58px);
	color: #fff;
	text-align: center;
}
.hg2-map-consent strong { font-size: clamp(25px, 3vw, 38px); line-height: 1.1; }
.hg2-map-consent p { max-width: 540px; margin: 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.65; }
.hg2-map-pin {
	display: grid;
	width: 64px;
	height: 64px;
	place-items: center;
	border: 1px solid rgba(255,255,255,.25);
	border-radius: 50%;
	background: color-mix(in srgb, var(--hg2-accent) 88%, #fff);
	color: var(--hg2-ink);
	font-size: 34px;
	box-shadow: 0 16px 36px rgba(0,0,0,.18);
}
.hg2-map-load {
	min-height: 48px;
	padding: 12px 22px;
	border: 0;
	border-radius: var(--naib-radius-button, 999px);
	background: var(--hg2-accent);
	/* Auf dunklen Designsystemen ist --hg2-ink die helle Textfarbe. Auf einem
	 * goldenen Akzent unterschreitet sie WCAG deutlich. Der vom Farbsystem
	 * berechnete Akzent-Kontrast bleibt dagegen in hellen und dunklen Themes
	 * lesbar und entspricht den übrigen primären Aktionsbuttons. */
	/* Elementor-Kits setzen häufig `.elementor-kit-X button` und besitzen damit
	 * mehr Spezifität als die Komponentenklasse. Dieser eng begrenzte Override
	 * hält den datenschutzfreundlichen Kartenbutton trotzdem WCAG-konform. */
	color: var(--naib-accent-contrast, #101828) !important;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}
.hg2-map-load:hover,
.hg2-map-load:focus-visible { filter: brightness(1.08); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.hg2-map-embed iframe {
	display: none;
	width: 100%;
	height: 100%;
	min-height: clamp(390px, 42vw, 560px);
	border: 0;
	background: var(--hg2-surface);
	opacity: 0;
	transition: opacity .24s ease;
}
.hg2-map-embed.is-loading .hg2-map-load { opacity: .65; pointer-events: none; }
.hg2-map-embed.is-loading iframe { display: block; }
.hg2-map-embed.is-loaded .hg2-map-consent { display: none; }
.hg2-map-embed.is-loaded iframe { display: block; opacity: 1; }

@media (max-width: 1024px) {
	.e-con.hg2-grid-4,
	.e-con.hg2-grid-4 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.hg2-footer-grid > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.hg2-footer-grid-visual,
	.e-con.hg2-footer-grid-visual > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.hg2-process-grid .hg2-card:after { display: none; }
	.e-con.hg2-floating-card { right: 16px; }
	.e-con.hg2-gallery-mosaic > .e-con-inner {
		grid-template-rows: repeat(2, minmax(190px, 32vw));
	}
	.hg2-gallery-image-primary { grid-column: 1 / span 7; }
	.hg2-gallery-image-detail:nth-child(2) { grid-column: 8 / span 5; }
	.hg2-gallery-image-portrait { display: none; }
	.hg2-gallery-image-detail:nth-child(4) { grid-column: 8 / span 2; }
	.hg2-gallery-image-wide { grid-column: 10 / span 3; }
}

@media (min-width: 768px) {
	/*
	 * Elementor legt auf jedem boxed Container zusätzlich das globale
	 * Container-Padding ab. Unsere zertifizierten Sections besitzen bereits
	 * ihren eigenen Rhythmus; ohne diese Korrektur verdoppelte sich der
	 * Abstand auf bis zu 156 px je Seite einer Section.
	 */
	[data-elementor-type="wp-page"] > .e-con.hg2-section > .e-con-inner {
		padding-block: 0 !important;
	}

	/* Kontrollierte Flächenfolge statt mehrerer nahezu weißer Blöcke. */
	.e-con.hg2-content-forward,
	.e-con.hg2-showcase,
	.e-con.hg2-seo-depth,
	.e-con.hg2-blog { background: var(--hg2-surface) !important; }
	.e-con.hg2-services,
	.e-con.hg2-benefits,
	.e-con.hg2-values,
	.e-con.hg2-process,
	.e-con.hg2-team,
	.e-con.hg2-faq { background: var(--hg2-white) !important; }

	/* Ein einzelner frischer Blogbeitrag darf nicht wie eine verlorene Karte
	 * in einem leeren Dreispaltenraster wirken. Bis weitere Beiträge vorhanden
	 * sind, erhält er eine redaktionelle, breite Bild/Text-Komposition. */
	.hg2-posts .elementor-posts-container:has(> .elementor-post:only-child),
	.elementor-widget-archive-posts .elementor-posts-container:has(> .elementor-post:only-child) {
		grid-template-columns: minmax(0, 1fr) !important;
		max-width: 960px;
	}
	.hg2-posts .elementor-post:only-child,
	.elementor-widget-archive-posts .elementor-post:only-child {
		display: grid;
		grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
		align-items: stretch;
	}
	.hg2-posts .elementor-post:only-child .elementor-post__thumbnail__link,
	.elementor-widget-archive-posts .elementor-post:only-child .elementor-post__thumbnail__link {
		height: 100%;
		min-height: 330px;
		aspect-ratio: auto;
	}
	.hg2-posts .elementor-post:only-child .elementor-post__text,
	.elementor-widget-archive-posts .elementor-post:only-child .elementor-post__text {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: clamp(30px, 4vw, 52px);
	}

	/*
	 * Bestehende redaktionelle Bildband-Heros werden ohne Inhaltsverlust in
	 * dieselbe kompakte, bildstarke Unterseiten-Bühne überführt wie der neue
	 * Slider. Neue Builds verwenden direkt die Cinematic-Komponente.
	 */
	.e-con.hg2-subhero-band {
		position: relative;
		isolation: isolate;
		display: flex;
		align-items: center;
		min-height: clamp(500px, 58svh, 640px);
		padding: 0 max(20px, calc((100% - var(--naib-content-width, 1200px)) / 2));
		overflow: hidden;
		background: #102a36;
	}
	.e-con.hg2-subhero-band > .e-con-inner {
		position: static;
		display: block;
		width: 100%;
		max-width: none;
		padding: 0 !important;
	}
	.e-con.hg2-subhero-band-media {
		position: absolute;
		z-index: 0;
		inset: 0;
		width: 100%;
	}
	.e-con.hg2-subhero-band-media:after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(90deg, rgba(7,23,32,.84) 0%, rgba(7,23,32,.62) 48%, rgba(7,23,32,.30) 100%);
	}
	.hg2-subhero-band-image .elementor-widget-container,
	.hg2-subhero-band-image img {
		width: 100%;
		height: clamp(500px, 58svh, 640px);
		min-height: clamp(500px, 58svh, 640px);
		object-fit: cover;
	}
	.e-con.hg2-subhero-band-copy {
		position: relative;
		z-index: 2;
		justify-content: center;
		min-height: clamp(500px, 58svh, 640px);
		margin: 0;
		padding: clamp(104px, 12vh, 138px) 0 clamp(64px, 8vh, 88px);
	}
	.e-con.hg2-subhero-band-copy > .e-con-inner {
		width: min(100%, 760px);
		max-width: 760px;
		margin: 0;
		padding: 0 !important;
	}
	.hg2-subhero-band .hg2-display .elementor-heading-title { color: #fff !important; }
	.hg2-subhero-band .hg2-lead,
	.hg2-subhero-band .hg2-lead p { color: rgba(255,255,255,.88) !important; }
	.hg2-subhero-band .hg2-kicker .elementor-heading-title { color: #f2ce91 !important; }
}

	@media (max-width: 767px) {
	.e-con.hg2-section { padding: 40px 18px; }
	.e-con.hg2-section-compact { padding-top: 24px; padding-bottom: 24px; }
	/* Karten sind Inhalt und bleiben mobil vollstaendig sichtbar. Horizontales
	 * Wischen ist nur fuer ausdruecklich als Karussell markierte Medien erlaubt. */
	.e-con:is(.hg2-grid-2,.hg2-grid-3,.hg2-grid-4):has(> :is(.hg2-card,.hg2-media-card,.hg2-process-card,.hg2-stat-card,.hg2-contact-card,.hg2-team-card,.hg2-pricing-card,.hg2-product-card)),
	.e-con:is(.hg2-grid-2,.hg2-grid-3,.hg2-grid-4):has(> .e-con-inner > :is(.hg2-card,.hg2-media-card,.hg2-process-card,.hg2-stat-card,.hg2-contact-card,.hg2-team-card,.hg2-pricing-card,.hg2-product-card)) > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0,1fr) !important;
		grid-auto-flow: row !important;
		grid-auto-columns: auto !important;
		gap: 16px;
		overflow: visible !important;
		scroll-snap-type: none;
	}
	.e-con:is(.hg2-grid-2,.hg2-grid-3,.hg2-grid-4) > :is(.hg2-card,.hg2-media-card,.hg2-process-card,.hg2-stat-card,.hg2-contact-card,.hg2-team-card,.hg2-pricing-card,.hg2-product-card),
	.e-con:is(.hg2-grid-2,.hg2-grid-3,.hg2-grid-4) > .e-con-inner > :is(.hg2-card,.hg2-media-card,.hg2-process-card,.hg2-stat-card,.hg2-contact-card,.hg2-team-card,.hg2-pricing-card,.hg2-product-card) {
		width: 100% !important;
		min-width: 0 !important;
		scroll-snap-align: none;
	}
	.e-con.hg2-glass-stage,
	.e-con.hg2-glass-stage > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0,1fr) !important;
		grid-auto-flow: row !important;
		overflow: hidden !important;
	}
	/* Kontakttexte und Formular sind ein Arbeitsablauf, keine swipebare
	 * Kartengalerie. Beide müssen auf kleinen Displays vollständig und in
	 * natürlicher Lesereihenfolge untereinander stehen. */
	.e-con.hg2-contact .e-con:is(.hg2-grid-2,.hg2-grid-3),
	.e-con.hg2-contact .e-con:is(.hg2-grid-2,.hg2-grid-3) > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0,1fr) !important;
		grid-auto-columns: auto !important;
		grid-auto-flow: row !important;
		gap: 24px !important;
		overflow: visible !important;
	}
	.e-con.hg2-contact .e-con:is(.hg2-grid-2,.hg2-grid-3) > :not(.e-con-inner),
	.e-con.hg2-contact .e-con:is(.hg2-grid-2,.hg2-grid-3) > .e-con-inner > * {
		width: 100% !important;
		min-width: 0 !important;
		min-height: 0 !important;
	}
	.e-con.hg2-grid-faq, .e-con.hg2-grid-faq > .e-con-inner { grid-template-columns: 1fr; }
	.e-con.hg2-hero-split {
		min-height: auto;
		padding-top: 96px;
		padding-bottom: 58px;
	}
	.hg2-hero-split-media { min-height: 360px; }
	.hg2-hero-split-copy .hg2-actions > .e-con-inner { align-items: stretch; }
	.hg2-hero-split-copy .hg2-actions .hg2-button { width: 100% !important; }
	.hg2-hero-split-copy .hg2-actions .elementor-button { width: 100%; }
	.e-con.hg2-hero { min-height: auto; padding-top: 72px; }
	.e-con.hg2-hero-cinematic { min-height: 72svh; padding: 0 18px; }
	.hg2-hero-cinematic > .e-con-inner,
	.e-con.hg2-hero-overlay,
	.hg2-hero-backdrop .elementor-widget-container,
	.hg2-hero-backdrop .elementor-swiper,
	.hg2-hero-backdrop .swiper,
	.hg2-hero-backdrop .swiper-wrapper,
	.hg2-hero-backdrop .swiper-slide,
	.hg2-hero-backdrop-image img { min-height: 72svh; }
	.e-con.hg2-hero-overlay { padding: 110px 0 70px; }
	.hg2-hero-cinematic .hg2-display .elementor-heading-title { font-size: clamp(36px, 10.5vw, 48px) !important; }
	/* Lange deutsche Branchenbegriffe wie „Umzugsunternehmen“ bleiben als
	 * ganzes Wort lesbar, statt auf schmalen Mobilgeräten hart zu zerbrechen. */
	.hg2-display .elementor-heading-title { font-size: clamp(31px, 8.7vw, 40px) !important; }
	.e-con.hg2-hero-sub-cinematic { min-height: 56svh; padding: 0 18px; }
	.hg2-hero-sub-cinematic > .e-con-inner,
	.e-con.hg2-hero-sub-overlay,
	.hg2-hero-sub-backdrop .elementor-widget-container,
	.hg2-hero-sub-backdrop .elementor-swiper,
	.hg2-hero-sub-backdrop .swiper,
	.hg2-hero-sub-backdrop .swiper-wrapper,
	.hg2-hero-sub-backdrop .swiper-slide { min-height: 56svh; }
	.e-con.hg2-hero-sub-overlay { padding: 96px 0 58px; }
	.hg2-hero-sub-cinematic .hg2-display .elementor-heading-title { font-size: clamp(34px, 10vw, 44px) !important; }
	.hg2-hero-cinematic .hg2-display .elementor-heading-title,
	.hg2-hero-sub-cinematic .hg2-display .elementor-heading-title { font-size: clamp(31px, 8.7vw, 40px) !important; }
	.e-con.hg2-hero-grid { gap: 44px; }
	.e-con.hg2-hero-grid > .e-con-inner { gap: 44px; }
	.e-con.hg2-actions, .e-con.hg2-actions > .e-con-inner { align-items: stretch; }
	.e-con.hg2-actions > .e-con-inner,
		.hg2-hero-cinematic .hg2-actions > .e-con-inner { flex-direction: column !important; }
		.hg2-hero-form .hg2-hero-overlay,
		.hg2-hero-form .hg2-hero-overlay > .e-con-inner {
			grid-template-columns: 1fr;
			gap: 34px;
		}
		.e-con.hg2-hero-lead-card { width: 100%; max-width: none; margin-left: 0; }
		.hg2-hero-left .hg2-hero-copy,
		.hg2-hero-left .hg2-hero-copy > .e-con-inner,
		.hg2-hero-form .hg2-hero-copy,
		.hg2-hero-form .hg2-hero-copy > .e-con-inner { align-items: flex-start; text-align: left; }
		.hg2-hero-left .hg2-actions > .e-con-inner { align-items: stretch; }
		.hg2-button, .hg2-button .elementor-button { width: 100% !important; }
	.e-con.hg2-floating-card { right: 12px; bottom: 12px; padding: 16px; }
	.e-con.hg2-cta-panel, .e-con.hg2-cta-panel > .e-con-inner { grid-template-columns: 1fr; }
	.e-con.hg2-cta-panel { padding: 32px 24px; }
	body .e-con.hg2-section.hg2-cta {
		padding: 0 !important;
	}
	.e-con.hg2-footer-grid > .e-con-inner { grid-template-columns: 1fr; }
	.e-con.hg2-footer-grid-visual,
	.e-con.hg2-footer-grid-visual > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.e-con.hg2-footer-grid-visual > .e-con-inner > :nth-child(1),
	.e-con.hg2-footer-grid-visual > .e-con-inner > :nth-child(2) { grid-column: 1 / -1; }
	.e-con.hg2-contact-methods > .e-con-inner { grid-template-columns: 1fr; }
	.e-con.hg2-map-grid > .e-con-inner { grid-template-columns: 1fr; gap: 30px; }
	.hg2-map-route { width: 100%; }
	.hg2-map-embed,
	.hg2-map-embed iframe { min-height: 410px; }
	.e-con.hg2-gallery-mosaic > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 270px 180px 210px;
		gap: 10px;
	}
	.hg2-gallery-image-primary { grid-column: 1 / -1; grid-row: 1; }
	.hg2-gallery-image-detail:nth-child(2) { grid-column: 1; grid-row: 2; }
	.hg2-gallery-image-portrait { display: block; grid-column: 2; grid-row: 2; }
	.hg2-gallery-image-detail:nth-child(4) { grid-column: 1; grid-row: 3; }
	.hg2-gallery-image-wide { grid-column: 2; grid-row: 3; }
	#ast-mobile-site-navigation .main-header-menu > .menu-item {
		position: relative;
		border-bottom: 1px solid rgba(31, 36, 48, .08);
	}
	#ast-mobile-site-navigation .main-header-menu .menu-link {
		display: flex;
		align-items: center;
		min-height: 52px;
		padding: 12px 68px 12px 24px !important;
	}
	#ast-mobile-site-navigation .ast-menu-toggle {
		position: absolute !important;
		top: 6px !important;
		right: 18px !important;
		display: grid !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		padding: 0 !important;
		place-items: center;
		border: 0 !important;
		border-radius: 999px !important;
		background: var(--hg2-accent) !important;
		color: var(--hg2-ink) !important;
		box-shadow: none !important;
	}
	#ast-mobile-site-navigation .ast-menu-toggle svg {
		width: 13px !important;
		height: 13px !important;
		margin: 0 !important;
	}
	#ast-mobile-site-navigation .sub-menu {
		margin: 0 !important;
		padding: 2px 16px 12px 22px !important;
		border: 0 !important;
		background: rgba(31, 36, 48, .035) !important;
	}
	#ast-mobile-site-navigation .sub-menu .menu-link {
		min-height: 46px;
		padding: 10px 18px !important;
		font-size: .94em;
	}
	#ast-mobile-site-navigation .current-menu-item > .menu-link {
		box-shadow: inset 3px 0 var(--hg2-accent);
		background: color-mix(in srgb, var(--hg2-accent) 10%, #fff) !important;
	}
		/* Mobile Medien dürfen nie durch Desktop-Überlappungen oder negative
		 * Margins am linken Viewportrand angeschnitten erscheinen. */
		.e-con.hg2-glass-stage { overflow: hidden; }
		.e-con.hg2-glass-panel {
			width: calc(100% - 24px);
			max-width: calc(100% - 24px);
			margin: -28px 12px 0 !important;
		}
		.hg2-knowledge-media img { min-height: 0; }
		.hg2-media-frame,
		.hg2-media-frame .elementor-widget-container,
		.hg2-media-frame img,
		.hg2-knowledge-media img {
			max-width: 100%;
			object-position: center center;
		}

		/* Auch ältere Bildband-Unterseiten werden mobil zu einem echten,
		 * kompakten Hero: Bild, Overlay und Text bilden eine Bühne, statt
		 * untereinander als kleines Bild plus Überschrift zu zerfallen. */
		.e-con.hg2-subhero-band {
			position: relative;
			isolation: isolate;
			display: flex;
			align-items: center;
			min-height: 58svh;
			padding: 0 18px;
			overflow: hidden;
			background: #102a36;
		}
		.e-con.hg2-subhero-band > .e-con-inner {
			position: static;
			display: block;
			width: 100%;
			padding: 0 !important;
		}
		.e-con.hg2-subhero-band-media {
			position: absolute;
			z-index: 0;
			inset: 0;
			width: 100%;
			max-width: none;
		}
		.e-con.hg2-subhero-band-media:after {
			content: "";
			position: absolute;
			inset: 0;
			background: linear-gradient(180deg, rgba(7,23,32,.38) 0%, rgba(7,23,32,.70) 58%, rgba(7,23,32,.88) 100%);
		}
		.hg2-subhero-band-image,
		.hg2-subhero-band-image .elementor-widget-container,
		.hg2-subhero-band-image img {
			width: 100%;
			height: 58svh;
			min-height: 58svh;
			max-width: none;
			object-fit: cover;
			object-position: center center;
		}
		.e-con.hg2-subhero-band-copy {
			position: relative;
			z-index: 2;
			justify-content: flex-end;
			min-height: 58svh;
			margin: 0;
			padding: 94px 0 48px;
		}
		.e-con.hg2-subhero-band-copy > .e-con-inner {
			width: 100%;
			max-width: none;
			margin: 0;
			padding: 0 !important;
		}
		.hg2-subhero-band .hg2-display .elementor-heading-title {
			color: #fff !important;
			font-size: clamp(34px, 10vw, 44px) !important;
			line-height: 1.05 !important;
		}
		.hg2-subhero-band .hg2-lead,
		.hg2-subhero-band .hg2-lead p { color: rgba(255,255,255,.88) !important; }
		.hg2-subhero-band .hg2-kicker .elementor-heading-title { color: #f2ce91 !important; }
		.e-con.hg2-subhero-split { min-height: 0; padding-top: 92px; padding-bottom: 48px; }
		.hg2-subhero-split-media img { min-height: 0; }
	}

/* ===== Premium-Komponenten: Bento, Ergebnis-Story und Commerce ===== */
.e-con.hg2-bento-grid {
	display: flex;
}
.e-con.hg2-bento-grid > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, .65fr));
	grid-template-rows: repeat(2, minmax(220px, auto));
	gap: clamp(18px, 2.4vw, 30px);
}
.e-con.hg2-bento-card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(24px, 3.2vw, 42px);
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 11%, transparent);
	border-radius: var(--naib-radius-card, 24px);
	background: var(--hg2-white);
	box-shadow: var(--hg2-shadow);
}
.e-con.hg2-bento-card > .e-con-inner { display: flex; flex-direction: column; gap: 15px; }
.e-con.hg2-bento-lead {
	grid-row: 1 / span 2;
	min-height: 520px;
	background:
		radial-gradient(circle at 78% 14%, color-mix(in srgb, var(--hg2-accent) 25%, transparent), transparent 35%),
		color-mix(in srgb, var(--hg2-brand) 96%, #000);
}
.hg2-bento-lead .hg2-title .elementor-heading-title,
.hg2-bento-lead .hg2-body { color: #fff !important; }
.hg2-bento-lead .hg2-body { color: rgba(255,255,255,.76) !important; }
.hg2-bento-image { margin-top: auto; }
.hg2-bento-image img {
	width: 100%;
	aspect-ratio: 16 / 8;
	object-fit: cover;
	border-radius: var(--naib-radius-image, 20px);
}
.e-con.hg2-bento-small:nth-child(2) { grid-column: 2 / span 2; }
.e-con.hg2-bento-small:nth-child(3),
.e-con.hg2-bento-small:nth-child(4) { min-height: 260px; }

.e-con.hg2-results-stage {
	display: flex;
}
.e-con.hg2-results-stage > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
	align-items: stretch;
}
.e-con.hg2-results-stage {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-radius: calc(var(--naib-radius-card, 24px) + 8px);
	background: color-mix(in srgb, var(--hg2-brand) 96%, #000);
	box-shadow: 0 28px 80px color-mix(in srgb, var(--hg2-brand) 20%, transparent);
}
.e-con.hg2-results-media { min-height: 660px; }
.hg2-results-image,
.hg2-results-image .elementor-widget-container,
.hg2-results-image img { width: 100%; height: 100%; min-height: 660px; }
.hg2-results-image img { object-fit: cover; }
.e-con.hg2-results-panel {
	padding: clamp(34px, 4.5vw, 64px);
	background:
		radial-gradient(circle at 100% 0, color-mix(in srgb, var(--hg2-accent) 24%, transparent), transparent 38%),
		color-mix(in srgb, var(--hg2-brand) 96%, #000);
}
.hg2-results-panel .hg2-title .elementor-heading-title { color: var(--hg2-on-brand) !important; }
.hg2-results-panel .hg2-body { color: rgba(255,255,255,.76) !important; }
.e-con.hg2-results-metrics,
.e-con.hg2-results-metrics > .e-con-inner { display: grid; gap: 0; }
.e-con.hg2-results-metric {
	padding: 18px 0;
	border-top: 1px solid rgba(255,255,255,.15);
}
.e-con.hg2-results-metric > .e-con-inner {
	display: grid;
	/* Die Kennzahlen liegen im schmaleren Story-Panel. Eine ruhige vertikale
	 * Hierarchie bleibt bei langen KI-Texten lesbar und verhindert schmale,
	 * wortweise umbrechende Spalten. */
	grid-template-columns: minmax(0, 1fr) !important;
	align-items: start;
	gap: 8px !important;
}
.hg2-results-metric .hg2-card-title .elementor-heading-title { color: #fff !important; }
.hg2-results-metric .hg2-card-copy { color: rgba(255,255,255,.68); font-size: 14px; }

/* Gemeinsamer Kontrastvertrag für alle kuratierten dunklen Flächen. Er ist
 * absichtlich palette-unabhängig: Auch frei gewählte Markenfarben dürfen
 * niemals dunkle Überschriften auf dunklem Grund erzeugen. */
:is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic, .hg2-cta-panel, .hg2-results-panel, .hg2-bento-lead, .hg2-footer-visual)
	:is(.hg2-display, .hg2-title, .hg2-card-title) .elementor-heading-title {
	/* Diese Komponenten haben konstruktiv immer eine dunkle Bild-/Markenflaeche.
	 * --hg2-on-brand ist dagegen die Kontrastfarbe der frei gewaehlten
	 * Markenfarbe und kann bei hellen Paletten absichtlich schwarz sein. Genau
	 * das erzeugte schwarze Hero-, CTA- und Footer-Texte auf dunklen Fotos.
	 * Der Komponentenvertrag ist deshalb hier bewusst palette-unabhaengig. */
	color: #fff !important;
}
:is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic, .hg2-cta-panel, .hg2-results-panel, .hg2-bento-lead, .hg2-footer-visual)
	:is(.hg2-lead, .hg2-body, .hg2-card-copy) {
	color: rgba(255,255,255,.82) !important;
}
:is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic, .hg2-cta-panel, .hg2-results-panel, .hg2-bento-lead, .hg2-footer-visual)
	.hg2-kicker,
	:is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic, .hg2-cta-panel, .hg2-results-panel, .hg2-bento-lead, .hg2-footer-visual)
		.hg2-kicker .elementor-heading-title {
	/* --hg2-on-brand kann aus einer freien Palette irrtümlich dunkel sein. Der
	 * feste Weißanteil hält auch Kicker auf Grün, Lila und Braun AA-lesbar. */
	color: color-mix(in srgb, #fff 58%, var(--hg2-accent, #e7c817)) !important;
}

.hg2-products-widget ul.products,
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(var(--columns, 3), minmax(0, 1fr));
	gap: clamp(20px, 2.5vw, 32px);
}
.hg2-products-widget ul.products li.product,
.woocommerce ul.products li.product {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	height: 100%;
	width: auto !important;
	margin: 0 !important;
	overflow: hidden;
	padding: 0 0 24px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 11%, transparent);
	border-radius: var(--naib-radius-card, 24px);
	background: var(--hg2-white);
	box-shadow: var(--hg2-shadow);
	transition: transform .25s ease, box-shadow .25s ease;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { flex: 0 0 auto; }
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: stretch;
}
.hg2-products-widget ul.products li.product:hover,
.woocommerce ul.products li.product:hover {
	transform: translateY(-5px);
	box-shadow: var(--naib-card-shadow-hover, 0 26px 68px rgba(16,42,55,.16));
}
.woocommerce ul.products li.product a img {
	margin: 0 0 20px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-inline: 22px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--hg2-ink);
	font-size: clamp(19px, 1.55vw, 24px);
	line-height: 1.2;
}
.woocommerce ul.products li.product .price {
	color: var(--hg2-brand);
	font-size: 17px;
	font-weight: 800;
}
.woocommerce ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: calc(100% - 44px) !important;
	max-width: calc(100% - 44px) !important;
	margin: auto 22px 0 !important;
	text-align: center;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	min-height: 48px;
	padding: 13px 21px;
	border-radius: var(--naib-radius-button, 999px) !important;
	background: var(--hg2-brand);
	color: var(--naib-on-primary, #fff);
	font-weight: 750;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	transform: translateY(-2px);
	border-radius: var(--naib-radius-button, 999px) !important;
	background: var(--hg2-brand);
	color: var(--naib-on-primary, #fff);
	filter: brightness(1.08);
	box-shadow: 0 14px 30px color-mix(in srgb, var(--hg2-brand) 24%, transparent);
}
@media (max-width: 767px) {
	/* Astra setzt Shop-CTAs mobil nachgelagert wieder auf die komplette
	 * Kartenbreite. Die höhere Spezifität und feste Innenkante halten den
	 * Kaufbutton sichtbar innerhalb der Produktkarte. */
	body.woocommerce ul.products li.product .button,
	body .woocommerce ul.products li.product .button,
	body .hg2-products-widget ul.products li.product .button {
		box-sizing: border-box !important;
		width: calc(100% - 24px) !important;
		max-width: calc(100% - 24px) !important;
		margin: auto 12px 0 !important;
		padding-right: 10px;
		padding-left: 10px;
	}
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection {
	min-height: 50px;
	padding: 12px 14px;
	border: 1px solid color-mix(in srgb, var(--hg2-brand) 18%, transparent);
	border-radius: var(--naib-radius-input, 12px);
	background: var(--hg2-white);
	color: var(--hg2-ink);
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--naib-radius-card, 18px);
	background: var(--hg2-surface);
	color: var(--hg2-ink);
	box-shadow: 0 10px 32px rgba(16,42,55,.08);
}
.woocommerce-message,
.woocommerce-info { border-top-color: var(--hg2-accent); }
.woocommerce div.product div.images img { border-radius: var(--naib-radius-image, 24px); }
.woocommerce div.product .product_title { color: var(--hg2-ink); line-height: 1.08; letter-spacing: -.035em; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--hg2-brand); font-weight: 800; }

/* Nocturne besitzt eine echte dunkle Oberflächenlogik; normale Luminous-
 * Websites bleiben weiterhin hell. */
body.naib-design-nocturne-glass {
	--hg2-white: #10172a;
	--hg2-surface: #0c1324;
	background: #080c18;
	color: #f4f7ff;
}
body.naib-design-nocturne-glass .e-con.hg2-section {
	/* Elementor speichert bei einigen zertifizierten Sections noch eine helle
	 * Inline-Fläche. In Nocturne muss die Design-DNA diese technische Altlast
	 * zuverlässig überstimmen, sonst stehen helle Headlines auf hellem Grund. */
	background-color: #080c18 !important;
	color: #f4f7ff;
}
body.naib-design-nocturne-glass .e-con.hg2-surface {
	background:
		radial-gradient(circle at 85% 8%, rgba(124,246,212,.10), transparent 30rem),
		#0c1324 !important;
}
body.naib-design-nocturne-glass .hg2-title .elementor-heading-title,
body.naib-design-nocturne-glass .hg2-card-title .elementor-heading-title,
body.naib-design-nocturne-glass .hg2-display .elementor-heading-title {
	color: #f4f7ff !important;
}
body.naib-design-nocturne-glass .hg2-body,
body.naib-design-nocturne-glass .hg2-lead,
body.naib-design-nocturne-glass .hg2-card-copy { color: #b5c0d8; }
body.naib-design-nocturne-glass .e-con.hg2-glass-stage {
	border: 1px solid rgba(255,255,255,.08);
	background:
		radial-gradient(circle at 12% 10%, rgba(231,199,74,.13), transparent 34%),
		linear-gradient(145deg, #10172a, #0c1324) !important;
	box-shadow: 0 28px 72px rgba(0,0,0,.34);
}
body.naib-design-nocturne-glass .e-con.hg2-glass-panel {
	border-color: rgba(255,255,255,.12) !important;
	background: linear-gradient(145deg, rgba(24,33,58,.94), rgba(13,20,38,.90)) !important;
	box-shadow: 0 24px 64px rgba(0,0,0,.38);
}
body.naib-design-nocturne-glass .hg2-glass-panel .hg2-body,
body.naib-design-nocturne-glass .hg2-glass-panel .hg2-knowledge-body {
	color: #b5c0d8 !important;
}
body.naib-design-nocturne-glass .hg2-card,
body.naib-design-nocturne-glass .hg2-media-card,
body.naib-design-nocturne-glass .hg2-article-panel,
body.naib-design-nocturne-glass .hg2-bento-card,
body.naib-design-nocturne-glass .woocommerce ul.products li.product {
	border-color: rgba(255,255,255,.10) !important;
	background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)) !important;
	backdrop-filter: blur(18px);
}
body.naib-design-nocturne-glass .hg2-accordion .elementor-accordion-item {
	border-color: rgba(255,255,255,.10) !important;
	background: #10172a !important;
}
body.naib-design-nocturne-glass .hg2-accordion .elementor-tab-title,
body.naib-design-nocturne-glass .hg2-accordion .elementor-accordion-title {
	color: #f4f7ff !important;
}
body.naib-design-nocturne-glass .hg2-accordion .elementor-tab-content {
	border-color: rgba(255,255,255,.08) !important;
	color: #b5c0d8 !important;
}
body.naib-design-nocturne-glass .e-con.hg2-contact-method {
	border-color: rgba(231,199,74,.18) !important;
	background-color: #121a31 !important;
	background-image: linear-gradient(145deg, rgba(30,40,68,.94), rgba(14,21,40,.96)) !important;
	box-shadow: inset 0 1px rgba(255,255,255,.08), 0 18px 42px rgba(0,0,0,.22);
}
body.naib-design-nocturne-glass .hg2-contact-label .elementor-heading-title { color: #d8c875 !important; }
body.naib-design-nocturne-glass .hg2-contact-value,
body.naib-design-nocturne-glass .hg2-contact-value a { color: #f4f7ff !important; }
body.naib-design-nocturne-glass .hg2-contact-value span { color: #b5c0d8 !important; }

/* Nocturne liegt konstruktiv auf dunklen Bild- und Glasflaechen. Der Akzent
 * bleibt deshalb bewusst hell und klar als Gold erkennbar; dunkle Schrift
 * liefert auf dieser Flaeche den robustesten CTA-Kontrast. */
body.naib-design-nocturne-glass .hg2-button-primary .elementor-button,
body.naib-design-nocturne-glass .hg2-button-light .elementor-button,
body.naib-design-nocturne-glass .ast-header-button-1 .ast-custom-button {
	border-color: color-mix(in srgb, var(--hg2-accent) 94%, #fff) !important;
	background: color-mix(in srgb, var(--hg2-accent) 92%, #fff) !important;
	color: #17130c !important;
}
body.naib-design-nocturne-glass .ast-header-button-1 .ast-custom-button-link,
body.naib-design-nocturne-glass .ast-header-button-1 .menu-link {
	/* Der Astra-Link ist ein transparenter Wrapper auf der dunklen Headerflaeche;
	 * sein Kind .ast-custom-button traegt erst den Goldhintergrund und nutzt
	 * dort die dunkle Kontrastfarbe. Beide Ebenen werden separat gemessen. */
	color: #fff !important;
}

/* Prozesskarten duerfen unterschiedlich lange Titel besitzen, ohne dass die
 * Inhaltsachsen der Karten gegeneinander springen. Zwei Zeilen werden auf
 * Desktop/Tablet verbindlich reserviert; mobil fliesst der Titel wieder frei. */
body.naib-design-nocturne-glass .hg2-process .hg2-card-title .elementor-heading-title {
	min-height: 2.5em;
}
@media (max-width: 544px) {
	body.naib-design-nocturne-glass .hg2-process .hg2-card-title .elementor-heading-title {
		min-height: 0;
	}
}

/* Sekundäre Nocturne-Buttons liegen transparent auf dunklen Glasflächen.
 * Die allgemeine helle Komponentenfamilie verwendet dafür die dunkle
 * Markenfarbe; auf Nocturne unterschreitet sie den AA-Kontrast deutlich.
 * Akzentfarbene Schrift und Kontur bleiben markenkonform und erreichen auf
 * dem dunklen Hintergrund einen robusten Kontrast. Das !important ist nötig,
 * damit Elementor-Globalfarben den transparenten Sekundärstil nicht wieder
 * mit einer Akzentfläche und weißer, zu kontrastarmer Schrift überschreiben. */
body.naib-design-nocturne-glass .hg2-button-secondary .elementor-button {
	border-color: var(--hg2-accent) !important;
	background: transparent !important;
	color: var(--hg2-accent) !important;
}
body.naib-design-nocturne-glass .hg2-button-secondary .elementor-button:hover,
body.naib-design-nocturne-glass .hg2-button-secondary .elementor-button:focus-visible {
	background: color-mix(in srgb, var(--hg2-accent) 14%, transparent) !important;
	color: var(--hg2-accent) !important;
}

/* Die gewaehlte Bildvariante hat Vorrang vor alten, in Elementor gespeicherten
 * Modusklassen und vor der generischen Nocturne-Section-Normalisierung. */
body.naib-design-nocturne-glass .e-con.hg2-section.hg2-cta.hg2-cta-mode-image {
	background-color: #080c18 !important;
	background-image:
		linear-gradient(90deg, rgba(8,12,24,.94), rgba(8,12,24,.72) 58%, rgba(8,12,24,.90)),
		var(--naib-cta-image, linear-gradient(135deg, #18233c, #080c18)) !important;
	background-position: center !important;
	background-size: cover !important;
}
body.naib-design-nocturne-glass .e-con.hg2-footer.hg2-footer-mode-image,
body.naib-design-nocturne-glass .e-con.hg2-footer-visual.hg2-footer-mode-image {
	background-color: #080c18 !important;
	background-image:
		linear-gradient(rgba(8,12,24,.83), rgba(8,12,24,.94)),
		var(--naib-footer-image, radial-gradient(circle at 18% 18%, #243452, #080c18 66%)) !important;
	background-position: center !important;
	background-size: cover !important;
}

/* V2-Finalisierung: CTA und Typografie folgen ausschliesslich den gescopten
 * Projekt-Tokens. Spaetere Theme- oder Legacy-Regeln duerfen weder einen
 * zweiten Akzentton einfuehren noch deutsche Woerter auf Mobilgeraeten
 * sichtbar mitten im Wort trennen. */
body.naib-scoped-reference .hg2-cta :is(.hg2-button-primary, .hg2-button-light) .elementor-button,
body.naib-scoped-reference .hg2-cta-panel :is(.hg2-button-primary, .hg2-button-light) .elementor-button {
	border-color: var(--naib-accent, var(--hg2-accent)) !important;
	background: var(--naib-accent, var(--hg2-accent)) !important;
	background-color: var(--naib-accent, var(--hg2-accent)) !important;
	color: var(--naib-accent-contrast, #162a36) !important;
}
@media (max-width: 767px) {
	body.naib-scoped-reference .hg2-display .elementor-heading-title,
	body.naib-scoped-reference .hg2-title .elementor-heading-title,
	body.naib-scoped-reference .hg2-card-title .elementor-heading-title {
		-webkit-hyphens: none !important;
		hyphens: none !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
		text-wrap: balance;
	}
}

/* Blog-Templates werden von Elementor Pro ausserhalb der normalen
 * Seitenrichtung gerendert. Das aktive dunkle Designpaket ist deshalb die
 * verbindliche Quelle fuer Karten-, Titel- und Meta-Farben. So koennen keine
 * in einem Template gespeicherten dunklen Textfarben auf dunklen Karten
 * durchschlagen. */
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post {
	border-color: rgba(255,255,255,.12) !important;
	background: linear-gradient(145deg, #18233c, #10172a) !important;
	box-shadow: 0 24px 64px rgba(0,0,0,.30) !important;
}
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__title,
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__title a {
	color: #f4f7ff !important;
}
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__meta-data {
	color: rgba(244,247,255,.70) !important;
}
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__excerpt,
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__excerpt p {
	color: rgba(244,247,255,.80) !important;
}
body.naib-design-nocturne-glass.blog :is(.elementor-widget-posts, .elementor-widget-archive-posts) .elementor-post__read-more {
	color: color-mix(in srgb, var(--hg2-accent) 92%, #fff) !important;
}

/* Auf kleinen Displays bleibt die Bedienflaeche grosszuegig, die eigentlichen
 * Eingabefelder nutzen aber sichtbar mehr von der Kartenbreite. */
@media (max-width: 767px) {
	body.naib-design-nocturne-glass .e-con.hg2-form-card {
		padding: 24px 18px !important;
	}
	body.naib-design-nocturne-glass .hg2-form :is(.elementor-form-fields-wrapper, .elementor-field-group, input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
		width: 100% !important;
		max-width: none !important;
	}
}

/* Transparente Navigation über bildstarken Heros. Am Seitenanfang bleibt
 * die Bühne sichtbar; der Sticky-Zustand erhält eine stabile Glasfläche. */
.ast-theme-transparent-header .site-header {
	border-bottom: 1px solid rgba(255,255,255,.12) !important;
	background: rgba(5,9,18,.46) !important;
	box-shadow: none !important;
	backdrop-filter: blur(18px) saturate(132%);
	-webkit-backdrop-filter: blur(18px) saturate(132%);
}
.ast-theme-transparent-header .site-header :is(.ast-primary-header-bar, .main-header-bar, .ast-builder-grid-row-container, .ast-container) {
	background: transparent !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}
@media (min-width: 922px) {
	.ast-theme-transparent-header .site-header .main-header-menu > .menu-item > .menu-link,
	.ast-theme-transparent-header .site-header .site-title,
	.ast-theme-transparent-header .site-header .site-title a {
		color: #fff !important;
	}
	.ast-theme-transparent-header .site-header .main-header-menu .sub-menu .menu-link {
		color: #1f2430 !important;
	}
}
@media (max-width: 921px) {
	.ast-theme-transparent-header .site-header .site-title,
	.ast-theme-transparent-header .site-header .site-title a {
		color: #fff !important;
	}
}
.ast-theme-transparent-header .site-header:has(:is(.ast-sticky-active, .ast-header-sticked, .ast-primary-header-bar.ast-sticky-active)) {
	background: rgba(8,12,24,.94) !important;
	box-shadow: 0 12px 34px rgba(0,0,0,.24) !important;
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

/* Eigener Sticky-Header: unabhaengig von Astra Pro, ohne doppelten Clone und
 * ohne Layoutsprung. Transparent am Seitenanfang, stabile Glasflaeche beim
 * Scrollen. Die Generatoroption steuert Desktop+Mobil, nur Desktop oder aus. */
body.naib-sticky-header-all .site-header {
	position: fixed !important;
	z-index: 999;
	top: 0;
	right: 0;
	left: 0;
	width: 100%;
}
@media (min-width: 922px) {
	body.naib-sticky-header-desktop .site-header {
		position: fixed !important;
		z-index: 999;
		top: 0;
		right: 0;
		left: 0;
		width: 100%;
	}
}
body.admin-bar.naib-sticky-header-all .site-header { top: 32px; }
@media (min-width: 922px) {
	body.admin-bar.naib-sticky-header-desktop .site-header { top: 32px; }
}
@media (max-width: 782px) {
	body.admin-bar.naib-sticky-header-all .site-header { top: 46px; }
}
body.naib-header-scrolled:is(.naib-sticky-header-all, .naib-sticky-header-desktop) .site-header {
	border-bottom-color: rgba(255,255,255,.12) !important;
	background: rgba(10,22,32,.84) !important;
	box-shadow: 0 12px 34px rgba(0,0,0,.28) !important;
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}
body:is(.naib-sticky-header-all, .naib-sticky-header-desktop) .site-header {
	transition: background-color .22s ease, box-shadow .22s ease, min-height .22s ease;
}
body.naib-header-scrolled:is(.naib-sticky-header-all, .naib-sticky-header-desktop) .site-header .site-logo-img img {
	max-height: 48px;
	transition: max-height .22s ease;
}
body .site-header .site-logo-img img.custom-logo {
	width: auto;
	max-width: 224px;
	max-height: 38px;
	object-fit: contain;
	object-position: left center;
}
body.naib-legal-page .site-header .site-logo-img img.custom-logo {
	filter: brightness(0) invert(1);
}
/* Astra behandelt das Blog-Archiv anders als singulaere Elementor-Seiten und
 * liefert dort trotz transparentem dunklem Header mitunter das dunkle
 * Standardlogo aus. Die zweistufige Filterung erzeugt unabhaengig von der
 * gelieferten Logo-Variante verlaesslich eine helle Headerfassung. */
body.blog.ast-theme-transparent-header .site-header .site-logo-img img.custom-logo {
	filter: brightness(0) invert(1);
}
@media (max-width: 921px) {
	body .site-header .site-logo-img img.custom-logo { max-width: 184px; max-height: 34px; }
	/* Astra setzt den Logo-Link im mobilen Header teilweise wieder auf
	 * inline-block. Dadurch richtet sich das Bild an der Text-Baseline statt
	 * an der Mitte der 44-Pixel-Touchflaeche aus. */
	body.naib-accessibility-ready #ast-mobile-header .site-logo-img .custom-logo-link {
		display: flex !important;
		height: 44px;
		align-items: center !important;
		justify-content: flex-start;
		line-height: 0 !important;
	}
	body.naib-accessibility-ready #ast-mobile-header .site-logo-img .custom-logo-link img.custom-logo {
		display: block !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		vertical-align: middle;
	}
	.hg2-footer-logo img { width: 210px !important; max-width: 100% !important; }
}
body.naib-sticky-header-all:not(.ast-theme-transparent-header) #content { padding-top: 80px; }
@media (min-width: 922px) {
	body.naib-sticky-header-desktop:not(.ast-theme-transparent-header) #content { padding-top: 80px; }
}
body:is(.naib-sticky-header-all, .naib-sticky-header-desktop) { scroll-padding-top: 96px; }

/* Aktive Navigation: eine kleine Schmuckmarke ersetzt Breadcrumbs als
 * unaufdringliche Standortanzeige. Sie übernimmt immer die Projekt-Akzentfarbe.
 * Bei Unterseiten wird zusätzlich der übergeordnete Hauptpunkt markiert. */
@media (min-width: 922px) {
	#ast-desktop-header .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) {
		position: relative;
	}
	#ast-desktop-header .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	)::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 9px;
		z-index: 2;
		width: 7px;
		height: 7px;
		border-radius: 999px;
		background: var(--hg2-accent, #d4aa3a);
		box-shadow: 0 0 0 4px color-mix(in srgb, var(--hg2-accent, #d4aa3a) 16%, transparent),
			0 0 12px color-mix(in srgb, var(--hg2-accent, #d4aa3a) 52%, transparent);
		transform: translateY(-50%);
		pointer-events: none;
	}
	#ast-desktop-header .main-header-menu > li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link {
		padding-left: 29px;
	}
	#ast-desktop-header .main-header-menu .sub-menu li:is(.current-menu-item, .current_page_item) > .menu-link {
		padding-left: 29px;
		color: var(--hg2-accent, #d4aa3a);
	}
}
@media (max-width: 921px) {
	#ast-mobile-site-navigation .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) {
		position: relative;
	}
	#ast-mobile-site-navigation .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 16px;
		z-index: 3;
		width: 8px;
		height: 8px;
		border-radius: 999px;
		background: var(--hg2-accent, #d4aa3a);
		box-shadow: 0 0 0 4px color-mix(in srgb, var(--hg2-accent, #d4aa3a) 16%, transparent),
			0 0 12px color-mix(in srgb, var(--hg2-accent, #d4aa3a) 52%, transparent);
		transform: translateY(-50%);
		pointer-events: none;
	}
	#ast-mobile-site-navigation .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link {
		position: relative;
		padding-left: 36px !important;
	}
	#ast-mobile-site-navigation .main-header-menu .sub-menu li:is(.current-menu-item, .current_page_item) > .menu-link::before {
		left: 14px;
		top: 50%;
	}
	#ast-mobile-site-navigation .main-header-menu .sub-menu li:is(.current-menu-item, .current_page_item) > .menu-link {
		padding-left: 34px !important;
		color: var(--hg2-accent, #d4aa3a) !important;
	}
	body.naib-sticky-header-all .ast-mobile-header-content,
	body.naib-sticky-header-all .ast-mobile-popup-content {
		background: rgba(10,22,32,.99) !important;
		color: #fff;
	}
	body.naib-sticky-header-all .ast-mobile-header-content :is(.main-header-menu, .sub-menu, .menu-link),
	body.naib-sticky-header-all .ast-mobile-popup-content :is(.main-header-menu, .sub-menu, .menu-link) {
		border-color: rgba(255,255,255,.10) !important;
		background: #0a1620 !important;
		color: #fff !important;
	}
	body.naib-sticky-header-all .ast-mobile-header-content .current-menu-item > .menu-link,
	body.naib-sticky-header-all .ast-mobile-popup-content .current-menu-item > .menu-link {
		background: rgba(198,154,82,.16) !important;
		color: #fff !important;
	}
	body.naib-sticky-header-all .ast-mobile-header-content ul.main-header-menu > li.current-menu-item > a.menu-link,
	body.naib-sticky-header-all .ast-mobile-popup-content ul.main-header-menu > li.current-menu-item > a.menu-link,
	body.naib-sticky-header-all #ast-mobile-site-navigation ul.main-header-menu > li.current-menu-item > a.menu-link {
		border-left: 3px solid var(--hg2-accent) !important;
		background: #1f3545 !important;
		color: #fff !important;
	}
}
body.naib-design-nocturne-glass .hg2-posts .elementor-post,
body.naib-design-nocturne-glass .elementor-widget-archive-posts .elementor-post {
	border-color: rgba(255,255,255,.10);
	background: #10172a;
}

/* Marker folgen ihrer Bedeutung: Zahlen nur für echte Abläufe. Leistungen,
 * Vorteile, Vertrauenspunkte und Werte bekommen eigenständige Bildzeichen. */
body.naib-design-nocturne-glass :is(.hg2-trust, .hg2-services, .hg2-benefits, .hg2-values, .hg2-spotlight-bento)
	.hg2-card-number .elementor-heading-title {
	width: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border-color: rgba(231,199,74,.34);
	border-radius: 14px;
	background: rgba(231,199,74,.12);
	color: #ead45f !important;
	font-size: 19px;
	font-weight: 850;
	line-height: 1;
}
	body.naib-design-nocturne-glass :is(.hg2-trust, .hg2-benefits)
	.hg2-card-number .elementor-heading-title { border-radius: 999px; }

/* Hochwertigere visuelle Marker: Leistungs-, Nutzen- und Vertrauenskarten
 * erhalten eine echte Icon-Fläche statt eines winzigen technischen Pills. */
:is(.hg2-trust, .hg2-services, .hg2-services-media, .hg2-benefits, .hg2-values, .hg2-spotlight-bento)
	.hg2-card-number .elementor-heading-title {
	width: 56px;
	min-width: 56px;
	min-height: 56px;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--hg2-accent) 42%, var(--hg2-brand));
	border-radius: 18px;
	background:
		linear-gradient(145deg,
			color-mix(in srgb, var(--hg2-accent) 30%, #fff),
			color-mix(in srgb, var(--hg2-accent) 12%, #fff));
	color: color-mix(in srgb, var(--hg2-brand) 82%, #000) !important;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.75),
		0 10px 24px color-mix(in srgb, var(--hg2-accent) 22%, transparent);
	font-size: 24px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
}
.hg2-process .hg2-card-number .elementor-heading-title {
	width: auto;
	min-width: 54px;
	min-height: 38px;
	padding: 8px 14px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--hg2-accent) 22%, #fff);
	font-size: 14px !important;
	box-shadow: 0 8px 20px color-mix(in srgb, var(--hg2-accent) 16%, transparent);
}

/* Rot/Weiß und andere sehr helle Akzentpaletten: Prozessnummern und primäre
 * Showcase-CTAs müssen als echte Bedienelemente sichtbar bleiben. Die
 * Markenfarbe ist dafür verlässlicher als ein frei wählbares Weiß-Akzentfeld. */
.hg2-process .hg2-card-number .elementor-heading-title {
	border-color: color-mix(in srgb, var(--hg2-brand) 78%, #000) !important;
	background: var(--hg2-brand) !important;
	color: var(--hg2-on-brand, #fff) !important;
	box-shadow: 0 8px 20px color-mix(in srgb, var(--hg2-brand) 24%, transparent);
}
.hg2-showcase .hg2-button-primary .elementor-button {
	border-color: color-mix(in srgb, var(--hg2-brand) 82%, #000) !important;
	background: var(--hg2-brand) !important;
	color: var(--hg2-on-brand, #fff) !important;
	box-shadow: 0 12px 28px color-mix(in srgb, var(--hg2-brand) 28%, transparent);
}

@media (max-width: 921px) {
	/* Auf dunklen Cinematic-Heros braucht das Astra-Mobile-Menü eine helle,
	 * eigenständige Glasfläche – Akzentfarben können selbst sehr dunkel sein. */
	.ast-theme-transparent-header .site-header .menu-toggle,
	.ast-theme-transparent-header .site-header .menu-toggle .ast-mobile-svg,
	.ast-theme-transparent-header .site-header .mobile-menu-toggle-icon svg {
		color: #fff !important;
		fill: #fff !important;
	}
	.ast-theme-transparent-header .site-header .menu-toggle {
		display: grid !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		padding: 0 !important;
		place-items: center;
		border: 1px solid rgba(255,255,255,.30) !important;
		border-radius: 999px !important;
		background: rgba(8,18,22,.44) !important;
		box-shadow: 0 10px 26px rgba(0,0,0,.20) !important;
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
	}
}

@media (max-width: 767px) {
	.hg2-process .hg2-card {
		padding: 22px !important;
	}
	.hg2-process .hg2-card > .e-con-inner {
		padding-block: 0 !important;
		gap: 12px !important;
	}
	.hg2-seo-depth .hg2-article-panel {
		padding: 24px 22px;
	}
	/* Mobile Karten-CTAs bleiben klar groß, sitzen aber bewusst weiter innen
	 * als Bild und Kartenrand. */
	:is(.hg2-services, .hg2-services-media) .hg2-media-card-body .hg2-button {
		width: calc(100% - 28px) !important;
		margin-right: auto;
		margin-left: auto;
	}
}
body.naib-design-nocturne-glass.single-post .elementor-location-single {
	background: #0c1324 !important;
	color: #f4f7ff;
}
body.naib-design-nocturne-glass.single-post .elementor-widget-theme-post-content {
	color: #b5c0d8 !important;
}
body.naib-design-nocturne-glass.single-post .elementor-widget-theme-post-content h2,
body.naib-design-nocturne-glass.single-post .elementor-widget-theme-post-content h3,
body.naib-design-nocturne-glass.single-post .elementor-widget-theme-post-content h4 {
	color: #f4f7ff !important;
}

body.naib-design-atelier-editorial .hg2-display .elementor-heading-title,
body.naib-design-atelier-editorial .hg2-title .elementor-heading-title {
	letter-spacing: -.025em !important;
}
body.naib-design-atelier-editorial .hg2-kicker .elementor-heading-title { letter-spacing: .17em !important; }
body.naib-design-atelier-editorial .e-con.hg2-bento-lead {
	background:
		linear-gradient(160deg, rgba(90,41,48,.96), rgba(48,29,30,.96)),
		#5a2930;
}

@media (max-width: 1024px) {
	.e-con.hg2-bento-grid > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.hg2-bento-lead { grid-column: 1 / -1; grid-row: auto; min-height: 440px; }
	.e-con.hg2-bento-small:nth-child(2) { grid-column: 1 / -1; }
	.e-con.hg2-results-stage > .e-con-inner { grid-template-columns: 1fr; }
	.e-con.hg2-results-media,
	.hg2-results-image,
	.hg2-results-image .elementor-widget-container,
	.hg2-results-image img { min-height: 430px; }
}
@media (max-width: 767px) {
	.e-con.hg2-bento-grid > .e-con-inner { display: flex; flex-direction: column; }
	.e-con.hg2-bento-lead { min-height: 0; }
	.hg2-bento-image img { aspect-ratio: 4 / 3; }
	.e-con.hg2-results-stage { border-radius: var(--naib-radius-card, 20px); }
	.e-con.hg2-results-media,
	.hg2-results-image,
	.hg2-results-image .elementor-widget-container,
	.hg2-results-image img { min-height: 330px; }
	.e-con.hg2-results-panel { padding: 30px 22px; }
	/* Mobile Faktenkarten brauchen einen klar erkennbaren Zwischenraum. Der
	 * Desktop-Rhythmus bleibt unveraendert; auf kleinen Displays trennt der
	 * groessere Abstand die gestapelten Karten optisch und taktil sauber. */
	body.naib-direction-cinematic_precision .e-con.hg2-results-metrics,
	body.naib-direction-cinematic_precision .e-con.hg2-results-metrics > .e-con-inner {
		gap: 18px !important;
	}
	.e-con.hg2-results-metric > .e-con-inner { grid-template-columns: 1fr !important; gap: 7px !important; }
	.hg2-products-widget ul.products,
	.woocommerce ul.products { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.hg2-button .elementor-button, .naib-fx-card-lift { transition: none !important; transform: none !important; }
	.hg2-gallery-image img, .hg2-map-route { transition: none !important; transform: none !important; }
	/* Elementor entrance animations start at visibility:hidden. When motion is
	   reduced, reveal the content immediately instead of leaving blank areas. */
	.elementor-invisible {
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
}

/* Harte, am Dateiende liegende Kontrastschranke. Designregeln der einzelnen
 * Branchen dürfen diese Rollen nicht später wieder mit einer ungeeigneten
 * Elementor- oder Palettenfarbe überschreiben. Der Screenshot-Renderer misst
 * dieselben Rollen zusätzlich nach WCAG AA und blockiert die Freigabe. */
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) :is(.hg2-display, .hg2-title, .hg2-card-title) .elementor-heading-title {
	color: #fff !important;
}
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) :is(.hg2-lead, .hg2-body, .hg2-card-copy),
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) :is(.hg2-lead, .hg2-body, .hg2-card-copy) p {
	color: rgba(255,255,255,.86) !important;
}
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) .hg2-kicker,
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) .hg2-kicker .elementor-heading-title {
	color: color-mix(in srgb, #fff 72%, var(--hg2-accent, #e7c817)) !important;
}

/* Ergebnisflächen dürfen auch bei hellen, warmen Kundenpaletten nicht unter
 * AA fallen. Die Markenfarbe bleibt erkennbar, wird aber mit der tiefen
 * Design-Tinte auf einen sicheren Hintergrundkontrast gezogen. */
body .hg2-results-panel {
	background-color: color-mix(in srgb, var(--hg2-brand, #274c5b) 64%, #07131b) !important;
}
body .hg2-form .elementor-field-option a {
	color: var(--hg2-ink, #17212b) !important;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .16em;
}
body .hg2-map-route {
	background-color: color-mix(in srgb, var(--hg2-brand, #274c5b) 82%, #07131b) !important;
	color: #fff !important;
}
body .hg2-map-consent,
body .hg2-map-consent p,
body .hg2-map-consent a,
body .naib-contact-actions--mobile a {
	color: #fff !important;
}
body .hg2-card-number .elementor-heading-title {
	color: var(--hg2-ink, #17212b) !important;
}
/* Der globale Hellkarten-Fallback darf Marker auf zertifizierten dunklen
 * Karten nicht wieder dunkel färben. */
body:is(.naib-master-dark, .naib-design-nocturne-glass) .hg2-card-number .elementor-heading-title {
	color: #fff !important;
}
/* Media cards may be light (for example Atelier Editorial) or dark. The
 * decorative glyph follows the active surface contract instead of assuming
 * that every media card has a dark body. */
body .hg2-media-card .hg2-card-number .elementor-heading-title {
	color: var(--hg2-ink, #17212b) !important;
	background: color-mix(in srgb, var(--hg2-accent, #b6ff3b) 16%, transparent);
	border-color: color-mix(in srgb, var(--hg2-accent, #b6ff3b) 44%, transparent);
}
body:is(.naib-master-dark, .naib-design-nocturne-glass) .hg2-media-card .hg2-card-number .elementor-heading-title {
	color: #fff !important;
}
/* Atelier/Light keeps the cinematic copy white because a real image slider
 * sits behind it. Elementor's generated container CSS can otherwise restore
 * the generic white sub-page background. Besides looking wrong while images
 * load, that also makes the deterministic contrast audit see white on white.
 * The rule is intentionally restricted to the light master; Nocturne remains
 * governed by its independent dark design contract. */
body.naib-master-light .e-con.hg2-hero-sub-cinematic {
	background-color: #102a36 !important;
	background-image: none !important;
}
/* On the dark photographic stages of the light master the second CTA must
 * remain recognisably secondary. Corporate accent enforcement may otherwise
 * fill both buttons with the same colour. */
body.naib-master-light :is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic)
	.hg2-button-secondary .elementor-button {
	border: 1.5px solid rgba(255,255,255,.72) !important;
	background: rgba(6,22,28,.18) !important;
	color: #fff !important;
	box-shadow: none !important;
}
body.naib-master-light :is(.hg2-hero-cinematic, .hg2-hero-sub-cinematic)
	.hg2-button-secondary .elementor-button:is(:hover, :focus-visible) {
	background: rgba(255,255,255,.14) !important;
	color: #fff !important;
}
/* The global accent link is darkened for light page surfaces. On the curated
 * dark stages of the light master it needs its own pale, AA-safe ink. */
body.naib-master-light :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) :is(.hg2-lead, .hg2-body, .hg2-card-copy) a:not(.elementor-button):not(.button) {
	color: #f2ce91 !important;
}
/* Auf hellen Standardflächen ist die dunkle Tintenfarbe verlässlich lesbar.
 * Die Akzentwirkung bleibt über Versalien, Gewicht und Dekore erhalten. */
body .hg2-kicker .elementor-heading-title {
	color: var(--hg2-ink, #17212b) !important;
}
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) .hg2-kicker,
body :is(
	.hg2-hero-cinematic,
	.hg2-hero-sub-cinematic,
	.hg2-cta-panel,
	.hg2-results-panel,
	.hg2-bento-lead,
	.hg2-footer-visual
) .hg2-kicker .elementor-heading-title {
	color: color-mix(in srgb, #fff 72%, var(--hg2-accent, #e7c817)) !important;
}

/* -------------------------------------------------------------------------
 * WCAG-2.2-AA-Basisschicht
 * ---------------------------------------------------------------------- */
html { scroll-padding-top: 112px; scroll-padding-bottom: 88px; }
:target { scroll-margin-top: 112px; }

body.naib-accessibility-ready :where(
	a[href], button, input, select, textarea, summary,
	[role="button"], [role="link"], [tabindex]:not([tabindex="-1"])
):focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px #111 !important;
}
body.naib-accessibility-ready #content[role="main"]:focus { outline: none; }
body.naib-accessibility-ready :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	min-height: 44px;
}
body.naib-accessibility-ready :where(input[type="checkbox"], input[type="radio"]) {
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	min-height: 24px !important;
	flex-basis: 24px !important;
}
body.naib-accessibility-ready .custom-logo-link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
}
body.naib-accessibility-ready button.elementor-tab-title {
	width: 100%;
	appearance: none;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: inherit;
}
body.naib-accessibility-ready :where(.entry-content, .naib-legal-page .site-main) a:not(.elementor-button):not(.button) {
	text-decoration-thickness: max(1px, .08em);
	text-underline-offset: .18em;
}
body.naib-accessibility-ready .swiper-pagination-bullet {
	position: relative;
	display: inline-grid;
	width: 28px !important;
	height: 28px !important;
	margin: 0 2px !important;
	place-items: center;
	background: transparent !important;
	opacity: 1 !important;
}
body.naib-accessibility-ready .swiper-pagination-bullet::after {
	width: 8px;
	height: 8px;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: currentColor;
	content: '';
}
body.naib-accessibility-ready .swiper-pagination-bullet-active::after {
	width: 12px;
	height: 12px;
}
.naib-legal-table-wrap { max-width: 100%; overflow-x: auto; }
.naib-legal-table-wrap table { width: 100%; border-collapse: collapse; }
.naib-legal-table-wrap th,
.naib-legal-table-wrap td { padding: 12px; border: 1px solid rgba(255,255,255,.28); text-align: left; vertical-align: top; }
.naib-legal-table-wrap th { font-weight: 750; }

@media (max-width: 921px) {
	html { scroll-padding-top: 96px; scroll-padding-bottom: 88px; }
	:target { scroll-margin-top: 96px; }
}
@media (forced-colors: active) {
	body.naib-accessibility-ready :where(a, button, input, select, textarea, summary) { forced-color-adjust: auto; }
	body.naib-accessibility-ready .swiper-pagination-bullet::after { border: 2px solid ButtonText; background: ButtonText; }
}
@media (prefers-reduced-motion: reduce) {
	html:focus-within { scroll-behavior: auto !important; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Atelier 3 --------------------------------------------------------------
 * Neue, versionierte Premium-Familie für Website Studio. Die Regeln sind
 * absichtlich vollständig auf .naib-a3 begrenzt: bereits veröffentlichte
 * Klarheit-2-Seiten verändern sich durch das Update nicht. */
.e-con.naib-a3 {
	position: relative;
	overflow: clip;
	border-bottom: 1px solid color-mix(in srgb, var(--naib-text, #162a36) 10%, transparent);
}
.e-con.naib-a3 .hg2-kicker .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px !important;
	font-weight: 820 !important;
	letter-spacing: .15em !important;
}
.e-con.naib-a3 .hg2-kicker .elementor-heading-title::before {
	content: '';
	width: 28px;
	height: 2px;
	background: var(--hg2-accent);
}
.e-con.naib-a3 :is(.hg2-display,.hg2-title) .elementor-heading-title {
	letter-spacing: -.055em !important;
	line-height: .98 !important;
}
.e-con.naib-a3 .elementor-button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	border-radius: 999px !important;
	transition: transform .22s ease, box-shadow .22s ease !important;
}
.e-con.naib-a3 .elementor-button:hover { transform: translateY(-2px); }

.e-con.naib-a3-hero {
	min-height: min(860px, 88vh);
	background:
		radial-gradient(circle at 8% 10%, color-mix(in srgb, var(--hg2-accent) 17%, transparent), transparent 32%),
		linear-gradient(135deg, color-mix(in srgb, var(--naib-surface) 72%, var(--naib-background)), var(--naib-background) 70%) !important;
}
.e-con.naib-a3-hero::before {
	content: 'ATELIER / 03';
	position: absolute;
	right: max(24px, calc((100vw - 1200px) / 2));
	bottom: 18px;
	color: color-mix(in srgb, var(--naib-text) 12%, transparent);
	font-size: clamp(52px, 9vw, 132px);
	font-weight: 900;
	line-height: .8;
	letter-spacing: -.08em;
	pointer-events: none;
}
.e-con.naib-a3-hero .hg2-hero-split-media {
	isolation: isolate;
	padding: clamp(10px, 1.4vw, 18px);
	border: 1px solid color-mix(in srgb, var(--naib-text) 15%, transparent);
	border-radius: calc(var(--naib-radius-image, 20px) + 18px);
	background: color-mix(in srgb, var(--naib-surface) 84%, transparent);
	box-shadow: 0 42px 90px color-mix(in srgb, #000 24%, transparent);
}
.e-con.naib-a3-hero .hg2-hero-split-media::before {
	content: '01  /  KEY VISUAL';
	position: absolute;
	z-index: 4;
	left: 30px;
	top: 27px;
	padding: 8px 12px;
	border: 1px solid rgba(255,255,255,.24);
	border-radius: 999px;
	background: rgba(7,17,27,.56);
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	backdrop-filter: blur(10px);
}
.e-con.naib-a3-hero .hg2-hero-split-media img { filter: saturate(.88) contrast(1.04); }
.e-con.naib-a3-hero .hg2-hero-proof {
	padding-top: 18px;
	border-top: 1px solid color-mix(in srgb, var(--naib-text) 12%, transparent);
}

.e-con.naib-a3-intro .hg2-hero-sub-overlay { min-height: clamp(480px, 68vh, 720px); }
.e-con.naib-a3-intro .hg2-display .elementor-heading-title { max-width: 13ch; }

.e-con.naib-a3-services .hg2-grid-4,
.e-con.naib-a3-services .hg2-grid-4 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	gap: 18px !important;
}
.e-con.naib-a3-services .hg2-card {
	grid-column: span 5;
	min-height: 330px;
	justify-content: space-between;
	padding: clamp(24px, 3vw, 42px);
	overflow: hidden;
	border-radius: calc(var(--naib-radius-card, 20px) + 8px);
	background: linear-gradient(145deg, color-mix(in srgb, var(--naib-surface) 96%, var(--naib-background)), var(--naib-surface));
	box-shadow: 0 24px 68px color-mix(in srgb, #000 9%, transparent);
	transition: transform .25s ease, border-color .25s ease;
}
.e-con.naib-a3-services .hg2-card:nth-child(4n+1),
.e-con.naib-a3-services .hg2-card:nth-child(4n+4) { grid-column: span 7; }
.e-con.naib-a3-services .hg2-card:hover { transform: translateY(-6px); border-color: var(--hg2-accent); }
.e-con.naib-a3-services .hg2-card::after {
	content: '↗';
	position: absolute;
	right: 24px;
	top: 24px;
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent);
	border-radius: 50%;
	color: var(--hg2-accent);
	font-size: 18px;
	transition: transform .25s ease, background .25s ease;
}
.e-con.naib-a3-services .hg2-card:hover::after { transform: rotate(45deg); background: var(--hg2-accent); color: var(--naib-accent-contrast, #101828); }
.e-con.naib-a3-services .hg2-card-number .elementor-heading-title { background: transparent; color: var(--hg2-accent); }
.e-con.naib-a3-services .hg2-card-title .elementor-heading-title { max-width: 14ch; font-size: clamp(26px, 2.4vw, 38px) !important; }

.e-con.naib-a3-benefits .hg2-card,
.e-con.naib-a3-proof .hg2-card {
	min-height: 255px;
	border-top: 2px solid var(--hg2-accent);
	border-radius: 0 0 var(--naib-radius-card, 20px) var(--naib-radius-card, 20px);
	box-shadow: none;
}
.e-con.naib-a3-process .hg2-process-grid { position: relative; }
.e-con.naib-a3-process .hg2-process-grid::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 30px;
	height: 1px;
	background: color-mix(in srgb, var(--naib-text) 16%, transparent);
}
.e-con.naib-a3-process .hg2-card { min-height: 285px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.e-con.naib-a3-process .hg2-card-number .elementor-heading-title { color: var(--hg2-accent); background: var(--naib-background); }

.e-con.naib-a3-content .hg2-glass-stage {
	min-height: 620px;
	padding: clamp(18px, 3vw, 42px);
	border: 1px solid color-mix(in srgb, var(--naib-text) 12%, transparent);
	border-radius: calc(var(--naib-radius-card, 20px) + 16px);
	background: linear-gradient(135deg, color-mix(in srgb, var(--naib-surface) 84%, transparent), color-mix(in srgb, var(--naib-background) 74%, transparent));
}
.e-con.naib-a3-content .hg2-glass-panel { margin-left: clamp(-110px, -7vw, -54px); backdrop-filter: blur(22px); }
.e-con.naib-a3-faq .elementor-accordion-item { border-width: 0 0 1px !important; border-color: color-mix(in srgb, var(--naib-text) 16%, transparent) !important; background: transparent !important; }
.e-con.naib-a3-faq .elementor-tab-title { padding: 24px 0 !important; font-size: clamp(18px, 2vw, 23px) !important; }
.e-con.naib-a3-faq .elementor-tab-content { padding: 0 0 26px !important; border: 0 !important; }

.e-con.naib-a3-cta { padding-block: clamp(42px, 7vw, 96px); }
.e-con.naib-a3-cta .hg2-cta-panel {
	overflow: hidden;
	border-radius: calc(var(--naib-radius-card, 20px) + 18px);
	box-shadow: 0 38px 90px color-mix(in srgb, var(--hg2-brand) 24%, transparent);
}
.e-con.naib-a3-cta .hg2-cta-panel::after {
	content: '↗';
	position: absolute;
	right: -.04em;
	bottom: -.36em;
	color: rgba(255,255,255,.08);
	font-size: clamp(180px, 28vw, 420px);
	font-weight: 200;
	line-height: 1;
	pointer-events: none;
}
.e-con.naib-a3-contact .hg2-contact-method { border-color: color-mix(in srgb, var(--naib-text) 14%, transparent); background: var(--naib-surface); }
.e-con.naib-a3-contact .hg2-form-card { border-radius: calc(var(--naib-radius-card, 20px) + 8px); box-shadow: 0 28px 75px color-mix(in srgb, #000 12%, transparent); }

@media (max-width: 921px) {
	.e-con.naib-a3-hero { min-height: auto; }
	.e-con.naib-a3-services .hg2-grid-4,
	.e-con.naib-a3-services .hg2-grid-4 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.e-con.naib-a3-services .hg2-card:nth-child(n) { grid-column: span 1; }
	.e-con.naib-a3-content .hg2-glass-panel { margin-left: 0; }
}
@media (max-width: 767px) {
	.e-con.naib-a3 :is(.hg2-display,.hg2-title) .elementor-heading-title { letter-spacing: -.045em !important; }
	.e-con.naib-a3-services .hg2-grid-4,
	.e-con.naib-a3-services .hg2-grid-4 > .e-con-inner { grid-template-columns: 1fr !important; }
	.e-con.naib-a3-services .hg2-card { min-height: 250px; }
	.e-con.naib-a3-process .hg2-process-grid::before { display: none; }
	.e-con.naib-a3-process .hg2-card { min-height: auto; }
	.e-con.naib-a3-content .hg2-glass-stage { min-height: 0; padding: 12px; }
}

/* Lokal gebündelte variable Schriften: gleiche Gestaltung ohne Übertragung
 * der Besucher-IP an Google Fonts. Dateien unterliegen der SIL Open Font
 * License der jeweiligen Schriftfamilie. */

/* V2-Kompositionsvertrag: Trust und Prozess dürfen nicht wie weitere
 * Leistungskarten aussehen. Die Inhalte bleiben native Elementor-Container,
 * erhalten aber eine eigenständige Band- bzw. Timeline-Dramaturgie. */

/* Der generische Leistungsbaustein ist bewusst kein gleichförmiges 4er-Raster
 * mehr. Ältere Entwürfe erhalten ohne Inhaltsverlust eine Bento-Dramaturgie;
 * neue V2-Pläne können daneben weiterhin die eigenständigen Media-,
 * Editorial- und Spotlight-Komponenten wählen. */
.e-con.hg2-services {
	background:
		radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--hg2-accent) 8%, transparent), transparent 28rem),
		color-mix(in srgb, var(--naib-surface) 34%, var(--naib-background)) !important;
}
.e-con.hg2-services .e-con.hg2-grid-4,
.e-con.hg2-services .e-con.hg2-grid-4 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0,1fr)) !important;
	gap: clamp(16px,2vw,26px) !important;
}
.e-con.hg2-services .hg2-card {
	grid-column: span 7;
	min-height: clamp(230px,24vw,350px) !important;
	justify-content: flex-end;
}
.e-con.hg2-services .hg2-card:nth-child(4n + 2),
.e-con.hg2-services .hg2-card:nth-child(4n + 3) { grid-column: span 5; }
.e-con.hg2-services .hg2-card:nth-child(4n) { grid-column: span 7; }
.e-con.hg2-services .hg2-card:nth-child(even) {
	background: color-mix(in srgb, var(--naib-surface) 82%, var(--naib-background)) !important;
}

/* Ein Glas-Header besteht aus genau einer zusammenhängenden Ebene. Astra darf
 * für Logo, Menü und CTA keine separaten Farbinseln darüber legen. */
body:is(.naib-master-light,.naib-master-dark) .site-header { background: transparent !important; }
body:is(.naib-master-light,.naib-master-dark) .site-header .site-primary-header-wrap {
	border-bottom: 1px solid color-mix(in srgb, var(--naib-header-text) 14%, transparent);
	background: color-mix(in srgb, var(--naib-header-bg) 78%, transparent) !important;
	-webkit-backdrop-filter: blur(18px) saturate(145%);
	backdrop-filter: blur(18px) saturate(145%);
}
body:is(.naib-master-light,.naib-master-dark) .site-header :is(.ast-builder-grid-row,.site-header-primary-section-left,.site-header-primary-section-center,.site-header-primary-section-right) {
	background: transparent !important;
}

.e-con.hg2-trust .e-con.hg2-grid-4,
.e-con.hg2-trust .e-con.hg2-grid-4 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0,1fr)) !important;
	gap: 0 !important;
	border-block: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent);
}
.e-con.hg2-trust .hg2-card {
	min-height: 0 !important;
	padding: 28px 24px !important;
	border: 0 !important;
	border-left: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}
.e-con.hg2-trust .hg2-card:first-child { border-left: 0 !important; }
.e-con.hg2-trust .hg2-card-number .elementor-heading-title {
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 15px !important;
}
.e-con.hg2-process .e-con.hg2-process-grid,
.e-con.hg2-process .e-con.hg2-process-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0,1fr) !important;
	gap: 0 !important;
	border-top: 1px solid color-mix(in srgb, var(--naib-text) 17%, transparent);
}
.e-con.hg2-process .hg2-card {
	min-height: 0 !important;
	padding: 30px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid color-mix(in srgb, var(--naib-text) 17%, transparent) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}
.e-con.hg2-process .hg2-card > .e-con-inner {
	display: grid !important;
	grid-template-columns: 74px minmax(190px,.55fr) minmax(260px,1fr) !important;
	gap: clamp(18px,4vw,58px) !important;
	align-items: start !important;
}
.e-con.hg2-process .hg2-card::after { display: none !important; }
.e-con.hg2-process .hg2-card-number .elementor-heading-title {
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--hg2-accent) !important;
	font: 700 clamp(28px,4vw,54px)/1 var(--hg2-display, inherit) !important;
}
@media (max-width: 767px) {
	.e-con.hg2-services {
		background: color-mix(in srgb, var(--naib-surface) 26%, var(--naib-background)) !important;
	}
	.e-con.hg2-services .e-con.hg2-grid-4,
	.e-con.hg2-services .e-con.hg2-grid-4 > .e-con-inner { grid-template-columns: minmax(0,1fr) !important; }
	.e-con.hg2-services .hg2-card,
	.e-con.hg2-services .hg2-card:nth-child(n) {
		grid-column: 1 !important;
		min-height: 0 !important;
		padding: 26px 22px !important;
	}
	.e-con.hg2-trust .e-con.hg2-grid-4,
	.e-con.hg2-trust .e-con.hg2-grid-4 > .e-con-inner { grid-template-columns: minmax(0,1fr) !important; }
	.e-con.hg2-trust .hg2-card,
	.e-con.hg2-trust .hg2-card:first-child { border-left: 0 !important; border-top: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent) !important; }
	.e-con.hg2-trust .hg2-card:first-child { border-top: 0 !important; }
	.e-con.hg2-process .hg2-card > .e-con-inner { grid-template-columns: 54px minmax(0,1fr) !important; gap: 12px 16px !important; }
	.e-con.hg2-process .hg2-card-copy { grid-column: 2; }
}

@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/cormorant-garamond-latin-variable.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Work Sans';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/work-sans-latin-variable.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/inter-latin-ext-variable.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/inter-latin-variable.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('fonts/manrope-latin-ext-variable.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('fonts/manrope-latin-variable.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Die allgemeine Cinematic-Kontrastschranke hält Hero-Text weiß. Eine bewusst
 * helle Lead-Form-Karte ist jedoch eine eigenständige Oberfläche und braucht
 * ihre dunkle Schrift am Dateiende als eng begrenzte Ausnahme. */
body .hg2-hero-cinematic .hg2-hero-lead-card .hg2-card-title .elementor-heading-title {
	color: #162a36 !important;
}
body .hg2-hero-cinematic .hg2-hero-lead-card :is(.hg2-card-copy, .hg2-card-copy p) {
	color: #5c6b73 !important;
}

/* V2 ist auf jeder Projektseite eine einzige visuelle Kaskade. Astra erzeugt
 * in manchen Header-Konfigurationen eine aeussere Primary-Bar und darin eine
 * zweite Wrap-Bar. Nur die innere Wrap-Bar traegt das Glas; alle weiteren
 * Ebenen bleiben transparent. Damit gibt es keine helle/dunkle Farbinsel
 * zwischen Logo, Navigation und Kontaktaktion. */
body.naib-scoped-reference .site-header .ast-primary-header-bar:not(.site-primary-header-wrap),
body.naib-scoped-reference .site-header .main-header-bar:not(.site-primary-header-wrap),
body.naib-scoped-reference .site-header .ast-builder-grid-row-container:not(.site-primary-header-wrap) {
	background: transparent !important;
	box-shadow: none !important;
}
body.naib-scoped-reference .site-header .site-primary-header-wrap {
	border-bottom: 1px solid color-mix(in srgb, var(--naib-header-text, #fff) 14%, transparent) !important;
	background: color-mix(in srgb, var(--naib-header-bg, #07131d) 82%, transparent) !important;
	-webkit-backdrop-filter: blur(18px) saturate(145%);
	backdrop-filter: blur(18px) saturate(145%);
}
body.naib-scoped-reference .site-header :is(.ast-builder-grid-row,.site-header-primary-section-left,.site-header-primary-section-center,.site-header-primary-section-right) {
	background: transparent !important;
}

/* Ein Projekt besitzt genau eine Schmuckfarbe. Alle primaeren Aktionen – Hero,
 * Formular, CTA und Astra-Header – nutzen deshalb den gescopten Projektakzent
 * statt historischer Komponentenfarben. Sekundaeraktionen bleiben Outline. */
body.naib-scoped-reference :is(.hg2-button-primary,.hg2-button-light) .elementor-button,
body.naib-scoped-reference .hg2-form .elementor-button,
body.naib-scoped-reference .ast-header-button-1 .ast-custom-button {
	border-color: var(--naib-accent, var(--hg2-accent)) !important;
	background: var(--naib-accent, var(--hg2-accent)) !important;
	background-color: var(--naib-accent, var(--hg2-accent)) !important;
	color: var(--naib-accent-contrast, #162a36) !important;
}

/* Dunkle Seiten erhalten wahrnehmbare Ebenen statt einer durchgehend fast
 * schwarzen Flaeche. Die Kontrastpruefung bleibt tokenbasiert, die Abstaende
 * und Komponentenlogik aendern sich dadurch nicht. */
body.naib-scoped-reference.naib-master-dark .e-con.hg2-services {
	background-color: color-mix(in srgb, var(--naib-surface) 72%, var(--naib-background)) !important;
}
body.naib-scoped-reference.naib-master-dark .e-con.hg2-trust {
	background: color-mix(in srgb, var(--naib-surface) 88%, #1a3445) !important;
}
body.naib-scoped-reference.naib-master-dark .e-con.hg2-process {
	background: color-mix(in srgb, var(--naib-background) 74%, var(--naib-surface)) !important;
}

/* Die dunkle Stilrichtung bleibt hochwertig und kontrastreich, darf aber nicht
 * zu einer fast schwarzen Einheitsflaeche werden. Die Projektfarben bleiben
 * Ausgangspunkt; ein kleiner Blauanteil trennt Hintergrund und Oberflaechen. */
body.naib-scoped-reference.naib-master-dark {
	--naib-background: color-mix(in srgb, var(--naib-master-background, #091018) 80%, #183243) !important;
	--naib-surface: color-mix(in srgb, var(--naib-master-surface, #121c26) 78%, #28485a) !important;
	--naib-muted: color-mix(in srgb, var(--naib-master-muted, #c7cdd4) 90%, #ffffff) !important;
}

/* Astra kann fuer den mobilen Markennamen die helle Desktop-Farbe nicht
 * uebernehmen. Im V2-Glasheader muss Logo/Seitentitel deshalb explizit den
 * Header-Kontrasttoken verwenden. */
body.naib-scoped-reference .site-header :is(.site-title, .site-title a, .site-description),
body.naib-scoped-reference #ast-mobile-header :is(.site-title, .site-title a, .site-description),
body.naib-scoped-reference .site-header .ast-mobile-menu-trigger-minimal {
	color: var(--naib-header-text, #ffffff) !important;
}
body.naib-scoped-reference .site-header .main-header-menu > .menu-item > .menu-link {
	color: var(--naib-header-text, #ffffff) !important;
}
body.naib-scoped-reference .site-header .main-header-menu > .menu-item.current-menu-item > .menu-link,
body.naib-scoped-reference .site-header .main-header-menu > .menu-item.current-menu-ancestor > .menu-link {
	color: var(--naib-accent, var(--hg2-accent)) !important;
}

/* 1.21.24 · visuelle Freigabeschranke
 * Diese Regeln reparieren nicht einen einzelnen Entwurf, sondern definieren
 * verbindliche Mindeststandards fuer alle V2-Projektseiten. */
body.naib-scoped-reference .site-header {
	background: color-mix(in srgb, var(--naib-header-bg, #07131d) 58%, transparent) !important;
	background-image: linear-gradient(110deg, rgba(255,255,255,.08), rgba(255,255,255,.025)) !important;
	border: 0 !important;
	border-bottom: 1px solid color-mix(in srgb, var(--naib-header-text, #fff) 18%, transparent) !important;
	box-shadow: 0 14px 42px rgba(0,0,0,.16) !important;
	-webkit-backdrop-filter: blur(24px) saturate(165%) !important;
	backdrop-filter: blur(24px) saturate(165%) !important;
}
body.naib-scoped-reference .site-header .ast-primary-header-bar,
body.naib-scoped-reference .site-header .main-header-bar,
body.naib-scoped-reference .site-header .ast-builder-grid-row-container,
body.naib-scoped-reference .site-header .site-primary-header-wrap,
body.naib-scoped-reference .site-header .ast-builder-grid-row,
body.naib-scoped-reference .site-header :is(.site-header-primary-section-left,.site-header-primary-section-center,.site-header-primary-section-right) {
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}
body.naib-scoped-reference.naib-header-scrolled .site-header {
	background: color-mix(in srgb, var(--naib-header-bg, #07131d) 82%, transparent) !important;
}

/* Kennzahlen bekommen im breiten Vierer-Raster eine bewusste Innenkante.
 * 24 px wirkten bei großen Karten zufällig an den Rand geklebt. */
@media (min-width: 768px) {
	body.naib-scoped-reference .hg2-shell.hg2-grid-4 > .e-con-inner > .hg2-card-feature {
		padding-inline: clamp(36px, 3vw, 46px) !important;
	}
}

/* Projektgesteuerter Metall-Lichtzug. Die Klasse wird nur gesetzt, wenn die
 * Option im Website-Studio aktiviert wurde. */
body.naib-scoped-reference .naib-fx-metallic-button .elementor-button {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
body.naib-scoped-reference .naib-fx-metallic-button .elementor-button::before {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;
	inset: 0 auto 0 -72%;
	width: 46%;
	border-radius: inherit;
	background: linear-gradient(112deg, transparent 0%, rgba(255,255,255,.08) 26%, rgba(255,255,255,.52) 49%, rgba(255,255,255,.12) 72%, transparent 100%);
	transform: skewX(-22deg);
	transition: left .62s cubic-bezier(.22,.72,.18,1);
}
body.naib-scoped-reference .naib-fx-metallic-button .elementor-button-content-wrapper {
	position: relative;
	z-index: 1;
}
body.naib-scoped-reference .naib-fx-metallic-button .elementor-button:is(:hover,:focus-visible)::before { left: 132%; }

/* Keine dekorativen Riesenpfeile oder uneindeutigen Zeichen. */
body.naib-scoped-reference .e-con.naib-a3-services .hg2-card::after,
body.naib-scoped-reference .e-con.naib-a3-cta .hg2-cta-panel::after { display: none !important; content: none !important; }

/* CTA folgt demselben Button-System wie der restliche Entwurf. Der Kicker
 * darf hier ohne die sonst optionale Akzentlinie stehen, damit im großen
 * Bildpanel kein zufälliger gelber Strich übrig bleibt. */
body.naib-scoped-reference .e-con.naib-a3-cta .hg2-kicker .elementor-heading-title::before {
	display: none !important;
	content: none !important;
}
body.naib-scoped-reference .e-con.naib-a3 .elementor-button,
body.naib-scoped-reference .e-con.naib-a3-cta .elementor-button {
	border-radius: var(--naib-radius-button, 14px) !important;
}

body.naib-scoped-reference .e-con.hg2-services .hg2-card,
body.naib-scoped-reference .e-con.hg2-benefits .hg2-card {
	display: flex !important;
	height: 100% !important;
	min-height: 280px !important;
}
body.naib-scoped-reference .e-con.hg2-services .hg2-card > .e-con-inner,
body.naib-scoped-reference .e-con.hg2-benefits .hg2-card > .e-con-inner {
	display: flex !important;
	height: 100%;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}
body.naib-scoped-reference .e-con.hg2-services .hg2-card-copy,
body.naib-scoped-reference .e-con.hg2-benefits .hg2-card-copy { margin-top: auto; }
body.naib-scoped-reference .e-con.hg2-services .hg2-card-number .elementor-heading-title,
body.naib-scoped-reference .e-con.hg2-benefits .hg2-card-number .elementor-heading-title {
	display: grid !important;
	width: 52px !important;
	height: 52px !important;
	min-width: 52px !important;
	min-height: 52px !important;
	place-items: center;
	padding: 0 !important;
	border: 1px solid color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 48%, transparent) !important;
	border-radius: 16px !important;
	background: color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 13%, var(--naib-surface)) !important;
	color: var(--naib-accent, var(--hg2-accent)) !important;
	font-size: 0 !important;
	box-shadow: none !important;
}
body.naib-scoped-reference .naib-semantic-card-icon {
	display: block;
	width: 25px;
	height: 25px;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	fill: none;
}
body.naib-scoped-reference .hg2-hero-proof p[data-naib-proof-ready="1"] {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 22px;
	margin: 0;
}
body.naib-scoped-reference .hg2-hero-proof .naib-proof-item {
	display: inline-flex;
	align-items: flex-start;
	gap: 7px;
	white-space: normal;
}
body.naib-scoped-reference .hg2-hero-proof .naib-proof-item > :first-child { color: var(--naib-accent, var(--hg2-accent)); font-weight: 900; }

/* Vertrauensband zeigt Aussagen, keine erfundenen Icons oder Mini-Haken. */
body.naib-scoped-reference .e-con.hg2-trust .e-con.hg2-grid-4,
body.naib-scoped-reference .e-con.hg2-trust .e-con.hg2-grid-4 > .e-con-inner {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
}
body.naib-scoped-reference .e-con.hg2-trust .hg2-card-number { display: none !important; }
body.naib-scoped-reference .e-con.hg2-trust .hg2-card-title .elementor-heading-title {
	font-size: clamp(25px, 2.1vw, 34px) !important;
	line-height: 1.08 !important;
}
body.naib-scoped-reference .e-con.hg2-trust .hg2-card > .e-con-inner { gap: 13px !important; }

/* Prozessnummern sind echte Orientierungspunkte statt zufaelliger Minizeichen. */
body.naib-scoped-reference .e-con.hg2-process .hg2-card-number .elementor-heading-title {
	display: grid !important;
	width: 58px !important;
	height: 58px !important;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 55%, transparent) !important;
	border-radius: 50% !important;
	background: color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 10%, transparent) !important;
	/* Kleine Prozessnummern brauchen auf dunklen Flaechen denselben
	 * AA-Kontrast wie normaler Text. Der Akzent bleibt an Rahmen/Flaeche. */
	color: var(--naib-text, #f4f0e8) !important;
	font-size: 16px !important;
	font-weight: 800 !important;
}

/* Glas-Content: dieselbe Kante, dieselbe Breite, keine schwebende Schattenbox. */
body.naib-scoped-reference .e-con.hg2-content-glass .hg2-glass-stage {
	grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr) !important;
	gap: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
	border-radius: calc(var(--naib-radius-card, 20px) + 12px) !important;
	box-shadow: 0 24px 70px rgba(0,0,0,.14) !important;
}
body.naib-scoped-reference .e-con.hg2-content-glass .hg2-glass-panel {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: clamp(30px,5vw,72px) !important;
	border: 0 !important;
	border-left: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
body.naib-scoped-reference .e-con.hg2-content-glass .hg2-media-frame,
body.naib-scoped-reference .e-con.hg2-content-glass .hg2-media-frame > .e-con-inner,
body.naib-scoped-reference .e-con.hg2-content-glass .elementor-widget-image,
body.naib-scoped-reference .e-con.hg2-content-glass .elementor-widget-container { height: 100% !important; min-height: 460px; }
body.naib-scoped-reference .e-con.hg2-content-glass img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 460px;
	object-fit: cover;
}

/* Inhaltliche Bild/Text-Komponenten sind Conversion-Bloecke. Ein vorhandener
 * CTA bleibt sichtbar und sitzt immer unter dem Text; dadurch enden diese
 * Komponenten nie als dekorative Sackgasse. */
body.naib-scoped-reference .e-con.hg2-content :is(.hg2-knowledge-copy,.hg2-glass-panel) > .e-con-inner {
	display: flex !important;
	height: 100%;
	flex-direction: column;
	align-items: flex-start;
}
body.naib-scoped-reference .e-con.hg2-content :is(.hg2-knowledge-copy,.hg2-glass-panel) .hg2-button {
	margin-top: auto !important;
	padding-top: 18px;
}

/* Kontakt bleibt im Projektfarbsystem; Formularaktionen sind zentriert. */
body.naib-scoped-reference .hg2-contact-method-icon {
	background: color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 14%, var(--naib-surface)) !important;
	color: var(--naib-accent, var(--hg2-accent)) !important;
	border: 1px solid color-mix(in srgb, var(--naib-accent, var(--hg2-accent)) 48%, transparent) !important;
	box-shadow: none !important;
}
body.naib-scoped-reference .hg2-form .e-form__buttons,
body.naib-scoped-reference .hg2-form .elementor-field-type-submit { justify-content: center !important; text-align: center !important; }
body.naib-scoped-reference .hg2-form .elementor-button { margin-inline: auto !important; }

/* Accordion bleibt ein sauberes Text-UI; der als Button aufgewertete Titel
 * erbt keine grauen Browser-Defaults. */
body.naib-scoped-reference .hg2-accordion .elementor-tab-title,
body.naib-scoped-reference .hg2-accordion button.elementor-tab-title,
body.naib-scoped-reference .hg2-accordion .elementor-tab-title.elementor-active {
	display: flex !important;
	width: 100% !important;
	align-items: center;
	appearance: none !important;
	-webkit-appearance: none !important;
	padding: 22px 4px !important;
	border: 0 !important;
	border-bottom: 1px solid color-mix(in srgb, var(--naib-text) 18%, transparent) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--naib-text) !important;
	font: inherit;
	text-align: left !important;
}
body.naib-scoped-reference .hg2-accordion .elementor-accordion-icon { color: var(--naib-accent, var(--hg2-accent)) !important; }

/* Footer-Branding bleibt in seiner Spalte und kann nichts ueberdecken. */
body.naib-scoped-reference .hg2-footer-logo { max-width: 190px !important; overflow: hidden; }
body.naib-scoped-reference .hg2-footer-logo img { width: auto !important; max-width: 190px !important; max-height: 64px !important; }
body.naib-scoped-reference .hg2-footer-grid-visual > .e-con-inner,
body.naib-scoped-reference .hg2-footer-grid > .e-con-inner { align-items: start !important; }
body.naib-scoped-reference .hg2-footer-grid-visual > .e-con-inner > *,
body.naib-scoped-reference .hg2-footer-grid > .e-con-inner > * { min-width: 0 !important; max-width: 100% !important; overflow: hidden; }
body.naib-scoped-reference .hg2-footer-grid-visual > .e-con-inner > :first-child .hg2-card-title .elementor-heading-title,
body.naib-scoped-reference .hg2-footer-grid > .e-con-inner > :first-child .hg2-card-title .elementor-heading-title {
	font-size: clamp(24px,2.4vw,36px) !important;
	overflow-wrap: anywhere !important;
}
body.naib-scoped-reference .hg2-footer-wordmark,
body.naib-scoped-reference .hg2-footer-wordmark .elementor-widget-container,
body.naib-scoped-reference .hg2-footer-wordmark .elementor-heading-title {
	max-width: 100% !important;
	min-width: 0 !important;
	font-size: clamp(26px, 2.25vw, 34px) !important;
	line-height: 1.05 !important;
	letter-spacing: -.035em !important;
	white-space: normal !important;
	overflow-wrap: anywhere !important;
}

@media (max-width: 921px) {
	body.naib-scoped-reference #ast-mobile-header .site-primary-header-wrap { min-height: 76px; }
	body.naib-scoped-reference #ast-mobile-header .ast-mobile-menu-trigger-minimal {
		color: var(--naib-header-text, #fff) !important;
		background: transparent !important;
		border: 1px solid color-mix(in srgb, var(--naib-header-text, #fff) 22%, transparent) !important;
		border-radius: 14px !important;
	}
	body.naib-scoped-reference #ast-mobile-header .ast-mobile-header-content {
		position: fixed !important;
		z-index: 99998 !important;
		inset: 76px 0 0 !important;
		height: calc(100dvh - 76px) !important;
		max-height: none !important;
		overflow-y: auto !important;
		padding: 20px 22px 34px !important;
		background: color-mix(in srgb, var(--naib-header-bg, #07131d) 96%, transparent) !important;
		-webkit-backdrop-filter: blur(24px) saturate(150%);
		backdrop-filter: blur(24px) saturate(150%);
	}
	body.naib-scoped-reference #ast-mobile-header .main-navigation,
	body.naib-scoped-reference #ast-mobile-header .main-header-menu { width: 100% !important; }
	body.naib-scoped-reference #ast-mobile-header .main-header-menu > .menu-item { border-bottom: 1px solid color-mix(in srgb, var(--naib-header-text, #fff) 12%, transparent) !important; }
	body.naib-scoped-reference #ast-mobile-header .main-header-menu .menu-link {
		display: flex !important;
		min-height: 52px !important;
		align-items: center !important;
		padding: 12px 8px !important;
		color: var(--naib-header-text, #fff) !important;
		font-size: 18px !important;
		line-height: 1.25 !important;
	}
	body.naib-scoped-reference #ast-mobile-header .sub-menu { padding: 0 0 10px 16px !important; background: transparent !important; }
	body.naib-scoped-reference #ast-mobile-header .sub-menu .menu-link { min-height: 46px !important; font-size: 16px !important; opacity: .82; }
}

@media (max-width: 767px) {
	/* Editoriale Bild/Text-Splits werden auf Telefonen bewusst seriell. Die
	 * Elementor-Container bringen teils noch eine responsive Zweispaltenregel
	 * mit; ohne diesen spezifischen Contract wurden Text und Bild auf 390 px
	 * nebeneinander gequetscht, obwohl der DOM formal nicht ueberlief. */
	body.naib-scoped-reference .e-con.hg2-content .e-con.hg2-grid-2,
	body.naib-scoped-reference .e-con.hg2-content .e-con.hg2-grid-2 > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 30px !important;
		width: 100% !important;
	}
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-copy,
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media {
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
	}
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media,
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media > .e-con-inner,
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media .elementor-widget-image,
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media .elementor-widget-container {
		display: block !important;
		width: 100% !important;
	}
	body.naib-scoped-reference .e-con.hg2-content .hg2-knowledge-media img {
		display: block;
		width: 100% !important;
		height: clamp(250px, 78vw, 360px) !important;
		min-height: 250px !important;
		object-fit: cover;
	}
	body.naib-scoped-reference .e-con.hg2-content .hg2-button,
	body.naib-scoped-reference .e-con.hg2-content .hg2-button .elementor-button {
		width: 100% !important;
	}

	body.naib-scoped-reference .hg2-hero-proof p,
	body.naib-scoped-reference .hg2-hero-proof p[data-naib-proof-ready="1"] {
		display: grid !important;
		grid-template-columns: minmax(0,1fr) !important;
		justify-items: start !important;
		gap: 8px !important;
		text-align: left !important;
	}
	body.naib-scoped-reference .hg2-hero-proof .naib-proof-item {
		width: 100%;
		align-items: center;
		white-space: nowrap;
	}
	body.naib-scoped-reference .e-con.hg2-services .hg2-card,
	body.naib-scoped-reference .e-con.hg2-benefits .hg2-card { min-height: 0 !important; }
	body.naib-scoped-reference .e-con.hg2-services .hg2-card > .e-con-inner,
	body.naib-scoped-reference .e-con.hg2-benefits .hg2-card > .e-con-inner { gap: 13px; }
	body.naib-scoped-reference .e-con.hg2-services .hg2-card-copy,
	body.naib-scoped-reference .e-con.hg2-benefits .hg2-card-copy { margin-top: 0; }
	body.naib-scoped-reference .e-con.hg2-trust .hg2-card { padding: 24px 0 !important; }
	body.naib-scoped-reference .e-con.hg2-trust .e-con.hg2-grid-4,
	body.naib-scoped-reference .e-con.hg2-trust .e-con.hg2-grid-4 > .e-con-inner { gap: 0 !important; }
	body.naib-scoped-reference .e-con.hg2-process .hg2-card { padding: 24px 0 !important; }
	body.naib-scoped-reference .e-con.hg2-process .hg2-card > .e-con-inner { grid-template-columns: 48px minmax(0,1fr) !important; }
	body.naib-scoped-reference .e-con.hg2-process .hg2-card-number .elementor-heading-title { width: 44px !important; height: 44px !important; font-size: 13px !important; }
	body.naib-scoped-reference .e-con.hg2-content-glass .hg2-glass-stage { display: grid !important; grid-template-columns: minmax(0,1fr) !important; padding: 0 !important; }
	body.naib-scoped-reference .e-con.hg2-content-glass .hg2-glass-panel { border-left: 0 !important; border-top: 1px solid color-mix(in srgb, var(--naib-text) 16%, transparent) !important; padding: 30px 24px !important; }
	body.naib-scoped-reference .e-con.hg2-content-glass .hg2-media-frame,
	body.naib-scoped-reference .e-con.hg2-content-glass .hg2-media-frame > .e-con-inner,
	body.naib-scoped-reference .e-con.hg2-content-glass .elementor-widget-image,
	body.naib-scoped-reference .e-con.hg2-content-glass .elementor-widget-container,
	body.naib-scoped-reference .e-con.hg2-content-glass img { min-height: 300px !important; height: 300px !important; }
	body.naib-scoped-reference .hg2-footer-grid-visual > .e-con-inner,
	body.naib-scoped-reference .hg2-footer-grid > .e-con-inner { grid-template-columns: minmax(0,1fr) !important; gap: 28px !important; }
}

@media (max-width: 767px) {
	body.naib-scoped-reference .site-header .site-title a {
		opacity: 1 !important;
		text-shadow: 0 1px 18px rgba(0,0,0,.24);
	}
	body.naib-scoped-reference .hg2-display .elementor-heading-title,
	body.naib-scoped-reference .hg2-title .elementor-heading-title,
	body.naib-scoped-reference .hg2-card-title .elementor-heading-title {
		-webkit-hyphens: none !important;
		hyphens: none !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
		text-wrap: balance;
	}
}

/* 1.21.31 — verbindliche V2-Komponentenregeln.
 * Diese Regeln sind bewusst die letzte Kaskadenschicht: neue Projekte und
 * bestehende Entwürfe erhalten dadurch dieselbe ruhige Navigation, dieselben
 * Innenabstände und dieselbe mobile Hero-Aufbereitung. */

/* Standortanzeige ohne gelben Punkt oder versetzten Akzentbalken. */
body.naib-scoped-reference :is(#ast-desktop-header,#ast-mobile-header,#ast-mobile-site-navigation,.ast-mobile-header-content,.ast-mobile-popup-content)
	.main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	)::before,
body.naib-scoped-reference :is(#ast-mobile-site-navigation,.ast-mobile-header-content,.ast-mobile-popup-content) .main-header-menu li:is(
	.current-menu-item,
	.current_page_item,
	.current-menu-parent,
	.current_page_parent,
	.current-menu-ancestor,
	.current_page_ancestor
) > .menu-link::before {
	display: none !important;
	content: none !important;
}

@media (min-width: 922px) {
	body.naib-scoped-reference #ast-desktop-header .main-header-menu > li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link {
		padding-inline: 14px !important;
		border-radius: 10px !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		box-shadow: inset 0 -1px color-mix(in srgb, var(--naib-header-text, #fff) 54%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
	}
	body.naib-scoped-reference #ast-desktop-header .main-header-menu .sub-menu li:is(.current-menu-item,.current_page_item) > .menu-link {
		padding-left: 16px !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
	}
}

/* Kicker bleiben typografische Orientierung; die dekorative gelbe Linie ist
 * kein Pflichtbestandteil und wird im stabilen Grunddesign nicht erzeugt. */
body.naib-scoped-reference .hg2-kicker .elementor-heading-title::before {
	display: none !important;
	content: none !important;
}
body.naib-scoped-reference .hg2-kicker .elementor-heading-title { gap: 0 !important; }

/* Beide historisch verwendeten Proof-Klassen gehören zur selben Komponente. */
body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) p[data-naib-proof-ready="1"] {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 22px;
	margin: 0;
}
body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) .naib-proof-item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	white-space: nowrap;
}
body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) .naib-proof-item > :first-child {
	color: var(--naib-accent, var(--hg2-accent));
	font-weight: 900;
}

@media (max-width: 921px) {
	body.naib-scoped-reference #ast-mobile-site-navigation .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link,
	body.naib-scoped-reference #ast-mobile-header .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link,
	body.naib-scoped-reference .ast-mobile-header-content .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link,
	body.naib-scoped-reference .ast-mobile-popup-content .main-header-menu li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > .menu-link {
		padding-left: 14px !important;
		border: 0 !important;
		border-left: 0 !important;
		border-radius: 10px !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--naib-header-text, #fff) 13%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
	}
	body.naib-scoped-reference #ast-mobile-header .main-header-menu .ast-menu-toggle,
	body.naib-scoped-reference #ast-mobile-site-navigation .main-header-menu .ast-menu-toggle,
	body.naib-scoped-reference .ast-mobile-header-content .main-header-menu .ast-menu-toggle,
	body.naib-scoped-reference .ast-mobile-popup-content .main-header-menu .ast-menu-toggle {
		border: 1px solid color-mix(in srgb, var(--naib-header-text, #fff) 16%, transparent) !important;
		border-radius: 12px !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
		box-shadow: none !important;
	}
	body.naib-scoped-reference :is(#ast-mobile-header,#ast-mobile-site-navigation,.ast-mobile-header-content,.ast-mobile-popup-content)
		.main-header-menu li:is(.current-menu-item,.current_page_item,.current-menu-parent,.current_page_parent,.current-menu-ancestor,.current_page_ancestor) {
		border-left: 0 !important;
		box-shadow: none !important;
	}
	/* Astra setzt für das Popup einen historisch besonders spezifischen
	 * Akzentbalken. Diese gleichartige, aber zusätzlich V2-gebundene Regel
	 * verhindert, dass er in neuen Projekten wieder sichtbar wird. */
	body.naib-scoped-reference.naib-sticky-header-all .ast-mobile-popup-content ul.main-header-menu > li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > a.menu-link,
	body.naib-scoped-reference.naib-sticky-header-all .ast-mobile-header-content ul.main-header-menu > li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > a.menu-link {
		border-left: 0 !important;
		border-inline-start: 0 !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
	}
	body.naib-scoped-reference.naib-sticky-header-all #ast-mobile-site-navigation ul.main-header-menu > li:is(
		.current-menu-item,
		.current_page_item,
		.current-menu-parent,
		.current_page_parent,
		.current-menu-ancestor,
		.current_page_ancestor
	) > a.menu-link {
		border-left: 0 !important;
		border-inline-start: 0 !important;
		background: color-mix(in srgb, var(--naib-header-text, #fff) 7%, transparent) !important;
		color: var(--naib-header-text, #fff) !important;
	}
}

@media (max-width: 767px) {
	/* Eine Aussage pro Zeile: kein zufälliger Umbruch mitten im dritten Vorteil. */
	body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) p,
	body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) p[data-naib-proof-ready="1"] {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 7px !important;
		text-align: center !important;
	}
	body.naib-scoped-reference :is(.hg2-hero-proof,.hg2-proofline) .naib-proof-item {
		width: auto !important;
		max-width: 100%;
		align-items: center;
		white-space: nowrap;
	}

	/* Zahlen, Prozessmarker und FAQ-Zeichen folgen einer gemeinsamen optischen
	 * Einzugslinie und kleben nicht mehr am linken Kartenrand. */
	body.naib-scoped-reference .e-con.hg2-trust .hg2-card {
		padding: 26px clamp(32px, 9vw, 38px) !important;
	}
	body.naib-scoped-reference .e-con.hg2-process .hg2-card {
		padding: 26px clamp(32px, 9vw, 38px) !important;
	}
	body.naib-scoped-reference .e-con.hg2-process .hg2-card > .e-con-inner {
		grid-template-columns: 48px minmax(0,1fr) !important;
		gap: 12px 18px !important;
	}
	body.naib-scoped-reference .hg2-accordion .elementor-tab-title,
	body.naib-scoped-reference .hg2-accordion button.elementor-tab-title,
	body.naib-scoped-reference .hg2-accordion .elementor-tab-title.elementor-active {
		padding: 20px 24px !important;
	}
	body.naib-scoped-reference .hg2-accordion .elementor-tab-content {
		padding: 0 24px 22px !important;
	}
}
