.talks-section {
  max-width: 900px;
  margin: 2.5rem auto 3rem;
  padding: 0 1rem;
}

/* Optional section title */
.talks-section > h2,
.talks-section > h3 {
  text-align: center;
  margin-bottom: 1.5rem;
}

/* Individual talk card */
.talk-card {
  border: 1px solid #e1e4e8;
  border-radius: 10px;
  padding: 1rem 1.2rem;
  margin-bottom: 1rem;
  background-color: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

/* Top meta line: type + date/time */
.talk-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
  font-size: 0.8rem;
}

/* Type badge */
.talk-type {
  display: inline-block;
  padding: 0.12rem 0.53rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 505;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

/* Type-specific colors (higher-contrast text) */
.talk-type-invited {
  background-color: #f9e3b3;
  color: #6b4a00;  /* darker amber/brown */
}

.talk-type-contributed {
  background-color: #ebe6ff;
  color: #232a6d;  /* darker indigo */
}

.talk-type-special {
  background-color: #d3e5f7;
  color: #0f3e5a;  /* darker blue */
}


/* Date & time text */
.talk-datetime {
  font-size: 0.8rem;
  color: #555;
}

/* Title */
.talk-title {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0.3rem 0 0.1rem;
}

/* Speaker + affiliation line */
.talk-speaker {
  font-size: 0.9rem;
  color: #333;
  margin-bottom: 0.4rem;
}

.talk-speaker a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.2);
}

.talk-speaker a:hover {
  text-decoration: none;
  border-bottom-style: solid;
}

.talk-affiliation {
  font-size: 0.85rem;
  color: #666;
}

/* Abstract body */
.talk-abstract {
  margin-top: 0.6rem;
  font-size: 0.9rem;
  line-height: 1.55;
}

/* Make sure long math lines wrap decently */
.talk-abstract p {
  margin: 0.3rem 0;
}

.talk-abstract .textsc {
  font-variant-caps: small-caps;
}

/* Slightly tighter on mobile */
@media (max-width: 700px) {
  .talks-section {
    padding-left: 0.2rem;
    padding-right: 0.2rem;
  }
  .talk-card {
    padding: 0.9rem 1rem;
    /* margin-left: 0;
    margin-right: 0; */
  }
  .talk-title {
    font-size: 1rem;
  }
  .talk-abstract {
    font-size: 0.88rem;
  }
}
