/* Shared reading scale. Display titles, artwork and motion keep their own rules.
   Company, Trust and practical page bodies are covered in their own stylesheets. */
:root{
 --read-body:16px;
 --read-secondary:14px;
 --read-label:13px;
 --read-caption:12px;
 --read-footer-link:14px;
}
@media(max-width:760px){
 :root{--read-body:15px;--read-footer-link:13px}
}

/* Shared account actions. Product navigation is intentionally handled separately. */
body .global-header .global-login,
body .global-header .global-start{font-size:14px;line-height:1.5;white-space:nowrap}
body .skip-link{font-size:14px;line-height:1.5}
@media(max-width:760px){
 body .global-header .global-login,
 body .global-header .global-start{font-size:13px}
}
/* Minimal spacing adjustment keeps logo, login and CTA on the 320px first row. */
@media(max-width:360px){
 body .global-header{padding-inline:12px;gap:6px}
 body .global-header .global-account{gap:8px}
 body .global-header .global-start{padding:11px 8px;gap:5px}
}

/* Prism: change the reading layer only, including dynamically mounted captions. */
body[data-mode=prism]{font-size:var(--read-body)}
body[data-mode=prism] .hero .subline{
 /* Legacy short-screen rules already force this particular paragraph. */
 font-size:var(--read-body)!important;
 line-height:1.7!important;
}
body[data-mode=prism] .panel.offer .product-copy,
body[data-mode=prism] .agentic-copy p{font-size:var(--read-body);line-height:1.7}
body[data-mode=prism] .eyebrow,
body[data-mode=prism] .agentic-kicker{font-size:var(--read-label);line-height:1.5}
body[data-mode=prism] .panel.chapter .eyebrow{font-size:var(--read-label);line-height:1.5}
body[data-mode=prism] .hero .pill,
body[data-mode=prism] .closing .closing-cta{font-size:14px;line-height:1.5}
body[data-mode=prism] .copy-motion-enabled .copy-motion-caption,
body[data-mode=prism] .detail-caption{font-size:var(--read-secondary);line-height:1.7}
body[data-mode=prism] .copy-motion-enabled .copy-motion-note,
body[data-mode=prism] .scene-detail small,
body[data-mode=prism] .scene-control{font-size:var(--read-caption);line-height:1.6}
body[data-mode=prism] .ai-intro-label{font-size:var(--read-body);line-height:1.5}
body[data-mode=prism] .ai-intro-cue{font-size:var(--read-label);line-height:1.5}
body[data-mode=prism] .offers-directory-heading>p:last-child,
body[data-mode=prism] .offer-route-copy p{font-size:var(--read-body);line-height:1.7}
body[data-mode=prism] .offer-route-index{font-size:var(--read-caption);line-height:1.5}
body[data-mode=prism] .offer-route-copy{min-width:0}
@media(max-width:760px){
 body[data-mode=prism] .hero .pill,
 body[data-mode=prism] .closing .closing-cta{font-size:13px}
 body[data-mode=prism] .eyebrow,
 body[data-mode=prism] .agentic-kicker{font-size:var(--read-caption)}
 body[data-mode=prism] .offer-route:before{inset-inline:0}
}

/* The five product presentations and their twelve detailed offer pages. */
body:is(.product-page,.product-detail){font-size:var(--read-body)}
.product-page .hero-intro,
.product-page .experience-intro,
.product-page .hero-edge-copy .experience-intro,
.product-page .act-description,
.product-page .agentic-act .act-description,
.product-page .beat-copy>p:last-child,
.product-page .section-heading>p,
.product-page .atlas-heading>p,
.product-page .partner-side p:last-child,
.product-page .integration-end p,
.product-page .mcp-mode p,
.product-page .detail-row p,
.product-page .faq-item p,
.product-page .workflow-step p,
.product-page .tangent-rate>p,
.product-page .tangent-offer p,
.product-page .portfolio-atlas .basket-copy p,
.product-page .basket-copy p{font-size:var(--read-body);line-height:1.8}

.product-page .eyebrow,
.product-page .experience .eyebrow,
.product-page .beat-copy .eyebrow,
.product-page .mcp-mode .eyebrow,
.product-page .hero-facts span,
.product-page .asset-name small,
.product-page .basket-copy>small,
.product-page .basket-index,
.product-page .term-cell small,
.product-page .calc-control>label,
.product-page .calculator-result>small,
.product-page .policy-request>small,
.product-page .agentic-control-room .policy-request>small,
.product-page .workflow-step small,
.product-page .detail-row>span,
.product-page .next-products>span{font-size:var(--read-label);line-height:1.6}

