/* CV typography: one scale for headings, entries, supporting text and dates. */
.cv-page {
  --cv-date-column: 8.5rem;
  --cv-column-gap: 1.5rem;
  width: min(100%, 860px);
  margin: 2rem auto 0;
  font-size: var(--type-compact);
  line-height: 1.5;
}
.cv-header { margin-bottom: 2.75rem; }
.cv-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem 1.5rem; }
.cv-heading h1 { margin: 0; font: 500 var(--type-page)/1.15 var(--font-display); letter-spacing: -.025em; }
.cv-header p { margin: .5rem 0 0; font-size: var(--type-meta); color: var(--color-text-secondary); }
.cv-pdf { font: 500 var(--type-meta)/1.5 var(--font-display); }
.cv-section { margin: 0 0 2.75rem; }
.cv-interests { margin: 0; }
.cv-section h2 {
  margin: 0 0 1rem calc(var(--cv-date-column) + var(--cv-column-gap));
  text-align: left;
  color: var(--color-cv-heading);
  font: 600 var(--type-meta)/1.4 var(--font-display);
  letter-spacing: .065em;
  text-transform: uppercase;
}
.cv-section #cv-interests { margin-left: 0; }
.cv-entry {
  display: grid;
  grid-template-columns: var(--cv-date-column) minmax(0, 1fr);
  gap: var(--cv-column-gap);
  margin-bottom: 1.125rem;
}
.cv-entry > div { min-width: 0; text-align: left; }
.cv-entry strong { font-weight: 500; }
.cv-entry .cv-detail { color: var(--color-text-secondary); font-size: var(--type-secondary); font-weight: 400; }
.cv-entry p { margin: .125rem 0; }
.cv-entry small { display: block; margin-top: .125rem; color: var(--color-text-muted); font-size: var(--type-meta); line-height: 1.45; }
.cv-date { color: var(--color-text-muted); font-size: var(--type-meta); line-height: 1.7; text-align: right; }
.cv-date-part { white-space: nowrap; }
.cv-publications .cv-entry p { color: var(--color-text-secondary); font-size: var(--type-secondary); }
.cv-paper-title { margin: 0; font: 400 var(--type-compact)/1.4 var(--font-display); }
.cv-service-group { margin: 1.5rem 0 1.75rem; }
.cv-service-heading {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  margin: 0 0 .6rem calc(var(--cv-date-column) + var(--cv-column-gap));
}
.cv-service-heading h3 { margin: 0; font: 500 var(--type-compact)/1.4 var(--font-display); }
.cv-service-heading small { color: var(--color-text-muted); font-size: var(--type-meta); font-style: italic; }
.cv-services .cv-entry { margin-bottom: .35rem; }
@media (max-width: 600px) {
  .cv-page { --cv-date-column: 4.5rem; --cv-column-gap: .625rem; }
  .cv-date { font-size: var(--type-caption); line-height: 1.5; overflow-wrap: anywhere; }
}
