/* Shared public typography. Loaded only by the public header.
   Heading sizes intentionally override page-specific presentation rules. */
:root {
    --site-title-size: clamp(2rem, 1.35rem + 2.6vw, 3.5rem);
    --site-section-title-size: clamp(1.625rem, 1.2rem + 1.7vw, 2.5rem);
    --site-card-title-size: clamp(1.125rem, 1rem + .5vw, 1.375rem);
    --site-subtitle-size: clamp(1rem, .94rem + .3vw, 1.125rem);
}

/* Long words must fit their card, including when browser zoom increases. */
body main#main-content :is(h1, h2, h3, h4, h5, h6, p, li) {
    min-width: 0;
    overflow-wrap: anywhere;
}

body main#main-content h1 {
    font-size: var(--site-title-size) !important;
    line-height: 1.15 !important;
    letter-spacing: -.025em;
}
body main#main-content h2 {
    font-size: var(--site-section-title-size) !important;
    line-height: 1.2 !important;
    letter-spacing: -.02em;
}
body main#main-content h3 {
    font-size: var(--site-card-title-size) !important;
    line-height: 1.35 !important;
}
/* Decorative words follow their parent heading's scale. */
body main#main-content h1 :is(.formation-hero-title-main, .formation-hero-gradient-word),
body main#main-content h2 :is(strong, em) { font-size: inherit !important; }
body.home-page main#main-content h1 :is(.hero-title-intro, .hero-title-forward, .hero-title-word) {
    font-size: inherit !important;
    line-height: inherit !important;
}

body main#main-content :is(.hero-subtitle, .hero-description, .page-subtitle,
    .section-subtitle, .about-banner__subtitle, .va-knowhow-subtitle,
    .formation-hero p, .formation-section-heading p,
    .communication-hero p, .communication-section-heading p,
    .transformation-hero p, .contact-hero p, .contact-intro,
    .offer-hero-description, .application-hero p,
    .search-subtitle, .va-hero p, .page-faq header p) {
    font-size: var(--site-subtitle-size) !important;
    line-height: 1.65 !important;
}

body main#main-content :is(h4, h5, h6) {
    font-size: 1.125rem !important;
    line-height: 1.4 !important;
}

/* Compact auxiliary titles retain their role in sidebars and filters. */
body main#main-content :is(.blog-sidebar-title, .blog-filters-title) {
    font-size: var(--site-card-title-size) !important;
    line-height: 1.35 !important;
}