.product-page .experience .pill,
.product-page .pill,
.product-page .experience .text-link,
.product-page .text-link,
.product-page .basket-exit,
.product-page .next-products a{font-size:14px;line-height:1.6}
.product-page .experience-rail li,
.product-page .experience-cue,
.product-page .scroll-nudge{font-size:var(--read-caption);line-height:1.5}
.product-page .experience-side-note{font-size:var(--read-secondary);line-height:1.7}
.product-page .allocation-token,
.product-page .allocation-token strong,
.product-page .asset-min,
.product-page .catalog-topline p,
.product-page .calculator-result>p:not(.calc-interest),
.product-page .range-line,
.product-page .policy-status,
.product-page .integration-list,
.product-page .link-api-line{font-size:var(--read-secondary);line-height:1.7}
.product-page .asset-yield small,
.product-page .tangent-offer strong small,
.product-page .asset-apr>span,
.product-page .term-apr>span,
.product-page .tangent-rate>span,
.product-page .term-cell strong span,
.product-page .term-cell em,
.product-page .terms-spectrum .term-cell em,
.product-page .policy-price span{font-size:var(--read-label);line-height:1.6}
.product-page .rate-date,
.product-page .fine-print,
.product-page .calc-assumption,
.product-page .flow-caption,
.product-page .policy-footnote,
.product-page .agentic-control-room .policy-footnote,
.product-page .source-links a{font-size:var(--read-caption);line-height:1.75}
.product-page .integration-list i{font-size:var(--read-caption);line-height:1.6}
.product-page .catalog-search,
.product-page .calc-control select{font-size:16px;line-height:1.6}
.product-page .catalog-empty{font-size:var(--read-body);line-height:1.8}

.product-detail .detail-intro,
.product-detail .detail-basket-intro>p,
.product-detail .detail-strategy p:not(.detail-lead),
.product-detail .detail-term-grid p,
.product-detail .detail-tangent>div>p:last-child,
.product-detail .detail-qa p,
.product-detail .detail-route-steps p,
.product-detail .detail-source .prose{font-size:var(--read-body);line-height:1.8}
.product-detail .detail-copy .eyebrow,
.product-detail .detail-basket-title .eyebrow,
.product-detail .detail-section-head .eyebrow,
.product-detail .detail-facts dt,
.product-detail .detail-route-steps article>span,
.product-detail .detail-neighbours span{font-size:var(--read-label);line-height:1.6}
.product-detail .detail-rate>span,
.product-detail .detail-minimum,
.product-detail .detail-scene-caption,
.product-detail .detail-tangent-rate>span,
.product-detail .detail-basket-count span,
.product-detail .detail-small-links,
.product-detail .detail-footer-links{font-size:var(--read-secondary);line-height:1.7}
.product-detail .detail-breadcrumb,
.product-detail .detail-scroll,
.product-detail .detail-allocation-art>p,
.product-detail .detail-note{font-size:var(--read-caption);line-height:1.75}
.product-detail .detail-copy .pill{font-size:14px;line-height:1.5}
.product-detail .detail-source .prose table{font-size:14px;line-height:1.75}

/* Calculators embedded in products only. Practical page calculators are separate. */
body:is(.product-page,.product-detail) .public-calculator .tool-intro p{font-size:var(--read-body);line-height:1.8}
body:is(.product-page,.product-detail) .public-calculator .form-field,
body:is(.product-page,.product-detail) .public-calculator .form-field label,
body:is(.product-page,.product-detail) .public-calculator .public-calc-duration legend,
body:is(.product-page,.product-detail) .public-calculator :is(.tool-stat,.tool-primary-result)>span,
body:is(.product-page,.product-detail) .public-calculator .tool-result :is(p,small){font-size:var(--read-secondary);line-height:1.7}
body:is(.product-page,.product-detail) .public-calculator.tool-panel .public-calc-presets button,
body:is(.product-page,.product-detail) .public-calculator.tool-panel .public-calc-reset,
body:is(.product-page,.product-detail) .public-calculator .public-calc-cta{font-size:13px;line-height:1.5}
body:is(.product-page,.product-detail) .public-calculator .form-field small,
body:is(.product-page,.product-detail) .public-calculator .tool-note,
body:is(.product-page,.product-detail) .public-calculator .public-calc-disclaimer{font-size:var(--read-caption);line-height:1.75}
body:is(.product-page,.product-detail) .public-calculator .tool-status{font-size:var(--read-secondary);line-height:1.7}

