/* Accent-Token (#FABB00) – wird von den Patch-Regeln unten genutzt und fehlte
   bisher als Variable (rgb(var(--color-accent-rgb)) war dadurch ungueltig). */
:root { --color-accent-rgb: 250 187 0; }

/* TYPO3-Patch: gilt fuer den gesamten RTE-Textbereich (ol/ul werden im RTE gepflegt).
   Nicht in main.css aufnehmen – die wird aus der Demo synchronisiert. */

/* Zaehler-Reihen: richtext.listen_stil = 'counters' -> Wrapper-Klasse uebernimmt die
   .rich-ol--counters-Optik aus der Demo auf die RTE-ol */
.rich-text--counters ol { counter-reset:item; margin-top:2rem; border-top:1px solid #c0ccd6; list-style:none; padding-left:0; }
.rich-text--counters ol li { counter-increment:item; display:flex; align-items:center; gap:1.1rem; padding:.7rem 0; border-bottom:1px solid #c0ccd6; color:rgb(var(--color-primary-rgb)/1); line-height:1.45; }
.rich-text--counters ol li::before { content:counter(item, decimal-leading-zero); flex-shrink:0; width:2.5rem; text-align:center; color:rgb(var(--color-primary-rgb)/1); font-family:Bitter,Arial,sans-serif; font-size:1.3rem; font-weight:700; }
@media (min-width:700px) { .rich-text--counters ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2.5rem; } }

/* Listen-Lead (fett, primaer) – Editor schreibt einen strong-Absatz direkt ueber der Liste */
.rich-text p:has(+ ol), .rich-text p:has(+ ul) { margin-bottom:.35rem; }

/* Prozess-Element */
.process { display:grid; gap:1.5rem; margin-top:2rem; }
.process__step { border-top:3px solid rgb(var(--color-accent-rgb)/1); padding-top:1rem; }
.process__number { color:rgb(var(--color-primary-rgb)/1); font-family:Bitter,Arial,sans-serif; font-size:1.2rem; font-weight:700; }
.process__step h3 { margin:.5rem 0 .75rem; color:rgb(var(--color-primary-rgb)/1); font-size:clamp(1.3rem,2vw,1.7rem); }
@media (min-width:700px) { .process { grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); } }

/* Karten-Raster */
.card-grid { display:grid; gap:1.5rem; margin-top:2rem; list-style:none; padding-left:0; }
.card-grid--cols-2 { grid-template-columns:repeat(auto-fit,minmax(min(22rem,100%),1fr)); }
.card-grid--cols-3 { grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr)); }
.card-grid--cols-4 { grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr)); }
.card-grid__card { display:flex; flex-direction:column; gap:.9rem; padding:1.25rem; background:rgb(var(--color-surface-rgb)/1); border-top:4px solid rgb(var(--color-primary-rgb)/1); }
.card-grid__card h3 { color:rgb(var(--color-primary-rgb)/1); font-size:1.25rem; }
.card-grid__link::after { content:''; position:absolute; inset:0; }
.card-grid__card { position:relative; }

/* Info-Box */
.info-box__body > * + * { margin-top:.85rem; }

/* Quote */
.quote { margin-top:2rem; padding:1.5rem 0 0; border-top:3px solid rgb(var(--color-accent-rgb)/1); }
.quote blockquote { font-family:Bitter,Arial,sans-serif; font-size:clamp(1.3rem,2.2vw,1.8rem); color:rgb(var(--color-primary-rgb)/1); }
.quote figcaption { margin-top:1rem; color:rgb(var(--color-ink-soft-rgb)/1); font-weight:600; }

