@charset "UTF-8";
/* ========================================================
 * General styles.
 * ===================================================== */
/* --------------------------------------------------------
 * Colors.
 * ----------------------------------------------------- */
/* Dartmouth colors */
/* Menu colors */
/* --------------------------------------------------------
 * Media breakpoints.
 * ----------------------------------------------------- */
/* Conversions based on 16px body size:
 * 639px:  39.938em
 * 640px:  40em
 * 800px:  50em
 * 899px:  56.188em
 * 900px:  56.25em
 * 1100px:  68.75em
 * 1400px:  87.5em
 */
/* "medium-high" currently only used for some responsive tables. */
body {
  font-family: "National 2", sans-serif;
  font-size: 0.875rem;
  font-style: normal;
  font-variant: normal;
  font-weight: 400;
  line-height: 24px;
  color: #555;
  margin: 0;
  padding: 0px;
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
  body {
    -webkit-text-size-adjust: none;
  }
}
/* "italics", not "slanted" /*
/* i {
  font-family: 'Dartmouth Ruzicka', serif;
  font-style: italic;
} */
span.alternate-voice {
  /* This is temporary while I look into the above use of the <i> tag, which
  is used pretty heavily on our website.  According to HTML5 spec:
  'The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration...' */
  font-style: italic;
}

img {
  border-style: none;
  border-width: 0px;
}

a {
  color: inherit;
  text-decoration: none;
  border-bottom: 2px solid lightgray;
}

a:hover {
  border-bottom: 2px solid #424141;
}

a.clickable-image {
  border-bottom: none;
}

h1 {
  color: #003333;
}

h2 {
  color: #003333;
  font-family: "Open Sans", sans-serif;
}

h3 {
  color: #003333;
}

/* ========================================================
 * Other styles.
 * ===================================================== */
.showcase {
  font-weight: bold;
}

.photo-credit {
  font-style: italic;
  font-weight: lighter;
  padding-left: 0.3em;
}

/* Background to use for some header elements. */
.background {
  background: #e2e2e2;
  padding: 0.55em;
}

/* Basic flexbox row style. */
.flex-row-wrap {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

/* Generic flexbox: image left, text right. */
/* Currently used for first-year-students/suggested-courses/. */
.parent-image-with-text {
  display: flex;
  flex-direction: column;
}
@media (min-width: 56.25em) {
  .parent-image-with-text {
    flex-direction: row;
  }
}

.parent-image-with-text > img {
  align-self: center;
  margin-bottom: 1em;
}
@media (min-width: 56.25em) {
  .parent-image-with-text > img {
    flex: 0 0 230px;
    margin-right: 2em;
  }
}

@media (min-width: 68.75em) {
  .child-text {
    flex-basis: 60%;
  }
}

.child-text ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

/* Temp class for fixing undergraduate/orgs page. */
.temp-image-with-text {
  display: flex;
  flex-direction: column;
}
@media (min-width: 68.75em) {
  .temp-image-with-text {
    flex-direction: row;
    width: 80%;
  }
}

.temp-image-with-text > .image {
  flex: 1 0 0%;
  text-align: center;
}

.temp-image-with-text > .image a {
  border-bottom: none;
}

.temp-image-with-text > .image img {
  max-width: 350px;
  margin-top: 1em;
  margin-bottom: 1em;
}
@media (min-width: 68.75em) {
  .temp-image-with-text > .image img {
    margin-left: 2em;
    margin-right: 2em;
  }
}

.temp-image-with-text > .text {
  flex: 3 0 0%;
}
@media (min-width: 68.75em) {
  .temp-image-with-text > .text {
    margin-right: 0.2em;
  }
}

/* Legacy table. */
.legacy-table thead tr {
  background-color: #89aaba;
}

.legacy-table > tbody > tr:nth-child(odd) {
  background-color: #f7f7f7;
}

.legacy-table > tbody > tr:nth-child(even) {
  background-color: #e4ebe7;
}

/*.legacy-table tbody>tr:nth-child(odd) {
  background-color: #e4ebe7;
}

.legacy-table tbody>tr:nth-child(even) {
  background-color: $web-gray-1;
}*/
/* Responsive table: pivots at smaller widths. */
table.responsive-table {
  width: 100%;
  border-spacing: 2px;
  border-collapse: separate;
}

.responsive-table thead tr, tfoot tr {
  background-color: #89aaba;
}

.responsive-table tbody tr:nth-child(odd) {
  background-color: #e4ebe7;
}

.responsive-table tbody tr:nth-child(even) {
  background-color: #f7f7f7;
}

.responsive-table tbody tr td:first-of-type {
  font-weight: bold;
}

.responsive-table th, .responsive-table td {
  text-align: left;
  padding: 0.7em;
}

.responsive-table tr {
  border-bottom: 1px solid #DDD;
}

@media screen and (max-width: 800px) {
  .responsive-table thead {
    display: none;
  }
  .responsive-table tr {
    display: block;
    margin: 0.5em 0;
    border: 1px solid rgba(3, 3, 3, 0.2);
    margin-bottom: 10px;
    border-bottom: 2px solid #ddd;
  }
  .responsive-table td, .responsive-table th {
    border: 0.5px solid rgba(3, 3, 3, 0.2);
    padding: 0.5em;
  }
  .responsive-table td {
    display: block;
    text-align: right;
  }
  .responsive-table td:before {
    content: attr(data-label) ":  ";
    font-weight: bold;
    float: left;
  }
}
/* End responsive table. */
/* Responsive table with sticky header and footer,
   mobile-first method. Currently specific to 'Typical
   Course Offerings' page.
*/
.responsive-table-sticky-header-footer {
  width: 100%;
  line-height: 1.3rem;
  border-spacing: 2px;
  border-collapse: separate;
}
.responsive-table-sticky-header-footer thead, .responsive-table-sticky-header-footer tfoot {
  position: sticky;
}
.responsive-table-sticky-header-footer thead {
  inset-block-start: 0; /* "top" */
  display: none; /* consider using hidden visibility */
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer thead {
    display: table-header-group;
  }
}
.responsive-table-sticky-header-footer tfoot {
  display: none;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer tfoot {
    display: table-footer-group;
    inset-block-end: 0; /* "bottom" */
  }
}
.responsive-table-sticky-header-footer thead tr, .responsive-table-sticky-header-footer tfoot tr {
  background-color: #89aaba;
}
.responsive-table-sticky-header-footer tbody tr:nth-child(odd) {
  background-color: #e4ebe7;
}
.responsive-table-sticky-header-footer tbody tr:nth-child(even) {
  background-color: #f7f7f7;
}
.responsive-table-sticky-header-footer tbody {
  font-size: 0.9rem;
}
.responsive-table-sticky-header-footer .check {
  font-size: 1.2em;
}
.responsive-table-sticky-header-footer tr {
  display: block;
  margin: 0.5em 0;
  border: 1px solid rgba(3, 3, 3, 0.2);
  margin-bottom: 10px;
  border-bottom: 1px solid #ddd;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer tr {
    display: table-row;
  }
}
.responsive-table-sticky-header-footer td {
  display: block;
  text-align: right;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer td {
    text-align: left;
  }
}
.responsive-table-sticky-header-footer td:first-of-type {
  font-weight: bold;
}
.responsive-table-sticky-header-footer td:empty {
  display: none;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer td:empty {
    display: table-cell;
  }
}
.responsive-table-sticky-header-footer td:before {
  content: attr(data-label) ":  ";
  font-weight: bold;
  float: left;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer td:before {
    display: none;
  }
}
.responsive-table-sticky-header-footer th, .responsive-table-sticky-header-footer td {
  border: 0.5px solid rgba(3, 3, 3, 0.2);
  padding: 0.5em;
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer th, .responsive-table-sticky-header-footer td {
    display: table-cell;
    border: none;
    padding: 0.7em;
  }
}
@media (min-width: 40em) {
  .responsive-table-sticky-header-footer .ten {
    width: 10%;
  }
  .responsive-table-sticky-header-footer .fifty {
    width: 40%;
  }
  .responsive-table-sticky-header-footer .five {
    width: 5%;
  }
  .responsive-table-sticky-header-footer .twenty {
    width: 20%;
  }
}