/* One reading scale for Academy, Business, Blog and Newsroom. */
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .editorial-hero .page-lead,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-opening-summary,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-business-intro p:last-child,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .content-card>a:only-child>p{font-size:var(--read-body);line-height:1.85}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .page-hero .eyebrow,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .page-meta,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .collection-links a,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .collection-toolbar>p,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .toc,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .toc a,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .toc-disclosure>summary{font-size:var(--read-label);line-height:1.65}
.site-page .toc-disclosure>summary{padding-right:8px}
.site-page .toc-disclosure>summary>span[aria-hidden="true"]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;transform-origin:center}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .breadcrumbs,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .card-kicker,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .card-kicker time,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .toc a[data-level='3']{font-size:var(--read-caption);line-height:1.65}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .collection-toolbar input,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .collection-toolbar select{font-size:16px;line-height:1.6}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) [data-load-more],
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .pagination a{font-size:var(--read-label);line-height:1.5}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) [data-empty]{font-size:var(--read-body);line-height:1.8}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose :is(th,td),
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-table-wrap :is(th,td){font-size:14px;line-height:1.75}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose pre{font-size:13px;line-height:1.75}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose :is(small,figcaption),
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-table-hint,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-step-number,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-section-caption,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-source-kicker,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .glossary-category{font-size:var(--read-caption);line-height:1.65}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-inline-metric>div:last-child,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-rate-tier>div:first-child,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-protocol-list>div,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-question-nav>a>div:last-child,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-reading-links,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-guide-facts{font-size:var(--read-secondary);line-height:1.75}
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-source-meta,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .glossary-meta,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .glossary-toc-alphabet a,
.site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .glossary-letter-link{font-size:var(--read-label);line-height:1.65}

/* Sitemap and 404 use the same scale, while their display titles stay intact. */
.site-page .utility-page .utility-lead{font-size:var(--read-body);line-height:1.8}
.site-page .utility-page .utility-opening>.eyebrow,
.site-page .utility-page .utility-opening .breadcrumbs,
.site-page .utility-page .utility-category,
.site-page .utility-page .utility-result-count,
.site-page .utility-page .utility-directory-more>p{font-size:var(--read-label);line-height:1.65}
.site-page .utility-page .utility-search input,
.site-page .utility-page .utility-filter select{font-size:16px;line-height:1.6}
.site-page .utility-page .utility-actions a,
.site-page .utility-page .utility-directory-more>[data-load-more]{font-size:14px;line-height:1.6}

/* Remaining practical pages: states, tools, legal outer UI and demo introduction.
   The US landing, Contact, Trust and Company bodies have their own typography. */
