/* KONTUR CMS 0.9.0.8
   Globale Typografie ist die einzige Quelle fuer Schriftfamilie, Groesse und
   Schriftstaerke aller redaktionellen CMS-Module. Modul-CSS darf Layout,
   Farbe und Effekte steuern, aber keine eigene Typografie mehr erzwingen. */

/* Schriftfamilien fuer jeden sichtbaren Modultext. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49),
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) *,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) *{
  font-family:var(--cms-font-body,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
}
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(h1,h2,h3,h4,h5,h6,h1 *,h2 *,h3 *,h4 *,h5 *,h6 *),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(h1,h2,h3,h4,h5,h6,h1 *,h2 *,h3 *,h4 *,h5 *,h6 *){
  font-family:var(--cms-font-heading,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
}

/* Haupt-/Hero-Titel */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h1,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h1{
  font-size:clamp(var(--cms-page_title-min,40px),4.7vw,var(--cms-page_title-max,68px))!important;
  font-weight:var(--cms-page_title-weight,600)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
}

/* Modulueberschriften */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h2,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h2{
  font-size:clamp(var(--cms-block_title-min,30px),3.25vw,var(--cms-block_title-max,50px))!important;
  font-weight:var(--cms-block_title-weight,600)!important;
  line-height:1.06!important;
  letter-spacing:-.03em!important;
}

/* Karten-, Slider- und Unterueberschriften */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(h3,h4,h5,h6),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(h3,h4,h5,h6){
  font-size:clamp(var(--cms-card_title-min,22px),2.15vw,var(--cms-card_title-max,34px))!important;
  font-weight:var(--cms-card_title-weight,600)!important;
  line-height:1.14!important;
  letter-spacing:-.025em!important;
}

