/* Bruecke zwischen Elementors Bausteinen und dem Entwurfs-Stylesheet.
 *
 * Sie ist absichtlich kurz. Der grosse Teil dessen, was hier anfangs stand,
 * war nur ein Kampf um die Ladereihenfolge — geloest dadurch, dass site.css
 * seit dem 26.08.2026 NACH Elementors CSS geladen wird. Uebrig bleibt, was
 * sich nicht durch Reihenfolge loesen laesst: Elementor haengt die
 * Entwurfsklasse an die aeussere Huelle eines Bausteins, waehrend das
 * eigentliche Element eine Ebene tiefer sitzt.
 *
 * Geladen auf allen Seiten der Website.
 *
 * WARUM an einigen Stellen "html body" davor steht: Im EDITOR ist auf die
 * Ladereihenfolge kein Verlass — Elementor spielt sein CSS dort nachtraeglich
 * ein und gewinnt jeden Gleichstand, auch wenn diese Datei auf der
 * ausgelieferten Seite spaeter kommt. Regeln, die gegen eine Vorgabe des
 * Gestaltungssatzes antreten, brauchen deshalb Spezifitaet statt Reihenfolge.
 * Ohne das erschien der umrandete Knopf im Editor dunkel gefuellt und war
 * nicht lesbar. Am 26.08.2026 gesehen.
 */

/* Ueberschrift: die Klasse traegt die Huelle, der Titel steht darin. */
.elementor-widget-heading .elementor-heading-title {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  margin: 0;
}

/* Fliesstext: der Absatz erbt von der Huelle, bringt aber keinen eigenen
   Abstand mit — die Abstaende kommen aus dem Entwurf.
   Bewusst KEIN "font: inherit" hier: das wuerde Regeln wie ".rows p"
   aushebeln, die den Absatz gezielt ansprechen. */
.elementor-widget-text-editor p {
  margin: 0;
}

/* Knoepfe. Aussehen und Masze des Standardknopfs stehen seit dem 26.08.2026
   im Elementor-Gestaltungssatz, nicht mehr hier — dadurch zeigt der Editor
   von sich aus den Marken-Knopf, und ein Klick auf die Farbpalette kann ihn
   nicht mehr versehentlich umfaerben. Hier bleibt nur, was der Gestaltungssatz
   nicht kennt. */

/* Mindestgroesze der Tippflaeche — dafuer gibt es keinen Regler im Kit. */
html body .elementor-widget-button .elementor-button {
  min-height: 44px;
}

/* Die zweite Knopfart: umrandet statt gefuellt. Der Gestaltungssatz kennt nur
   einen Knopf, also ist die Ausnahme hier richtig aufgehoben. */
/* Die zweite Knopfart: umrandet statt gefuellt. Der Gestaltungssatz kennt nur
   einen Knopf, also ist die Ausnahme hier richtig aufgehoben.

   Wichtig dazu in den Baustein-Daten: bei diesen Knoepfen steht der
   Hintergrundtyp ausdruecklich auf leer. Er steuert, OB Elementor ueberhaupt
   eine Regel fuer die Flaeche einspritzt. Bleibt er ungesetzt, greift die
   Vorgabe des Bausteins (globale Akzentfarbe) und erzeugt eine Regel mit vier
   Klassen, gegen die hier kein Ankommen ist — der Knopf war dann im Editor
   dunkel gefuellt und unlesbar. Mit leerem Typ entsteht keine solche Regel,
   und diese Zeilen genuegen ohne !important. (26.08.2026, Hinweis von
   Ferdinand: im Editor den Hintergrundtyp umschalten macht ihn weisz.) */
html body .af-btn--ghost .elementor-button {
  background: transparent;
  color: var(--fg-strong);
  border-color: var(--border-2);
}
html body .af-btn--ghost .elementor-button:hover {
  background: var(--bg-section);
  color: var(--fg-strong);
  border-color: var(--border-2);
}

