/* One website navigation, independent of the authenticated application shell. */
.public-footer{max-width:1132px;margin:32px auto 0;padding:32px 0 max(48px,env(safe-area-inset-bottom));color:var(--burgundy)}
.public-footer-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #fff;border-radius:32px;background:linear-gradient(135deg,#fffffff0,#fff4f6eb);box-shadow:inset 0 1px 0 #fff,0 12px 36px #64162b12,0 0 0 1px #64162b0c}
@supports(backdrop-filter:blur(24px)){.public-footer-options{background:linear-gradient(135deg,#ffffffb8,#fff1f580);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}}
.public-footer-options a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:68px;padding:14px 12px;border:1px solid transparent;border-radius:23px;font-size:14px;font-weight:750;text-align:center;transition:background .18s,box-shadow .18s,transform .18s}
.public-footer-options svg{width:24px;height:24px;flex:none}
.public-footer-options a:hover{background:#ffffffb3;transform:translateY(-2px)}
.public-footer-options a[aria-current=page]{background:#fff;border-color:#f4dce2;color:var(--red-ink);box-shadow:0 4px 16px #64162b0d}
.public-footer-legal{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;padding:20px 12px 0}
.public-footer-legal a{min-height:44px;display:flex;align-items:center;font-size:13px;color:var(--muted)}
.public-footer-legal a:hover,.public-footer-legal a[aria-current=page]{color:var(--burgundy);text-decoration:underline;text-underline-offset:4px}
.public-footer a:focus-visible{outline:3px solid var(--red);outline-offset:3px}
body.product-host .public-footer{display:none}
@media(max-width:1180px){.public-footer{margin-inline:24px}}
@media(max-width:600px){.public-footer{margin-inline:16px;padding-top:16px}.public-footer-options{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:28px;gap:6px;padding:8px}.public-footer-options a{min-height:72px;padding:12px 8px;gap:9px;font-size:13px;border-radius:20px}.public-footer-legal{gap:0 18px;padding-top:16px}}
@media(prefers-reduced-motion:reduce){.public-footer-options a{transition:none}.public-footer-options a:hover{transform:none}}
@media(prefers-reduced-transparency:reduce){.public-footer-options{background:#fff7f9;backdrop-filter:none;-webkit-backdrop-filter:none}}
.split>*{min-width:0}
.anatomy-notes{min-width:0}
.anatomy-notes article{min-width:0;overflow-wrap:anywhere}
.statbar{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{min-width:0;overflow-wrap:anywhere}
@media(max-width:780px){.statbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.split>.grid{grid-template-columns:minmax(0,1fr)!important}.split h2{overflow-wrap:anywhere}.stat strong{font-size:24px}}

.nav:has(.public-navigation){display:grid;grid-template-columns:1fr auto;height:auto;min-height:88px;padding:12px max(6vw,24px);gap:12px;background:#fffdfbd9;backdrop-filter:blur(18px);border-bottom:1px solid #64162b12}
.nav .public-navigation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;width:100%;max-width:1132px;justify-self:center;grid-column:1/-1;grid-row:2;border-radius:32px;color:var(--burgundy)}
.nav .public-navigation a{min-height:68px;padding:14px 12px;font-size:14px;gap:12px;border-radius:23px;white-space:normal}
.nav .public-navigation svg{width:24px;height:24px}
.public-header-login{grid-row:1;grid-column:2;flex:none;min-height:44px;white-space:nowrap}
.public-header-login:focus-visible,.public-navigation a:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media(max-width:1050px){.nav:has(.public-navigation){min-height:0}.nav .public-navigation{min-height:0}}
.public-header-login.button:hover{background:var(--red-hover);color:#fff}
@media(prefers-reduced-motion:reduce){.nav:has(.public-navigation),.nav .public-navigation{transition:none}}
@media(max-width:1050px){.nav:has(.public-navigation){display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 24px}.nav .public-navigation{grid-row:2;grid-column:1/-1;width:100%;max-width:none}.public-header-login{grid-row:1;grid-column:2}.nav .public-navigation a{flex-direction:column;gap:5px;min-height:60px;font-size:12px;padding:8px 4px}}
@media(max-width:600px){.nav:has(.public-navigation){padding:10px 16px;gap:10px}.nav .brand img{width:40px;height:40px}.nav .public-navigation{border-radius:24px}.nav .public-navigation a{font-size:11px;line-height:1.25;min-height:62px}.nav .public-navigation svg{width:20px;height:20px}}
@media(min-width:1051px){
 .nav:has(.public-navigation){grid-template-columns:auto minmax(0,680px) auto;align-items:center;justify-content:space-between;gap:24px;min-height:80px;padding-block:16px}
 .nav .brand{grid-row:1;grid-column:1;height:48px;align-items:center}
 .nav .brand img{width:48px;height:48px}
 .nav .public-navigation{grid-row:1;grid-column:2;height:48px;padding:4px;gap:4px;border-radius:25px;grid-template-columns:auto auto auto auto}
 .nav .public-navigation a{min-height:0;height:auto;align-self:stretch;padding:8px 12px;gap:8px;border-radius:20px;font-size:13px;white-space:nowrap}
 .nav .public-navigation svg{width:20px;height:20px}
 .nav .public-header-login{grid-row:1;grid-column:3;height:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding-block:0}
}

.public-footer-legal .consent-settings-link{min-height:44px;display:flex;align-items:center;font:inherit;font-size:13px;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;box-shadow:none}.public-footer-legal .consent-settings-link:hover{color:var(--burgundy);text-decoration:underline;text-underline-offset:4px}
/* festl-v368: phones and portrait tablets (≤960px) use the app's „Weitere Informationen“ pattern.
   festl-v370: desktop (>960px) shows every link inline on the same panel as the phone footer (.auth-footer look), one row if it fits, wrapping gracefully otherwise, no expander. */
.public-footer-compact{display:none}
.public-footer-row{box-sizing:border-box;width:fit-content;max-width:100%;margin:24px auto 0;padding:14px 18px 16px;flex-wrap:wrap;gap:2px 20px;background:rgba(255,255,255,.76);border:1px solid rgba(100,22,43,.12);border-radius:24px;box-shadow:0 18px 42px rgba(100,22,43,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.public-footer-row>*{flex:none;white-space:nowrap}
.public-footer-row a,.public-footer-row .consent-settings-link{min-height:38px;color:var(--wine,#64162b);font-size:13px;line-height:1.3;text-decoration:none}.public-footer-row a:hover,.public-footer-row .consent-settings-link:hover,.public-footer-row a[aria-current=page]{color:var(--wine,#64162b);text-decoration:underline;text-underline-offset:4px}
@media(max-width:1180px){.public-footer-row{gap:2px 16px}}
@media(prefers-reduced-transparency:reduce){.public-footer-row{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(max-width:960px){.public-footer-row{display:none}.public-footer-compact{display:block;margin-top:16px}}

/* v529 crisp header: the frosted glass lives on a pseudo-element BEHIND the header content. With backdrop-filter on the
   sticky header itself, Safari composites the logo and labels into the filtered layer and resamples them while scrolling
   (blurred title bar); now only the content behind the bar is blurred. */
header.nav{isolation:isolate;--nav-glass:#fffefaed;background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
header.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--nav-glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:none}
@media(prefers-reduced-transparency:reduce){header.nav::before{background:#fffdfb;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* v544 website header: the logo + Anmelden row is its own position:fixed layer (no transform/clip/opacity/filter/will-change on it
   or any ancestor, and no scroll code touches it). The page gets a matching spacer (--public-header-h, measured on resize only).
   The frosted glass behind the logo row is the header's ::before; the chip row below is its own Liquid Glass layer (shared
   .glass-segment tokens + lens via data-segmented) and is the only thing that clips/fades with the scroll. */
header.nav:has(.public-navigation){position:fixed;top:0;left:0;right:0;z-index:20;margin:0;--nav-glass:#fffdfbd9;border-bottom:0!important;transform:none!important;opacity:1!important;filter:none!important;clip-path:none!important;will-change:auto!important;contain:none!important}
header.nav:has(.public-navigation)::before{border-bottom:1px solid #64162b12}
body:has(header.nav .public-navigation){padding-top:var(--public-header-h,81px)}
html:has(header.nav .public-navigation){scroll-padding-top:var(--public-header-h,81px)}
@media(min-width:1051px){header.nav:has(.public-navigation){padding-top:calc(env(safe-area-inset-top,0px) + 16px)}}
@media(max-width:1050px){
 header.nav:has(.public-navigation){padding-top:calc(env(safe-area-inset-top,0px) + 12px);pointer-events:none}
 header.nav:has(.public-navigation)>*{pointer-events:auto}
 header.nav:has(.public-navigation){row-gap:22px}
 header.nav:has(.public-navigation)::before{bottom:auto;height:calc(100% - var(--public-menu-cut,0px))}
 body:has(header.nav .public-navigation){padding-top:var(--public-header-h,186px)}
 html:has(header.nav .public-navigation){scroll-padding-top:var(--public-row-h,66px)}
 /* the chip row = floating Liquid Glass capsule track (shared FestlGlassSegment): active chip = the shared lens that slides/morphs
    between items, lifts as a magnifier on press and while dragged (drag to switch); brand-red active tint + dark variants come from the shared segment rules */
 header.nav .public-navigation.glass-segment>a{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
 header.nav .public-navigation[aria-hidden=true]{pointer-events:none}
 /* v546: v544 chip design kept; only the slider's glass behaviour. Links behave like the slider's buttons (no iOS callout/link
    drag/selection, no sticky hover lift). The lens keeps the chip's shape and its magnifier feels like the hero slider's on these
    tall chips: the shared lift (1.16 press / ~1.22 drag) is damped via data-lens-lift="1.05" (index.html, read by FestlGlassSegment) to 1.05 / ≤1.11, and the label under the lens magnifies 1.08 instead of 1.14. */
 header.nav .public-navigation.glass-segment>a{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
 header.nav .public-navigation.glass-segment>a:not(.glass-under):hover{transform:none}
 header.nav .public-navigation.glass-segment>.glass-lens{border-radius:23px}
 header.nav .public-navigation.glass-segment.glass-segment-lifted>.glass-under,header.nav .public-navigation.glass-segment>.glass-under{transform:scale(1.08)}
}

@media(max-width:600px){header.nav .public-navigation.glass-segment>.glass-lens{border-radius:20px}header.nav:has(.public-navigation){padding-top:calc(env(safe-area-inset-top,0px) + 10px);row-gap:20px}body:has(header.nav .public-navigation){padding-top:var(--public-header-h,146px)}}
@media(min-width:1051px){header.nav .public-navigation.glass-segment>a{background:transparent!important;border-color:transparent!important;box-shadow:none!important}}
/* v547: Anmelden <-> loading spinner crossfade in the same top-right slot (spinner fades .1s in page-layout.css) */
header.nav .public-header-login{transition:opacity .12s linear,visibility .12s linear,background-color .18s,color .18s}

/* v551: desktop chips stretch to the 48px track (= logo = Anmelden height) with equal insets top/bottom; the lens follows */
@media(min-width:1051px){header.nav .public-navigation.glass-segment>.glass-lens,header.nav .public-navigation.glass-segment>a{border-radius:21px}}
