/* IMMOBRA Theme: Basis-Styles. Farben, Schriften und Größen kommen aus theme.json. */

:root {
	--immobra-schiefer: var(--wp--preset--color--schiefer, #2B3137);
	--immobra-gold: var(--wp--preset--color--gold, #CDA73A);
	--immobra-gold-hover: #D9B652;
	--immobra-gold-text: var(--wp--preset--color--gold-text, #86660F);
	--immobra-nebel: var(--wp--preset--color--nebel, #F0F1F6);
	--immobra-line: #DDE0E7;
	--immobra-muted: #687080;
	--immobra-gutter: clamp(1rem, 4vw, 3rem);
	--immobra-wide: 1280px;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 2px; }

.container {
	width: 100%;
	max-width: calc(var(--immobra-wide) + 2 * var(--immobra-gutter));
	margin-inline: auto;
	/* viewport-fit=cover (header.php): im Querformat nicht unter die Notch, unten reicht die Handy-Leiste bis an den Rand */
	padding-inline: max(var(--immobra-gutter), env(safe-area-inset-left)) max(var(--immobra-gutter), env(safe-area-inset-right));
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100;
	background: var(--immobra-gold); color: var(--immobra-schiefer);
	padding: 0.75rem 1rem; font-weight: 800;
}
.skip-link:focus { left: 1rem; top: 1rem; }

/* Kopfleiste: ab 1101 px Unternehmenslinks (Menü „Kopfleiste“), sonst Adresse; rechts Telefon */
.topbar { background: var(--immobra-schiefer); color: #BFC5CF; font-size: 0.8125rem; }
.topbar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.25rem 1.25rem; padding-block: 0.4rem; }
.topbar a { color: #FFFFFF; font-weight: 700; text-decoration: none; }
.topbar__nav { display: none; }
.topbar__links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.6rem; margin: 0; padding: 0; list-style: none; }
.topbar .topbar__links a { font-weight: 500; letter-spacing: 0.02em; color: #D3D8DF; }
.topbar .topbar__links a:hover, .topbar .topbar__links a[aria-current] { color: var(--immobra-gold); }
/* „Kunden-Login“ zum Eigentümerbereich (Plugin immobra-eigentuemer): Schloss rechts, unter 641 px nur das Symbol */
.topbar .topbar__login { display: inline-flex; align-items: center; gap: 0.35rem; margin-left: 0.8rem; padding-left: 0.8rem; border-left: 1px solid #4A515A; font-weight: 600; color: #D3D8DF; vertical-align: middle; }
.topbar .topbar__login:hover { color: var(--immobra-gold); }
.topbar__login svg { flex: none; width: 15px; height: 15px; color: var(--immobra-gold); }
@media (max-width: 640px) {
	.topbar__address { display: none; }
	.topbar .topbar__login { margin-left: 0.5rem; padding: 0.2rem 0 0.2rem 0.6rem; }
	.topbar__login-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
@media (min-width: 1101px) {
	.topbar__nav { display: block; }
	.topbar__nav + .topbar__address { display: none; }
}

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: #FFFFFF; border-bottom: 1px solid var(--immobra-line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
/* Unter 601 px scrollt die Adminleiste mit, der Header darf dann oben andocken. */
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { position: relative; display: flex; align-items: center; gap: 1.5rem; min-height: 4.5rem; }

.site-logo { display: flex; flex-direction: column; flex-shrink: 0; padding-block: 0.4rem; line-height: 1; text-decoration: none; }
.site-logo__img { display: block; width: auto; height: 64px; }
@media (max-width: 600px) { .site-logo__img { height: 52px; } }
.site-logo__word { font-family: var(--wp--preset--font-family--display); font-size: 1.6rem; letter-spacing: 0.16em; color: var(--immobra-schiefer); }
.site-logo__word b, .site-footer__word b { font-weight: 400; color: var(--immobra-gold); }
.site-logo__tagline { margin-top: 0.3rem; font-family: var(--wp--preset--font-family--display); font-size: 0.55rem; letter-spacing: 0.19em; text-transform: uppercase; color: var(--immobra-gold-text); }
.custom-logo-link img { width: auto; max-height: 56px; }

/* Hauptnavigation als Mega-Menü (inc/navigation.php, assets/js/navigation.js) */
.site-nav { margin-left: auto; }
.site-nav__list { display: flex; margin: 0; padding: 0; list-style: none; }
.site-nav__list ul, .site-nav__meta { margin: 0; padding: 0; list-style: none; }
/* Hauptpunkte (Wunsch IMMOBRA 13.09.2026 „edler, weniger dick“): mittlere Stärke, mehr Sperrung, dünne Goldlinie. */
.site-nav__link {
	display: block; padding: 0.55rem 0; border-bottom: 1px solid transparent;
	font-size: 0.78rem; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase;
	color: var(--immobra-schiefer); text-decoration: none;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.site-nav__link:hover { color: var(--immobra-gold-text); border-color: var(--immobra-gold); }
.site-nav__item.is-branch > .site-nav__link { border-color: var(--immobra-gold); }
/* Aufklapp-Knopf: Pfeil aus zwei Rahmenlinien, ohne Icon-Datei. */
.site-nav__more { position: relative; flex-shrink: 0; margin: 0; padding: 0; border: 0; background: none; color: var(--immobra-schiefer); cursor: pointer; }
.site-nav__more::before { content: ""; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; margin: -5px 0 0 -3px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform 0.2s ease; }
.site-nav__item.is-open > .site-nav__more::before { margin-top: -1px; transform: rotate(-135deg); }
.mega__heading { display: block; margin: 0 0 0.6rem; padding-bottom: 0.55rem; border-bottom: 1px solid var(--immobra-line); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--immobra-gold-text); text-decoration: none; }
.mega__col a:not(.mega__heading) { display: block; padding: 0.38rem 0; font-size: 0.9375rem; font-weight: 500; line-height: 1.35; color: var(--immobra-schiefer); text-decoration: none; }
.mega__col a:hover, .mega__col a[aria-current] { color: var(--immobra-gold-text); }
.site-nav__extra { display: none; }
.site-header__actions { display: flex; align-items: center; gap: 0.6rem; flex-shrink: 0; }

.nav-toggle { display: none; position: relative; width: 44px; height: 44px; margin-left: auto; border: 1px solid var(--immobra-line); border-radius: 3px; background: #FFFFFF; cursor: pointer; }
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { position: absolute; left: 11px; width: 20px; height: 2px; background: var(--immobra-schiefer); content: ""; }
.nav-toggle__bar { top: 21px; }
.nav-toggle__bar::before { top: -6px; left: 0; }
.nav-toggle__bar::after { top: 6px; left: 0; }

/* Handy und Tablet: Menü klappt unter dem Header auf, Hauptpunkte als Akkordeon. Unten Platz für die Serviceleiste. */
@media (max-width: 1100px) {
	.nav-toggle { display: block; }
	.site-header__actions { display: none; }
	.site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0.25rem var(--immobra-gutter) 5.5rem; background: #FFFFFF; border-bottom: 1px solid var(--immobra-line); box-shadow: 0 24px 40px -28px rgba(43, 49, 55, 0.45); }
	.site-nav.is-open { display: block; }
	.site-nav__list { flex-direction: column; }
	.site-nav__item { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--immobra-line); }
	.site-nav__link { flex: 1; padding: 0.95rem 0; border: 0; font-size: 0.82rem; }
	.site-nav__more { width: 44px; height: 44px; }
	.mega { display: none; flex-basis: 100%; }
	.site-nav__item.is-open > .mega { display: block; }
	.mega__inner { padding: 0 0 1.1rem; }
	/* Auf dem Handy nur der Link des Hauptpunkts (z. B. „Alle Immobilien“), ohne Titel und Einleitung */
	.mega__intro { padding: 0.15rem 0 0.9rem; }
	.mega__title, .mega__text { display: none; }
	.mega__more { display: inline-block; padding-bottom: 0.15rem; border-bottom: 1px solid var(--immobra-gold); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--immobra-gold-text); text-decoration: none; }
	.mega__more::after { content: " →"; }
	.mega__cols { display: grid; gap: 1.1rem 2rem; }
	.mega__heading { margin-bottom: 0.2rem; padding-bottom: 0.4rem; }
	.mega__col a:not(.mega__heading) { padding: 0.5rem 0 0.5rem 0.75rem; }
	.site-nav__extra { display: grid; justify-items: start; gap: 1.1rem; padding-top: 1.25rem; }
	.site-nav__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; }
	.site-nav__meta a { font-size: 0.875rem; font-weight: 600; color: var(--immobra-schiefer); text-decoration: none; }
}
@media (min-width: 600px) and (max-width: 1100px) {
	.mega__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Buttons */
.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	/* Versalien mit Sperrung sitzen sonst knapp 1 px zu hoch und zu weit links: Nunito Sans hat unter der Grundlinie mehr Raum als
	   über den Großbuchstaben, und letter-spacing steht auch nach dem letzten Buchstaben. Gemessen 14.09.2026 (15,1 px oben zu
	   16,9 px unten, 18,3 px links zu 20,2 px rechts); 0,07em gleicht beides aus, Größe des Knopfs bleibt gleich. */
	padding: calc(0.8rem + 0.07em) calc(1.15rem - 0.07em) calc(0.8rem - 0.07em) calc(1.15rem + 0.07em); border: 0; border-radius: 3px;
	font-family: var(--wp--preset--font-family--sans); font-size: 0.8125rem; font-weight: 800;
	letter-spacing: 0.07em; text-transform: uppercase; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.button--gold { background: var(--immobra-gold); color: var(--immobra-schiefer); }
.button--gold:hover { background: var(--immobra-gold-hover); color: var(--immobra-schiefer); }
.button--dark { background: var(--immobra-schiefer); color: #FFFFFF; }
.button--dark:hover { color: #FFFFFF; }
.button--line { background: transparent; color: var(--immobra-schiefer); box-shadow: inset 0 0 0 1px #C9CED8; }
.button--line:hover { color: var(--immobra-schiefer); box-shadow: inset 0 0 0 1px var(--immobra-gold); }

/* Inhalt */
.site-main { display: block; }
.content-area { padding-block: clamp(2rem, 5vw, 4.5rem); }
.entry { max-width: var(--wp--style--global--content-size, 720px); margin-inline: auto; }
.entry-header { margin-bottom: 2rem; }
/* Leiste unter der Navigation, Abstand wie .ob-kopfbereich der Immobilienseiten; der Inhalt rückt dafür näher heran. */
.krumen-leiste { padding-top: clamp(1.5rem, 4vw, 2.75rem); }
.krumen-leiste + .content-area { padding-top: clamp(1.25rem, 3.5vw, 2.75rem); }
.krumen { display: flex; flex-wrap: wrap; gap: 0.3rem 0.5rem; margin: 0; font-size: 0.8rem; line-height: 1.4; color: var(--immobra-muted); }
.krumen a { color: var(--immobra-muted); text-decoration: none; }
.krumen a:hover { color: var(--immobra-schiefer); text-decoration: underline; }
.krumen [aria-current] { overflow: hidden; max-width: 34ch; text-overflow: ellipsis; white-space: nowrap; color: var(--immobra-schiefer); }
.entry-header h1, .archive-header h1 { margin: 0; text-wrap: balance; }
.entry-meta { font-size: 0.8125rem; color: var(--immobra-muted); }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content h2, .entry-content h3 { margin-top: 2em; text-wrap: balance; }
.entry-content .alignwide { max-width: var(--immobra-wide); margin-inline: auto; }
.entry-content .alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }

.archive-header { margin-bottom: 2rem; }
.post-list { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.post-card { padding-top: 1rem; border-top: 2px solid var(--immobra-schiefer); }
.post-card h2 { margin: 0.35rem 0; font-family: var(--wp--preset--font-family--sans); font-size: 1.15rem; font-weight: 800; letter-spacing: 0; text-transform: none; }
.post-card a { text-decoration: none; }

/* Footer */
/* Footer: Marke und Kontakt, Linkspalten, Vertrauensleiste (Verbände, Google, diskret.immo), Rechtliches */
.site-footer { margin-top: 4rem; background: #23282D; color: #9EA5B1; font-size: 0.875rem; line-height: 1.6; }
.site-footer a { color: #C8CDD5; text-decoration: none; }
.site-footer a:hover { color: #FFFFFF; }
.site-footer__top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-block: clamp(3rem, 6vw, 4.5rem) 2.5rem; }
@media (min-width: 960px) { .site-footer__top { grid-template-columns: minmax(0, 0.85fr) minmax(0, 2fr); gap: 4.5rem; } }
.site-footer__logo { display: inline-block; }
.site-footer__logo img { display: block; width: 180px; height: auto; }
.site-footer__claim { max-width: 22rem; margin: 1.25rem 0 0; color: #C8CDD5; }
.site-footer address { margin-top: 1.1rem; font-style: normal; line-height: 1.75; }
.site-footer__hours { margin: 0.6rem 0 0; }
.site-footer__hours span { display: block; font-size: 0.8rem; }
.site-footer__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin: 1.5rem 0 0; }
.site-footer .site-footer__cta .button { color: var(--immobra-schiefer); }
.site-footer .site-footer__cta-link { padding-bottom: 2px; border-bottom: 1px solid var(--immobra-gold); font-weight: 700; color: #FFFFFF; }
.site-footer__nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 2rem 2.5rem; align-content: start; }
.site-footer__heading { margin: 0 0 0.9rem; padding-bottom: 0.6rem; border-bottom: 1px solid #353B42; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--immobra-gold); }
.site-footer__nav ul { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.site-footer__nav a[aria-current] { color: #FFFFFF; }
.site-footer__trust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; padding-block: 1.75rem; border-top: 1px solid #353B42; }
.site-footer__seals { display: flex; align-items: center; gap: 0.9rem; }
.site-footer__label { margin: 0; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.site-footer__seals a { display: block; transition: opacity 0.15s ease; }
.site-footer__seals a:hover { opacity: 0.85; }
.site-footer__seals img { display: block; width: 56px; height: 56px; border-radius: 3px; }
.site-footer__bvfi img { border-radius: 50%; }
.site-footer__google { display: inline-flex; align-items: center; gap: 0.6rem; }
.site-footer__stars { display: inline-flex; gap: 2px; color: var(--immobra-gold); }
.site-footer__stars svg { display: block; }
.site-footer__google strong { color: #FFFFFF; }
.site-footer__rating { display: grid; gap: 0.3rem; justify-items: start; }
.site-footer__rating .bewertungen-hinweis-link { font-size: 0.75rem; color: inherit; opacity: 0.8; }

/* Hinweis zur Echtheit von Kundenstimmen (§ 5b Abs. 3 UWG, inc/kundenstimmen.php, Checkliste A9) */
.bewertungen-hinweis { margin: 1rem 0 0; font-size: 0.8rem; line-height: 1.5; color: var(--immobra-muted); scroll-margin-top: 7rem; }
.bewertungen-hinweis--offen { padding: 0.6rem 0.8rem; border: 1px dashed var(--immobra-gold); border-radius: 4px; background: #FBF6E6; color: #86660F; }
.bewertungen-hinweis-link { font-size: 0.85em; white-space: nowrap; }
.site-footer__platform { display: flex; align-items: center; gap: 1rem; max-width: 27rem; }
.site-footer__platform a { flex-shrink: 0; }
.site-footer__platform img { display: block; width: 140px; height: auto; }
.site-footer__platform p { margin: 0; padding-left: 1rem; border-left: 1px solid #353B42; font-size: 0.8rem; line-height: 1.5; }
@media (max-width: 600px) {
	.site-footer__platform { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
	.site-footer__platform p { padding-left: 0; border-left: 0; }
}
.site-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem; padding-block: 1.25rem; border-top: 1px solid #353B42; font-size: 0.75rem; }
.legal-nav { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin: 0; padding: 0; list-style: none; }

/* Mega-Menü auf großen Bildschirmen: Panel über die volle Headerbreite (.site-header ist sticky und damit Bezugsrahmen). */
@media (min-width: 1101px) {
	.site-header__inner { position: static; }
	.site-nav { display: flex; align-self: stretch; }
	.site-nav__list { gap: clamp(0.9rem, 1.5vw, 1.6rem); }
	.site-nav__item { display: flex; align-items: center; gap: 0.3rem; }
	.site-nav__more { width: 16px; height: 28px; }
	.mega {
		position: absolute; top: 100%; left: 0; right: 0; z-index: 60;
		background: #FFFFFF; border-top: 1px solid var(--immobra-line);
		box-shadow: 0 30px 50px -30px rgba(43, 49, 55, 0.4);
		visibility: hidden; opacity: 0; transform: translateY(-6px);
		transition: opacity 0.14s ease, transform 0.14s ease, visibility 0s linear 0.14s;
	}
	.site-nav__item.is-open > .mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
	.mega__inner { display: grid; grid-template-columns: minmax(15rem, 19rem) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); padding-block: 2.25rem 2.5rem; }
	.mega__intro { padding-right: clamp(1.5rem, 3vw, 3rem); border-right: 1px solid var(--immobra-line); }
	.mega__title { margin: 0 0 0.6rem; font-family: var(--wp--preset--font-family--display); font-size: 1.75rem; line-height: 1.15; color: var(--immobra-schiefer); }
	.mega__text { margin: 0 0 1.1rem; font-size: 0.9rem; line-height: 1.6; color: var(--immobra-muted); }
	.mega__more { padding-bottom: 0.15rem; border-bottom: 1px solid var(--immobra-gold); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--immobra-gold-text); text-decoration: none; }
	.mega__more::after { content: " →"; }
	.mega__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); align-content: start; }
	/* Vier Spalten nebeneinander (z. B. „Für Eigentümer“), statt die vierte in eine zweite Reihe zu schieben. */
	.mega__cols:has(> .mega__col:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.25rem, 2.2vw, 2.25rem); }
}
/* Platz im Kopf (fünf Hauptpunkte, gemessen 14.09.2026): Hauptpunkte einzeilig. Kontakt-Knopf ab 1180 px (darunter in der
   Kopfleiste), Goldknopf erst ab 1400 px mit „Kostenlose“, unter 1280 px rücken die Punkte enger zusammen. */
@media (min-width: 1101px) { .site-nav__link { white-space: nowrap; } }
/* Seit „Für Eigentümer“ (14.09.2026, drei Hauptpunkte) passen Kontakt und „Kostenlose Bewertung“ ab 1101 px (gemessen: 24 px Luft). */
@media (min-width: 1101px) { .topbar__kontakt { display: none; } }
/* Öffnen per Maus mit kurzer Verzögerung, damit Überfahren auf dem Weg zum Button kein Panel aufreißt. */
@media (min-width: 1101px) and (hover: hover) {
	.site-nav__item:hover > .site-nav__link, .site-nav__item:hover > .site-nav__more { color: var(--immobra-gold-text); }
	.site-nav__item:hover > .site-nav__link { border-color: var(--immobra-gold); }
	.site-nav__item:hover > .mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0.08s; }
}
@media (prefers-reduced-motion: reduce) {
	.mega, .site-nav__more::before { transition: none; }
}

/* ───────── Startseite ───────── */
.home .site-footer { margin-top: 0; }
.eyebrow { margin: 0 0 0.4rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--immobra-gold-text); }
.section-head { max-width: 62ch; margin-bottom: 2rem; }
.section-head h2 { margin: 0; text-wrap: balance; }
.section-lead { margin: 0.75rem 0 0; }
.section-foot { margin: 2rem 0 0; }
.home-section { padding-block: clamp(3rem, 7vw, 5rem); }
.home-section--tint { background: var(--immobra-nebel); }
.home-section--dark { background: var(--immobra-schiefer); color: #D3D8DF; }
.home-section--dark h2 { color: #FFFFFF; }
.home-section--dark .eyebrow { color: var(--immobra-gold); }
.button--block { display: flex; width: 100%; }
.text-link { display: inline-block; padding-bottom: 2px; border-bottom: 2px solid var(--immobra-gold); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--immobra-schiefer); text-decoration: none; }
.check-list { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 1.6rem; }
.check-list li::before { content: ""; position: absolute; left: 0.1rem; top: 0.4em; width: 0.8rem; height: 0.45rem; border-left: 2px solid var(--immobra-gold-text); border-bottom: 2px solid var(--immobra-gold-text); transform: rotate(-45deg); }

.hero {
	color: #FFFFFF;
	background-color: var(--immobra-schiefer);
	background-image:
		linear-gradient(95deg, rgba(43, 49, 55, 0.96) 0%, rgba(43, 49, 55, 0.82) 55%, rgba(43, 49, 55, 0.55) 100%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='400' viewBox='0 0 640 400'%3E%3Cg fill='none' stroke='%23CDA73A' stroke-opacity='.22' stroke-width='1'%3E%3Cpath d='M0 40 C120 0 220 90 340 50 S560 0 640 40'/%3E%3Cpath d='M0 105 C130 65 230 155 350 115 S570 65 640 105'/%3E%3Cpath d='M0 170 C140 130 240 220 360 180 S580 130 640 170'/%3E%3Cpath d='M0 235 C150 195 250 285 370 245 S590 195 640 235'/%3E%3Cpath d='M0 300 C160 260 260 350 380 310 S600 260 640 300'/%3E%3Cpath d='M0 365 C170 325 270 415 390 375 S610 325 640 365'/%3E%3C/g%3E%3C/svg%3E");
	background-size: auto, 640px 400px;
}
.hero__inner { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.8fr); gap: 2.5rem 3.5rem; align-items: center; padding-block: clamp(3rem, 7vw, 4.5rem) clamp(4.5rem, 9vw, 6.5rem); }
.hero__kicker { margin: 0 0 1rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--immobra-gold); }
.hero__title { margin: 0; color: #FFFFFF; font-size: clamp(1.9rem, 3.7vw, 3.1rem); line-height: 1.1; text-wrap: balance; }
.hero__title em { font-style: normal; color: var(--immobra-gold); }
.hero__lead { max-width: 52ch; margin: 1.1rem 0 1.4rem; font-size: 1.0625rem; color: #D3D8DF; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.hero__trust li { padding: 0.35rem 0.8rem; border-radius: 99px; background: rgba(255, 255, 255, 0.09); font-size: 0.8rem; color: #E3E6EB; }
.hero__card { display: grid; gap: 1rem; padding: 1.5rem; border-radius: 4px; background: #FFFFFF; color: var(--wp--preset--color--anthrazit, #424A59); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.6); }
.hero__card-title { margin: 0; font-size: 1.25rem; }
.hero__card-phone { margin: 0; font-size: 0.875rem; color: var(--immobra-muted); }
.hero__card-phone a { font-weight: 800; color: var(--immobra-schiefer); text-decoration: none; }
@media (max-width: 900px) { .hero__inner { grid-template-columns: 1fr; padding-bottom: 3rem; } }
/* Kopf mit Foto (Entwurf B, Freigabe IMMOBRA 22.09.2026): Havel-Foto über die ganze Breite, entsättigt und mit Schiefer-Verlauf
   abgedunkelt; links bleibt der Text klar lesbar, nach rechts wird das Wasser sichtbar. */
.hero:has(.hero__bild) { position: relative; overflow: hidden; }
@media (min-width: 901px) { .hero:has(.hero__bild) { background-image: none; } }
.hero__bild { position: absolute; inset: 0; margin: 0; }
.hero__bild picture, .hero__bild img { display: block; width: 100%; height: 100%; }
.hero__bild img { object-fit: cover; object-position: center 60%; filter: saturate(0.55) contrast(1.05); }
.hero__bild::after { content: ""; position: absolute; inset: 0; background: linear-gradient(95deg, rgba(38, 43, 49, 0.97) 0%, rgba(38, 43, 49, 0.9) 38%, rgba(38, 43, 49, 0.55) 70%, rgba(38, 43, 49, 0.35) 100%), linear-gradient(0deg, rgba(38, 43, 49, 0.7), rgba(38, 43, 49, 0) 35%); }
.hero__bild figcaption { display: none; }
.hero:has(.hero__bild) .hero__inner { position: relative; z-index: 1; }
@media (max-width: 900px) {
	.hero__bild { display: none; }
}

.quick-search { position: relative; z-index: 2; margin-top: -3rem; }
.quick-search__box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding: 1.25rem 1.5rem; border-radius: 4px; background: #FFFFFF; box-shadow: 0 24px 50px -24px rgba(43, 49, 55, 0.4), 0 0 0 1px var(--immobra-line); }
.quick-search__title { margin: 0; font-size: 1.1rem; }
.quick-search__count { display: block; margin-bottom: 0.2rem; font-family: var(--wp--preset--font-family--sans); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; color: var(--immobra-muted); }
.quick-search__links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.quick-search__links a { display: inline-block; padding: 0.55rem 0.9rem; border: 1px solid var(--immobra-line); border-radius: 3px; font-size: 0.875rem; font-weight: 700; color: var(--immobra-schiefer); text-decoration: none; }
.quick-search__links a:hover { border-color: var(--immobra-gold); }
.quick-search__links .is-primary a { background: var(--immobra-schiefer); border-color: var(--immobra-schiefer); color: #FFFFFF; }
@media (max-width: 900px) { .quick-search { margin-top: 0; padding-top: 1.5rem; } }

.card-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
/* Karten als Spalte: Links und Rechenbeispiele sitzen in jeder Karte einer Reihe auf derselben Höhe. */
.service-card { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: 1.5rem; border: 1px solid var(--immobra-line); border-radius: 4px; background: #FFFFFF; transition: box-shadow 0.2s; }
.service-card:hover { box-shadow: 0 18px 40px -22px rgba(43, 49, 55, 0.45); }
.service-card h3 { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: 1.25rem; font-weight: 400; letter-spacing: 0.05em; text-transform: uppercase; }
.service-card h3 a { color: var(--immobra-schiefer); text-decoration: none; }
.service-card h3 a::after { content: ""; position: absolute; inset: 0; }
.service-card p { margin: 0; }
.service-card .text-link { align-self: flex-start; margin-top: auto; }
.tool-card .tool-card__example { margin-top: auto; }
.tool-card .text-link { margin-top: 0; }
.entry-content > .wp-block-buttons + .check-list { margin-top: 1.5rem; }

.location-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 1.5rem; margin: 0; padding: 0; list-style: none; }
.location-list li { border-top: 1px solid var(--immobra-line); }
.location-list a { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.7rem 0; font-weight: 700; color: var(--immobra-schiefer); text-decoration: none; }
.location-list a:hover { color: var(--immobra-gold-text); }
.location-list small { font-weight: 600; color: var(--immobra-muted); }

.post-card h3 { margin: 0.35rem 0; font-family: var(--wp--preset--font-family--sans); font-size: 1.15rem; font-weight: 800; letter-spacing: 0; text-transform: none; }
.post-card p { margin: 0; }
/* Startseitentext aus dem Editor: jedes Thema als Zeile „Überschrift links, Text rechts“ im selben Raster wie
   „Brandenburg an der Havel in Zahlen“ und „Häufige Fragen“ (0,8 : 1,2); Kundenstimmen über die volle Breite. */
.home-content .entry-content { max-width: none; }
.home-content .entry-content > .home-block { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 1rem clamp(2rem, 5vw, 4.5rem); align-items: start; margin-top: 0; padding-block: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--immobra-line); }
.home-content .entry-content > .home-block:first-child { padding-top: 0; border-top: 0; }
.home-content .entry-content > .home-block:last-child { padding-bottom: 0; }
/* WordPress gibt Kindern von Gruppenblöcken (is-layout-flow) oben 24 px Abstand; im Raster würde der Text sonst tiefer als die Überschrift beginnen. */
.home-content .home-block > *, .home-content .home-block__body > * { max-width: none; margin-inline: 0; }
.home-content .home-block > * { margin-block: 0; }
.home-content .home-block > h2 { margin: 0; text-wrap: balance; }
.home-content .home-block > .home-block__body { max-width: 68ch; }
.home-content .home-block__body > * { margin-block: 0; }
.home-content .home-block__body > * + * { margin-top: 1.1em; }
.home-content .home-block__body > h3 { margin-top: 1.75em; }
.home-content .entry-content > .home-block--wide { grid-template-columns: minmax(0, 1fr); }
.home-content .home-block--wide > .home-block__body { max-width: none; }
@media (max-width: 900px) { .home-content .entry-content > .home-block { grid-template-columns: minmax(0, 1fr); } }

.contact-band { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: center; }
.contact-band h2 { margin: 0; }
.contact-band__phone { display: block; margin: 0.5rem 0 0.25rem; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3vw, 2.2rem); letter-spacing: 0.04em; color: #FFFFFF; text-decoration: none; }
.contact-band p { margin: 0; }
.contact-band p a { color: #FFFFFF; }
@media (max-width: 700px) { .contact-band { grid-template-columns: 1fr; } }
.tool-card__example { padding-top: 0.6rem; border-top: 1px dashed var(--immobra-line); font-weight: 800; font-variant-numeric: tabular-nums; color: var(--immobra-schiefer); }

/* Startseite: Brandenburg an der Havel in Zahlen */
.city-stats { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 2rem clamp(2rem, 5vw, 4.5rem); align-items: center; }
.city-stats__head h2 { margin: 0; text-wrap: balance; }
.city-stats__head .section-lead { max-width: 52ch; }
.city-stats__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin: 1.5rem 0 0; }
.text-link--light { color: #FFFFFF; }
.city-stats__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 4px; background: rgba(255, 255, 255, 0.14); }
.city-stat { display: grid; gap: 0.3rem; align-content: start; padding: 1.25rem 1.4rem; background: var(--immobra-schiefer); }
.city-stat__value { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.1; font-variant-numeric: tabular-nums; color: #FFFFFF; }
.city-stat__value small { display: block; margin-top: 0.2rem; font-family: var(--wp--preset--font-family--sans); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; color: var(--immobra-gold); }
.city-stat__label { font-weight: 700; color: #E3E6EB; }
.city-stat__meta { font-size: 0.8125rem; font-variant-numeric: tabular-nums; color: #AEB5C0; }
.city-stats__source { margin: 0.9rem 0 0; font-size: 0.75rem; color: #AEB5C0; }
.city-stats__source a { color: #D3D8DF; }
/* Dieselben Kacheln hell im Seiteninhalt ([immobra_stadtzahlen], inc/marktdaten.php) */
.city-stats-hell { margin: 1.75rem 0; }
.city-stats-hell .city-stats__list { padding: 0; list-style: none; border-color: var(--immobra-line); background: var(--immobra-line); }
.city-stats-hell .city-stat { margin: 0; background: #FFFFFF; }
.city-stats-hell .city-stat__value, .city-stats-hell .city-stat__label { color: var(--immobra-schiefer); }
.city-stats-hell .city-stat__value small { color: var(--immobra-gold-text); }
.city-stats-hell .city-stat__meta, .city-stats-hell .city-stats__source { color: var(--immobra-muted); }
.city-stats-hell .city-stats__source a { color: var(--immobra-schiefer); }
@media (max-width: 900px) { .city-stats { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .city-stats__list { grid-template-columns: minmax(0, 1fr); } }

/* Startseite: Text aus dem Editor und Kundenstimmen (überarbeitet 14.09.2026: mitlaufende Überschriften, Leistungen als Raster,
   Verkaufsschritte als Kacheln, Kundenstimmen als dunkles Band über die volle Breite) */
.home-content .entry-content > h2:first-child { margin-top: 0; }
@media (min-width: 901px) {
	.home-content .entry-content > .home-block:not(.home-block--wide):not(:has(.check-list)) > h2 { position: sticky; top: 7.5rem; }
}
.home-content .entry-content > .home-block:has(.check-list) { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
.home-content .home-block:has(.check-list) > .home-block__body { max-width: none; }
/* Feste Spaltenzahl (sechs Leistungen: 3 × 2, 2 × 3, 1 × 6), sonst bleiben im Raster leere graue Felder. */
.home-content .home-block .check-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--immobra-line); border-radius: 6px; background: var(--immobra-line); }
.home-content .home-block .check-list li { margin: 0; padding: 1.35rem 1.5rem 1.45rem 3.4rem; background: #FFFFFF; line-height: 1.6; }
.home-content .home-block .check-list li::before { top: 1.75rem; left: 1.5rem; }
.home-content .home-block .check-list li strong { color: var(--immobra-schiefer); }
@media (min-width: 640px) { .home-content .home-block .check-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .home-content .home-block .check-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.home-content .home-block__body > ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0.75rem; margin-top: 1.25rem; padding: 0; list-style: none; counter-reset: schritt; }
.home-content .home-block__body > ol > li { margin: 0; padding: 1.1rem 1.25rem 1.25rem; border-radius: 4px; background: var(--immobra-nebel); line-height: 1.55; counter-increment: schritt; }
.home-content .home-block__body > ol > li::before { content: counter(schritt, decimal-leading-zero); display: block; margin-bottom: 0.45rem; font-family: var(--wp--preset--font-family--display); font-size: 1.6rem; line-height: 1; color: var(--immobra-gold-text); }
.home-content .home-block__body > ol > li strong { color: var(--immobra-schiefer); }

.home-content:has(.testimonials) { padding-bottom: 0; }
.home-content .entry-content > .home-block--wide:has(.testimonials) { gap: 1.75rem; margin-top: clamp(1rem, 3vw, 2rem); padding-block: clamp(3rem, 6vw, 4.75rem); border-top: 0; background: var(--immobra-schiefer); box-shadow: 0 0 0 100vmax var(--immobra-schiefer); clip-path: inset(0 -100vmax); color: #D3D8DF; }
.home-content .home-block--wide:has(.testimonials) > h2 { color: #FFFFFF; }
.home-content .testimonials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 6px; background: rgba(255, 255, 255, 0.12); }
.home-content .testimonials > * { margin: 0; }
@media (max-width: 900px) { .home-content .testimonials { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .home-content .testimonials { grid-template-columns: minmax(0, 1fr); } }
.home-content .testimonials .wp-block-quote { position: relative; display: flex; flex-direction: column; margin: 0; padding: 2.6rem 1.6rem 1.5rem; border: 0; border-radius: 0; background: var(--immobra-schiefer); }
.home-content .testimonials .wp-block-quote::before { content: "\201C"; position: absolute; top: 0.55rem; left: 1.45rem; font-family: var(--wp--preset--font-family--display); font-size: 3rem; line-height: 1; color: var(--immobra-gold); }
.home-content .testimonials .wp-block-quote p { margin: 0; font-size: 1rem; line-height: 1.65; color: #E3E6EB; }
.home-content .testimonials cite { display: flex; align-items: center; gap: 0.6rem; margin-top: auto; padding-top: 1.1rem; font-size: 0.78rem; font-style: normal; font-weight: 800; letter-spacing: 0.03em; color: #FFFFFF; }
.home-content .testimonials cite::before { content: ""; flex: none; width: 1.5rem; height: 1px; background: var(--immobra-gold); }

/* Startseite: Kopfzeile mit Link rechts (Aktuelle Angebote, Ratgeber) */
.home-kopfzeile { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.home-kopfzeile h2 { margin: 0; text-wrap: balance; }

/* Startseite: aktuelle Angebote, ein großes und zwei kleinere Objekte mit Text auf dem Foto */
.home-objekte__raster { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(0.75rem, 1.4vw, 1.1rem); }
.home-objekt { position: relative; display: flex; overflow: hidden; aspect-ratio: 4 / 3.3; border-radius: 6px; background: var(--immobra-schiefer); isolation: isolate; }
@media (min-width: 900px) {
	.home-objekt { aspect-ratio: auto; }
	.home-objekte__raster--3 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: repeat(2, minmax(0, 1fr)); height: clamp(32rem, 45vw, 40rem); }
	.home-objekte__raster--3 .home-objekt--gross { grid-row: 1 / -1; }
	.home-objekte__raster--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); height: clamp(24rem, 34vw, 30rem); }
	.home-objekte__raster--1 { height: clamp(24rem, 40vw, 34rem); }
}
.home-objekt__bild { position: absolute; inset: 0; z-index: -1; }
.home-objekt__bild img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1); }
.home-objekt__bild::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 23, 27, 0.92) 0%, rgba(20, 23, 27, 0.6) 34%, rgba(20, 23, 27, 0.08) 68%, rgba(20, 23, 27, 0) 100%); }
/* Kleine Karten: Text beginnt weiter oben im Bild, daher kräftigerer Verlauf (Objektart in Gold auf hellen Dächern lesbar) */
.home-objekt:not(.home-objekt--gross) .home-objekt__bild::after { background: linear-gradient(to top, rgba(20, 23, 27, 0.94) 0%, rgba(20, 23, 27, 0.78) 45%, rgba(20, 23, 27, 0.25) 78%, rgba(20, 23, 27, 0) 100%); }
.home-objekt__zeile, .home-objekt__titel { text-shadow: 0 1px 12px rgba(20, 23, 27, 0.55); }
.home-objekt:hover .home-objekt__bild img { transform: scale(1.04); }
.home-objekt__marken { position: absolute; top: 1rem; left: 1rem; z-index: 2; display: flex; flex-wrap: wrap; gap: 0.35rem; pointer-events: none; }
.home-objekt__marke { padding: 0.32rem 0.65rem; border-radius: 3px; background: rgba(20, 23, 27, 0.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: #FFFFFF; }
.home-objekt__marke--neu { background: var(--immobra-gold); color: var(--immobra-schiefer); }
.home-objekt__marke--reserviert { background: rgba(255, 255, 255, 0.92); color: var(--immobra-schiefer); }
.home-objekt__text { display: grid; gap: 0.55rem; align-self: end; width: 100%; padding: clamp(1.1rem, 2.4vw, 1.9rem); color: #FFFFFF; }
.home-objekt__zeile { margin: 0; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--immobra-gold); }
.home-objekt__titel { display: -webkit-box; overflow: hidden; margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-weight: 400; line-height: 1.25; letter-spacing: 0.01em; text-transform: none; color: #FFFFFF; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.home-objekt--gross .home-objekt__titel { max-width: 28ch; font-size: clamp(1.35rem, 2.3vw, 1.95rem); }
.home-objekt__titel a { background: linear-gradient(var(--immobra-gold), var(--immobra-gold)) no-repeat left bottom / 0 1px; color: inherit; text-decoration: none; transition: background-size 0.35s; }
.home-objekt:hover .home-objekt__titel a { background-size: 100% 1px; }
.home-objekt__titel a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.home-objekt__titel a:focus-visible { outline: none; }
.home-objekt:has(.home-objekt__titel a:focus-visible) { outline: 2px solid var(--immobra-gold); outline-offset: 3px; }
.home-objekt__fuss { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0.6rem 1.5rem; padding-top: 0.85rem; border-top: 1px solid rgba(255, 255, 255, 0.22); }
.home-objekt__fakten { display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; font-variant-numeric: tabular-nums; color: #E3E6EB; }
.home-objekt__fakten li { display: inline-flex; align-items: center; gap: 0.4rem; }
.home-objekt .ob-icon { display: block; flex: none; width: 1.05rem; height: 1.05rem; fill: none; stroke: var(--immobra-gold); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.home-objekt__preis { display: grid; margin: 0 0 0 auto; text-align: right; line-height: 1.15; }
.home-objekt__preis small { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: #AEB5C0; }
.home-objekt__preis strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.25rem, 1.9vw, 1.6rem); font-weight: 400; font-variant-numeric: tabular-nums; color: #FFFFFF; }

/* Startseite: Ratgeber als Karten mit Bild */
.home-ratgeber__liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 2.25rem clamp(1.25rem, 2.5vw, 2rem); }
.home-ratgeber__karte { position: relative; display: grid; align-content: start; gap: 0.5rem; }
.home-ratgeber__bild { overflow: hidden; aspect-ratio: 3 / 2; margin-bottom: 0.65rem; border-radius: 6px; background: var(--immobra-nebel); }
.home-ratgeber__bild img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1); }
.home-ratgeber__karte:hover .home-ratgeber__bild img { transform: scale(1.04); }
.home-ratgeber__bild--leer { display: grid; place-items: center; }
.home-ratgeber__bild--leer svg { width: 3.5rem; height: 3.5rem; fill: none; stroke: var(--immobra-gold-text); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.home-ratgeber__meta { display: flex; flex-wrap: wrap; gap: 0.2rem 0.75rem; margin: 0; font-size: 0.78rem; color: var(--immobra-muted); }
.home-ratgeber__meta span { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--immobra-gold-text); }
.home-ratgeber__titel { margin: 0; font-family: var(--wp--preset--font-family--sans); font-size: 1.15rem; font-weight: 800; line-height: 1.35; letter-spacing: 0; text-transform: none; }
.home-ratgeber__titel a { background: linear-gradient(var(--immobra-gold), var(--immobra-gold)) no-repeat left bottom / 0 1px; color: var(--immobra-schiefer); text-decoration: none; transition: background-size 0.35s; }
.home-ratgeber__karte:hover .home-ratgeber__titel a { background-size: 100% 1px; }
.home-ratgeber__titel a::after { content: ""; position: absolute; inset: 0; }
.home-ratgeber__text { margin: 0; color: var(--immobra-muted); }
/* Themen-Ratgeber als filigraner Hinweis über den Karten (Wohnen im Alter, 15.09.2026) */
.home-ratgeber__thema { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.75rem 1.25rem; margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); padding: 1rem 1.25rem; border: 1px solid var(--immobra-line); border-left: 2px solid var(--immobra-gold); border-radius: 4px; background: #FFFFFF; color: inherit; text-decoration: none; transition: border-color 0.2s, box-shadow 0.2s; }
.home-ratgeber__thema:hover { border-color: var(--immobra-gold); box-shadow: 0 22px 40px -34px rgba(43, 49, 55, 0.55); }
.home-ratgeber__thema:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 3px; }
.home-ratgeber__thema-icon { width: 4rem; height: auto; }
.home-ratgeber__thema-text { display: grid; gap: 0.15rem; }
.home-ratgeber__thema-label { font-size: 0.66rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; color: var(--immobra-gold-text); }
.home-ratgeber__thema-text strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.15rem, 2vw, 1.35rem); font-weight: 400; color: var(--immobra-schiefer); }
.home-ratgeber__thema-text span:last-child { font-size: 0.9rem; color: var(--immobra-muted); }
.home-ratgeber__thema-link { grid-column: 1 / -1; justify-self: start; padding-bottom: 1px; border-bottom: 1px solid var(--immobra-gold); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--immobra-schiefer); }
@media (min-width: 760px) { .home-ratgeber__thema { grid-template-columns: auto minmax(0, 1fr) auto; } .home-ratgeber__thema-link { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) { .home-ratgeber__thema { transition: none; } }

/* Startseite: Kontakt mit Ansprechpartner */
.home-kontakt__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem 4.5rem; align-items: center; }
@media (min-width: 900px) { .home-kontakt__inner { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); } }
.home-kontakt h2 { margin: 0; text-wrap: balance; }
.home-kontakt__lead { max-width: 50ch; margin: 0.9rem 0 0; }
.home-kontakt__wege { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1px; overflow: hidden; margin: 1.9rem 0 0; padding: 0; list-style: none; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 4px; background: rgba(255, 255, 255, 0.14); }
.home-kontakt__wege li { display: grid; gap: 0.3rem; align-content: start; padding: 1rem 1.2rem 1.1rem; background: var(--immobra-schiefer); }
.home-kontakt__wege span { font-size: 0.64rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; color: var(--immobra-gold); }
.home-kontakt__wege a { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.1rem, 1.7vw, 1.35rem); font-variant-numeric: tabular-nums; color: #FFFFFF; text-decoration: none; overflow-wrap: anywhere; }
.home-kontakt__wege a:hover { color: var(--immobra-gold); }
.home-kontakt__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 1.9rem 0 0; }
/* Goldrahmen gleichmäßig um das Foto (vorher versetzt nach oben rechts; Rückmeldung IMMOBRA: „sitzt nicht im Rahmen“) */
.home-kontakt__person { position: relative; justify-self: center; width: min(calc(100% - 1.5rem), 22rem); margin: 0.65rem; isolation: isolate; }
.home-kontakt__person::before { content: ""; position: absolute; inset: -0.65rem; z-index: -1; border: 1px solid var(--immobra-gold); border-radius: 10px; }
.home-kontakt__person img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 6px; }
.home-kontakt__person figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: grid; gap: 0.1rem; padding: 0.8rem 1rem; border-radius: 4px; background: rgba(20, 23, 27, 0.78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.home-kontakt__person strong { font-family: var(--wp--preset--font-family--display); font-size: 1.15rem; font-weight: 400; color: #FFFFFF; }
.home-kontakt__person figcaption span { font-size: 0.78rem; color: #D3D8DF; }

@media (prefers-reduced-motion: reduce) {
	.home-objekt__bild img, .home-objekt__titel a, .home-ratgeber__bild img, .home-ratgeber__titel a { transition: none; }
	.home-objekt:hover .home-objekt__bild img, .home-ratgeber__karte:hover .home-ratgeber__bild img { transform: none; }
}

/* Startseite: häufige Fragen */
.home-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 1.5rem clamp(2rem, 5vw, 4.5rem); align-items: start; }
.home-faq__head { margin-bottom: 0; }
.home-faq__head .section-foot { margin-top: 1.25rem; }
@media (max-width: 900px) { .home-faq { grid-template-columns: minmax(0, 1fr); } }

/* Sprungziele nicht unter dem festen Header verstecken */
.calc, .form-section { scroll-margin-top: 7rem; }

/* ───────── Startseite: Einstieg in die Bewertung ───────── */
.hero__card-lead { margin: 0; color: var(--immobra-muted); }
.property-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.property-picker__option { display: flex; align-items: center; justify-content: center; min-height: 3.25rem; padding: 0.5rem; border: 1px solid #C3C8D1; border-radius: 3px; font-weight: 800; line-height: 1.2; text-align: center; hyphens: auto; color: var(--immobra-schiefer); text-decoration: none; transition: border-color 0.15s, background-color 0.15s; }
.property-picker__option:hover { border-color: var(--immobra-gold); background: #FBF6E6; color: var(--immobra-schiefer); }

/* ───────── Gravity Forms (Farben: inc/gravityforms.php) ───────── */
.form-section { margin-block: 2.5rem; }
.entry-content .form-section h2 { margin-top: 0; }
.gform_wrapper .gform_footer .gform_button { font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

/* ───────── Rechner ───────── */
.calc { margin-block: 2.5rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: 4px; background: var(--immobra-nebel); }
.calc .calc__title { margin: 0 0 0.3rem; }
.calc .calc__intro { margin: 0 0 1.5rem; }
.calc__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 1.5rem 2rem; align-items: start; }
.calc__fields { display: grid; gap: 0.9rem; margin: 0; }
.calc__field label { display: block; margin-bottom: 0.3rem; font-size: 0.875rem; font-weight: 700; color: var(--immobra-schiefer); }
.calc__input { display: flex; border: 1px solid #C3C8D1; border-radius: 3px; background: #FFFFFF; }
.calc__input:focus-within { border-color: var(--immobra-gold-text); box-shadow: 0 0 0 3px rgba(205, 167, 58, 0.35); }
.calc__input input { flex: 1; min-width: 0; padding: 0.6rem 0.75rem; border: 0; background: transparent; font: inherit; font-variant-numeric: tabular-nums; text-align: right; color: inherit; }
.calc__input input:focus { outline: none; }
.calc__input input[aria-invalid="true"] { background: #FBEDEA; }
.calc__unit { display: flex; align-items: center; min-width: 2.5rem; justify-content: center; border-left: 1px solid var(--immobra-line); font-weight: 700; color: var(--immobra-muted); }
.calc .calc__hint { margin: 0.3rem 0 0; font-size: 0.8rem; line-height: 1.45; color: var(--immobra-muted); }
.calc__results { padding: 1.25rem; border-radius: 4px; background: #FFFFFF; box-shadow: 0 0 0 1px var(--immobra-line); }
.calc__results dl { margin: 0 0 1.25rem; }
.calc__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid var(--immobra-line); }
.calc__row dt { font-size: 0.925rem; }
.calc__row dd { margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--immobra-schiefer); }
.calc__row--main { margin: 0.2rem 0; padding: 0.8rem 0; border-top: 2px solid var(--immobra-schiefer); border-bottom: 2px solid var(--immobra-schiefer); }
.calc__row--main dt { font-weight: 800; color: var(--immobra-schiefer); }
.calc__row--main dd { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.35rem, 2.6vw, 1.7rem); font-weight: 400; }
.objektarten { display: grid; gap: 0; margin: 1.5rem 0 2rem; padding: 0; list-style: none; border-top: 1px solid var(--immobra-line); }
.objektarten__eintrag { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 1.25rem; align-items: start; padding: 1.25rem 0; border-bottom: 1px solid var(--immobra-line); }
.objektarten__icon { width: 64px; height: auto; }
.objektarten h3 { margin: 0 0 0.35rem; font-size: 1.1rem; }
.objektarten p { margin: 0; }
@media (max-width: 480px) { .objektarten__eintrag { grid-template-columns: 44px minmax(0, 1fr); gap: 0.9rem; } .objektarten__icon { width: 44px; } }
.calc__unit { padding-inline: 0.5rem; }
.calc[data-calc="ertragswert_gewerbe"] .calc__row--main dd, .calc[data-calc="ertragswert"] .calc__row--main dd { font-size: clamp(1.2rem, 2vw, 1.4rem); }
.spst .spst__gruppe { margin: 0.6rem 0 -0.2rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--immobra-gold-text); }
.spst .spst__gruppe:first-child { margin-top: 0; }
/* Lange Auswahltexte dürfen die Eingabespalte nicht über den Ergebniskasten hinaus dehnen. */
.spst .calc__grid > * { min-width: 0; }
.spst .calc__input select { flex: 1; width: 100%; min-width: 0; text-overflow: ellipsis; padding: 0.6rem 0.75rem; border: 0; background: transparent; font: inherit; color: inherit; }
.spst .calc__input select:focus { outline: none; }
.spst .calc__input input[type="date"] { text-align: left; }
.spst__check label { display: flex; align-items: center; gap: 0.5rem; margin: 0; font-weight: 600; }
.spst__check input { width: 1.1rem; height: 1.1rem; accent-color: var(--immobra-gold-text); }
.spst .spst__status { margin: 0 0 0.9rem; padding: 0.7rem 0.85rem; border-radius: 3px; background: var(--immobra-nebel); font-size: 0.9rem; font-weight: 700; line-height: 1.45; color: var(--immobra-schiefer); }
.spst .spst__status--pflicht { background: #FBF3DD; }
.spst .spst__tipp { margin: -0.4rem 0 1.1rem; font-size: 0.875rem; line-height: 1.45; color: var(--immobra-schiefer); }
.spst .spst__tipp:empty { display: none; }
@media (min-width: 900px) { .spst .calc__results { position: sticky; top: 7rem; } }
/* Wohnrecht-Rechner (inc/wohnrecht.php) */
.wr .wr__person { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.75rem; }
.wr .wr__zwei { display: grid; gap: 0.9rem; }
.wr .wr__zwei[hidden] { display: none; }
@media (max-width: 420px) { .wr .wr__person { grid-template-columns: minmax(0, 1fr); } }
.calc__row--negativ dd, .calc__row--negativ dt { color: #9B2C1F; }
.kt .calc__input input { text-align: left; }
.kt .kt__status { margin: -0.4rem 0 1.1rem; font-size: 0.875rem; line-height: 1.45; color: var(--immobra-schiefer); }
.kt .kt__status:empty { display: none; }
.calc .calc__note { margin: 1rem 0 0; font-size: 0.8rem; line-height: 1.5; color: var(--immobra-muted); }
.calc .calc__partner { margin: 0.6rem 0 0; font-size: 0.78rem; line-height: 1.45; color: var(--immobra-muted); }
.justhome-links .benefit-card { display: flex; flex-direction: column; gap: 0.5rem; }
.justhome-links .text-link { align-self: flex-start; margin-top: auto; }
.entry-content .partner-note { font-size: 0.8rem; line-height: 1.5; color: var(--immobra-muted); }
.calc__input input::placeholder { color: #9AA1AD; text-align: right; }

/* ───────── Kostenrechner Hausmeister & Handwerker (inc/objektservice.php) ───────── */
.os-calc .calc__grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .os-calc .calc__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
.os-tabs { display: inline-flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 1.25rem; padding: 0.25rem; border-radius: 4px; background: #FFFFFF; box-shadow: 0 0 0 1px var(--immobra-line); }
.os-tab { padding: 0.6rem 1rem; border: 0; border-radius: 3px; background: transparent; font: inherit; font-size: 0.875rem; font-weight: 800; color: var(--immobra-schiefer); cursor: pointer; }
.os-tab[aria-selected="true"] { background: var(--immobra-schiefer); color: #FFFFFF; }
.os-tab:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 2px; }
.os-panel { display: grid; gap: 0.9rem; margin: 0; }
.os-panel[hidden], .os-calc [data-show][hidden] { display: none; }
.os-pills, .os-checks { min-width: 0; margin: 0; padding: 0; border: 0; }
.os-pills legend, .os-checks legend { margin-bottom: 0.4rem; padding: 0; font-size: 0.875rem; font-weight: 700; color: var(--immobra-schiefer); }
.os-pills__list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.os-pill, .os-check { position: relative; display: block; }
.os-pill input, .os-check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.os-pill span { display: inline-block; padding: 0.5rem 0.85rem; border: 1px solid #C3C8D1; border-radius: 99px; background: #FFFFFF; font-size: 0.875rem; font-weight: 700; color: var(--immobra-schiefer); cursor: pointer; }
.os-checks { display: grid; gap: 0.4rem; }
.os-check span { position: relative; display: block; padding: 0.55rem 0.8rem 0.55rem 2.3rem; border: 1px solid #C3C8D1; border-radius: 3px; background: #FFFFFF; font-size: 0.9rem; color: var(--immobra-schiefer); cursor: pointer; }
.os-check span::before { content: ""; position: absolute; left: 0.75rem; top: 50%; width: 1rem; height: 1rem; margin-top: -0.5rem; border: 1.5px solid #9AA1AD; border-radius: 2px; background: #FFFFFF; }
.os-check--inline span { display: inline-block; }
.os-pill input:checked + span, .os-check input:checked + span { border-color: var(--immobra-gold-text); background: #FBF6E6; }
.os-check input:checked + span::before { border-color: var(--immobra-gold-text); background: var(--immobra-gold); box-shadow: inset 0 0 0 2px #FFFFFF; }
.os-pill input:focus-visible + span, .os-check input:focus-visible + span { outline: 2px solid var(--immobra-gold); outline-offset: 2px; }
.os-select { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #C3C8D1; border-radius: 3px; background: #FFFFFF; font: inherit; color: inherit; }
.os-select:focus { border-color: var(--immobra-gold-text); outline: none; box-shadow: 0 0 0 3px rgba(205, 167, 58, 0.35); }
@media (min-width: 900px) { .os-result { position: sticky; top: 7rem; } }
.os-result__label { margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--immobra-gold-text); }
.os-result__range { margin: 0.25rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--immobra-schiefer); }
.os-result__period { margin: 0.2rem 0 1rem; font-size: 0.85rem; color: var(--immobra-muted); }
.calc__results .os-result__rows { margin: 0 0 1rem; }
.os-result { container-type: inline-size; }
.os-result__rows > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.5rem 0; border-top: 1px solid var(--immobra-line); font-size: 0.875rem; }
.os-result__rows dt { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
/* Schmale Ergebnisspalte (Inhaltsbreite 720 px): Betrag unter die Bezeichnung, damit nichts zusammenläuft. */
@container (max-width: 22rem) {
	.os-result__rows > div { display: block; }
	.os-result__rows dd { margin-top: 0.15rem; }
}
.os-result__rows dt small { display: block; margin-top: 0.1rem; font-size: 0.78rem; color: var(--immobra-muted); }
.os-result__rows dd { margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--immobra-schiefer); }
.os-result__tax { margin: 0 0 1rem; padding: 0.7rem 0.8rem; border-radius: 3px; background: #FBF6E6; font-size: 0.85rem; line-height: 1.45; }
.os-result__tax:empty { display: none; }
.os-result__note { margin: 0.75rem 0 0; font-size: 0.78rem; line-height: 1.45; color: var(--immobra-muted); }
.os-basis { margin-top: 1.25rem; font-size: 0.85rem; }
.os-basis summary { font-weight: 800; color: var(--immobra-schiefer); cursor: pointer; }
.os-basis ul { display: grid; gap: 0.4rem; margin: 0.6rem 0 0; padding-left: 1.1rem; color: var(--immobra-muted); }

/* ───────── Serviceleiste & Rückruf-Dialog ───────── */
.service-rail ul { margin: 0; padding: 0; list-style: none; }
.service-rail a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.03em; text-decoration: none; }
.service-rail svg { display: block; flex-shrink: 0; }
@media (max-width: 1100px) {
	body { padding-bottom: calc(3.75rem + env(safe-area-inset-bottom)); }
	.service-rail { position: fixed; inset: auto 0 0 0; z-index: 70; padding-bottom: env(safe-area-inset-bottom); background: var(--immobra-schiefer); box-shadow: 0 -10px 24px -14px rgba(0, 0, 0, 0.5); }
	.service-rail ul { display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; }
	.service-rail a { min-height: 3.75rem; color: #FFFFFF; }
	.service-rail__item--valuation a { background: var(--immobra-gold); color: var(--immobra-schiefer); }
	.service-rail__item--desktop { display: none; }
}
@media (min-width: 1101px) {
	.service-rail { position: fixed; top: 50%; right: 0; z-index: 45; transform: translateY(-50%); }
	.service-rail ul { display: grid; gap: 2px; }
	.service-rail li { position: relative; }
	.service-rail a { width: 3.25rem; height: 3.25rem; border-radius: 4px 0 0 4px; background: var(--immobra-schiefer); color: #FFFFFF; }
	.service-rail a span { position: absolute; top: 50%; right: calc(100% + 0.5rem); padding: 0.4rem 0.7rem; border-radius: 3px; background: var(--immobra-schiefer); font-size: 0.8rem; white-space: nowrap; opacity: 0; pointer-events: none; transform: translate(0.3rem, -50%); transition: opacity 0.15s, transform 0.15s; }
	.service-rail a:hover span,
	.service-rail a:focus-visible span { opacity: 1; transform: translate(0, -50%); }
	.service-rail a:hover { background: #424A59; }
	.service-rail__item--valuation a,
	.service-rail__item--valuation a span { background: var(--immobra-gold); color: var(--immobra-schiefer); }
	.service-rail__item--valuation a:hover { background: var(--immobra-gold-hover); }
	.service-rail__item--mobile { display: none; }
}
@media print { .service-rail { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .service-rail a span { transition: none; } }

/* ───────── Partnerprogramm ───────── */
.partner-teaser { padding-block: clamp(2.5rem, 6vw, 4rem); background: var(--immobra-schiefer); color: #D3D8DF; }
.has-partner-teaser .site-footer { margin-top: 0; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.partner-teaser__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.5rem 3.5rem; align-items: center; }
.partner-teaser h2 { margin: 0 0 0.75rem; color: #FFFFFF; text-wrap: balance; }
.partner-teaser .eyebrow { color: var(--immobra-gold); }
.partner-teaser p { margin: 0; }
.partner-teaser .check-list li::before { border-color: var(--immobra-gold); }
.partner-teaser__actions { display: flex; flex-wrap: wrap; grid-column: 1 / -1; align-items: center; gap: 1rem 1.75rem; }
.partner-teaser .text-link { color: #FFFFFF; }
@media (max-width: 800px) { .partner-teaser__inner { grid-template-columns: 1fr; } }

.benefit-grid { margin-block: 1.5rem 2.5rem; }
.entry-content .card-grid > * { margin-block: 0; }

/* Tippgeber-Prämie: Satz groß in der Karte, Beispieltabelle direkt darunter. */
.entry-content .tipp-bonus { margin-bottom: 1.25rem; }
/* ───────── Grafiken im IMMOBRA-Linienstil (tools/immobra_grafiken.py, inc/grafiken.php) ───────── */
.immobra-grafik { margin: 2rem 0; }
.entry-content .immobra-grafik { margin-inline: 0; }
.immobra-grafik svg { display: block; width: 100%; height: auto; overflow: visible; }
.immobra-grafik svg * { vector-effect: non-scaling-stroke; }
.immobra-grafik svg text { font-family: inherit; }
.immobra-grafik__schmal { display: none; }
@media (max-width: 559px) {
	.immobra-grafik__weit { display: none; }
	.immobra-grafik__schmal { display: block; max-width: 24rem; }
}
.immobra-grafik figcaption { margin-top: 0.85rem; font-size: 0.85rem; color: var(--immobra-muted); }
.service-card__icon { display: block; width: 4.5rem; height: auto; margin: 0 0 0.35rem; }
.property-picker__icon { display: block; width: 3.25rem; height: auto; }
.hero__card .property-picker__option { flex-direction: column; gap: 0.3rem; min-height: 5.75rem; }
.section-head--visual { display: grid; gap: 1.5rem 3rem; align-items: center; max-width: none; }
.section-head--visual > div { max-width: 62ch; }
.section-head__visual { display: block; width: 100%; max-width: 20rem; height: auto; }
@media (min-width: 900px) { .section-head--visual { grid-template-columns: minmax(0, 1fr) auto; } .section-head__visual { width: 20rem; } }
.contact-band__icon { display: block; width: 4.5rem; height: auto; margin-bottom: 0.75rem; }

/* ───────── Brandenburg-Karte auf der Startseite (inc/karte.php) ───────── */
.locations-map { display: grid; grid-template-areas: "head" "map" "list"; gap: 1.5rem 3.5rem; }
.locations-map__head { grid-area: head; margin-bottom: 0; }
.locations-map__figure { grid-area: map; margin: 0; }
.locations-map__list { grid-area: list; align-self: start; }
@media (min-width: 960px) {
	.locations-map { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); grid-template-rows: auto 1fr; grid-template-areas: "head map" "list map"; align-items: start; }
	.locations-map .location-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Übersichtsseite /unternehmen/standorte/ ([immobra_standorte]): schmale Inhaltsspalte, Karte über der Liste. */
.locations-map.locations-map--seite { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; grid-template-areas: "map" "list"; margin-block: 2rem; }
.karte-bb { display: block; width: 100%; max-width: 36rem; height: auto; margin-inline: auto; overflow: visible; }
.karte-bb * { vector-effect: non-scaling-stroke; }
.karte-bb path, .karte-bb circle { stroke-width: 1.5; stroke-linejoin: round; }
.karte-bb__land { fill: #FFFFFF; stroke: var(--immobra-schiefer); }
.karte-bb__berlin { fill: none; stroke: var(--immobra-muted); stroke-dasharray: 4 4; }
.karte-bb text { font-family: inherit; font-size: 13px; paint-order: stroke; stroke: #FFFFFF; stroke-width: 3px; stroke-linejoin: round; }
.karte-bb__gebiet { font-size: 12px; fill: var(--immobra-muted); }
.karte-bb__ort text { font-weight: 800; fill: var(--immobra-schiefer); }
.karte-bb__flaeche { fill: transparent; stroke: none; }
.karte-bb__ring { fill: none; stroke: transparent; }
.karte-bb__punkt { fill: #FFFFFF; stroke: var(--immobra-schiefer); transition: fill 0.15s ease, stroke 0.15s ease; }
.karte-bb__ort--zentrale .karte-bb__punkt { fill: var(--immobra-gold); stroke: var(--immobra-gold); }
.karte-bb__ort--zentrale .karte-bb__ring { stroke: var(--immobra-gold); stroke-opacity: 0.5; }
.karte-bb__ort:hover .karte-bb__punkt,
.karte-bb__ort:focus-visible .karte-bb__punkt { fill: var(--immobra-gold); stroke: var(--immobra-gold); }
.karte-bb__ort:hover .karte-bb__ring,
.karte-bb__ort:focus-visible .karte-bb__ring { stroke: var(--immobra-gold); stroke-opacity: 1; }
.karte-bb__ort:hover text,
.karte-bb__ort:focus-visible text { fill: var(--immobra-gold-text); }
.karte-bb__ort:focus-visible { outline: none; }
.locations-map__figure figcaption { margin-top: 0.75rem; font-size: 0.8rem; text-align: center; color: var(--immobra-muted); }
.locations-map__source { display: block; margin-top: 0.2rem; font-size: 0.7rem; }
.locations-map__source a { color: inherit; }
@media (max-width: 599px) {
	.karte-bb text { font-size: 16px; }
	.karte-bb__gebiet { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .karte-bb__punkt { transition: none; } }

/* ───────── Marktdaten: Punktdiagramme, Preistabellen, Preis-Check (inc/marktdaten.php) ───────── */
/* Reihenfarben mit scripts/validate_palette.js (dataviz) geprüft; Gold liegt unter 3:1 gegen Weiß, deshalb immer mit Legende und Tabellenansicht. */
:root { --immobra-chart-a: #CDA73A; --immobra-chart-b: #2F6DB0; }
.marktgrafik { --marktgrafik-name: 12rem; position: relative; margin: 2.5rem 0; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid var(--immobra-line); border-radius: 4px; background: #FFFFFF; }
.marktgrafik__titel { margin: 0; font-size: 1.05rem; font-weight: 800; line-height: 1.3; color: var(--immobra-schiefer); text-wrap: balance; }
.marktgrafik__fazit { margin: 0.35rem 0 1rem; font-size: 0.95rem; line-height: 1.5; color: var(--immobra-muted); }
.marktgrafik__legende { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin: 0 0 1rem; padding: 0; list-style: none; font-size: 0.875rem; }
.marktgrafik__legende li { display: flex; align-items: center; gap: 0.45rem; margin: 0; }
.marktgrafik__schluessel { flex-shrink: 0; width: 12px; height: 12px; border-radius: 50%; }
.marktgrafik__schluessel--a, .marktgrafik__punkt--a { background: var(--immobra-chart-a); }
.marktgrafik__schluessel--b, .marktgrafik__punkt--b { background: var(--immobra-chart-b); }
.marktgrafik__achse, .marktgrafik__zeile { display: grid; grid-template-columns: var(--marktgrafik-name) minmax(0, 1fr); column-gap: 1rem; align-items: center; }
.marktgrafik__achse { margin-bottom: 0.3rem; font-size: 0.75rem; color: var(--immobra-muted); font-variant-numeric: tabular-nums; }
.marktgrafik__einheit { font-weight: 700; }
.marktgrafik__ticks { position: relative; height: 1.3em; }
.marktgrafik__ticks span { position: absolute; left: var(--x); transform: translateX(-50%); white-space: nowrap; }
.marktgrafik__ticks span:first-child { transform: none; }
.marktgrafik__ticks span:last-child { transform: translateX(-100%); }
.marktgrafik__zeilen { margin: 0; padding: 0; list-style: none; }
.marktgrafik__zeile { min-height: 2rem; margin: 0; }
.marktgrafik__name { padding: 0.2rem 0; font-size: 0.875rem; line-height: 1.25; color: var(--immobra-schiefer); }
.marktgrafik__zeile.is-hervorgehoben .marktgrafik__name { font-weight: 800; }
.marktgrafik__spur { position: relative; align-self: stretch; min-height: 2rem; background-image: linear-gradient(to right, var(--immobra-line) 1px, transparent 1px); background-size: calc(100% / var(--intervalle, 4)) 100%; box-shadow: inset -1px 0 0 var(--immobra-line); }
.marktgrafik__verbindung { position: absolute; top: 50%; height: 2px; transform: translateY(-50%); background: #B9C0CC; }
.marktgrafik__punkt { position: absolute; top: 50%; box-sizing: content-box; width: 10px; height: 10px; margin: 0; padding: 0; border: 2px solid #FFFFFF; border-radius: 50%; transform: translate(-50%, -50%); cursor: pointer; }
.marktgrafik__punkt::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; }
.marktgrafik__punkt:focus-visible { outline: 2px solid var(--immobra-schiefer); outline-offset: 2px; }
.marktgrafik__tip { position: absolute; z-index: 5; max-width: min(22rem, 90%); padding: 0.45rem 0.65rem; border-radius: 3px; background: var(--immobra-schiefer); font-size: 0.8rem; line-height: 1.35; color: #FFFFFF; pointer-events: none; }
.marktgrafik__tabelle { margin-top: 1rem; font-size: 0.875rem; }
.marktgrafik__tabelle summary { cursor: pointer; font-weight: 700; color: var(--immobra-gold-text); }
.marktgrafik__tabelle summary:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 3px; }
.marktgrafik__scroll { margin-top: 0.5rem; overflow-x: auto; }
.marktgrafik__tabelle table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.marktgrafik__tabelle th, .marktgrafik__tabelle td { padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--immobra-line); text-align: left; }
.marktgrafik__tabelle th + th, .marktgrafik__tabelle td + td { text-align: right; white-space: nowrap; }
.marktgrafik__tabelle small, .marktpreise small { font-size: 0.78rem; font-weight: 400; color: var(--immobra-muted); }
.marktgrafik__quelle { margin-top: 0.9rem; font-size: 0.75rem; line-height: 1.45; color: var(--immobra-muted); }
.marktgrafik__quelle a { color: inherit; }
@media (max-width: 599px) {
	.marktgrafik { --marktgrafik-name: 7.5rem; }
	.marktgrafik__name { font-size: 0.8rem; }
	.marktgrafik__ticks span:nth-child(even):not(:last-child) { visibility: hidden; }
}
.preischeck__select { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #C3C8D1; border-radius: 3px; background: #FFFFFF; font: inherit; color: inherit; }
.preischeck__select:focus { outline: none; border-color: var(--immobra-gold-text); box-shadow: 0 0 0 3px rgba(205, 167, 58, 0.35); }
.preischeck__absenden { margin: 0.25rem 0 0; }
.preischeck__label { margin: 0; font-size: 0.875rem; font-weight: 700; color: var(--immobra-muted); }
.preischeck__zahl { margin: 0.2rem 0; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 800; line-height: 1.15; color: var(--immobra-schiefer); }
.preischeck__rechnung { margin: 0 0 0.75rem; font-size: 0.875rem; color: var(--immobra-muted); }
/* Form und Ergebnis nebeneinander erst, wenn beide Spalten mindestens 320 px breit sind; sonst untereinander. */
.preischeck .calc__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.preischeck__basis { margin: 0.9rem 0; }
.preischeck__basis > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--immobra-line); font-size: 0.875rem; }
.preischeck__basis dt { font-size: 0.8rem; font-weight: 700; color: var(--immobra-muted); }
.preischeck__basis dd { margin: 0; overflow-wrap: anywhere; hyphens: auto; }
.preischeck__basis a { color: inherit; }
.preischeck__hinweis, .preischeck__meldung { margin: 0.75rem 0; font-size: 0.85rem; line-height: 1.5; color: var(--immobra-muted); }
.preischeck__meldung { color: var(--immobra-schiefer); }
.preischeck__cta { margin: 1rem 0 0; }
.preischeck__ergebnis[aria-busy="true"] { opacity: 0.55; }
.preischeck__zahl, .preischeck__label { overflow-wrap: anywhere; }

/* Hinweisbox diskret.immo (Off-Market-Plattform der IMMOBRA GmbH), Shortcode [immobra_diskret]. */
.entry-content .diskret-hinweis { display: grid; gap: 0.5rem; margin-block: 2rem; padding: 1.4rem 1.6rem; border-radius: 4px; background: var(--immobra-schiefer); color: #FFFFFF; }
.entry-content .diskret-hinweis > * { margin: 0; }
.diskret-hinweis .eyebrow { color: var(--immobra-gold); }
.diskret-hinweis__title { font-family: var(--wp--preset--font-family--display, Georgia, serif); font-size: 1.35rem; line-height: 1.25; text-wrap: balance; }
.entry-content .diskret-hinweis__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin-top: 0.5rem; }
.entry-content .diskret-hinweis .text-link { color: #FFFFFF; }

.benefit-card .tipp-bonus__rate { margin: 0.15rem 0 0.4rem; font-family: var(--wp--preset--font-family--display, Georgia, serif); font-size: 2.6rem; line-height: 1; color: var(--immobra-gold-text); font-variant-numeric: tabular-nums; }

/* ───────── Ratgeber: Kurzantwort und Tabellen ───────── */
.entry-content .lead-answer { padding: 1rem 1.2rem; border-left: 4px solid var(--immobra-gold); border-radius: 4px; background: var(--immobra-nebel); }
.entry-content .wp-block-table { margin-inline: 0; overflow-x: auto; }
.entry-content .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 0.95rem; font-variant-numeric: tabular-nums; }
.entry-content .wp-block-table th,
.entry-content .wp-block-table td { padding: 0.6rem 0.75rem; border: 0; border-bottom: 1px solid var(--immobra-line); text-align: left; }
.entry-content .wp-block-table th { font-size: 0.78rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--immobra-muted); }
.entry-content .wp-block-table td:not(:first-child),
.entry-content .wp-block-table th:not(:first-child) { text-align: right; }
.entry-content .wp-block-table td:not(:first-child) { white-space: nowrap; }
.entry-content .wp-block-table th { hyphens: auto; }
.entry-content .wp-block-table.text-table td,
.entry-content .wp-block-table.text-table th { text-align: left; white-space: normal; vertical-align: top; hyphens: auto; }
.entry-content .wp-block-table.text-table td:first-child { font-weight: 600; min-width: 9rem; }
@media (max-width: 600px) {
	.entry-content .wp-block-table th,
	.entry-content .wp-block-table td { padding: 0.5rem 0.4rem; }
	.entry-content .wp-block-table th { letter-spacing: 0.02em; }
	.entry-content .wp-block-table.text-table td:first-child { min-width: 0; }
	/* Vier Spalten auf 343 px: Werte dürfen umbrechen, Zahl und Einheit hält ein geschütztes Leerzeichen zusammen. */
	.entry-content .wp-block-table td:not(:first-child) { white-space: normal; }
	.entry-content .wp-block-table td:first-child { hyphens: auto; }
}
.entry-content .wp-block-table tfoot td { border-top: 2px solid var(--immobra-schiefer); border-bottom: 0; color: var(--immobra-schiefer); }
.entry-content .wp-block-table figcaption { margin-top: 0.5rem; font-size: 0.8rem; line-height: 1.5; color: var(--immobra-muted); text-align: left; }

/* ───────── FAQ (Details-Blöcke) ───────── */
.entry-content .faq { border-top: 1px solid var(--immobra-line); scroll-margin-top: 7rem; }
.entry-content .faq > * + * { margin-top: 0; }
.entry-content .faq .wp-block-details { margin: 0; padding: 0.9rem 0; border-bottom: 1px solid var(--immobra-line); }
.entry-content .faq summary { display: flex; justify-content: space-between; gap: 1rem; font-weight: 800; color: var(--immobra-schiefer); cursor: pointer; list-style: none; }
.entry-content .faq summary::-webkit-details-marker { display: none; }
.entry-content .faq summary::after { content: "+"; flex-shrink: 0; font-size: 1.35rem; line-height: 1; color: var(--immobra-gold-text); }
.entry-content .faq details[open] > summary::after { content: "–"; }
.entry-content .faq summary:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 3px; }
.entry-content .faq details > p { margin: 0.6rem 0 0; }
.benefit-card { padding: 1.25rem 1.4rem; border: 1px solid var(--immobra-line); border-radius: 4px; background: #FFFFFF; }
.entry-content .benefit-card h3 { margin: 0 0 0.4rem; font-family: var(--wp--preset--font-family--sans); font-size: 1.05rem; font-weight: 800; letter-spacing: 0; text-transform: none; color: var(--immobra-schiefer); }
.benefit-card p { margin: 0; }

.entry-content .steps { display: grid; gap: 1rem; padding: 0; list-style: none; counter-reset: step; }
.entry-content .steps li { position: relative; padding-left: 3rem; counter-increment: step; }
.entry-content .steps li::before { content: counter(step); position: absolute; top: -0.1rem; left: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--immobra-gold); font-weight: 800; color: var(--immobra-schiefer); }

.partner-cities { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 0 1.5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.partner-cities__item { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 0; border-top: 1px solid var(--immobra-line); }
.partner-cities__item a { font-weight: 700; color: var(--immobra-schiefer); text-decoration: none; }
.partner-cities__item a:hover { color: var(--immobra-gold-text); }
.partner-cities__status { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.04em; white-space: nowrap; color: var(--immobra-muted); }
.partner-cities__item.is-open .partner-cities__status { color: var(--immobra-gold-text); }
.partner-cities__city { display: flex; flex-direction: column; }
.partner-cities__city small { font-size: 0.8rem; font-variant-numeric: tabular-nums; color: var(--immobra-muted); }
.partner-cities__total strong { font-variant-numeric: tabular-nums; color: var(--immobra-schiefer); }
.entry-content .partner-cities__source { margin-top: 0.75rem; font-size: 0.8rem; color: var(--immobra-muted); }
.partner-teaser__side { display: grid; gap: 1.25rem; }
.partner-teaser .partner-teaser__stat { display: flex; align-items: baseline; gap: 0.75rem; padding-bottom: 1.1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.partner-teaser__stat strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem, 4vw, 2.6rem); font-weight: 400; line-height: 1; font-variant-numeric: tabular-nums; color: var(--immobra-gold); }
.partner-teaser__stat span { font-size: 0.875rem; line-height: 1.45; }

/* ───────── Energieausweis ───────── */
.ea-offer { margin-block: 2.5rem; }
.entry-content .ea-offer__title { margin: 0 0 1.25rem; }
.ea-offer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 1.25rem; align-items: stretch; }
.ea-offer__option { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.5rem; border: 1px solid var(--immobra-line); border-radius: 4px; background: #FFFFFF; }
.ea-offer__option--featured { border-color: var(--immobra-gold); background: #FBF6E6; }
.ea-offer__option .eyebrow { margin: 0; }
.entry-content .ea-offer__option h3 { margin: 0; }
.ea-offer__option p { margin: 0; }
.ea-offer__option .button { margin-top: auto; }
.ea-offer__prices { display: grid; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.ea-offer__prices li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 0.35rem; border-bottom: 1px dashed var(--immobra-line); }
.ea-offer__prices strong { font-variant-numeric: tabular-nums; color: var(--immobra-schiefer); }
.entry-content .ea-offer__note { font-size: 0.78rem; line-height: 1.45; color: var(--immobra-muted); }

/* ───────── Formular-Hinweise ───────── */
.gform_wrapper .form-hint { margin: 0; padding: 0.75rem 1rem; border-left: 3px solid var(--immobra-gold); border-radius: 3px; background: #FBF6E6; font-size: 0.9rem; color: var(--immobra-schiefer); }

/* ───────── Bewertungsassistent ───────── */
.entry-content .valuation-lead { font-size: 1.0625rem; }
.valuation-tool { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--immobra-line); border-radius: 6px; background: #FFFFFF; box-shadow: 0 24px 50px -30px rgba(43, 49, 55, 0.35); }
.valuation-tool .gf_progressbar_title { font-size: 0.8rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--immobra-muted); }
.valuation-tool .gfield--type-radio .gchoice label,
.valuation-tool .gfield--type-checkbox .gchoice label { font-size: 0.95rem; }
.entry-content .valuation-trust { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; padding: 0; list-style: none; font-size: 0.875rem; color: var(--immobra-muted); }
.entry-content .valuation-trust li { position: relative; padding-left: 1.4rem; }
.entry-content .valuation-trust li::before { content: ""; position: absolute; top: 0.4em; left: 0.1rem; width: 0.75rem; height: 0.42rem; border-bottom: 2px solid var(--immobra-gold-text); border-left: 2px solid var(--immobra-gold-text); transform: rotate(-45deg); }

/* ───────── Widget-Generator ───────── */
.widget-generator { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2rem; margin-block: 2rem; align-items: start; }
@media (max-width: 800px) { .widget-generator { grid-template-columns: 1fr; } }
.widget-generator label { display: block; margin: 1rem 0 0.3rem; font-size: 0.875rem; font-weight: 700; color: var(--immobra-schiefer); }
.widget-generator label:first-child { margin-top: 0; }
.widget-generator input[type="text"],
.widget-generator textarea { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #C3C8D1; border-radius: 3px; background: #FFFFFF; font: inherit; color: inherit; }
.widget-generator textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.75rem; line-height: 1.4; resize: vertical; }
.widget-generator input:focus,
.widget-generator textarea:focus { outline: none; border-color: var(--immobra-gold-text); box-shadow: 0 0 0 3px rgba(205, 167, 58, 0.35); }
.widget-generator .button { margin-top: 0.75rem; }
.widget-generator__status { margin-left: 0.75rem; font-size: 0.875rem; font-weight: 700; color: #2E7D46; }
.entry-content .widget-generator__hint { margin: 0.4rem 0 0; font-size: 0.8rem; color: var(--immobra-muted); }
.widget-generator__preview { padding: 1.25rem; border-radius: 6px; background: var(--immobra-nebel); }
.widget-generator__preview .eyebrow { margin-bottom: 0.75rem; }

/* ───────── Einwilligung (Complianz, Checkliste B10) ─────────
   Farben, Texte und Breite stehen in Complianz (Banner A: Weiß, Linie #DDE0E7, Schrift Schiefer, Schalter Gold, Akzeptieren und
   Ablehnen gleichwertig in Schiefer). Hier nur der filigrane Feinschliff im IMMOBRA-Stil; höhere Spezifität, weil Complianz sein CSS
   später per JavaScript nachlädt. */
body .cmplz-cookiebanner.cmplz-cookiebanner {
	--cmplz_banner_margin: 0.5rem;
	--cmplz_text_line_height: 1.55;
	--cmplz_link_font_size: 0.75rem;
	--cmplz_button_font_size: 0.7rem;
	--cmplz_category_header_title_font_size: 0.85rem;
	--cmplz_category_body_font_size: 0.8rem;
	left: 1.25rem;
	right: auto;
	bottom: 1.25rem;
	gap: 0.85rem;
	padding: 1.35rem 1.4rem 1.1rem;
	border-top: 2px solid var(--immobra-gold);
	font-family: var(--wp--preset--font-family--sans, "Nunito Sans", system-ui, sans-serif);
	box-shadow: 0 30px 60px -32px rgba(43, 49, 55, 0.5);
}
body .cmplz-cookiebanner.cmplz-show:hover { box-shadow: 0 30px 60px -32px rgba(43, 49, 55, 0.5); }
body .cmplz-cookiebanner .cmplz-header { grid-template-columns: 1fr 1rem; }
body .cmplz-cookiebanner .cmplz-logo { display: none; }
body .cmplz-cookiebanner .cmplz-header .cmplz-title { display: block; grid-column: 1; justify-self: start; margin: 0; font-family: var(--wp--preset--font-family--display, "Marcellus", Georgia, serif); font-size: 1.15rem; font-weight: 400; letter-spacing: 0.01em; color: var(--immobra-schiefer); }
body .cmplz-cookiebanner .cmplz-close { grid-column: 2; width: 1rem; height: 1rem; color: var(--immobra-muted); }
body .cmplz-cookiebanner .cmplz-close svg { width: 0.85rem; height: 0.85rem; }
body .cmplz-cookiebanner .cmplz-close:hover { font-size: 20px; color: var(--immobra-schiefer); }
body .cmplz-cookiebanner .cmplz-divider { margin-left: -1.4rem; margin-right: -1.4rem; border: 0; border-top: 1px solid var(--immobra-line); }
body .cmplz-cookiebanner .cmplz-message { margin: 0; font-size: 0.8125rem; color: #424A59; }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category { border-radius: 3px; background-color: var(--immobra-nebel); }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header { padding: 0.6rem 0.75rem; }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title { font-weight: 700; }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--immobra-gold-text); }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-description { padding: 0 0.75rem 0.75rem; line-height: 1.5; color: #424A59; }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus + .cmplz-label::before { box-shadow: 0 0 0 2px rgba(205, 167, 58, 0.45); }
body .cmplz-cookiebanner .cmplz-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { height: 2.75rem; padding: 0 0.75rem; font-family: inherit; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options { grid-column: 1 / -1; height: 2.5rem; }
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover { border-color: #424A59; background-color: #424A59; }
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover { border-color: var(--immobra-gold); }
body .cmplz-cookiebanner .cmplz-links.cmplz-documents { gap: 1rem; }
body .cmplz-cookiebanner .cmplz-links .cmplz-link { color: var(--immobra-muted); text-decoration: none; }
body .cmplz-cookiebanner .cmplz-links .cmplz-link:hover { color: var(--immobra-gold-text); text-decoration: underline; }
body .cmplz-cookiebanner a:focus-visible,
body .cmplz-cookiebanner button:focus-visible,
body .cmplz-cookiebanner .cmplz-close:focus-visible { outline: 2px solid var(--immobra-gold); outline-offset: 2px; }
body #cmplz-manage-consent .cmplz-manage-consent { left: 1.25rem; right: auto; padding: 0.45rem 0.8rem; border: 1px solid var(--immobra-line); border-bottom: 0; border-radius: 3px 3px 0 0; font-family: var(--wp--preset--font-family--sans, "Nunito Sans", system-ui, sans-serif); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--immobra-schiefer); background: #FFFFFF; box-shadow: 0 -8px 20px -14px rgba(43, 49, 55, 0.45); }
@media (max-width: 1100px) {
	body .cmplz-cookiebanner.cmplz-cookiebanner { bottom: calc(3.75rem + env(safe-area-inset-bottom) + 0.75rem); max-height: calc(100vh - 3.75rem - env(safe-area-inset-bottom) - 1.5rem); }
	body #cmplz-manage-consent .cmplz-manage-consent { bottom: calc(3.75rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 600px) {
	body .cmplz-cookiebanner.cmplz-cookiebanner { left: 0.5rem; right: 0.5rem; width: auto; min-width: 0; padding: 1.1rem 1rem 0.9rem; }
	body .cmplz-cookiebanner .cmplz-divider { margin-left: -1rem; margin-right: -1rem; }
	body .cmplz-cookiebanner .cmplz-message,
	body .cmplz-cookiebanner .cmplz-categories { width: auto; }
	body .cmplz-cookiebanner .cmplz-body { min-width: 0; }
}
@media print { body .cmplz-cookiebanner, body #cmplz-manage-consent { display: none !important; } }
@media (prefers-reduced-motion: reduce) { body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { transition: none; } }

/* Übersicht aller Rechner (inc/rechner-uebersicht.php) */
.rechner-uebersicht { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.75rem; margin: 1rem 0 2.5rem; }
.rechner-uebersicht .service-card { flex-direction: row; align-items: flex-start; gap: 0.9rem; padding: 1rem 1.1rem; }
.rechner-uebersicht .service-card__icon { flex: 0 0 3rem; width: 3rem; height: auto; margin-top: 0.1rem; }
.rechner-uebersicht .service-card h3 { margin-bottom: 0.3rem; font-size: 0.95rem; line-height: 1.3; }
.rechner-uebersicht .service-card p { font-size: 0.875rem; line-height: 1.45; color: var(--immobra-muted); }

/* Hinweis über dem Absende-Knopf der Auftragsformulare (23.09.2026). */
.gform-hinweis { margin: 0 0 1rem; max-width: 60ch; font-size: 0.85rem; line-height: 1.5; color: var(--immobra-muted); }
