/* ==========================================================================
   AJ Gebäudetechnik – Theme-Styles
   Farben, Schrift und Abstände kommen aus theme.json (CSS-Variablen).
   ========================================================================== */

:root {
	--aj-anthrazit: var(--wp--preset--color--anthrazit, #1C1F24);
	--aj-anthrazit-2: var(--wp--preset--color--anthrazit-2, #262B33);
	--aj-blau: var(--wp--preset--color--elektroblau, #0A6CFF);
	--aj-blau-text: var(--wp--preset--color--blau-text, #0057D9);
	--aj-dunkelblau: var(--wp--preset--color--dunkelblau, #0B1E3A);
	--aj-hellblau: var(--wp--preset--color--hellblau, #7FB8FF);
	--aj-gelb: var(--wp--preset--color--signalgelb, #FFC400);
	--aj-hellgrau: var(--wp--preset--color--hellgrau, #EEF0F3);
	--aj-linie: var(--wp--preset--color--linie, #D5DAE1);
	--aj-grau: var(--wp--preset--color--grau, #5A626E);
	--aj-weiss: #FFFFFF;
	--aj-rand: clamp(1rem, 4vw, 2.5rem);
	--aj-breit: 1200px;
	--aj-kopf-h: 78px;
	--aj-radius: 4px;
	--aj-schatten: 0 1px 2px rgba(28, 31, 36, .06), 0 8px 24px rgba(28, 31, 36, .08);
	--aj-uebergang: 160ms ease;
}

/* Kein Abstand zwischen Kopf, Inhalt und Fuß */
.wp-site-blocks > * + *, .aj-main > * + *, .aj-main { margin-block-start: 0; }
.aj-main > .wp-block-post-content { margin-block: 0; }

*, *::before, *::after { box-sizing: border-box; }

html { scroll-padding-top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 1rem); }
html:has(.aj-notleiste) { --aj-leiste-h: 40px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }

::selection { background: var(--aj-blau); color: #fff; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--aj-gelb);
	outline-offset: 3px;
	border-radius: 2px;
}

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.aj-i { width: 1.25em; height: 1.25em; flex: none; }

/* Knöpfe (außerhalb von Button-Blöcken) ---------------------------------- */

.aj-knopf {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	padding: .8rem 1.5rem; border: 2px solid var(--aj-blau); border-radius: var(--aj-radius);
	background: var(--aj-blau); color: #fff; font-weight: 700; font-size: 1.0625rem; line-height: 1.2;
	letter-spacing: .02em; text-decoration: none; cursor: pointer; transition: background var(--aj-uebergang), border-color var(--aj-uebergang), color var(--aj-uebergang);
	font-family: inherit; box-sizing: border-box;
}
.aj-knopf:hover { background: var(--aj-blau-text); border-color: var(--aj-blau-text); color: #fff; }
.aj-knopf--rahmen { background: transparent; border-color: rgba(255, 255, 255, .35); color: #fff; }
.aj-knopf--rahmen:hover { background: rgba(255, 255, 255, .08); border-color: #fff; }
.aj-knopf .aj-i { width: 1.1em; height: 1.1em; }

/* Button-Blöcke: Varianten */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; border: 2px solid var(--aj-anthrazit); color: var(--aj-anthrazit);
	padding: calc(.8rem - 2px) calc(1.5rem - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--aj-anthrazit); color: #fff; }
.wp-block-button.aj-btn-hell > .wp-block-button__link { border-color: rgba(255, 255, 255, .4); color: #fff; }
.wp-block-button.aj-btn-hell > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--aj-anthrazit); }

/* ==========================================================================
   Kopfbereich
   ========================================================================== */

.aj-site-kopf { position: sticky; top: 0; z-index: 50; }
.admin-bar .aj-site-kopf { top: 32px; }
@media (max-width: 782px) { .admin-bar .aj-site-kopf { top: 0; } }

.aj-kopf { background: var(--aj-anthrazit); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.aj-kopf__innen {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: 0 var(--aj-rand);
	height: var(--aj-kopf-h); display: flex; align-items: center; gap: 2rem;
}
.aj-kopf__logo { display: block; flex: none; line-height: 0; }
.aj-kopf__logo img { height: 42px; width: auto; }

.aj-nav { margin-left: auto; }
.aj-menue { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; align-items: center; }
.aj-menue > li { position: relative; }
.aj-menue a { color: #fff; text-decoration: none; font-weight: 600; font-size: 1.0625rem; }
.aj-menue > li > a { display: block; padding: .6rem .75rem; border-radius: var(--aj-radius); }
.aj-menue > li > a:hover,
.aj-menue > li.current-menu-item > a,
.aj-menue > li.current-menu-ancestor > a,
.aj-menue > li.current-page-ancestor > a { color: var(--aj-hellblau); }
.aj-menue > li.current-menu-item > a,
.aj-menue > li.current-menu-ancestor > a,
.aj-menue > li.current-page-ancestor > a { box-shadow: inset 0 -2px 0 var(--aj-blau); border-radius: 0; }

.aj-menue .menu-item-has-children > a { padding-right: 1.6rem; }
.aj-menue .menu-item-has-children > a::after {
	content: ""; position: absolute; right: .6rem; top: 50%; width: .45rem; height: .45rem; margin-top: -.35rem;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
}
.aj-sub-toggle { display: none; }

.aj-menue .sub-menu {
	list-style: none; margin: 0; padding: .75rem; position: absolute; top: calc(100% + .5rem); left: -.75rem;
	width: 34rem; display: grid; grid-template-columns: 1fr 1fr; gap: .1rem .75rem;
	background: #fff; border-radius: var(--aj-radius); box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity var(--aj-uebergang), transform var(--aj-uebergang), visibility var(--aj-uebergang);
}
.aj-menue .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -.75rem; height: .75rem; }
.aj-menue li:hover > .sub-menu,
.aj-menue li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.aj-menue .sub-menu a { display: block; padding: .55rem .75rem; color: var(--aj-anthrazit); border-radius: var(--aj-radius); font-size: 1rem; }
.aj-menue .sub-menu a:hover, .aj-menue .sub-menu .current-menu-item > a { background: var(--aj-hellgrau); color: var(--aj-blau-text); }

.aj-nav__mobil-kontakt { display: none; }

.aj-kopf__aktion { display: flex; align-items: center; gap: 1.25rem; flex: none; }
.aj-kopf__tel { display: inline-flex; align-items: center; gap: .5rem; color: #fff; text-decoration: none; font-weight: 700; font-size: 1.0625rem; white-space: nowrap; }
.aj-kopf__tel .aj-i { color: var(--aj-blau); }
.aj-kopf__tel:hover { color: var(--aj-hellblau); }
.aj-kopf__cta { padding: .65rem 1.2rem; }

.aj-burger { display: none; }

@media (max-width: 1280px) {
	.aj-kopf__tel span { display: none; }
	.aj-kopf__tel { width: 44px; height: 44px; justify-content: center; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--aj-radius); }
	.aj-kopf__innen { gap: 1.25rem; }
	.aj-menue > li > a { padding: .6rem .55rem; }
}

@media (max-width: 1080px) {
	:root { --aj-kopf-h: 68px; }
	.aj-kopf__logo img { height: 36px; }
	.aj-kopf__cta { display: none; }
	.aj-kopf__aktion { margin-left: auto; gap: .6rem; }
	.aj-burger {
		display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: var(--aj-blau);
		border: 0; border-radius: var(--aj-radius); cursor: pointer; position: relative;
	}
	.aj-burger > span:first-child, .aj-burger > span:first-child::before, .aj-burger > span:first-child::after {
		content: ""; display: block; width: 20px; height: 2px; background: #fff; position: relative; transition: transform var(--aj-uebergang), background var(--aj-uebergang);
	}
	.aj-burger > span:first-child::before { position: absolute; top: -6px; }
	.aj-burger > span:first-child::after { position: absolute; top: 6px; }
	.aj-burger[aria-expanded="true"] > span:first-child { background: transparent; }
	.aj-burger[aria-expanded="true"] > span:first-child::before { transform: translateY(6px) rotate(45deg); }
	.aj-burger[aria-expanded="true"] > span:first-child::after { transform: translateY(-6px) rotate(-45deg); }

	.aj-nav {
		position: fixed; inset: var(--aj-kopf-h) 0 0 0; background: var(--aj-anthrazit); overflow-y: auto;
		padding: 1rem var(--aj-rand) 6rem; margin: 0; display: none;
	}
	.admin-bar .aj-nav { top: calc(var(--aj-kopf-h) + 46px); }
	.aj-nav.is-offen { display: block; }
	.aj-menue { flex-direction: column; align-items: stretch; gap: 0; }
	.aj-menue > li { border-bottom: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; align-items: center; }
	.aj-menue > li > a { flex: 1; padding: 1rem 0; font-size: 1.3rem; box-shadow: none !important; }
	.aj-menue .menu-item-has-children > a::after { display: none; }
	.aj-sub-toggle {
		display: grid; place-items: center; width: 48px; height: 48px; background: transparent; border: 1px solid rgba(255, 255, 255, .2);
		border-radius: var(--aj-radius); cursor: pointer; color: #fff;
	}
	.aj-sub-toggle::before { content: ""; width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform var(--aj-uebergang); }
	.aj-sub-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(-135deg); }
	.aj-menue .sub-menu {
		position: static; width: 100%; opacity: 1; visibility: visible; transform: none; display: none;
		grid-template-columns: 1fr; background: transparent; box-shadow: none; padding: 0 0 1rem;
	}
	.aj-menue .sub-menu::before { display: none; }
	.aj-menue .sub-menu.is-offen { display: grid; }
	.aj-menue .sub-menu a { color: #fff; padding: .6rem 0 .6rem 1rem; border-left: 2px solid rgba(255, 255, 255, .15); border-radius: 0; font-size: 1.1rem; }
	.aj-menue .sub-menu a:hover { background: transparent; color: var(--aj-hellblau); border-left-color: var(--aj-blau); }
	.aj-nav__mobil-kontakt { display: grid; gap: .75rem; margin-top: 2rem; }
	.aj-nav__mobil-kontakt .aj-knopf { width: 100%; padding: 1rem; }
	body.aj-menue-offen { overflow: hidden; }
}

@media (max-width: 420px) {
	.aj-kopf__logo img { height: 30px; }
}

/* ==========================================================================
   Allgemeine Abschnitte
   ========================================================================== */

.aj-main { display: block; }
.aj-main > .wp-block-post-content > :first-child.aj-abschnitt { margin-block-start: 0; }
.wp-block-post-content > .aj-abschnitt + .aj-abschnitt { margin-block-start: 0; }

.aj-abschnitt { padding-block: var(--wp--preset--spacing--60); }
.aj-abschnitt > * + * { margin-block-start: 1.75rem; }

.aj-kopfzeile { max-width: 46rem !important; margin-bottom: 2.5rem !important; margin-left: max(0px, calc((100% - var(--aj-breit)) / 2)) !important; margin-right: auto !important; }
.aj-kopfzeile > * + * { margin-block-start: .75rem; }
.aj-kopfzeile p { color: var(--aj-grau); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }

.aj-vorzeile { color: var(--aj-blau-text); font-weight: 700; font-size: 1.0625rem; letter-spacing: .02em; margin: 0; }
.aj-vorzeile::before { content: ""; display: inline-block; width: 1.75rem; height: 2px; background: currentColor; vertical-align: middle; margin-right: .6rem; transform: translateY(-2px); }

.aj-dunkel { background: var(--aj-anthrazit); color: #fff; }
.aj-dunkel a:where(:not(.wp-element-button):not(.aj-knopf)) { color: var(--aj-hellblau); }
.aj-dunkel .aj-vorzeile { color: var(--aj-hellblau); }
.aj-dunkel .aj-kopfzeile p { color: rgba(255, 255, 255, .75); }
.aj-hellgrau { background: var(--aj-hellgrau); }

/* Häkchen-Liste */
ul.aj-haken { list-style: none; padding-left: 0; }
ul.aj-haken > li { position: relative; padding-left: 2rem; margin-block: .55rem; }
ul.aj-haken > li::before {
	content: ""; position: absolute; left: 0; top: .28em; width: 1.2rem; height: 1.2rem; background: var(--aj-blau);
	-webkit-mask: url(../icons/check.svg) center / contain no-repeat; mask: url(../icons/check.svg) center / contain no-repeat;
}
ul.aj-haken--hell > li { border-bottom: 1px solid rgba(255, 255, 255, .12); padding-block: .8rem; margin: 0; padding-left: 2.2rem; }
ul.aj-haken--hell > li::before { background: var(--aj-hellblau); top: 1.08em; }
ul.aj-haken--hell strong { color: #fff; }

/* Icons über CSS-Klassen (Zielgruppen, Werte) */
[class*="aj-ico-"]::before {
	content: ""; display: block; width: 2.75rem; height: 2.75rem; margin-bottom: 1rem; background: var(--aj-blau);
	-webkit-mask: var(--aj-ico) center / contain no-repeat; mask: var(--aj-ico) center / contain no-repeat;
}
.aj-ico-privat { --aj-ico: url(../icons/privat.svg); }
.aj-ico-hausverwaltung { --aj-ico: url(../icons/hausverwaltung.svg); }
.aj-ico-gewerbe { --aj-ico: url(../icons/gewerbe.svg); }
.aj-ico-bau { --aj-ico: url(../icons/bau.svg); }
.aj-ico-schild { --aj-ico: url(../icons/schild.svg); }
.aj-ico-kalender { --aj-ico: url(../icons/kalender.svg); }
.aj-ico-besen { --aj-ico: url(../icons/besen.svg); }
.aj-ico-dokument { --aj-ico: url(../icons/dokument.svg); }

/* ==========================================================================
   Startseite
   ========================================================================== */

.aj-hero {
	position: relative; background-color: var(--aj-anthrazit); color: #fff; overflow: hidden;
	padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5.5rem) !important;
}
.aj-hero::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: url(../img/hero-zeichnung.svg) no-repeat right max(-2rem, calc((100% - var(--aj-breit)) / 2 - 5rem)) center / min(46vw, 660px) auto;
}
.aj-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(90deg, var(--aj-anthrazit) 0%, var(--aj-anthrazit) 36%, rgba(28, 31, 36, .6) 46%, rgba(28, 31, 36, 0) 54%);
}
.aj-hero > * { position: relative; z-index: 1; }
.aj-hero > :where(:not(.aj-hero__punkte)) { max-width: min(40rem, var(--aj-breit)) !important; margin-left: max(0px, calc((100% - var(--aj-breit)) / 2)) !important; }
.aj-hero__vorzeile { color: var(--aj-hellblau); font-weight: 700; font-size: 1.125rem; letter-spacing: .03em; }
.aj-hero__vorzeile::before { content: ""; display: inline-block; width: 2rem; height: 2px; background: var(--aj-blau); vertical-align: middle; margin-right: .75rem; transform: translateY(-2px); }
.aj-hero .aj-hero__titel { font-size: var(--wp--preset--font-size--display); line-height: 1; margin-block-start: 1rem; letter-spacing: -.005em; }
.aj-hero__lead { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: rgba(255, 255, 255, .82); margin-block-start: 1.5rem !important; }
.aj-hero .wp-block-buttons { margin-block-start: 2.25rem !important; }
.aj-hero__punkte {
	list-style: none; padding: 0; margin: clamp(3rem, 6vw, 4.5rem) auto 0 !important; max-width: var(--aj-breit) !important;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255, 255, 255, .14);
}
.aj-hero__punkte li { padding: 1.25rem 1rem 0 0; font-weight: 700; font-size: 1.0625rem; display: flex; gap: .6rem; align-items: flex-start; }
.aj-hero__punkte li::before {
	content: ""; flex: none; width: 1.1rem; height: 1.1rem; margin-top: .2rem; background: var(--aj-blau);
	-webkit-mask: url(../icons/check.svg) center / contain no-repeat; mask: url(../icons/check.svg) center / contain no-repeat;
}
@media (max-width: 900px) {
	.aj-hero::before { background-position: right -8rem top 1rem; background-size: auto 70%; opacity: .45; }
	.aj-hero::after { background: linear-gradient(180deg, rgba(28, 31, 36, .2), var(--aj-anthrazit) 60%); }
	.aj-hero__punkte { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.aj-hero::before { opacity: .22; background-position: right -6rem top 2rem; }
	.aj-karte { padding: 1.25rem; }
	.aj-karte__mehr { display: none; }
	.aj-karte__icon { width: 2.75rem; height: 2.75rem; }
}
@media (max-width: 480px) {
	.aj-hero__punkte { grid-template-columns: 1fr; }
	.aj-hero__punkte li { padding-top: .9rem; }
	.aj-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.aj-hero .wp-block-button__link { width: 100%; }
}

/* Leistungskarten ---------------------------------------------------------- */

.aj-karten { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (min-width: 1101px) { .aj-karten--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.aj-karten--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 960px) { .aj-karten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .aj-karten { grid-template-columns: 1fr; } }
.aj-karte {
	position: relative; display: flex; flex-direction: column; gap: .6rem; padding: 1.75rem 1.5rem 1.5rem;
	background: #fff; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius);
	transition: border-color var(--aj-uebergang), box-shadow var(--aj-uebergang), transform var(--aj-uebergang);
}
.aj-karte:hover { border-color: var(--aj-blau); box-shadow: var(--aj-schatten); transform: translateY(-2px); }
.aj-karte__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: var(--aj-radius); background: rgba(10, 108, 255, .08); color: var(--aj-blau); margin-bottom: .4rem; }
.aj-karte__icon .aj-i { width: 1.9rem; height: 1.9rem; }
.aj-karte__titel { font-size: 1.375rem; line-height: 1.15; margin: 0; }
.aj-karte__titel a { color: var(--aj-anthrazit); text-decoration: none; }
.aj-karte__titel a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.aj-karte p { margin: 0; color: var(--aj-grau); font-size: 1.0625rem; line-height: 1.5; }
.aj-karte__mehr { margin-top: auto; padding-top: .75rem; color: var(--aj-blau); }
.aj-karte__mehr .aj-i { transition: transform var(--aj-uebergang); }
.aj-karte:hover .aj-karte__mehr .aj-i { transform: translateX(4px); }

.aj-karten--kompakt { grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: .75rem; }
.aj-karten--kompakt .aj-karte { flex-direction: row; align-items: center; padding: 1rem 1.1rem; gap: .9rem; }
.aj-karten--kompakt .aj-karte__icon { width: 2.6rem; height: 2.6rem; margin: 0; flex: none; }
.aj-karten--kompakt .aj-karte__icon .aj-i { width: 1.5rem; height: 1.5rem; }
.aj-karten--kompakt .aj-karte__titel { font-size: 1.125rem; }
.aj-karten--kompakt .aj-karte__mehr { margin: 0 0 0 auto; padding: 0; }

/* Gewerbe ------------------------------------------------------------------ */

.aj-gewerbe { background: var(--aj-dunkelblau); position: relative; overflow: hidden; }
.aj-gewerbe::before {
	content: ""; position: absolute; right: -6rem; top: -4rem; width: 28rem; height: 28rem; opacity: .06;
	background: url(../img/icon-dunkel.svg) no-repeat center / contain; pointer-events: none;
}
.aj-gewerbe__spalten { gap: clamp(2rem, 6vw, 5rem) !important; align-items: center !important; }
.aj-gewerbe h2 { margin-block-start: .75rem; }
.aj-gewerbe p:not(.aj-vorzeile) { color: rgba(255, 255, 255, .8); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.aj-gewerbe .wp-block-buttons { margin-top: 2rem; }

/* Zielgruppen -------------------------------------------------------------- */

.aj-ziele { gap: 1rem !important; }
.aj-ziel { background: #fff; padding: 1.75rem 1.5rem; border-radius: var(--aj-radius); position: relative; border-top: 3px solid var(--aj-blau); }
.aj-ziel h3 { margin: 0 0 .5rem; }
.aj-ziel h3 a { color: var(--aj-anthrazit); text-decoration: none; }
.aj-ziel h3 a::after { content: ""; position: absolute; inset: 0; }
.aj-ziel h3 a:hover { color: var(--aj-blau-text); }
.aj-ziel p { margin: 0; color: var(--aj-grau); font-size: 1.0625rem; line-height: 1.5; }

/* Ablauf – die Schritte sind über ein „Kabel“ verbunden --------------------- */

.aj-schritte { counter-reset: schritt; gap: 2rem !important; position: relative; }
.aj-schritt { counter-increment: schritt; position: relative; padding-top: 4.5rem; }
.aj-schritt::before {
	content: "0" counter(schritt); position: absolute; top: 0; left: 0; display: grid; place-items: center;
	width: 3.25rem; height: 3.25rem; background: var(--aj-anthrazit); color: #fff; border-radius: 50%;
	font-weight: 700; font-size: 1.25rem; z-index: 1; box-shadow: 0 0 0 6px #fff;
}
.aj-schritt::after { content: ""; position: absolute; top: 1.55rem; left: 0; right: -2rem; height: 3px; background: var(--aj-blau); }
.aj-schritt:last-child::after { right: auto; width: 55%; background: linear-gradient(90deg, var(--aj-blau) 70%, transparent); }
.aj-schritt:last-child::before { background: var(--aj-blau); }
.aj-schritt h3 { margin: 0 0 .5rem; }
.aj-schritt p { margin: 0; color: var(--aj-grau); font-size: 1.0625rem; line-height: 1.55; }
@media (max-width: 900px) {
	.aj-schritt { padding: 0 0 0 4.5rem; min-height: 3.25rem; }
	.aj-schritt::after { top: 3.25rem; bottom: -2rem; left: 1.5rem; right: auto; width: 3px; height: auto; }
	.aj-schritt:last-child::after { display: none; }
}

/* Werte -------------------------------------------------------------------- */

.aj-werte-abschnitt { border-top: 1px solid var(--aj-linie); }
.aj-werte__spalten { gap: clamp(2rem, 6vw, 5rem) !important; }
@media (min-width: 782px) { .aj-werte__spalten > .wp-block-column:first-child { flex: 0 0 34% !important; } }
.aj-werte__spalten > .wp-block-column:first-child p { color: var(--aj-grau); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.aj-werte { gap: 2rem 2.5rem !important; }
.aj-wert h3 { margin: 0 0 .4rem; }
.aj-wert p { margin: 0; color: var(--aj-grau); font-size: 1.0625rem; line-height: 1.55; }
.aj-wert::before { width: 2.25rem !important; height: 2.25rem !important; }

/* Einsatzgebiet ------------------------------------------------------------ */

.aj-gebiet__spalten { gap: clamp(2rem, 6vw, 5rem) !important; align-items: center !important; }
.aj-gebiet p { color: rgba(255, 255, 255, .8); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.aj-staedte { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.aj-staedte li {
	display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .9rem .5rem .7rem; border-radius: 999px;
	border: 1px solid var(--aj-linie); font-weight: 600; font-size: 1.0625rem; background: #fff;
}
.aj-staedte li .aj-i { color: var(--aj-blau); width: 1.05rem; height: 1.05rem; }
.aj-staedte li:first-child { background: var(--aj-blau); border-color: var(--aj-blau); color: #fff; }
.aj-staedte li:first-child .aj-i { color: #fff; }
.aj-dunkel .aj-staedte li { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .16); color: #fff; }
.aj-dunkel .aj-staedte li:first-child { background: var(--aj-blau); border-color: var(--aj-blau); }

/* FAQ ---------------------------------------------------------------------- */

.aj-faq__spalten { gap: clamp(2rem, 6vw, 5rem) !important; }
@media (min-width: 782px) { .aj-faq__spalten > .wp-block-column:first-child { flex: 0 0 34% !important; } }
.aj-faq__spalten > .wp-block-column:first-child p { color: var(--aj-grau); }

.wp-block-details { padding: 0; margin-block: 0 !important; border-bottom: 1px solid var(--aj-linie); }
.wp-block-details:first-of-type, :where(h2, h3) + .wp-block-details { border-top: 1px solid var(--aj-linie); }
.wp-block-details summary {
	list-style: none; cursor: pointer; padding: 1.15rem 3rem 1.15rem 0; position: relative;
	font-weight: 700; font-size: 1.1875rem; line-height: 1.35;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; position: absolute; right: .25rem; top: 50%; width: 1.5rem; height: 1.5rem; margin-top: -.75rem;
	background:
		linear-gradient(var(--aj-blau), var(--aj-blau)) center / 14px 2px no-repeat,
		linear-gradient(var(--aj-blau), var(--aj-blau)) center / 2px 14px no-repeat;
	transition: transform var(--aj-uebergang);
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details summary:hover { color: var(--aj-blau-text); }
.wp-block-details > :not(summary) { margin: 0 0 1.25rem; color: var(--aj-grau); max-width: 44rem; }

/* ==========================================================================
   Unterseiten
   ========================================================================== */

.aj-seitenkopf {
	background-color: var(--aj-anthrazit); color: #fff; position: relative; overflow: hidden;
	background-image:
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 24px 24px;
}
.aj-seitenkopf::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--aj-blau) 0 12rem, transparent 12rem); }
.aj-seitenkopf__innen {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) var(--aj-rand) clamp(2.5rem, 5vw, 3.75rem);
	display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.aj-seitenkopf__innen > div { max-width: 46rem; }
.aj-krumen { font-size: 1rem; font-weight: 600; color: rgba(255, 255, 255, .6); display: flex; flex-wrap: wrap; gap: .45rem; }
.aj-krumen a { color: var(--aj-hellblau); text-decoration: none; }
.aj-krumen a:hover { text-decoration: underline; }
.aj-seitenkopf__titel { font-size: var(--wp--preset--font-size--xx-large); margin: .75rem 0 0; line-height: 1.05; }
.aj-seitenkopf__lead { margin: 1rem 0 0; font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: rgba(255, 255, 255, .8); }
.aj-seitenkopf__aktion { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.aj-seitenkopf__icon {
	flex: none; display: grid; place-items: center; width: clamp(6rem, 14vw, 10rem); aspect-ratio: 1; border-radius: var(--aj-radius);
	background: var(--aj-blau); color: #fff; box-shadow: 16px 16px 0 rgba(10, 108, 255, .18);
}
.aj-seitenkopf__icon .aj-i { width: 55%; height: 55%; stroke-width: 1.4; }
@media (max-width: 700px) {
	.aj-seitenkopf__icon { display: none; }
	.aj-seitenkopf__aktion .aj-knopf { flex: 1 1 100%; }
}

.aj-inhalt { padding-block: var(--wp--preset--spacing--60); }
/* Inhalte linksbündig am Raster des Seitenkopfs ausrichten */
.aj-inhalt.is-layout-constrained > :where(:not(.alignfull)) { margin-left: max(0px, calc((100% - var(--aj-breit)) / 2)) !important; margin-right: auto !important; }
.aj-inhalt > h2 { margin-block-start: 3rem; }
.aj-inhalt > h2:first-child { margin-block-start: 0; }
.aj-inhalt > h3 { margin-block-start: 2rem; }
.aj-inhalt > p, .aj-inhalt > ul { max-width: 44rem; }
.aj-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--aj-anthrazit); font-weight: 600; }
.aj-inhalt > .aj-lead:first-child { border-left: 4px solid var(--aj-blau); padding-left: 1.25rem; }
.aj-main--schlicht .aj-inhalt > .wp-block-buttons,
.aj-inhalt > .wp-block-buttons { margin-block-start: 2.5rem; }

/* Leistungsseite mit Kontaktbox */
.aj-leistung-layout {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto !important; padding: 0 var(--aj-rand);
	display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(2rem, 5vw, 4.5rem); align-items: start;
}
.aj-leistung-layout > .aj-inhalt { max-width: 46rem; padding-inline: 0 !important; }
.aj-seitenspalte { position: sticky; top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 1.5rem); margin-block: var(--wp--preset--spacing--60); display: grid; gap: 1.25rem; }
.admin-bar .aj-seitenspalte { top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 32px + 1.5rem); }
.aj-seitenbox {
	position: static;
	padding: 1.75rem; background: var(--aj-hellgrau); border-radius: var(--aj-radius); border-top: 4px solid var(--aj-blau);
}
.aj-seitenbox__titel { font-weight: 700; font-size: 1.375rem; line-height: 1.2; margin: 0 0 .5rem; }
.aj-seitenbox p { color: var(--aj-grau); font-size: 1.0625rem; line-height: 1.5; margin: 0 0 1.25rem; }
.aj-seitenbox__tel { display: flex; align-items: center; gap: .6rem; font-weight: 700; font-size: 1.375rem; color: var(--aj-anthrazit); text-decoration: none; margin-bottom: 1rem; }
.aj-seitenbox__tel .aj-i { color: var(--aj-blau); }
.aj-seitenbox .aj-knopf { width: 100%; }
.aj-seitenbox__punkte { list-style: none; padding: 1.25rem 0 0; margin: 1.25rem 0 0; border-top: 1px solid var(--aj-linie); display: grid; gap: .5rem; font-weight: 600; font-size: 1rem; }
.aj-seitenbox__punkte li { display: flex; gap: .5rem; align-items: center; }
.aj-seitenbox__punkte .aj-i { color: var(--aj-blau); width: 1.1rem; height: 1.1rem; }
@media (max-width: 960px) {
	.aj-leistung-layout { grid-template-columns: 1fr; }
	.aj-seitenspalte { position: static; margin-top: 0; }
}

.aj-weitere { background: var(--aj-hellgrau); padding-block: var(--wp--preset--spacing--60); }
.aj-weitere__innen { max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: 0 var(--aj-rand); }
.aj-weitere h2 { margin: 0 0 1.5rem; }

/* Leistungsübersicht */
.aj-bereich { padding-block: 2.5rem; border-top: 1px solid var(--aj-linie); }
.aj-bereich:first-of-type { margin-top: 2.5rem; }
.aj-bereich > h2 { margin: 0; }
.aj-bereich > p { color: var(--aj-grau); margin: .5rem 0 1.75rem; max-width: 44rem; font-size: var(--wp--preset--font-size--large); line-height: 1.5; }

/* Für wen */
.aj-zielblock { padding: 2.5rem 0; border-top: 1px solid var(--aj-linie); }
.aj-zielblock:first-of-type { margin-top: 2rem; }
.aj-zielblock h2 { margin-top: 0; }

/* Projekte (Entwurf) */
.aj-projekt { padding: 1.5rem; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius); }
.aj-projekt h3 { margin: 0; }
.aj-projekt__meta { color: var(--aj-blau-text); font-weight: 700; margin: .25rem 0 .5rem; }

/* Impressum */
.aj-impressum h2 { font-size: var(--wp--preset--font-size--large); margin: 2rem 0 .5rem; }
.aj-impressum h2:first-child { margin-top: 0; }
.aj-impressum p { margin: 0; }

/* Hinweise für Redakteure */
mark.aj-todo, .aj-todo-hinweis {
	background: #FFF4CC; color: #5C4600; border-left: 4px solid var(--aj-gelb); padding: .5rem .75rem; display: block; font-size: 1rem; border-radius: 2px;
}

/* 404 */
.aj-404 { padding-block: var(--wp--preset--spacing--70); }
.aj-404__links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem; }
.aj-404__links a { display: inline-block; padding: .7rem 1.2rem; border: 2px solid var(--aj-anthrazit); border-radius: var(--aj-radius); color: var(--aj-anthrazit); text-decoration: none; font-weight: 700; }
.aj-404__links a:hover { background: var(--aj-anthrazit); color: #fff; }

/* ==========================================================================
   Kontakt und Formular
   ========================================================================== */

.aj-kontakt { padding-block: var(--wp--preset--spacing--60) 0; }
.aj-kontakt__spalten { gap: clamp(2rem, 5vw, 4.5rem) !important; }
@media (min-width: 782px) { .aj-kontakt__spalten > .wp-block-column:last-child { flex: 0 0 32% !important; } }
.aj-kontakt__spalten > .wp-block-column:last-child {
	background: var(--aj-hellgrau); padding: 2rem; border-radius: var(--aj-radius); align-self: flex-start; border-top: 4px solid var(--aj-blau);
}
.aj-kontakt__spalten > .wp-block-column:last-child h3 { margin-top: 0; }
.aj-kontakt__spalten > .wp-block-column:last-child h3 + * { margin-top: .75rem; }
.aj-kontakt__spalten > .wp-block-column:last-child ul.aj-haken + h3,
.aj-kontakt__spalten > .wp-block-column:last-child .aj-kontaktliste + h3 { margin-top: 2rem; }

.aj-kontaktliste { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.1rem; }
.aj-kontaktliste li { display: flex; gap: .85rem; align-items: flex-start; line-height: 1.45; }
.aj-kontaktliste .aj-i { color: var(--aj-blau); margin-top: .15rem; width: 1.35rem; height: 1.35rem; }
.aj-kontaktliste__label { display: block; font-size: .875rem; font-weight: 700; letter-spacing: .04em; color: var(--aj-grau); }
.aj-kontaktliste a { font-weight: 700; color: var(--aj-anthrazit); text-decoration: none; }
.aj-kontaktliste a:hover { color: var(--aj-blau-text); text-decoration: underline; }

.aj-formular { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.aj-formular__zeile { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 640px) { .aj-formular__zeile { grid-template-columns: 1fr; } }
.aj-feld { display: grid; gap: .4rem; margin: 0; }
.aj-feld label, .aj-feld legend { font-weight: 700; font-size: 1.0625rem; }
.aj-feld input, .aj-feld select, .aj-feld textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1.125rem; color: var(--aj-anthrazit);
	padding: .8rem .9rem; border: 1px solid #AEB6C2; border-radius: var(--aj-radius); background: #fff;
	transition: border-color var(--aj-uebergang), box-shadow var(--aj-uebergang);
}
.aj-feld select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A6CFF' stroke-width='2.2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center / 1.2rem; padding-right: 2.5rem; }
.aj-feld textarea { resize: vertical; min-height: 9rem; }
.aj-feld input:focus, .aj-feld select:focus, .aj-feld textarea:focus { outline: none; border-color: var(--aj-blau); box-shadow: 0 0 0 3px rgba(10, 108, 255, .25); }
.aj-feld.has-fehler input, .aj-feld.has-fehler textarea { border-color: #C62828; }
.aj-feld__fehler { color: #B3261E; font-weight: 600; font-size: 1rem; }
.aj-pflicht { color: var(--aj-blau-text); }
.aj-feld--radios { border: 0; padding: 0; }
.aj-feld--radios legend { padding: 0; margin-bottom: .5rem; }
.aj-radios { display: flex; flex-wrap: wrap; gap: .5rem; }
.aj-radio { position: relative; }
.aj-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.aj-radio span {
	display: inline-block; padding: .55rem 1rem; border: 1px solid #AEB6C2; border-radius: 999px; cursor: pointer;
	font-weight: 600; font-size: 1.0625rem; transition: all var(--aj-uebergang);
}
.aj-radio input:checked + span { background: var(--aj-anthrazit); border-color: var(--aj-anthrazit); color: #fff; }
.aj-radio input:focus-visible + span { outline: 3px solid var(--aj-gelb); outline-offset: 2px; }
.aj-check { display: flex; gap: .75rem; align-items: flex-start; font-size: 1.0625rem; line-height: 1.45; cursor: pointer; }
.aj-check input { width: 1.3rem; height: 1.3rem; margin-top: .1rem; accent-color: var(--aj-blau); flex: none; }
.aj-check.has-fehler span { color: #B3261E; }
.aj-formular__falle { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aj-formular__senden { justify-self: start; padding: 1rem 2rem; font-size: 1.125rem; }
@media (max-width: 640px) { .aj-formular__senden { justify-self: stretch; } }
.aj-formular__notiz { color: var(--aj-grau); font-size: 1rem; margin: 0; }
.aj-formular__fehler { background: #FDECEA; color: #8C1D18; border-left: 4px solid #C62828; padding: .75rem 1rem; margin: 0; font-weight: 600; }
.aj-formular--danke { background: #EAF2FF; border-left: 4px solid var(--aj-blau); padding: 1.75rem; border-radius: var(--aj-radius); display: block; }
.aj-formular--danke h3 { margin: .5rem 0; }
.aj-formular__danke-icon { width: 2.5rem; height: 2.5rem; color: var(--aj-blau); }

/* ==========================================================================
   Anfrage-Box und Fußbereich
   ========================================================================== */

.aj-cta { background: var(--aj-blau); color: #fff; position: relative; overflow: hidden; }
.aj-cta::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);
	background-size: 24px 24px;
	-webkit-mask: linear-gradient(90deg, transparent 30%, #000); mask: linear-gradient(90deg, transparent 30%, #000);
}
.aj-cta__innen {
	position: relative; max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--aj-rand);
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: center;
}
.aj-cta__titel { font-size: var(--wp--preset--font-size--xx-large); margin: 0 0 .75rem; color: #fff; }
.aj-cta p { margin: 0; font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: rgba(255, 255, 255, .9); max-width: 36rem; }
.aj-cta__aktion { display: grid; gap: 1rem; justify-items: start; }
.aj-cta .aj-knopf { background: var(--aj-anthrazit); border-color: var(--aj-anthrazit); padding: 1rem 2rem; font-size: 1.125rem; }
.aj-cta .aj-knopf:hover { background: #000; border-color: #000; }
.aj-cta__tel { display: inline-flex; align-items: center; gap: .6rem; color: #fff; font-weight: 700; font-size: 1.5rem; text-decoration: none; }
.aj-cta__tel:hover { text-decoration: underline; }
@media (max-width: 800px) { .aj-cta__innen { grid-template-columns: 1fr; } }

.aj-fuss { background: var(--aj-anthrazit); color: rgba(255, 255, 255, .78); font-size: 1.0625rem; }
.aj-fuss a { color: #fff; text-decoration: none; }
.aj-fuss a:hover { color: var(--aj-hellblau); text-decoration: underline; }
.aj-fuss__innen {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--aj-rand) 3rem;
	display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: 2.5rem;
}
.aj-fuss__marke img { height: 40px; width: auto; margin-bottom: 1.25rem; }
.aj-fuss__marke > p { margin: 0 0 1.5rem; max-width: 22rem; line-height: 1.5; }
.aj-fuss .aj-kontaktliste__label { color: rgba(255, 255, 255, .55); }
.aj-fuss .aj-kontaktliste a { color: #fff; }
.aj-fuss__titel { color: #fff; font-weight: 700; font-size: 1.1875rem; margin: .4rem 0 1rem; }
.aj-fuss__spalte ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.aj-fuss__spalte ul a { color: rgba(255, 255, 255, .78); }
.aj-fuss__anfrage p:not(.aj-fuss__titel) { margin: 0 0 1.25rem; line-height: 1.5; }
.aj-fuss__unten {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: 1.25rem var(--aj-rand) 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 2rem; font-size: 1rem;
}
.aj-fuss__unten p { margin: 0; }
.aj-fuss__unten ul { list-style: none; display: flex; gap: 1.5rem; padding: 0; margin: 0; }
.aj-fuss__credit { margin-left: auto !important; display: inline-flex; align-items: center; gap: .5rem; color: rgba(255, 255, 255, .7); }
.aj-fuss__credit img { height: 30px; width: auto; opacity: .75; }
@media (max-width: 1000px) { .aj-fuss__innen { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
	.aj-fuss__innen { grid-template-columns: 1fr; }
	.aj-fuss__credit { margin-left: 0 !important; }
}

/* Schnellkontakt-Leiste auf dem Handy */
.aj-mobilleiste { display: none; }
@media (max-width: 782px) {
	.aj-mobilleiste {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--aj-anthrazit);
		border-top: 1px solid rgba(255, 255, 255, .12); padding: .5rem .5rem calc(.5rem + env(safe-area-inset-bottom)); gap: .5rem;
	}
	.aj-mobilleiste a {
		flex: 1; display: flex; align-items: center; justify-content: center; gap: .45rem; padding: .75rem .5rem; border-radius: var(--aj-radius);
		color: #fff; text-decoration: none; font-weight: 700; font-size: 1.0625rem; border: 1px solid rgba(255, 255, 255, .2);
	}
	.aj-mobilleiste a.is-primaer { background: var(--aj-blau); border-color: var(--aj-blau); }
	.aj-mobilleiste .aj-i { width: 1.15rem; height: 1.15rem; }
	.aj-site-fuss { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); background: var(--aj-anthrazit); }
}

/* Bewegung reduzieren */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; scroll-behavior: auto !important; }
}

/* Druck */
@media print {
	.aj-site-kopf, .aj-mobilleiste, .aj-cta, .aj-seitenspalte, .aj-weitere, .aj-notband { display: none !important; }
	.aj-seitenkopf { background: none; color: #000; }
}

/* ==========================================================================
   Partnerbetrieb-Hinweis
   ========================================================================== */

.aj-partner {
	display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 1.25rem; margin-block: 1.5rem 0;
	background: #EAF2FF; border-radius: var(--aj-radius); max-width: 44rem;
}
.aj-partner .aj-i { color: var(--aj-blau); width: 1.75rem; height: 1.75rem; margin-top: .1rem; }
.aj-partner p { margin: 0; font-size: 1.0625rem; line-height: 1.5; }

/* ==========================================================================
   Animationen
   Alles ist ohne JavaScript sichtbar. theme.js markiert Elemente unterhalb
   des sichtbaren Bereichs mit .aj-reveal und blendet sie beim Scrollen ein.
   ========================================================================== */

@keyframes aj-auf { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes aj-zeichnen { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes aj-strom-an {
	0% { background: var(--aj-anthrazit); box-shadow: 0 0 0 6px #fff; }
	50% { background: var(--aj-blau); box-shadow: 0 0 0 6px #fff, 0 0 0 12px rgba(10, 108, 255, .25); }
	100% { background: var(--aj-blau); box-shadow: 0 0 0 6px #fff; }
}
@keyframes aj-pop { from { opacity: 0; transform: scale(.85) rotate(-4deg); } to { opacity: 1; transform: none; } }
@keyframes aj-klingeln { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-14deg); } 40% { transform: rotate(12deg); } 60% { transform: rotate(-8deg); } 80% { transform: rotate(5deg); } }

/* Startseite: Hero baut sich beim Laden auf */
.aj-hero > * { animation: aj-auf .8s cubic-bezier(.2, .7, .2, 1) both; }
.aj-hero > :nth-child(1) { animation-delay: .1s; }
.aj-hero > :nth-child(2) { animation-delay: .22s; }
.aj-hero > :nth-child(3) { animation-delay: .4s; }
.aj-hero > :nth-child(4) { animation-delay: .55s; }
.aj-hero > :nth-child(5) { animation-delay: .8s; }
.aj-hero__punkte li { animation: aj-auf .6s cubic-bezier(.2, .7, .2, 1) both; }
.aj-hero__punkte li:nth-child(1) { animation-delay: .9s; }
.aj-hero__punkte li:nth-child(2) { animation-delay: 1s; }
.aj-hero__punkte li:nth-child(3) { animation-delay: 1.1s; }
.aj-hero__punkte li:nth-child(4) { animation-delay: 1.2s; }

/* Unterseiten: Seitenkopf und Leistungs-Icon */
.aj-seitenkopf__innen > div > * { animation: aj-auf .7s cubic-bezier(.2, .7, .2, 1) both; }
.aj-seitenkopf__innen > div > :nth-child(2) { animation-delay: .08s; }
.aj-seitenkopf__innen > div > :nth-child(3) { animation-delay: .18s; }
.aj-seitenkopf__innen > div > :nth-child(4) { animation-delay: .28s; }
.aj-seitenkopf__icon { animation: aj-pop .7s cubic-bezier(.2, .8, .2, 1.2) .15s both; }
.aj-seitenkopf__icon .aj-i > * { stroke-dasharray: 1; animation: aj-zeichnen 1.4s cubic-bezier(.6, .05, .3, 1) .45s both; }
.aj-seitenkopf::after { transform-origin: left; animation: aj-linie 1s cubic-bezier(.6, .05, .3, 1) .2s both; }
@keyframes aj-linie { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Einblenden beim Scrollen */
.aj-reveal { opacity: 0; transform: translateY(22px); }
.aj-reveal.ist-sichtbar { opacity: 1; transform: none; transition: opacity .7s ease var(--aj-verz, 0ms), transform .7s cubic-bezier(.2, .7, .2, 1) var(--aj-verz, 0ms); }
.aj-reveal.ohne-anim { transition: none; }
.aj-karte.aj-reveal.ist-sichtbar { transition: opacity .7s ease var(--aj-verz, 0ms), transform .7s cubic-bezier(.2, .7, .2, 1) var(--aj-verz, 0ms), border-color var(--aj-uebergang), box-shadow var(--aj-uebergang); }
.aj-karte.aj-reveal.ist-sichtbar:hover { transform: translateY(-2px); transition-delay: 0ms; }

/* Icons zeichnen sich, wenn die Karte erscheint – und noch einmal beim Überfahren */
.aj-karte.aj-reveal:not(.ohne-anim) .aj-karte__icon .aj-i > * { stroke-dasharray: 1; stroke-dashoffset: 1; }
.aj-karte.aj-reveal.ist-sichtbar:not(.ohne-anim) .aj-karte__icon .aj-i > * { animation: aj-zeichnen 1.1s cubic-bezier(.6, .05, .3, 1) calc(var(--aj-verz, 0ms) + 200ms) forwards; }
.aj-karte:hover .aj-karte__icon .aj-i > * { stroke-dasharray: 1; animation: aj-zeichnen .7s cubic-bezier(.6, .05, .3, 1) both !important; }
.aj-karte__icon { transition: background var(--aj-uebergang), color var(--aj-uebergang); }
.aj-karte:hover .aj-karte__icon { background: var(--aj-blau); color: #fff; }

/* Ablauf: Der Strom läuft von Schritt zu Schritt */
.aj-strom .aj-schritt::after { transform: scaleX(0); transform-origin: left; }
.aj-strom .aj-schritt > * { opacity: 0; transform: translateY(12px); }
.aj-strom.ist-sichtbar .aj-schritt::after { transform: scaleX(1); transition: transform .55s linear calc(var(--i) * .55s + .3s); }
.aj-strom.ist-sichtbar .aj-schritt::before { animation: aj-strom-an .6s ease calc(var(--i) * .55s) both; }
.aj-strom.ist-sichtbar .aj-schritt > * { opacity: 1; transform: none; transition: opacity .5s ease calc(var(--i) * .55s + .1s), transform .5s ease calc(var(--i) * .55s + .1s); }
.aj-strom.ist-sichtbar .aj-schritt:last-child::before { animation-name: aj-strom-an; }
@media (max-width: 900px) {
	.aj-strom .aj-schritt::after { transform: scaleY(0); transform-origin: top; }
	.aj-strom.ist-sichtbar .aj-schritt::after { transform: scaleY(1); }
}

/* Kopfzeile beim Scrollen */
.aj-kopf { transition: box-shadow .25s ease; }
.aj-site-kopf.ist-gescrollt .aj-kopf { box-shadow: 0 10px 30px rgba(0, 0, 0, .28); }

/* Knöpfe */
.aj-knopf, .wp-element-button { transition: background var(--aj-uebergang), border-color var(--aj-uebergang), color var(--aj-uebergang), transform var(--aj-uebergang), box-shadow var(--aj-uebergang); }
.aj-knopf:not(.aj-knopf--rahmen):hover, .wp-block-button:not(.is-style-outline) > .wp-element-button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(10, 108, 255, .35); }
.aj-cta .aj-knopf:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, .3); }
.aj-cta__tel:hover .aj-i, .aj-kopf__tel:hover .aj-i, .aj-seitenbox__tel:hover .aj-i { animation: aj-klingeln .6s ease; }

/* FAQ: weiches Aufklappen (in aktuellen Browsern) */
.wp-block-details { interpolate-size: allow-keywords; }
.wp-block-details::details-content { block-size: 0; overflow: hidden; transition: block-size .35s ease, content-visibility .35s allow-discrete; }
.wp-block-details[open]::details-content { block-size: auto; }

/* Menü-Dropdown: Einträge erscheinen nacheinander */
@media (min-width: 1081px) {
	.aj-menue li:hover > .sub-menu > li, .aj-menue li:focus-within > .sub-menu > li { animation: aj-auf .35s ease both; }
	.aj-menue .sub-menu > li:nth-child(2) { animation-delay: .03s !important; }
	.aj-menue .sub-menu > li:nth-child(3) { animation-delay: .06s !important; }
	.aj-menue .sub-menu > li:nth-child(4) { animation-delay: .09s !important; }
	.aj-menue .sub-menu > li:nth-child(5) { animation-delay: .12s !important; }
	.aj-menue .sub-menu > li:nth-child(6) { animation-delay: .15s !important; }
	.aj-menue .sub-menu > li:nth-child(7) { animation-delay: .18s !important; }
	.aj-menue .sub-menu > li:nth-child(8) { animation-delay: .21s !important; }
	.aj-menue .sub-menu > li:nth-child(9) { animation-delay: .24s !important; }
}
/* Mobilmenü gleitet ein */
@media (max-width: 1080px) {
	.aj-nav.is-offen { animation: aj-auf .3s ease both; }
}

/* Kabel-Fortschritt unter der Kopfzeile: Strom fließt mit dem Scrollen */
.aj-kopf { position: relative; }
.aj-fortschritt { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; pointer-events: none; }
.aj-fortschritt span {
	display: block; height: 100%; width: 100%; transform-origin: left; transform: scaleX(var(--p, 0));
	background: linear-gradient(90deg, var(--aj-blau), var(--aj-hellblau));
}
.aj-fortschritt::after {
	content: ""; position: absolute; top: 50%; left: calc(var(--p, 0) * 100%); width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%;
	background: #fff; box-shadow: 0 0 0 3px rgba(10, 108, 255, .5), 0 0 16px 4px rgba(127, 184, 255, .9);
	opacity: 0; transition: opacity .3s ease;
}
.ist-gescrollt .aj-fortschritt::after { opacity: 1; }

/* Überschriften bekommen beim Einblenden einen blauen Strich */
.aj-kopfzeile h2 { position: relative; padding-bottom: .9rem; }
.aj-kopfzeile h2::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 3.5rem; height: 3px; background: var(--aj-blau);
	transform-origin: left; transform: scaleX(1);
}
.aj-kopfzeile.aj-reveal:not(.ohne-anim) h2::after { transform: scaleX(0); }
.aj-kopfzeile.aj-reveal.ist-sichtbar:not(.ohne-anim) h2::after { transform: scaleX(1); transition: transform .8s cubic-bezier(.6, .05, .3, 1) .35s; }

/* Icons der Zielgruppen und Werte springen herein */
.aj-ziel.aj-reveal.ist-sichtbar:not(.ohne-anim)::before,
.aj-wert.aj-reveal.ist-sichtbar:not(.ohne-anim)::before { animation: aj-pop .6s cubic-bezier(.2, .8, .2, 1.3) calc(var(--aj-verz, 0ms) + 150ms) both; }
.aj-ziel::before { transition: transform var(--aj-uebergang); }
.aj-ziel:hover::before { transform: translateY(-3px) scale(1.06); }

/* Essen sendet ein Signal */
.aj-staedte li:first-child { position: relative; }
.aj-staedte li:first-child::after {
	content: ""; position: absolute; inset: -1px; border-radius: inherit; border: 2px solid var(--aj-blau);
	animation: aj-signal 2.4s cubic-bezier(.2, .6, .3, 1) infinite; pointer-events: none;
}
@keyframes aj-signal { from { opacity: .8; transform: scale(1); } to { opacity: 0; transform: scale(1.35, 1.9); } }

/* Lichtimpuls läuft über die Kabel-Linien */
@keyframes aj-lauf { from { background-position: -30% 0; } to { background-position: 130% 0; } }
.aj-cta::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 1.5rem; height: 2px; pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .95), transparent) no-repeat, rgba(255, 255, 255, .18);
	background-size: 18% 100%, 100% 100%; animation: aj-lauf 3.6s linear infinite;
}
.aj-seitenkopf::before {
	content: ""; position: absolute; left: 0; bottom: 0; width: 12rem; height: 4px; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .9), transparent) no-repeat; background-size: 40% 100%;
	animation: aj-lauf 2.8s linear 1.2s infinite;
}

/* Gewerbe: Häkchen blinken beim Erscheinen kurz auf */
.aj-haken--hell > li.aj-reveal.ist-sichtbar:not(.ohne-anim)::before { animation: aj-pop .5s cubic-bezier(.2, .8, .2, 1.3) calc(var(--aj-verz, 0ms) + 200ms) both; }

/* Raster über den ganzen Hero */
.aj-hero {
	background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 24px 24px;
}

/* Hero-Grafik auf Tablet und Handy: unter dem Text statt dahinter */
@media (max-width: 1100px) {
	.aj-hero { padding-bottom: calc(min(80vw, 440px) + 2rem) !important; }
	.aj-hero::before {
		opacity: 1 !important; background-position: center bottom 1rem !important;
		background-size: min(86vw, 470px) auto !important;
	}
	.aj-hero::after { background: linear-gradient(180deg, rgba(28, 31, 36, .0) 0%, rgba(28, 31, 36, 0) 100%) !important; }
}

/* Weniger Bewegung gewünscht: alles sofort sichtbar */
@media (prefers-reduced-motion: reduce) {
	.aj-reveal, .aj-strom .aj-schritt > * { opacity: 1 !important; transform: none !important; }
	.aj-strom .aj-schritt::after { transform: none !important; }
	.aj-hero > *, .aj-hero__punkte li, .aj-seitenkopf__innen > div > *, .aj-seitenkopf__icon, .aj-seitenkopf::after { animation: none !important; }
	.aj-karte .aj-karte__icon .aj-i > *, .aj-seitenkopf__icon .aj-i > * { stroke-dashoffset: 0 !important; animation: none !important; }
	.aj-staedte li:first-child::after, .aj-cta::after, .aj-seitenkopf::before { animation: none !important; display: none; }
	.aj-kopfzeile h2::after { transform: none !important; }
}


/* ==========================================================================
   v2.0 – 24/7 Notdienst, Rückruf, Stadtseiten, Ratgeber
   ========================================================================== */

/* Knöpfe */
.aj-knopf--gelb { background: var(--aj-gelb); border-color: var(--aj-gelb); color: var(--aj-anthrazit); }
.aj-knopf--gelb:hover { background: #FFD43B; border-color: #FFD43B; color: var(--aj-anthrazit); }
.aj-knopf.aj-knopf--gelb:hover { box-shadow: 0 8px 22px rgba(255, 196, 0, .35); }
.aj-knopf--hell { background: #fff; border-color: var(--aj-linie); color: var(--aj-anthrazit); }
.aj-knopf--hell:hover { background: #fff; border-color: var(--aj-blau); color: var(--aj-blau-text); }
.aj-knopf.aj-knopf--hell:hover { box-shadow: var(--aj-schatten); }

/* Pulsierender Punkt */
.aj-notleiste__punkt {
	display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; background: var(--aj-gelb); flex: none;
	box-shadow: 0 0 0 0 rgba(255, 196, 0, .7); animation: aj-puls 1.8s ease-out infinite;
}
@keyframes aj-puls { 0% { box-shadow: 0 0 0 0 rgba(255, 196, 0, .65); } 70% { box-shadow: 0 0 0 .6rem rgba(255, 196, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 196, 0, 0); } }

/* Leiste ganz oben */
.aj-notleiste { background: #111317; color: rgba(255, 255, 255, .85); font-size: .95rem; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.aj-notleiste__innen {
	max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: 0 var(--aj-rand); height: 40px;
	display: flex; align-items: center; gap: .75rem; white-space: nowrap; overflow: hidden;
}
.aj-notleiste strong { color: var(--aj-gelb); font-weight: 700; letter-spacing: .03em; text-transform: uppercase; font-size: .9rem; }
.aj-notleiste__text { overflow: hidden; text-overflow: ellipsis; }
.aj-notleiste__tel { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; color: #fff; font-weight: 700; text-decoration: none; }
.aj-notleiste__tel .aj-i { color: var(--aj-gelb); width: 1rem; height: 1rem; }
.aj-notleiste__tel:hover { color: var(--aj-gelb); }
.aj-notleiste__mehr { color: rgba(255, 255, 255, .7); text-decoration: underline; text-underline-offset: 3px; }
.aj-notleiste__mehr:hover { color: #fff; }
@media (max-width: 960px) { .aj-notleiste__text, .aj-notleiste__mehr { display: none; } }
@media (max-width: 420px) { .aj-notleiste { font-size: .875rem; } .aj-notleiste__innen { gap: .5rem; } }

/* Menüpunkt Notdienst hervorheben */
.aj-menue > li > a[href*="/notdienst/"] { color: var(--aj-gelb); }
.aj-menue > li > a[href*="/notdienst/"]:hover { color: #FFD43B; }

/* Notdienst-Band */
.aj-band-huelle { padding: 0 !important; margin-block: 0 !important; }
.aj-notband { background: var(--aj-anthrazit); color: #fff; position: relative; overflow: hidden; }
.aj-notband::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(-45deg, rgba(255, 196, 0, .9) 0 14px, var(--aj-anthrazit) 14px 28px);
	height: 6px; bottom: auto;
}
.aj-notband__innen {
	position: relative; max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) var(--aj-rand);
	display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: center;
}
.aj-notband__etikett { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 .75rem; color: var(--aj-gelb); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .95rem; }
.aj-notband h2 { color: #fff; font-size: var(--wp--preset--font-size--x-large); margin: 0 0 .75rem; line-height: 1.1; }
.aj-notband p { color: rgba(255, 255, 255, .82); font-size: 1.125rem; line-height: 1.55; margin: 0 0 1.5rem; max-width: 36rem; }
.aj-notband__aktion { display: flex; flex-wrap: wrap; gap: .75rem; }
.aj-notband__aktion .aj-knopf { padding: .95rem 1.6rem; font-size: 1.125rem; }
.aj-notband__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.aj-notband__liste li {
	display: flex; align-items: center; gap: .7rem; padding: .9rem 1rem; border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--aj-radius);
	background: rgba(255, 255, 255, .03); font-weight: 600; line-height: 1.25;
}
.aj-notband__liste .aj-i { color: var(--aj-gelb); width: 1.5rem; height: 1.5rem; }
@media (max-width: 900px) { .aj-notband__innen { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .aj-notband__liste { grid-template-columns: 1fr; } .aj-notband__aktion .aj-knopf { width: 100%; } }

/* Notdienst-Seite */
.aj-notruf { display: grid; gap: .75rem; justify-items: start; margin-block: 1.5rem 2rem; }
.aj-notruf__knopf {
	display: inline-flex; align-items: center; gap: 1rem; padding: 1rem 1.75rem 1rem 1.25rem; border-radius: var(--aj-radius);
	background: var(--aj-gelb); color: var(--aj-anthrazit); text-decoration: none; font-weight: 700; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.1;
	box-shadow: 0 10px 30px rgba(255, 196, 0, .35); transition: transform var(--aj-uebergang), box-shadow var(--aj-uebergang);
}
.aj-notruf__knopf:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(255, 196, 0, .45); color: var(--aj-anthrazit); }
.aj-notruf__knopf .aj-i { width: 2.75rem; height: 2.75rem; padding: .55rem; border-radius: 50%; background: var(--aj-anthrazit); color: var(--aj-gelb); }
.aj-notruf__knopf small { display: block; font-size: .95rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; opacity: .8; margin-bottom: .15rem; }
.aj-notruf__preis { display: flex; gap: .5rem; align-items: flex-start; margin: 0; color: var(--aj-grau); font-size: 1.0625rem; max-width: 34rem; }
.aj-notruf__preis .aj-i { color: var(--aj-blau); margin-top: .15rem; }
.aj-warnung { border-left: 4px solid #D93025; background: #FDF0EF; padding: 1rem 1.25rem !important; border-radius: 0 var(--aj-radius) var(--aj-radius) 0; margin-block: 1.5rem !important; }
.aj-warnung p { margin: 0; color: var(--aj-anthrazit); }
.aj-karte--statisch:hover { transform: none; box-shadow: none; border-color: var(--aj-linie); }
.aj-notkarten .aj-karte__icon { background: rgba(255, 196, 0, .16); color: #9A6F00; }
.aj-karten--n6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { .aj-karten--n6 { grid-template-columns: 1fr; } }

/* Anfrage-Box mit Rückruf-Formular */
.aj-cta__innen { align-items: start; }
.aj-cta__wege { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: .6rem; }
.aj-cta__wege a { display: inline-flex; align-items: center; gap: .65rem; color: #fff; font-weight: 700; font-size: 1.125rem; text-decoration: none; }
.aj-cta__wege a:hover { text-decoration: underline; text-underline-offset: 4px; }
.aj-cta__wege .aj-i { width: 2.4rem; height: 2.4rem; padding: .55rem; border-radius: 50%; background: rgba(255, 255, 255, .14); }
.aj-cta__formular { background: #fff; color: var(--aj-anthrazit); border-radius: var(--aj-radius); padding: clamp(1.25rem, 3vw, 1.75rem); box-shadow: 0 24px 50px rgba(0, 0, 0, .22); }
.aj-cta .aj-cta__formular p { color: var(--aj-grau); font-size: 1rem; max-width: none; }
.aj-cta .aj-cta__formular a { color: var(--aj-blau-text); }
.aj-cta .aj-cta__formular .aj-knopf { background: var(--aj-blau); border-color: var(--aj-blau); width: 100%; }
.aj-cta .aj-cta__formular .aj-knopf:hover { background: var(--aj-blau-text); border-color: var(--aj-blau-text); }

.aj-rueckruf { display: grid; gap: .85rem; }
.aj-rueckruf .aj-rueckruf__titel { display: flex; align-items: center; gap: .55rem; margin: 0 0 .15rem; color: var(--aj-anthrazit); font-weight: 700; font-size: 1.375rem; line-height: 1.2; }
.aj-rueckruf__titel .aj-i { color: var(--aj-blau); }
.aj-rueckruf__zeile { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.aj-rueckruf .aj-feld { margin: 0; }
.aj-rueckruf .aj-check { font-size: .95rem; }
.aj-rueckruf--danke { text-align: left; }
.aj-rueckruf__danke-icon { width: 2.5rem; height: 2.5rem; color: #1E9E5A; }
@media (max-width: 420px) { .aj-rueckruf__zeile { grid-template-columns: 1fr; } }

/* Seitenbox-Ergänzungen */
.aj-seitenbox .aj-knopf + .aj-knopf { margin-top: .6rem; }
.aj-seitenbox__rueckruf { display: inline-block; margin-top: .9rem; font-weight: 600; color: var(--aj-blau-text); }
.aj-seitenbox__punkte a { color: inherit; }
.aj-passend { padding: 1.25rem 1.5rem; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius); }
.aj-passend__titel { margin: 0 0 .6rem; font-weight: 700; font-size: 1.0625rem; }
.aj-passend ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.aj-passend a { display: flex; gap: .5rem; align-items: flex-start; color: var(--aj-anthrazit); text-decoration: none; font-weight: 600; line-height: 1.35; }
.aj-passend a:hover { color: var(--aj-blau-text); }
.aj-passend .aj-i { color: var(--aj-blau); width: 1.1rem; height: 1.1rem; margin-top: .1rem; }

/* Städte-Kacheln und Stadtteile */
.aj-stadtkacheln { list-style: none; margin: 1.5rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .75rem; }
.aj-stadtkacheln a {
	display: flex; align-items: center; gap: .85rem; padding: 1rem 1.1rem; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius);
	background: #fff; color: var(--aj-anthrazit); text-decoration: none; transition: border-color var(--aj-uebergang), box-shadow var(--aj-uebergang), transform var(--aj-uebergang);
}
.aj-stadtkacheln a:hover { border-color: var(--aj-blau); box-shadow: var(--aj-schatten); transform: translateY(-2px); }
.aj-stadtkacheln a > .aj-i:first-child { color: var(--aj-blau); width: 1.5rem; height: 1.5rem; }
.aj-stadtkacheln a > .aj-i:last-child { margin-left: auto; color: var(--aj-blau); transition: transform var(--aj-uebergang); }
.aj-stadtkacheln a:hover > .aj-i:last-child { transform: translateX(3px); }
.aj-stadtkacheln strong { display: block; font-size: 1.1875rem; line-height: 1.2; }
.aj-stadtkacheln small { display: block; color: var(--aj-grau); font-size: .9rem; margin-top: .1rem; }
ul.aj-stadtteile { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
ul.aj-stadtteile li { margin: 0; padding: .35rem .8rem; border-radius: 999px; background: var(--aj-hellgrau); font-weight: 600; font-size: 1rem; }

/* Ratgeber */
.aj-karten--ratgeber { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .aj-karten--ratgeber { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .aj-karten--ratgeber { grid-template-columns: 1fr; } }
.aj-ratgeberkarte { border-top: 3px solid var(--aj-blau); }
.aj-ratgeberkarte__etikett { color: var(--aj-blau-text); font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.aj-ratgeber-teaser { background: var(--aj-hellgrau); }
.aj-ratgeber-teaser__innen { max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(3rem, 6vw, 5rem) var(--aj-rand); }
.aj-ratgeber-teaser__kopf { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.aj-ratgeber-teaser__kopf h2 { margin: 0; }
.aj-ratgeber-teaser__kopf a { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--aj-blau-text); text-decoration: none; }
.aj-seitenkopf__meta { display: flex; align-items: center; gap: .5rem; color: rgba(255, 255, 255, .7); font-size: 1rem; margin: 1rem 0 0; }
.aj-seitenkopf__meta .aj-i { width: 1.05rem; height: 1.05rem; color: var(--aj-hellblau); }

.aj-beitrag-ende { max-width: calc(46rem + 2 * var(--aj-rand)); margin: 0 auto; padding: 0 var(--aj-rand) var(--wp--preset--spacing--60); }
.aj-beitrag-ende__innen { border-top: 1px solid var(--aj-linie); padding-top: 2rem; display: grid; gap: 1.5rem; }
.aj-beitrag-ende__leistung { display: flex; gap: 1.25rem; padding: 1.5rem; background: var(--aj-hellgrau); border-radius: var(--aj-radius); border-left: 4px solid var(--aj-blau); }
.aj-beitrag-ende__leistung .aj-karte__icon { flex: none; background: #fff; }
.aj-beitrag-ende__leistung p { margin: 0 0 1rem; color: var(--aj-grau); }
.aj-beitrag-ende__leistung .aj-knopf { margin: 0 .4rem .4rem 0; }
.aj-beitrag-ende .aj-beitrag-ende__titel { margin: 0 0 .4rem; font-weight: 700; font-size: 1.25rem; color: var(--aj-anthrazit); }
.aj-beitrag-ende__not { padding: 1rem 1.25rem; background: #FFF6D6; border-left: 4px solid var(--aj-gelb); border-radius: 0 var(--aj-radius) var(--aj-radius) 0; }
.aj-beitrag-ende__not a { font-weight: 700; color: var(--aj-anthrazit); }
.aj-beitrag-ende__liste { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; }
.aj-beitrag-ende__liste a { color: var(--aj-blau-text); font-weight: 600; }
@media (max-width: 600px) { .aj-beitrag-ende__leistung { flex-direction: column; } }

@media (prefers-reduced-motion: reduce) { .aj-notleiste__punkt { animation: none; } }

/* Kopf: mit Notdienst-Leiste steht die Nummer schon oben – im Kopf nur das Icon */
.aj-menue > li > a { white-space: nowrap; }
.aj-notleiste + .aj-kopf .aj-kopf__tel span { display: none; }
.aj-notleiste + .aj-kopf .aj-kopf__tel { width: 44px; height: 44px; justify-content: center; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--aj-radius); }
@media (min-width: 1081px) and (max-width: 1360px) {
	.aj-menue > li > a { padding-inline: .5rem; font-size: 1rem; }
	.aj-kopf__innen { gap: 1.25rem; }
}

/* Städte mit eigener Seite sind verlinkt */
.aj-staedte li.hat-seite { padding: 0; }
.aj-staedte li.hat-seite a { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .9rem .5rem .7rem; color: inherit; text-decoration: none; border-radius: inherit; }
.aj-staedte li.hat-seite:hover { border-color: var(--aj-blau); }
.aj-dunkel .aj-staedte li.hat-seite:hover { border-color: var(--aj-hellblau); }
.aj-ratgeber-teaser__kopf h2 { font-size: var(--wp--preset--font-size--x-large); }
.aj-cta .aj-rueckruf .aj-rueckruf__titel { font-size: 1.375rem; color: var(--aj-anthrazit); }
.aj-seitenbox .aj-seitenbox__titel { font-size: 1.375rem; color: var(--aj-anthrazit); margin-bottom: .5rem; }

/* Notdienst-Band innerhalb einer Textspalte (Stadtseiten) */
:not(.aj-band-huelle) > .aj-notband { border-radius: var(--aj-radius); margin-block: 2.5rem; }
:not(.aj-band-huelle) > .aj-notband .aj-notband__innen { grid-template-columns: 1fr; padding: 2.25rem clamp(1.25rem, 4vw, 2.25rem) 2rem; gap: 1.75rem; }
:not(.aj-band-huelle) > .aj-notband h2 { font-size: var(--wp--preset--font-size--large); }

/* Kasten am Beitragsende bündig mit der Textspalte */
.aj-beitrag-ende { max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); }
.aj-beitrag-ende__innen { max-width: 46rem; }

/* ==========================================================================
   v2.1 – Anfrage-Assistent, Preise, Wartung, Referenzen, Kundenstimmen, Türkçe
   ========================================================================== */

.aj-optional { font-weight: 400; color: var(--aj-grau); font-size: .9em; }
p.aj-klein, .aj-klein { font-size: 1rem; color: var(--aj-grau); }

/* Anfrage-Assistent */
.aj-assistent {
	background: #fff; border: 1px solid var(--aj-linie); border-top: 4px solid var(--aj-blau); border-radius: var(--aj-radius);
	padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--aj-schatten); display: grid; gap: 1.25rem; scroll-margin-top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 1rem);
}
.aj-assistent__kopf { display: none; align-items: center; gap: 1rem; font-size: .95rem; color: var(--aj-grau); font-weight: 600; }
.ist-schrittweise .aj-assistent__kopf { display: flex; }
.aj-assistent__balken { flex: 1; height: 6px; border-radius: 3px; background: var(--aj-hellgrau); overflow: hidden; }
.aj-assistent__balken span { display: block; height: 100%; width: 25%; background: var(--aj-blau); border-radius: inherit; transition: width .3s ease; }
.aj-assistent__teil { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 1rem; }
.aj-assistent__teil[hidden] { display: none; }
.aj-assistent__teil.hat-hinweis .aj-kacheln { animation: aj-wackeln .35s ease; }
@keyframes aj-wackeln { 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
.aj-assistent .aj-assistent__frage { font-weight: 700; font-size: clamp(1.375rem, 2.5vw, 1.625rem); line-height: 1.2; color: var(--aj-anthrazit); margin: 0; padding: 0; }
.aj-assistent__unterfrage { margin: .25rem 0 -.25rem; font-weight: 700; font-size: 1.0625rem; }
.aj-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: .6rem; }
.aj-kacheln--klein { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.aj-kachel { position: relative; cursor: pointer; }
.aj-kachel input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.aj-kachel span {
	display: flex; align-items: center; gap: .6rem; height: 100%; padding: .85rem 1rem; border: 1.5px solid var(--aj-linie); border-radius: var(--aj-radius);
	font-weight: 600; line-height: 1.25; background: #fff; transition: border-color var(--aj-uebergang), background var(--aj-uebergang), box-shadow var(--aj-uebergang);
}
.aj-kachel .aj-i { color: var(--aj-blau); width: 1.5rem; height: 1.5rem; }
.aj-kachel:hover span { border-color: var(--aj-blau); }
.aj-kachel input:focus-visible + span { outline: 3px solid var(--aj-gelb); outline-offset: 2px; }
.aj-kachel input:checked + span { border-color: var(--aj-blau); background: rgba(10, 108, 255, .07); box-shadow: inset 0 0 0 1px var(--aj-blau); }
.aj-kachel--not span { border-color: rgba(255, 196, 0, .9); background: #FFFBEB; }
.aj-kachel--not .aj-i { color: #9A6F00; }
.aj-kachel--not input:checked + span { border-color: #E0A800; background: #FFF3C4; box-shadow: inset 0 0 0 1px #E0A800; }
.aj-assistent__not { display: grid; gap: .6rem; justify-items: start; padding: 1rem 1.25rem; background: #FFF6D6; border-left: 4px solid var(--aj-gelb); border-radius: 0 var(--aj-radius) var(--aj-radius) 0; }
.aj-assistent__not[hidden], .aj-assistent [hidden] { display: none !important; }
.aj-assistent__not span { color: var(--aj-grau); font-size: 1rem; }
.aj-assistent p.aj-assistent__klein { display: flex; align-items: center; gap: .45rem; margin: 0; color: var(--aj-grau); font-size: 1rem; }
.aj-assistent__klein .aj-i { color: var(--aj-blau); }
.aj-assistent__navi { display: none; justify-content: space-between; align-items: center; gap: 1rem; border-top: 1px solid var(--aj-linie); padding-top: 1rem; }
.ist-schrittweise .aj-assistent__navi { display: flex; }
.aj-assistent__navi [hidden] { display: none; }
.aj-assistent__weiter { margin-left: auto; }
.aj-assistent__zurueck { background: none; border: 0; padding: .5rem 0; font: inherit; font-weight: 600; color: var(--aj-grau); cursor: pointer; }
.aj-assistent__zurueck:hover { color: var(--aj-anthrazit); }
.aj-assistent__senden { width: 100%; padding-block: 1rem; font-size: 1.125rem; }
.aj-assistent--danke { text-align: left; }
.aj-assistent__danke-icon { width: 2.75rem; height: 2.75rem; color: #1E9E5A; }
.aj-assistent--danke p { margin: 0; }
.aj-assistent-abschnitt .aj-assistent__spalten { align-items: flex-start !important; }
@media (min-width: 782px) { .aj-assistent__spalten > .wp-block-column:first-child { flex: 0 0 36% !important; position: sticky; top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 2rem); } }
@media (max-width: 480px) { .aj-kacheln, .aj-kacheln--klein { grid-template-columns: 1fr 1fr; } .aj-kachel span { padding: .75rem; font-size: 1rem; } }

/* Preise */
.aj-preise { margin-block: 1.5rem 2rem; }
.aj-preisliste { list-style: none; margin: 0; padding: 0; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius); background: #fff; }
.aj-preisliste li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.25rem; margin: 0; border-bottom: 1px solid var(--aj-linie); }
.aj-preisliste li:last-child { border-bottom: 0; }
.aj-preisliste strong { display: block; font-size: 1.125rem; }
.aj-preisliste strong a { color: var(--aj-anthrazit); text-decoration: none; }
.aj-preisliste strong a:hover { color: var(--aj-blau-text); }
.aj-preisliste span { display: block; color: var(--aj-grau); font-size: 1rem; line-height: 1.4; }
.aj-preisliste b { flex: none; font-size: 1.25rem; color: var(--aj-blau-text); white-space: nowrap; }
.aj-preise__hinweis { color: var(--aj-grau); font-size: .95rem; margin: .6rem 0 0; }
.aj-preise--leer { padding: 1.5rem; background: var(--aj-hellgrau); border-left: 4px solid var(--aj-blau); border-radius: 0 var(--aj-radius) var(--aj-radius) 0; }
.aj-preise--leer p:last-child { margin-bottom: 0; }
@media (max-width: 520px) { .aj-preisliste li { flex-direction: column; align-items: flex-start; gap: .35rem; } }

/* Wartungspakete */
.aj-pakete { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-block: 2rem 1rem; align-items: stretch; }
.aj-paket { position: relative; display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--aj-linie); border-radius: var(--aj-radius); background: #fff; }
.aj-paket--top { border: 2px solid var(--aj-blau); box-shadow: var(--aj-schatten); }
.aj-paket__etikett { position: absolute; top: -.8rem; left: 1.5rem; background: var(--aj-blau); color: #fff; font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .2rem .65rem; border-radius: 999px; }
.aj-paket .aj-paket__name { margin: 0; font-size: 1.625rem; }
.aj-paket .aj-paket__fuer { margin: .25rem 0 1rem; color: var(--aj-grau); font-size: 1rem; line-height: 1.4; }
.aj-paket .aj-paket__preis { margin: 0 0 1rem; font-size: 1.375rem; font-weight: 700; color: var(--aj-blau-text); }
.aj-paket ul { list-style: none; margin: 0 0 1.5rem; padding: 1rem 0 0; border-top: 1px solid var(--aj-linie); display: grid; gap: .55rem; font-size: 1rem; }
.aj-paket li { display: flex; gap: .5rem; align-items: flex-start; margin: 0; line-height: 1.4; }
.aj-paket li .aj-i { color: var(--aj-blau); width: 1.1rem; height: 1.1rem; margin-top: .15rem; }
.aj-paket .aj-knopf { margin-top: auto; width: 100%; }
@media (max-width: 900px) { .aj-pakete { grid-template-columns: 1fr; } }

/* Allgemeines Band (volle Breite) */
.aj-band__innen { max-width: calc(var(--aj-breit) + 2 * var(--aj-rand)); margin: 0 auto; padding: clamp(3rem, 6vw, 5rem) var(--aj-rand); }
.aj-band--hell { background: var(--aj-hellgrau); }
.aj-band--weiss { background: #fff; }
.aj-inhalt .aj-band__innen, .aj-inhalt .aj-band { padding-inline: 0; background: none; }
.aj-inhalt .aj-band__innen { padding-block: 2rem 0; }

/* Referenzen */
.aj-referenzen { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.25rem; margin-block: 1.5rem; }
.aj-referenz { border: 1px solid var(--aj-linie); border-radius: var(--aj-radius); overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.aj-referenz__bild { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--aj-hellgrau); }
.aj-referenz__bild--leer { display: grid; place-items: center; color: var(--aj-blau); }
.aj-referenz__bild--leer .aj-i { width: 3rem; height: 3rem; }
.aj-referenz__text { padding: 1.1rem 1.25rem 1.25rem; }
.aj-referenz h3 { margin: 0 0 .5rem; font-size: 1.25rem; line-height: 1.2; }
.aj-referenz p { margin: 0 0 .5rem; color: var(--aj-grau); font-size: 1rem; line-height: 1.5; }
.aj-referenz .aj-referenz__meta { color: var(--aj-blau-text); font-weight: 700; font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; }

/* Kundenstimmen */
.aj-stimmen__liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.25rem; }
.aj-stimme { margin: 0; padding: 1.5rem; background: #fff; border-radius: var(--aj-radius); border: 1px solid var(--aj-linie); display: flex; flex-direction: column; gap: .75rem; }
.aj-stimme__sterne { color: var(--aj-gelb); font-size: 1.25rem; letter-spacing: .1em; }
.aj-stimme__sterne span { color: var(--aj-linie); }
.aj-stimme blockquote { margin: 0; padding: 0; border: 0; font-size: 1.0625rem; line-height: 1.55; }
.aj-stimme blockquote p { margin: 0 0 .5rem; }
.aj-stimme figcaption { margin-top: auto; color: var(--aj-grau); font-size: 1rem; }
.aj-stimme figcaption strong { color: var(--aj-anthrazit); }
.aj-stimme figcaption span { display: block; font-size: .875rem; }

/* Türkçe */
.aj-tr-iletisim { display: flex; flex-wrap: wrap; gap: .75rem; margin-block: 1.5rem 1rem; }
.aj-tr-not { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .9rem 1.1rem; background: #FFF6D6; border-left: 4px solid var(--aj-gelb); border-radius: 0 var(--aj-radius) var(--aj-radius) 0; }
.aj-tr-not a { font-weight: 700; color: var(--aj-anthrazit); }
.aj-pakete { width: min(var(--aj-breit), calc(100vw - 2 * var(--aj-rand))); max-width: none !important; }

/* v2.2 – Fotos, Galerie, Großansicht */
.aj-referenz__bildlink { display: block; overflow: hidden; }
.aj-referenz__bildlink img { transition: transform .4s ease; }
.aj-referenz__bildlink:hover img { transform: scale(1.03); }
.aj-referenz__galerie { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px 4px 0; }
.aj-referenz__galerie a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: 2px; }
.aj-referenz__galerie img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aj-referenz__galerie span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(28, 31, 36, .6); color: #fff; font-weight: 700; font-size: 1.125rem; }
.aj-versteckt { display: none !important; }
.aj-praxis { margin-top: 3rem; }
.aj-praxis .aj-referenzen { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.aj-lightbox { padding: 0; border: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.aj-lightbox::backdrop { background: rgba(10, 12, 15, .92); }
.aj-lightbox figure { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 3.5rem 4rem 2rem; box-sizing: border-box; }
.aj-lightbox img { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; border-radius: 2px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.aj-lightbox figcaption { color: rgba(255, 255, 255, .85); font-size: 1rem; text-align: center; }
.aj-lightbox button { position: absolute; background: rgba(255, 255, 255, .1); color: #fff; border: 0; width: 3rem; height: 3rem; border-radius: 50%; font-size: 2rem; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.aj-lightbox button:hover { background: rgba(255, 255, 255, .22); }
.aj-lightbox__zu { top: 1rem; right: 1rem; }
.aj-lightbox__vor { left: 1rem; top: 50%; transform: translateY(-50%); }
.aj-lightbox__nach { right: 1rem; top: 50%; transform: translateY(-50%); }
.aj-lightbox.ist-einzeln .aj-lightbox__vor, .aj-lightbox.ist-einzeln .aj-lightbox__nach { display: none; }
@media (max-width: 600px) { .aj-lightbox figure { padding: 4rem .5rem 1rem; } .aj-lightbox__vor, .aj-lightbox__nach { top: auto; bottom: 1rem; transform: none; } }
.aj-referenz__bild { object-position: center 45%; }
@media (min-width: 900px) { .aj-referenzen--teaser { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Einzelne Karte in der letzten Reihe: über die ganze Breite */
@media (min-width: 961px) {
	.aj-karten:not(.aj-karten--n4):not(.aj-karten--n2):not(.aj-karten--n6):not(.aj-karten--ratgeber):not(.aj-karten--kompakt) > .aj-karte:last-child:nth-child(3n+1) { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 1.25rem; }
	.aj-karten:not(.aj-karten--n4):not(.aj-karten--n2):not(.aj-karten--n6):not(.aj-karten--ratgeber):not(.aj-karten--kompakt) > .aj-karte:last-child:nth-child(3n+1) .aj-karte__icon { margin: 0; flex: none; }
	.aj-karten:not(.aj-karten--n4):not(.aj-karten--n2):not(.aj-karten--n6):not(.aj-karten--ratgeber):not(.aj-karten--kompakt) > .aj-karte:last-child:nth-child(3n+1) .aj-karte__titel { flex: 0 0 auto; min-width: 14rem; }
	.aj-karten:not(.aj-karten--n4):not(.aj-karten--n2):not(.aj-karten--n6):not(.aj-karten--ratgeber):not(.aj-karten--kompakt) > .aj-karte:last-child:nth-child(3n+1) .aj-karte__mehr { margin: 0 0 0 auto; padding: 0; }
}

/* v2.4 – Inhaber */
.aj-person { display: flex; gap: 1rem; align-items: center; margin: 1.75rem 0 0; padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--aj-linie); border-left: 4px solid var(--aj-blau); border-radius: var(--aj-radius); }
.aj-person__bild { width: 5.5rem; height: 5.5rem; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--aj-blau); }
.aj-person figcaption { display: grid; gap: .1rem; min-width: 0; }
.aj-person__name { font-weight: 700; font-size: 1.25rem; line-height: 1.15; color: var(--aj-anthrazit); }
.aj-person__rolle { color: var(--aj-blau-text); font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; }
.aj-person__zitat { color: var(--aj-grau); font-size: 1rem; line-height: 1.45; margin-top: .3rem; font-style: italic; }
.aj-person__tel { display: inline-flex; align-items: center; gap: .4rem; margin-top: .35rem; font-weight: 700; color: var(--aj-anthrazit); text-decoration: none; }
.aj-person__tel .aj-i { color: var(--aj-blau); width: 1.05rem; height: 1.05rem; }
.aj-person__tel:hover { color: var(--aj-blau-text); }
@media (max-width: 420px) { .aj-person { align-items: flex-start; } .aj-person__bild { width: 4.25rem; height: 4.25rem; } }

.aj-inhaber { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 2rem; align-items: center; margin: 2.5rem 0; }
.aj-inhaber__bild { position: relative; }
.aj-inhaber__bild img { display: block; width: 100%; height: auto; border-radius: var(--aj-radius); box-shadow: var(--aj-schatten); }
.aj-inhaber__bild::before { content: ""; position: absolute; inset: 1rem -1rem -1rem 1rem; border: 2px solid var(--aj-gelb); border-radius: var(--aj-radius); z-index: -1; }
.aj-inhaber__marke { position: absolute; left: -.75rem; bottom: 1.25rem; background: var(--aj-anthrazit); color: #fff; font-weight: 700; padding: .5rem .9rem; border-radius: var(--aj-radius); line-height: 1.15; box-shadow: var(--aj-schatten); }
.aj-inhaber__marke small { display: block; color: var(--aj-gelb); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.aj-inhaber__text h2 { margin: .4rem 0 .75rem; }
.aj-inhaber__text p:not(.aj-vorzeile) { margin: 0 0 .85rem; }
.aj-inhaber__kontakt { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem !important; }
.aj-arbeitsfoto { margin: 0 0 2.5rem; }
.aj-arbeitsfoto img { display: block; width: 100%; height: auto; border-radius: var(--aj-radius); }
.aj-arbeitsfoto figcaption { color: var(--aj-grau); font-size: .95rem; margin-top: .5rem; }
@media (max-width: 640px) { .aj-inhaber { grid-template-columns: 1fr; } .aj-inhaber__bild { max-width: 16rem; margin: 0 auto 1rem; } }

.aj-mini { display: flex; align-items: center; gap: .7rem; margin: 0 0 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--aj-linie); }
.aj-mini__bild { width: 3.25rem; height: 3.25rem; border-radius: 50%; object-fit: cover; flex: none; }
.aj-mini strong { display: block; font-size: 1.0625rem; line-height: 1.2; }
.aj-mini small { display: block; color: var(--aj-grau); font-size: .875rem; }
.aj-seitenkopf__avatar { width: 1.9rem; height: 1.9rem; border-radius: 50%; object-fit: cover; }
.aj-dunkel .aj-person, .aj-cta .aj-person { color: var(--aj-anthrazit); }

/* v2.5.2 – Logo statt Porträt, Arbeitsfoto auf „Über uns“ */
.aj-logo-rund { display: grid; place-items: center; border-radius: 50%; background: var(--aj-anthrazit); }
.aj-logo-rund img { width: 58%; height: auto; }
.aj-person .aj-logo-rund { width: 5.5rem; height: 5.5rem; flex: none; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--aj-blau); }
.aj-mini .aj-logo-rund { width: 3.25rem; height: 3.25rem; flex: none; }
@media (max-width: 420px) { .aj-person .aj-logo-rund { width: 4.25rem; height: 4.25rem; } }
.aj-inhaber--foto { grid-template-columns: 1fr; gap: 1.75rem; }
.aj-inhaber--foto .aj-inhaber__bild { margin: 0; max-width: none; }
.aj-inhaber--foto .aj-inhaber__bild::before { inset: 1rem -1rem -1rem 1rem; }
.aj-inhaber--foto .aj-inhaber__marke { left: 1rem; bottom: 1rem; }
@media (max-width: 640px) { .aj-inhaber--foto .aj-inhaber__bild { max-width: none; margin: 0 .75rem 0 0; } }
.aj-inhaber__bild { margin: 0; }
.aj-inhaber:not(.aj-inhaber--foto) .aj-inhaber__marke { top: auto; bottom: -3.4rem; left: 0; }
.aj-inhaber:not(.aj-inhaber--foto) .aj-inhaber__bild { margin-bottom: 3.4rem; }
.aj-kontakt .aj-person { margin: 0 0 1.75rem; }

/* v2.6 – Mobilmenü unter Kopf + Notdienst-Leiste, Schnellleiste nicht über dem Menü */
@media (max-width: 1080px) {
	.aj-nav { top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px)); }
	.admin-bar .aj-nav { top: calc(var(--aj-kopf-h) + var(--aj-leiste-h, 0px) + 46px); }
	body.aj-menue-offen .aj-mobilleiste { display: none; }
}
.aj-mobilleiste a { white-space: nowrap; }
@media (max-width: 400px) { .aj-mobilleiste a { font-size: 1rem; gap: .35rem; padding-inline: .35rem; } }
/* Sprunglink für Tastatur und Screenreader */
.aj-sprung { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--aj-gelb); color: var(--aj-anthrazit); font-weight: 700; padding: .7rem 1rem; border-radius: var(--aj-radius); text-decoration: none; transition: top .15s ease; }
.aj-sprung:focus { top: 1rem; }
.aj-stimmen__hinweis { margin: 1.25rem 0 0; color: var(--aj-grau); font-size: .95rem; }
