/* ============================================================
   Aurora-Core CMS — Öffentliches Block-Stylesheet
   (plans/pages-cms-v2.md §2/§3 — Delivery-Styling für alle
   Block-Renderer aus Cms/Blocks/Renderers/*.cs)

   Nur auf Seiten mit ViewBag.HasCmsBlocks==true geladen (s.
   Views/Pages/ShowPage.cshtml) — Alt-Seiten bleiben unberührt
   (Freeze-Garantie §3.8). Baut NICHT auf baukasten-blocks.css
   (WebBuilder v1) auf, folgt aber denselben Konventionen
   (CSS-Custom-Properties, weiche Schatten, große Radien).

   Breiten-Strategie (wichtig, s. Kopf-Doku):
   Blöcke sind DIREKTE Kinder von <section class="cms-section">
   (s. BlockCompiler.RenderSectionsAsync) — es gibt KEINEN extra
   Wrapper-Div pro Block. Im Editor-Canvas (Phase 4, noch nicht
   gebaut) werden Blöcke zusätzlich in .cms-canvas-block gewrappt.
   Damit die Breitenbegrenzung (cms-width-narrow/wide/full) BEIDE
   Fälle trägt, wird sie direkt auf die Block-Wurzelelemente
   angewendet (.cms-hero, .cms-richtext, .cms-feature-grid, …)
   statt auf einen Container-Div — jede Block-Wurzel bekommt
   max-width + margin-inline:auto von der umschließenden Section
   vererbt (CSS-Custom-Property --cms-content-max, s.u.).
   ============================================================ */

/* ---------- Geist (Hausschrift der Team-Hub-App, self-hosted via npm) ----------
   Wird nur benutzt, wenn das Website-Theme font="geist" gesetzt hat (Cms/Theme/CmsThemeCss.cs
   schreibt dann --cms-font/--cms-font-heading auf 'Geist'). Absolute Pfade, weil dieselbe Datei
   aus /css/views/Pages/, aus dem Editor-Canvas und aus dem Vorschau-iframe geladen wird.
   font-display:swap → kein unsichtbarer Text, falls die Datei später kommt. */
@font-face {
    font-family: 'Geist';
    src: url('/node_modules/geist/dist/fonts/geist-sans/Geist-Variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Geist';
    src: url('/node_modules/geist/dist/fonts/geist-sans/Geist-Italic[wght].woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}
/* Geist Mono — Zweitschrift der markanten Handschrift (Kicker, Meta-Zeilen, Kennzahl-Labels).
   Nur benutzt, wenn das Website-Theme style="markant" hat. */
@font-face {
    font-family: 'Geist Mono';
    src: url('/node_modules/geist/dist/fonts/geist-mono/GeistMono-Variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --cms-primary: #2563eb;
    --cms-primary-rgb: 37, 99, 235;
    --cms-primary-dark: #1d4ed8;
    --cms-text: #0f172a;
    --cms-muted: #64748b;
    --cms-border: #e2e8f0;
    --cms-bg-surface: #ffffff;
    --cms-bg-muted: #f8fafc;
    --cms-bg-inverse: #0f1729;
    --cms-text-inverse: #f1f5f9;
    --cms-muted-inverse: #94a3b8;
    --cms-radius: 14px;
    --cms-radius-sm: 8px;
    --cms-radius-lg: 20px;
    --cms-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);
    --cms-shadow: 0 10px 30px -12px rgba(15, 23, 42, .18), 0 4px 12px -6px rgba(15, 23, 42, .10);
    --cms-shadow-lg: 0 30px 60px -20px rgba(15, 23, 42, .28);
    --cms-max-narrow: 760px;
    --cms-max-wide: 1200px;
    --cms-gap: clamp(1rem, 2vw, 1.75rem);
}

/* ---------- Dark Mode ----------
   bootstrap-dark-5 (in _Layout_Web.cshtml eingebunden) reagiert auf
   @media (prefers-color-scheme: dark); die Seite steuert Dark NICHT
   über eine eigene html.dark/[data-bs-theme]-Klasse (anders als die
   interne App). Trotzdem zusätzlich :is([data-bs-theme="dark"], html.dark)
   mitpflegen, falls ein WebDesignTheme künftig manuell umschaltet
   (gleiches Muster wie baukasten-blocks.css). */
@media (prefers-color-scheme: dark) {
    :root {
        --cms-text: #e6edf7;
        --cms-muted: #94a3b8;
        --cms-border: #1e2b44;
        --cms-bg-surface: #0f1729;
        --cms-bg-muted: #0b1322;
        --cms-bg-inverse: #060a14;
        --cms-text-inverse: #f1f5f9;
        --cms-muted-inverse: #94a3b8;
        --cms-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
        --cms-shadow: 0 12px 32px -12px rgba(0, 0, 0, .6);
        --cms-shadow-lg: 0 30px 60px -18px rgba(0, 0, 0, .7);
    }
}
:is([data-bs-theme="dark"], html.dark) {
    --cms-text: #e6edf7;
    --cms-muted: #94a3b8;
    --cms-border: #1e2b44;
    --cms-bg-surface: #0f1729;
    --cms-bg-muted: #0b1322;
    --cms-bg-inverse: #060a14;
    --cms-text-inverse: #f1f5f9;
    --cms-muted-inverse: #94a3b8;
    --cms-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
    --cms-shadow: 0 12px 32px -12px rgba(0, 0, 0, .6);
    --cms-shadow-lg: 0 30px 60px -18px rgba(0, 0, 0, .7);
}

/* ============================================================
   Section-Wrapper (BlockCompiler.RenderSectionsAsync):
   <section class="cms-section cms-bg-{default|surface|muted|inverse} cms-width-{narrow|wide|full}">
   ============================================================ */
.cms-section {
    /* Beide Werte kommen aus dem Website-Theme (Cms/Theme/CmsThemeCss.cs, Achse "Handschrift").
       Die Fallbacks sind exakt das Verhalten vor dem 29.07.2026 — Alt-Seiten ohne Theme bleiben
       unverändert: gleiches Padding, keine Trennlinie. */
    padding-block: var(--cms-section-pad, clamp(2.5rem, 6vw, 5.5rem));
    color: var(--cms-text);
    font-family: var(--cms-font, inherit);
    border-top: 1px solid var(--cms-section-divider, transparent);
}
/* Die erste Sektion sitzt direkt unter dem Menü — dort wäre die Linie eine doppelte Kante. */
.cms-menu + .cms-section { border-top: 0; }

/* Kicker/Eyebrow über der Überschrift (hero, cta, feature-grid, stats, testimonials).
   In der ruhigen Handschrift eine schlichte gesperrte Zeile in der Leitfarbe, in der markanten
   zusätzlich in Geist Mono — das ist das prägendste Element der Vorlage. */
/* Zwei Selektoren mit (0,2,0): der Kicker ist ein <p> INNERHALB von .cms-hero/.cms-cta, und
   `.cms-hero p` (0,1,1) steht weiter unten in der Datei — ohne die höhere Spezifität würde der
   Kicker dessen Fließtext-Größe und -Farbe erben statt seiner eigenen. */
.cms-section .cms-eyebrow,
.cms-canvas-block .cms-eyebrow,
.cms-eyebrow {
    display: var(--cms-eyebrow-display, block);
    font-family: var(--cms-font-mono, var(--cms-font, inherit));
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--cms-primary);
    margin: 0 0 .75rem;
}
.cms-bg-inverse .cms-eyebrow { color: var(--cms-text-inverse); opacity: .75; }
/* Per-Website-Theme (Cms/Theme/CmsThemeCss.cs): Schrift-Hooks — ohne gesetzte
   Variablen (Alt-Seiten / kein Theme) exakt das bisherige inherit-Verhalten. */
.cms-menu, .cms-footer { font-family: var(--cms-font, inherit); }
.cms-section h1, .cms-section h2, .cms-section h3,
.cms-menu-brand { font-family: var(--cms-font-heading, inherit); }
.cms-bg-default { background: transparent; }
.cms-bg-surface { background: var(--cms-bg-surface); }
.cms-bg-muted { background: var(--cms-bg-muted); }
.cms-bg-inverse {
    /* Der Glow (--cms-inverse-glow) kommt aus der Handschrift "markant" und ist ein radialer
       Schimmer in der Leitfarbe; in der ruhigen Handschrift ist er "none" und die Fläche bleibt
       flach wie bisher. Reihenfolge: Glow ZUERST, damit er über der Grundfarbe liegt. */
    background: var(--cms-inverse-glow, none), var(--cms-bg-inverse);
    color: var(--cms-text-inverse);
}
.cms-bg-inverse .cms-muted,
.cms-bg-inverse .cms-blog-card-date,
.cms-bg-inverse .cms-blog-card-excerpt { color: var(--cms-muted-inverse); }

/* Hero und CTA bringen eine EIGENE helle Fläche mit (--cms-bg-muted bzw. color-mix darüber). In
   einer inversen Section erbten sie bisher trotzdem die helle Sektionsschrift — Ergebnis: weiße
   Überschrift auf hellem Panel, praktisch unlesbar. Die Fläche wird deshalb mit-invertiert und
   dabei eine Spur HELLER als der Sektionsgrund (dieselbe Elevation-Logik wie im Dark Mode der App:
   höher gestapelt = heller). Höhere Spezifität als .cms-hero/.cms-cta → reihenfolgeunabhängig. */
.cms-bg-inverse .cms-hero,
.cms-bg-inverse .cms-cta {
    background-color: color-mix(in srgb, #ffffff 8%, var(--cms-bg-inverse));
    color: var(--cms-text-inverse);
}
.cms-bg-inverse .cms-hero p,
.cms-bg-inverse .cms-cta p { color: var(--cms-muted-inverse); }

/* Folgen zwei dunkle Sektionen aufeinander, sind sie EINE Bühne. Die Trennlinie der Handschrift
   "markant" (--cms-section-divider = --cms-border, ein heller Ton) liefe dort als sichtbare Naht
   quer durch die Fläche — aufgefallen auf /ki-telefonassistent, wo die Telefon-Bühne direkt auf
   den Hero folgt. Am Übergang hell→dunkel bleibt die Linie, dort ist sie die gewollte Kante. */
.cms-bg-inverse + .cms-bg-inverse { border-top-color: transparent; }

/* Breitenbegrenzung: greift auf direkte Block-Wurzeln UND auf die
   Editor-Canvas-Wrapper (.cms-canvas-block), s. Kopf-Doku. */
.cms-section.cms-width-narrow > *,
.cms-section.cms-width-narrow > .cms-canvas-block > * {
    max-width: var(--cms-max-narrow);
    margin-inline: auto;
}
.cms-section.cms-width-wide > *,
.cms-section.cms-width-wide > .cms-canvas-block > * {
    max-width: var(--cms-max-wide);
    margin-inline: auto;
}
.cms-section.cms-width-full > *,
.cms-section.cms-width-full > .cms-canvas-block > * {
    max-width: none;
}
/* Innerhalb der Section brauchen aufeinanderfolgende Blöcke vertikalen Abstand. */
.cms-section > * + *,
.cms-section > .cms-canvas-block + .cms-canvas-block {
    margin-top: var(--cms-gap);
}
/* Horizontales Innenpadding, damit Inhalte am Viewport-Rand nicht kleben (auch bei cms-width-full).
   ACHTUNG: .cms-hero (und nur der) setzt weiter unten seine gesamte padding-Kurzform aus dem
   Theme (--cms-hero-pad) und überschreibt diese Zeile bei gleicher Spezifität. Ein Theme, dessen
   Hero-Padding keinen seitlichen Anteil hat, nimmt der H1 damit den Viewport-Rand — sichtbar nur
   unterhalb der max-width der Section, oberhalb kaschiert ihn die Zentrierung (Fund 31.07.2026). */
.cms-section > * { padding-inline: 1.25rem; }
.cms-section.cms-width-full > .cms-hero,
.cms-section.cms-width-full > .cms-cta { padding-inline: 0; }


/* ============================================================
   Hero (HeroRenderer): <section class="cms-hero cms-hero-{left|center|right}"
   [style="background-image:url(...)"]> <h1> <p> <a class="btn btn-primary">
   ============================================================ */
.cms-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 360px;
    /* In der markanten Handschrift trägt die SECTION die Farbfläche und der Hero sitzt
       randlos darin (Vorbild team.teamhub.software); in der ruhigen bleibt er die abgesetzte
       Karte wie bisher. Fallbacks = bisheriges Verhalten. */
    padding: var(--cms-hero-pad, clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem));
    border-radius: var(--cms-hero-radius, var(--cms-radius-lg));
    background-color: var(--cms-hero-bg, var(--cms-bg-muted));
    background-size: cover;
    background-position: center;
    position: relative;
    isolation: isolate;
}
/* Die WAAGERECHTE Achse gehört nicht dem Theme, sondern der Fluchtlinie der Section: --cms-hero-pad
   ist eine padding-KURZFORM und nahm dem Hero mit einem einzelnen Wert (Handschrift "markant": 0)
   auch den Abstand zum Bildschirmrand — er war dann der einzige Block ohne (Fund 31.07.2026).
   Der Fallback 1.25rem ist exakt das padding-inline von `.cms-section > *`; wer einen anderen
   Innenabstand braucht (Handschrift "ruhig": abgesetzte Karte), setzt --cms-hero-pad-inline.
   `.cms-section.cms-width-full > .cms-hero` bleibt mit (0,3,0) stärker — Vollbild-Heros ohne Rand
   funktionieren unverändert. Trennlinien der Sections sind nicht betroffen, die laufen weiter
   von Rand zu Rand. */
.cms-section > .cms-hero,
.cms-section > .cms-canvas-block > .cms-hero {
    padding-inline: var(--cms-hero-pad-inline, 1.25rem);
}

/* Overlay-Verdunkelung + weiße Schrift, sobald ein Hintergrundbild gesetzt ist (Inline-style erkennbar an background-image). */
.cms-hero[style*="background-image"] {
    color: #fff;
}
.cms-hero[style*="background-image"]::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 23, 42, .35), rgba(15, 23, 42, .65));
    border-radius: inherit;
    z-index: -1;
}
.cms-hero h1 {
    font-weight: var(--cms-h-weight, 800);
    line-height: var(--cms-h1-leading, 1.1);
    letter-spacing: var(--cms-h-tracking, -.02em);
    font-size: var(--cms-h1-size, clamp(2rem, 4.5vw, 3.2rem));
    margin: 0 0 .75rem;
}
.cms-hero p {
    font-size: clamp(var(--cms-body-size, 1rem), 1.5vw, 1.2rem);
    line-height: var(--cms-body-leading, 1.6);
    line-height: 1.6;
    color: var(--cms-muted);
    max-width: 640px;
    margin: 0 0 1.5rem;
}
.cms-hero[style*="background-image"] p { color: rgba(255, 255, 255, .85); }
.cms-hero .btn.btn-primary {
    align-self: flex-start;
    border-radius: var(--cms-btn-radius, 999px);
    padding: .75rem 1.75rem;
    font-weight: var(--cms-btn-weight, 600);
    background-color: var(--cms-primary);
    border-color: var(--cms-primary);
    box-shadow: var(--cms-btn-shadow, var(--cms-shadow-sm));
    transition: transform .15s ease, box-shadow .2s ease;
}
.cms-hero .btn.btn-primary:hover {
    background-color: var(--cms-primary-dark);
    border-color: var(--cms-primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--cms-shadow);
}

/* Ausrichtungs-Varianten */
.cms-hero-left { align-items: flex-start; text-align: left; }
.cms-hero-center { align-items: center; text-align: center; }
.cms-hero-center p { margin-inline: auto; }
.cms-hero-center .btn.btn-primary { align-self: center; }
.cms-hero-right { align-items: flex-end; text-align: right; }
.cms-hero-right p { margin-inline: 0 0 1.5rem auto; }
.cms-hero-right .btn.btn-primary { align-self: flex-end; }


/* ============================================================
   Feature-Grid (FeatureGridRenderer):
   <section class="cms-feature-grid"><h2>…</h2>
     <div class="row"><div class="col cms-feature-item"><i class="bi bi-*"></i><h3>…</h3><p>…</p></div>…</div>
   </section>
   Hinweis: Bootstrap .row/.col liefert die Flex-Basis; wir überschreiben
   auf CSS-Grid, damit "auto-fit, minmax()" ohne feste Spaltenzahl greift.
   ============================================================ */
.cms-feature-grid h2 {
    font-weight: 800;
    letter-spacing: -.02em;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin: 0 0 1.5rem;
    text-align: var(--cms-heading-align, center);
}
.cms-feature-grid > .row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--cms-gap);
    margin: 0;
}
.cms-feature-item {
    padding: 1.75rem;
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    background: var(--cms-bg-surface);
    box-shadow: var(--cms-shadow-sm);
    transition: transform .18s ease, box-shadow .2s ease;
}
.cms-feature-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--cms-shadow);
}
.cms-feature-item > i.bi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--cms-primary) 12%, transparent);
    color: var(--cms-primary);
    font-size: 1.4rem;
    margin-bottom: 1rem;
}
.cms-feature-item h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 .5rem;
}
.cms-feature-item p {
    color: var(--cms-muted);
    line-height: 1.6;
    margin: 0;
}


/* ============================================================
   CTA (CtaRenderer): <section class="cms-cta cms-cta-{left|center|right}">
   <h2> <p> <a class="btn btn-primary">
   ============================================================ */
.cms-cta {
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: var(--cms-radius-lg);
    background: color-mix(in srgb, var(--cms-primary) 8%, var(--cms-bg-muted));
    text-align: center;
}
.cms-cta h2 {
    font-weight: 800;
    letter-spacing: -.02em;
    font-size: clamp(1.5rem, 2.8vw, 2rem);
    margin: 0 0 .5rem;
}
.cms-cta p {
    color: var(--cms-muted);
    font-size: 1.05rem;
    margin: 0 0 1.5rem;
}
.cms-cta .btn.btn-primary {
    border-radius: var(--cms-btn-radius, 999px);
    padding: .85rem 2.25rem;
    font-weight: var(--cms-btn-weight, 600);
    font-size: 1.05rem;
    background-color: var(--cms-primary);
    border-color: var(--cms-primary);
    box-shadow: var(--cms-btn-shadow, var(--cms-shadow-sm));
    transition: transform .15s ease, box-shadow .2s ease;
}
.cms-cta .btn.btn-primary:hover {
    background-color: var(--cms-primary-dark);
    border-color: var(--cms-primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--cms-shadow);
}
.cms-cta-left { text-align: left; }
.cms-cta-center { text-align: center; }
.cms-cta-right { text-align: right; }


/* ============================================================
   Columns (ColumnsRenderer): rendert bereits sein eigenes Grid inline
   (style="display:grid;grid-template-columns:repeat(N,1fr)") — hier
   nur Lücken/Mobil-Fallback + Kind-Slot-Styling ergänzen, NICHT das
   Grid selbst überschreiben (Spaltenzahl kommt dynamisch aus columnCount).
   <div class="cms-columns" style="..."><div class="cms-col">…</div></div>
   ============================================================ */
.cms-columns { width: 100%; }
.cms-col { min-width: 0; }
@media (max-width: 767.98px) {
    .cms-columns { grid-template-columns: 1fr !important; }
}


/* ============================================================
   Accordion (AccordionRenderer) — Bootstrap-Accordion-Markup, hier nur
   optisch aufgewertet (Radien/Schatten/Spacing), Umschalt-Mechanik
   bleibt data-bs-toggle="collapse" (Bootstrap-JS, in _Layout_Web geladen).
   <div class="accordion cms-accordion"><div class="accordion-item">
     <h3 class="accordion-header"><button class="accordion-button …">…</button></h3>
     <div class="accordion-collapse collapse …"><div class="accordion-body">…</div></div>
   </div></div>
   ============================================================ */
.cms-accordion { border-radius: var(--cms-radius); overflow: hidden; box-shadow: var(--cms-shadow-sm); }
.cms-accordion .accordion-item {
    border: 1px solid var(--cms-border);
    background: var(--cms-bg-surface);
}
.cms-accordion .accordion-item + .accordion-item { border-top: 0; }
.cms-accordion .accordion-button {
    font-weight: 600;
    color: var(--cms-text);
    background: var(--cms-bg-surface);
    padding: 1.1rem 1.4rem;
}
.cms-accordion .accordion-button:not(.collapsed) {
    color: var(--cms-primary);
    background: color-mix(in srgb, var(--cms-primary) 6%, var(--cms-bg-surface));
    box-shadow: inset 0 -1px 0 var(--cms-border);
}
.cms-accordion .accordion-button:focus { box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--cms-primary) 25%, transparent); }
.cms-accordion .accordion-body { padding: 1.1rem 1.4rem 1.4rem; color: var(--cms-muted); line-height: 1.65; }


/* ============================================================
   Tabs (TabsRenderer) — Bootstrap-Tabs-Markup (nav-tabs + tab-content),
   Umschaltung ebenfalls über data-bs-toggle="tab" (Bootstrap-JS), KEIN
   CSS-only-Hack nötig. Nur optisches Styling.
   <ul class="nav nav-tabs cms-tabs">…<button class="nav-link …">…
   <div class="tab-content"><div class="tab-pane fade …">…</div></div>
   ============================================================ */
.cms-tabs {
    border-bottom: 1px solid var(--cms-border);
    gap: .25rem;
    flex-wrap: wrap;
}
.cms-tabs .nav-link {
    border: 0;
    border-radius: var(--cms-radius-sm) var(--cms-radius-sm) 0 0;
    padding: .75rem 1.25rem;
    font-weight: 600;
    color: var(--cms-muted);
    background: transparent;
}
.cms-tabs .nav-link:hover { color: var(--cms-text); background: var(--cms-bg-muted); }
.cms-tabs .nav-link.active {
    color: var(--cms-primary);
    background: var(--cms-bg-surface);
    box-shadow: inset 0 -2px 0 var(--cms-primary);
}
.tab-content {
    padding: 1.5rem;
    border: 1px solid var(--cms-border);
    border-top: 0;
    border-radius: 0 0 var(--cms-radius) var(--cms-radius);
    background: var(--cms-bg-surface);
    color: var(--cms-muted);
    line-height: 1.65;
}


/* ============================================================
   Image (ImageRenderer): <figure class="cms-image">[<a>]<img>[</a>]<figcaption>
   ============================================================ */
.cms-image { margin: 0; }
.cms-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: var(--cms-radius);
    box-shadow: var(--cms-shadow-sm);
}
.cms-image figcaption {
    margin-top: .6rem;
    font-size: .9rem;
    color: var(--cms-muted);
    text-align: center;
}


/* ============================================================
   Richtext (RichTextRenderer) / Raw-HTML (RawHtmlRenderer):
   <div class="cms-richtext">{sanitized HTML}</div>
   <div class="cms-raw-html">{sanitized HTML}</div>
   ============================================================ */
.cms-richtext,
.cms-raw-html {
    line-height: 1.65;
    color: var(--cms-text);
}
.cms-richtext h2, .cms-raw-html h2 { font-weight: 800; letter-spacing: -.02em; font-size: clamp(1.4rem, 2.5vw, 1.9rem); margin: 1.75rem 0 .75rem; }
.cms-richtext h3, .cms-raw-html h3 { font-weight: 700; font-size: clamp(1.15rem, 2vw, 1.4rem); margin: 1.5rem 0 .6rem; }
.cms-richtext p, .cms-raw-html p { margin: 0 0 1rem; }
.cms-richtext a, .cms-raw-html a { color: var(--cms-primary); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--cms-primary) 40%, transparent); }
.cms-richtext a:hover, .cms-raw-html a:hover { text-decoration-color: currentColor; }
.cms-richtext blockquote, .cms-raw-html blockquote {
    margin: 1.25rem 0;
    padding: .75rem 1.25rem;
    border-left: 3px solid var(--cms-primary);
    background: var(--cms-bg-muted);
    color: var(--cms-muted);
    border-radius: 0 var(--cms-radius-sm) var(--cms-radius-sm) 0;
}
.cms-richtext ul, .cms-richtext ol, .cms-raw-html ul, .cms-raw-html ol { padding-left: 1.4rem; margin: 0 0 1rem; }
.cms-richtext li, .cms-raw-html li { margin-bottom: .35rem; }
.cms-richtext img, .cms-raw-html img { max-width: 100%; height: auto; border-radius: var(--cms-radius-sm); }


/* ============================================================
   Spacer (SpacerRenderer): <div class="cms-spacer" style="height:Npx"></div>
   Nur defensive Grundregel — Höhe kommt aus Inline-style, hier nichts überschreiben.
   ============================================================ */
.cms-spacer { width: 100%; }


/* ============================================================
   Contact-Grid (ContactDirectoryRenderer, Snapshot + Live-Hydration
   in block-hydration.js — identisches Markup):
   <div class="cms-contact-grid row"><div class="col cms-contact-card">
     <img class="cms-contact-photo"><div class="cms-contact-name"><div class="cms-contact-role">
     <a class="cms-contact-email">
   ============================================================ */
.cms-contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--cms-gap);
    margin: 0;
}
.cms-contact-card {
    padding: 1.5rem;
    text-align: center;
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    background: var(--cms-bg-surface);
    box-shadow: var(--cms-shadow-sm);
    transition: transform .18s ease, box-shadow .2s ease;
}
.cms-contact-card:hover { transform: translateY(-3px); box-shadow: var(--cms-shadow); }
.cms-contact-photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 1rem;
    box-shadow: var(--cms-shadow-sm);
}
.cms-contact-name { font-weight: 700; font-size: 1.05rem; }
.cms-contact-role { color: var(--cms-muted); font-size: .9rem; margin-top: .15rem; }
.cms-contact-email {
    display: inline-block;
    margin-top: .6rem;
    font-size: .9rem;
    color: var(--cms-primary);
    text-decoration: none;
}
.cms-contact-email:hover { text-decoration: underline; }


/* ============================================================
   Todo-Board (TodoBoardRenderer, nur Live/Hydration):
   <div class="cms-todo-board"><div class="cms-todo-bucket"><h3>…</h3>
     <ul class="cms-todo-cards"><li class="cms-todo-card[ is-done]">…<span class="cms-todo-due">…
   ============================================================ */