/* END esponsive table with sticky header and footer,
/* mobile-first method. */
/* Original fixed table header test. */
.sticky {
  line-height: 1.3rem;
}
.sticky .check {
  font-size: 1.2em;
}
.sticky table {
  width: 100%;
}
.sticky table tbody {
  font-size: 0.9rem;
}
.sticky table td:empty {
  display: none;
}
.sticky table thead,
.sticky table tfoot {
  position: sticky;
}
.sticky table thead {
  inset-block-start: 0; /* "top" */
}
@media screen and (max-width: 800px) {
  .sticky table tfoot {
    display: none;
  }
}
@media screen and (min-width: 801px) {
  .sticky table tfoot {
    inset-block-end: 0; /* "bottom" */
  }
}
@media screen and (min-width: 801px) {
  .sticky table td:empty {
    display: block;
  }
  .sticky .ten {
    width: 10%;
  }
  .sticky .fifty {
    width: 40%;
  }
  .sticky .five {
    width: 5%;
  }
  .sticky .twenty {
    width: 20%;
  }
}

/* End Fixed table header test. */
#webpage-content .responsive-image {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 560px; /* Rather arbitrary for now; generalize this. */
}

#webpage-content figure.research-group .responsive-image {
  max-width: 300px;
}

#webpage-content .gallery .responsive-image {
  max-width: 415px;
}

/* Sarunas, 2010.10.14 */
/* <td nowrap="nowrap"> is deprecated */
.nowrap {
  white-space: nowrap;
}

/* ========================================================
 * Fonts.
 * ===================================================== */
/* Dartmouth fonts */
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-Regular.otf");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-RegularItalic.otf");
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-Light.otf");
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-LightItalic.otf");
  font-weight: 300;
  font-style: italic;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-Medium.otf");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-MediumItalic.otf");
  font-weight: 500;
  font-style: italic;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-Bold.otf");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-BoldItalic.otf");
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-Extrabold.otf");
  font-weight: 800;
  font-style: normal;
}
@font-face {
  font-family: "National 2";
  src: url("/include/fonts/National2-ExtraboldItalic.otf");
  font-weight: 800;
  font-style: italic;
}
@font-face {
  font-family: "Dartmouth Ruzicka";
  src: url("/include/fonts/DartmouthRuzicka-Regular.ttf");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Dartmouth Ruzicka";
  src: url("/include/fonts/DartmouthRuzicka-RegularItalic.ttf");
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: "Dartmouth Ruzicka";
  src: url("/include/fonts/DartmouthRuzicka-Bold.ttf");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "Dartmouth Ruzicka";
  src: url("/include/fonts/DartmouthRuzicka-BoldItalic.ttf");
  font-weight: bold;
  font-style: italic;
}
/* Other fonts */
@font-face {
  font-family: "Raleway";
  font-weight: 500;
  font-style: normal;
  src: local("Raleway Medium"), local("Raleway-Medium"), url("/include/fonts/Raleway-Medium.ttf");
}
@font-face {
  font-family: "Source Sans Pro";
  src: local("Source Sans Pro Light"), local("SourceSansPro-Light"), url("/include/fonts/SourceSansPro-Light.ttf");
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: "Source Sans Pro";
  src: local("Source Sans Pro Regular"), local("SourceSansPro-Regular"), url("/include/fonts/SourceSansPro-Regular.ttf");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "Open Sans";
  src: url("/include/fonts/OpenSans-Regular.ttf");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Open Sans";
  src: url("/include/fonts/OpenSans-Semibold.ttf");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "Open Sans";
  src: url("/include/fonts/OpenSans-Italic.ttf");
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: "Open Sans";
  src: url("/include/fonts/OpenSans-SemiboldItalic.ttf");
  font-weight: bold;
  font-style: italic;
}
/* --------------------------------------------------------
 * Main grid wrapper for the home page.
 * ----------------------------------------------------- */
#homepage-wrapper {
  display: grid;
  grid-gap: 0px;
  grid-template-areas: "masthead" "welcome" "announcements" "calendar" "news-item-1" "news-item-2" "news-item-3" "more-news" "publications" "publication-1" "publication-2" "publication-3" "more-publications" "footer";
}
@media (min-width: 56.25em) {
  #homepage-wrapper {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto; /* do we need this?? */
    grid-template-areas: "masthead masthead masthead" "nav nav nav" "announcements welcome calendar" "announcements welcome calendar" "news-item-1 news-item-2 news-item-3" ". . more-news" "publications publications publications" "publication-1 publication-2 publication-3" ". . more-publications" "footer footer footer";
  }
}

/* ========================================================
 * Masthead: a nested grid inside homepage-wrapper.
 * ===================================================== */
#masthead {
  display: grid;
  grid-area: masthead;
  grid-gap: 10px;
  grid-template-areas: "banner" "logo" "environment" "mastlinks" "menu-toggle";
  margin-left: 20px;
}
@media (min-width: 40em) {
  #masthead {
    padding-top: 30px;
    grid-template-areas: "banner logo" "environment environment" "mastlinks ." "menu-toggle menu-toggle";
  }
}
@media (min-width: 56.25em) {
  #masthead {
    grid-gap: 0px;
    grid-template-columns: 1fr 1fr 150px;
    grid-template-areas: "banner mastlinks logo" "environment environment environment";
  }
}

/* --------------------------------------------------------
 * homepage-footer: a nested grid inside homepage-wrapper.
 * ----------------------------------------------------- */
#homepage-footer {
  display: grid;
  grid-area: footer;
  grid-gap: 20px;
  padding: 10px;
  margin-top: 20px;
  font-family: "Open Sans", sans-serif;
  font-weight: normal;
  font-size: 0.8rem;
  color: #e2e2e2;
  background-color: #424141;
  border-top: 25px solid #e2e2e2;
  margin-bottom: 10px;
  grid-template-columns: 2fr 1fr;
  grid-template-areas: "powered-by intranet-logo" "contact-info contact-info";
}
@media (min-width: 40em) {
  #homepage-footer {
    grid-template-columns: 3fr 5fr 3fr;
    grid-template-areas: "powered-by contact-info intranet-logo";
  }
}

/* --------------------------------------------------------
 * Main grid wrapper for a webpage "template".
 * ----------------------------------------------------- */
#webpage-wrapper {
  display: grid;
  grid-gap: 0px;
  grid-template-areas: "masthead" "heading" "secondary-nav" "content" "footer";
}
@media (min-width: 40em) {
  #webpage-wrapper {
    grid-template-columns: 1fr 3fr;
    grid-template-areas: "masthead masthead" "heading heading" "secondary-nav secondary-nav" "content content" "footer footer";
  }
}
@media (min-width: 56.25em) {
  #webpage-wrapper {
    /* grid-template-columns: 200px auto 500px; */
    /* grid-template-columns: 200px 1fr 1fr 1fr; */
    grid-template-columns: 200px 1.5fr 1fr 1fr;
    grid-template-rows: auto;
    grid-template-areas: "masthead masthead masthead masthead" "nav nav nav nav" "sidebar heading secondary-nav secondary-nav" "sidebar content content content" "sidebar content content content" "sidebar content content content" "sidebar content content content" "sidebar content content content" "sidebar content content content" "footer footer footer footer";
  }
}

/* --------------------------------------------------------
 * webpage-footer: a nested grid inside webpage-wrapper.
 * ----------------------------------------------------- */
#webpage-footer {
  display: grid;
  grid-area: footer;
  grid-gap: 20px;
  height: 230px;
  padding: 10px 10px 0px 10px;
  font-family: "Open Sans", sans-serif;
  font-weight: normal;
  font-size: 0.8rem;
  color: #e2e2e2;
  background-color: #424141;
  border-top: 25px solid #e2e2e2;
  margin-top: 40px;
  margin-bottom: 10px;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "last-modified-powered-by last-modified-powered-by intranet-logo" ". . ." "contact-info contact-info contact-info";
}

/* ========================================================
 * Styles and grid layout for the research page.
 * This is different from the other main-level pages due to
 * the slider on the page.
 * ===================================================== */
/* --------------------------------------------------------
 * Main grid wrapper for the research page.
 * ----------------------------------------------------- */
#research-wrapper {
  display: grid;
  grid-gap: 0px;
  grid-template-areas: "masthead" "heading" "secondary-nav" "slider" "content" "footer";
}
@media (min-width: 40em) {
  #research-wrapper {
    grid-template-columns: 1fr 3fr;
    grid-template-areas: "masthead masthead" "heading heading" "secondary-nav secondary-nav" "slider slider" "content content" "footer footer";
  }
}
@media (min-width: 56.25em) {
  #research-wrapper {
    /* grid-template-columns: 200px auto 500px; */
    grid-template-columns: 200px 1.5fr 1fr 1fr;
    grid-auto-rows: min-content;
    grid-template-areas: "masthead masthead masthead masthead" "nav nav nav nav" "heading heading secondary-nav secondary-nav" "content content content slider" "footer footer footer footer";
  }
}

