/*
 * maisenhelder.de – ergänzendes CSS (Code-Stelle des Projekts, siehe CLAUDE.md).
 * Farben/Schriften/Abstände stehen im Elementor-Kit und an den Widgets. Hier nur, was es dort nicht als Regler gibt –
 * immer an eine mh-*-Klasse gebunden (Elementor › Erweitert › CSS-Klassen). Werte aus dem CSS der Altseite.
 */

:root {
	--mh-ink: #091023;
	--mh-red: #e94e43;
	--mh-paper: #f2f0eb;
	--mh-line: #d7d3cc;
	--mh-navy: #0c1427;
}
html { scroll-behavior: smooth; }
body { background: var(--mh-paper); }
.mh-upper .elementor-heading-title { text-transform: uppercase; }
.mh-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }
[id] { scroll-margin-top: 90px; }
/* Altseite (Tailwind-Preflight): Absätze ohne Außenabstand am Ende eines Textblocks */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------- Header */
.mh-header .mh-brand-logo img { width: 60px; height: 40px; object-fit: contain; display: block; }
.mh-header .mh-brand-name .elementor-heading-title,
.mh-header .elementor-heading-title { line-height: 1.15; }
@media (max-width: 1200px) and (min-width: 768px) {
	.mh-nav .elementor-nav-menu--main .elementor-item { font-size: 14px; }
}
@media (max-width: 767px) {
	.mh-header .mh-brand-logo img { width: 48px; height: 32px; }
}