.cms-todo-board {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--cms-gap);
    align-items: start;
}
.cms-todo-bucket {
    padding: 1.25rem;
    border-radius: var(--cms-radius);
    background: var(--cms-bg-muted);
    border: 1px solid var(--cms-border);
}
.cms-todo-bucket h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .9rem;
}
.cms-todo-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.cms-todo-card {
    padding: .75rem .9rem;
    border-radius: var(--cms-radius-sm);
    background: var(--cms-bg-surface);
    border: 1px solid var(--cms-border);
    box-shadow: var(--cms-shadow-sm);
    font-size: .92rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
.cms-todo-card.is-done {
    color: var(--cms-muted);
    text-decoration: line-through;
    opacity: .7;
}
.cms-todo-due {
    flex-shrink: 0;
    font-size: .78rem;
    color: var(--cms-muted);
    text-decoration: none;
}


/* ============================================================
   Blog-Teasers (BlogTeasersRenderer, Snapshot + Live-Hydration in
   block-hydration.js — Klassen-Vertrag eingefroren, s. Aufgabenstellung):
   <div class="cms-blog-teasers cms-blog-layout-{grid|list}">
     <article class="cms-blog-card">
       <a class="cms-blog-card-img"><img></a>
       <div class="cms-blog-card-body">
         <span class="cms-blog-card-date">…</span>
         <h3 class="cms-blog-card-title"><a>…</a></h3>
         <p class="cms-blog-card-excerpt">…</p>
         <a class="cms-blog-card-more">Weiterlesen</a>
   ============================================================ */
.cms-blog-teasers.cms-blog-layout-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--cms-gap);
}
.cms-blog-teasers.cms-blog-layout-list {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.cms-blog-teasers.cms-blog-layout-list .cms-blog-card {
    display: grid;
    grid-template-columns: minmax(160px, 240px) 1fr;
    gap: 1.25rem;
}
@media (max-width: 575.98px) {
    .cms-blog-teasers.cms-blog-layout-list .cms-blog-card { grid-template-columns: 1fr; }
}
.cms-blog-card {
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    background: var(--cms-bg-surface);
    box-shadow: var(--cms-shadow-sm);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .2s ease;
}
.cms-blog-card:hover { transform: translateY(-3px); box-shadow: var(--cms-shadow); }
.cms-blog-card-img { display: block; }
.cms-blog-card-img img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.cms-blog-card-body { padding: 1.25rem; }
.cms-blog-card-date {
    display: block;
    font-size: .8rem;
    color: var(--cms-muted);
    margin-bottom: .35rem;
}
.cms-blog-card-title { font-size: 1.1rem; font-weight: 700; line-height: 1.35; margin: 0 0 .5rem; }
.cms-blog-card-title a { color: inherit; text-decoration: none; }
.cms-blog-card-title a:hover { color: var(--cms-primary); }
.cms-blog-card-excerpt {
    color: var(--cms-muted);
    font-size: .92rem;
    line-height: 1.55;
    margin: 0 0 .75rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cms-blog-teasers.cms-blog-layout-list .cms-blog-card-excerpt { -webkit-line-clamp: 2; }
.cms-blog-card-more {
    font-size: .9rem;
    font-weight: 600;
    color: var(--cms-primary);
    text-decoration: none;
}
.cms-blog-card-more:hover { text-decoration: underline; }
.cms-blog-empty {
    padding: 2rem;
    text-align: center;
    color: var(--cms-muted);
    border: 1px dashed var(--cms-border);
    border-radius: var(--cms-radius);
    background: var(--cms-bg-muted);
}


/* ============================================================
   Live-Hydration-Skeleton (block-hydration.js): Platzhalter für
   contact-grid/todo-board/blog-teasers im Modus "live", bis der Fetch
   gegen /api/publicblock/Data zurückkommt.
   <div class="cms-block-live" data-block="…"><div class="cms-block-skeleton" aria-busy="true"></div></div>
   ============================================================ */
.cms-block-live { display: block; min-height: 120px; }
.cms-block-skeleton {
    min-height: 120px;
    border-radius: var(--cms-radius);
    background: linear-gradient(90deg,
        var(--cms-bg-muted) 25%,
        color-mix(in srgb, var(--cms-bg-muted) 50%, var(--cms-bg-surface)) 37%,
        var(--cms-bg-muted) 63%);
    background-size: 400% 100%;
    animation: cms-shimmer 1.4s ease infinite;
}
@keyframes cms-shimmer {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}
@media (prefers-reduced-motion: reduce) {
    .cms-block-skeleton { animation: none; }
}


/* ============================================================
   Editor-Canvas-Fehlerkarte (Phase 4, PagesBuilder-RCL — hier bereits
   definiert, damit der Editor-iframe beim Laden von cms-blocks.css
   sofort korrekt aussieht; auf der öffentlichen Seite kommt diese
   Klasse nie vor).
   ============================================================ */
.cms-canvas-block-error {
    padding: .85rem 1rem;
    border: 1px solid #f5c451;
    border-radius: var(--cms-radius-sm);
    background: #fff8e6;
    color: #7a5b00;
    font-size: .88rem;
    line-height: 1.5;
}
@media (prefers-color-scheme: dark) {
    .cms-canvas-block-error {
        background: color-mix(in srgb, #f5c451 15%, var(--cms-bg-muted));
        border-color: #f5c451;
        color: #ffe08a;
    }
}
:is([data-bs-theme="dark"], html.dark) .cms-canvas-block-error {
    background: color-mix(in srgb, #f5c451 15%, var(--cms-bg-muted));
    border-color: #f5c451;
    color: #ffe08a;
}


/* ============================================================
   Responsive — globale Feinjustierung für kleine Viewports
   ============================================================ */
@media (max-width: 575.98px) {
    .cms-section > * { padding-inline: 1rem; }
    .cms-hero { min-height: 300px; padding: 2rem 1.5rem; }
    /* Dieselbe Fluchtlinie wie oben, nur mit dem schmaleren Mobilwert: die Regel weiter oben
       gewinnt (0,2,0) auch hier gegen `.cms-hero`, deshalb muss der Mobilfall sie mitnehmen —
       sonst stünde der Hero 4px weiter innen als jeder andere Block. */
    .cms-section > .cms-hero,
    .cms-section > .cms-canvas-block > .cms-hero { padding-inline: var(--cms-hero-pad-inline, 1rem); }
    .cms-hero-left, .cms-hero-center, .cms-hero-right { text-align: center; align-items: center; }
    .cms-hero-left .btn.btn-primary,
    .cms-hero-right .btn.btn-primary { align-self: center; }
}


/* ============================================================
   Projektweite Elemente menu/footer (§3.5) — gerendert von
   MenuRenderer/FooterRenderer in die Pages_section_global-Zeile,
   liegen AUSSERHALB der cms-section-Wrapper (volle Breite).
   Mobile-Umschalter ist ein reiner CSS-Checkbox-Hack (kein JS
   im gecachten HTML).
   ============================================================ */

/* ---------- Menü (projektweit, §3.5) ---------- */
.cms-menu {
    background: var(--cms-bg-surface);
    border-bottom: 1px solid var(--cms-border);
    width: 100%;
}

.cms-menu-sticky {
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: var(--cms-shadow-sm);
}

.cms-menu-inner {
    max-width: var(--cms-max-wide);
    margin: 0 auto;
    padding: 0 1.25rem;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.cms-menu-brand {
    font-weight: bold;
    color: var(--cms-text);
    text-decoration: none;
    display: flex;
    align-items: center;
}

.cms-menu-brand img {
    max-height: 36px;
    display: block;
    /* CLS-Reserve (31.07.): Der MenuRenderer gibt kein width/height aus, also kannte der Browser
       bis zum Laden nur die Höhe (max-height) — die Breite wuchs erst mit dem Bild und schob die
       Menüpunkte nach rechts. `aspect-ratio` reserviert den Platz vorab, ohne dass dafür ein
       Renderer-Deploy nötig wäre. 4.444 = 400×90, das Maß BEIDER Logovarianten; ein anderes Logo
       hier nachziehen (oder die Regel entfernen, dann ist nur das Nachrücken zurück). */
    aspect-ratio: 4.444;
    width: auto;
}
/* Zwei Logos für hell/dunkel (MenuRenderer rendert beide, sobald ein dunkles hinterlegt ist).
   Umgeschaltet wird über --cms-logo-light/-dark aus dem Website-Theme (Cms/Theme/CmsThemeCss.cs) —
   dort steht auch der Farbwechsel, damit Logo und Farbwelt IMMER gemeinsam umschalten. Ohne Theme
   (Alt-Seiten) fallen beide auf ihren bisherigen Zustand zurück: helles Logo sichtbar. */
.cms-menu-brand img.cms-menu-logo-light { display: var(--cms-logo-light, block); }
.cms-menu-brand img.cms-menu-logo-dark { display: var(--cms-logo-dark, none); }

/* Der Umschalter ist NUR mobil ein Bedienelement — ab 768px stehen die Menüpunkte ohnehin alle
   da. display:none nimmt ihn dort auch aus dem Tastatur-Pfad; vorher war er auf dem Desktop ein
   unsichtbarer Tab-Stopp, der beim Drücken nichts Sichtbares tat (31.07.2026). */
.cms-menu-check {
    display: none;
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.cms-menu-toggle {
    display: none;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    height: 64px;
}

.cms-menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--cms-text);
}

.cms-menu-items {
    display: flex;
    align-items: center;
    gap: var(--cms-gap);
}

.cms-menu-link {
    color: var(--cms-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.cms-menu-link:hover {
    color: var(--cms-text);
}

.cms-menu-cta {
    background: var(--cms-primary);
    color: #fff;
    text-decoration: none;
    border-radius: var(--cms-btn-radius, 999px);
    padding: 0.5rem 1.1rem;
    font-weight: 500;
    transition: background-color 0.2s ease;
}

.cms-menu-cta:hover {
    background: var(--cms-primary-dark);
    color: #fff;
}

@media (max-width: 767px) {
    .cms-menu-inner {
        height: auto;
        flex-wrap: wrap;
        min-height: 56px;
    }

    .cms-menu-check {
        display: block;
    }

    .cms-menu-toggle {
        display: flex;
    }

    /* Die Checkbox selbst ist unsichtbar — ihren Fokus muss deshalb das Label anzeigen, sonst
       sieht ein sehender Tastatur-Nutzer nicht, wo er steht. */
    .cms-menu-check:focus-visible ~ .cms-menu-toggle span {
        background: var(--cms-primary);
        box-shadow: 0 0 0 1px var(--cms-primary);
    }

    .cms-menu-items {
        display: none;
        width: 100%;
        order: 3;
        flex-basis: 100%;
        padding: 1rem 0;
        border-top: 1px solid var(--cms-border);
    }

    .cms-menu-check:checked ~ .cms-menu-items {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
}

/* ---------- Footer (projektweit, §3.5) ---------- */
.cms-footer {
    background: var(--cms-bg-inverse);
    color: var(--cms-text-inverse);
    padding: clamp(2rem, 5vw, 3rem) 0;
}

.cms-footer-inner {
    max-width: var(--cms-max-wide);
    margin: 0 auto;
    padding: 0 1.25rem;
    text-align: center;
    display: grid;
    gap: 1rem;
}

.cms-footer-text {
    color: var(--cms-muted-inverse);
    margin: 0;
}

.cms-footer-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0;
    margin: 0;
}

.cms-footer-links a {
    color: var(--cms-text-inverse);
    text-decoration: none;
    opacity: 0.85;
    transition: opacity 0.2s ease;
}

.cms-footer-links a:hover {
    opacity: 1;
}

.cms-footer-copyright {
    font-size: 0.85rem;
    color: var(--cms-muted-inverse);
    margin: 0;
}

/* ============================================================
   KI-Assistent-Blöcke: stats / testimonials / team-grid /
   gallery / logo-band (Renderer s. Cms/Blocks/Renderers/)
   ============================================================ */

/* ---------- Zahlen-Band ---------- */
.cms-stats h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    margin: 0 0 2rem;
    text-align: var(--cms-heading-align, center);
}

.cms-stats-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--cms-gap);
}

.cms-stat {
    flex: 1 1 160px;
    max-width: 260px;
    text-align: center;
    padding: 1.25rem 1rem;
}

.cms-stat-value {
    font-size: clamp(2rem, 4.5vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--cms-primary);
    font-variant-numeric: tabular-nums;
}

.cms-stat-label {
    margin-top: 0.4rem;
    color: var(--cms-muted);
    font-size: 0.95rem;
}

.cms-bg-inverse .cms-stat-value { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-stat-label { color: var(--cms-muted-inverse); }

/* ---------- Kundenstimmen ---------- */
.cms-testimonials h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    margin: 0 0 2rem;
    text-align: var(--cms-heading-align, center);
}

.cms-testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
    gap: var(--cms-gap);
}

.cms-testimonial {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    background: var(--cms-bg-surface);
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    box-shadow: var(--cms-shadow-sm);
    padding: 1.75rem;
}

.cms-testimonial blockquote {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.65;
    flex: 1;
}

.cms-testimonial blockquote::before { content: "\201E"; }
.cms-testimonial blockquote::after { content: "\201C"; }

.cms-testimonial figcaption {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.cms-testimonial figcaption img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.cms-testimonial-author { font-weight: 600; }

.cms-testimonial-role {
    font-size: 0.875rem;
    color: var(--cms-muted);
}

/* ---------- Team ---------- */
.cms-team-grid h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    margin: 0 0 2rem;
    text-align: var(--cms-heading-align, center);
}

.cms-team-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
    gap: var(--cms-gap);
}

.cms-team-member {
    background: var(--cms-bg-surface);
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    box-shadow: var(--cms-shadow-sm);
    padding: 1.5rem;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cms-team-member:hover {
    transform: translateY(-3px);
    box-shadow: var(--cms-shadow);
}

.cms-team-member img {
    width: min(160px, 100%);
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: var(--cms-radius);
    margin-bottom: 1rem;
}

.cms-team-member h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.15rem;
}

.cms-team-role {
    color: var(--cms-primary);
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.6rem;
}

.cms-team-member p {
    color: var(--cms-muted);
    font-size: 0.925rem;
    line-height: 1.6;
    margin: 0;
}

/* ---------- Galerie ---------- */
.cms-gallery h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    margin: 0 0 2rem;
    text-align: var(--cms-heading-align, center);
}

.cms-gallery-grid {
    display: grid;
    gap: var(--cms-gap);
}

.cms-gallery-cols-2 { grid-template-columns: repeat(2, 1fr); }
.cms-gallery-cols-3 { grid-template-columns: repeat(3, 1fr); }
.cms-gallery-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 991.98px) {
    .cms-gallery-cols-3, .cms-gallery-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .cms-gallery-cols-2, .cms-gallery-cols-3, .cms-gallery-cols-4 { grid-template-columns: 1fr; }
}

.cms-gallery-item { margin: 0; }

.cms-gallery-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--cms-radius);
    box-shadow: var(--cms-shadow-sm);
    display: block;
}

.cms-gallery-item figcaption {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: var(--cms-muted);
    text-align: center;
}

/* ---------- Logo-Leiste ---------- */
.cms-logo-band-title {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cms-muted);
    margin: 0 0 1.5rem;
}

.cms-logo-band-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3rem);
}

.cms-logo-band-item {
    display: inline-flex;
    opacity: 0.75;
    filter: grayscale(1);
    transition: opacity 0.2s ease, filter 0.2s ease;
}

.cms-logo-band-item:hover {
    opacity: 1;
    filter: grayscale(0);
}

.cms-logo-band-item img {
    height: 52px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

.cms-bg-inverse .cms-logo-band-title { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-logo-band-item { filter: grayscale(1) invert(1); }
.cms-bg-inverse .cms-logo-band-item:hover { filter: invert(1); }


/* ============================================================
   TeamHUB-Rocks-Marketing-Bloecke (job-ad, steps, faq, media-text,
   hero-Erweiterung, footer-Gruppen, jsonld-Canvas-Marker) — additiv.
   ============================================================ */

/* ===================== TeamHUB Rocks: job-ad ===================== */
/* ============================================================
   Stellenanzeige (JobAdRenderer):
   <aside class="cms-job-ad [cms-job-ad-has-stamp]" aria-label>
     <div .cms-job-ad-bar><span/><span/></div>
     <div .cms-job-ad-stamp aria-hidden>          (optional)
     <div .cms-job-ad-body>
       h2.cms-job-ad-title  p.cms-job-ad-sub
       ul.cms-job-ad-tasks  dl.cms-job-ad-facts (<div><dt><dd>)
     </div>
     <div .cms-job-ad-foot> … <a> … <span .cms-job-ad-foot2>
   Nachbau der handgebauten w4-anzeige der Marketingseite
   (scratchpad/v4ref/v4-extra.css Z. 7–101) — 1:1 in der Wirkung,
   aber auf CMS-Tokens statt harter w2-Farben.
   ============================================================ */
.cms-job-ad {
    /* Linien-/Text-Töne als lokale Variablen, damit die Inverse-Regel unten
       EINMAL umschalten kann statt jede Teilregel zu doppeln. */
    --cms-job-ad-line: var(--cms-border);
    --cms-job-ad-ink: var(--cms-text);
    --cms-job-ad-dim: var(--cms-muted);
    position: relative;
    background: var(--cms-bg-surface);
    border: 1px solid var(--cms-job-ad-line);
    border-radius: var(--cms-radius);
    /* Der deutliche, weiche Schatten ist der Charakter der Karte (Original: 0 30px 70px …). */
    box-shadow: var(--cms-shadow-lg);
    font-size: 0.95rem;
    color: var(--cms-job-ad-ink);
}

/* Einblendanimation (Original: w2-rise) — leichtes Hochfahren + Fade, nur ohne Reduced-Motion. */
@media (prefers-reduced-motion: no-preference) {
    @keyframes cms-job-ad-rise {
        from { opacity: 0; transform: translateY(18px); }
        to { opacity: 1; transform: none; }
    }
    .cms-job-ad { animation: cms-job-ad-rise 0.8s 0.3s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
}

/* Kopfleiste: Monospace-Versalien, weite Laufweite, auf der Sektions-/Plan-Fläche. */
.cms-job-ad-bar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 1.4rem;
    border-bottom: 1px solid var(--cms-job-ad-line);
    background: var(--cms-bg-muted);
    border-radius: var(--cms-radius) var(--cms-radius) 0 0;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cms-job-ad-dim);
}

/* Stempel: schräg über der rechten oberen Ecke, Signalfarbe (Token folgt später, s. Fallback). */
.cms-job-ad-stamp {
    position: absolute;
    top: 3.4rem;
    right: 1.3rem;
    transform: rotate(7deg);
    border: 2px solid var(--cms-accent, #d97706);
    color: var(--cms-accent, #d97706);
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.35rem 0.6rem;
    /* Bewusst fest 4px: der kleine Detail-Radius macht den Stempel-Charakter aus —
       --cms-radius-sm (8px) wäre schon zu rund. */
    border-radius: 4px;
    text-align: center;
    line-height: 1.5;
    opacity: 0.85;
    pointer-events: none;
}

.cms-job-ad-body { padding: 1.35rem 1.4rem 1.25rem; }

.cms-job-ad-title {
    font-weight: var(--cms-h-weight, 750);
    font-size: 1.35rem;
    letter-spacing: var(--cms-h-tracking, -0.02em);
    line-height: 1.15;
    margin: 0 0 0.2rem;
    color: var(--cms-job-ad-ink);
}
/* Schneise nach rechts, damit der Titel nicht unter den Stempel läuft — nur wenn einer da ist. */
.cms-job-ad-has-stamp .cms-job-ad-title { padding-right: 6.8rem; }

.cms-job-ad-sub {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    color: var(--cms-job-ad-dim);
    margin: 0 0 1.05rem;
}

/* Aufgabenliste mit Gedankenstrich-Marker in der Leitfarbe. */
.cms-job-ad-tasks {
    list-style: none;
    display: grid;
    gap: 0.45rem;
    margin: 0 0 1.2rem;
    padding: 0;
}
.cms-job-ad-tasks li {
    position: relative;
    padding-left: 1.3rem;
    font-size: 0.93rem;
    color: var(--cms-job-ad-ink);
}
.cms-job-ad-tasks li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: var(--cms-primary);
    font-weight: 700;
}

/* Datenraster: Trennlinie oben, zwei Spalten (mobil eine, s.u.). */
.cms-job-ad-facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem 1.2rem;
    margin: 0;
    border-top: 1px solid var(--cms-job-ad-line);
    padding-top: 1.05rem;
}
.cms-job-ad-facts dt {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: 0.6rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--cms-job-ad-dim);
    margin-bottom: 0.1rem;
}
.cms-job-ad-facts dd {
    margin: 0;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--cms-job-ad-ink);
}

/* Fußzeile(n): Monospace, gedämpft; zweite Zeile (Sternchen-Hinweis) eine Spur kleiner. */
.cms-job-ad-foot {
    border-top: 1px solid var(--cms-job-ad-line);
    padding: 0.8rem 1.4rem;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    color: var(--cms-job-ad-dim);
}
.cms-job-ad-foot a {
    font-weight: 600;
    color: var(--cms-primary);
}
.cms-job-ad-foot a:hover { color: var(--cms-primary-dark); }
.cms-job-ad-foot2 { font-size: 0.65rem; }

/* Schmale Viewports: Stempel wandert in den Textfluss (leicht gegengedreht, an die
   Körper-Kante gerückt), die Titel-Schneise entfällt, Datenraster einspaltig. */
@media (max-width: 420px) {
    .cms-job-ad-has-stamp .cms-job-ad-title { padding-right: 0; }
    .cms-job-ad-stamp {
        position: static;
        display: inline-block;
        margin: 1rem 0 0 1.4rem;
        transform: rotate(-2deg);
    }
    .cms-job-ad-facts { grid-template-columns: 1fr; }
}

/* Inverse Section: die Karte bringt eine EIGENE helle Fläche mit (gleiches Problem wie
   .cms-bg-inverse .cms-hero/.cms-cta oben — weiße Sektionsschrift auf hellem Panel).
   Fläche mit-invertieren und eine Spur HELLER als der Sektionsgrund (Elevation-Logik),
   Linien halbtransparent weiß, Texte auf die Inverse-Töne — alles über die lokalen Variablen. */
