/* ProcessBI design system layer — loaded last on every page.
   One type scale, one reading measure, one rhythm. Brand colours unchanged. */
:root{
  --ds-display:"Space Grotesk",Inter,system-ui,sans-serif;
  --ds-sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ds-ink:#0A1626;--ds-text:#26354C;--ds-muted:#4A5A70;--ds-accent:#087B79;--ds-brand:#054186;
  --ds-h1:clamp(2.25rem,1.6rem + 1.9vw,3.5rem);--ds-display-xl:clamp(2.75rem,1.7rem + 3vw,4.5rem);
  --ds-h2:clamp(1.625rem,1.3rem + .95vw,2.25rem);--ds-h2s:clamp(1.3125rem,1.15rem + .45vw,1.5rem);
  --ds-h3:clamp(1.1875rem,1.08rem + .35vw,1.375rem);
  --ds-lead:clamp(1.0625rem,.99rem + .3vw,1.25rem);
  --ds-body:1rem;--ds-small:.875rem;--ds-micro:.75rem;
  --ds-measure:70ch;
}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--ds-sans)!important}

/* ---- headings: one family, one weight, one scale ---- */
:is(main,body>section,body>article,body>div,#demo-explorer) h1,body>header h1,.pbi-service-hero h1,.cs-hero h1,.photo-bg-hero h1{font-family:var(--ds-display)!important;font-weight:600!important;font-size:var(--ds-h1)!important;line-height:1.05!important;letter-spacing:-.028em!important}
:is(main,body>section,body>article,body>div,#demo-explorer) h2{font-family:var(--ds-display)!important;font-weight:600!important;font-size:var(--ds-h2)!important;line-height:1.12!important;letter-spacing:-.022em!important}
:is(main,body>section,body>article,body>div,#demo-explorer) h3{font-family:var(--ds-display)!important;font-weight:600!important;font-size:var(--ds-h3)!important;line-height:1.3!important;letter-spacing:-.01em!important}
:is(main,body>section,body>article,body>div,#demo-explorer) h4{font-family:var(--ds-sans)!important;font-weight:600!important;font-size:1rem!important;line-height:1.4!important;letter-spacing:0!important}
/* compact headings inside cards, lists and side notes */
:is(main,body>section,body>article,body>div) :is(.sr-capability,.sr-note,.sr-example,.ev-card,.home-service-pillar ul,.dr-meta,.qc-report-questions,.cl-step,.ap-step,.demo-tab,.sr-capability-list) :is(h2,h3,h4){font-size:1.0625rem!important;line-height:1.35!important}
:is(main,body>section,body>article,body>div,#demo-explorer) .sr-note h2,:is(main,body>section,body>article,body>div,#demo-explorer) aside h2{font-size:1.25rem!important}
/* intro and side headings that open a column, not a page section */
:is(main,body>section,body>article,body>div) :is(.sr-situation,.sr-section-head,.story-layout .sr-capabilities,.csx-copy,.qc-copy,.dr-texthead,.home-service-pillar,.fu-copy) h2{font-size:var(--ds-h2s)!important;line-height:1.25!important}
.dr-textonly .dr-texthead h2{font-size:var(--ds-h2)!important;line-height:1.15!important}
.photo-bg-hero h1{font-size:var(--ds-display-xl)!important}

/* ---- kickers / eyebrows: one style ---- */
:is(main,body>section,body>article,body>div) :is([class*="kicker"],[class*="eyebrow"],.sr-visual-label span,.report-context-kicker,.demo-eyebrow,.vs-kicker,.qc-kicker,.home-kicker,.sr-kicker,.csx-kicker){font-family:var(--ds-sans)!important;font-weight:600!important;font-size:var(--ds-micro)!important;letter-spacing:.12em!important;text-transform:uppercase!important;line-height:1.4!important}

/* ---- body copy ---- */
:is(main,body>section,body>article,body>div,#demo-explorer) p,:is(main,body>section,body>article,body>div,#demo-explorer) li,:is(main,body>section,body>article,body>div,#demo-explorer) dd,:is(main,body>section,body>article,body>div,#demo-explorer) td,:is(main,body>section,body>article,body>div,#demo-explorer) summary{font-family:var(--ds-sans)!important}
:is(main,body>section,body>article,body>div,#demo-explorer) p{font-size:var(--ds-body);line-height:1.65}
:is(main,body>section,body>article,body>div) :is(.sr-lead,.cs-hero p:not([class*="kicker"]):not([class*="eyebrow"]),.pbi-service-hero p:not([class*="kicker"]):not([class*="eyebrow"]),.photo-bg-hero p:not([class*="kicker"]):not([class*="eyebrow"]),.lead,.report-context-copy,.hero-lead){font-size:var(--ds-lead)!important;line-height:1.6!important}
:is(main,body>section,body>article,body>div) :is(.dr-note,.dr-hint,.dr-figure figcaption,figcaption,.k-sub,.vs-note,.csx-note,.qc-note,small,.fine){font-size:var(--ds-small)!important;line-height:1.6!important}
/* readable line length everywhere */
:is(main,body>section,body>article,body>div,#demo-explorer) p,:is(main,body>section,body>article,body>div,#demo-explorer) li,:is(main,body>section,body>article,body>div,#demo-explorer) figcaption,:is(main,body>section,body>article,body>div,#demo-explorer) .dr-note{max-width:var(--ds-measure)}
:is(main,body>section,body>article,body>div) :is(.text-center,[style*="text-align:center"],[style*="text-align: center"]) p{margin-left:auto;margin-right:auto}
:is(main,body>section,body>article,body>div) :is(td,th) p{max-width:none}

/* ---- navigation and footer ---- */
nav a,header nav a,footer a,footer p,footer li{font-family:var(--ds-sans)!important}

/* ---- design cards: same heading weight as the rest of the site ---- */
.report-context h2{font-weight:600!important}
.dr-figure h3{font-weight:600!important}

/* solid navigation bar (translucent grey read as muddy over photography) */
#navbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid #E6EBF2!important}
.photo-bg-hero .home-hero-eyebrow{color:rgba(255,255,255,.78)!important;letter-spacing:.14em!important}
