:root {
  /* === Colors === */
  --color-text-main: #444;
  --color-heading: #0d206b;          /* Dark blue for main headings */
  --color-heading-alt: #2c3e50;      /* Slightly muted blue for title */
  --color-subtitle: #666;            /* Subtitle text */
  --color-accent: #2597e8;       /* #249e7c, #29AB87 */    /* Light blue-green */
  --color-border: #ccc;              /* Borders and separators */
  --color-background-topbar: #f4f4f4;/* Light grey background for topbar */
  --color-section: #0d206b;          /* Section headings */
  --color-link: black;               /* Link color */
}

@page:first {
  margin-top: 0in;
}

@page {
  size: letter portrait;
  margin-left:0;
  margin-right:0;
  margin-top: 0.8in;
  margin-bottom: 0.5in;
}

* {
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

:root {
  --page-width: 10.8in;
  --page-height: 11in;
  --main-width: 10.8in;
  --decorator-horizontal-margin: 0.0in;
  --sidebar-horizontal-padding: 0.0in;
  --row-blocks-padding-top: 5pt;
  --date-block-width: 0.9in;
  --main-blocks-title-icon-offset-left: -19pt;
  --body-font-size: 12pt;
}

body {
  width: var(--page-width);
  height: var(--page-height);
  margin: 0;
  font-family: "verdana", sans-serif;
  font-weight: 300;
  line-height: 1.4;
  color: var(--color-text-main);
  hyphens: auto;
}

h1, h2, h3 {
  margin: 0;
  color: var(--color-heading);
}

li {
  list-style-type: none;
}

.justified {
  text-align: justify;
}

a {
  text-decoration: none;
  color: var(--color-link);
}

h4 {margin-bottom: 0;}

#main {
  width: 100%;
  padding-left: 0.0in;
  padding-right: 0.0in;
  margin-left: 0.7in;
  margin-right: 0.5in;
  margin-top: 0.0in;
  font-size: 7pt;
  box-sizing: border-box;
}

/* Title Header */
#title {
  position: relative;
  left: 0.0in;
  margin-bottom: 0.3in;
  line-height: 1.2;
}
#title h1 {
  font-weight: 500;
  font-size: 16pt;
  line-height: 1.5;
  color: var(--color-heading-alt);
}
#title h1 strong {
  font-weight: 600;
}
.subtitle {
  font-size: 14pt;
  color: var(--color-subtitle);
}



/* Section Titles */
#main h2 {
  position: relative;
  top: var(--row-blocks-padding-top);
  left: calc(var(--date-block-width) + var(--decorator-horizontal-margin));
  font-weight: 600;
  font-size: 14pt;
  color: var(--color-accent);
}
#main h2 > i {
  position: absolute;
  left: var(--main-blocks-title-icon-offset-left);
  z-index: 1;
  color: var(--color-accent);
}
#main h2::after {
  content: " ";
  display: block;
  border-left: 0px solid var(--color-border);
  height: calc(var(--row-blocks-padding-top) * 2);
  position: relative;
  top: calc(-1 * var(--row-blocks-padding-top));
  left: calc(-1 * var(--decorator-horizontal-margin));
  z-index: 0;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 columns */
  gap: 8px 20px; /* row gap, column gap */
  margin-top: 5px;
}

.contact-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.95rem;
}

.contact-item i {
  color: #444;
}



.main-block.concise .details p {
  margin: 0;
}

.main-block.concise .details > div,
.main-block.concise .details > p {
  font-size: var(--body-font-size);
  line-height: 1.4;
}

/* Layout Blocks */
.blocks {
  display: flex;
  flex-flow: row nowrap;
}
.blocks > div {
  padding-top: var(--row-blocks-padding-top);
  font-size: var(--body-font-size);
}

.date {
  flex: 0 0 var(--date-block-width);
  padding-right: var(--decorator-horizontal-margin);
  font-size: var(--body-font-size);
  text-align: right;
  line-height: 1;
}
.date span {
  display: block;
  white-space: nowrap;
}

.date span + span {
  margin-top: 2px;
}

.date span:nth-child(2)::before {
  content: "|";
  display: block;
  position: relative;
  top: 1pt;
  right: 5.5pt;
  margin-bottom: 4pt;
}
.decorator {
  flex: 0pt 2pt 2pt;
  border-left: 1px solid var(--color-border);
}

.details {
  flex: 1 0 0;
  padding-left: var(--decorator-horizontal-margin);
}
.details h3 {
  font-size: var(--body-font-size);
  color: var(--color-heading);
}
.details .place {
  float: left;
  font-size: var(--body-font-size);
}
.details .location {
  float: right;
  font-size: var(--body-font-size);
}
.details div {
  clear: both;
  margin: 0.18in 0 0.1in 0;
}

.details ul li {
  font-size: var(--body-font-size);
  line-height: 1.4;
}

#main ul {
  padding-left: 0.07in;
  margin: 0.08in 0;
}
#main li {
  margin: 0 0 0.025in 0;
}
#main li::before {
  content: "• ";
  position: relative;
  margin-left: -4.25pt;
}

ul.talks,
ul.talks li,
ul.talks a {
  font-size: var(--body-font-size);
}

/* TOPBAR */
#topbar {
  background-color: var(--color-background-topbar);
  padding: 25px 5px 9px 0px;
  border-bottom: 0px solid var(--color-border);
  margin-bottom: 10px;
  margin-left: 0px;
  margin-top: 30px;
}

.topbar-content {
  display: flex;
  flex-direction: column;
  gap: 5px;
  max-width: 1200px;
  width: 100%;
}

/* Row with name/subtitle on left, image on right */
.header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

/* Left text block */
.text-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

#title {
  margin: 0;
  margin-left: 10.0em;
  margin-bottom: 0.5em;
  margin-top: -0.3em;
  font-size: 27pt;
  color: var(--color-heading);
  font-family: "verdana";
  font-weight: 300;
}

.subtitle {
  font-size: 2em;
  color: var(--color-subtitle);
}

/* Profile image on the right */
.profile-img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
}

/* Contact info below everything */
.contact-info {
  font-size: 13pt;
  line-height: 1.4;
  margin-left: 3.5em;
  margin-bottom: 0.5em;
}

.contact-line {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.contact-info i {
  color: var(--color-accent);
}

.contact-info a {
  text-decoration: none;
  color: inherit;
}

.separator {
  color: var(--color-border);
}

.jobDescription {
  font-size: var(--body-font-size);
}

.sectionColor {
  color: var(--color-section);
}

.researchInterests {
  font-size: var(--body-font-size);
}

.grants {
  font-size: var(--body-font-size);
}

.section {
  font-size: 2.0em;
  color: var(--color-section);
  font-family: "verdana";
  font-weight: 600;
}

.articles {
  font-family: "verdana";
  font-size: 12pt;
  line-height: 1.5;
}
