/* GeFaSuisse – eigene Frontend-Styles (Child-Theme), Digitalminds Studios, 18.09.2026 */

/* ---- Logo (Inline-SVG, Einblend-Animation beim Laden, analog SafeConsult) ---- */

.gefa-logo-wrap {
	display: flex;
	align-items: center;
}

.gefa-logo-wrap p {
	margin: 0;
}

.gefa-logo {
	display: inline-block;
	line-height: 0;
}

.gefa-logo__svg {
	display: block;
	width: 280px;
	height: auto;
	overflow: visible;
}

/* Sticky-Header: Logo gleich gross wie oben (Entscheid 18.09.2026, nicht verkleinern) */
@media (max-width: 1199px) {
	.gefa-logo__svg { width: 230px; }
}

/* 1. Winkel: kreisförmige Maske öffnet sich, Symbol dreht leicht ein */
.gefa-logo__iris {
	transform-box: fill-box;
	transform-origin: center;
	animation: gefa-logo-iris 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

.gefa-logo__mark {
	transform-box: fill-box;
	transform-origin: center;
	animation: gefa-logo-mark 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

/* 2. Schriftzug: Maske wischt von links nach rechts auf */
.gefa-logo__wipe {
	transform-box: fill-box;
	transform-origin: left center;
	animation: gefa-logo-wipe 0.6s cubic-bezier(0.65, 0, 0.35, 1) 0.45s both;
}

.gefa-logo__text {
	animation: gefa-logo-text 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s both;
}

@keyframes gefa-logo-iris {
	from { transform: scale(0); }
	to { transform: scale(1); }
}

@keyframes gefa-logo-mark {
	from { transform: rotate(-45deg) scale(0.85); }
	to { transform: none; }
}

@keyframes gefa-logo-wipe {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes gefa-logo-text {
	from { transform: translateX(-40px); }
	to { transform: none; }
}

/* Sticky-Logo und «Bewegung reduzieren»: keine Animation.
   .gefa-logo-fertig (auf <html>, per Skript in functions.php) = Animation ist einmal gelaufen bzw. es wurde
   gescrollt. Avada blendet das obere Logo beim Sticky-Wechsel per display:none aus und wieder ein, was die
   Animation sonst bei jedem Hochscrollen neu startet (18.09.2026). */
.gefa-logo--statisch .gefa-logo__iris,
.gefa-logo--statisch .gefa-logo__mark,
.gefa-logo--statisch .gefa-logo__wipe,
.gefa-logo--statisch .gefa-logo__text,
.gefa-logo-fertig .gefa-logo__iris,
.gefa-logo-fertig .gefa-logo__mark,
.gefa-logo-fertig .gefa-logo__wipe,
.gefa-logo-fertig .gefa-logo__text {
	animation: none;
}

@media (prefers-reduced-motion: reduce) {
	.gefa-logo__iris,
	.gefa-logo__mark,
	.gefa-logo__wipe,
	.gefa-logo__text {
		animation: none;
	}
}

/* ---- Hero-Video: Poster ausblenden, sobald das Video läuft (18.09.2026) ----
   Avada legt auf Handys (.ua-mobile) das Poster mit z-index 2 über das Hintergrundvideo. Die Klasse
   «gefa-video-laeuft» setzt das Skript in functions.php beim Ereignis «playing»; ohne Autoplay
   (z. B. Stromsparmodus) bleibt das Poster stehen. */
#gefa-hero .fullwidth-video-image {
	transition: opacity 0.4s ease;
}

#gefa-hero.gefa-video-laeuft .fullwidth-video-image {
	opacity: 0;
	pointer-events: none;
}

/* ---- Hero: Scroll-Winkel (Mediathek 2339, Link auf #gefa-inhalt) wird beim Hover weiss (18.09.2026) ----
   Das Bild ist ein rotes PNG; der Filter färbt es vollständig weiss. */
#gefa-hero a[href="#gefa-inhalt"] img {
	transition: filter 0.25s ease;
}

#gefa-hero a[href="#gefa-inhalt"]:hover img,
#gefa-hero a[href="#gefa-inhalt"]:focus-visible img {
	filter: brightness(0) invert(1);
}

/* ---- Sticky-Header: Schatten ---------------------------------------------------
   Avada setzt beim absoluten Header «fusion-container-stuck» schon oben;
   erst «fusion-sticky-transition» kommt beim Scrollen dazu. */
.fusion-tb-header .fusion-fullwidth.fusion-sticky-transition {
	--awb-box-shadow: 0 10px 28px -12px rgba(26, 25, 25, 0.35);
	box-shadow: 0 10px 28px -12px rgba(26, 25, 25, 0.35) !important;
}

/* ---- CTA-Buttons: Winkel nach rechts (Form des Logo-Signets, als Maske in Schriftfarbe) ----
   Nur Standard-Buttons (button-default = CTA); Buttons mit eigener Farbe/Icon (button-custom) nicht. */
.fusion-button.button-default .fusion-button-text::after,
.awb-menu__main-a_button .menu-text.fusion-button::after {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.67em;
	margin-left: 0.6em;
	vertical-align: -0.04em;
	background-color: currentColor;
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	transition: transform 0.2s ease-out;
}

.fusion-button.button-default:hover .fusion-button-text::after,
.fusion-button.button-default:focus-visible .fusion-button-text::after,
.awb-menu__main-a_button:hover .menu-text.fusion-button::after,
.awb-menu__main-a_button:focus-visible .menu-text.fusion-button::after {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.fusion-button.button-default .fusion-button-text::after,
	.awb-menu__main-a_button .menu-text.fusion-button::after {
		transition: none;
	}
}

/* ---- Menü-CTA («Individuelle Beratung»): Hover «Background Slide Right» wie Avada-Buttons ----
   Avada-Buttons: Element-Option hover_transition="bg_slide_right". Menü-Buttons kennen die Option
   nicht → gleicher Effekt per CSS (gleiche Form, Kurve 0.35s cubic-bezier(0.21,0.6,0.35,1)). */
.awb-menu__main-a_button .menu-text.fusion-button {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.awb-menu__main-a_button .menu-text.fusion-button::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	background: var(--awb-color5);
	clip-path: polygon(0 0, 0 0, -50% 100%, 0 100%);
	transition: clip-path 0.35s cubic-bezier(0.21, 0.6, 0.35, 1);
}

.awb-menu__main-a_button:hover .menu-text.fusion-button,
.awb-menu__main-a_button:focus-visible .menu-text.fusion-button {
	background: var(--awb-color7);
}

.awb-menu__main-a_button:hover .menu-text.fusion-button::before,
.awb-menu__main-a_button:focus-visible .menu-text.fusion-button::before {
	clip-path: polygon(0 0, 150% 0, 100% 100%, 0 100%);
}

@media (prefers-reduced-motion: reduce) {
	.awb-menu__main-a_button .menu-text.fusion-button::before {
		transition: none;
	}
}

/* ---- Header gross (Section 2354, Container-Klasse «gefa-header-gross»): Navigation mittig (19.09.2026) ----
   Logo links, CTA «Individuelle Beratung» rechts, die vier Menüpunkte mittig im freien Raum dazwischen –
   im normalen und im Sticky-Header. Die Logo-Spalte ist so breit wie das Logo, die Menü-Spalte füllt den Rest.
   Avada-Spaltenabstände (Prozent) sind hier auf 0 gesetzt, sonst stimmt die Mitte nicht. Der CTA ist der
   letzte Menüpunkt; beide automatischen Ränder (erster Punkt, CTA) teilen den Platz gleichmässig auf.
   padding-left 12px gleicht den Avada-Abstand (margin-right 12px) des letzten Menüpunkts vor dem CTA aus. */
.gefa-header-gross > .fusion-builder-row {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.gefa-header-gross .fusion-column-wrapper {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.gefa-header-gross > .fusion-builder-row > .fusion-layout-column:first-child {
	width: auto !important;
	flex: 0 0 auto;
}

.gefa-header-gross > .fusion-builder-row > .fusion-layout-column:last-child {
	width: auto !important;
	flex: 1 1 0;
	min-width: 0;
}

.gefa-header-gross .awb-menu__main-ul {
	box-sizing: border-box;
	width: 100%;
	padding-left: 12px;
}

.gefa-header-gross .awb-menu__main-ul > li:first-child,
.gefa-header-gross .awb-menu__main-ul > li:last-child {
	margin-left: auto;
}

/* 1200–1365 px: sonst rutscht der CTA in eine zweite Zeile → Menüpunkte enger (Abstand 12 statt 24 px,
   Innenabstand 6 statt 10 px). Darunter übernimmt der Header Medium/Small mit Hamburger-Menü.
   22.09.2026: Grenze von 1279 auf 1365 px angehoben – mit der Sprachwahl «FR» vor dem CTA brach das deutsche
   Menü bei 1280 px zweizeilig um. */
@media (max-width: 1365px) {
	.gefa-header-gross .awb-menu__main-ul {
		padding-left: 6px;
	}

	.gefa-header-gross .awb-menu__main-ul > li:not(:last-child) {
		margin-right: 6px !important;
	}

	.gefa-header-gross .awb-menu__main-ul > li:not(:first-child):not(:last-child) {
		margin-left: 6px !important;
	}

	.gefa-header-gross .awb-menu__main-ul > li:last-child {
		margin-right: 0 !important;
	}

	.gefa-header-gross .awb-menu__main-ul > li:not(:last-child) > a {
		padding-left: 6px !important;
		padding-right: 6px !important;
	}
}

/* ==== Startseite: Sektionen unter dem Hero (19.09.2026) ==================================================== */

/* Info-Box: Icon links, Titel + Text rechts (Text aus Admin «Startseite-Texte»), volle Inhaltsbreite */
.gefa-infobox > .fusion-column-wrapper {
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start;
	gap: 56px !important;
	column-gap: 56px !important;
}

/* Signet (Logo-Winkel) statt Icon, 19.09.2026 */
.gefa-infobox .fusion-image-element {
	flex: 0 0 56px;
	width: 56px;
	margin-top: 4px;
}

.gefa-infobox .gefa-infobox__signet,
.gefa-infobox .gefa-infobox__signet img {
	display: block;
	width: 56px;
	max-width: none;
}

/* Links in der Info-Box rot, Hover Tiefrot mit Unterstreichung */
#main .gefa-infobox .gefa-infobox__text a {
	color: var(--awb-color7);
}

#main .gefa-infobox .gefa-infobox__text a:hover,
#main .gefa-infobox .gefa-infobox__text a:focus-visible {
	color: var(--awb-color5);
	text-decoration: underline;
}

