/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain:  Avada
*/

/* Das Raster, Stand nach Vincenzos Korrektur vom 21.08.2026:

   | Ebene                    | Breite                              |
   |--------------------------|-------------------------------------|
   | Hero-Karte **und Kopf**  | Fenster − 40 (20px Rand je Seite)   |
   | Sektionen darunter       | 1340 fest, mittig                   |
   | Text in der Hero-Karte   | 72px innerhalb der Karte            |

   `--rjr-inhaltsbreite` entspricht Avadas `site_width` (Avada → Options →
   Layout). Wird die eine geändert, muss die andere mit. */
:root {
	--rjr-inhaltsbreite: 1340px;
	--rjr-randaussen: 20px;
	/* Fensterrand → Textkante, solange der Deckel nicht greift. Bis zum
	   02.09.2026 waren es 30px; Vorgabe Vincenzo an diesem Abend: «mehr nach
	   innen setzen, finde den Abstand nach aussen zu knapp». Wer diesen Wert
	   ändert, ändert die ganze Seite — siehe «Das Raster» am Ende der Datei. */
	--rjr-textrand: 60px;
	/* Halbe Rinne je Spaltenseite — zwischen zwei Spalten also 40px. */
	--rjr-rinne: 20px;
	/* Abstand zwischen Bild und Text in der Einleitung, ab 1201px. Er zählt
	   allein über die Textspalte, weil das Bild seinen eigenen Innenabstand
	   überdeckt — Einzelheiten im Abschnitt «Einleitung» am Dateiende. */
	--rjr-einleitung-luft: 60px;
}

/* =========================================================================
   RJR — Anpassungen an der Prebuilt-Website «Recruitment»
   Farben und Schriften laufen über die Avada Global Colors / Typography.
   Hier steht nur, was sich dort nicht abbilden lässt.
   ========================================================================= */

/* --- Header: die zwei Buttons ------------------------------------------
   Sie sollen nicht umbrechen.

   **Breite: jeder Button so breit wie sein Inhalt** (Vorgabe Vincenzo,
   22.08.2026). Vorher lag hier ein `min-width: 264px` auf beiden — als der
   Telefon-Button noch `+41 61 525 11 70` hiess, war das sinnvoll: beide
   Beschriftungen kamen samt Polster auf rund 245px, 264px ergab ein
   sauberes Paar. Mit der kürzeren Schreibweise `061 525 11 70` schrumpfte
   der Inhalt auf 218.5px — der Button trug damit 45.5px Leerraum gegen
   18.4px beim roten und wirkte aufgeblasen.

   Jetzt bestimmt allein das Polster (32px je Seite) die Breite. Die zwei
   Buttons sind dadurch **unterschiedlich breit** — das ist gewollt: gleich
   sind Höhe, Polster, Radius und Schrift, nicht die Breite. */
.fusion-tb-header .fusion-button {
	white-space: nowrap;
}
.fusion-tb-header .fusion-button .fusion-button-text {
	white-space: nowrap;
}
/* Der Hero-CTA behält seine feste Mindestbreite — er steht allein und
   braucht Gewicht, nicht Inhaltstreue. */
@media (min-width: 1301px) {
	.rjr-hero .fusion-button.rjr-btn-cta {
		min-width: 264px;
		justify-content: center;
	}
}

/* Logo links, alles andere rechts: ab 1301px bekommt die Menüspalte den
   ganzen Rest der Zeile und richtet sich nach rechts aus. Damit hängt der
   Abstand zwischen «Kontakt» und dem Telefon-Button nicht mehr an der
   Bildschirmbreite — mit festen Spaltenprozenten wächst er sonst mit. */
@media (min-width: 1301px) {
	.fusion-tb-header .rjr-hdr-logo,
	.fusion-tb-header .rjr-hdr-cta {
		width: auto;
		flex: 0 0 auto;
		max-width: none;
	}
	.fusion-tb-header .rjr-hdr-nav {
		width: auto;
		flex: 1 1 auto;
		max-width: none;
	}
	/* Avadas Spaltenzwischenraum arbeitet mit negativen Rändern an der Zeile.
	   Bei `width: auto` sitzen Logo und Buttons dadurch nicht mehr bündig
	   auf dem Containerrand — hier abgeschaltet. */
	.fusion-tb-header .rjr-hdr-logo,
	.fusion-tb-header .rjr-hdr-nav,
	.fusion-tb-header .rjr-hdr-cta {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.fusion-tb-header .rjr-hdr-logo > .fusion-column-wrapper,
	.fusion-tb-header .rjr-hdr-cta > .fusion-column-wrapper {
		padding-left: 0;
		padding-right: 0;
		margin-left: 0;
		margin-right: 0;
	}
}

/* --- Logo: 5px nach rechts ---------------------------------------------
   Vorgabe Vincenzo (02.09.2026): «Das Logo im Header bitte überall auf allen
   Geräten ca. 5 Pixel weiter nach rechts verschieben, damit es minim rechts
   zum Inhaltsbereich steht.»

   Vorher stand die linke Logokante **exakt** auf der Inhaltskante (30px auf
   dem Telefon, 20px am Rand der Hero-Karte darunter) — mathematisch bündig,
   optisch nach links gerutscht: das «R» beginnt mit einem senkrechten
   Serifenstrich, der ohne Vorlauf an der Kante klebt.

   Der Versatz sitzt an der **Bildfassung**, nicht an der Spalte: ein Polster
   an der Spalte hätte ihren Rahmen mitgezogen und damit auch alles, was an
   ihr hängt. So wandert das Bild in der Spalte.

   Sichtbar bewegt sich nur das Logo. Ab 1301px wächst die Logospalte zwar um
   dieselben 5px mit (dort steht sie auf `width: auto`) und die Menüspalte
   beginnt entsprechend 5px später — die Menüpunkte sind aber **rechtsbündig**
   ausgerichtet und die Spalte gibt die 5px an ihrer Breite wieder ab. Am
   Bildschirm rührt sich dort nichts.

   Gilt für **beide** Köpfe — Startseite (4214) und Unterseiten (4395) tragen
   dieselbe Klasse — und auf allen Breiten, weil die Regel in keiner
   Medienabfrage steht. */
.fusion-tb-header .rjr-hdr-logo .fusion-imageframe {
	margin-left: 5px;
}

/* --- Kopfzeile: stehen bleiben, beim Scrollen verschwinden ------------
   Avadas eigenes Sticky-Verhalten ist am Container abgeschaltet
   (`sticky="off"`), weil es beim Scrollen Grösse und Farbe ändert. Hier
   bleibt der Kopf in **jeder** Lage gleich hoch, gleich breit, gleich weiss.

   Bewegung (Vorgabe 21.08.2026): während gescrollt wird, fährt er nach oben
   aus dem Bild; sobald das Scrollen anhält, kommt er wieder herunter. Die
   Klasse setzt `js/rjr-kopf.js`. */
/* **Auf allen Geräten** (Vorgabe Vincenzo, 02.09.2026: «beim Smartphone kommt
   der Header beim Scrollen nicht mit»).

   Bis dahin galt die Regel erst ab 821px, mit gutem Grund: **der Kopf war auf
   dem Telefon 275px hoch** — die gestapelten Knöpfe darin —, und beim Anhalten
   hätte er die halbe Sicht verdeckt. Seit die Knöpfe ins Flyout gewandert sind,
   misst er dort **113px**. Damit ist der Grund weggefallen und die Ausnahme mit
   ihm: der Kopf klebt jetzt überall, blendet beim Scrollen aus und kommt beim
   Anhalten zurück — dasselbe Verhalten wie auf dem Desktop.

   Das Skript `js/rjr-kopf.js` kannte diese Grenze nie; es setzt seine Klassen
   auf jeder Breite. Es war allein diese Medienabfrage, die sie wirkungslos
   machte. */
.fusion-tb-header {
	position: sticky;
	top: 0;
	z-index: 99;
	will-change: transform;
	/* Diese Angabe gilt beim **Einfahren** (die Klasse geht weg): langsam
	   und weich auslaufend. */
	transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
		box-shadow 0.3s ease;
	/* Der Schatten ist immer da, nur unsichtbar. **Wichtig:** ein Übergang
	   von `box-shadow: none` auf einen Wert bleibt im Browser auf dem
	   Startwert stehen — nachgemessen, der Schatten kam gar nicht.
	   Zwischen zwei rgba-Werten mit gleicher Geometrie läuft er sauber. */
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0);
}

/* Schatten nur, solange der Kopf über dem Inhalt schwebt. Am Seiten-
   anfang steht er im Fluss und braucht keinen. */
.fusion-tb-header.rjr-kopf-klebt {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
}

/* Und diese hier beim **Ausfahren** (die Klasse kommt dran): zügig weg,
   damit er beim Scrollen nicht im Bild hängt. */
.fusion-tb-header.rjr-kopf-versteckt {
	transform: translateY(-100%);
	transition: transform 0.25s ease-in, box-shadow 0.3s ease;
}

/* Wer «weniger Bewegung» eingestellt hat, bekommt keine. */
@media (prefers-reduced-motion: reduce) {
	.fusion-tb-header {
		transition: none;
	}
}

/* Der Kopf ist genau so breit wie die Hero-Karte darunter — gleicher
   Aussenrand, gleiche Kante.
   **Nicht über die Zeile**: Avada schreibt dort `width: 103% !important`
   direkt ins `style`-Attribut (Spaltenabstand 3 % aus den Optionen), und
   ein Inline-`!important` lässt sich aus einem Stylesheet nicht überstimmen.
   Der Weg führt deshalb über den Innenabstand des Containers — plus
   `flex_column_spacing="0px"` am Container selbst, damit die 103 %-Zeile
   gar nicht erst entsteht. `max()` hält auf schmalen Schirmen 30px. */
.fusion-tb-header .fusion-fullwidth {
	padding-left: var(--rjr-randaussen) !important;
	padding-right: var(--rjr-randaussen) !important;
}

/* Auf schmalen Geräten sitzt der Inhalt bei 30px — der Kopf zieht nach,
   sonst steht das Logo 10px weiter links als alles darunter. */
@media (max-width: 820px) {
	.fusion-tb-header .fusion-fullwidth {
		padding-left: 30px !important;
		padding-right: 30px !important;
	}
}

/* --- Porträts in den Knöpfen: abgelöst ----------------------------------
   Vom 21.08. bis 09.09.2026 trugen die zwei Kopf-Knöpfe, der Hero-CTA und
   der rote Telefon-Knopf im FAQ ein rundes 32px-Porträt auf Avadas
   Icon-Element, der Pfeil war transparent, der Rollover auf 32px
   nachgerechnet. **Alle vier zeigen seit dem 09.09.2026 Avadas Pfeil rechts**
   mit dem unveränderten `icon_position`-Rollover — wie «Unsere Leistungen».
   Der FAQ-Knopf (`rjr-btn-tel-rot`) braucht damit keine eigene Regel mehr:
   Farbe, Ring und Polster (23/36px, 63px hoch) kommen über `rjr-btn-ring`
   und Avadas Sektionsvorgaben. Letzter Stand mit Porträt:
   `05_Backup/2026-09-09_FAQ-Knopf-Pfeil/style-vorher.css`. Die Anhänge
   4384/4385 (Knopfporträts) sind seither nirgends mehr im Einsatz. */

/* --- Buttons: Hover mit Ring ------------------------------------------
   Gilt für die zwei Kopf-Buttons, den Hero-CTA und — seit 22.08.2026 —
   über die Klasse `rjr-btn-ring` auch für Buttons in den Sektionen. Diese
   bekommen **nur** Ring und Abdunklung; Symbol und Symbolbewegung bleiben
   die des jeweiligen Buttons (Vorgabe Vincenzo: «Symbole beibehalten»).

   Vorbild ist der Button «drop your CV» weiter unten (Vorgabe Vincenzo,
   22.08.2026). Sein Kniff: der Rahmen ist **immer** da und trägt die
   **ursprüngliche** Farbe. Im Ruhezustand ist er unsichtbar, weil er der
   Füllung gleicht. Beim Überfahren dunkelt nur die **Füllung** um 9
   Prozentpunkte Helligkeit ab — der Rahmen bleibt hell und wird als Ring
   sichtbar. Weil er nie erscheint oder verschwindet, springt nichts.

   Gemessene Kontraste (Text gegen Füllung):
     rot   normal 4.50:1   hover 5.94:1   (Hover ist besser)
     grau  normal 15.12:1  hover 12.25:1

   ── Drei Avada-Eigenheiten, die hier hineinspielen ──

   1. **Ring als `inset`-Schatten, nicht als `border`.** Die Höhe dieser
      Buttons ist nicht gesetzt, sie ergibt sich aus Polster + Symbol
      (seit 09.09.2026: 23 + 17 + 23 = 63px bei allen vier Knöpfen). Ein 2px-Rahmen machte daraus 68px und müsste
      über das Polster ausgeglichen werden — an fünf Buttons und zwei
      Bildschirmstufen. `inset` zeichnet den Ring an derselben Stelle,
      folgt dem Pillenradius und lässt die Geometrie unangetastet.

   2. **Die Klasse steht doppelt.** Avada schaltet den Buttonschatten global
      ab: `.fusion-button.button-flat { box-shadow: none !important }`.
      Unsere Buttons tragen alle `button-flat`. Diese Regel hat **dieselbe**
      Spezifität wie `.fusion-button.rjr-btn-cta` (je zwei Klassen) und steht
      im später geladenen Sammel-Stylesheet — bei Gleichstand gewinnt die
      spätere. `!important` allein reicht deshalb nicht, es braucht **mehr
      Spezifität**. Die Verdopplung hebt den Wert auf drei Klassen, ohne von
      Avadas eigenen Klassen oder vom Elementnamen abzuhängen.

   3. **Die Hover-Füllung steht hier direkt, nicht über Avadas Variablen.**
      Der Telefon-Button ist ein `button-custom`, der rote ein
      `button-default` — Avada füllt die beiden auf verschiedenen Wegen.
      Über `--button_gradient_*_hover` liess sich nur der rote steuern; beim
      grauen blieb die Füllung unverändert, auch schon mit Avadas eigenem
      `#e6e6e6`. Ein `background-color` an dieser Stelle wirkt bei beiden
      gleich und macht das Ergebnis unabhängig vom Buttontyp.

   Grau ist ein Einzelwert dieses Buttons (#f5f5f5) und wird nach derselben
   Regel abgedunkelt: 96% Helligkeit − 9 = 87% → #dedede. Rot läuft über die
   Global Colors, die Abdunklung rechnet Avadas eigene HSL-Formel nach. */
.fusion-button.rjr-btn-tel.rjr-btn-tel,
.fusion-button.rjr-btn-cta.rjr-btn-cta,
.fusion-button.rjr-btn-ring.rjr-btn-ring {
	box-shadow: inset 0 0 0 2px var(--rjr-btn-ring) !important;
	transition: box-shadow 0.2s, background-color 0.2s;
}
.fusion-button.rjr-btn-cta.rjr-btn-cta,
.fusion-button.rjr-btn-ring.rjr-btn-ring {
	--rjr-btn-ring: var(--awb-color5);
}
.fusion-button.rjr-btn-tel.rjr-btn-tel {
	--rjr-btn-ring: #f5f5f5;
}
.fusion-button.rjr-btn-cta.rjr-btn-cta:hover,
.fusion-button.rjr-btn-cta.rjr-btn-cta:focus-visible,
.fusion-button.rjr-btn-ring.rjr-btn-ring:hover,
.fusion-button.rjr-btn-ring.rjr-btn-ring:focus-visible {
	background-color:
		hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a)) !important;
}
.fusion-button.rjr-btn-tel.rjr-btn-tel:hover,
.fusion-button.rjr-btn-tel.rjr-btn-tel:focus-visible {
	background-color: #dedede !important;
}

/* 821–1300px: das Menü ist auf den Umschalter eingeklappt,
   die zwei Buttons müssen sich neben Logo und Umschalter ausgehen. */
@media (min-width: 821px) and (max-width: 1300px) {
	.fusion-tb-header .fusion-button {
		padding-left: 24px;
		padding-right: 24px;
		font-size: 15px;
	}
}

/* --- Hero mit Hintergrundvideo ----------------------------------------
   Der Container ist die Karte: Video als Hintergrund, 20px Radius,
   `overflow: hidden` schneidet das Video an den Ecken ab. Avada kann für
   Container keinen seitlichen Aussenabstand — der steht deshalb hier.
      Der Hero ist bei Evolta **fast randlos**: Fenster minus 20px auf jeder
   Seite, nicht auf der Inhaltsbreite. `hundred_percent="yes"` zieht den
   Container mit −30px aus dem Inhaltsbereich heraus (`#main` hat 30px
   Innenabstand) — mit −10px bleiben genau die 20px stehen. Avadas
   dynamisches CSS lädt nach dem Child-Theme, deshalb `!important`. */
/* Aufnahme 20 % heller als das Original — der einzige Eingriff am Video.
   Der Lesbarkeitsverlauf weiter unten ist gegen ein gedachtes reinweisses
   Bild gerechnet; heller als weiss geht nicht, die Kontrastwerte bleiben
   deshalb gültig.

   **Keine Vergrösserung, keine Verschiebung, kein Zurückspulen.** Am
   21.08.2026 gab es beide Versuche (seitliches Driften mit 14 % Vergrösserung,
   danach ein vom Scrollen gesteuertes Zurückspulen); auf Vincenzos Wunsch ist
   wieder der schlichte Zustand hergestellt: einmal abspielen, echte Grösse.
   Avadas Zentrierung (`translate(-50%, -50%)`) bleibt damit unangetastet. */
.rjr-hero .fullwidth-video video {
	filter: brightness(1.2);
}

.rjr-hero.fusion-fullwidth {
	position: relative;
	width: auto;
	max-width: none;
	margin-left: calc(var(--rjr-randaussen) - 30px) !important;
	margin-right: calc(var(--rjr-randaussen) - 30px) !important;
}

/* Der Text steht 72px innerhalb der Karte — nicht auf dem 1340er-Raster
   der Sektionen. Vincenzo wollte ihn am 21.08.2026 ausdrücklich weiter
   links. Auf schmaleren Geräten greifen die Werte aus dem Element
   (56px / 28px). */
.rjr-hero.fusion-fullwidth {
	padding-left: 72px !important;
	padding-right: 72px !important;
}

/* Höhe der Hero-Sektion. Avadas `min_height` am Container erzeugt in dieser
   Konstellation kein CSS (nachgemessen: `min-height: 0px`), deshalb steht der
   Wert hier. Der Inhalt sitzt mittig in der Fläche.

   Die festen Werte darunter sind seit dem 22.08.2026 nur noch **Rückfallebene**
   für Browser ohne `svh`/`clamp`. Massgeblich ist die dynamische Regel weiter
   unten. */
.rjr-hero.fusion-fullwidth {
	min-height: 900px;
	justify-content: center;
}
@media (max-width: 1200px) {
	.rjr-hero.fusion-fullwidth {
		min-height: 640px;
	}
}
@media (max-width: 820px) {
	.rjr-hero.fusion-fullwidth {
		min-height: 0;
	}
}

/* --- Einleitung: die weisse Karte --------------------------------------
   Sie stand auf 60 % der Bildspalte (304px), ihr breitester Text misst aber
   nur 139px — mit 40px Polster je Seite also **85px zu breit**.
   `fit-content` bindet die Breite an den Inhalt; `max-width` verhindert,
   dass sie auf schmalen Geräten aus der Spalte läuft.

   Klasse doppelt, weil Avada die Spaltenbreite über eine gleich spezifische
   Regel setzt und später lädt — dasselbe Muster wie überall in dieser Datei
   (siehe `10_AVADA-AUFBAU.md`). */
.rjr-einleitung__karte.rjr-einleitung__karte {
	/* `max-content`, nicht `fit-content`: letzteres wird vom verfügbaren
	   Platz gedeckelt und fiel hier auf 208px — «Jahre Erfahrung» brach
	   dann auf zwei Zeilen um. `max-content` nimmt die natürliche Breite
	   des breitesten Elements. */
	width: max-content;
	max-width: 100%;
	flex: 0 0 auto;
	/* Avada gibt jeder Spalte seitliche Zwischenräume (`--awb-spacing-*`,
	   hier 2.425 %). Bei einer Spalte, die sich am Inhalt bemisst, gehen sie
	   von genau diesem Inhalt ab — der Text hatte dadurch 128px statt der
	   nötigen 139px und brach um. Für diese Karte abgeschaltet; `!important`,
	   weil die Werte inline am Element stehen. */
	--awb-spacing-left-large: 0 !important;
	--awb-spacing-right-large: 0 !important;
	--awb-spacing-left-medium: 0 !important;
	--awb-spacing-right-medium: 0 !important;
	--awb-spacing-left-small: 0 !important;
	--awb-spacing-right-small: 0 !important;
	/* **Der abgewählte Zwischenraum hat eine Nebenwirkung.** Avada zieht die
	   Zeile darüber um `-3% / 2` heraus und lässt die Spalten das über ihren
	   Zwischenraum zurückholen — nimmt man ihn einer Spalte weg, bleibt der
	   Zug stehen und die Karte steht links aus der Textkante heraus (gemessen
	   am 03.09.2026: 56 statt 60 auf dem Telefon, 51 statt 60 bei 1440px). Der Aussenrand ersetzt hier genau diesen Zwischenraum — als
	   Prozentwert, damit er auf jeder Breite mitwächst.

	   **`!important` ist Pflicht** — unter 801px setzt Avadas eigenes
	   Responsive-Stylesheet `.fusion-layout-column { margin-left: 0
	   !important }` und lädt später. Dieselbe Falle wie beim Projekt-Banner,
	   nur mit einer anderen Grenze (dort 1025px). */
	margin-left: 1.455% !important;
}

/* --- Eyebrow: roter Marker ---------------------------------------------
   **Exakt die Auszeichnung der Prebuilt-Website, nur in Rot** (Vorgabe
   Vincenzo, 22.08.2026 abends). Avadas «marker_style» ist ein Farbband über
   die **unteren 40 %** der Zeile — nicht die ganze Fläche. Eine vollflächige
   Variante war zwischendurch da und war zu viel.

   **Wie der Rotton hergeleitet ist.** Die Demo-Grundfarbe ist ein helles
   Grün `#B7E9B0` (H 113° · S 56 % · L 80 %), das Avada mit **60 % Deckung**
   zeichnet — auf Weiss ergibt das `#D4F2D0` mit **81.9 %** Helligkeit.

   Dieselben S- und L-Werte mit RJRs Rotton zu nehmen, wäre falsch: Rot wirkt
   bei gleicher HSL-Helligkeit deutlich schwerer als Grün — `#F2D0D0` käme
   auf nur 68.6 %, also 13 Punkte dunkler. Angeglichen wurde deshalb die
   **wahrgenommene Helligkeit**, nicht der HSL-Wert:

       L 80 %  ->  #F2D0CF  68.3 %   zu dunkel
       L 86 %  ->  #F6DEDE  77.0 %
       L 89 %  ->  #F8E5E5  81.6 %   ← gewählt, Grün liegt bei 81.9 %
       L 92 %  ->  #FAECEC  86.4 %   zu blass

   Kontrast zum Text: **9.38:1**. Der Farbton kommt weiter aus
   `--awb-color5-h` und zieht bei einer Palettenänderung mit; Sättigung und
   Helligkeit stammen aus der Demo-Vorlage. */
