/* Public typography only. Loaded after page styles; no private app consumers.
   Locked role scale: DESIGN-SYSTEM-2026-08.md. Typography, not content/behavior. */
html{font-size:16px}
body.public-site{font-family:var(--sans,"ABC Diatype","Helvetica Neue",Arial,sans-serif);font-size:16px;line-height:1.55}
/* Existing approved Assessment presentation is an explicit numeric exception.
   Its source-scoped reading/action/calendar sizes remain intact. */
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :where(p,li,dd,dt,label,input,textarea,select,td,th):where(:not(blockquote *):not(.mark):not(.arrow)){
 font-size:16px!important;line-height:1.55!important;letter-spacing:normal}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(.ans,.faq-answer,.fp-virtual,.field-error,.form-error,.form-banner-error,.error-box,.field-note,.note,.screen-item,.checkbox-row>span,.consent-note,.link-description,.offer-description,.offer-price,.link-price,.price-line,.price-line>span,.art-stat .detail,.art-stat .detail a,.notlist li,.trio-item p,.ptile p,.field-list .sub,.proto .pdesc,.phase p,.oc-card p,.practice-option .option-detail,.lp-card .incl,.practice-option .option-detail,.band-list .row .val,.ccard .cline,.recap-when,.recap-where,.social-note,.secondary-copy,.module-status){
 font-size:16px!important;line-height:1.55!important;letter-spacing:normal}
