/* Baukasten-Frontend-Stile (Webseiten) – portiert aus naheblick lp-base.css.
   Enthaelt ALLE Element-Komponenten (Navigation, Tabs, Akkordeon, Karussell,
   Slideshow, Vorher/Nachher, Lightbox, Schreibmaschine, Animationen, Responsive-Stacking).
   Die globalen Reset-/Basisregeln (body, h1-6, a, img, *) wurden ENTFERNT, damit bestehende
   Seiten unveraendert bleiben – nur additive .lp-*/.nb-*-Klassen. Wird VOR dem inline-<style>
   geladen, sodass steerboards Inline-CSS bei Ueberschneidungen gewinnt. */
/* Fallbacks fuer semantische Design-Variablen (steerboard nutzt --color-*; diese greifen nur in den neuen Element-Klassen). */
:root{--ink:#24323d;--bg:#ffffff;--surface:#f6f8fa;--muted:#5b6770;--border:#e2e8ee;--primary:#2563eb;--lp-font:inherit;--lp-font-heading:inherit;}

/* Datei-Anhang (Download-Link, z. B. aus dem Text-Element) */
.lp-filelink { display:inline-flex; align-items:center; gap:.45em; font-weight:600; text-decoration:none; padding:2px 4px; border-radius:6px; }
.lp-filelink > i { opacity:.7; }
.lp-filelink:hover { text-decoration:underline; }
/* Platzhalter-Element (Logo/Menü/Jahr/getrackter Link/…): ohne Ausrichtung transparenter Wrapper (kein eigener
   Kasten, ändert das Layout nicht); mit Ausrichtung eigene Zeile (Block) mit text-align + wirksamem Abstand. */
.lp-ph { display:contents; }
.lp-ph[data-align] { display:block; }
.lp-ph[data-align="left"] { text-align:left; }
.lp-ph[data-align="center"] { text-align:center; }
.lp-ph[data-align="right"] { text-align:right; }
.lp-wrap { min-height:100vh; display:flex; flex-direction:column; }
.lp-container { max-width:var(--lp-width); margin:0 auto; padding:0 20px; }
/* Volle Breite: Header/Footer/Bausteine dürfen über die Inhaltsbreite hinaus. */
.lp-header--full { max-width:none; }
.lp-footer--full > * { max-width:none; }
.lp-chrome--contained { max-width:var(--lp-width); margin:0 auto; padding:0 20px; }
.lp-pubmain { flex:1; padding:24px 0 48px; }
.lp-pubmain--blocks { padding:0; }
.lp-section { width:100%; }
.lp-section > .lp-container > *:first-child, .lp-col > *:first-child, .nb-bcol-inner > *:first-child { margin-top:0; }
/* Gegenstück: letztes Element ohne unteren Rand → Container-Innenabstand oben/unten gleich */
.lp-section > .lp-container > *:last-child, .lp-section > *:last-child, .lp-col > *:last-child, .nb-bcol-inner > *:last-child { margin-bottom:0; }
/* Überflüssiger Zeilenumbruch am Ende eines Inhaltsbereichs (Editor-Rest) erzeugt sonst Extra-Abstand unten. */
.nb-bcol-inner > br:last-child, .lp-col > br:last-child, .lp-section > .lp-container > br:last-child, .lp-formbox > br:last-child { display:none; }
/* Ein <br> DIREKT zwischen Bausteinen (nicht innerhalb eines Text-Elements) ist ein Editor-Rest und
   erzeugt sonst eine ungewollte Leerzeile zwischen zwei Blöcken (z. B. zwei Titeln) – ignorieren.
   Für gewollte Abstände gibt es das Abstand-Element (Spacer) bzw. „Abstand oben/unten". */
.nb-bcol-inner > br, .lp-col > br { display:none; }
/* Standard-Abstände der Inhalts-Tags auf 0 – Abstand entsteht nur, wenn er explizit gesetzt wird
   (Spalten-/Container-Innenabstand oder das „Abstand"-Element). :where() = 0 Spezifität, daher
   überschreiben Element-Stile und Inline-Styles das jederzeit. */
:where(.lp-col, .nb-bcol-inner) :where(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote,table,pre,hr) { margin-top:0; margin-bottom:0; }
.lp-cols { display:grid; }
.lp-cols-2 { grid-template-columns:1fr 1fr; }
.lp-cols-3 { grid-template-columns:1fr 1fr 1fr; }
.lp-cols-4 { grid-template-columns:1fr 1fr 1fr 1fr; }
.lp-col { min-width:0; }
@media (max-width:768px) { .lp-cols-2, .lp-cols-3, .lp-cols-4 { grid-template-columns:1fr; } }
.lp-header { border-bottom:1px solid var(--border); background:var(--bg); display:flex; align-items:center; gap:14px; min-height:64px; max-width:var(--lp-width); margin:0 auto; padding:0 20px; }
.lp-header-logo { max-height:40px; height:auto; width:auto; max-width:100%; }
.lp-header-text { font-family:var(--lp-font-heading); font-weight:600; color:var(--ink); }
.lp-footer { border-top:1px solid var(--border); background:var(--surface); color:var(--muted); font-size:.9rem; margin-top:auto; }
.lp-footer > * { max-width:var(--lp-width); margin:0 auto; }
.lp-footer-legal { padding:16px 20px 4px; display:flex; gap:14px; flex-wrap:wrap; }
.lp-footer-legal a, .lp-social a { color:var(--muted); text-decoration:none; }
.lp-footer-legal a:hover { color:var(--primary); text-decoration:underline; }
.lp-legalbar { border-top:1px solid var(--border); background:var(--surface); color:var(--muted); font-size:.85rem; }
.lp-legalbar-inner { max-width:var(--lp-width); margin:0 auto; padding:14px 20px; display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; justify-content:space-between; }
.lp-legal-links { display:flex; gap:16px; flex-wrap:wrap; }
.lp-legal-link { color:var(--muted); text-decoration:none; cursor:pointer; }
.lp-legal-link:hover { color:var(--primary); text-decoration:underline; }
.lp-block-bg { width:100%; }
/* Baukasten für Header-/Footer-Bausteine (Container → Spalten). */
.nb-brow-outer { width:100%; }
.nb-brow { min-width:0; }
.nb-bcol { min-width:0; }
/* Inhalt-Wrapper: normaler Textfluss (lose <br>/Text funktionieren), volle Spaltenbreite */
.nb-bcol-inner { width:100%; min-width:0; }
.nb-bcol > *:first-child, .nb-bcol-inner > *:first-child { margin-top:0; }
.nb-bcol > *:last-child, .nb-bcol-inner > *:last-child { margin-bottom:0; }
/* Menü in einer Baukasten-Spalte: keine eigene Trennlinie/Hintergrund/Seitenabstand –
   Ausrichtung und Abstände regelt der Container/die Spalte. */
.nb-bcol .lp-nav { background:transparent; border-bottom:0; }
.nb-bcol .lp-nav > ul { max-width:none; padding:0; }
/* Handy (≤640px): Spalten stapeln standardmäßig auf volle Breite. „nebeneinander lassen" (.nb-bcol--keeprow)
   nimmt eine Spalte aus. Reihenfolge beim Stapeln per --nb-mo (0 = wie eingefügt). */
@media (max-width:640px){
  .nb-brow > .nb-bcol:not(.nb-bcol--keeprow){ flex:1 1 100% !important; max-width:100% !important; }
  .nb-brow > .nb-bcol{ order:var(--nb-mo,0); }
}
/* Header-Baustein mit „oben festhalten": sticky statt fixed – das Element bleibt
   im Fluss, der Inhalt darunter braucht also keinen Ausgleichsabstand. */
.lp-sticky { position:sticky; top:0; z-index:100; }
html { scroll-padding-top:90px; }   /* Sprungmarken nicht unter den Header schieben */
/* Standard-Wartungsseite (per CSS gestaltbar) */
.lp-maint { text-align:center; max-width:680px; margin:0 auto; }
.lp-maint-logo { max-height:72px; width:auto; margin:0 auto 28px; display:block; }
.lp-maint h1 { margin:0 0 14px; }
.lp-maint p { font-size:1.15rem; line-height:1.6; color:var(--muted); margin:0; }
/* Farbiger Baustein-Hintergrund: Menü/Header/Footer darin transparent, damit die Farbe durchkommt. */
.lp-block-bg .lp-nav, .lp-block-bg .lp-header, .lp-block-bg .lp-footer { background:transparent; }
.lp-legal-content, #lp-legal-body { line-height:1.6; }
.lp-legal-content h1, .lp-legal-content h2, #lp-legal-body h1, #lp-legal-body h2 { margin-top:1rem; }
.lp-social { padding:6px 20px 16px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.lp-social a { display:inline-flex; width:22px; height:22px; color:var(--muted); }
.lp-social a:hover { color:var(--primary); }
.lp-social svg { width:100%; height:100%; fill:currentColor; }
.lp-nav { background:var(--surface); border-bottom:1px solid var(--border); }
.lp-nav > ul { max-width:var(--lp-width); margin:0 auto; padding:0 20px; list-style:none; display:flex; flex-wrap:wrap; gap:4px; }
.lp-nav li { position:relative; }
.lp-nav a { display:block; padding:12px 14px; color:var(--ink); text-decoration:none; font-family:var(--lp-font-heading); font-weight:600; font-size:.95rem; }
.lp-nav a:hover, .lp-nav li.active > a { color:var(--primary); }
.lp-nav ul ul { list-style:none; margin:0; padding:6px 0; position:absolute; top:100%; left:0; min-width:200px; background:var(--bg); border:1px solid var(--border); border-radius:0 0 8px 8px; box-shadow:0 8px 24px rgba(0,0,0,.08); display:none; z-index:20; }
.lp-nav li:hover > ul { display:block; }
.lp-nav ul ul a { padding:8px 16px; font-weight:400; }
.lp-nav-toggle { display:none; }
@media (max-width:640px){
    .lp-nav > ul { display:none; flex-direction:column; }
    .lp-nav.open > ul { display:flex; }
    .lp-nav ul ul { position:static; box-shadow:none; border:0; padding-left:16px; display:block; }
    .lp-nav-toggle { display:flex; flex-direction:column; justify-content:center; gap:5px; width:46px; height:42px; margin:8px 0; padding:0 11px; border:1px solid var(--border); border-radius:6px; background:transparent; cursor:pointer; }
    .lp-nav-toggle span { display:block; height:2px; width:100%; background:var(--ink); border-radius:2px; }
}
/* Menü zentrieren/rechtsbündig, wenn ein umschließendes Element es vorgibt (Spalte, Text- oder Platzhalter-
   Element). Das nav-<ul> ist ein Flex-Container – text-align allein zentriert es NICHT, daher justify-content.
   Nachkomme-Selektor (nicht nur direktes Kind), damit es auch bei Verschachtelung (Spalte > inner > Element > nav) greift. */
[align="center"] .lp-nav > ul, [style*="text-align:center"] .lp-nav > ul, [style*="text-align: center"] .lp-nav > ul, .lp-ph[data-align="center"] .lp-nav > ul { justify-content:center; }
[align="right"] .lp-nav > ul, [style*="text-align:right"] .lp-nav > ul, [style*="text-align: right"] .lp-nav > ul, .lp-ph[data-align="right"] .lp-nav > ul { justify-content:flex-end; }
.lp-cta { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.lp-cta-btn, .lp-btn { display:inline-block; background:var(--btn-bg,var(--primary)); color:var(--btn-fg,#fff); padding:12px 22px; border-radius:6px; text-decoration:none; font-weight:600; }
.lp-cta-btn:hover, .lp-btn:hover { background:var(--btn-bg-h,var(--btn-bg,var(--primary))); color:var(--btn-fg-h,var(--btn-fg,#fff)); filter:brightness(1.03); }
/* Zweitbutton (outline/„ghost") – z. B. neben dem Haupt-CTA */
.lp-cta-btn--ghost { background:transparent; color:var(--primary); box-shadow:inset 0 0 0 2px var(--primary); }
.lp-cta-btn--ghost:hover { background:var(--primary); color:#fff; filter:none; }
/* Button-Reihe: mehrere Buttons nebeneinander (umbruchfähig) */
.lp-btnrow { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
/* Icon-Kreis (rundes Badge um ein FontAwesome-Icon) – für Schritte/Feature-Listen */
.lp-iconcircle { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:var(--accent-light,#eef2f7); color:var(--primary); }
/* Schritte/Ablauf: Icon-Kreise nebeneinander mit gepunkteter Verbindungslinie dazwischen */
.lp-steps { display:flex; flex-wrap:wrap; align-items:flex-start; gap:var(--step-gap,0px); }
.lp-step { position:relative; flex:1 1 0; min-width:var(--step-min,130px); text-align:center; padding:0 6px; }
.lp-step:not(:last-child)::after { content:""; position:absolute; top:var(--step-line-top,31px); left:calc(50% + var(--step-line-inset,44px)); width:calc(100% + var(--step-gap,0px) - (var(--step-line-inset,44px) * 2)); border-top:2px dashed var(--border,#cbd5e1); z-index:0; }
.lp-step .lp-iconcircle { position:relative; z-index:1; }
.lp-step__label { margin-top:var(--step-igap,10px); font-weight:600; color:var(--ink); line-height:1.3; }
/* Verbindungs-Stil zwischen den Schritten */
.lp-steps--solid  .lp-step:not(:last-child)::after { border-top-style:solid; }
.lp-steps--dotted .lp-step:not(:last-child)::after { border-top-style:dotted; border-top-width:3px; }
.lp-steps--none   .lp-step:not(:last-child)::after { display:none; }
.lp-steps--arrow  .lp-step:not(:last-child)::after { border-top-style:solid; }
.lp-steps--arrow  .lp-step:not(:last-child)::before { content:""; position:absolute; top:25px; left:150%; transform:translateX(-42px); width:0; height:0; border:6px solid transparent; border-left-color:var(--border,#cbd5e1); z-index:0; }
@media (max-width:640px){ .lp-step { flex:1 1 100%; } .lp-step:not(:last-child)::after, .lp-steps--arrow .lp-step:not(:last-child)::before { display:none; } }
.lp-step__desc { margin-top:var(--step-dgap,4px); font-size:.9rem; color:var(--muted,#4E5B63); line-height:1.4; }
.lp-stepnum { font-weight:700; }
/* Schnörkel startet an der Linien-/Badge-Mitte und läuft nach außen (setzt die Verbindung fort). */
.lp-step-flourish { position:absolute; top:var(--step-line-top,31px); left:calc(50% + (var(--step-bsize,64px) / 2)); transform:translateY(-50%); width:60px; color:var(--accent,#93a58e); opacity:.8; pointer-events:none; z-index:1; }
.lp-step-flourish svg { width:100%; height:auto; display:block; }
.lp-steps--vertical .lp-step-flourish { top:auto; left:calc(var(--step-bsize,64px) / 2); bottom:-10px; transform:translateX(-50%); }
/* Waagerechte Verbindung als SVG (folgt dem Höher/Tiefer-Versatz zur neuen Mitte) */
.lp-step-conn { position:absolute; top:calc(var(--step-line-top,31px) - 100px); left:calc(50% + var(--step-line-inset,44px)); width:calc(100% + var(--step-gap,0px) - (var(--step-line-inset,44px) * 2)); height:200px; z-index:0; pointer-events:none; }
.lp-step-conn svg { width:100%; height:100%; overflow:visible; display:block; }
.lp-steps--svgconn .lp-step:not(:last-child)::after { display:none; }
.lp-steps--svgconn.lp-steps--arrow .lp-step:not(:last-child)::before { display:none; }
@media (max-width:640px){ .lp-step-conn { display:none; } }
/* Chevron / Pfeil-Band: jeder Schritt eine Pfeilform, Fläche = Badge-Farbe */
.lp-steps--chevron { display:flex; flex-wrap:wrap; gap:0; align-items:stretch; }
.lp-steps--chevron .lp-step { flex:1 1 0; min-width:190px; text-align:center; padding:22px 30px 22px 46px; background:var(--surface,#EEF2F3); display:flex; flex-direction:column; align-items:center; justify-content:center; clip-path:polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%, 26px 50%); }
.lp-steps--chevron .lp-step::after { display:none; }
.lp-steps--chevron .lp-step:first-child { clip-path:polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%); padding-left:30px; border-top-left-radius:10px; border-bottom-left-radius:10px; }
.lp-steps--chevron .lp-step:last-child { clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%, 26px 50%); }
.lp-steps--chevron .lp-step + .lp-step { margin-left:-16px; }
.lp-steps--chevron .lp-step > i { margin-bottom:8px; }
.lp-steps--chevron .lp-step__label { margin-top:0; }
@media (max-width:640px){ .lp-steps--chevron { flex-direction:column; } .lp-steps--chevron .lp-step { clip-path:none !important; margin-left:0 !important; padding:16px 20px; border-radius:10px; margin-bottom:8px; } }
/* Panel-Variante (farbige Kacheln) */
.lp-steps--panel { display:flex; flex-wrap:wrap; gap:var(--step-gap,16px); align-items:stretch; }
.lp-steps--panel .lp-step { flex:1 1 0; min-width:160px; text-align:center; padding:24px 20px; border:1px solid var(--border,#e6ebf0); border-radius:14px; display:flex; flex-direction:column; align-items:center; gap:var(--step-igap,8px); }
.lp-steps--panel .lp-step::after { display:none; }
.lp-steps--panel .lp-step__label { margin-top:0; font-size:1.05rem; }
.lp-steps--panel .lp-iconcircle { margin-bottom:2px; }
@media (max-width:640px){ .lp-steps--panel .lp-step { flex:1 1 100%; } }
/* Senkrechte, oft nummerierte Variante (Ablauf/Prozess von oben nach unten) */
.lp-steps--vertical { flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:var(--step-gap,0px); }
.lp-steps--vertical .lp-step { flex:1 1 auto; min-width:0; text-align:left; display:flex; align-items:flex-start; gap:var(--step-igap,18px); padding:6px 0; }
.lp-steps--vertical .lp-step .lp-iconcircle { flex:0 0 auto; }
.lp-steps--vertical .lp-step__body { flex:1 1 auto; }
.lp-steps--vertical .lp-step__label { margin-top:0; }
.lp-steps--vertical .lp-step__desc { max-width:640px; }
.lp-steps--vertical .lp-step:not(:last-child)::after { content:""; position:absolute; left:calc(var(--step-bsize,64px) / 2 - 1px); top:var(--step-bsize,64px); height:calc(100% - var(--step-bsize,64px) + var(--step-gap,0px) + 6px); width:0; border-left:2px dashed var(--border,#cbd5e1); border-top:0; z-index:0; }
.lp-steps--vertical.lp-steps--solid .lp-step:not(:last-child)::after { border-left-style:solid; }
.lp-steps--vertical.lp-steps--dotted .lp-step:not(:last-child)::after { border-left-style:dotted; border-left-width:3px; }
.lp-steps--vertical.lp-steps--none .lp-step:not(:last-child)::after { display:none; }
.lp-steps--vertical.lp-steps--arrow .lp-step:not(:last-child)::before { display:none; }
@media (max-width:640px){ .lp-steps--vertical .lp-step { flex:1 1 auto; } .lp-steps--vertical .lp-step:not(:last-child)::after { display:block; } }
/* Icon-Position links/rechts neben dem Text (statt oben). Verbindungslinie entfällt dabei. */
.lp-steps--iconleft .lp-step, .lp-steps--iconright .lp-step { display:flex; align-items:flex-start; gap:var(--step-igap,14px); text-align:left; }
.lp-steps--iconright .lp-step { flex-direction:row-reverse; text-align:right; }
.lp-steps--iconleft .lp-step .lp-iconcircle, .lp-steps--iconright .lp-step .lp-iconcircle { flex:0 0 auto; }
.lp-steps--iconleft .lp-step__body, .lp-steps--iconright .lp-step__body { flex:1 1 auto; }
.lp-steps--iconleft .lp-step__label, .lp-steps--iconright .lp-step__label { margin-top:0; }
.lp-steps--iconleft .lp-step::after, .lp-steps--iconright .lp-step::after { display:none !important; }
/* Effekt-Animationen beim Scrollen – self-hosted Keyframe-Katalog (Stil MDB/animate.css), erst aktiv wenn JS lp-anim-on setzt (sonst bleibt alles sichtbar). */
html.lp-anim-on { overflow-x:hidden; }
.lp-anim-on .lp-anim { opacity:0; }
.lp-anim-on .lp-anim.is-in { opacity:1; animation-duration:.8s; animation-fill-mode:both; animation-timing-function:cubic-bezier(.25,.46,.45,.94); }
.lp-anim-on .lp-anim--bounce.is-in,.lp-anim-on .lp-anim--bouncein.is-in,.lp-anim-on .lp-anim--bounceup.is-in,.lp-anim-on .lp-anim--bouncedown.is-in,.lp-anim-on .lp-anim--tada.is-in,.lp-anim-on .lp-anim--wobble.is-in,.lp-anim-on .lp-anim--jack.is-in,.lp-anim-on .lp-anim--jello.is-in,.lp-anim-on .lp-anim--heartbeat.is-in,.lp-anim-on .lp-anim--rubber.is-in { animation-duration:1s; }
.lp-anim-on .lp-anim--fade.is-in{animation-name:lpFade}
.lp-anim-on .lp-anim--up.is-in{animation-name:lpUp}
.lp-anim-on .lp-anim--down.is-in{animation-name:lpDown}
.lp-anim-on .lp-anim--left.is-in{animation-name:lpLeft}
.lp-anim-on .lp-anim--right.is-in{animation-name:lpRight}
.lp-anim-on .lp-anim--upbig.is-in{animation-name:lpUpBig}
.lp-anim-on .lp-anim--downbig.is-in{animation-name:lpDownBig}
.lp-anim-on .lp-anim--leftbig.is-in{animation-name:lpLeftBig}
.lp-anim-on .lp-anim--rightbig.is-in{animation-name:lpRightBig}
.lp-anim-on .lp-anim--zoom.is-in{animation-name:lpZoom}
.lp-anim-on .lp-anim--zoomin.is-in{animation-name:lpZoomIn}
.lp-anim-on .lp-anim--zoomup.is-in{animation-name:lpZoomUp}
.lp-anim-on .lp-anim--slideup.is-in{animation-name:lpSlideUp}
.lp-anim-on .lp-anim--slidedown.is-in{animation-name:lpSlideDown}
.lp-anim-on .lp-anim--slideleft.is-in{animation-name:lpSlideLeft}
.lp-anim-on .lp-anim--slideright.is-in{animation-name:lpSlideRight}
.lp-anim-on .lp-anim--flip.is-in{animation-name:lpFlip}
.lp-anim-on .lp-anim--flipy.is-in{animation-name:lpFlipY}
.lp-anim-on .lp-anim--bounce.is-in{animation-name:lpBounce}
.lp-anim-on .lp-anim--bouncein.is-in{animation-name:lpBounceIn}
.lp-anim-on .lp-anim--bounceup.is-in{animation-name:lpBounceUp}
.lp-anim-on .lp-anim--bouncedown.is-in{animation-name:lpBounceDown}
.lp-anim-on .lp-anim--backup.is-in{animation-name:lpBackUp}
.lp-anim-on .lp-anim--backdown.is-in{animation-name:lpBackDown}
.lp-anim-on .lp-anim--backleft.is-in{animation-name:lpBackLeft}
.lp-anim-on .lp-anim--backright.is-in{animation-name:lpBackRight}
.lp-anim-on .lp-anim--rotate.is-in{animation-name:lpRotate}
.lp-anim-on .lp-anim--rotateup.is-in{animation-name:lpRotateUp}
.lp-anim-on .lp-anim--lightspeed.is-in{animation-name:lpLightspeed}
.lp-anim-on .lp-anim--roll.is-in{animation-name:lpRoll}
.lp-anim-on .lp-anim--jack.is-in{animation-name:lpJack}
.lp-anim-on .lp-anim--pulse.is-in{animation-name:lpPulse}
.lp-anim-on .lp-anim--shake.is-in{animation-name:lpShake}
.lp-anim-on .lp-anim--swing.is-in{animation-name:lpSwing;transform-origin:top center}
.lp-anim-on .lp-anim--tada.is-in{animation-name:lpTada}
.lp-anim-on .lp-anim--wobble.is-in{animation-name:lpWobble}
.lp-anim-on .lp-anim--jello.is-in{animation-name:lpJello}
.lp-anim-on .lp-anim--heartbeat.is-in{animation-name:lpHeartbeat}
.lp-anim-on .lp-anim--flash.is-in{animation-name:lpFlash}
.lp-anim-on .lp-anim--rubber.is-in{animation-name:lpRubber}
@keyframes lpFade{from{opacity:0}to{opacity:1}}
@keyframes lpUp{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}
@keyframes lpDown{from{opacity:0;transform:translateY(-42px)}to{opacity:1;transform:none}}
@keyframes lpLeft{from{opacity:0;transform:translateX(42px)}to{opacity:1;transform:none}}
@keyframes lpRight{from{opacity:0;transform:translateX(-42px)}to{opacity:1;transform:none}}
@keyframes lpUpBig{from{opacity:0;transform:translateY(140px)}to{opacity:1;transform:none}}
@keyframes lpDownBig{from{opacity:0;transform:translateY(-140px)}to{opacity:1;transform:none}}
@keyframes lpLeftBig{from{opacity:0;transform:translateX(140px)}to{opacity:1;transform:none}}
@keyframes lpRightBig{from{opacity:0;transform:translateX(-140px)}to{opacity:1;transform:none}}
@keyframes lpZoom{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes lpZoomIn{from{opacity:0;transform:scale(.3)}50%{opacity:1}to{opacity:1;transform:none}}
@keyframes lpZoomUp{0%{opacity:0;transform:scale(.1) translateY(160px)}60%{opacity:1;transform:scale(.45) translateY(-20px)}to{transform:none}}
@keyframes lpSlideUp{from{transform:translateY(80px)}to{transform:none}}
@keyframes lpSlideDown{from{transform:translateY(-80px)}to{transform:none}}
@keyframes lpSlideLeft{from{transform:translateX(80px)}to{transform:none}}
@keyframes lpSlideRight{from{transform:translateX(-80px)}to{transform:none}}
@keyframes lpFlip{from{opacity:0;transform:perspective(800px) rotateX(-70deg)}to{opacity:1;transform:perspective(800px) rotateX(0)}}
@keyframes lpFlipY{from{opacity:0;transform:perspective(800px) rotateY(70deg)}to{opacity:1;transform:perspective(800px) rotateY(0)}}
@keyframes lpBounce{0%{opacity:0;transform:translateY(60px)}60%{opacity:1;transform:translateY(-12px)}80%{transform:translateY(6px)}100%{transform:none}}
@keyframes lpBounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}
@keyframes lpBounceUp{0%{opacity:0;transform:translateY(120px)}60%{opacity:1;transform:translateY(-16px)}80%{transform:translateY(8px)}100%{transform:none}}
@keyframes lpBounceDown{0%{opacity:0;transform:translateY(-120px)}60%{opacity:1;transform:translateY(16px)}80%{transform:translateY(-8px)}100%{transform:none}}
@keyframes lpBackUp{0%{opacity:.4;transform:translateY(140px) scale(.7)}80%{opacity:1;transform:translateY(0) scale(.7)}100%{transform:scale(1)}}
@keyframes lpBackDown{0%{opacity:.4;transform:translateY(-140px) scale(.7)}80%{opacity:1;transform:translateY(0) scale(.7)}100%{transform:scale(1)}}
@keyframes lpBackLeft{0%{opacity:.4;transform:translateX(140px) scale(.7)}80%{opacity:1;transform:translateX(0) scale(.7)}100%{transform:scale(1)}}
@keyframes lpBackRight{0%{opacity:.4;transform:translateX(-140px) scale(.7)}80%{opacity:1;transform:translateX(0) scale(.7)}100%{transform:scale(1)}}
@keyframes lpRotate{from{opacity:0;transform:rotate(-8deg) scale(.92)}to{opacity:1;transform:none}}
@keyframes lpRotateUp{from{opacity:0;transform:rotate(-15deg) translateY(40px)}to{opacity:1;transform:none}}
@keyframes lpLightspeed{0%{opacity:0;transform:translateX(120px) skewX(-30deg)}60%{opacity:1;transform:skewX(20deg)}80%{transform:skewX(-5deg)}100%{transform:none}}
@keyframes lpRoll{0%{opacity:0;transform:translateX(-120px) rotate(-120deg)}to{opacity:1;transform:none}}
@keyframes lpJack{0%{opacity:0;transform:scale(.1) rotate(30deg);transform-origin:center bottom}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}100%{opacity:1;transform:scale(1)}}
@keyframes lpPulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes lpShake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
@keyframes lpSwing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}100%{transform:rotate(0)}}
@keyframes lpTada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes lpWobble{0%{transform:none}15%{transform:translateX(-20px) rotate(-5deg)}30%{transform:translateX(16px) rotate(3deg)}45%{transform:translateX(-12px) rotate(-3deg)}60%{transform:translateX(8px) rotate(2deg)}75%{transform:translateX(-4px) rotate(-1deg)}100%{transform:none}}
@keyframes lpJello{0%,100%{transform:none}30%{transform:skewX(-8deg)}40%{transform:skewX(6deg)}50%{transform:skewX(-3deg)}60%{transform:skewX(2deg)}70%{transform:skewX(-1deg)}}
@keyframes lpHeartbeat{0%{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.15)}70%{transform:scale(1)}}
@keyframes lpFlash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}
@keyframes lpRubber{0%{transform:scale(1)}30%{transform:scaleX(1.25) scaleY(.75)}40%{transform:scaleX(.75) scaleY(1.25)}60%{transform:scaleX(1.15) scaleY(.85)}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){ .lp-anim-on .lp-anim { opacity:1 !important; animation:none !important; } }
/* Abstandhalter (Spacer) – eigene Höhe, optional andere Höhe auf dem Handy */
.lp-spacer { height:var(--sp-h,40px); }
@media (max-width:640px){ .lp-spacer { height:var(--sp-hm,var(--sp-h,40px)); } }
/* Sichtbarkeit je Gerät */
@media (max-width:640px){ .lp-hide-mobile { display:none!important; } }
@media (min-width:641px){ .lp-hide-desktop { display:none!important; } }
/* Bild-Element: Figure, Hover-Zoom, Lightbox */
.lp-figure { margin:0; }
.lp-img-zoom { overflow:hidden; display:inline-block; line-height:0; }
.lp-img-zoom img { transition:transform .45s ease; }
.lp-img-zoom:hover img { transform:scale(1.06); }
a.lp-lightbox { cursor:zoom-in; display:inline-block; line-height:0; }
/* Foto mit Dekor-Kreisen (dahinter) und Namensbox (davor) */
.lp-photo-blob { position:absolute; border-radius:50%; z-index:0; pointer-events:none; }
.lp-photo-deco { position:absolute; z-index:0; line-height:1; pointer-events:none; }
.lp-photo-badge { position:absolute; z-index:2; background:#fff; padding:12px 18px; border-radius:10px; box-shadow:0 10px 30px rgba(16,32,45,.15); }
/* Dekor-Formen als eigenständiges Element (Formen frei in einer Box; Größe in % der Box-Breite via cqw). */
.lp-shapes { position:relative; container-type:inline-size; overflow:hidden; }
.lp-photo-badge strong { display:block; }
/* Bild mit Callouts (Hauptbild + frei platzierte Icon/Text-Punkte + Verbindungslinien aus der Mitte) */
.lp-feature { position:relative; padding:14% 20%; }
.lp-feature-stage { position:relative; margin:0 auto; overflow:visible; container-type:inline-size; }
.lp-feature-lines { position:absolute; inset:0; width:100%; height:100%; overflow:visible; z-index:0; pointer-events:none; }
.lp-feature-line { position:absolute; left:50%; top:50%; height:0; transform-origin:0 0; z-index:2; pointer-events:none; }
.lp-feature-arrow { position:absolute; left:100%; top:0; transform:translateY(-50%); width:0; height:0; }
.lp-feature-img { position:relative; z-index:1; display:block; max-width:100%; height:auto; }
.lp-feature-co { position:absolute; z-index:3; width:160px; max-width:34cqw; transform:translate(-50%,-50%); }
.lp-feature-co-t { font-weight:700; margin-top:4px; font-size:1rem; line-height:1.2; }
.lp-feature-co-x { font-size:.85rem; line-height:1.3; opacity:.9; }
@media (max-width:760px) {
  .lp-feature { padding:0; }
  .lp-feature-stage { width:100% !important; }
  .lp-feature-lines, .lp-feature-line { display:none; }
  .lp-feature-co { position:static !important; transform:none !important; left:auto !important; top:auto !important; width:auto !important; max-width:none !important; text-align:left !important; display:flex; gap:12px; align-items:flex-start; margin-top:16px; }
  .lp-feature-co > i { flex:0 0 auto; }
  .lp-feature-co-body { flex:1 1 auto; }
}
/* Sprechblasen (eine oder mehrere nebeneinander) */
.lp-bubbles { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-start; }
.lp-bubble { position:relative; flex:1 1 200px; min-width:180px; max-width:340px; background:var(--surface,#EEF2F3); color:var(--ink,#24323D); border-radius:14px; padding:16px 18px; }
.lp-bubble-text { line-height:1.5; }
.lp-bubble--i .lp-bubble-text { font-style:italic; }
.lp-bubble-cite { display:block; margin-top:8px; font-size:.85em; opacity:.7; font-style:normal; }
.lp-bubble::after { content:""; position:absolute; bottom:-9px; width:0; height:0; border:10px solid transparent; border-top-color:var(--bub-bg,var(--surface,#EEF2F3)); border-bottom:0; }
.lp-bubble--tail-left::after { left:26px; }
.lp-bubble--tail-center::after { left:50%; transform:translateX(-50%); }
.lp-bubble--tail-right::after { right:26px; }
@media (max-width:640px){ .lp-bubble { flex:1 1 100%; max-width:none; } }
/* Timeline / Zeitstrahl (senkrecht) */
.lp-timeline { position:relative; }
.lp-tl-item { position:relative; display:grid; grid-template-columns:30px 1fr; gap:16px; padding-bottom:22px; }
.lp-tl-item::before { content:""; position:absolute; left:14px; top:28px; bottom:-2px; width:2px; background:var(--tl-line,var(--border,#D8DFE2)); }
.lp-tl-item:last-child::before { display:none; }
.lp-tl-dot { width:30px; height:30px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:.82rem; position:relative; z-index:1; }
.lp-tl-date { font-size:.82rem; color:var(--muted,#4E5B63); font-weight:600; }
.lp-tl-title { font-weight:700; margin:2px 0; }
.lp-tl-text { color:var(--muted,#4E5B63); line-height:1.55; }
/* Tabs / Reiter */
.lp-tabs-nav { display:flex; gap:6px; flex-wrap:wrap; justify-content:var(--tab-align,flex-start); border-bottom:1px solid var(--border,#e0e0e0); }
.lp-tab { background:none; border:0; padding:10px 16px; font-weight:600; cursor:pointer; color:var(--muted,#4E5B63); border-bottom:2px solid transparent; font:inherit; }
.lp-tab.is-active { color:var(--primary); border-bottom-color:var(--primary); }
.lp-tabs--pills .lp-tabs-nav { border-bottom:0; }
.lp-tabs--pills .lp-tab { border-radius:999px; border-bottom:0; }
.lp-tabs--pills .lp-tab.is-active { background:var(--primary); color:#fff; }
.lp-tab-panel { display:none; padding:16px 4px; line-height:1.6; }
.lp-tab-panel.is-active { display:block; }
/* Preistabelle / Vergleich */
.lp-ptable { display:flex; flex-wrap:wrap; gap:18px; align-items:stretch; }
.lp-ptable-col { flex:1 1 220px; max-width:320px; border:1px solid var(--border,#e6ebf0); border-radius:14px; padding:22px 20px; background:#fff; position:relative; text-align:center; box-shadow:0 4px 14px rgba(16,32,45,.06); display:flex; flex-direction:column; }
.lp-ptable-col--hot { border-color:var(--pt-accent,var(--primary)); box-shadow:0 12px 30px rgba(16,32,45,.14); }
.lp-ptable-badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--pt-accent,var(--primary)); color:#fff; font-size:.72rem; font-weight:700; padding:4px 14px; border-radius:999px; letter-spacing:.02em; }
.lp-ptable-title { font-weight:700; font-size:1.1rem; }
.lp-ptable-price { font-size:1.9rem; font-weight:800; color:var(--pt-accent,var(--primary)); margin:8px 0; }
.lp-ptable-period { font-size:.82rem; font-weight:600; color:var(--muted,#7a8791); margin-left:3px; }
.lp-ptable-feats { list-style:none; margin:12px 0; padding:0; text-align:left; font-size:.92rem; flex:1 1 auto; }
.lp-ptable-feats li { padding:6px 0 6px 26px; position:relative; border-bottom:1px solid var(--border,#f0f3f6); }
.lp-ptable-feats li:last-child { border-bottom:0; }
.lp-ptable-feats li::before { content:"\2713"; position:absolute; left:0; color:var(--pt-accent,var(--primary)); font-weight:700; }
.lp-ptable-feats li.lp-pt-no { opacity:.5; }
.lp-ptable-feats li.lp-pt-no::before { content:"\2013"; color:var(--muted,#9aa6ae); }
.lp-pt-btn { display:inline-block; margin-top:10px; background:var(--pt-accent,var(--primary)); color:#fff; padding:10px 20px; border-radius:8px; text-decoration:none; font-weight:600; }
.lp-pt-btn:hover { filter:brightness(.94); color:#fff; }
@media (max-width:640px){ .lp-ptable-col { flex:1 1 100%; max-width:100%; } }
/* Vorher / Nachher-Bildregler */
.lp-ba { position:relative; container-type:inline-size; overflow:hidden; max-width:100%; touch-action:none; user-select:none; }
.lp-ba-base { display:block; width:100%; height:auto; }
.lp-ba-clip { position:absolute; top:0; left:0; height:100%; overflow:hidden; width:50%; }
.lp-ba-clip img { display:block; width:100cqw; height:100%; object-fit:cover; }
.lp-ba-handle { position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; transform:translateX(-50%); box-shadow:0 0 0 1px rgba(0,0,0,.15); cursor:ew-resize; }
.lp-ba-handle span { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:38px; height:38px; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.3); }
.lp-ba-handle span::before { content:"\276E\276F"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:.7rem; color:#334652; letter-spacing:1px; }
.lp-ba-label { position:absolute; bottom:12px; background:rgba(0,0,0,.55); color:#fff; font-size:.78rem; padding:4px 10px; border-radius:6px; pointer-events:none; }
.lp-ba-label--before { left:12px; }
.lp-ba-label--after { right:12px; }
/* Team-Karten */
.lp-team { display:grid; grid-template-columns:repeat(var(--tcols,3),1fr); gap:20px; }
.lp-team-card { text-align:center; background:#fff; border:1px solid var(--border,#eef1f4); border-radius:14px; padding:22px 18px; }
.lp-team-photo { display:block; width:120px; height:120px; object-fit:cover; margin:0 auto 12px; background:var(--border,#e6ebf0); }
.lp-team--round .lp-team-photo { border-radius:50%; }
.lp-team--rounded .lp-team-photo { border-radius:16px; }
.lp-team--square .lp-team-photo { border-radius:0; }
.lp-team-name { font-weight:700; font-size:1.05rem; }
.lp-team-role { color:var(--primary); font-size:.86rem; font-weight:600; margin-bottom:6px; }
.lp-team-text { font-size:.9rem; color:var(--muted,#4E5B63); line-height:1.55; }
.lp-team-links { display:flex; gap:14px; justify-content:center; margin-top:10px; }
.lp-team-links a { color:var(--primary); font-size:1.1rem; text-decoration:none; }
.lp-team-links a:hover { filter:brightness(.85); }
@media (max-width:820px){ .lp-team { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .lp-team { grid-template-columns:1fr; } }
/* Logo-Leiste */
.lp-logos-title { text-align:center; color:var(--muted,#7a8791); font-size:.8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:16px; }
.lp-logos { display:flex; flex-wrap:wrap; align-items:center; gap:34px; }
.lp-logo { display:inline-flex; }
.lp-logo img { height:var(--logo-h,40px); width:auto; max-width:200px; object-fit:contain; }
.lp-logos--gray .lp-logo img { filter:grayscale(1); opacity:.65; transition:filter .2s, opacity .2s; }
.lp-logos--gray .lp-logo:hover img { filter:none; opacity:1; }
/* CTA-Banner */
.lp-cta-banner { padding:38px 34px; display:flex; align-items:center; gap:24px; }
.lp-cta-banner--row { justify-content:space-between; flex-wrap:wrap; }
.lp-cta-banner--center { flex-direction:column; text-align:center; }
.lp-cta-title { font-size:1.6rem; font-weight:800; line-height:1.2; }
.lp-cta-text { opacity:.92; margin-top:5px; }
.lp-cta-banner-btn { display:inline-block; padding:13px 28px; border-radius:8px; font-weight:700; text-decoration:none; white-space:nowrap; }
.lp-cta-banner-btn:hover { filter:brightness(.95); }
@media (max-width:600px){ .lp-cta-banner { padding:26px 20px; } .lp-cta-title { font-size:1.3rem; } }
/* Button-Set */
.lp-btnset { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.lp-btnset--stack { flex-direction:column; align-items:stretch; }
.lp-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 24px; border-radius:8px; font-weight:600; text-decoration:none; line-height:1.2; border:2px solid transparent; transition:filter .15s, background .15s, color .15s; }
.lp-btn:hover { filter:brightness(.94); }
.lp-btnset--sm .lp-btn { padding:8px 16px; font-size:.88rem; }
.lp-btnset--lg .lp-btn { padding:15px 32px; font-size:1.1rem; }
@media (max-width:520px){ .lp-btnset:not(.lp-btnset--stack) .lp-btn { flex:1 1 100%; } }
/* Galerie / Masonry */
.lp-gallery--grid { display:grid; grid-template-columns:repeat(var(--gcols,3),1fr); gap:var(--ggap,10px); }
.lp-gallery--grid .lp-gallery-item { margin:0; }
.lp-gallery--grid .lp-gallery-item img { width:100%; aspect-ratio:1; object-fit:cover; display:block; border-radius:var(--grad,0); }
.lp-gallery--masonry { column-count:var(--gcols,3); column-gap:var(--ggap,10px); }
.lp-gallery--masonry .lp-gallery-item { break-inside:avoid; margin:0 0 var(--ggap,10px); }
.lp-gallery--masonry .lp-gallery-item img { width:100%; display:block; border-radius:var(--grad,0); }
.lp-gallery figcaption { font-size:.82rem; color:var(--muted,#4E5B63); padding:5px 2px; }
.lp-gallery[data-lightbox="1"] img { cursor:zoom-in; }
@media (max-width:640px){ .lp-gallery--grid { grid-template-columns:repeat(2,1fr); } .lp-gallery--masonry { column-count:2; } }
/* Lightbox */
.lp-lightbox { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9999; display:flex; align-items:center; justify-content:center; }
.lp-lightbox .lp-lb-fig { margin:0; max-width:92vw; max-height:88vh; display:flex; flex-direction:column; align-items:center; }
.lp-lightbox img { max-width:92vw; max-height:82vh; object-fit:contain; border-radius:6px; }
.lp-lightbox figcaption { color:#fff; margin-top:12px; font-size:.9rem; text-align:center; }
.lp-lb-close, .lp-lb-prev, .lp-lb-next { position:absolute; background:rgba(255,255,255,.14); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font-size:1.6rem; cursor:pointer; line-height:1; }
.lp-lb-close { top:18px; right:18px; }
.lp-lb-prev { left:18px; top:50%; transform:translateY(-50%); }
.lp-lb-next { right:18px; top:50%; transform:translateY(-50%); }
.lp-lb-close:hover, .lp-lb-prev:hover, .lp-lb-next:hover { background:rgba(255,255,255,.28); }
/* Karussell */
.lp-carousel { position:relative; }
.lp-carousel-viewport { overflow:hidden; border-radius:var(--car-rad,0); }
.lp-carousel-track { display:flex; transition:transform .4s ease; }
.lp-carousel-slide { flex:0 0 100%; position:relative; }
.lp-carousel-slide img { width:100%; aspect-ratio:var(--car-aspect,16/9); object-fit:cover; display:block; }
.lp-carousel-slide a { display:block; }
.lp-carousel-cap { position:absolute; left:0; right:0; bottom:0; padding:16px 18px; background:linear-gradient(transparent,rgba(0,0,0,.6)); color:#fff; }
.lp-carousel-title { font-weight:700; }
.lp-carousel-text { font-size:.92rem; opacity:.95; }
.lp-carousel-prev, .lp-carousel-next { position:absolute; top:50%; transform:translateY(-50%); border:0; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.85); color:#24323d; font-size:1.5rem; cursor:pointer; line-height:1; }
.lp-carousel-prev { left:12px; }
.lp-carousel-next { right:12px; }
.lp-carousel-prev:hover, .lp-carousel-next:hover { background:#fff; }
.lp-carousel-dots { display:flex; gap:8px; justify-content:center; margin-top:12px; }
.lp-carousel-dot { width:10px; height:10px; border-radius:50%; border:0; background:#c7d0d7; cursor:pointer; padding:0; }
.lp-carousel-dot.is-active { background:var(--primary); }
/* Slideshow (Hero): Folien mit Hintergrundbild + Text/Button, Pfeile/Punkte/Autoscroll */
.lp-heroslider { position:relative; width:100%; }
.lp-hs-viewport { overflow:hidden; }
.lp-hs-track { display:flex; }
.lp-heroslider--slide .lp-hs-track { transition:transform .5s ease; }
.lp-heroslider--fade .lp-hs-track { display:block; position:relative; }
.lp-hs-slide { flex:0 0 100%; position:relative; min-height:var(--hs-h,340px); background-size:cover; background-position:center; background-repeat:no-repeat; display:flex; align-items:center; }
.lp-heroslider--fade .lp-hs-slide { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.lp-heroslider--fade .lp-hs-slide:first-child { position:relative; }
.lp-heroslider--fade .lp-hs-slide.is-active { position:relative; opacity:1; }
.lp-hs-ov { position:absolute; inset:0; pointer-events:none; }
.lp-hs-inner { position:relative; width:100%; display:flex; }
.lp-hs--left .lp-hs-inner { justify-content:flex-start; }
.lp-hs--center .lp-hs-inner { justify-content:center; text-align:center; }
.lp-hs--right .lp-hs-inner { justify-content:flex-end; }
.lp-hs-box { max-width:46%; padding:28px; }
.lp-hs--center .lp-hs-box { max-width:72%; }
.lp-hs-h { font-weight:700; line-height:1.15; margin:0 0 .35em; color:var(--primary); }
.lp-hs-x { line-height:1.6; color:var(--ink); }
.lp-hs--light .lp-hs-h, .lp-hs--light .lp-hs-x { color:#fff; }
.lp-hs-box .lp-cta-btn { margin-top:14px; }
.lp-hs-prev, .lp-hs-next { position:absolute; top:50%; transform:translateY(-50%); border:0; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.85); color:#24323d; font-size:1.5rem; cursor:pointer; line-height:1; z-index:3; }
.lp-hs-prev { left:12px; }
.lp-hs-next { right:12px; }
.lp-hs-prev:hover, .lp-hs-next:hover { background:#fff; }
.lp-hs-dots { position:absolute; left:0; right:0; bottom:12px; display:flex; gap:8px; justify-content:center; z-index:3; }
.lp-hs-dot { width:10px; height:10px; border-radius:50%; border:0; background:rgba(255,255,255,.6); cursor:pointer; padding:0; box-shadow:0 0 0 1px rgba(0,0,0,.15); }
.lp-hs-dot.is-active { background:#fff; }
@media (max-width:720px){
  .lp-hs-slide { min-height:0; }
  .lp-hs-box { max-width:100% !important; padding:20px; }
  .lp-hs--left .lp-hs-inner, .lp-hs--right .lp-hs-inner, .lp-hs--center .lp-hs-inner { justify-content:center; text-align:left; }
}
/* Container-Slideshow: aufeinanderfolgende Container als Folien (eine pro Ansicht; jede Folie = ein ganzer Container). */
.lp-cslider { position:relative; width:100%; }
.lp-cs-viewport { overflow:hidden; }
.lp-cs-track { display:flex; align-items:stretch; transition:transform .5s ease; }
.lp-cslider--fade .lp-cs-viewport { position:relative; }
.lp-cslider--fade .lp-cs-track { display:block; position:relative; transition:none; }
.lp-cs-slide { flex:0 0 100%; width:100%; display:flex; flex-direction:column; }
/* Folien-Container füllt die (ggf. höhere) Folienhöhe, damit der Hintergrund gleichmäßig greift. */
.lp-cs-slide > .nb-brow-outer { flex:1 1 auto; }
/* Überblenden: die erste Folie hält die Höhe (im Fluss), die aktive wird darüber eingeblendet. */
.lp-cslider--fade .lp-cs-slide { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.lp-cslider--fade .lp-cs-slide:first-child { position:relative; }
.lp-cslider--fade .lp-cs-slide.is-active { opacity:1; z-index:1; }
.lp-cs-prev, .lp-cs-next { position:absolute; top:50%; transform:translateY(-50%); border:0; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.85); color:#24323d; font-size:1.6rem; cursor:pointer; line-height:1; z-index:4; display:flex; align-items:center; justify-content:center; }
.lp-cs-prev { left:12px; }
.lp-cs-next { right:12px; }
.lp-cs-prev:hover, .lp-cs-next:hover { background:#fff; }
.lp-cs-dots { position:absolute; left:0; right:0; bottom:14px; display:flex; gap:8px; justify-content:center; z-index:4; }
.lp-cs-dot { width:10px; height:10px; border-radius:50%; border:0; background:rgba(255,255,255,.6); cursor:pointer; padding:0; box-shadow:0 0 0 1px rgba(0,0,0,.2); }
.lp-cs-dot.is-active { background:#fff; }
/* Bild-Karten-Reihe */
.lp-imgrow { display:grid; grid-template-columns:repeat(var(--icols,4),1fr); gap:var(--igap,16px); }
.lp-imgrow-item { margin:0; }
.lp-imgrow-item img { width:100%; display:block; }
.lp-imgrow-item a { display:block; }
.lp-imgrow-cap { margin-top:var(--ir-capgap,10px); }
.lp-imgrow-item--top .lp-imgrow-cap { margin-top:0; margin-bottom:var(--ir-capgap,10px); }
/* Bilder immer auf gleicher Höhe: gemeinsames 3-Zeilen-Raster (Text-oben / Bild / Text-unten)
   via subgrid – so beginnt das Bild in jeder Karte in derselben (mittleren) Zeile, egal ob der
   Text darüber oder darunter steht. */
@supports (grid-template-rows: subgrid) {
  .lp-imgrow { grid-template-rows:auto auto auto; row-gap:0; }
  .lp-imgrow-item { display:grid; grid-template-rows:subgrid; grid-row:span 3; }
  .lp-imgrow-item > a, .lp-imgrow-item > img { grid-row:2; }
  /* Text ans Bild heranrücken: Unter-Text oben in seiner Zeile (direkt unters Bild),
     Ober-Text unten in seiner Zeile (direkt übers Bild) – der Ausgleichsraum bleibt außen. */
  .lp-imgrow-cap { grid-row:3; align-self:start; }
  .lp-imgrow-item--top .lp-imgrow-cap { grid-row:1; align-self:end; }
}
.lp-imgrow-t { font-weight:700; color:var(--ir-tcol,inherit); font-size:var(--ir-tsize,inherit); }
.lp-imgrow-x { font-size:var(--ir-xsize,.9rem); color:var(--ir-xcol,var(--muted,#4E5B63)); line-height:1.55; margin-top:var(--ir-xgap,2px); }
@media (max-width:820px){ .lp-imgrow { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .lp-imgrow { grid-template-columns:1fr; } }
/* Bild-Szene mit Textpunkten (breite Illustration + frei per X/Y platzierte Text-Callouts).
   Texte skalieren proportional zur Bildbreite (Container-Queries). Die Verbindungslinie ist Teil des Bildes. */
.lp-scene { margin-left:auto; margin-right:auto; }
.lp-scene-stage { position:relative; container-type:inline-size; }
.lp-scene-bg { display:block; width:100%; height:auto; }
.lp-scene-pt { position:absolute; }
.lp-scene-h { font-weight:var(--sc-hw,700); line-height:1.2; color:var(--sc-h,var(--primary,#17456C)); font-size:calc(1.9cqw * var(--sc-hfs, var(--sc-fs,1))); }
.lp-scene-x { font-weight:var(--sc-xw,400); line-height:1.5; margin-top:.35em; color:var(--sc-x,var(--muted,#4E5B63)); font-size:calc(1.25cqw * var(--sc-xfs, var(--sc-fs,1))); }
/* Handy: Bild oben, Texte gestapelt darunter (Overlay wäre unlesbar). */
@media (max-width:720px){
  .lp-scene-stage { container-type:normal; }
  .lp-scene-bg { border-radius:8px; }
  .lp-scene-pt { position:static; width:auto !important; text-align:left !important; margin-top:16px; }
  .lp-scene-h { font-size:1.1rem; }
  .lp-scene-x { font-size:.95rem; }
}
/* Video / Einbettung */
.lp-video { position:relative; width:100%; aspect-ratio:var(--v-aspect,16/9); border-radius:var(--v-rad,0); overflow:hidden; background:#0b1a26; }
.lp-video-el, .lp-video-frame { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.lp-video-poster { position:absolute; inset:0; width:100%; height:100%; border:0; cursor:pointer; background:#0b1a26 center/cover no-repeat; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; color:#fff; }
.lp-video-play { width:74px; height:74px; border-radius:50%; background:rgba(255,255,255,.92); position:relative; flex:none; transition:transform .15s; }
.lp-video-poster:hover .lp-video-play { transform:scale(1.06); }
.lp-video-play::before { content:""; position:absolute; top:50%; left:56%; transform:translate(-50%,-50%); border-left:24px solid var(--primary,#14436C); border-top:14px solid transparent; border-bottom:14px solid transparent; }
.lp-video-note { max-width:82%; font-size:.8rem; background:rgba(0,0,0,.5); padding:6px 12px; border-radius:6px; text-align:center; line-height:1.4; }
/* Info-/Hinweis-Box */
.lp-note { display:flex; gap:14px; padding:16px 18px; border-radius:12px; border-left:4px solid var(--note,#14436C); background:color-mix(in srgb, var(--note,#14436C) 10%, white); }
.lp-note--col { flex-direction:column; }
.lp-note-ico { color:var(--note,#14436C); font-size:1.4rem; flex:none; line-height:1.5; }
.lp-note-title { font-weight:700; margin-bottom:2px; }
.lp-note-text { line-height:1.55; color:var(--text,#24323D); }
/* Bewertungen / Testimonials */
.lp-reviews { display:grid; grid-template-columns:repeat(var(--rev-cols,3),1fr); gap:20px; }
.lp-review { background:#fff; border:1px solid var(--border,#eef1f4); border-radius:14px; padding:20px; }
.lp-review-stars { color:var(--rev-star,#14436C); letter-spacing:2px; margin-bottom:8px; }
.lp-review-star--off { opacity:.28; }
.lp-review-text { line-height:1.6; color:var(--text,#24323D); }
.lp-review-foot { display:flex; align-items:center; gap:12px; margin-top:14px; }
.lp-review-av { width:46px; height:46px; border-radius:50%; object-fit:cover; }
.lp-review-name { font-weight:700; }
.lp-review-role { font-size:.85rem; color:var(--muted,#7a8791); }
/* Social-Media-/Kontakt-Icon-Box */
.lp-socials { display:flex; flex-wrap:wrap; gap:var(--soc-gap,12px); align-items:center; }
.lp-soc { display:inline-flex; align-items:center; justify-content:center; width:var(--soc-size,44px); height:var(--soc-size,44px); font-size:calc(var(--soc-size,44px) * .42); text-decoration:none; background:var(--soc-bg,#14436C); color:var(--soc-fg,#fff); transition:filter .15s, transform .15s; }
.lp-soc:hover { filter:brightness(1.08); transform:translateY(-2px); color:var(--soc-fg,#fff); }
.lp-socials--circle .lp-soc { border-radius:50%; }
.lp-socials--rounded .lp-soc { border-radius:12px; }
.lp-socials--square .lp-soc { border-radius:0; }
.lp-socials--outline .lp-soc { background:transparent; color:var(--soc-bg,#14436C); border:2px solid var(--soc-bg,#14436C); }
.lp-socials--outline .lp-soc:hover { background:var(--soc-bg,#14436C); color:var(--soc-fg,#fff); }
/* Formular-Kasten (Baukasten-Element) */
.lp-formbox { box-sizing:border-box; }
/* Abstand oben/unten im Kasten gleich: dem letzten Element (auch verschachtelt) den unteren Rand nehmen */
.lp-formbox > *:last-child, .lp-formbox > *:last-child > *:last-child, .lp-formbox > *:last-child > *:last-child > *:last-child { margin-bottom:0; }
/* Trust-/Fakten-Leiste */
.lp-facts { display:grid; grid-template-columns:repeat(var(--fact-cols,4),1fr); gap:24px; }
.lp-fact-ico { font-size:1.7rem; color:var(--fact-acc,#14436C); margin-bottom:6px; }
.lp-fact-val { font-size:2.1rem; font-weight:800; color:var(--fact-acc,#14436C); line-height:1; }
.lp-fact-label { font-size:.92rem; color:var(--muted,#4E5B63); margin-top:5px; }
@media (max-width:640px){ .lp-facts { grid-template-columns:repeat(2,1fr); } }
/* Kontakt-/Standort-Block */
.lp-contact--split { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.lp-contact-title { font-weight:700; font-size:1.2rem; margin-bottom:12px; }
.lp-contact-row { display:flex; gap:10px; align-items:flex-start; margin-bottom:9px; }
.lp-contact-row i { color:var(--contact-acc,#14436C); width:20px; margin-top:3px; flex:none; }
.lp-contact-row a { color:inherit; text-decoration:none; }
.lp-contact-row a:hover { text-decoration:underline; }
.lp-contact-hours { margin-top:12px; line-height:1.6; }
.lp-contact-subh { font-weight:700; font-size:.88rem; margin-bottom:2px; }
@media (max-width:640px){ .lp-contact--split { grid-template-columns:1fr; } }
/* Karte („Klick zum Laden") */
.lp-map { position:relative; aspect-ratio:4/3; border-radius:12px; overflow:hidden; background:#dfe6ea; }
.lp-map-frame { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.lp-map-poster { position:absolute; inset:0; width:100%; height:100%; border:0; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:#dfe6ea; color:#24323d; }
.lp-map-play { font-size:2.1rem; color:var(--contact-acc,#14436C); }
.lp-map-note { max-width:80%; font-size:.8rem; text-align:center; color:var(--muted,#4E5B63); }
@media (max-width:820px){ .lp-reviews { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .lp-reviews { grid-template-columns:1fr; } }
/* Blog-Einzelbeitrag: Kopfbereich (Titelbild / Kategorie·Datum / Titel) */
.lp-blogpost-head { padding-top:32px; padding-bottom:8px; }
.lp-blogpost-cover { width:100%; height:auto; display:block; border-radius:14px; margin-bottom:18px; }
.lp-blogpost-meta { font-size:.9rem; opacity:.7; margin-bottom:6px; }
.lp-blogpost-meta .lp-blogpost-cat { color:var(--primary,inherit); text-decoration:none; font-weight:600; }
.lp-blogpost-meta .lp-blogpost-cat:hover { text-decoration:underline; }
.lp-blogpost-title { margin:0 0 8px; }
/* Blog-Einzelbeitrag: „Ähnliche Beiträge" */
.lp-blog-related { padding-top:8px; padding-bottom:40px; margin-top:32px; border-top:1px solid var(--border,#e6ebf0); }
.lp-blog-related-title { margin:24px 0 20px; }
/* Blog-Übersicht: Karten-Raster + Blättern */
.lp-bloglist { padding-top:32px; }
.lp-bloglist-title { margin:0 0 20px; }
.lp-bloglist-back { margin:-8px 0 20px; }
.lp-bloglist-back a { font-weight:600; text-decoration:none; color:var(--primary,inherit); }
.lp-bloglist-back a:hover { text-decoration:underline; }
.lp-bloglist-empty { opacity:.7; }
.lp-bloglist-grid { display:grid; grid-template-columns:repeat(var(--bcols,3),1fr); gap:24px; }
@media (max-width:900px){ .lp-bloglist-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .lp-bloglist-grid { grid-template-columns:1fr; } }
.lp-blog-embed-more { margin-top:18px; }
.lp-blog-embed-more a { font-weight:600; text-decoration:none; color:var(--primary,inherit); }
.lp-blogcard { display:flex; flex-direction:column; border:1px solid var(--border,#e6ebf0); border-radius:14px; overflow:hidden; background:#fff; text-decoration:none; color:inherit; transition:box-shadow .15s, transform .15s; }
.lp-blogcard:hover { box-shadow:0 10px 30px rgba(16,32,45,.12); transform:translateY(-2px); }
.lp-blogcard-img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--surface,#eef2f3); }
.lp-blogcard-body { padding:16px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
.lp-blogcard-meta { font-size:.82rem; opacity:.7; }
.lp-blogcard-title { font-weight:700; font-size:1.1rem; line-height:1.3; color:var(--primary,inherit); }
.lp-blogcard-text { font-size:.92rem; opacity:.85; flex:1; }
.lp-blogcard-more { font-weight:600; margin-top:6px; }
.lp-blogpager { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:28px 0 8px; align-items:center; }
.lp-blogpager a, .lp-blogpager span { padding:8px 14px; border:1px solid var(--border,#e6ebf0); border-radius:8px; text-decoration:none; color:inherit; }
.lp-blogpager a:hover { border-color:var(--primary,#14436C); }
.lp-blogpager .is-active { background:var(--primary,#14436C); color:#fff; border-color:var(--primary,#14436C); }
.lp-blogpager-nav { font-weight:600; }
.lp-blogpager .is-disabled { opacity:.4; }
/* Blog-Übersicht: Kategorie-Filterleiste */
.lp-blogfilter { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 24px; }
.lp-blogchip { padding:6px 14px; border:1px solid var(--border,#e6ebf0); border-radius:999px; text-decoration:none; color:inherit; font-size:.9rem; font-weight:600; transition:background .15s,border-color .15s,color .15s; }
.lp-blogchip:hover { border-color:var(--primary,#14436C); }
.lp-blogchip.is-active { background:var(--primary,#14436C); color:#fff; border-color:var(--primary,#14436C); }
/* Blog-Einzelbeitrag: Teilen-Leiste */
.lp-share { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:28px auto 4px; }
.lp-share-label { font-weight:600; opacity:.75; font-size:.9rem; }
.lp-share-btn { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:1px solid var(--border,#e6ebf0); background:transparent; color:var(--primary,#14436C); text-decoration:none; cursor:pointer; font-size:1rem; transition:background .15s,color .15s,border-color .15s; }
.lp-share-btn:hover { background:var(--primary,#14436C); color:#fff; border-color:var(--primary,#14436C); }
.lp-share-copy.is-copied { background:var(--accent,#709FAF); color:#fff; border-color:var(--accent,#709FAF); }

/* Zitat */
.lp-quote { margin:0; padding:0; line-height:1.4; }
.lp-quote cite { display:block; margin-top:10px; font-style:normal; font-size:.9em; opacity:.75; }
.lp-quote--mark::before { content:var(--q-mark-o,"\201C"); display:block; font-family:Georgia, 'Times New Roman', serif; font-size:var(--q-mark-size,3.4em); line-height:.5; color:var(--q-mark,var(--accent,#709FAF)); margin-bottom:.05em; }
.lp-quote--markboth::after { content:var(--q-mark-c,"\201D"); display:block; font-family:Georgia, 'Times New Roman', serif; font-size:var(--q-mark-size,3.4em); line-height:0; color:var(--q-mark,var(--accent,#709FAF)); margin-top:.25em; }
.lp-quote--markleft { position:relative; padding-left:.95em; }
.lp-quote--markleft::before { content:var(--q-mark-o,"\201C"); position:absolute; left:-.12em; top:-.12em; font-family:Georgia, 'Times New Roman', serif; font-size:var(--q-mark-size,3.4em); line-height:1; color:var(--q-mark,var(--accent,#709FAF)); }
.lp-quote-rule { display:block; width:140px; max-width:60%; line-height:0; color:var(--q-mark,var(--accent,#709FAF)); }
.lp-quote-rule svg { display:block; width:100%; height:auto; overflow:visible; }
/* Icon-Box (Icon + Titel + Text) */
.lp-iconbox { }
.lp-iconbox .lp-iconbox-title { margin:12px 0 6px; }
.lp-iconbox .lp-iconbox-text { margin:0; }
/* Akkordeon / FAQ */
.lp-acc { border-top:1px solid var(--border,#e0e0e0); }
.lp-acc-item { border-bottom:1px solid var(--border,#e0e0e0); }
.lp-acc-q { width:100%; text-align:left; background:none; border:0; padding:14px 4px; font-weight:600; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; color:inherit; font-size:1rem; font-family:inherit; }
.lp-acc-q::after { flex:none; color:var(--acc-icon,var(--primary)); }
/* Rückwärtskompatibel: alte FAQ ohne Symbol-Klasse zeigen weiter +/− */
.lp-acc:not(.lp-acc--plus):not(.lp-acc--chevron) .lp-acc-q::after { content:"+"; font-size:1.35em; line-height:1; }
.lp-acc:not(.lp-acc--plus):not(.lp-acc--chevron) .lp-acc-item.open .lp-acc-q::after { content:"\2212"; }
.lp-acc--plus .lp-acc-q::after { content:"+"; font-size:1.35em; line-height:1; }
.lp-acc--plus .lp-acc-item.open .lp-acc-q::after { content:"\2212"; }
.lp-acc--chevron .lp-acc-q::after { content:""; width:.5em; height:.5em; border-right:2px solid var(--acc-icon,var(--primary)); border-bottom:2px solid var(--acc-icon,var(--primary)); transform:rotate(45deg); transition:transform .2s; }
.lp-acc--chevron .lp-acc-item.open .lp-acc-q::after { transform:rotate(225deg); }
.lp-acc-a { padding:0 4px 16px; }
.lp-acc-a[hidden] { display:none; }