/* Gilt auch für den handgesetzten Eyebrow der Sektion «Über uns» — dort
   liegt der ganze Block als ein Stück Markup im Raster, Avadas
   Highlight-Element steht nicht zur Verfügung. Eine Definition für beide,
   damit eine Farbänderung überall durchschlägt. */
.fusion-highlight.awb-highlight-marker,
.rjr-team__eyebrow {
	background: linear-gradient(
		to top,
		hsla(var(--awb-color5-h), 56%, 89%, 0.6) 40%,
		transparent 40%
	) !important;
}
/* Klasse doppelt — Avadas `.fusion-text { margin-top: 0 }` hat dieselbe
   Spezifität und lädt später. */
.rjr-eyebrow.rjr-eyebrow {
	margin-top: 3px;
}

/* --- Einleitung: die Bildspalte ----------------------------------------
   Avada übersetzt `min_height` und `valign_content` dieser Spalte **nicht**
   in CSS (nachgemessen: `min-height: 1px`, `justify-content: flex-start`) —
   dasselbe Verhalten wie beim Container. Die Werte stehen im Shortcode als
   Absicht, wirksam sind sie hier.

   **Warum ein Seitenverhältnis und keine feste Höhe:** Das Foto
   `inhaber-paar.webp` ist quer (1600 × 1066), die Spalte hochformatig. Bei
   `cover` füllt die Höhe aus, beschnitten wird die **Breite**. Wie viel vom
   Bild übrig bleibt, hängt damit allein am **Seitenverhältnis** der Spalte,
   nicht an ihrer absoluten Grösse:

       sichtbarer Anteil = Seitenverhältnis × (1066 / 1600)

   Die beiden Inhaber liegen im Original etwa zwischen x = 200 und x = 1280,
   brauchen also 67.5 % der Bildbreite:

       AR 1.00 → 66.6 % sichtbar   knapp zu wenig
       AR 1.04 → 69.3 % sichtbar   ← gewählt, mit etwas Rand
       AR 1.20 → 80.0 % sichtbar   sicher, aber die Spalte wird flach

   Eine feste Höhe stand hier zuerst (560px) und war auf dem Desktop richtig —
   auf dem Telefon aber blieb sie bei 560px, während die Spalte auf 315px
   schrumpfte: nur noch 37.5 % des Fotos waren zu sehen, beide Personen
   angeschnitten. Mit `aspect-ratio` stimmt der Zuschnitt auf **jeder** Breite
   (581px → 559 hoch · 315px → 303 hoch).

   Wer das Foto tauscht, rechnet die Formel oben neu. */
/* Klasse doppelt: Avadas `.fusion-layout-column .fusion-column-wrapper`
   setzt `min-height: 1px` bei gleicher Spezifität (je zwei Klassen) und
   steht im später geladenen Sammel-Stylesheet — bei Gleichstand gewinnt die
   spätere. Dieselbe Falle wie bei den Buttons. */
.rjr-einleitung__bild.rjr-einleitung__bild > .fusion-column-wrapper {
	aspect-ratio: 1.04;
	min-height: 0;
	justify-content: flex-end;
	/* Das Motiv sitzt nicht in der Bildmitte: die beiden Inhaber liegen im
	   Original zwischen x = 208 und x = 1141 von 1600, ihre Mitte also bei
	   **42.2 %**. Mit `center` (50 %) wurde links angeschnitten, während
	   rechts Hintergrund übrig blieb — genau so gemeldet. Ausgezählt über
	   das Spaltenprofil dunkler Pixel, nicht geschätzt. */
	background-position: 42% center !important;
}

/* --- Bildzoom beim Überfahren ------------------------------------------
   Wiederverwendbar über die Klasse `rjr-bildzoom` an einer Spalte, deren
   Bild als **Hintergrund** liegt (Vorgabe Vincenzo, 22.08.2026).

   **Warum `background-size` und nicht `transform: scale()`:** Das Bild
   kommt aus Avadas Spalteneinstellung, nicht aus dem CSS. Ein `transform`
   bräuchte ein eigenes Element mit der Bild-URL im Stylesheet — dann stünde
   die URL an zwei Stellen und ein Bildtausch im Builder ginge ins Leere.
   So bleibt Avada die einzige Quelle.

   **`auto 100%` ist hier deckungsgleich mit `cover`:** Die Spalte hat ein
   Seitenverhältnis von 1.04, das Bild eines von 1.5 — bei `cover` füllt
   also immer die **Höhe** aus. `auto 100%` sagt dasselbe, lässt sich aber
   sauber animieren (`cover` und Prozentwerte gehen nicht ineinander über).
   Gilt nur, solange das Seitenverhältnis der Spalte unter 1.5 bleibt.

   **Warum 10 % und nicht mehr:** Beim Zoom wandert der sichtbare Ausschnitt
   nach innen. Gerechnet für `inhaber-paar.webp`, dessen Motiv zwischen
   x = 208 und x = 1141 liegt:

       Zoom    sichtbar   Rand links/rechts
         0 %    69.3 %      90 / 85 px
        10 %    63.0 %      40 / 35 px   ← gewählt
        15 %    60.3 %      18 / 13 px   knapp
        20 %    57.7 %      angeschnitten

   Wer stärker zoomen will, braucht ein Bild mit mehr Luft um das Motiv. */
.rjr-bildzoom.rjr-bildzoom > .fusion-column-wrapper {
	background-size: auto 100% !important;
	transition: background-size 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.rjr-bildzoom.rjr-bildzoom:hover > .fusion-column-wrapper,
.rjr-bildzoom.rjr-bildzoom:focus-within > .fusion-column-wrapper {
	background-size: auto 110% !important;
}
/* Wer Bewegung abbestellt hat, bekommt keine. */
@media (prefers-reduced-motion: reduce) {
	.rjr-bildzoom.rjr-bildzoom > .fusion-column-wrapper {
		transition: none;
	}
	.rjr-bildzoom.rjr-bildzoom:hover > .fusion-column-wrapper,
	.rjr-bildzoom.rjr-bildzoom:focus-within > .fusion-column-wrapper {
		background-size: auto 100% !important;
	}
}

/* --- Vorteilsliste in der Einleitung -----------------------------------
   Seit dem 22.08.2026 sind die vier Punkte **einzeilig** — die
   ausführlichen Sätze wandern später zu den Leistungen (Vorgabe Vincenzo).
   Die Schriftfarbe steht am Element auf `color7`; hier bleibt nur der
   Abstand zwischen den Punkten. */
.rjr-vorteile li {
	margin-bottom: 12px;
	/* Gleiches Gewicht wie der Eyebrow (400), Vorgabe Vincenzo. Damit die
	   Aufzählung trotzdem kräftiger wirkt als der Lead-Absatz daneben — der
	   nach demselben Wunsch ebenfalls auf 400 steht — trägt sie den dunklen
	   Textton statt des Sekundärgraus. Zur Begründung siehe den Block
	   «Schriftgewichte in der Einleitung» weiter unten. */
	font-weight: 400;
	color: var(--awb-color7);
}

/* --- Schriftgewichte in der Einleitung ---------------------------------
   Gewünscht war: Lead **etwas** dicker als bisher, aber **dünner** als die
   Aufzählung — und die Aufzählung so dick wie der Eyebrow.

   Der Eyebrow steht auf **400**. Damit müsste der Lead zwischen 300 und 400
   liegen. **Diesen Schnitt gibt es nicht:** Open Sans wird hier lokal
   ausgeliefert, und Avada lädt nur die tatsächlich benutzten Gewichte —
   nachgesehen im Font-CSS auf dem Server sind das **300, 400 und 600**.
   Ein angefordertes 500 fiele nach den CSS-Regeln auf 400 zurück.

   **Gelöst über die Farbe statt über das Gewicht:** beide auf 400, aber die
   Aufzählung im dunklen `color7` (#1F1F1F) gegen den Lead im Sekundärgrau
   `color6` (#3A3A3A). Die Abstufung bleibt damit sichtbar, ohne einen
   Schnitt vorzutäuschen, den es nicht gibt.

   Wer eine echte Zwischenstufe will, lädt den 500er-Schnitt nach; dann
   könnte die Aufzählung auf 500 und der Lead auf 400. Sie entspräche dann
   allerdings nicht mehr dem Eyebrow. */
.rjr-lead.rjr-lead,
.rjr-lead.rjr-lead p {
	font-weight: 400;
	color: var(--awb-color6);
}
.rjr-vorteile li:last-child {
	margin-bottom: 0;
}

/* --- Hero füllt das Fenster, ohne zu überlaufen ------------------------
   Vorgabe Vincenzo (22.08.2026): Ab Tablet soll die Hero-Karte auf jedem
   Gerät **ganz** zu sehen sein, ohne zu scrollen. Vorher war sie fest
   900px hoch; auf einem MacBook Air 15" (rund 860px sichtbare Höhe) lag
   ihre Unterkante damit 119px unterhalb des Bildrands.

   Die Rechnung: Fensterhöhe − Kopfhöhe − Aussenrand der Karte
     · `100svh`  ist die **kleine** Fensterhöhe: die, die bleibt, wenn die
       Browserleisten sichtbar sind. `vh` würde auf Mobilgeräten zu gross
       messen, `dvh` bei jedem Ein- und Ausblenden der Leisten springen.
     · `--rjr-kopfhoehe` setzt `js/rjr-kopf.js` aus der **gemessenen** Höhe
       des Kopfes. Fest verdrahtet ginge es nicht: der Kopf ist 115px hoch
       ab 1301px, aber 122px darunter — und beim nächsten Umbau wieder
       anders. Der Rückfallwert 122px gilt nur, falls das Skript ausfällt.
     · 4px ist der Aussenrand der Karte nach oben, `--rjr-randaussen` der
       gewünschte Rest unterhalb — so viel Luft wie an den Seiten.

   Die Grenzen von `clamp()`:
     · **560px** nach unten: der Textblock im Hero misst 430px; darunter
       würde es gedrängt. Auf sehr flachen Fenstern darf man dann scrollen.
     · **900px** nach oben: der bisherige Entwurfswert. Auf grossen
       Bildschirmen wächst die Karte also nicht ins Riesenhafte, und der
       Anfang der nächsten Sektion bleibt sichtbar — was zum Weiterscrollen
       einlädt. Wer volle Höhe auch dort will, hebt diesen Wert an.

   Unter 821px (Telefon) bleibt es bei der natürlichen Höhe: dort ist der
   Kopf hoch und der Inhalt gestapelt, eine erzwungene Fensterhöhe würde
   den Text stauchen. */
/* **Die Höhe allein genügt nicht — der Innenabstand muss mit.** Bis zum
   02.09.2026 stand hier nur die Mindesthöhe; sie liess sich einhalten, aber
   der Inhalt samt seinen 112px Polster oben und unten war auf Tablets
   **höher** als die Mindesthöhe, und die Karte wuchs darüber hinaus. Gemessen
   bei 1194px Breite: Inhalt 400px + 224px Polster = 624px gegen 608px Platz —
   die untere Rundung lag unter der Fensterkante (Vincenzos Aufnahme, iPad).
   Auf einem 1280 x 800-Notebook geht dieselbe Rechnung ebenfalls nicht auf.

   Jetzt schrumpft das Polster mit: `--rjr-hero-platz` ist der Platz zwischen
   Kopf und Fensterkante, davon gehen 460px für den Inhalt ab (gemessen:
   380–447px je nach Breite), der Rest verteilt sich auf oben und unten.
   Reicht der Platz, deckelt `112px` wie bisher — sichtbar ändert sich dann
   nichts, weil der Inhalt ohnehin mittig in der Mindesthöhe steht.

   **Der Boden fällt von 560 auf 420px.** 560 war der Grund, warum die Karte
   auf niedrigen Fenstern trotzdem überstand. */
@media (min-width: 821px) {
	.rjr-hero.fusion-fullwidth {
		/* Rückfall für Browser ohne svh */
		--rjr-hero-platz: calc(100vh - var(--rjr-kopfhoehe, 122px) - 4px - var(--rjr-randaussen));
		--rjr-hero-platz: calc(100svh - var(--rjr-kopfhoehe, 122px) - 4px - var(--rjr-randaussen));
		min-height: clamp(420px, var(--rjr-hero-platz), 900px);
		padding-top: clamp(40px, calc((var(--rjr-hero-platz) - 460px) / 2), 112px) !important;
		padding-bottom: clamp(40px, calc((var(--rjr-hero-platz) - 460px) / 2), 112px) !important;
	}
}

/* **Der sichtbare** Abstand vom letzten Element im Kopf bis zur Karte soll
   genauso gross sein wie der Abstand der Karte zum Fensterrand. Dazwischen
   liegt aber noch der untere Innenabstand des Kopfes — der gehört optisch
   zum Weissraum, technisch zum Kopf. Er wird deshalb auf einen festen Wert
   gebracht und vom Aussenrand der Karte abgezogen.

   **Bis zum 02.09.2026** sass die Karte unterhalb von 1000px bei 30px statt
   20px — Avada nimmt den negativen Aussenrand von `hundred_percent="yes"`
   dort von sich aus zurück, und das Stylesheet liess es geschehen. Der
   Abstand nach oben zog mit (14px statt 4px, sichtbar also 30px statt 20px).
   Seit die Karte ihre 20px auf **jeder** Breite hält, gilt auch oben eine
   einzige Rechnung — die Sonderregel für kleine Geräte ist entfallen. */
.fusion-tb-header .fusion-fullwidth {
	padding-bottom: 16px !important;
}
.rjr-hero.fusion-fullwidth {
	margin-top: calc(var(--rjr-randaussen) - 16px) !important;
}

/* Unter 1001px rücken **alle** Kacheln der Seite von 20px auf 30px
   Fensterrand — «Leistungen», «Über uns» und «Kontakt» tun das seit dem
   24.08.2026 an genau dieser Grenze. Der Hero zieht mit, und der obere
   Abstand rechnet dort auf dieselben 30px. So steht die ganze Seite auf
   **einer** Kante, oberhalb wie unterhalb der Grenze. */
@media (max-width: 1000px) {
	.rjr-hero.fusion-fullwidth {
		margin-left: 0 !important;
		margin-right: 0 !important;
		margin-top: calc(30px - 16px) !important;
	}
}

@media (max-width: 1200px) {
	.rjr-hero.fusion-fullwidth {
		padding-left: 56px !important;
		padding-right: 56px !important;
	}
}
@media (max-width: 820px) {
	.rjr-hero.fusion-fullwidth {
		padding-left: 28px !important;
		padding-right: 28px !important;
	}
}

/* Lesbarkeitsverlauf über dem Video.
   Gerechnet gegen den schlimmsten Fall, ein reinweisses Bild darunter:
   0.78 → 10.5:1 · 0.62 → 4.67:1 (die Schwelle ist 4.5) · 0.12 → 1.2:1.
   Der Knick bei 80 % ist deshalb Pflicht, nicht Geschmack: bis dorthin
   reicht der Lead-Text auf der schmalsten grossen Stufe (1201px). Auf
   1440px endet er schon bei 62 %, auf 1920px bei 45 % — der helle Teil
   rechts wird also mit dem Fenster grösser. Wird der Text breiter oder
   die Innenabstände kleiner, muss der Knick nachgerechnet werden. */
.rjr-hero.fusion-fullwidth::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgba(31, 31, 31, 0.78) 0%,
		rgba(31, 31, 31, 0.68) 45%,
		rgba(31, 31, 31, 0.62) 80%,
		rgba(31, 31, 31, 0.12) 100%
	);
}
.rjr-hero.fusion-fullwidth > .fusion-builder-row {
	position: relative;
	z-index: 2;
}

/* Der Titel bricht fest nach «Schaltanlagen und» um (`<br />` im Element).
   Die Grösse wächst weiter mit dem Fenster (`clamp` im Element, nicht
   hier), damit die längere zweite Zeile auf jeder Breite passt. */
.rjr-hero__title h1 {
	letter-spacing: -0.01em;
}

@media (max-width: 1200px) {
	/* **Hier stand bis zum 02.09.2026 `margin: 0`** — die Karte sprang schon
	   unter 1201px von 20px auf 30px Fensterrand und war damit die **einzige**
	   Kachel der Seite, die das an dieser Stelle tat: «Leistungen», «Über uns»
	   und «Kontakt» wechseln erst bei **1000px** (bei 1100px nachgemessen:
	   alle drei 20 … 1080, der Hero 30 … 1070). Aufgefallen beim Verschieben
	   des Logos — im Band 1001–1200px fluchtete nichts mehr. Die Rücknahme
	   steht jetzt eine Stufe tiefer, bei 1000px, genau wie bei den Kacheln. */
	/* Ab hier füllt der Lead-Text die Karte fast ganz aus — gemessen bei
	   985px: bis 84 %. Der helle Ausklang rechts hätte dort Text unter
	   4.5:1 stehen lassen, deshalb bleibt der Schleier durchgehend. */
	.rjr-hero.fusion-fullwidth::after {
		background: linear-gradient(
			90deg,
			rgba(31, 31, 31, 0.76) 0%,
			rgba(31, 31, 31, 0.66) 60%,
			rgba(31, 31, 31, 0.62) 100%
		);
	}
}
@media (max-width: 820px) {
	.rjr-hero.fusion-fullwidth::after {
		background: linear-gradient(
			180deg,
			rgba(31, 31, 31, 0.64) 0%,
			rgba(31, 31, 31, 0.80) 100%
		);
	}
}

/* Der Firmenname führt den Lead an und soll sich abheben. Avadas
   Typografie setzt `strong` im Fliesstext auf das Normalgewicht zurück —
   hier deshalb ausdrücklich. */
.rjr-hero__lead strong {
	font-weight: 700;
}

/* --- Google-Bewertung über dem Hero-Titel ----------------------------
   Sternfarbe ist bewusst Googles Gold #FBBC04 und nicht die RJR-Palette —
   das Element zitiert eine fremde Marke, es soll aussehen wie dort.
   In den Kreisen stehen **generierte Platzhalter-Porträts** (kie.ai,
   21.08.2026) — Entscheid von Vincenzo, festgehalten in
   `07_OFFENE-FRAGEN.md`, Punkt 82. Es sind keine echten Kundinnen und
   Kunden; die Bilder tragen deshalb leeres `alt` und die Reihe ist für
   Screenreader ausgeblendet. */
.rjr-rating {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	line-height: 1;
}

.rjr-rating__avatars {
	display: inline-flex;
	align-items: center;
	margin-right: 4px;
}
.rjr-rating__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 999px;
	border: 3px solid var(--awb-color1);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
	color: var(--awb-color1);
	font-size: 15px;
	overflow: hidden;
	background: var(--awb-color2);
}
.rjr-rating__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 999px;
}
.rjr-rating__avatar + .rjr-rating__avatar {
	margin-left: -14px;
}

.rjr-rating__value {
	font-size: 20px;
	font-weight: 700;
	color: var(--awb-color1);
}
.rjr-rating__stars {
	display: inline-flex;
	gap: 3px;
	color: #fbbc04;
	font-size: 18px;
}
.rjr-rating__label,
a.rjr-rating__label {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.82);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(255, 255, 255, 0.4);
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
a.rjr-rating__label:hover,
a.rjr-rating__label:focus-visible {
	color: var(--awb-color1);
	text-decoration-color: var(--awb-color1);
}

@media (max-width: 640px) {
	.rjr-rating {
		gap: 8px;
	}
	.rjr-rating__avatar {
		width: 38px;
		height: 38px;
		border-width: 2px;
	}
	.rjr-rating__avatar + .rjr-rating__avatar {
		margin-left: -12px;
	}
	.rjr-rating__value { font-size: 18px; }
	.rjr-rating__stars { font-size: 16px; }
	/* Auf dem Telefon ist der Link sonst nur 15px hoch — zu klein zum
	   Treffen. Innenabstand vergrössert die Fläche auf 39px. */
	.rjr-rating__label {
		font-size: 14px;
		flex-basis: 100%;
		display: inline-block;
		padding-block: 12px;
		margin-block: -8px;
	}
}

/* --- USP-Zeile unter dem Hero ----------------------------------------
   Sechs Leistungen, keine Trenner, gemischte Schreibweise (kein Versal).
   Jede Beschriftung steht auf einer Zeile (`nowrap`) — die Schriftgrösse
   folgt der Spaltenbreite, damit die längste («Schaltschrankbau») passt.

   Die Symbole sind **von Hand gezeichnete SVG** im Seiteninhalt, keine
   Icon-Schrift und kein Pixelbild: gestochen scharf in jeder Grösse, die
   Farben laufen über die Palette. Umriss = `currentColor` (Anthrazit),
   rote Akzente über `.rjr-a` (Linie) und `.rjr-a-f` (Fläche). */
/* Avada färbt jeden Textblock über eine eigene Klasse ein und lädt sein
   CSS nach dem Child-Theme — ohne den `.rjr-uspzeile`-Vorsatz landet der
   Umriss auf `color6` (#3A3A3A) statt auf Anthrazit. */
.rjr-uspzeile .rjr-usp__icon {
	color: var(--awb-color7);
}
.rjr-usp__icon svg {
	width: 56px;
	height: 56px;
	display: block;
	margin: 0 auto;
}
.rjr-usp__icon .rjr-a {
	stroke: var(--awb-color5);
}
.rjr-usp__icon .rjr-a-f {
	fill: var(--awb-color5);
}

.rjr-usp__label {
	margin: 0;
	text-align: center;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-transform: none;
	line-height: 1.35;
	white-space: nowrap;
	color: var(--awb-color7);
}

/* Avada gibt jeder Spalte 16px Innenabstand — bei sechs Spalten kostet das
   die längste Beschriftung genau die Zeile. Hier weg, der Spaltenabstand
   selbst (die Aussenränder) bleibt bestehen. */
.rjr-uspzeile .rjr-usp > .fusion-column-wrapper {
	padding-left: 0;
	padding-right: 0;
}

/* Sechs Spalten stehen nur oberhalb von rund 1200px nebeneinander —
   dort wird es zum Schluss eng. */
@media (max-width: 1340px) {
	.rjr-usp__label {
		font-size: 15px;
		letter-spacing: 0;
	}
}

/* darunter drei Spalten — wieder reichlich Platz */
@media (max-width: 1200px) {
	.rjr-usp__label {
		font-size: 16px;
		letter-spacing: 0.01em;
	}
}

/* zwei Spalten auf schmalen Geräten */
@media (max-width: 420px) {
	.rjr-usp__label {
		font-size: 14px;
		letter-spacing: 0;
	}
	.rjr-usp__icon svg {
		width: 48px;
		height: 48px;
	}
}

