/* ==========================================================================
   Altbau-Ausbau - Komponenten
   Alles, was sich nicht in theme.json abbilden laesst. Bewusst kurz gehalten.
   Farben und Abstaende kommen ausschliesslich aus den theme.json-Variablen.
   ========================================================================== */

/* --- Block-Stile: Hinweisboxen -------------------------------------------- */
.wp-block-group.is-style-aa-hinweis-gruen,
.wp-block-group.is-style-aa-hinweis-gold,
.wp-block-group.is-style-aa-hinweis-rot,
.wp-block-group.is-style-aa-karte {
	background: var(--wp--preset--color--flaeche);
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 4px;
	padding: var(--wp--preset--spacing--30);
}
.wp-block-group.is-style-aa-hinweis-gruen { border-left: 4px solid var(--wp--preset--color--gruen); }
.wp-block-group.is-style-aa-hinweis-gold  { border-left: 4px solid var(--wp--preset--color--gold); }
.wp-block-group.is-style-aa-hinweis-rot   { border-left: 4px solid var(--wp--preset--color--signal-rot); }
.wp-block-group.is-style-aa-karte         { box-shadow: var(--wp--preset--shadow--karte); }

/* --- Block-Stile: Text ---------------------------------------------------- */
.wp-block-paragraph.is-style-aa-vorspann {
	font-size: var(--wp--preset--font-size--gross);
	color: var(--wp--preset--color--text-2);
	max-width: 62ch;
}
.wp-block-paragraph.is-style-aa-daten {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--kleiner);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-3);
}
.wp-block-list.is-style-aa-haken { list-style: none; padding-left: 0; }
.wp-block-list.is-style-aa-haken li { padding-left: 1.6em; position: relative; }
.wp-block-list.is-style-aa-haken li::before {
	content: "\2713"; position: absolute; left: 0;
	color: var(--wp--preset--color--gruen); font-weight: 700;
}

/* --- Block-Stil: Datentabelle --------------------------------------------- */
.wp-block-table.is-style-aa-tabelle table { border-collapse: collapse; }
.wp-block-table.is-style-aa-tabelle th,
.wp-block-table.is-style-aa-tabelle td {
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--linie-hell);
	padding: .7rem .9rem;
	text-align: left;
	vertical-align: top;
}
.wp-block-table.is-style-aa-tabelle thead th {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .68rem; letter-spacing: .1em; text-transform: uppercase;
	color: var(--wp--preset--color--text-3);
	background: var(--wp--preset--color--flaeche-2);
	border-bottom: 1px solid var(--wp--preset--color--linie);
	white-space: nowrap;
}
.wp-block-table.is-style-aa-tabelle tbody tr:last-child td { border-bottom: none; }
.wp-block-table.is-style-aa-tabelle { overflow-x: auto; }

/* Zahlenspalten ausrichten: Klasse "zahl" im Editor an die Zelle geben */
.wp-block-table td.zahl, .wp-block-table th.zahl {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
	white-space: nowrap; text-align: right;
}

/* --- Kopf- und Fussbereich ------------------------------------------------ */
.aa-kopf { position: sticky; top: 0; z-index: 60; background: var(--wp--preset--color--flaeche); border-bottom: 1px solid var(--wp--preset--color--linie); }
.aa-wortmarke { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.15rem; letter-spacing: -.025em; line-height: 1; color: var(--wp--preset--color--gruen); text-decoration: none; }
.aa-wortmarke em { font-style: normal; color: var(--wp--preset--color--gold); }
.aa-claim { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: .625rem; color: var(--wp--preset--color--text-3); display: block; margin-top: 2px; }
.aa-utility { background: var(--wp--preset--color--band); color: #9BBFAC; font-family: var(--wp--preset--font-family--mono); font-size: .72rem; }
.aa-utility a { color: #E7F0EA; }
.wp-block-navigation .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .9rem; text-decoration: none;
}
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 0 -3px 0 var(--wp--preset--color--gold); }

/* --- Kennzahlenleiste unter der Ueberschrift ------------------------------ */
.aa-kennzahlen { display: flex; flex-wrap: wrap; border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; background: var(--wp--preset--color--flaeche); overflow: hidden; }
.aa-kennzahlen > div { flex: 1 1 150px; padding: .7rem 1rem; border-right: 1px solid var(--wp--preset--color--linie); }
.aa-kennzahlen > div:last-child { border-right: none; }
.aa-kennzahlen dt { font-family: var(--wp--preset--font-family--mono); font-size: .625rem; letter-spacing: .11em; text-transform: uppercase; color: var(--wp--preset--color--text-3); margin: 0; }
.aa-kennzahlen dd { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: .95rem; color: var(--wp--preset--color--gruen); margin: 2px 0 0; font-variant-numeric: tabular-nums; }

/* --- Register (Gewerkeliste) ---------------------------------------------- */
.aa-register { border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; background: var(--wp--preset--color--flaeche); overflow: hidden; }
.aa-register a { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; padding: .95rem 1.2rem; border-bottom: 1px solid var(--wp--preset--color--linie-hell); text-decoration: none; color: inherit; }
.aa-register a:last-child { border-bottom: none; }
.aa-register a:hover { background: var(--wp--preset--color--flaeche-2); }
.aa-register .nm { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.02rem; }
.aa-register a:hover .nm { color: var(--wp--preset--color--gruen); }
.aa-register .pr { font-family: var(--wp--preset--font-family--mono); font-size: .75rem; color: var(--wp--preset--color--text-2); text-align: right; font-variant-numeric: tabular-nums; }
.aa-register .ds { grid-column: 1 / -1; font-size: .9rem; color: var(--wp--preset--color--text-2); line-height: 1.45; }
@media (max-width: 560px) { .aa-register a { grid-template-columns: 1fr; } .aa-register .pr { text-align: left; } }