/* Die erste Knopfart: gefuellt. Fehlte hier bis zum 10.09.2026, und der
   Mangel war im hellen Modus unsichtbar — deshalb ist er lange stehen
   geblieben. Elementors globale Akzentfarbe ist ein fester Hexwert (#112233)
   und dreht sich beim Themenwechsel nicht mit. Im Dunkelmodus hatte der
   Knopf damit exakt die Hintergrundfarbe der Seite: Kontrast 1,00, gemessen
   auf /preise/ am CTA "30 Tage kostenlos testen". Sichtbar blieb nur die
   weisze Schrift, die Knopfflaeche war weg — und der umrandete Nebenknopf
   daneben sah dadurch klickbarer aus als die Hauptaktion.

   Aufgefallen durch einen oeffentlichen Kommentar, nicht durch uns.

   Zwei Klassen plus zwei Elemente schlagen die zwei Klassen der
   Baustein-Regel (.elementor-widget-button .elementor-button). Kein
   !important noetig. */
html body .af-btn--primary .elementor-button {
  background-color: var(--primary);
  color: var(--primary-fg);
  border-color: transparent;
}
html body .af-btn--primary .elementor-button:hover {
  background-color: var(--primary-h);
  color: var(--primary-fg);
}

/* Elementor legt zwischen die Abschnitte 20 px Behaelterabstand, die im Entwurf
   nicht vorkommen. Dort ist "padding:74px 0" der GANZE Rhythmus, und die
   farbigen Baender tragen ihre Haarlinien oben und unten, weil sie unmittelbar
   aneinanderstossen sollen. Mit den 20 px schwebt die Linie stattdessen frei,
   und zwischen zwei Abschnitten stehen 168 px statt der entworfenen 148.

   Am 10.09.2026 von aussen als "ungewollte Pixel zwischen zwei Abschnitten"
   gemeldet — zu Recht. Der Wandler setzt keine Luecke, sie ist Elementors
   Vorgabe, die niemand ueberschrieben hat.

   :has(> .section) trifft genau den Seitenbehaelter, der unsere Abschnitte
   haelt, und laesst jeden anderen Container in Ruhe. */
.e-con:has(> .section){row-gap:0}

/* Elementor stellt jeden Container auf "Spalte". Wo der Entwurf eine Reihe
   meint, muss die Richtung zurueckgedreht werden. */
.e-con.ctarow,
.e-con.pills {
  flex-direction: row;
  align-items: center;
}

/* Die Huellen um den Knopf sollen die Reihe nicht auseinanderziehen.
   Bewusst NICHT "display: contents": ein Element ohne eigene Box laesst sich
   im Editor nicht anklicken, auswaehlen oder ziehen, und Elementor hebt die
   Angabe dort auf. Die Huellen bleiben deshalb normale Kaesten und werden
   selbst zu Elementen der Reihe. Am 26.08.2026 im Editor gesehen. */
.e-con.ctarow > .elementor-widget {
  width: auto;
  flex: 0 0 auto;
}

/* Eine Zeile aus .rows ist im Entwurf ein <li>, hier ein Container.
   Der Entwurf spricht ".rows>li" an, was einen Container nicht trifft. */
.rows > .e-con.row {
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 20px;
  padding: 24px 0;
  align-items: start;
}
.e-con.row > .e-con {
  display: block;
  padding: 0;
}

/* Der Aufklapper bringt eigene Rahmen, Flaechen und ein eigenes Zeichen mit;
   das Aussehen kommt aus ".faq" im Entwurf. */
.faq .e-n-accordion-item {
  border: 0;
  border-bottom: 1px solid var(--border);
  background: none;
}
.faq summary.e-n-accordion-item-title {
  padding: 20px 0;
  background: none;
  border: 0;
}
.faq .e-n-accordion-item-title-icon {
  display: none;
}
.faq .e-con {
  padding: 0;
}

/* Abstaende der nachgestellten Verweiszeile und des letzten Kopfblocks. */
.af-nachsatz {
  margin-top: 26px;
}
.af-ohne-abstand {
  margin-bottom: 0;
}

/* Elementors Knopf-Vorgabe trifft nicht nur .elementor-button, sondern jedes
   gewoehnliche <button> (Selektor ".elementor-kit-NN button"). Damit bekamen
   der Schalter fuers Farbschema und der Menue-Knopf die dunkle Knopf-Flaeche.
   Das "body" davor ist noetig, weil die Kit-Regel aus einer Klasse UND einem
   Typ besteht — der Entwurf mit einer Klasse allein verliert den Gleichstand.
   Gilt fuer alle Seiten der Website, nicht nur die aus Bausteinen gebauten. */
