/* Global V9 palette harmonisation for all non-home pages. */
:root{--bg:#E0E1DD!important;--surface:#E0E1DD!important;--surface-2:#778DA9!important;--navy:#0D1B2A!important;--navy-2:#1B263B!important;--navy-3:#415A77!important;--text:#0D1B2A!important;--muted:#415A77!important;--line:rgba(65,90,119,.22)!important;--blue:#415A77!important;--blue-2:#778DA9!important;--cyan:#E0E1DD!important}
body:not(.home){background:#E0E1DD;color:#0D1B2A}.site-header,.final-site-header{background:rgba(13,27,42,.82)!important;border-color:rgba(224,225,221,.12)!important;backdrop-filter:blur(22px) saturate(125%)}.final-site-nav{background:rgba(13,27,42,.96)!important}.brand-copy strong,.brand-copy small,.final-site-header a,.final-site-header button{color:#E0E1DD}.site-map-count{color:rgba(224,225,221,.58)!important}.final-store-btn,.btn-primary{background:#E0E1DD!important;color:#0D1B2A!important;border-color:#E0E1DD!important}.btn-ghost{border-color:rgba(65,90,119,.35)!important;color:#0D1B2A!important;background:rgba(224,225,221,.35)!important}.inner-hero,.pg2-inner-hero{background:linear-gradient(145deg,#0D1B2A,#1B263B)!important;color:#E0E1DD!important}.inner-hero p,.pg2-inner-hero p,.inner-hero .breadcrumb,.pg2-inner-hero .breadcrumb{color:rgba(224,225,221,.66)!important}.inner-hero .eyebrow,.pg2-inner-hero .eyebrow{color:#778DA9!important}.inner-orb,.tutorial-orb{background:radial-gradient(circle,rgba(119,141,169,.25),transparent 68%)!important}.inner-law-mark,.pg2-inner-symbol{color:rgba(224,225,221,.06)!important}.section-soft-blue,.section-soft-purple,.privacy-plain-section,.appstore-mini-section{background:rgba(119,141,169,.12)!important}.section-contrast{background:#1B263B!important;color:#E0E1DD!important}.section-contrast p{color:rgba(224,225,221,.66)!important}.eyebrow{color:#415A77!important}.eyebrow:before{background:#778DA9!important}.function-badge.blue,.function-badge.purple,.function-badge.red,.function-badge.orange{background:rgba(119,141,169,.18)!important;color:#415A77!important}.function-explainer,.function-duo-card,.plain-feature,.resource-card,.privacy-choice,.privacy-plain-card,.faq-item,.final-contact-links>a,.legal-header-card,.legal-end-card,.privacy-hero-card,.contact-tip{background:rgba(224,225,221,.64)!important;border-color:rgba(65,90,119,.2)!important;box-shadow:0 18px 50px rgba(13,27,42,.08)!important}.function-visual-wide,.tutorial-card,.service-visual,.appstore-card{background:linear-gradient(135deg,#1B263B,#0D1B2A)!important;color:#E0E1DD!important}.function-visual-wide p,.tutorial-card p,.service-visual p,.appstore-card p{color:rgba(224,225,221,.65)!important}.mini-label,.resource-icon,.privacy-choice-icon{color:#415A77!important}.training-showcase{background:#0D1B2A!important;color:#E0E1DD!important}.training-showcase .muted,.training-showcase p{color:rgba(224,225,221,.64)!important}.training-points>div{border-color:rgba(224,225,221,.12)!important}.transfer-flow>div,.legal-note-blue,.dummy-note{background:rgba(119,141,169,.12)!important;border-color:rgba(65,90,119,.22)!important;color:#0D1B2A!important}.quick-jump{background:rgba(224,225,221,.74)!important;border-color:rgba(65,90,119,.22)!important}.quick-jump a{background:rgba(119,141,169,.12)!important;color:#0D1B2A!important}.side-nav{border-color:rgba(65,90,119,.18)!important}.side-nav a{color:#415A77!important}.side-nav a:hover{background:rgba(119,141,169,.12)!important;color:#0D1B2A!important}.legal-content h2{color:#0D1B2A!important}.legal-content a{color:#415A77!important}.legal-critical-banner{background:#1B263B!important;border-color:rgba(224,225,221,.12)!important;color:#E0E1DD!important}.legal-critical-banner p,.legal-critical-banner a{color:rgba(224,225,221,.72)!important}.apple-credit{background:rgba(119,141,169,.12)!important;border-color:rgba(65,90,119,.2)!important}.site-footer,.final-footer{background:#0D1B2A!important;color:#E0E1DD!important}.final-footer p,.final-footer small,.final-footer .footer-bottom{color:rgba(224,225,221,.6)!important}.final-footer a{color:#E0E1DD}.cookie-consent-card{background:#1B263B!important;color:#E0E1DD!important;border-color:rgba(224,225,221,.15)!important}.cookie-consent-card p{color:rgba(224,225,221,.64)!important}.cookie-category{border-color:rgba(224,225,221,.12)!important;background:rgba(13,27,42,.3)!important}.cookie-btn-primary{background:#E0E1DD!important;color:#0D1B2A!important}.cookie-btn-secondary,.cookie-btn-ghost{border-color:rgba(224,225,221,.2)!important;color:#E0E1DD!important}.page-progress i{background:#778DA9!important}

/* V8 global contrast audit: keep every text role on an AA-capable palette pairing. */
body:not(.home){color:#0D1B2A!important}
body:not(.home) main p,body:not(.home) main li,body:not(.home) main dd,body:not(.home) main .muted{color:#415A77!important}
body:not(.home) main h1,body:not(.home) main h2,body:not(.home) main h3,body:not(.home) main h4,body:not(.home) main strong{color:#0D1B2A}
body:not(.home) .inner-hero p,body:not(.home) .pg2-inner-hero p,body:not(.home) .inner-hero .breadcrumb,body:not(.home) .pg2-inner-hero .breadcrumb,
body:not(.home) .section-contrast p,body:not(.home) .section-contrast li,
body:not(.home) .function-visual-wide p,body:not(.home) .function-visual-wide li,
body:not(.home) .tutorial-card p,body:not(.home) .tutorial-card li,
body:not(.home) .service-visual p,body:not(.home) .service-visual li,
body:not(.home) .appstore-card p,body:not(.home) .appstore-card li,
body:not(.home) .training-showcase p,body:not(.home) .training-showcase li,
body:not(.home) .legal-critical-banner p,body:not(.home) .legal-critical-banner li,
body:not(.home) .cookie-consent-card p,body:not(.home) .cookie-consent-card li{color:rgba(224,225,221,.88)!important}
body:not(.home) .section-contrast h1,body:not(.home) .section-contrast h2,body:not(.home) .section-contrast h3,
body:not(.home) .function-visual-wide h1,body:not(.home) .function-visual-wide h2,body:not(.home) .function-visual-wide h3,
body:not(.home) .tutorial-card h1,body:not(.home) .tutorial-card h2,body:not(.home) .tutorial-card h3,
body:not(.home) .service-visual h1,body:not(.home) .service-visual h2,body:not(.home) .service-visual h3,
body:not(.home) .appstore-card h1,body:not(.home) .appstore-card h2,body:not(.home) .appstore-card h3,
body:not(.home) .training-showcase h1,body:not(.home) .training-showcase h2,body:not(.home) .training-showcase h3,
body:not(.home) .legal-critical-banner h1,body:not(.home) .legal-critical-banner h2,body:not(.home) .legal-critical-banner h3{color:#E0E1DD!important}
body:not(.home) .inner-hero .eyebrow,body:not(.home) .pg2-inner-hero .eyebrow{color:#E0E1DD!important;opacity:.9}
.final-footer p,.final-footer small,.final-footer .footer-bottom{color:rgba(224,225,221,.82)!important}.site-map-count{color:rgba(224,225,221,.8)!important}.cookie-consent-card p{color:rgba(224,225,221,.88)!important}

/* V8.2 navigation + secondary-copy readability audit */
@media (min-width:821px){
  .final-site-nav a,.final-site-nav a.legal-link{color:#E0E1DD!important;opacity:.94!important;font-weight:850!important;text-shadow:0 1px 12px rgba(13,27,42,.22)}
  .final-site-nav a .app-symbol{opacity:.92!important}
  .final-site-nav a:hover,.final-site-nav a.active{color:#fff!important;opacity:1!important}
  .final-brand .brand-copy small{color:rgba(224,225,221,.88)!important}
}
.final-brand .brand-copy strong{color:#E0E1DD!important}.final-menu-btn{color:#E0E1DD!important}
body:not(.home) main .mini-label,body:not(.home) main small,body:not(.home) main .resource-meta{color:#415A77!important}
body:not(.home) .section-contrast small,body:not(.home) .training-showcase small,body:not(.home) .legal-critical-banner small{color:rgba(224,225,221,.84)!important}

/* V9 cinematic-chrome coordination fixes: these two components keep their own
   text-color rule in cinematic.css (written for that component's original
   light-card design), but this layer re-themes their background/card tint.
   Without an explicit override here the inherited dark-on-light text color
   from cinematic.css renders against the new background and fails contrast:
   - .legal-critical-banner b was #5a3704 (dark brown) against the #1B263B
     dark-navy background this file assigns the banner: ~1.4:1 contrast.
   - .apple-credit p was #607183 against the soft-blue-tinted card background
     this file assigns .apple-credit: ~3.5:1, under the 4.5:1 AA minimum. */
body:not(.home) .legal-critical-banner b{color:#E0E1DD!important}
body:not(.home) .apple-credit p{color:#4c5c6e!important}

/* V9.1 follow-up fixes from visual review. */

/* legal-critical-banner paragraph: make it fully legible white, not translucent. */
body:not(.home) .legal-critical-banner p{color:#E0E1DD!important}

/* legal-end-card: this card keeps its ORIGINAL dark-navy-card white text
   colors from style.css (color:#fff, p:#b8cadd, a:#79c8ff) — but the block
   above already forces its background to light paper. That leaves white
   text on a near-white card. Force dark text to match the new background. */
body:not(.home) .legal-end-card,body:not(.home) .legal-end-card b{color:#0D1B2A!important}
body:not(.home) .legal-end-card p{color:#415A77!important}
body:not(.home) .legal-end-card a{color:#0a63b8!important}

/* Same bug, two more places: .privacy-choice.app (the "App-Datenschutz"
   featured card on the Datenschutz landing page) and .resource-card-accent
   (the accent tile on Ressourcen) are dark-card variants whose background
   this file also force-lightens above, while their white/light-blue text
   from style.css was left untouched. */
body:not(.home) .privacy-choice.app,body:not(.home) .privacy-choice.app h3{color:#0D1B2A!important}
body:not(.home) .privacy-choice.app p{color:#415A77!important}
body:not(.home) .privacy-choice-featured.app span:nth-child(2)>small{color:#415A77!important}
body:not(.home) .privacy-choice-featured.app b{color:#0a63b8!important}
body:not(.home) .privacy-choice.app .privacy-choice-icon{background:rgba(65,90,119,.15)!important;border-color:rgba(65,90,119,.25)!important;color:#415A77!important}
body:not(.home) .resource-card-accent,body:not(.home) .resource-card-accent h3{color:#0D1B2A!important}
body:not(.home) .resource-card-accent p{color:#415A77!important}
body:not(.home) .resource-card-accent .resource-icon{background:rgba(65,90,119,.15)!important;color:#415A77!important}

/* .cta (page-dienstleistungen.php "Alle Funktionen im Überblick" banner) is an
   intentionally dark navy card with white text in style.css — but the global
   "main h1-h4/p" contrast-audit rules further up this file unintentionally
   also match .cta's own heading/paragraph/eyebrow and darken them to navy,
   producing navy-on-navy text. Restore white/near-white text here. */
body:not(.home) .cta,body:not(.home) .cta h2{color:#fff!important}
body:not(.home) .cta .eyebrow{color:#E0E1DD!important;opacity:.85}
body:not(.home) .cta p{color:rgba(224,225,221,.85)!important}

/* .training-points chips (page-funktionen.php "Übungen & Szenarien") have a
   solid white card background from style.css, but their bold labels and
   sub-text inherit .training-showcase's white section text color, making
   them invisible on the white chip. Force dark text on the chip itself. */
body:not(.home) .training-points b{color:#0D1B2A!important}
body:not(.home) .training-points small{color:#415A77!important}
