/* AEL v60 typography roles. One bounded scale; no canvas zoom.
   Narrative = quiet WHY-electricity reference. Hero and numeric emphasis are distinct. */
:root{
 --type-narrative-size:clamp(28px,3.4vw,46px);--type-narrative-leading:1.5;--type-narrative-tracking:.025em;
 --type-subheading-size:clamp(22px,2.2vw,30px);--type-subheading-leading:1.55;
 --type-reading-size:clamp(18px,1.5vw,22px);--type-reading-leading:1.8;
 --type-body-size:clamp(15px,1.25vw,18px);--type-body-leading:1.8;--type-body-tracking:.015em;
 --type-caption-size:clamp(12px,1vw,14px);--type-caption-leading:1.65;
 --type-number-size:clamp(80px,12vw,164px);--type-number-leading:1.1;--type-number-tracking:-.035em;--type-unit-ratio:.25em;
 --type-hero-size:clamp(36px,4.8vw,70px);--type-hero-leading:1.3;--type-hero-tracking:.035em;
 --type-eyebrow-size:12px;--type-eyebrow-tracking:.13em;
 --type-header-size:12px;
}
@media(max-width:600px){:root{
 --type-narrative-size:26px;--type-subheading-size:22px;--type-reading-size:18px;--type-body-size:16px;--type-caption-size:12px;
 --type-number-size:clamp(76px,22vw,112px);--type-hero-size:33px;--type-header-size:10px;
}}
@media(max-height:700px){:root{--type-narrative-size:clamp(26px,3.2vw,40px);--type-subheading-size:clamp(21px,2vw,27px)}}
@media(max-width:600px) and (max-height:700px){:root{--type-narrative-size:24px;--type-subheading-size:21px}}
/* Narrative role: every section title, excluding the main hero focal copy and numbers.
   Explicit local state selectors handle generated headings without expanding all text. */
#main h2:not(.hero-sub),
#main :is(.section-heading h2,.layer-heading h2,.layer-heading h3,.restored-heading h2,.bridge-copy h2),
#business :is(.goal-pair,.goal-pair p,.goal-b p,.goal-c h2),
#supply_demand :is(.energy-opening h2,.energy-tight-copy h3,.energy-stored-reading h3),
#physical_flow :is(.gs-heads h2,.gs-hero-phase>p),
#income_bridge h2,#three_markets h2,#tax_bridge h2,
#camera :is(.camera-first h2,.camera-second h2,.camera-third h2),
#land h2,#service_rail h2,#risks h2,#process h2,#faq .section-heading h2,#cta_footer h2,
.msb-portal .msb-grid-heading h2{
 font-size:var(--type-narrative-size)!important;line-height:var(--type-narrative-leading)!important;letter-spacing:var(--type-narrative-tracking)!important;
}
#main .eyebrow{font-size:var(--type-eyebrow-size);letter-spacing:var(--type-eyebrow-tracking);line-height:1.5}
#main .lead{letter-spacing:var(--type-body-tracking)}
/* Existing concise hero/image lead sizes are protected captions, not enlarged reading paragraphs. */
#main :is(.service-card h3,.cmp-card h3,.rs-land-tier h3){font-size:var(--type-subheading-size);line-height:var(--type-subheading-leading);letter-spacing:var(--type-narrative-tracking)}
#main :is(.service-card>p:not(.eyebrow):not(.card-price),.cmp-card>p:not(.eyebrow):not(.card-price)){font-size:var(--type-body-size);line-height:var(--type-body-leading);letter-spacing:var(--type-body-tracking)}
#main :is(.metric small,.mega small){font-size:var(--type-unit-ratio);letter-spacing:0}
#tax .tax-reduction-title{font-size:var(--type-subheading-size);line-height:var(--type-subheading-leading)}
#tax .tax-reduction-scope{font-size:var(--type-caption-size);line-height:var(--type-caption-leading)}
#tax .tax-climax-result>strong{font-size:var(--type-number-size)!important;line-height:var(--type-number-leading);letter-spacing:var(--type-number-tracking)}
#tax .tax-delta-sign{font-size:.52em;vertical-align:.12em;letter-spacing:0}
.site-header .header-cta{font-size:var(--type-header-size)}
/* Hero is the opening focal message, not the quiet narrative role. */
#hero .hero-first h1{font-size:var(--type-hero-size);line-height:var(--type-hero-leading);letter-spacing:var(--type-hero-tracking)!important}

/* Compact narrative subtypes already below the main narrative size are never enlarged. */
:root{--type-narrative-compact:clamp(27px,3.1vw,42px);--type-narrative-secondary:clamp(28px,3.2vw,44px)}
#supply_demand.v31-fixed-energy .energy-tight-copy h3,#land .rs-land-bridge h2{font-size:var(--type-narrative-compact)!important}
#land .rs-land-tiers h2{font-size:var(--type-narrative-secondary)!important}
@media(max-width:600px){:root{--type-narrative-compact:26px;--type-narrative-secondary:26px}}
@media(max-width:600px) and (max-height:700px){:root{--type-narrative-compact:24px;--type-narrative-secondary:24px}}
