/*
 * EMEU Abstands-Leiter (emeu-spacing) — v1.0.0
 *
 * ZWEI-SCHICHTEN-BAUART (Lumina-GO 2026-08-06): Mengen-Variablen unten,
 * Beziehungs-Klassen darueber. Der Beziehungs-Name traegt den ZWECK und
 * zeigt auf die Leiter — er definiert nie selbst eine Zahl (AAPI-Latte L2).
 * Dieselbe Grammatik wie die Font-Leiter (emeu-typo): Variablen tragen
 * die Menge, Klassen tragen die Beziehung.
 *
 * MODUL-MODELL (Lumina-Setzung 2026-08-06): Ein Modul kennt genau zwei
 * Abstands-Notwendigkeiten — die Interaktion mit anderen Modulen
 * (Aussenabstand) und die Verteilung seiner inneren Elemente (GAP ueber
 * den Eltern-Behaelter). Dazu das ADDITIVE Muster des Vorbilds: der
 * Grund-Takt bleibt ueberall gleich, nur die Ausnahme wird benannt
 * (SSLB-Messung Saatgutfarm-Stelle 2026-08-06).
 *
 * WERTE-HERKUNFT (AAPI-Latte L3):
 * - Basis 0,25rem plus alle Stufen-Vielfachen: abgelesen aus dem
 *   eingefrorenen Vorbild-Stand (LATTEN_abstands-leiter_2026-08-06_AAPI,
 *   Anhang A gap-Stufen plus Anhang B mt-Stufen — Vereinigungsmenge)
 * - GAP 12x, ab mittlerer Breite 16x; Zusatz-Abstand 5x, ab mittlerer
 *   Breite 6x: SSLB-Stellen-Messung (messwerte-Protokoll 2026-08-06-1700)
 * - HAUS-ENTSCHEIDUNGEN, als solche markiert: der Namensraum --espace-*
 *   (die Vorbild-Variable --spacing ist im Haus durch die gewachsene
 *   Alt-Familie belegt — Kollisions-Check 2026-08-06 gruen fuer espace);
 *   der Breakpoint 768px ("mittlere Breite" des Vorbilds, exakter Wert
 *   dort nicht erhoben — konsistent zur Typo-Leiter gewaehlt); die
 *   ZUORDNUNG der Stufe 30 zur Modul-Beziehung (die Stufe selbst ist
 *   Anhang-B-belegt, ihre Verwendung zwischen Modulen ist Anfangswert
 *   und wird am Scroll-Gefuehl mit Professor Lumina geeicht — dank
 *   Beziehungs-Klasse ein Ein-Zeilen-Edit)
 *
 * VERHAELTNIS ZUR ALT-FAMILIE: Die elf gewachsenen spacing__-Klassen in
 * emeu-design-system/dist/emeu-classes.css bleiben unangetastet und
 * tragen die Bestands-Seiten weiter. Diese Datei ist die NEUE Heimat
 * (Umzugs-Muster wie Brand-DNA S093); Abbau der Alt-Familie nur auf
 * Professor Luminas Wort. Alle drei Klassen-Namen hier sind gegen den
 * gesamten mu-plugin-CSS-Bestand kollisions-geprueft.
 *
 * TEXT-NEUTRALISIERUNG (AAPI-Latte L4): Die Entfernung der Abstaende AM
 * TEXT (margin 0 ueber den vollen Knoten-Satz) wohnt in der Anwendungs-
 * Regel der Font-Leiter (emeu-typo v1.1.0) — EIN Ort, hier bewusst nicht
 * dupliziert. Abstaende wohnen am Behaelter, nie am Text-Knoten.
 */

/* ============================================================
 * SCHICHT 1 — DIE MENGEN-LEITER
 *
 * EINE Basis, jede Stufe ein ganzzahliges Vielfaches (AAPI-Latte L1:
 * maschinell pruefbar, Name entspricht Faktor — ein Wert, der kein
 * Vielfaches ist, kann hier strukturell nicht entstehen). Die Leiter
 * traegt genau die im Vorbild belegten Stufen — bedarfs-gewachsen wie
 * dort, nicht vollstaendig ausdefiniert; neue Stufen kommen mit Beleg.
 * ============================================================ */