/* --------------------------------------------------------
 * menu: a nested grid inside homepage or webpage wrapper.
 * ----------------------------------------------------- */
.menu {
  display: grid;
  grid-area: nav; /* Not needed, since #main-navigation has grid-area nav already??*/
  grid-template-areas: "quicklinks" "one" "two" "three" "four" "five" "six" "constituent-nav";
}
@media (min-width: 56.25em) {
  .menu {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    grid-template-rows: auto;
    grid-template-areas: ". . . . quicklinks quicklinks" "one two three four five six";
  }
}
@media (min-width: 87.5em) {
  .menu {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    grid-template-rows: auto;
    grid-template-areas: ". . . . . quicklinks" "one two three four five six";
  }
}

/* ========================================================
 * Unsupported browswer warning.
 * ===================================================== */
#unsupported-browser {
  background: #3b4045;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding: 16px;
  z-index: 999;
}

#unsupported-browser a {
  text-decoration: underline;
  color: #ffa00f;
}

@supports (grid-area: auto) {
  #unsupported-browser {
    display: none;
  }
}
/* --------------------------------------------------------
 * Things inside masthead.
 * ----------------------------------------------------- */
#masthead a {
  border: 0;
}

#banner {
  grid-area: banner;
  font-family: "Dartmouth Ruzicka", Georgia, "Times New Roman", serif;
  color: #00693e;
  /* padding: 0px 0 0 30px; */
}

#dartmouth-home {
  font-size: 32px;
}
@media (min-width: 40em) {
  #dartmouth-home {
    margin: 1rem 1rem 26px -4px;
    font-size: 56px;
  }
}

#math-home {
  font-size: 26px;
  margin-left: 2px;
}
@media (min-width: 40em) {
  #math-home {
    margin-left: 0;
  }
}

#environment {
  grid-area: environment;
  font-family: "Source Sans Pro", sans-serif;
  font-size: 1.2rem;
  font-weight: bold;
  letter-spacing: 5px;
  display: flex;
  align-items: center;
  text-transform: uppercase;
}
@media (min-width: 40em) {
  #environment {
    font-size: 1.4rem;
    text-align: center;
  }
}

#mastlinks { /* need to rename this; for search bar and, in future, YouTube channel. */
  grid-area: mastlinks;
  font-size: small;
  color: #000000;
}
@media (min-width: 40em) {
  #mastlinks {
    display: flex;
    flex-direction: column;
  }
}
@media (min-width: 56.25em) {
  #mastlinks {
    align-items: flex-end;
  }
}

#mastlinks form {
  width: 80%;
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 56.25em) {
  #mastlinks form {
    width: 100%;
  }
}

#mastlinks form input[type=text] {
  box-sizing: border-box;
  background: #e2e2e2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.35em 0.75em;
  border: none;
  font-size: 1.1em;
  text-decoration: none;
  line-height: normal;
  max-height: 3em;
  flex: 2 0 100px;
}

#mastlinks form button {
  box-sizing: border-box;
  border-radius: 0px 2px 2px 0px;
  background: #424141;
  font-weight: 300;
  text-transform: uppercase;
  color: white;
  padding: 0.35em 0.75em;
  border: none;
  font-size: 1.1em;
  text-decoration: none;
  cursor: pointer;
  flex: 1 0 30px;
}

#mastlinks form button:hover {
  background: #00693e;
}

/* Helpers 
.is-hidden { display: none; } */
#logo {
  grid-area: logo;
  width: 100px;
  height: 100px;
  margin-right: 20px;
  padding: 0;
  display: none;
}
@media (min-width: 40em) {
  #logo {
    display: block;
    justify-self: end;
  }
}

/* End masthead. ======================================= */
/* ========================================================
 * Main navigation.
 * Navigation is off canvas at smaller widths, with a toggled menu.
 * Need to revisit much of this code.
 * ===================================================== */
#main-navigation {
  font-family: "Open Sans";
}
@media (max-width: 56.188em) {
  #main-navigation {
    grid-row: 2/8;
    grid-column: 1/2;
    z-index: 200; /* sets the stacking order of this grid item above the .main-content */
    /*margin-top: 10px;*/
    transform: translate3d(-340px, 0px, 0px);
    width: 300px;
    /*background: #112e66;
    color: #eee;*/
    left: 0;
    height: 50%;
    transition: all 0.4s;
  }
}
@media (min-width: 56.25em) {
  #main-navigation {
    grid-area: nav;
    margin: 0 0 20px 0;
  }
}

#main-navigation a {
  border: 0;
}

@media (max-width: 56.188em) {
  #main-navigation.is-active {
    transform: translateX(0);
  }
}
/* --------------------------------------------------------
 * Remaining navigation stuff.
 * ----------------------------------------------------- */
/* Much of this was https://codepen.io/shshaw/pen/gsFch:
 * "CSS Drop-Down Menu Transitions"
 * Not sure if this will work well with small device widths. */
/* ------------------------------------
   Future code for sub-grid for audience menu?

.prospective-undergraduates {
  grid-area: prospective-undergraduates;
}

.prospective-undergraduates {
  grid-area: prospective-graduate-students;
}

.alumni {
  grid-area: alumni;
} 
------------------------------------ */
nav a {
  color: #fff;
}

nav a:hover {
  color: #9cf;
}

nav ul,
nav ul li {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

nav > ul > li {
  /* display: inline-block; needed?? */
}

.quick-links {
  grid-area: quicklinks;
  z-index: 101;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.8rem;
  color: #000;
  background: #424141;
}
@media (min-width: 56.25em) {
  .quick-links {
    font-size: 0.8rem;
    text-align: right;
    padding: 0 10px 0 0;
    line-height: 24px;
    display: inline-block;
    background: #fff;
  }
}

.menu-item-1 {
  grid-area: one;
  background: #7f9999;
  z-index: 100;
}

.menu-item-2 {
  grid-area: two;
  background: #668484;
  z-index: 100;
}

.menu-item-3 {
  grid-area: three;
  background: #4c7070;
  z-index: 100;
}

.menu-item-4 {
  grid-area: four;
  background: #325b5b;
  z-index: 100;
}

.menu-item-5 {
  grid-area: five;
  background: #194747;
  z-index: 100;
}

.menu-item-6 {
  grid-area: six;
  background: #003333;
  z-index: 100;
}

#constituent-nav {
  grid-area: constituent-nav;
  display: none;
  /*display: flex;*/
  /*background: #eee;*/
  font-size: 0.8rem;
  padding: 0px 10px;
  color: #eee;
  background: #424141;
}
@media (min-width: 56.25em) {
  #constituent-nav {
    color: #033;
    background: #fff;
  }
}

#constituent-nav a {
  color: #eee;
}
@media (min-width: 56.25em) {
  #constituent-nav a {
    color: #033;
  }
}

#constituent-nav ul {
  padding: 10px;
  list-style-type: none;
}
@media (min-width: 40em) {
  #constituent-nav ul {
    display: inline-block;
  }
}
@media (min-width: 56.25em) {
  #constituent-nav ul {
    padding: 0;
  }
}

#constituent-nav ul li {
  display: inline-block;
  margin-left: 20px;
}
@media (min-width: 56.25em) {
  #constituent-nav ul li {
    margin-left: 20px;
  }
}

#constituent-nav ul li a {
  border: 0;
}

/* --------------------------------------------------------
 * Menu toggle and submenus.
 * ----------------------------------------------------- */
#menu-toggle {
  grid-area: menu-toggle;
}
@media (min-width: 56.25em) {
  #menu-toggle { /* Hide menu toggle at large width */
    display: none;
  }
}

#menu-toggle button {
  display: inline-block;
  border: none;
  outline: none;
  text-decoration: none;
  font-family: "Open Sans", sans-serif;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  padding: 1em 0;
  margin: 0;
  letter-spacing: 0;
  font-size: 1.2rem;
  font-weight: bold;
  background-color: transparent;
  color: #555;
}

#main-navigation .sub-menu-parent {
  line-height: 50px;
  /*color: #fff;*/
}
@media (min-width: 40em) {
  #main-navigation .sub-menu-parent {
    line-height: 30px;
  }
}
@media (min-width: 56.25em) {
  #main-navigation .sub-menu-parent {
    position: relative;
  }
}