/* Tabs */
.tabs__nav { display:flex; gap:.5rem; border-bottom:1px solid #c0ccd6; flex-wrap:wrap; }
.tabs__nav button { padding:.7rem 1.1rem; color:rgb(var(--color-primary-rgb)/1); font-weight:700; border-bottom:3px solid transparent; }
.tabs__nav button.is-active { border-bottom-color:rgb(var(--color-accent-rgb)/1); }
.tabs__panel { padding-block:1.25rem; }

/* Tabelle */
.table-wrap { overflow-x:auto; margin-top:1.5rem; }
.table-wrap table { width:100%; border-collapse:collapse; }
.table-wrap th,.table-wrap td { padding:.75rem 1rem; text-align:left; border-bottom:1px solid #c0ccd6; }
.table-wrap thead th { color:rgb(var(--color-primary-rgb)/1); font-weight:700; border-top:3px solid rgb(var(--color-accent-rgb)/1); }


/* Video */
.video-figure video { width:100%; display:block; }
.video-figure__caption { margin-top:.5rem; color:rgb(var(--color-ink-soft-rgb)/1); font-size:.9rem; }

/* Sektion (b13/container gkm_section) */
.gkm-section { padding-block:clamp(2.5rem,2rem + 2.5vw,4rem); }
.gkm-section--space-large { padding-block:clamp(3.5rem,2.5rem + 4vw,6.5rem); }
.gkm-section--space-none { padding-block:0; }
.gkm-section--bg-light { background:rgb(var(--color-secondary-rgb)/1); }
.gkm-section--bg-dark { background:rgb(var(--color-primary-rgb)/1); color:#fff; }
.gkm-section--bg-dark :is(h1,h2,h3,h4) { color:#fff; }
.gkm-section__inner > * + * { margin-top:3rem; }
.gkm-section__inner--content { max-width:calc(46rem + 2 * clamp(1.25rem,0.8rem + 2vw,2.5rem)); }
.gkm-section__inner--full { max-width:96rem; }
/* Aufeinanderfolgende Fliesstext-Bloecke / Fliesstext + Faktenband: halber Abstand (statt 3rem) */
.gkm-section__inner > .rich-text + .rich-text,
.gkm-section__inner > .rich-text + .fact-band-wrap { margin-top:1.5rem; }

/* gleiche Hintergruende hintereinander: Abstand nicht verdoppeln */
.gkm-section--bg-default + .gkm-section--bg-default, .gkm-section--bg-light + .gkm-section--bg-light, .gkm-section--bg-dark + .gkm-section--bg-dark { padding-top:0; }
.gkm-section[id] { scroll-margin-top:5.5rem; }

/* Faktenband: Beschriftung ohne Eyebrow-Balken und hintergrundabhaengige Farben */
.fact-band__label-text { margin:0; font-size:.875rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:rgb(var(--color-primary-rgb)/1); }
.fact-band-wrap .fact-band { padding-block-end:.75rem; }
.fact-band__footnote { margin:.25rem 0 0; font-size:.9rem; color:rgb(var(--color-ink-soft-rgb)/1); }
.gkm-section--bg-dark .fact-band__label-text { color:#fff; }
.gkm-section--bg-dark .fact-band > div { border-left-color:rgba(255,255,255,.3); }
.gkm-section--bg-dark .fact-band dt { color:rgba(255,255,255,.75); }
.gkm-section--bg-dark .fact-band dd { color:rgb(var(--color-accent-rgb)/1); }
.gkm-section--bg-dark .fact-band span, .gkm-section--bg-dark .fact-band__footnote { color:rgba(255,255,255,.8); }

/* Grids (gkm_grid_2/3/4): mobil einspaltig */
.gkm-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; align-items:start; }
.gkm-grid--gap-large { gap:3rem; }
.gkm-grid--align-center { align-items:center; }
.gkm-grid--align-stretch { align-items:stretch; }
.gkm-grid__col { min-width:0; }
.gkm-grid__col > * + * { margin-top:2rem; }
.gkm-grid--align-stretch > .gkm-grid__col { display:flex; flex-direction:column; }
.gkm-grid--align-stretch > .gkm-grid__col > :last-child { flex:1 1 auto; }
@media (max-width:767px) { .gkm-grid--flip > .gkm-grid__col:first-child { order:2; } }
@media (min-width:768px) {
  .gkm-grid--gap-default { column-gap:2.5rem; }
  .gkm-grid--gap-large { column-gap:4rem; }
  .gkm-grid--r-50-50 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gkm-grid--r-33-67 { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
  .gkm-grid--r-67-33 { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
  .gkm-grid--r-25-75 { grid-template-columns:minmax(0,1fr) minmax(0,3fr); }
  .gkm-grid--r-75-25 { grid-template-columns:minmax(0,3fr) minmax(0,1fr); }
}
@media (min-width:640px) { .gkm-grid--3,.gkm-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px) {
  .gkm-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gkm-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* Bühnen (gkm_hero): Hintergrund-Varianten wie bei Sektionen.
   text = schlichtes Band (wie jobs-hero-v2/current-hero der Demo),
   editorial/split = Demo-Markup mit aufgelegter Flaeche. */
.ed-hero.ed-hero--text { grid-template-columns:minmax(0,1fr); }
.gkm-hero--bg-default { background:#fff; }
:is(.gkm-hero--bg-default,.gkm-hero--bg-light) p { color:#474747; }
:is(.gkm-hero--bg-default,.gkm-hero--bg-light) :is(h1,.eyebrow) { color:rgb(var(--color-primary-rgb)/1); }
:is(.gkm-hero--bg-default,.gkm-hero--bg-light) .eyebrow::before { background:rgb(var(--color-primary-rgb)/1); }
:is(.gkm-hero--bg-default,.gkm-hero--bg-light) .bfi-hero__slider-controls :is(.btn-secondary,.slider-dot) { color:rgb(var(--color-primary-rgb)/1); border-color:currentColor; }
.gkm-hero--bg-light { background:rgb(var(--color-secondary-rgb)/1); }
.gkm-hero--bg-dark { background:rgb(var(--color-primary-rgb)/1); color:#fff; }
.gkm-hero--bg-dark :is(h1,h2,h3,h4) { color:#fff; }
.gkm-hero-text.gkm-hero--bg-light { border-bottom:1px solid #c0ccd6; }
.gkm-hero-text.gkm-hero--bg-dark { padding-block:clamp(3.5rem,8vw,6rem); }
.gkm-hero.gkm-hero--bg-light > .ed-hero,
.gkm-hero.gkm-hero--bg-dark > .ed-hero { padding-top:clamp(2rem,4vw,3.5rem); }

/* Richtext-Option „Karte“: weisser Rahmen wie .t-application-layout der Demo */
.gkm-card { padding:2rem; background:#fff; border:1px solid #c0ccd6; }
/* check-list bekommt den Einzug von .rich-text ul nicht */
.rich-text ul.check-list { padding-left:0; }

.gkm-card .check-list { margin-top:1rem; }
.gkm-card > p:first-child { margin-top:0; }
/* Liste als einziges/erstes Element in der Karte: kein Abstand nach oben */
.gkm-card > ul:first-child,
.gkm-card > ol:first-child,
.gkm-card > ul.check-list:only-child,
.gkm-card > ol.check-list:only-child { margin-top:0; }

/* Hinweis mit gelbem Strich wird per RTE-Stil als .t-career__closing gesetzt (Demo-CSS) */

/* Iconliste auf hellblauer Sektion: Icon-Kasten bleibt weiss (Demo-Standard) */
.gkm-section--bg-light .icon-lines__icon { background:#fff; }

/* Iconliste auf dunkler Sektion: Kasten weiss, Icon primaerblau,
   Text weiss, Linien dezenter */
.gkm-section--bg-dark .icon-lines__icon { background:#fff; color:rgb(var(--color-primary-rgb)/1); }
.gkm-section--bg-dark .icon-lines p { color:#fff; }
.gkm-section--bg-dark .icon-lines, .gkm-section--bg-dark .icon-lines li { border-color:rgba(255,255,255,.25); }

/* Feste Spaltenanzahl fuer Kontakt-/Social-Card-Grids (Option im Element) */
@media (min-width:768px) {
  .contact-card-grid--cols-2, .social-card-grid--cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-card-grid--cols-3, .social-card-grid--cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .contact-card-grid--cols-4, .social-card-grid--cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1024px) {
  .contact-card-grid--cols-4, .social-card-grid--cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* h3 im Fliesstext: Optik wie .t-pathways h3 */
.rich-text h3, .gkm-card h3 { margin:.6rem 0 1rem; color:rgb(var(--color-primary-rgb)/1); font-size:clamp(1.3rem,2vw,1.7rem); }

/* Grid direkt nach einer Ueberschrift: kein zusaetzlicher Abstand */
.gkm-section__inner > div:has(h2, h3) + .gkm-grid { margin-top:0; }

/* Bild-Element */
.gkm-image img { max-width:100%; height:auto; }
.gkm-image--small img { max-height:7rem; width:auto; }
.gkm-image figcaption { margin-top:.5rem; color:#5f5f5f; font-size:.9rem; }

/* Link-Icons im Fliesstext je Linktyp (Icon rechts vom Link).
   Externe: eigene Domains ausnehmen. Icons: Icons/ *.svg als Mask. */
.rich-text a[href^="mailto:"]::after,
.rich-text a[href^="http"]:not([href*="gkm-relaunch.lindner-steffen.de"]):not([href*="gkm-typo3.ddev.site"]):not([href*="gk.de"])::after,
.rich-text a[href*="/fileadmin/"]::after,
.rich-text a[href$=".pdf"]::after,
.rich-text a[href^="/"]:not([href*="/fileadmin/"]):not([href$=".pdf"])::after {
    content:""; display:inline-block; width:.85em; height:.85em; margin-left:.3em;
    background:currentColor; vertical-align:-.08em;
    -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat;
}
.rich-text a[href^="mailto:"]::after { -webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M28,6H4A2,2,0,0,0,2,8V24a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6ZM25.8,8,16,14.78,6.2,8ZM4,24V8.91l11.43,7.91a1,1,0,0,0,1.14,0L28,8.91V24Z"/></svg>'); mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M28,6H4A2,2,0,0,0,2,8V24a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6ZM25.8,8,16,14.78,6.2,8ZM4,24V8.91l11.43,7.91a1,1,0,0,0,1.14,0L28,8.91V24Z"/></svg>'); }
.rich-text a[href^="http"]:not([href*="gkm-relaunch.lindner-steffen.de"]):not([href*="gkm-typo3.ddev.site"]):not([href*="gk.de"]):not([href*="/fileadmin/"])::after { -webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M26,28H6a2.0027,2.0027,0,0,1-2-2V6A2.0027,2.0027,0,0,1,6,4H16V6H6V26H26V16h2V26A2.0027,2.0027,0,0,1,26,28Z"/><path d="M20 2 20 4 26.586 4 18 12.586 19.414 14 28 5.414 28 12 30 12 30 2 20 2z"/></svg>'); mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M26,28H6a2.0027,2.0027,0,0,1-2-2V6A2.0027,2.0027,0,0,1,6,4H16V6H6V26H26V16h2V26A2.0027,2.0027,0,0,1,26,28Z"/><path d="M20 2 20 4 26.586 4 18 12.586 19.414 14 28 5.414 28 12 30 12 30 2 20 2z"/></svg>'); }
.rich-text a[href*="/fileadmin/"]::after, .rich-text a[href$=".pdf"]::after { -webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1.9,2,2,2h16c1.1,0,2-.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3zM18,4.4l5.6,5.6H18V4.4zM24,28H8V4h8v6c0,1.1.9,2,2,2h6V28z"/><path d="M10 22H22V24H10z"/><path d="M10 16H22V18H10z"/></svg>'); mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1.9,2,2,2h16c1.1,0,2-.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3zM18,4.4l5.6,5.6H18V4.4zM24,28H8V4h8v6c0,1.1.9,2,2,2h6V28z"/><path d="M10 22H22V24H10z"/><path d="M10 16H22V18H10z"/></svg>'); }
.rich-text a[href^="/"]:not([href*="/fileadmin/"]):not([href$=".pdf"])::after { -webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6z"/></svg>'); mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6z"/></svg>'); }

/* Mega-Menü: optionale Felder aus den Seiteneigenschaften */
.mega-panel__grid--groups-only { grid-template-columns:minmax(0,1fr); }
.mega-panel__headline { margin-top:.5rem; color:rgb(var(--color-primary-rgb)/1); font-size:clamp(1.25rem,1.8vw,1.6rem); line-height:1.2; }
.mega-panel__connect { margin-top:1.75rem; }
.mega-panel__connect a:focus-visible { outline:3px solid rgb(var(--color-accent-rgb)/1); outline-offset:-3px; }
.mega-jobs--no-apply { grid-template-columns:minmax(0,1fr); }

/* Buttons im Fliesstext (RTE-Stile „Button gefuellt/Umriss“) */
.gkm-btn, a.gkm-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1.4rem; font-weight:600; text-decoration:none; background:rgb(var(--color-primary-rgb)/1); color:#fff; }
.gkm-btn:hover { background:rgb(var(--color-primary-hover-rgb)/1); }
.gkm-btn--outline, a.gkm-btn--outline { display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1.4rem; font-weight:600; text-decoration:none; border:2px solid rgb(var(--color-primary-rgb)/1); color:rgb(var(--color-primary-rgb)/1); background:transparent; }
.on-primary .gkm-btn, .gkm-section--bg-dark .gkm-btn { background:#fabb00; color:rgb(var(--color-primary-rgb)/1); }
.on-primary .gkm-btn--outline, .gkm-section--bg-dark .gkm-btn--outline { border-color:#fff; color:#fff; }

/* Spalten fuer Prozess/Teaser/Iconbox */
.tile-grid:is(.gkm-teaser--cols-2, .gkm-teaser--cols-3, .gkm-teaser--cols-4) { padding-inline:0; }
@media (min-width:640px) { .gkm-process--cols-2, .gkm-teaser--cols-2, .gkm-iconbox--cols-2, .gkm-linkcards--cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:768px) { .gkm-process--cols-3, .gkm-teaser--cols-3, .gkm-iconbox--cols-3, .gkm-linkcards--cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); } .gkm-process--cols-4, .gkm-teaser--cols-4, .gkm-iconbox--cols-4, .gkm-linkcards--cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px) { .gkm-process--cols-4, .gkm-teaser--cols-4, .gkm-iconbox--cols-4, .gkm-linkcards--cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* News-Flyout (gkm/news): Detail-Panel von rechts — mobil vollflaechig,
   ab lg 80 % Breite. TYPO3-only, daher hier statt in der Demo-main.css. */
.news-flyout { position:fixed; top:0; right:0; bottom:0; z-index:70; width:100%; display:flex; flex-direction:column; background:#fff; border-left:1px solid #c0ccd6; box-shadow:-12px 0 32px rgb(0 49 81/.18); }
.news-flyout__bar { margin:0 auto; width:100%; max-width:64rem; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #c0ccd6; padding:1rem 1.5rem; }
.news-flyout__body { flex:1; overflow-y:auto; padding:1.5rem; }
@media (min-width:1024px) { .news-flyout { width:80%; } }

/* News-/Events-Flyout: Split-Header container-relativ statt viewport-relativ.
   .split-hero__copy zieht sonst calc(50vw - 40rem) — im 80%-Flyout zu eng. */
.news-flyout .split-hero__copy { margin-left:0; margin-right:0; padding:clamp(1.5rem,4vw,3rem); }
.news-flyout .split-hero__image { min-width:0; align-self:stretch; }
.news-flyout .split-hero__image img { min-height:0; height:100%; aspect-ratio:16/9; object-fit:cover; }
@media (min-width:900px) { .news-flyout .split-hero__image img { min-height:0; aspect-ratio:16/9; } }

/* Split-Header im Flyout: hellblaue Flaeche randlos (Full-Bleed),
   Copy bleibt auf der Content-Spalte (max-w-5xl) ausgerichtet. */
.news-flyout { container-type: inline-size; }
.news-flyout .detail-bleed { margin: -1.5rem -1.5rem 0; }
.news-flyout .detail-bleed .split-hero__copy {
  padding-left: max(1.5rem, calc((100cqw - 67rem) / 2 + 1.5rem));
}

/* Events-Flyout: Facts bleiben ab 1024px zweispaltig (Standard: auto-fit 4er). */
@media (min-width:1024px) {
  .news-flyout .detail-facts--2col { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .news-flyout .detail-facts--2col li { border-right:0; border-bottom:1px solid #c0ccd6; }
  .news-flyout .detail-facts--2col li:nth-child(odd) { border-right:1px solid #c0ccd6; }
  .news-flyout .detail-facts--2col li:nth-last-child(-n+2) { border-bottom:0; }
}

/* Flyout aus dunkler Buehne (career-hero): Textfarbe unabhaengig vom Kontext. */
.news-flyout { color: rgb(71 71 71); }
.news-flyout .eyebrow,
.news-flyout .split-hero__copy h1 { color: rgb(var(--color-primary-rgb)); }
/* Buehnen-h1 (main.css clamp 2rem–3.4rem) schlaegt die 2xl-Utility – im Flyout-Detail kleiner. */
.news-flyout .split-hero__copy h1 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.75rem); line-height: 1.25; }

/* Flyout muss ueber dem Menue (z-index:80) liegen. */
.scrim { z-index: 85; }
.news-flyout { z-index: 90; }

/* Alle Layer-Panels muessen ueber dem Scrim (85) liegen. */
.video-dialog, .job-flyout, .apply-drawer, .watchlist-dialog, .element-detail-panel, .icon-sel-dialog { z-index: 90; }

/* Job-Layer wie News/Events: mobil 100%, ab sm 80% rechts angedockt. */
@media (min-width: 640px) {
  .job-flyout { left:auto; right:0; width:80%; border-left:1px solid #c0ccd6; box-shadow:-12px 0 32px rgb(0 49 81/.18); }
}

/* Dunkle Sections: helle Basisfarbe fuer Fliesstext. */
.on-primary { color: #fff; }
.on-primary .text-ink { color: #fff; }

/* Helle Karten-Container behalten dunkle Typo. */
.on-primary .bg-surface, .on-primary .card-link, .on-primary .bg-white { color: rgb(71 71 71); }
.on-primary .bg-surface .text-ink, .on-primary .card-link .text-ink, .on-primary .bg-white .text-ink { color: rgb(71 71 71); }
.on-primary .rich-text { color: #fff; }
.on-primary .check-list, .on-primary .experience-report__person { color: #fff; }
.on-primary .check-list, .on-primary .check-list li, .on-primary figcaption, .on-primary .experience-report__person { color: #fff; }

/* ===== Dunkle Sections: Farbschema vollstaendig ===== */

/* Helle Karten behalten dunkle Typo + primaere Headlines. */
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) { color: rgb(71 71 71); }
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) :is(h1,h2,h3,h4,h5,h6,.tile-card__title) { color: rgb(var(--color-primary-rgb)); }
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) :is(.text-ink, .text-primary, .eyebrow, p, li, span, small, strong, summary) { color: inherit; }
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) .eyebrow,
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) .text-primary,
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) .link-list__arrow { color: rgb(var(--color-primary-rgb)); }
.on-primary :is(.bg-surface, .card-link, .panel, .tile-card, .info-box, .experience-report, .contact-card) .rich-text { color: rgb(71 71 71); }

/* Elemente direkt auf dunkel: weisse Typo. */
.on-primary .download-list :is(.download-list__link, .download-list__trigger),
.on-primary .acc-trigger,
.on-primary .slider-dot,
.on-primary [data-slider-prev],
.on-primary [data-slider-next],
.on-primary .experience-report__person p { color: #fff; }

/* strong im RTE: auf dunklen Sections weiss (main.css setzt text-ink). */
.on-primary .rich-text strong { color: #fff; }

/* RTE-Links: weiss mit gelber Unterstreichung. */
.on-primary .rich-text a { color: #fff; text-decoration-color: rgb(var(--color-accent-rgb)); }

/* Checklisten-Marker gelb. */
.on-primary .check-list li::before { color: rgb(var(--color-accent-rgb)); border-color: rgb(var(--color-accent-rgb)); background-color: rgb(var(--color-accent-rgb)); }

/* Link-Liste: Highlight hellblau, Rest weiss. */
.on-primary .link-list__item a { color: #fff; }
.on-primary .link-list__item--primary a { background: rgb(var(--color-surface-rgb, 218 236 247)); color: rgb(71 71 71); }
.on-primary .link-list__item--primary strong { color: rgb(var(--color-primary-rgb)); }

/* Checklisten-Marker gelb (Text + evtl. Rahmen). */
.on-primary ul.check-list li::before { color: rgb(var(--color-accent-rgb)); border-color: rgb(var(--color-accent-rgb)); }

/* btn-text in hellen Karten: dunkelblau statt weiss. */
.on-primary :is(.bg-surface, .card-link, .panel) .btn-text { color: rgb(var(--color-primary-rgb)); }

/* Downloadliste komplett weiss auf dunkel. */
.on-primary .download-list :is(strong, small, .download-list__meta, .download-list__icon) { color: #fff; }

/* Zitat-Icon in Primaerblau. */
.on-primary .quote-card__icon { color: rgb(var(--color-primary-rgb)); }

/* experience-report: Person-Text dunkel wie Headline. */
.on-primary .experience-report__person p { color: rgb(71 71 71); }
.on-primary .tile-card__action { color: rgb(var(--color-primary-rgb)); }

/* Teasergrid auf dunkel: normal = helle Karte mit blauer Headline/Link. */
.on-primary .teaser-card :is(h3, .teaser-card__title) { color: rgb(var(--color-primary-rgb)); }
.on-primary .teaser-card :is(p, .teaser-card__teaser) { color: rgb(71 71 71); }
.on-primary .teaser-card :is(a, .teaser-card__action, .teaser-card__link, .btn-text) { color: rgb(var(--color-primary-rgb)); }
/* Flip-Teaser: Eyebrow + Rueckseite weiss. */
.on-primary .teaser-flip .eyebrow,
.on-primary .teaser-flip .teaser-flip__back :is(p, .teaser-card__teaser) { color: #fff; }

/* Linkliste auf dunkel: Hover hell, Text dunkelblau (optisch wie Highlight-Item). */
.on-primary .link-list__item a:hover { color: rgb(var(--color-primary-rgb)); }
.on-primary .link-list__item a:hover small { color: rgb(71 71 71); }
.on-primary .link-list__item a:hover .link-list__arrow { color: rgb(var(--color-primary-rgb)); transform: translateX(4px); }
/* Fokus ohne Hover: Hintergrund bleibt dunkel, Text bleibt accent. */
.on-primary .link-list__item a:focus { color: rgb(var(--color-accent-rgb)); }
.on-primary .link-list__item a:focus .link-list__arrow { color: rgb(var(--color-accent-rgb)); }

/* Teaser-Flip: Eyebrow auf heller Vorderseite blau (Rueckseite bleibt weiss). */
.on-primary .teaser-flip .teaser-flip__front .eyebrow { color: rgb(var(--color-primary-rgb)); }
.on-primary .teaser-flip .teaser-flip__front :is(h3, .teaser-card__title) { color: rgb(var(--color-primary-rgb)); }
.on-primary .teaser-flip .teaser-flip__front :is(p, .teaser-card__teaser) { color: rgb(71 71 71); }

/* Linklist: Hinweiszeilen lesbar machen. */
.on-primary .link-list__item small { color: rgb(210 220 230); }
.on-primary .link-list__item--primary small { color: rgb(71 71 71); }
.on-primary .link-list__item--primary a:hover :is(strong, small) { color: rgb(var(--color-primary-rgb)); }

/* Checklisten-Marker gelb – alle Varianten abdecken. */
.on-primary .check-list li::marker { color: rgb(var(--color-accent-rgb)); }
.on-primary .check-list li::before { color: rgb(var(--color-accent-rgb)); border-color: rgb(var(--color-accent-rgb)); content: '✓'; font-weight: 700; }