.gefa-infobox .gefa-infobox__text {
	flex: 1 1 auto;
	min-width: 0;
}

#main h3.gefa-infobox__titel,
#main h3.gefa-kurs__titel {
	margin: 0 0 12px;
	font-size: 24px;
	line-height: 1.42;
}

@media (max-width: 640px) {
	.gefa-infobox > .fusion-column-wrapper {
		flex-direction: column !important;
		gap: 20px !important;
	}
}

/* Kurs-Boxen: Titel schwarz (Logo-Anthrazit), Daten als Liste mit rotem Winkel (Logo-Signet) */
#main h3.gefa-kurs__titel {
	color: var(--awb-custom10);
}

#main .gefa-kursliste {
	margin: 0;
	padding: 0;
	list-style: none;
}

#main .gefa-kursliste li {
	position: relative;
	margin: 0 0 6px;
	padding-left: 24px;
}

#main .gefa-kursliste li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0.5em;
	height: 0.67em;
	background-color: var(--awb-color7);
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
}

/* Icons statisch: keine Hover-Farbe, keine Hover-Animation */
#main .gefa-icon-statisch,
#main .gefa-icon-statisch:hover {
	color: var(--awb-color7) !important;
	transform: none !important;
	transition: none !important;
	cursor: default;
}

/* … ausser beim Einblenden: Steht ein Icon allein (nicht in einer Box, z. B. Kontaktblock), ist es selbst
   das animierte Element. Ohne diese Ausnahme schlägt «transform/transition: none !important» oben die
   Einblende-Animation, und das Icon ist sofort da (21.09.2026). */
html.gefa-anim #main .gefa-icon-statisch.gefa-einblenden {
	transform: translateY(24px) !important;
}

html.gefa-anim #main .gefa-icon-statisch.gefa-einblenden.gefa-sichtbar {
	transform: none !important;
	transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) !important;
	transition-delay: var(--gefa-verzoegerung, 0ms) !important;
}

#main .gefa-icon-statisch::before {
	transition: none !important;
}

/* Avada-Hover-Animation «slide» (aus den Theme Options) nutzt ::after – hier ausschalten */
#main .gefa-icon-statisch::after {
	display: none !important;
}

/* Grauer Balken als Übergang: zieht von einer Seite, endet vor dem anderen Rand (Referenz: Demo «Testimonial»).
   --links: vom linken Rand, endet rechts 80 px ausserhalb des Inhalts; --rechts: gespiegelt.
   Unter 1540 px Viewport reicht der Balken bis zum Rand. */
.gefa-balken {
	position: relative;
	isolation: isolate;
}

.gefa-balken::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: -1;
	background: var(--awb-color2);
}

.gefa-balken--links::before {
	left: 0;
	right: max(0px, calc((100% - 1380px) / 2 - 80px));
}

.gefa-balken--rechts::before {
	right: 0;
	left: max(0px, calc((100% - 1380px) / 2 - 80px));
}

/* Vergleich: Listen etwas kompakter */
.gefa-vergleich .fusion-li-item-content {
	font-size: 17px;
	line-height: 1.6;
}

/* FAQ auf Logo-Anthrazit: Plus-Zeichen öffnet, Minus schliesst (Avada-Icons); Titel weiss, Hover rot */
.gefa-faq .panel-title a,
.gefa-faq .panel-title a .fusion-toggle-heading {
	color: var(--awb-color1);
}

.gefa-faq .panel-title a:hover .fusion-toggle-heading,
.gefa-faq .panel-title a:focus-visible .fusion-toggle-heading {
	color: var(--awb-color7);
}

.gefa-faq .toggle-content,
.gefa-faq .toggle-content p {
	color: var(--awb-color3);
}

/* USP-Liste «Kurze Anleitung»: graue Balken mit Häkchen wie Demo «About Us» (Buttons), aber ohne Link */
#main .gefa-usp .fusion-li-item {
	display: flex;
	width: fit-content;
	max-width: 100%;
	margin: 0 0 12px;
	padding: 16px 28px;
	background: var(--awb-color2);
	align-items: center;
}

#main .gefa-usp .fusion-li-item-content {
	font-size: var(--awb-typography3-font-size);
	font-weight: 600;
	line-height: 1.4;
	color: var(--awb-custom10);
}

.gefa-nowrap {
	white-space: nowrap;
}

/* Kacheln in «Ausbildungen und Prüfungen» und Vergleichsboxen: je Reihe gleich hoch */
.gefa-balken .fusion-builder-row-inner {
	align-items: stretch !important;
}

.gefa-balken .fusion-builder-row-inner > .fusion-layout-column {
	align-self: stretch !important;
}

/* Kacheln «Ausbildungen und Prüfungen»: festes Raster, alle 6 Boxen gleich breit und gleich hoch
   (grid-auto-rows 1fr = jede Reihe so hoch wie die höchste Box), 20 px Abstand. 19.09.2026 */
.gefa-kacheln .fusion-builder-row-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: 20px;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	/* Avada schreibt inline «width: 104% !important» (plus −2 % Rand, den wir auf 0 setzen) – nicht zu
	   überschreiben. Das Raster hing deshalb rechts 4 % über (375 px: 12 px, 1440 px: 36 px). Ausgleich: 4 %
	   Innenabstand rechts bei border-box → Rasterfläche = Spaltenbreite, links und rechts bündig (22.09.2026). */
	box-sizing: border-box;
	padding-right: 4% !important;
}

.gefa-kacheln .fusion-builder-row-inner > .fusion-layout-column {
	width: auto !important;
	margin: 0 !important;
}

.gefa-kacheln .fusion-builder-row-inner > .fusion-layout-column > .fusion-column-wrapper {
	height: 100%;
	margin: 0 !important;
}

/* Tablet: zwei Spalten (22.09.2026) – dreispaltig blieben bei 641 px nur 127 px Innenbreite, «Ergänzungsmodule»
   (197 px) lief aus der Box. Ab 900 px passen drei Spalten wieder (217 px innen). */
@media (min-width: 641px) and (max-width: 899px) {
	.gefa-kacheln .fusion-builder-row-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.gefa-kacheln .fusion-builder-row-inner {
		grid-template-columns: minmax(0, 1fr);
		grid-auto-rows: auto;
	}
}

/* Boxen: weiss mit Rahmen und weichem Schatten wie im Demo-Kasten «Join to newsletter» auf /news/
   (Entscheid Vincenzo 21.09.2026 – ersetzt die graue Fassung vom 19.09.2026).
   Info-Box, Kurs-Boxen, Kacheln und Vergleichsboxen bekommen Rahmen/Schatten aus dem Builder
   (`BOX` in baue_startseite.py), die USP-Balken «Kurze Anleitung» hier. */
#main .gefa-usp .fusion-li-item {
	background-color: var(--awb-color1);
	border: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.08);
	box-shadow: 0 12px 24px -11px hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.24);
}

/* Vergleich: beide Boxköpfe (Logo / «Andere Anbieter») gleich hoch → Trennlinien auf gleicher Höhe (19.09.2026) */
#main .gefa-vergleich-kopf {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 72px;
	height: 72px;
	min-height: 72px;
	margin: 0 0 24px;
}

/* Listen: jede Zeile gleich hoch (2 Zeilen Platz), damit links und rechts Zeile für Zeile auf einer Linie stehen */
#main .gefa-vergleich .fusion-li-item {
	min-height: 68px;
	margin: 0 !important;
	padding: 0 !important;
	align-items: flex-start;
}

#main .gefa-vergleich-kopf p {
	margin: 0;
}

#main .gefa-vergleich-kopf img {
	display: block;
	width: 172px;
	height: auto;
}

#main .gefa-vergleich-kopf h4 {
	margin: 0;
	text-align: center;
}

/* Footer «Informationen» (Menü 23): wie die Adresse (18/30 px, normal, Fliesstext-Farbe), roter Logo-Winkel
   als Aufzählungszeichen wie bei «Nächste Kurse». Hover Signalrot. 19.09.2026 */
.fusion-tb-footer .gefa-footer-info .awb-menu__main-li {
	margin: 0 !important;
}

.fusion-tb-footer .gefa-footer-info .awb-menu__main-a {
	position: relative;
	padding: 0 0 0 24px !important;
	min-height: 0 !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 30px !important;
	color: var(--awb-color8) !important;
}

.fusion-tb-footer .gefa-footer-info .awb-menu__main-a .menu-text {
	font-weight: 400 !important;
}

.fusion-tb-footer .gefa-footer-info .awb-menu__main-a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 0.5em;
	height: 0.67em;
	transform: translateY(-50%);
	background-color: var(--awb-color7);
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
}

.fusion-tb-footer .gefa-footer-info .awb-menu__main-a:hover,
.fusion-tb-footer .gefa-footer-info .awb-menu__main-a:focus-visible {
	color: var(--awb-color7) !important;
}

/* Desktop-Untermenü: gleicher roter Winkel vor jedem Unterpunkt (22.09.2026). Link ist bei Avada flex
   (Text vertikal zentriert) → Winkel als erstes Flex-Element, Abstand zum Text wie im Footer (1.33em − 0.5em).
   Dropdown so breit wie der längste Eintrag + 20 px (keine Mindestbreite), damit nichts umbricht (DE und FR). */
.fusion-tb-header .awb-menu_desktop .awb-menu__sub-ul {
	width: max-content;
	padding-top: 7px;
	padding-bottom: 12px;
	background-color: var(--awb-submenu-bg, #fff); /* Avada färbt nur die li – ohne das bliebe die Polsterung über dem Video durchsichtig */
}

.fusion-tb-header .awb-menu_desktop .awb-menu__sub-li {
	width: auto;
}

/* Zeilen kompakter (Wunsch Vincenzo 22.09.2026): 51 → rund 36 px je Eintrag. Dropdown-Polsterung oben 7 / unten 12 px:
   sichtbarer Abstand Schrift → Kante oben und unten je 20 px, gleich wie links (Winkel) und rechts (längster Eintrag). */
.fusion-tb-header .awb-menu_desktop .awb-menu__sub-a {
	justify-content: flex-start;
	padding-top: 7px;
	padding-bottom: 7px;
	line-height: 1.4;
	white-space: nowrap;
}

.fusion-tb-header .awb-menu_desktop .awb-menu__sub-a::before {
	content: "";
	flex: none;
	width: 0.5em;
	height: 0.67em;
	margin-right: 0.83em;
	background-color: var(--awb-color7);
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
}

/* Kursdaten verlinkt (Link je Box in «Startseite-Texte»): Textfarbe wie bisher, Hover Signalrot */
#main .gefa-kursliste a {
	color: inherit;
}