#main-navigation .sub-menu {
  display: none;
  padding-left: 8px;
  width: 80%;
  text-transform: none;
}
@media (min-width: 40em) {
  #main-navigation .sub-menu {
    font-size: smaller;
  }
}
@media (min-width: 56.25em) {
  #main-navigation .sub-menu {
    display: block; /* resets earlier display: none */
    padding: 0;
    visibility: hidden; /* hides sub-menu */
    opacity: 0;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    transform: translateY(-2em);
    z-index: -1;
    transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;
    background: #066;
    text-align: left;
    font-size: 0.75rem;
    text-transform: none;
    letter-spacing: normal;
    font-weight: normal;
    line-height: normal;
  }
}

/* Styles for smaller widths, when menu is a toggled sidenav. */
#main-navigation .fa-chevron-down {
  padding-right: 8px;
  padding-top: 8px;
  margin-left: auto;
  font-size: 1.2rem;
  /*color: #f5f5f5;*/
  color: #f7f7f7;
}

#main-navigation > ul > li > a {
  padding: 6px 8px 6px 6px;
  color: #fff;
  /* display: block; */
  border: none;
  background: none;
  /*width: 100%; */ /*I think this was screwing up the viewport*/
  text-align: left;
  cursor: pointer;
  outline: none;
}

#main-navigation .dropdown-btn {
  padding: 6px 8px 6px 6px;
  float: right;
  border: none;
  background: none;
  text-align: left;
  cursor: pointer;
  outline: none;
}
@media (min-width: 56.25em) {
  #main-navigation .dropdown-btn {
    display: none;
  }
}

/**
 * At small widths, underline the main menu items to make it obvious 
 * they're links (due to no hover effects on mobile), except for Quick Links.
 * TODO:  This rule is not preceded by #main-navigation because doing so
 * somehow took precedence over the later rule setting text decoration
 * to none at large widths.  Revisit this.
*/
li[class*=menu-item] > a {
  text-decoration: underline;
}

/* --------------------------------------------------------
 * Behavior of main nav is very different at large width due to hover, etc.
 * Need to revisit much of this code.
 * ----------------------------------------------------- */
@media (min-width: 56.25em) {
  #main-navigation li.quick-links {
    margin-left: auto;
  }
  #main-navigation .quick-links > a {
    color: #033;
    text-align: right;
  }
  #main-navigation .quick-links .sub-menu {
    text-align: right;
  }
  /* Why doesn't it work to hover just over the a tag?? */
  #main-navigation .quick-links:hover .sub-menu {
    visibility: visible; /* shows sub-menu */
    opacity: 1;
    z-index: 101;
    transform: translateY(0%);
    /*transition-delay: 0s, 0s, 0.3s;*/
    width: 100%;
    /*text-align: right;*/
    text-align: left;
  }
  #main-navigation ul > li > a {
    display: block;
    padding: 1em 0.5em;
    text-decoration: none;
  }
  nav ul li > a:hover {
    color: #fff;
  }
  /**
    * Main menu item hover, etc. styles, but not Quick Links.  The focus-within rule is separated out because
    * Edge ignores rules containing it.
  */
  #main-navigation li[class*=menu-item]:active,
  #main-navigation li[class*=menu-item]:focus,
  #main-navigation li[class*=menu-item]:hover {
    text-decoration: underline;
    color: #fff;
    background: #000;
  }
  #main-navigation li[class*=menu-item]:focus-within {
    text-decoration: underline;
    color: #fff;
    background: #000;
  }
  .sub-menu li a:hover {
    background: #003333;
    color: #9cf;
  }
  #main-navigation .sub-menu li:hover {
    background: #003333;
    color: #9cf;
    transition: 0.3s ease-in-out;
  }
  /**
   * Sub-menu hover, etc. styles for the main menu items, but not Quick Links.
   * The focus-within rule is separated out because
   * Edge ignores rules containing it.
  */
  #main-navigation li[class*=menu-item]:focus .sub-menu,
  #main-navigation li[class*=menu-item]:hover .sub-menu {
    visibility: visible; /* shows sub-menu */
    opacity: 1;
    z-index: 99;
    transform: translateY(0%);
    transition-delay: 0s, 0s, 0.3s; /*this removes the transition delay
so the menu will be visible while the other styles transition */
  }
  #main-navigation li[class*=menu-item]:focus-within .sub-menu {
    visibility: visible; /* shows sub-menu */
    opacity: 1;
    z-index: 99;
    transform: translateY(0%);
    transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay
so the menu will be visible while the other styles transition */
  }
}
@media (min-width: 68.75em) {
  #main-navigation li.quick-links {
    width: 60%;
  }
}
/* ========================================================
 * Secondary navigation: a flex container.
 * ===================================================== */
#secondary-nav {
  list-style-type: none;
  margin: 5px;
  grid-area: secondary-nav;
  display: flex;
  align-self: flex-start;
  text-align: center;
  font-size: 90%;
  background-color: #e4ebe7;
  border-radius: 9px;
  margin: 20px;
  padding: 0;
  font-family: "Source Sans Pro", sans-serif;
  font-size: 0.9rem;
}
@media (min-width: 56.25em) {
  #secondary-nav {
    text-align: left;
  }
}

#secondary-nav li {
  padding: 10px;
}

#secondary-nav-left {
  flex: auto;
}

#secondary-nav-right {
  border-left: 1px solid #b3b4b4;
  flex: auto;
}

#secondary-nav a {
  display: inline-block;
  margin-bottom: 0.8em;
  border-bottom: 0;
  text-decoration: underline;
  text-decoration-color: #aaa;
}
@media (min-width: 40em) {
  #secondary-nav a {
    display: inline;
    margin-bottom: 0;
  }
}

#secondary-nav a:hover {
  text-decoration-color: #424141;
}

/* End secondary navigation. =========================== */
/* ========================================================
 * Styles for Byrne Scholars pages.
 * ===================================================== */
#byrne-nav {
  text-align: center;
}
@media (min-width: 40em) {
  #byrne-nav {
    text-align: left;
  }
}

#byrne-nav ul {
  list-style-type: none;
  padding: 0;
}
@media (min-width: 40em) {
  #byrne-nav ul {
    list-style-type: disc;
    padding-left: 40px;
  }
}

li#current-page {
  color: #000;
  font-weight: 500;
  letter-spacing: 0.024em;
}

/* --------------------------------------------------------
 * Blockquotes.
 * ----------------------------------------------------- */
blockquote {
  padding: 1.2em 2em;
  border-left: 8px solid #78C0A8;
  background: #f7f7f7;
  margin-bottom: 1em;
  font-style: italic;
}
@media (min-width: 40em) {
  blockquote {
    padding: 1.2em 30px 1.2em 75px;
  }
}

@media (min-width: 40em) {
  blockquote ul {
    padding-left: 20px;
  }
}
blockquote::before {
  content: "";
}

blockquote::after {
  content: "";
}

blockquote span {
  display: block;
  font-size: smaller;
  font-weight: bold;
  font-style: normal;
  margin-top: 1em;
}

/* --------------------------------------------------------
 * End blockquotes.
 * ----------------------------------------------------- */
section#current-scholars-names,
section#short-quotes,
section#long-quotes,
section#research-activities #intro ul {
  margin-top: 40px;
}

section#current-scholars-names {
  margin-top: 20px;
  width: 50%;
}
section#current-scholars-names ul {
  columns: 2 150px;
  column-gap: 3em;
}

section#general-info h2,
section#our-scholars h2,
section#alumni h2,
section#research-activities h2,
section#recent-experiences h2,
section#for-current-scholars h2,
section#byrne-prize h2 {
  /* text-align: center; */
  font-size: 1.9em;
  /* padding: 1em .5em 0 .5em; */
  /* margin-bottom: 1.2em; */
  margin-top: 50px;
}

section#our-scholars h3 {
  margin-top: 1em;
}

section[id^=class] {
  background: linear-gradient(10deg, rgba(0, 105, 62, 0.8), transparent);
  background: linear-gradient(40deg, rgba(0, 105, 62, 0.8), transparent);
}
@media (min-width: 56.25em) {
  section[id^=class] {
    padding: 20px;
  }
}

section[id^=class] h4 {
  text-transform: uppercase;
}

section#class-1 {
  grid-area: class-1;
}