/* --- Einblenden nach oben: das Bewegungsmuster der Seite ---------------
   Vorgabe Vincenzo (24.08.2026): die Textpassagen im Hero kommen einzeln
   dezent von unten herein, die Einleitung genauso.

   **Drei Klassen, im Builder ans Element geschrieben:**

       rjr-anim            das Element selbst kommt hoch
       rjr-anim-kinder     seine Kinder kommen einzeln hoch (Aufzählungen)
       rjr-anim--1 … --10  Startzeitpunkt: (n − 1) × 90ms

   Bei `rjr-anim-kinder` addieren sich beide: die Klasse `--4` am Elternteil
   setzt die Kinder auf Stufe 4, 5, 6 … Deshalb steht in der Rechnung unten
   die Summe aus `--rjr-anim-stufen` (vom Element, wird geerbt) und
   `--rjr-anim-kind` (vom Kind selbst).

   **Warum `animation` und nicht `transition`:** Die Bildspalte trägt bereits
   einen Übergang (`rjr-bildzoom`, `background-size`). Zwei Regeln, die beide
   `transition` setzen, überschreiben sich gegenseitig — die zweite gewinnt
   und der Zoom wäre wieder schlagartig. `animation` liegt auf einer eigenen
   Eigenschaft und kommt dem Zoom nicht in die Quere. Nebenwirkung von
   `both`: nach dem Lauf bleibt `transform: none` am Element stehen. Für ein
   Element, das seinen Hover über `transform` löst, wäre diese Klasse also
   nichts — auf dieser Seite tut das keins.

   **Versteckt wird nur unter `html.rjr-anim-bereit`** — die Klasse setzt
   `js/rjr-anim.js`. Ohne JavaScript, ohne IntersectionObserver und bei
   `prefers-reduced-motion: reduce` bleibt alles sichtbar. */
:root {
	--rjr-anim-weg: 20px;                              /* Weg von unten */
	--rjr-anim-dauer: 700ms;
	--rjr-anim-kurve: cubic-bezier(0.22, 0.61, 0.36, 1);  /* wie der Bildzoom */
	--rjr-anim-stufe: 90ms;                            /* Abstand der Passagen */
}

@keyframes rjr-hoch {
	from {
		opacity: 0;
		transform: translateY( var( --rjr-anim-weg ) );
	}
	to {
		opacity: 1;
		transform: none;
	}
}

html.rjr-anim-bereit .rjr-anim,
html.rjr-anim-bereit .rjr-anim-kinder > * {
	opacity: 0;
}

html.rjr-anim-bereit .rjr-anim.rjr-anim-drin,
html.rjr-anim-bereit .rjr-anim-kinder.rjr-anim-drin > * {
	animation: rjr-hoch var( --rjr-anim-dauer ) var( --rjr-anim-kurve )
		calc( ( var( --rjr-anim-stufen, 0 ) + var( --rjr-anim-kind, 0 ) ) * var( --rjr-anim-stufe ) ) both;
}

/* Staffelung — als Zahl, nicht als Zeit, damit sich Element und Kind
   addieren können. */
.rjr-anim--1 { --rjr-anim-stufen: 0; }
.rjr-anim--2 { --rjr-anim-stufen: 1; }
.rjr-anim--3 { --rjr-anim-stufen: 2; }
.rjr-anim--4 { --rjr-anim-stufen: 3; }
.rjr-anim--5 { --rjr-anim-stufen: 4; }
.rjr-anim--6 { --rjr-anim-stufen: 5; }
.rjr-anim--7 { --rjr-anim-stufen: 6; }
.rjr-anim--8 { --rjr-anim-stufen: 7; }
.rjr-anim--9 { --rjr-anim-stufen: 8; }
.rjr-anim--10 { --rjr-anim-stufen: 9; }