/* --- Rechner und Diagramme ------------------------------------------------ */
.aa-tool { border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; background: var(--wp--preset--color--flaeche); overflow: hidden; margin-block: var(--wp--preset--spacing--30); }
.aa-tool__kopf { background: var(--wp--preset--color--gruen); color: #fff; padding: .8rem 1.2rem; display: flex; justify-content: space-between; gap: .9rem; align-items: baseline; flex-wrap: wrap; }
.aa-tool__kopf b { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1rem; }
.aa-tool__kopf span { font-family: var(--wp--preset--font-family--mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--gold); }
.aa-tool__leib { padding: 1.3rem 1.2rem; display: flex; flex-direction: column; gap: 1.2rem; }
.aa-feld { display: flex; flex-direction: column; gap: .45rem; }
.aa-feld > label, .aa-feld > .lb { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .9rem; }
.aa-feld .hinweis { font-family: var(--wp--preset--font-family--mono); font-size: .72rem; color: var(--wp--preset--color--text-3); line-height: 1.5; }
.aa-tool input[type=number], .aa-tool input[type=text], .aa-tool select {
	font-family: var(--wp--preset--font-family--mono); font-size: .9rem; padding: .65rem .75rem;
	border: 1px solid var(--wp--preset--color--linie); border-radius: 3px;
	background: var(--wp--preset--color--flaeche-2); color: var(--wp--preset--color--text); width: 100%;
}
.aa-tool input:focus, .aa-tool select:focus { border-color: var(--wp--preset--color--gruen); outline: 3px solid var(--wp--preset--color--gold); outline-offset: 1px; }
.aa-optionen { display: flex; flex-wrap: wrap; gap: .45rem; }
.aa-option { position: relative; }
.aa-option input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.aa-option span { display: block; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .84rem; padding: .55rem .8rem; border: 1px solid var(--wp--preset--color--linie); border-radius: 3px; background: var(--wp--preset--color--flaeche-2); cursor: pointer; }
.aa-option input:checked + span { border-color: var(--wp--preset--color--gruen); background: var(--wp--preset--color--gruen-hell); color: var(--wp--preset--color--gruen); }
.aa-option input:focus-visible + span { outline: 3px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.aa-haken-liste { display: flex; flex-direction: column; gap: 1px; background: var(--wp--preset--color--linie); border: 1px solid var(--wp--preset--color--linie); border-radius: 3px; overflow: hidden; }
.aa-haken-liste label { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: center; background: var(--wp--preset--color--flaeche); padding: .7rem .9rem; cursor: pointer; font-size: .95rem; }
.aa-haken-liste label:hover { background: var(--wp--preset--color--flaeche-2); }
.aa-haken-liste input { accent-color: var(--wp--preset--color--gruen); width: 17px; height: 17px; }
.aa-haken-liste .pr { font-family: var(--wp--preset--font-family--mono); font-size: .72rem; color: var(--wp--preset--color--text-3); font-variant-numeric: tabular-nums; }
.aa-ergebnis { border-top: 3px solid var(--wp--preset--color--gold); background: var(--wp--preset--color--flaeche-2); padding: 1.3rem 1.2rem; }
.aa-ergebnis .titel { font-family: var(--wp--preset--font-family--mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--text-3); margin-bottom: .3rem; }
.aa-ergebnis .zahl { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(1.6rem, 4vw, 2.3rem); line-height: 1.05; letter-spacing: -.02em; color: var(--wp--preset--color--gruen); font-variant-numeric: tabular-nums; }
.aa-zeilen { display: flex; flex-direction: column; margin-top: 1rem; border-top: 1px solid var(--wp--preset--color--linie); }
.aa-zeilen > div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--wp--preset--color--linie-hell); font-size: .9rem; }
.aa-zeilen > div b { font-family: var(--wp--preset--font-family--mono); font-weight: 500; font-variant-numeric: tabular-nums; }
.aa-zeilen > div.summe { border-bottom: none; border-top: 2px solid var(--wp--preset--color--gruen); font-weight: 600; padding-top: .7rem; }
.aa-stapel { display: flex; height: 34px; border-radius: 3px; overflow: hidden; border: 1px solid var(--wp--preset--color--linie); margin-top: .9rem; }
.aa-stapel i { display: block; position: relative; }
.aa-stapel i span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--wp--preset--font-family--mono); font-size: .66rem; font-weight: 600; color: #fff; }
.aa-legende { display: flex; flex-wrap: wrap; gap: .45rem 1.1rem; margin-top: .8rem; font-family: var(--wp--preset--font-family--mono); font-size: .72rem; color: var(--wp--preset--color--text-2); }
.aa-legende span { display: flex; align-items: center; gap: .38rem; }
.aa-legende i { width: 11px; height: 11px; border-radius: 2px; display: block; }
.aa-fussnote { font-family: var(--wp--preset--font-family--mono); font-size: .7rem; line-height: 1.6; color: var(--wp--preset--color--text-3); margin-top: .9rem; }
.aa-marke { display: inline-block; font-family: var(--wp--preset--font-family--mono); font-size: .64rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; padding: 2px 6px; border: 1px solid; border-radius: 2px; white-space: nowrap; vertical-align: middle; }
.aa-marke.gut { color: var(--wp--preset--color--gruen); border-color: var(--wp--preset--color--gruen); background: var(--wp--preset--color--gruen-hell); }
.aa-marke.mittel { color: var(--wp--preset--color--gold-dunkel); border-color: var(--wp--preset--color--gold-dunkel); background: var(--wp--preset--color--gold-hell); }
.aa-marke.kritisch { color: var(--wp--preset--color--signal-rot); border-color: var(--wp--preset--color--signal-rot); background: #F7E0DB; }
.aa-diagramm { margin-top: 1rem; }
.aa-diagramm svg { width: 100%; height: auto; display: block; }

/* --- Barrierefreiheit ------------------------------------------------------ */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--gold); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }


/* =============================================================
   === Layout 1.3.0 ============================================
   Seitenaufbau, Kopfbereich, Magazin, Logo
   ============================================================= */

/* --- Brotkrumen ---------------------------------------------------------- */
.aa-crumbs { font-family: var(--wp--preset--font-family--mono); font-size: .72rem; letter-spacing: .05em; color: var(--wp--preset--color--text-3); margin-bottom: 1rem; }
.aa-crumbs a { color: var(--wp--preset--color--text-3); text-decoration: none; }
.aa-crumbs a:hover { color: var(--wp--preset--color--gruen); }

/* --- Kopfbereich bleibt stehen ------------------------------------------- */
.aa-kopf { position: sticky; top: 0; z-index: 60; border-bottom: 1px solid var(--wp--preset--color--linie); }
body.admin-bar .aa-kopf { top: 32px; }
@media (max-width: 782px) { body.admin-bar .aa-kopf { top: 46px; } }

/* --- Logo ---------------------------------------------------------------- */
.aa-logo img, .wp-block-site-logo img { display: block; height: auto; }
.wp-block-site-logo { line-height: 0; }
.aa-logo--invers { display: inline-block; margin-bottom: 1.8rem; }
.aa-logo--invers img { width: 200px; }
@media (max-width: 781px) { .wp-block-site-logo img { width: 150px !important; } }

/* --- Textspalte + mitlaufende Angebotsspalte ----------------------------- */
.aa-layout { align-items: flex-start; }
main > .wp-block-post-title, main > h1.wp-block-heading { max-width: 22ch; margin: 0 auto 1.1rem var(--aa-links) !important; }
.aa-layout .aa-kennzahlen > div { flex-basis: 120px; }
.aa-rail { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 1.1rem; }
.aa-rail h2 { font-size: 1.28rem; line-height: 1.22; letter-spacing: -.01em; margin: 0; }
.aa-rail p { font-size: .88rem; line-height: 1.55; margin: 0; }
.aa-rail .wp-block-buttons { margin: .15rem 0 0; }
.aa-rail .wp-block-button__link { display: block; width: 100%; text-align: center; font-size: .92rem; padding: .72rem 1rem; }
.aa-cta-kasten { border: 1px solid var(--wp--preset--color--gruen); border-radius: 4px; overflow: hidden; padding: 1.1rem 1.2rem; background: var(--wp--preset--color--flaeche); display: flex; flex-direction: column; gap: .7rem; }
.aa-rail-box { border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; padding: 1rem 1.2rem; background: var(--wp--preset--color--flaeche); }
.aa-rail-box h2 { margin-bottom: .6rem; }
.aa-rail-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .45rem; }
.aa-rail-liste a { font-size: .88rem; color: var(--wp--preset--color--gruen); text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--linie-hell); }
.aa-rail-liste a:hover { border-bottom-color: var(--wp--preset--color--gruen); }
.aa-schritte { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.aa-schritte li { display: grid; grid-template-columns: 24px 1fr; gap: .7rem; align-items: start; font-size: .9rem; color: var(--wp--preset--color--text-2); }
.aa-schritte b { font-family: var(--wp--preset--font-family--mono); font-size: .72rem; color: var(--wp--preset--color--gruen-dunkel); background: var(--wp--preset--color--gold); width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; }
@media (min-width: 782px) { .aa-rail { max-height: calc(100vh - 110px); overflow-y: auto; scrollbar-width: thin; } }
@media (max-width: 781px) { .aa-rail { position: static; max-height: none; overflow: visible; } }

/* --- Fliesstext linksbuendig (WordPress setzt auto !important) ------------ */
.entry-content > *:not(.alignwide):not(.alignfull):not(.aligncenter):not(.has-text-align-center):not(.has-text-align-right) { margin-left: var(--aa-links) !important; margin-right: auto !important; }
.entry-content > p.is-style-aa-vorspann { max-width: 62ch; }
.page-template-page-breit .entry-content > p,
.page-template-page-breit .entry-content > ul,
.page-template-page-breit .entry-content > ol { max-width: 68ch; margin-left: var(--aa-links) !important; margin-right: auto !important; }

/* --- Zweispaltiger Hero der Titelseite ----------------------------------- */
.aa-hero { align-items: center; }
.aa-hero h1 { max-width: 16ch; }
.aa-hero .is-style-aa-vorspann { max-width: 46ch; }
.aa-hero .aa-viz { margin: 0; }
.aa-hero .aa-viz svg { width: 100%; height: auto; }
@media (max-width: 781px) { .aa-hero { gap: 1.6rem; } }

/* --- Abschnitte ---------------------------------------------------------- */
.aa-abschnitt > h2 { margin: .55rem 0 1rem; }
.aa-abschnitt > .is-style-aa-daten + h2 { margin-top: .35rem; }
.aa-abschnitt > h2 + p { margin-bottom: 1.4rem; }
.aa-abschnitt > p:not(.is-style-aa-daten) { max-width: 62ch; margin-left: var(--aa-links) !important; margin-right: auto !important; color: var(--wp--preset--color--text-2); }

/* --- Magazin: Beitragsliste ---------------------------------------------- */
.aa-artikel { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--linie); }
.aa-artikel > li { display: grid; grid-template-columns: 132px 1fr; gap: 1.1rem; padding: 1.05rem 0; border-bottom: 1px solid var(--wp--preset--color--linie); align-items: start; }
.aa-artikel__meta { display: flex; flex-direction: column; gap: 3px; padding-top: 4px; min-width: 0; }
.aa-artikel__meta .wp-block-post-terms { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; line-height: 1.35; }
.aa-artikel__meta .wp-block-post-terms a { color: var(--wp--preset--color--gruen); text-decoration: none; white-space: normal !important; }
.aa-artikel__meta .wp-block-post-date, .aa-artikel__meta .wp-block-post-terms { font-family: var(--wp--preset--font-family--mono); font-size: .7rem; color: var(--wp--preset--color--text-3); margin: 0; }
.aa-artikel__meta .wp-block-post-terms a { color: var(--wp--preset--color--gruen); text-decoration: none; }
.aa-artikel__text .wp-block-post-title { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.1rem; line-height: 1.25; margin: 0; }
.aa-artikel__text .wp-block-post-title a { text-decoration: none; color: inherit; }
.aa-artikel__text .wp-block-post-title a:hover { color: var(--wp--preset--color--gruen); }
.aa-artikel__text .wp-block-post-excerpt { margin: .35rem 0 0; }
.aa-artikel__text .wp-block-post-excerpt__excerpt { font-size: .92rem; color: var(--wp--preset--color--text-2); line-height: 1.55; }
.aa-artikel__text .wp-block-post-excerpt__more-link { display: none; }
.aa-blaettern { margin-top: 1.6rem; font-family: var(--wp--preset--font-family--mono); font-size: .8rem; }
.aa-blaettern a { color: var(--wp--preset--color--gruen); text-decoration: none; }
.aa-blaettern a:hover { text-decoration: underline; }
.aa-blaettern .wp-block-query-pagination-numbers { display: flex; gap: .5rem; }
@media (max-width: 620px) { .aa-artikel > li { grid-template-columns: 1fr; gap: .3rem; } .aa-artikel__meta { flex-direction: row; gap: .8rem; padding-top: 0; } }

