/* ==========================================================================
   Nimbus IT – Typografie- und Editorial-Schicht (Phase 23)
   Einheitliche Lesenorm für Startseite und alle Unterseiten. Nur Textsatz und Lesebreiten.
   Blocksatz wird nicht global gesetzt, sondern von nimbus-editorial.js nur dort aktiviert, wo er sauber aussieht.
   ========================================================================== */
:root { --measure: 68ch; --measure-max: 72ch; --measure-lead: 58ch; --lh-body: 1.65; }

/* ---- Pauschalen Blocksatz des Originals abschalten (Startseite und Unterseiten) ---- */
body.polaris-home-v5 main .section p:not(.eyebrow), body.polaris-home-v5 main .one67-home-lead, body.polaris-home-v5 main .partners-v7-note, body.polaris-home-v5 main .team-v7-foundations__copy p,
body.nimbus-subpage-final .service-v6-lead, body.nimbus-subpage-final .service-v6-overview p, body.nimbus-subpage-final .service-v6-head p,
body.nimbus-subpage-final .landing-hero-copy > p, body.nimbus-subpage-final .landing-section-header > p, body.nimbus-subpage-final .service-v53-copy > p { text-align: left; text-align-last: auto; hyphens: manual; -webkit-hyphens: manual; }
/* gezielter Blocksatz (vom Skript gesetzt, nur bei ≥ 620 px Spaltenbreite und ohne große Wortlücken) */
p.sig-just { text-align: justify !important; text-align-last: left !important; hyphens: auto !important; -webkit-hyphens: auto !important; hyphenate-limit-chars: 6 3 3; }

/* ---- Zeilenfall ---- */
main :is(h1, h2, h3) { text-wrap: balance; }
main :is(p, li, dd, figcaption, blockquote) { text-wrap: pretty; }
main :is(p, li, h1, h2, h3, dd) { overflow-wrap: break-word; }

/* ---- Lesebreite (hohe Spezifität, weil die Original-Schichten feste px-Werte mit !important setzen) ---- */
html body.polaris-v8 main p { max-width: var(--measure) !important; }
html body.polaris-v8 .legal-document-v76 p, html body.polaris-v8 .legal-document-v76 li { max-width: var(--measure-max) !important; }
/* Intro-/Leadtexte 52–62ch */
html body.polaris-v8 main .hero-text, html body.polaris-v8 main .section-lead, html body.polaris-v8 main .service-v6-lead, html body.polaris-v8 main .landing-hero-copy > p, html body.polaris-v8 main .tcd-lead, html body.polaris-v8 main .section-heading > p:not(.eyebrow), html body.polaris-v8 main .section-heading-v7 > p:not(.eyebrow),
html body.polaris-v8 main .team-v7-hero-copy > p:not(.eyebrow), html body.polaris-v8 main .contact-v7-copy > p:not(.eyebrow), html body.polaris-v8 main .threat-head p:not(.eyebrow), html body.polaris-v8 main .partners-v7-head > p:not(.eyebrow), html body.polaris-v8 main .section-intro p:not(.eyebrow), html body.polaris-v8 main .standards-head p:not(.eyebrow),
html body.polaris-v8 main .insight-head p:not(.eyebrow), html body.polaris-v8 main .framework-orientation__intro p:not(.eyebrow), html body.polaris-v8 main .one67-home-lead { max-width: var(--measure-lead) !important; }
/* längere redaktionelle Fließtexte 68ch */
html body.polaris-v8 main .about-copy p:not(.eyebrow), html body.polaris-v8 main .one67-section-heading p, html body.polaris-v8 main .service-v6-head p:not(.eyebrow), html body.polaris-v8 main .landing-section-header > p:not(.eyebrow), html body.polaris-v8 main .service-v53-copy > p, html body.polaris-v8 main .service-v6-overview > p:not(.eyebrow) { max-width: var(--measure) !important; }
html body.polaris-v8 main .framework-orientation__note { max-width: var(--measure-max) !important; }
/* Karten, FAQ, Formulare, Listen: verfügbare Spalte, nie über 80ch */
html body.polaris-v8 main :is(.case-card, .faq-item, .faq-body, .service, .insight-card, .situation-path, form, .team-v7-people article, .standard-panel, .framework-chip, .team-v7-foundations__copy, .cybersicher-v7) p { max-width: 80ch !important; }
html body.polaris-v8 main :is(.hero-note, .field-hint, .privacy-note, .form-note) { max-width: 62ch; }
main [style*="text-align:center"] p, main .text-center p, main .section-center p { margin-inline: auto; }

/* ---- Fließtext 16–18 px, Zeilenhöhe 1.6–1.7 (echte Lese-Rollen) ---- */
html body.polaris-v8 main .hero-text { font-size: clamp(16px, 1.2vw, 18px) !important; line-height: var(--lh-body) !important; }
html body.polaris-v8 main :is(.about-copy p:not(.eyebrow), .section-heading > p:not(.eyebrow), .section-heading-v7 > p:not(.eyebrow), .partners-v7-head > p:not(.eyebrow), .partners-v7-note, .threat-head p:not(.eyebrow), .team-v7-hero-copy > p:not(.eyebrow), .contact-v7-copy > p:not(.eyebrow), .section-intro p:not(.eyebrow), .standards-head p:not(.eyebrow), .one67-home-lead,
.service-v6-overview > p:not(.eyebrow), .service-v6-head p:not(.eyebrow), .landing-section-header > p:not(.eyebrow), .section-lead, .insight-head p:not(.eyebrow), .framework-orientation__intro p:not(.eyebrow)) { font-size: clamp(16px, 1.15vw, 17.5px) !important; line-height: var(--lh-body) !important; }
html body.polaris-v8 main :is(.team-v7-foundations__copy p:not(.eyebrow), .cybersicher-v7 p:not(.eyebrow), .team-v7-people article p, .faq-body p, .standard-panel p, .framework-chip p, .case-card p) { font-size: max(14.5px, 1em) !important; line-height: 1.62 !important; }
html body.polaris-v8 .legal-document-v76 p, html body.polaris-v8 .legal-document-v76 li { font-size: 16.5px !important; line-height: 1.7 !important; }
html body.polaris-v8 main .framework-orientation__note { font-size: 13.5px !important; }
.hero-note { font-size: 14px; }

/* Karten-Fließtext mindestens 15 px (Lesbarkeit), ohne Layout zu ändern */
html body.polaris-v8 main :is(.landing-card, .landing-faq-card, .landing-trust-card, .landing-steps article, .landing-side-card, .one67-value__grid article, .one67-trust__grid article, .one67-reporting__grid article, .insight-card) p { font-size: max(15px, 1em) !important; line-height: 1.6 !important; }

/* ---- Mobil: linksbündig, volle Breite, kein Blocksatz ---- */
@media (max-width: 820px) {
  main p { max-width: none; }
  p.sig-just { text-align: left !important; hyphens: manual !important; }
  .hero-text { font-size: 16px; }
}
/* ---- Zwischenbreiten 1024–1240: Lead nicht schmäler als die Spalte ---- */
@media (min-width: 821px) and (max-width: 1240px) { .hero-text, .hero-note { max-width: min(var(--measure-lead), 100%); } }
/* Einzeilige Kontextzeile im Hero (keine künstliche Spaltenbreite) */
html body.polaris-v8 main .hero-context { max-width: none !important; }
