/* Announced talks (rendered by talks.js). Uses each page's own theme variables. */
/* Track tabs (schedule) */
.talks-tabs { display: flex; gap: 8px; margin-bottom: 20px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.talks-tabs::-webkit-scrollbar { display: none; }
.talks-tab {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; cursor: pointer;
  font-family: var(--font-body); font-size: 0.88rem; font-weight: 700; white-space: nowrap;
  color: var(--text-2); background: var(--surface); border: 1.5px solid var(--border);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.talks-tab:hover { color: var(--text); border-color: var(--accent); }
.talks-tab[aria-selected="true"] { color: #fff; background: var(--accent); border-color: var(--accent); }
.talks-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.talks-tab-count { font-size: 0.75rem; opacity: 0.75; }
.talks-panel[hidden] { display: none; }
.talks-panel-link { font-size: 0.85rem; font-weight: 600; margin-bottom: 14px; }
.talks-panel-link a { color: var(--accent); text-decoration: none; }
.talks-panel-link a:hover { text-decoration: underline; }

.talk-full {
  min-width: 0; overflow-wrap: break-word;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  padding: 18px 22px; margin-bottom: 12px; text-align: left;
}
.talk-full:last-child { margin-bottom: 0; }
.talk-full-track { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; text-decoration: none; }
.talk-full-title { font-family: var(--font-head); font-size: clamp(1.05rem, 2.2vw, 1.25rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.3; color: var(--text); margin-bottom: 6px; }
.talk-full-summary { font-size: 0.9rem; line-height: 1.55; color: var(--text-2); }

.spk-list { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid var(--border); margin-top: 14px; padding-top: 14px; }
.spk { display: flex; gap: 12px; align-items: flex-start; }
.spk-photo {
  flex-shrink: 0; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; position: relative;
  background: var(--border);
}
.spk-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.spk-photo img.is-default { object-fit: contain; }
.spk-name { font-family: var(--font-head); font-weight: 700; font-size: 0.95rem; color: var(--text); }
.spk-role { font-size: 0.78rem; font-weight: 600; color: var(--accent); margin: 1px 0 4px; }
.spk-bio { font-size: 0.8rem; line-height: 1.55; color: var(--text-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.spk.expanded .spk-bio { display: block; }
.spk-links { display: flex; gap: 14px; margin-top: 4px; font-size: 0.78rem; font-weight: 600; }
.spk-link, .spk-more { color: var(--accent); text-decoration: none; }
.spk-link:hover, .spk-more:hover { text-decoration: underline; }
.spk-more { display: none; padding: 0; border: 0; background: none; cursor: pointer; font: inherit; }
.spk.clamped .spk-more, .spk.expanded .spk-more { display: inline; }
.spk-more:focus-visible, .spk-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Two columns on wide screens: talk on the left, speakers on the right */
@media (min-width: 761px) {
  .talk-full { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); column-gap: 28px; align-items: start; }
  .talk-full-main { grid-column: 1; }
  .talk-full .spk-list { grid-column: 2; margin-top: 0; padding: 0 0 0 24px; border-top: 0; border-left: 1px solid var(--border); }
}

@media (max-width: 560px) {
  .talk-full { padding: 14px 16px; }
}