html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(1) { --rjr-anim-kind: 0; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(2) { --rjr-anim-kind: 1; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(3) { --rjr-anim-kind: 2; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(4) { --rjr-anim-kind: 3; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(5) { --rjr-anim-kind: 4; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(6) { --rjr-anim-kind: 5; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(7) { --rjr-anim-kind: 6; }
html.rjr-anim-bereit .rjr-anim-kinder > *:nth-child(8) { --rjr-anim-kind: 7; }

/* Auf dem Telefon kürzerer Weg und knappere Staffelung — die Sektionen
   stehen dort untereinander, eine lange Kette wirkt zäh. */
@media (max-width: 640px) {
	:root {
		--rjr-anim-weg: 14px;
		--rjr-anim-stufe: 70ms;
	}
}

/* --- Die hochzählende Zahl ---------------------------------------------
   `<span class="rjr-zaehler" data-rjr-zaehler="13">13</span>+`

   Im Markup steht der Endwert — ohne JavaScript und bei abbestellter
   Bewegung zeigt die Karte also sofort «13+». Das Pluszeichen steht
   **ausserhalb** des Spans, damit es beim Zählen nicht wandert.

   `tabular-nums` gibt allen Ziffern dieselbe Breite; die Mindestbreite
   setzt das Skript auf die Ziffernzahl des Zielwerts. Beides zusammen hält
   die Zahl ruhig — nötig, weil die weisse Karte ihre Breite vom Inhalt
   nimmt (`width: max-content`) und sonst mitzappeln würde. */
.rjr-zaehler {
	display: inline-block;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

/* =========================================================================
   SEKTION «LEISTUNGEN» — Akkordeon, 24.08.2026
   Vorgabe Vincenzo: Aufbau wie im abgelösten HTML-Entwurf
   (`05_Backup/03_Abgeloest-…/02_Entwurf/`), Hintergrundkachel so breit wie
   der Hero, Inhalt auf dem 1340er-Raster. Der Textblock im offenen Eintrag
   war dort ein tiefrotes Farbfeld — hier **helles Grau mit dunkler Schrift**
   (Entscheid 24.08.2026).
   ====================================================================== */

/* --- Die Kachel: Hero-Breite, Inhalt auf dem Raster --------------------
   Derselbe Griff wie beim Hero: `hundred_percent="yes"` zieht den Container
   30px aus dem Inhaltsbereich heraus, der negative Aussenabstand holt ihn
   auf die 20px Fensterrand zurück. Die Inhaltsbreite setzt die Zeile,
   nicht der Container — sonst klebte der Text am Kachelrand. */
.rjr-leistungen.fusion-fullwidth {
	width: auto;
	max-width: none;
	margin-left: calc(var(--rjr-randaussen) - 30px) !important;
	margin-right: calc(var(--rjr-randaussen) - 30px) !important;
	background-color: var(--awb-color2);
	border-radius: 20px;
	/* **20px seit dem 02.09.2026** (vorher 10). Die Kachel steht 20px vom
	   Fensterrand, dazu 20px hier und 20px halbe Rinne in der Spalte — macht
	   die 60px-Textkante, auf der seither jede Sektion steht. Siehe «Das
	   Raster» am Ende der Datei. */
	padding: 80px 20px !important;
}

/* Avada gibt jeder Spalte seitliche Zwischenräume (`--awb-spacing-*`).
   Hier sind sie abgewählt: sonst rückten Kachelinhalt und Einleitung um
   20px gegeneinander. Dasselbe Muster wie bei der weissen Karte in der
   Einleitung. */
.rjr-leistungen .fusion-layout-column,
.rjr-leistungen .fusion-layout-column-inner {
	--awb-spacing-left-large: 0 !important;
	--awb-spacing-right-large: 0 !important;
	--awb-spacing-left-medium: 0 !important;
	--awb-spacing-right-medium: 0 !important;
	--awb-spacing-left-small: 0 !important;
	--awb-spacing-right-small: 0 !important;
}

/* **Der Inhalt fluchtet mit der Einleitung darüber** (Vorgabe Vincenzo,
   24.08.2026). Zwei Befunde stecken dahinter:

   **1. Die sichtbare Inhaltsbreite einer Sektion ist 1380px, nicht 1340.**
   `site_width` sind 1340, aber Avadas Zeile trägt links und rechts je 20px
   negative Rinne, die die Spalten über ihren Innenabstand wieder hereinholen.
   An der Einleitung gemessen: sichtbare Kante bei 262.4px im 1920er-Fenster,
   Breite 1380.2px. Daher `+ 40px`.

   **2. Begrenzt wird die Spalte, nicht die Zeile.** Avada schreibt der Zeile
   `max-width: calc(100% + 0px) !important` **inline** ins Markup — dagegen
   kommt keine Regel aus einem Stylesheet an, auch nicht mit `!important`
   oder mehr Spezifität (beides gemessen). Die Spalte darin trägt kein
   Inline-`max-width` und lässt sich deshalb sauber begrenzen und zentrieren.
   Am Container steht zusätzlich `flex_column_spacing="0px"`, sonst erzwingt
   Avada eine 103 % breite Zeile — derselbe Griff wie beim Hero. */
.rjr-leistungen.rjr-leistungen .fusion-builder-row {
	justify-content: center;
}
.rjr-leistungen .fusion-builder-row > .fusion-layout-column {
	/* Avadas eigene Formel, aus dem Inline-Stil der Einleitung abgelesen:
	   `max-width: 1380.2px` = `site_width` + `col_spacing` (3 %), dazu je
	   `-1.5 %` Aussenabstand. Damit steht diese Spalte auf denselben Kanten
	   wie jede normale Sektion — auch dann, wenn das Fenster schmaler wird
	   als die Inhaltsbreite und die Zeile über ihren Kasten hinausragt. */
	max-width: calc(var(--rjr-inhaltsbreite) * 1.03);
	/* **Der 3-%-Griff ist am 02.09.2026 entfallen.** Er machte die Spalte 3 %
	   breiter als ihre Zeile und zog sie um 1.5 % je Seite heraus, um Avadas
	   Spaltenabstand auszugleichen — den es in dieser Sektion gar nicht gibt
	   (`flex_column_spacing="0px"`). Ausserhalb seines Auslegungsbandes zog er
	   falsch; siehe «Das Raster» am Ende der Datei.

	   Geblieben sind Deckel und Mitte: die Spalte füllt ihre Zeile und wird ab
	   1380.2px Zeilenbreite gedeckelt und zentriert. */
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

@media (max-width: 1000px) {
	.rjr-leistungen.fusion-fullwidth {
		margin-left: 0 !important;
		margin-right: 0 !important;
		/* Unter 1001px steht die Kachel bei 30px — dem Innenabstand von
		   `#main` —, deshalb hier nur 10px: 30 + 10 + 20 Rinne = 60. */
		padding: 56px 10px !important;
	}
}

/* Kopf der Sektion: Eyebrow, Titel und Lead stehen auf halber Breite —
   eine Zeile über die vollen 1340px läse sich schlecht (über 110 Zeichen). */
.rjr-leistungen__kopf {
	max-width: 720px;
	margin-bottom: 48px;
}

/* --- Die Einträge ------------------------------------------------------
   Avada rendert je Eintrag `.fusion-panel` mit `.fusion-toggle-heading` und
   einem Icon-Wrapper. Rahmen und Innenabstände der Demo werden ersetzt:
   weisse Karte, 20px Radius, weicher Schatten, 12px Abstand. */
/* **Diese Regeln gelten für BEIDE Akkordeons der Seite** — «Leistungen» und
   «FAQ» (Vorgabe Vincenzo, 24.08.2026: «ansonsten haben wir unkonsistente
   Systeme mit Farben, Schriften, Grössen»). Wer hier etwas ändert, ändert
   beide. Die FAQ-Selektoren brauchen sechs Klassen, weil Avada dort eine
   Instanz-Regel mit (0,5,1) erzeugt — Einzelheiten im FAQ-Abschnitt unten.
   Was sich unterscheidet, steht dort und nur dort: graue Kartenfläche statt
   weisser, keine Nummer.

   Radius, Schatten und Abstände stammen **eins zu eins** aus dem Entwurf
   (`--rjr-radius-l: 28px`, `--rjr-shadow-card`, `--rjr-space-xs: 12px`) —
   Vorgabe Vincenzo: «genau gleich wie die Referenz». Der Radius weicht
   damit bewusst von den 20px des Heros ab. */
/* Klasse doppelt: Avada setzt `.fusion-accordian .fusion-panel { box-shadow:
   none; border-radius: 0 }` mit gleicher Spezifität und lädt nach dem
   Child-Theme — ohne die Verdoppelung bleibt die Karte flach und eckig. */
.rjr-leistungsliste.rjr-leistungsliste .fusion-panel,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel {
	background: var(--awb-color1);
	border: 0 !important;
	border-radius: 28px !important;
	box-shadow: 0 1px 2px rgba(14, 14, 17, 0.05), 0 12px 32px -14px rgba(14, 14, 17, 0.12);
	overflow: hidden;
	/* **24px statt 12px** (Vorgabe Vincenzo, 24.08.2026: «Abstände zueinander
	   vergrössern»). 12px stammte aus dem abgelösten Entwurf
	   (`--rjr-space-xs`) und ist kein Wert der Abstandsskala in
	   `02_DESIGN-SYSTEM.md`, Abschnitt 3a — die kennt 8 / 16 / 24 / 40.
	   24px (`md`) ist die nächste spürbare Stufe; 16px wären nur vier Pixel
	   mehr gewesen. Gilt für **beide** Akkordeons. */
	margin-bottom: 24px !important;
}
.rjr-leistungsliste .fusion-panel:last-child,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel:last-child {
	margin-bottom: 0 !important;
}
.rjr-leistungsliste .panel-title,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-title {
	margin: 0 !important;
}
/* **Leserichtung: Nummer · Titel · Umschalter.** Avada dreht die Zeile für
   «Icon rechts» um (`.fusion-toggle-icon-right … a { flex-direction:
   row-reverse }`, gemessen im Sammel-Stylesheet). Dadurch landete die
   Nummer rechts und das Plus links — genau verkehrt. Zurück auf `row`;
   die Reihenfolge machen dann `::before` (Nummer) und `order: 3` am
   Umschalter. Avadas Regel `.fusion-accordian .fusion-toggle-icon-right
   .panel-heading a` wiegt (0,3,1) — gleich schwer wie eine doppelte eigene
   Klasse — und lädt später. Deshalb `.panel-heading` zusätzlich in die
   Kette: (0,4,1) gewinnt. */
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 1rem;
	padding: clamp(1.1rem, 2vw, 1.5rem) clamp(1.1rem, 2.4vw, 2rem) !important;
	color: var(--awb-color7);
	text-decoration: none;
}

/* Avada hält rechts Platz für das Icon frei (`margin-right` an der
   Überschrift). Das ist hier doppelt gemoppelt, weil der Umschalter als
   eigenes Flex-Element steht — sonst klafft eine Lücke vor dem Kreis. */
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .fusion-toggle-heading,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .fusion-toggle-heading {
	margin-right: 0;
}

/* Die Nummer kommt aus einem Zähler, nicht aus dem Text — beim Umsortieren
   oder Ergänzen eines Eintrags numeriert sie sich von selbst neu. */
.rjr-leistungsliste .panel-group {
	counter-reset: rjr-leistung;
}
.rjr-leistungsliste .fusion-panel {
	counter-increment: rjr-leistung;
}
.rjr-leistungsliste .panel-title a::before {
	content: counter(rjr-leistung, decimal-leading-zero);
	flex: none;
	min-width: 32px;
	font-size: 15px;
	font-weight: 600;
	/* Helles Grau `color3` statt `color6` — Vorgabe Vincenzo, 24.08.2026.
	   Kontrast auf Weiss **3.45:1**: für Fliesstext zu wenig (AA verlangt
	   4.5), hier vertretbar, weil die Nummer reine Ordnungshilfe ist und
	   den daneben stehenden Titel nur zählt, nicht ergänzt. Wer den Wert
	   sauber haben will, nimmt `#757575` (4.61:1). */
	color: var(--awb-color3);
	font-variant-numeric: tabular-nums;
}
.rjr-leistungsliste .fusion-toggle-heading,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-heading {
	flex: 1;
	font-size: clamp(1.15rem, 1.5vw, 1.375rem);
	font-weight: 600;
	line-height: 1.3;
}

/* Der runde Umschalter rechts: hell mit rotem Zeichen, offen gefüllt rot
   mit weissem Zeichen. Das Plus dreht sich beim Öffnen zum Kreuz —
   Avada tauscht das Icon selbst, die Drehung macht den Wechsel weich. */
.rjr-leistungsliste .fusion-toggle-icon-wrapper,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-icon-wrapper {
	flex: none;
	order: 3;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: hsla(var(--awb-color5-h), var(--awb-color5-s), 89%, 1);
	display: grid;
	place-items: center;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
/* **Der Titel bleibt beim Öffnen anthrazit** (Vorgabe Vincenzo, 24.08.2026).
   Avada färbt den offenen Eintrag über
   `.fusion-accordian .panel-title a.active { color: var(--awb-toggle-active-accent-color) !important }`
   — und diese Einstellung steht bei beiden Akkordeons auf **Weiss**, weil
   das Zeichen im roten Kreis weiss sein soll. Damit wurde auch die
   Überschrift weiss: im FAQ hell auf Grau, bei den Leistungen sogar weiss
   auf Weiss, also praktisch unsichtbar. Aufgefallen ist es erst im FAQ.

   Die Zeichenfarbe darf nicht mitgeändert werden — deshalb trifft diese
   Regel nur den Link und die Überschrift, nicht das Symbol. `!important`
   ist nötig, weil Avadas Regel es ebenfalls trägt. */
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a.active,
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a.active .fusion-toggle-heading,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a.active,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a.active .fusion-toggle-heading {
	color: var(--awb-color7) !important;
}

/* **Beim Überfahren wird der Titel rot** (Vorgabe Vincenzo, 24.08.2026).
   Avada bringt dafür zwar eigene Regeln mit (`toggle_hover_accent_color`,
   bei beiden Akkordeons auf `color5`), aber unsere Titelregel steht mit
   mehr Klassen darüber und hielt ihn dauerhaft anthrazit. Also hier
   ausdrücklich — inklusive `a.active:hover`, sonst bliebe der **offene**
   Eintrag beim Überfahren stumm: die Regel für den offenen Titel trägt
   `!important`. Aus demselben Grund trägt diese es ebenfalls.

   Gilt für **beide** Akkordeons — «Leistungen» und «FAQ» teilen sich
   dieses Verhalten wie alles andere auch. */
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a:hover,
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a:hover .fusion-toggle-heading,
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a.active:hover,
.rjr-leistungsliste.rjr-leistungsliste .panel-heading .panel-title a.active:hover .fusion-toggle-heading,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a:hover,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a:hover .fusion-toggle-heading,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a.active:hover,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-heading .panel-title a.active:hover .fusion-toggle-heading {
	color: var(--awb-color5) !important;
}

/* Avada legt **zwei** Zeichen an — ein Minus für offen, ein Plus für zu —
   und blendet je eines aus. Für das Kreuz im offenen Zustand braucht es
   aber das **Plus**, um 45° gedreht. Deshalb bleibt hier immer das Plus
   stehen; das Minus ist dauerhaft aus. Ohne das würde beim Öffnen ein
   gedrehtes Minus erscheinen: ein Schrägstrich. */
.rjr-leistungsliste .fusion-toggle-icon-wrapper .active-icon,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-icon-wrapper .active-icon {
	display: none !important;
}
.rjr-leistungsliste .fusion-toggle-icon-wrapper .inactive-icon,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-icon-wrapper .inactive-icon {
	display: block !important;
}
.rjr-leistungsliste .fusion-toggle-icon-wrapper i,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-icon-wrapper i {
	/* **Reines `color5`, nicht abgedunkelt.** Hier stand `l − 8 %`; bei den
	   Leistungen ist dieser Wert aber nie angekommen — Avada setzt die
	   Zeichenfarbe aus der Element-Einstellung `icon_color` mit
	   `!important` und gewinnt (gemessen `rgb(229,40,37)`). In der
	   FAQ-Kette mit ihren sechs Klassen kam die Regel dagegen durch, und
	   die beiden Akkordeons hatten plötzlich zwei verschiedene Rottöne
	   (`rgb(201,27,24)` gegen `rgb(229,40,37)`). Jetzt beide gleich. */
	color: var(--awb-color5);
	font-size: 15px;
	margin: 0 !important;
}
.rjr-leistungsliste .fusion-panel .panel-title a:hover .fusion-toggle-icon-wrapper,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-title a:hover .fusion-toggle-icon-wrapper {
	background: hsla(var(--awb-color5-h), var(--awb-color5-s), 84%, 1);
}
/* Offen erkennt Avada an der Klasse `active` am Link — **nicht** an einem
   fehlenden `collapsed` (das setzt Avada gar nicht). Mit `:not(.collapsed)`
   traf die Regel deshalb auch die geschlossenen Einträge: alle Kreise waren
   rot und gedreht. Am lebenden System nachgemessen und korrigiert. */
.rjr-leistungsliste .fusion-panel .panel-title a.active .fusion-toggle-icon-wrapper,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-title a.active .fusion-toggle-icon-wrapper {
	background: var(--awb-color5);
	transform: rotate(45deg);
}
/* Die Farbe des Zeichens im **offenen** Zustand kommt nicht von hier,
   sondern aus der Element-Einstellung `toggle_active_accent_color` am
   Akkordeon (auf `var(--awb-color1)` = Weiss). Avada setzt sie über
   `.fusion-accordian … a.active .fa-fusion-box { color: … !important }` —
   dagegen kommt eine Regel aus dem Child-Theme nicht an. Wer die Farbe
   ändern will, ändert sie am Element, nicht hier. */

/* --- Der aufgeklappte Inhalt: Text links, Bild rechts ------------------ */
.rjr-leistungsliste .panel-body,
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-body {
	padding: 0 clamp(1.1rem, 2.4vw, 2rem) clamp(1.1rem, 2.4vw, 2rem) !important;
	border: 0 !important;
}
.rjr-leistung {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 24px;
	align-items: stretch;
}
/* Flacher als zuerst gebaut: die Texte sind kurz, ein hoher Block wirkte
   halbleer (Rückmeldung Vincenzo, 24.08.2026). Polster und Bildhöhe
   entsprechen jetzt der Referenz, nicht mehr darüber. */
.rjr-leistung__text {
	background: var(--awb-color2);
	border-radius: 18px;
	padding: clamp(1.25rem, 2.4vw, 1.75rem);
	display: flex;
	flex-direction: column;
}
/* Kurztitel über dem Absatz — Vorgabe Vincenzo, 24.08.2026: «beim Öffnen
   jeweils einen kurzen Titel pro Sparte». Als `h5`, weil Avada den
   Eintragstitel darüber schon als `h4` ausgibt; die Grösse steht hier,
   damit sie nicht an der globalen Überschriftenskala hängt. */
.rjr-leistung__text .rjr-leistung__titel {
	margin: 0 0 14px !important;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--awb-color7);
}
@media (max-width: 900px) {
	.rjr-leistung__text .rjr-leistung__titel {
		font-size: 18px;
	}
}

.rjr-leistung__text p {
	margin: 0;
	color: var(--awb-color7);
	font-size: 17px;
	line-height: 1.7;
}

/* Stichworte als Pillen: dunkel auf der hellen Fläche, damit sie als
   Marke lesbar sind und nicht als zweiter Fliesstext. Der rote Punkt ist
   der einzige Akzent — Rot als Schrift wäre auf `#EFEFEF` zu knapp
   (3.92:1, siehe Kontrastmatrix im Design-System). */
.rjr-leistung__tags {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 20px 0 0 !important;
	padding: 0;
}
.rjr-leistung__tags li {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--awb-color7);
	color: var(--awb-color1);
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
}
.rjr-leistung__tags li::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) + 12%), 1);
	flex: none;
}
/* **Der Text bestimmt die Höhe, nicht das Bild** (Rückmeldung Vincenzo,
   24.08.2026: «die Inhalte kannst du von der Höhe kleiner machen»).
   Vorher stand das Bild im Fluss und brachte sein eigenes Seitenverhältnis
   mit — bei 525px Spaltenbreite waren das 392px Höhe, und der Textblock
   zog auf dieselbe Höhe mit, obwohl er nur gut 250px braucht. Absolut
   gesetzt füllt das Bild jetzt die Karte, statt sie aufzuspannen. */
.rjr-leistung__bild {
	position: relative;
	margin: 0;
	border-radius: 18px;
	overflow: hidden;
	min-height: 200px;
}
.rjr-leistung__bild img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Unter 900px stehen Text und Bild untereinander, Bild zuerst gedeckelt. */
@media (max-width: 900px) {
	.rjr-leistung {
		grid-template-columns: 1fr;
	}
	.rjr-leistung__bild {
		min-height: 0;
	}
	.rjr-leistung__bild img {
		position: static;
		aspect-ratio: 4 / 3;
		height: auto;
	}
	.rjr-leistungsliste .panel-title a {
		gap: 12px;
	}
}

/* --- Einblenden ------------------------------------------------------
   Kein Sonderweg nötig: Avada reicht die Klasse eines Toggles an sein
   `.fusion-panel` durch (nachgemessen). Die fünf Einträge tragen deshalb
   direkt `rjr-anim rjr-anim--1 … --5` aus dem gemeinsamen Bewegungsmuster.
   Der Kopf der Sektion läuft davor auf --1 bis --3. */

/* =========================================================================
   SEKTION «PROJEKTE»
   Die Regeln der drei Projektkarten (`.rjr-projekt…`, 24.08.2026) und des
   Banners darunter (`.rjr-projekte__banner`) sind am 10.10.2026 entfernt
   (Vorgabe Vincenzo, nachdem die Bildergalerie abgenommen war). Die Galerie
   steht im Abschnitt «Projekte: Bildergalerie» am Dateiende. Letzter Stand
   der alten Regeln: `05_Backup/2026-10-10_Projekte-Galerie/
   style-vor-aufraeumen.css`.
   ====================================================================== */

/* =========================================================================
   SEKTION «ÜBER UNS» — 24.08.2026
   Aufbau nach der Prebuilt-Sektion «Meet Our Certified Recruitment Experts»:
   links Kopftext, rechts daneben die zwei Geschäftsführenden, darunter eine
   Reihe mit vier Personen. Beim Überfahren erscheint ein farbiges Band mit
   den Kontaktwegen über dem unteren Bildrand.

   Kachel und Inhaltsbreite arbeiten wie bei «Leistungen» — dieselben Griffe,
   dieselbe Kante. Farben aus der Palette statt Gelb.
   ====================================================================== */

.rjr-team.fusion-fullwidth {
	width: auto;
	max-width: none;
	margin-left: calc(var(--rjr-randaussen) - 30px) !important;
	margin-right: calc(var(--rjr-randaussen) - 30px) !important;
	background-color: var(--awb-color2);
	border-radius: 20px;
	padding: 80px 20px !important;
}
.rjr-team.rjr-team .fusion-builder-row {
	justify-content: center;
}
.rjr-team .fusion-builder-row > .fusion-layout-column {
	max-width: calc(var(--rjr-inhaltsbreite) * 1.03);
	/* **Der 3-%-Griff ist am 02.09.2026 entfallen.** Er machte die Spalte 3 %
	   breiter als ihre Zeile und zog sie um 1.5 % je Seite heraus, um Avadas
	   Spaltenabstand auszugleichen — den es in dieser Sektion gar nicht gibt
	   (`flex_column_spacing="0px"`). Ausserhalb seines Auslegungsbandes zog er
	   falsch; siehe «Das Raster» am Ende der Datei.

	   Geblieben sind Deckel und Mitte: die Spalte füllt ihre Zeile und wird ab
	   1380.2px Zeilenbreite gedeckelt und zentriert. */
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
@media (max-width: 1000px) {
	.rjr-team.fusion-fullwidth {
		margin-left: 0 !important;
		margin-right: 0 !important;
		/* Unter 1001px steht die Kachel bei 30px — dem Innenabstand von
		   `#main` —, deshalb hier nur 10px: 30 + 10 + 20 Rinne = 60. */
		padding: 56px 10px !important;
	}
}

/* --- Das Raster --------------------------------------------------------
   **Ein** Raster für Kopf und alle Personen. Der Kopf belegt die ersten
   zwei Spalten der ersten Zeile, die zwei Geschäftsführenden stehen rechts
   daneben, die weiteren darunter — **seit 09.09.2026 drei** statt vier
   (Vorgabe Vincenzo: drei Mitarbeitende), die vierte Zelle bleibt leer. Nur so stehen die Karten der
   oberen und der unteren Reihe exakt übereinander — mit zwei getrennten
   Zeilen (Kopf 50 %, daneben zwei Karten) klafften 6px. */
.rjr-team__raster {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 40px 24px;
	align-items: start;
}
/* **Die drei Platzhalter stehen rechtsbündig** unter den Geschäftsführenden
   (Vorgabe Vincenzo, 09.09.2026: «bündig mit den Bildern oberhalb»). Das
   vierte Rasterkind — der erste Platzhalter — wird in Spalte 2 gesetzt, die
   zwei weiteren fliessen in 3 und 4 nach; die leere Zelle liegt damit links
   unter dem Kopftext statt rechts aussen. Kein `justify`, kein Aussenrand:
   die Karten bleiben exakt auf den Spalten der oberen Reihe. */
.rjr-team__raster .rjr-person:nth-child(4) {
	grid-column: 2;
}
/* Der Kopftext stand zuerst mittig in der Rasterzeile (rund 150px unter der
   Bildoberkante), dann mit 8px fast bündig, dann 18px. **48px** ist der
   Stand seit dem 24.08.2026 — in drei Schritten von Vincenzo eingestellt. */
.rjr-team__kopf {
	grid-column: 1 / span 2;
	align-self: start;
	padding-top: 48px;
	padding-right: 24px;
}
.rjr-team__kopf .rjr-team__eyebrow {
	display: inline;
	font-size: var(--awb-typography2-font-size);
	line-height: var(--awb-typography2-line-height);
	letter-spacing: var(--awb-typography2-letter-spacing);
	color: var(--awb-color6);
	/* **Gewicht 400, nicht 300.** Die Eyebrows der übrigen Sektionen laufen
	   über Avadas Textelement und erben von dort 400; dieser hier steht als
	   eigenes Markup im Raster und fiel sonst auf die 300 des Fliesstexts
	   zurück (gemessen). Die Markerfläche kommt aus der gemeinsamen Regel
	   weiter oben («Eyebrow: roter Marker»). */
	font-weight: 400;
}
.rjr-team__kopf h2 {
	margin: 20px 0 24px !important;
}
/* Der Knopf «Offene Stellen» samt Anker `#jobs` ist am 09.09.2026 entfallen
   (Vorgabe Vincenzo; «Jobs» im Menü führt seither auf `#kontakt`). Seine
   Abstandsregeln am Wrapper sind mit ihm gegangen. */

.rjr-team__kopf p {
	margin: 0;
	color: var(--awb-color6);
	font-size: 17px;
	line-height: 1.7;
	/* Wie `.rjr-lead` in den Sektionen darüber — sonst 300 statt 400. */
	font-weight: 400;
}

/* --- Die Personenkarten ------------------------------------------------ */
.rjr-person {
	display: block;
}
.rjr-person__bild {
	position: relative;
	margin: 0 0 18px;
	border-radius: 28px;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--awb-color1);
}
.rjr-person__bild img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.rjr-person__bild svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

/* Das Kontaktband: sitzt am unteren Bildrand, fährt beim Überfahren herein.
   Rot statt des gelben Vorbilds; weisse Symbole darauf kommen auf 4.5:1. */
.rjr-person__kontakt {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 6px;
	border-radius: 12px;
	/* **Weisses Band, rote Symbole** (Vorgabe Vincenzo, 24.08.2026 —
	   zweite Runde: erst gedämpftes Rot, jetzt umgekehrt). Rot auf Weiss
	   kommt auf 4.50:1; als Bedienelement gilt 3:1, also mit Reserve.
	   Beim Überfahren eines einzelnen Symbols wird es schwarz (21:1) —
	   **ohne** zusätzliche Fläche darunter. */
	background: rgba(255, 255, 255, 0.95);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 350ms cubic-bezier(0.22, 0.61, 0.36, 1),
		transform 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.rjr-person:hover .rjr-person__kontakt,
.rjr-person:focus-within .rjr-person__kontakt {
	opacity: 1;
	transform: none;
}
/* 32px Trefferfläche: kleiner als zuvor (40px), liegt aber weiterhin über
   den 24px, die WCAG 2.2 als Mindestgrösse für Bedienelemente nennt. */
.rjr-person__kontakt a {
	position: relative;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 9px;
	color: var(--awb-color5);
	transition: color 180ms ease;
}
.rjr-person__kontakt a:hover,
.rjr-person__kontakt a:focus-visible {
	color: var(--awb-color8);
}

/* --- Tooltip über dem Symbol ------------------------------------------
   Eigene Beschriftung statt des eingebauten `title`: die erscheint sofort
   statt nach einer Sekunde und lässt sich gestalten. `aria-label` trägt
   weiterhin die ausführliche Fassung («E-Mail an rj@…»), der Tooltip die
   kurze — eine lange Zeile liefe aus dem Bild, das ja beschnitten ist. */
.rjr-person__kontakt a::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	padding: 6px 10px;
	border-radius: 8px;
	background: var(--awb-color7);
	color: var(--awb-color1);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease, transform 180ms ease;
	z-index: 2;
}
.rjr-person__kontakt a:hover::after,
.rjr-person__kontakt a:focus-visible::after {
	opacity: 1;
	transform: translateX(-50%);
}
@media (prefers-reduced-motion: reduce) {
	.rjr-person__kontakt a::after {
		transition: none;
	}
}
/* **Symbole aus Font Awesome** (Vorgabe Vincenzo, 24.08.2026):
   `fab fa-linkedin-in` und `far fa-envelope`. Beide Schriftschnitte lädt
   Avada ohnehin schon (Font Awesome 5 Free + Brands, am lebenden System
   nachgesehen) — es kommt also keine Anfrage dazu.

   **Das widerspricht der Regel «keine Icon-Schrift» nur scheinbar.** Sie
   steht im Design-System für die USP-Motive, die es in Font Awesome nicht
   gibt (Reihenklemmenblock, CNC-Spindel). LinkedIn und Briefumschlag gibt es
   dort — und zwar als die Zeichen, die jeder kennt.

   **Beide als Fläche** (Entscheid Vincenzo, 24.08.2026): Markenzeichen
   liegen in Font Awesome nur gefüllt vor, einen Umriss für LinkedIn gibt es
   dort nicht — deshalb steht auch der Briefumschlag auf `fas` statt `far`.
   Die selbst gezeichneten Umrisse liegen in
   `../03_GFX/02_Final/team-symbole/`, falls die Reihe doch einmal
   durchgehend Kontur sein soll. */
.rjr-person__kontakt i {
	font-size: 16px;
	line-height: 1;
}

/* **Wie die Titel der Projektkarten** (Vorgabe Vincenzo, 24.08.2026):
   20px, Gewicht 600, Laufweite −0.2px, Zeilenhöhe 26px — an
   `.rjr-projekt__titel` nachgemessen. Die Karten sind seit dem 10.10.2026
   weg, die Werte gelten hier weiter.

   **Klasse doppelt, und das ist keine Zierde:** Avadas globale
   `h3`-Auszeichnung ist spezifischer und zeichnet die Namen sonst mit 36px
   in Schwarz. Genau das ist beim Umbau der Symbole passiert, als die
   Verdoppelung versehentlich verloren ging. */
/* Name und Funktion stehen **12px eingerückt**, damit sie nicht auf der
   Bildkante kleben (Vorgabe Vincenzo, 24.08.2026). */
.rjr-person .rjr-person__name {
	margin: 0 0 4px !important;
	padding-left: 12px;
	font-size: 20px;
	font-weight: 600;
	line-height: 26px;
	letter-spacing: -0.2px;
	color: var(--awb-color7);
}
.rjr-person__funktion {
	margin: 0;
	padding-left: 12px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--awb-color6);
}

/* Wer Bewegung abbestellt hat oder kein Überfahren kennt, sieht das Band
   dauerhaft — sonst wären die Kontaktwege dort nicht erreichbar. */
@media (prefers-reduced-motion: reduce) {
	.rjr-person__kontakt {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
@media (hover: none) {
	.rjr-person__kontakt {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 1100px) {
	.rjr-team__raster {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px 20px;
	}
	/* Zwei Spalten: die Platzhalter fliessen wieder von links (3 Karten,
	   die letzte allein) — eine Rechtsbündigkeit ergäbe hier ein Loch oben. */
	.rjr-team__raster .rjr-person:nth-child(4) {
		grid-column: auto;
	}
	.rjr-team__kopf {
		grid-column: 1 / span 2;
		padding-right: 0;
	}
}
@media (max-width: 560px) {
	.rjr-team__raster {
		grid-template-columns: 1fr;
	}
	.rjr-team__kopf {
		grid-column: auto;
	}
}

/* =========================================================================
   SEKTION «INSTAGRAM» — 24.08.2026
   Nach «Über uns», weisser Grund. Kopfzeile aus Font-Awesome-Symbol und
   Schlagwort, darunter der Feed des Plugins «Instagram Feed» (Smash Balloon,
   Feed 1 «RJR Startseite», Konto rjr_elektrotechnik).

   Raster, Bildformat 4:5, Innenabstand 5px, 8 Beiträge auf dem Schirm und
   3 auf dem Telefon, Spalten 4 / 2 / 1, Kopf des Feeds aus, Farbschema
   «inherit» — alles steht in den **Feed-Einstellungen**, nicht hier. Wer es
   ändern will, tut das im Plugin, nicht im Stylesheet.

   Hier stehen nur Dinge, die das Plugin nicht kann: die Kopfzeile und die
   beiden Knöpfe im Stil der übrigen Sektions-Buttons.
   ====================================================================== */

.rjr-insta .fusion-builder-row {
	max-width: var(--rjr-inhaltsbreite);
}
/* **Das Plugin bringt unten 10px Eigenpolster mit** (`#sb_instagram
   { padding-bottom: 10px }`). Dadurch stand der Abstand Instagram → FAQ bei
   173px, während Über uns → Instagram 163px misst — beide Container tragen
   80px, der Unterschied kam allein von diesen 10px. Element zu Element
   gemessen, nicht Container zu Container: sichtbar ist der Weg von der
   Unterkante des letzten Inhalts bis zur ersten Zeile der nächsten Sektion.
   Ohne das Eigenpolster stimmen beide überein. */
.rjr-insta #sb_instagram {
	padding-bottom: 0 !important;
}

/* ── Kopfzeile: Symbol + Schlagwort ─────────────────────────────────── */
.rjr-insta__kopf {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 28px;
}
/* **Der Text ist ein Eyebrow wie die kleinen Titel der übrigen Sektionen**
   (Vorgabe Vincenzo, 24.08.2026). Grösse, Gewicht, Zeilenhöhe und Farbe
   kommen deshalb nicht von hier, sondern aus denselben Quellen wie dort:
   `typography2` am Textelement und der `fusion_highlight`-Marker im Inhalt
   (custom_color_2 bei 60 % über der Grundlinie, Text `color6`). Wer den
   Eyebrow-Stil ändert, ändert diese Zeile automatisch mit. */
.rjr-insta__kopf .fa-instagram {
	font-size: 20px;
	line-height: 1;
	color: var(--awb-color5);
}
/* Der Marker ist ein Verlauf auf dem `<mark>`; als Flexkind wäre er so hoch
   wie die Zeile, damit läge die Markerkante anders als im Fliesstext.
   `align-self: baseline` hält ihn auf der Textgrundlinie wie überall sonst. */
.rjr-insta__kopf mark {
	align-self: center;
}

/* ── Bildkacheln abrunden ───────────────────────────────────────────────
   Vorgabe Vincenzo, 24.08.2026. **28px** ist der Radius der übrigen
   Bildkacheln der Seite — nachgezählt: Projektkarten, Personenbilder und
   der Banner tragen ihn neunmal, die Leistungsbilder 18px. Das Plugin
   selbst kennt keine Einstellung dafür.
   `overflow: hidden` steht am Wrapper, weil das Bild als Hintergrund im
   `a.sbi_photo` liegt und der Radius sonst an der Bildkante vorbeigeht. */
.rjr-insta #sb_instagram #sbi_images .sbi_item .sbi_photo_wrap,
.rjr-insta #sb_instagram #sbi_images .sbi_item .sbi_photo,
.rjr-insta #sb_instagram #sbi_images .sbi_item .sbi_photo img {
	border-radius: 28px;
	overflow: hidden;
}

/* ── Die zwei Knöpfe unter dem Raster ───────────────────────────────────
   Werte 1:1 vom Sektions-Button «Projektliste anfragen»: 23/36px Polster,
   17px/600, Pillenform, Ring beim Überfahren.

   **Zwei Eigenheiten des Plugins, beide gemessen und nicht geraten:**

   1. Es stylt seine Knöpfe über `#sb_instagram #sbi_load .sbi_load_btn` —
      **zwei IDs**. Dagegen kommt `#sbi_load .sbi_load_btn` nicht an: der
      erste Versuch übernahm nur den Ring (den das Plugin nicht setzt),
      während Polster, Radius und Schriftgrad beim Plugin blieben (gemessen:
      4px Radius, 7/14px Polster, 13px Schrift). Deshalb tragen die Regeln
      hier dieselben zwei IDs plus die Sektionsklasse.
   2. Die Farbe des Folge-Knopfes setzt das Plugin **inline** aus den
      Feed-Einstellungen — sie steht deshalb dort auf `#E52825`, nicht hier.
      Für Hover und Fokus braucht es `!important`, sonst gewinnt der
      Inline-Stil. Das Plugin malt beim Fokus zudem einen hellen Inset-
      Schatten quer über den Knopf; er wird hier durch unseren Ring ersetzt. */
#sbi_load {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
	padding: 0;
}
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn,
.rjr-insta #sb_instagram .sbi_follow_btn a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	/* **Höhe statt Polster.** Der «Mehr laden»-Knopf ist ein `<button>`; seine
	   Zeilenbox ist 20px hoch statt 17, dadurch stand er mit 23px Polster auf
	   66px, der Folge-Knopf daneben auf 63px — nebeneinander sichtbar. Beide
	   stehen deshalb auf der **gemessenen Höhe des Sektions-Buttons
	   «Projektliste anfragen»: 63px**, das Polster wirkt nur noch seitlich. */
	height: 63px;
	padding: 0 36px;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	background-color: var(--awb-color5);
	color: var(--awb-color1);
	font-family: inherit;
	font-size: 17px;
	font-weight: 600;
	line-height: 1;
	text-transform: none;
	box-shadow: inset 0 0 0 2px var(--awb-color5);
	transition: box-shadow 0.2s, background-color 0.2s;
}
/* **Hover wie beim Knopf «Offene Stellen»:** Füllung 9 Prozentpunkte
   dunkler, Ring bleibt stehen. Das Plugin malt beim Überfahren einen
   eigenen Inset-Schatten über die ganze Fläche
   (`box-shadow: … 0 0 20px 20px inset`, aus `buttonhovercolor`) — der
   übermalte unseren Ring. Deshalb wird er hier erneut gesetzt.
   Die Unterstreichung kommt von Avadas Link-Hover und muss beim
   Folge-Knopf ausdrücklich weg. */
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn:hover,
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn:focus-visible,
.rjr-insta #sb_instagram .sbi_follow_btn a:hover,
.rjr-insta #sb_instagram .sbi_follow_btn a:focus-visible {
	background-color:
		hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a)) !important;
	color: var(--awb-color1);
	box-shadow: inset 0 0 0 2px var(--awb-color5) !important;
	text-decoration: none !important;
}
.rjr-insta #sb_instagram .sbi_follow_btn a,
.rjr-insta #sb_instagram .sbi_follow_btn a:hover,
.rjr-insta #sb_instagram .sbi_follow_btn a:focus,
.rjr-insta #sb_instagram .sbi_follow_btn a:active,
.rjr-insta #sb_instagram .sbi_follow_btn a span {
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.rjr-insta #sb_instagram .sbi_follow_btn {
	margin: 0;
}
/* Der helle Inset-Schatten des Plugins bei Fokus und Klick — ersetzt durch
   unseren Ring, sonst blitzt der Knopf beim Antippen weiss auf. */
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn:focus,
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn:active,
.rjr-insta #sb_instagram .sbi_follow_btn a:focus,
.rjr-insta #sb_instagram .sbi_follow_btn a:active {
	box-shadow: inset 0 0 0 2px var(--awb-color5) !important;
	outline: none;
}
.rjr-insta #sb_instagram .sbi_follow_btn a svg,
.rjr-insta #sb_instagram .sbi_follow_btn a .fa-instagram {
	width: 17px;
	height: 17px;
}
/* **Der Ladepunkt gehört aus dem Textfluss heraus.** Er ist ein eigenes
   Kind des Knopfes; im Flexfluss schob er die Beschriftung nach links —
   gemessen 28px Luft links gegen 58px rechts, obwohl beide Seiten 36px
   Polster haben. Absolut gesetzt sitzt er über der Mitte und die Schrift
   steht mittig. `gap: 0`, weil sonst der Abstand zum Null-Pixel-Element
   bliebe. */
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn {
	gap: 0;
	/* `<button>` bringt `cursor: default` mit — der Zeiger blieb ein Pfeil,
	   während der Folge-Knopf daneben als Link die Hand zeigte (gemessen
	   `default` gegen `pointer`). Auch am Beschriftungs-Span, sonst gilt
	   die Hand nur neben der Schrift. */
	cursor: pointer;
}
.rjr-insta #sb_instagram #sbi_load .sbi_load_btn * {
	cursor: pointer;
}
.rjr-insta #sb_instagram #sbi_load .sbi_loader {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	margin: 0;
}

@media (max-width: 900px) {
	.rjr-insta #sb_instagram #sbi_load .sbi_load_btn,
	.rjr-insta #sb_instagram .sbi_follow_btn a {
		height: 54px;
		padding: 0 28px;
		font-size: 16px;
	}
	.rjr-insta__kopf {
		margin-bottom: 20px;
	}
}

/* =========================================================================
   SEKTION «FAQ» — 24.08.2026
   Nach Instagram, weisser Grund. Links der Textblock (40 %), rechts das
   Akkordeon (60 %) — **nebeneinander, nicht übereinander** (Vorgabe
   Vincenzo).

   **Karten, Titelzeile und Umschalter kommen aus denselben Regeln wie das
   Leistungs-Akkordeon** (Abschnitt «Sektion Leistungen» weiter oben) —
   Radius 28px, derselbe Schatten, dieselbe Titelgrösse, derselbe runde
   Umschalter mit dem Plus, das sich beim Öffnen zum Kreuz dreht. Hier
   stehen nur die **Unterschiede**: die Fläche ist grau statt weiss (Vorgabe
   Vincenzo), und es gibt keine Nummer.

   **Spezifität:** Avada erzeugt je Akkordeon eine Instanz-Regel
   `.fusion-accordian .fusion-panel.fusion-toggle-no-divider.fusion-toggle-boxed-mode .panel-title a`
   — fünf Klassen und ein Element **(0,5,1)** — und lädt sie nach dem
   Child-Theme. Eine verdoppelte eigene Klasse kommt auf dieselbe Zahl und
   verliert bei Gleichstand. Deshalb die sechste Klasse
   (`.fusion-panel.fusion-panel`) in jeder FAQ-Kette.
   ====================================================================== */

