/*
  Site-wide type scale. Loaded last so it sets the final sizes everywhere.
  Base: 16px, the browser default and the web standard for body text.
  Long-form lesson reading is 17px on wider screens for comfort, 16px on phones.
  Form fields stay at 16px so phones do not zoom in when they are tapped.
*/
:root{font-size:16px;line-height:1.6}
body{font-size:16px;line-height:1.6}

/* Inner pages (everything except the homepage) */
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)){font-size:16px;line-height:1.6}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h1{font-size:clamp(30px,3.2vw,40px);line-height:1.15}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h2{font-size:clamp(22px,2vw,26px);line-height:1.25}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h3{font-size:19px;line-height:1.35}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h4{font-size:17px;line-height:1.4}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .page-head p,main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .page-head+p{font-size:18px;line-height:1.6}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) :is(.lesson-side,.right-col,.panel,.next-card,.route-card,.credits-box,aside) :is(h2){font-size:20px;line-height:1.3}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .lesson-side h2{font-size:18px}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .btn{font-size:16px}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) :is(input,select,textarea){font-size:16px}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .crumb,main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) nav[aria-label="Breadcrumb"]{font-size:14px}
.page-head p,.module-intro p,.reading p,.skill-card p,.plan-links p{font-size:16px;line-height:1.6}
.module-nav button,.search,.field,input,select,textarea{font-size:16px}
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .lesson-row h3,.lesson-row h3{font-size:17px;line-height:1.4}
.lesson-row p,.activity small{font-size:14px}
.lesson-tabs button,.lesson-side a,.activity,.day-title b,.target-scores,.week-tabs button,.week-tabs a{font-size:16px}
.notice,.price p,.price li,.empty p,.prompt-list li,.radio-option,.exercise .statement{font-size:16px}
.week-overview p,.plan-note,.small{font-size:14px;line-height:1.55}
.pill,.card-label,.eyebrow,.module-nav small{font-size:13px}

/* Lesson reading text */
main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .reading :is(p,li){font-size:17px;line-height:1.7}
#written-lesson table{font-size:15px}
#written-lesson figcaption{font-size:14px}

/* Homepage */
.h-hero h1{font-size:clamp(34px,4.2vw,54px);line-height:1.08}
.h-hero-copy>p{font-size:clamp(17px,1.3vw,18px)}
.h-h2{font-size:clamp(26px,2.6vw,34px)}
.h-h2.big{font-size:clamp(28px,3vw,38px)}
.h-lead{font-size:17px}
.h-btn{font-size:16px;padding:15px 26px}
.h-stat strong{font-size:44px}

/* Phones */
@media(max-width:700px){
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)){font-size:16px}
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h1{font-size:clamp(26px,7.5vw,32px)}
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h2{font-size:21px}
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) h3{font-size:18px}
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .page-head p{font-size:16px}
  main#main:not(.homepage):where(:not(.cbt-entry,.cbt-exam-main)) .reading :is(p,li){font-size:16px;line-height:1.65}
}