/* --- Karten (Werkzeuge, Themen) ------------------------------------------ */
.aa-karten { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.1rem; }
.aa-karte { background: var(--wp--preset--color--flaeche); border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; padding: 1.25rem; display: flex; flex-direction: column; gap: .6rem; text-decoration: none; color: inherit; }
.aa-karte:hover { border-color: var(--wp--preset--color--gruen); }
.aa-karte b { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.05rem; }
.aa-karte span { font-size: .9rem; color: var(--wp--preset--color--text-2); line-height: 1.5; }
.aa-karte em { font-family: var(--wp--preset--font-family--mono); font-size: .74rem; font-style: normal; color: var(--wp--preset--color--gruen); margin-top: auto; }

/* --- Vertrauenszeile im Hero --------------------------------------------- */
.aa-vertrauen { display: flex; flex-wrap: wrap; gap: .45rem 1.3rem; margin: 0; padding: 0; list-style: none; font-family: var(--wp--preset--font-family--mono); font-size: .75rem; color: var(--wp--preset--color--text-2); }
.aa-vertrauen li::before { content: "\2713"; color: var(--wp--preset--color--gruen); font-weight: 700; margin-right: .4rem; }

/* --- Angebotsband -------------------------------------------------------- */
.aa-band .wp-block-button__link { text-align: center; }
.aa-band .aa-knopf-band .wp-block-button__link { color: var(--wp--preset--color--flaeche); border-color: var(--wp--preset--color--gruen-mittel); background: transparent; }
.aa-band .aa-knopf-band .wp-block-button__link:hover { border-color: var(--wp--preset--color--gold); color: var(--wp--preset--color--gold); }
.aa-band p:not(.is-style-aa-daten) { color: #9BBFAC; max-width: 52ch; }
.aa-band h2 { margin-top: .6rem; }


/* =============================================================
   === Gravity Forms ===========================================
   Angleichung an die Gestaltung des Entwurfs
   ============================================================= */

.gform_wrapper.gravity-theme {
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche);
	overflow: hidden;
	max-width: 680px;
	margin: var(--wp--preset--spacing--30) 0;
}
.gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 1.4rem; }
.gform_wrapper.gravity-theme .gform_page_fields { padding: 1.5rem 1.4rem .4rem; }
.gform_wrapper.gravity-theme form { margin: 0; }

/* Schrittleiste */
.gform_wrapper.gravity-theme .gf_page_steps {
	display: flex; flex-wrap: wrap; gap: .1rem 1.1rem;
	margin: 0; padding: .9rem 1.4rem;
	background: var(--wp--preset--color--flaeche-2);
	border-bottom: 1px solid var(--wp--preset--color--linie);
}
.gform_wrapper.gravity-theme .gf_step {
	display: flex; align-items: center; gap: .45rem;
	margin: 0; padding: .2rem 0; opacity: 1; font-weight: 400;
}
.gform_wrapper.gravity-theme .gf_step_number {
	font-family: var(--wp--preset--font-family--mono); font-size: .68rem; font-weight: 600;
	width: 21px; height: 21px; flex: 0 0 21px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--wp--preset--color--linie); color: var(--wp--preset--color--text-3);
	border: none;
}
.gform_wrapper.gravity-theme .gf_step_number::before { display: none; }
.gform_wrapper.gravity-theme .gf_step_label {
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .8rem;
	color: var(--wp--preset--color--text-3);
}
.gform_wrapper.gravity-theme .gf_step_active .gf_step_number { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--gruen-dunkel); }
.gform_wrapper.gravity-theme .gf_step_active .gf_step_label { color: var(--wp--preset--color--gruen); }
.gform_wrapper.gravity-theme .gf_step_completed .gf_step_number { background: var(--wp--preset--color--gruen); color: #fff; }

/* Fragen und Beschriftungen */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label {
	font-family: var(--wp--preset--font-family--display); font-weight: 800;
	font-size: 1.16rem; line-height: 1.28; color: var(--wp--preset--color--text);
	margin-bottom: .7rem; padding: 0;
}
.gform_wrapper.gravity-theme .gfield_description {
	font-family: var(--wp--preset--font-family--mono); font-size: .72rem;
	color: var(--wp--preset--color--text-3); line-height: 1.5; padding: 0 0 .6rem;
}
.gform_wrapper.gravity-theme .gfield_required { color: var(--wp--preset--color--gold-dunkel); }
.gform_wrapper.gravity-theme .gfield_required_text { font-family: var(--wp--preset--font-family--mono); font-size: .68rem; font-style: normal; }

/* Auswahlfelder als Schaltflaechen */
.gform_wrapper.gravity-theme .gfield_radio,
.gform_wrapper.gravity-theme .gfield_checkbox {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .55rem;
}
.gform_wrapper.gravity-theme .gchoice { position: relative; margin: 0; }
.gform_wrapper.gravity-theme .gchoice input[type="radio"],
.gform_wrapper.gravity-theme .gchoice input[type="checkbox"] {
	position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer;
}
.gform_wrapper.gravity-theme .gchoice label {
	display: block; margin: 0;
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .88rem;
	line-height: 1.3; padding: .8rem .85rem;
	border: 1px solid var(--wp--preset--color--linie); border-radius: 3px;
	background: var(--wp--preset--color--flaeche-2); cursor: pointer;
	max-width: none;
}
.gform_wrapper.gravity-theme .gchoice label:hover { border-color: var(--wp--preset--color--gruen); color: var(--wp--preset--color--gruen); background: var(--wp--preset--color--flaeche); }
.gform_wrapper.gravity-theme .gchoice input:checked + label {
	border-color: var(--wp--preset--color--gruen);
	background: var(--wp--preset--color--gruen-hell);
	color: var(--wp--preset--color--gruen);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--gruen);
}
.gform_wrapper.gravity-theme .gchoice input:focus-visible + label { outline: 3px solid var(--wp--preset--color--gold); outline-offset: 2px; }

