/*!
 * LeineGlück KI-Solutions — WPBakery-Bruecke
 * Neutralisiert die Wrapper-Divs des Builders, wo das Design direkte Kindbeziehungen braucht.
 *
 * @author    LeineGlück Online-Marketing
 * @link      https://www.leineglueck.de
 * @copyright © 2026 LeineGlück Online-Marketing
 * @license   GPL-2.0-or-later
 */
/* ==========================================================================
   LeineGlück KI-Solutions — Brücke zwischen Design-Klassen und WPBakery
   WPBakery schiebt um jede Zeile, Spalte und jedes Element zusätzliche
   Wrapper-Divs. Diese Datei neutralisiert sie dort, wo das Design auf ein
   direktes Eltern-Kind-Verhältnis angewiesen ist (Grid, Flex, Abstände).
   Wird NUR in WordPress geladen, nicht in der Standalone-Vorschau.
   ========================================================================== */

/* ------------------------------------- 0. Spezifität gegen js_composer.css
   WPBakery setzt .vc_row{display:flex}. Unsere Sektions- und Rasterklassen
   haben dieselbe Spezifität — wer gewinnt, hinge sonst an der Ladereihenfolge
   der Stylesheets. Mit zwei Klassen im Selektor ist das entschieden. */
.vc_row[class*="lg-sec-"],
.vc_row.lg-sitepart,
.vc_row.lg-scene-row,
.vc_row.lg-box-28 { display: block; }

/* Raster, die zu WPBakery-Spalten wurden, bleiben Grid-Container. Die
   Spaltendefinition selbst kommt weiter aus lg-components.css. */
.vc_row.lg-as-wpb-row { display: grid; }


/* -------------------------------------------------- 1. Zeilen ohne Rinnen
   Die negativen Randmargen von .vc_row lassen jeden Sektionshintergrund
   15px über den Viewport hinauslaufen — auf Mobil der Auslöser für den
   horizontalen Überlauf. Unsere Sektionen bringen ihre Abstände selbst mit. */
.vc_row[class*="lg-sec-"],
.vc_row.lg-sitepart,
.vc_row.lg-scene-row,
.vc_row.lg-box-28 {
  margin-left: 0;
  margin-right: 0;
}
/* WPBakerys 15px-Spaltenpolster nur dort entfernen, wo die Spalte KEINE
   eigene Containerklasse traegt — sonst wuerde auch das 24px-Innenpolster
   des Designs verschwinden, und die Rasterspuren rechnen sich anders aus. */
.vc_row[class*="lg-sec-"] > .vc_column_container:not([class*="lg-"]),
.vc_row.lg-sitepart > .vc_column_container:not([class*="lg-"]),
.vc_row.lg-scene-row > .vc_column_container:not([class*="lg-"]),
.vc_row.lg-box-28 > .vc_column_container:not([class*="lg-"]) {
  padding-left: 0;
  padding-right: 0;
}

/* WPBakery setzt auf .vc_column-inner ein Innenpolster (Standard 35px oben).
   Das würde alle Sektionsabstände des Designs verdoppeln. */
.vc_row[class*="lg-sec-"] > .vc_column_container > .vc_column-inner,
.vc_row.lg-sitepart > .vc_column_container > .vc_column-inner,
.vc_row.lg-scene-row > .vc_column_container > .vc_column-inner,
.vc_row.lg-box-28 > .vc_column_container > .vc_column-inner {
  padding: 0;
}

/* Elementabstand: das Design regelt Abstände über die eigenen Klassen. */
.wpb_content_element,
.wpb_text_column,
.wpb_raw_code { margin-bottom: 0; }


/* --------------------------------- 2. Raster, die WPBakery-Spalten wurden
   .lg-as-wpb-row trägt weiterhin die Grid-Definition des Designs
   (grid-template-columns, gap). Damit das greift, dürfen die Spalten nicht
   mehr über die Bootstrap-Breiten laufen, und die Wrapper zwischen Spalte
   und Karteninhalt müssen durchsichtig sein. */
.vc_row.lg-as-wpb-row {
  margin-left: 0;
  margin-right: 0;
}
.vc_row.lg-as-wpb-row > .vc_column_container {
  width: auto !important;
  padding-left: 0;
  padding-right: 0;
  float: none;
}
.vc_row.lg-as-wpb-row > .vc_column_container > .vc_column-inner,
.vc_row.lg-as-wpb-row > .vc_column_container > .vc_column-inner > .wpb_wrapper,
.vc_row.lg-as-wpb-row .wpb_text_column,
.vc_row.lg-as-wpb-row .wpb_text_column > .wpb_wrapper {
  display: contents;
}

/* Mobil löst das Design die Raster selbst auf (lg-responsive.css).
   WPBakerys eigenes Stacking darf hier nicht dazwischenfunken. */
@media (max-width: 767px) {
  .vc_row.lg-as-wpb-row > .vc_column_container { width: auto !important; }
}


/* ------------------------------------------- 3. Container auf der Spalte
   Sektions-Container (max-width, Innenpolster) sitzen als el_class auf der
   vc_column. Deren Inner-Wrapper darf nichts mehr hinzufügen. */
.wpb_column[class*="lg-box-"] > .vc_column-inner { padding: 0; }


/* --------------------------------------------------- 4. Code-Blöcke (Szene)
   vc_raw_html rendert in .wpb_raw_code. Die Szene positioniert absolut
   gegenüber ihrer Sektion — der Wrapper darf keinen eigenen Kontext bilden. */
.wpb_raw_code.lg-scene-block,
.wpb_raw_code.lg-scene-block > .wpb_wrapper { display: contents; }

/* Im WPBakery-Backend (Editor-Vorschau) soll der Block sichtbar bleiben,
   sonst lässt er sich nicht mehr anklicken. */
.vc_editor .wpb_raw_code.lg-scene-block,
.vc_editor .wpb_raw_code.lg-scene-block > .wpb_wrapper { display: block; }


/* ------------------------------------------------ 5. Theme-Reste abräumen
   Das aktive Theme bringt eigene Typo- und Abstandsregeln mit. Innerhalb
   unserer Sektionen gilt das Design.  Bei Bedarf hier ergänzen. */
[class*="lg-sec-"] .wpb_wrapper > p:last-child { margin-bottom: 0; }


/* ------------------------------------------- 6. Container-Spalten explizit
   Diese drei Klassen sind die Sektionscontainer des Designs (max-width 1200,
   24px Innenpolster). WPBakery setzt auf jeder Spalte 15px — welcher Wert
   gilt, haengt sonst an der Ladereihenfolge der Stylesheets. Hier
   festgeschrieben, damit die Rasterspuren immer gleich rechnen. */
.vc_row > .vc_column_container.lg-box-15,
.vc_row > .vc_column_container.lg-box-21,
.vc_row > .vc_column_container.lg-box-62 {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.vc_row.lg-grid-3 {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* Die Einzelwerte je Spaltenklasse stehen in lg-wpbakery-columns.css —
   automatisch aus dem Baum erzeugt, damit sie mitwandern, wenn sich das
   Design aendert. Diese Datei muss nach js_composer.css geladen werden. */
