/* Grok Bot 23.10.2026 18:10, Gman 18:04/18:05: Barsetto-Effekte (ohne GSAP/Lenis), nur transform/opacity */
/* 1) Kippende Blaetter: --bs-p (0..1) setzt js/barsetto-2310.js */
.bs-blatt{transform-origin:50% 0;transform:translate3d(0,calc(var(--bs-p,0) * -24px),0) scale(calc(1 - var(--bs-p,0) * .08)) rotate(calc(var(--bs-p,0) * var(--bs-dreh,2deg)))}
.bs-blatt.bs-aktiv{will-change:transform}
.bs-blatt::after{content:"";position:absolute;inset:0;background:#122e4d;opacity:calc(var(--bs-p,0) * .35);pointer-events:none;z-index:5}
@media (max-width:767px){.bs-blatt{--bs-dreh:1.5deg}}
/* 2) Fortschrittslinie Ablauf */
.schritte.bs-linie{position:relative}
.schritte.bs-linie::before,.schritte.bs-linie::after{content:"";position:absolute;left:-14px;top:0;bottom:0;width:2px;border-radius:2px;pointer-events:none}
.schritte.bs-linie::before{background:rgba(18,46,77,.12)}
.schritte.bs-linie::after{background:#A3421D;transform-origin:50% 0;transform:scaleY(var(--bs-l,0))}
@media (max-width:767px){.schritte.bs-linie::before,.schritte.bs-linie::after{left:-10px}}
@supports (animation-timeline:view()){
 .schritte.bs-linie::after{animation:bs-fuell linear both;animation-timeline:--bs-ablauf;animation-range:cover 20% cover 85%}
 .schritte.bs-linie{view-timeline:--bs-ablauf block}
}
@keyframes bs-fuell{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* 3) Leseleiste */
.bs-lese{position:fixed;left:0;right:0;top:var(--menue-h,64px);height:3px;background:#A3421D;transform-origin:0 50%;transform:scaleX(var(--bs-r,0));z-index:60;pointer-events:none}
@supports (animation-timeline:scroll()){.bs-lese{animation:bs-lesen linear both;animation-timeline:scroll(root block)}}
@keyframes bs-lesen{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* 4) Bilder beim Hineinscrollen */
.bs-bild{opacity:0;transform:translate3d(0,60px,0);transition:opacity 1000ms cubic-bezier(.455,.03,.515,.955),transform 1000ms cubic-bezier(.455,.03,.515,.955);transition-delay:var(--bs-v,0ms)}
@media (max-width:767px){.bs-bild{transform:translate3d(0,60px,0)}}
.bs-bild.bs-da{opacity:1;transform:none}
.bs-bild.bs-ende{will-change:auto;transition-delay:0ms}
@media (prefers-reduced-motion:reduce){
 .bs-blatt{transform:none!important}.bs-blatt::after{display:none}
 .schritte.bs-linie::after{animation:none!important;transform:scaleY(1)}
 .bs-bild{opacity:1!important;transform:none!important;transition:none}
}

/* Runde 23.10. 21:29: Klick-Kreis auf allen Bildkacheln */
a[href]>.bild-rahmen,a[href]>.bx,a.fam-kachel{position:relative}
a[href]>.bild-rahmen::after,a[href]>.bx:not(.wahl)::after,a.fam-kachel::after{content:"";position:absolute;right:10px;bottom:10px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12h12M13 7l5 5-5 5' fill='none' stroke='%23A3421D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;opacity:.8;z-index:3;pointer-events:none;transition:transform .3s ease,opacity .3s ease}
a.fam-kachel .fam-inhalt{right:52px}
@media (hover:hover){a[href]:hover>.bild-rahmen::after,a[href]:hover>.bx::after,a.fam-kachel:hover::after,a[href]:focus-visible>.bild-rahmen::after,a.fam-kachel:focus-visible::after{transform:translateX(3px);opacity:1;background-color:#fff}}
@media (prefers-reduced-motion:reduce){a[href]>.bild-rahmen::after,a[href]>.bx::after,a.fam-kachel::after{transition:none}}

/* 22:53 Gman: kein Kreis, wo Text-Hinweis (.tl) vorhanden */
a[href]:has(.tl)>.bild-rahmen::after,a[href]:has(.tl)>.bx::after,a.fam-kachel:has(.tl)::after{content:none}
a.fam-kachel:has(.tl) .fam-inhalt{right:auto}

/* Handy: Hero-Bild oben, Text darunter (Desktop unveraendert) */
@media (max-width:767px){
.hero:has(>.hero-bild):has(.hero-inhalt){aspect-ratio:auto!important;height:auto!important;min-height:0!important;display:flex;flex-direction:column;background:var(--navy,#122E4D)}
.hero:has(>.hero-bild) .hero-bild{position:relative!important;inset:auto!important;width:100%;aspect-ratio:4/3;flex:none}
.hero:has(>.hero-bild) .hero-bild picture,.hero:has(>.hero-bild) .hero-bild img{position:absolute;inset:0;width:100%;height:100%}
.hero:has(>.hero-bild) .hero-verlauf{display:none}
.hero:has(>.hero-bild) .hero-inhalt{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;padding:28px var(--rand,24px) 40px}
.hero:has(>.hero-bild) .hero-inhalt::before{display:none}
}

/* Handy-Leiste: Pool zusammenstellen + WhatsApp (v2510-77: eine Implementierung fuer .hl-leiste und #leiste, Text max. zwei Zeilen) */
.leiste-tel{flex:0 0 44px;width:44px;height:44px;border-radius:50%;border:2px solid currentColor;display:grid;place-items:center;margin-left:8px;color:inherit}
.leiste-tel svg{width:20px;height:20px;fill:currentColor;stroke:none}
.leiste-tel span{display:none}
.hl-leiste{display:none}
@media (max-width:767px){
.hl-leiste{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(246,241,232,.96);box-shadow:0 -2px 12px rgba(18,46,77,.15);transform:translateY(110%);transition:transform .35s ease}
.hl-leiste.an{transform:none}
.hl-leiste .hl-pille{flex:1;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#A3421D;color:#fff;font-weight:600;text-decoration:none}
.hl-leiste .hl-tel{flex:1 1 0;min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:2px 12px;border-radius:999px;border:2px solid #122E4D;color:#122E4D;font-size:13px;font-weight:600;line-height:1.15;text-align:center;text-decoration:none}
.hl-leiste .hl-tel svg{flex:0 0 18px;width:18px;height:18px;fill:#122E4D;stroke:none}
.hl-leiste .hl-pille{flex:1 1 0;min-width:0;padding:2px 10px;line-height:1.15;text-align:center}
/* v2510-07: kein Platz unter dem Seitenfuss reservieren. Die Leiste blendet sich aus, sobald der Fuss sichtbar ist (barsetto-2310.js). Vorher stand hier padding-bottom:72px auf beigem body = beiger Streifen unter dem Fuss. */
body.hl-platz{padding-bottom:0}
.leiste .leiste-text{display:none}
.leiste .btn{flex:1 1 0;min-width:0;white-space:normal;text-align:center;line-height:1.15}
.leiste .leiste-tel{flex:1 1 0;width:auto;min-height:44px;height:auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:2px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:1.15;text-align:center;text-decoration:none;margin-left:0}
.leiste .leiste-tel svg{flex:0 0 18px;width:18px;height:18px}
.leiste .leiste-tel span{display:inline}
.leiste{justify-content:stretch!important;padding:6px!important;gap:8px!important}
}
@media (prefers-reduced-motion:reduce){.hl-leiste{transition:none}}
/* v2510-80 (GB-Abnahme v79): Handy-Leiste (#leiste, .hl-leiste) nur bis 767 px; ab 768 px aus (kein Tablet-Overlay ueber Kartentext). */
@media (min-width:768px){.leiste,.hl-leiste,#leiste{display:none!important}}

.kt-mehr{display:inline-block;margin-top:10px;color:#A3421D;font-weight:600;font-size:.95em}
a.ock .kt-mehr{display:block;font-size:.85em;margin-top:6px}
a.fam-kachel .kt-mehr{color:#fff;font-size:.9em;margin-top:6px}
/* 23:15 Gman: Text-Hinweis in Fliesstext-Farbe, Hover nur dezente Unterstreichung */
a[href] .tl:not(.tl-hell),a[href] .kt-mehr{color:inherit;opacity:.8;font-weight:500;border-bottom-color:transparent;text-decoration:none}
a[href]:hover .tl:not(.tl-hell),a[href]:hover .kt-mehr{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;border-bottom-color:transparent}
a.fam-kachel .kt-mehr{color:#fff;opacity:.9}
a[href] .tl-pf{color:#A3421D;opacity:1}
a.fam-kachel .tl-pf{color:#fff}
/* 23:2x Gman «bei projekte wie vorher»: Uebersicht .pk hat Text nur fuer Screenreader, daher Kreis wieder an */
#raster .pk a.pk-link>.bild-rahmen::after{content:""}