section#class-2 {
  grid-area: class-2;
}

section#class-3 {
  grid-area: class-3;
}

section#class-4 {
  grid-area: class-4;
}

/* --------------------------------------------------------
 * Advisors.
 * ----------------------------------------------------- */
section#byrne-advisors {
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}
@media (min-width: 40em) {
  section#byrne-advisors {
    flex-direction: row;
  }
}
section#byrne-advisors .photo {
  margin: 10px;
  padding: 15px;
  background: #f7f7f7;
}
@media (min-width: 40em) {
  section#byrne-advisors .photo {
    flex-direction: column;
    display: flex;
    flex: 50%;
    padding: 0;
    align-items: center;
  }
}
section#byrne-advisors .photo img {
  display: block;
  margin-bottom: 20px;
  padding: 20px 0;
}
@media (min-width: 40em) {
  section#byrne-advisors .photo .about {
    margin: 20px;
    display: block;
    width: 80%;
    text-align: center;
  }
}

/* --------------------------------------------------------
 * Bios and photos.
 * ----------------------------------------------------- */
section#our-scholars,
section#alumni {
  margin-top: 40px;
  max-width: 1400px;
}

section#current-scholars-bios h3,
section#alumni-bios h3,
section#byrne-prize h3 {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-top: 3px solid lightgrey;
  padding-top: 30px;
}

section#current-scholars-bios h3 + p,
section#alumni-bios h3 + p { /* the CSS adjacent selector */
  font-style: italic;
}

.bio-with-image {
  display: flex;
  flex-direction: column-reverse;
}
@media (min-width: 40em) {
  .bio-with-image {
    flex-direction: row;
    align-items: flex-start;
  }
}

.bio {
  margin-top: 0;
}
@media (min-width: 40em) {
  .bio {
    flex-basis: 80%;
  }
}

/* Temporary for alumni scholars while awaiting updated bios. */
#alumni-bios .bio {
  flex-basis: auto;
}

.bio-with-image > img {
  align-self: center;
  max-height: 300px;
}
@media (min-width: 40em) {
  .bio-with-image > img {
    align-self: auto;
    margin-left: 2em;
  }
}

/* --------------------------------------------------------
 * Research activities page.
 * ----------------------------------------------------- */
/* section#research-activities {
  padding: 0 20px 0 20px;
} */
section#home ul,
section#research-activities #intro ul {
  list-style: none;
  padding: 0;
}

section#home ul li {
  padding: 15px;
  padding-left: 2rem;
  margin: 10px;
  border-bottom-right-radius: 5px;
  border-top-right-radius: 5px;
  background-image: linear-gradient(90deg, #00693e 10px, #e2e2e2 10px);
  font-weight: 500;
}

section#research-activities #scholar-reports {
  margin-top: 2em;
}
@media (min-width: 40em) {
  section#research-activities #scholar-reports {
    width: 75%;
    columns: 2 300px;
    column-gap: 3em;
  }
}

section#research-activities .ay {
  break-inside: avoid;
}

section#research-activities h3,
section#research-activities h4 {
  margin-top: 4rem;
}

section#short-quotes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "1 2" "3 4" "5 6" "7 8";
  background: url("/undergraduate/byrne-scholars/images/earth-w1920.jpg") no-repeat center center fixed;
  background-size: cover;
}
@media (min-width: 56.25em) {
  section#short-quotes {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-areas: "1 2 3 4" "5 6 7 8";
    height: 500px;
  }
}

/* --------------------------------------------------------
 * Information for current scholars page.
 * ----------------------------------------------------- */
/* section#for-current-scholars {
  padding: 0 20px 20px;
} */
section#for-current-scholars h3 {
  margin-top: 2.5rem;
}

section#for-current-scholars div#current-happenings {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

section#for-current-scholars div.current-happenings-content {
  margin-bottom: 15px;
  padding: 10px;
  background: #f7f7f7;
  border: 1px dotted;
  color: #12312b;
}

section#for-current-scholars div.current-happenings-content h4 {
  color: #00693e;
}

section#for-current-scholars div.current-happenings-content p {
  font-size: 0.9rem;
}

@media (min-width: 40em) {
  section#for-current-scholars .bio-with-image {
    flex-direction: row-reverse;
  }
  section#for-current-scholars .bio {
    margin-left: 2em;
  }
}
/* --------------------------------------------------------
 * Byrne gift section.
 * ----------------------------------------------------- */
section#byrne-gift {
  padding: 20px;
}

section#byrne-gift h4 {
  margin-top: 0;
}

section#byrne-gift ul {
  list-style-type: square;
  padding: 0 40px;
}

figure {
  display: flex;
  flex-direction: column;
}

figure img {
  align-self: center;
  max-width: 100%;
}

figcaption {
  padding: 10px 0;
  font-size: 0.9rem;
}

/* --------------------------------------------------------
 * Byrne prize section.
 * ----------------------------------------------------- */
section#byrne-prize h4 {
  margin-bottom: 0;
}

section#byrne-prize h4 + p { /* the CSS adjacent selector */
  margin-top: 0;
}

section#byrne-prize blockquote {
  margin-left: 0;
  margin-right: 0;
  font-style: normal;
}

/* ========================================================
 * Styles specific to home page.
 * ===================================================== */
#homepage-wrapper h1 {
  font-size: 1.5rem;
}

/* --------------------------------------------------------
 * Announcements.
 *
 * The general idea here is to overlay announcements
 * over a background image.  The challenge is to make the 
 * text readable over a variety of background images while
 * taking responsiveness into account.
 * 
 * There are several ways to to this.  This is what I
 * currently do:
 *
 *   -> use the 'before' pseudo-element to avoid extra markup.
     -> slightly darken the image using CSS multiple backgrounds.
     -> use a semi-transparent background on the overlay text.
     -> apply a text-shadow to the content on hover.
     -> further darken the image at smaller widths to
     -> improve readability.
*
 * Some of these techniques are covered here:
 * https://css-tricks.com/design-considerations-text-images/ 
 *   
 * This is not perfect.  It's tricky and I'm still 
 * exploring options.
 * ----------------------------------------------------- */
#announcements {
  grid-area: announcements;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 500;
  font-family: "National 2", sans-serif;
  line-height: 24px;
  /* padding: 20px; */
  padding: 20px 20px 13px 20px;
  /*background-color: #fff;*/
  /*color: #033;*/
  color: white;
  /* width: 65%; */
  position: relative;
  /* min-height: 350px; */
  /* min-height: 450px; */
  min-height: 540px;
}

#announcements a:hover {
  color: #fff;
  border-bottom: 2px solid #fff;
  text-shadow: 2px 2px black;
}

#announcements::before {
  /* Consider using a higher opacity at smaller widths.
  This sometimes looks better when the image gets small. */
  background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), url("/photos/cover-images/orellana-symmetric.jpg");
  /* background-image: linear-gradient(rgba(161, 144, 114, 1),rgba(214, 200, 171, 1)), $background-image; */
  background-position: bottom;
  /* background-position: 5% 0; */
  /* background-position: 35% 10%; */
  /* background-position: 35% 30%; */
  /* background-position: 0 70%; */
  /* background-position: 30% 70%; */
  background-repeat: no-repeat;
  /* background-size: cover; */
  background-size: contain;
  position: absolute;
  content: "";
  display: block;
  /*position: absolute;*/
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  /* background-color: rgba(255, 255, 255, .8); */
  background-color: rgb(214, 200, 171);
}
@media (min-width: 40em) {
  #announcements::before {
    /* Lighten or darken the image as necessary using the alpha channel. */
    background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), url("/photos/cover-images/orellana-symmetric.jpg");
  }
}

#announcements span {
  font-size: 1.5rem;
  font-weight: regular;
  color: #fafafa;
  /* color: #fff; */
}

#announcements-content-main {
  /* color: #ddd; */
  /* color: #e5e5e5; */
  /* color: #dadada; */
  color: #eee;
  background-color: rgba(0, 0, 0, 0.33);
  padding: 10px;
  box-shadow: 0px 0px 10px 10px rgba(0, 0, 0, 0.33);
}

#announcements-content-items {
  display: flex;
  flex-direction: column;
}