.rjr-faq .fusion-builder-row {
	max-width: var(--rjr-inhaltsbreite);
	align-items: flex-start;
}
.rjr-faq .rjr-faq__text {
	padding-right: 40px;
}
/* 40ch statt 34ch: Bei 34 stand der Firmenname allein auf der zweiten
   Zeile. Die Spalte ist 552px breit, 40ch sind darin knapp 460px — der
   Text bleibt lesbar schmal und bricht besser um. */
.rjr-faq .rjr-lead {
	max-width: 40ch;
}
/* Zwei Absätze statt eines — der zweite trägt den Anruf-Hinweis. */
.rjr-faq .rjr-lead p + p {
	margin-top: 16px;
	margin-bottom: 0;
}
/* Die Linie unter dem Telefonlink ist ein `border-bottom`, **keine**
   Textunterstreichung — beim Überfahren legt Avada seine eigene
   `text-decoration: underline` darüber, und es standen zwei Striche
   untereinander. Deshalb ist sie hier in jedem Zustand ausdrücklich aus.
   Die Hover-Farbe ist dieselbe wie bei den Buttons: `color5` um
   9 Prozentpunkte abgedunkelt (`rgb(196,26,23)`). */
.rjr-faq .rjr-lead a,
.rjr-faq .rjr-lead a:hover,
.rjr-faq .rjr-lead a:focus,
.rjr-faq .rjr-lead a:active {
	text-decoration: none !important;
}
.rjr-faq .rjr-lead a {
	color: var(--awb-color5);
	border-bottom: 1px solid currentColor;
	transition: color 0.2s;
}
.rjr-faq .rjr-lead a:hover,
.rjr-faq .rjr-lead a:focus-visible {
	color: hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a));
}

/* Der einzige Unterschied zur Leistungskarte: die Fläche. Vincenzo wollte
   das Grau behalten, den Schatten aber dazu. */
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel {
	background: var(--awb-color2);
}

/* **Die Fragen stehen auf Gewicht 500, die Leistungen bleiben auf 600**
   (Vorgabe Vincenzo, 24.08.2026). Das ist die **einzige** typografische
   Abweichung zwischen den beiden Akkordeons — bewusst gesetzt, nicht
   vergessen. Wer sie aufheben will, löscht diese Regel; wer sie auch bei
   den Leistungen will, ändert den Wert in der gemeinsamen Regel.
   Sechs Klassen, weil die gemeinsame Regel dieselbe Zahl trägt. */
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .fusion-toggle-heading {
	font-weight: 500;
}

/* Die Antwort: Fliesstext wie im Rest der Seite. */
.rjr-faq .rjr-faq__liste.rjr-faq__liste .fusion-panel.fusion-panel .panel-body p {
	margin: 0;
	max-width: 62ch;
	font-size: 17px;
	line-height: 1.7;
	color: var(--awb-color6);
}
/* Solange die Antworten fehlen, bleibt der Platzhalter als solcher
   erkennbar — damit er nicht versehentlich online geht. */
.rjr-faq__platzhalter strong {
	color: var(--awb-color5);
}

@media (max-width: 1000px) {
	.rjr-faq .rjr-faq__text {
		padding-right: 0;
		margin-bottom: 32px;
	}
	.rjr-faq .rjr-lead {
		max-width: none;
	}
}

/* =========================================================================
   SEKTION «KONTAKT» — 25.08.2026
   Letzte Sektion vor dem Fuss, Anker `#kontakt` (Menüpunkt 4243). Grund
   **hellgrau** (`color2`) — die erste graue Sektionsfläche seit der
   Einleitung; sie hebt das weisse Formular heraus, ohne eine neue Farbe
   einzuführen.

   Aufbau: links Text und Firmendaten (2_5), rechts das Formular als weisse
   Karte (3_5), darunter über die ganze Breite der Knopf «Route auf Google
   Maps» und die Karte.

   **Die weisse Karte trägt dieselben Werte wie die Akkordeon-Karten** —
   Radius 28px und derselbe zweistufige Schatten (Abschnitt «Sektion
   Leistungen»). Wer dort etwas ändert, sollte hier mitziehen; die Werte
   stehen bewusst ausgeschrieben und nicht als gemeinsame Regel, weil eine
   Formularkarte kein Akkordeon ist und beide getrennt wachsen dürfen.

   **Formularfelder: Radius 16px** (`md` der Skala in `02_DESIGN-SYSTEM.md`,
   Abschnitt 3a). Die Demo stand auf 10px, die Skala sah 8px für Felder vor
   — beides wirkt neben den 28px der Karte und den Pillen-Buttons zu hart.
   Damit ist Punkt 76 für Formularfelder beantwortet, für Karten und
   Bildflächen weiterhin offen.

   **Spezifität:** Avada und Contact Form 7 stylen Formularfelder beide mit
   mehreren Klassen und laden nach dem Child-Theme. Deshalb steht in jeder
   Feldregel die Kette `.rjr-kontakt .rjr-formular.rjr-formular` — vier
   Klassen, und die Eigenschaften, die Avada mit `!important` setzt
   (Rahmen, Fläche, Höhe), tragen es hier ebenfalls.
   ====================================================================== */

/* --- Die Kachel: Hero-Breite, Inhalt auf dem Raster --------------------
   **Nicht über die volle Fensterbreite** (Vorgabe Vincenzo, 25.08.2026:
   «gleich wie oben Über uns»). Derselbe Griff wie bei «Leistungen» und
   «Über uns»: Der Container ragt 30px aus dem Inhaltsbereich heraus, der
   negative Aussenabstand holt ihn auf die 20px Fensterrand zurück, 10px
   Innenabstand bringen den Inhalt auf dieselbe Kante wie in jeder anderen
   Sektion. Radius 20px wie dort. */
.rjr-kontakt.fusion-fullwidth {
	width: auto;
	max-width: none;
	margin-left: calc(var(--rjr-randaussen) - 30px) !important;
	margin-right: calc(var(--rjr-randaussen) - 30px) !important;
	background-color: var(--awb-color2);
	border-radius: 20px;
	padding: 80px 20px !important;
}
/* **Hier stand bis zum 02.09.2026 ein Zurückholen des Kachelpolsters**
   (`width: calc(100% + 20px)`, Aussenrand −10px). Es ist entfallen: seit
   «Das Raster» am Ende der Datei zieht keine Zeile mehr heraus — die Kante
   macht allein der Innenabstand der Sektion. */
.rjr-kontakt .fusion-builder-row {
	align-items: flex-start;
}
/* --- Der Kopf steht über beiden Spalten --------------------------------
   Eyebrow, Titel und Lead liefen zuerst in der linken Spalte mit (wie im
   FAQ). Seit dem 25.08.2026 stehen sie **über** Anschrift und Formular —
   wie in «Leistungen» und «Projekte» (Vorgabe Vincenzo). Die Abstände sind
   dieselben wie dort: 20px unter dem Eyebrow, 24px unter dem Titel.

   **Der Lead läuft über die volle Breite** (Vorgabe Vincenzo, 25.08.2026)
   — wie in «Leistungen» und «Projekte». Eine Zwischenfassung hatte ihn auf
   72ch (gemessene 700px) begrenzt, weil eine Zeile über die vollen 1340px
   bei rund 140 Zeichen liegt; Vincenzo hat sich für die volle Breite
   entschieden. Wer die Begrenzung je zurückholen will: eine Regel
   `.rjr-kontakt .rjr-kontakt__kopf .rjr-lead { max-width: 72ch }`. */
.rjr-kontakt .rjr-kontakt__kopf {
	margin-bottom: 40px;
}
/* Der Bewerbungshinweis im Lead beginnt auf einer eigenen Zeile — als `<br>`
   im selben Absatz, **ohne** Absatzabstand (Vorgabe Vincenzo, 09.09.2026,
   nach einer Zwischenfassung mit zwei Absätzen und 20px Luft). Braucht keine
   Regel. */
.rjr-kontakt .rjr-kontakt__text {
	padding-right: 40px;
}


/* --- Firmendaten: Symbol, Bezeichnung, Wert ---------------------------
   Drei Blöcke — Anschrift, Kontakt, Bürozeiten. Die Symbole sitzen in
   weissen Kreisen: auf grauem Grund ist das der einzige Weg, sie ohne
   zusätzliche Farbe abzusetzen. Symbole aus Font Awesome 5 Free, das
   Avada ohnehin lädt (`fas`), keine eigene Datei. */
/* **Der obere Abstand ist derselbe Wert wie das Polster der Formularkarte**
   (Vorgabe Vincenzo, 25.08.2026: «Anschrift ein wenig nach unten»). Damit
   steht «ANSCHRIFT» auf derselben Höhe wie die erste Feldbeschriftung im
   Formular und nicht auf der Kante der Karte — und zwar auf **jeder**
   Fensterbreite, weil beide dieselbe `clamp()`-Formel tragen. Wer das
   Kartenpolster ändert, ändert diesen Wert mit. */
.rjr-kontakt .rjr-kontakt__daten {
	list-style: none;
	margin: clamp(24px, 2.6vw, 40px) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.rjr-kontakt .rjr-kontakt__daten li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
	padding: 0;
}
.rjr-kontakt .rjr-kontakt__symbol {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: var(--awb-color1);
	color: var(--awb-color5);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	box-shadow: 0 1px 2px rgba(14, 14, 17, 0.05), 0 12px 32px -14px rgba(14, 14, 17, 0.12);
}
/* **Der Textblock nimmt den Platz, der neben dem Symbol übrig ist.** Ohne
   `flex: 1` misst er sich am Inhalt: auf dem Telefon standen die Bürozeiten
   dadurch in einem 202px schmalen Kasten, obwohl 236px zur Verfügung waren,
   und «07:00 – 12:00 · 13:00 – 16:00» brach unnötig um. `min-width: 0` gehört
   dazu — ohne die Angabe lässt ein Flex-Kind sich nicht unter seine
   Inhaltsbreite drücken und schiebt stattdessen über den Rand. */
.rjr-kontakt .rjr-kontakt__inhalt {
	flex: 1 1 auto;
	min-width: 0;
	padding-top: 2px;
}
.rjr-kontakt .rjr-kontakt__titel {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--awb-color6);
}
.rjr-kontakt .rjr-kontakt__adresse {
	margin: 0;
	font-size: 17px;
	line-height: 1.7;
	color: var(--awb-color7);
}
/* Zwei Spalten: Bezeichnung links, Wert rechts. Dasselbe Raster für
   Telefon/Mobil/E-Mail und für die Bürozeiten — damit stehen die Werte
   beider Blöcke auf derselben Kante.

   **Die Wertspalte hat eine Mindestbreite** (Vorgabe Vincenzo, 02.09.2026:
   «sieht nicht bündig aus»). Ohne sie nimmt sich die Bezeichnung, was sie
   braucht, und lässt dem Wert den Rest: im Block «Bürozeiten» zog «Montag –
   Donnerstag» die linke Spalte auf 145px und drückte die Zeiten auf **102px**
   — «07:00 – 12:00 · 13:00 – 16:00» brach dort in **vier** Zeilen um.
   Am 02.09.2026 bei 1024px gemessen. Mit 180px Mindestbreite bricht statt der
   Zeit die Bezeichnung um, und das ist die richtige Reihenfolge: die Zeit ist
   die Angabe, die Bezeichnung nur ihr Etikett. */
.rjr-kontakt .rjr-kontakt__paare {
	display: grid;
	grid-template-columns: auto minmax(180px, 1fr);
	column-gap: 20px;
	row-gap: 6px;
	align-items: baseline;
}

/* **Auf Telefon und Tablet steht die Bezeichnung über dem Wert** (Vorgabe
   Vincenzo, 02.09.2026). Nebeneinander bleibt für den Wert dort zu wenig
   übrig — bei 390px waren es 132px, und die E-Mail-Adresse zerfiel in zwei
   Zeilen. Untereinander hat jede Angabe die volle Breite, und alle Zeilen
   beginnen auf **einer** Kante; genau das hat gefehlt.

   **Die Grenze liegt bei 1399px** — dieselbe wie beim Zurückholen der
   Sektionen in ihren Kasten (Abschnitt «Tablet» am Ende der Datei). Zuerst
   stand sie auf 1024px, dann auf 1300px; ein iPad Pro quer misst **1366** und
   fiel beide Male durch das Raster. Vorgabe Vincenzo, 02.09.2026: auf dem
   Tablet genauso untereinander wie auf dem Telefon. */
@media (max-width: 1399px) {
	.rjr-kontakt .rjr-kontakt__paare {
		grid-template-columns: 1fr;
		row-gap: 0;
	}
	.rjr-kontakt .rjr-kontakt__schluessel {
		margin-top: 10px;
	}
	.rjr-kontakt .rjr-kontakt__paare > .rjr-kontakt__schluessel:first-child {
		margin-top: 0;
	}
	/* **Die 40px Abstand zur Formularspalte fallen weg**, sobald die Spalten
	   untereinander stehen — dort trennt sie nichts mehr, und auf dem Telefon
	   sind es 40 von 236 verfügbaren Pixeln. Mit ihnen standen die Bürozeiten
	   in zwei Zeilen, ohne sie in einer. */
	.rjr-kontakt .rjr-kontakt__text {
		padding-right: 0;
	}
}
.rjr-kontakt .rjr-kontakt__schluessel {
	font-size: 15px;
	color: var(--awb-color6);
}
/* **Eine Zeitspanne bricht nicht in der Mitte.** Geschützte Leerzeichen um
   den Gedankenstrich reichen dafür **nicht**: Browser dürfen nach einem
   Gedankenstrich auch ohne Leerzeichen umbrechen (Unicode-Zeilenumbruchregeln,
   Klasse B2). Auf dem Telefon stand deshalb «07:00 – 12:00 · 13:00 –» in der
   ersten und «16:00» allein in der zweiten Zeile. Mit dieser Klasse um jede
   Spanne bleibt als Umbruchstelle nur das Trennzeichen dazwischen. */
.rjr-nowrap {
	white-space: nowrap;
}

.rjr-kontakt .rjr-kontakt__wert {
	font-size: 17px;
	line-height: 1.6;
	color: var(--awb-color7);
}
/* Wie im FAQ: Avada legt beim Überfahren eine eigene `text-decoration`
   über den Link — deshalb in jedem Zustand ausdrücklich aus. */
.rjr-kontakt .rjr-kontakt__wert a,
.rjr-kontakt .rjr-kontakt__wert a:hover,
.rjr-kontakt .rjr-kontakt__wert a:focus,
.rjr-kontakt .rjr-kontakt__wert a:active {
	text-decoration: none !important;
}
.rjr-kontakt .rjr-kontakt__wert a {
	color: var(--awb-color7);
	transition: color 0.2s;
}
.rjr-kontakt .rjr-kontakt__wert a:hover,
.rjr-kontakt .rjr-kontakt__wert a:focus-visible {
	color: var(--awb-color5);
}

/* --- Die weisse Formularkarte ----------------------------------------- */
.rjr-kontakt .rjr-kontakt__formularkarte {
	background: var(--awb-color1);
	border-radius: 28px;
	box-shadow: 0 1px 2px rgba(14, 14, 17, 0.05), 0 12px 32px -14px rgba(14, 14, 17, 0.12);
	padding: clamp(24px, 2.6vw, 40px);
}
/* Contact Form 7 setzt am Formular einen Aussenabstand, der die Karte
   unten aufreisst. */
.rjr-kontakt .wpcf7 form,
.rjr-kontakt .wpcf7-form {
	margin: 0;
}

/* --- Felder ------------------------------------------------------------ */
.rjr-kontakt .rjr-formular__reihe {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 24px;
}
.rjr-kontakt .rjr-formular .rjr-formular__feld {
	margin: 0 0 20px;
}
.rjr-kontakt .rjr-formular .rjr-formular__reihe .rjr-formular__feld {
	margin-bottom: 20px;
}
/* Sicherheitsnetz: Contact Form 7 schickt den Formularrumpf durch `wpautop`
   und macht aus jedem Zeilenumbruch ein `<br>`. Stünde die Beschriftung im
   Formular je wieder auf einer eigenen Zeile, klaffte zwischen ihr und dem
   Feld erneut eine Leerzeile (gemessen: 37px statt 8px). */
.rjr-kontakt .rjr-formular__feld br,
.rjr-kontakt .rjr-formular__zustimmung br,
.rjr-kontakt .rjr-formular__aktion br {
	display: none;
}
.rjr-kontakt .rjr-formular label {
	display: block;
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--awb-color7);
}
.rjr-kontakt .rjr-formular__pflicht {
	color: var(--awb-color5);
}
.rjr-kontakt .rjr-formular .wpcf7-form-control-wrap {
	display: block;
}
.rjr-kontakt .rjr-formular.rjr-formular input[type="text"],
.rjr-kontakt .rjr-formular.rjr-formular input[type="email"],
.rjr-kontakt .rjr-formular.rjr-formular input[type="tel"],
.rjr-kontakt .rjr-formular.rjr-formular select,
.rjr-kontakt .rjr-formular.rjr-formular textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: auto !important;
	padding: 16px 20px !important;
	font-family: inherit;
	font-size: 17px !important;
	line-height: 1.5;
	color: var(--awb-color7) !important;
	/* **Hellgrau statt weiss** (Vorgabe Vincenzo, 25.08.2026). `color2` ist
	   dieselbe Fläche wie die Sektionskachel — die Felder heben sich damit
	   von der weissen Karte ab, ohne dass eine neue Farbe dazukommt. */
	background-color: var(--awb-color2) !important;
	background-image: none;
	/* **Kein sichtbarer Rahmen** (Vorgabe Vincenzo, 25.08.2026) — die graue
	   Fläche trägt die Feldform allein. Der Rahmen bleibt als **transparente**
	   Linie stehen statt auf `0` zu gehen: So bleibt die Geometrie unangetastet
	   (Höhe 60px, Textkante 20px), und der Fokus muss nur die Farbe setzen
	   statt einen Rahmen entstehen zu lassen — sonst sprängen die Felder beim
	   Anklicken um 2px. */
	border: 1px solid transparent !important;
	border-radius: 16px !important;
	box-shadow: none !important;
	transition: border-color 0.2s, box-shadow 0.2s;
	-webkit-appearance: none;
	appearance: none;
}
.rjr-kontakt .rjr-formular.rjr-formular textarea {
	min-height: 168px;
	resize: vertical;
	display: block;
}
/* Eigener Winkel, weil `appearance: none` den des Systems entfernt.
   Anthrazit als Datei-URI — kein zusätzlicher Netzwerkaufruf. */
.rjr-kontakt .rjr-formular.rjr-formular select {
	padding-right: 52px !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%231F1F1F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 20px center;
	cursor: pointer;
}
/* **Avada legt über jedes `select` einen eigenen Pfeil** — CF7s Feld landet
   in `<div class="wpcf7-select-parent">`, daneben ein `<div class="select-arrow">`
   mit eigener Fläche und Trennlinie. Das sass über der rechten Ecke des Feldes
   und riss dort den Rahmen auf (beanstandet von Vincenzo, 25.08.2026). Weil
   der Winkel dieses Feldes ohnehin als Hintergrundbild gezeichnet wird, ist
   Avadas Pfeil hier abgeschaltet. */
.rjr-kontakt .rjr-formular .wpcf7-select-parent {
	display: block;
	position: relative;
	background: none;
	border: 0;
}
.rjr-kontakt .rjr-formular .wpcf7-select-parent .select-arrow {
	display: none;
}
.rjr-kontakt .rjr-formular.rjr-formular ::placeholder {
	color: var(--awb-color3);
	opacity: 1;
}
/* **Der Fokus ist Pflicht, nicht Zierde** (Vorgabe Vincenzo, 25.08.2026):
   roter Rahmen plus weicher Ring in derselben Farbe bei 18 % Deckung. Der
   Ring liegt als `box-shadow` aussen an und verschiebt nichts.

   **Seit die Felder im Ruhezustand keinen sichtbaren Rahmen mehr tragen, ist
   das hier die einzige Rückmeldung beim Anklicken** — deshalb ist der Ring
   auf 4px verstärkt. Weniger wäre auf grauer Fläche zu leise. */
.rjr-kontakt .rjr-formular.rjr-formular input[type="text"]:focus,
.rjr-kontakt .rjr-formular.rjr-formular input[type="email"]:focus,
.rjr-kontakt .rjr-formular.rjr-formular input[type="tel"]:focus,
.rjr-kontakt .rjr-formular.rjr-formular select:focus,
.rjr-kontakt .rjr-formular.rjr-formular textarea:focus {
	outline: none;
	border-color: var(--awb-color5) !important;
	box-shadow: 0 0 0 4px hsla(var(--awb-color5-h), var(--awb-color5-s), var(--awb-color5-l), 0.18) !important;
}
.rjr-kontakt .rjr-formular__hinweis {
	display: block;
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--awb-color6);
}

/* --- Zustimmung -------------------------------------------------------- */
.rjr-kontakt .rjr-formular .rjr-formular__zustimmung {
	margin: 4px 0 24px;
}
.rjr-kontakt .rjr-formular__zustimmung .wpcf7-list-item {
	margin: 0;
}
.rjr-kontakt .rjr-formular__zustimmung label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--awb-color7);
	cursor: pointer;
}
.rjr-kontakt .rjr-formular.rjr-formular input[type="checkbox"] {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	margin: 3px 0 0;
	/* **Das Kästchen behält seinen Rahmen**, anders als die Felder. Es ist
	   22px klein und liegt auf der weissen Karte; ohne Linie bliebe ein
	   blasses graues Quadrat, das man übersieht — und es ist ein Pflichtfeld. */
	border: 1px solid var(--awb-color3) !important;
	border-radius: 6px;
	/* Dasselbe Grau wie die Felder — ein Bedienelement, eine Fläche. */
	background-color: var(--awb-color2) !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 13px 10px;
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
	-webkit-appearance: none;
	appearance: none;
}
.rjr-kontakt .rjr-formular.rjr-formular input[type="checkbox"]:checked {
	background-color: var(--awb-color5) !important;
	border-color: var(--awb-color5) !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='10' viewBox='0 0 13 10'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3.6 3.6L12 1.2'/%3E%3C/svg%3E");
}
.rjr-kontakt .rjr-formular.rjr-formular input[type="checkbox"]:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px hsla(var(--awb-color5-h), var(--awb-color5-s), var(--awb-color5-l), 0.18);
}

/* --- Der Absendeknopf -------------------------------------------------
   **Gleiche Werte wie «Offene Stellen»** — am gerenderten Knopf gemessen:
   Polster 23/36px, Radius 999px, Open Sans 17px/600, Zeilenhöhe 17px,
   Fläche `color5`, 2px Ring innen, beim Überfahren 9 Prozentpunkte
   dunkler. Der Unterschied: dort ist es ein `<a>`, hier ein `<input>` —
   ein `<input>` kann kein Symbol enthalten. Der Pfeil steht deshalb als
   eigenes `<i>` daneben und wird über den Knopf gelegt; rechts hält
   `padding-right` den Platz frei (36 + 17 Symbol + 12 Abstand = 65px).
   Es ist derselbe Glyph wie an allen anderen Knöpfen
   (`awb-recruitment-arrow-btn`), damit die Seite ein Pfeilbild hat. */
