/* Confirmed speakers; uses the existing site foundations. */
.speakers-heading {
  padding: 56px 0 40px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.speakers-title-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 40px;
}

.speakers-heading h1 {
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.event-details {
  display: grid;
  gap: 2px;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.55;
  text-align: right;
}

.event-name {
  color: var(--ink);
  font-weight: 700;
}

.speaker-list {
  padding-block: 64px 88px;
}

.speaker-profile {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}

.speaker-profile + .speaker-profile {
  margin-top: 56px;
  padding-top: 56px;
  border-top: 1px solid var(--line);
}

.speaker-photo {
  height: auto;
  border-radius: var(--radius);
}

.speaker-details h2 {
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -.025em;
}

.speaker-affiliation {
  margin-top: 10px;
  color: var(--ink-soft);
  line-height: 1.5;
}

.speaker-talk {
  margin-top: 26px;
}

.speaker-label {
  margin-bottom: 8px;
  color: var(--ink-soft);
  font-size: .875rem;
}

.speaker-talk h3 {
  max-width: 52ch;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.35;
  letter-spacing: -.015em;
}

.speaker-bio {
  max-width: 76ch;
  margin-top: 24px;
  color: var(--ink-soft);
  line-height: 1.7;
}

@media (max-width: 760px) {
  .speakers-heading { padding: 40px 0 32px; text-align: center; }
  .speakers-heading h1 { text-wrap: balance; }
  .speakers-title-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .event-details { text-align: center; }
  .speaker-list { padding-block: 40px 64px; }
  .speaker-profile { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .speaker-photo { max-width: 260px; margin-inline: auto; }
  .speaker-details h2,
  .speaker-affiliation,
  .speaker-talk { text-align: center; }
  .speaker-talk h3 { margin-inline: auto; }
  .speaker-bio { max-width: 60ch; margin-inline: auto; }
  .speaker-details { min-width: 0; }
  .speaker-profile + .speaker-profile { margin-top: 40px; padding-top: 40px; }
}