/* Einverstaendnis als Zeile, nicht als Kachel */
.gform_wrapper.gravity-theme .gfield--type-consent .ginput_container_consent { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; }
.gform_wrapper.gravity-theme .gfield--type-consent input[type="checkbox"] { position: static; opacity: 1; width: 17px; height: 17px; accent-color: var(--wp--preset--color--gruen); margin-top: .15rem; }
.gform_wrapper.gravity-theme .gfield_consent_label { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: .86rem; line-height: 1.55; color: var(--wp--preset--color--text-2); padding: 0; border: none; background: none; }
.gform_wrapper.gravity-theme .gfield--type-consent .gfield_label { font-size: .95rem; }

/* Eingabefelder */
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
	font-family: var(--wp--preset--font-family--mono); font-size: .88rem;
	padding: .7rem .75rem;
	border: 1px solid var(--wp--preset--color--linie); border-radius: 3px;
	background: var(--wp--preset--color--flaeche-2); color: var(--wp--preset--color--text);
	width: 100%;
}
.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme select:focus,
.gform_wrapper.gravity-theme textarea:focus {
	border-color: var(--wp--preset--color--gruen); background: var(--wp--preset--color--flaeche); outline: none;
}
.gform_wrapper.gravity-theme .ginput_counter { font-family: var(--wp--preset--font-family--mono); font-size: .68rem; color: var(--wp--preset--color--text-3); }

/* Dateiupload */
.gform_wrapper.gravity-theme .gform_drop_area { border: 1px dashed var(--wp--preset--color--linie); border-radius: 3px; background: var(--wp--preset--color--flaeche-2); padding: 1.1rem; }
.gform_wrapper.gravity-theme .gform_drop_instructions { font-family: var(--wp--preset--font-family--mono); font-size: .74rem; color: var(--wp--preset--color--text-3); }
.gform_wrapper.gravity-theme .gform_fileupload_rules { font-family: var(--wp--preset--font-family--mono); font-size: .68rem; color: var(--wp--preset--color--text-3); }