.rjr-kontakt .rjr-formular .rjr-formular__aktion {
	position: relative;
	display: inline-block;
	margin: 0;
}
.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden {
	display: block;
	padding: 23px 65px 23px 36px !important;
	font-family: inherit;
	font-size: 17px !important;
	font-weight: 600;
	line-height: 17px;
	color: var(--awb-color1) !important;
	background-color: var(--awb-color5) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: inset 0 0 0 2px var(--awb-color5) !important;
	cursor: pointer;
	transition:
		background-color 0.2s,
		box-shadow 0.2s,
		padding 0.4s cubic-bezier(0.21, 0.6, 0.35, 1) 0.125s;
	-webkit-appearance: none;
	appearance: none;
}
.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:hover,
.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:focus-visible {
	background-color:
		hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a)) !important;
	/* Die Summe der Polster bleibt 101px — der Knopf behält seine Breite auf
	   den Pixel genau, die Beschriftung rückt um 29px nach rechts und macht
	   links Platz für den zweiten Pfeil. Siehe Kommentar unten. */
	padding-left: 65px !important;
	padding-right: 36px !important;
}
/* **Der Rollover ist Avadas `icon_position`, nachgebaut.** Am Vorbild
   «Offene Stellen» ausgelesen (`[data-hover=icon_position].awb-b-icon-pos-right`
   im Sammel-Stylesheet), Wert für Wert:

     Beschriftung   rückt 1.7em nach rechts, 0.4s, 125ms später los
     Pfeil rechts   wandert 1em hinaus und blendet aus, ohne Verzögerung
     Pfeil links    kommt aus −1em herein und blendet ein, 250ms später

   Beim Vorbild sind Beschriftung und Pfeile eigene Elemente im `<a>`. Ein
   `<input>` hat kein Inneres — deshalb zwei Kniffe:

   **1. Die Beschriftung wandert über das Polster** (36/65px → 65/36px).
   1.7em sind bei 17px genau 28.9px; 29px Polsterwechsel treffen das.

   **2. Es gibt zwei Pfeile**, wie beim Vorbild: einer rechts für die Ruhe,
   einer links für den Rollover. Beide liegen absolut über dem Knopf und
   nehmen keinen Platz weg — den hält das Polster frei.

   Die Zeitkurve ist Avadas eigene: `cubic-bezier(.21, .6, .35, 1)`. */
.rjr-kontakt .rjr-formular__pfeil {
	position: absolute;
	top: 50%;
	margin-top: -8.5px;          /* halbe Zeilenhöhe des Symbols (17px) */
	font-size: 17px;
	line-height: 1;
	color: var(--awb-color1);
	pointer-events: none;
	transition:
		opacity 0.4s cubic-bezier(0.21, 0.6, 0.35, 1) 0.25s,
		transform 0.4s cubic-bezier(0.21, 0.6, 0.35, 1) 0.25s;
}
.rjr-kontakt .rjr-formular__pfeil--ruhe {
	right: 36px;
}
.rjr-kontakt .rjr-formular__pfeil--hover {
	left: 36px;
	opacity: 0;
	transform: translateX(-1em);
	transition-delay: 0s;
}
.rjr-kontakt .rjr-formular__aktion:hover .rjr-formular__pfeil--ruhe {
	opacity: 0;
	transform: translateX(1em);
	transition-delay: 0s;
}
.rjr-kontakt .rjr-formular__aktion:hover .rjr-formular__pfeil--hover {
	opacity: 1;
	transform: translateX(0);
	transition-delay: 0.25s;
}
/* CF7 hängt hinter den Knopf einen Ladepunkt mit 24px Aussenabstand je
   Seite — sichtbar wird er erst beim Senden, Platz braucht er sofort. */
.rjr-kontakt .rjr-formular .wpcf7-spinner {
	margin: 0 0 0 16px;
}
/* **Der Knopf ist nur noch während des Sendens gesperrt.** Vorher sperrte
   ihn Contact Form 7 auch, solange das Häkchen zur Datenschutzerklärung
   fehlte — er stand damit die meiste Zeit blass auf der Seite und sah anders
   aus als alle anderen Knöpfe (beanstandet von Vincenzo, 25.08.2026). Der
   Filter `wpcf7_acceptance_as_validation` in der `functions.php` macht daraus
   eine gewöhnliche Pflichtfeldprüfung. Das kurze Abblenden beim Senden bleibt
   — dort ist es Rückmeldung, kein Dauerzustand. */
.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:disabled {
	opacity: 0.75;
	cursor: default;
}
/* **Turnstile steht neben dem Knopf** (Vorgabe Vincenzo, 30.10.2026). Ohne
   Formular-Tag `[turnstile]` setzt Contact Form 7 das Feld zuoberst ins
   Formular. Reicht der Platz nicht, rückt es dank `wrap-reverse` **über** den
   Knopf: erst die Prüfung, dann das Senden, die Meldung bleibt direkt darunter. */
.rjr-kontakt .rjr-formular .rjr-formular__abschluss {
	display: flex;
	flex-wrap: wrap-reverse;
	align-items: center;
	gap: 16px 24px;
}
/* Sonst misst das Feld 73 statt 65px und sitzt 4px über der Knopfmitte. */
.rjr-kontakt .rjr-formular .cf-turnstile {
	line-height: 0;
}

/* --- Meldungen von Contact Form 7 -------------------------------------- */
.rjr-kontakt .wpcf7 .wpcf7-not-valid-tip {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--awb-color5);
}
.rjr-kontakt .rjr-formular.rjr-formular .wpcf7-not-valid {
	border-color: var(--awb-color5) !important;
}
.rjr-kontakt .wpcf7 .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 16px 20px;
	font-size: 16px;
	line-height: 1.6;
	border: 1px solid var(--awb-color3);
	border-radius: 16px;
	color: var(--awb-color7);
}
.rjr-kontakt .wpcf7 form.invalid .wpcf7-response-output,
.rjr-kontakt .wpcf7 form.unaccepted .wpcf7-response-output,
.rjr-kontakt .wpcf7 form.failed .wpcf7-response-output {
	border-color: var(--awb-color5);
}

/* --- Knopf und Karte ---------------------------------------------------
   Der Abstand steht an der Karte, nicht am Knopf: Avada gibt dem Button
   in einer Spalte ein `<div>` **ohne Klasse** mit (kein
   `fusion-button-wrapper`) — daran lässt sich nichts festmachen. */
.rjr-kontakt .rjr-kontakt__karte {
	margin-top: 24px;
	height: clamp(300px, 34vw, 440px);
	border-radius: 28px;
	overflow: hidden;
	background: var(--awb-color1);
	box-shadow: 0 1px 2px rgba(14, 14, 17, 0.05), 0 12px 32px -14px rgba(14, 14, 17, 0.12);
}
.rjr-kontakt .rjr-kontakt__karte iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 1000px) {
	/* Radius bleibt auch gestapelt bei 20px — «Leistungen» und «Über uns»
	   halten ihn dort ebenfalls (nachgemessen bei 375px). */
	.rjr-kontakt.fusion-fullwidth {
		margin-left: 0 !important;
		margin-right: 0 !important;
		/* Unter 1001px steht die Kachel bei 30px — dem Innenabstand von
		   `#main` —, deshalb hier nur 10px: 30 + 10 + 20 Rinne = 60. */
		padding: 56px 10px !important;
	}
	.rjr-kontakt .fusion-builder-row {
		width: 100%;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.rjr-kontakt .rjr-kontakt__text {
		padding-right: 0;
		margin-bottom: 40px;
	}
	.rjr-kontakt .rjr-kontakt__kopf {
		margin-bottom: 32px;
	}
	/* Gestapelt gibt es keine Karte daneben, an der sich etwas ausrichten
	   müsste — der Abstand zum Kopf steht schon oben. */
	.rjr-kontakt .rjr-kontakt__daten {
		margin-top: 0;
	}
}
@media (max-width: 640px) {
	.rjr-kontakt .rjr-formular__reihe {
		grid-template-columns: 1fr;
	}
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden {
		width: 100%;
	}
	.rjr-kontakt .rjr-formular .rjr-formular__aktion {
		display: block;
		width: 100%;
	}
	/* Turnstile ist fest 300px breit, das Formular hier schmaler. Das Feld
	   steht deshalb mittig und ragt gleichmässig über die Kartenränder. */
	.rjr-kontakt .rjr-formular .cf-turnstile {
		margin-left: calc((100% - 300px) / 2);
	}
}
/* **Schmale Telefone: der Pfeil lag auf dem Text** (Punkt 137). Die Beschriftung
   misst 129px, die Polster von 101px brauchen also einen 230px breiten Knopf —
   bei 375px Fenster sind es nur 207px. Polster und Pfeil rücken nach aussen,
   die Summe bleibt in Ruhe und beim Rollover gleich (20 + 17 Symbol + 10 = 47). */
@media (max-width: 420px) {
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden {
		padding-left: 20px !important;
		padding-right: 47px !important;
	}
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:hover,
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:focus-visible {
		padding-left: 47px !important;
		padding-right: 20px !important;
	}
	.rjr-kontakt .rjr-formular__pfeil--ruhe {
		right: 20px;
	}
	.rjr-kontakt .rjr-formular__pfeil--hover {
		left: 20px;
	}
}
/* Unter 360px reicht es auch so nicht mehr: dort entfällt der Pfeil. */
@media (max-width: 359px) {
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden,
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:hover,
	.rjr-kontakt .rjr-formular.rjr-formular input.rjr-formular__senden:focus-visible {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	.rjr-kontakt .rjr-formular__pfeil {
		display: none;
	}
}

/* =========================================================================
   FUSS — neu aufgebaut am 25.08.2026
   Vorgabe Vincenzo: der gesamte Demo-Fuss der Prebuilt-Website fällt weg,
   übrig bleibt **eine** Zeile Copyright und darunter drei Social-Symbole,
   beides mittig auf weissem Grund. Vorbild ist der Fuss einer anderen
   Digitalminds-Seite (Bildschirmfoto vom 25.08.2026).

   Der alte Fuss trug 55 037 Zeichen in vier Containern — US-Adresse,
   `avada-company.com`, `+1 (800) 555 5555`, vier englische Linkspalten,
   «your trusted partner in building careers» und einen Avada-Copyright-
   Vermerk. Gesichert in `05_Backup/2026-08-25_Vor-Fuss-Umbau/`.

   **Die Jahreszahl kommt aus dem Kurzbefehl `[rjr_jahr]`** (Child Theme,
   `functions.php`) — sie zählt sich selbst weiter.
   ====================================================================== */

.rjr-fuss.fusion-fullwidth {
	background-color: var(--awb-color1);
}
/* Avada gibt dem Fussbereich seine eigene Fläche aus den Theme-Optionen —
   die stammt aus der Demo und ist dunkel. Sie liegt **unter** dem Container
   und blitzte an dessen Rändern durch. */
.fusion-footer,
.fusion-footer .fusion-footer-copyright-area,
.fusion-tb-footer {
	background-color: var(--awb-color1);
}

.rjr-fuss .rjr-fuss__zeile {
	text-align: center;
}
.rjr-fuss .rjr-fuss__zeile p {
	margin: 0;
	font-size: 16px;
	line-height: 1.7;
	color: var(--awb-color7);
}
/* **Keine Unterstreichung — in keinem Zustand** (Vorgabe Vincenzo,
   25.08.2026). Die erste Fassung folgte dem Vorbild und unterstrich die
   drei Links; erkennbar bleiben sie über den Farbwechsel beim Überfahren.
   Die Regel muss **alle** Zustände nennen und `!important` tragen: Avada
   legt beim Überfahren seine eigene `text-decoration: underline` darüber
   und würde sie sonst zurückholen. */
.rjr-fuss .rjr-fuss__zeile a,
.rjr-fuss .rjr-fuss__zeile a:hover,
.rjr-fuss .rjr-fuss__zeile a:focus,
.rjr-fuss .rjr-fuss__zeile a:active {
	text-decoration: none !important;
}
.rjr-fuss .rjr-fuss__zeile a {
	color: var(--awb-color7);
	transition: color 0.2s;
}
.rjr-fuss .rjr-fuss__zeile a:hover,
.rjr-fuss .rjr-fuss__zeile a:focus-visible {
	color: var(--awb-color5);
}

/* Die drei Symbole: Font Awesome 5 Brands, das Avada ohnehin lädt.
   **12px Abstand** (Vorgabe Vincenzo, 25.08.2026: näher zusammen) — die
   Zeichen selbst sind 26px, die Trefferfläche 44px. Mitte zu Mitte sind das
   56px und damit fast genau das Mass des Vorbilds (dort 55px). Der Abstand
   ist bewusst am **Kasten** gespart, nicht an der Trefferfläche: die bleibt
   bei 44px, wie bei den Kopf-Buttons und wie es für Finger nötig ist. */
/* **Die Reihe muss am `<p>` hängen, nicht am Textelement.** WordPress packt
   den Inhalt eines Textelements in einen Absatz — steht `display: flex` nur
   aussen, ist dieser Absatz das einzige Flex-Kind und die drei Symbole
   kleben aneinander (gemessen: 44px Abstand statt 40px Lücke). Beide Ebenen
   tragen die Regel, damit es auch dann stimmt, wenn der Absatz einmal
   wegfällt. */
.rjr-fuss .rjr-fuss__sozial,
.rjr-fuss .rjr-fuss__sozial p {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	margin: 0;
}
/* **14px, nicht 28** (Vorgabe Vincenzo, 25.08.2026: näher an die Zeile).
   Der Wert im Stylesheet ist nicht der Abstand, den man sieht: die
   Trefferfläche ist 44px hoch und hält das 26px-Zeichen mittig, also liegen
   **9px Luft** über dem Zeichen. Dazu kommt der Rest der Zeilenbox des
   Absatzes (16px auf 27.2px Zeilenhöhe). Gemessen ergaben 28px Rand einen
   optischen Abstand von **37px**; 14px ergeben **23px** — die Zeile und die
   drei Symbole lesen sich damit als ein Block. Gespart ist wieder am
   Kasten, nicht an der Trefferfläche: die bleibt bei 44px. */
.rjr-fuss .rjr-fuss__sozial {
	margin-top: 14px;
}
.rjr-fuss .rjr-fuss__sozial a,
.rjr-fuss .rjr-fuss__sozial a:hover,
.rjr-fuss .rjr-fuss__sozial a:focus {
	text-decoration: none !important;
}
.rjr-fuss .rjr-fuss__sozial a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	font-size: 26px;
	color: var(--awb-color5);
	transition: color 0.2s, transform 0.2s;
}
.rjr-fuss .rjr-fuss__sozial a:hover,
.rjr-fuss .rjr-fuss__sozial a:focus-visible {
	color: hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a));
	transform: translateY(-2px);
}

@media (max-width: 640px) {
	/* Die Zeile bricht auf dem Telefon ohnehin um — etwas kleiner gesetzt
	   bleiben die Umbrüche ruhiger. */
	.rjr-fuss .rjr-fuss__zeile p {
		font-size: 15px;
	}
	.rjr-fuss .rjr-fuss__sozial,
	.rjr-fuss .rjr-fuss__sozial p {
		gap: 8px;
	}
}

/* =========================================================================
   COOKIE-HINWEIS — Schliesskreuz, 25.08.2026
   Das Plugin «iComply Cookie Notice» setzt sein Kreuz mit `top: 0; right: 0`
   in einen 45×45px-Kasten — **bündig in die Ecke der Karte**. Gemessen:
   Oberkante des Zeichens exakt auf der Kartenkante (Versatz 0), rechts 14px.
   Damit sitzt es im 12px-Radius der Ecke und wirkt, als hinge es heraus
   (beanstandet von Vincenzo, 25.08.2026).

   Zwei Ursachen, beide hier behoben:
   1. **Kein Abstand zur Ecke.** Jetzt 6px von oben und rechts; das Zeichen
      steht damit 26px von beiden Kanten und frei vom Radius.
   2. **Das Zeichen hängt am oberen Rand seines Kastens.** Das Plugin
      zentriert über `line-height: 40px` — das trägt nicht, sobald das Bild
      nicht als reine Textzeile ausgeliefert wird. `flex` zentriert es in
      beide Richtungen, unabhängig von der Zeilenhöhe.

   Die Trefferfläche bleibt mit 40px im tastbaren Bereich.

   **Warum das hier steht und nicht im Plugin:** Der Child-Theme-Stylesheet
   lädt **nach** dem des Plugins (nachgesehen in der Seitenausgabe), eine
   Regel mit gleicher Spezifität gewinnt also. Ein Eingriff in den
   Plugincode wäre beim nächsten Update weg.
   ====================================================================== */

#simple-cookies .sc-closer {
	top: 6px;
	right: 6px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
#simple-cookies .sc-closer img {
	display: block;
	width: 14px;
	height: auto;
}

/* =========================================================================
   UNTERSEITEN — Kopf, halbhoher Hero, Rechtstext
   Erste Unterseite: «Datenschutz» (Seite 4394), 02.09.2026.
   Die Regeln sind bewusst allgemein gehalten — Impressum und AGB bekommen
   denselben Aufbau, ohne dass hier etwas dazukommen muss.
   ========================================================================= */

/* --- Kopf der Unterseiten ----------------------------------------------
   Eigene Layout Section 4395 «Kopf Unterseiten»: Logo links, ein einziger
   Knopf «Zurück» rechts, keine Navigation. Alles Übrige — Klebeverhalten,
   Ausblenden beim Scrollen, Schatten, Knopfstil — erbt sie unverändert von
   `.fusion-tb-header` und `.rjr-btn-ring` weiter oben.

   Ab 1301px zieht die Regel weiter oben beide Spalten auf `width: auto` und
   setzt ihre Aussenabstände auf 0 — dort trug bisher die Menüspalte
   (`flex: 1 1 auto`) den Zwischenraum. Ohne Menü fehlt dieser Schieber,
   Logo und Knopf klebten links zusammen. `margin-left: auto` an der
   Knopfspalte ersetzt ihn. Die Klasse steht doppelt, weil die Regel oben
   `margin-left: 0 !important` setzt — gleiche Spezifität, spätere gewinnt
   nur bei gleicher Gewichtung, und `!important` steht auf beiden Seiten. */
@media (min-width: 1301px) {
	.rjr-kopf-seite .rjr-hdr-cta.rjr-hdr-cta {
		margin-left: auto !important;
	}
}

/* --- Hero der Unterseiten: halb so hoch --------------------------------
   Vorgabe Vincenzo (02.09.2026): «Die Hero Sektion soll halb so hoch sein
   wie diese aus der Startseite.» Dieselbe Rechnung wie dort, durch zwei —
   und die Grenzen von `clamp()` mit: 560 → 280, 900 → 450.

   Die Klasse `rjr-hero` steht am selben Container, deshalb gelten Radius,
   Aussenabstand, Innenabstand und der Lesbarkeitsverlauf unverändert.
   Statt des Videos trägt der Container ein statisches Bild
   (`skip_lazy_load="skip"`, damit es nicht erst beim Scrollen nachgeladen
   wird — es steht über der Falz).

   **Warum die 280px unten:** Im Hero steht nur noch der Titel, kein
   Textblock. 280px tragen die grösste Titelstufe (60px) samt 80px Polster
   oben und unten mit Luft. */
.rjr-hero--seite.fusion-fullwidth {
	min-height: 450px;                                 /* Rückfall ohne clamp */
	/* Rückfall für Browser ohne svh */
	min-height: clamp(280px, calc((100vh - var(--rjr-kopfhoehe, 122px) - 4px - var(--rjr-randaussen)) / 2), 450px);
	min-height: clamp(280px, calc((100svh - var(--rjr-kopfhoehe, 122px) - 4px - var(--rjr-randaussen)) / 2), 450px);
}

/* Unter 821px lässt die Startseite ihren Hero mitwachsen — dort stehen Badge,
   Titel, Lead und Knopf untereinander, eine erzwungene Höhe würde sie stauchen.
   Hier steht **nur** der Titel: ohne Mindesthöhe schrumpft die Karte auf 168px
   und wirkt wie ein Streifen. Deshalb gilt die Halbierung auch auf dem Telefon,
   nur mit tieferen Grenzen. Gegenprobe bei 390 x 844: Startseite 735px, hier
   353px — die Hälfte, wie verlangt. */
@media (max-width: 820px) {
	.rjr-hero--seite.fusion-fullwidth {
		min-height: 300px;
		min-height: clamp(240px, calc((100svh - var(--rjr-kopfhoehe, 122px) - 4px - var(--rjr-randaussen)) / 2), 420px);
	}
}

/* --- Der Hero-Titel steht auf der Kante des Inhalts --------------------
   Vorgabe Vincenzo (02.09.2026): «der Titel in der Hero Sektion bitte auch
   beginnend ab dem Inhalt wie unten, damit es bündig ist.»

   Auf der Startseite steht der Hero-Text **72px innerhalb der Karte** — das
   ist ein eigenes Mass, keines vom Sektionsraster. Auf einer Unterseite mit
   nur einer Textsektion darunter fällt der Versatz auf.

   **Am System gemessen**, wo der Text tatsächlich beginnt (linke Kante des
   Textelements, fünf Fensterbreiten):

       Fenster   Hero-Karte      Text beginnt bei
       1920      20 … 1900       290
       1440      20 … 1420        50
       1201      20 … 1181        50
       1100      30 … 1070        30
        390      30 …  360        30

   Zwei Bereiche, zwei Rechnungen:

   **Ab 1201px** liegt die Karte bei 20px, der Text auf dem 1340er-Raster.
   Der Innenabstand ist deshalb keine feste Zahl, sondern **eine Rechnung**:

       max(10px, (100% − 1380.2px) / 2 + 30px)

   `100%` ist die Breite des Elternelements (der Inhaltsbereich, Fenster − 60),
   **1380.2px** Avadas Zeilenbreite für Sektionen (`site_width` 1340 + 40
   Spaltenpolster), die **30px** darin Avadas seitlicher Innenabstand.

   **Warum die Zeile bei Avada erst ab 1400px stehen bleibt:** Bis dahin ist
   sie nicht auf 1380.2px begrenzt, sondern **breiter als der Inhaltsbereich**
   — sie trägt einen negativen Aussenrand von 1.455 % ihrer eigenen Breite, den
   das Spaltenpolster innen wieder aufhebt. Beides kürzt sich weg: **die
   Textkante steht bis 1400px unverrückbar auf 30px.** Darüber greift die
   Begrenzung, die Zeile wird mittig gestellt und die Kante wandert mit —
   1440 → 50, 1600 → 130, 1920 → 290. Genau das bildet die Rechnung ab; der
   Mindestwert 10px ist der Bereich bis 1400px (Karte bei 20px + 10 = 30).

   **Alles daran ist gemessen, nicht hergeleitet** — an neun Fensterbreiten
   zwischen 390 und 1920px.

   **Der Weg über die Zeile selbst wäre der naheliegendere und geht nicht:**
   Avada schreibt `max-width: calc(100% + 0px) !important` als **Inline-Stil**
   an jede `.fusion-builder-row`. Dagegen kommt kein Stylesheet an — die
   bekannte Falle aus `10_AVADA-AUFBAU.md`.

   **Unter 1201px** nimmt die Regel weiter oben der Karte ihren negativen
   Aussenrand; sie sitzt dann bei 30px — **genau dort, wo auch der Text
   beginnt**. Bündig hiesse dort Innenabstand 0, und der Titel klebte an der
   Bildkante. Deshalb behält die Karte hier ihre 20px vom Fensterrand und
   bekommt 10px Innenabstand: der Titel landet auf 30px wie der Text, die
   Karte steht 10px weiter aussen. Dasselbe Verhältnis wie oben, nur enger. */
