/* Subpage refinements are separate so the homepage stays unchanged. */
.site-footer { border: 0; padding-top: 32px; padding-bottom: 32px; }
.photo-location-note { font-size: inherit; color: inherit; }
.interior-page {
  --cobalt: var(--cardinal);
  --soft: #faf7f7;
  --line: #e8e5e5;
  --control-border: #d6caca;
  --link-underline: #d7b4b4;
  --page-gutter: 44px;
  padding-bottom: 32px;
}
.interior-page .page-header.page-banner {
  height: 224px;
  padding: 36px var(--page-gutter);
}
.interior-page .page-header-copy { padding: 0; }
@media (min-width: 701px) {
  .site-footer { border-left: 1px solid var(--line); }
  .interior-page .page-header.page-banner { height: 284px; padding-top: 96px; }
}
.interior-page .page-banner h1 { font-size: 40px; font-weight: 650; }
.interior-page .page-banner .section-kicker { font-size: 10px; margin-bottom: 14px; }
.interior-page .page-content { padding: 32px var(--page-gutter) 48px; }
.interior-page .collection-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  margin: 0 var(--page-gutter);
  padding: 32px 0 12px;
  border: 0;
}
.interior-page .collection-tools .search-field { flex: 0 1 360px; }
.interior-page .collection-tools .filter-field { flex: 0 1 220px; }
.interior-page .collection-tools label { display: block; position: relative; }
.interior-page .collection-tools label > span {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.interior-page .collection-tools input, .interior-page .collection-tools select {
  background: #f5f4f4;
  border: 1px solid transparent;
  border-radius: 4px;
  height: 42px;
}
.interior-page .collection-tools input:hover, .interior-page .collection-tools select:hover { background: #efeded; }
.interior-page .collection-tools input:focus, .interior-page .collection-tools select:focus { background: white; border-color: var(--cardinal); }
.interior-page .reset-filters { text-decoration: none; font-weight: 500; }
.interior-page .reset-filters:disabled { visibility: hidden; }
.interior-page .reset-filters:hover:not(:disabled) { text-decoration: underline; }
.interior-page .result-count { margin: 0 0 0 auto; font-size: 12px; white-space: nowrap; }
.interior-page .collection-tools + .page-content { padding-top: 28px; }
.interior-page .page-content h2 { font-size: 22px; }
.interior-page .page-content a { text-decoration: none; }
.interior-page .page-content a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Years form an editorial margin beside the publication entries. */
.publications-page .page-content {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  column-gap: 32px;
  align-items: start;
}
.publications-page .page-content > :not(.year-heading):not(.publication-list) { grid-column: 1 / -1; }
.publications-page .page-content .year-heading {
  grid-column: 1;
  margin: 0;
  padding: 26px 0;
  font-size: 23px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.publications-page .publication-list { grid-column: 2; min-width: 0; margin-bottom: 32px; }
.publications-page .publication-list > li {
  padding: 24px 18px;
  margin: 0 -18px;
  font-size: 13px;
  line-height: 1.75;
  border: 0;
}
.publications-page .publication-list > li strong { margin: 8px 0; font-size: 18px; font-weight: 600; line-height: 1.5; }
.publications-page .publication-list > li:hover, .publications-page .publication-list > li:focus-within {
  box-shadow: none;
  background: transparent;
}
.publications-page .page-content .year-browser { margin: 0 0 12px; }
.publications-page .page-content .year-browser summary { font-size: 12px; padding: 0 0 12px; font-weight: 500; }
.publications-page .year-nav { border: 0; gap: 8px 22px; }
.publications-page .page-content .year-nav a:hover { text-decoration: none; }

/* Grouped people are a readable directory, including on narrow screens. */
.directory-section {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 32px;
  padding: 30px 0;
}
.directory-section:first-child { border-top: 0; padding-top: 0; }
.people-page .directory-section > h2 {
  margin: 2px 0 0;
  color: var(--cardinal);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}
.member-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 26px 30px; margin: 0; padding: 0; list-style: none; }
.member { min-width: 0; padding: 0 0 14px; }
.member h3 { margin: 0 0 7px; font-size: 17px; font-weight: 600; line-height: 1.45; }
.people-page .member h3 a { color: var(--ink); }
.people-page .member:hover h3, .people-page .member h3 a:hover { color: var(--cardinal); }
.people-page .member p { margin: 0; font-size: 13px; line-height: 1.65; color: var(--muted); }
.people-page .member .member-period { margin-top: 7px; font-size: 11px; color: #7a7174; font-variant-numeric: tabular-nums; }
.directory-section[data-directory-group="Faculty"] .member-list { grid-template-columns: 1fr; }
.directory-section[data-directory-group="Faculty"] .member h3 { font-size: 26px; }

/* Software and related institutions use open columns, not boxed sections. */
.resources-page .resource-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 36px 56px; }
.resources-page .resource-list > li {
  min-width: 0;
  padding: 4px 0;
  border: 0;
  font-size: 14px;
  line-height: 1.75;
}
.resources-page .resource-list > li:hover, .resources-page .resource-list > li:focus-within { box-shadow: none; background: transparent; }
.resources-page .resource-title { display: inline-block; margin-bottom: 10px; }
.resources-page .resource-title strong { font-size: 20px; font-weight: 600; }
.resource-description { color: var(--muted); }
.resource-description a { color: inherit; }
.resources-page .repository-link { display: inline-block; margin: 44px 0 0; font-size: 14px; font-weight: 550; }
.resources-page .resource-list > li:first-child { border: 0; }
.resources-page .page-content details { margin-top: 40px; }
.resources-page .page-content details[open] summary { margin-bottom: 20px; }
.resources-page .page-content summary { font-size: 16px; }
.links-page .resource-list { counter-reset: institution; gap: 12px 56px; }
.links-page .resource-list > li { position: relative; counter-increment: institution; padding: 24px 28px 30px 36px; }
.links-page .resource-list > li::before {
  content: counter(institution, decimal-leading-zero);
  position: absolute; top: 27px; left: 0;
  font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums;
}
.links-page .resource-list a { font-size: 17px; font-weight: 550; line-height: 1.6; color: var(--ink); }
.links-page .resource-list a::after { content: "\2197"; position: absolute; right: 0; top: 24px; color: var(--cardinal); transition: transform .2s ease; }
.links-page .resource-list a:hover::after { transform: translate(2px, -2px); }
.links-page .resource-list a:hover { text-decoration: none; color: var(--cardinal); }
.links-page .resource-list p { margin: 0; }
.contact-page .contact-grid { gap: 36px 64px; padding: 8px 0; }
.contact-page .contact-grid strong { font-size: 17px; line-height: 1.6; }
.contact-page .contact-grid p { font-size: 15px; color: var(--muted); margin-bottom: 30px; }
.contact-page .contact-credit { border: 0; padding-top: 8px; font-size: 11px; }
.prose-page .page-content > p, .prose-page .prose-group { max-width: 80ch; }
.interior-page .data-table th { background: transparent; }
.interior-page .data-table td, .interior-page .data-table th { padding: 18px 14px; border: 0; }
.interior-page .data-table tr:hover td { background: #fafafa; }
.interior-page > .archive-nav { border: 0; }
.interior-page .archive-nav a { border: 0; }

@media (min-width: 1800px) {
  .interior-page { --page-gutter: 64px; }
  .publications-page .page-content { grid-template-columns: 144px minmax(0,1fr); column-gap: 40px; }
  .directory-section { grid-template-columns: 184px minmax(0,1fr); gap: 40px; }
}
@media (max-width: 1200px) {
  .member-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .directory-section { grid-template-columns: 130px minmax(0,1fr); gap: 24px; }
}
@media (max-width: 1000px) {
  .interior-page { --page-gutter: 30px; }
  .interior-page .collection-tools { gap: 12px 16px; }
  .interior-page .collection-tools .search-field { flex: 1 1 240px; }
  .interior-page .collection-tools .filter-field { flex: 1 1 180px; }
  .publications-page .page-content { grid-template-columns: 66px minmax(0,1fr); gap: 0 24px; }
  .resources-page .resource-list { gap: 30px 32px; }
}
@media (max-width: 700px) {
  .interior-page { --page-gutter: 22px; padding-bottom: 0; }
  .interior-page .page-header.page-banner { height: 190px; padding: 28px var(--page-gutter); }
  .interior-page .page-banner h1 { font-size: 32px; }
  .interior-page .page-content { padding: 26px var(--page-gutter) 32px; }
  .interior-page .collection-tools { padding: 24px 0 4px; gap: 12px 16px; }
  .interior-page .collection-tools .search-field { flex: 1 1 100%; }
  .interior-page .collection-tools .filter-field { flex: 0 1 100%; width: 100%; }
  .interior-page .reset-filters { min-height: 24px; padding: 0; font-size: 12px; }
  .interior-page .collection-tools input, .interior-page .collection-tools select { font-size: 16px; }
  .publications-page .page-content { display: block; }
  .publications-page .page-content .year-heading { padding: 12px 0 16px; font-size: 22px; }
  .publications-page .publication-list { margin-bottom: 26px; }
  .publications-page .publication-list > li { margin: 0; padding: 20px 0; font-size: 12px; }
  .publications-page .publication-list > li strong { font-size: 16px; }
  .directory-section { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 24px 0; }
  .member-list { gap: 20px; }
  .member h3 { font-size: 16px; }
  .directory-section[data-directory-group="Faculty"] .member h3 { font-size: 24px; }
  .resources-page .resource-list { grid-template-columns: minmax(0,1fr); }
  .resources-page:not(.links-page) .resource-list > li { padding-top: 4px; padding-bottom: 4px; }
  .links-page .resource-list a { font-size: 16px; }
  .contact-page .contact-grid { gap: 10px; }
}
@media (max-width: 380px) {
  .member-list { grid-template-columns: minmax(0,1fr); }
}