#main .gefa-kursliste a:hover,
#main .gefa-kursliste a:focus-visible {
	color: var(--awb-color7);
}

/* Einblende-Animation beim Scrollen (Skript in functions.php, nur wenn <html> die Klasse gefa-anim hat).
   1. Bis das Skript bereit ist, sind die Sektionen unter dem Hero ganz verborgen (kein Aufblitzen).
   2. Danach (gefa-anim-bereit) sind die Sektionen sichtbar, die einzelnen Elemente sofort verborgen …
   3. … und blenden animiert ein, sobald sie ins Bild kommen (gefa-sichtbar). */
html.gefa-anim:not(.gefa-anim-bereit) #main .fusion-fullwidth:not(#gefa-hero),
html.gefa-anim:not(.gefa-anim-bereit) .fusion-tb-footer .fusion-fullwidth,
html.gefa-anim:not(.gefa-anim-bereit) #gefa-hero .fusion-builder-row-inner,
html.gefa-anim:not(.gefa-anim-bereit) #gefa-hero .fusion-image-element {
	visibility: hidden;
}

html.gefa-anim .gefa-einblenden {
	opacity: 0;
	transform: translateY(24px);
}

html.gefa-anim .gefa-einblenden.gefa-sichtbar {
	opacity: 1;
	transform: none;
	transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--gefa-verzoegerung, 0ms);
}

@media (prefers-reduced-motion: reduce) {
	html.gefa-anim .gefa-einblenden {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ---- Cookie-Hinweis unten (19.09.2026, Aufbau wie SafeConsult, Farben GeFaSuisse, Radius 0) ----
   Sichtbar/ausgeblendet steuert js/gefa-cookie-hinweis.js. z-index 998: unter dem Avada-Mobilmenü. */
.gefa-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 998;
	background: var(--awb-color1);
	box-shadow: 0 -8px 30px hsla(var(--awb-custom10-h), var(--awb-custom10-s), var(--awb-custom10-l), calc(var(--awb-custom10-a) - 88%));
	transform: translateY(100%);
	transition: transform 0.3s ease;
}

.gefa-cookie.gefa-cookie--sichtbar {
	transform: translateY(0);
}

.gefa-cookie__innen {
	display: flex;
	align-items: center;
	gap: 14px 40px;
	box-sizing: border-box;
	max-width: calc(1380px + 60px);
	margin: 0 auto;
	padding: 18px 30px calc(18px + env(safe-area-inset-bottom, 0px));
}

/* Schriftgrössen optisch an SafeConsult angeglichen (20.09.2026): dort Verdana (breiter, höhere
   Kleinbuchstaben), hier Helvetica → je 1 px grösser plus etwas Laufweite im Text. */
.gefa-cookie .gefa-cookie__text {
	flex: 1 1 auto;
	margin: 0;
	color: var(--awb-color8);
	font-size: 15px;
	line-height: 1.6;
	letter-spacing: 0.24px;
}

.gefa-cookie .gefa-cookie__text a {
	color: var(--awb-color7);
	text-decoration: none;
}

.gefa-cookie .gefa-cookie__text a:hover,
.gefa-cookie .gefa-cookie__text a:focus-visible {
	color: var(--awb-color5);
	text-decoration: underline;
}

.gefa-cookie__knoepfe {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 8px 16px;
}

.gefa-cookie .gefa-cookie__knoepfe button {
	min-height: 44px;
	margin: 0;
	border: 0;
	border-radius: 0;
	font-family: var(--awb-typography3-font-family);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gefa-cookie .gefa-cookie__akzeptieren {
	padding: 12px 26px;
	background: var(--awb-color7);
	color: var(--awb-color1);
}

.gefa-cookie .gefa-cookie__akzeptieren:hover,
.gefa-cookie .gefa-cookie__akzeptieren:focus-visible {
	background: var(--awb-color5);
	color: var(--awb-color1);
}

.gefa-cookie .gefa-cookie__schliessen {
	padding: 12px 10px;
	background: transparent;
	color: var(--awb-custom10);
}

.gefa-cookie .gefa-cookie__schliessen:hover,
.gefa-cookie .gefa-cookie__schliessen:focus-visible {
	background: transparent;
	color: var(--awb-color7);
}

.gefa-cookie .gefa-cookie__knoepfe button:focus-visible {
	outline: 2px solid var(--awb-color7);
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.gefa-cookie__innen {
		flex-direction: column;
		align-items: stretch;
		padding-top: 16px;
		padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
	}

	.gefa-cookie__knoepfe {
		justify-content: space-between;
	}

	.gefa-cookie .gefa-cookie__akzeptieren {
		flex: 1 1 auto;
	}
}

/* Kurzfassung des Cookie-Texts nur auf dem Handy (22.09.2026, Mobile-Check Punkt 3): Hinweis war 208 px hoch. */
.gefa-cookie__kurz {
	display: none;
}

@media (max-width: 640px) {
	.gefa-cookie__lang {
		display: none;
	}

	.gefa-cookie__kurz {
		display: inline;
	}

	.gefa-cookie__innen {
		gap: 10px;
		padding: 14px 20px calc(12px + env(safe-area-inset-bottom, 0px));
	}

	.gefa-cookie .gefa-cookie__text {
		font-size: 14px;
		line-height: 1.5;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gefa-cookie {
		transition: none;
	}
}

/* ==========================================================================
   Unterseiten (ab 21.09.2026) — weisser Header, Einstieg mit Bild, Kontaktseite
   ========================================================================== */

/* Weisser Header (Section 2511): bewusst ohne Trennlinie (Wunsch Vincenzo 21.09.2026).
   Die Abgrenzung zum Inhalt macht allein der Sticky-Schatten beim Scrollen. */

/* Kicker über dem Seitentitel (Vorlage: Demo-Seite «Services») */
#main .gefa-kicker {
	color: var(--awb-color7);
	font-size: 18px;
	line-height: 24px;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin: 0;
}

/* Etikett auf dem Bild: weisse Karte unten links, gleiche Kante wie alle Boxen */
#main .gefa-bildetikett > .fusion-column-wrapper {
	position: relative;
}

#main .gefa-etikett {
	position: absolute;
	z-index: 2; /* sonst malt Avada das Bild darüber */
	left: 24px;
	right: 24px;
	bottom: 24px;
	max-width: 420px;
	margin: 0 !important;
	padding: 20px 24px;
	background-color: var(--awb-color1);
	border: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.08);
	box-shadow: 0 12px 24px -11px hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.24);
}

#main .gefa-etikett__name {
	margin: 0 0 2px;
	font-size: 18px;
	line-height: 26px;
	font-weight: 700;
	color: var(--awb-custom10);
}

#main .gefa-etikett__text {
	margin: 0;
	font-size: 16px;
	line-height: 24px;
	color: var(--awb-color6);
}

/* Handy: Etikett unter dem Foto statt darüber (Wunsch Vincenzo 22.09.2026 – sonst verdeckte es zwei Drittel des
   Bildes). Weisse Karte in voller Bildbreite, direkt am Bild. */
@media (max-width: 640px) {
	#main .gefa-etikett {
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
		max-width: none;
		padding: 16px 18px;
	}

	#main .gefa-bildetikett .fusion-image-element {
		margin-bottom: 0 !important;
	}
}

/* Kontaktblock: Icon links, Titel daneben, Inhalt darunter (Vorlage: Demo «Get a personal consultation») */
#main .gefa-kontaktblock > .fusion-column-wrapper {
	display: grid;
	grid-template-columns: 34px 1fr;
	column-gap: 14px;
	align-items: center;
}

#main .gefa-kontaktblock .fusion-fontawesome {
	grid-column: 1;
	grid-row: 1;
	margin: 0 !important;
}

#main .gefa-kontaktblock .fusion-title {
	grid-column: 2;
	grid-row: 1;
}

#main .gefa-kontaktblock .fusion-text {
	grid-column: 2;
	grid-row: 2;
	margin-top: 6px;
}

#main .gefa-kontaktblock .fusion-text a {
	color: var(--awb-color8);
}

#main .gefa-kontaktblock .fusion-text a:hover {
	color: var(--awb-color7);
}

/* Karte mit Einwilligung: Vorschau ohne jeden Google-Aufruf, iframe erst nach Klick */
#main .gefa-karte {
	position: relative;
	aspect-ratio: 4 / 3;
	background-color: var(--awb-color1);
	border: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.08);
	box-shadow: 0 12px 24px -11px hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.24);
	overflow: hidden;
}

#main .gefa-karte__vorschau {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	height: 100%;
	padding: 28px;
}

#main .gefa-karte__stift {
	font-size: 32px;
	color: var(--awb-color7);
	margin-bottom: 14px;
}

#main .gefa-karte__titel {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 26px;
	font-weight: 700;
	color: var(--awb-custom10);
}

#main .gefa-karte__hinweis {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 24px;
	color: var(--awb-color6);
}

#main .gefa-karte__knopf {
	appearance: none;
	border: 0;
	border-radius: 0;
	background-color: var(--awb-color7);
	color: var(--awb-color1);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 13px 24px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

#main .gefa-karte__knopf:hover,
#main .gefa-karte__knopf:focus-visible {
	background-color: var(--awb-color5);
}

#main .gefa-karte--geladen {
	padding: 0;
}

#main .gefa-karte iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Kontaktformular (Contact Form 7). Masse aus dem Design-System: Feldhöhe 56 px,
   Rahmen Grau 400, Radius 0, Schaltfläche wie jeder andere Button. */
#main .gefa-formular__reihe {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 24px;
}

#main .gefa-feld {
	margin: 0 0 22px;
}

#main .gefa-feld label {
	display: block;
	margin-bottom: 6px;
	font-size: 18px;
	line-height: 26px;
	font-weight: 600;
	color: var(--awb-custom10);
}

#main .gefa-pflicht {
	color: var(--awb-color7);
}