#announcements-content-items p {
  /* flex: 1 1 50%; */
  /* Lighten or darken the overlay background as necessary using the 
  alpha channel. */
  /* background-color: rgba(0, 0, 0, .33); */
  /* width: 60%; */
  width: fit-content;
  margin-bottom: 0;
  padding: 5px 20px;
  /* padding: .3rem; */
  /* padding: 8px 20px 12px 20px; */
  /* padding: .5em; */
  font-size: 1.05rem;
  /* line-height: 27px; */
  /* letter-spacing: .8px; */
  letter-spacing: 0.4px;
  /* border-right: 1px dotted #555; */
}

#announcements-content-items p span {
  font-size: inherit;
}

#announcements-content-items p:last-child {
  border: none;
}

#announcements-content-special {
  color: #ddd;
}

#announcements-content-special p {
  background-color: rgba(0, 0, 0, 0.6);
  margin-bottom: 0;
  font-size: 0.85rem;
  font-style: italic;
  font-weight: 400;
  /* padding: 1em; */
  padding: 0.5em;
  /* letter-spacing: .9px; */
  /* color: #cfcfcf; */
  /* color: #ddd; */
  color: #eee;
  width: fit-content;
}

/* End announcements. ---------------------------------- */
/* --------------------------------------------------------
 * Homepage 'Welcome' section.
 * ----------------------------------------------------- */
#welcome {
  grid-area: welcome;
  padding: 5px 20px 10px 20px;
  text-decoration: none;
  font-weight: bold;
  color: #555;
  letter-spacing: 0.03rem;
  font-size: 0.9rem;
  background-color: #fafafa;
  color: #033;
}
@media (min-width: 56.25em) {
  #welcome {
    text-align: center;
  }
}

#welcome .button_more {
  background-color: #e2e2e2;
  color: #000;
  padding: 5px 10px;
  margin-top: 0.3em;
  text-decoration: none;
  font-family: "Open Sans", sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.8rem;
  display: inline-block;
  border-bottom: 0;
}

#welcome a.button_more:hover {
  background-color: #424141;
  color: #fff;
}

#welcome #welcome-content-main {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#welcome #welcome-content-group-1 {
  padding-top: 1em;
  margin-bottom: 1.5em;
}

#welcome #welcome-content-group-2 {
  padding-top: 1.5em;
  border-top: 0.05rem solid rgba(13, 30, 28, 0.3);
  margin-bottom: 1.5em;
}

#welcome #special-announcement {
  padding: 1.5em;
  font-family: "Source Sans Pro";
  font-style: normal;
  border-top: 5px solid lightgrey;
  border-bottom: 0.05rem solid rgba(13, 30, 28, 0.3);
}

#welcome #special-announcement h2 {
  margin: 0;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.09rem;
}

#welcome #special-announcement #description {
  /* padding: 0 10px; */
  padding: 0px 10px;
  font-size: 1rem;
  font-family: "National 2";
  font-weight: 500;
}

#welcome #special-announcement #speaker {
  margin-bottom: 0;
}

#welcome #special-announcement #title {
  margin-top: 0;
}

#welcome #special-announcement #speaker,
#welcome #special-announcement #poster-link {
  /* color: #ddd; */
  font-weight: 400;
}

#welcome #special-announcement #poster-link {
  font-size: 0.8rem;
  font-style: italic;
}

#welcome #special-announcement #location {
  text-transform: uppercase;
}

#welcome #special-announcement a {
  color: inherit;
  text-decoration: none;
  /* border-bottom: 1px dotted gray; */
}

#welcome #special-announcement a:hover {
  border-bottom: 2px solid #fff;
}

/* End Homepage 'Welcome' section. --------------------- */
#news-item-1 {
  grid-area: news-item-1;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 5px 20px;
}

#news-item-2 {
  grid-area: news-item-2;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 5px 20px;
}

#news-item-3 {
  grid-area: news-item-3;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 5px 20px;
}

#more-news {
  grid-area: more-news;
  display: flex;
  justify-content: flex-end;
  font-size: 0.9rem;
  font-style: italic;
  font-weight: 500;
  text-transform: uppercase;
  margin-top: 1em;
  padding-right: 20px;
}

#recent-publications {
  grid-area: publications;
  margin-top: 10px;
  padding: 5px 20px;
  border-top: 9px solid lightgrey;
}

#publication-1 {
  grid-area: publication-1;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 20px 20px;
}

#publication-2 {
  grid-area: publication-2;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 20px 20px;
}

#publication-3 {
  grid-area: publication-3;
  background: linear-gradient(to top right, white 50%, #dcecec 90%);
  padding: 20px 20px;
}

#homepage-wrapper div > cite { /* needs a much more specific selector; for recent publications area */
  font-size: 1rem;
  font-style: normal;
  font-weight: bold;
}

#more-publications {
  grid-area: more-publications;
  display: flex;
  justify-content: flex-end;
  font-size: 0.9rem;
  font-style: italic;
  font-weight: 500;
  text-transform: uppercase;
  margin-top: 1em;
  padding-right: 20px;
}

#homepage-calendar {
  grid-area: calendar;
  padding: 5px 20px;
}

#homepage-wrapper h3 {
  font-style: italic;
  text-transform: uppercase;
}

.content-first-row img {
  /* Revisit these styles if image scaling becomes a problem. */
  /* width: 80%; */
  width: auto;
  display: block;
  margin-top: 1.2em;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  max-height: 295px;
}

#homepage-footer #powered-by {
  grid-area: powered-by;
}

#homepage-footer #contact-info {
  grid-area: contact-info;
  text-align: right;
}
@media (min-width: 40em) {
  #homepage-footer #contact-info {
    text-align: center;
  }
}

#homepage-footer #intranet-logo {
  grid-area: intranet-logo;
  display: flex;
  justify-content: flex-end;
}

#homepage-footer a {
  border: 0;
  text-decoration: underline;
}

/* ========================================================
 * Styles and grid layout for a webpage "template".
 * ===================================================== */
/* --------------------------------------------------------
 * Webpage heading.
 * ----------------------------------------------------- */
#webpage-heading {
  grid-area: heading;
  margin: 10px;
  padding: 20px;
  border-bottom: 1px solid lightgrey;
  color: #033;
  font-size: 150%;
  /* use flex to vertically center text
  display: flex;
  justify-content: center;
  flex-direction: column;
  text-align: center;  */
  font-family: "Open Sans", sans-serif;
  font-size: 1.7rem;
  line-height: 28px;
  font-weight: bold;
}

/* --------------------------------------------------------
 * Webpage content.
 * ----------------------------------------------------- */
#webpage-content {
  grid-area: content;
  padding: 1em 20px 20px 20px;
  font-size: 1.02rem;
  line-height: 28px;
}

#webpage-content h2 {
  color: #003333;
  font-family: "National 2", sans-serif;
  font-weight: 500;
  font-size: 1.5rem;
}

#webpage-content h3 {
  margin-top: 2em;
}

#webpage-content h3:first-child {
  margin-top: 0;
}

/* --------------------------------------------------------
 * Webpage sidebar image.
 * ----------------------------------------------------- */
#webpage-sidebar {
  grid-area: sidebar;
  display: none; /* don't display at smaller widths */
}
@media (min-width: 56.25em) {
  #webpage-sidebar {
    grid-area: sidebar;
    width: 100%;
    display: inline;
  }
}

#webpage-sidebar img {
  width: 200px;
}

#webpage-footer #last-modified-powered-by {
  grid-area: last-modified-powered-by;
}

#webpage-footer #intranet-logo {
  grid-area: intranet-logo;
  display: flex;
  justify-content: flex-end;
}

#webpage-footer #contact-info {
  grid-area: contact-info;
  text-align: right;
}

#webpage-footer #contact-info p {
  grid-area: contact-info;
  margin-bottom: 0;
}

#webpage-footer #contact-info #department-name {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #c4dd88;
}

#webpage-footer a {
  border: 0;
  text-decoration: underline;
}

/* End webpage-wrapper. ================================ */
/* ========================================================
 * Calendar styles.
 * ===================================================== */
#calendar {
  margin: 10px 0px 0px 0px;
}

#calendar table {
  border: 1px;
  padding: 0 0 0 10px;
  width: 100%;
}

.calendar-footnote {
  padding: 0 0 0 10px;
}

#calendar th {
  text-align: right;
  font-weight: bold;
  padding: 1px 10px;
}

#calendar td {
  text-align: left;
}

.calendar-large {
  font-size: 18px;
  color: #003333;
}

#more_calendar th {
  text-align: left;
  vertical-align: top;
  font-weight: bold;
  padding: 0 10px 0 0;
}

#more_calendar td {
  text-align: left;
  vertical-align: top;
}