.cms-bg-inverse .cms-job-ad {
    --cms-job-ad-line: color-mix(in srgb, #ffffff 16%, transparent);
    --cms-job-ad-ink: var(--cms-text-inverse);
    --cms-job-ad-dim: var(--cms-muted-inverse);
    background: color-mix(in srgb, #ffffff 8%, var(--cms-bg-inverse));
}
.cms-bg-inverse .cms-job-ad-bar {
    background: color-mix(in srgb, #ffffff 4%, var(--cms-bg-inverse));
}
/* Primärblau wäre auf der dunklen Fläche zu kontrastarm: Links hell, Unterstrich als Kennung;
   der Aufgaben-Marker rückt in ein aufgehelltes Blau. */
.cms-bg-inverse .cms-job-ad-foot a {
    color: var(--cms-text-inverse);
    text-decoration: underline;
}
.cms-bg-inverse .cms-job-ad-tasks li::before {
    color: color-mix(in srgb, var(--cms-primary) 55%, #ffffff);
}

/* ===================== TeamHUB Rocks: steps ===================== */
/* ============================================================
   Steps (StepsRenderer) — nummerierte Prozess-Strecke, Vorbild
   .w2-schritte der Bestandswebsite. Bewusst FLACH (keine Karte):
   Mono-Zähler (01, 02, …) in der Leitfarbe in einer schmalen
   Spalte, dünne Trennlinien zwischen den Schritten.
   <section class="cms-steps cms-steps-{zahlen|ohne}">
     <p class="cms-eyebrow"> <h2> <p class="cms-steps-intro">
     <ol|ul class="cms-steps-list"><li class="cms-steps-item">
       <div class="cms-steps-body"><h3> <p> <p class="cms-steps-meta">
   Die Nummern kommen aus CSS-Countern — HTML bleibt sauber,
   Reihenfolge stimmt automatisch (echte <ol>-Semantik bei zahlen).
   ============================================================ */
.cms-steps h2 {
    font-weight: var(--cms-h-weight, 800);
    letter-spacing: var(--cms-h-tracking, -.02em);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin: 0 0 .75rem;
    text-align: var(--cms-heading-align, left); /* Prozess-Strecke ist links verankert; Theme-Handschrift darf übersteuern */
}
.cms-steps .cms-eyebrow { text-align: var(--cms-heading-align, left); }
.cms-steps-intro {
    color: var(--cms-muted);
    line-height: var(--cms-body-leading, 1.6);
    max-width: 640px;
    margin: 0 0 2rem;
    text-align: var(--cms-heading-align, left);
}
/* Zentrierte Handschrift: Intro mittig nachziehen, sonst klebt der Block links unter mittiger H2. */
.cms-steps-intro { margin-inline: var(--cms-heading-align, 0) ; }

.cms-steps-list {
    list-style: none;          /* sichtbare Nummern macht der Counter, nicht der Browser */
    margin: 0;
    padding: 0;
    counter-reset: cms-step;
    text-align: left;          /* die Strecke selbst bleibt immer links, auch bei mittiger H2 */
}
.cms-steps-item {
    display: grid;
    grid-template-columns: 64px 1fr;   /* schmale Zähler-Spalte (~64px, s. Design-Analyse) */
    align-items: start;
    padding-block: 1.4rem;
}
/* Dünne Trennlinie ZWISCHEN den Schritten — bewusst kein Karten-Look. */
.cms-steps-item + .cms-steps-item { border-top: 1px solid var(--cms-border); }

/* Zähler: Monospace, decimal-leading-zero, Leitfarbe. Nur in der zahlen-Variante. */
.cms-steps-zahlen .cms-steps-item::before {
    counter-increment: cms-step;
    content: counter(cms-step, decimal-leading-zero);
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--cms-primary);
    line-height: 1.5;
    padding-top: .2rem;        /* optisch auf die h3-Baseline gezogen */
}
/* Ohne Nummern: reine Trennlinien-Liste, eine Spalte. */
.cms-steps-ohne .cms-steps-item { grid-template-columns: 1fr; }

.cms-steps-body { min-width: 0; }
.cms-steps-body h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 .4rem;
}
.cms-steps-body p {
    color: var(--cms-muted);
    line-height: var(--cms-body-leading, 1.6);
    margin: 0;
    max-width: 640px;
}
/* Ergebnis-/Zahlzeile („jede Sektion endet mit einer Zahl“): Mono, gedämpft,
   mit Akzent-Pfeil. Für die Signalfarbe gibt es noch keinen Token — Fallback-Muster,
   damit ein später eingeführtes --cms-accent automatisch greift. */
.cms-steps-meta {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .82rem;
    letter-spacing: .02em;
    color: var(--cms-muted);
    margin-top: .6rem !important;   /* schlägt .cms-steps-body p (margin:0) unabhängig von der Reihenfolge */
}
.cms-steps-meta::before {
    content: "\2192";               /* → */
    color: var(--cms-accent, #d97706);
    margin-right: .5em;
}

/* ---------- Inverse Section (Pflicht-Gegenregel) ----------
   steps hat KEINE eigene helle Kartenfläche (bewusst flach), daher droht kein
   Weiß-auf-Weiß wie bei hero/cta — invertiert werden müssen aber Textfarben und
   die Trennlinie (--cms-border ist auf dunklem Grund unsichtbar bzw. falsch). */
.cms-bg-inverse .cms-steps-body h3 { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-steps-body p,
.cms-bg-inverse .cms-steps-intro,
.cms-bg-inverse .cms-steps-meta { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-steps-item + .cms-steps-item {
    border-top-color: color-mix(in srgb, var(--cms-text-inverse) 18%, transparent);
}
/* Leitfarben-Zähler auf dunkler Fläche aufhellen, sonst zu kontrastarm. */
.cms-bg-inverse .cms-steps-zahlen .cms-steps-item::before {
    color: color-mix(in srgb, var(--cms-primary) 45%, var(--cms-text-inverse));
}

/* ---------- Responsive ---------- */
@media (max-width: 575.98px) {
    /* einspaltig bleibt einspaltig — nur die Zähler-Spalte schrumpft */
    .cms-steps-zahlen .cms-steps-item { grid-template-columns: 44px 1fr; }
    .cms-steps-item { padding-block: 1.1rem; }
}

/* ===================== TeamHUB Rocks: faq ===================== */
/* ============================================================
   FAQ (faq) — JS-freie <details>/<summary>-Liste + FAQPage-JSON-LD
   (Cms/Blocks/Renderers/FaqRenderer.cs). Flache Liste mit
   Trennlinien statt Karten — dadurch KEINE eigene helle Fläche,
   also strukturell immun gegen den bekannten Inverse-Section-
   Fehler; Border-/Textfarben werden für inverse Sections
   trotzdem explizit mitgeführt (s.u.).
   ============================================================ */
.cms-faq h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: var(--cms-h-weight, 700);
    letter-spacing: var(--cms-h-tracking, normal);
    margin: 0 0 .75rem;
}
.cms-faq-intro {
    color: var(--cms-muted);
    margin: 0 0 1.75rem;
    max-width: 62ch;
    line-height: 1.6;
}

/* Flache Liste: Linie oben, je Eintrag eine Trennlinie unten. */
.cms-faq-list { border-top: 1px solid var(--cms-border); }
.cms-faq-item { border-bottom: 1px solid var(--cms-border); }

/* Frage: natives <summary> als volle klickbare Zeile. Standard-Marker aus,
   eigener Plus-Indikator per ::after (dreht sich beim Aufklappen zum ×). */
.cms-faq-item summary {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.05rem .25rem;
    cursor: pointer;
    font-weight: 600;
    line-height: 1.4;
    color: var(--cms-text);
    list-style: none;               /* Standard-Dreieck (u.a. Firefox) aus */
}
.cms-faq-item summary::-webkit-details-marker { display: none; } /* Safari/älteres WebKit */
.cms-faq-item summary::after {
    content: "+";
    flex: none;
    font-family: var(--cms-font-mono, var(--cms-font, inherit));
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1;
    color: var(--cms-primary);
    translate: 0 .1em;              /* optisch auf die Baseline der Frage */
}
.cms-faq-item[open] > summary::after { transform: rotate(45deg); } /* + wird × */
/* Animation NUR ohne reduced-motion — sonst harter, sofortiger Zustandswechsel. */
@media (prefers-reduced-motion: no-preference) {
    .cms-faq-item summary::after { transition: transform .18s ease; }
}
/* Fokus-Ring bewusst NICHT entfernen — nur sauber gezeichnet. */
.cms-faq-item summary:focus-visible {
    outline: 2px solid var(--cms-primary);
    outline-offset: 2px;
    border-radius: var(--cms-radius-sm);
}

/* Antwort: gedämpfte Textfarbe; rechts Platz lassen, damit der Text nicht
   unter den Plus-Indikator läuft. */
.cms-faq-answer {
    padding: 0 2.25rem 1.25rem .25rem;
    color: var(--cms-muted);
    line-height: 1.65;
}
.cms-faq-answer p { margin: 0 0 .75rem; }
.cms-faq-answer p:last-child { margin-bottom: 0; }
.cms-faq-answer a { color: var(--cms-primary); }

/* ---------- Inverse Section (Gegenregel, Muster wie .cms-bg-inverse .cms-hero) ---------- */
.cms-bg-inverse .cms-faq-list,
.cms-bg-inverse .cms-faq-item {
    border-color: color-mix(in srgb, var(--cms-text-inverse) 18%, transparent);
}
.cms-bg-inverse .cms-faq-item summary { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-faq-item summary::after { color: var(--cms-text-inverse); opacity: .75; }
.cms-bg-inverse .cms-faq-item summary:focus-visible { outline-color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-faq-intro,
.cms-bg-inverse .cms-faq-answer { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-faq-answer a { color: var(--cms-text-inverse); }

/* ---------- Responsive ---------- */
@media (max-width: 575.98px) {
    .cms-faq-answer { padding-right: 1.25rem; }
}

/* ===================== TeamHUB Rocks: media-text ===================== */
/* ============================================================
   Bild & Text (MediaTextRenderer) — der klassische Feature-Split:
   Screenshot/Bild neben Erklärtext.
   <section class="cms-media-text [cms-media-text-img-links] [cms-media-text-ratio-{16x9|4x3|3x2}]">
     <div class="cms-media-text-copy">
       <p class="cms-eyebrow"> <h2>
       <div class="cms-media-text-body">{sanitized RichText}</div>
       <ul class="cms-media-text-bullets"><li><i class="bi bi-check-lg"></i><span>…
       <a class="btn btn-primary">
     </div>
     <figure class="cms-media-text-media"><img><figcaption></figure>
   Markup ist bei Bild links/rechts IDENTISCH (Text zuerst im DOM,
   Screenreader-Lesereihenfolge) — der Seitentausch läuft rein über
   grid-template-columns + order, NIE über zwei HTML-Zweige.
   ============================================================ */
.cms-media-text {
    display: grid;
    grid-template-columns: 1fr 1.15fr; /* Bildspalte etwas breiter */
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: center;
}
.cms-media-text-copy,
.cms-media-text-media { min-width: 0; } /* Grid-Blowout durch breite Screenshots verhindern */
/* Bild links: die breitere Spalte wandert nach vorn, die Figure per order in Spalte 1. */
.cms-media-text-img-links { grid-template-columns: 1.15fr 1fr; }
.cms-media-text-img-links .cms-media-text-media { order: -1; }

.cms-media-text h2 {
    font-weight: var(--cms-h-weight, 800);
    letter-spacing: var(--cms-h-tracking, -.02em);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    line-height: 1.15;
    margin: 0 0 1rem;
}
.cms-media-text-body {
    color: var(--cms-muted);
    line-height: 1.65;
    margin: 0 0 1.25rem;
}
.cms-media-text-body p { margin: 0 0 1rem; }
.cms-media-text-body p:last-child { margin-bottom: 0; }
.cms-media-text-body a {
    color: var(--cms-primary);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--cms-primary) 40%, transparent);
}
.cms-media-text-body a:hover { text-decoration-color: currentColor; }

/* Haken-Liste unter dem Fließtext */
.cms-media-text-bullets {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}
.cms-media-text-bullets li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    line-height: 1.5;
}
.cms-media-text-bullets i.bi {
    flex-shrink: 0;
    color: var(--cms-primary);
    translate: 0 .1em; /* optisch an der ersten Textzeile ausrichten */
}

/* CTA-Button — gleiche Handschrift wie hero/cta */
.cms-media-text .btn.btn-primary {
    display: inline-block;
    align-self: flex-start;
    border-radius: var(--cms-btn-radius, 999px);
    padding: .7rem 1.6rem;
    font-weight: var(--cms-btn-weight, 600);
    background-color: var(--cms-primary);
    border-color: var(--cms-primary);
    box-shadow: var(--cms-btn-shadow, var(--cms-shadow-sm));
}
.cms-media-text .btn.btn-primary:hover {
    background-color: var(--cms-primary-dark);
    border-color: var(--cms-primary-dark);
}
.cms-media-text .btn.btn-primary:focus-visible {
    outline: 2px solid var(--cms-primary);
    outline-offset: 2px;
}

/* Bild: Screenshots brauchen eine Kante, sonst verlaufen sie in der Fläche. */
.cms-media-text-media { margin: 0; }
.cms-media-text-media img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    box-shadow: var(--cms-shadow);
    background: var(--cms-bg-surface); /* transparente PNG/SVG bekommen definierten Grund */
}
/* ratio-Feld reserviert die Bildfläche → kein Layout-Sprung beim Lazy-Load
   (greift zusätzlich zu width/height-Attributen; aspect-ratio gewinnt, object-fit croppt). */
.cms-media-text-ratio-16x9 .cms-media-text-media img { aspect-ratio: 16 / 9; object-fit: cover; }
.cms-media-text-ratio-4x3  .cms-media-text-media img { aspect-ratio: 4 / 3;  object-fit: cover; }
.cms-media-text-ratio-3x2  .cms-media-text-media img { aspect-ratio: 3 / 2;  object-fit: cover; }
.cms-media-text-media figcaption {
    margin-top: .6rem;
    font-size: .875rem;
    color: var(--cms-muted);
    text-align: center;
}

/* Sanfter Hover-Lift wie bei den Karten des Systems — nur ohne Motion-Einschränkung. */
@media (prefers-reduced-motion: no-preference) {
    .cms-media-text-media img { transition: transform .2s ease, box-shadow .25s ease; }
    .cms-media-text-media:hover img { transform: translateY(-3px); box-shadow: var(--cms-shadow-lg); }
    .cms-media-text .btn.btn-primary { transition: transform .15s ease, box-shadow .2s ease, background-color .15s ease; }
    .cms-media-text .btn.btn-primary:hover { transform: translateY(-1px); box-shadow: var(--cms-shadow); }
}

/* Inverse Section: Textfarben mitschalten; die helle Bildfläche wird als aufgehellte
   Elevation über dem Sektionsgrund geführt (gleiches Muster wie .cms-bg-inverse .cms-hero). */
.cms-bg-inverse .cms-media-text-body { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-media-text-body a { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-media-text-bullets { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-media-text-bullets i.bi { color: var(--cms-text-inverse); opacity: .85; }
.cms-bg-inverse .cms-media-text-media img {
    border-color: color-mix(in srgb, var(--cms-bg-inverse) 70%, white);
    background: color-mix(in srgb, var(--cms-bg-inverse) 82%, white);
}
.cms-bg-inverse .cms-media-text-media figcaption { color: var(--cms-muted-inverse); }

/* Mobil (<860px): einspaltig, Bild zuerst. */
@media (max-width: 859.98px) {
    .cms-media-text,
    .cms-media-text-img-links { grid-template-columns: 1fr; }
    .cms-media-text .cms-media-text-media { order: -1; }
}

/* ===================== TeamHUB Rocks: hero-plus ===================== */
/* ============================================================
   Hero-Erweiterung (HeroRenderer, additiv):
   - .cms-hero-actions  Aktionszeile, entsteht NUR wenn ein zweiter CTA gesetzt ist:
     <div class="cms-hero-actions"><a class="btn btn-primary">…</a><a class="btn cms-btn-secondary">…</a></div>
   - .cms-btn-secondary sekundaerer Button (Umriss statt Flaeche)
   - .cms-hero-facts    Faktenzeile: <ul class="cms-hero-facts"><li>…</li>…</ul>
     (Mittelpunkt-Trenner per ::before, NICHT im Text)
   - .cms-hero-split    Marker-Klasse der Split-Variante; das Zweispalten-
     Layout legt :has() auf den Section-Wrapper (kein Compiler-Eingriff,
     kein Wrapper-Div — s. BlockCompiler.RenderSectionsAsync).
   Bestehende .cms-hero-Regeln bleiben unangetastet.
   ============================================================ */

/* ---------- Aktionszeile (zwei Wege nach vorn) ---------- */
.cms-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    align-self: flex-start;
}
.cms-hero-center .cms-hero-actions { align-self: center; justify-content: center; }
.cms-hero-right .cms-hero-actions { align-self: flex-end; justify-content: flex-end; }
/* Die bestehenden align-self-Regeln der Ausrichtungsvarianten zielen auf den Button
   direkt im Hero-Flex; IN der Zeile sollen beide Buttons einfach nebeneinander stehen. */
.cms-hero .cms-hero-actions .btn.btn-primary { align-self: auto; }

/* ---------- Sekundaerer Button (Umriss in --cms-border, Schrift --cms-text) ----------
   Gleiche Metrik wie .cms-hero .btn.btn-primary (Radius/Padding/Gewicht aus den
   Button-Tokens), damit beide Buttons in einer Zeile identisch hoch sind. */
.cms-section .btn.cms-btn-secondary,
.cms-canvas-block .btn.cms-btn-secondary {
    display: inline-block;
    text-align: center;
    text-decoration: none;
    padding: .75rem 1.75rem;
    border-radius: var(--cms-btn-radius, 999px);
    font-weight: var(--cms-btn-weight, 600);
    background-color: transparent;
    border: 1px solid var(--cms-border);
    color: var(--cms-text);
    transition: border-color .2s ease, color .2s ease;
}
.cms-section .btn.cms-btn-secondary:hover,
.cms-canvas-block .btn.cms-btn-secondary:hover {
    border-color: var(--cms-primary);
    color: var(--cms-primary);
    background-color: transparent;
}
.cms-section .btn.cms-btn-secondary:focus-visible,
.cms-canvas-block .btn.cms-btn-secondary:focus-visible {
    outline: 2px solid var(--cms-primary);
    outline-offset: 2px;
}
/* Micro-Lift nur fuer Nutzer ohne Bewegungs-Einschraenkung (Pflicht laut Barrierefreiheit). */
@media (prefers-reduced-motion: no-preference) {
    .cms-section .btn.cms-btn-secondary,
    .cms-canvas-block .btn.cms-btn-secondary {
        transition: border-color .2s ease, color .2s ease, transform .15s ease, box-shadow .2s ease;
    }
    .cms-section .btn.cms-btn-secondary:hover,
    .cms-canvas-block .btn.cms-btn-secondary:hover {
        transform: translateY(-1px);
        box-shadow: var(--cms-shadow-sm);
    }
}

/* ---------- Faktenzeile (Monospace, klein, gedaempft) ---------- */
.cms-hero-facts {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    margin: 1.25rem 0 0;
    padding: 0;
    font-family: var(--cms-font-mono, var(--cms-font, inherit));
    font-size: .78rem;
    letter-spacing: .02em;
    line-height: 1.6;
    color: var(--cms-muted);
    row-gap: .35rem;
}
/* Mittelpunkt-Trenner NUR zwischen den Items, aus dem CSS — in der Akzentfarbe
   (Token existiert noch nicht, Fallback greift bis dahin, s. Auftrag). */
.cms-hero-facts li + li::before {
    content: "\00B7";
    padding-inline: .65em;
    color: var(--cms-accent, #d97706);
    font-weight: 700;
}
.cms-hero-center .cms-hero-facts { justify-content: center; }
.cms-hero-right .cms-hero-facts { justify-content: flex-end; }

/* ---------- Gegenregeln: Hintergrundbild-Hero (weisse Schrift auf Overlay) ---------- */
.cms-hero[style*="background-image"] .btn.cms-btn-secondary {
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
}
.cms-hero[style*="background-image"] .btn.cms-btn-secondary:hover {
    border-color: #fff;
    color: #fff;
}
.cms-hero[style*="background-image"] .cms-hero-facts { color: rgba(255, 255, 255, .75); }

/* ---------- Gegenregeln: inverse Section (bekannter Bestandsfehler-Typ) ----------
   Die Hero-Flaeche selbst wird bereits von der bestehenden Regel
   `.cms-bg-inverse .cms-hero` mit-invertiert (color-mix-Aufhellung); hier nur
   die NEUEN Elemente nachziehen. Stehen bewusst NACH den Basisregeln (gleiche
   Spezifitaet 0,2,0 → Reihenfolge entscheidet). */
.cms-bg-inverse .btn.cms-btn-secondary {
    border-color: color-mix(in srgb, var(--cms-muted-inverse) 55%, transparent);
    color: var(--cms-text-inverse);
}
.cms-bg-inverse .btn.cms-btn-secondary:hover {
    border-color: var(--cms-primary);
    color: var(--cms-text-inverse);
}
.cms-bg-inverse .cms-hero-facts { color: var(--cms-muted-inverse); }

/* ---------- Split-Variante ----------
   Der Hero bleibt einspaltig und traegt nur die Marker-Klasse; die SECTION wird
   per :has() zum Zweispalten-Grid — noetig, weil der Compiler Bloecke ohne
   Wrapper-Div direkt in <section class="cms-section"> konkateniert (Publish-Pfad)
   bzw. im Editor-Canvas je Block in .cms-canvas-block wrappt (beide Faelle
   abgedeckt). Der unmittelbar folgende Geschwisterblock landet in Spalte 2.
   Browser ohne :has() ignorieren die Regel → Bloecke stapeln wie bisher. */
.cms-section:has(> .cms-hero-split),
.cms-section:has(> .cms-canvas-block > .cms-hero-split) {
    display: grid;
    /* Zwei Spalten, zusammen maximal die Sektionsbreite, zentriert; minmax(0, …)
       laesst sie auf schmalen Viewports proportional schrumpfen. */
    grid-template-columns:
        minmax(0, calc(var(--cms-split-max, var(--cms-max-wide)) / 2))
        minmax(0, calc(var(--cms-split-max, var(--cms-max-wide)) / 2));
    justify-content: center;
    align-items: center;
    column-gap: var(--cms-gap);
    row-gap: var(--cms-gap);
}
.cms-section.cms-width-narrow:has(> .cms-hero-split),
.cms-section.cms-width-narrow:has(> .cms-canvas-block > .cms-hero-split) {
    --cms-split-max: var(--cms-max-narrow);
}
/* Die margin-top-Kette der Section-Kinder (`.cms-section > * + *`) wuerde den
   rechten Block im Grid nach unten druecken — Abstand macht jetzt row-gap. */
.cms-section:has(> .cms-hero-split) > * + *,
.cms-section:has(> .cms-canvas-block > .cms-hero-split) > * + * {
    margin-top: 0;
}

/* ---------- Responsive ---------- */
/* Split kollabiert frueher als der globale 575.98px-Breakpoint — zwei Spalten
   unter ~900px sind fuer Hero-Text + Nachbarblock zu eng. */
@media (max-width: 900px) {
    .cms-section:has(> .cms-hero-split),
    .cms-section:has(> .cms-canvas-block > .cms-hero-split) {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* Kleine Viewports: Hero zentriert bereits alles (Bestandsregel) — Aktionszeile
   und Faktenzeile ziehen nach. */
@media (max-width: 575.98px) {
    .cms-hero-actions { align-self: center; justify-content: center; }
    .cms-hero-facts { justify-content: center; }
}

/* ===================== TeamHUB Rocks: footer-plus ===================== */
/* ---------- Footer: Rubrik-Spalten (Sitemap-Footer, additiv zu .cms-footer §3.5) ----------
   Oberer Teil des projektweiten Footers: Markenspalte (Logo + Tagline) plus Rubrikspalten aus
   dem flachen groupedLinks-Feld (FooterRenderer gruppiert nach "group", Reihenfolge =
   Erstauftreten). Rendert nur, wenn die neuen Props befuellt sind — Bestand bleibt unberuehrt.
   WICHTIG zur Inverse-Gegenregel: .cms-footer IST selbst die inverse Flaeche
   (background: var(--cms-bg-inverse), s. Basisregel oben) — deshalb sind hier ALLE Textfarben
   von vornherein die Inverse-Token. Eine Gegenregel wie bei .cms-bg-inverse .cms-hero/.cms-cta
   braucht es nicht: der Footer bringt keine eigene helle Kartenflaeche mit, steht als globaler
   Block ausserhalb der Sektionen, und selbst verschachtelt bliebe er durch den eigenen
   Hintergrund + eigene Textfarben lesbar. */
.cms-footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 2rem;
    text-align: left; /* .cms-footer-inner zentriert — die Sitemap-Spalten bewusst nicht */
    padding-bottom: 1rem;
}

/* Markenspalte: Logo + Tagline linksbuendig untereinander. */
.cms-footer-brand {
    display: grid;
    gap: .75rem;
    align-content: start;
    justify-items: start;
}

.cms-footer-brand img {
    max-height: 40px;
    max-width: 100%;
    display: block;
}
/* Helle/dunkle Logovariante — exakt der Menue-Mechanismus (s. .cms-menu-logo-light/-dark):
   beide <img> stehen im gecachten HTML, das Website-Theme (Cms/Theme/CmsThemeCss.cs) schaltet
   rein per --cms-logo-light/-dark um. Ohne Theme: helles Logo sichtbar (Fallback-Werte). */
.cms-footer-brand img.cms-footer-logo-light { display: var(--cms-logo-light, block); }
.cms-footer-brand img.cms-footer-logo-dark { display: var(--cms-logo-dark, none); }

.cms-footer-tagline {
    margin: 0;
    font-size: .9rem;
    line-height: 1.55;
    color: var(--cms-muted-inverse);
    max-width: 36ch; /* liest sich als kurze Markenzeile, nicht als Absatzband */
}

/* Rubrik-Ueberschrift im Kicker-Stil (Geist Mono in der markanten Handschrift, gleiche Werte
   wie .cms-eyebrow) — auf der inversen Flaeche gedaempft hell statt Leitfarbe (dasselbe Muster
   wie .cms-bg-inverse .cms-eyebrow). */
.cms-footer-group-title {
    font-family: var(--cms-font-mono, var(--cms-font, inherit));
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--cms-text-inverse);
    opacity: .75;
    margin: 0 0 .75rem;
}

.cms-footer-group-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .5rem;
}

/* Gleiche Link-Optik wie die flache Bestandszeile (.cms-footer-links a), nur linksbuendig.
   Nur ein Opacity-Uebergang, keine Bewegung → kein prefers-reduced-motion noetig;
   Fokus-Outline bleibt der sichtbare Browser-Default. */
.cms-footer-group-links a {
    color: var(--cms-text-inverse);
    text-decoration: none;
    opacity: .85;
    transition: opacity 0.2s ease;
    font-size: .9rem;
}

.cms-footer-group-links a:hover {
    opacity: 1;
}

/* Trennlinie zwischen Sitemap-Teil und Bestandszeile — dezent aus dem Inverse-Text gemischt,
   NICHT --cms-border (das ist der Rahmen der hellen Flaechen und stuende hier zu hart). */
.cms-footer-divider {
    border: 0;
    border-top: 1px solid color-mix(in srgb, var(--cms-text-inverse) 18%, transparent);
    margin: 0 0 .5rem;
    width: 100%;
}

/* Mobil: eine Spalte, Rubriken untereinander (auto-fit braeche bei minmax 160px sonst erst
   knapp unter 400px Viewport auf eine Spalte um). */
@media (max-width: 640px) {
    .cms-footer-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ===================== TeamHUB Rocks: jsonld ===================== */
/* ============================================================
   JSON-LD Strukturdaten (JsonLdRenderer): unsichtbarer Block —
   <div class="cms-jsonld" hidden>
     <script type="application/ld+json">…</script>
     <span class="cms-jsonld-badge">{ }</span>
     <span class="cms-jsonld-text"><strong>Strukturdaten</strong> · Typ · Name</span>
   </div>
   Auf der veröffentlichten Seite bleibt der Block komplett unsichtbar
   (hidden-Attribut + display:none — Suchmaschinen lesen das ld+json-
   Script unabhängig vom Rendering). Der Renderer kann Canvas und
   Publish NICHT unterscheiden (BlockRenderContext hat kein Canvas-Flag,
   beide rendern RenderMode.Static) — sichtbar wird der Platzhalter
   deshalb erst über den Editor-Canvas-Wrapper .cms-canvas-block
   (BlockCompiler.RenderCanvasBlockAsync): Author-CSS überstimmt das
   UA-Stylesheet des hidden-Attributs.
   ============================================================ */
.cms-jsonld { display: none; }
.cms-canvas-block .cms-jsonld {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .6rem .95rem;
    border: 1px dashed var(--cms-border);
    border-radius: var(--cms-radius-sm);
    background: var(--cms-bg-muted);
    color: var(--cms-muted);
    font-size: .82rem;
    line-height: 1.45;
}
/* Akzent-Stempel "{ }" — Signalfarbe hat noch keinen Token, daher Fallback-Kette. */
.cms-jsonld-badge {
    flex-shrink: 0;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-weight: 600;
    font-size: .78rem;
    color: var(--cms-accent, #d97706);
    border: 1px solid color-mix(in srgb, var(--cms-accent, #d97706) 35%, transparent);
    border-radius: var(--cms-radius-sm);
    padding: .1rem .45rem;
}
.cms-jsonld-text strong { color: var(--cms-text); font-weight: 600; }
/* Inverse Section (Gegenregel zum bekannten weiß-auf-weiß-Bestandsfehler,
   Muster wie .cms-bg-inverse .cms-hero): Fläche eine Spur heller als der
   Sektionsgrund, Textfarben auf die Inverse-Töne. */
.cms-bg-inverse .cms-canvas-block .cms-jsonld {
    background: color-mix(in srgb, var(--cms-bg-inverse) 82%, white);
    border-color: color-mix(in srgb, var(--cms-text-inverse) 25%, transparent);
    color: var(--cms-muted-inverse);
}
.cms-bg-inverse .cms-jsonld-text strong { color: var(--cms-text-inverse); }
/* Responsive: sehr schmale Canvas-Viewports — Zeile darf umbrechen.
   Keine Animationen im Block, daher keine reduced-motion-Regel nötig. */
@media (max-width: 575.98px) {
    .cms-canvas-block .cms-jsonld { flex-wrap: wrap; }
}

/* ============================================================
   TeamHUB-Rocks Design-Pass „Systemplan" (30.07.2026)
   These: Die Website ist der Systemplan des Betriebs — Ingenieurs-
   ästhetik statt SaaS-Karten. Vier Griffe:
   (1) Inverse-Sektionen = Maschinenraum: Planraster + Glow.
   (2) Karten → Messlinien-Spalten (Linie oben, aktiviert bei Hover).
   (3) Kicker → Plan-Labels (Mono mit Strich), Kennzahlen riesig Mono.
   (4) Motion: CSS-only Scroll-Reveal (progressive enhancement).
   Additiv ans Dateiende — gewinnt die Kaskade bei gleicher Spezifität.
   ============================================================ */

/* --- (1) Maschinenraum: Planraster + Glow in inversen Sektionen --- */
.cms-section.cms-bg-inverse {
    background-image:
        radial-gradient(900px 420px at 80% -10%, color-mix(in srgb, var(--cms-primary) 30%, transparent), transparent 62%),
        repeating-linear-gradient(0deg, rgba(148, 178, 255, .055) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(90deg, rgba(148, 178, 255, .055) 0 1px, transparent 1px 48px);
}

/* --- (3a) Plan-Label: Strich vor dem Kicker --- */
.cms-section .cms-eyebrow::before,
.cms-canvas-block .cms-eyebrow::before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 2px;
    background: currentColor;
    vertical-align: .22em;
    margin-right: .65rem;
}

/* --- Typo-Skala: H2 kräftiger, näher an der markanten H1 --- */
.cms-feature-grid h2,
.cms-stats h2,
.cms-richtext h2 {
    font-weight: var(--cms-h-weight, 800);
    letter-spacing: var(--cms-h-tracking, -.02em);
    font-size: clamp(1.7rem, 3.4vw, 2.5rem);
    line-height: 1.12;
}

/* --- (2) Feature-Grid: Messlinien-Spalten statt Karten --- */
.cms-feature-item {
    background: transparent;
    border: 0;
    border-top: 2px solid var(--cms-border);
    border-radius: 0;
    box-shadow: none;
    padding: 1.35rem 0 0;
    transition: border-color .25s ease;
}
.cms-feature-item:hover {
    transform: none;
    box-shadow: none;
    border-top-color: var(--cms-primary);
}
.cms-feature-item > i.bi {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    font-size: 1.45rem;
    margin-bottom: .8rem;
    color: var(--cms-primary);
}
.cms-feature-item h3 { font-size: 1.06rem; letter-spacing: -.01em; }
/* Karten ohne eigene Fläche funktionieren jetzt auch im Maschinenraum: */
.cms-bg-inverse .cms-feature-item { border-top-color: rgba(255, 255, 255, .22); }
.cms-bg-inverse .cms-feature-item:hover { border-top-color: color-mix(in srgb, var(--cms-primary) 45%, white); }
.cms-bg-inverse .cms-feature-item h3 { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-feature-item p { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-feature-item > i.bi { color: color-mix(in srgb, var(--cms-primary) 42%, white); }

/* --- (3b) Kennzahlen: Messwerte statt Zahlenkarten --- */
.cms-stats-row { justify-content: flex-start; }
.cms-stat {
    text-align: left;
    max-width: none;
    padding: .5rem 0 .5rem 1.4rem;
    border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}
.cms-stat-value {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-weight: 600;
    font-size: clamp(2.6rem, 6vw, 4.1rem);
    letter-spacing: -.03em;
}
.cms-stat-label { margin-top: .35rem; }
.cms-bg-inverse .cms-stat-value { color: color-mix(in srgb, var(--cms-primary) 38%, white); }

/* --- FAQ/Accordion: flache Registratur statt Karteikasten --- */
.cms-accordion { border-radius: 0; box-shadow: none; overflow: visible; }
.cms-accordion .accordion-item {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--cms-border);
}
.cms-accordion .accordion-item:last-child { border-bottom: 1px solid var(--cms-border); }
.cms-accordion .accordion-button {
    background: transparent;
    padding: 1.15rem .25rem;
    font-size: 1.04rem;
}
.cms-accordion .accordion-button:not(.collapsed) {
    background: transparent;
    box-shadow: none;
    color: var(--cms-primary);
}
.cms-accordion .accordion-body { padding: 0 .25rem 1.35rem; }

/* --- Blog-Karten: ruhiger, Datum als Plan-Label --- */
.cms-blog-card { box-shadow: none; border: 1px solid var(--cms-border); }
.cms-blog-card:hover { transform: none; box-shadow: var(--cms-shadow); border-color: color-mix(in srgb, var(--cms-primary) 35%, var(--cms-border)); }
.cms-blog-card-date {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    text-transform: uppercase;
    letter-spacing: .09em;
    font-size: .68rem;
}

/* --- Zitat (Über uns): der eine laute Moment im Text --- */
.cms-richtext blockquote {
    border-left: 3px solid var(--cms-primary);
    margin: 0 0 .75rem;
    padding: .35rem 0 .35rem 1.4rem;
    font-size: clamp(1.2rem, 2.4vw, 1.5rem);
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.35;
    color: var(--cms-text);
}
.cms-richtext blockquote p { font-size: inherit; color: inherit; margin: 0; }

/* --- Team: Porträts mit Kante statt Passfoto-Kreis --- */
.cms-team-member img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--cms-radius);
}

/* --- Menü: Sticky mit Glas-Effekt --- */
.cms-menu-sticky {
    background: color-mix(in srgb, var(--cms-bg-surface) 86%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

/* --- (4) Motion: Hero staffelt beim Laden, Listen steigen beim Scrollen ein.
       fill: backwards, damit Hover-Transforms nach Abschluss frei sind;
       Scroll-Reveal nur, wo der Browser scroll-driven animations kann. --- */
@media (prefers-reduced-motion: no-preference) {
    @keyframes cms-rocks-rise {
        from { opacity: 0; transform: translateY(16px); }
        to { opacity: 1; transform: none; }
    }
    .cms-hero .cms-eyebrow { animation: cms-rocks-rise .55s .05s cubic-bezier(.2, .7, .2, 1) backwards; }
    .cms-hero h1 { animation: cms-rocks-rise .6s .15s cubic-bezier(.2, .7, .2, 1) backwards; }
    .cms-hero p:not(.cms-eyebrow) { animation: cms-rocks-rise .6s .28s cubic-bezier(.2, .7, .2, 1) backwards; }
    .cms-hero .btn { animation: cms-rocks-rise .6s .4s cubic-bezier(.2, .7, .2, 1) backwards; }

    @supports (animation-timeline: view()) {
        .cms-feature-item,
        .cms-stat,
        .cms-blog-card,
        .cms-team-member,
        .cms-accordion .accordion-item {
            animation: cms-rocks-rise .5s ease both;
            animation-timeline: view();
            animation-range: entry 8% entry 38%;
        }
    }
}

/* Nachschliff Systemplan-Pass: Im Maschinenraum trägt die SECTION die Fläche —
   das Hero-Panel darf das Planraster nicht mit einer eigenen Fläche verdecken. */
.cms-section.cms-bg-inverse .cms-hero {
    background-color: transparent;
    box-shadow: none;
}

/* --- Video (VideoRenderer): Poster traegt das LCP, feste Ratio verhindert CLS --- */
.cms-video { margin: 0; }
.cms-video-el {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #000;
    border-radius: var(--cms-radius);
    border: 1px solid var(--cms-border);
    box-shadow: var(--cms-shadow);
}
.cms-video-4x3 .cms-video-el { aspect-ratio: 4 / 3; }
.cms-video-1x1 .cms-video-el { aspect-ratio: 1 / 1; }
.cms-video figcaption {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--cms-muted);
    margin-top: .6rem;
}

/* --- Theme-gekoppelte Screenshots: Namenskonvention "-light."/"-dark." im Dateinamen.
       Zwei image-Bloecke nacheinander (hell + dunkel) — sichtbar ist immer nur der zur
       Farbwelt passende. Gilt fuer colorMode "auto" (Media-Query) und den expliziten
       Dark-Schalter (html.dark / data-bs-theme). --- */
.cms-image:has(img[src*="-dark."]) { display: none; }
@media (prefers-color-scheme: dark) {
    .cms-image:has(img[src*="-dark."]) { display: block; }
    .cms-image:has(img[src*="-light."]) { display: none; }
}
:is([data-bs-theme="dark"], html.dark) .cms-image:has(img[src*="-dark."]) { display: block; }
:is([data-bs-theme="dark"], html.dark) .cms-image:has(img[src*="-light."]) { display: none; }

/* ============================================================
   Systemplan-Pass v2 (30.07., Max: „Karos ewig gesehen — lieber
   leicht KI-animiert"): Die inversen Sektionen atmen jetzt.
   Raster bleibt nur als kaum sichtbare Textur; darüber zieht eine
   langsame Licht-Drift in der Leitfarbe („die KI arbeitet").
   Nur transform/opacity animiert (GPU-billig), reduced-motion = statisch.
   ============================================================ */
.cms-section.cms-bg-inverse {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    /* Raster stark gedimmt, statischer Grund-Glow bleibt dezent */
    background-image:
        radial-gradient(900px 420px at 80% -10%, color-mix(in srgb, var(--cms-primary) 18%, transparent), transparent 62%),
        repeating-linear-gradient(0deg, rgba(148, 178, 255, .025) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(90deg, rgba(148, 178, 255, .025) 0 1px, transparent 1px 48px);
}
.cms-section.cms-bg-inverse::before {
    content: "";
    position: absolute;
    inset: -20%;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(38% 42% at 22% 30%, color-mix(in srgb, var(--cms-primary) 34%, transparent), transparent 70%),
        radial-gradient(30% 36% at 76% 64%, color-mix(in srgb, var(--cms-primary) 24%, transparent), transparent 70%),
        radial-gradient(24% 28% at 55% 12%, color-mix(in srgb, #7fd0ff 16%, transparent), transparent 70%);
    opacity: .55;
}
@media (prefers-reduced-motion: no-preference) {
    @keyframes cms-aurora-drift {
        0%   { transform: translate3d(-4%, -3%, 0) scale(1) rotate(0.001deg); opacity: .45; }
        50%  { transform: translate3d(3%, 4%, 0) scale(1.12) rotate(0.001deg); opacity: .65; }
        100% { transform: translate3d(-4%, -3%, 0) scale(1) rotate(0.001deg); opacity: .45; }
    }
    .cms-section.cms-bg-inverse::before {
        animation: cms-aurora-drift 22s ease-in-out infinite;
    }
}

/* ============================================================
   Linkkarten-Konvention v2 (30.07., Max: „unfassbar langweilig"):
   richtext-Liste, deren Punkte mit einem Link BEGINNEN, wird zum
   klickbaren Karten-Grid. Optional folgt dem Link ein <em> —
   die Szenen-Zeile (Schmerz + Ergebnis) unter dem Titel.
   Ganze Karte klickbar (a::before-Overlay).
   ============================================================ */
.cms-richtext ul:has(> li > a:first-child) {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: .85rem;
}
.cms-richtext ul:has(> li > a:first-child) > li {
    position: relative;
    margin: 0;
    padding: 1.1rem 3rem 1.1rem 1.25rem;
    background: var(--cms-bg-surface);
    border: 1px solid var(--cms-border);
    border-left: 3px solid var(--cms-primary);
    border-radius: var(--cms-radius-sm);
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.cms-richtext ul:has(> li > a:first-child) > li:hover {
    border-color: var(--cms-primary);
    transform: translateY(-2px);
    box-shadow: var(--cms-shadow);
}
.cms-richtext ul:has(> li > a:first-child) > li > a {
    color: var(--cms-text);
    font-weight: 650;
    letter-spacing: -.005em;
    text-decoration: none;
}
/* ganze Karte klickbar + Pfeil rechts oben */
.cms-richtext ul:has(> li > a:first-child) > li > a::before {
    content: "";
    position: absolute;
    inset: 0;
}
.cms-richtext ul:has(> li > a:first-child) > li > a::after {
    content: "→";
    position: absolute;
    top: 1.05rem;
    right: 1.1rem;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    color: var(--cms-primary);
    transition: transform .2s ease;
}
.cms-richtext ul:has(> li > a:first-child) > li:hover > a::after { transform: translateX(4px); }
.cms-richtext ul:has(> li > a:first-child) > li > a:focus-visible {
    outline: 2px solid var(--cms-primary);
    outline-offset: 2px;
}
/* Szenen-Zeile: <em> nach dem Link */
.cms-richtext ul:has(> li > a:first-child) > li > em {
    display: block;
    font-style: normal;
    color: var(--cms-muted);
    font-size: .92rem;
    line-height: 1.55;
    margin-top: .4rem;
}
/* Maschinenraum-Variante */
.cms-bg-inverse .cms-richtext ul:has(> li > a:first-child) > li {
    background: color-mix(in srgb, #ffffff 7%, var(--cms-bg-inverse));
    border-color: color-mix(in srgb, #ffffff 16%, transparent);
    border-left-color: color-mix(in srgb, var(--cms-primary) 45%, white);
}
.cms-bg-inverse .cms-richtext ul:has(> li > a:first-child) > li > a { color: var(--cms-text-inverse); }
.cms-bg-inverse .cms-richtext ul:has(> li > a:first-child) > li > em { color: var(--cms-muted-inverse); }

/* ============================================================
   Maschinenraum v3 (30.07., Max: „kariertes Papier? Wir verkaufen
   eine AI-native App"): Raster KOMPLETT raus. Stattdessen:
   tiefer Farbverlauf + feines Grain (Material statt Muster),
   kräftigere zweifarbige Aurora, dazu ein langsam wandernder
   Lichtstreif. Nur transform/opacity animiert.
   ============================================================ */
.cms-section.cms-bg-inverse {
    /* Basis: tiefes Blau mit Diagonale + hauchfeines SVG-Grain — KEIN Raster mehr */
    background-image:
        url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"),
        radial-gradient(1100px 500px at 82% -12%, color-mix(in srgb, var(--cms-primary) 26%, transparent), transparent 60%),
        linear-gradient(150deg, color-mix(in srgb, var(--cms-primary) 14%, var(--cms-bg-inverse)) 0%, var(--cms-bg-inverse) 48%, color-mix(in srgb, #000000 22%, var(--cms-bg-inverse)) 100%);
}
/* Aurora kräftiger und zweifarbig (Leitblau + Cyan) */
.cms-section.cms-bg-inverse::before {
    background:
        radial-gradient(42% 46% at 20% 28%, color-mix(in srgb, var(--cms-primary) 44%, transparent), transparent 70%),
        radial-gradient(34% 40% at 78% 66%, color-mix(in srgb, var(--cms-primary) 30%, transparent), transparent 70%),
        radial-gradient(26% 30% at 58% 8%, color-mix(in srgb, #6fc6ff 24%, transparent), transparent 70%),
        radial-gradient(20% 26% at 38% 82%, color-mix(in srgb, #8aa8ff 18%, transparent), transparent 70%);
    opacity: .7;
}
/* Wandernder Lichtstreif — sehr weich, sehr langsam */
.cms-section.cms-bg-inverse::after {
    content: "";
    position: absolute;
    inset: -10% -35%;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(112deg,
        transparent 34%,
        color-mix(in srgb, var(--cms-primary) 16%, transparent) 46%,
        color-mix(in srgb, #7fd0ff 10%, transparent) 53%,
        transparent 66%);
    opacity: .8;
}
@media (prefers-reduced-motion: no-preference) {
    @keyframes cms-beam-sweep {
        0%   { transform: translate3d(-14%, 0, 0); }
        100% { transform: translate3d(14%, 0, 0); }
    }
    .cms-section.cms-bg-inverse::after {
        animation: cms-beam-sweep 26s ease-in-out infinite alternate;
    }
}

/* ============================================================
   Maschinenraum v4 (30.07., Max: „ich sehe einen statischen
   Farbverlauf"): Messung gab ihm recht — mittlere Frame-Differenz
   ~1/255 nach 4 s. Jetzt sichtbare Bewegung: kürzere Loops,
   echte Amplitude, Opacity-Atmung, hellerer Beam.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
    @keyframes cms-aurora-drift {
        0%   { transform: translate3d(-7%, -5%, 0) scale(1); opacity: .45; }
        50%  { transform: translate3d(6%, 6%, 0) scale(1.28); opacity: .95; }
        100% { transform: translate3d(-7%, -5%, 0) scale(1); opacity: .45; }
    }
    .cms-section.cms-bg-inverse::before {
        animation: cms-aurora-drift 9s ease-in-out infinite;
    }
    @keyframes cms-beam-sweep {
        0%   { transform: translate3d(-26%, 0, 0); opacity: .35; }
        50%  { opacity: 1; }
        100% { transform: translate3d(26%, 0, 0); opacity: .35; }
    }
    .cms-section.cms-bg-inverse::after {
        animation: cms-beam-sweep 11s ease-in-out infinite alternate;
    }
}
/* Beam-Spitze heller, damit der Sweep etwas zum Zeigen hat */
.cms-section.cms-bg-inverse::after {
    background: linear-gradient(112deg,
        transparent 30%,
        color-mix(in srgb, var(--cms-primary) 30%, transparent) 45%,
        color-mix(in srgb, #7fd0ff 20%, transparent) 53%,
        transparent 70%);
}

/* ============================================================
   Maschinenraum FINAL "Flow-Story XL" (30.07.): 4 Quellen (Anruf/
   E-Mail/API/Website) -> TeamHUB-BILDMARKE -> ToDo/Frist/Meeting ->
   Ebene 2 (Team, Projekte, AKTE dockt an) -> Quittungen. Kamera
   zoomt ran/raus, MYKI-Orbit rotiert. 24s-SMIL, kein JS.
   Generator: Session-Scratchpad gen-netz-story2.py.
   ============================================================ */
.cms-section.cms-bg-inverse {
    background-image:
        url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201680%20660'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Cg%20transform%3D'translate(1085%2C330)'%3E%3Cg%3E%3CanimateTransform%20attributeName%3D'transform'%20type%3D'scale'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'spline'%20keySplines%3D'0.4%200%200.2%201%3B0.4%200%200.2%201%3B0.4%200%200.2%201%3B0.4%200%200.2%201%3B0.4%200%200.2%201'%20values%3D'1%3B1%3B1.14%3B1.14%3B0.94%3B1'%20keyTimes%3D'0%3B0.12%3B0.2%3B0.3%3B0.5%3B0.72'%2F%3E%3Cg%20transform%3D'translate(-1085%2C-330)'%3E%3Cline%20x1%3D'760'%20y1%3D'90'%20x2%3D'930'%20y2%3D'60'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'930'%20y1%3D'60'%20x2%3D'1140'%20y2%3D'90'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'760'%20y1%3D'90'%20x2%3D'840'%20y2%3D'210'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'930'%20y1%3D'60'%20x2%3D'1020'%20y2%3D'180'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'840'%20y1%3D'210'%20x2%3D'1020'%20y2%3D'180'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'840'%20y1%3D'210'%20x2%3D'770'%20y2%3D'350'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1020'%20y1%3D'180'%20x2%3D'960'%20y2%3D'320'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'770'%20y1%3D'350'%20x2%3D'960'%20y2%3D'320'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'770'%20y1%3D'350'%20x2%3D'880'%20y2%3D'480'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'960'%20y1%3D'320'%20x2%3D'1080'%20y2%3D'520'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'880'%20y1%3D'480'%20x2%3D'1080'%20y2%3D'520'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1080'%20y1%3D'520'%20x2%3D'990'%20y2%3D'620'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'640'%20y1%3D'200'%20x2%3D'760'%20y2%3D'90'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'640'%20y1%3D'200'%20x2%3D'840'%20y2%3D'210'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'660'%20y1%3D'460'%20x2%3D'770'%20y2%3D'350'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'660'%20y1%3D'460'%20x2%3D'880'%20y2%3D'480'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1080'%20y1%3D'520'%20x2%3D'1410'%20y2%3D'600'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'760'%20cy%3D'90'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'930'%20cy%3D'60'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1140'%20cy%3D'90'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'840'%20cy%3D'210'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1020'%20cy%3D'180'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'770'%20cy%3D'350'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'960'%20cy%3D'320'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'880'%20cy%3D'480'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1080'%20cy%3D'520'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1410'%20cy%3D'600'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'640'%20cy%3D'200'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'660'%20cy%3D'460'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'990'%20cy%3D'620'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20r%3D'1.8'%20fill%3D'%23bcd6ff'%20opacity%3D'0.5'%3E%3CanimateMotion%20path%3D'M640%2C200%20L840%2C210'%20dur%3D'6.5s'%20begin%3D'0s'%20repeatCount%3D'indefinite'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'1.8'%20fill%3D'%23bcd6ff'%20opacity%3D'0.5'%3E%3CanimateMotion%20path%3D'M770%2C350%20L960%2C320'%20dur%3D'7.5s'%20begin%3D'2.5s'%20repeatCount%3D'indefinite'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'1.8'%20fill%3D'%23bcd6ff'%20opacity%3D'0.5'%3E%3CanimateMotion%20path%3D'M880%2C480%20L1080%2C520'%20dur%3D'8.0s'%20begin%3D'5.0s'%20repeatCount%3D'indefinite'%2F%3E%3C%2Fcircle%3E%3Cline%20x1%3D'680'%20y1%3D'560'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'800'%20y1%3D'115'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'935'%20y1%3D'55'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'745'%20y1%3D'470'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1150'%20y1%3D'105'%20x2%3D'1310'%20y2%3D'165'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1310'%20y2%3D'165'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1385'%20y2%3D'415'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1135'%20y2%3D'565'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1260'%20y2%3D'55'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1400'%20y2%3D'85'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1432'%20y2%3D'235'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1135'%20y1%3D'565'%20x2%3D'1320'%20y2%3D'630'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1135'%20y1%3D'565'%20x2%3D'975'%20y2%3D'645'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1568'%20y2%3D'92'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1572'%20y2%3D'398'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1548'%20y2%3D'612'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1520'%20y2%3D'48'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.10'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1520'%20cy%3D'48'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.22'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1612'%20y2%3D'152'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.08'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1612'%20cy%3D'152'%20r%3D'1.7'%20fill%3D'%239db8f5'%20opacity%3D'0.17'%2F%3E%3Cline%20x1%3D'1432'%20y1%3D'235'%20x2%3D'1585'%20y2%3D'262'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1585'%20cy%3D'262'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.2'%2F%3E%3Cline%20x1%3D'1432'%20y1%3D'235'%20x2%3D'1655'%20y2%3D'208'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.06'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1655'%20cy%3D'208'%20r%3D'1.5'%20fill%3D'%239db8f5'%20opacity%3D'0.13'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1622'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1622'%20cy%3D'330'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.2'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1625'%20y2%3D'442'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.06'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1625'%20cy%3D'442'%20r%3D'1.6'%20fill%3D'%239db8f5'%20opacity%3D'0.14'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1505'%20y2%3D'120'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.08'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1505'%20cy%3D'120'%20r%3D'1.8'%20fill%3D'%239db8f5'%20opacity%3D'0.18'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1620'%20y2%3D'585'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.07'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1620'%20cy%3D'585'%20r%3D'1.8'%20fill%3D'%239db8f5'%20opacity%3D'0.16'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1615'%20y2%3D'648'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.05'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1615'%20cy%3D'648'%20r%3D'1.4'%20fill%3D'%239db8f5'%20opacity%3D'0.11'%2F%3E%3Ccircle%20r%3D'1.7'%20fill%3D'%23bcd6ff'%20opacity%3D'0.4'%3E%3CanimateMotion%20path%3D'M1432%2C235%20L1585%2C262'%20dur%3D'6.5s'%20begin%3D'1.0s'%20repeatCount%3D'indefinite'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'1.7'%20fill%3D'%23bcd6ff'%20opacity%3D'0.4'%3E%3CanimateMotion%20path%3D'M1385%2C415%20L1622%2C330'%20dur%3D'7.5s'%20begin%3D'4.0s'%20repeatCount%3D'indefinite'%2F%3E%3C%2Fcircle%3E%3Cimage%20href%3D'data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAHgAAABlCAYAAACGLCeXAAAlVUlEQVR42u2dd5xdV3Xvv2ufc26fUTEyrrJkyTK2ZFvNwTYlHiCYQCCUSHkJD8gHQg318UII5DESmDzaCyE8CE6AmNCCFMAYA7ZjYrnEBlmjarlqNKPmpjblllP3yh%2Fn3JnReEZTVDzyx%2Fvzsa8%2B0rnnnLt%2Fe7XfWnsv4blxwoeqCiCArFuHrFuHXb1a7BjfcdZtp3h2DlOrYXo8Yvbjt7VJPMK1BlAR0eH%2F5j43%2FScG0LVgVgCrVqEiYoEjJn%2FDPi05IacblzNIOMda5oow28Js4LSN3VSmVSjUFIfpyDQhpkRjY7f2GIcdjvJwovyGw2wSkVrzucNBlufgOPbR3q5m4SpkRTqhlmGT%2FOCD2hJVmKsxC9WwWOEytVwkwkzXpZIvgOOACCQJWAuq6efAshAwJr3GddO%2FrlVBhG2a8K1GwL9csUD6hoMsE12Zq0AWrkVYkf7diqNcvzb734oV6KpV6WoeePAI6uSUktC1mFmzkKuvJhn%2BW7bs0XOMsCSxvChJWGaEBSKcVSrjOk4KYhSmn3GMpuoVm94bEUk%2FhwI0gLOk12fXOfkC5HJQr3FnFPKBZfNkK6hA%2Bk4y1spctSp7kEhyIiZpxYojFwLp28EUWwDNuVgLrBw2F1v26DlJxDIVXuwYrhRhYS7P9FwuBTEMIY5ALQkyAI40P49tHrGAbWnFrdXYKZYVl82RjUeV4DWqzgoGbMfAuGurzmgpMwuX0xNLxSit6lA0llICRZTIGHyU2AqxI4TW0oflAEqP5KgHPv0vvIDq8HuP5Diszd5vBQOrnObKPEmSatatwwyX0n37tHQIlmjCKxBeZi2XFQpM83IQRRAGEMdYESyKIMjA5wl7V%2BJKC261yr1%2BwIqrLpR9TwM4W6UD3tijB%2FXcwOelFq5KIpagnIdwmnHIu25qN5q2Y9jDBmxIHEMYoCIEqtSAXjEcRtmvyi4V9rrCHmvYjeUpLPsWz6F3NBWeeYwCJ0bam6C2XU0y9L7b9uq5wFVWuUaVlzqGeaVyKpnBUEBBVDEiz4h%2FkxQKOA2fv9xxHl9eKZLI0B%2FWlKrNu%2FVVIrxboK1QZJoxKVBxNOgEAFbTn6%2BZXUinXFAUVFJDkP2NQTDGAceki8IYME767DjObFJMA8MTatmHsAPLTnF4yMLOvNC1aLYcGhfoEwR8ANRhIci2x%2FQim%2FAqgVercnmxlM5F4KegihA%2Fw4A%2BDeBiEVOvc48aVi47Tx6ToeCuf1TPLZX5iuvyBseBeg1sktqN5g%2FJDP2g7Vc0syvGcZAmiMYMOgbZQsAmYDWFQYd4Do6bXu8YcL3US3S99N%2FjGPr7IAo5IIaHreUBYLNj2BZD57Lz5LERzcwadQC2r0BXjQB6u6q5egRQt3bqpdbl1SL8gcLllQq5JElBjSMszYUr6VwcRxXbNEM64GAN2msz3nt4HhJHHHDgdZfOlXulCW5Hl16Uz%2FGLYpm5vYdpOhGjrkxVrAgml0slMUkgDqmr0gMcVOGAKAcw9GGpqaGhlkCEWEGNZhgLRhTPKp4Ycih5ESoKraJUEFqA6arMFKHVGAqely6UKKQK7DHCg7FlG8pGp8i2R85g98oRnMKmpK8CXT3EB7h%2Fry6OLa8T5TVWWd46DRNF4DfAWpJMNRxXKW0CmgFpmiZvQDAUxIBa8P30%2BrGer4o6DmITGqr8yZK53CSqKo89RvHJkN%2B2TmNRXw%2BRGLyj3UQEyRcgDLCq7FB4AMN2jXlYDftc5XDi0I9S1wZhrkgSxlg%2FxFYCbKnEgNQcKGBa%2B3AcB6nlMI0aJjcTYwPcFsjXhaLjkTchBSsURCiL0mKFmcZwhibMFodZqsxCKRuHPlEeTyydKmzzcjyYU3ZdeBaHhjp223bpPGt4rQhvUuXKSgUnCqHhA3oCVa%2BmSswYjJdLAfV9AJ5Sy1Mi7FZ4CghQyka40Dhcnpmyo4KsijoGSZTACG%2B7bDY%2FFoBNO%2FVd00%2FjukMHiY0Znd1qrhAErOUelJ%2BhrBdhlxF6qoIfnEvUJhKPxKoc61izRp0VWeDd0YEJT8fNOUj%2FU%2BRKHoVcmUIUMaOQ57TQcroDpzsuNrb0CDxhoGGEBYnyRpS2SivFJIZ6PXUFhgAqJ0j9Gi%2BXSqrvE6DsBDYrbBR40ApPJHBYLfWiIYgDXJOjosrrHZdrVSlm%2Fo%2BMio%2BLJAlVFf5UZ3OzC6CGNyYx1oyxOkzqygRJzDc94QdJzA53Hj2LRMLh14uIZhzspMfwBbJy5RFqNwGi7M%2F1IZzvXhgMa%2B5%2BUFsqFX5P4D0o1xQqlNRCow59vSRZBGAAV46zm9QE1nEwuTwSBpDEdMYB92K4S%2BF%2BtexTpafQoLFwIfHw8LG9XQ%2BuXi1f7tipp1da%2BHitij2aFDsGbMJhCz07wcr9qrmwm43FEgsb9dSujvayuTwShXxHLV82RXYsPjPlQAd50JMZp6ro4JNkHZg2GXSYNjyi8wplVqjyp8bhEs%2FLnMYTZFNHAtbzMK4Hvk8V%2BK3Ar0VZ34CdhBxsXEB96DtnXxaOJK5FROzGbr1YYL0xlJNkZFWtii2WMI06d7vwzkvm8LDrP4ZrBIMe%2FYVdDwl9DjqGmxoxXVecKbWhavjkU4%2BikJIhmUNlH3lE836B3wfeosqriiVKQQB%2BAw18bOY0OieQhLco5PLp4okjHvN97gButTEbi3n2ddepvnqBBMMX6sD8yZEUo2aruFhmj1%2FlSdfjfJtkAelIWKXyvwXLYRFRd%2FnZUt%2FYpYeMM8BzPn0qUzUjseFgrOzbvZnaM8UnZ2rYALapzjZ06uxCgT9pJLwtX%2BCiZojX20OSviYGcE7cS6U8spfDiIE4pEvhFzbhNnXZ3uLz1AXD2LtB4RAdj2kI9mF1WsZXj4Ru6h%2BZwKdhDOttgepAulActjoOVw1PaQ1%2BF0kSwDJLHMoZZ%2FyMAJtx4gnA1r16JfB2tfxRscj0IIR6jWYOZkBaTySwCpLLYwSIEzptzC%2FUcrMqDzh9HLjsMuoDgqAqTFLjFWZRrIe0juZkKWguh%2FgNNsXK%2FcvOwB8EWLkjSXhv5kWO4OwgcYQtlpgR%2BFz9q0e5C9VQT4IUDwe2%2FXZ133Q%2Bb8Th3aq8rFzOpLX3CGk9wYstXeD5fPqsKKZTLTfZiJvV8AAFDiw%2FW%2BqgsmYNRlWtiOgkKVUBtNbgPDfHaXE0qnmRKAIRbnFj9opIoqriAsQ17qwlPOHlOSOOUls1AsjECYrh7WcWuBGR9RyjlzwRYG%2B%2FXyszp%2FEnAu%2FNF1giWT60LwX2xEvrEOcpl8MgEEXssMpNGnGLGh6glwPLl9HQLGGzUiRZuZJjzcKlTpfDS8oVnMzzd4Y7V%2FkCJvR5ALjTm0dPU0u47e1qll8sj2%2Fq1p8Ui7yvL2Q0m2CiAFuqcKbf4HMdu%2FR%2Fishjxz3eVRUdAuwDe%2FW0yPJ2MbyzWOSCOIZaFSugCI5w8oB1PYzrIlFIl1puiC235HM8EHgcXH621DV9d8lsbbJ1l54fRcxcNo%2BOY0iI2JRS5PetHV16bQICP1GHR4eGrYZVAz7pN2v91I2Daaqgp93FYBo1klKJNgN%2Fv6lLpx%2BPePcI%2FlhERSS5%2FX6tbNmjH05gY6WFLziGC%2Fr7SAZCuZMgsU3pcBykWMJowv4g4FuR5YOux99ziLsuOUf2LD9b6rffrq6k72637NaXbtur31fDZuNx94ZdtE02By0iumWPniNwpd9Iw7vh71coIlFER2y4pXwuB54u%2FpkUbtyp32qdztv7ekjEHHUCk1IZp1bj%2Bl7lI21zpedYJLlZw7RSJLnuOvWueDV%2FZgwfLRa50G9AGJAgJ8e%2BDufaCwUIQqqq3KoR%2Fw5syLXw%2BKLnS3UIv60ioh2deqmX49PG8If5IlT7oFiCRp3%2F16P8Tdtc8ScyT6rqiEiyaZd%2BuKWFLw9Xz03yScC3ysf8PtZeeak8OdSZcwGyqg1V4UvVfl7veswYg%2Fd06jWScpk%2Fcxq0%2FrZL%2F0JEnmhXNavHSOSPlABoqrT7uvTqvMsXSmUuD4Ih9tWcHGkd6kAVipgoJPYD7gR%2BFEXcY4Q9y86nvxnuNAFYs0adrXv1E8bw8XyeUn8fGoapGRFwUJ43y6EE%2BDKBRQ%2FYXz6ieU14VxSO6D1rLo%2FxfX5uDOuuuISDMAhuk6Jj9Wqx7e1qls2VB63lS8US0tT9RxlOPVXXbyy4rO3o0otWS3qf8Tpf2Wq2Gzp12ta9%2BveFHL%2FO5bm8r5ck8LEiOCcrz6qKqmJzOcTLIWFIh7V80sLH8g4%2Frs3joeXzpLcJbqaSk46det7FL%2BI%2FymU%2BHUeU%2BvtIJNU2DkJqkw1uf5QmcCag4oyI6PPzXFOqcFGjcSTLqIrN5TGBz25H%2BL7vs1vk6SW1A19YtQpVVam08LX%2BXn5TruCojukBOv39JIUCL%2FZcburo1NeuXi2Wcdjlpn3ZsEvn5fPcVWnhQ1GI1KsDwJ5Uddy0s0nC7iTmi0nM%2F%2FKUf9X9bL34HDnYJhI3F%2B7tt6vb1ibxfTv0RfkCd%2BcLtPX2EFuLjuTNW4tnzIQXqmaM%2B0ckrZzQ4ao5y9X%2FS%2BSy%2BYoF0jfI8A0Od3hyYMHzpG%2Fjbv1g4HOr6zJtrBSVCE6tSpIvcL4Y1m7u1s8e7uKLIuIPrRIZQf3oa9%2Bq04xyW6HInMOHCI2Q4yRWRmR2VoolTBBQ9RvclChrHNg0cy5PzBXxjyAo0jlyRCS%2Br1P%2FqFTgehHK%2FX3EIkepMVes1fEL75pM9W%2Fs0lcXS1ydJRicI1RzAdOocYMm3Nga8OSoamB49qa9Xc3S2XJfFPPXroeYtHBMj571wQl8bBKTL5b59Ix5%2FKijSy8SEauqMpI0ixF1DIKyVxVch5wqieqJZ8ma6jifT6tQwoC7SfhLhc9g%2Bc%2FFc9g1AO4QfnhALXfq%2B8tl1iaWcqY63THmp5ZPGLdvsgJUVR3gU0aOpJBVsYUCxq%2FxoAj%2FxGl0LjiC2z4KwENVdV8332w0%2BE65BadJDY7xI4y1aGaXX5fL8R%2Bbd%2Bvb165NbYnqoG0WEUVhyVzpycGKRp1%2FQOgvV3BcFyEF2k7MZE1MHWdOVGdi%2BUyc8LFCjn%2Fv7eKRzM4%2B7blNtbyhU99baeWrYYiNY6wxRzElmsanKvRZh3ACnrPdtIs3lCu8sF4nafLoqqjrImFEH8JX1WfL8pnS26w9HBfAzR%2FX1iZxHj5erbKtVMYdhz1u1mo51X4SgbNzHt9a8EK%2B2%2FGozhdJbXN7GlYMjIVzeLIGH09C3uT7%2FAjoKZZxCsU0I5MBnaBja5JxSK0WihiUmt%2Fg%2B3HCh12Hf26J2PiCs%2BVAWp%2F19Mlqgrtxp761XObrfoMkiccO2xQkSeW2p9AYe%2F6apmvz41oGrk2Swfos0koaFUFszLeNx687tzVV8%2Bhhl4zh4WpHl17pufzMOMwKfayYcReAWQHKLRi%2Fzt7E8vk9B%2Fj265anjM%2FQxdR81u2bdPqMGSwFXovwMuCiQgEPGazqzByZgV0ATRp1YCJGeR3PS3n2OGa9tXwHYV2xzJ6LZkn%2F8ETASLHohi59fbHAT%2BIITWJExuk0GQNJzIdsnm822a7R4uAmvdnRqZ%2BcPpNre3sG496BXG%2BVGxP4bNWwtW3uEDMyUYCHTvyGHfqGQoHvWaUYRTARj1CVJJfDcT0IfW6PY1YvPV%2FuGE4SDKUq79lDoRByjngsNsJSa1ks8AJVzvFyuK43mPu0mn3awepN1SM59FwewpAnNOHfEstPnSIPHX6IQyPt1BvOrK1cKclvduiyliLrEqUcR2npzXg0huMgicXXhHd2NlizcpGER%2BMDAN2yiznisMUI5Sga2AFhi0WM3%2BC%2B2PLJmbB%2B3rymaj46aTKGc5DaThH5aUeXfjSf4%2BuOg1p7ROnsWGrbCQM0DNFyhTYJuHLLLv2nIORLIrKnGTI19y2JiF4FDeDR9nbtvOYd3OQo0xzhLMcwL4qYG4bMRjhb4GyEFpQKShkoZLGnEUXEkCBEgc9dieW7nmH9TJfHZ58pjfHQhCtXYjt26Vmew1rjUPHrY9jc4dKbVpv2GeGpWfvHdLLSyo0u%2FVxrmZaMtTJNZzAI6MbwJS9hy7z54wN3TAkeQv6TUXGryy18yq%2BTWMWZaA2TKokxOOUKNBp0Yvms6eP7ixZJOLirIpVAGVldyq8eJTd7Gp5Vyn5A2TW0SEIFSxmhpBYXQ04kBdjGNBxlp53JnsXTsx0To6jjEYoK2LSL21pbubqvd4xQaITQKJfHhCEPqeGtO37DxmE1ZU%2FTFB279HXlIj9rZI6VKtb1MGrptZa%2FiSJ%2Bdvl89k5kN8c4IUrLSrZvxwvL%2FENLK%2B%2Bu9g96d5OgAm2%2BgGMMhAG%2FFMO1l54j946ktofb69HMSNMZamlBWJYlybcj%2B%2Fdj112NnQiFOmB3O%2FVzM07jr3oPTxDcjK8vFHEade40Hu9cfI48MpLUNTeH7zxMS3%2BVzZ7HeYGfFm1kFaxhHPJ5Ub7bO4%2BuNjm6WZmQih6yDhRUFi2S8P779X%2F3Q6mllbdMBuSmp53VSFGu8OogoG3Lbv1OVOcrIvLQqPZ5CODN1Tn0349uU8en0oaRDH9VTUmMSXHhWf3tk2qpjXbNunU4bW0Sd%2BzUv50%2BgzlZmZFjDFYEjUOuMy4%2F8vrZlYI7vt8xQYCbsavKIpHqhk79QH8fpqWFN1f7SSaTums6KrUqiXEolsu8pwFv2rJHvx71c52IPD6YjEAH9ruOSzUNDXWa14%2F9vSbBv3mHnq6Gb9gETZLJVV%2BqIll5za5G6lNkpudpiZa4o1tfns%2Fx3v6%2BgeIF67qYMOB6x%2BH6yKVryYCDNrGMnZkgKqqqsnye9Aq8v1blB5VWHHTyVQsiODZB%2B%2FtIxDCrVKI918odW3br%2B%2B5%2BUFtSqjMjSsZ%2FVx38b0LDiIhal49Pm865QZA6OpP8XSYMsFbZXTpEMNweZpvp2bpLZ7iGfzaptwyghQImCLjBEa5zijzSLP%2BZzHuYib94CvKSudLTL7y%2Fv59%2Fa4KsOmmQRQQnilKgHYcLCkW%2B1trCbZt26YoNG9RLgVaZGNAT50MyIC6Kw9FLU8cZImGVfhX2uG5WoD9E%2B6xbh7NaxMYxX6m0MLfRIEGRLBz6DyN8JVdh%2B6LnSzVlACeXa5%2Fk6kxBfsl5ctgV3lft54flVhwjx8YlN4EOfGytis15%2FE7OY03u%2Bfx88259VfbsJr9tThTACnl9%2BrbnidhedRxAeNJzeWLhQuLhTlxGe765Mo239PUSGwOFEqbhs04NX%2FQctg6QMMdQEmUmD0YK8qXnyWGU91X7%2BOdCCceYlBI8llkWwYhg6nVsEKD5AtcY4Zdb9%2FCzLd368mZpjKpK%2B%2FECOvPGMztc1knLb1az64CBfRpyiCNSfWpEJNnUpXNyef4hCNJi%2BWzj9n8Z5fO2waZ0L%2FSxl0KZYwNiUF37c%2FhQvcEXvBzGmJRSPNaXy4CWWjXlfgtFXovh1i279ccdu%2FWlIqKrj5NEN192%2B3Y8USoZM3ZME2yh2zX0NeepGRKpqlH4ZrHAzCgiLpRwGz7rRfm%2FNqJj%2BQvkwES95RMC8KBXq3KVSCPXz%2F8JfD7pOOlGZLXY4yFcWXUE1X4SazHFEm%2F0hNu27NEf3rdDXzRUolOgJ7%2FyexzymhImx4KuRCFYZUc1SjfGNe2uiCQdXXx02nRe3tdPWCyS8xtsUOGzmmP90gWy%2F3iBC8d1i87AZjDTsZP35At8SaAQhk%2Bv4z0OKb%2FEGJxSGRoNAuCGRPnHpbNTjnuk8Go8IZKI6OYdero63O96zIqisTddj8pBJ1TV8Od9O%2FlZW5v4TfKkY5cuz7vcnSQ4nocbBNxrLZ%2BTAvcuPUv2j8WynXQJHhqaiIiuWoUuO59%2FjELebi0Hi6Vxlf5MPLSyaLWfRC35YpE%2FduDX2%2FboTzft0ldm5UC2SdBM5N6hkkco6OSnWF0XEB7zHHbv30%2BkqrJqFbqpS6cb%2BL4IecfFDQLu1JhrJc7A5fiCe5wl%2BEhJFhHt2KEv93J8PV9kQa16%2FCV5KPUpknLcfppGuCUK%2BZqez83LRaLx3KdZEbplr15oY7YYQ360bZrjpChv0Zj3L51P5xC2ak3rNFb4DYgj%2FjNRvkB4fG3uCZTgIyW5vV3Nsvnyaz%2FkTX6dOypZZcjxLskZqGAklegkgVyeayqt3Cjd%2FP8N%2B7Q0nirPVdlnFDFDID%2BRjNlwBivbwvmoKL1rSQ966ejSj7ROY4XvQ5xwsxX%2BtpRjw4kE9wQBnI7Vq1On53fmy%2F1WeHO9xg%2BKpTQDlVVpHPeV1dQQ9Vq6A6JY5F0S8lYdh6ZqHrpmYGYu33SCJ8lghVgVHrEO4co0afGSYoHPxRFEIT%2FH8vm8YdPF58jBydCPUwLgI8Ko2bLPD3hvvcbnXRfxPIy1JwTkoTY6rf6AT2zby6KxbPGKwe%2FO8LzBAviJmgvXBWs5oAld%2FbupbXhIn5fP86%2B5PLlanX93DF90ZrBltDO%2FTimAh4ZRVyyQvtwcPhX6vEfhUKmMAeITCLIJA2ylhXOjmA9s2EdxSELhaGPGMXgmTQdrp8mxp62NxKtwfaWFOT09fDuX4%2B%2BsZdul0%2BUwJ2mcpOLyFOSFEC2bL9dFPivDgK3lCq4q9gSWyppGA%2Bs6%2FKkT0TaefUFWmSUy%2BmkH4%2FRcH%2B7N0bmxm78rFnjNwUN8wcvzNeOxbclc6TmR226fIYAHnS9VlWXz5deJ8Ee1Gj8plTHGDFRPHm8pliRGC0VKann%2F%2Bn3MbHr6R6G0Zh3L8%2BIYENa11nmXY%2FiLvj4%2BZoTvqOHhdMPa8Q%2BFpgjAR9rlpefKo1je4df5rOMQ5fOY4x0vN1V1vYa6Hq%2FwIl6po2Rm1q4dmJAZkw3XcnkkDOm2lvMNvDeJeacjrLUH6B48kejknmty0gEeapeXzKE3PsDqMODtScKecuWEhFKS1Ue5qrxr25OcPpItXrGC5ukXz7MJ6fbyiXLPNsskCS%2B0ykdzwi1ejceWL5c6z9AwPGMj3euzbBnxsnnyvSjgDb7PraU0I3V8VbbgNOqo5%2FISDXnZoC3WI%2FZHq6qDcEacpEXrExdjwNCbKF8OXO5eOIcDi45SKvssB%2FhIlb1svnRowFtqNT7vOAT5wnFX2TZfwEksK7fvydTwMD2xbTetKKfZZOLJ4KzfglXLD4tlttzyLXpkggVyz0qAh4J82Tz252p8Kgh5axzTmW1hPS5etirGTw8mf3moWd1l5uysyqQ1hJmqTJtoqrB5jK%2B1PI6w1e3h0OrVYk%2BmtzylAW6CLAILFxIvP1%2FW2Ii%2F9n3uc12Ml0OOVZqzPT22VKLFKK%2FfvFnLGTrSpCk9yyzHozRRDloE67ggwgOJ0nXBBYSqJ9dbnvIAN%2B3yqswmKjwSR3zXxnxULQePhzQrSBKDVV7uTGN2GrIM0pQYTs%2FnJs5iqWKSVK1vas1zcCp1lJliAMOqrBbaWB43hrMo8L3QZ0Xg8%2BtSOd3PO1lpztgtNYb5oWVZqoZFZ61LAU4sZxvnyN3041HPjoNEAXVVtlYfTxP88hzARwuh4LJ5HFBlpgmZvWw%2Bd9YO8%2BZGg8%2BI0F8q46idnDQr2Kx27HcfeogywNVXD3jbZzvOSO7X0W%2FpeaCwE8OjO5elJbJTpS3QlAMY0r062dEPYZKwTESSKy%2BVJ71%2Bro0D%2Fjjw%2Ba9SGeN6E5dmVcSmbNOLagXOHhLgIMoZkym2k3QWNycRT6w8zv2lnpUAN091V2WvGF7W1aWF9nY1CxcSLZ0vv7Lwx37AKjS1zaQdYMYVN0t2pqPCXE9ZkFVlNr87O2snN26IjWD8BokK64HekUiU5wAemTJAhG1WubxPOW%2FVqpSVaKYf46f4Wz%2FiTUGDX%2BXymFxGdY6ptgWxCTafo5AIC1eAKyLa1aUFhNlxPH6SQxXrpU7ZLqNs43Bmf59zssZwtFYNSNsDCDMSuKJp15oExPLlxL9zvtzR4%2FO2MOQjNqG7XEmbe4yptgV10gaP8%2Bzu1A4ftJyuyllxxIR8pMwp2xgZdi9bTjzV5nJqArw6lcIb5rBbhCfF4ZWPPdbM5w6GVKDy0gWyf%2FFsvhrXeb3f4BsI1Syk0rHUtoHZGqQAOw7nuh4tcTKhze0m8LEq%2FNazHBKO37mdz2qAs4lKj0VUOtTSdjjhrKerv4Hj7%2B3SC2VL5PDRJGClX%2Bdmz8sOEB0BaFWywkCmxUoLgFrmFwogjNNpU2xW%2BbEPYUsy55k7Bf9UtMGD5APcU2nhzBiWj7p7IZvU5WdLfel8bk4C3hrFvDMMuTeXGwSaIZkqa8FC2clRyKRx3oRCpEzNA5uJ6F7G1FPPUxrgrOMoVtkIYBNe07Ezk7ZR1WCa6126gANLzuPbfb38jyji%2FUFARybRjuNk53BmdrqpjlW4cEIctKakiSr35nIZezXF1POUBrgpSRrwaLWPQwivFGX%2B0ctuBjd7i4h9ySLZ%2Feh6vuHXWREnvLtR51dAb76Amx3wZhPw16xRR2BukozbwbJeDrEJuzHcx7lpAwymYNPrKQtwlqiVn%2F%2BQQyJsmjGD08XjxesGjowYn7SsXCnJFS%2BQrsWz%2BaaGvM3GrAx9PlOt8j1R%2FiVyefKcK5imcO54PWjVtKEmwm9in50jNQZ7DuCxXVRdsxazerVYYFMuj4pyzWk7Oe1Ib3pcykBExC5dIPuXnC%2B3ejWu7TvIhxzD9S88Rw6W4CwRnpfVU409aQYT%2BEQJ3DX9tPSEdZ2C6hmY8MkxzwzWyoZaFVG4Kna5RFWfmpi3euSJelmVxaGm05YkLKpUcMezvaZ5TrPf4BFj2NTXnZ6%2FIVNQPU91G8z27QMe78ZqP32VCtMMvGJdN%2FnJSM3Qo5mGnoUlsNR1x18qKwKO4W4x7Fq%2BXKKpKr1THuBMPWN76DaG%2Bz0PTRL%2BoKycNyG6aQSgs52QNrvP4iQZhweddRfzG9QU7j7DS9vXTOUx5VV0duRBtLFbfxvHXOW6XCQJL1fVHSKSTHY%2FbbOdwIP7taVe5eIwHJvB0rRHgjQa3KeWbWdk3cWmqnqe8hIMsHYtzZ6mdwVB2h8QZcX27rRAXSd%2FXwNQr7LI8zgzCrOayKOrZgkDrBFuJeaxgQU2hceUB3igXtlhfRhwwCZgXK6KDC9t9n2YzH1nzRo4ivhF5RKGMSjKZsOOJOFRm3BP7oI0NcgUlt5TAuChOxQR7nVdyOXIobztD9%2BchkyTGevWZfZX%2BV2rjJkDlkGjf5vj0TmVY99TLkzK1GkicKtxeG29H2scXiEeL1HVn05Uipv2d%2BsunRFZLg98YIzu566LCX0OqHC7uhweJFuek%2BBjV9NZuCSGdfUavggU8uQSePeWzmyz2MRsoQEVG%2FPiconnh%2BHIDTmHYpwl9u92XLb99Bs0hsbXzwF8rGMViqrET%2FGwKpuKJUy9TuJ5%2FJ51eV2z5%2BF46ct0o5koDm90c2ld89Gk13EQv0FDDL%2FUiKemSlH7swZgkTR9m5IK3JgdE5i4LgJ88AUvTOPi8Z4ou3KlJJ2HdJq1vMqvjzkPmssjwB024bc93VM3sXDqSjCDh6SI4ee1fuqOIec3SEolLgliPviIaj5llMaULAPQ28tryi2cMYZ6bkqvj3BD3mPvaJ1ZngP4WFmt7CS7xbN5UJX%2FKhTTNjOBj83neU91F69NPe6jyq9kfaEchQ%2BPlbBo7vlV5U7HcO%2F%2BTvpOFdt7ygE8qK3FKvw060ZikgQch7wxfG5Tly5uHuE0CmBm9WqxHbv4%2FXKZy%2Bu1Ixs%2BDr%2FcGCQI8IEbjGbSq6eO9J6KAKfedMiNtSpP5HIYQIIGtlBgHoZvbu7WuatXi12zRp2hSQBVNWuBNfdrzhE%2BrVmjqaNJb6GAJAl3odwzIL1y6kjvKQdws83PkgtlnyprCwWAtFlXvUZSKrLMGH7QsUOXrVwpSZMkac%2BaZK4USS4o88VKhSWNOpZR%2Bk00W8j5Pj2ifN%2Bvs%2BdUs72nFNEx0nCE62tV%2FtwYCs22rrW0b%2BIVYvjFpm69VmLWiMhTgG7o1jPzDn%2Bdy%2FOBav%2BYeV91XUzD58eOcu%2FeB%2Bg9FUiNURm4U200Ve%2Bmbm5oaeV1WVPmtAWcxXo5jOtBo84eER5AcNSypNLCabXq0UmNgUZUIQ%2BL8MGefu5pW5SdjvMcwCcNYJNRja8Qh5uTJHW4hqrYLH41XtYGLwwgisaW3KwBpCYJnxKH7yyZLftOVXBPRSeraYutqsols%2FnPOErP2hq6XSU7oNREIbZeJalXSbKzn49ejmPRfAGTRNymCbd4few%2F1cKiZwXAGfEhImIdw%2Bf9OjXXRUbYeGZIT4t3xkzmKzZfwDR8uo3hn%2BoeOxctklBVhVN4nLIArxax7e1qLj1POuKEb2dSPKmjl5p8cxzjo3zN8bjvxbPpyaox9VQG%2BJRenU3penA%2FZwR11uULLGhMsEOoKmpMSmpEMV8FvqEH2bF8%2BfgOEn9Ogk9wXLxqFXLx6fK4Kh9OEvxsQ5idCLheDhNF%2FNAz%2FGvg0J2Ce2qr5mcFwJBWXra3q1k6V34V%2BnzC8zCOMzbIqlhj0rOrgwb%2FpsJXTT8PXzVbGqey1%2FysUtHD1fVaMOd38YlCnk8DhCFJhtQRbQMBCgVMFBMkMd8Rh295eR4YaCMnzw5wn1UAN6Xu9tvVbT2Xd3gF2gsFzoxCiON0q4sx4KYqnDjioTjmeuNwU%2BLSNdgA8tkD7rMM4CMcL9mwk%2BWeyzuMQ1uScJYqnkBDhE6UO2LLzY7L9sXn8uRUOFPyOYAnhrIgojdu0NK505irLucZpcV69JuYx114vM%2BhN7W3z41TfrS3q7ld1d2wQb1TnbiY6Phv1nCnIVbXys0AAAAASUVORK5CYII%3D'%20x%3D'1063'%20y%3D'311'%20width%3D'44'%20height%3D'38'%2F%3E%3Ctext%20x%3D'1055'%20y%3D'364'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'11'%20letter-spacing%3D'2.5'%20fill%3D'%239db8f5'%20opacity%3D'0.6'%3ETEAMHUB%3C%2Ftext%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'676'%20cy%3D'560'%20r%3D'2.2'%20fill%3D'%23bcd6ff'%20stroke%3D'none'%2F%3E%3Cpath%20d%3D'M681%2C555%20A7%2C7%200%200%201%20681%2C565%20M685%2C551%20A12%2C12%200%200%201%20685%2C569'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'790'%20y%3D'108'%20width%3D'20'%20height%3D'14'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M790%2C109%20L800%2C117%20L810%2C109'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M926%2C51%20L922%2C55%20L926%2C59%20M944%2C51%20L948%2C55%20L944%2C59%20M937.5%2C49%20L932.5%2C61'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'745'%20cy%3D'470'%20r%3D'8'%2F%3E%3Cellipse%20cx%3D'745'%20cy%3D'470'%20rx%3D'3.5'%20ry%3D'8'%2F%3E%3Cpath%20d%3D'M737%2C470%20L753%2C470%20M738%2C466%20L752%2C466%20M738%2C474%20L752%2C474'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1310'%20cy%3D'165'%20r%3D'9'%2F%3E%3Cpath%20d%3D'M1306%2C165%20L1309%2C168%20L1314.5%2C161.5'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1385'%20cy%3D'415'%20r%3D'9'%2F%3E%3Cpath%20d%3D'M1385%2C415%20L1385%2C409.5%20M1385%2C415%20L1388.5%2C417'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1126'%20y%3D'558'%20width%3D'18'%20height%3D'15'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M1126%2C562.5%20L1144%2C562.5%20M1130.5%2C555%20L1130.5%2C558%20M1139.5%2C555%20L1139.5%2C558'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1260'%20cy%3D'51.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1254.5%2C61%20Q1260%2C55%201265.5%2C61'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1400'%20cy%3D'81.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1394.5%2C91%20Q1400%2C85%201405.5%2C91'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1432'%20cy%3D'231.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1426.5%2C241%20Q1432%2C235%201437.5%2C241'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1141'%20y%3D'98'%20width%3D'18'%20height%3D'5'%20rx%3D'1'%2F%3E%3Crect%20x%3D'1142.5'%20y%3D'103'%20width%3D'15'%20height%3D'9'%20rx%3D'1'%2F%3E%3Cpath%20d%3D'M1147%2C106.5%20L1153%2C106.5'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1312'%20y%3D'624'%20width%3D'16'%20height%3D'12'%20rx%3D'1.5'%2F%3E%3Cpath%20d%3D'M1317.5%2C624%20L1317.5%2C636%20M1323%2C624%20L1323%2C632'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'967'%20y%3D'639'%20width%3D'16'%20height%3D'12'%20rx%3D'1.5'%2F%3E%3Cpath%20d%3D'M972.5%2C639%20L972.5%2C651%20M978%2C639%20L978%2C647'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1568'%20cy%3D'88'%20r%3D'3.4'%2F%3E%3Cpath%20d%3D'M1561.5%2C99%20Q1568%2C92%201574.5%2C99'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M1563%2C396%20L1572%2C389.5%20L1581%2C396%20M1563%2C405%20L1581%2C405%20M1566%2C405%20L1566%2C397%20M1572%2C405%20L1572%2C397%20M1578%2C405%20L1578%2C397'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M1540%2C619%20L1540%2C611%20L1548%2C604%20L1556%2C611%20L1556%2C619%20Z%20M1546%2C619%20L1546%2C614%20L1550%2C614%20L1550%2C619'%2F%3E%3C%2Fg%3E%3Ctext%20x%3D'622'%20y%3D'564'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EANRUF%3C%2Ftext%3E%3Ctext%20x%3D'748'%20y%3D'101'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EE-MAIL%3C%2Ftext%3E%3Ctext%20x%3D'953'%20y%3D'59'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAPI%3C%2Ftext%3E%3Ctext%20x%3D'1325'%20y%3D'169'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3ETODO%3C%2Ftext%3E%3Ctext%20x%3D'1331'%20y%3D'419'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EFRIST%3C%2Ftext%3E%3Ctext%20x%3D'1149'%20y%3D'570'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EMEETING%3C%2Ftext%3E%3Ctext%20x%3D'1184'%20y%3D'59'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EIHR%20TEAM%3C%2Ftext%3E%3Ctext%20x%3D'1333'%20y%3D'634'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EPROJEKTE%3C%2Ftext%3E%3Ctext%20x%3D'759'%20y%3D'474'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EWEBSITE%3C%2Ftext%3E%3Ctext%20x%3D'1104'%20y%3D'109'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAKTE%3C%2Ftext%3E%3Ctext%20x%3D'1581'%20y%3D'96'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EKUNDE%3C%2Ftext%3E%3Ctext%20x%3D'1586'%20y%3D'402'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAMT%3C%2Ftext%3E%3Ctext%20x%3D'1561'%20y%3D'616'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EBAUHERR%3C%2Ftext%3E%3Cg%3E%3Ccircle%20cx%3D'1085'%20cy%3D'330'%20r%3D'62'%20fill%3D'none'%20stroke%3D'%239db8f5'%20stroke-opacity%3D'0.3'%20stroke-width%3D'1'%20stroke-dasharray%3D'2%207'%2F%3E%3Ctext%20x%3D'1135'%20y%3D'272'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.55'%3EMYKI%3C%2Ftext%3E%3Cg%3E%3CanimateTransform%20attributeName%3D'transform'%20type%3D'rotate'%20from%3D'0%201085%20330'%20to%3D'360%201085%20330'%20dur%3D'40s'%20repeatCount%3D'indefinite'%2F%3E%3Cpath%20d%3D'M1085%2C262%20C1086.5%2C266.5%201087.5%2C267%201091%2C268%20C1087.5%2C269%201086.5%2C269.5%201085%2C274%20C1083.5%2C269.5%201082.5%2C269%201079%2C268%20C1082.5%2C267%201083.5%2C266.5%201085%2C262Z'%20fill%3D'%23bcd6ff'%20fill-opacity%3D'0.85'%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Ccircle%20cx%3D'680'%20cy%3D'560'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B15%3B15'%20keyTimes%3D'0%3B0.005%3B0.049999999999999996%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.005%3B0.013000000000000001%3B0.049999999999999996%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M680%2C560%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.02%3B0.1%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.02%3B0.023%3B0.097%3B0.1%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'800'%20cy%3D'115'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B15%3B15'%20keyTimes%3D'0%3B0.034999999999999996%3B0.07999999999999999%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.034999999999999996%3B0.043%3B0.07999999999999999%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M800%2C115%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.05%3B0.13%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.05%3B0.053000000000000005%3B0.127%3B0.13%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'935'%20cy%3D'55'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B15%3B15'%20keyTimes%3D'0%3B0.065%3B0.11%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.065%3B0.07300000000000001%3B0.11%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M935%2C55%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.08%3B0.16%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.08%3B0.083%3B0.157%3B0.16%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'745'%20cy%3D'470'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B15%3B15'%20keyTimes%3D'0%3B0.095%3B0.14%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.095%3B0.10300000000000001%3B0.14%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M745%2C470%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.11%3B0.19%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.11%3B0.113%3B0.187%3B0.19%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1085'%20cy%3D'330'%20r%3D'18'%20fill%3D'%23bcd6ff'%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.3%3B0.12%3B0.3%3B0%3B0'%20keyTimes%3D'0%3B0.16%3B0.175%3B0.22000000000000003%3B0.265%3B0.28%3B1'%2F%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'18%3B18%3B30%3B24%3B30%3B18%3B18'%20keyTimes%3D'0%3B0.16%3B0.175%3B0.22000000000000003%3B0.265%3B0.28%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1085%2C330%20L1310%2C165'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.28%3B0.38%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.28%3B0.28300000000000003%3B0.377%3B0.38%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1310'%20cy%3D'165'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B18%3B18'%20keyTimes%3D'0%3B0.38%3B0.425%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.38%3B0.388%3B0.425%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1085%2C330%20L1385%2C415'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.29500000000000004%3B0.395%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.29500000000000004%3B0.29800000000000004%3B0.392%3B0.395%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1385'%20cy%3D'415'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B18%3B18'%20keyTimes%3D'0%3B0.395%3B0.44%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.395%3B0.403%3B0.44%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'3.2'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1085%2C330%20L1135%2C565'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.31000000000000005%3B0.41000000000000003%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.31000000000000005%3B0.31300000000000006%3B0.40700000000000003%3B0.41000000000000003%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1135'%20cy%3D'565'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B18%3B18'%20keyTimes%3D'0%3B0.41000000000000003%3B0.455%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.41000000000000003%3B0.41800000000000004%3B0.455%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1310%2C165%20L1260%2C55'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.43%3B0.51%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.43%3B0.433%3B0.507%3B0.51%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1260'%20cy%3D'55'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.51%3B0.555%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.51%3B0.518%3B0.555%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1310%2C165%20L1400%2C85'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.445%3B0.525%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.445%3B0.448%3B0.522%3B0.525%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1400'%20cy%3D'85'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.525%3B0.5700000000000001%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.525%3B0.533%3B0.5700000000000001%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1310%2C165%20L1432%2C235'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.45999999999999996%3B0.5399999999999999%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.45999999999999996%3B0.46299999999999997%3B0.5369999999999999%3B0.5399999999999999%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1432'%20cy%3D'235'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.5399999999999999%3B0.585%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.5399999999999999%3B0.5479999999999999%3B0.585%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1135%2C565%20L1320%2C630'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.475%3B0.5549999999999999%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.475%3B0.478%3B0.5519999999999999%3B0.5549999999999999%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1320'%20cy%3D'630'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.5549999999999999%3B0.6%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.5549999999999999%3B0.563%3B0.6%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1135%2C565%20L975%2C645'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.49%3B0.57%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.49%3B0.493%3B0.567%3B0.57%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'975'%20cy%3D'645'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.57%3B0.615%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.57%3B0.578%3B0.615%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1400%2C85%20L1568%2C92'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.505%3B0.585%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.505%3B0.508%3B0.582%3B0.585%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1568'%20cy%3D'92'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.585%3B0.63%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.585%3B0.593%3B0.63%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1385%2C415%20L1572%2C398'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.52%3B0.6%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.52%3B0.523%3B0.597%3B0.6%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1572'%20cy%3D'398'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.6%3B0.645%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.6%3B0.608%3B0.645%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1320%2C630%20L1548%2C612'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.535%3B0.615%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.95%3B0.95%3B0%3B0'%20keyTimes%3D'0%3B0.535%3B0.538%3B0.612%3B0.615%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1548'%20cy%3D'612'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.615%3B0.66%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.615%3B0.623%3B0.66%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1150%2C105%20L1310%2C165'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.46%3B0.56%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.8%3B0.8%3B0%3B0'%20keyTimes%3D'0%3B0.46%3B0.463%3B0.557%3B0.56%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1310'%20cy%3D'165'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B14%3B14'%20keyTimes%3D'0%3B0.56%3B0.6050000000000001%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.56%3B0.5680000000000001%3B0.6050000000000001%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1400%2C85%20L1568%2C92'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.57%3B0.6599999999999999%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.8%3B0.8%3B0%3B0'%20keyTimes%3D'0%3B0.57%3B0.573%3B0.6569999999999999%3B0.6599999999999999%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1568'%20cy%3D'92'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.6599999999999999%3B0.705%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.6599999999999999%3B0.6679999999999999%3B0.705%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1385%2C415%20L1572%2C398'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.59%3B0.6799999999999999%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.8%3B0.8%3B0%3B0'%20keyTimes%3D'0%3B0.59%3B0.593%3B0.6769999999999999%3B0.6799999999999999%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1572'%20cy%3D'398'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.6799999999999999%3B0.725%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.6799999999999999%3B0.688%3B0.725%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.6'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1320%2C630%20L1548%2C612'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.61%3B0.7%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.8%3B0.8%3B0%3B0'%20keyTimes%3D'0%3B0.61%3B0.613%3B0.697%3B0.7%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1548'%20cy%3D'612'%20r%3D'5'%20fill%3D'none'%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'5%3B5%3B13%3B13'%20keyTimes%3D'0%3B0.7%3B0.745%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.85%3B0%3B0'%20keyTimes%3D'0%3B0.7%3B0.708%3B0.745%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.4'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1568%2C92%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.72%3B0.82%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.6%3B0.6%3B0%3B0'%20keyTimes%3D'0%3B0.72%3B0.723%3B0.817%3B0.82%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.4'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1572%2C398%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.745%3B0.845%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.6%3B0.6%3B0%3B0'%20keyTimes%3D'0%3B0.745%3B0.748%3B0.842%3B0.845%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20r%3D'2.4'%20fill%3D'%23bcd6ff'%3E%3CanimateMotion%20path%3D'M1548%2C612%20L1085%2C330'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20calcMode%3D'linear'%20keyPoints%3D'0%3B0%3B1%3B1'%20keyTimes%3D'0%3B0.77%3B0.87%3B1'%2F%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.6%3B0.6%3B0%3B0'%20keyTimes%3D'0%3B0.77%3B0.773%3B0.867%3B0.87%3B1'%2F%3E%3C%2Fcircle%3E%3Ccircle%20cx%3D'1085'%20cy%3D'330'%20r%3D'18'%20fill%3D'%23bcd6ff'%3E%3Canimate%20attributeName%3D'opacity'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'0%3B0%3B0.3%3B0.12%3B0.3%3B0%3B0'%20keyTimes%3D'0%3B0.86%3B0.875%3B0.89%3B0.905%3B0.92%3B1'%2F%3E%3Canimate%20attributeName%3D'r'%20dur%3D'24s'%20repeatCount%3D'indefinite'%20values%3D'18%3B18%3B30%3B24%3B30%3B18%3B18'%20keyTimes%3D'0%3B0.86%3B0.875%3B0.89%3B0.905%3B0.92%3B1'%2F%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
        radial-gradient(1100px 500px at 82% -12%, color-mix(in srgb, var(--cms-primary) 26%, transparent), transparent 60%),
        linear-gradient(150deg, color-mix(in srgb, var(--cms-primary) 14%, var(--cms-bg-inverse)) 0%, var(--cms-bg-inverse) 48%, color-mix(in srgb, #000000 22%, var(--cms-bg-inverse)) 100%);
    background-size: auto 100%, auto, auto;
    background-position: calc(50% + 210px) center, center, center;
    background-repeat: no-repeat;
}
@media (prefers-reduced-motion: reduce) {
    .cms-section.cms-bg-inverse {
        background-image:
            url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201680%20660'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Cg%20transform%3D'translate(1085%2C330)'%3E%3Cg%3E%3Cg%20transform%3D'translate(-1085%2C-330)'%3E%3Cline%20x1%3D'760'%20y1%3D'90'%20x2%3D'930'%20y2%3D'60'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'930'%20y1%3D'60'%20x2%3D'1140'%20y2%3D'90'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'760'%20y1%3D'90'%20x2%3D'840'%20y2%3D'210'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'930'%20y1%3D'60'%20x2%3D'1020'%20y2%3D'180'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'840'%20y1%3D'210'%20x2%3D'1020'%20y2%3D'180'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'840'%20y1%3D'210'%20x2%3D'770'%20y2%3D'350'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1020'%20y1%3D'180'%20x2%3D'960'%20y2%3D'320'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'770'%20y1%3D'350'%20x2%3D'960'%20y2%3D'320'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'770'%20y1%3D'350'%20x2%3D'880'%20y2%3D'480'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'960'%20y1%3D'320'%20x2%3D'1080'%20y2%3D'520'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'880'%20y1%3D'480'%20x2%3D'1080'%20y2%3D'520'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1080'%20y1%3D'520'%20x2%3D'990'%20y2%3D'620'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'640'%20y1%3D'200'%20x2%3D'760'%20y2%3D'90'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'640'%20y1%3D'200'%20x2%3D'840'%20y2%3D'210'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'660'%20y1%3D'460'%20x2%3D'770'%20y2%3D'350'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'660'%20y1%3D'460'%20x2%3D'880'%20y2%3D'480'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Cline%20x1%3D'1080'%20y1%3D'520'%20x2%3D'1410'%20y2%3D'600'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'760'%20cy%3D'90'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'930'%20cy%3D'60'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1140'%20cy%3D'90'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'840'%20cy%3D'210'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1020'%20cy%3D'180'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'770'%20cy%3D'350'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'960'%20cy%3D'320'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'880'%20cy%3D'480'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1080'%20cy%3D'520'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'1410'%20cy%3D'600'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'640'%20cy%3D'200'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'660'%20cy%3D'460'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Ccircle%20cx%3D'990'%20cy%3D'620'%20r%3D'2'%20fill%3D'%239db8f5'%20opacity%3D'0.28'%2F%3E%3Cline%20x1%3D'680'%20y1%3D'560'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'800'%20y1%3D'115'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'935'%20y1%3D'55'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'745'%20y1%3D'470'%20x2%3D'1085'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1150'%20y1%3D'105'%20x2%3D'1310'%20y2%3D'165'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1310'%20y2%3D'165'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1385'%20y2%3D'415'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1085'%20y1%3D'330'%20x2%3D'1135'%20y2%3D'565'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.22'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1260'%20y2%3D'55'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1400'%20y2%3D'85'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1432'%20y2%3D'235'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1135'%20y1%3D'565'%20x2%3D'1320'%20y2%3D'630'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1135'%20y1%3D'565'%20x2%3D'975'%20y2%3D'645'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1568'%20y2%3D'92'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1572'%20y2%3D'398'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1548'%20y2%3D'612'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.16'%20stroke-width%3D'1.2'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1520'%20y2%3D'48'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.10'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1520'%20cy%3D'48'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.22'%2F%3E%3Cline%20x1%3D'1400'%20y1%3D'85'%20x2%3D'1612'%20y2%3D'152'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.08'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1612'%20cy%3D'152'%20r%3D'1.7'%20fill%3D'%239db8f5'%20opacity%3D'0.17'%2F%3E%3Cline%20x1%3D'1432'%20y1%3D'235'%20x2%3D'1585'%20y2%3D'262'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1585'%20cy%3D'262'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.2'%2F%3E%3Cline%20x1%3D'1432'%20y1%3D'235'%20x2%3D'1655'%20y2%3D'208'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.06'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1655'%20cy%3D'208'%20r%3D'1.5'%20fill%3D'%239db8f5'%20opacity%3D'0.13'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1622'%20y2%3D'330'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.09'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1622'%20cy%3D'330'%20r%3D'2.0'%20fill%3D'%239db8f5'%20opacity%3D'0.2'%2F%3E%3Cline%20x1%3D'1385'%20y1%3D'415'%20x2%3D'1625'%20y2%3D'442'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.06'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1625'%20cy%3D'442'%20r%3D'1.6'%20fill%3D'%239db8f5'%20opacity%3D'0.14'%2F%3E%3Cline%20x1%3D'1310'%20y1%3D'165'%20x2%3D'1505'%20y2%3D'120'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.08'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1505'%20cy%3D'120'%20r%3D'1.8'%20fill%3D'%239db8f5'%20opacity%3D'0.18'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1620'%20y2%3D'585'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.07'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1620'%20cy%3D'585'%20r%3D'1.8'%20fill%3D'%239db8f5'%20opacity%3D'0.16'%2F%3E%3Cline%20x1%3D'1320'%20y1%3D'630'%20x2%3D'1615'%20y2%3D'648'%20stroke%3D'%238caaff'%20stroke-opacity%3D'0.05'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'1615'%20cy%3D'648'%20r%3D'1.4'%20fill%3D'%239db8f5'%20opacity%3D'0.11'%2F%3E%3Cimage%20href%3D'data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAHgAAABlCAYAAACGLCeXAAAlVUlEQVR42u2dd5xdV3Xvv2ufc26fUTEyrrJkyTK2ZFvNwTYlHiCYQCCUSHkJD8gHQg318UII5DESmDzaCyE8CE6AmNCCFMAYA7ZjYrnEBlmjarlqNKPmpjblllP3yh%2Fn3JnReEZTVDzyx%2Fvzsa8%2B0rnnnLt%2Fe7XfWnsv4blxwoeqCiCArFuHrFuHXb1a7BjfcdZtp3h2DlOrYXo8Yvbjt7VJPMK1BlAR0eH%2F5j43%2FScG0LVgVgCrVqEiYoEjJn%2FDPi05IacblzNIOMda5oow28Js4LSN3VSmVSjUFIfpyDQhpkRjY7f2GIcdjvJwovyGw2wSkVrzucNBlufgOPbR3q5m4SpkRTqhlmGT%2FOCD2hJVmKsxC9WwWOEytVwkwkzXpZIvgOOACCQJWAuq6efAshAwJr3GddO%2FrlVBhG2a8K1GwL9csUD6hoMsE12Zq0AWrkVYkf7diqNcvzb734oV6KpV6WoeePAI6uSUktC1mFmzkKuvJhn%2BW7bs0XOMsCSxvChJWGaEBSKcVSrjOk4KYhSmn3GMpuoVm94bEUk%2FhwI0gLOk12fXOfkC5HJQr3FnFPKBZfNkK6hA%2Bk4y1spctSp7kEhyIiZpxYojFwLp28EUWwDNuVgLrBw2F1v26DlJxDIVXuwYrhRhYS7P9FwuBTEMIY5ALQkyAI40P49tHrGAbWnFrdXYKZYVl82RjUeV4DWqzgoGbMfAuGurzmgpMwuX0xNLxSit6lA0llICRZTIGHyU2AqxI4TW0oflAEqP5KgHPv0vvIDq8HuP5Diszd5vBQOrnObKPEmSatatwwyX0n37tHQIlmjCKxBeZi2XFQpM83IQRRAGEMdYESyKIMjA5wl7V%2BJKC261yr1%2BwIqrLpR9TwM4W6UD3tijB%2FXcwOelFq5KIpagnIdwmnHIu25qN5q2Y9jDBmxIHEMYoCIEqtSAXjEcRtmvyi4V9rrCHmvYjeUpLPsWz6F3NBWeeYwCJ0bam6C2XU0y9L7b9uq5wFVWuUaVlzqGeaVyKpnBUEBBVDEiz4h%2FkxQKOA2fv9xxHl9eKZLI0B%2FWlKrNu%2FVVIrxboK1QZJoxKVBxNOgEAFbTn6%2BZXUinXFAUVFJDkP2NQTDGAceki8IYME767DjObFJMA8MTatmHsAPLTnF4yMLOvNC1aLYcGhfoEwR8ANRhIci2x%2FQim%2FAqgVercnmxlM5F4KegihA%2Fw4A%2BDeBiEVOvc48aVi47Tx6ToeCuf1TPLZX5iuvyBseBeg1sktqN5g%2FJDP2g7Vc0syvGcZAmiMYMOgbZQsAmYDWFQYd4Do6bXu8YcL3US3S99N%2FjGPr7IAo5IIaHreUBYLNj2BZD57Lz5LERzcwadQC2r0BXjQB6u6q5egRQt3bqpdbl1SL8gcLllQq5JElBjSMszYUr6VwcRxXbNEM64GAN2msz3nt4HhJHHHDgdZfOlXulCW5Hl16Uz%2FGLYpm5vYdpOhGjrkxVrAgml0slMUkgDqmr0gMcVOGAKAcw9GGpqaGhlkCEWEGNZhgLRhTPKp4Ycih5ESoKraJUEFqA6arMFKHVGAqely6UKKQK7DHCg7FlG8pGp8i2R85g98oRnMKmpK8CXT3EB7h%2Fry6OLa8T5TVWWd46DRNF4DfAWpJMNRxXKW0CmgFpmiZvQDAUxIBa8P30%2BrGer4o6DmITGqr8yZK53CSqKo89RvHJkN%2B2TmNRXw%2BRGLyj3UQEyRcgDLCq7FB4AMN2jXlYDftc5XDi0I9S1wZhrkgSxlg%2FxFYCbKnEgNQcKGBa%2B3AcB6nlMI0aJjcTYwPcFsjXhaLjkTchBSsURCiL0mKFmcZwhibMFodZqsxCKRuHPlEeTyydKmzzcjyYU3ZdeBaHhjp223bpPGt4rQhvUuXKSgUnCqHhA3oCVa%2BmSswYjJdLAfV9AJ5Sy1Mi7FZ4CghQyka40Dhcnpmyo4KsijoGSZTACG%2B7bDY%2FFoBNO%2FVd00%2FjukMHiY0Znd1qrhAErOUelJ%2BhrBdhlxF6qoIfnEvUJhKPxKoc61izRp0VWeDd0YEJT8fNOUj%2FU%2BRKHoVcmUIUMaOQ57TQcroDpzsuNrb0CDxhoGGEBYnyRpS2SivFJIZ6PXUFhgAqJ0j9Gi%2BXSqrvE6DsBDYrbBR40ApPJHBYLfWiIYgDXJOjosrrHZdrVSlm%2Fo%2BMio%2BLJAlVFf5UZ3OzC6CGNyYx1oyxOkzqygRJzDc94QdJzA53Hj2LRMLh14uIZhzspMfwBbJy5RFqNwGi7M%2F1IZzvXhgMa%2B5%2BUFsqFX5P4D0o1xQqlNRCow59vSRZBGAAV46zm9QE1nEwuTwSBpDEdMYB92K4S%2BF%2BtexTpafQoLFwIfHw8LG9XQ%2BuXi1f7tipp1da%2BHitij2aFDsGbMJhCz07wcr9qrmwm43FEgsb9dSujvayuTwShXxHLV82RXYsPjPlQAd50JMZp6ro4JNkHZg2GXSYNjyi8wplVqjyp8bhEs%2FLnMYTZFNHAtbzMK4Hvk8V%2BK3Ar0VZ34CdhBxsXEB96DtnXxaOJK5FROzGbr1YYL0xlJNkZFWtii2WMI06d7vwzkvm8LDrP4ZrBIMe%2FYVdDwl9DjqGmxoxXVecKbWhavjkU4%2BikJIhmUNlH3lE836B3wfeosqriiVKQQB%2BAw18bOY0OieQhLco5PLp4okjHvN97gButTEbi3n2ddepvnqBBMMX6sD8yZEUo2aruFhmj1%2FlSdfjfJtkAelIWKXyvwXLYRFRd%2FnZUt%2FYpYeMM8BzPn0qUzUjseFgrOzbvZnaM8UnZ2rYALapzjZ06uxCgT9pJLwtX%2BCiZojX20OSviYGcE7cS6U8spfDiIE4pEvhFzbhNnXZ3uLz1AXD2LtB4RAdj2kI9mF1WsZXj4Ru6h%2BZwKdhDOttgepAulActjoOVw1PaQ1%2BF0kSwDJLHMoZZ%2FyMAJtx4gnA1r16JfB2tfxRscj0IIR6jWYOZkBaTySwCpLLYwSIEzptzC%2FUcrMqDzh9HLjsMuoDgqAqTFLjFWZRrIe0juZkKWguh%2FgNNsXK%2FcvOwB8EWLkjSXhv5kWO4OwgcYQtlpgR%2BFz9q0e5C9VQT4IUDwe2%2FXZ133Q%2Bb8Th3aq8rFzOpLX3CGk9wYstXeD5fPqsKKZTLTfZiJvV8AAFDiw%2FW%2BqgsmYNRlWtiOgkKVUBtNbgPDfHaXE0qnmRKAIRbnFj9opIoqriAsQ17qwlPOHlOSOOUls1AsjECYrh7WcWuBGR9RyjlzwRYG%2B%2FXyszp%2FEnAu%2FNF1giWT60LwX2xEvrEOcpl8MgEEXssMpNGnGLGh6glwPLl9HQLGGzUiRZuZJjzcKlTpfDS8oVnMzzd4Y7V%2FkCJvR5ALjTm0dPU0u47e1qll8sj2%2Fq1p8Ui7yvL2Q0m2CiAFuqcKbf4HMdu%2FR%2Fishjxz3eVRUdAuwDe%2FW0yPJ2MbyzWOSCOIZaFSugCI5w8oB1PYzrIlFIl1puiC235HM8EHgcXH621DV9d8lsbbJ1l54fRcxcNo%2BOY0iI2JRS5PetHV16bQICP1GHR4eGrYZVAz7pN2v91I2Daaqgp93FYBo1klKJNgN%2Fv6lLpx%2BPePcI%2FlhERSS5%2FX6tbNmjH05gY6WFLziGC%2Fr7SAZCuZMgsU3pcBykWMJowv4g4FuR5YOux99ziLsuOUf2LD9b6rffrq6k72637NaXbtur31fDZuNx94ZdtE02By0iumWPniNwpd9Iw7vh71coIlFER2y4pXwuB54u%2FpkUbtyp32qdztv7ekjEHHUCk1IZp1bj%2Bl7lI21zpedYJLlZw7RSJLnuOvWueDV%2FZgwfLRa50G9AGJAgJ8e%2BDufaCwUIQqqq3KoR%2Fw5syLXw%2BKLnS3UIv60ioh2deqmX49PG8If5IlT7oFiCRp3%2F16P8Tdtc8ScyT6rqiEiyaZd%2BuKWFLw9Xz03yScC3ysf8PtZeeak8OdSZcwGyqg1V4UvVfl7veswYg%2Fd06jWScpk%2Fcxq0%2FrZL%2F0JEnmhXNavHSOSPlABoqrT7uvTqvMsXSmUuD4Ih9tWcHGkd6kAVipgoJPYD7gR%2BFEXcY4Q9y86nvxnuNAFYs0adrXv1E8bw8XyeUn8fGoapGRFwUJ43y6EE%2BDKBRQ%2FYXz6ieU14VxSO6D1rLo%2FxfX5uDOuuuISDMAhuk6Jj9Wqx7e1qls2VB63lS8US0tT9RxlOPVXXbyy4rO3o0otWS3qf8Tpf2Wq2Gzp12ta9%2BveFHL%2FO5bm8r5ck8LEiOCcrz6qKqmJzOcTLIWFIh7V80sLH8g4%2Frs3joeXzpLcJbqaSk46det7FL%2BI%2FymU%2BHUeU%2BvtIJNU2DkJqkw1uf5QmcCag4oyI6PPzXFOqcFGjcSTLqIrN5TGBz25H%2BL7vs1vk6SW1A19YtQpVVam08LX%2BXn5TruCojukBOv39JIUCL%2FZcburo1NeuXi2Wcdjlpn3ZsEvn5fPcVWnhQ1GI1KsDwJ5Uddy0s0nC7iTmi0nM%2F%2FKUf9X9bL34HDnYJhI3F%2B7tt6vb1ibxfTv0RfkCd%2BcLtPX2EFuLjuTNW4tnzIQXqmaM%2B0ckrZzQ4ao5y9X%2FS%2BSy%2BYoF0jfI8A0Od3hyYMHzpG%2Fjbv1g4HOr6zJtrBSVCE6tSpIvcL4Y1m7u1s8e7uKLIuIPrRIZQf3oa9%2Bq04xyW6HInMOHCI2Q4yRWRmR2VoolTBBQ9RvclChrHNg0cy5PzBXxjyAo0jlyRCS%2Br1P%2FqFTgehHK%2FX3EIkepMVes1fEL75pM9W%2Fs0lcXS1ydJRicI1RzAdOocYMm3Nga8OSoamB49qa9Xc3S2XJfFPPXroeYtHBMj571wQl8bBKTL5b59Ix5%2FKijSy8SEauqMpI0ixF1DIKyVxVch5wqieqJZ8ma6jifT6tQwoC7SfhLhc9g%2Bc%2FFc9g1AO4QfnhALXfq%2B8tl1iaWcqY63THmp5ZPGLdvsgJUVR3gU0aOpJBVsYUCxq%2FxoAj%2FxGl0LjiC2z4KwENVdV8332w0%2BE65BadJDY7xI4y1aGaXX5fL8R%2Bbd%2Bvb165NbYnqoG0WEUVhyVzpycGKRp1%2FQOgvV3BcFyEF2k7MZE1MHWdOVGdi%2BUyc8LFCjn%2Fv7eKRzM4%2B7blNtbyhU99baeWrYYiNY6wxRzElmsanKvRZh3ACnrPdtIs3lCu8sF4nafLoqqjrImFEH8JX1WfL8pnS26w9HBfAzR%2FX1iZxHj5erbKtVMYdhz1u1mo51X4SgbNzHt9a8EK%2B2%2FGozhdJbXN7GlYMjIVzeLIGH09C3uT7%2FAjoKZZxCsU0I5MBnaBja5JxSK0WihiUmt%2Fg%2B3HCh12Hf26J2PiCs%2BVAWp%2F19Mlqgrtxp761XObrfoMkiccO2xQkSeW2p9AYe%2F6apmvz41oGrk2Swfos0koaFUFszLeNx687tzVV8%2Bhhl4zh4WpHl17pufzMOMwKfayYcReAWQHKLRi%2Fzt7E8vk9B%2Fj265anjM%2FQxdR81u2bdPqMGSwFXovwMuCiQgEPGazqzByZgV0ATRp1YCJGeR3PS3n2OGa9tXwHYV2xzJ6LZkn%2F8ETASLHohi59fbHAT%2BIITWJExuk0GQNJzIdsnm822a7R4uAmvdnRqZ%2BcPpNre3sG496BXG%2BVGxP4bNWwtW3uEDMyUYCHTvyGHfqGQoHvWaUYRTARj1CVJJfDcT0IfW6PY1YvPV%2FuGE4SDKUq79lDoRByjngsNsJSa1ks8AJVzvFyuK43mPu0mn3awepN1SM59FwewpAnNOHfEstPnSIPHX6IQyPt1BvOrK1cKclvduiyliLrEqUcR2npzXg0huMgicXXhHd2NlizcpGER%2BMDAN2yiznisMUI5Sga2AFhi0WM3%2BC%2B2PLJmbB%2B3rymaj46aTKGc5DaThH5aUeXfjSf4%2BuOg1p7ROnsWGrbCQM0DNFyhTYJuHLLLv2nIORLIrKnGTI19y2JiF4FDeDR9nbtvOYd3OQo0xzhLMcwL4qYG4bMRjhb4GyEFpQKShkoZLGnEUXEkCBEgc9dieW7nmH9TJfHZ58pjfHQhCtXYjt26Vmew1rjUPHrY9jc4dKbVpv2GeGpWfvHdLLSyo0u%2FVxrmZaMtTJNZzAI6MbwJS9hy7z54wN3TAkeQv6TUXGryy18yq%2BTWMWZaA2TKokxOOUKNBp0Yvms6eP7ixZJOLirIpVAGVldyq8eJTd7Gp5Vyn5A2TW0SEIFSxmhpBYXQ04kBdjGNBxlp53JnsXTsx0To6jjEYoK2LSL21pbubqvd4xQaITQKJfHhCEPqeGtO37DxmE1ZU%2FTFB279HXlIj9rZI6VKtb1MGrptZa%2FiSJ%2Bdvl89k5kN8c4IUrLSrZvxwvL%2FENLK%2B%2Bu9g96d5OgAm2%2BgGMMhAG%2FFMO1l54j946ktofb69HMSNMZamlBWJYlybcj%2B%2Fdj112NnQiFOmB3O%2FVzM07jr3oPTxDcjK8vFHEade40Hu9cfI48MpLUNTeH7zxMS3%2BVzZ7HeYGfFm1kFaxhHPJ5Ub7bO4%2BuNjm6WZmQih6yDhRUFi2S8P779X%2F3Q6mllbdMBuSmp53VSFGu8OogoG3Lbv1OVOcrIvLQqPZ5CODN1Tn0349uU8en0oaRDH9VTUmMSXHhWf3tk2qpjXbNunU4bW0Sd%2BzUv50%2BgzlZmZFjDFYEjUOuMy4%2F8vrZlYI7vt8xQYCbsavKIpHqhk79QH8fpqWFN1f7SSaTums6KrUqiXEolsu8pwFv2rJHvx71c52IPD6YjEAH9ruOSzUNDXWa14%2F9vSbBv3mHnq6Gb9gETZLJVV%2BqIll5za5G6lNkpudpiZa4o1tfns%2Fx3v6%2BgeIF67qYMOB6x%2BH6yKVryYCDNrGMnZkgKqqqsnye9Aq8v1blB5VWHHTyVQsiODZB%2B%2FtIxDCrVKI918odW3br%2B%2B5%2BUFtSqjMjSsZ%2FVx38b0LDiIhal49Pm865QZA6OpP8XSYMsFbZXTpEMNweZpvp2bpLZ7iGfzaptwyghQImCLjBEa5zijzSLP%2BZzHuYib94CvKSudLTL7y%2Fv59%2Fa4KsOmmQRQQnilKgHYcLCkW%2B1trCbZt26YoNG9RLgVaZGNAT50MyIC6Kw9FLU8cZImGVfhX2uG5WoD9E%2B6xbh7NaxMYxX6m0MLfRIEGRLBz6DyN8JVdh%2B6LnSzVlACeXa5%2Fk6kxBfsl5ctgV3lft54flVhwjx8YlN4EOfGytis15%2FE7OY03u%2Bfx88259VfbsJr9tThTACnl9%2BrbnidhedRxAeNJzeWLhQuLhTlxGe765Mo239PUSGwOFEqbhs04NX%2FQctg6QMMdQEmUmD0YK8qXnyWGU91X7%2BOdCCceYlBI8llkWwYhg6nVsEKD5AtcY4Zdb9%2FCzLd368mZpjKpK%2B%2FECOvPGMztc1knLb1az64CBfRpyiCNSfWpEJNnUpXNyef4hCNJi%2BWzj9n8Z5fO2waZ0L%2FSxl0KZYwNiUF37c%2FhQvcEXvBzGmJRSPNaXy4CWWjXlfgtFXovh1i279ccdu%2FWlIqKrj5NEN192%2B3Y8USoZM3ZME2yh2zX0NeepGRKpqlH4ZrHAzCgiLpRwGz7rRfm%2FNqJj%2BQvkwES95RMC8KBXq3KVSCPXz%2F8JfD7pOOlGZLXY4yFcWXUE1X4SazHFEm%2F0hNu27NEf3rdDXzRUolOgJ7%2FyexzymhImx4KuRCFYZUc1SjfGNe2uiCQdXXx02nRe3tdPWCyS8xtsUOGzmmP90gWy%2F3iBC8d1i87AZjDTsZP35At8SaAQhk%2Bv4z0OKb%2FEGJxSGRoNAuCGRPnHpbNTjnuk8Go8IZKI6OYdero63O96zIqisTddj8pBJ1TV8Od9O%2FlZW5v4TfKkY5cuz7vcnSQ4nocbBNxrLZ%2BTAvcuPUv2j8WynXQJHhqaiIiuWoUuO59%2FjELebi0Hi6Vxlf5MPLSyaLWfRC35YpE%2FduDX2%2FboTzft0ldm5UC2SdBM5N6hkkco6OSnWF0XEB7zHHbv30%2BkqrJqFbqpS6cb%2BL4IecfFDQLu1JhrJc7A5fiCe5wl%2BEhJFhHt2KEv93J8PV9kQa16%2FCV5KPUpknLcfppGuCUK%2BZqez83LRaLx3KdZEbplr15oY7YYQ360bZrjpChv0Zj3L51P5xC2ak3rNFb4DYgj%2FjNRvkB4fG3uCZTgIyW5vV3Nsvnyaz%2FkTX6dOypZZcjxLskZqGAklegkgVyeayqt3Cjd%2FP8N%2B7Q0nirPVdlnFDFDID%2BRjNlwBivbwvmoKL1rSQ966ejSj7ROY4XvQ5xwsxX%2BtpRjw4kE9wQBnI7Vq1On53fmy%2F1WeHO9xg%2BKpTQDlVVpHPeV1dQQ9Vq6A6JY5F0S8lYdh6ZqHrpmYGYu33SCJ8lghVgVHrEO4co0afGSYoHPxRFEIT%2FH8vm8YdPF58jBydCPUwLgI8Ko2bLPD3hvvcbnXRfxPIy1JwTkoTY6rf6AT2zby6KxbPGKwe%2FO8LzBAviJmgvXBWs5oAld%2FbupbXhIn5fP86%2B5PLlanX93DF90ZrBltDO%2FTimAh4ZRVyyQvtwcPhX6vEfhUKmMAeITCLIJA2ylhXOjmA9s2EdxSELhaGPGMXgmTQdrp8mxp62NxKtwfaWFOT09fDuX4%2B%2BsZdul0%2BUwJ2mcpOLyFOSFEC2bL9dFPivDgK3lCq4q9gSWyppGA%2Bs6%2FKkT0TaefUFWmSUy%2BmkH4%2FRcH%2B7N0bmxm78rFnjNwUN8wcvzNeOxbclc6TmR226fIYAHnS9VlWXz5deJ8Ee1Gj8plTHGDFRPHm8pliRGC0VKann%2F%2Bn3MbHr6R6G0Zh3L8%2BIYENa11nmXY%2FiLvj4%2BZoTvqOHhdMPa8Q%2BFpgjAR9rlpefKo1je4df5rOMQ5fOY4x0vN1V1vYa6Hq%2FwIl6po2Rm1q4dmJAZkw3XcnkkDOm2lvMNvDeJeacjrLUH6B48kejknmty0gEeapeXzKE3PsDqMODtScKecuWEhFKS1Ue5qrxr25OcPpItXrGC5ukXz7MJ6fbyiXLPNsskCS%2B0ykdzwi1ejceWL5c6z9AwPGMj3euzbBnxsnnyvSjgDb7PraU0I3V8VbbgNOqo5%2FISDXnZoC3WI%2FZHq6qDcEacpEXrExdjwNCbKF8OXO5eOIcDi45SKvssB%2FhIlb1svnRowFtqNT7vOAT5wnFX2TZfwEksK7fvydTwMD2xbTetKKfZZOLJ4KzfglXLD4tlttzyLXpkggVyz0qAh4J82Tz252p8Kgh5axzTmW1hPS5etirGTw8mf3moWd1l5uysyqQ1hJmqTJtoqrB5jK%2B1PI6w1e3h0OrVYk%2BmtzylAW6CLAILFxIvP1%2FW2Ii%2F9n3uc12Ml0OOVZqzPT22VKLFKK%2FfvFnLGTrSpCk9yyzHozRRDloE67ggwgOJ0nXBBYSqJ9dbnvIAN%2B3yqswmKjwSR3zXxnxULQePhzQrSBKDVV7uTGN2GrIM0pQYTs%2FnJs5iqWKSVK1vas1zcCp1lJliAMOqrBbaWB43hrMo8L3QZ0Xg8%2BtSOd3PO1lpztgtNYb5oWVZqoZFZ61LAU4sZxvnyN3041HPjoNEAXVVtlYfTxP88hzARwuh4LJ5HFBlpgmZvWw%2Bd9YO8%2BZGg8%2BI0F8q46idnDQr2Kx27HcfeogywNVXD3jbZzvOSO7X0W%2FpeaCwE8OjO5elJbJTpS3QlAMY0r062dEPYZKwTESSKy%2BVJ71%2Bro0D%2Fjjw%2Ba9SGeN6E5dmVcSmbNOLagXOHhLgIMoZkym2k3QWNycRT6w8zv2lnpUAN091V2WvGF7W1aWF9nY1CxcSLZ0vv7Lwx37AKjS1zaQdYMYVN0t2pqPCXE9ZkFVlNr87O2snN26IjWD8BokK64HekUiU5wAemTJAhG1WubxPOW%2FVqpSVaKYf46f4Wz%2FiTUGDX%2BXymFxGdY6ptgWxCTafo5AIC1eAKyLa1aUFhNlxPH6SQxXrpU7ZLqNs43Bmf59zssZwtFYNSNsDCDMSuKJp15oExPLlxL9zvtzR4%2FO2MOQjNqG7XEmbe4yptgV10gaP8%2Bzu1A4ftJyuyllxxIR8pMwp2xgZdi9bTjzV5nJqArw6lcIb5rBbhCfF4ZWPPdbM5w6GVKDy0gWyf%2FFsvhrXeb3f4BsI1Syk0rHUtoHZGqQAOw7nuh4tcTKhze0m8LEq%2FNazHBKO37mdz2qAs4lKj0VUOtTSdjjhrKerv4Hj7%2B3SC2VL5PDRJGClX%2Bdmz8sOEB0BaFWywkCmxUoLgFrmFwogjNNpU2xW%2BbEPYUsy55k7Bf9UtMGD5APcU2nhzBiWj7p7IZvU5WdLfel8bk4C3hrFvDMMuTeXGwSaIZkqa8FC2clRyKRx3oRCpEzNA5uJ6F7G1FPPUxrgrOMoVtkIYBNe07Ezk7ZR1WCa6126gANLzuPbfb38jyji%2FUFARybRjuNk53BmdrqpjlW4cEIctKakiSr35nIZezXF1POUBrgpSRrwaLWPQwivFGX%2B0ctuBjd7i4h9ySLZ%2Feh6vuHXWREnvLtR51dAb76Amx3wZhPw16xRR2BukozbwbJeDrEJuzHcx7lpAwymYNPrKQtwlqiVn%2F%2BQQyJsmjGD08XjxesGjowYn7SsXCnJFS%2BQrsWz%2BaaGvM3GrAx9PlOt8j1R%2FiVyefKcK5imcO54PWjVtKEmwm9in50jNQZ7DuCxXVRdsxazerVYYFMuj4pyzWk7Oe1Ib3pcykBExC5dIPuXnC%2B3ejWu7TvIhxzD9S88Rw6W4CwRnpfVU409aQYT%2BEQJ3DX9tPSEdZ2C6hmY8MkxzwzWyoZaFVG4Kna5RFWfmpi3euSJelmVxaGm05YkLKpUcMezvaZ5TrPf4BFj2NTXnZ6%2FIVNQPU91G8z27QMe78ZqP32VCtMMvGJdN%2FnJSM3Qo5mGnoUlsNR1x18qKwKO4W4x7Fq%2BXKKpKr1THuBMPWN76DaG%2Bz0PTRL%2BoKycNyG6aQSgs52QNrvP4iQZhweddRfzG9QU7j7DS9vXTOUx5VV0duRBtLFbfxvHXOW6XCQJL1fVHSKSTHY%2FbbOdwIP7taVe5eIwHJvB0rRHgjQa3KeWbWdk3cWmqnqe8hIMsHYtzZ6mdwVB2h8QZcX27rRAXSd%2FXwNQr7LI8zgzCrOayKOrZgkDrBFuJeaxgQU2hceUB3igXtlhfRhwwCZgXK6KDC9t9n2YzH1nzRo4ivhF5RKGMSjKZsOOJOFRm3BP7oI0NcgUlt5TAuChOxQR7nVdyOXIobztD9%2BchkyTGevWZfZX%2BV2rjJkDlkGjf5vj0TmVY99TLkzK1GkicKtxeG29H2scXiEeL1HVn05Uipv2d%2BsunRFZLg98YIzu566LCX0OqHC7uhweJFuek%2BBjV9NZuCSGdfUavggU8uQSePeWzmyz2MRsoQEVG%2FPiconnh%2BHIDTmHYpwl9u92XLb99Bs0hsbXzwF8rGMViqrET%2FGwKpuKJUy9TuJ5%2FJ51eV2z5%2BF46ct0o5koDm90c2ld89Gk13EQv0FDDL%2FUiKemSlH7swZgkTR9m5IK3JgdE5i4LgJ88AUvTOPi8Z4ou3KlJJ2HdJq1vMqvjzkPmssjwB024bc93VM3sXDqSjCDh6SI4ee1fuqOIec3SEolLgliPviIaj5llMaULAPQ28tryi2cMYZ6bkqvj3BD3mPvaJ1ZngP4WFmt7CS7xbN5UJX%2FKhTTNjOBj83neU91F69NPe6jyq9kfaEchQ%2BPlbBo7vlV5U7HcO%2F%2BTvpOFdt7ygE8qK3FKvw060ZikgQch7wxfG5Tly5uHuE0CmBm9WqxHbv4%2FXKZy%2Bu1Ixs%2BDr%2FcGCQI8IEbjGbSq6eO9J6KAKfedMiNtSpP5HIYQIIGtlBgHoZvbu7WuatXi12zRp2hSQBVNWuBNfdrzhE%2BrVmjqaNJb6GAJAl3odwzIL1y6kjvKQdws83PkgtlnyprCwWAtFlXvUZSKrLMGH7QsUOXrVwpSZMkac%2BaZK4USS4o88VKhSWNOpZR%2Bk00W8j5Pj2ifN%2Bvs%2BdUs72nFNEx0nCE62tV%2FtwYCs22rrW0b%2BIVYvjFpm69VmLWiMhTgG7o1jPzDn%2Bdy%2FOBav%2BYeV91XUzD58eOcu%2FeB%2Bg9FUiNURm4U200Ve%2Bmbm5oaeV1WVPmtAWcxXo5jOtBo84eER5AcNSypNLCabXq0UmNgUZUIQ%2BL8MGefu5pW5SdjvMcwCcNYJNRja8Qh5uTJHW4hqrYLH41XtYGLwwgisaW3KwBpCYJnxKH7yyZLftOVXBPRSeraYutqsols%2FnPOErP2hq6XSU7oNREIbZeJalXSbKzn49ejmPRfAGTRNymCbd4few%2F1cKiZwXAGfEhImIdw%2Bf9OjXXRUbYeGZIT4t3xkzmKzZfwDR8uo3hn%2BoeOxctklBVhVN4nLIArxax7e1qLj1POuKEb2dSPKmjl5p8cxzjo3zN8bjvxbPpyaox9VQG%2BJRenU3penA%2FZwR11uULLGhMsEOoKmpMSmpEMV8FvqEH2bF8%2BfgOEn9Ogk9wXLxqFXLx6fK4Kh9OEvxsQ5idCLheDhNF%2FNAz%2FGvg0J2Ce2qr5mcFwJBWXra3q1k6V34V%2BnzC8zCOMzbIqlhj0rOrgwb%2FpsJXTT8PXzVbGqey1%2FysUtHD1fVaMOd38YlCnk8DhCFJhtQRbQMBCgVMFBMkMd8Rh295eR4YaCMnzw5wn1UAN6Xu9tvVbT2Xd3gF2gsFzoxCiON0q4sx4KYqnDjioTjmeuNwU%2BLSNdgA8tkD7rMM4CMcL9mwk%2BWeyzuMQ1uScJYqnkBDhE6UO2LLzY7L9sXn8uRUOFPyOYAnhrIgojdu0NK505irLucZpcV69JuYx114vM%2BhN7W3z41TfrS3q7ld1d2wQb1TnbiY6Phv1nCnIVbXys0AAAAASUVORK5CYII%3D'%20x%3D'1063'%20y%3D'311'%20width%3D'44'%20height%3D'38'%2F%3E%3Ctext%20x%3D'1055'%20y%3D'364'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'11'%20letter-spacing%3D'2.5'%20fill%3D'%239db8f5'%20opacity%3D'0.6'%3ETEAMHUB%3C%2Ftext%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'676'%20cy%3D'560'%20r%3D'2.2'%20fill%3D'%23bcd6ff'%20stroke%3D'none'%2F%3E%3Cpath%20d%3D'M681%2C555%20A7%2C7%200%200%201%20681%2C565%20M685%2C551%20A12%2C12%200%200%201%20685%2C569'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'790'%20y%3D'108'%20width%3D'20'%20height%3D'14'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M790%2C109%20L800%2C117%20L810%2C109'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M926%2C51%20L922%2C55%20L926%2C59%20M944%2C51%20L948%2C55%20L944%2C59%20M937.5%2C49%20L932.5%2C61'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'745'%20cy%3D'470'%20r%3D'8'%2F%3E%3Cellipse%20cx%3D'745'%20cy%3D'470'%20rx%3D'3.5'%20ry%3D'8'%2F%3E%3Cpath%20d%3D'M737%2C470%20L753%2C470%20M738%2C466%20L752%2C466%20M738%2C474%20L752%2C474'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1310'%20cy%3D'165'%20r%3D'9'%2F%3E%3Cpath%20d%3D'M1306%2C165%20L1309%2C168%20L1314.5%2C161.5'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1385'%20cy%3D'415'%20r%3D'9'%2F%3E%3Cpath%20d%3D'M1385%2C415%20L1385%2C409.5%20M1385%2C415%20L1388.5%2C417'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1126'%20y%3D'558'%20width%3D'18'%20height%3D'15'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M1126%2C562.5%20L1144%2C562.5%20M1130.5%2C555%20L1130.5%2C558%20M1139.5%2C555%20L1139.5%2C558'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1260'%20cy%3D'51.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1254.5%2C61%20Q1260%2C55%201265.5%2C61'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1400'%20cy%3D'81.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1394.5%2C91%20Q1400%2C85%201405.5%2C91'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1432'%20cy%3D'231.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M1426.5%2C241%20Q1432%2C235%201437.5%2C241'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1141'%20y%3D'98'%20width%3D'18'%20height%3D'5'%20rx%3D'1'%2F%3E%3Crect%20x%3D'1142.5'%20y%3D'103'%20width%3D'15'%20height%3D'9'%20rx%3D'1'%2F%3E%3Cpath%20d%3D'M1147%2C106.5%20L1153%2C106.5'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'1312'%20y%3D'624'%20width%3D'16'%20height%3D'12'%20rx%3D'1.5'%2F%3E%3Cpath%20d%3D'M1317.5%2C624%20L1317.5%2C636%20M1323%2C624%20L1323%2C632'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'967'%20y%3D'639'%20width%3D'16'%20height%3D'12'%20rx%3D'1.5'%2F%3E%3Cpath%20d%3D'M972.5%2C639%20L972.5%2C651%20M978%2C639%20L978%2C647'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'1568'%20cy%3D'88'%20r%3D'3.4'%2F%3E%3Cpath%20d%3D'M1561.5%2C99%20Q1568%2C92%201574.5%2C99'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M1563%2C396%20L1572%2C389.5%20L1581%2C396%20M1563%2C405%20L1581%2C405%20M1566%2C405%20L1566%2C397%20M1572%2C405%20L1572%2C397%20M1578%2C405%20L1578%2C397'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'%23bcd6ff'%20stroke-width%3D'1.5'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M1540%2C619%20L1540%2C611%20L1548%2C604%20L1556%2C611%20L1556%2C619%20Z%20M1546%2C619%20L1546%2C614%20L1550%2C614%20L1550%2C619'%2F%3E%3C%2Fg%3E%3Ctext%20x%3D'622'%20y%3D'564'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EANRUF%3C%2Ftext%3E%3Ctext%20x%3D'748'%20y%3D'101'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EE-MAIL%3C%2Ftext%3E%3Ctext%20x%3D'953'%20y%3D'59'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAPI%3C%2Ftext%3E%3Ctext%20x%3D'1325'%20y%3D'169'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3ETODO%3C%2Ftext%3E%3Ctext%20x%3D'1331'%20y%3D'419'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EFRIST%3C%2Ftext%3E%3Ctext%20x%3D'1149'%20y%3D'570'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EMEETING%3C%2Ftext%3E%3Ctext%20x%3D'1184'%20y%3D'59'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EIHR%20TEAM%3C%2Ftext%3E%3Ctext%20x%3D'1333'%20y%3D'634'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EPROJEKTE%3C%2Ftext%3E%3Ctext%20x%3D'759'%20y%3D'474'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EWEBSITE%3C%2Ftext%3E%3Ctext%20x%3D'1104'%20y%3D'109'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAKTE%3C%2Ftext%3E%3Ctext%20x%3D'1581'%20y%3D'96'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EKUNDE%3C%2Ftext%3E%3Ctext%20x%3D'1586'%20y%3D'402'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EAMT%3C%2Ftext%3E%3Ctext%20x%3D'1561'%20y%3D'616'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.5'%3EBAUHERR%3C%2Ftext%3E%3Cg%3E%3Ccircle%20cx%3D'1085'%20cy%3D'330'%20r%3D'62'%20fill%3D'none'%20stroke%3D'%239db8f5'%20stroke-opacity%3D'0.3'%20stroke-width%3D'1'%20stroke-dasharray%3D'2%207'%2F%3E%3Ctext%20x%3D'1135'%20y%3D'272'%20font-family%3D'ui-monospace%2Cmonospace'%20font-size%3D'10.5'%20letter-spacing%3D'2.2'%20fill%3D'%239db8f5'%20opacity%3D'0.55'%3EMYKI%3C%2Ftext%3E%3Cg%3E%3Cpath%20d%3D'M1085%2C262%20C1086.5%2C266.5%201087.5%2C267%201091%2C268%20C1087.5%2C269%201086.5%2C269.5%201085%2C274%20C1083.5%2C269.5%201082.5%2C269%201079%2C268%20C1082.5%2C267%201083.5%2C266.5%201085%2C262Z'%20fill%3D'%23bcd6ff'%20fill-opacity%3D'0.85'%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
            radial-gradient(1100px 500px at 82% -12%, color-mix(in srgb, var(--cms-primary) 26%, transparent), transparent 60%),
            linear-gradient(150deg, color-mix(in srgb, var(--cms-primary) 14%, var(--cms-bg-inverse)) 0%, var(--cms-bg-inverse) 48%, color-mix(in srgb, #000000 22%, var(--cms-bg-inverse)) 100%);
    }
}

/* ============================================================
   Hero-Button-Reihe (30.07. v2, robust): Der richtext direkt nach
   dem Hero in einer dunklen Section traegt BEIDE Buttons als Links
   in einem <p> — Flex-Reihe, Link 1 = Primaer, weitere = Ghost.
   Breitenunabhaengig, mobil umbruchsicher.
   ============================================================ */
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext { margin-top: -0.25rem; }
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext p {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin: 0;
}
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext a {
    display: inline-flex;
    align-items: center;
    padding: .75rem 1.75rem;
    border-radius: var(--cms-btn-radius, 8px);
    font-weight: var(--cms-btn-weight, 500);
    line-height: 1.5;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext a:first-child {
    background: var(--cms-primary);
    border: 1px solid var(--cms-primary);
    color: #fff;
}
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext a:first-child:hover {
    background: var(--cms-primary-dark);
    border-color: var(--cms-primary-dark);
    transform: translateY(-1px);
}
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext a:not(:first-child) {
    border: 1px solid rgba(255, 255, 255, .45);
    color: #fff;
}
.cms-section.cms-bg-inverse .cms-hero + .cms-richtext a:not(:first-child):hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .08);
}

/* --- Backlink-Konvention (30.07.): Ein richtext mit einzelnem Link direkt VOR
       einem Hero rendert als kleine Zurück-Zeile im Plan-Label-Stil. --- */
.cms-richtext:has(> p > a:only-child):has(+ .cms-hero) { margin-bottom: .5rem; }
.cms-richtext:has(> p > a:only-child):has(+ .cms-hero) > p { margin: 0; }
.cms-richtext:has(> p > a:only-child):has(+ .cms-hero) > p > a {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cms-primary);
    text-decoration: none;
}
.cms-richtext:has(> p > a:only-child):has(+ .cms-hero) > p > a:hover { text-decoration: underline; }
/* Auf dunkler Sektionsfläche ist die Leitfarbe als Schrift zu dunkel — auf #0a1f4d gemessene
   2.94:1, also unter der AA-Schwelle. Die Zurück-Zeile folgt dort demselben Muster wie der Kicker
   (.cms-bg-inverse .cms-eyebrow weiter oben): inverse Textfarbe, leicht gedämpft, damit sie die
   H1 nicht überstrahlt. Die vier Klassen/Pseudoklassen schlagen die Grundregel oben (0,3,3). */
.cms-bg-inverse .cms-richtext:has(> p > a:only-child):has(+ .cms-hero) > p > a {
    color: var(--cms-text-inverse);
    opacity: .75;
}
.cms-bg-inverse .cms-richtext:has(> p > a:only-child):has(+ .cms-hero) > p > a:hover { opacity: 1; }

/* --- Szenen-Karten mit Icon (img nach a+em, absolut oben links) --- */
.cms-richtext ul:has(> li > a:first-child) > li:has(> img) { padding-top: 3.6rem; }
.cms-richtext ul:has(> li > a:first-child) > li > img {
    position: absolute;
    top: 1.05rem;
    left: 1.25rem;
    width: 38px;
    height: 38px;
}
/* --- Logo im Menü: mehr Präsenz (Max: „wirkt hilflos und klein") --- */
.cms-menu-brand img { height: 42px; width: auto; }
.cms-menu-inner { min-height: 68px; }
/* --- Aktiver Menüpunkt (Klasse stanzt der Staging-nginx per sub_filter ein) --- */
.cms-menu a.nav-aktiv { color: var(--cms-primary); position: relative; }
.cms-menu a.nav-aktiv::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 2px;
    background: var(--cms-primary);
    border-radius: 1px;
}

/* ============================================================
   Bühnen-Dramaturgie (30.07., Max: „im Hero mega, in den
   Wiederholungen too much"): Die Flow-Story läuft NUR noch in
   der Hero-Sektion. Alle anderen dunklen Sektionen sind stille
   Tiefe — Verlauf + eine gedämpfte, stehende Lichtfläche,
   kein Netz, kein Beam, keine Animation.
   ============================================================ */
/* Nicht-Hero: Netz-Schicht entfernen (nur Glow + Verlauf) */
.cms-section.cms-bg-inverse:not(:has(.cms-hero)) {
    background-image:
        radial-gradient(1100px 500px at 82% -12%, color-mix(in srgb, var(--cms-primary) 22%, transparent), transparent 60%),
        linear-gradient(150deg, color-mix(in srgb, var(--cms-primary) 12%, var(--cms-bg-inverse)) 0%, var(--cms-bg-inverse) 48%, color-mix(in srgb, #000000 22%, var(--cms-bg-inverse)) 100%);
    background-size: auto, auto;
    background-position: center, center;
}
/* Nicht-Hero: Aurora steht still und leise, Beam aus */
.cms-section.cms-bg-inverse:not(:has(.cms-hero))::before {
    animation: none;
    opacity: .28;
}
.cms-section.cms-bg-inverse:not(:has(.cms-hero))::after { content: none; }
/* Hero: der Beam weicht dem Netz (ein Accessoire, nicht zwei) */
.cms-section.cms-bg-inverse:has(.cms-hero)::after { content: none; }

/* ============================================================
   Kontakt-Bühne (30.07., „lass es krachen"): dunkle Schluss-
   Sektion mit zwei Wegen — KI-Anruf (Riesen-Nummer) + Formular,
   das als Aufgabe bei Alexandra landet. Spalten als Karten auf
   der dunklen Fläche, Formular dunkel gestylt.
   ============================================================ */
.cms-bg-inverse .cms-columns > .cms-col {
    background: color-mix(in srgb, #ffffff 6%, var(--cms-bg-inverse));
    border: 1px solid color-mix(in srgb, #ffffff 14%, transparent);
    border-radius: var(--cms-radius);
    padding: 1.75rem;
}
.cms-bg-inverse .cms-columns h3 { color: var(--cms-text-inverse); margin-top: 0; }
.cms-bg-inverse .cms-columns p { color: var(--cms-muted-inverse); }
.cms-bg-inverse .cms-columns strong { color: var(--cms-text-inverse); }
/* Die KI-Nummer: das größte Element der Sektion */
.cms-bg-inverse .cms-columns a[href^="tel:"] {
    display: inline-block;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 600;
    letter-spacing: .01em;
    color: #fff;
    text-decoration: none;
    padding: .55rem .9rem;
    border: 1px solid color-mix(in srgb, var(--cms-primary) 55%, white);
    border-radius: var(--cms-radius-sm);
    background: color-mix(in srgb, var(--cms-primary) 30%, transparent);
    transition: background-color .15s ease, transform .15s ease;
}
.cms-bg-inverse .cms-columns a[href^="tel:"]:hover {
    background: color-mix(in srgb, var(--cms-primary) 45%, transparent);
    transform: translateY(-1px);
}
/* Formular auf dunkler Karte */
.cms-bg-inverse form .form-label { color: var(--cms-text-inverse); font-size: .9rem; }
.cms-bg-inverse form .form-control,
.cms-bg-inverse form .form-select {
    background: color-mix(in srgb, #ffffff 8%, var(--cms-bg-inverse));
    border: 1px solid color-mix(in srgb, #ffffff 22%, transparent);
    color: var(--cms-text-inverse);
}
.cms-bg-inverse form .form-control::placeholder { color: color-mix(in srgb, var(--cms-muted-inverse) 75%, transparent); }
.cms-bg-inverse form .form-control:focus,
.cms-bg-inverse form .form-select:focus {
    background: color-mix(in srgb, #ffffff 10%, var(--cms-bg-inverse));
    border-color: var(--cms-primary);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--cms-primary) 30%, transparent);
    color: var(--cms-text-inverse);
}
.cms-bg-inverse form .form-check-label { color: var(--cms-muted-inverse); font-size: .85rem; }
.cms-bg-inverse form .form-check-input { background: transparent; border-color: color-mix(in srgb, #ffffff 35%, transparent); }
.cms-bg-inverse form .form-check-input:checked { background-color: var(--cms-primary); border-color: var(--cms-primary); }
.cms-bg-inverse form .btn.btn-primary {
    background: var(--cms-primary);
    border-color: var(--cms-primary);
    border-radius: var(--cms-btn-radius, 8px);
    font-weight: var(--cms-btn-weight, 500);
    padding: .65rem 1.5rem;
}
.cms-bg-inverse form .alert-success { background: color-mix(in srgb, #22c55e 18%, var(--cms-bg-inverse)); color: #d9fbe5; border: 1px solid color-mix(in srgb, #22c55e 40%, transparent); }
@media (max-width: 860px) {
    .cms-bg-inverse .cms-columns a[href^="tel:"] { font-size: 1.35rem; }
}

/* Freier Richtext in inversen Sektionen: helle Schrift. Die Renderer-
   Blöcke (Hero, Stats, CTA) bringen eigene Inverse-Farben mit, nackter
   .cms-richtext nicht — Bühnen-Intro stand schwarz auf Nachtblau.
   Linkkarten-lis ausgenommen: die liegen auf HELLEN Karten. */
.cms-section.cms-bg-inverse .cms-richtext h2,
.cms-section.cms-bg-inverse .cms-richtext h3,
.cms-section.cms-bg-inverse .cms-richtext h4 { color: var(--cms-text-inverse); }
.cms-section.cms-bg-inverse .cms-richtext p { color: var(--cms-muted-inverse); }
.cms-section.cms-bg-inverse .cms-richtext p strong { color: var(--cms-text-inverse); }
.cms-section.cms-bg-inverse .cms-richtext ul:not(:has(> li > a:first-child)) > li {
    color: var(--cms-muted-inverse);
}

/* ============================================================
   Kontakt-Modal (30.07., „direkter Kontakt, nicht rummachen"):
   Jeder „Erstgespräch vereinbaren"-CTA öffnet ein Bootstrap-
   Modal mit KI-Nummer + Formular — Markup kommt (Interim) per
   nginx-sub_filter vor </body>, trägt .cms-bg-inverse und erbt
   damit die komplette Kontakt-Bühnen-Optik von oben.
   ============================================================ */
.kontakt-modal {
    background:
        radial-gradient(900px 420px at 85% -10%,
            color-mix(in srgb, var(--cms-primary) 26%, transparent), transparent 65%),
        var(--cms-bg-inverse, #0b1220);
    border: 1px solid color-mix(in srgb, #ffffff 16%, transparent);
    border-radius: var(--cms-radius);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
    padding: 2rem 2rem 0;
}
/* Spalten leben im .modal-body: nur ER scrollt bei kleinen Fenstern
   (modal-dialog-scrollable braucht einen modal-body — ohne ihn schneidet
   Bootstrap den Inhalt einfach ab, Kopf + X bleiben immer sichtbar) */
.kontakt-modal .kontakt-modal-body {
    padding: 0 0 2rem;
    overflow-y: auto;
}
.kontakt-modal .kontakt-modal-kopf {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.kontakt-modal .kontakt-modal-kicker {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .75rem;
    letter-spacing: .22em;
    color: color-mix(in srgb, var(--cms-primary) 60%, white);
    margin: 0 0 .4rem;
}
.kontakt-modal h2 {
    color: var(--cms-text-inverse, #fff);
    font-size: clamp(1.3rem, 2.4vw, 1.75rem);
    line-height: 1.25;
    margin: 0;
}
.kontakt-modal .btn-close { flex-shrink: 0; margin-top: .25rem; }
/* Spalten-Karten: etwas kompakter als in der Sektion; Anruf-Karte
   (erste Spalte) zentriert ihren Inhalt — sonst Leerraum unter der Nummer */
.kontakt-modal .cms-columns > .cms-col { padding: 1.4rem; }
.kontakt-modal .cms-columns > .cms-col:first-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* Live-Badge der Anruf-Karte: pulsierender Punkt „Jetzt erreichbar" */
.kontakt-modal .kontakt-live {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .72rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #7ee2a8;
    margin: 0 0 1rem;
}
.kontakt-modal .kontakt-live-punkt {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #34d17b;
    box-shadow: 0 0 0 0 rgba(52, 209, 123, .55);
    animation: kontaktPuls 2s ease-out infinite;
}
@keyframes kontaktPuls {
    70%  { box-shadow: 0 0 0 12px rgba(52, 209, 123, 0); }
    100% { box-shadow: 0 0 0 0 rgba(52, 209, 123, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .kontakt-modal .kontakt-live-punkt { animation: none; }
}
.kontakt-modal .kontakt-nummer { margin: .4rem 0 .5rem; }
/* Häkchen-Punkte + Claim: strukturell selektiert, damit sie auch in der
   Kontakt-Bühnen-SEKTION greifen (CMS-Sanitizer strippt dort alle Klassen) */
.cms-bg-inverse .cms-columns > .cms-col ul {
    list-style: none;
    padding: 0;
    margin: .5rem 0 1.1rem;
}
.cms-bg-inverse .cms-columns > .cms-col ul li {
    position: relative;
    padding-left: 1.6rem;
    margin: .5rem 0;
    color: var(--cms-muted-inverse);
}
.cms-bg-inverse .cms-columns > .cms-col ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 700;
    color: color-mix(in srgb, var(--cms-primary) 55%, white);
}
/* Der p direkt nach der Häkchen-Liste = Claim-Zeile mit Trennlinie */
.cms-bg-inverse .cms-columns > .cms-col ul + p {
    border-top: 1px solid color-mix(in srgb, #ffffff 14%, transparent);
    padding-top: 1rem;
    margin-top: .25rem;
    font-size: .95rem;
}
.kontakt-modal .cms-columns a[href^="tel:"] { font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.modal-backdrop.show { opacity: .65; }
@media (max-width: 860px) {
    .kontakt-modal { padding: 1.25rem 1.25rem 0; }
    .kontakt-modal .kontakt-modal-body { padding-bottom: 1.25rem; }
    /* Inline-Grid des Spalten-Markups überstimmen: untereinander */
    .kontakt-modal .kontakt-modal-spalten { grid-template-columns: 1fr !important; }
}

/* ===========================================================================
   "simulation" — Arbeitstag-Bühne (SimulationRenderer.cs + block-hydration.js)
   Nachfolger der handgebauten v3-Seite /erleben. Die Bühne trägt ihre Farben SELBST
   (nicht von der Section geerbt): sie ist ein Fenster ins Produkt und muss auf hellem
   wie auf inversem Hintergrund gleich aussehen — vgl. die helle-Panels-auf-inverse-Falle.
   =========================================================================== */
.cms-simulation { display: flex; flex-direction: column; gap: .75rem; }
.cms-simulation > h2 { margin: 0; }
.cms-sim-subline { color: var(--cms-text-muted, #64748b); margin: 0 0 .5rem; max-width: 62ch; }
.cms-bg-inverse .cms-sim-subline { color: var(--cms-text-inverse, #e2e8f0); opacity: .8; }

.cms-sim-buehne {
    border-radius: var(--cms-radius-lg, 14px);
    overflow: hidden;
    background: #0d1b3a;
    box-shadow: 0 24px 60px rgba(8, 15, 35, .35);
    border: 1px solid rgba(255, 255, 255, .08);
}

/* Kopfleiste: Reiter + laufende Uhr */
.cms-sim-leiste {
    display: flex; align-items: center; gap: 1rem;
    padding: .55rem .85rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.cms-sim-tabs { display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; flex: 1; }
.cms-sim-tabs::-webkit-scrollbar { display: none; }
.cms-sim-tab {
    flex: 0 0 auto;
    border: 0; background: transparent; cursor: pointer;
    font-family: var(--cms-font-mono, ui-monospace, "SFMono-Regular", Menlo, monospace);
    font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
    color: rgba(226, 232, 240, .6);
    padding: .35rem .7rem; border-radius: 999px;
    transition: color .2s, background-color .2s;
}
.cms-sim-tab:hover { color: #fff; }
.cms-sim-tab.is-aktiv { color: #fff; background: var(--cms-primary, #3b62d2); }
.cms-sim-uhr {
    flex: 0 0 auto;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .95rem; font-variant-numeric: tabular-nums;
    color: var(--cms-accent, #f0a63a);
}

/* Fenster: alle Szenen liegen im SELBEN Grid-Feld übereinander — dadurch springt die
   Höhe beim Wechsel nicht, und die Bühne ist nie höher als ihre größte Szene. */
.cms-sim-fenster {
    display: grid;
    background: var(--cms-surface, #f1f5f9);
    padding: 1.25rem 1.25rem 1.5rem;
    min-height: 11rem;
    /* Die Höhe setzt das Skript je Szene (block-hydration.js) — hier nur weich überblenden.
       Ohne JS greift min-height, dann ist die erste Szene sichtbar und alles gut. */
    transition: height .35s ease;
}
.cms-sim-szene {
    grid-area: 1 / 1;
    display: flex; flex-direction: column; gap: .6rem;
    opacity: 0; visibility: hidden;
    transition: opacity .35s ease;
}
.cms-sim-szene.is-aktiv { opacity: 1; visibility: visible; }
.cms-sim-kontext {
    margin: 0;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
    color: var(--cms-text-muted, #64748b);
}
.cms-sim-zeilen { display: flex; flex-direction: column; gap: .5rem; }

.cms-sim-zeile {
    display: flex; align-items: center; gap: .75rem;
    padding: .7rem .9rem;
    background: #fff;
    border: 1px solid var(--cms-border, #e2e8f0);
    border-radius: var(--cms-radius, 10px);
    color: var(--cms-text, #0f172a);
    opacity: 0; transform: translateY(6px);
    transition: opacity .3s ease, transform .3s ease;
}
.cms-sim-zeile.is-da { opacity: 1; transform: none; }
.cms-sim-text { flex: 1; min-width: 0; }
/* Ergebnis = was TeamHUB aus der Eingabe gemacht hat. Trägt die Leitfarbe als Messkante
   links (dieselbe Sprache wie die Feature-Spalten der Website). */
.cms-sim-ergebnis {
    border-left: 3px solid var(--cms-primary, #3b62d2);
    font-weight: 600;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .07);
}
.cms-sim-eingabe .cms-sim-text { color: var(--cms-text, #0f172a); }
.cms-sim-eingabe.is-tippt .cms-sim-text::after {
    content: ''; display: inline-block;
    width: 2px; height: 1.05em; margin-left: 2px; vertical-align: text-bottom;
    background: var(--cms-primary, #3b62d2);
    animation: cms-sim-cursor 1s steps(2) infinite;
}
@keyframes cms-sim-cursor { 50% { opacity: 0; } }
.cms-sim-badge {
    flex: 0 0 auto;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
    color: var(--cms-accent-ink, #92400e);
    background: var(--cms-accent-soft, #fef3c7);
    padding: .2rem .5rem; border-radius: 999px; white-space: nowrap;
}

/* Echter Screenshot als Beleg — der Unterschied zwischen Prospekt und Tour.
   ⚠ Die Höhe MUSS gedeckelt sein: alle Szenen liegen im selben Grid-Feld, die größte
   bestimmt die Höhe der ganzen Bühne. Ein ungebremster Screenshot machte sie 1273px hoch —
   und damit jede Szene OHNE Bild zu einer halbleeren Fläche. */
.cms-sim-bild { margin: .25rem 0 0; }
.cms-sim-bild img {
    display: block; width: 100%; height: auto;
    max-height: 19rem; object-fit: cover; object-position: top left;
    border-radius: var(--cms-radius, 10px);
    border: 1px solid var(--cms-border, #e2e8f0);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .1);
}
/* Ab Tablet steht der Beleg NEBEN den Zeilen statt darunter — das hält die Bühne flach
   und nutzt die Breite, die auf einer Wide-Section ohnehin da ist. */
@media (min-width: 860px) {
    .cms-sim-szene:has(.cms-sim-bild) {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        column-gap: 1.25rem; row-gap: .6rem;
    }
    .cms-sim-szene:has(.cms-sim-bild) .cms-sim-kontext { grid-column: 1 / -1; }
    .cms-sim-szene:has(.cms-sim-bild) .cms-sim-zeilen { grid-column: 1; grid-row: 2; }
    .cms-sim-szene:has(.cms-sim-bild) .cms-sim-bild { grid-column: 2; grid-row: 2; margin: 0; }
}
.cms-sim-bild figcaption {
    margin-top: .45rem;
    font-size: .8rem; color: var(--cms-text-muted, #64748b);
}

/* Fußleiste: Zeitpunkte als Fortschritt + Pause */
.cms-sim-fuss {
    display: flex; align-items: center; gap: 1rem;
    padding: .6rem .85rem;
    background: linear-gradient(0deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.cms-sim-punkte { display: flex; gap: .4rem; flex: 1; overflow-x: auto; scrollbar-width: none; }
.cms-sim-punkte::-webkit-scrollbar { display: none; }
.cms-sim-punkt {
    flex: 1 1 0; min-width: 4.5rem;
    border: 0; background: transparent; cursor: pointer; padding: 0;
    display: flex; flex-direction: column; gap: .3rem; align-items: stretch;
}
.cms-sim-punkt::before {
    content: ''; display: block; height: 2px; border-radius: 2px;
    background: rgba(226, 232, 240, .18);
    transition: background-color .3s;
}
.cms-sim-punkt.is-fertig::before { background: rgba(226, 232, 240, .4); }
.cms-sim-punkt.is-aktiv::before { background: var(--cms-primary, #3b62d2); }
.cms-sim-punkt span {
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .68rem; font-variant-numeric: tabular-nums;
    color: rgba(226, 232, 240, .55);
}
.cms-sim-punkt.is-aktiv span { color: #fff; }
.cms-sim-pp {
    flex: 0 0 auto;
    border: 1px solid rgba(255, 255, 255, .18); background: transparent;
    color: rgba(226, 232, 240, .85); cursor: pointer;
    font-family: var(--cms-font-mono, ui-monospace, monospace);
    font-size: .7rem; letter-spacing: .06em; text-transform: uppercase;
    padding: .35rem .75rem; border-radius: 999px;
}
.cms-sim-pp:hover { color: #fff; border-color: rgba(255, 255, 255, .4); }

.cms-sim-fussnote {
    margin: .25rem 0 0;
    font-size: .85rem; color: var(--cms-text-muted, #64748b);
}
.cms-bg-inverse .cms-sim-fussnote { color: var(--cms-text-inverse, #e2e8f0); opacity: .7; }

/* Im Canvas läuft nichts: der Redakteur muss alle Szenen sehen und anklicken können. */
.cms-sim-buehne.is-canvas .cms-sim-fenster { display: block; }
.cms-sim-buehne.is-canvas .cms-sim-szene {
    opacity: 1; visibility: visible;
    padding-bottom: 1rem; margin-bottom: 1rem;
    border-bottom: 1px dashed var(--cms-border, #e2e8f0);
}
.cms-sim-buehne.is-canvas .cms-sim-zeile { opacity: 1; transform: none; }

@media (max-width: 640px) {
    .cms-sim-fenster { padding: 1rem 1rem 1.25rem; min-height: 13rem; }
    /* Der Badge kommt UNTER den Text, nicht daneben. Nebeneinander bleibt der Badge starr
       (flex: 0 0 auto) und drückt den Text auf Restbreite — bei 375px brach die Aussage
       Wort für Wort um, eine Silbe pro Zeile. */
    .cms-sim-zeile {
        padding: .6rem .7rem; font-size: .92rem;
        flex-direction: column; align-items: flex-start; gap: .35rem;
    }
    .cms-sim-punkt { min-width: 3.2rem; }
    .cms-sim-punkt span { font-size: .6rem; }
    /* Mobil steht der Beleg unter den Zeilen — hier zählt die Erkennbarkeit mehr als die
       Höhe, seit das Skript die Bühne je Szene wachsen lässt. */
    .cms-sim-bild img { max-height: 12rem; }
}

/* Kein JS (oder Skript-Fehler): die erste Szene bleibt lesbar statt leerer Bühne.
   ⚠ Die Regel MUSS an .is-bereit hängen (setzt das Skript beim Start). Ohne diese Bedingung
   gewinnt sie mit (0,3,0) gegen .cms-sim-szene.is-aktiv (0,2,0) und blendet die erste Szene
   dauerhaft ein — dann liegen zwei Szenen sichtbar übereinander. */
.cms-sim-buehne:not(.is-canvas):not(.is-bereit) .cms-sim-szene:first-child { opacity: 1; visibility: visible; }
.cms-sim-buehne:not(.is-canvas):not(.is-bereit) .cms-sim-szene:first-child .cms-sim-zeile { opacity: 1; transform: none; }
