/*
 * Current-111 native examples: reader typography repair, Q4.
 * Load after component/edition styles. No layout, color, target-size, or body
 * changes. At 100% the existing text sizes are retained; each declared size
 * now follows the article's actual --reader-scale. Existing body-font-based
 * copy is left alone. Newly rendered .learning-ui-v4 cases own their type.
 *
 * Fixed SVG viewBox labels, gesture overlay labels and contrast specimens are
 * deliberately excluded: their labels need adjacent HTML or per-case layout
 * work rather than a global text-size override. See type-v4-proposal.json.
 */

/* Batch figure headings and their complete linear reading alternatives. */
article[data-reader] :is(
  .v7-figure,.v8-figure,.v9-figure,.v10-figure,.v11-figure,.v12-figure,
  .v13-figure,.v14-figure,.v15-figure,.v16-figure,.v17-figure,.v18-figure,.v19-figure
) > h3 {
  font-size: calc(1.17rem * var(--reader-scale, 1));
}
article[data-reader] :is(
  .v7-linear,.v8-linear,.v9-linear,.v10-linear,.v11-linear,.v12-linear,
  .v13-linear,.v14-linear,.v15-linear,.v16-linear,.v17-linear
) {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] :is(
  .v7-figure,.v8-figure,.v9-figure,.v10-figure,.v11-figure,.v12-figure,
  .v13-figure,.v14-figure,.v15-figure,.v16-figure,.v17-figure,.v18-figure,.v19-figure
) > figcaption {
  font-size: calc(15px * var(--reader-scale, 1));
}

/* v18/v19 records use fixed rem copy inside otherwise responsive articles. */
article[data-reader] :is(.v18-scene,.v19-scene) {
  font-size: calc(.96rem * var(--reader-scale, 1));
}
article[data-reader] .v18-controls label,
article[data-reader] .v18-status {
  font-size: calc(.88rem * var(--reader-scale, 1));
}
article[data-reader] :is(.v18-recovery,.v18-runtime-recovery) {
  font-size: calc(.87rem * var(--reader-scale, 1));
}
article[data-reader] .v19-controls label,
article[data-reader] .v19-status {
  font-size: calc(.9rem * var(--reader-scale, 1));
}

