/* Site type scale (owner, 30 September 2026): every public page outside the organisation pages follows the roles the
   organisation pages use (organisation-type.css), from the site's tokens (assets-tokens.css). An audit of 113 pages
   found 50 font sizes at 1440px and 42 at 390px: page headlines from 54 to 94px, section headings from 21 to 58px,
   labels down to 10px.

     role                 desktop → phone   token
     display              88 → 40           --ds-font-display    the homepage and AML Active headlines
     page headline (H1)   56 → 38, fluid    --ds-font-page       every other page
     section heading      44 → 32           --ds-font-section
     statistic            56 → 40           --ds-font-stat       one standalone figure in a block
     figure               36 → 32           --ds-font-figure     a price or a fact in a card
     feature heading      28 → 24           --ds-font-headline   one per block; the section headings of articles,
                                                                 policies, guides and event pages
     card title           24 → 22           --ds-font-title
     small card title     20                --ds-font-subtitle
     item title           17 → 16           --ds-font-body, in 600
     lead                 20 → 18           --ds-font-lead
     quote                30 → 24           --ds-font-quote
     label                13, floor 12      --ds-font-label

   Brand wordmarks keep their own sizes: the programme names in the programme heroes and closing panels (FIAR's hero
   name now matches CASS and CAPS at 104px), the CASS and FIAR names on the homepage and the catalogue, and the AML
   Active lockups. Illustrations and product mock-ups keep their interface sizes; the FAQ and the forms keep the site's
   component sizes; article reading text stays at 18px. Sizes are !important because several page stylesheets set
   theirs with !important. */