html body .iconbtn,
html body .navtoggle {
  width: 40px;
  height: 40px;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
}
html body .iconbtn {
  color: var(--muted);
}
html body .navtoggle {
  color: var(--fg);
}
html body .iconbtn:hover {
  background: var(--card);
  color: var(--fg-strong);
}

/* Die Kopfzeile klebt im Entwurf oben — .mhead ist sticky mit top:0. Seit sie
   aus der Theme-Builder-Vorlage kommt, ist ihr umgebender Block aber nur so
   hoch wie sie selbst, und ein klebendes Element kann nur INNERHALB seines
   Elternteils kleben. Sie scrollte deshalb mit weg. Darunter klaffte die
   57-Pixel-Luecke, fuer die die Kapitel-Leiste kalibriert ist (.bk__bar sitzt
   auf top:57px), und der Text des Kapitels lief sichtbar darueber hinweg.
   Also klebt jetzt die Huelle selbst. Am 26.08.2026 beim Scrollen gesehen. */
.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 50;
}

/* Abstand an einer Ueberschrift: Elementor haengt unsere Klassen an die
   Widget-HUELLE, nicht an das h2 — ein margin-bottom am h2 liefe also ins
   Leere. Und die Huelle bekommt von Elementor ein margin-block-end; eine
   schlichte margin-bottom-Angabe verliert gegen die logische Eigenschaft.
   Beides zusammen ist der Grund, warum die Angabe aus dem Entwurf hier
   zweimal nicht ankam. Gemessen 28.08.2026. */
.e-con .elementor-widget.h2--spaced{margin-block-end:14px}
/* Drei Klassen im Selektor, weil Elementor mit
   .e-con .elementor-widget.elementor-widget{margin-block-end:0} genau so
   viel aufbietet. Zwei reichen nicht — mit zwei bleibt der Abstand bei 0. */

/* Formularfelder: Elementor liefert sie in seinem eigenen Grau mit 3px Radius
   und weissem Grund — in der dunklen Fassung waere das ein weisser Kasten.
   Hier auf die Marken-Werte gezogen. Die Beschriftungen erben ohnehin. */
.elementor-form .elementor-field-group input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.elementor-form .elementor-field-group textarea,
.elementor-form .elementor-field-group select{
  font-family:var(--font-sans);
  font-size:15px;
  color:var(--fg);
  background:var(--card);
  border:1px solid var(--border-2);
  border-radius:var(--radius-sm);
  padding:11px 14px;
  min-height:44px;
}
.elementor-form .elementor-field-group textarea{min-height:120px;line-height:1.5}
.elementor-form .elementor-field-group input:not([type="submit"]):focus-visible,
.elementor-form .elementor-field-group textarea:focus-visible{
  outline:2px solid var(--ring);
  outline-offset:1px;
  border-color:var(--fg-strong);
}
.elementor-form .elementor-field-group > label{
  font-family:var(--font-sans);
  font-size:14px;
  color:var(--muted);
  margin-bottom:6px;
}
/* Pflichtfeld-Stern: Elementor setzt ihn per ::after auf das Label in
   seinem eigenen Rot. Auf den Fehlerton der CI ziehen (#B23A3A). */