#main .gefa-formular input[type="text"],
#main .gefa-formular input[type="email"],
#main .gefa-formular input[type="tel"],
#main .gefa-formular select,
#main .gefa-formular textarea {
	width: 100%;
	max-width: 100%;
	font-family: inherit;
	font-size: 18px;
	line-height: 26px;
	color: var(--awb-color8);
	background-color: var(--awb-color1);
	border: 1px solid var(--awb-custom13);
	border-radius: 0;
	box-shadow: none;
}

#main .gefa-formular input[type="text"],
#main .gefa-formular input[type="email"],
#main .gefa-formular input[type="tel"],
#main .gefa-formular select {
	height: 56px;
	padding: 0 16px;
}

#main .gefa-formular textarea {
	min-height: 150px;
	padding: 14px 16px;
	resize: vertical;
}

#main .gefa-formular input:hover,
#main .gefa-formular select:hover,
#main .gefa-formular textarea:hover,
#main .gefa-formular input:focus,
#main .gefa-formular select:focus,
#main .gefa-formular textarea:focus {
	border-color: var(--awb-color7);
}

#main .gefa-formular input:focus,
#main .gefa-formular select:focus,
#main .gefa-formular textarea:focus {
	outline: none;
}

/* Feldumschlag von Contact Form 7 als Block, sonst entsteht unter der Beschriftung eine leere Zeile */
#main .gefa-feld .wpcf7-form-control-wrap {
	display: block;
}

#main .gefa-formular ::placeholder {
	color: var(--awb-color6);
	opacity: 1;
}

#main .gefa-datenschutz {
	margin: 4px 0 24px;
	font-size: 15px;
	line-height: 24px;
	color: var(--awb-color6);
}

#main .gefa-datenschutz .wpcf7-list-item {
	margin: 0;
}

/* Link auf die Datenschutzerklärung: rot wie alle Links. Ein <a> in einer <label> schaltet das
   Kontrollkästchen nicht mit um – der Browser behandelt Links als eigenständig bedienbar. */
#main .gefa-datenschutz a {
	color: var(--awb-color7);
	text-decoration: none;
}

#main .gefa-datenschutz a:hover,
#main .gefa-datenschutz a:focus-visible {
	color: var(--awb-color5);
	text-decoration: underline;
}

#main .gefa-datenschutz input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-right: 10px;
	accent-color: var(--awb-color7);
	vertical-align: -3px;
}

/* Sende-Schaltfläche: gleiche Masse, gleicher Winkel und gleicher Hover wie die Avada-Buttons.
   Contact Form 7 liefert ein <input>, das keine Pseudo-Elemente trägt — Hintergrund, Winkel und
   Farbwechsel sitzen deshalb auf dem umschliessenden <p class="gefa-absenden">. */
#main .gefa-absenden {
	display: inline-block;
	position: relative;
	overflow: hidden;
	margin: 0;
	background-color: var(--awb-color7);
}

#main .gefa-absenden::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--awb-color5);
	clip-path: polygon(0 0, 0 0, -50% 100%, 0 100%);
	transition: clip-path 0.35s cubic-bezier(0.21, 0.6, 0.35, 1);
}

#main .gefa-absenden:hover::before,
#main .gefa-absenden:focus-within::before {
	clip-path: polygon(0 0, 150% 0, 100% 100%, 0 100%);
}

#main .gefa-absenden::after {
	content: "";
	position: absolute;
	z-index: 2;
	right: 40px;
	top: 50%;
	width: 9px;
	height: 12px;
	transform: translateY(-50%);
	background-color: var(--awb-color1);
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	transition: transform 0.2s ease-out;
	pointer-events: none;
}

#main .gefa-absenden:hover::after,
#main .gefa-absenden:focus-within::after {
	transform: translateY(-50%) translateX(4px);
}

#main .gefa-formular input[type="submit"] {
	position: relative;
	z-index: 1;
	width: auto;
	appearance: none;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--awb-color1);
	font-family: inherit;
	font-size: 18px;
	line-height: 21px;
	font-weight: 600;
	padding: 17px 62px 17px 40px;
	cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
	#main .gefa-absenden::before,
	#main .gefa-absenden::after {
		transition: none;
	}
}

#main .gefa-formular .wpcf7-not-valid-tip {
	font-size: 15px;
	line-height: 22px;
	color: var(--awb-color7);
	margin-top: 6px;
}

#main .gefa-formular .wpcf7-not-valid {
	border-color: var(--awb-color7);
}

#main .gefa-formularbox .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 14px 18px;
	border-width: 1px;
	border-radius: 0;
	font-size: 16px;
	line-height: 24px;
}

@media (max-width: 640px) {
	#main .gefa-formular__reihe {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Karten-Sektion «Anfahrt» (Kontaktseite): Karte über die Breite der Boxenreihe, bereits geladen. */
#main .gefa-karte--gross {
	aspect-ratio: auto;
	height: 520px;
	padding: 0;
}

@media (max-width: 1024px) {
	#main .gefa-karte--gross {
		height: 400px;
	}
}

@media (max-width: 640px) {
	#main .gefa-karte--gross {
		height: 300px;
	}
}

/* ==========================================================================
   Seite «Über uns» (21.09.2026)
   ========================================================================== */

/* Trägerorganisationen und Gremien: Raster auf der ÄUSSEREN Zeile.
   Wichtig: keine [fusion_builder_row_inner] verwenden – Avada gibt inneren Zeilen inline
   width:104% !important mit, das überläuft bei voller Breite und ist per CSS nicht zu überschreiben.
   Der Titel liegt als erste Spalte im selben Raster und nimmt die volle Breite ein. */

/* Trägerorganisationen: drei je Reihe – neun Organisationen ergeben drei volle Reihen.
   Flexbox statt Raster, damit eine nicht volle Reihe mittig stünde. */
#main .gefa-traeger > .fusion-builder-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}

#main .gefa-traeger > .fusion-builder-row > .fusion-layout-column {
	width: auto !important;
	margin: 0 !important;
}

#main .gefa-traeger > .fusion-builder-row > .gefa-rasterkopf {
	flex: 0 0 100%;
}

#main .gefa-traeger > .fusion-builder-row > .gefa-traeger__feld {
	flex: 0 0 calc(33.333% - 14px);
}

#main .gefa-gremien > .fusion-builder-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

#main .gefa-gremien > .fusion-builder-row > .fusion-layout-column {
	width: auto !important;
	margin: 0 !important;
}

#main .gefa-gremien > .fusion-builder-row > .gefa-rasterkopf,
#main .gefa-gremien > .fusion-builder-row > .gefa-gremium--breit {
	grid-column: 1 / -1;
}

#main .gefa-traeger > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper,
#main .gefa-gremien > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper {
	height: 100%;
	margin: 0 !important;
}

/* Abstand Kopf → Inhalt: gemessen 56 px bis zur Oberkante der ersten Kachel – gleich wie auf der
   Startseite. Der Zahlenwert ist kleiner als dort, weil hier zusätzlich der Eigenabstand des letzten
   Absatzes (20 px) und der Spaltenabstand der Kacheln (20 px) dazukommen. Muss NACH den Spaltenregeln stehen: deren «margin: 0 !important» hat dieselbe
   Spezifität und würde sonst gewinnen (21.09.2026). */
#main .gefa-traeger > .fusion-builder-row > .gefa-rasterkopf,
#main .gefa-gremien > .fusion-builder-row > .gefa-rasterkopf {
	margin-bottom: 16px !important;
}

#main .gefa-traeger__feld > .fusion-column-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

/* Logofeld: feste Höhe für die Grundlinie, die Bildhöhe kommt je Logo aus --gefa-logo-hoehe.
   Die Werte folgen der gleichen Fläche, nicht der gleichen Höhe – sonst wirken quadratische
   Signets viel grösser als breite Wortmarken (berechnet in texte-ueber-uns.json). */
#main .gefa-traeger__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 58px;
	margin: 0 0 18px !important;
}

#main .gefa-traeger__bild {
	/* 78 % statt 100 %: sehr breite Wortmarken (SBB, SPEDLOGSWISS) würden sonst von Rand zu Rand
	   laufen und die Reihe dominieren, obwohl ihre Fläche stimmt. */
	max-width: 68%;
	max-height: var(--gefa-logo-hoehe, 38px);
	width: auto;
	height: auto;
	object-fit: contain;
}

/* Feste Höhe statt Obergrenze: Die Logozeile ist nur so breit wie ihr Inhalt, max-width 68 % rechnet
   also vom Logo selbst und drückt feine Wortmarken (scienceindustries, VBS) unter ihre Zielhöhe.
   Mit fester Höhe ergibt sich die Breite aus dem Seitenverhältnis. Feld «volle_breite» in texte-ueber-uns.json. */
#main .gefa-traeger__logo--fest .gefa-traeger__bild {
	height: var(--gefa-logo-hoehe, 38px);
	max-height: none;
	max-width: 100%;
}

#main .gefa-traeger__name {
	margin: 0 0 14px;
	font-size: 19px;
	line-height: 26px;
	font-weight: 700;
	color: var(--awb-custom10);
}

#main .gefa-traeger__link {
	margin: auto 0 0;
	line-height: 1;
}

#main .gefa-traeger__link a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: var(--awb-color7);
	font-size: 17px;
	transition: color 0.2s ease, transform 0.2s ease;
}

#main .gefa-traeger__link a:hover,
#main .gefa-traeger__link a:focus-visible {
	color: var(--awb-color5);
	transform: translateY(-2px);
}

#main .gefa-personen {
	list-style: none;
	margin: 0;
	padding: 0;
}

#main .gefa-gremium--breit .gefa-personen {
	columns: 3;
	column-gap: 36px;
}

#main .gefa-person {
	display: grid;
	grid-template-columns: 24px 1fr;
	column-gap: 12px;
	margin: 0 0 16px;
	break-inside: avoid;
}

#main .gefa-person__symbol {
	grid-column: 1;
	grid-row: 1 / span 2;
	color: var(--awb-color7);
	font-size: 20px;
	line-height: 26px;
	text-align: center;
}

#main .gefa-person__name {
	grid-column: 2;
	font-size: 18px;
	line-height: 26px;
	font-weight: 600;
	color: var(--awb-custom10);
}

#main .gefa-person__rolle {
	font-weight: 400;
	color: var(--awb-color7);
}

#main .gefa-person__org {
	grid-column: 2;
	font-size: 16px;
	line-height: 24px;
	color: var(--awb-color6);
}

/* Statuten: Fliesstext mit Luft zwischen den Artikeln */
#main .gefa-statuten .fusion-text p {
	margin-bottom: 14px;
}

