/* Typography scale for guide / district / hub pages (body.ir-article-scale).
   Matches the project-detail scale so headings and text are not oversized
   on desktop or mobile. Site header, nav and footer are excluded. */

body.ir-article-scale h1:not(.hero-typing):not(:is(header, .header, nav, footer, .footer) *) {
    font-size: clamp(1.45rem, 1.05rem + 1.4vw, 2.05rem) !important;
    line-height: 1.5 !important;
}

body.ir-article-scale h2:not(:is(header, .header, nav, footer, .footer) *) {
    font-size: clamp(1.12rem, 0.98rem + 0.5vw, 1.4rem) !important;
    line-height: 1.6 !important;
}

body.ir-article-scale h3:not(:is(header, .header, nav, footer, .footer) *) {
    font-size: clamp(1rem, 0.94rem + 0.25vw, 1.15rem) !important;
    line-height: 1.7 !important;
}

body.ir-article-scale h3:not(:is(header, .header, nav, footer, .footer) *) a {
    font-size: inherit !important;
}

body.ir-article-scale h4:not(:is(header, .header, nav, footer, .footer) *) {
    font-size: clamp(0.98rem, 0.94rem + 0.15vw, 1.05rem) !important;
}

/* Intro / lead paragraphs */
body.ir-article-scale .lead,
body.ir-article-scale .article-subtitle,
body.ir-article-scale .article-header > .subtitle,
body.ir-article-scale .property-guide-callout,
body.ir-article-scale .section-header > p,
body.ir-article-scale .knowledge-header > p {
    font-size: clamp(0.98rem, 0.93rem + 0.2vw, 1.06rem) !important;
    line-height: 1.95 !important;
}

body.ir-article-scale .lead strong,
body.ir-article-scale .property-guide-callout strong,
body.ir-article-scale .property-guide-callout a {
    font-size: inherit !important;
}

/* Plain running text */
body.ir-article-scale :is(.content-section, .knowledge-content, .article-content, .content-shell, .ag-section, .news-body, .news-content, .news-detailed-content, .news-conclusion) :is(p, li):not([class]) {
    font-size: clamp(0.94rem, 0.9rem + 0.2vw, 1rem) !important;
    line-height: 1.95;
}
