:root {
  --c-primary: #3283e5;
  --c-primary-text: #365a7f;
  --c-link: #365a7f;
  --c-link-hover: rgb(0 123 255 / 50%);
}

.bg-primary {
  background-color: var(--c-primary) !important;
}

.navbar-dark .navbar-nav .nav-link {
  color: #dfdfdf;
}

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

a:hover, a:focus, a:active {
  color: var(--c-link-hover);
}

.text-primary {
  color: var(--c-primary-text) !important;
}

/* 
 * アルファベットが強制的に大文字にならないように修正 
 */
h1, h2, .subheading, #sideNav .navbar-nav .nav-item .nav-link {
  text-transform: none !important;
}

.language-flag {
  width: 1em;
  height: 1em;
  margin-right: 0.35em;
  vertical-align: -0.125em;
}

/* Ensure sections have enough scroll margin to clear fixed headers if necessary */
section[id] {
  scroll-margin-top: 54px; /* Matches body padding-top on mobile */
}

@media (min-width: 992px) {
  section[id] {
    scroll-margin-top: 0;
  }
}

/* On small screens the language switcher can overlap the brand text; park it near the toggler. */
@media (max-width: 991.98px) {
  #sideNav .language-switcher-top {
    left: auto !important;
    right: 5.75rem !important;
    top: 0.5rem !important;
  }
}

/* Tighten spacing between presentation title and nested bullet details */
#Publications li > p.lead {
  margin-bottom: 0.25rem;
}

#Publications li > p.lead + ul {
  margin-top: 0;
}

/* Improve readability of the intro text block on About */
#about .about-intro {
  max-width: 72ch;
}

#about .about-intro p {
  line-height: 1.8;
  margin-bottom: 0.9rem;
}

#about .about-intro p:last-of-type {
  margin-bottom: 1.2rem;
}

@media (min-width: 992px) {
  #about .about-intro p {
    font-size: 1.04rem;
  }
}