/* Normale redaktionelle Texte und Formulare innerhalb von Modulen. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(p,li,td,label,input,select,textarea,blockquote),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(p,li,td,label,input,select,textarea,blockquote){
  font-size:clamp(var(--cms-body-min,15px),1.08vw,var(--cms-body-max,18px))!important;
  font-weight:var(--cms-body-weight,400)!important;
  line-height:1.65!important;
}

/* Nicht-semantische Textcontainer, die in bestehenden Modulen Fliesstext sind. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.sep62-body,.ec61-body,.history-scroll-text,.career37-voice-quote p,.career71-review p),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.sep62-body,.ec61-body,.history-scroll-text,.career37-voice-quote p,.career71-review p){
  font-size:clamp(var(--cms-body-min,15px),1.08vw,var(--cms-body-max,18px))!important;
  font-weight:var(--cms-body-weight,400)!important;
  line-height:1.65!important;
}

/* Einleitungen / hervorgehobene Texte. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.large-text,.lead,.cms-lead,.sep62-lead,.career37-hero-lead,.history-scroll-intro-text),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.large-text,.lead,.cms-lead,.sep62-lead,.career37-hero-lead,.history-scroll-intro-text){
  font-size:clamp(var(--cms-lead-min,17px),1.38vw,var(--cms-lead-max,21px))!important;
  font-weight:var(--cms-lead-weight,400)!important;
  line-height:1.62!important;
}

/* Text + Bild ist ein normaler Inhaltsblock. Sein Text folgt deshalb bewusst
   dem globalen Fliesstext und nicht der groesseren Lead-Stufe. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .cms-text-image .large-text,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .cms-text-image .large-text{
  font-size:clamp(var(--cms-body-min,15px),1.08vw,var(--cms-body-max,18px))!important;
  font-weight:var(--cms-body-weight,400)!important;
  line-height:1.65!important;
}

/* Label, Kicker und Eyebrows. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.kicker,[class*="__kicker"],[class*="-kicker"],.eyebrow,[class*="eyebrow"],.date,.person .role,.history-scroll-badge,.request-form-kicker,.ku-value__kicker,.kt42-kicker),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.kicker,[class*="__kicker"],[class*="-kicker"],.eyebrow,[class*="eyebrow"],.date,.person .role,.history-scroll-badge,.request-form-kicker,.ku-value__kicker,.kt42-kicker){
  font-size:clamp(var(--cms-label-min,11px),.76vw,var(--cms-label-max,12px))!important;
  font-weight:var(--cms-label-weight,700)!important;
  line-height:1.2!important;
}

/* Buttons und CTA-Beschriftungen. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.btn,button,.cms-photo-text-slider__button,.kt42-link,.home-capability-stack__link,.support-showcase__copy b,.home-card-preview-button),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.btn,button,.cms-photo-text-slider__button,.kt42-link,.home-capability-stack__link,.support-showcase__copy b,.home-card-preview-button){
  font-size:clamp(var(--cms-button-min,13px),.92vw,var(--cms-button-max,15px))!important;
  font-weight:var(--cms-button-weight,600)!important;
  line-height:1.2!important;
}

/* Kleine Zusatztexte, Tabs, Metaangaben und Bildunterschriften. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(small,figcaption,.mini,[class*="__tab"],[class*="-tab"],.cms-table-note,.cms-bento-gallery-caption strong,.cms-bento-gallery-caption span,.cms-bento-lightbox-copy strong,.cms-bento-lightbox-copy span,.career71-person strong,.career71-person span,.career37-fact>span,.career37-fact strong,.history-scroll-count,.history-scroll-rail-label,.history-scroll-rail-year,.home-card-slide-preview,.home-card-slider-page),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(small,figcaption,.mini,[class*="__tab"],[class*="-tab"],.cms-table-note,.cms-bento-gallery-caption strong,.cms-bento-gallery-caption span,.cms-bento-lightbox-copy strong,.cms-bento-lightbox-copy span,.career71-person strong,.career71-person span,.career37-fact>span,.career37-fact strong,.history-scroll-count,.history-scroll-rail-label,.history-scroll-rail-year,.home-card-slide-preview,.home-card-slider-page){
  font-size:clamp(var(--cms-small-min,11px),.78vw,var(--cms-small-max,13px))!important;
  font-weight:var(--cms-small-weight,500)!important;
  line-height:1.35!important;
}

/* Tabellenkoepfe sind redaktionelle Labels. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) th,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) th{
  font-size:clamp(var(--cms-label-min,11px),.76vw,var(--cms-label-max,12px))!important;
  font-weight:var(--cms-label-weight,700)!important;
  line-height:1.3!important;
}

/* Startseiten-Bildkacheln enthalten technisch H1/H2, sind typografisch aber
   Karten und muessen deshalb die globale Kartenstufe verwenden. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.hp048-card-summary h1,.hp048-card-summary h2,.hp048-card-detail h1,.hp048-card-detail h2),
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) :where(.hp048-card-summary h1,.hp048-card-summary h2,.hp048-card-detail h1,.hp048-card-detail h2){
  font-size:clamp(var(--cms-card_title-min,22px),2.15vw,var(--cms-card_title-max,34px))!important;
  font-weight:var(--cms-card_title-weight,600)!important;
  line-height:1.12!important;
  letter-spacing:-.025em!important;
}

/* Themen-Showcase und Text + Bild nutzen damit exakt dieselben globalen
   Ueberschriften-/Textstufen. Keine modul-eigenen Schriftwerte mehr. */
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__intro h2,
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .cms-text-image h2,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__intro h2,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .cms-text-image h2{
  font-size:clamp(var(--cms-block_title-min,30px),3.25vw,var(--cms-block_title-max,50px))!important;
  font-weight:var(--cms-block_title-weight,600)!important;
}
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__intro p,
body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__copy p,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__intro p,
.preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) .support-showcase__copy p{
  font-size:clamp(var(--cms-body-min,15px),1.08vw,var(--cms-body-max,18px))!important;
  font-weight:var(--cms-body-weight,400)!important;
}

@media (max-width:640px){
  body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h1,
  .preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h1{letter-spacing:-.025em!important}
  body:not(.cms-admin) :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h2,
  .preview :is(.cms-managed-block.cms-managed-block,.cms-text-block49.cms-text-block49) h2{letter-spacing:-.022em!important}
}