/* Legacy task records whose 1em copy inherits the browser's 16px default. */
article[data-reader] :is(.p019-figure,.p029-figure,.p100-figure,.sp-visual) {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .p001-section-example-v2 .re-pair :is(p,li,dd,dt) {
  font-size: calc(18px * var(--reader-scale, 1));
}

/* Poka-yoke: original static date records and current native controls. */
article[data-reader] .p024-native-fragment {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .archive-worked-example :is(dt,label,input,select,button),
article[data-reader] .archive-worked-example .p024-example-note,
article[data-reader] .archive-worked-example .p024-rule-grid h4,
article[data-reader] .archive-worked-example .archive-example-flow :is(strong,span),
article[data-reader] .archive-worked-example .p024-date-strip span,
article[data-reader] .archive-worked-example .p024-example-controls legend {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .archive-worked-example .archive-example-flow > li::before {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] :is(#p024-process-condition,#p024-quantity-scope) h3 {
  font-size: calc(20px * var(--reader-scale, 1));
}
article[data-reader] :is(#p024-process-condition,#p024-quantity-scope) :is(p,li,dd) {
  font-size: calc(18px * var(--reader-scale, 1));
}
/* Preserve the existing max(16px,.85em) role at 100%, including mobile. */
article[data-reader] :is(#p024-03,#p024-04) :is(.p024-example-note,.p024-record),
article[data-reader] #p024-03 .p024-date-states :is(h4,p) {
  font-size: max(calc(16px * var(--reader-scale, 1)), .85em);
}

/* Current feedforward model; no new model, widths or button geometry. */
article[data-reader] .p004-learning {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .p004-learning h3,
article[data-reader] .p004-learning .p004-flow strong,
article[data-reader] .p004-reader-comparison dl {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .p004-learning :is(h4,legend,label,.p004-dates,.p004-status),
article[data-reader] .p004-learning .p004-flow span,
article[data-reader] .p004-learning .p004-summary p,
article[data-reader] .p004-learning .p004-extra summary {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .p004-learning :is(.p004-small,figcaption) {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .p004-reader-comparison dt,
article[data-reader] .p004-learning select {
  font-size: calc(14px * var(--reader-scale, 1));
}
article[data-reader] .p004-learning :is(.ui-control,.ui-text-action) {
  font-size: calc(13px * var(--reader-scale, 1));
}

/* Fitts: text follows reader scaling; W/D, 24/48px targets and SVG stay fixed. */
article[data-reader] .fitts-comparison {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison .fitts-task {
  font-size: calc(17px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison :is(.fitts-panel-heading h3,.fitts-panel h3) {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison .fitts-controls label,
article[data-reader] .fitts-comparison .fitts-controls :is(select,input),
article[data-reader] .fitts-comparison .fitts-status {
  font-size: calc(14px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison :is([data-fitts-reason],.fitts-interpretation) {
  font-size: calc(15px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison :is(.fitts-values,.fitts-input-note) {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison [data-fitts-start] {
  font-size: calc(12px * var(--reader-scale, 1));
}
article[data-reader] .fitts-comparison [data-fitts-reset] {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning h3 {
  font-size: calc(18px * var(--reader-scale, 1)) !important;
}
article[data-reader] .p047-learning :is(.p047-small,figcaption) {
  font-size: calc(13px * var(--reader-scale, 1)) !important;
}
article[data-reader] .p047-learning .p047-hit-controls,
article[data-reader] .p047-learning .p047-fake-field > span,
article[data-reader] .p047-learning .p047-live-field label {
  font-size: calc(14px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning :is(.p047-hit-static,.p047-reference) {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning .p047-calendar,
article[data-reader] .p047-learning .p047-fake-field > div,
article[data-reader] .p047-learning .p047-live-field :is(input,textarea) {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning .p047-calendar-head strong {
  font-size: calc(17px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning .p047-management {
  font-size: calc(12px * var(--reader-scale, 1));
}
article[data-reader] .p047-learning .p047-save-actions :is(.ui-control,.ui-text-action) {
  font-size: calc(13px * var(--reader-scale, 1));
}

/* Signifier examples: retained original record sizes, no cue-geometry changes. */
article[data-reader] .p054-learning {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .p054-learning :is(.p054-notice,figcaption,.p054-badge) {
  font-size: max(calc(13px * var(--reader-scale, 1)), .72em);
}
article[data-reader] .p054-learning .ui-text-action {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure > h3 {
  font-size: calc(1.17rem * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure :is(.p054-reader-row h4,.p054-reader-row dd,.p054-reader-labels p) {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure :is(.p054-reader-title,.p054-reader-label) {
  font-size: calc(22px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure .p054-reader-labels .p054-reader-label {
  font-size: calc(22px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure .p054-reader-row dt {
  font-size: calc(14px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure .p054-badge {
  font-size: calc(13px * var(--reader-scale, 1));
}
article[data-reader] .p054-reader-figure :is(.p054-notice,figcaption) {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .p004-reader-comparison .p054-static-control {
  font-size: calc(14.4px * var(--reader-scale, 1));
}

/* HTML explanation around old bounded diagrams; overlay coordinates excluded. */
article[data-reader] .clarity-diagram h3 {
  font-size: calc(22px * var(--reader-scale, 1));
}
article[data-reader] .clarity-diagram h4,
article[data-reader] .clarity-diagram .clarity-label-sample {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .clarity-diagram .clarity-small {
  font-size: calc(14px * var(--reader-scale, 1));
}
article[data-reader] .clarity-diagram .clarity-gesture-sequence p {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .clarity-diagram figcaption,
article[data-reader] .p065-figure .p065-caption-title {
  font-size: calc(16px * var(--reader-scale, 1));
}

/* Fixed 16px figcaptions form a nested font boundary even with scaled roots. */
article[data-reader] :is(.p026-figure,.p029-figure,.p087-figure,.p100-figure,.p101-figure,.p103-figure,.p104-figure) > figcaption {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] :is(.p026-figure,.p029-figure,.p087-figure,.p100-figure,.p101-figure,.p103-figure,.p104-figure) > figcaption .overline {
  font-size: calc(12px * var(--reader-scale, 1));
}
/* Current remaining native scenes have responsive copy but a fixed title. */
article[data-reader] :is(.p027-vqc-v3,.p031-vqc-v3,.p039-rqc-v3,.p042-rqc-v3,.p043-vqc-v3,.p048-rqc-v3,.p051-rqc-v3,.p063-rqc-v3) > h3 {
  font-size: var(--body-font, var(--reader-font, 20px));
}
article[data-reader] .learning-figure--native .learning-scenes h3 {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .learning-figure--native .learning-scenes p {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] .learning-figure--native .learning-scenes strong {
  font-size: calc(18px * var(--reader-scale, 1));
}
article[data-reader] .learning-figure--native .scene-option {
  font-size: calc(15px * var(--reader-scale, 1));
}

@media (max-width:760px) {
  article[data-reader] :is(.v7-figure,.v8-figure,.v9-figure,.v10-figure,.v11-figure,.v12-figure,.v13-figure,.v14-figure,.v15-figure,.v16-figure,.v17-figure,.v18-figure,.v19-figure) > figcaption {
    font-size: calc(14px * var(--reader-scale, 1));
  }
  article[data-reader] .p001-section-example-v2 .re-pair :is(p,li,dd,dt) {
    font-size: calc(16px * var(--reader-scale, 1));
  }
  article[data-reader] :is(#p024-process-condition,#p024-quantity-scope) h3 {
    font-size: calc(18px * var(--reader-scale, 1));
  }
  article[data-reader] .clarity-diagram h3 {
    font-size: calc(20px * var(--reader-scale, 1));
  }
  article[data-reader] .p047-learning .p047-save-pair h3 {
    font-size: calc(16px * var(--reader-scale, 1)) !important;
  }
  article[data-reader] :is(.p004-learning,.p047-learning,.fitts-comparison,.p054-learning) :is(.ui-control,.ui-text-action) {
    font-size: calc(12px * var(--reader-scale, 1));
  }
}
@media (max-width:560px) {
  article[data-reader] .v19-scene {
    font-size: calc(1rem * var(--reader-scale, 1));
  }
}

/* Bounded reader annotations: SVG geometry and hit target sizes stay fixed. */
article[data-reader] .clarity-gesture-scene :is(.gesture-command,.gesture-wait){font-size:calc(14px * var(--reader-scale,1))}
article[data-reader] .v19-arithmetic-chart text[font-size="13"]{font-size:calc(13px * var(--reader-scale,1))}
article[data-reader] .v19-arithmetic-chart text[font-size="14"]{font-size:calc(14px * var(--reader-scale,1))}
article[data-reader] .v19-arithmetic-chart text[font-size="15"]{font-size:calc(15px * var(--reader-scale,1))}
article[data-reader] #p044-v16-time-offset-block svg text{font-size:calc(12px * var(--reader-scale,1))}
article[data-reader] .p047-direction svg text{font-size:calc(14px * var(--reader-scale,1))}

/* Actual family audit: retain the existing 16px p065 caption at 100%.
 * The title prefix inherits once, preserving its authored weight. */
article[data-reader] figure[data-learning-family-v4="p065"] > figcaption {
  font-size: calc(16px * var(--reader-scale, 1));
}
article[data-reader] figure[data-learning-family-v4="p065"] > figcaption .p065-caption-title {
  font-size: inherit;
}

/* p073 remains inside the original article-note, whose important paragraph
 * rule fixes all copy at 18px/16px. Override only this new native figure's
 * paragraphs, retaining those measured 100% sizes and scaling them once. */
article[data-reader] figure[data-learning-family-v4="p073"] p {
  font-size: calc(18px * var(--reader-scale, 1)) !important;
}
@media (max-width:760px) {
  article[data-reader] figure[data-learning-family-v4="p073"] p {
    font-size: calc(16px * var(--reader-scale, 1)) !important;
  }
}

/* Heading artifacts are reader content; the article itself has a fixed base.
   Set their base here, after each renderer's CSS, so their relative hierarchy
   follows the actual reader control without changing diagram coordinates. */
.w-reading article[data-reader] :is(.eh4-early,.heading-middle-a-v4,.learning-heading-middle-b,.lhv-object){font-size:calc(18px * var(--reader-scale,1))}
.w-reading article[data-reader] :is(.eh4-early,.heading-middle-a-v4,.learning-heading-middle-b,.lhv-object)>figcaption{font-size:.9em}
.w-reading article[data-reader] :is(.eh4-early,.heading-middle-a-v4,.learning-heading-middle-b,.lhv-object)>figcaption :is(h3,h4){font-size:1em}
.w-reading article[data-reader] :is(.eh4-early,.heading-middle-a-v4,.learning-heading-middle-b,.lhv-object) table{font-size:inherit}
.w-reading article[data-reader] :is(.mh-original-reading,.hma-source-reading,.lhv-source-detail){font-size:calc(16px * var(--reader-scale,1))}
@media(max-width:760px){
 .w-reading article[data-reader] :is(.eh4-early,.heading-middle-a-v4,.learning-heading-middle-b,.lhv-object){font-size:calc(16px * var(--reader-scale,1))}
 .w-reading article[data-reader] :is(.mh-original-reading,.hma-source-reading,.lhv-source-detail){font-size:calc(14px * var(--reader-scale,1))}
}

/* Table/anchor leaves added to the actual typography audit. Preserve their
   measured 100% sizes and scale them once; body/source cards are outside scope. */
.w-reading article[data-reader] figure .article-table caption{font-size:calc(17px * var(--reader-scale,1))}
.w-reading article[data-reader] #p001-v2-notice-scope p{font-size:calc(18px * var(--reader-scale,1))!important}
.w-reading article[data-reader] #p001-v2-notice-scope strong{font-size:inherit}
.w-reading article[data-reader] #FF-D05 thead th{font-size:calc(14px * var(--reader-scale,1))}
.w-reading article[data-reader] #FF-D05 tbody :is(th,td){font-size:calc(18px * var(--reader-scale,1))}
.w-reading article[data-reader] [data-p019-temptation-bundling] .p019-table :is(th,td){font-size:calc(14.88px * var(--reader-scale,1))}
.w-reading article[data-reader] :is(#p024-d04,#sp-v3) a{font-size:calc(16px * var(--reader-scale,1))}
/* These eight annotations sit in source notes with important fixed-size copy.
   Preserve their authored base size while honoring the reader enlargement. */
.w-reading article[data-reader] :is(#eh4-early-p019-03,#hma-p045-05,#hma-p052-04,#heading-p073-s-5-1,#lhv-p080-3,#lhv-p081-4,#lhv-p088-6) p{font-size:calc(18px * var(--reader-scale,1))!important}
.w-reading article[data-reader][data-p019-temptation-bundling] .p019-table :is(th,td){font-size:calc(14.88px * var(--reader-scale,1))}
@media(max-width:760px){
 .w-reading article[data-reader] #p001-v2-notice-scope p{font-size:calc(16px * var(--reader-scale,1))!important}
 .w-reading article[data-reader] #FF-D05 tbody :is(th,td){font-size:calc(16px * var(--reader-scale,1))}
 .w-reading article[data-reader] [data-p019-temptation-bundling] .p019-table :is(th,td){font-size:calc(13.95px * var(--reader-scale,1))}
 .w-reading article[data-reader][data-p019-temptation-bundling] .p019-table :is(th,td){font-size:calc(13.95px * var(--reader-scale,1))}
 .w-reading article[data-reader] :is(#eh4-early-p019-03,#hma-p045-05,#hma-p052-04,#heading-p073-s-5-1,#lhv-p080-3,#lhv-p081-4,#lhv-p088-6) p{font-size:calc(16px * var(--reader-scale,1))!important}
}
