/* Speaker directory, using the site's existing type and event palette. */
.speakers-page .member-page-header p:not(.eyebrow) { max-width: 46rem; line-height: 1.6; }
.speaker-resource-links { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 2rem; }
.speaker-resource-links .button { white-space: normal; text-align: left; }
.speaker-filter { grid-template-columns: minmax(8rem, .7fr) minmax(0, 1.5fr) minmax(0, 1fr); }
.speaker-results-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin: 1.5rem 0; }
.speaker-results-summary > span { font-size: .85rem; }
.speaker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.speaker-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--color-border);
    border-top: 4px solid var(--event-type-accent);
    border-radius: 0;
    background: #fff;
    overflow-wrap: anywhere;
    scroll-margin-top: 7rem;
}
.speaker-portrait {
    display: grid;
    place-items: center;
    width: 160px;
    height: 190px;
    max-width: 100%;
    margin: 0 0 1.25rem;
    background: var(--event-type-soft);
}
.speaker-portrait img { display: block; width: 100%; height: 100%; object-fit: contain; }
.speaker-initials { font-family: var(--font-heading); font-size: 3.5rem; color: var(--event-type-accent); }
.speaker-identity h2 { margin: .75rem 0 .65rem; font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.2; }
.speaker-organization { margin: 0 0 1rem; color: var(--color-text-muted); font-size: .9rem; line-height: 1.5; }
.speaker-appearances { margin-top: auto; padding-top: 1.5rem; }
.speaker-appearances h3 { margin: 0 0 .65rem; font-family: var(--font-body); font-size: .8rem; font-weight: 700; }
.speaker-appearances ul { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.speaker-appearances li { margin: 0; }
.speaker-appearances a { display: inline-block; min-height: 44px; color: var(--color-primary); font-weight: 700; font-size: .925rem; line-height: 1.5; text-underline-offset: .2em; }
.speaker-appearances p { margin: .4rem 0 0; font-size: .825rem; line-height: 1.5; color: var(--color-text-muted); }
.speaker-appearances a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
@media (max-width: 1000px) { .speaker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .speaker-filter { grid-template-columns: minmax(0, 1fr); }
    .speaker-grid { grid-template-columns: minmax(0, 1fr); }
}