/* Fusszeile mit den Schaltflaechen */
.gform_wrapper.gravity-theme .gform_page_footer,
.gform_wrapper.gravity-theme .gform_footer {
	display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap;
	margin: 0; padding: 1.1rem 1.4rem 1.3rem;
	border-top: 1px solid var(--wp--preset--color--linie);
	background: var(--wp--preset--color--flaeche-2);
}
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_page_footer input[type="button"],
.gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform-theme-button {
	font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: .92rem;
	padding: .78rem 1.35rem; border-radius: 3px; border: none; cursor: pointer;
	background: var(--wp--preset--color--gold); color: var(--wp--preset--color--gruen-dunkel);
	width: auto; margin: 0;
}
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_next_button:hover { background: var(--wp--preset--color--gold-dunkel); color: #fff; }
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme .gform-theme-button--secondary {
	background: transparent !important; color: var(--wp--preset--color--text-3) !important;
	font-family: var(--wp--preset--font-family--mono) !important; font-weight: 400 !important; font-size: .78rem !important;
	text-decoration: underline; padding: .5rem .2rem !important; order: -1;
}
.gform_wrapper.gravity-theme .gform_previous_button:hover { color: var(--wp--preset--color--gruen) !important; }

/* Fehler und Bestaetigung */
.gform_wrapper.gravity-theme .gfield_error .gfield_label { color: var(--wp--preset--color--signal-rot); }
.gform_wrapper.gravity-theme .validation_message {
	font-family: var(--wp--preset--font-family--mono); font-size: .74rem;
	color: var(--wp--preset--color--signal-rot); background: none; border: none;
	border-left: 3px solid var(--wp--preset--color--signal-rot); padding: .3rem .6rem; margin-top: .5rem;
}
.gform_wrapper.gravity-theme .gform_validation_errors {
	border: 1px solid var(--wp--preset--color--signal-rot); border-radius: 3px;
	background: #F7E0DB; box-shadow: none; margin: 1.2rem 1.4rem 0; padding: .9rem 1.1rem;
}
.gform_confirmation_message {
	border: 1px solid var(--wp--preset--color--gruen); border-top: 3px solid var(--wp--preset--color--gold);
	border-radius: 4px; background: var(--wp--preset--color--flaeche);
	padding: 1.8rem 1.5rem; max-width: 680px;
}

@media (max-width: 600px) {
	.gform_wrapper.gravity-theme .gf_page_steps { gap: .1rem .7rem; }
	.gform_wrapper.gravity-theme .gf_step_label { display: none; }
	.gform_wrapper.gravity-theme .gfield_radio,
	.gform_wrapper.gravity-theme .gfield_checkbox { grid-template-columns: 1fr; }
}

/* Direkte Kinder von main ebenfalls linksbuendig (hoehere Spezifitaet noetig,
   WordPress setzt in constrained-Layouts margin auto !important) */
.wp-site-blocks main > *:not(.alignwide):not(.alignfull):not(.aligncenter) { margin-left: var(--aa-links) !important; margin-right: auto !important; }
.wp-site-blocks main > p.is-style-aa-vorspann { max-width: 62ch; }


/* =============================================================
   === Aus den globalen Stilen uebernommen ======================
   Diagramme, Hotspots, Navigationsknopf. Standen bis 1.3.0 in den
   zusaetzlichen CSS-Regeln der Website-Stile; jetzt hier, damit es
   nur eine Quelle gibt.
   ============================================================= */
.wp-block-navigation .cta-sm > a.wp-block-navigation-item__content{background:var(--wp--preset--color--gold);color:var(--wp--preset--color--gruen-dunkel);padding:.55rem .9rem;border-radius:3px;font-weight:800;box-shadow:none}.wp-block-navigation .cta-sm > a.wp-block-navigation-item__content:hover{background:var(--wp--preset--color--gold-dunkel);color:#fff}.wp-block-post-title{margin-bottom:.6rem}.entry-content > h2{margin-top:2.6rem}.entry-content > h3{margin-top:1.8rem}.aa-register + p{margin-top:.9rem}.wp-block-columns .is-style-aa-karte{height:100%}@media (max-width:781px){.aa-kennzahlen > div{flex-basis:50%;border-right:none;border-bottom:1px solid var(--wp--preset--color--linie)}}.aa-viz{background:var(--wp--preset--color--flaeche);border:1px solid var(--wp--preset--color--linie);border-radius:4px;padding:20px 20px 16px;margin-block:var(--wp--preset--spacing--30)}.aa-viz__kopf{display:flex;justify-content:space-between;gap:14px;align-items:baseline;flex-wrap:wrap;margin-bottom:16px}.aa-viz__titel{font-family:var(--wp--preset--font-family--display);font-weight:800;font-size:.98rem}.aa-viz__sub{font-family:var(--wp--preset--font-family--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--wp--preset--color--text-3)}.aa-spanne{display:grid;gap:4px;margin-bottom:11px}.aa-spanne__zeile{display:flex;justify-content:space-between;gap:12px;font-size:.88rem;color:var(--wp--preset--color--text-2)}.aa-spanne__zeile b{font-family:var(--wp--preset--font-family--mono);font-size:.76rem;color:var(--wp--preset--color--text);font-variant-numeric:tabular-nums;font-weight:500}.aa-spur{position:relative;height:13px;background:var(--wp--preset--color--flaeche-2);border:1px solid var(--wp--preset--color--linie-hell);border-radius:2px}.aa-spur i{position:absolute;top:0;bottom:0;background:var(--wp--preset--color--gruen);border-radius:2px;display:block}.aa-spur i.gold{background:var(--wp--preset--color--gold)}.aa-achse{display:flex;justify-content:space-between;font-family:var(--wp--preset--font-family--mono);font-size:.66rem;color:var(--wp--preset--color--text-3);margin-top:8px;padding-top:7px;border-top:1px solid var(--wp--preset--color--linie-hell)}.aa-viz svg{width:100%;height:auto;display:block}.aa-hotspot{cursor:pointer}.aa-hotspot .hit{fill:transparent}.aa-hotspot:hover .punkt,.aa-hotspot:focus .punkt{fill:var(--wp--preset--color--gold)}.aa-hotspot:hover .lab,.aa-hotspot:focus .lab{fill:var(--wp--preset--color--gruen);font-weight:700}.aa-bildtext{font-family:var(--wp--preset--font-family--mono);font-size:.7rem;color:var(--wp--preset--color--text-3);margin-top:9px;line-height:1.55}

/* --- Partnerseite -------------------------------------------------------- */
.aa-vertrauen--hell { color: #9BBFAC; margin: .3rem 0 1.1rem; }
.aa-vertrauen--hell li::before { color: var(--wp--preset--color--gold); }
.aa-band .is-style-aa-vorspann { color: #C3D8CC; }
.aa-partner-fakten { border: 1px solid var(--wp--preset--color--band-rule, #0B4D36); border-radius: 4px; background: rgba(255,255,255,.04); }
.aa-partner-fakten dl { margin: 0; display: flex; flex-direction: column; }
.aa-partner-fakten dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1.15rem; border-bottom: 1px solid rgba(255,255,255,.09); }
.aa-partner-fakten dl > div:last-child { border-bottom: none; }
.aa-partner-fakten dt { font-family: var(--wp--preset--font-family--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: #9BBFAC; margin: 0; }
.aa-partner-fakten dd { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: .92rem; color: var(--wp--preset--color--gold); margin: 0; text-align: right; }
.aa-anker { display: block; height: 0; scroll-margin-top: 110px; }
.aa-karten--drei { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.aa-karten--drei .aa-karte em { order: -1; margin: 0 0 .1rem; font-size: .8rem; color: var(--wp--preset--color--gold-dunkel); }

.aa-band .is-style-aa-daten, .aa-partner-hero .is-style-aa-daten { color: var(--wp--preset--color--gold) !important; }
.aa-band .is-style-aa-haken li, .aa-band li { color: #C3D8CC; }

/* Beschriftungen in SVG-Diagrammen */
.aa-viz svg a { text-decoration: none; }
.aa-viz svg text { font-family: var(--wp--preset--font-family--display); }
.aa-viz svg text.mono { font-family: var(--wp--preset--font-family--mono); }
.aa-zeitstrahl svg { max-width: 720px; margin: 0 auto; }


/* =============================================================
   === Fussbereich 1.3.0 =======================================
   ============================================================= */
.aa-fuss { color: #D7E4DB; }
.aa-fuss-kopf { display: grid; grid-template-columns: 260px 1fr; gap: 2.4rem; align-items: start; padding-bottom: 2.4rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.aa-fuss-logo { display: block; }
.aa-fuss-logo img { width: 230px; height: auto; display: block; }
.aa-fuss-kopf p { font-size: .92rem; line-height: 1.6; color: #9BBFAC; max-width: 52ch; margin: .2rem 0 0; }

.aa-fuss-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 2rem; padding: 2.2rem 0 2rem; }
.aa-fuss-raster h2 {
	font-family: var(--wp--preset--font-family--mono); font-size: .68rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--wp--preset--color--gold) !important; margin: 0 0 .85rem;
}
.aa-fuss-raster ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.aa-fuss-raster a { color: #D7E4DB; text-decoration: none; font-size: .9rem; }
.aa-fuss-raster a:hover { color: var(--wp--preset--color--gold); text-decoration: underline; text-underline-offset: 3px; }

.aa-fuss-basis {
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
	padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.12);
	font-family: var(--wp--preset--font-family--mono); font-size: .72rem; color: #8FAF9E;
}
.aa-fuss-basis a { color: #8FAF9E; text-decoration: none; }
.aa-fuss-basis a:hover { color: var(--wp--preset--color--gold); }

@media (max-width: 720px) {
	.aa-fuss-kopf { grid-template-columns: 1fr; gap: 1.2rem; }
	.aa-fuss-logo img { width: 190px; }
}

/* Kopfbereich: Logo und Navigation auf einer Linie */
.aa-kopf .wp-block-site-logo img { width: 280px; }
.aa-kopf > .wp-block-group > .wp-block-group { align-items: center; min-height: 40px; }
@media (max-width: 1080px) { .aa-kopf .wp-block-site-logo img { width: 230px; } }
@media (max-width: 781px) { .aa-kopf .wp-block-site-logo img { width: 200px !important; } }


/* =============================================================
   === Altbeitraege aus dem vorherigen Theme ===================
   Die Beitraege liegen in einem zweispaltigen Aufbau: Artikel in
   der schmalen Spalte, Inhaltsverzeichnis daneben. In unserer
   700-px-Textspalte bleiben davon 356 px uebrig. Deshalb hier
   untereinander, Inhaltsverzeichnis zuerst.
   ============================================================= */
.aa-artikel__meta { align-items: flex-start; }

.single .entry-content > .wp-block-columns { flex-wrap: wrap !important; gap: 1.4rem 0; }
.single .entry-content > .wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
.single .entry-content > .wp-block-columns > .wp-block-column:nth-child(2) { order: -1; }

.simpletoc {
	border: 1px solid var(--wp--preset--color--linie);
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche-2);
	padding: 1.1rem 1.3rem;
	margin-block: var(--wp--preset--spacing--30);
}
.simpletoc::before {
	content: "Inhalt";
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .66rem; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--text-3); margin-bottom: .7rem;
}
.simpletoc-list { list-style: none; margin: 0; padding: 0; }
.simpletoc-list > li { break-inside: avoid; margin-bottom: .5rem; }
.simpletoc-list ul { list-style: none; margin: .35rem 0 .2rem .2rem; padding-left: .9rem; border-left: 1px solid var(--wp--preset--color--linie); }
.simpletoc-list ul li { margin-bottom: .3rem; }
@media (min-width: 620px) { .simpletoc-list { columns: 2; column-gap: 1.8rem; } }

.simpletoc-list a { color: var(--wp--preset--color--gruen); text-decoration: none; font-size: .92rem; line-height: 1.4; }
.simpletoc-list a:hover { text-decoration: underline; text-underline-offset: 3px; }
.simpletoc-list ul a { font-size: .86rem; color: var(--wp--preset--color--text-2); }

/* Ueberschrift des alten Inhaltskastens */
.single .entry-content .wp-block-column > p.has-background:first-child {
	font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.05rem;
	background: none !important; color: var(--wp--preset--color--text) !important;
	padding: 0 !important; margin-bottom: .2rem;
}

/* Bilder aus Altbeitraegen laufen nicht mehr im Text mit.
   Umflossene Bilder liessen den Text zwischen eingerueckt und
   buendig springen - in einer 700-px-Spalte unruhig und schlecht
   lesbar. Jetzt stehen sie als eigene Zeile ueber die volle Breite. */
.single .entry-content .alignleft,
.single .entry-content .alignright,
.single .entry-content figure.alignleft,
.single .entry-content figure.alignright {
	float: none !important;
	max-width: 100% !important;
	margin-left: var(--aa-links) !important;
	margin-right: 0 !important;
	margin-block: var(--wp--preset--spacing--30) !important;
}
.single .entry-content figure img { width: 100%; height: auto; }
.single .entry-content figure.wp-block-image img { border-radius: 4px; }
.single .entry-content .wp-block-cover { border-radius: 4px; min-height: 240px; }
@media (max-width: 620px) {
	.single .entry-content .alignleft,
	.single .entry-content .alignright { max-width: 100%; float: none; margin-left: 0; margin-right: 0; }
}

/* --- Register mit Gewerke-Sinnbildern ------------------------------------ */
.aa-register--icons a { grid-template-columns: 44px 1fr auto; gap: .3rem 1rem; align-items: center; }
.aa-register--icons .ic { grid-row: span 2; align-self: start; margin-top: 2px; color: var(--wp--preset--color--gruen); display: block; }
.aa-register--icons .ic svg { display: block; }
.aa-register--icons .nm { grid-column: 2; }
.aa-register--icons .pr { grid-row: 1; grid-column: 3; }
.aa-register--icons .ds { grid-column: 2 / 4; }
.aa-register--icons a:hover .ic { color: var(--wp--preset--color--gold-dunkel); }
@media (max-width: 600px) {
	.aa-register--icons a { grid-template-columns: 34px 1fr; }
	.aa-register--icons .pr { grid-row: auto; grid-column: 2; text-align: left; }
	.aa-register--icons .ds { grid-column: 2; }
}

/* --- Hinweiskaesten in der Seitenspalte ---------------------------------- */
.aa-infokasten {
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche);
	padding: 1.1rem 1.25rem;
}
.aa-infokasten--gruen { border-left: 3px solid var(--wp--preset--color--gruen); }
.aa-infokasten h2 {
	font-family: var(--wp--preset--font-family--display); font-weight: 800;
	font-size: 1.02rem; line-height: 1.25; margin: 0 0 .5rem;
}
.aa-infokasten p { font-size: .88rem; line-height: 1.6; color: var(--wp--preset--color--text-2); margin: 0; }
.aa-anfrage .gform_wrapper.gravity-theme { max-width: none; margin-top: 0; }


/* =============================================================
   === Formular: Feinschliff ===================================
   Schrittleiste als Fortschrittsbalken wie im Entwurf,
   Antwortflaechen breiter, Silbentrennung statt harter Umbrueche.
   ============================================================= */

.gform_wrapper.gravity-theme .gf_page_steps {
	display: flex; flex-wrap: nowrap; gap: 3px;
	padding: 1.15rem 1.4rem .55rem;
	background: var(--wp--preset--color--flaeche);
	border-bottom: 1px solid var(--wp--preset--color--linie);
}
.gform_wrapper.gravity-theme .gf_step {
	flex: 1 1 0; min-width: 0;
	display: flex; flex-direction: column; gap: .45rem;
	margin: 0; padding: 0; opacity: 1;
}
.gform_wrapper.gravity-theme .gf_step::before {
	content: ""; display: block; height: 4px; border-radius: 1px;
	background: var(--wp--preset--color--linie);
}
.gform_wrapper.gravity-theme .gf_step_completed::before,
.gform_wrapper.gravity-theme .gf_step_active::before { background: var(--wp--preset--color--gold); }
.gform_wrapper.gravity-theme .gf_step_number { display: none; }
.gform_wrapper.gravity-theme .gf_step_label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .6rem; letter-spacing: .07em; text-transform: uppercase;
	color: var(--wp--preset--color--text-3);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gform_wrapper.gravity-theme .gf_step_active .gf_step_label { color: var(--wp--preset--color--gruen); font-weight: 600; }
.gform_wrapper.gravity-theme .gf_step_completed .gf_step_label { color: var(--wp--preset--color--text-2); }

/* Antwortflaechen */
.gform_wrapper.gravity-theme .gfield_radio,
.gform_wrapper.gravity-theme .gfield_checkbox { grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: .5rem; }
.gform_wrapper.gravity-theme .gchoice label {
	hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word;
	min-height: 100%; display: flex; align-items: center;
}

/* Pflichtfeld-Hinweis entschaerfen */
.gform_wrapper.gravity-theme .gfield_required_text { display: none; }
.gform_wrapper.gravity-theme .gfield_required { color: var(--wp--preset--color--text-3); font-weight: 400; }

/* Frage etwas groesser, Abstand darunter */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label { font-size: 1.24rem; margin-bottom: .85rem; }
.gform_wrapper.gravity-theme .gform_page_fields { padding: 1.6rem 1.4rem .6rem; }

@media (max-width: 600px) {
	.gform_wrapper.gravity-theme .gf_step_label { display: none; }
	.gform_wrapper.gravity-theme .gf_page_steps { padding-bottom: .9rem; }
}


/* === Schrittanzeige: nur der Fortschrittsbalken, wie im Entwurf ========== */
.gform_wrapper.gravity-theme .gf_page_steps { padding: 1.15rem 1.4rem 1.15rem; flex-wrap: nowrap; }
.gform_wrapper.gravity-theme .gf_step_label,
.gform_wrapper.gravity-theme .gf_step_number { display: none !important; }
.gform_wrapper.gravity-theme .gf_step { gap: 0; }

.gform_wrapper.gravity-theme .gfield_required_text,
.gform_wrapper.gravity-theme span.gfield_required.gfield_required_text { display: none !important; }

/* --- Sinnbild ueber der Gewerke-Ueberschrift ----------------------------- */
.aa-gewerk-sinnbild { display: block; color: var(--wp--preset--color--gruen); margin-bottom: .75rem; }
.aa-gewerk-sinnbild svg { display: block; }


/* =============================================================
   === Einheitliches Textmass ==================================
   Regel: In einem Abschnitt haben Ueberschrift und Fliesstext
   dieselbe Breite. Nur Daten-Bausteine (Register, Tabellen,
   Kennzahlen, Diagramme, Karten, Formulare) laufen ueber die
   volle Breite. Damit gibt es keine Spruenge mitten im Text.

   Wichtig: kein "ch" verwenden - die Einheit haengt an der
   Schriftgroesse des Elements, eine 32-px-Ueberschrift waere bei
   68ch fast doppelt so breit wie der Fliesstext darunter.
   ============================================================= */
:root {
	--aa-mass: 630px;
	--aa-mass-schmal: 580px;
	--aa-breite: 1200px;
	/* Linker Rand eines Elements, damit es an der linken Kante des
	   zentrierten 1200-px-Bereichs sitzt - und nicht am Bildschirmrand.
	   In schmaleren Behaeltern (z. B. der 700-px-Textspalte) ergibt die
	   Rechnung 0, dort aendert sich also nichts. */
	--aa-links: max(0px, calc((100% - var(--aa-breite)) / 2));
}

/* 1. Schmale Textspalte (Vorlage "Seite"): keine zusaetzlichen Deckel */
/* Zweispaltige Seiten: Titel auf die Breite der Textspalte, damit
   Ueberschrift und Text dieselbe linke und rechte Kante haben. */
body:not(.page-template-page-breit):not(.page-template-page-landing) .wp-site-blocks main > .wp-block-post-title,
body:not(.page-template-page-breit):not(.page-template-page-landing) .wp-site-blocks main > h1.wp-block-heading { max-width: 700px !important; }
.entry-content > p.is-style-aa-vorspann { max-width: none; }

/* 2. Breite Seiten: ein Mass fuer Ueberschrift und Text */
.page-template-page-breit main > .wp-block-post-title,
.page-template-page-breit main > h1.wp-block-heading,
.page-template-page-breit main > p,
.page-template-page-breit .entry-content > h2,
.page-template-page-breit .entry-content > h3,
.page-template-page-breit .entry-content > h4,
.page-template-page-breit .entry-content > p,
.page-template-page-breit .entry-content > ul,
.page-template-page-breit .entry-content > ol,
.page-template-page-breit .entry-content > blockquote { max-width: var(--aa-mass); }

/* 3. Abschnitte auf Titel- und Landingpages */
.aa-abschnitt > h1,
.aa-abschnitt > h2,
.aa-abschnitt > h3,
.aa-abschnitt > p:not(.is-style-aa-daten) { max-width: var(--aa-mass-schmal); }

/* 4. Landingpage-Vorlage */
.page-template-page-landing .entry-content > h2,
.page-template-page-landing .entry-content > h3,
.page-template-page-landing .entry-content > p,
.page-template-page-landing .entry-content > ul,
.page-template-page-landing .entry-content > ol { max-width: var(--aa-mass); }

/* 5. Was bewusst breit bleibt */
.aa-register, .aa-kennzahlen, .aa-viz, .aa-karten, .aa-tool,
.wp-block-table,
.aa-abschnitt > .aa-register, .aa-abschnitt > .aa-viz,
.aa-abschnitt > .aa-karten, .aa-abschnitt > .aa-kennzahlen { max-width: var(--aa-breite) !important; }


/* =============================================================
   === Formular: Raster und Beschriftungen =====================
   Kurze Felder stehen paarweise nebeneinander, lange Felder ueber
   die volle Breite. Die Frage eines Auswahlfeldes ist die
   Ueberschrift des Schrittes und deshalb gross; die Beschriftung
   eines Eingabefeldes bleibt klein.
   ============================================================= */

.gform_wrapper.gravity-theme { max-width: 680px; }
.aa-anfrage .gform_wrapper.gravity-theme { max-width: none; }

/* Kurze Felder paarweise */
@media (min-width: 560px) {
	.gform_wrapper.gravity-theme .gfield--type-text,
	.gform_wrapper.gravity-theme .gfield--type-email,
	.gform_wrapper.gravity-theme .gfield--type-phone,
	.gform_wrapper.gravity-theme .gfield--type-number,
	.gform_wrapper.gravity-theme .gfield--type-date { grid-column: span 6 !important; }
	.gform_wrapper.gravity-theme .gfield--type-textarea,
	.gform_wrapper.gravity-theme .gfield--type-radio,
	.gform_wrapper.gravity-theme .gfield--type-checkbox,
	.gform_wrapper.gravity-theme .gfield--type-consent,
	.gform_wrapper.gravity-theme .gfield--type-fileupload,
	.gform_wrapper.gravity-theme .gfield--type-select { grid-column: 1 / -1 !important; }
}

/* Beschriftung: gross nur bei Auswahlfragen */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label {
	font-family: var(--wp--preset--font-family--display); font-weight: 700;
	font-size: .92rem; line-height: 1.35; margin-bottom: .45rem;
}
.gform_wrapper.gravity-theme .gfield--type-radio > .gfield_label,
.gform_wrapper.gravity-theme .gfield--type-checkbox > .gfield_label,
.gform_wrapper.gravity-theme .gfield--type-radio > legend.gfield_label,
.gform_wrapper.gravity-theme .gfield--type-checkbox > legend.gfield_label {
	font-weight: 800; font-size: 1.24rem; line-height: 1.28; margin-bottom: .85rem;
}

/* Zeichenzaehler nur dort, wo er hilft */
.gform_wrapper.gravity-theme .gfield--type-text .ginput_counter,
.gform_wrapper.gravity-theme .gfield--type-phone .ginput_counter { display: none; }

/* Platzhalter dezent */
.gform_wrapper.gravity-theme ::placeholder { color: var(--wp--preset--color--text-3); opacity: 1; }

/* Abstaende im Formularkoerper */
.gform_wrapper.gravity-theme .gform_body { padding: 1.6rem 1.4rem .4rem; }
.gform_wrapper.gravity-theme .gform_page_fields { padding: 1.6rem 1.4rem .6rem; }
.gform_wrapper.gravity-theme .gform_body .gform_page_fields { padding: 0; }
.gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 1.25rem; }

/* Formular linksbuendig statt zentriert */
.gform_wrapper.gravity-theme { margin-left: var(--aa-links) !important; margin-right: auto !important; }


/* === Formular: gleiche Kachelhoehen und Akzentkante ====================== */
.gform_wrapper.gravity-theme .gchoice { display: flex; }
.gform_wrapper.gravity-theme .gchoice label { flex: 1 1 auto; min-height: 0; }
.gform_wrapper.gravity-theme .gfield_radio,
.gform_wrapper.gravity-theme .gfield_checkbox { align-items: stretch; }

/* Einzelformulare bekommen oben eine Akzentkante wie die Rechnerkaesten */
.gform_wrapper.gravity-theme { border-top: 3px solid var(--wp--preset--color--gruen); }
.aa-anfrage .gform_wrapper.gravity-theme { border-top-width: 1px; border-top-color: var(--wp--preset--color--linie); }

/* Einwilligung optisch vom Rest abheben */
.gform_wrapper.gravity-theme .gfield--type-consent {
	background: var(--wp--preset--color--flaeche-2);
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 3px; padding: .9rem 1rem;
}
.gform_wrapper.gravity-theme .gfield--type-consent .gfield_label { margin-bottom: .5rem; }


/* =============================================================
   === Formular: Fusszeile und Schaltflaechen ==================
   Gravity Forms gibt je nach Feldtyp mal <input type=submit>,
   mal <button> aus. Beide muessen gleich aussehen.
   ============================================================= */

.gform_wrapper.gravity-theme .gform_footer,
.gform_wrapper.gravity-theme .gform-footer,
.gform_wrapper.gravity-theme .gform_page_footer {
	display: flex !important;
	justify-content: space-between; align-items: center;
	gap: .8rem; flex-wrap: wrap;
	margin: 1.2rem 0 0 !important;
	padding: 1.1rem 1.4rem 1.25rem !important;
	border-top: 1px solid var(--wp--preset--color--linie);
	background: var(--wp--preset--color--flaeche-2);
}

.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme button.gform_button,
.gform_wrapper.gravity-theme input.gform_button,
.gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform-theme-button--primary {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	line-height: 1.2 !important;
	padding: .82rem 1.5rem !important;
	border: none !important;
	border-radius: 3px !important;
	background: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--gruen-dunkel) !important;
	width: auto !important;
	margin: 0 !important;
	cursor: pointer;
	text-transform: none;
	box-shadow: none;
}
.gform_wrapper.gravity-theme .gform_button:hover,
.gform_wrapper.gravity-theme .gform_next_button:hover,
.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"]:hover {
	background: var(--wp--preset--color--gold-dunkel) !important;
	color: #fff !important;
}
.gform_wrapper.gravity-theme .gform_button:focus-visible,
.gform_wrapper.gravity-theme .gform_next_button:focus-visible {
	outline: 3px solid var(--wp--preset--color--gruen); outline-offset: 2px;
}

/* Zurueck-Schaltflaeche bleibt zurueckhaltend */
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme button.gform_previous_button,
.gform_wrapper.gravity-theme .gform-theme-button--secondary {
	background: transparent !important;
	color: var(--wp--preset--color--text-3) !important;
	font-family: var(--wp--preset--font-family--mono) !important;
	font-weight: 400 !important; font-size: .78rem !important;
	padding: .5rem .2rem !important; border: none !important;
	text-decoration: underline; order: -1; box-shadow: none;
}
.gform_wrapper.gravity-theme .gform_previous_button:hover { color: var(--wp--preset--color--gruen) !important; }

/* Ladeanzeige beim Absenden */
.gform_wrapper.gravity-theme .gform_ajax_spinner { margin-left: .7rem; }

/* Hinweiskaesten sind Fliesstext, keine Datenbausteine */
.page-template-page-breit .is-style-aa-hinweis-gruen > *,
.page-template-page-breit .is-style-aa-hinweis-gold > *,
.page-template-page-breit .is-style-aa-hinweis-rot > *,
.page-template-page-landing .is-style-aa-hinweis-gruen > *,
.page-template-page-landing .is-style-aa-hinweis-gold > *,
.page-template-page-landing .is-style-aa-hinweis-rot > * { max-width: var(--aa-mass); }

/* Im Angebotsband fuellen Ueberschrift und Text dieselbe Spalte */
.aa-band p:not(.is-style-aa-daten) { max-width: none; }

/* Die Angebotsspalte laeuft ueber die ganze Artikelhoehe mit.
   Ohne stretch ist ihre Spalte nur so hoch wie ihr Inhalt und
   sticky hat keinen Weg - die rechte Seite bliebe leer. */
.aa-layout > .wp-block-column:last-child { align-self: stretch; }


/* === Zweispaltiges Raster wie im Entwurf ================================= */
/* Textspalte flexibel, Seitenspalte fest - so fuellt das Raster die vollen
   1200 px und der Inhalt sitzt mittig auf der Seite. Der Fliesstext selbst
   bleibt auf Lesebreite begrenzt. */
.aa-layout > .wp-block-column:first-child { flex-basis: 0 !important; flex-grow: 1 !important; min-width: 0; }
.aa-layout > .wp-block-column:first-child .entry-content,
.aa-layout > .wp-block-column:first-child > .wp-block-query { max-width: 700px; }
.aa-layout .wp-block-post-content > * { max-width: 700px; }

/* Spaltenraster halten sich an die Seitenbreite */
.wp-block-columns { max-width: var(--aa-breite); }


/* =============================================================
   === Kastenmodell und Abschnittsraender ======================
   ============================================================= */

/* Rahmen und Innenabstand zaehlen zur Breite. Ohne das wurden
   Diagramm- und Registerkaesten um Rahmen plus Padding breiter als
   der 1200-px-Bereich und ragten links und rechts heraus. */
*, *::before, *::after { box-sizing: border-box; }

/* Auch Ueberschriften und alles andere in einem Abschnitt sitzen an
   der linken Kante des zentrierten Bereichs, nicht in dessen Mitte. */
.aa-abschnitt > * { margin-left: var(--aa-links) !important; margin-right: auto !important; }
.aa-abschnitt > .aa-viz,
.aa-abschnitt > .aa-register,
.aa-abschnitt > .aa-karten,
.aa-abschnitt > .aa-kennzahlen,
.aa-abschnitt > .wp-block-columns { margin-left: var(--aa-links) !important; }

/* Sinnbild in der Auswahlflaeche */
.gform_wrapper.gravity-theme .gchoice label:has(.aa-wahl-sinnbild) {
	display: flex; flex-direction: column; align-items: flex-start; gap: .55rem;
	padding: .95rem .9rem;
}
.aa-wahl-sinnbild { display: block; color: var(--wp--preset--color--gruen); }
.aa-wahl-sinnbild svg { display: block; }
.gform_wrapper.gravity-theme .gchoice input:checked + label .aa-wahl-sinnbild { color: var(--wp--preset--color--gruen); }

/* Hinweis auf das Alter eines Beitrags */
.aa-altbeitrag {
	border: 1px solid var(--wp--preset--color--linie);
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche-2);
	padding: .85rem 1.1rem;
	margin-block: 0 var(--wp--preset--spacing--30);
}
.aa-altbeitrag p { margin: 0; font-size: .88rem; line-height: 1.55; color: var(--wp--preset--color--text-2); }
.aa-altbeitrag strong { color: var(--wp--preset--color--text); }
.aa-altbeitrag a { color: var(--wp--preset--color--gruen); }
/* Interne Verweise im Fliesstext sichtbar machen */
.single .entry-content p a { color: var(--wp--preset--color--gruen); text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
.single .entry-content p a:hover { text-decoration-color: currentColor; }

/* Bestaetigung nach dem Absenden */
.aa-bestaetigung {
	border: 1px solid var(--wp--preset--color--gruen);
	border-top: 3px solid var(--wp--preset--color--gold);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche);
	padding: 2.4rem 2rem 2.2rem;
	max-width: 680px;
	text-align: center;
}
.aa-bestaetigung svg { color: var(--wp--preset--color--gruen); margin: 0 auto .9rem; display: block; }
.aa-bestaetigung h2 { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.5rem; margin: 0 0 .8rem; }
.aa-bestaetigung p { max-width: 46ch; margin: 0 auto .9rem; color: var(--wp--preset--color--text-2); font-size: .95rem; line-height: 1.6; }
.aa-bestaetigung__klein { font-family: var(--wp--preset--font-family--mono); font-size: .76rem !important; line-height: 1.6; color: var(--wp--preset--color--text-3) !important; }
.aa-bestaetigung__knopf { margin-top: 1.4rem !important; }
.aa-bestaetigung__knopf a { display: inline-block; text-decoration: none; }

/* Datentabellen im Beitrag: Rahmen aussen, waagerechte Linien innen,
   auf schmalen Bildschirmen seitlich scrollbar statt gequetscht. */
.aa-tabelle-rahmen {
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 4px;
	background: var(--wp--preset--color--flaeche);
	overflow-x: auto;
	margin-block: var(--wp--preset--spacing--30);
}
.aa-tabelle-rahmen table { border-collapse: collapse; width: 100%; min-width: 520px; margin: 0; border: none; }
.aa-tabelle-rahmen th,
.aa-tabelle-rahmen td { text-align: left; padding: .7rem .95rem; border: none; border-bottom: 1px solid var(--wp--preset--color--linie-hell); vertical-align: top; font-size: .92rem; line-height: 1.55; }
.aa-tabelle-rahmen thead th {
	font-family: var(--wp--preset--font-family--mono); font-size: .66rem; letter-spacing: .1em;
	text-transform: uppercase; color: var(--wp--preset--color--text-3);
	background: var(--wp--preset--color--flaeche-2);
	border-bottom: 1px solid var(--wp--preset--color--linie); white-space: nowrap;
}
.aa-tabelle-rahmen tbody tr:last-child td { border-bottom: none; }
.aa-tabelle-rahmen td.n { font-family: var(--wp--preset--font-family--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }


/* --- Ausschreibungen ------------------------------------------------------
   Der Anriss ist oeffentlich und indexierbar. Alles, was einen Bauherrn
   erkennbar macht, steht bewusst nicht darin - siehe aa_ausschreibung_anriss().
   -------------------------------------------------------------------------- */
.aa-ausschreibungen { display: grid; gap: 1.1rem; margin-block: var(--wp--preset--spacing--30); }
.aa-ausschreibung { border: 1px solid var(--wp--preset--color--linie); border-radius: 4px; background: var(--wp--preset--color--flaeche); padding: 1.15rem 1.3rem 1.25rem; }
.aa-ausschreibung + .aa-ausschreibung__fuss { margin-top: -1.25rem; }
.aa-ausschreibung__kopf { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-family: var(--wp--preset--font-family--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--text-3); margin-bottom: .55rem; }
.aa-ausschreibung__kopf .frist { color: var(--wp--preset--color--gold-dunkel, #B08800); font-weight: 600; }
.aa-ausschreibung__titel { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.18rem; line-height: 1.28; margin: 0 0 .6rem; }
.aa-ausschreibung__titel a { text-decoration: none; color: inherit; }
.aa-ausschreibung__titel a:hover { color: var(--wp--preset--color--gruen); }
.aa-marken { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .8rem; }
.aa-marke { font-family: var(--wp--preset--font-family--mono); font-size: .68rem; letter-spacing: .04em; padding: .22rem .5rem; border: 1px solid var(--wp--preset--color--linie); border-radius: 2px; color: var(--wp--preset--color--text-2); background: var(--wp--preset--color--flaeche-2); }
.aa-ausschreibung__daten { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .55rem 1.2rem; margin: 0 0 .85rem; }
.aa-ausschreibung__daten dt { font-family: var(--wp--preset--font-family--mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--text-3); margin-bottom: .12rem; }
.aa-ausschreibung__daten dd { margin: 0; font-size: .93rem; font-weight: 600; }
.aa-ausschreibung__punkte { margin: 0; padding-left: 1.05rem; }
.aa-ausschreibung__punkte li { font-size: .93rem; line-height: 1.5; margin-bottom: .25rem; }
.aa-ausschreibung__punkte li::marker { color: var(--wp--preset--color--gold); }

.aa-ausschreibung__fuss { border: 1px solid var(--wp--preset--color--linie); border-top: 0; border-radius: 0 0 4px 4px; background: var(--wp--preset--color--flaeche-2); padding: .85rem 1.3rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.aa-knopf { display: inline-block; background: var(--wp--preset--color--gruen); color: #fff; text-decoration: none; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .88rem; padding: .62rem 1.05rem; border-radius: 3px; }
.aa-knopf:hover { background: var(--wp--preset--color--gruen-dunkel, #013322); color: #fff; }
.aa-verdeckt { flex: 1 1 210px; font-size: .82rem; line-height: 1.45; color: var(--wp--preset--color--text-3); }
.aa-leer { border: 1px dashed var(--wp--preset--color--linie); border-radius: 4px; padding: 1.4rem 1.3rem; color: var(--wp--preset--color--text-2); }

.aa-schranke { border-top: 2px solid var(--wp--preset--color--gruen); margin-top: var(--wp--preset--spacing--40); padding-top: 1.4rem; }
.aa-schranke h2 { margin-top: 0; }
.aa-kleingedruckt { font-size: .8rem; line-height: 1.55; color: var(--wp--preset--color--text-3); margin-top: 1.2rem; }
.aa-hinweis-geschlossen { border-left: 3px solid var(--wp--preset--color--gold); padding: .2rem 0 .2rem 1.1rem; }

/* Auf der Einzelseite steht der Anriss ohne Fusszeile - dort traegt die
   Karte selbst die volle Rundung. */
.single-aa_ausschreibung .aa-ausschreibung { border-radius: 4px; }
