/* Sizes live in TypeScale, emitted at theme scope for public pages and editor previews.
   Local declarations may select a role, but never define another scale. */
.pb-theme .st-section { font-size:var(--st-type-body); line-height:1.6; }
.pb-theme .st-type-display { font-size:var(--st-type-display); }
.pb-theme .st-type-h1 { font-size:var(--st-type-h1); }
.pb-theme .st-type-h2 { font-size:var(--st-type-h2); }
.pb-theme .st-type-h3 { font-size:var(--st-type-h3); }
.pb-theme .st-type-lead { font-size:var(--st-type-lead); }
.pb-theme .st-type-body { font-size:var(--st-type-body); }
.pb-theme .st-type-small { font-size:var(--st-type-small); }
.pb-theme .st-type-label { font-size:var(--st-type-label); }
/* Semantic defaults also cover imported rich text and blocks without local sizing. */
.pb-theme .st-section :where(.prose) { font-size:var(--st-type-body); }
.pb-theme .st-section :where(h1,.pb-hero-title) { font-size:var(--st-type-h1); line-height:1.08; }
.pb-theme .st-section :where(h2) { font-size:var(--st-type-h2); line-height:1.15; }
.pb-theme .st-section :where(h3,h4,h5,h6) { font-size:var(--st-type-h3); line-height:1.25; }
.pb-theme .st-section :where(.pb-eyebrow,[data-pb-field="eyebrow"]) { font-size:var(--st-type-label); }
.pb-theme .st-section :where([data-pb-field="subheading"],[data-pb-field="subheadline"]) { font-size:var(--st-type-lead); }
.pb-theme .st-section :where(.pb-btn,input,textarea,select) { font-size:var(--st-type-body); }
.pb-theme .st-section :where(figcaption,small) { font-size:var(--st-type-small); }
/* Q1's saved heading choices are roles in this same scale. Explicit element sizes win. */
.pb-block[data-design-type="compact"] { --pbd-heading-size:var(--st-type-h2); }
.pb-block[data-design-type="display"] { --pbd-heading-size:var(--st-type-h1); }
.pb-block[data-design-type="statement"] { --pbd-heading-size:var(--st-type-display); }
