/* Generalunternehmer: eigene Inhalte, gemeinsame FIX30-Komponenten. */
.fx-gu .fx-hero h1{font-size:clamp(2.6rem,4.8vw,4.5rem);max-width:16ch;line-height:1.08}
.fx-gu .fx-hero{padding-bottom:64px}
.fx-gu-aufgaben{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fx-gu-aufgaben .fx-karte{min-height:0;padding:32px}
.fx-gu-symbol{font-size:14px;color:var(--leise);margin-bottom:40px}
.fx-gu-aufgaben h3{font-size:24px;margin-bottom:16px}
.fx-gu-aufgaben p{color:var(--leise);line-height:1.7;margin:0}
.fx-gu-hinweis{color:var(--leise);font-size:14px;max-width:75ch;margin-top:20px}
.fx-gu-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.fx-gu-budget{padding:40px;border:1px solid var(--kante);border-radius:24px;background:var(--flaeche)}
.fx-gu-budget h3{font-size:28px;letter-spacing:-.04em;margin-bottom:20px}
.fx-gu-budget p{color:var(--leise);line-height:1.7;margin-bottom:28px}
.fx-gu-budget .fx-btn{max-width:100%;gap:16px}
.fx-gu-textlink{display:block;width:fit-content;margin-top:20px;color:var(--leise);text-underline-offset:4px}
@media(max-width:750px){.fx-gu-aufgaben{grid-template-columns:1fr}.fx-gu-symbol{margin-bottom:24px}.fx-gu-vergleich th,.fx-gu-vergleich td{padding:14px 10px;font-size:13px;overflow-wrap:break-word}.fx-gu-budget{padding:28px}.fx-gu .fx-hero h1{font-size:clamp(2.35rem,8vw,3.4rem)}}

.fx-gu-netz{position:relative;isolation:isolate;margin-top:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(28px,8vw,130px);padding:48px clamp(16px,5vw,80px);border:1px solid var(--kante);border-radius:24px;background:var(--flaeche)}
.fx-gu-leitungen{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.fx-gu-leitung{fill:none;stroke:var(--kante);stroke-width:1.3}
.fx-gu-impuls{fill:none;stroke:var(--gelb);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:17 101;stroke-dashoffset:12;opacity:0}
.fx-gu-netz.fx-gu-netz--aktiv .fx-gu-impuls{animation:fx-gu-signal 3.6s linear infinite both;animation-delay:var(--fx-gu-verzug);animation-play-state:paused}
@keyframes fx-gu-signal{0%{stroke-dashoffset:12;opacity:0}8%{opacity:1}90%{opacity:1}100%{stroke-dashoffset:-118;opacity:0}}
.fx-gu-gewerke{display:grid;gap:22px;position:relative}
.fx-gu-gewerke--links{justify-items:start}.fx-gu-gewerke--rechts{justify-items:end}
.fx-gu-gewerk{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 20px;border:1px solid var(--kante);border-radius:99px;background:var(--flaeche);font-size:14px;font-weight:500;white-space:nowrap}
.fx-gu-gewerk>svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;color:var(--leise)}
.fx-gu-nabe{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid var(--kante);border-radius:99px;padding:22px 32px;background:var(--flaeche);box-shadow:0 6px 24px rgba(var(--tinte-rgb),.06)}
.fx-gu-nabe .fx-logo{font-size:28px}
@media(max-width:650px){.fx-gu-netz{padding:30px 12px;gap:12px;margin-top:40px;grid-template-columns:1fr auto 1fr}.fx-gu-gewerke{gap:24px}.fx-gu-gewerk{gap:5px;font-size:10px;padding:9px 8px;min-height:38px}.fx-gu-gewerk>svg{width:13px;height:13px}.fx-gu-nabe{padding:14px 10px}.fx-gu-nabe .fx-logo{font-size:18px}.fx-gu-nabe .fx-pfeil{width:16px}}
@media(prefers-reduced-motion:reduce){.fx-gu-netz.fx-gu-netz--aktiv .fx-gu-impuls{animation:none}}
@media(max-width:650px){.fx-gu .fx-paar{grid-template-columns:minmax(0,1fr)}.fx-gu .fx-paar>*{min-width:0}.fx-gu-budget .fx-btn{white-space:normal;text-align:center;height:auto;min-height:48px}}
@media(max-width:360px){.fx-gu .fx-schluss .fx-btn{max-width:100%;white-space:normal;height:auto;min-height:50px;padding:14px 16px;text-align:center;gap:10px}}
/* Dekorative Ebenen dürfen auf schmalen Geräten keinen Seitenscroll erzeugen. */
.fx-gu{overflow-x:clip}
html:has(body.fx-gu){overflow-x:clip}

/* Vergleich nach dem Muster der FIX30-Hauptseite. */
.fx-gu-vergleich{max-width:1000px;margin:48px auto 0;padding-bottom:18px}
.fx-gu-vergleich table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;text-align:left}
.fx-gu-vergleich th,.fx-gu-vergleich td{padding:24px;line-height:1.6;vertical-align:top;font-size:15px}
.fx-gu-vergleich thead th{font-size:13px;color:var(--leise);font-weight:600;vertical-align:middle;text-align:center;padding-block:26px}
.fx-gu-vergleich thead th:first-child{width:26%;text-align:left}
.fx-gu-vergleich tbody th{font-weight:600;background:var(--flaeche);border-left:1px solid var(--kante);border-bottom:1px solid var(--kante)}
.fx-gu-vergleich tbody td{background:var(--flaeche);color:var(--leise);border-bottom:1px solid var(--kante)}
.fx-gu-vergleich tbody td:last-child{border-right:1px solid var(--kante)}
.fx-gu-vergleich tbody tr:first-child> :first-child{border-top:1px solid var(--kante);border-top-left-radius:20px}
.fx-gu-vergleich tbody tr:first-child> :last-child{border-top:1px solid var(--kante);border-top-right-radius:20px}
.fx-gu-vergleich tbody tr:last-child> :first-child{border-bottom-left-radius:20px}
.fx-gu-vergleich tbody tr:last-child> :last-child{border-bottom-right-radius:20px}
.fx-gu-vergleich .fx-gu-vgl-fix{border-left:1.5px solid var(--tinte);border-right:1.5px solid var(--tinte);color:var(--tinte);font-weight:500}
.fx-gu-vergleich thead .fx-gu-vgl-fix{background:var(--tinte);color:var(--auf-tinte);border-radius:20px 20px 0 0;border-top:1.5px solid var(--tinte)}
.fx-gu-vergleich thead .fx-logo{font-size:24px;color:inherit}
.fx-gu-vergleich tbody tr:last-child .fx-gu-vgl-fix{border-bottom:1.5px solid var(--tinte);border-radius:0 0 20px 20px;padding-bottom:38px}
.fx-gu-vgl-inhalt{display:flex;align-items:flex-start;gap:10px}
.fx-gu-vgl-inhalt i{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:var(--gelb);color:var(--auf-gelb);font-size:12px;font-weight:700;font-style:normal;margin-top:2px}
.fx-gu-vgl-label{display:none}
@media(max-width:650px){
 .fx-gu-vergleich{margin-top:28px;padding-bottom:0}
 .fx-gu-vergleich table,.fx-gu-vergleich tbody{display:block}
 .fx-gu-vergleich thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .fx-gu-vergleich tbody tr{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--kante);border-radius:20px;padding:20px;background:var(--flaeche)}
 .fx-gu-vergleich tbody tr+tr{margin-top:16px}
 .fx-gu-vergleich tbody tr>*{display:block;width:auto;padding:0;border:0!important;border-radius:0!important;background:none;font-size:14px;overflow-wrap:normal}
 .fx-gu-vergleich tbody th{font-size:18px;margin-bottom:20px}
 .fx-gu-vergleich tbody .fx-gu-vgl-fix{padding:16px;border:1.5px solid var(--tinte)!important;border-radius:12px!important;margin-bottom:20px}
 .fx-gu-vergleich tbody tr:last-child .fx-gu-vgl-fix{padding-bottom:16px}
 .fx-gu-vgl-label{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:10px}
 .fx-gu-vergleich tbody td:last-child{padding-inline:16px}
}
/* Drei bewusst gesetzte Zeilen am Desktop; flexible Zeilen auf kleinen Geräten. */
.fx-gu .fx-hero h1{font-size:clamp(2.2rem,3.8vw,3.5rem);max-width:none;letter-spacing:-.045em;line-height:1.12}
.fx-gu .fx-hero h1>span{display:block}
@media(max-width:750px){.fx-gu .fx-hero h1{font-size:clamp(1.85rem,7.7vw,3rem);overflow-wrap:normal}.fx-gu .fx-hero h1>span{display:inline}}

.fx-gu-netz.fx-gu-netz--laeuft .fx-gu-impuls{animation-play-state:running}
.fx-gu-netz-pause{position:absolute;right:12px;bottom:8px;width:28px;height:28px;border:0;border-radius:50%;background:var(--flaeche);color:var(--leise);cursor:pointer;font:inherit;font-size:12px}
.fx-gu-netz-pause:focus-visible{outline:2px solid var(--tinte);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.fx-gu-netz-pause{display:none}}