/* The border class is also used in news-resources/computing/index.php. */
table.border {
  border-collapse: collapse;
  border: 1px solid #bbb;
}

table.border tr td, table.border tr th {
  border: 1px solid #bbb;
  padding: 4px;
}

#edit_calendar {
  margin: 30px;
}

#edit_calendar div.lastModified {
  color: #444;
  font-size: 90%;
  font-style: italic;
  margin-top: 3em;
}

#edit_calendar div.events {
  margin-top: 25px;
}

#edit_calendar div.events * {
  font-size: 11px;
}

#edit_calendar p.highlights * {
  font-size: 14px;
}

#edit_calendar div.error {
  font-weight: bold;
  color: red;
}

#edit_calendar textarea,
#edit_calendar input[type=text],
#edit_calendar input[type=checkbox] {
  border-style: solid;
  border-width: 1px;
  border-color: #999;
}

/* ========================================================
 * Contacts page.
 * ===================================================== */
#contacts table {
  border-width: 0px 0px 0px 0px;
  border-spacing: 2px;
  border-style: solid solid solid solid;
  border-color: blue blue blue blue;
  border-collapse: separate;
  background-color: #fff;
  /*font-size:11px;*/
}

#contacts th {
  border-width: 0px;
  padding: 4px;
  border-style: solid solid solid solid;
  border-color: green green green green;
}

.tablehead th {
  border-width: 3px;
  border-style: solid;
  border-color: green green green green;
  padding: 4px;
}

#contacts td {
  border-width: 0px;
  padding: 4px;
  border-style: solid solid solid solid;
  border-color: green green green green;
}

/* People pages lists.*/
ul#people {
  margin-top: 1.5rem;
}

ul#people,
ul#people ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

ul#people > li {
  font-weight: bold;
  margin-bottom: 2rem;
}

ul#people > li li {
  font-weight: normal;
}

ul#people > li li:nth-of-type(1) {
  font-style: italic;
}

/* New feature: add bios and photos. */
ul#people > li div.flex-container {
  display: flex;
  flex-direction: column-reverse;
  border-top: 1px solid lightgray;
  padding-top: 1em;
  margin-bottom: 2em;
}
@media (min-width: 68.75em) {
  ul#people > li div.flex-container {
    flex-direction: row;
    max-width: 80em;
  }
}

ul#people > li div.text {
  flex: 2 0 0%;
}
@media (min-width: 68.75em) {
  ul#people > li div.text {
    margin-right: 2em;
    width: min-content; /* Needed to prevent CSS Grid's auto column width behavior. */
  }
}

ul#people > li div.text .show-bio span {
  padding-left: 0.5em;
  vertical-align: middle;
  font-size: 0.5rem;
  line-height: inherit; /* Needed to prevent Chrome problem with vertical alignment. */
}

ul#people > li div.text .bio {
  display: none;
  padding: 1em;
  background: #f7f7f7;
}

ul#people > li div.image {
  flex: 1 0 0%;
}
@media (min-width: 68.75em) {
  ul#people > li div.image {
    text-align: center;
  }
}

ul#people > li div.image img {
  max-width: 300px;
  max-height: 200px;
  /* text-align: right; */
  /* vertical-align: top; */
  /* text-align: right; */
  /* float: right; */
}

/* End new feature: add bios and photos. */
/* ========================================================
 * Conferences and Meetings page.
 * ===================================================== */
#webpage-content #conferences-and-meetings img {
  max-width: 100%;
}

/* ========================================================
 * Special Events page.
 * ===================================================== */
dl.special-event {
  margin: 2em 0;
  padding: 0;
}

.special-event dt {
  position: relative;
  left: 0;
  top: 1.7em;
  width: 7em;
  font-weight: bold;
}

.special-event dd {
  border-left: 1px solid #000;
  margin: 0 0 0 7em;
  padding: 0 0 0.5em 0.5em;
}

/* ========================================================
 * Research pages.
 * ===================================================== */
/* --------------------------------------------------------
 * Image slider and captions on main Research page.
 * ----------------------------------------------------- */
#research-slider {
  grid-area: slider;
  padding: 20px;
}

#research-slider {
  margin: 0.5em;
  padding: 5px;
  background-color: #e5eaea;
  margin: 20px;
}

#research-slider ul {
  list-style: none outside none;
  padding-left: 0;
  margin-bottom: 0;
}

#research-slider li {
  display: block;
  float: left;
  margin-right: 6px;
  cursor: pointer;
}

#research-slider img {
  display: block;
  height: auto;
  max-width: 100%;
  max-height: 250px;
  margin: auto;
  /* margin-bottom: 1em; */
  padding: 10px;
}

#research-slider .caption {
  border-top: 5px solid #ccd6d6;
  /* height: 60px; */
  padding-top: 1em;
  padding-bottom: 20px;
  width: 100%;
}

#research-slider .caption p {
  margin: 0;
  height: auto;
  font-size: smaller;
}

/* --------------------------------------------------------
 * Individual research group pages, e.g., Algebra and Number Theory.
 * ----------------------------------------------------- */
ul.research-group li {
  margin-bottom: 1em;
}

dl.research-group {
  margin: 0;
  padding: 0;
}

.research-group dt {
  margin: 0;
  padding: 0;
  font-weight: bold;
}

.research-group dd {
  margin: 0 0 1em 0;
  padding: 0;
}

figure.research-group {
  /* float: right; */
  text-align: center;
  font-style: italic;
  font-size: smaller;
  text-indent: 0;
  margin: 0.5em;
  padding: 20px;
}
@media (min-width: 40em) {
  figure.research-group {
    float: right;
    width: 50%;
  }
}

/* --------------------------------------------------------
 * Gallery class, currently used on graduate and undergraduate research pages.
 * ----------------------------------------------------- */
section.gallery img:hover {
  box-shadow: 0 4px 2px -2px gray;
}

/* --------------------------------------------------------
 * Research Spotlight page (experimental)
 * ----------------------------------------------------- */
.italic-default {
  font-style: italic;
}

p.spotlight-caption {
  margin: 0;
  font-size: smaller;
}

/* ========================================================
 * Lists of theses.
 * ===================================================== */
.theses ul {
  list-style: none;
  padding-left: 0;
}

.theses li {
  padding-bottom: 1em;
}

.theses .advisor, .theses i {
  font-style: italic;
}

.theses q {
  quotes: "“" "”" "‘" "’";
}

.theses .mirkil-prize {
  font-weight: bold;
  font-style: italic;
}

/* ========================================================
 * Prosser lectures page.
 * ===================================================== */
#prosser-lectures #prosser-intro,
#lahr-lectures #lahr-intro {
  display: flex;
  flex-direction: column;
}
@media (min-width: 68.75em) {
  #prosser-lectures #prosser-intro,
  #lahr-lectures #lahr-intro {
    flex-direction: row;
  }
}
#prosser-lectures #prosser-intro > img,
#lahr-lectures #lahr-intro > img {
  align-self: center;
}
@media (min-width: 68.75em) {
  #prosser-lectures #prosser-intro > img,
  #lahr-lectures #lahr-intro > img {
    margin-left: 2em;
    margin-right: 2em;
    order: 2;
  }
}

@media (min-width: 68.75em) {
  #prosser-lectures #prosser-intro-text,
  #lahr-lectures #lahr-intro-text {
    flex-basis: 80%;
  }
}

/* ========================================================
 * Undergraduate poster sessions.
 * ===================================================== */
/* --------------------------------------------------------
 * Main poster session page.
 * ----------------------------------------------------- */
#poster-sessions img {
  border: 1px solid;
}

#poster-sessions h3 {
  padding-top: 1em;
}

#poster-sessions dt, #thayer-prize dt {
  margin-top: 1em;
  font-weight: bold;
}

#poster-sessions dd, #thayer-prize dd {
  margin: 0;
  padding: 0;
}

#poster-sessions dt + dd {
  font-style: italic;
}

/* --------------------------------------------------------
 * Poster showcase page.
 * ----------------------------------------------------- */
body.undergraduate-poster-showcase {
  background-color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #767676;
  font-family: "Source Sans Pro", sans-serif;
  font-size: 1em;
  /*font-weight: lighter;*/
  text-align: center;
  margin: 20px;
}

.undergraduate-poster-showcase h2 {
  font-family: "Raleway", sans-serif;
  font-size: 1.5em;
  padding: 0.5em;
  letter-spacing: 0.07em;
  line-height: 1.5em;
}