#main .gefa-statuten__schluss {
	margin-top: 36px;
	font-size: 17px;
	color: var(--awb-color6);
}

@media (max-width: 1024px) {
	#main .gefa-gremien > .fusion-builder-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#main .gefa-traeger > .fusion-builder-row > .gefa-traeger__feld {
		flex: 0 0 calc(33.333% - 14px);
	}

	#main .gefa-gremium--breit .gefa-personen {
		columns: 2;
	}
}

@media (max-width: 640px) {
	#main .gefa-gremien > .fusion-builder-row {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Eine Spalte: «scienceindustries» und «SPEDLOGSWISS» sind als ununterbrechbares Wort breiter
	   als eine halbe Zeile und würden die Kachel sprengen (Flex-Elemente schrumpfen nicht unter
	   ihre kleinste Inhaltsbreite). */
	#main .gefa-traeger > .fusion-builder-row > .gefa-traeger__feld {
		flex: 0 0 100%;
		min-width: 0;
	}

	#main .gefa-gremium--breit .gefa-personen {
		columns: 1;
	}
}

/* ---- Kursauswahl (Seite «Ausbildungen», 21.09.2026) ----
   Ausführlichere Box nach Demo-Seite «Services»: Icon, Titel, Text, drei Häkchen, Button.
   Der Button sitzt in allen drei Boxen auf derselben Höhe, egal wie lang der Text ist. */
#main .gefa-angebot > .fusion-column-wrapper {
	height: 100%;
}

#main .gefa-angebot .fusion-checklist {
	margin-bottom: 32px;
}

/* Avada legt den Button in ein eigenes <div> – das muss nach unten, nicht der Button selbst */
#main .gefa-angebot > .fusion-column-wrapper > :last-child {
	margin-top: auto;
}

/* Handy: schmalere Polsterung, damit auch «Zur Ergänzungsprüfung» auf einer Zeile bleibt.
   22.09.2026: Text + Pfeil + 2 × 18 px = 259 px bei 250 px Platz → Pfeil rutschte in Zeile 2. Jetzt Box
   seitlich 20 px, Button 14 px und 17 px Schrift: 240 px, passt ab 360 px Bildschirmbreite. */
@media (max-width: 640px) {
	#main .gefa-angebot > .fusion-column-wrapper {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	#main .gefa-angebot .fusion-button {
		padding-left: 14px !important;
		padding-right: 14px !important;
		font-size: 17px;
	}
}

/* ---- Kundenstimmen als Karussell ([gefa_stimmen], js/gefa-stimmen.js) ----
   Karten weiss, eckig wie jede Box. Die Spur scrollt nativ mit Einrasten; drei Karten auf dem Desktop,
   zwei auf dem Tablet, eine (mit angeschnittener nächster Karte) auf dem Handy. */
.gefa-stimmen__spur {
	display: flex;
	column-gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	padding: 4px 0 8px;
}

.gefa-stimmen__spur::-webkit-scrollbar {
	display: none;
}

.gefa-stimmen__spur:focus-visible {
	outline: 2px solid var(--awb-color7);
	outline-offset: 6px;
}

.gefa-stimme {
	flex: 0 0 calc((100% - 48px) / 3);
	min-width: 0; /* sonst drücken lange Wörter («Gefahrgutbeauftragte,») die Karte breiter als ihr Anteil */
	scroll-snap-align: start;
	overflow-wrap: break-word;
	hyphens: auto;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 40px 36px 32px;
	background-color: var(--awb-color1);
	border-radius: 0;
	text-align: left;
}

@media (max-width: 1200px) {
	.gefa-stimme {
		flex-basis: calc((100% - 24px) / 2);
	}
}

@media (max-width: 640px) {
	.gefa-stimmen__spur {
		column-gap: 16px;
	}

	.gefa-stimme {
		flex-basis: 86%;
		padding: 32px 24px 24px;
	}
}

#main .gefa-stimme__sterne {
	display: flex;
	gap: 4px;
	margin: 0 0 20px;
	font-size: 18px;
	line-height: 1;
	color: var(--awb-color7);
}

#main .gefa-stimme__titel {
	margin: 0 0 12px;
	font-size: 24px;
	line-height: 34px;
	letter-spacing: -0.36px;
	color: var(--awb-custom10);
}

#main .gefa-stimme__text {
	flex: 1 1 auto;
	margin: 0 0 28px;
	font-size: 17px;
	line-height: 27.2px;
	color: var(--awb-custom10);
}

.gefa-stimme__person {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.12);
}

.gefa-stimme__bild {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	border-radius: 0;
	object-fit: cover;
}

.gefa-stimme__bild--initiale {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--awb-color7);
	color: var(--awb-color1);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

.gefa-stimme__person > span:last-child {
	min-width: 0;
}

.gefa-stimme__name {
	display: block;
	font-size: 18px;
	line-height: 26px;
	font-weight: 700;
	color: var(--awb-custom10);
}

.gefa-stimme__funktion {
	display: block;
	font-size: 14px;
	line-height: 22px;
	color: var(--awb-custom10);
}

/* Punkte: eckig (Radius 0 überall), der aktive wird zum roten Balken */
.gefa-stimmen__punkte {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 40px;
}

.gefa-stimmen__punkte[hidden] {
	display: none;
}

.gefa-stimmen__punkt {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: hsla(var(--awb-color1-h), var(--awb-color1-s), var(--awb-color1-l), 0.35);
	cursor: pointer;
	transition: width 0.3s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s ease;
}

.gefa-stimmen__punkt:hover {
	background-color: hsla(var(--awb-color1-h), var(--awb-color1-s), var(--awb-color1-l), 0.7);
}

.gefa-stimmen__punkt.ist-aktiv {
	width: 36px;
	background-color: var(--awb-color7);
}

.gefa-stimmen__punkt:focus-visible {
	outline: 2px solid var(--awb-color1);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.gefa-stimmen__spur {
		scroll-behavior: auto;
	}

	.gefa-stimmen__punkt {
		transition: none;
	}
}

/* ---- Informationen zur Prüfung: FAQ in drei Gruppen (Seite «Prüfungen», 21.09.2026) ----
   Je Gruppe eine weisse Box mit zugeklapptem Akkordeon; Fragen dunkel, Plus-Symbol rot wie auf der Startseite.
   Keine Trennlinien zwischen den Fragen (Wunsch Vincenzo 21.09.2026) – auch Avadas eigene Linien aus. */
#main .gefa-faq-hell .fusion-panel,
#main .gefa-faq-hell .panel-heading,
#main .gefa-faq-hell .panel-collapse,
#main .gefa-faq-hell .panel-body {
	border: 0 !important;
}

/* Absatz nach einer Liste im Antworttext: sichtbarer Abstand, sonst klebt er an der Liste */
#main .gefa-faq-hell .toggle-content ul + p {
	margin-top: 20px;
}

/* Abstand und Schrift der Fragen wie im FAQ der Startseite: 20/28.4, Polsterung 10 px → 49 px je Zeile */
#main .gefa-faq-hell .panel-title a {
	padding-top: 10px;
	padding-bottom: 10px;
}

#main .gefa-faq-hell .panel-title a .fusion-toggle-heading {
	color: var(--awb-custom10);
	font-size: 20px;
	line-height: 28.4px;
}

#main .gefa-faq-hell .panel-title a:hover .fusion-toggle-heading,
#main .gefa-faq-hell .panel-title a:focus-visible .fusion-toggle-heading {
	color: var(--awb-color7);
}

#main .gefa-faq-hell .toggle-content,
#main .gefa-faq-hell .toggle-content p,
#main .gefa-faq-hell .toggle-content li {
	color: var(--awb-custom10);
	font-size: 17px;
	line-height: 27.2px;
}

#main .gefa-faq-hell .toggle-content {
	padding-bottom: 12px;
}

/* Geschlossen sind die drei Gruppen gleich hoch. Ist eine Frage offen, wächst nur deren Box – die anderen
   behalten ihre eigene Höhe, statt mitgezogen zu werden und leer zu wirken. */
#main .fusion-builder-row:has(.gefa-faq-hell .panel-collapse.in, .gefa-faq-hell .panel-collapse.collapsing) > .gefa-faq-gruppe {
	align-self: flex-start !important;
}

/* Zeitplan des Prüfungstags: Uhrzeit fett links, Teil rechts daneben */
#main .gefa-ablauf {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

#main .gefa-ablauf li {
	display: grid;
	grid-template-columns: 104px 1fr;
	column-gap: 12px;
	margin: 0 0 6px;
}

#main .gefa-ablauf li span {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* Handy: zu schmal für zwei Spalten – Uhrzeit über den Teil */
@media (max-width: 640px) {
	#main .gefa-ablauf li {
		display: block;
		margin-bottom: 10px;
	}

	#main .gefa-ablauf li span {
		display: block;
	}
}

/* ---- Kurstermine ([gefa_termine], Layout der Tocco-Anbindung, 21.09.2026) ----
   Weisse Box wie jede Box, Kopfzeile mit roten Icons, Zeilen mit feiner Linie getrennt, Status als eckiges
   Farbfeld (Radius 0 überall – keine Punkte), Anmelden als kleiner roter Button mit Winkel. */
#main .gefa-termine {
	background-color: var(--awb-color1);
	border: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.08);
	box-shadow: 0 12px 24px -11px hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.24);
	padding: 16px 40px;
}

#main .gefa-termine__tabelle {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 17px;
	line-height: 27.2px;
	color: var(--awb-custom10);
}

#main .gefa-termine__tabelle th,
#main .gefa-termine__tabelle td {
	padding: 30px 20px;
	border: 0;
	border-bottom: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.12);
	text-align: left;
	vertical-align: middle;
	background: transparent;
}

#main .gefa-termine__tabelle tbody tr:last-child td {
	border-bottom: 0;
}

/* Spalten: nur der Kursname darf umbrechen. Ort hat eigene Zeilen (Name, Adresse) – jede bleibt ganz, sonst werden
   die Zeilen ungleich hoch. */
#main .gefa-termine__tabelle td:nth-child(2),
#main .gefa-termine__tabelle td:nth-child(3),
#main .gefa-termine__tabelle td:nth-child(4),
#main .gefa-termine__tabelle td:nth-child(5),
#main .gefa-termine__tabelle td:nth-child(6),
#main .gefa-termine__tabelle td:nth-child(7) {
	white-space: nowrap;
}