.site-page[data-family=us] .practical-state-source :is(p,li):not(.state-source-facts>li),
.site-page[data-family=us] .practical-state-source .practical-faq>div,
.site-page[data-family=tools] .practical-lead,
.site-page[data-family=tools] .practical-functional .tool-intro p:not(.eyebrow),
.site-page[data-family=tools] .practical-functional .tool-assumptions,
.site-page[data-family=tools] .practical-source :is(p,li,dd,dt),
.site-page[data-family=legal] .practical-legal-opening>div>p,
.site-page[data-family=try-coinstancy] .practical-lead{font-size:var(--read-body);line-height:1.8}
.site-page[data-family=us]:has(.practical-state-source) .practical-lead{font-size:var(--read-body);line-height:1.8}
.site-page[data-family=us] .practical-state-source .state-pool-description{font-size:var(--read-body);line-height:1.8}
.site-page[data-family=us] .practical-state-source .state-pool-names>div+div,
.site-page[data-family=us] .practical-state-source .state-pool-asset{font-size:var(--read-label);line-height:1.65}
.site-page[data-family=us]:has(.practical-state-source) .breadcrumbs,
.site-page[data-family=us]:has(.practical-state-source) .practical-copy .eyebrow,
.site-page[data-family=tools] .breadcrumbs,
.site-page[data-family=tools] .practical-copy .eyebrow,
.site-page[data-family=tools] .practical-functional .tool-intro .eyebrow,
.site-page[data-family=legal] .breadcrumbs,
.site-page[data-family=legal] .practical-legal-opening .eyebrow,
.site-page[data-family=legal] .practical-document-layout aside .eyebrow,
.site-page[data-family=try-coinstancy] .breadcrumbs,
.site-page[data-family=try-coinstancy] .practical-copy .eyebrow{font-size:var(--read-label);line-height:1.6}
.site-page[data-family=us]:has(.practical-state-source) .availability-caption,
.site-page[data-family=us]:has(.practical-state-source) .availability-tiles a{font-size:var(--read-caption);line-height:1.5}
.site-page[data-family=us]:has(.practical-state-source) .availability-legend{font-size:var(--read-label);line-height:1.6}
.site-page[data-family=us] .state-notify label,
.site-page[data-family=us] .state-notify button,
.site-page[data-family=us]:has(.practical-state-source) .practical-actions :is(.practical-cta,.practical-text-link),
.site-page[data-family=tools] .practical-actions :is(.practical-cta,.practical-text-link),
.site-page[data-family=try-coinstancy] .practical-actions :is(.practical-cta,.practical-text-link),
.site-page[data-family=tools] .practical-functional .form-field label,
.site-page[data-family=tools] .practical-functional :is(.tool-stat,.tool-primary-result)>span,
.site-page[data-family=tools] .practical-functional .tool-actions button,
.site-page[data-family=tools] .practical-functional button.text-link,
.site-page[data-family=tools] .practical-functional .tool-table :is(th,td),
.site-page[data-family=legal] .practical-document-layout aside nav a,
.site-page[data-family=legal] .practical-document-view .document-toolbar :is(a,button),
.site-page[data-family=legal] .document-view-options button,
.site-page[data-family=legal] .document-reading-toolbar p{font-size:var(--read-secondary);line-height:1.7}
.site-page[data-family=tools] .practical-functional .tool-result .tool-stat>p,
.site-page[data-family=tools] .practical-functional .tool-primary-result>p{font-size:var(--read-secondary);line-height:1.7}
.site-page[data-family=us] .state-notify>.tool-note,
.site-page[data-family=tools] .practical-functional .form-field small,
.site-page[data-family=tools] .practical-functional .tool-note,
.site-page[data-family=tools] .practical-functional .source-links,
.site-page[data-family=legal] .coverage-document-intro{font-size:var(--read-caption);line-height:1.8}
.site-page[data-family=tools] .practical-functional .tool-status,
.site-page[data-family=legal] .document-help,
.site-page[data-family=try-coinstancy] .demo-note{font-size:var(--read-secondary);line-height:1.8}
.site-page[data-family=try-coinstancy] .practical-demo>div{font-size:var(--read-label);line-height:1.6}
.site-page[data-family=legal] .practical-document-view .document-toolbar :is(a,button){font-size:14px}

/* Footer links are the one legacy component whose size was already forced. */
body .global-footer.footer-compact .footer-products>a{grid-template-columns:minmax(0,1fr) 20px}
body .global-footer.footer-compact .footer-products>a>span:not(.footer-product-index){min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal}
body .global-footer.footer-compact .footer-column a{font-size:var(--read-footer-link)!important;line-height:1.65}
body .global-footer.footer-compact .footer-column h2{font-size:14px;line-height:1.5}
body .global-footer.footer-compact .footer-disclosure summary,
body .global-footer.footer-compact .footer-legal,
body .global-footer.footer-compact .footer-directory-cta{font-size:var(--read-label);line-height:1.65}
body .global-footer.footer-compact .footer-products .footer-product-index,
body .global-footer.footer-compact .footer-bottom,
body .global-footer.footer-compact .footer-copyright,
body .global-footer.footer-compact .footer-risk,
body .global-footer.footer-compact .footer-tools button{font-size:var(--read-caption);line-height:1.75}
body .global-footer.footer-compact .footer-social,
body .global-footer.footer-compact .footer-social a{font-size:var(--read-label);line-height:1.6}

@media(max-width:760px){
 body .global-footer.footer-compact .footer-products>a{grid-template-columns:18px minmax(0,1fr) 16px}
 .product-page .experience .pill,
 .product-page .pill,
 .product-page .experience .text-link,
 .product-page .text-link,
 .product-detail .detail-copy .pill{font-size:13px}
 .product-detail .detail-source .prose table,
 .site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose .editorial-table-wrap :is(th,td){font-size:13px}
 .site-page:is([data-family=academy],[data-family=article],[data-family=news]) .prose pre{font-size:12px}
}

