/* Shared typography. Component aliases preserve roles on semantic content.
   No breakpoint-specific font sizes: every size resolves through tokens.css. */
body { font-family: var(--font-body); font-size: var(--type-body); line-height: var(--leading-body); }
h1, h2, h3 { font-family: var(--font-display); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-heading); line-height: var(--leading-heading); }
h1 { font-size: var(--type-h1); }
h2 { font-size: var(--type-h2); }
h3 { font-size: var(--type-h3); line-height: var(--leading-title); letter-spacing: var(--tracking-title); }
strong { font-weight: var(--weight-semibold); }
.eyebrow { font-family: var(--font-label); font-size: var(--type-caption); font-weight: var(--weight-medium); letter-spacing: var(--tracking-label); line-height: var(--leading-compact); }
.button { font-size: var(--type-small); font-weight: var(--weight-semibold); line-height: var(--leading-control); }
.text-link { font-size: var(--type-small); font-weight: var(--weight-semibold); }
.brand { font-family: var(--font-display); font-size: var(--type-brand); font-weight: var(--weight-bold); letter-spacing: var(--tracking-brand); line-height: var(--leading-solid); }
.brand-mark { font-size: var(--type-brand-mark); font-weight: var(--weight-medium); letter-spacing: var(--tracking-brand); }
.desktop-nav { font-size: var(--type-small); }
.hero h1 { font-size: var(--type-display); line-height: var(--leading-heading); }
.hero-copy > p { font-size: var(--type-lead); }
.hero-secondary { font-size: var(--type-small); font-weight: var(--weight-medium); }
.hero-teacher span { font-size: var(--type-caption); line-height: var(--leading-compact); }
.hero-facts > span { font-size: var(--type-small); }
.orbit-label { font-family: var(--font-label); font-size: var(--type-caption); letter-spacing: var(--tracking-label); }
.prompt-note p { font-size: var(--type-small); line-height: var(--leading-compact); }
.browser-chrome { font-size: var(--type-caption); }
.app-topline { font-family: var(--font-label); font-size: var(--type-caption); letter-spacing: var(--tracking-label); }
.app-heading .demo-title { font-size: var(--type-h3); line-height: var(--leading-title); letter-spacing: var(--tracking-title); }
.calc-form label { font-size: var(--type-small); font-weight: var(--weight-medium); }
.stepper input { font-family: var(--font-display); font-size: var(--type-subheading); font-weight: var(--weight-medium); }
.stepper button { font-size: var(--type-subheading); }
.calc-rate { font-size: var(--type-caption); }
.calc-result > span { font-size: var(--type-caption); }
.calc-result > span:first-child { font-family: var(--font-label); letter-spacing: var(--tracking-label); }
.calc-result > strong { font-family: var(--font-display); font-size: var(--type-price); font-weight: var(--weight-medium); letter-spacing: var(--tracking-title); line-height: var(--leading-title); }
.calc-result > strong small { font-size: var(--type-unit); }
.app-footer { font-size: var(--type-caption); }
.art-caption { font-size: var(--type-small); }
.art-caption small { font-size: var(--type-caption); }
.belief-strip .shell > span { font-size: var(--type-small); }
.belief-strip strong { font-family: var(--font-display); font-size: var(--type-body); font-weight: var(--weight-medium); letter-spacing: var(--tracking-title); }
.section-heading > p { font-size: var(--type-body); }
.card-category { font-size: var(--type-caption); font-weight: var(--weight-medium); line-height: var(--leading-compact); }
.card-index { font-family: var(--font-label); font-size: var(--type-caption); }
.card-visual-copy { font-family: var(--font-display); font-size: var(--type-feature); font-weight: var(--weight-medium); line-height: var(--leading-title); letter-spacing: var(--tracking-title); }
.card-level { letter-spacing: var(--tracking-label); }
.card-title { font-size: var(--type-h3); line-height: var(--leading-title); letter-spacing: var(--tracking-title); }
.card-body > p:not(.course-status) { font-size: var(--type-body); }
.card-facts { font-size: var(--type-small); }
.price > strong { font-family: var(--font-display); font-size: var(--type-price); line-height: var(--leading-title); font-weight: var(--weight-medium); letter-spacing: var(--tracking-title); }
.price > span { font-size: var(--type-small); line-height: var(--leading-compact); }
.card-link { font-size: var(--type-small); font-weight: var(--weight-medium); }
.course-status { font-size: var(--type-small); }
.section-footnote { font-size: var(--type-small); }
.step-number { font-family: var(--font-label); font-size: var(--type-caption); }
.method-grid p { font-size: var(--type-body); }
.photo-label { font-size: var(--type-caption); }
.teacher-copy > .lead { font-size: var(--type-lead); }
.teacher-credentials { font-size: var(--type-small); }
.faq-list summary { font-size: var(--type-body); line-height: var(--leading-compact); font-weight: var(--weight-medium); }
.faq-list details > p { font-size: var(--type-body); }
.closing-section h2 { font-size: var(--type-h1); }
.closing-monogram { font-family: var(--font-display); font-size: var(--type-monogram); font-weight: var(--weight-medium); line-height: var(--leading-solid); letter-spacing: var(--tracking-monogram); }
.closing-monogram > span { font-size: var(--type-monogram); line-height: var(--leading-solid); }
.footer-top > p { font-size: var(--type-small); }
.footer-top > a:last-child { font-size: var(--type-small); }
.footer-bottom { font-size: var(--type-caption); }
.page-intro > p { font-size: var(--type-lead); }
.filter { font-size: var(--type-small); line-height: var(--leading-control); }
.team-banner h2 { font-size: var(--type-h3); }
.team-banner p { font-size: var(--type-small); }
.breadcrumb { font-size: var(--type-small); }
.seminar-heading p { font-size: var(--type-lead); }
.seminar-emblem > span { font-family: var(--font-display); font-size: var(--type-emblem); }
.seminar-facts { font-size: var(--type-small); }
.seminar-nav a { font-size: var(--type-small); }
.seminar-nav a:last-child { font-weight: var(--weight-semibold); }
.detail-main h2 { font-size: var(--type-h2); }
.detail-main > h3 { font-size: var(--type-subheading); letter-spacing: var(--tracking-title); }
.detail-main > .lead { font-size: var(--type-lead); }
.outcome-list li { font-size: var(--type-body); line-height: var(--leading-body); }
.curriculum > article > span { font-family: var(--font-label); font-size: var(--type-caption); }
.curriculum h3 { font-size: var(--type-subheading); letter-spacing: var(--tracking-title); }
.curriculum p { font-size: var(--type-body); }
.scope-note p { font-size: var(--type-small); }
.booking-panel h2 { font-size: var(--type-h3); line-height: var(--leading-title); letter-spacing: var(--tracking-title); }
.booking-panel .price > strong, .checkout-box .price > strong { font-size: var(--type-price); }
.booking-panel .price > span, .checkout-box .price > span { font-size: var(--type-small); }
.booking-panel .course-status { font-weight: var(--weight-medium); }
.booking-panel > p:not(.course-status) { font-size: var(--type-small); }
.booking-benefits { font-size: var(--type-small); }
.panel-teacher span { font-size: var(--type-small); line-height: var(--leading-compact); }
.session-list { font-size: var(--type-small); }
.session-list small { font-size: var(--type-caption); }
.checkout-layout h1 { font-size: var(--type-h1); }
.checkout-layout .lead { font-size: var(--type-lead); }
.checkout-facts { font-size: var(--type-small); }
.checkout-benefits h2 { font-size: var(--type-h3); }
.booking-notice h2 { font-size: var(--type-h3); }
.booking-notice p { font-size: var(--type-small); }
.booking-request > .text-link { font-size: var(--type-small); line-height: var(--leading-compact); }
.booking-request > small { font-size: var(--type-caption); }
.fine-print { font-size: var(--type-small); }
.booking-provider > p { font-size: var(--type-small); }
.widget-feedback { font-size: var(--type-small); }
.direct-booking-link { font-size: var(--type-small); }
.booking-row h2 { font-size: var(--type-h3); }
.booking-row p { font-size: var(--type-small); }
.booking-row > span:not(.row-symbol) { font-size: var(--type-body); }
.project-grid > a > span { font-family: var(--font-label); font-size: var(--type-caption); letter-spacing: var(--tracking-label); }
.project-grid p { font-size: var(--type-body); }
.prose h2 { font-size: var(--type-h3); }
.prose p { font-size: var(--type-body); }
.contact-card .button { font-size: var(--type-small); }
.type-display { font-family: var(--font-display); font-size: var(--type-display); line-height: var(--leading-heading); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-heading); }
.type-page-title { font-family: var(--font-display); font-size: var(--type-h1); line-height: var(--leading-heading); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-heading); }
.type-section-title { font-family: var(--font-display); font-size: var(--type-h2); line-height: var(--leading-heading); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-heading); }
.type-card-title { font-family: var(--font-display); font-size: var(--type-h3); line-height: var(--leading-title); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-title); }
.type-feature { font-family: var(--font-display); font-size: var(--type-feature); line-height: var(--leading-title); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-title); }
.type-subheading { font-family: var(--font-display); font-size: var(--type-subheading); line-height: var(--leading-title); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-title); }
.type-lead { font-family: var(--font-body); font-size: var(--type-lead); line-height: var(--leading-body); font-weight: var(--weight-regular); letter-spacing: normal; }
.type-body { font-family: var(--font-body); font-size: var(--type-body); line-height: var(--leading-body); font-weight: var(--weight-regular); letter-spacing: normal; }
.type-meta { font-family: var(--font-body); font-size: var(--type-small); line-height: var(--leading-compact); font-weight: var(--weight-regular); letter-spacing: normal; }
.type-label { font-family: var(--font-label); font-size: var(--type-caption); line-height: var(--leading-compact); font-weight: var(--weight-medium); letter-spacing: var(--tracking-label); }
.type-price { font-family: var(--font-display); font-size: var(--type-price); line-height: var(--leading-title); font-weight: var(--weight-medium); letter-spacing: var(--tracking-title); }
