/* LSDS shared typography and layout. Loaded after legacy theme styles. */
#page {
  --lsds-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lsds-ink: #243343;
  --lsds-muted: #526171;
  --lsds-blue: #24638b;
  color: var(--lsds-ink);
  font-family: var(--lsds-font) !important;
  font-size: 16px;
  line-height: 1.6;
}
#page :is(h1,h2,h3,h4,h5,h6,p,a,span,div,li,label,input,select,textarea,button,td,th) {
  font-family: var(--lsds-font) !important;
}
#page .fa { font-family: FontAwesome !important; }
#page pre, #page code, #page pre * { font-family: ui-monospace, monospace !important; }
#page :is(h1,h2,h3,h4,h5,h6) {
  color: var(--lsds-ink);
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1.25;
}
#page #page-title { font-size: clamp(28px, 2.8vw, 40px); text-align: left; }
#page #page-heading { background: #f6f8fa; padding: 30px 0; }
#page #page-heading .wrap,
#page #header .wrap,
#page #header-bar > .wrap,
#page #footer-bottom .wrap,
#page #body > .wrap.content-page,
#page #body.is-front > .region--content-section > .block:not(#block-nexuse-homepage-cta) {
  width: 92% !important;
  max-width: 1440px !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}
#page #page-heading .wrap { padding-inline: 15px; }
#page #body > .wrap.content-page { padding: 32px 15px; }
#page #body .content-page .region--content > * { grid-column: 1 / -1; min-width: 0; }
#page #body .content-page .region--content { margin-bottom: 0; }
#page .text-content { font-size: 16px; line-height: 1.65; }
#page .text-content p { margin-block: 0 18px; font-size: inherit; line-height: inherit; }
#page #body a:not(.pub-pdf-link):not(.more-publications-button):not([class*="button"]) {
  color: var(--lsds-blue);
}
#page #body a:hover { text-decoration: underline; }
#page #body a:focus-visible, #page button:focus-visible, #page input:focus-visible {
  outline: 3px solid #24638b;
  outline-offset: 3px;
}
#page #body.is-front .block__title {
  text-align: left !important;
  font-size: 28px !important;
  margin: 40px 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
}
#page #block-nexuse-homepage-intro .rtecenter {
  font-size: 20px;
  line-height: 1.6;
  color: var(--lsds-muted);
  margin: 30px 0 0 !important;
}
#page .views-field-title a { text-transform: none !important; letter-spacing: normal !important; }
#page .view-id-homepage_projects .views-view-grid,
#page .view-id-homepage_vacancies .views-view-grid { gap: 24px !important; }
#page .view-id-homepage_projects .views-view-grid__item { min-width: 0; text-align: left; }
/* Earlier card repairs use !important; retain jQuery's filter hiding. */
#page #body .view-homepage-projects .views-view-grid__item[style*="display: none"] { display: none !important; }
#page .view-id-homepage_projects .views-field-field-logo {
  border: 1px solid #e1e7ed;
  background: #fff;
  border-radius: 6px;
  box-shadow: none;
}
#page .view-id-homepage_projects .views-field-field-tag-line {
  font-size: 14px; line-height: 1.5; color: var(--lsds-muted);
}
#page .view-id-homepage_projects .views-field-field-category .field-content { justify-content: flex-start; }
#page .views-field-field-category a,
#page .field--name-field-category a,
#page .views-field-field-project-categories a {
  background: #eaf1f6 !important;
  color: #285a7b !important;
  border: 1px solid #d7e3ec;
  font-size: 12px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: normal;
  padding: 4px 9px;
  transform: none;
}
#page .project-filters { text-align: left; margin-bottom: 24px; }
#page .project-filters span { font-size: 14px; box-shadow: none; }
#page .view-homepage-blog .views-field-title a { font-size: 18px !important; line-height: 1.4 !important; }
#page .view-homepage-blog .publication-venue,
#page .view-homepage-blog .publication-authors {
  font-size: 14px !important;
  line-height: 1.6 !important;
  font-style: normal !important;
  font-weight: 400 !important;
  color: var(--lsds-muted) !important;
}
#page .view-homepage-blog.view-display-id-page_1 .view-content > h3 {
  text-align: left; padding: 12px 20px; line-height: 1.4;
  font-weight: 600; background: #f6f8fa;
}
#page .view-homepage-blog .views-view-grid__item,
#page .view-id-homepage_vacancies .views-view-grid__item {
  border: 1px solid #dce3e9 !important;
  box-shadow: none !important;
  transform: none !important;
  padding: 24px !important;
}
#page .view-id-people_directory .view-content { width: 100%; max-width: none; }
#page .view-id-people_directory .views-row { margin-bottom: 12px; }
#page .view-id-people_directory :is(.views-field-field-first-name,.views-field-field-surname) {
  font-size: 16px; text-transform: none; line-height: 1.4;
}
#page .view-id-people_directory .views-field-field-role { font-size: 14px; color: var(--lsds-muted); }
#page .view-id-people_directory .view-header .group-photo-section { margin-bottom: 32px; }
#page .view-id-people_directory .view-header img { max-height: 480px; width: auto; object-fit: contain; }
#page .node__content { margin-inline: 0; }
#page .node__meta { font-size: 14px; color: var(--lsds-muted); }
#page .node .field { font-size: 16px; line-height: 1.6; }
#page #footer { padding: 32px 0 !important; margin-top: 32px !important; }
#page #footer .wrap-column { width: 92%; max-width: 1440px; box-sizing: border-box; margin-inline: auto; }
#page #footer .block__title { font-size: 20px; text-transform: none; }
@media (max-width: 760px) {
  #page .view-homepage-blog .views-view-grid { grid-template-columns: 1fr !important; }
  #page .view-id-homepage_vacancies .views-view-grid { grid-template-columns: 1fr !important; }
  #page #body .content-page table { display: block; max-width: 100%; overflow-x: auto; }
  #page #body > .wrap.content-page { padding-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #page * { transition: none !important; animation: none !important; }
}

/* Align portrait cards on both the homepage and people directory.
   Alumni use a separate horizontal layout and are excluded. */
#page .view-id-people_directory:not(.view-display-id-attachment_1) > .view-content > .views-row {
  text-align: center !important;
}
#page .view-id-people_directory:not(.view-display-id-attachment_1) > .view-content > .views-row .views-field-field-photo img {
  display: block;
  margin-inline: auto !important;
}
#page .view-id-people_directory:not(.view-display-id-attachment_1) > .view-content > .views-row .views-field-field-surname,
#page .view-id-people_directory:not(.view-display-id-attachment_1) > .view-content > .views-row .views-field-field-role {
  display: block;
  width: 100%;
  margin-inline: 0;
  text-align: center !important;
}
