/* Custom styles (hand-maintained, loaded after default.css) */

/* Accent colors: purple for highlights, red for important notices */
.text-accent {
  color: #6c63ff;
}
.text-important {
  color: red;
}

/* NEWS heading: decorative serif font, larger size */
#NEWS {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.8rem;
  letter-spacing: 0.03em;
}

/* Newspaper body serif (news entries, libuipc notice) */
.news-list,
.serif-body {
  font-family: "Lora", Georgia, serif;
}

/* Justify all body text, like Word */
.article .content {
  text-align: justify;
  hyphens: auto;
}

/* Keep linked author names on a single line */
.pub-text a,
.about-bio a {
  white-space: nowrap;
}

/* Smooth scrolling for in-page navigation */
html {
  scroll-behavior: smooth;
}

/* Banner image: crop height so content starts higher */
.card-image img.thumbnail {
  width: 100%;
  max-height: 300px;
  object-fit: cover;
}

/* Paper teaser images: rounded thumbnail frame, like Bootstrap's .thumbnail */
.article .content img {
  display: block;
  padding: 4px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
}

/* Embossed divider under the banner: line — dot — line */
.divider-dot {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
}
.divider-dot::before,
.divider-dot::after {
  content: "";
  flex: 1;
  height: 0;
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #fff;
}
.divider-dot > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d8d8d8;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), 0 1px 0 #fff;
}

/* Social icon buttons under the avatar: compact circular style */
.level.is-mobile.social-links {
  gap: 0.75rem;
}
.level.is-mobile.social-links a.button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  margin: 0;
  border-radius: 50%;
  border: 1px solid #e0e0e0;
  background: #fff;
  color: #4a4a4a;
  font-size: 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
}
.social-links a.button:hover {
  color: #6c63ff;
  border-color: #6c63ff;
  box-shadow: 0 2px 6px rgba(108, 99, 255, 0.25);
}

/* Plain solid divider line between sections */
.divider-line {
  height: 0;
  margin: 0 0 1.25rem;
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #fff;
}

/* Avatar photo: same frame as teasers, plus a subtle shadow for depth */
.image .avatar {
  padding: 4px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}

/* Soft framed box (bio in sidebar, news in main column) */
.soft-box {
  padding: 0.75rem 1rem;
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 4px;
}
.about-bio {
  margin-top: 1rem;
  font-size: 0.9rem;
  line-height: 1.6;
  text-align: justify;
  hyphens: auto;
}
.about-bio p + p {
  margin-top: 0.75rem;
}

/* Entry lists: date label + aligned, justified text (news, teaching, awards, experiences) */
.content .entry-list p {
  display: flex;
  gap: 0.75rem;
  margin: 0;
}
.content .entry-list p + p {
  margin-top: 0.4rem;
}
.entry-date {
  flex: 0 0 auto;
  min-width: 3.2rem;
  font-weight: 600;
  white-space: nowrap;
}
.entry-wide .entry-date {
  min-width: 8.5rem;
}
.entry-text {
  flex: 1;
  min-width: 0;
  text-align: justify;
  hyphens: auto;
}

/* Publication list without numbering */
.content ol.pub-list {
  list-style-type: none;
  margin-left: 0;
}

/* Publication entries: teaser on the left, text on the right */
.pub {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}
.pub > a.gallery-item,
.pub > img {
  flex: 0 0 240px;
}
.pub img {
  width: 100%;
  height: auto;
}
.pub-text {
  flex: 1;
  min-width: 0;
}
.pub-text p {
  margin-bottom: 0.5rem;
}

/* Paper links rendered as pills */
.pub-links a {
  display: inline-block;
  padding: 2px 12px;
  margin: 0 6px 6px 0;
  font-size: 0.85em;
  color: #4a4a4a;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 999px;
  text-decoration: none;
}
.pub-links a:hover {
  color: #6c63ff;
  border-color: #6c63ff;
}
.pub-links .pub-note {
  font-size: 0.85em;
  color: #7a7a7a;
}

/* Mobile: stack teaser above text; keep navbar menu scrollable */
@media screen and (max-width: 768px) {
  .pub {
    flex-direction: column;
  }
  .pub > a.gallery-item,
  .pub > img {
    flex-basis: auto;
    width: 100%;
    max-width: 420px;
  }
}
@media screen and (max-width: 1023px) {
  .navbar-main .navbar-menu {
    display: flex;
    justify-content: flex-start;
    overflow-x: auto;
    box-shadow: none;
  }
  .navbar-main .navbar-end {
    margin: 0;
  }
}