#main .gefa-termine__tabelle th {
	padding-top: 20px;
	padding-bottom: 20px;
	font-size: 14px;
	line-height: 22px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--awb-custom10);
}

#main .gefa-termine__tabelle th i {
	margin-right: 8px;
	color: var(--awb-color7);
}

#main .gefa-termine__tabelle th:first-child,
#main .gefa-termine__tabelle td:first-child {
	padding-left: 0;
}

#main .gefa-termine__tabelle th:last-child,
#main .gefa-termine__tabelle td:last-child {
	padding-right: 0;
	text-align: right;
}

#main .gefa-termine__kurs {
	font-size: 18px;
	font-weight: 700;
}

#main .gefa-termine__status {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
}

/* Status: eckiges Farbfeld mit heller Umrandung in derselben Farbe (Radius 0 überall) */
#main .gefa-termine__status {
	--gefa-status: var(--awb-custom12);
	gap: 14px;
}

#main .gefa-termine__status.is-wenige {
	--gefa-status: var(--awb-custom15);
}

#main .gefa-termine__status.is-voll {
	--gefa-status: var(--awb-color7);
}

#main .gefa-termine__status::before {
	content: "";
	width: 12px;
	height: 12px;
	flex: 0 0 12px;
	margin-left: 4px;
	background-color: var(--gefa-status);
	outline: 4px solid color-mix(in srgb, var(--gefa-status) 28%, transparent);
}

#main .gefa-termine__knopf {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	padding: 12px 22px;
	background-color: var(--awb-color7);
	color: var(--awb-color1);
	font-size: 16px;
	line-height: 20px;
	font-weight: 600;
	white-space: nowrap;
	transition: background-color 0.2s ease;
}

#main .gefa-termine__knopf::after {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.67em;
	margin-left: 0.6em;
	background-color: var(--awb-color1) !important; /* weiss wie bei allen CTA – sonst färbt eine Theme-Regel ihn dunkel */
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	transition: transform 0.2s ease-out;
}

/* Hover «Background Slide Right» wie die Avada-Buttons und der Menü-CTA */
#main .gefa-termine__knopf::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	background: var(--awb-color5);
	clip-path: polygon(0 0, 0 0, -50% 100%, 0 100%);
	transition: clip-path 0.35s cubic-bezier(0.21, 0.6, 0.35, 1);
}

#main a.gefa-termine__knopf:hover,
#main a.gefa-termine__knopf:focus-visible {
	color: var(--awb-color1);
}

#main a.gefa-termine__knopf:hover::before,
#main a.gefa-termine__knopf:focus-visible::before {
	clip-path: polygon(0 0, 150% 0, 100% 100%, 0 100%);
}

#main .gefa-termine__knopf.is-voll::before {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	#main .gefa-termine__knopf::before,
	#main .gefa-termine__knopf::after {
		transition: none;
	}
}

#main a.gefa-termine__knopf:hover::after,
#main a.gefa-termine__knopf:focus-visible::after {
	transform: translateX(4px);
}

#main .gefa-termine__knopf.is-voll {
	background-color: var(--awb-custom13);
}

#main .gefa-termine__knopf.is-voll::after {
	display: none;
}

/* Schmalere Desktops: weniger seitliche Polsterung; unter 1300 px dürfen auch Anmeldeschluss und Ort umbrechen */
@media (max-width: 1439px) {
	#main .gefa-termine__tabelle th,
	#main .gefa-termine__tabelle td {
		padding-left: 12px;
		padding-right: 12px;
	}
}

@media (max-width: 1299px) {
	#main .gefa-termine__tabelle td:nth-child(3),
	#main .gefa-termine__tabelle td:nth-child(5) {
		white-space: normal;
	}
}

/* Tablet und Handy: jede Zeile wird zur Karte, Beschriftung links, Wert rechts. Grenze 1259 px: darunter passt
   die Tabelle mit sieben Spalten nicht mehr in die Box (gemessen: 1210 px → 32 px Überlauf). */
@media (max-width: 1259px) {
	#main .gefa-termine {
		padding: 8px 24px;
	}

	#main .gefa-termine__tabelle thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	#main .gefa-termine__tabelle tr {
		display: block;
		padding: 20px 0;
		border-bottom: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.12);
	}

	#main .gefa-termine__tabelle tbody tr:last-child {
		border-bottom: 0;
	}

	#main .gefa-termine__tabelle td,
	#main .gefa-termine__tabelle td:last-child {
		display: grid;
		grid-template-columns: 150px 1fr;
		column-gap: 12px;
		padding: 4px 0;
		border: 0;
		text-align: left;
	}

	#main .gefa-termine__tabelle td::before {
		content: attr(data-label);
		font-size: 14px;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	#main .gefa-termine__tabelle td.gefa-termine__kurs {
		display: block;
		margin-bottom: 8px;
	}

	#main .gefa-termine__tabelle td.gefa-termine__kurs::before,
	#main .gefa-termine__tabelle td.gefa-termine__aktion::before {
		content: none;
	}

	#main .gefa-termine__tabelle td.gefa-termine__aktion {
		display: block;
		margin-top: 16px;
	}
}

/* Handy kompakter (22.09.2026, Mobile-Check Punkt 4): Karte war 410 px hoch. Werte 16/24 px, weniger Luft
   zwischen Feldern und Karten, Box seitlich 16 px → mehr Platz für die Werte (Spalte 140 statt 128 px). */
@media (max-width: 640px) {
	#main .gefa-termine {
		padding: 4px 16px;
	}

	#main .gefa-termine__tabelle {
		font-size: 16px;
		line-height: 24px;
	}

	#main .gefa-termine__tabelle tr {
		padding: 16px 0;
	}

	#main .gefa-termine__tabelle td,
	#main .gefa-termine__tabelle td:last-child {
		grid-template-columns: 124px 1fr;
		column-gap: 8px;
		padding: 3px 0;
	}

	#main .gefa-termine__tabelle td.gefa-termine__kurs {
		margin-bottom: 6px;
	}

	#main .gefa-termine__tabelle td.gefa-termine__aktion {
		margin-top: 12px;
	}

	#main .gefa-termine__tabelle td::before {
		font-size: 12px;
		letter-spacing: 0.04em;
	}
}

/* Preisliste in den Kursinformationen: Betrag fett links, Leistung rechts */
#main .gefa-preise {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

#main .gefa-preise li {
	display: grid;
	grid-template-columns: 110px 1fr;
	column-gap: 12px;
	margin: 0 0 6px;
}

#main .gefa-preise li span {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* ---- Regelwerk und Vorlagen (21.09.2026) ----
   Je Regelwerk eine weisse Box: Kürzel als Titel, voller Name klein darunter, dann die Dokumentenliste.
   Jeder Eintrag: rotes Symbol (PDF, Link, Word), Titel als Link, darunter Art und Grösse bzw. Quelle. */
#main .gefa-regelwerk__name {
	margin: 0 0 20px;
	font-size: 17px;
	line-height: 27.2px;
	color: var(--awb-color6);
}

#main .gefa-dokumente {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

#main .gefa-dokumente--zweispaltig {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 48px;
}

#main .gefa-dokument {
	display: grid;
	grid-template-columns: 26px 1fr;
	column-gap: 12px;
	align-items: start;
	margin: 0;
	padding: 14px 0;
	border-top: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.1);
}

#main .gefa-dokument i {
	margin-top: 4px;
	font-size: 20px;
	line-height: 1;
	text-align: center;
	color: var(--awb-color7);
}

#main .gefa-dokument a {
	font-size: 18px;
	line-height: 27px;
	font-weight: 600;
	color: var(--awb-custom10);
}

#main .gefa-dokument a:hover,
#main .gefa-dokument a:focus-visible {
	color: var(--awb-color7);
}

#main .gefa-dokument__info {
	display: block;
	font-size: 14px;
	line-height: 22px;
	color: var(--awb-color6);
}

/* Unten so viel Luft wie oben: letzter Eintrag ohne Polsterung, Liste ohne Aussenabstand */
#main .gefa-regelwerk .gefa-dokumente,
#main .gefa-rw-box .gefa-dokumente {
	margin-bottom: 0;
}

#main .gefa-regelwerk .gefa-dokument:last-child,
#main .gefa-rw-box .gefa-dokument:last-child {
	padding-bottom: 0;
}

#main .gefa-dokumente--zweispaltig .gefa-dokument:nth-last-child(2):nth-child(odd) {
	padding-bottom: 0;
}

@media (max-width: 800px) {
	#main .gefa-dokumente--zweispaltig .gefa-dokument:nth-last-child(2):nth-child(odd) {
		padding-bottom: 14px;
	}

	#main .gefa-dokumente--zweispaltig {
		grid-template-columns: 1fr;
	}
}

/* ---- Regelwerke & Vorlagen aus dem Backend ([gefa_regelwerke], [gefa_vorlagen], 21.09.2026) ----
   Nachbau der bisherigen Avada-Boxen: 4er-Raster, 40 px Abstand, Box weiss mit Rahmen und Schatten, Radius 0.
   Breite je Regelwerk: voll (4 Spalten), halb (2), viertel (1). Tablet 2 Spalten, Handy 1. */
#main .gefa-rw-raster {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
}

#main .gefa-rw-raster--drei {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

#main .gefa-rw-box {
	grid-column: span 2;
	padding: 46px 36px; /* oben und unten gleich viel Luft (47 px bis Titel bzw. letzter Zeile) */
	background-color: var(--awb-color1);
	border: 1px solid hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.08);
	box-shadow: 0 12px 24px -11px hsla(var(--awb-color8-h), var(--awb-color8-s), var(--awb-color8-l), 0.24);
}

#main .gefa-rw-box--voll {
	grid-column: 1 / -1;
}

#main .gefa-rw-box--viertel {
	grid-column: span 1;
}

#main .gefa-rw-box__titel {
	margin: 0 0 4px;
	font-size: 24px;
	line-height: 31.2px;
	font-weight: 700;
	letter-spacing: -0.36px;
	color: var(--awb-custom10);
}

#main .gefa-rw-punkt {
	color: var(--awb-color7);
}

/* Vorlagen: Icon, Titel, Dateiangabe, Button unten bündig */
#main .gefa-rw-vorlage {
	grid-column: span 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 40px 36px 36px;
}

#main .gefa-rw-vorlage__icon {
	margin-bottom: 16px;
	font-size: 40px;
	line-height: 1;
	color: var(--awb-color7);
}

