:root {
    --lo-rot: #e33826;
    --lo-rot-hell: #ff1c04;
    --lo-blau: #1398db;
    --lo-schwarz: #000;
    --lo-text: #494b46;
    --lo-grau-hell: #fbfbfb;
    --lo-grau: #f6f6f6;
    --lo-fuss: #f5f5f5;
    --lo-titel: 'Inter', sans-serif;
    --lo-fliess: 'DM Sans', sans-serif;
    --lo-breite: 1350px;
    --lo-rand: max(20px, calc((100vw - var(--lo-breite)) / 2));
    --lo-text-groesse: 18px;
}

@media (max-width: 1024px) {
    :root { --lo-text-groesse: 17px; }
}

@media (max-width: 767px) {
    :root { --lo-text-groesse: 16px; }
}

html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }

body {
    font-family: var(--lo-fliess);
    font-size: var(--lo-text-groesse);
    line-height: calc(var(--lo-text-groesse) * 1.6);
    color: var(--lo-text);
    background: #fff;
    -webkit-font-smoothing: antialiased;
}

body .site-content .ast-container, .ast-page-builder-template .site-content > .ast-container { max-width: none; padding: 0; }
.ast-page-builder-template .entry-content, .ast-page-builder-template .entry-header { margin: 0; }
.entry-content > * { margin-block: 0; }
body.ast-page-builder-template .site-main > article.page { padding: 0; }
.entry-content :where(.is-layout-flow, .is-layout-constrained) > * { margin-block-start: 0; }
.entry-content p:empty { display: none; }
.entry-content p { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6, .lo-titel { font-family: var(--lo-titel); color: var(--lo-schwarz); margin: 0; hyphens: manual; }
.entry-content :where(h1, h2, h3, h4, h5, h6) { color: var(--lo-schwarz); }
.ast-single-post .entry-content a { text-decoration: none; }
p { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
a { transition: color .3s, background-color .3s, border-color .3s; }

.lo-symbol { width: 1em; height: 1em; display: inline-block; vertical-align: middle; flex: none; }

.lo-innen { width: min(100% - 40px, var(--lo-breite)); margin-inline: auto; }
.lo-ueberzeile { font-family: var(--lo-titel); font-size: 21px; font-weight: 300; line-height: 1.3; color: var(--lo-rot-hell); }
.lo-h2 { font-family: var(--lo-titel); font-size: 50px; font-weight: 700; line-height: 1.3; color: var(--lo-schwarz); }
.lo-text-akzent { color: var(--lo-rot); }

.lo-knopf,
.wp-block-button.lo-knopf .wp-block-button__link,
.lo-knoepfe .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--lo-titel);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    color: #fff;
    background: var(--lo-rot);
    padding: 17px 34px;
    border-radius: 12px;
    border: 0;
    text-decoration: none;
    transition: background-color .3s, color .3s;
}