.undergraduate-poster-showcase #separator {
  border-bottom: 3px solid lightgrey;
  width: 100%;
}

#undergraduate-poster-slider {
  width: 100%;
  margin: 0.5em;
  padding: 40px 5px 40px 5px;
  background-color: #000;
  /*background: linear-gradient(360deg, #1C1C1C 10%, #494949 360%);*/
}

#undergraduate-poster-slider ul {
  list-style: none outside none;
  padding-left: 0;
  margin-bottom: 0;
}

#undergraduate-poster-slider li {
  display: block;
  float: left;
  margin-right: 6px;
  cursor: pointer;
}

#undergraduate-poster-slider img {
  display: block;
  height: auto;
  max-width: 100%;
  max-height: 340px;
  margin: auto;
  /*margin-bottom: 3em;
  padding-top: 1em;*/
}

#undergraduate-poster-slider .caption {
  border-top: 5px solid lightblue;
  margin-top: 1em;
  padding-top: 1em;
  width: 100%;
}

#undergraduate-poster-slider .caption .prize {
  text-transform: uppercase;
  letter-spacing: 0.5em;
}

#undergraduate-poster-slider .caption p {
  padding: 0 1em 1em 1em;
  color: lightblue;
  text-align: center;
  /* font-size: larger; */
}

.undergraduate-poster-showcase #footer {
  margin-top: 3em;
  padding: 1em;
  width: 100%;
}

.undergraduate-poster-showcase #footer #intranet-logo img {
  width: 16px;
  height: 16px;
}

.undergraduate-poster-showcase #footer #intranet-logo a {
  border-bottom: none;
}

.undergraduate-poster-showcase #footer #last-modified {
  font-size: smaller;
  font-weight: normal;
  color: black;
  padding: 10px;
}

.undergraduate-poster-showcase #slide-controls a {
  color: darkgray;
  border-bottom: none;
}

.undergraduate-poster-showcase #slide-controls span {
  font-size: 20px;
}

.undergraduate-poster-showcase #goToPrevSlide {
  padding-right: 30px;
}

.undergraduate-poster-showcase #goToNextSlide {
  padding-left: 30px;
}

/* --------------------------------------------------------
 * Legacy 2010 poster session page.
 * ----------------------------------------------------- */
#poster-session-2010 {
  margin-top: 50px;
}

#poster-session-2010 h4 {
  border-top: 3px solid lightgrey;
  padding-top: 30px;
}

#poster-session-2010 .poster-image-with-text {
  display: flex;
  flex-direction: column;
}
@media (min-width: 68.75em) {
  #poster-session-2010 .poster-image-with-text {
    flex-direction: row;
  }
}

@media (min-width: 68.75em) {
  #poster-session-2010 .poster-text {
    flex-basis: 80%;
  }
}

#poster-session-2010 .poster-image-with-text > img {
  align-self: center;
}
@media (min-width: 68.75em) {
  #poster-session-2010 .poster-image-with-text > img {
    margin-left: 1em;
  }
}

/* ========================================================
 * All news page.
 * ===================================================== */
#department-news .news-image-with-caption {
  display: flex;
  flex-direction: column;
  margin-bottom: 4em;
}
@media (min-width: 68.75em) {
  #department-news .news-image-with-caption {
    flex-direction: row;
  }
}

#department-news > h2 {
  margin-top: 2em;
}

#department-news > p {
  margin-top: 0;
}

@media (min-width: 68.75em) {
  #department-news .caption {
    flex-basis: 80%;
  }
}

#department-news .news-image-with-caption > img {
  align-self: center;
  width: auto;
  max-width: 300px;
}
@media (min-width: 40em) {
  #department-news .news-image-with-caption > img {
    max-width: 400px;
  }
}
@media (min-width: 68.75em) {
  #department-news .news-image-with-caption > img {
    margin-right: 1em;
  }
}

/* End all news page. ================== */
/* ========================================================
 * All publications page.
 * ===================================================== */
#recent-publications-page #featured-publications > div {
  margin-top: 2em;
}

#recent-publications-page #featured-publications div cite:first-of-type {
  font-style: normal;
  font-weight: bold;
}

#recent-publications-page #recent-publications-intro > ul > li {
  margin-bottom: 1em;
}

#recent-publications-page > section {
  margin-bottom: 3em;
}

#recent-publications-page #msn-publications h3 {
  margin-top: 2em;
}

/* ========================================================
 * Honors and Recognition page.
 * ===================================================== */
ul.honors-and-recognition {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

ul.honors-and-recognition > li {
  margin-bottom: 1em;
}

ul.honors-and-recognition > li > a {
  font-weight: bold;
}

#recent-awards-and-recognition {
  margin-top: 50px;
}

.news-image-with-text {
  display: flex;
  flex-direction: column;
  border-top: 1px solid lightgray;
  padding-top: 1em;
  margin-bottom: 2em;
}
@media (min-width: 68.75em) {
  .news-image-with-text {
    flex-direction: row-reverse;
  }
}

.news-image-with-text > .image {
  flex: 1 0 0%;
  text-align: center;
}

.news-image-with-text > .image a {
  border-bottom: none;
}

.news-image-with-text > .image img {
  /* display: block; */
  max-width: 300px;
  max-height: 200px;
  /* text-align: right; */
  /* vertical-align: top; */
  /* text-align: right; */
  /* float: right; */
  margin-right: 2em;
  margin-top: 1em;
  margin-bottom: 1em;
}

.news-image-with-text > .text {
  flex: 2 0 0%;
}
@media (min-width: 68.75em) {
  .news-image-with-text > .text {
    margin-right: 0.2em;
  }
}

.news-image-with-text > .text p:first-of-type {
  /* The date. */
  font-weight: 500;
  color: #666;
}

/* ========================================================
 * Poster template page.
 * ===================================================== */
#poster-templates {
  display: flex;
  flex-direction: column;
  margin-bottom: 2em;
  align-items: flex-start;
}
@media (min-width: 68.75em) {
  #poster-templates {
    flex-direction: row;
  }
}

/* ========================================================
 * Lists of theses.
 * ===================================================== */
#main-resources {
  margin-top: 1em;
  margin-bottom: 2em;
  padding: 1.5em;
  border: 4px solid rgba(0, 105, 62, 0.8);
}

#additional-resources {
  margin-top: 1em;
}

#important {
  color: #2222dd;
}

/* ========================================================
 * Department Awards page.
 * ===================================================== */
#prizes-page > section {
  margin-bottom: 3em;
}

#prizes-page section h3 {
  margin-top: 2.8em;
}

/* ========================================================
 * Recent phds page.
 * ===================================================== */
/*
#count-per-year-area {
  border: 1px solid #eeeeee;
}*/
.tablediv {
  margin-bottom: 30px;
}

.count-table th:first-child {
  text-align: left;
  padding-left: 8px;
  padding-right: 8px;
}

.count-table td {
  text-align: center;
}

.count-table tr:nth-child(even) {
  background-color: #e4ebe7;
}

/* ========================================================
 * Pete's puzzle book page.
 * ===================================================== */
#puzzlebook .contents {
  display: flex;
  flex-direction: column;
  background-color: #BBF;
  padding: 0.5em;
  flex: 1 1 0px;
}

#puzzlebook .line {
  display: flex;
  align-items: center;
  transition: background-color 500ms ease-out 100ms;
  gap: 0.5rem;
}

#puzzlebook .line:hover {
  background-color: #88F;
}

#puzzlebook .line .bullet {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0.5rem;
  overflow: visible;
}

#puzzlebook .line:hover .bullet {
  animation-name: twirl;
  animation-duration: 0.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}

@keyframes twirl {
  from {
    transform: rotate(45deg);
  }
  to {
    transform: rotate(765deg);
  }
}
#puzzlebook .line .chapter {
  font-size: 1.5rem;
  position: relative;
  padding: 10px;
}

#puzzlebook .line:nth-child(odd) .bullet {
  content: url("/news-resources/electronic/puzzlebook/black.svg");
  transform: rotate(45deg);
}

#puzzlebook .line:nth-child(even) .bullet {
  content: url("/news-resources/electronic/puzzlebook/white.svg");
  transform: rotate(45deg);
}

#authorblock {
  border-top: 1px solid lightgray;
}

#photoandblurb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.7rem;
}

#authorphoto {
  align-self: flex-start;
}

/*# sourceMappingURL=math.css.map */
