/* One type system for every public page and the school workspace.
   Page styles own layout; text sizes, weights and rhythm live here. */
@font-face{font-family:Inter;src:url('/assets/inter-variable-693b77d4f32e.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --font-family:Inter,Arial,sans-serif;
  --text-caption:.75rem;
  --text-small:.875rem;
  --text-body:1rem;
  --text-lead:1.125rem;
  --text-card:1.25rem;
  --text-section:1.5rem;
  --text-title:2rem;
  --text-display:3rem;
  --line-body:1.5;
  --line-reading:1.65;
  --line-heading:1.25;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
}
html{font-size:100%;font-synthesis:none;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--line-body);letter-spacing:0;font-optical-sizing:auto}
button,input,select,textarea{font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--line-body);letter-spacing:0}
button,.primary-button,.outline-button,.search-submit,.sort-submit{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--line-body)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-weight:var(--weight-semibold);line-height:var(--line-heading);letter-spacing:-.025em}
h1{font-size:var(--text-title)}
h2{font-size:var(--text-section)}
h3{font-size:var(--text-card)}
h4,h5,h6{font-size:var(--text-body)}
strong,b{font-weight:var(--weight-semibold)}
small{font-size:var(--text-small)}
label,legend,.field-label{font-size:var(--text-small);font-weight:var(--weight-semibold);line-height:var(--line-body)}
/* Titles retain one scale, including errors, receipts and long school names. */
main h1{font-size:var(--text-title);font-weight:var(--weight-semibold);line-height:var(--line-heading);letter-spacing:-.03em}
.hero:not(.hero--browse) h1,.home-intro h1{font-size:var(--text-display);letter-spacing:-.04em}
.hero--browse h1{font-size:var(--text-title)}
/* A lead introduces a page. It has the same size in each page family. */
.hero>p,.home-intro p,.browse-intro>p,.page-heading>p,.editorial-deck,
.form-page-header>p,.workspace-header>p,.form-result-copy>p,
.city-intro,.document-deck,.location-heading>p,
.comparison-intro .page-heading>p{font-size:var(--text-lead);line-height:var(--line-reading)}
/* Section, card and rail headings are roles rather than page-specific sizes. */
.profile-copy h2,.form-panel-heading h2,.workspace-section-heading h2,
.workspace-intro-section h2,.guide-section-heading h2,.document-section h2,
.editorial-finish h2,.guide-finish h2,.location-section-heading h2,
.city-guide-heading h2,.results-heading h2,.how-intro h2,.dialog-heading h2{font-size:var(--text-section)}
.profile-media-summary h2,.profile-contact-intro h2,.form-context-card h2,
.workspace-intro-note h2,.workspace-item-heading :is(h2,h3),.workspace-detail-card h2,
.editorial-context h2,.region-card h2,.region-action-heading h2,.region-information-card h3,
.card-heading h3,.offer-card h3,.instructor-card h3,.guide-card h3,.guide-steps h3,
.guide-reading-note h3,.guide-hero-card h2,.city-guide-grid h3,.steps h3,
.region-detail-card h2,.location-card h2,.comparison-school{font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:var(--line-heading);letter-spacing:-.02em}
.form-reference h2,.editorial-toc h2,.guide-source-note h3{font-size:var(--text-small);font-weight:var(--weight-semibold);letter-spacing:0;line-height:var(--line-body)}
/* Comfortable reading text; compact metadata stays at 14 px, never 8–11 px. */
.profile-copy p,.guide-section p,.guide-section li,.document-section p,.document-section li,
.editorial-copy p,.editorial-copy li,.form-context-card p,.form-faq-list p,
.form-panel-heading p,.workspace-message,.workspace-detail-card p,.city-guide-grid p,
.region-information-card p,.guide-hero-card p,.how-intro p{line-height:var(--line-reading)}
.profile-breadcrumb,.profile-meta-line,.profile-sections,.profile-source-link,
.profile-contact-intro>p,.guide-context-list li,.guide-source-note p,.profile-provenance summary,.card-location,.card-reviews,.card-description,.review-status,
.external-review-card,.card-price>span,.card-offer-link,.compare-check,
.data-note,.table-hint,.inline-note,.guide-section-note,.guide-section-heading>.eyebrow,
.contact-field-error,.contact-consent,.form-school-summary,.form-context-location,
.form-back-link,.form-reference,.form-school-card>.eyebrow,
.workspace-item-meta,.workspace-item-facts,.workspace-detail-note,.workspace-login-footer,
.workspace-pagination,.practical-grid dt,.cbr-source-context,.cbr-source-note,
.review-meta,.review-source,.instructor-caption,.instructor-card>p,
.editorial-related-nav,.document-related-nav,.editorial-toc,.editorial-context>p,
.document-version,.document-meta,.document-draft,.city-breadcrumb,.city-facts p,
.location-breadcrumb,.location-count,.location-context,.region-source-context,
.comparison-breadcrumb,.comparison-scope,.comparison-table-heading,
.pagination,.filter-field,.choice-hint,.filter-choice-list label,.filter-actions p,
.filter-chip,.category,.saved-filter,.sort-control label,.hero-notes,.selection-note,
.footer-main p,.footer-links,.footer-bottom,.prototype-details{font-size:var(--text-small);line-height:var(--line-body)}
.practical-grid dd,.profile-media-summary>p,.contact-form textarea,.workspace-login input[type=password]{font-size:var(--text-body)}
.eyebrow,.profile-keyfacts,.cover-label,.illustration-label,.workspace-status,
.profile-media-summary>.eyebrow,.profile-caption,
.offer-kind,.offer-scope,.offer-check,.source-badge,.city-scope-label,
.filter-choice-list small,
.preview-notice{font-size:var(--text-caption);line-height:var(--line-body);letter-spacing:.01em}
.eyebrow,.cover-label,.workspace-status,.profile-media-summary>.eyebrow{font-weight:var(--weight-semibold)}
.text-link{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--line-body);letter-spacing:0}
.main-nav,.school-link,.language-switch,.guide-topics,.guide-topics a,
.profile-header-actions .outline-button{font-size:var(--text-small);font-weight:var(--weight-semibold);line-height:var(--line-body)}
.category,.filter-choice-list label,.compare-check{font-weight:var(--weight-medium)}
.search-bar :is(input,select),.filter-field :is(input,select),.sort-control select,
.contact-form :is(input,select,textarea){font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--line-body)}
.field-label{font-size:var(--text-small);font-weight:var(--weight-semibold)}
/* Prices and statistics are distinct from headings, but share one number style. */
.card-price strong,.offer-amount,.offer-panel-price h2,.comparison-price td{
  font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:1.3;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.guide-price-example dd,.city-fact-count,.review-summary>strong,.cbr-selected-summary>strong{
  font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:var(--line-heading);letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.offer-amount small,.offer-panel-price :is(p,small),.comparison-price td :is(p,small,.data-note){font-size:var(--text-small);font-weight:var(--weight-regular);line-height:var(--line-body);letter-spacing:0}
table{font-size:var(--text-small);line-height:var(--line-body)}
thead th,.comparison-table thead th{font-weight:var(--weight-semibold)}
tbody th{font-weight:var(--weight-medium)}
.comparison-table .comparison-school{font-size:var(--text-card)}
.comparison-table .cbr-source-result h3,.comparison-table .instructor-card h3{font-size:var(--text-body)}
.comparison-table .data-note{font-size:var(--text-small)}
.guide-faq summary,.form-faq-list summary,.profile-section details>summary{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--line-body)}
.profile-lightbox h2{font-size:var(--text-body);font-weight:var(--weight-semibold);letter-spacing:0}
.profile-lightbox :is(p,output,a){font-size:var(--text-small);line-height:var(--line-body)}
.profile-mobile-action{font-size:var(--text-small);line-height:var(--line-body)}
.profile-mobile-action .primary-button{font-size:var(--text-body)}
.footer-wordmark{font-size:var(--text-section);font-weight:var(--weight-bold);line-height:1.25;letter-spacing:-.04em}
.footer-wordmark>span{font-size:var(--text-caption)}
#action-status{font-size:var(--text-small);line-height:var(--line-body)}
@media(max-width:680px){:root{--text-title:1.75rem;--text-section:1.375rem;--text-display:2.25rem}}
