/* ===================================================================
   Konuşmacı dizini (/konusmacilar/)
   =================================================================== */

/* --- Harf gezinmesi --- */

.az-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: var(--space-7);
    padding-bottom: var(--space-5, 24px);
    border-bottom: 1px solid var(--color-border);
}

.az-nav__letter {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    padding-inline: 6px;
    /* Yükseklik parmakla basmaya göre; farede 34px yeterliydi. */
    min-height: 34px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-control);
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
    transition: background 200ms var(--ease), color 200ms var(--ease);
}
.az-nav__letter:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-invert);
}

/* --- Harf grubu --- */

.az-group + .az-group { margin-top: var(--space-7); }

.az-group__letter {
    margin: 0 0 var(--space-4, 16px);
    padding-bottom: 6px;
    border-bottom: 2px solid var(--color-accent);
    color: var(--color-primary);
    font-size: var(--text-xl, 1.5rem);
    /* Çıpayla gelindiğinde başlık yapışkan başlığın altında kalmasın. */
    scroll-margin-top: 96px;
}

/* --- Kişi kartı --- */

.speaker-list {
    display: grid;
    /* min(310px, 100%): 310px'lik asgari sütun, 320px genişliğindeki
       telefonda (gutter düşünce 288px kalıyor) satırı taşırıyordu. Sütun
       artık kaptan geniş olamaz. */
    grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr));
    gap: var(--space-5, 24px);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Çerçevesiz: kartları birbirinden ayıran şey ızgara boşluğu ve fotoğraf,
   çizgi değil. Sayfada 29 kart var; her birinin etrafına kutu çizmek listeyi
   ağırlaştırıyordu. Dolgu da çerçeveyle birlikte düştü — kutu yokken iç
   boşluk adları sütun kenarından içeri kaçırıyordu. */
.speaker-card {
    display: flex;
    gap: var(--space-4, 16px);
    align-items: flex-start;
    /* Kampanya bağlantıları doğrudan kişiye geliyor (#kemal-memisoglu);
       kart yapışkan başlığın altında kalmamalı. */
    scroll-margin-top: 96px;
}

/* Çıpayla gelinen kart bir an vurgulanır: 29 kişilik listede doğru kişiyi
   bulmak yoksa okuyucuya kalıyor. Vurgu artık çerçeveden değil, dışarıdan
   geçen bir halkadan geliyor; kartın kendi kenarlığı yok. */
.speaker-card:target {
    outline: 2px solid var(--color-accent);
    outline-offset: 8px;
    border-radius: var(--radius-lg);
}

.speaker-card__photo {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: var(--radius-pill);
    background: var(--color-surface-sunken);
}
.speaker-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }

.speaker-card__initials {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--color-primary);
    font-family: var(--font-heading, inherit);
    font-size: 1.5rem;
    font-weight: 700;
}

.speaker-card__body { min-width: 0; }

.speaker-card__name {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.3;
}

.speaker-card__title {
    margin: 4px 0 0;
    color: var(--color-text-muted);
    font-size: var(--text-sm, .875rem);
}

/* --- Oturum etiketleri --- */

.speaker-card__sessions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}
/* margin: 0 — base.css'teki "li + li { margin-top: 8px }" tipografi kuralı
   buraya da düşüyordu. Satır içi bir rozet dizisinde dikey pay anlamsız:
   ikinci ve sonraki rozetler 8px aşağı kayıyor, ilk rozet de esneme
   yüzünden satırın ortasına oturunca aralarında 4px'lik bir basamak
   oluşuyordu (ölçüm: li0 y=2641 h=37, li1 y=2649 h=29). */
.speaker-card__sessions li { display: flex; align-items: center; gap: 6px; margin: 0; }

.session-tag {
    display: inline-block;
    padding: 2px 9px;
    border-radius: var(--radius-control);
    background: var(--color-primary-100);
    color: var(--color-primary-700);
    /* Ölçeğin en küçük adımı (--text-xs, 14px) gövde metni içindir. Rozet
       adın ve görevin yanında ikincil bir etikettir; bir kademe altında
       durması gerekiyor. Satır yüksekliği de kısıldı: 1.65'lik gövde
       satırı rozeti gereksiz şişiriyordu (29px -> 23px). */
    font-size: .8125rem;
    line-height: 1.45;
    font-weight: 600;
    text-decoration: none;
    transition: background 200ms var(--ease);
}
.session-tag:hover { background: var(--color-primary); color: var(--color-text-invert); }

/* Rozetin yanındaki görev notu onunla aynı kademede kalır. */
.session-tag__role {
    color: var(--color-text-muted);   /* UI-006 */
    font-size: .8125rem;
    line-height: 1.45;
}

.az-note {
    margin-top: var(--space-7);
    padding-top: var(--space-5, 24px);
    border-top: 1px solid var(--color-border);
    color: var(--color-text-muted);
    font-size: var(--text-sm, .875rem);
}

/* Parmakla kullanılan cihazda harf düğmeleri 44px'e çıkar — 34px'lik hedef
   yan yana 14 harf varken sürekli komşusuna basılmasına yol açıyor. */
@media (pointer: coarse) {
    .az-nav__letter { min-width: 44px; height: 44px; min-height: 44px; }
}
