@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700&display=swap');
/* Shared public-site roles. Reading prose and metadata retain their original faces. */

/* Replace the legacy mono face site-wide without changing component metrics. */
:root { --display: 'EB Garamond', Georgia, serif; --mono: 'EB Garamond', Georgia, serif; }
/* All story attribution text shares Garamond, including italic company names. */
figure.story .who, figure.story .role, figure.story .dest { font-family: 'EB Garamond', Georgia, serif; }
h1,h2,h3,h4 { font-family: var(--display); }
/* Preserve the original signature homepage headline, including its italic emphasis. */
h1.hero__title { font-family: 'Fraunces', Georgia, 'Times New Roman', serif; }
.label, .hero__eyebrow { font-family: 'EB Garamond', Georgia, serif; }
.btn,.btn-quiet,.dept__link,nav.primary .navlink,nav.primary .navtrigger,nav.primary .nav-cta,.menu a,.drawer a,.drawer .sub a,.drawer a.nav-cta { font-family: 'Source Sans 3', sans-serif; }
/* Navigation only: never target the masthead wordmark. */
nav.primary .navlink,nav.primary .navtrigger,nav.primary .nav-cta,.masthead .menu a,.drawer a,.drawer .sub a,.drawer a.nav-cta { font-family: 'Optima', 'Lato', sans-serif !important; }
/* Consistent consultation button typography across header, drawer and page. */
body .masthead nav.primary a.nav-cta,body .drawer a.nav-cta,body .drawer > a[href="https://calendly.com/classical-advisors/consultation"],body a.btn[href*="calendly.com/classical-advisors/consultation"] { font-family: 'Lato', sans-serif !important; font-weight: 500; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
@media (max-width: 640px) {
.label, .hero__eyebrow { text-transform: none; letter-spacing: .06em; }
}


@media(min-width:641px){
 section .label {display:flex; width:100%; max-width:100%; justify-content:center; text-align:center; gap:clamp(12px,1.1vw,16px); font-size:clamp(28px,2.3vw,32px); line-height:1.3; letter-spacing:.025em; margin-inline:auto;}
 section .label .tick,section .label::after,section .label:not(:has(.tick))::before {content:""; display:block; width:clamp(26px,2.2vw,32px); height:1px; margin:0; flex:0 0 clamp(26px,2.2vw,32px); background:var(--gild-rule);}
 section .label .label-text {min-width:0; text-wrap:balance;}
}
@media(max-width:640px){
 section .label {display:flex; width:100%; max-width:100%; justify-content:center; text-align:center; gap:10px; font-size:24px; line-height:1.3; letter-spacing:.025em; margin-inline:auto;}
 section .label .tick,section .label::after,section .label:not(:has(.tick))::before {content:""; display:block; width:22px; height:1px; margin:0; flex:0 0 22px; background:var(--gild-rule);}
 .label-text {min-width:0; text-wrap:balance;}
}
@media(max-width:350px){
 section .label {font-size:22px;}
 section .label .tick,section .label::after,section .label:not(:has(.tick))::before {width:18px; flex-basis:18px;}
}


/* Equal space from each section boundary to its label and next heading. */
.students, .stories, .partners-band, .departments, .proof, .invite {
  --label-space: clamp(32px, 4vw, 56px);
  padding-top: var(--label-space);
}
.invite .inner { padding-top: 0; }
section .label, .invite .label, .page-hero .label { margin-top: 0; margin-bottom: var(--label-space); }
section .label + h2 { margin-top: 0; }

/* Sibling UI actions use the same interface face; descriptive metadata does not. */
.hww-more a, .partner-cta, .field label, .field input, .field select, .field textarea {
  font-family: 'Source Sans 3', sans-serif;
}
/* Student status only: all numeric typography and layout remain in their original rules. */
figure.story .who { font-family: 'EB Garamond', Georgia, serif; }
/* Subpage presenting labels: the same balanced boundary/heading rhythm, without
   importing landing hero dimensions, grid layouts, or body alignment. */
.page-hero, .section:has(> .wrap > .sec-head), .section:has(> .wrap > .label) {
  --label-space: clamp(32px, 4vw, 56px);
  padding-top: var(--label-space);
}
/* Catalog sublabels remain a quieter tier than section titles. */
.accept-label {
  font-family: 'EB Garamond', Georgia, serif;
  display: flex; width: 100%; justify-content: center; text-align: center;
  gap: .8em; line-height: 1.3; font-size: 1rem; letter-spacing: .06em;
}
.accept-label::before, .accept-label::after {
  content: ''; display: block; width: 22px; height: 1px;
  flex: 0 0 22px; background: var(--gild-rule);
}
.accept-label .label-text { min-width: 0; text-wrap: balance; }

/* Short presenting text shares balanced wrapping, not smaller type or wider cards. */
h2, h3, h4, .bio .role, .bio .who, .results-note, .cite-sub,
.advisors-line, .hero__eyebrow, .kt, .philo-lede, .philo-coda,
.flow-step p:not(.flow-build), .footer__brand p,
.checklist li, .feature li, .btn { text-wrap: balance; }
/* Keep connectors intact; narrow desktop cards may need three balanced lines. */
.bio .role-prefix:first-child { white-space: nowrap; }
/* The department fits even in the narrow desktop card. Allow Head / of
   at that width rather than splitting Career Development or stranding &. */
.bio .role-subject { white-space: nowrap; }
/* Keep the two-level wording while matching every other team role's treatment. */
.bio .role-founder .role-position,
.bio .role-founder .role-specialty { display: block; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; }
/* Founder specialties use dark ink; the shared position keeps the ember accent. */
.bio .role-founder .role-specialty { color: var(--ink); }
@media (max-width: 900px), (min-width: 1100px) {
  .bio .role-prefix { white-space: nowrap; }
}
/* Prose keeps its ragged edge; pretty wrapping only discourages orphan words. */
.prose p, .bio p:not(.role):not(.who), .ledger__from,
.ledger__note, .flow-build { text-wrap: pretty; }
/* Inline links need their own line box for balanced captions in footer columns. */
.footer-grid li a { display: inline-block; max-width: 100%; text-wrap: balance; }
/* Timeline summaries and invitation captions are short presenting descriptions. */
.path p { text-wrap: balance; }
.invite .killers .kt { display: block; min-width: 0; text-wrap: balance; }
/* Compact contact/resource descriptions and the 404 link row are presenting
   text, not long-form body prose. Keep address/phone link tokens intact. */
#reach .prose p:not(:has(br)), #book .prose p:first-child,
#guides .prose p, .page-hero .prose p:has(> a.btn-quiet) { text-wrap: balance; }
.phrase { white-space: nowrap; }
#reach a[href^="sms:"], #reach a[href^="mailto:"] { white-space: nowrap; }