/* **Seit dem 02.09.2026 abends: 40px statt 30, und der Zuschlag im `calc`
   fällt von 30 auf 10.** Unter dem Deckel soll der Titel auf derselben 60px-
   Kante stehen wie der Rechtstext darunter — die Karte steht 20px vom Rand,
   also 40px Innenabstand. Über dem Deckel zählt nur noch die Zentrierung; die
   +30px sind der Rest, den die Sektionen aus ihrem eigenen Innenabstand
   (10px sichtbar) und der halben Rinne (20px) mitbringen. Nachgerechnet bei 1194 / 1440 / 1920: Titel und Text auf
   derselben Kante. */
.rjr-hero--seite.fusion-fullwidth {
	--rjr-seite-rand: max(40px, calc((100% - 1380.2px) / 2 + 30px));
	padding-left: var(--rjr-seite-rand) !important;
	padding-right: var(--rjr-seite-rand) !important;
}
/* Der Innenabstand muss hier stehen, weil die Regel des Startseiten-Hero
   (56px bzw. 28px) sonst gewinnt. */
@media (max-width: 1200px) {
	.rjr-hero--seite.fusion-fullwidth {
		padding-left: var(--rjr-seite-rand) !important;
		padding-right: var(--rjr-seite-rand) !important;
	}
}

/* **Die Unterseiten machen den Sprung auf 30px nicht mit.** Auf der Startseite
   folgt der Hero unter 1001px den Kacheln darunter; hier gibt es keine
   Kacheln, sondern den Rechtstext — und der beginnt bei 30px. Bliebe die
   Karte ebenfalls bei 30px, wäre bündig gleichbedeutend mit Innenabstand 0
   und der Titel klebte an der Bildkante. Sie behält deshalb ihre 20px, der
   Titel seine 10px Vorlauf, und beide stehen zusammen auf der 30px-Kante des
   Textes. */
@media (max-width: 1000px) {
	.rjr-hero--seite.fusion-fullwidth {
		margin-left: calc(var(--rjr-randaussen) - 30px) !important;
		margin-right: calc(var(--rjr-randaussen) - 30px) !important;
		margin-top: calc(var(--rjr-randaussen) - 16px) !important;
	}
}
@media (max-width: 820px) {
	.rjr-hero--seite.fusion-fullwidth {
		padding-left: var(--rjr-seite-rand) !important;
		padding-right: var(--rjr-seite-rand) !important;
	}
}

/* --- Rechtstext (Datenschutz, später Impressum und AGB) ----------------
   **Blocksatz auf Vorgabe Vincenzo (02.09.2026).** Blocksatz ohne Trennung
   reisst im Deutschen Löcher in die Zeile — die Komposita sind zu lang.
   Deshalb `hyphens: auto`; es greift, weil `<html>` auf `de-CH` steht.
   Safari braucht bis heute die Herstellervorsilbe.

   **Zeilenbreite: die volle Inhaltsbreite** (Vorgabe Vincenzo, 02.09.2026).
   Vorher standen hier 900px. Über die ganze Sektionsbreite kommen bei 17px
   Schrift rund 140 Zeichen in die Zeile — mehr, als die Typografie empfiehlt
   (60–90). Der Vorteil: Titel und Text stehen auf **derselben** Kante, und
   der Rechtstext ist Nachschlagetext, kein Lesetext.

   **Lange URLs brechen um** (`overflow-wrap`). Im Blocksatz ist das keine
   Kür: eine nicht umbrechbare URL von 60 Zeichen zieht die Zeile davor
   auseinander, bis sie auseinanderfällt. */
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt {
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}

.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt h2 {
	/* **Nicht** über `--awb-typography2`: Der Satz «Subheadings» steht auf
	   diesem System auf **19px/400, Zeilenhöhe 1.1** — am 02.09.2026
	   ausgelesen. Das ist die Grösse des Lead-Textes und trägt keine
	   Überschrift; die Tabelle in `02_DESIGN-SYSTEM.md` nennt dafür 24px/600,
	   diese Startwerte stehen aber so nicht in Avada. Bis die Skala dort
	   nachgezogen ist, stehen die zwei Werte hier. Schriftfamilie und Farbe
	   laufen weiterhin über die Globals. */
	font-size: 24px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--awb-color7);
	/* Überschriften stehen im Flattersatz — eine einzeilige Zeile im
	   Blocksatz wäre wirkungslos, eine zweizeilige gerissen. */
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
	margin: 52px 0 14px;
}
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt h2:first-child {
	margin-top: 0;
}

/* Unterüberschriften — in den AGB die Paragraphen 10.1 bis 10.4. Zwei Stufen
   unter der Schrift des Fliesstextes wäre zu wenig Abstand zur Überschrift
   darüber; 19px/600 hält die Rangfolge 24 → 19 → 17 lesbar. */
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt h3 {
	font-size: 19px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--awb-color7);
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
	margin: 34px 0 10px;
}

.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt p {
	margin: 0 0 20px;
}
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt p:last-child {
	margin-bottom: 0;
}

/* Anschrift und Kontakt im Impressum: kurze Zeilen mit harten Umbrüchen.
   Blocksatz würde drei Wörter über die halbe Sektionsbreite ziehen, die
   Trennung eine Strasse zerlegen — beides hier ausdrücklich aus. */
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt .rjr-rechtstext__block {
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
}

.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt ul {
	margin: 0 0 20px;
	padding-left: 22px;
	list-style: disc;
	/* Aufzählungspunkte sind kurz — Blocksatz würde sie zerdehnen. */
	text-align: left;
}
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt li {
	margin-bottom: 6px;
}

/* Links im Fliesstext: Markenrot, unterstrichen, und beim Überfahren die
   Abdunklung der Buttons — dieselbe Rechnung, damit die Seite eine Sprache
   spricht. Die Verdopplung der Klasse hebt die Spezifität über Avadas
   eigene Linkfarbe. */
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt a {
	color: var(--awb-color5);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt a:hover,
.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt a:focus-visible {
	color: hsla(var(--awb-color5-h), var(--awb-color5-s), calc(var(--awb-color5-l) - 9%), var(--awb-color5-a));
}

/* Auf dem Telefon ist Blocksatz eine Zumutung: bei rund 40 Zeichen je Zeile
   entstehen zwischen den Wörtern Lücken, durch die man hindurchsieht.
   Dort deshalb Flattersatz. Die Trennung bleibt an. */
@media (max-width: 640px) {
	.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt {
		text-align: left;
	}
	.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt h2 {
		font-size: 21px;
		margin-top: 40px;
	}
	.rjr-rechtstext__inhalt.rjr-rechtstext__inhalt h3 {
		font-size: 18px;
		margin-top: 28px;
	}
}

/* =========================================================================
   FLYOUT-MENÜ FÜR TABLET UND TELEFON — 02.09.2026
   Vorgabe Vincenzo: eigenes Burger-Symbol (drei versetzte Balken, schwarz,
   beim Überfahren rot); im Flyout linksbündig die Navigation, darunter die
   zwei Knöpfe, darunter die Social-Symbole klein; im Querformat Navigation
   links, Knöpfe und Symbole rechts. Die Knöpfe stehen unterhalb der
   Umschaltgrenze **nur noch im Flyout**.
   Gebaut wird das Feld von `js/rjr-menu.js` aus dem, was ohnehin auf der
   Seite steht — Menüpunkte, Kopfknöpfe, Social-Symbole des Fusses.
   ========================================================================= */

/* --- Die Knöpfe verlassen den Kopf ------------------------------------
   **1300px ist Avadas Umschaltgrenze** (`custom_breakpoint` am Menü-Element):
   genau dort klappt die Navigation auf den Knopf ein. Ab derselben Breite
   gehören auch die zwei Kopfknöpfe ins Flyout — sonst stünden sie doppelt.
   `.rjr-hdr-cta` ist die Spalte für Tablet und Desktop, `.rjr-hdr-cta-klein`
   die gestapelte Fassung, die bisher unter 821px erschien. */
/* **Nur der Kopf der Startseite** (`rjr-kopf-start`). Der Kopf der
   Unterseiten (4395) benutzt dieselbe Spaltenklasse `rjr-hdr-cta` für seinen
   «Zurück»-Knopf — ohne diese Einschränkung war er unter 1301px verschwunden.
   Am 02.09.2026 beim Prüfen aufgefallen und sofort berichtigt. */
@media (max-width: 1300px) {
	.rjr-kopf-start .rjr-hdr-cta,
	.rjr-kopf-start .rjr-hdr-cta-klein {
		display: none !important;
	}
}

/* --- Das Burger-Symbol -------------------------------------------------
   Drei versetzte Balken nach Vincenzos Vorlage: der mittlere kürzer und
   links eingerückt, der untere so lang wie der mittlere endet. Gezeichnet
   wird mit drei `<i>`, die `js/rjr-menu.js` in Avadas Knopf hängt; Avadas
   eigene Font-Awesome-Zeichen werden ausgeblendet, nicht entfernt — der
   Screenreader-Text im selben Knopf bleibt damit unangetastet. */
.awb-menu .rjr-burger .awb-menu__m-collapse-icon {
	display: none !important;
}
/* **Die Klasse steht dreifach** (`.awb-menu__m-toggle.rjr-burger` in
   `.awb-menu`): Avadas eigene Regel für den Knopf hat zwei Klassen und lädt
   nach dem Child-Theme — bei Gleichstand gewinnt sie. Mit `display: block`
   wäre die Ausrichtung im Knopf wirkungslos geblieben.

   **44 × 44px Trefferfläche**, das Symbol darin rechtsbündig: die Fläche
   wächst nach innen, die sichtbare Kante bleibt, wo sie hingehört. Darunter
   wäre der Knopf auf dem Telefon kaum zu treffen (WCAG 2.5.8 nennt 24px als
   Mindestmass, 44px ist die verbreitete Praxis).

   **5px vom Rand**, spiegelbildlich zum Logo: das steht seit heute 5px rechts
   der linken Inhaltskante, das Symbol steht 5px links der rechten. */
/* **Nur im eingeklappten Zustand.** `collapse-enabled` setzt Avada selbst,
   sobald die Umschaltgrenze unterschritten ist; oberhalb heisst die Klasse
   `awb-menu_desktop` und der Knopf steht auf `display: none`. Ohne diese
   Bedingung hätte das `!important` unten den Burger auch auf dem Desktop
   sichtbar gemacht — bei 1301px stand er am 02.09.2026 neben dem vollen
   Menü, bis die Regel enger gefasst war. */
.awb-menu.collapse-enabled .awb-menu__m-toggle.rjr-burger {
	display: flex !important;   /* Avada setzt `block` — sonst wirkt die Ausrichtung im Knopf nicht */
	align-items: center;
	justify-content: flex-end;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	margin-right: 5px;
	background: none !important;
	border: 0 !important;
	color: var(--awb-color7);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.awb-menu .awb-menu__m-toggle.rjr-burger:hover,
.awb-menu .awb-menu__m-toggle.rjr-burger:focus-visible {
	color: var(--awb-color5);
}
/* **Zwei Zeichen aus dem Satz «Recruitment Agency»** (Beitrag 43) — demselben,
   aus dem der Pfeil auf jedem Knopf der Website kommt. `menu-two` sind drei
   versetzte Balken, `close` das dazu gezeichnete Kreuz. Beide liegen
   übereinander; die Klasse am `<html>` entscheidet, welches man sieht.

   **Warum übereinander und nicht nacheinander:** so behält der Knopf seine
   Grösse, egal welches Zeichen gerade steht — nichts springt beim Umschalten. */
.rjr-burger__symbol {
	position: relative;
	display: block;
	width: 34px;
	height: 22px;
}
.rjr-burger__symbol i {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	line-height: 1;
	transition: opacity 0.18s ease, transform 0.18s ease;
}
.rjr-burger__symbol .rjr-burger__zu {
	opacity: 0;
	transform: rotate(-90deg);
}
.rjr-flyout-offen .rjr-burger__symbol .rjr-burger__auf {
	opacity: 0;
	transform: rotate(90deg);
}
.rjr-flyout-offen .rjr-burger__symbol .rjr-burger__zu {
	opacity: 1;
	transform: none;
}
.rjr-flyout-offen .awb-menu .awb-menu__m-toggle.rjr-burger { color: var(--awb-color5); }

/* Avadas eigener Aufklapper bleibt zu — das Feld unten ersetzt ihn. */
.awb-menu.collapse-enabled .awb-menu__main-ul {
	display: none !important;
}

/* Der Knopf sitzt am rechten Rand seiner Spalte, das Logo links: damit steht
   das Paar auf denselben Kanten wie Kopf und Inhalt.

   **Die 44px rechts an der Menüspalte müssen weg.** Sie stehen im Element
   (`padding_right="44px"`) und trennen auf dem Desktop das Menü von den zwei
   Knöpfen. Unterhalb der Umschaltgrenze gibt es diese Knöpfe nicht mehr — das
   Polster schob den Burger dort 44px vom Rand weg. */
.fusion-tb-header .rjr-hdr-nav .awb-menu.collapse-enabled {
	width: 100%;
	justify-content: flex-end;
}
@media (max-width: 1300px) {
	.rjr-kopf-start .rjr-hdr-nav > .fusion-column-wrapper {
		padding-right: 0 !important;
	}
	/* **Und die Spalte muss den freigewordenen Platz nehmen.** Die Breiten im
	   Element sind Prozentwerte für drei Spalten (22 / 15 / 63). Fällt die
	   Knopfspalte weg, endet die Menüspalte bei 37 % — der Burger stand auf
	   einem 1024er-Tablet mitten auf der Seite. Mit `flex: 1` reicht sie bis
	   zum rechten Rand, und der Knopf sitzt dort, wo er hingehört. */
	.rjr-kopf-start .rjr-hdr-nav {
		flex: 1 1 auto !important;
		width: auto !important;
		max-width: none !important;
	}
}

/* --- Das Feld ---------------------------------------------------------
   Es beginnt unter dem Kopf und füllt den Rest des Fensters. `100svh` ist
   die **kleine** Fensterhöhe: die, die bleibt, wenn die Browserleisten
   sichtbar sind — mit `vh` reichte das Feld auf dem Telefon unter die
   Adressleiste und die letzten Zeilen wären unerreichbar.

   **Weiss, leicht durchscheinend** (Vorgabe): 96 % Deckung plus eine leichte
   Unschärfe dahinter. Der Inhalt scheint gerade so durch, dass man sieht,
   worüber das Feld liegt — lesbar bleibt es trotzdem: Text auf 96 % Weiss
   über beliebigem Grund misst gegen Anthrazit noch über 12:1. */
.rjr-flyout {
	position: fixed;
	inset: var(--rjr-kopfhoehe, 122px) 0 0 0;
	/* **Über allem, was sonst noch schwebt.** Am 02.09.2026 nachgemessen:
	   der Cookie-Balken liegt auf 10 000, der Kontakt-Aufklapper des Plugins
	   «Any Contact Us» auf 9 999 999 — beide lagen damit über dem offenen
	   Menü. Der Kopf (99) bleibt darunter, das stört nicht: das Feld beginnt
	   erst unter ihm, überlappen tun sie nie. */
	z-index: 10000000;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	overflow-y: auto;
	overscroll-behavior: contain;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 0.22s ease, transform 0.22s ease;
}
.rjr-flyout-offen .rjr-flyout {
	opacity: 1;
	transform: none;
}
/* Das Feld nimmt beim Öffnen den Fokus auf (`tabindex="-1"`), damit
   Screenreader an seinem Anfang beginnen — sichtbar sein muss dieser Fokus
   nicht: er sitzt auf einem Behälter, nicht auf einem Bedienelement. Die
   Links darin behalten ihren eigenen Rahmen für die Tastatur. */
.rjr-flyout:focus {
	outline: none;
}
/* Der schwebende Kontaktknopf des Plugins «Any Contact Us» verschwindet,
   solange das Menü offen ist — ein zweiter roter Knopf über der Navigation
   ist nur Lärm. Fällt das Plugin weg (Punkt 115), fällt diese Regel mit ihm. */
html.rjr-flyout-offen .wacu-widget {
	display: none !important;
}

/* Solange das Feld offen ist, scrollt die Seite dahinter nicht mit — sonst
   fährt der Kopf beim Wischen weg und nimmt den Schliessknopf mit. */
html.rjr-flyout-offen,
html.rjr-flyout-offen body {
	overflow: hidden;
}

/* **Und genau diese Sperre nimmt dem klebenden Kopf den Bezugspunkt.**
   `position: sticky` klebt an seinem *Scroll-Behälter*; steht der auf
   `overflow: hidden`, gibt es nichts mehr zu scrollen und das Element fällt
   auf seine Stelle im Dokument zurück — bei 900px Scrollhöhe also 900px über
   den Bildrand. Am 02.09.2026 genau so gemessen: Kopf `top: -900`, der
   Schliessknopf ausser Reichweite, das Feld liess sich nicht mehr schliessen.

   Solange das Feld offen ist, steht der Kopf deshalb **fest am Fensterrand**
   statt zu kleben — `fixed` bezieht sich auf das Fenster und ist von der
   Sperre nicht betroffen. `transform: none` hebt dazu ein allfälliges
   Ausblenden auf: wer während des Scrollens auf den Knopf tippt, soll ihn
   nicht mitsamt dem Kopf verlieren. */
html.rjr-flyout-offen .fusion-tb-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	transform: none !important;
}

.rjr-flyout__innen {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 40px;
	padding: 40px 30px 48px;
	min-height: 100%;
}

/* --- Navigation: linksbündig, gross genug für den Daumen --------------- */
.rjr-flyout__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.rjr-flyout__nav li + li {
	margin-top: 4px;
}
.rjr-flyout__nav a {
	display: block;
	padding: 10px 0;               /* zusammen mit der Zeilenhöhe > 44px */
	font-size: 26px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--awb-color7);
	text-decoration: none;
}
.rjr-flyout__nav a:hover,
.rjr-flyout__nav a:focus-visible {
	color: var(--awb-color5);
}
/* Kein blaues Kästchen beim Antippen — Mobilbrowser legen es von sich aus
   über jeden Link. Der Rahmen für die Tastatur bleibt, er kommt über
   `:focus-visible` und nur dann. */
.rjr-flyout a {
	-webkit-tap-highlight-color: transparent;
}
.rjr-flyout a:focus-visible {
	outline: 2px solid var(--awb-color5);
	outline-offset: 3px;
	border-radius: 4px;
}

/* --- Knöpfe: wie im Kopf, nur untereinander und auf voller Breite ------ */
.rjr-flyout__neben {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
	width: 100%;
}
.rjr-flyout__knoepfe {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	max-width: 320px;
}
.rjr-flyout__knoepfe .fusion-button {
	width: 100%;
	justify-content: center;
}

/* **Kräftigeres Grau für den Telefonknopf** (Vorgabe Vincenzo, 02.09.2026:
   «sieht man fast nicht auf dem Smartphone»). Im Kopf steht der Knopf auf
   `#f5f5f5` — dort trägt ihn der rote Knopf daneben. Im Feld liegt er allein
   auf 96 % Weiss und verschwand darin fast: **1.09:1** gegen den Grund.

   Neu **#DFDFDF** — **1.33:1** gegen Weiss, als Fläche klar zu sehen, ohne zum
   zweiten Hauptknopf zu werden. Beim Überfahren **#CFCFCF**, dieselbe
   Abstufung wie vorher. Der Text bleibt anthrazit und misst **12.37:1**.

   Avada schreibt die Knopffarben als **eigene Eigenschaften in den
   Inline-Stil** (`--button_gradient_top_color`). Inline schlägt Stylesheet,
   deshalb `!important` — auf einer Eigenschaft, nicht auf einer Deklaration
   des Aussehens. */
.rjr-flyout__knoepfe .rjr-btn-tel {
	--button_gradient_top_color: #DFDFDF !important;
	--button_gradient_bottom_color: #DFDFDF !important;
	--button_gradient_top_color_hover: #CFCFCF !important;
	--button_gradient_bottom_color_hover: #CFCFCF !important;
	--rjr-btn-ring: #DFDFDF !important;
}
.rjr-flyout__knoepfe .rjr-btn-tel.rjr-btn-tel:hover,
.rjr-flyout__knoepfe .rjr-btn-tel.rjr-btn-tel:focus-visible {
	background-color: #CFCFCF !important;
}

/* --- Social-Symbole: klein, in einer Reihe ----------------------------- */
.rjr-flyout__sozial {
	display: flex;
	gap: 10px;
}
.rjr-flyout__sozial a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;                   /* Trefferfläche, nicht Symbolgrösse */
	height: 40px;
	border-radius: 999px;
	background: var(--awb-color2);
	color: var(--awb-color7);
	font-size: 16px;               /* «klein, aber» — Vorgabe Vincenzo */
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.rjr-flyout__sozial a:hover,
.rjr-flyout__sozial a:focus-visible {
	background: var(--awb-color5);
	color: var(--awb-color1);
}

/* --- Querformat: Navigation links, Knöpfe und Symbole rechts -----------
   Vorgabe Vincenzo. Im Querformat ist die Höhe knapp — nebeneinander passt
   beides ohne Scrollen ins Bild, untereinander nicht. */
@media (orientation: landscape) {
	.rjr-flyout__innen {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
		gap: 48px;
		padding: 36px 30px 40px;
	}
	.rjr-flyout__neben {
		width: auto;
		align-items: flex-end;
	}
	.rjr-flyout__knoepfe {
		width: auto;
		max-width: none;
	}
	.rjr-flyout__nav a {
		font-size: 22px;
		padding: 8px 0;
	}
}

/* Sehr flache Fenster (Telefon quer): alles eine Stufe enger. Bei 844 × 390
   war das Feld sonst 12px zu hoch und musste gescrollt werden — für sechs
   Menüpunkte, zwei Knöpfe und drei Symbole ist das unnötig. Nachgemessen
   passt es jetzt ohne Scrollen. */
@media (orientation: landscape) and (max-height: 480px) {
	.rjr-flyout__nav a {
		font-size: 18px;
		padding: 4px 0;
	}
	.rjr-flyout__nav li + li {
		margin-top: 0;
	}
	.rjr-flyout__innen {
		gap: 28px;
		padding: 20px 30px 24px;
	}
	.rjr-flyout__neben {
		gap: 18px;
	}
	.rjr-flyout__knoepfe {
		gap: 10px;
	}
}

/* Wer «weniger Bewegung» eingestellt hat, bekommt keinen Übergang. */
@media (prefers-reduced-motion: reduce) {
	.rjr-flyout,
	.rjr-burger__symbol i {
		transition: none;
	}
}