.elementor-form .elementor-field-group.elementor-mark-required > label::after{color:#B23A3A}

/* Absendeknopf: der Gestaltungssatz des Builders traegt eine FESTE Farbe
   (#112233). In der dunklen Fassung ist das der Seitenhintergrund — der Knopf
   verschwindet. Die Marken-Knoepfe nehmen stattdessen --primary, das sich mit
   der Fassung dreht. Drei Klassen im Selektor, weil die seiteneigene Regel
   .elementor-widget-form .elementor-button[type="submit"] zwei plus Attribut
   aufbietet. Gemessen 28.08.2026. */
.elementor-widget-form .elementor-form .elementor-button{
  background-color:var(--primary);
  color:var(--primary-fg);
  font-family:var(--font-sans);
  font-weight:600;
  border-radius:var(--radius-sm);
  min-height:44px;
}
.elementor-widget-form .elementor-form .elementor-button:hover{background-color:var(--primary-h)}

/* Der Gestaltungssatz des Builders faerbt JEDES <button> auf der Seite —
   .elementor-kit-26 button. Unsere eigenen Knopf-Klassen verlieren dagegen,
   sobald ein Knopf ein <button> ist statt ein <a>: der Such-Knopf im Handbuch
   stand als gefuellter Navy-Kasten da, obwohl er .btn--ghost traegt.
   Gemessen 28.08.2026. Deshalb hier noch einmal, mit Element-Vorspann. */
html body button.btn{
  background:transparent;
  border:1px solid transparent;
  color:var(--fg-strong);
  font-family:var(--font-sans);
  font-size:15px;
  font-weight:600;
  padding:13px 22px;
  min-height:44px;
  border-radius:var(--radius-sm);
  line-height:1;
}
html body button.btn--primary{background:var(--primary);color:var(--primary-fg)}
html body button.btn--primary:hover{background:var(--primary-h)}
html body button.btn--ghost{border-color:var(--border-2);color:var(--fg-strong)}
html body button.btn--ghost:hover{background:var(--bg-section)}
html body button.btn--sm{min-height:40px;padding:11px 16px;font-size:14px}

/* Ankreuzfelder. Ohne diese Regeln erben die Beschriftungen die Serifen-
   Schrift des Flieszttextes und stehen doppelt so gross da wie die
   Feldbeschriftungen darueber; die Kaesten selbst bekaemen ausserdem die
   44px-Mindesthoehe der Textfelder. Gemessen 28.08.2026. */
.elementor-form .elementor-field-subgroup{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.elementor-form .elementor-field-subgroup .elementor-field-option{display:flex;align-items:center;gap:10px}
.elementor-form .elementor-field-subgroup label{
  font-family:var(--font-sans);
  font-size:15px;
  font-weight:400;
  color:var(--fg);
  margin:0;
  cursor:pointer;
}
.elementor-form .elementor-field-subgroup input[type="checkbox"],
.elementor-form .elementor-field-subgroup input[type="radio"]{
  width:17px;height:17px;min-height:0;margin:0;flex:0 0 auto;accent-color:var(--primary);
}

/* Aufklapp-Liste (Fragen und Antworten). Elementor faerbt die Titel ueber
   eigene Variablen; ohne Zuweisung bleiben sie in seinem Standard-Fastschwarz
   und sind auf dunklem Grund nicht lesbar. Gemessen 28.08.2026: #1F2124 auf
   #15324C. Die Variablen setzen ist sauberer als die Regel zu ueberstimmen. */
.elementor-widget-n-accordion.faq{
  --n-accordion-title-normal-color:var(--fg-strong);
  --n-accordion-title-hover-color:var(--fg-strong);
  --n-accordion-title-active-color:var(--fg-strong);
  --n-accordion-icon-normal-color:var(--muted);
  --n-accordion-icon-hover-color:var(--fg-strong);
  --n-accordion-icon-active-color:var(--fg-strong);
  --n-accordion-border-color:var(--border);
}

/* Buchumschlag. Elementors frontend.min.css setzt `.elementor img` auf
   border-radius:0 und box-shadow:none. Das ist Spezifitaet (0,1,1); `.book__img`
   in site.css hat (0,1,0) und verliert, obwohl site.css spaeter geladen wird.
   Hier hilft die Reihenfolge also nicht, anders als beim Raster `.book` selbst,
   das als (0,1,0) gegen Elementors (0,1,0) gewinnt und live nachweislich greift.
   Das betraf auch schon den frueheren 1-px-Rahmen: der war auf der
   ausgelieferten Seite nie zu sehen, nur im Entwurf. Am 27.09.2026 auf
   /ueber-uns/ gemessen, berechnet kamen dort border-radius 0 und box-shadow
   none an. "html body" statt ".e-con", damit es auch im Editor haelt. */
html body .book__img{border-radius:8px;
  box-shadow:0 0 0 1px var(--book-rim),var(--shadow-book)}