#main .gefa-rw-vorlage .gefa-regelwerk__name {
	margin-bottom: 28px;
}

#main .gefa-rw-vorlage .gefa-knopf {
	margin-top: auto;
}

/* Grosser Button wie die Avada-CTA: 18/600, 17/40 px, Winkel, Hover «Background Slide Right» */
#main .gefa-knopf {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	padding: 17px 40px;
	background-color: var(--awb-color7);
	color: var(--awb-color1);
	font-size: 18px;
	line-height: 21px;
	font-weight: 600;
	white-space: nowrap;
}

#main .gefa-knopf::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	background: var(--awb-color5);
	clip-path: polygon(0 0, 0 0, -50% 100%, 0 100%);
	transition: clip-path 0.35s cubic-bezier(0.21, 0.6, 0.35, 1);
}

#main .gefa-knopf::after {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.67em;
	margin-left: 0.6em;
	background-color: var(--awb-color1) !important;
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	transition: transform 0.2s ease-out;
}

#main .gefa-knopf:hover,
#main .gefa-knopf:focus-visible {
	color: var(--awb-color1);
}

#main .gefa-knopf:hover::before,
#main .gefa-knopf:focus-visible::before {
	clip-path: polygon(0 0, 150% 0, 100% 100%, 0 100%);
}

#main .gefa-knopf:hover::after,
#main .gefa-knopf:focus-visible::after {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	#main .gefa-knopf::before,
	#main .gefa-knopf::after {
		transition: none;
	}
}

@media (max-width: 1200px) {
	#main .gefa-rw-raster,
	#main .gefa-rw-raster--drei {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	#main .gefa-rw-box,
	#main .gefa-rw-box--voll {
		grid-column: 1 / -1;
	}

	#main .gefa-rw-box--viertel {
		grid-column: span 1;
	}

	#main .gefa-rw-vorlage {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	#main .gefa-rw-raster,
	#main .gefa-rw-raster--drei {
		grid-template-columns: minmax(0, 1fr);
	}

	#main .gefa-rw-box,
	#main .gefa-rw-box--viertel {
		grid-column: 1 / -1;
		padding: 28px 20px 32px;
	}

	#main .gefa-knopf {
		padding-left: 24px;
		padding-right: 24px;
	}
}

/* Überschriften auf dem Handy (22.09.2026, Mobile-Check): Avadas «Responsive Typography» verkleinert
   H1 60 → 47.6 px und H2 48 → 40.6 px bei 375 px – zu gross für deutsche Wörter wie «Ergänzungsprüfung»
   oder «Gefahrgutbeauftragte», die dann rechts abgeschnitten wurden. Unter 640 px feste Grössen; die
   Untergrenze der Avada-Formel (30 px) liesse H1 und H2 sonst gleich gross werden. Wörter, die auch so
   nicht passen, bekommen im Text eine weiche Trennstelle (&shy;); overflow-wrap ist nur das Netz für
   sehr schmale Geräte. */
@media (max-width: 640px) {
	/* !important nötig: Avadas Formel steht selbst mit !important in .fusion-responsive-typography-calculated. */
	.fusion-title h1.fusion-responsive-typography-calculated {
		font-size: 32px !important;
	}

	.fusion-title h2.fusion-responsive-typography-calculated {
		font-size: 28px !important;
	}

	.fusion-title h1,
	.fusion-title h2,
	.fusion-title h3 {
		overflow-wrap: break-word;
	}

	/* Fliesstext 20 → 18 px (Mobile-Check Punkt 1): Avada skaliert nur Überschriften, der Fliesstext blieb
	   20 px und machte lange Seiten sehr lang. Über die globale Variable, damit Elemente mit eigener
	   Grösse (Footer 18 px, Kacheln 17 px, Hero-Lead) unberührt bleiben. */
	body {
		--body_typography-font-size: 18px;
		--awb-typography4-font-size: 18px;
	}

	/* Buttons seitlich 24 statt 40 px (Mobile-Check Punkt 2), wie .gefa-knopf: «Kontakt aufnehmen» in der
	   dunklen Box hat nur 252 px Platz, Text + Pfeil + 2 × 40 px brauchen 269 – der Pfeil rutschte in eine
	   zweite Zeile (Button 76 statt 55 px hoch). Avada setzt die Handy-Polsterung über
	   --awb-padding-*-small – darum die Variable statt padding. */
	.fusion-body .fusion-button.button-default {
		--awb-padding-left-small: 24px;
		--awb-padding-right-small: 24px;
	}

	/* Verlinkte Box-Titel (Startseite «Ausbildungen und Prüfungen»): Tippfläche 27 → 43 px (Mobile-Check
	   Punkt 5). Polsterung plus gleich grosser negativer Aussenabstand – sichtbar ändert sich nichts. */
	#main .fusion-title h3 > a {
		display: inline-block;
		padding: 8px 0;
		margin: -8px 0;
	}
}

/* Überschriften am Tablet (22.09.2026): Avada skaliert H1 zwischen 641 und 1000 px nur auf 51–57 px – in halben
   Spalten lief z. B. «Unsere Ausbildungen.» bis 88 px ins Bild daneben. Jetzt mit der Breite wachsend, anschliessend
   an die Handy-Grössen (32/28) und bis 1000 px nahe an Avadas Wert; darüber gilt wieder 60/48 px. */
@media (min-width: 641px) and (max-width: 1000px) {
	.fusion-title h1.fusion-responsive-typography-calculated {
		font-size: clamp(36px, 5.6vw, 56px) !important;
	}

	.fusion-title h2.fusion-responsive-typography-calculated {
		font-size: clamp(30px, 4.6vw, 46px) !important;
	}

	.fusion-title h1,
	.fusion-title h2,
	.fusion-title h3 {
		overflow-wrap: break-word;
	}
}

/* Kurs-Boxen «Nächste Kurse» (Startseite) am Tablet untereinander wie auf dem Handy (22.09.2026): dreispaltig
   blieben bei 641 px nur 96 px Innenbreite («Basisseminar» lief aus der Box) und die Boxen wurden 1156 px hoch
   (768 px: 816). Ab 900 px wieder nebeneinander. */
@media (min-width: 641px) and (max-width: 899px) {
	#main .gefa-kursbox {
		width: 100% !important;
		flex-basis: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	#main .gefa-kursbox + .gefa-kursbox {
		margin-top: 20px !important;
	}
}

/* Bündigkeit der Box-Raster mit dem Inhaltsrand (22.09.2026, Wunsch Vincenzo «Boxen zentriert»).
   Kurs-Boxen «Nächste Kurse» (Startseite) und Auswahlboxen .gefa-angebot (Ausbildungen, Prüfungen, 404) haben 20 px
   (ab 1201 px) bzw. 10 px Spaltenabstand, Avada gibt der Zeile aber −2 % Rand → die Boxen standen je nach Breite
   3–12 px über die Titelkante. Jetzt: Zeilenrand = −Abstand, Nicht-Box-Spalten derselben Zeile (Titel) mit gleichem
   Abstand → Boxen und Titel auf der Standardkante, Lücke zwischen den Boxen unverändert.
   Ab ~1440 px erreicht die Zeile ihre Maximalbreite (1435.2 px) und wird zentriert – der Rand wirkt dann nicht mehr.
   Avadas Standardkante liegt dort 27.556 px (1.92 % × 1435.2) innerhalb der Zeile, die Boxen nur 20 px → Maximalbreite
   um 2 × 7.556 px kleiner (1420.088 px). Unterhalb greift sie nicht. */
@media (min-width: 1201px) {
	#main .fusion-builder-row:has(> .gefa-kursbox),
	#main .fusion-builder-row:has(> .gefa-angebot) {
		margin-left: -20px !important;
		margin-right: -20px !important;
		max-width: 1420.088px !important;
	}

	#main .fusion-builder-row:has(> .gefa-kursbox) > .fusion-layout-column:not(.gefa-kursbox) > .fusion-column-wrapper,
	#main .fusion-builder-row:has(> .gefa-angebot) > .fusion-layout-column:not(.gefa-angebot) > .fusion-column-wrapper {
		margin-left: 20px !important;
		margin-right: 20px !important;
	}
}

@media (min-width: 641px) and (max-width: 1200px) {
	#main .fusion-builder-row:has(> .gefa-kursbox),
	#main .fusion-builder-row:has(> .gefa-angebot) {
		margin-left: -10px !important;
		margin-right: -10px !important;
	}

	#main .fusion-builder-row:has(> .gefa-kursbox) > .fusion-layout-column:not(.gefa-kursbox) > .fusion-column-wrapper,
	#main .fusion-builder-row:has(> .gefa-angebot) > .fusion-layout-column:not(.gefa-angebot) > .fusion-column-wrapper {
		margin-left: 10px !important;
		margin-right: 10px !important;
	}
}

/* Vergleichsboxen «Warum GeFaSuisse»: innere Zeile mit Avadas «width: 104% !important», Spalten ohne Abstand → die
   Boxen ragten links und rechts 2 % über ihre Spalte (768 px: 14 px über die Titelkante). 2 % Innenabstand gleicht
   das aus. Handy (≤ 640) war schon bündig. */
@media (min-width: 641px) {
	#main .fusion-builder-row-inner:has(.gefa-vergleich) {
		box-sizing: border-box;
		padding-left: 2% !important;
		padding-right: 2% !important;
	}
}

/* Über uns: Raster «Trägerorganisationen» und «Wer dahintersteht» setzen den Spaltenabstand auf 0, erbten aber
   Avadas negativen Zeilenrand (−2 %) → Kacheln standen links und rechts über die Inhaltskante (375 px: 6 px,
   1440 px: 27 px). Zeilenrand 0; ab Maximalbreite auf Avadas Inhaltsbreite 1435.2 − 2 × 27.556 = 1380.088 px
   begrenzt (22.09.2026). */
#main .gefa-traeger > .fusion-builder-row,
#main .gefa-gremien > .fusion-builder-row {
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100% !important;
	max-width: 1380.088px !important;
}

/* ==== Mobilmenü als Ausklappfläche (22.09.2026, Vorbild SafeConsult) ======================================
   Markup: gefa_mobilmenue() in functions.php, Steuerung: js/gefa-mobilmenue.js. Burger = Avadas Knopf
   (unverändert). Avadas Dropdown (mit Trennlinien) wird ausgeblendet, sobald das Skript läuft. */