/* Headlines */
main[data-site-type] h1:not(:where(.ph-identity h1,#home-opening-title,#mbr-heading)){font-size:var(--ds-font-page)!important;line-height:1.05!important;letter-spacing:-.045em!important}
main[data-site-type] #mbr-heading{font-size:var(--ds-font-display)!important;line-height:1!important}
main[data-site-type] h1,
main[data-site-type] h2,
main[data-site-type] h3,
main[data-site-type] h4{text-wrap:balance}

/* A heading split by a forced line break: balancing stops at the break, so the last line avoids a single word instead */
main[data-site-type] h1:has(br),
main[data-site-type] h2:has(br),
main[data-site-type] h3:has(br),
main[data-site-type] h4:has(br){text-wrap:pretty}

/* Section headings; the brand wordmarks and the headings inside illustrations keep theirs */
main[data-site-type] h2:not(:where(.cp-close-word,.cass-spotlight-copy h2,.lp-callout h2,[class*=scene] h2,[class*=folio] h2,.active-panel h2,[aria-hidden=true] h2)){font-size:var(--ds-font-section)!important;line-height:var(--ds-leading-heading)!important;letter-spacing:var(--ds-tracking-heading)!important}

/* Feature headings: one per block, and the section headings inside long reading */
main[data-site-type] .lp-body h2:not(.lp-callout h2),
main[data-site-type] .article-body h2,
main[data-site-type] .cc-section-heading h2,
main[data-site-type] .ev-agenda h2,
body[data-page=event] main[data-site-type] section.wrap>article>h2,
main[data-site-type] .in-feature h2,
main[data-site-type] .mc-access-panel h2,
main[data-site-type] .cass-spotlight-copy h3,
main[data-site-type] .cass-regulatory-heading h3,
main[data-site-type] .exam-preparation-intro h3,
main[data-site-type] .cp-active-copy h2,
main[data-site-type] .cp-active-copy h3,
main[data-site-type] .ps-programme-heading h3,
main[data-site-type] .audit-cepol-heading h3,
main[data-site-type] .fiar-jurisdiction-panel h3,
main[data-site-type] .pp-activity-feature h3,
main[data-site-type] .watermark-stage-copy h3,
main[data-site-type] .cc-final h3,
main[data-site-type] .home-close-echo,
main[data-site-type] .cat-price strong,
main[data-site-type] .ac-timeline strong,
main[data-site-type] .ac-commission strong,
main[data-site-type] .cass-curriculum__scope dd,
main[data-site-type] .ps-grid-stat strong,
main[data-site-type] .cc-identity-row strong,
main[data-site-type] .cc-price-name,
main[data-site-type] .cw-stage-heading h3,
main[data-site-type] .fd-assessment-grid dd,
main[data-site-type] .cass-exam-facts dd,
body[data-page=fiar] main[data-site-type] .ph-qualification{font-size:var(--ds-font-headline)!important;line-height:1.2!important;letter-spacing:-.03em!important}

/* Card titles, and the compact headings of side panels, cards and groups */
main[data-site-type] .lp-body h3,
main[data-site-type] .cc-article .cc-section>h3,
main[data-site-type] .cat-programme-title h3,
main[data-site-type] .sme-caption h3,
main[data-site-type] .fiar-price-grid h3,
main[data-site-type] .sector-decision-flow h3,
main[data-site-type] .sector-course-map h3,
main[data-site-type] .ac-person h3,
main[data-site-type] .rg-accreditor h3,
main[data-site-type] .rg-pack h3,
main[data-site-type] .cc-decision h3,
main[data-site-type] .in-reading-card h3,
main[data-site-type] .in-webinars h3,
main[data-site-type] .in-centre-lead h3,
main[data-site-type] .in-centre-photo h3,
main[data-site-type] .ev-related h3,
main[data-site-type] .ev-event-row h3,
main[data-site-type] .audit-contact-card h3,
main[data-site-type] .pp-work-grid h3,
main[data-site-type] .faculty-entry h3,
main[data-site-type] .fiar-challenge-grid h3,
main[data-site-type] .fiar-framework-list h3,
main[data-site-type] .faculty-profile-copy h2,
main[data-site-type] .faculty-programme h2,
main[data-site-type] .home-insights-heading h2,
main[data-site-type] .in-start h2,
main[data-site-type] .ev-access-heading h2,
main[data-site-type] .mc-learning-detail h2,
main[data-site-type] .pt-connection figcaption strong,
main[data-site-type] .pt-results-list strong,
main[data-site-type] .mbr-section>.wrap>strong,
main[data-site-type] .ac-cpd-mark strong,
main[data-site-type] .certificate-feature h3,
body[data-page=recognition] main[data-site-type] article>div>h3,
body[data-page=event] main[data-site-type] section.wrap>aside>h2,
body[data-page=tools] main[data-site-type] section.wrap>article>h2,
body[data-page=contact] main[data-site-type] section.wrap>article>h2,
body[data-page=sitemap] main[data-site-type] section.wrap>section>h2{font-size:var(--ds-font-title)!important;line-height:1.25!important;letter-spacing:-.02em!important}

/* Small card titles */
main[data-site-type] .lp-callout h2,
main[data-site-type] .hp-programme-name h3,
main[data-site-type] .course-benefit h3,
main[data-site-type] .cg-route-title h3,
main[data-site-type] .cg-steps h3,
main[data-site-type] .cc-case-heading h3,
main[data-site-type] .cc-faculty h3,
main[data-site-type] .cc-eligibility h3,
main[data-site-type] .fiar-credential-copy h3,
main[data-site-type] .fiar-faculty-more h3,
main[data-site-type] .fd-assessment-grid h3,
main[data-site-type] .ev-step-heading h3,
main[data-site-type] .ev-skill-rows h3,
main[data-site-type] .integrity-event-cards h3,
main[data-site-type] .detail-benefits h3,
main[data-site-type] .mbr-short-course h3,
main[data-site-type] .mbr-cycle-list h3,
main[data-site-type] .pt-benefit-list h3,
main[data-site-type] .pt-start-steps h3,
main[data-site-type] .rg-directory h3,
main[data-site-type] .rg-verify-steps h3,
main[data-site-type] .brand-card-link h3,
main[data-site-type] .partner-card h3,
main[data-site-type] .cat-short-course h3,
main[data-site-type] .cat-fiar-title p:not(.cat-label),
main[data-site-type] .pp-activity-list h3,
body[data-page=event] main[data-site-type] aside>div>h3,
body[data-page=event] main[data-site-type] article>div>h3,
body[data-page=updates] main[data-site-type] article>div>h3,
body[data-page=fiar] main[data-site-type] .wrap>aside>h3,
body[data-page=recognition] main[data-site-type] li>div>h3{font-size:var(--ds-font-subtitle)!important;line-height:1.3!important;letter-spacing:-.02em!important}

/* Item titles */
main[data-site-type] .cat-programme-outcome h4,
main[data-site-type] .cat-fiar-outcome,
main[data-site-type] .hp-org-client-stories h4,
main[data-site-type] .lp-course-detail-list summary,
main[data-site-type] .lp-course-detail-list summary strong,
main[data-site-type] .lp-curriculum summary>strong,
main[data-site-type] .ev-focus-result strong,
main[data-site-type] .ev-hero-notes strong,
main[data-site-type] .mbr-record-note strong,
main[data-site-type] .mbr-shell>p>strong,
body[data-page=learning-platform] main[data-site-type] article>div>strong,
body[data-page=partnerships] main[data-site-type] dd>strong,
body[data-page=about-certifications] main[data-site-type] .brand-link__label>strong{font-size:var(--ds-font-body)!important;line-height:1.4!important}

/* Leads */
main[data-site-type] .ph-lead,
main[data-site-type] .home-opening-description,
main[data-site-type] .home-opening-description>span,
main[data-site-type] .cass-spotlight-name,
body[data-page=contact] main[data-site-type] header.wrap>h1+p,
main[data-site-type] .lp-lead,
main[data-site-type] .ev-lead,
main[data-site-type] .integrity-hero-lead,
main[data-site-type] .in-intro p:not(.in-eyebrow),
main[data-site-type] .pt-intro,
main[data-site-type] .reviews-hero>h1+p,
main[data-site-type] .pp-lead,
main[data-site-type] .pp-role,
main[data-site-type] .sector-outcomes ol>li>p,
main[data-site-type] .lp-body blockquote p{font-size:var(--ds-font-lead)!important;line-height:1.55!important}

/* Each template's own hero introduction, as the lead; the lines under it at body size */
main[data-site-type] .cg-hero-copy>h1+p,
main[data-site-type] .ac-lead,
main[data-site-type] .cc-intro,
main[data-site-type] .hero .lead,
main[data-site-type] .cat-hero-top>div>p,
main[data-site-type] .active-intro,
main[data-site-type] .rg-lead,
main[data-site-type] .mc-intro,
body[data-page=sitemap] main[data-site-type] header.wrap>h1+p,
body[data-page=tools] main[data-site-type] header.wrap>h1+p{font-size:var(--ds-font-lead)!important;line-height:1.55!important}
main[data-site-type] .pt-hero-detail,
main[data-site-type] .rg-hero-detail,
main[data-site-type] .pp-intro{font-size:var(--ds-font-body)!important;line-height:var(--ds-leading-body)!important}

/* Figures and statistics */
main[data-site-type] .pc-offer-heading strong,
main[data-site-type] .cp-final-price strong,
main[data-site-type] .cass-spotlight-facts dd,
main[data-site-type] .fiar-price,
main[data-site-type] .cc-price-main strong,
main[data-site-type] .cc-credit-equation strong,
main[data-site-type] .mbr-advantages strong,
main[data-site-type] .ev-cpd-number,
main[data-site-type] .brand-emphasis--number,
main[data-site-type] .sector-awards h3,
body[data-page=fiar] main[data-site-type] .ph-value{font-size:var(--ds-font-figure)!important;line-height:1.1!important}
main[data-site-type] .cfp-review-value strong,
main[data-site-type] .session-facts strong,
main[data-site-type] .active-price strong,
main[data-site-type] .mbr-final-action strong,
main[data-site-type] .fd-syllabus-count strong,
main[data-site-type] .cc-exam-facts article>div>strong{font-size:var(--ds-font-stat)!important;line-height:1!important}
main[data-site-type] .session-facts strong>span{font-size:.7em!important}
@media(min-width:651px){body[data-page=fiar] main[data-site-type] .ph-name{font-size:min(104px,8.7vw)!important}}

/* Quotes */
main[data-site-type] .voices-lead blockquote p,
main[data-site-type] .learner-review blockquote p,
main[data-site-type] .partner-quote p,
main[data-site-type] .cc-partner blockquote,
body[data-page=reviews] main[data-site-type] section.wrap>article>blockquote{font-size:var(--ds-font-quote)!important;line-height:1.35!important}
/* A full-length review reads as text, not as a display quote. */
main[data-site-type] .learner-review[data-review-full] blockquote p{font-size:var(--ds-font-lead)!important;line-height:1.6!important}

/* Labels */
main[data-site-type] .lp-kicker,
main[data-site-type] .ps-eyebrow,
main[data-site-type] .cass-spotlight-top span,
main[data-site-type] .ph-top span,
main[data-site-type] .ph-eyebrow,
main[data-site-type] .cc-kicker,
main[data-site-type] .mc-label,
main[data-site-type] .cc-note-label span,
main[data-site-type] .cc-case-label,
main[data-site-type] .cc-partner-label,
main[data-site-type] .cc-decision>article>span{font-size:var(--ds-font-label)!important;line-height:1.5!important}

/* Notes and small print: 12px is the floor */
main[data-site-type] .lp-source span,
main[data-site-type] .lp-source>a:not([data-brand-link]),
main[data-site-type] .lp-reading-card>p:first-child,
main[data-site-type] .lp-reading-card>p:first-child span,
main[data-site-type] .lp-reading-card time,
main[data-site-type] .lp-toc>p,
main[data-site-type] .lp-event-archive-grid p,
main[data-site-type] .lp-event-facts dt,
main[data-site-type] .mc-facts dt,
main[data-site-type] .mc-member-hint,
main[data-site-type] .mc-cpd-note,
main[data-site-type] .cat-price small,
main[data-site-type] .cat-level span,
main[data-site-type] .ph-fact-note,
main[data-site-type] .pc-offer-heading span,
main[data-site-type] .ph-offer-heading span,
main[data-site-type] .cw-section-foot p,
main[data-site-type] .ps-full-coverage summary span,
main[data-site-type] .ps-approach span,
main[data-site-type] .lp-course-detail-list summary span,
main[data-site-type] .lp-curriculum summary>span,
main[data-site-type] .ad-preview-footer li>span,
main[data-site-type] .ad-preview-footer>p,
main[data-site-type] .cc-index p,
main[data-site-type] .cc-index a>span,
main[data-site-type] .cc-identity-row span,
main[data-site-type] .cc-article th span,
main[data-site-type] .ac-office-role,
main[data-site-type] .session-facts p,
main[data-site-type] .compare-selector-top span,
main[data-site-type] .integrity-journey-step span,
main[data-site-type] .integrity-record-notice,
main[data-site-type] .integrity-review-steps span,
main[data-site-type] .integrity-review-foot,
main[data-site-type] .cc-identity-row small,
main[data-site-type] .cc-byline span,
main[data-site-type] .cc-byline time,
main[data-site-type] .cc-section-heading span,
main[data-site-type] .cc-source p,
main[data-site-type] .cc-case-skills span,
main[data-site-type] .cc-journey figcaption span,
main[data-site-type] .cc-journey li span,
main[data-site-type] .cc-faculty article>span,
main[data-site-type] .cc-partner-person span,
main[data-site-type] .cc-credit-equation span,
main[data-site-type] .cc-eligibility small,
main[data-site-type] .cc-topic-heading span,
main[data-site-type] .cc-exam-facts dd,
main[data-site-type] .cc-exam-facts small,
main[data-site-type] .cc-price-name span,
main[data-site-type] .cc-item-number,
main[data-site-type] .cc-guide-end p,
main[data-site-type] .cc-mobile-contents summary span,
main[data-site-type] .lp-body th{font-size:12px!important}
@media(max-width:700px){main[data-site-type] :is(.cc-identity-row p,.cc-article thead th){font-size:12px!important}}