/* ---------------------------------------------------------------- Buttons & Links */
.mh-btn .elementor-button { gap: 30px; }
.mh-btn .elementor-button-content-wrapper { align-items: center; }
.mh-btn .elementor-button-icon svg { width: 18px; height: 18px; }
.mh-arrow-red .elementor-button-icon svg { fill: #dd0000; }
.mh-arrow-white .elementor-button-icon svg { fill: #fff; }
.mh-btn-outline .elementor-button { transition: background .2s, border-color .2s, color .2s; }
.mh-btn-outline .elementor-button:hover { border-color: #fff; }
.mh-text-link .elementor-button { border-bottom: 1px solid var(--mh-ink); white-space: nowrap; }
.mh-text-link .elementor-button-icon svg { width: 18px; height: 12px; }
.mh-textlink .elementor-heading-title a,
.mh-underline .elementor-heading-title a,
.mh-underline-links a,
.mh-card-link .elementor-heading-title a { text-decoration: underline; text-underline-offset: 4px; }
.mh-all-link-w .elementor-heading-title a,
a.mh-all-link { display: inline-block; border-bottom: 1px solid var(--mh-ink); padding-bottom: 5px; text-decoration: none; }
.mh-underline-link .elementor-heading-title a { display: inline-block; border-bottom: 2px solid rgba(255, 255, 255, .55); padding-bottom: 7px; overflow-wrap: anywhere; }
.mh-underline-link .elementor-heading-title a:hover { border-color: #fff; }

/* ---------------------------------------------------------------- Startseite: Hero */
.mh-hero { position: relative; isolation: isolate; overflow: hidden; }
.mh-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, transparent 35%, rgba(3, 4, 5, .15) 52%, rgba(3, 4, 5, .9) 100%);
}
.mh-hero > .e-con-inner, .mh-hero > .elementor-element { position: relative; z-index: 2; }
.mh-hero-copy { text-align: right; }
.mh-hero .mh-hero-h1 .elementor-heading-title { text-shadow: 0 2px 20px rgba(0, 0, 0, .3); overflow-wrap: break-word; }
.mh-hero .mh-hero-h1 em { color: var(--mh-red); font-style: normal; }
.mh-hero-intro { max-width: 620px; text-shadow: 0 1px 12px rgba(0, 0, 0, .65); }
.mh-hero-intro p { margin: 0; }
.mh-google-rating { text-shadow: 0 1px 8px rgba(0, 0, 0, .8); transition: border-color .2s, transform .2s; }
.mh-google-rating .elementor-heading-title { white-space: nowrap; }
.mh-google-rating:hover { border-color: rgba(255, 255, 255, .75) !important; transform: translateY(-2px); }
.mh-hero-cta .elementor-button { text-shadow: 0 1px 8px rgba(0, 0, 0, .8); padding-left: 0; padding-right: 0; }
@media (max-width: 767px) {
	.mh-hero::before { background: linear-gradient(transparent 22%, rgba(3, 4, 5, .28) 45%, rgba(3, 4, 5, .94) 100%); }
	.mh-hero-copy { max-width: none !important; }
}
@media (max-width: 560px) { .mh-rating-stars { display: none; } }

/* ---------------------------------------------------------------- Startseite: Leistungen, Projekte, Prozess */
.mh-service-grid { border-top: 1px solid var(--mh-line); }
.mh-service { border-right: 1px solid var(--mh-line); padding: 30px 35px 20px 0; }
.mh-service + .mh-service { padding-left: 35px; }
.mh-service-visual { aspect-ratio: 4 / 3; margin: 28px 0 24px; overflow: hidden; }
.mh-service-visual img,
.mh-region-figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .45s, transform .65s cubic-bezier(.2, .75, .25, 1); display: block; }
.mh-service-visual .elementor-widget-container, .mh-service-visual .elementor-image { height: 100%; }
.mh-service:hover .mh-service-visual img { filter: grayscale(0); transform: scale(1.035); }
.mh-service p, .mh-region-entry p, .mh-card-text p { margin: 0; }
@media (max-width: 767px) {
	.mh-service, .mh-service + .mh-service { border-right: 0; border-bottom: 1px solid var(--mh-line); padding: 24px 0; }
}

.mh-project-carousel { aspect-ratio: .86; background: #25282c; position: relative; overflow: hidden; }
.mh-project-carousel .elementor-widget-container,
.mh-project-carousel .elementor-swiper,
.mh-project-carousel .swiper, .mh-project-carousel .swiper-wrapper,
.mh-project-carousel .swiper-slide { height: 100% !important; }
.mh-project-carousel .elementor-carousel-image { height: 100% !important; background-size: contain !important; background-repeat: no-repeat; filter: grayscale(1); transition: filter .45s; }
.mh-project:hover .elementor-carousel-image, .mh-project:focus-within .elementor-carousel-image { filter: grayscale(0); }
/* Steuerung unten rechts: ← 1/49 → auf dunkler Fläche */
.mh-project-carousel .swiper-pagination-fraction {
	left: auto !important; right: 14px; bottom: 14px !important; width: auto !important; z-index: 5;
	background: rgba(9, 16, 35, .76); color: #fff; font: 700 12px/34px Arial, sans-serif; padding: 6px 54px; min-width: 30px; text-align: center;
}
.mh-project-carousel .elementor-swiper-button {
	top: auto !important; bottom: 20px; transform: none !important; z-index: 6; width: 36px; height: 34px;
	display: flex; align-items: center; justify-content: center; color: #fff; font-size: 15px;
}
.mh-project-carousel .elementor-swiper-button-prev { left: auto !important; right: 108px; }
.mh-project-carousel .elementor-swiper-button-next { right: 20px !important; }
.mh-project-carousel .elementor-swiper-button:hover { background: var(--mh-red); }
/* Pfeile wie Altseite (Block-Pfeile, assets/img) statt Elementor-Chevrons */
.mh-project-carousel .elementor-swiper-button > * { display: none; }
.mh-project-carousel .elementor-swiper-button::after { content: ""; width: 19px; height: 12px; background: #fff; -webkit-mask: var(--mh-arrow) center / contain no-repeat; mask: var(--mh-arrow) center / contain no-repeat; }
.mh-project-carousel .elementor-swiper-button-prev { --mh-arrow: url(../img/pfeil-links.svg); }
.mh-project-carousel .elementor-swiper-button-next { --mh-arrow: url(../img/pfeil-rechts.svg); }

.mh-process-video { aspect-ratio: 3 / 2; overflow: hidden; scroll-margin-top: 100px; }
.mh-process-video .elementor-custom-embed-image-overlay { background-size: cover; filter: grayscale(1); transition: filter .45s; }
.mh-process-video:hover .elementor-custom-embed-image-overlay { filter: grayscale(0); }
.mh-process-video .elementor-custom-embed-play {
	width: 76px; height: 76px; border-radius: 50%; border: 2px solid #fff; background: rgba(12, 20, 39, .82);
	display: flex; align-items: center; justify-content: center; transition: background .2s, transform .2s;
}
.mh-process-video .elementor-custom-embed-play i, .mh-process-video .elementor-custom-embed-play svg { font-size: 25px; color: #fff; fill: #fff; text-shadow: none; filter: none; opacity: 1; }
.mh-process-video:hover .elementor-custom-embed-play { background: var(--mh-red); transform: translate(-50%, -50%) scale(1.06); }
.mh-process-video video { background: var(--mh-red); object-fit: contain; }
@media (hover: none) {
	.mh-service-visual img, .mh-region-figure img, .mh-project-carousel .elementor-carousel-image { filter: grayscale(.35); }
}

/* ---------------------------------------------------------------- Footer */
.mh-on-dark .mh-eyebrow .elementor-heading-title { color: #fff; }
.mh-contact-link .elementor-heading-title a:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.mh-route-map iframe { filter: grayscale(1); transition: filter .4s; min-height: 360px; display: block; }
.mh-route-map:hover iframe { filter: grayscale(0); }
.mh-footer-notes p { max-width: 1100px; margin: 0 0 1em; }
.mh-footer-menu .elementor-nav-menu--main .elementor-item { justify-content: flex-start; }
.mh-footer-claim p { max-width: 430px; margin: 0; }
.mh-legal-footer .elementor-nav-menu { flex-wrap: wrap; row-gap: 18px; }
.mh-service-nav .elementor-item { text-decoration: underline; text-underline-offset: 4px; }
.mh-service-nav .elementor-nav-menu { flex-wrap: wrap; row-gap: 16px; }
@media (max-width: 767px) {
	.mh-route-planner { grid-template-columns: 1fr !important; }
	.mh-route-map iframe { min-height: 300px; }
}

/* Social-Leiste (rechts fixiert, mobil unten mittig) */
.mh-social-rail {
	position: fixed !important; top: 50%; right: 0; transform: translateY(-50%); z-index: 9000;
	box-shadow: 0 8px 28px rgba(0, 0, 0, .2); width: auto !important; padding: 0 !important; margin: 0 !important;
}
.mh-social-rail .mh-social-link { margin: 0 !important; }
.mh-social-rail .mh-social-link .elementor-heading-title a {
	display: flex; align-items: center; justify-content: center; width: 3.1rem; height: 3.1rem; margin-left: auto;
	color: #fff; background: #20252a; border-bottom: 1px solid rgba(255, 255, 255, .17);
	font: 800 1rem/1 Arial, sans-serif; transition: background .2s, width .2s;
}
.mh-social-rail .mh-social-link:last-child .elementor-heading-title a { border-bottom: 0; }
.mh-social-rail .mh-social-link .elementor-heading-title a:hover, .mh-social-rail .mh-social-link .elementor-heading-title a:focus-visible { background: #e3260a; width: 4rem; }
@media (max-width: 767px) {
	.mh-social-rail { flex-direction: row !important; flex-wrap: nowrap !important; top: auto; bottom: 0; right: 50%; transform: translateX(50%); }
	.mh-social-rail .mh-social-link .elementor-heading-title a, .mh-social-rail .mh-social-link .elementor-heading-title a:hover { width: 3.25rem; height: 2.8rem; border-bottom: 0; border-right: 1px solid rgba(255, 255, 255, .17); }
}

/* Schwebender „Zurück“-Button */
.mh-floating-back { position: fixed !important; left: max(16px, env(safe-area-inset-left)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 9500; width: auto !important; margin: 0 !important; }
.mh-floating-back .elementor-button {
	background: #0c1425; color: #fff; border: 1px solid rgba(255, 255, 255, .25); border-radius: 4px; min-height: 48px;
	padding: 12px 18px; font: 700 16px/1 Arial, sans-serif; box-shadow: 0 4px 18px rgba(0, 0, 0, .2);
}
.mh-floating-back .elementor-button:hover { background: #b43b34; }
@media (max-width: 767px) { .mh-floating-back { bottom: calc(60px + env(safe-area-inset-bottom)); } .mh-floating-back .elementor-button { padding: 12px 15px; } }

/* ---------------------------------------------------------------- Unterseiten allgemein */
.mh-resource-hero .mh-hero-h1 .elementor-heading-title { max-width: 980px; overflow-wrap: break-word; }
.mh-hero-lead { max-width: 760px; }
.mh-hero-lead p { margin: 0; }
.mh-crumb-link .elementor-heading-title a { text-decoration: underline; }
.mh-resource-cta .elementor-widget-text-editor p { margin: 0; }
.mh-resource-cta .mh-cta-btn .elementor-button { color: var(--mh-ink); }

/* Planungsimpuls */
.mh-impuls-text p, .mh-impuls-text p:last-child { margin: 0 0 20px; }
.mh-planning-link .elementor-heading-title a:focus-visible { outline: 3px solid var(--mh-red); outline-offset: 5px; }
@media (max-width: 767px) { .mh-impuls-text { font-size: 17px; } }

/* ---------------------------------------------------------------- Stadtseiten */
.mh-image-row .mh-region-figure { aspect-ratio: 1.5; overflow: hidden; position: relative; margin: 0; }
.mh-region-figure .elementor-widget-container, .mh-region-figure figure, .mh-region-figure .wp-caption { height: 100%; margin: 0; }
.mh-region-figure:hover img { filter: grayscale(0); transform: scale(1.03); }
.mh-region-figure figcaption, .mh-region-figure .widget-image-caption {
	position: absolute; left: 0; bottom: 0; margin: 0; background: #fff; color: var(--mh-ink);
	padding: 13px 18px; font: 800 13px/1.2 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase;
}
.mh-priority { border-top: 1px solid var(--mh-line); padding: 28px 36px 20px 0; }
.mh-priority + .mh-priority { border-left: 1px solid var(--mh-line); padding-left: 36px; }
.mh-priority p { margin: 0; }
.mh-task-list { list-style: none; margin: 0; padding: 0; }
.mh-plan-images .mh-plan-figure { background: #fff; }
.mh-plan-figure img { width: 100%; object-fit: contain; display: block; }
.mh-plan-images .mh-plan-figure:nth-child(1) a { aspect-ratio: 2.0254; }
.mh-plan-images .mh-plan-figure:nth-child(2) a { aspect-ratio: .9734; }
.mh-plan-images .mh-plan-figure:nth-child(3) a { aspect-ratio: 1.2759; }
.mh-plan-figure a { display: flex; align-items: center; overflow: hidden; }
.mh-plan-figure a:focus-visible { outline: 3px solid var(--mh-red); outline-offset: 3px; }
.mh-plan-figure figcaption, .mh-plan-figure .widget-image-caption { border-top: 1px solid var(--mh-line); padding: 15px 18px; margin: 0; letter-spacing: .035em; line-height: 1.5; text-align: left; font: 800 13px/1.5 Arial, sans-serif; text-transform: uppercase; color: var(--mh-ink); }
.mh-details-list .elementor-toggle-item { border-bottom: 1px solid #b8b5ae; }
.mh-details-list { border-top: 1px solid #b8b5ae; }
.mh-details-list .elementor-tab-title { display: flex; justify-content: space-between; align-items: center; border: 0 !important; }
.mh-details-list .elementor-tab-title .elementor-toggle-icon { order: 2; font-size: 22px; }
.mh-details-list .elementor-tab-content { border: 0 !important; max-width: 900px; }
.mh-details-list .elementor-tab-content p { margin: 0; }
.mh-nearby-link:nth-child(2n) { padding-left: 22px !important; }
.mh-nearby-grid .e-loop-item:nth-child(2n) .mh-nearby-link { padding-left: 22px; }
@media (max-width: 767px) {
	.mh-image-row .mh-region-figure { aspect-ratio: 1.6; }
	.mh-priority, .mh-priority + .mh-priority { border-left: 0; padding-left: 0; padding-right: 0; }
	.mh-nearby-grid .e-loop-item:nth-child(2n) .mh-nearby-link { padding-left: 0; }
	.mh-plan-images .mh-plan-figure a { aspect-ratio: auto !important; height: 300px; }
	.mh-plan-figure img { height: 100%; }
}

/* Regionen-Übersicht */
.mh-region-jump p { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; }
.mh-region-jump a { color: #424852; }
.mh-region-jump a:hover { color: var(--mh-red); }
.mh-region-card { transition: background .2s, transform .2s; height: 100%; }
.mh-region-card:hover, .mh-region-card:focus-within { background: var(--mh-navy) !important; transform: translateY(-3px); }
.mh-region-card:hover .elementor-heading-title, .mh-region-card:focus-within .elementor-heading-title { color: #fff; }
.mh-region-card:hover .mh-eyebrow .elementor-heading-title { color: var(--mh-red); }
.mh-region-card:hover .mh-card-text, .mh-region-card:hover .mh-card-small .elementor-heading-title { color: #cdd0d7 !important; }
.mh-region-card .mh-card-area .elementor-heading-title { color: var(--mh-red); }
.mh-card-link .elementor-heading-title a:focus-visible { outline: 2px solid; outline-offset: 5px; }
.mh-region-grid .e-loop-item { height: 100%; }

/* ---------------------------------------------------------------- Wissen, FAQ: Filter und Aufklappen (site.js) */
.mh-filter-search {
	width: 100%; background: #fff; border: 1px solid #bfc0c2; padding: 18px 20px; font: 17px Arial, sans-serif; color: var(--mh-ink); border-radius: 0;
}
.mh-filter-row { display: flex; flex-wrap: wrap; gap: 9px; margin: 24px 0; }
.mh-filter-row button {
	color: var(--mh-ink); background: transparent; border: 1px solid #aeb0b4; padding: 10px 13px; cursor: pointer; border-radius: 0;
	font: 400 16px/1.5 Arial, sans-serif;
}
.mh-filter-row button.is-active, .mh-filter-row button:hover { background: var(--mh-ink); color: #fff; }
.mh-filter-count { color: #6d7076; font-size: 14px; margin: 0 0 1em; }
.mh-filter-item[hidden] { display: none !important; }
.mh-toggle-head { cursor: pointer; }
.mh-toggle-body { display: none; }
.mh-toggle.is-open .mh-toggle-body { display: block; }
.mh-knowledge-card p { margin: 0; line-height: 1.55; }
.mh-knowledge-details h3 { margin: 22px 0 6px; font-size: 15px; color: var(--mh-ink); }
.mh-knowledge-details p { margin: 0; line-height: 1.55; }
.mh-faq-head { display: grid !important; grid-template-columns: 190px 1fr 30px; align-items: center; }
.mh-faq-a { padding: 0 30px 28px 209px; max-width: 900px; }
.mh-faq-a p { margin: 0; }
@media (max-width: 767px) {
	.mh-faq-head { grid-template-columns: 1fr 28px; }
	.mh-faq-cat { grid-column: 1 / -1; }
	.mh-faq-a { padding: 0 4px 24px; }
}
.mh-article-card { height: 100%; }
.mh-card-partner p { margin: 0; }
.mh-card-partner a { color: inherit; text-decoration: underline; }
.mh-article-grid .e-loop-item { height: 100%; }

/* Wissensartikel (Beitragsinhalt) */
.mh-knowledge-article { font-size: 18px; line-height: 1.8; overflow-wrap: anywhere; color: var(--mh-ink); }
.mh-knowledge-article h2, .mh-knowledge-article h3, .mh-legal-content h2, .mh-knowledge-details h3 { font-weight: 400; }
.mh-knowledge-article h2 { font-size: clamp(26px, 4vw, 36px); line-height: 1.2; letter-spacing: -.025em; margin: 48px 0 20px; }
.mh-knowledge-article h3 { font-size: 20px; line-height: 1.35; margin: 0 0 10px; }
.mh-knowledge-article p { margin: 0 0 22px; }
.mh-knowledge-article ul { padding-left: 24px; }
.mh-knowledge-article li { margin-bottom: 12px; }
.mh-knowledge-article a { text-decoration: underline; text-underline-offset: 4px; }
.mh-knowledge-article a:focus-visible { outline: 3px solid #b43b34; outline-offset: 5px; }
.mh-knowledge-article .article-byline { color: #51545c; font-size: 14px; }
.mh-knowledge-article .article-image { margin: 30px 0 40px; }
.mh-knowledge-article .article-image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.mh-knowledge-article .documentary-image img { aspect-ratio: auto; object-fit: contain; }
.mh-knowledge-article .article-image figcaption { color: #51545c; margin-top: 10px; font-size: 14px; line-height: 1.5; }
.mh-knowledge-article .article-source, .mh-knowledge-article .article-sources { font-size: 15px; line-height: 1.65; }
.mh-knowledge-article .documentary-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.mh-knowledge-article .documentary-gallery .article-image { margin: 12px 0 24px; }
.mh-knowledge-article .documentary-gallery .article-image:only-child,
.mh-knowledge-article .documentary-gallery .article-image:last-child:nth-child(odd) { grid-column: 1 / -1; }
.mh-knowledge-article .article-participants { list-style: none; padding-left: 0; }
.mh-knowledge-article .article-participants li { border-top: 1px solid var(--mh-line); padding-top: 18px; }
.mh-knowledge-article .article-participants p { margin: 0 0 8px; font-size: 16px; }
.mh-knowledge-article .planning-article { margin: 36px 0; padding: 32px; background: #f3f1ed; border-top: 1px solid var(--mh-line); border-bottom: 1px solid var(--mh-line); color: #20252a; }
.mh-knowledge-article .planning-article h2 { margin: 14px 0 18px; font-size: clamp(28px, 3.5vw, 42px); line-height: 1.15; }
.mh-knowledge-article .planning-article .eyebrow, .mh-knowledge-article .planning-article-byline { font-size: 13px; line-height: 1.5; }
.mh-knowledge-article .eyebrow { letter-spacing: .13em; font-weight: 700; margin: 0 0 22px; }
.mh-knowledge-article .accent { color: #b43b34; }
.mh-knowledge-article .planning-article-byline { color: #565a62; margin-bottom: 28px; }
.mh-knowledge-article .planning-article-link { font-weight: 700; display: inline-block; margin-top: 8px; }
.mh-knowledge-article .resource-cta { background: var(--mh-red); color: #fff; margin-top: 48px; padding: 40px; }
.mh-knowledge-article .resource-cta h2 { margin: 0 0 12px; font-size: 34px; }
.mh-knowledge-article .resource-cta a { color: var(--mh-ink); background: #fff; margin: 15px 10px 0 0; padding: 13px 16px; font-weight: 700; display: inline-block; text-decoration: none; }
.mh-knowledge-article .article-note { color: #51545c; margin-top: 28px; font-size: 14px; line-height: 1.65; }
.mh-knowledge-article .article-back { margin-top: 16px; font-size: 16px; display: inline-block; }
@media (max-width: 900px) {
	.mh-knowledge-article { font-size: 17px; }
	.mh-knowledge-article .resource-cta { padding: 26px; }
}
@media (max-width: 650px) { .mh-knowledge-article .documentary-gallery { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- Anfrage */
.mh-document-check { position: sticky; top: 100px; }
.mh-checklist-item { display: none; }
.mh-checklist-item.is-active { display: flex; }
.mh-checklist ul { list-style: none; padding: 0; display: grid; gap: 13px; margin: 1em 0 0; }
.mh-checklist li { border-bottom: 1px solid var(--mh-line); padding-bottom: 12px; }
.mh-inquiry-form .elementor-field-group > label { font-size: 13px; font-weight: 700; }
.mh-inquiry-form .elementor-field-textual { min-height: 0; }
.mh-inquiry-form textarea.elementor-field-textual { resize: vertical; min-height: 105px; }
.mh-optional-toggle { display: block; cursor: pointer; padding: 14px 0; font-weight: 700; margin-top: 6px; }
.mh-optional-toggle::before { content: "▸ "; }
.mh-optional-toggle[aria-expanded="true"]::before { content: "▾ "; }
/* Optionale Felder: Elementor setzt die Feldklasse am Eingabefeld, ausgeblendet wird die ganze Feldgruppe */
.mh-mailto-form .elementor-field-group:has(.mh-optional) { display: none; }
.mh-mailto-form.is-optional-open .elementor-field-group:has(.mh-optional) { display: flex; }
.mh-mailto-form .elementor-field-type-acceptance { font-size: 13px; line-height: 1.5; margin: 4px 0 4px; }
.mh-mailto-form .elementor-field-type-acceptance a { text-decoration: underline; }
.mh-mailto-form .e-form__buttons { justify-content: flex-start; }
.mh-inquiry-status { display: none; border-left: 3px solid var(--mh-red); padding: 12px 16px; line-height: 1.6; margin: 12px 0; }
.mh-inquiry-status.is-visible { display: block; }
.mh-inquiry-status p { margin: 0; }
.mh-inquiry-alternatives a { margin-right: 20px; text-decoration: underline; display: inline-block; overflow-wrap: anywhere; }
@media (max-width: 767px) {
	.mh-document-check { position: static; }
	.mh-inquiry-layout { grid-template-columns: 1fr !important; }
}

/* ---------------------------------------------------------------- KI-Assistent */
.mh-chat-message { display: grid !important; grid-template-columns: 42px 1fr; gap: 12px; }
.mh-chat-avatar { width: 42px; height: 42px; background: var(--mh-ink); display: flex; align-items: center; justify-content: center; }
.mh-chat-message.is-user .mh-chat-avatar { background: var(--mh-red); }
.mh-chat-bubble { border: 1px solid var(--mh-line); background: #fff; padding: 18px; line-height: 1.6; }
.mh-chat-bubble p { margin: 0; }
.mh-chat-message.is-user .mh-chat-bubble { background: #e5e1d9; }
.mh-chat-answers { display: none !important; }
.mh-chat-transcript { display: none; }
.mh-chat-transcript.is-visible { display: inline-block; }
.mh-chat-form textarea { min-height: 110px; resize: vertical; background: #fff; border-color: #aeb0b4; font-size: 16px; }
.mh-chat-form .elementor-field-group > label { font-weight: 700; font-size: 16px; }
.mh-chat-form .e-form__buttons { justify-content: flex-start; }
body.elementor-editor-active .mh-chat-answers,
body.elementor-editor-active .mh-checklist-item,
body.elementor-editor-active .mh-toggle-body,
body.elementor-editor-active .mh-inquiry-status,
body.elementor-editor-active .mh-chat-transcript { display: block !important; outline: 1px dashed #e94e43; }

/* ---------------------------------------------------------------- Rechtliches */
.mh-legal-back .elementor-heading-title a { border-bottom: 1px solid var(--mh-ink); padding-bottom: 5px; display: inline-block; }
.mh-legal-content section { border-top: 1px solid var(--mh-line); padding: 34px 0; }
.mh-legal-content section h2 { font-size: clamp(24px, 3vw, 36px); letter-spacing: -.035em; margin: 0 0 20px; color: var(--mh-ink); line-height: 1.15; }
.mh-legal-content p, .mh-legal-content li { max-width: 820px; }
.mh-legal-content section a, .mh-legal-content .legal-advice-note a { color: #b43b34; text-decoration: underline; text-underline-offset: 3px; }
.mh-legal-content .legal-advice-note { border-left: 4px solid var(--mh-red); color: #3f434b; background: #e4e0d7; margin: 45px 0 0; padding: 20px 22px; font-size: 15px; line-height: 1.65; }
.mh-legal-content .legal-consent-reset { color: #20252a; background: transparent; border: 1px solid; padding: .7rem 1rem; cursor: pointer; font: inherit; }

/* ---------------------------------------------------------------- Logo-Animation (1:1 aus FlyingLogo.css der Altseite, Steuerung in site.js)
 * Nur ab 1101px und ohne „Bewegung reduzieren“. Szene in Bildkoordinaten (Hero 2000×1125, Beratung 1800×1200),
 * Person/Wand als freigestellte Bildkopien darüber, damit das Logo dahinter verschwindet. */
.mh-fl-scene{display:none}
.mh-fl-regional{z-index:9000;width:100vw;height:100dvh;position:fixed!important;inset:0!important;transform:none!important}
.mh-fl-regional .mh-fl-coords{width:100%;height:100%;transform:none}
.mh-fl-regional .mh-fl-actor{animation:28s ease-in-out infinite paused mh-fl-regional-flight}
.mh-fl-regional[data-following=true] .mh-fl-actor{animation:4s linear infinite mh-fl-pointer-orbit}
@keyframes mh-fl-regional-flight{0%,to{top:22%;left:82%;transform:translate(-50%,-50%)scale(.3)rotate(0)}
25%{top:38%;left:25%;transform:translate(-50%,-50%)scale(.3)rotate(-8deg)}
50%{top:72%;left:72%;transform:translate(-50%,-50%)scale(.3)rotate(8deg)}
75%{top:65%;left:35%;transform:translate(-50%,-50%)scale(.3)rotate(-5deg)}
}
@media (min-width:1101px) and (prefers-reduced-motion:no-preference){.mh-fl-scene{pointer-events:none;display:block;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}
}
.mh-fl-coords{width:2000px;height:1125px;transform:scale(var(--scene-scale,1));transform-origin:0 0;position:absolute}
.mh-fl-actor{opacity:0;width:300px;height:200px;animation:40s ease-in-out infinite paused mh-fl-shoulder-visit;position:absolute;top:562px;left:1018px;transform:translate(-50%,-50%)}
.mh-fl-scene[data-ready=true] .mh-fl-actor{opacity:1}
.mh-fl-scene[data-ready=true][data-running=true] .mh-fl-actor{animation-play-state:running}
.mh-fl-actor canvas{width:100%;height:100%;display:block}
.mh-fl-scene[data-following=true] .mh-fl-actor{left:var(--pointer-x);top:var(--pointer-y);transform:translate(-50%, -50%) scale(var(--flight-scale));z-index:2;transition:left .14s ease-out,top .14s ease-out;animation:4s linear infinite mh-fl-pointer-orbit}
@keyframes mh-fl-pointer-orbit{0%{transform:translate(-50%, -50%) rotate(0deg) translateX(var(--orbit-radius)) rotate(0deg) scale(var(--flight-scale))}
to{transform:translate(-50%, -50%) rotate(360deg) translateX(var(--orbit-radius)) rotate(-360deg) scale(var(--flight-scale))}
}
.mh-fl-scene[data-following=true] .mh-fl-dock{visibility:hidden}
.mh-fl-person,.mh-fl-wall{z-index:1;width:2000px;max-width:none;height:1125px;position:absolute;inset:0}
.mh-fl-person{clip-path:polygon(0% 100%,.35% 90%,.5% 83%,1% 81%,1% 72%,1.6% 67%,2% 64%,4% 62%,10.2% 59%,12.2% 57%,12.2% 55%,11.5% 52%,10.6% 49%,10.4% 46%,11.2% 45%,11.2% 40%,11.4% 35%,12.3% 34%,15.4% 34.5%,17% 34%,20.3% 34.3%,20.8% 35.5%,21.3% 41%,21% 45%,21.7% 45.4%,21.8% 47%,21.3% 49.5%,20.8% 51%,20.5% 55.5%,21% 57%,26% 59%,29.7% 61%,31% 62.5%,32.3% 68%,33.7% 76%,35% 84%,37.1% 100%)}
.mh-fl-wall{clip-path:polygon(74.1% 29.5%,100% 6.5%,100% 69.5%,74.1% 59.2%)}
.mh-fl-source{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}
.mh-fl-dock{visibility:hidden;width:292px;height:194px;animation:40s ease-in-out infinite paused mh-fl-wall-docking;position:absolute;top:466px;left:872px;overflow:hidden}
.mh-fl-scene[data-ready=true] .mh-fl-dock{visibility:visible}
.mh-fl-scene[data-ready=true][data-running=true] .mh-fl-dock{animation-play-state:running}
@keyframes mh-fl-wall-docking{0%,10%,42%,50%,90%,to{opacity:1}
12%,39%,53%,87%{opacity:0}
}
@keyframes mh-fl-shoulder-visit{0%,10%,42%,50%,90%,to{top:562px;left:1018px;transform:translate(-50%,-50%)scale(1.04)rotate(0)}
17%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(-5deg);top:620px;left:720px}
22%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(0deg);top:820px;left:340px}
25%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(-10deg);top:750px;left:170px}
29%,32%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(-12deg);top:615px;left:120px}
36%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(0deg);top:840px;left:320px}
56%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(0deg);top:820px;left:360px}
60%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(8deg);top:770px;left:490px}
65%,69%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(12deg);top:595px;left:540px}
74%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(0deg);top:820px;left:360px}
79%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(-5deg);top:620px;left:960px}
83%,86%{transform:translate(-50%, -50%) scale(var(--flight-scale)) rotate(0deg);top:520px;left:1580px}
}
.mh-fl-consultation .mh-fl-coords{width:1800px;height:1200px}
.mh-fl-consultation .mh-fl-actor{animation-name:mh-fl-consultation-flight;animation-duration:28s;top:780px;left:-200px}
.mh-fl-consultation .mh-fl-man-left,.mh-fl-consultation .mh-fl-man-right{z-index:1;width:1800px;max-width:none;height:1200px;position:absolute;inset:0}
.mh-fl-man-left{clip-path:polygon(14.3% 73%,15.6% 66%,16.8% 55%,17.3% 47%,19% 41%,21.8% 38%,26% 35%,30.8% 31.5%,30.5% 28%,30.8% 26%,32% 25.5%,32.3% 20%,34% 16%,37% 13.6%,40% 13.8%,42.5% 16%,44.2% 20%,44.6% 27%,45.6% 30.5%,45.4% 34%,49% 35.4%,51.5% 38%,53.4% 42%,54.4% 50%,55.6% 58%,57.7% 68%,57.6% 74%,54.8% 78%,43% 79%,39.5% 82.5%,35% 83.7%,29% 84%,23% 82.5%,18% 81.6%,15.6% 80%,14.4% 77%)}
.mh-fl-man-right{clip-path:polygon(53% 83%,54.1% 79%,55.4% 75%,61.4% 76%,61.5% 70%,62.3% 65%,67.4% 56%,68.8% 52%,68.8% 47%,69.9% 45.7%,67.4% 43.7%,66.5% 40%,66.8% 35%,66.8% 29%,66% 25%,66.2% 22%,69.7% 17%,74.5% 14.3%,79.7% 14%,83.2% 14.7%,85.2% 18%,86% 23%,85.7% 29%,84.8% 33.7%,88.7% 36.5%,92.8% 43.5%,95.5% 45.5%,98% 51%,100% 60%,100% 92%,98% 96.2%,93% 94.5%,89% 92%,79% 92%,65% 90.6%,58% 89%,55% 86%)}
@keyframes mh-fl-consultation-flight{0%,4%{z-index:2;top:790px;left:-200px;transform:translate(-50%,-50%)scale(.82)rotate(-8deg)}
16%{z-index:2;top:710px;left:590px;transform:translate(-50%,-50%)scale(.92)rotate(8deg)}
29%{z-index:2;top:810px;left:1260px;transform:translate(-50%,-50%)scale(.92)rotate(-7deg)}
42%,46%{z-index:2;top:680px;left:2010px;transform:translate(-50%,-50%)scale(.82)rotate(0)}
46.01%,50%{z-index:0;top:370px;left:2010px;transform:translate(-50%,-50%)scale(.56)rotate(0)}
60%{z-index:0;top:370px;left:1410px;transform:translate(-50%,-50%)scale(.56)rotate(8deg)}
70%{z-index:0;top:440px;left:1050px;transform:translate(-50%,-50%)scale(.56)rotate(-5deg)}
80%{z-index:0;top:360px;left:650px;transform:translate(-50%,-50%)scale(.56)rotate(8deg)}
91%,96%{z-index:0;top:400px;left:-200px;transform:translate(-50%,-50%)scale(.56)rotate(0)}
96.01%,to{z-index:2;top:790px;left:-200px;transform:translate(-50%,-50%)scale(.82)rotate(-8deg)}
}


/* Einbindung in Elementor: Hero-Szene unter dem Verlauf; Beratungsbild-Kopien grau wie das Vorschaubild */
.mh-hero > .mh-fl-scene { z-index: 0; }
.mh-process-video .elementor-wrapper, .mh-process-video .elementor-widget-container { position: relative; }
.mh-process-video .mh-fl-scene { z-index: 1; pointer-events: none; }
.mh-process-video .mh-fl-scene img { filter: grayscale(1); transition: filter .45s; }
.mh-process-video:hover .mh-fl-scene img { filter: grayscale(0); }

/* ---------------------------------------------------------------- Zwischen-Breakpoints der Altseite (980 / 800 px),
 * die Elementor (Tablet 768–1024) nicht abbildet */
@media (max-width: 980px) and (min-width: 768px) {
	.mh-header .mh-nav { display: none; } /* Original: Navigation zwischen 761 und 980px ausgeblendet */
}
@media (max-width: 800px) {
	.mh-hero .mh-hero-h1 .elementor-heading-title { font-size: clamp(36px, 8.5vw, 54px) !important; } /* Elementor-Tablet-Regel ist spezifischer */
}
@media (max-width: 800px) and (min-width: 768px) {
	/* Unterseiten: Original stapelt Raster ab 800px einspaltig */
	.mh-region-page .e-grid, .mh-region-hub .e-grid, .mh-inquiry-layout, .mh-knowledge-grid,
	.mh-footer-seiten { --e-con-grid-template-columns: 1fr !important; grid-template-columns: 1fr !important; }
	.mh-region-grid .elementor-loop-container, .mh-nearby-grid .elementor-loop-container { grid-template-columns: 1fr !important; }
	.mh-priority + .mh-priority { border-left: 0; padding-left: 0; }
	.mh-document-check { position: static; }
	.mh-faq-head { grid-template-columns: 1fr 28px; }
	.mh-faq-cat { grid-column: 1 / -1; }
	.mh-faq-a { padding: 0 4px 24px; }
}