/* Preserve the measured two-row mobile actions while the medium font arrives. */
@media(max-width:394px){.product-page .experience-link .cta-row{flex-direction:column;align-items:flex-start}}
@media(max-width:390px){.product-page .experience-agentic .cta-row{flex-direction:column;align-items:flex-start}}

/* Measured text contrast on Prism's existing cool surfaces.
   Only text roles change; brand artwork, surfaces and motion keep their colors. */
:root{--read-muted:#526780}
.global-footer.footer-compact .footer-column a,
.footer-compact .footer-legal a,
.global-footer .footer-tools button,
.site-page .card-kicker time{color:var(--read-muted)}
.offer.copy-motion-product .eyebrow{color:var(--read-muted)}
.product-page .experience-rail li:not([data-active=true]){color:var(--read-muted)}

.site-page .brand-experience{--br-muted:var(--read-muted)}
.brand-experience .br-back,
.brand-experience .br-closing-copy p,
.brand-experience .br-supporting-label,
.brand-experience .br-section-overview .br-overview-example{color:var(--read-muted)}
.brand-experience .br-section-overview .br-rank-card>.br-small-fact,
.brand-experience .br-withdraw-request>p,
.brand-experience .br-withdraw-caption>p,
.brand-experience.br-kind-diversify .br-basket-allocation>.br-small-fact:last-child{color:var(--read-muted)!important}
.trust-section-nav>a,
.trust-checked,
.trust-fund-path span,
.trust-funds .trust-fund-note,
.trust-contact-note{color:var(--read-muted)}
.site-page .prose .editorial-business-intro p:last-child,
.site-page .prose .editorial-question-nav>a>div:last-child,
.site-page .prose .editorial-source-meta,
.site-page .glossary-meta{color:var(--read-muted)}

.site-page .availability-tiles a:not(.is-live),
.state-availability.is-soon,
.practical-document-layout aside nav a>span:first-child,
.practical-source.practical-us-information .us-info-map-state.is-soon,
.practical-source.practical-us-information .us-info-map-note,
.practical-source.practical-us-information .us-info-region-count,
.practical-source.practical-us-information .us-info-map-legend,
.practical-source.practical-us-information .us-info-region-legend,
.practical-source.practical-us-information .us-info-region-state.is-soon .us-info-state-status{color:var(--read-muted)}
.site-page :is(.document-panel>p,.demo-note,.source-section small),
.site-page .prose .legal-note,
.site-page .contact-security,
.site-page :is(.tool-note,.tool-status,.tool-assumptions),
.site-page .tool-result :is(p,small),
.site-page :is(.tool-stat,.tool-primary-result)>span,
.public-calculator .tool-result :is(p,small),
.public-calculator :is(.tool-stat,.tool-primary-result)>span,
.public-calculator .form-field small,
.public-calculator .tool-note,
.public-calculator .tool-status,
.practical-functional .tool-result .eyebrow{color:var(--read-muted)}
.public-calculator .tool-status[data-tool-summary]{color:var(--read-muted)}

/* Token hues remain distinct. Text uses a darker companion to the artwork hue. */
.savings-act[data-experience-step="1"],
.detail-savings .detail-hero[style*="#627eea"]{--read-asset-label:#4b62c5}
.savings-act[data-experience-step="2"],
.detail-savings .detail-hero[style*="#f7931a"]{--read-asset-label:#9a5309;--read-asset-display:#bd690b}
.savings-act[data-experience-step="3"],
.detail-savings .detail-hero[style*="#7e56ec"]{--read-asset-label:#7449dc}
.savings-act[data-experience-step="4"],
.detail-savings .detail-hero[style*="#b8953e"]{--read-asset-label:#826620;--read-asset-display:#a27e2a}
.savings-act .eyebrow,
.detail-savings .detail-copy .eyebrow{color:var(--read-asset-label,var(--asset-color))}
.savings-act h2,
.detail-savings .detail-rate{color:var(--read-asset-display,var(--asset-color))}

/* The website's embedded simulation has both blue and dark reading surfaces. */
.demo-prism .cs-ob-step:not(.active):not(.completed) :is(.cs-ob-step-dot,.cs-ob-step-title),
.demo-prism .cs-ob-step .cs-ob-step-desc,
.demo-prism :is(.cs-ob-trust-row,.cs-ob-trust-score){color:#e8f0fd}
.demo-prism .cs-ob-time-remaining{color:var(--read-muted)}
.demo-prism #guide .text-gray-500{color:#a9bad3!important}
.demo-prism #guide .bg-emerald-600{background-color:#08774e}