/* =========================================================================
   COOKIE-HINWEIS NUR AUF DEM DESKTOP — 02.09.2026
   Vorgabe Vincenzo: «Den Cookies-Banner für Smartphone und Tablets
   entfernen, damit er nicht angezeigt wird, nur bei Desktop.»

   **Zwei Bedingungen, mit ODER verknüpft:**
     · `max-width: 1300px`  — dieselbe Grenze, an der auch die Navigation auf
       den Burger einklappt. Was hier «Tablet» heisst, heisst dort schon
       «kein Desktop»; zwei verschiedene Grenzen im selben Projekt wären eine
       Fehlerquelle.
     · `pointer: coarse`  — ein Zeigegerät ohne feine Spitze, also ein Finger.
       Damit fallen auch grosse Tablets darunter, deren Fenster breiter als
       1300px ist (ein iPad Pro quer misst 1366).

   Gezeigt wird der Balken also nur, wo **beides** nicht zutrifft: breites
   Fenster **und** Maus. Der Balken bleibt im Dokument stehen und wird nur
   ausgeblendet — das Plugin bleibt unangetastet, und die Regel ist mit einer
   Zeile zurückzunehmen.

   ⚠️ **Das ist eine inhaltliche Entscheidung, keine gestalterische.** Ein
   Cookie-Hinweis, den die Mehrheit der Besucher nie sieht, erfüllt seinen
   Zweck nicht. Die offene Consent-Frage (`07_OFFENE-FRAGEN.md`, Punkte 107
   und 113 — der Balken blockiert weder Google Maps noch den Instagram-Feed)
   wird davon nicht berührt und bleibt vor dem Go-Live zu klären.
   ========================================================================= */
@media (max-width: 1300px), (pointer: coarse) {
	#simple-cookies {
		display: none !important;
	}
}

/* =========================================================================
   TABLET: INHALTE ZURÜCK IN IHREN KASTEN — 02.09.2026
   Vorgabe Vincenzo, mit drei iPad-Aufnahmen: «Auf dem Tablet sind bei den
   meisten Sektionen die Inhalte ausserhalb des Inhaltsbereiches.»

   ── Was gemessen wurde ──

   Linke Kante des ersten Textes je Sektion, bei 1194px (iPad quer):

       Leistungen  -5   ← fünf Pixel **ausserhalb** des Fensters
       Projekte    13
       Über uns    13
       Kontakt     37
       FAQ         29
       Instagram   30

   Bei 1440px stehen dieselben Sektionen auf 30 / 30 / 30 / 49 / 50 — dort
   stimmt es. Der Fehler liegt also im Band **unter 1400px**.

   ── Die Ursache: unsere eigene Regel, an einer Stelle die nicht mitwächst ──

   «Leistungen» und «Über uns» tragen seit dem 24.08.2026 den Griff

       width: calc(100% + 3%);  margin-inline: calc(-3% / 2);
       max-width: calc(var(--rjr-inhaltsbreite) * 1.03);

   in einer Zeile mit `justify-content: center`. **Er funktioniert nur,
   solange die Deckelung greift:** ab 1400px Fensterbreite ist die Zeile
   mindestens 1340px breit, die Spalte wird auf 1380.2px begrenzt und sitzt
   damit richtig. Darunter greift die Deckelung nicht mehr — die Spalte ist
   3 % breiter als ihre Zeile und wird zentriert, hängt also **1.5 % auf jeder
   Seite hinaus**. Und weil die Regel auf zwei verschachtelten Ebenen zieht,
   addiert sich der Versatz: bei 1194px zweimal 17px, macht 35px nach links.

   Bei «Projekte» ist es die Kehrseite desselben Rasters: dort haben wir das
   Spaltenpolster abgewählt (`--awb-spacing-* : 0`), mit dem Avada den
   negativen Aussenrand seiner Zeile ausgleicht. Ab 1440px fällt das nicht
   auf, darunter schon — 17px nach links.

   ── Die Behebung ──

   Unter 1400px wird der 3-%-Griff abgeschaltet (die Spalte füllt einfach ihre
   Zeile) und das Spaltenpolster bei «Projekte» wieder eingeschaltet.
   **Nicht** angetastet wird die Breite der Zeilen selbst: Avada schreibt dort
   `width: calc(100% + 0px) !important` **inline** ins Markup, dagegen kommt
   keine Regel an — der Versuch, sie auf 100 % zu zwingen, liess die Sektion
   34px nach rechts überstehen (gemessen).
   ========================================================================= */
/* **Dieser Block ist am 02.09.2026 abends leer geworden und entfallen.** Er
   hat unterhalb von 1400px drei Dinge zurückgenommen: den 3-%-Griff bei
   «Leistungen» und «Über uns», das fehlende Spaltenpolster bei «Projekte» und
   den Zeilenzug bei «Kontakt». Alle drei Griffe gibt es nicht mehr — «Das
   Raster» am Ende der Datei ersetzt sie durch **eine** Rechnung, die auf
   jeder Breite gilt. Die Beschreibung des Fehlers, den er behoben hat, steht
   weiter oben; sie bleibt lesenswert, weil dasselbe Muster (eine Regel für
   ein Band, nie im anderen geprüft) an diesem Tag dreimal aufgetreten ist. */


/* =========================================================================
   DAS RASTER — EINE TEXTKANTE FÜR DIE GANZE SEITE — 02.09.2026 abends

   Vorgabe Vincenzo: «Kannst du alle Textabstände / Inhaltsabstände nochmals
   konsolidieren und mehr nach innen setzen, finde den Abstand nach aussen zu
   knapp. Auch die Texte ohne Hintergrundkasten.»

   ── Was vorher war ──

   Zwei Familien von Sektionen mit zwei verschiedenen Rechnungen:

   | Familie                          | Kachel | Innenabstand | Textkante |
   |----------------------------------|--------|--------------|-----------|
   | Leistungen · Über uns · Kontakt  | 20px   | 10px         | 30px      |
   | USP · Einleitung · Projekte · Instagram · FAQ | keine | 30px | 30 oder 50 |

   In der Kachel blieben damit **10px** neben dem Text stehen — das war das
   Gedrängte. Und die zweite Familie sprang: Avada zieht ihre Zeile um das
   halbe Spaltenpolster heraus (−1.455 %) und legt es über den Spaltenwrapper
   wieder drauf. Unterhalb von 1400px hebt sich das auf, die Textkante liegt
   auf dem Innenabstand (30). **Ab 1400px greift Avadas Deckel** von 1380.2px
   auf der Zeile, das Herausziehen läuft ins Leere — und das Polster steht
   plötzlich allein da: 50 statt 30. Gemessen bei 1440px: Leistungen 30,
   Instagram 50, FAQ 49, Kontakt 50.

   ── Was jetzt gilt ──

   **Keine Zeile zieht mehr heraus.** `margin: auto` heisst: bleibt die Zeile
   unter dem Deckel, füllt sie den Innenabstand ihrer Sektion; darüber wird
   sie zentriert. Und das Spaltenpolster fällt **nur an den beiden äusseren
   Kanten** weg — zwischen den Spalten bleibt es stehen, sonst klebten FAQ,
   Kontakt und die USP-Zeile aneinander.

   Damit ist die Textkante überall genau der Innenabstand der Sektion:

   | Familie          | Kachel | Innenabstand      | Textkante |
   |------------------|--------|-------------------|-----------|
   | mit Kachel       | 20px   | 40px              | **60px**  |
   | ohne Kachel      | —      | 60px              | **60px**  |

   Über 1500px greift der Deckel und zentriert beide Familien auf dieselbe
   Kante (bei 1920px: 270px). Der Hero ist ausgenommen: er trägt seine eigenen
   72px innerhalb der Karte, seit dem 21.08.2026 auf Vincenzos Wunsch.

   **Wer hier etwas ändert, misst bei 390, 768, 1024, 1194, 1366, 1440 und
   1920** — jeder dieser Werte hat in dieser Datei schon einmal eine Regel
   entlarvt, die nur für ein Band geschrieben war.
   ========================================================================= */

/* **Nur die oberste Zeile jeder Sektion.** Verschachtelte Zeilen behalten
   Avadas eigenes Paar aus `width: calc(100% + 40px)` und −20px Aussenrand —
   die Breite steht dort **inline mit `!important`** und lässt sich aus einem
   Stylesheet nicht überstimmen; nimmt man ihr nur den Aussenrand, steht die
   Zeile 40px über ihre Spalte hinaus (am 02.09.2026 beim Projekt-Banner
   gemessen: rechts 20 statt 60). */
#main .fusion-fullwidth > .fusion-builder-row {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Avadas eigene Rinne wird abgewählt — auf **allen** Ebenen, auch in
   verschachtelten Zeilen. Sie ist prozentual zur Spaltenbreite bemessen und
   damit in jeder Sektion eine andere Zahl (1.455 % bei einer vollen Spalte,
   3.6375 % bei einer 40-Prozent-Spalte); genau daher kamen die krummen
   Kanten 49, 50, 13. */
#main .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column {
	--awb-spacing-left-large: 0 !important;
	--awb-spacing-right-large: 0 !important;
	--awb-spacing-left-medium: 0 !important;
	--awb-spacing-right-medium: 0 !important;
	--awb-spacing-left-small: 0 !important;
	--awb-spacing-right-small: 0 !important;
}

/* An ihre Stelle tritt **eine feste halbe Rinne von 20px je Spaltenseite** —
   nur auf der obersten Ebene. Zwischen zwei nebeneinanderstehenden Spalten
   ergibt das die gewohnten 40px; an den äusseren Kanten 20px, die im
   Innenabstand der Sektion mitgerechnet sind (40 + 20 = 60).

   Sie sitzt am Wrapper **innerhalb** der Spalte, ändert also keine
   Spaltenbreite und kann nichts zum Überlaufen bringen. Der Hero ist
   ausgenommen: er rechnet seit dem 21.08.2026 mit eigenen 72px. */
#main .fusion-fullwidth:not(.rjr-hero) > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper {
	padding-left: var(--rjr-rinne) !important;
	padding-right: var(--rjr-rinne) !important;
}

/* Sektionen ohne Kachel. Die drei mit Kachel bringen ihren Innenabstand
   selbst mit (20px, oben in ihren eigenen Abschnitten), der Hero seine 72px. */
#main .fusion-fullwidth:not(.rjr-hero):not(.rjr-leistungen):not(.rjr-team):not(.rjr-kontakt) {
	padding-left: calc(var(--rjr-textrand) - var(--rjr-rinne)) !important;
	padding-right: calc(var(--rjr-textrand) - var(--rjr-rinne)) !important;
}

/* Der Fuss steht ausserhalb von `#main` und braucht dieselbe Behandlung,
   sonst stünde er als einziges Element der Seite auf einer anderen Kante
   (gemessen vor der Umstellung: 30 bei 1194px, 50 bei 1440px, 290 bei 1920px). */
.fusion-tb-footer .fusion-fullwidth > .fusion-builder-row {
	margin-left: auto !important;
	margin-right: auto !important;
}
.fusion-tb-footer .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column {
	--awb-spacing-left-large: 0 !important;
	--awb-spacing-right-large: 0 !important;
	--awb-spacing-left-medium: 0 !important;
	--awb-spacing-right-medium: 0 !important;
	--awb-spacing-left-small: 0 !important;
	--awb-spacing-right-small: 0 !important;
}
.fusion-tb-footer .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper {
	padding-left: var(--rjr-rinne) !important;
	padding-right: var(--rjr-rinne) !important;
}
.fusion-tb-footer .fusion-fullwidth {
	padding-left: calc(var(--rjr-textrand) - var(--rjr-rinne)) !important;
	padding-right: calc(var(--rjr-textrand) - var(--rjr-rinne)) !important;
}


/* =========================================================================
   TELEFON: DIE RECHTE KANTE — 03.09.2026

   Vorgabe Vincenzo: «Es sieht so aus, als wäre rechts mehr Abstand zum Rand
   als links.»

   **Nachgemessen bei 375, 390, 414 und 430px: die Kästen stehen exakt gleich
   weit vom Rand** — Kopf 35/35, Hero-Karte 30/30, Kacheln 30/30, jeder
   Inhalt 60/60. Ein Fehler im Raster war es nicht.

   Was man sieht, ist der **Flatterrand**. Der Text steht links auf 60 und
   endet rechts, wo das nächste Wort nicht mehr passt. Über alle Absätze der
   Seite gemessen (85 Zeilen bei 390px) blieben im Schnitt **57px** rechts
   frei — der rechte Rand wirkt dadurch fast doppelt so breit wie der linke.
   Verschärft hat es die Umstellung auf die 60px-Kante vom Vorabend: die Spalte ist auf
   dem Telefon nur noch 270px breit, und deutsche Komposita wie
   «Schaltanlagenbau» oder «Verteilungen» brechen darin früh um.

   **Trennung statt schmalerem Rand.** `hyphens: auto` greift, weil `<html>`
   auf `de-CH` steht; nachgemessen sinkt der mittlere Rest rechts von **57
   auf 42px** (−26 %). Ein schmalerer Rand hätte die Kante gerade gerückt,
   aber die Flucht mit dem Hero (58px) und den Kacheln zerstört, die Vincenzo
   am Vorabend bekommen hat.

   **Nur Absätze und Listen.** Überschriften bleiben ungetrennt — dort fällt
   ein Trennstrich auf und die Zeile ist ohnehin kurz. `.fusion-text` stand
   hier zuerst mit drin und war zu grob: darunter fallen auch die roten
   Eyebrows («Familienunternehmen aus Birsfelden») und die Titel der
   Projektkarten, und die vertragen keinen Trennstrich. Die Absätze in diesen
   Blöcken sind ohnehin `<p>` und damit erfasst.
   ========================================================================= */
@media (max-width: 1000px) {
	#main p,
	#main li {
		-webkit-hyphens: auto;
		hyphens: auto;
		overflow-wrap: break-word;
	}
}

/* --- Die beiden Knöpfe unter dem Instagram-Feed --------------------------
   Vorgabe Vincenzo (03.09.2026): «richtig zentrieren auf dem Smartphone.» Beide standen leicht nach rechts versetzt — «Mehr laden» um
   8px, «Folge uns» um 2.5px. Zwei verschiedene Ursachen, beide vom Plugin:

   1. **Ein unsichtbares Element zählt mit.** `#sbi_load` ist ein
      Flex-Container mit `justify-content: center` und 16px Abstand. Darin
      liegt ein `sbi-screenreader`-Element mit Breite 0 — als Flex-Kind
      bekommt es trotzdem seine 16px Abstand, und die Zeile wird um 8px
      verschoben. `position: absolute` nimmt es aus dem Flexfluss, **ohne**
      es aus dem Barrierefreiheitsbaum zu entfernen; `display: none` täte
      genau das und wäre hier der falsche Griff.
   2. **Ein einseitiger Aussenrand.** Der Folgen-Knopf trägt 5px links und
      0 rechts.

   Beides zurückgesetzt, danach stehen beide Knöpfe exakt mittig. */
#sbi_load .sbi-screenreader {
	position: absolute;
}
#sbi_load .sbi_load_btn,
#sbi_load .sbi_follow_btn,
#sbi_load #sbi_load_btn {
	margin-left: 0 !important;
	margin-right: 0 !important;
}


/* =========================================================================
   EINLEITUNG: LUFT ZWISCHEN BILD UND TEXT — 03.09.2026

   Vorgabe Vincenzo: «In der ersten Sektion ist der Text zu nahe am Bild,
   dieser sollte weiter nach rechts sein. Nur beim Tablet und Smartphone ist
   es anders.»

   ── Was gemessen wurde ──

   Der Abstand zwischen Bildkante und Textkante war **20px** — und zwar
   **schon vorher**. Gegenprobe am 03.09.2026: die Sektion wurde im Browser
   auf den Stand vor dem Rasterumbau zurückgesetzt (Avadas prozentuale Rinne
   statt der festen, Zeile wieder herausgezogen), die Lücke blieb bei 20px.
   Der Umbau hat sie also nicht verengt; sie war immer so eng.

   **Warum 20 und nicht 40:** Die Rinne sitzt als Innenabstand am
   Spaltenwrapper — links wie rechts 20px. Zwischen zwei Spalten ergäbe das
   40px. Hier trägt der Wrapper der linken Spalte aber **das Bild als
   Hintergrund**, und ein Hintergrund deckt den Innenabstand mit ab. Die
   rechten 20px der Bildspalte sind damit unsichtbar; sichtbar bleibt allein
   der linke Innenabstand der Textspalte.

   ── Die Regel ──

   Die Textspalte bekommt links `--rjr-einleitung-luft` statt der halben
   Rinne. **Erst ab 1201px**: darunter stehen die Spalten enger beieinander,
   und Vincenzo hat Tablet und Telefon ausdrücklich ausgenommen. Die rechte
   Kante der Sektion bleibt unangetastet — der Textblock wird schmaler, er
   wandert nicht.

   Klasse doppelt, weil die Rasterregel weiter oben mit `#main` beginnt und
   sonst gleich schwer wiegt.
   ========================================================================= */
@media (min-width: 1201px) {
	#main .rjr-einleitung.rjr-einleitung > .fusion-builder-row > .fusion-layout-column:last-child > .fusion-column-wrapper {
		padding-left: var(--rjr-einleitung-luft) !important;
	}
}


/* =========================================================================
   PROJEKTE: BILDERGALERIE — 10.10.2026

   Vorgabe Vincenzo: die drei Projektkarten raus, an ihre Stelle eine
   Galerie nach der 21st.dev-Komponente «carousel-circular-image-gallery».
   Die Bewegung macht `js/rjr-galerie.js`; hier stehen Bühne, Punkte und
   Pfeile. Die Regeln der alten Karten und des Banners sind am 10.10.2026
   entfernt (Hinweis im Abschnitt «Sektion Projekte»).

   ── Bühne ──

   Volle Inhaltsbreite wie vorher die Kartenreihe, 28px Radius wie jede
   Bildkachel der Seite. 16:9, aber höchstens 640px bzw. 72 % der
   Fensterhöhe — sonst wäre sie bei 1440px über 730px hoch und passte nicht
   unter den Kopf. Unter 768px seit dem 28.10.2026 **3:4 hochkant** (vorher
   4:3): die echten Projektfotos sind alle hochkant, in 4:3 wäre ein Foto
   auf dem Telefon keine 90px breit. Die Vorlage war fest quadratisch; das
   Skript rechnet in Bildschirmpixeln und nimmt jedes Seitenverhältnis.

   ── Fotos (28.10.2026) ──

   Das Foto steht ganz in der Mitte, die Seiten füllt eine unscharfe Fassung
   desselben Bildes (`data-rjr-hinter`, siehe `js/rjr-galerie.js`). Passen
   die Punkte nicht in eine Reihe, setzt das Skript `.rjr-galerie--ohne-punkte`:
   Punkte aus, es bleiben Pfeile und Wischen. Ein Zähler «3 / 22» stand dort
   nur kurz, auf dem Telefon ohne Nummer gewünscht (Vincenzo, 28.10.2026).

   ── Punkte und Pfeile ──

   Punkte: das Vorschaubild mit weissem Ring (Vorlage), der aktuelle etwas
   grösser und mit vollem Ring. Pfeile: der graue Knopf der Seite (#f5f5f5,
   beim Überfahren #dedede mit Ring, siehe «Hover-Regel»), in die Bühne
   gesetzt statt daneben — neben einer Bühne über die volle Breite ist kein
   Platz.

   ── Radien (Vorgabe Vincenzo, 10.10.2026: «gleiche Rundung wie der Rest
   der Webseite») ──

   Erst rund wie in der Vorlage, jetzt nach den kleinen Elementen der Seite:
   Pfeile 56px → **16px** wie die Formularfelder, Vorschaubilder 26px →
   **8px**. Auf dem Telefon 44px → 12px und 22px → **6px** wie das
   Häkchenfeld im Formular. Auch die Überblendung ist seither kein Kreis
   mehr, sondern ein abgerundetes Quadrat nach derselben Regel (16px,
   kleiner anteilig) — gerechnet in `js/rjr-galerie.js`, `setze()`.

   Klassen doppelt: Avada gestaltet `button`, `ul` und `li` im Textelement
   selbst und lädt nach dem Child-Theme.
   ========================================================================= */
.rjr-galerie.rjr-galerie {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: max(320px, min(640px, 72svh));
	border-radius: 28px;
	overflow: hidden;
	isolation: isolate;
	background: var(--awb-color7);
	/* Senkrecht scrollt die Seite, waagrecht wischt die Galerie. */
	touch-action: pan-y;
	-webkit-user-select: none;
	user-select: none;
}

/* Rückfallebene ohne JavaScript: das erste Bild füllt die Bühne. */
.rjr-galerie.rjr-galerie .rjr-galerie__bilder {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rjr-galerie.rjr-galerie .rjr-galerie__bilder li {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
}
.rjr-galerie.rjr-galerie .rjr-galerie__bilder li + li {
	display: none;
}
.rjr-galerie.rjr-galerie .rjr-galerie__bilder img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.rjr-galerie.rjr-galerie--bereit .rjr-galerie__bilder {
	display: none;
}

.rjr-galerie__svg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.rjr-galerie__punkte {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.rjr-galerie.rjr-galerie .rjr-galerie__punkt {
	position: absolute;
	width: 26px;
	height: 26px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, 0.7);
	border-radius: 8px;
	background-color: transparent;
	background-position: center;
	background-size: cover;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	transform: translate(-50%, -50%);
	cursor: pointer;
	pointer-events: auto;
	-webkit-appearance: none;
	appearance: none;
	transition: transform 300ms var(--rjr-anim-kurve), border-color 300ms ease;
}
.rjr-galerie.rjr-galerie .rjr-galerie__punkt:hover {
	border-color: #fff;
}
.rjr-galerie.rjr-galerie .rjr-galerie__punkt[aria-current] {
	border-color: #fff;
	transform: translate(-50%, -50%) scale(1.25);
}
.rjr-galerie.rjr-galerie .rjr-galerie__punkt:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.rjr-galerie.rjr-galerie .rjr-galerie__pfeil {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background-color: #f5f5f5;
	color: var(--awb-color7);
	box-shadow: inset 0 0 0 2px #f5f5f5, 0 8px 32px rgba(0, 0, 0, 0.18);
	transform: translateY(-50%);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color 250ms ease, transform 300ms var(--rjr-anim-kurve);
}
.rjr-galerie.rjr-galerie .rjr-galerie__pfeil--zurueck {
	left: 24px;
}
.rjr-galerie.rjr-galerie .rjr-galerie__pfeil--weiter {
	right: 24px;
}
.rjr-galerie.rjr-galerie .rjr-galerie__pfeil:hover {
	background-color: #dedede;
}
.rjr-galerie.rjr-galerie .rjr-galerie__pfeil:active {
	transform: translateY(-50%) scale(0.94);
}
.rjr-galerie.rjr-galerie .rjr-galerie__pfeil:focus-visible {
	outline: 2px solid var(--awb-color5);
	outline-offset: 3px;
}
.rjr-galerie__pfeil svg {
	display: block;
	width: 24px;
	height: 24px;
}

.rjr-galerie.rjr-galerie--ohne-punkte .rjr-galerie__punkte {
	display: none;
}

/* Nur für Bildschirmleser: «Bild 3 von 6: …» nach einem Wechsel von Hand. */
.rjr-galerie .rjr-galerie__ansage {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 767px) {
	.rjr-galerie.rjr-galerie {
		aspect-ratio: 3 / 4;
		max-height: none;
	}
	.rjr-galerie.rjr-galerie .rjr-galerie__punkt {
		width: 22px;
		height: 22px;
		border-radius: 6px;
	}
	.rjr-galerie.rjr-galerie .rjr-galerie__pfeil {
		width: 44px;
		height: 44px;
		border-radius: 12px;
	}
	.rjr-galerie.rjr-galerie .rjr-galerie__pfeil--zurueck {
		left: 12px;
	}
	.rjr-galerie.rjr-galerie .rjr-galerie__pfeil--weiter {
		right: 12px;
	}
	.rjr-galerie__pfeil svg {
		width: 20px;
		height: 20px;
	}
}