:root {
  --espace-base: 0.25rem;
  --espace-0: calc(var(--espace-base) * 0);
  --espace-1: calc(var(--espace-base) * 1);
  --espace-2: calc(var(--espace-base) * 2);
  --espace-3: calc(var(--espace-base) * 3);
  --espace-4: calc(var(--espace-base) * 4);
  --espace-5: calc(var(--espace-base) * 5);
  --espace-6: calc(var(--espace-base) * 6);
  --espace-8: calc(var(--espace-base) * 8);
  --espace-10: calc(var(--espace-base) * 10);
  --espace-11: calc(var(--espace-base) * 11);
  --espace-12: calc(var(--espace-base) * 12);
  --espace-16: calc(var(--espace-base) * 16);
  --espace-20: calc(var(--espace-base) * 20);
  --espace-30: calc(var(--espace-base) * 30);
  --espace-40: calc(var(--espace-base) * 40);
}

/* ============================================================
 * SCHICHT 2 — DIE BEZIEHUNGS-KLASSEN
 *
 * Gedoppelte Selektoren (0,2,0) wie in der Font-Leiter: gewinnen
 * strukturell gegen Theme- und Builder-Basisregeln (0,1,0), ohne von
 * der Lade-Reihenfolge abzuhaengen. Drei Beziehungen zum Start —
 * bedarfs-gewachsen wie das Vorbild; weitere Beziehungen kommen an
 * der Stelle, die sie braucht, nie auf Vorrat.
 * ============================================================ */

/* (e) SPACING ZWISCHEN MODULEN — die Aussen-Beziehung.
 * Der Abstand gehoert der BEZIEHUNG zwischen zwei Modulen, nicht dem
 * einzelnen Modul: der Nachbar-Kombinator greift nur, wo ZWEI Traeger
 * aufeinander folgen. Erstes Modul der Seite bekommt strukturell keinen
 * Kopf-Abstand, letzte bekommt keinen Fuss-Anhang — keine first/last-
 * Sonderfaelle. Vergabe: die Klasse an JEDES Modul der Seite.
 * Stufe 30 (7,5rem) als Anfangswert, Eichung am Scroll-Gefuehl. */
.spacing__module-to-module.spacing__module-to-module + .spacing__module-to-module.spacing__module-to-module {
  margin-block-start: var(--espace-30);
}

/* (d) INNER-SPACING — die GAP-Regel ueber das Eltern-DIV.
 * Verteilung der inneren Elemente per gap am Behaelter. Wirkt an Flex-
 * und Grid-Behaeltern (Elementor-Container sind Flex); an einem Nicht-
 * Flex-Behaelter bewusst wirkungslos, statt heimlich Raender zu
 * erfinden. Werte: Saatgutfarm-Stelle (12x, ab mittlerer Breite 16x). */
.spacing__module-inner.spacing__module-inner {
  gap: var(--espace-12);
}

/* ADDITIVES MUSTER — die benannte Ausnahme (Lumina-Anmerkung
 * small-business-stories: zwischen Intro und Absaetzen ein groesserer
 * Einschnitt). Die groessere Luecke entsteht NICHT durch eine eigene
 * grosse Stufe, sondern durch Addition: Grund-GAP des Behaelters PLUS
 * dieser Zusatz am Intro-BEHAELTER (dem DIV, nie dem Text-Knoten).
 * Werte: Saatgutfarm-Stelle (5x, ab mittlerer Breite 6x). */
.spacing__intro-to-text.spacing__intro-to-text {
  margin-block-end: var(--espace-5);
}

/* Mittlere Breite (Haus-Breakpoint 768px, konsistent zur Typo-Leiter). */
@media (min-width: 768px) {
  .spacing__module-inner.spacing__module-inner {
    gap: var(--espace-16);
  }
  .spacing__intro-to-text.spacing__intro-to-text {
    margin-block-end: var(--espace-6);
  }
}