.gefa-flyout-bereit .fusion-tb-header .awb-menu.collapse-enabled .awb-menu__main-ul {
	display: none !important;
}

/* Fläche unter dem Header: Weiss mit 4 % Transparenz, leichte Unschärfe dahinter, blendet ein */
.gefa-flyout {
	position: fixed;
	inset: var(--gefa-kopfhoehe, 91px) 0 0 0;
	z-index: 999;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: hsla(var(--awb-color1-h), var(--awb-color1-s), var(--awb-color1-l), calc(var(--awb-color1-a) - 4%));
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 0.22s ease, transform 0.22s ease;
}

.gefa-flyout[hidden] {
	display: none;
}

.gefa-flyout-offen .gefa-flyout {
	opacity: 1;
	transform: none;
}

.gefa-flyout:focus {
	outline: none;
}

html.gefa-flyout-offen,
html.gefa-flyout-offen body {
	overflow: hidden;
}

.gefa-flyout__innen {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 40px;
	min-height: 100%;
	max-width: 640px;
	padding: 32px 30px 48px;
}

.gefa-flyout ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Hauptpunkte: 22 px fett (Wunsch Vincenzo 22.09.2026), ohne Trennlinien, Hover rot */
.gefa-flyout__zeile {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.gefa-flyout .gefa-flyout__link {
	display: block;
	padding: 10px 0;
	font-family: var(--awb-typography1-font-family);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--awb-custom10);
	text-decoration: none;
	transition: color 0.2s ease;
}

/* Pfeil für Untermenüs: Winkel per CSS, dreht beim Öffnen; Tippfläche 44 × 44 px */
.gefa-flyout .gefa-flyout__auf {
	display: flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 -10px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--awb-custom10);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color 0.2s ease;
}

.gefa-flyout__pfeil {
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.25s ease, margin 0.25s ease;
}

.gefa-flyout__punkt.is-offen .gefa-flyout__pfeil {
	margin-top: 5px;
	transform: rotate(-135deg);
}

/* Untermenü: klappt weich auf (Rasterzeile 0 → 1fr), eingerückt, 18 px */
.gefa-flyout__unter {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows 0.25s ease, visibility 0s linear 0.25s;
}

.gefa-flyout__punkt.is-offen > .gefa-flyout__unter {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows 0.25s ease, visibility 0s;
}

.gefa-flyout__unter > ul {
	min-height: 0;
	overflow: hidden;
	padding-left: 20px;
}

.gefa-flyout__unter li:last-child {
	padding-bottom: 8px;
}

.gefa-flyout .gefa-flyout__unterlink {
	display: block;
	padding: 8px 0;
	font-family: var(--awb-typography1-font-family);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--awb-custom10);
	text-decoration: none;
	transition: color 0.2s ease;
}

/* Unterpunkte mit rotem Logo-Winkel als Aufzählungszeichen – wie Footer «Informationen» (22.09.2026, Wunsch Vincenzo) */
.gefa-flyout .gefa-flyout__unterlink {
	position: relative;
	padding-left: 24px;
}

.gefa-flyout .gefa-flyout__unterlink::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 0.5em;
	height: 0.67em;
	transform: translateY(-50%);
	background-color: var(--awb-color7);
	-webkit-mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
	mask: url("../img/gefa-winkel-rechts.png") center / contain no-repeat;
}

.gefa-flyout .gefa-flyout__link:hover,
.gefa-flyout .gefa-flyout__unterlink:hover,
.gefa-flyout .gefa-flyout__auf:hover,
.gefa-flyout .gefa-flyout__zeile:hover .gefa-flyout__auf {
	color: var(--awb-color7);
}

/* Rahmen nur bei Tastaturbedienung */
.gefa-flyout a:focus-visible,
.gefa-flyout button:focus-visible {
	outline: 2px solid var(--awb-color7);
	outline-offset: 3px;
}

/* Knopf «Individuelle Beratung» rot mit Pfeil (Telefon-Knopf entfernt 22.09.2026); volle Breite bis 320 px */
.gefa-flyout__knoepfe {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	max-width: 320px;
}

.gefa-flyout__knoepfe .fusion-button {
	box-sizing: border-box;
	width: 100%;
	min-height: 55px;
	justify-content: center;
	border-radius: 0;
}

/* Querformat (Handy quer): Menü links, Knöpfe rechts, etwas kleiner */
@media (orientation: landscape) and (max-height: 500px) {
	.gefa-flyout__innen {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
		max-width: none;
		padding-top: 20px;
		padding-bottom: 24px;
	}

	.gefa-flyout .gefa-flyout__link {
		padding: 6px 0;
		font-size: 18px;
	}

	.gefa-flyout .gefa-flyout__unterlink {
		padding-top: 5px;
		padding-bottom: 5px;
		font-size: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gefa-flyout,
	.gefa-flyout__unter,
	.gefa-flyout__pfeil {
		transition: none;
	}
}

/* Startseite: transparenter Kopf wird bei offenem Mobilmenü weiss (22.09.2026, Wunsch Vincenzo, wie SafeConsult).
   Gleicher Wechsel wie beim Sticky-Kopf: weisser Grund, dunkles Logo (Sticky-Logo) statt Negativ-Logo, X dunkel.
   Im Sticky-Zustand ist der Kopf ohnehin weiss – dann greift Avada selbst. */
body.home .fusion-tb-header .fusion-sticky-container:not(.fusion-sticky-transition) {
	transition: background-color 0.22s ease;
}

html.gefa-flyout-offen body.home .fusion-tb-header .fusion-sticky-container:not(.fusion-sticky-transition) {
	background-color: var(--awb-color1) !important;
}

html.gefa-flyout-offen body.home .fusion-tb-header .fusion-sticky-container:not(.fusion-sticky-transition) .gefa-logo-wrap.fusion-display-normal-only {
	display: none !important;
}

html.gefa-flyout-offen body.home .fusion-tb-header .fusion-sticky-container:not(.fusion-sticky-transition) .gefa-logo-wrap.fusion-display-sticky-only {
	display: flex !important;
}

html.gefa-flyout-offen body.home .fusion-tb-header .fusion-sticky-container:not(.fusion-sticky-transition) .awb-menu {
	--awb-mobile-trigger-color: var(--awb-custom10) !important;
}

/* Leere Titelleiste «ohne Seitentitel» (Sektion 2357, Klasse gefa-ohne-titel) ganz ausblenden (22.09.2026): Avada
   gibt leeren Spalten 1 px Mindesthöhe – dadurch begann der Inhalt bei y = 1 und über dem Startseiten-Video lag eine
   weisse 1-px-Linie (auf Tablet/Handy mit hoher Pixeldichte sichtbar). */
.fusion-tb-page-title-bar:has(> .gefa-ohne-titel:only-child) {
	display: none;
}

/* Kopf bei offenem Mobilmenü (22.09.2026): Avada fixiert den Kopf per Skript auf eine Pixelbreite (Bildschirm minus
   Scrollleiste). Die Scroll-Sperre blendet die Scrollleiste aus → rechts blieb ein 15-px-Streifen Video sichtbar.
   Solange offen: volle Breite. */
html.gefa-flyout-offen .fusion-tb-header .fusion-sticky-container {
	width: 100% !important;
}

/* Tablet und Handy: 10 px mehr Abstand über dem Logo (Wunsch Vincenzo 22.09.2026). Gilt für den kleinen Kopf
   (bis 1200 px) auf allen Seiten, oben und im Sticky-Zustand gleich, damit der Kopf beim Scrollen nicht springt. */
@media (max-width: 1200px) {
	.fusion-tb-header .fusion-fullwidth.fusion-sticky-container:not(.gefa-header-gross) {
		padding-top: 10px !important;
	}
}

/* Sprachwahl (22.09.2026, WPML DE/FR): im Hauptmenü als eigener Menüpunkt vor dem CTA (übernimmt die Menü-Gestaltung),
   im Mobilmenü unter dem Knopf «Individuelle Beratung». Nur die wählbare Sprache als Kürzel (DE bzw. FR). */
.gefa-sprachwahl ul {
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gefa-flyout .gefa-sprachwahl--flyout a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--awb-typography1-font-family);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--awb-custom10);
	text-decoration: none;
	transition: color 0.2s ease;
}

.gefa-flyout .gefa-sprachwahl--flyout a:hover {
	color: var(--awb-color7);
}

/* Sprachwahl im Desktop-Menü direkt neben dem CTA, normal (nicht fett) und kleiner (Wunsch Vincenzo 22.09.2026).
   Der Sprachpunkt übernimmt den «margin-left: auto» des CTA (schiebt beide nach rechts), zum CTA 28 px (kompakt 20 px). */
/* :not(:first-child):not(:last-child) nur für die Spezifität – die Kompakt-Regel (bis 1365 px) setzt sonst 6 px */
.gefa-header-gross .awb-menu__main-ul > li.gefa-menu-sprache:not(:first-child):not(:last-child) {
	margin-left: auto !important;
	margin-right: 28px !important;
}

.gefa-header-gross .awb-menu__main-ul > li.gefa-menu-sprache + li:last-child {
	margin-left: 0 !important;
}

.fusion-tb-header .awb-menu .gefa-menu-sprache > .awb-menu__main-a,
.fusion-tb-header .awb-menu .gefa-menu-sprache > .awb-menu__main-a .menu-text {
	font-size: 15px !important;
	font-weight: 400 !important;
	letter-spacing: 0.06em;
}

@media (max-width: 1365px) {
	.gefa-header-gross .awb-menu__main-ul > li.gefa-menu-sprache:not(:first-child):not(:last-child) {
		margin-right: 20px !important;
	}
}

/* 1200–1279 px: nur 12 px zum CTA – sonst bricht das deutsche Menü zweizeilig um */
@media (max-width: 1279px) {
	.gefa-header-gross .awb-menu__main-ul > li.gefa-menu-sprache:not(:first-child):not(:last-child) {
		margin-right: 12px !important;
	}
}

/* Handy-Menü: Sprachwahl mit grauem Hintergrund (Wunsch Vincenzo 22.09.2026) */
.gefa-flyout .gefa-sprachwahl--flyout a {
	justify-content: center;
	min-width: 56px;
	padding: 0 16px;
	background-color: var(--awb-color2);
	transition: color 0.2s ease, background-color 0.2s ease;
}

.gefa-flyout .gefa-sprachwahl--flyout a:hover {
	color: var(--awb-color1);
	background-color: var(--awb-color7);
}