/* Main document headings. Utility headings are mapped separately below. */
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site h1{font-size:clamp(56px,4.5vw,72px)!important;line-height:1.02!important;letter-spacing:-.035em}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site h2:where(:not(.kicker):not(.eyebrow):not(.label):not(footer *):not(#cc-main *)),
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site .sec-head h2,
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site .band-copy h2:not(.kicker){font-size:clamp(34px,2.6vw,40px)!important;line-height:1.12!important;letter-spacing:-.025em}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(h3,h4):where(:not(footer *):not(#cc-main *)){font-size:clamp(20px,1.65vw,24px)!important;line-height:1.22!important;letter-spacing:normal}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(.lede,.lead,.page-intro,.book-sub,.step-section .subhead,.first-steps-intro>p){font-size:20px!important;line-height:1.4!important;letter-spacing:normal}
/* Genuine public text actions. Inline reading links inherit the reading size.
   Icon-only controls/wordmarks, SVGs, scorevalues and calendar numerals are not resized. */
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site a:where(:not(:has(svg:only-child)):not(.brand-slot):not(.brand-wordmark)),
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site button:where(:not(.search-close):not(.hamburger):not(.cal-nav)),
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site summary{font-size:max(14px,1em)!important;line-height:1.3!important}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(.btn,.btn-primary-pill,.btn-back,.btn-cal,.btn-text-link,.primary-action,.secondary-link,.text-button,.filter-pill,.practice-option a,.oc-card .cta a,.tool a.link,.profile-footer a,.social-footer a,.terms-note a,.ccard .cgo,.appt .see-all,.field-list .go){
 font-size:14px!important;line-height:1.3!important}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(p,li,dd,dt,td) a{font-size:inherit!important;line-height:inherit!important}
/* Optional metadata and captions. Essential price, error, form and policy copy
   are reading roles above, even when older pages call them notes/details. */
html .public-site.public-site :is(.eyebrow,.page-label,.art-meta,.art-stat .src,.not-found__label,.split .label,.cred .h,.lp-inside .label,.notlist .tag,.stories-grid-section .kicker,.art-crumbs,.art-share>span,.art-inline .lbl,.art-inline .cat,.art-bio .by>span,.art-side-list h5,.art-side-list .cat,.art-related .rel-head>span,.art-rel-card .cat,.art-pq cite,.pq-panel cite,.proto-closer cite,.hero-meta,.step .when,.phase .ltag,.practice-hero-caption,.practice-option .option-kind,.lp-inside .label,.lp-poster .tag,.lp-strip .note,.lp-still figcaption,.lp-aud .who,.lp-card .kicker,.oc-row .when,.oc-card .kicker,.story-tag,.guide-band .stat-row span,.first-step .step-number,.justin .kicker,.jcard .cat,.faq-updated,.soft-badge,.lesson-number,.social-identity span,.current-video>span,.profile-brand,.footer-place,.footer-utility>span,.social-footer,.profile-footer){
 font-size:12px!important;line-height:1.4!important}
.public-site :is(.footer-links h2,footer h2,#journal-title.kicker){font-size:12px!important;line-height:1.4!important;letter-spacing:.08em}
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(.screen-title,.learn-label,.field-section .sec-label,.field-section .sec-hint,.recap-label,.calendar-actions-label,.order-summary-title,.form-legend,.book-kicker,.book-progress,.time-slots-label,.field label,.connect .label,.panel .row .k){
 font-size:16px!important;line-height:1.55!important;letter-spacing:normal}
/* The profile name is an identity label, not a principal display statement.
   Preserve the approved compact identity treatment. */
:where(html:not(.assessment-booking:not(.booking-embed))) .public-site main.offer-profile h1{font-size:23px!important;line-height:1.2!important;letter-spacing:-.025em}
/* Larger reading copy may wrap naturally; never compress to preserve columns. */
.public-site :is(.link-text,.mini-offer>span,.benefit>div,.ccard,.order-summary-row,.field){min-width:0}
.public-site :is(.link-title,.mini-offer strong,.benefit h3,.social-page h1){overflow-wrap:break-word}
.public-site .art-share a{font-size:14px!important}
@media(max-width:720px){
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site h1{font-size:clamp(42px,11vw,50px)!important}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site h2:where(:not(.kicker):not(.eyebrow):not(.label):not(footer *):not(#cc-main *)),
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site .sec-head h2,
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site .band-copy h2:not(.kicker){font-size:clamp(28px,7vw,32px)!important}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(h3,h4):where(:not(footer *):not(#cc-main *)){font-size:clamp(19px,4.8vw,22px)!important}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site :is(.lede,.lead,.page-intro,.book-sub,.step-section .subhead,.first-steps-intro>p){font-size:18px!important}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site main.offer-profile h1{font-size:23px!important}
}
/* Sara's home-pullquote and other display blockquotes are intentionally
   untouched, including descendant paragraphs and attribution policy. */
/* Public quiz only; explicit body marker excludes private apps. */
body.public-quiz{font-size:16px;line-height:1.55}
.public-quiz .quiz-cover h1,.public-quiz [data-results] .hero-headline{font-size:clamp(56px,4.5vw,64px)!important;line-height:1.02!important}
.public-quiz .q-title,.public-quiz .contact h2,.public-quiz .proc h2,.public-quiz [data-results] .section-head h2,.public-quiz [data-results] .sect h2,.public-quiz [data-results] .assessment-note h2{font-size:36px!important;line-height:1.12!important}
.public-quiz [data-results] h3{font-size:22px!important;line-height:1.22!important}
.public-quiz .quiz-cover .lede,.public-quiz .contact .lede,.public-quiz [data-results] .hero-sub,.public-quiz [data-results] .section-head .lede{font-size:20px!important;line-height:1.4!important}
.public-quiz .q-desc,.public-quiz .q-hint,.public-quiz .q-err,.public-quiz .form-requirements,.public-quiz .field-error,.public-quiz .contact .privacy,.public-quiz .contact .legal,.public-quiz .field label,.public-quiz .field input,.public-quiz [data-results] p,.public-quiz [data-results] .offer-list li,.public-quiz [data-results] .offer-price-lbl,.public-quiz [data-results] .offer-path .row,.public-quiz [data-results] .offer-path .lbl,.public-quiz [data-results] .offer-path .body,.public-quiz [data-results] .offer-cta .fine,.public-quiz [data-results] .response-map-key-row{font-size:16px!important;line-height:1.55!important}
.public-quiz .opt,.public-quiz .opt .txt{font-size:16px!important;line-height:1.5!important}
.public-quiz .btn,.public-quiz .btn-primary,.public-quiz .btn-ghost,.public-quiz .btn-secondary,.public-quiz footer.qfoot a,.public-quiz [data-results] .btn-ink,.public-quiz [data-results] .btn-paper,.public-quiz [data-results] .aside-links a,.public-quiz [data-results] .doc-foot a,.public-quiz [data-results] .doc-bar .right a,.public-quiz [data-results] .appendix summary,.public-quiz .stack-past{font-size:14px!important;line-height:1.3!important}
.public-quiz .stack-past>span:not(.num){font-size:14px!important;line-height:1.3!important}
.public-quiz .topbar .meta,.public-quiz .eyebrow,.public-quiz .q-head .cat,.public-quiz .q-count,.public-quiz .q-head .num,.public-quiz footer.qfoot,.public-quiz .quiz-cover .facts .f span,.public-quiz [data-results] .detail,.public-quiz [data-results] .eyebrow,.public-quiz [data-results] .doc-bar .center,.public-quiz [data-results] .doc-bar .right,.public-quiz [data-results] .hero-stamp,.public-quiz [data-results] .hero-meta .lbl,.public-quiz [data-results] .video-cap,.public-quiz [data-results] .chain-step .flow,.public-quiz [data-results] .offer-head .pill,.public-quiz [data-results] .referral-note,.public-quiz [data-results] .doc-foot,.public-quiz [data-results] .response-map figcaption{font-size:12px!important;line-height:1.4!important}
.public-quiz [data-results] .appendix summary .label,.public-quiz [data-results] .appendix summary .detail{font-size:14px!important;line-height:1.3!important}
/* Existing React inline labels; never scorevalues/SVG/glyphs. */
.public-quiz [data-results] span:is([style*="font-size:10px"],[style*="font-size: 10px"]){font-size:16px!important}
.public-quiz [data-results] span:is([style*="font-size:11px"],[style*="font-size: 11px"]){font-size:12px!important}
.public-quiz .topbar .row{flex-wrap:wrap;row-gap:8px}
.public-quiz .quiz-cover h1,.public-quiz .q-title,.public-quiz [data-results] h1,.public-quiz [data-results] h2,.public-quiz [data-results] h3{overflow-wrap:break-word}
@media(max-width:720px){
.public-quiz .quiz-cover h1,.public-quiz [data-results] .hero-headline{font-size:44px!important;line-height:1.02!important}
.public-quiz .q-title,.public-quiz .contact h2,.public-quiz .proc h2,.public-quiz [data-results] .section-head h2,.public-quiz [data-results] .sect h2,.public-quiz [data-results] .assessment-note h2{font-size:30px!important;line-height:1.12!important}
.public-quiz [data-results] h3{font-size:20px!important;line-height:1.22!important}
.public-quiz .quiz-cover .lede,.public-quiz .contact .lede,.public-quiz [data-results] .hero-sub,.public-quiz [data-results] .section-head .lede{font-size:18px!important;line-height:1.4!important}
}
#cc-main .cm__title,#cc-main .pm__title{font-size:20px;line-height:1.22}
#cc-main .cm__desc,#cc-main .pm__section-desc,#cc-main .pm__section-desc-wrapper,#cc-main .pm__section-title,#cc-main .pm__section-table,#cc-main .pm__section-table :is(th,td),#cc-main .pm__service-title{font-size:16px;line-height:1.55}
#cc-main .cm__btn,#cc-main .pm__btn,#cc-main .cm__btn span,#cc-main .pm__btn span,#cc-main .cm__link-group,#cc-main .cm__link-group a{font-size:14px;line-height:1.3}
#cc-main .pm__badge{font-size:12px;line-height:1.4}
button[data-amari-cookie-preferences]{font-size:14px;line-height:1.3}

/* Shared navigation and consent remain readable on the approved Assessment. */
.public-site :is(.hdr-portal,.nav-row a,.mobile-nav a,.hdr-book,.footer-links nav a,.footer-utility a,button[data-amari-cookie-preferences]){font-size:14px!important;line-height:1.3!important}

/* The comparison article's existing sidebar/table must not force a page-wide
   scroll when reading type grows. Keep overflow within its table wrapper. */
.public-site .art-layout,.public-site .art-prose,.public-site .art-main,.public-site .cmp-wrap{min-width:0}
.public-site .cmp-wrap{max-width:100%;overflow-x:auto}

/* Remaining essential field/location facts are reading copy, not captions. */
.public-site :is(.band-list .row .lbl,.contact-page .panel .row .v,.appt span.see-all){font-size:16px!important;line-height:1.55!important}
.public-site .field .opt{font-size:12px!important;line-height:1.4!important}

/* Card titles retain the subheading role; study progress and contact rows
   reflow rather than shrinking readable text or hiding horizontal content. */
.public-site .art-side-list h6{font-size:clamp(20px,1.65vw,24px)!important;line-height:1.22!important}
.public-site .contact-page .r{min-width:0}
.public-site .contact-page .r a.txt{overflow-wrap:anywhere;letter-spacing:.04em}
@media(max-width:720px){.public-site .art-side-list h6{font-size:clamp(19px,4.8vw,22px)!important}}
@media(max-width:480px){
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site .book-progress{display:grid;grid-template-columns:1fr;justify-items:start;gap:10px}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site .book-progress-step{min-width:0;display:flex;gap:8px}
 :where(html:not(.assessment-booking:not(.booking-embed))) .public-site .book-progress-bar{display:none}
}

/* Keep already legible shared navigation close to its established size. */
.public-site :is(.nav-row a,.mobile-nav a,.footer-links nav a){font-size:16px!important;line-height:1.3!important}

/* Generated playlist controls and substantive disclosures are explicit roles. */
.public-site .lesson-button strong{font-size:14px!important;line-height:1.3!important}
.public-site .axis-card .label{font-size:12px!important;line-height:1.4!important;letter-spacing:.08em}
.public-site :is(.util-page .notice,.capacity-note,.lp-card .price small,.oc-card .price small){font-size:16px!important;line-height:1.55!important}
