/* Lab-specific styles. Loaded after the template stylesheet. */
.text-en-heading {
    font-family: Lexend, sans-serif;
    font-weight: 700;
    font-style: normal;
}


.text-en {
    font-family: Lexend, sans-serif;
}


/* User specific */
.bg-light-blue {
    background-color: #e2f1f9;
}

.bg-sand {
    background-color: #fffaee;
}

/* Keyboard navigation; mouse interaction keeps the existing appearance. */
a:focus-visible, button:focus-visible {
  outline: 2px solid #007bff !important;
  outline-offset: 3px;
}
.open_menu, .close_menu {
  padding: 0;
}
.close_menu {
  background: transparent;
}
.navigation_mobile:not(.opened) {
  visibility: hidden;
}

/* Match the existing 5:4 member portraits without changing source photos. */
.team_4 .member-photo-cropped {
  width: 100px;
  height: 80px;
  object-fit: cover;
}

/* Frame wider shots around the member's face and shoulders. */
.team_4 .member-photo-frame {
  display: inline-block;
  position: relative;
  width: 100px;
  height: 80px;
  overflow: hidden;
  vertical-align: middle;
}
.team_4 .member-photo-frame img {
  position: absolute;
  max-width: none;
  height: auto;
}

/* Media: readable titles, quiet metadata, and responsive columns. */
#media { scroll-margin-top: 90px; }
.media-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 64px;
  margin-top: 40px;
}
.media-category { margin: 0 0 8px; font-size: 22px; line-height: 1.5; }
.media-list { list-style: none; margin: 0; padding: 0; }
.media-item { padding: 16px 0; border-bottom: 1px solid #e2e7ec; }
.media-title { display: inline-block; font-size: 16px; font-weight: 500; line-height: 1.7; overflow-wrap: anywhere; }
.media-title:hover { text-decoration: underline; }
.media-meta { margin-top: 5px; font-size: 13px; line-height: 1.6; color: #596673; }
.media-side { display: grid; gap: 32px; align-content: start; }
.media-series { display: flex; gap: 16px; margin-top: 8px; font-size: 14px; }
.media-archive summary { cursor: pointer; padding: 16px 0; color: #315f9a; font-size: 14px; }
.media-archive summary:focus-visible { outline: 2px solid #315f9a; outline-offset: 4px; }
.media-hide, .media-archive[open] .media-show { display: none; }
.media-archive[open] .media-hide { display: inline; }
@media (max-width: 991px) {
  .media-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 28px; }
}

/* Semantic headings keep the established typography. */
.site-title { margin: 0; font-size: inherit; line-height: inherit; }
.research-title { font-weight: 500; line-height: 1.4; }
.publication-year { margin-bottom: 0; line-height: 1.4; }
main > section, #contact { scroll-margin-top: 90px; }
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2000;
  padding: 10px 16px;
  background: #fff;
  color: #1f4f8c;
  border: 2px solid currentColor;
  border-radius: 6px;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

/* Individual portrait framing. */
.member-photo-minemura { object-position: center top; }
.member-photo-takeuchi { object-position: center 40%; }
.team_4 .member-photo-okawa { width: 500px; left: -210px; top: -265px; }
.team_4 .member-photo-hashiguchi { width: 333px; left: -89px; top: -85px; }