.lo-knopf:hover, .lo-knopf:focus-visible,
.lo-knoepfe .wp-block-button__link:hover, .lo-knoepfe .wp-block-button__link:focus-visible { color: #fff; }
.entry-content .lo-knoepfe .wp-block-button .wp-block-button__link:is(:hover, :focus-visible) { background-color: var(--lo-rot); border-color: transparent; color: #fff; }
.entry-content .lo-knoepfe .wp-block-button.is-style-glas .wp-block-button__link:is(:hover, :focus-visible) { background-color: rgba(255, 254, 254, .34); }

.lo-knopf-rund, .lo-knoepfe .is-style-rund .wp-block-button__link, .lo-knopf.is-style-rund .wp-block-button__link { border-radius: 33px; }
.lo-knoepfe .is-style-glas .wp-block-button__link { background: rgba(255, 254, 254, .34); }
.lo-knoepfe .is-style-blau .wp-block-button__link { background: var(--lo-blau); }
.entry-content .lo-knoepfe .wp-block-button.is-style-blau .wp-block-button__link:is(:hover, :focus-visible) { background-color: #0f86c3; }
.lo-knoepfe .wp-block-button__link .lo-symbol { width: 16px; height: 16px; }
.lo-knoepfe .wp-block-button .wp-block-button__link { width: auto; }

@media (max-width: 767px) {
    .lo-knopf, .lo-knoepfe .wp-block-button__link { padding: 12px 24px; font-size: 14.592px; }
    .lo-knoepfe .wp-block-button__link .lo-symbol { width: 15px; height: 15px; }
}

.lo-pfeil-link, .lo-pfeil-link a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--lo-titel);
    font-size: 16px;
    font-weight: 600;
    color: var(--lo-schwarz);
    text-decoration: none;
}

.lo-pfeil-link a:hover, .lo-pfeil-link a:focus-visible { color: var(--lo-rot); }

.lo-kopf {
    position: relative;
    z-index: 50;
    display: grid;
    grid-template-columns: 25% 50% 25%;
    align-items: center;
    margin-bottom: -3vw;
    background: transparent;
}

.lo-kopf-logo { display: flex; justify-content: center; justify-self: stretch; }
.lo-kopf-logo img { width: 46%; height: auto; }
.lo-nav { justify-self: center; }
.lo-nav-liste { display: flex; list-style: none; margin: 0; padding: 0; }
.lo-nav-punkt { position: relative; }

.lo-nav-punkt > a {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 13px 20px;
    font-family: var(--lo-fliess);
    font-size: 18px;
    line-height: 20px;
    color: var(--lo-schwarz);
    text-decoration: none;
}

.lo-nav-punkt > a .lo-symbol { width: 12px; height: 12px; }

@media (min-width: 1025px) and (max-width: 1600px) {
    .lo-kopf { grid-template-columns: 22% 57% 21%; }
    .lo-nav-punkt > a { padding-inline: 12px; font-size: 16px; }
}

@media (min-width: 1025px) and (max-width: 1200px) {
    .lo-nav-punkt > a { padding-inline: 8px; font-size: 15px; }
}

.lo-nav-punkt > a:hover, .lo-nav-punkt:hover > a, .lo-nav-punkt > a:focus-visible { color: var(--lo-blau); }

.lo-nav-unter {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    list-style: none;
    margin: 0;
    padding: 0;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s, transform .25s, visibility .25s;
}

.lo-nav-punkt:hover .lo-nav-unter, .lo-nav-punkt:focus-within .lo-nav-unter { opacity: 1; visibility: visible; transform: none; }
.lo-nav-unter a { display: block; padding: 12px 20px; font-size: 13px; line-height: 20px; color: #33373d; text-decoration: none; }
.lo-nav-unter a:hover, .lo-nav-unter a:focus-visible { background: #f1f1f1; color: #33373d; }
.lo-kopf-aktion { justify-self: center; }
.lo-menue-knopf, .lo-handy-menue { display: none; }

.lo-menue-knopf {
    justify-self: end;
    margin-right: 20px;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--lo-rot);
    border-radius: 6px;
    background: #fff;
    color: var(--lo-rot);
    padding: 0;
}

.lo-menue-knopf .lo-symbol { width: 24px; height: 24px; }
.lo-menue-knopf:hover, .lo-menue-knopf:focus-visible { background: var(--lo-rot); color: #fff; }

.lo-handy-menue {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(360px, 88vw);
    background: #fff;
    padding: 70px 28px 28px;
    overflow-y: auto;
    box-shadow: -10px 0 30px rgba(0, 0, 0, .15);
    z-index: 100;
}

.lo-handy-menue ul { list-style: none; margin: 0; padding: 0; }
.lo-handy-menue > ul > li > a { display: block; padding: 12px 0; font-size: 15px; font-weight: 500; color: var(--lo-schwarz); text-decoration: none; border-bottom: 1px solid #eee; }
.lo-handy-menue ul ul a { display: block; padding: 10px 0 10px 16px; font-size: 14px; color: var(--lo-schwarz); text-decoration: none; }
.lo-handy-menue a:hover { color: #707070; }
.lo-handy-menue .lo-knopf { margin-top: 24px; }
.lo-menue-zu { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: 0; background: none; color: var(--lo-schwarz); padding: 0; }
.lo-menue-zu .lo-symbol { width: 26px; height: 26px; }
.lo-menue-offen { overflow: hidden; }

@media (max-width: 1024px) {
    .lo-kopf { grid-template-columns: 1fr auto; height: 66px; margin-bottom: 0; }
    .lo-kopf-logo { justify-self: start; margin-left: 55px; }
    .lo-kopf-logo img { width: auto; height: 66px; }
    .lo-nav, .lo-kopf-aktion { display: none; }
    .lo-menue-knopf { display: inline-flex; }
    .lo-handy-menue:not([hidden]) { display: block; }
}

@media (max-width: 767px) {
    .lo-kopf { height: 80px; }
    .lo-kopf-logo { margin-left: 16px; }
    .lo-kopf-logo img { height: auto; width: 150px; }
    .lo-menue-knopf { margin-right: 16px; width: 42px; height: 42px; }
}

.lo-fuss { background: var(--lo-fuss); padding: 4vw 0 calc(7vw - 54px); }
.lo-fuss-innen { width: min(100% - 90px, var(--lo-breite)); margin-inline: auto; display: grid; grid-template-columns: 382fr 217fr 319fr 382fr; gap: 10px; padding: 10px; }
.lo-fuss-innen > * { display: flex; flex-direction: column; gap: 20px; padding: 10px; }
.lo-fuss-logo img { width: 100%; max-width: 362px; }
.lo-fuss-recht { display: flex; justify-content: center; gap: 15px; list-style: none; margin: 0; padding: 0; line-height: 18px; }
.lo-fuss-recht a { font-family: 'Roboto', sans-serif; font-size: 18px; font-weight: 300; line-height: 1; color: #727272; text-decoration: none; }
.lo-fuss-recht a:hover { color: var(--lo-rot); }
.lo-fuss hr { border: 0; border-top: 1px solid #e3e3e3; margin: 15px 0; }
.lo-fuss h5 { font-size: 22px; font-weight: 600; line-height: 1.2; margin: 0 0 10px; }
.lo-fuss-links { display: flex; flex-direction: column; gap: 23.8px; list-style: none; margin: 0; padding: 0; }
.lo-fuss-links li { margin: 0; }
.lo-fuss-links a { display: inline-flex; align-items: center; gap: 10px; font-size: var(--lo-text-groesse); color: var(--lo-schwarz); text-decoration: none; }
.lo-fuss-links a .lo-symbol { width: 14px; height: 14px; color: var(--lo-schwarz); transition: color .3s; }
.lo-fuss-links a:hover { color: var(--lo-schwarz); }
.lo-fuss-links a:hover span { color: var(--lo-schwarz); }
.lo-fuss-links a:hover .lo-symbol { color: var(--lo-rot); }


.lo-infobox { display: flex; align-items: flex-start; gap: 14px; padding-bottom: 16px; color: var(--lo-schwarz); text-decoration: none; }
.lo-infobox-symbol { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--lo-rot); color: #fff; transition: background-color .3s; }
.lo-infobox-symbol .lo-symbol { width: 19px; height: 19px; }
.lo-infobox:hover .lo-infobox-symbol { background: var(--lo-schwarz); }
.lo-infobox h3, .lo-infobox-titel { display: block; margin-bottom: 5px; font-family: var(--lo-titel); font-size: 19px; font-weight: 400; line-height: 1.2; color: var(--lo-schwarz); }
.lo-infobox p, .lo-infobox-text { display: block; font-family: var(--lo-titel); font-size: 14px; line-height: 28.8px; color: var(--lo-schwarz); }

@media (max-width: 1024px) {
    .lo-fuss-innen { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
    .lo-fuss { padding: 4vw 0 3vw; }
    .lo-fuss-innen { grid-template-columns: 1fr; gap: 20px; width: auto; text-align: left; }
    .lo-fuss-logo img { margin-inline: auto; }
}

.lo-ablauf { position: relative; list-style: none; margin: 0; padding: 40px 0 106px 30px; font-family: 'Hanken Grotesk', sans-serif; }
.lo-ablauf-spur, .lo-ablauf-fuellung { position: absolute; left: 55.5px; width: 3px; border-radius: 3px; }
.lo-ablauf-spur { background: #e6e6e6; }
.lo-ablauf-fuellung { background: linear-gradient(180deg, #e5392a, #ff6a52); box-shadow: 0 0 14px rgba(229, 57, 42, .45); height: 0; z-index: 1; transition: height .12s linear; }
.lo-ablauf-schritt { position: relative; z-index: 2; display: grid; grid-template-columns: 54px 1fr; gap: 24px; padding-bottom: 78px; }
.lo-ablauf-schritt:last-child { padding-bottom: 0; }

.lo-ablauf-punkt {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 3px solid #e6e6e6;
    color: #b6bbc0;
    font-family: 'Archivo', sans-serif;
    font-weight: 800;
    font-size: 16px;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), background .35s, border-color .35s, color .35s, box-shadow .35s;
}

.lo-ablauf-inhalt { padding-top: 5px; }
.lo-ablauf-inhalt h3 { font-family: var(--lo-titel); font-weight: 600; font-size: clamp(20px, 1.7vw, 24px); line-height: 1.15; margin-bottom: 10px; color: #9aa0a6; transition: color .35s; }
.lo-ablauf-inhalt p { font-size: 16.5px; line-height: 1.62; color: #6c7177; max-width: 46ch; opacity: .55; transition: opacity .35s; }
.lo-ablauf-schritt.ist-aktiv .lo-ablauf-punkt { background: #e5392a; border-color: #e5392a; color: #fff; transform: scale(1.08); box-shadow: 0 8px 22px rgba(229, 57, 42, .35); }
.lo-ablauf-schritt.ist-aktiv h3 { color: #111315; }
.lo-ablauf-schritt.ist-aktiv p { opacity: 1; }

@media (max-width: 880px) {
    .lo-ablauf { padding: 32px 22px 86px; }
    .lo-ablauf-schritt { grid-template-columns: 46px 1fr; gap: 16px; }
    .lo-ablauf-punkt { width: 46px; height: 46px; font-size: 14px; }
    .lo-ablauf-spur, .lo-ablauf-fuellung { left: 43.5px; }
}

.lo-ref { position: relative; background: #fff; }
.lo-ref-buehne { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; align-items: center; }
.lo-ref-spur { display: flex; align-items: center; position: relative; will-change: transform; padding: 0 18vw 0 13vw; }
.lo-ref-rohr { position: absolute; left: 0; top: 0; z-index: 1; pointer-events: none; overflow: visible; }
.lo-ref-eintrag { position: relative; flex: 0 0 400px; height: 100vh; margin: 0; z-index: 2; }

.lo-ref-eintrag img {
    position: absolute;
    left: 30px;
    right: 30px;
    width: calc(100% - 60px);
    height: 34vh;
    max-height: 360px;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid #e7eaee;
    background: #f1f3f5;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .1);
}

.lo-ref-eintrag[data-seite="oben"] img { bottom: calc(50% + 74px); }
.lo-ref-eintrag[data-seite="unten"] img { top: calc(50% + 74px); }
.lo-ref-punkt, .lo-ref-rohr-senkrecht { display: none; }

.lo-ref[data-modus="senkrecht"] .lo-ref-buehne { position: static; height: auto; display: block; padding: 58px 0 78px; }
.lo-ref[data-modus="senkrecht"] .lo-ref-spur { flex-direction: column; transform: none !important; padding: 0 37px 0 97px; }
.lo-ref[data-modus="senkrecht"] .lo-ref-rohr { display: none; }
.lo-ref[data-modus="senkrecht"] .lo-ref-eintrag { flex: none; height: auto; width: 100%; margin-bottom: 49px; }
.lo-ref[data-modus="senkrecht"] .lo-ref-eintrag img { position: relative; inset: auto; width: 100%; height: auto; max-height: none; aspect-ratio: 4 / 3; }
.lo-ref[data-modus="senkrecht"] .lo-ref-punkt { display: block; position: absolute; left: -57px; top: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: #fff; border: 3px solid #1d72b5; z-index: 3; }
.lo-ref[data-modus="senkrecht"] .lo-ref-rohr-senkrecht { display: block; position: absolute; left: 65px; top: 0; bottom: 0; width: 20px; background: #eef2f6; border-left: 3px solid #cfd6dc; border-right: 3px solid #c2cad1; border-radius: 5px; overflow: hidden; z-index: 0; }
.lo-ref-wasser-senkrecht { position: absolute; left: 0; right: 0; top: 0; height: 0; background: linear-gradient(90deg, #6cb6ea, #1d72b5); transition: height .14s linear; }

.lo-video { position: relative; overflow: hidden; border-radius: 12px; aspect-ratio: 16 / 9; background: #000; }
.lo-video-poster, .lo-video-element { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lo-video-start { position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 74px; height: 74px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .9); background: rgba(0, 0, 0, .35); color: #fff; padding: 0; cursor: pointer; transition: transform .3s, background-color .3s; }
.lo-video-start .lo-symbol { width: 40px; height: 40px; }
.lo-video-start:hover, .lo-video-start:focus-visible { transform: scale(1.06); background: rgba(0, 0, 0, .55); }
.lo-video.laeuft .lo-video-poster, .lo-video.laeuft .lo-video-start { display: none; }

.lo-faq { display: flex; flex-direction: column; gap: 22px; max-width: 824px; margin-inline: auto; text-align: left; }
.lo-faq .wp-block-details { margin: 0; }

.lo-faq .wp-block-details > summary {
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 17px 34px;
    border: 1px solid transparent;
    border-radius: 20px;
    background: #f0f0f0;
    font-family: var(--lo-titel);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    text-align: left;
    color: var(--lo-schwarz);
    cursor: pointer;
    transition: background-color .3s, color .3s;
}

.lo-faq .wp-block-details > summary::-webkit-details-marker { display: none; }
.lo-faq .wp-block-details > summary::after { content: ""; flex: none; width: 18px; height: 18px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .3s; }
.lo-faq .wp-block-details[open] > summary { background: var(--lo-rot); color: #fff; }
.lo-faq .wp-block-details[open] > summary::after { transform: rotate(180deg); }
.lo-faq .wp-block-details > p { padding: 20px 34px; color: var(--lo-text); }

@media (max-width: 1024px) {
    .lo-faq .wp-block-details > summary { font-size: 20px; }
}

@media (max-width: 767px) {
    .lo-faq .wp-block-details > summary { font-size: 18px; }
}

.lo-js .lo-einblenden { opacity: 0; transform: translateY(40px); transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1); }
.lo-js .lo-einblenden.von-links { transform: translateX(-40px); }
.lo-js .lo-einblenden.von-rechts { transform: translateX(40px); }
.lo-js .lo-einblenden.von-oben { transform: translateY(-40px); }
.lo-js .lo-einblenden.nur-blende { transform: none; }
.lo-js .lo-einblenden.ist-sichtbar { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .lo-js .lo-einblenden { opacity: 1; transform: none; transition: none; }
    .lo-ablauf-fuellung, .lo-ablauf-punkt, .lo-ablauf-inhalt h3, .lo-ablauf-inhalt p { transition: none; }
}

