/* ============================================================================
 * KorkutAta Film Festivali — Tasarım Sistemi (site.css)
 * ----------------------------------------------------------------------------
 * Bu dosya yalnızca PUBLIC (ziyaretçiye görünen) sayfalar için görsel katmandır.
 * Admin paneli bu temanın dışında tutulur.
 *
 * Yapı:
 *   1. Font (self-host) import
 *   2. Tasarım tokenları (--kaf-*)
 *   3. Bootstrap 5 değişken köprüsü
 *   4. Temel tipografi & gövde
 *   5. Bileşenler: buton, kart, badge, chip, bölüm başlığı, form, navbar, footer, bottom-nav
 *   6. Yardımcılar (utility)
 *   7. Erişilebilirlik & hareket tercihleri
 *
 * WCAG AA NOTLARI (renk kontrastı hesaplanmış):
 *   - Krem #FAF8F4 / metin #262626 → ~13.5:1 ✅ (AA normal dahil tüm seviyeler)
 *   - Krem / #696969 (muted)       → ~5.3:1  ✅ AA normal
 *   - Krem / #E30613 (kırmızı)     → ~5.0:1  ✅ AA normal
 *   - Turuncu #FD6500 / beyaz #FFF → ~3.0:1  ⚠️ YALNIZ büyük/kalın metin (≥18.66px bold)
 *   - Turuncu / koyu #262626       → ~4.6:1  ✅ AA normal (CTA metni için TERCİH EDİLEN)
 *   - Krem / #ABABAB (faint)       → ~2.4:1  ❌ Sadece placeholder/dekoratif
 *   - Amber #F7BB2A yalnız DOLGU; üstüne #262626 metin kullanılır.
 * ========================================================================== */

/* 1. Self-host fontlar (Google Fonts'a runtime bağımlılığı yok) ---------- */
@import url("../lib/fonts/fonts.css");

/* 2. Tasarım tokenları --------------------------------------------------- */
:root {
  /* --- Marka --- */
  --kaf-orange:      #FD6500;   /* ana CTA / aktif sekme */
  --kaf-orange-dark: #FF8A3D;   /* hover/pressed + krem üstünde okunabilir turuncu link */
  --kaf-orange-tint: #2A1A0F;   /* turuncu arka plan tonu */
  --kaf-red:         #E30613;   /* logo kırmızısı */
  --kaf-red-deep:    #DA0E2B;   /* ikincil kırmızı */
  --kaf-amber:       #F7BB2A;   /* ödül / öne çıkan dolgu */

  /* --- Zemin --- */
  --kaf-bg:          #0F0F12;   /* sıcak krem (gövde) */
  --kaf-bg-soft:     #16161A;
  --kaf-surface:     #1B1B20;   /* kart yüzeyi */
  --kaf-surface-2:   #232329;
  --kaf-blue-soft:   #12303B;   /* nadir bilgi vurgu */

  /* --- Metin --- */
  --kaf-ink:         #F4F1EC;
  --kaf-ink-muted:   #A9A6A0;
  --kaf-ink-faint:   #6E6B66;
  --kaf-line:        #2A2A30;   /* kremle uyumlu kenarlık */
  --kaf-line-strong: #3A3A42;

    /* --- Tipografi (kurumsal: Segoe UI) --- */
  --kaf-font-display: "Segoe UI", "Segoe UI Variable", system-ui, -apple-system, "Nunito Sans", Roboto, Arial, sans-serif;
  --kaf-font-body:    "Segoe UI", "Segoe UI Variable", system-ui, -apple-system, "Nunito Sans", Roboto, Arial, sans-serif;

  --kaf-fs-xs:   0.75rem;   /* 12px badge/meta */
  --kaf-fs-sm:   0.875rem;  /* 14px */
  --kaf-fs-base: 1rem;      /* 16px */
  --kaf-fs-lg:   1.125rem;  /* 18px */
  --kaf-fs-xl:   1.375rem;  /* 22px */
  --kaf-fs-h3:   clamp(1.25rem, 1.0rem + 1.2vw, 1.75rem);
  --kaf-fs-h2:   clamp(1.6rem,  1.1rem + 2.2vw, 2.5rem);
  --kaf-fs-h1:   clamp(2.0rem,  1.3rem + 3.5vw, 3.5rem);
  --kaf-lh-tight: 1.15;
  --kaf-lh-body:  1.6;

  /* --- Boşluk --- */
  --kaf-space-1: 4px;  --kaf-space-2: 8px;  --kaf-space-3: 12px;
  --kaf-space-4: 16px; --kaf-space-5: 24px; --kaf-space-6: 32px; --kaf-space-7: 48px;

  /* --- Form & yarıçap & gölge --- */
  --kaf-radius-sm: 8px;
  --kaf-radius:    14px;
  --kaf-radius-lg: 20px;
  --kaf-radius-pill: 999px;
  --kaf-shadow-sm: 0 1px 3px rgba(38,38,38,.06), 0 1px 2px rgba(38,38,38,.04);
  --kaf-shadow:    0 6px 20px rgba(38,38,38,.08);
  --kaf-shadow-lg: 0 16px 40px rgba(38,38,38,.12);

  /* --- Erişilebilirlik / düzen --- */
  --kaf-touch: 44px;            /* min dokunma alanı */
  --kaf-navbar-h: 72px;         /* masaüstü navbar yüksekliği */
  --kaf-navbar-h-mobile: 60px;
  --kaf-bottomnav-h: 62px;      /* mobil bottom navigation */
}

/* 3. Bootstrap 5 köprüsü ------------------------------------------------- */
:root {
  --bs-primary: var(--kaf-orange);
  --bs-primary-rgb: 253, 101, 0;
  --bs-body-color: var(--kaf-ink);
  --bs-body-bg: var(--kaf-bg);
  --bs-border-color: var(--kaf-line);
    --bs-link-color: var(--kaf-orange-dark);
  --bs-link-color-rgb: 255, 138, 61;
  --bs-link-hover-color: var(--kaf-red);
  --bs-font-sans-serif: var(--kaf-font-body);
  --bs-body-font-family: var(--kaf-font-body);
  --bs-body-line-height: var(--kaf-lh-body);
  --bs-border-radius: var(--kaf-radius-sm);
}

/* 4. Temel tipografi & gövde -------------------------------------------- */
html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: var(--kaf-font-body);
  color: var(--kaf-ink);
  background-color: var(--kaf-bg);
  line-height: var(--kaf-lh-body);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  /* Mobil bottom-nav için alt boşluk (içerik barın altında kalmasın) */
  padding-bottom: env(safe-area-inset-bottom, 0);
}

h1, h2, h3, h4, h5, .kaf-display {
  font-family: var(--kaf-font-display);
  font-weight: 600;
  line-height: var(--kaf-lh-tight);
  color: var(--kaf-ink);
  letter-spacing: -0.01em;
}

h1 { font-size: var(--kaf-fs-h1); font-weight: 700; }
h2 { font-size: var(--kaf-fs-h2); }
h3 { font-size: var(--kaf-fs-h3); }

a { color: var(--kaf-orange-dark); text-decoration: none; }
a:hover { color: var(--kaf-red); }

.text-muted { color: var(--kaf-ink-muted) !important; }

/* 5. Bileşenler ---------------------------------------------------------- */

/* 5.1 Bölüm başlığı (Playfair + turuncu aksan alt çizgi) */
.kaf-section-title {
  font-family: var(--kaf-font-display);
  font-size: var(--kaf-fs-h3);
  font-weight: 600;
  margin: 0;
  position: relative;
  padding-bottom: var(--kaf-space-3);
}
.kaf-section-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 44px; height: 3px;
  background: var(--kaf-orange);
  border-radius: var(--kaf-radius-pill);
}
.kaf-section-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--kaf-space-3);
  margin-bottom: var(--kaf-space-5);
  flex-wrap: wrap;
}

/* 5.2 Butonlar (dokunma dostu, pill/radius) */
.btn {
  font-family: var(--kaf-font-body);
  font-weight: 700;
  border-radius: var(--kaf-radius-pill);
  min-height: var(--kaf-touch);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--kaf-space-2);
  padding: 0.55rem 1.35rem;
  transition: background-color .15s ease, color .15s ease, box-shadow .15s ease, transform .1s ease;
  border-width: 2px;
}
.btn-sm {
  min-height: 36px;
  padding: 0.35rem 0.95rem;
  font-size: var(--kaf-fs-sm);
}
.btn-lg {
  min-height: 54px;
  font-size: var(--kaf-fs-lg);
  padding: 0.7rem 1.9rem;
}

/* Ana CTA — turuncu zemin, KOYU metin (WCAG AA: turuncu/koyu ~4.6:1) */
.btn-kaf {
  background-color: var(--kaf-orange);
  border-color: var(--kaf-orange);
  color: var(--kaf-ink);
}
.btn-kaf:hover, .btn-kaf:focus {
  background-color: var(--kaf-orange-dark);
  border-color: var(--kaf-orange-dark);
  color: #1A1206;
}
/* Bootstrap .btn-primary'ı da marka CTA'sına eşle (mevcut view'larla uyum). */
.btn-primary {
  background-color: var(--kaf-orange);
  border-color: var(--kaf-orange);
  color: var(--kaf-ink);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: var(--kaf-orange-dark);
  border-color: var(--kaf-orange-dark);
  color: #fff;
}

/* İkincil — krem zeminde turuncu çerçeve, turuncu-koyu metin */
.btn-kaf-outline {
  background-color: transparent;
  border-color: var(--kaf-orange);
  color: var(--kaf-orange-dark);
}
.btn-kaf-outline:hover, .btn-kaf-outline:focus {
  background-color: var(--kaf-orange);
  border-color: var(--kaf-orange);
  color: var(--kaf-ink);
}

/* Koyu dolgu (vurgulu ikincil eylem) */
.btn-kaf-dark {
  background-color: var(--kaf-ink);
  border-color: var(--kaf-ink);
  color: #1A1206;
}
.btn-kaf-dark:hover, .btn-kaf-dark:focus {
  background-color: #FFFFFF;
  border-color: #FFFFFF;
  color: #1A1206;
}

.btn-outline-secondary { border-color: var(--kaf-line-strong); color: var(--kaf-ink-muted); }
.btn-outline-secondary:hover { background-color: var(--kaf-line); color: var(--kaf-ink); border-color: var(--kaf-line-strong); }

/* Link-buton (küçük "Tümü →" gibi); okunabilirlik için turuncu-koyu */
.btn-link {
  color: var(--kaf-orange-dark);
  min-height: auto;
  font-weight: 700;
  text-decoration: none;
}
.btn-link:hover { color: var(--kaf-red); text-decoration: underline; }

/* 5.3 Kartlar */
.card {
  background-color: var(--kaf-surface);
  border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius);
  box-shadow: var(--kaf-shadow-sm);
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}
.card-hover:hover {
  transform: translateY(-3px);
  box-shadow: var(--kaf-shadow);
}
.card-img-top { object-fit: cover; }
.card-title { font-family: var(--kaf-font-display); font-weight: 600; }

/* Poster oranı (2:3) — tutarlı afiş grid */
.kaf-poster { aspect-ratio: 2 / 3; width: 100%; object-fit: cover; display: block; }

/* Faz C1: 2:3 dikey afiş yardımcıları (film afişleri) */
.kaf-media--poster { aspect-ratio: 2 / 3; width: 100%; object-fit: cover; display: block; }
.kaf-poster-frame {
  aspect-ratio: 2 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: var(--kaf-radius);
  background-color: var(--kaf-bg-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--kaf-ink-faint);
}

/* Faz C1 / J1: 3:4 DİKEY portre yardımcıları (jüri / kişi fotoğrafları — vesikalık) */
.kaf-media--portrait { aspect-ratio: 3 / 4; width: 100%; object-fit: cover; display: block; }
.kaf-portrait-frame {
  aspect-ratio: 3 / 4;
  width: 100%;
  overflow: hidden;
  border-radius: var(--kaf-radius);
  background-color: var(--kaf-bg-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--kaf-ink-faint);
}
.kaf-poster-fallback {
  aspect-ratio: 2 / 3;
  width: 100%;
  background-color: var(--kaf-bg-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--kaf-ink-faint);
  font-size: var(--kaf-fs-sm);
}

/* 5.4 Badge */
.badge {
  font-family: var(--kaf-font-body);
  font-weight: 700;
  border-radius: var(--kaf-radius-pill);
  padding: 0.3em 0.75em;
  letter-spacing: .01em;
}
.kaf-badge-featured { background-color: var(--kaf-amber); color: var(--kaf-ink); }
.kaf-badge-soft     { background-color: var(--kaf-bg-soft); color: var(--kaf-ink-muted); border: 1px solid var(--kaf-line); }
.kaf-badge-accent   { background-color: var(--kaf-orange-tint); color: var(--kaf-orange-dark); }

/* 5.5 Chip / segmented filtre */
.kaf-chipbar {
  display: flex;
  gap: var(--kaf-space-2);
  overflow-x: auto;
  padding: var(--kaf-space-2) 0;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.kaf-chipbar::-webkit-scrollbar { display: none; }
.kaf-chip {
  flex: 0 0 auto;
  scroll-snap-align: start;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 1rem;
  border-radius: var(--kaf-radius-pill);
  border: 1.5px solid var(--kaf-line-strong);
  background: var(--kaf-surface);
  color: var(--kaf-ink);
  font-weight: 600;
  font-size: var(--kaf-fs-sm);
  white-space: nowrap;
  cursor: pointer;
  transition: all .15s ease;
}
.kaf-chip:hover { border-color: var(--kaf-orange); color: var(--kaf-orange-dark); }
.kaf-chip.is-active {
  background: var(--kaf-orange);
  border-color: var(--kaf-orange);
  color: var(--kaf-ink);
}

/* Jüri sayfası filtre blokları (Yıl / Bölüm) — chip tabanlı, dikkat çekici */
.kaf-jury-filters {
  display: flex;
  flex-direction: column;
  gap: var(--kaf-space-4);
  padding: var(--kaf-space-4);
  background: var(--kaf-surface);
  border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius);
  box-shadow: var(--kaf-shadow-sm);
}
.kaf-filter-block { display: flex; flex-direction: column; gap: var(--kaf-space-2); }
.kaf-filter-block__label {
  font-size: var(--kaf-fs-xs);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--kaf-ink-muted);
  padding-left: var(--kaf-space-1);
}
.kaf-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--kaf-space-2);
}
.kaf-filter-chips .kaf-chip { text-decoration: none; }
@media (min-width: 768px) {
  .kaf-jury-filters { flex-direction: row; gap: var(--kaf-space-6); }
  .kaf-filter-block { flex: 1 1 0; min-width: 0; }
}

/* ---- Jüri sayfası (navbar ile hizalı portre grid + kart) ------------- */
.kaf-jury { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-jurygrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--kaf-space-4);
}
@media (min-width: 576px) { .kaf-jurygrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .kaf-jurygrid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) { .kaf-jurygrid { grid-template-columns: repeat(5, 1fr); } }

.kaf-jurycard {
  display: flex; flex-direction: column;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden;
  box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-jurycard:hover {
  transform: translateY(-3px);
  box-shadow: var(--kaf-shadow);
  border-color: var(--kaf-line-strong);
}
.kaf-jurycard__media { position: relative; overflow: hidden; background: var(--kaf-surface-2); }
.kaf-jurycard__media img { transition: transform .4s ease; }
.kaf-jurycard:hover .kaf-jurycard__media img { transform: scale(1.04); }
.kaf-jurycard__placeholder { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-faint); }
.kaf-jurycard__body {
  display: flex; flex-direction: column; gap: var(--kaf-space-2);
  padding: var(--kaf-space-4); flex: 1 1 auto;
}
.kaf-jurycard__name {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-base); line-height: 1.3; margin: 0; color: var(--kaf-ink);
}
.kaf-jurycard { position: relative; }
.kaf-jurycard__link { color: var(--kaf-ink); }
.kaf-jurycard__link:hover { color: var(--kaf-orange-dark); }
/* Baslik linki tum karti tiklanir yapar; alttaki CTA butonu kendi tiklamasini korur. */
.kaf-jurycard__link::after { content: ""; position: absolute; inset: 0; }
.kaf-jurycard__cta { position: relative; z-index: 1; align-self: flex-start; }
.kaf-jurycard__country { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); }

/* ---- Jüri üyesi detay sayfası ---- */
.kaf-jurydetail__media img,
.kaf-jurydetail__media .kaf-portrait-frame { width: 100%; }
.kaf-jurydetail__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--kaf-space-2); }
.kaf-jurydetail__country { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); }
.kaf-jurydetail__heading {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-lg); margin-top: var(--kaf-space-4); margin-bottom: var(--kaf-space-2);
}
.kaf-jurycard__role { align-self: flex-start; }
.kaf-jurycard__bio {
  font-size: var(--kaf-fs-sm); line-height: 1.55; color: var(--kaf-ink-muted);
  margin: var(--kaf-space-2) 0 0; white-space: pre-line;
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}

/* ---- Mekânlar sayfası (navbar ile hizalı kart grid) ------------------- */
.kaf-venues { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-venuegrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--kaf-space-4);
}
@media (min-width: 576px) { .kaf-venuegrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kaf-venuegrid { grid-template-columns: repeat(3, 1fr); } }

.kaf-venuecard {
  display: flex; flex-direction: column;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden;
  box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-venuecard:hover {
  transform: translateY(-3px);
  box-shadow: var(--kaf-shadow);
  border-color: var(--kaf-line-strong);
}
.kaf-venuecard__media {
  width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: var(--kaf-surface-2, #f1f1f1);
}
.kaf-venuecard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kaf-venuecard__body {
  display: flex; flex-direction: column; gap: var(--kaf-space-2);
  padding: var(--kaf-space-5); flex: 1 1 auto;
}
.kaf-venuecard__name {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-lg); line-height: 1.3; margin: 0; color: var(--kaf-ink);
}
.kaf-venuecard__address { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); margin: 0; }
.kaf-venuecard__desc {
  font-size: var(--kaf-fs-sm); line-height: 1.55; color: var(--kaf-ink-muted);
  margin: var(--kaf-space-2) 0 0; white-space: pre-line;
}
.kaf-venuecard__foot {
  padding: 0 var(--kaf-space-5) var(--kaf-space-5);
}

/* ---- Arşiv sayfası (yıl kartları → Yıl Özet) -------------------------- */
.kaf-archive { display: flex; flex-direction: column; gap: var(--kaf-space-5); }

.kaf-archive__active {
  display: flex; gap: var(--kaf-space-4); align-items: flex-start;
  padding: var(--kaf-space-5);
  background: linear-gradient(135deg, var(--kaf-surface) 0%, var(--kaf-surface-2, var(--kaf-surface)) 100%);
  border: 1px solid var(--kaf-line); border-radius: var(--kaf-radius);
  box-shadow: var(--kaf-shadow-sm);
}
.kaf-archive__active-name {
  font-family: var(--kaf-font-display); font-weight: 700; margin: 0;
  font-size: var(--kaf-fs-xl); color: var(--kaf-ink);
}
.kaf-archive__theme { color: var(--kaf-ink-muted); margin: var(--kaf-space-1) 0 0; }
.kaf-archive__dates { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); margin: var(--kaf-space-2) 0 0; }

.kaf-archivegrid { display: grid; grid-template-columns: 1fr; gap: var(--kaf-space-4); }
@media (min-width: 576px) { .kaf-archivegrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kaf-archivegrid { grid-template-columns: repeat(3, 1fr); } }

.kaf-archivecard {
  display: flex; flex-direction: column; justify-content: space-between;
  color: inherit; text-decoration: none;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden;
  box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-archivecard:hover {
  transform: translateY(-3px); color: inherit;
  box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong);
}
.kaf-archivecard__body { display: flex; flex-direction: column; gap: var(--kaf-space-1); padding: var(--kaf-space-5); }
.kaf-archivecard__head { display: flex; justify-content: space-between; align-items: center; }
.kaf-archivecard__year {
  font-family: var(--kaf-font-display); font-weight: 800;
  font-size: var(--kaf-fs-2xl); line-height: 1; color: var(--kaf-accent);
}
.kaf-archivecard__name { font-family: var(--kaf-font-display); font-weight: 700; margin: 0; font-size: var(--kaf-fs-lg); color: var(--kaf-ink); }
.kaf-archivecard__theme { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); margin: 0; }
.kaf-archivecard__dates { font-size: var(--kaf-fs-xs); color: var(--kaf-ink-muted); margin: var(--kaf-space-2) 0 0; }
.kaf-archivecard__foot { padding: 0 var(--kaf-space-5) var(--kaf-space-5); }
.kaf-archivecard__cta { font-weight: 600; color: var(--kaf-accent); font-size: var(--kaf-fs-sm); }

/* ---- Yıl Özet (YearSummary) ------------------------------------------- */
.kaf-yearsum { display: flex; flex-direction: column; gap: var(--kaf-space-4); }
.kaf-yearsum__dates { color: var(--kaf-ink-muted); margin: 0; }

.kaf-yearsumgrid { display: grid; grid-template-columns: 1fr; gap: var(--kaf-space-4); }
@media (min-width: 576px) { .kaf-yearsumgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kaf-yearsumgrid { grid-template-columns: repeat(4, 1fr); } }

.kaf-yearsumcard {
  display: flex; flex-direction: column; gap: var(--kaf-space-3);
  color: inherit; text-decoration: none;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); padding: var(--kaf-space-5);
  box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-yearsumcard:hover {
  transform: translateY(-3px); color: inherit;
  box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong);
}
.kaf-yearsumcard__icon { font-size: 2rem; line-height: 1; }
.kaf-yearsumcard__body { display: flex; align-items: baseline; justify-content: space-between; gap: var(--kaf-space-2); }
.kaf-yearsumcard__title { font-family: var(--kaf-font-display); font-weight: 700; margin: 0; font-size: var(--kaf-fs-lg); color: var(--kaf-ink); }
.kaf-yearsumcard__count {
  font-family: var(--kaf-font-display); font-weight: 800;
  font-size: var(--kaf-fs-xl); color: var(--kaf-accent);
}
.kaf-yearsumcard__cta { font-weight: 600; color: var(--kaf-accent); font-size: var(--kaf-fs-sm); margin-top: auto; }

/* ---- Bölümler sayfası ------------------------------------------------- */
.kaf-sections { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-sectiongrid { display: grid; grid-template-columns: 1fr; gap: var(--kaf-space-4); }
@media (min-width: 576px) { .kaf-sectiongrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kaf-sectiongrid { grid-template-columns: repeat(3, 1fr); } }

.kaf-sectioncard {
  display: flex; flex-direction: column; justify-content: space-between;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden; box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-sectioncard:hover { transform: translateY(-3px); box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong); }
.kaf-sectioncard__body { display: flex; flex-direction: column; gap: var(--kaf-space-2); padding: var(--kaf-space-5); flex: 1 1 auto; }
.kaf-sectioncard__title { font-family: var(--kaf-font-display); font-weight: 700; margin: 0; font-size: var(--kaf-fs-lg); color: var(--kaf-ink); }
.kaf-sectioncard__desc { font-size: var(--kaf-fs-sm); line-height: 1.55; color: var(--kaf-ink-muted); margin: 0; }
.kaf-sectioncard__foot { padding: 0 var(--kaf-space-5) var(--kaf-space-5); }

/* ---- Kişiler sayfası -------------------------------------------------- */
.kaf-people { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-peoplegrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--kaf-space-4); }
@media (min-width: 768px) { .kaf-peoplegrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .kaf-peoplegrid { grid-template-columns: repeat(4, 1fr); } }

.kaf-personcard {
  display: flex; flex-direction: column; color: inherit; text-decoration: none;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden; box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-personcard:hover { transform: translateY(-3px); color: inherit; box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong); }
.kaf-personcard__photo { width: 100%; }
.kaf-personcard__body { display: flex; flex-direction: column; gap: var(--kaf-space-1); padding: var(--kaf-space-4); }
.kaf-personcard__name { font-family: var(--kaf-font-display); font-weight: 700; margin: 0; font-size: var(--kaf-fs-md); color: var(--kaf-ink); }
.kaf-personcard__country { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); }
.kaf-personcard__meta { font-size: var(--kaf-fs-xs); color: var(--kaf-ink-muted); margin-top: var(--kaf-space-1); }

/* ---- İletişim sayfası ------------------------------------------------- */
.kaf-contact { display: flex; flex-direction: column; gap: var(--kaf-space-5); }

.kaf-contact__panel {
  display: flex; flex-direction: column; gap: var(--kaf-space-3);
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); padding: var(--kaf-space-5);
  box-shadow: var(--kaf-shadow-sm);
}
.kaf-contact__panel .kaf-subtitle { margin: 0; }

/* ---- Film başvuru formu: bölüm başlıklarının altına turuncu aksan çizgi ----
   Yalnızca başvuru formu kapsamında (form içindeki blok başlıkları) uygulanır;
   diğer sayfalardaki .kaf-subtitle kullanımını etkilemez. */
.kaf-submission-form .kaf-form > .kaf-contact__panel > .kaf-subtitle {
  position: relative;
  width: fit-content;   /* çizgi başlık METNİ kadar uzasın */
  max-width: 100%;
  padding-bottom: var(--kaf-space-3);
}
.kaf-submission-form .kaf-form > .kaf-contact__panel > .kaf-subtitle::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  width: auto; height: 3px;
  background: var(--kaf-orange);
  border-radius: var(--kaf-radius-pill);
}

.kaf-form { display: flex; flex-direction: column; }

.kaf-contact__info .kaf-contact__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: var(--kaf-space-4);
}
.kaf-contact__list li {
  display: flex; align-items: flex-start; gap: var(--kaf-space-3);
  font-size: var(--kaf-fs-base); color: var(--kaf-ink);
  line-height: 1.5; word-break: break-word;
}
.kaf-contact__ico {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--kaf-radius-sm);
  background: var(--kaf-orange-tint); color: var(--kaf-orange-dark);
  font-size: 1.1rem; line-height: 1;
}
.kaf-contact__list a { color: var(--kaf-orange-dark); }
.kaf-contact__list a:hover { color: var(--kaf-red); }

.kaf-contact__thanks {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: var(--kaf-space-3);
  padding: clamp(32px, 6vw, 72px) var(--kaf-space-5);
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); box-shadow: var(--kaf-shadow-sm);
}
.kaf-contact__thanks .kaf-section-title { padding-bottom: 0; }
.kaf-contact__thanks .kaf-section-title::after { display: none; }
.kaf-contact__thanks-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; border-radius: var(--kaf-radius-pill);
  background: var(--kaf-orange); color: var(--kaf-ink);
  font-size: 2rem; line-height: 1;
}

/* ---- Sponsorlar sayfası ----------------------------------------------- */
.kaf-sponsors { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-sponsorblock { display: flex; flex-direction: column; gap: var(--kaf-space-3); }
.kaf-sponsorblock__tier {
  font-family: var(--kaf-font-display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); margin: 0;
}
.kaf-sponsorgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--kaf-space-4); }
@media (min-width: 768px) { .kaf-sponsorgrid { grid-template-columns: repeat(4, 1fr); } }

.kaf-sponsorcard {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--kaf-space-2);
  text-align: center; padding: var(--kaf-space-4);
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); box-shadow: var(--kaf-shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-sponsorcard:hover { transform: translateY(-2px); box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong); }
.kaf-sponsorcard__logo { max-height: 80px; width: auto; object-fit: contain; }
.kaf-sponsorcard__name { font-weight: 600; color: var(--kaf-ink); }
.kaf-sponsorcard__tagline { color: var(--kaf-ink-muted); }

/* Sticky filtre barı (Program sayfası) */
.kaf-sticky-filter {
  position: sticky;
  top: var(--kaf-navbar-h-mobile);
  z-index: 1020;
  background-color: color-mix(in srgb, var(--kaf-bg) 92%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--kaf-line);
  padding: var(--kaf-space-2) 0;
}
@media (min-width: 992px) {
  .kaf-sticky-filter { top: var(--kaf-navbar-h); }
}

/* 5.6 Form kontrolleri */
.form-control, .form-select {
  border-radius: var(--kaf-radius-sm);
  border-color: var(--kaf-line-strong);
  min-height: var(--kaf-touch);
  font-family: var(--kaf-font-body);
  color: var(--kaf-ink);
  background-color: var(--kaf-surface);
}
.form-control:focus, .form-select:focus {
  border-color: var(--kaf-orange);
  box-shadow: 0 0 0 3px rgba(253,101,0,.20);
}
.form-label { font-weight: 600; color: var(--kaf-ink); }

/* 5.7 Üst navbar (marka) */
.kaf-navbar {
  min-height: var(--kaf-navbar-h);
  background-color: rgba(15, 15, 18, .82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--kaf-line);
  position: sticky;
  top: 0;
  z-index: 1030;
}
.kaf-navbar .navbar-brand img { height: 52px; width: auto; }
.kaf-navbar .navbar-brand .kaf-navbar__ktb { height: 58.59375px; }
.kaf-navbar__sep { width: 1px; height: 42px; background: var(--kaf-line-strong); display: inline-block; }
@media (max-width: 767.98px) { .kaf-navbar .navbar-brand .kaf-navbar__ktb { height: 46.875px; } }
.kaf-nav-link {
  font-weight: 600;
  color: var(--kaf-ink) !important;
  padding: 0.45rem 0.6rem !important;
  font-size: 0.86rem;
  line-height: 1.15;
  white-space: nowrap;
  border-radius: var(--kaf-radius-sm);
  transition: color .15s ease, background-color .15s ease;
}

/* Navbar menu ogeleri: cok sayida sekme icin daraltilmis aralik/punto.
   Tasmalari onlemek icin satir kaydirmaz, gerekirse punto daha da duser. */
.kaf-navbar .navbar-nav .nav-link { font-size: 0.86rem; }
.kaf-navbar .navbar-collapse { min-width: 0; }
@media (min-width: 992px) {
  .kaf-navbar .navbar-nav { flex-wrap: nowrap; }
  .kaf-navbar .navbar-nav .nav-item { white-space: nowrap; }
}
@media (max-width: 1399.98px) {
  .kaf-navbar .navbar-nav .nav-link { font-size: 0.82rem; }
  .kaf-nav-link { padding: 0.4rem 0.5rem !important; }
}
@media (max-width: 1199.98px) {
  .kaf-navbar .navbar-nav .nav-link { font-size: 0.78rem; }
  .kaf-nav-link { padding: 0.35rem 0.42rem !important; }
}

/* Giris yapmis kullanici adi: uzun e-postalar navbar'i tasirmasin. */
.kaf-navbar .navbar-text { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Mobil hamburger (menu) butonu — KOYU navbar icin.
   Bootstrap varsayilan .navbar-toggler-icon'i KOYU (rgba(0,0,0,.55)) SVG ile
   gelir; koyu navbar uzerinde cizgiler gorunmez, yalniz ince cerceve kalir
   ("bos kutu" gibi). Bu yuzden ikonu ACIK renge cevirip cerceveyi de uyumlu
   hale getiriyoruz ki menu oldugu net anlasilsin. (Masaustunde gizli.) */
.kaf-navbar .navbar-toggler {
  border: 1px solid var(--kaf-line-strong);
  border-radius: var(--kaf-radius-sm);
  padding: 0.35rem 0.5rem;
}
.kaf-navbar .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(253,101,0,.35); }
.kaf-navbar .navbar-toggler-icon {
  /* Bootstrap'in koyu SVG'sini acik (krem) hamburger cizgileriyle degistir. */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23F4F1EC' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.kaf-nav-link:hover, .kaf-nav-link:focus { color: var(--kaf-orange-dark) !important; }
.kaf-nav-link.active { color: var(--kaf-orange-dark) !important; }
.kaf-nav-link.active::after {
  content: ""; display: block; height: 3px; margin-top: 2px;
  background: var(--kaf-orange); border-radius: var(--kaf-radius-pill);
}

/* 5.8 Footer */
.kaf-footer {
  background-color: var(--kaf-bg-soft);
  border-top: 1px solid var(--kaf-line);
  color: var(--kaf-ink-muted);
  margin-top: var(--kaf-space-7);
}
.kaf-footer a { color: var(--kaf-ink-muted); }
.kaf-footer a:hover { color: var(--kaf-orange-dark); }
.kaf-footer .kaf-footer-logo img { height: clamp(56px, 12vw, 88px); width: auto; }
.kaf-footer h6 { color: var(--kaf-ink); }

/* Kurumsal şerit: mobilde tek kolon, dikey boşluk dengeli, görseller üst üste binmez */
.kaf-footer .kaf-brand-strip {
  max-height: 48px; width: auto; max-width: 100%;
  object-fit: contain; display: block;
}
/* Sağ kolondaki marka şeridi başlıkla aynı hizada olsun (sağa yaslı).
   display:block görseli kolonun sol kenarına koyardı; başlık text-md-end ile
   sağda kalınca ikisi dengesiz görünüyordu. margin-inline-start:auto ile
   görsel de kolonun sağına yaslanır. */
.kaf-footer .text-md-end .kaf-brand-strip { margin-inline-start: auto; }
/* Sol kolondaki marka şeridi başlıkla hizalı (sola yaslı) kalsın. */
.kaf-footer .text-md-start .kaf-brand-strip { margin-inline-end: auto; }
@media (max-width: 767.98px) {
  .kaf-footer .kaf-brand-strip { max-height: 40px; margin-inline: auto; }
  .kaf-footer .row > [class*="col-"] { margin-bottom: var(--kaf-space-2); }
}

/* Sosyal medya: renkli PNG ikonlar (cercevesiz, marka logosu dogrudan).
   Her platformun kendi resmi/logolu PNG'si kullanildigi icin ayri marka
   rengi cercevesine gerek yoktur; sade bicimde gosterilir. */
.kaf-social { align-items: center; gap: var(--kaf-space-3) !important; }
.kaf-social__link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: var(--kaf-radius-sm);
  border: 0; background: transparent;
  transition: transform .15s ease, opacity .15s ease;
}
.kaf-social__link img { display: block; width: 24px; height: 24px; object-fit: contain; }
.kaf-social__link:hover { transform: translateY(-2px); opacity: .85; }
.kaf-footer .btn-outline-secondary {
  color: var(--kaf-ink); border-color: var(--kaf-line-strong); background: transparent;
}
.kaf-footer .btn-outline-secondary:hover {
  color: #fff; background: var(--kaf-orange); border-color: var(--kaf-orange);
}

/* 5.9 Mobil bottom navigation */
.kaf-bottomnav {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  height: calc(var(--kaf-bottomnav-h) + env(safe-area-inset-bottom, 0));
  padding-bottom: env(safe-area-inset-bottom, 0);
  background-color: var(--kaf-surface);
  border-top: 1px solid var(--kaf-line);
  box-shadow: 0 -2px 12px rgba(38,38,38,.06);
  z-index: 1040;
}
.kaf-bottomnav__inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  height: var(--kaf-bottomnav-h);
}
.kaf-bottomnav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: var(--kaf-ink-muted);
  font-size: var(--kaf-fs-xs);
  font-weight: 600;
  min-height: var(--kaf-touch);
  text-decoration: none;
}
.kaf-bottomnav__item .kaf-bi { font-size: 20px; line-height: 1; }
.kaf-bottomnav__item:hover { color: var(--kaf-orange-dark); }
.kaf-bottomnav__item.active { color: var(--kaf-orange-dark); }

/* 6. Yardımcılar --------------------------------------------------------- */
.kaf-hero {
  background-color: var(--kaf-bg-soft);
  border-radius: var(--kaf-radius-lg);
  border: 1px solid var(--kaf-line);
  position: relative;
  overflow: hidden;
}
/* İleride sinematik görsel eklenirse: bu katmana background-image verilecek. */
.kaf-hero__media {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; /* görsel eklenene kadar görünmez */
  transition: opacity .4s ease;
}
.kaf-hero__media.is-ready { opacity: 1; }
.kaf-hero__logo { max-height: 240px; width: auto; }
.kaf-eyebrow {
  font-family: var(--kaf-font-body);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: var(--kaf-fs-xs);
  color: var(--kaf-orange-dark);
}
.kaf-prose { font-size: var(--kaf-fs-lg); }
.kaf-divider { height: 1px; background: var(--kaf-line); border: 0; margin: var(--kaf-space-5) 0; }

/* İçerik-zengin metin (haber gövdesi vb.) */
.news-body img, .kaf-prose img { max-width: 100%; height: auto; border-radius: var(--kaf-radius-sm); }
.news-body h2, .kaf-prose h2 { margin-top: var(--kaf-space-5); }

/* main içeriği: mobilde bottom-nav payı bırak */
.kaf-main { padding-top: var(--kaf-space-5); }
.kaf-page { width: 100%; }

/* Tam ekran (full-bleed) hero: viewport genişliğine yayılır */
.kaf-bleed {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.kaf-bleed .kaf-hero-carousel { border-radius: 0; }
/* Full-bleed içindeki ortalanmış yardımcı: başlık sayfanın diğer içeriğiyle hizalanır */
.kaf-bleed .kaf-wrap { margin-inline: auto; }
/* İçerik sarmalayıcı (full-bleed içinde ortalanmış metin) */
.kaf-wrap { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 40px); }

/* ---- Program sayfası yerleşimi (navbar ile hizalı, dengeli dikey ritim) --- */
.kaf-program { display: flex; flex-direction: column; gap: var(--kaf-space-4); }
.kaf-program__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--kaf-space-3); flex-wrap: wrap;
}
.kaf-program__head .kaf-section-title { margin-bottom: 0; }
.kaf-program__days { margin-top: 0; }
.kaf-program__filter { margin: 0; }
.kaf-program__filter-inner {
  display: flex; align-items: center; gap: var(--kaf-space-3);
  flex-wrap: wrap; justify-content: space-between;
}
.kaf-program__filter-inner .kaf-chipbar { flex: 1 1 auto; min-width: 0; }
.kaf-program__venue { flex: 0 0 auto; margin-left: auto; }
.kaf-program__venue .form-select { min-width: 200px; max-width: 100%; }
.kaf-program__dayhead {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--kaf-space-3); flex-wrap: wrap;
}
.kaf-program__dayhead .kaf-section-title { margin-bottom: 0; }
.kaf-program__list { display: flex; flex-direction: column; gap: var(--kaf-space-3); }
@media (max-width: 575.98px) {
  .kaf-program__venue { flex: 1 1 100%; margin-left: 0; }
  .kaf-program__venue .form-select { width: 100%; }
  .kaf-program__filter-inner .kaf-chipbar { flex-basis: 100%; }
}

/* ---- Film kataloğu yerleşimi (navbar ile hizalı, dengeli ritim) --------- */
.kaf-catalog { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-catalog__filter {
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); padding: var(--kaf-space-4);
  box-shadow: var(--kaf-shadow-sm);
}
.kaf-catalog__filter-inner {
  display: flex; flex-wrap: wrap; gap: var(--kaf-space-3); align-items: flex-end;
}
.kaf-catalog__field { display: flex; flex-direction: column; gap: 4px; flex: 1 1 220px; min-width: 0; }
.kaf-catalog__field .form-label { margin-bottom: 0; }
.kaf-catalog__actions { display: flex; gap: var(--kaf-space-2); flex: 0 0 auto; }
@media (max-width: 575.98px) {
  .kaf-catalog__field { flex-basis: 100%; }
  .kaf-catalog__actions { flex: 1 1 100%; }
  .kaf-catalog__actions .btn { flex: 1 1 auto; }
}

/* ---- Film detay yerleşimi (navbar ile hizalı) ------------------------- */
.kaf-filmdetail { display: flex; flex-direction: column; gap: var(--kaf-space-4); }
.kaf-filmdetail__back { margin-bottom: 0; }
.kaf-filmdetail__grid {
  display: grid; grid-template-columns: 1fr; gap: var(--kaf-space-6);
  align-items: start;
}
@media (min-width: 768px) {
  .kaf-filmdetail__grid { grid-template-columns: minmax(220px, 300px) 1fr; }
}
.kaf-filmdetail__poster { position: sticky; top: calc(var(--kaf-navbar-h-mobile) + var(--kaf-space-4)); }
@media (max-width: 767.98px) {
  .kaf-filmdetail__poster { position: static; max-width: 260px; }
}
.kaf-filmdetail__poster .kaf-media--poster {
  border-radius: var(--kaf-radius); max-height: 66vh;
}
.kaf-filmdetail__poster .kaf-poster-frame { border-radius: var(--kaf-radius); }
.kaf-filmdetail__info { display: flex; flex-direction: column; gap: var(--kaf-space-5); min-width: 0; }
.kaf-filmdetail__head { display: flex; flex-direction: column; gap: var(--kaf-space-2); align-items: flex-start; }
.kaf-filmdetail__title {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-h2); line-height: var(--kaf-lh-tight); margin: 0;
  color: var(--kaf-ink);
}
.kaf-filmdetail__block { display: flex; flex-direction: column; gap: var(--kaf-space-2); }
.kaf-subtitle {
  font-family: var(--kaf-font-display); font-weight: 600;
  font-size: var(--kaf-fs-xl); margin: 0;
}

/* Künye listesi (dt/dd) — net sol/sağ hizalama, ferah satır */
.kaf-info {
  display: grid; grid-template-columns: max-content 1fr;
  gap: var(--kaf-space-2) var(--kaf-space-4); margin: 0;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); padding: var(--kaf-space-4) var(--kaf-space-5);
}
.kaf-info dt {
  font-weight: 600; color: var(--kaf-ink);  /* kırık beyaz: künye etiketi */
  font-size: var(--kaf-fs-sm); line-height: 1.5;
}
.kaf-info dd {
  margin: 0; color: var(--kaf-ink-muted);  /* dengeli gri: değer */
  font-size: var(--kaf-fs-sm); line-height: 1.5; min-width: 0;
}
.kaf-info__badges { display: flex; flex-wrap: wrap; gap: var(--kaf-space-2); }
@media (max-width: 479.98px) {
  .kaf-info { grid-template-columns: 1fr; gap: 2px var(--kaf-space-3); }
  .kaf-info dt { margin-top: var(--kaf-space-2); }
}

/* Özet metni — okunabilir satır yüksekliği */
.kaf-synopsis {
  font-size: var(--kaf-fs-lg); line-height: 1.6; color: var(--kaf-ink);
  max-width: 68ch; margin: 0;
}

/* Fragman çerçevesi — marka uyumlu köşe + gölge */
.kaf-trailer {
  border-radius: var(--kaf-radius); overflow: hidden;
  box-shadow: var(--kaf-shadow); border: 1px solid var(--kaf-line);
  background: #000;
}
.kaf-trailer iframe { border: 0; }

/* ---- Haberler (liste) — navbar ile hizalı grid + kart ------------------ */
.kaf-news { display: flex; flex-direction: column; gap: var(--kaf-space-5); }
.kaf-newsgrid {
  display: grid; gap: var(--kaf-space-4);
  grid-template-columns: 1fr;
}
@media (min-width: 576px) { .kaf-newsgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kaf-newsgrid { grid-template-columns: repeat(3, 1fr); } }

.kaf-newscard {
  display: flex; flex-direction: column;
  background: var(--kaf-surface); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden;
  box-shadow: var(--kaf-shadow-sm);
  transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.kaf-newscard:hover { box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong); transform: translateY(-3px); }
.kaf-newscard__media {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 16 / 10; background: var(--kaf-surface-2);
}
.kaf-newscard__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s ease;
}
.kaf-newscard:hover .kaf-newscard__media img { transform: scale(1.05); }
.kaf-newscard__placeholder {
  display: block; width: 100%; height: 100%;
  background: linear-gradient(135deg, #22222c, #2e2e3a 120%);
}
.kaf-newscard__flag { position: absolute; top: var(--kaf-space-3); left: var(--kaf-space-3); }
.kaf-newscard__body {
  display: flex; flex-direction: column; gap: var(--kaf-space-2);
  padding: var(--kaf-space-4); flex: 1 1 auto;
}
.kaf-newscard__title {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-lg); line-height: 1.3; margin: 0;
}
.kaf-newscard__link { color: var(--kaf-ink); }
.kaf-newscard__link::after { content: ""; position: absolute; inset: 0; } /* tüm kart tıklanır */
.kaf-newscard__link:hover { color: var(--kaf-orange-dark); }
.kaf-newscard { position: relative; }
.kaf-newscard__summary {
  color: var(--kaf-ink-muted); font-size: var(--kaf-fs-sm); line-height: 1.55;
  margin: 0; flex: 1 1 auto;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.kaf-newscard__meta {
  display: flex; align-items: center; justify-content: space-between; gap: var(--kaf-space-2);
  margin-top: var(--kaf-space-2); font-size: var(--kaf-fs-xs); color: var(--kaf-ink-faint);
}

/* ---- Haber detay (okuma odaklı, navbar ile hizalı) -------------------- */
.kaf-newsdetail { display: flex; flex-direction: column; gap: var(--kaf-space-4); }
.kaf-newsdetail__back { width: 100%; max-width: 76ch; margin-inline: auto; }
/* ---- Bolum detay (section detail) - haber detayi ile ayni okuma hizasi ---- */
.kaf-sectionarticle {
  display: flex; flex-direction: column; gap: var(--kaf-space-4);
  width: 100%; max-width: 76ch; margin-inline: auto;
}
.kaf-sectionarticle .kaf-synopsis { max-width: none; }
/* Bolum detay: aciklama alani alttaki film grid'i ile ayni genislikte olsun */
.kaf-sectionarticle--full { max-width: none; }
.kaf-sectionarticle .kaf-sectioncard__body { padding: 0; }
.kaf-newsarticle {
  display: flex; flex-direction: column; gap: var(--kaf-space-5);
  width: 100%; max-width: 76ch; margin-inline: auto;   /* okuma genişliği sınırı */
}
.kaf-newsarticle__head { display: flex; flex-direction: column; gap: var(--kaf-space-2); align-items: flex-start; }
.kaf-newsarticle__title {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-h2); line-height: var(--kaf-lh-tight); margin: 0;
  color: var(--kaf-ink);
}
.kaf-newsarticle__meta {
  margin: 0; font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted);
}
.kaf-newsarticle__cover {
  margin: 0; border-radius: var(--kaf-radius); overflow: hidden;
  border: 1px solid var(--kaf-line);
}
.kaf-newsarticle__cover img {
  width: 100%; max-height: 440px; object-fit: cover; display: block;
}
.kaf-newsarticle__lead {
  font-size: var(--kaf-fs-lg); line-height: 1.6; color: var(--kaf-ink); margin: 0;
}
/* Haber gövdesi (HTML) tipografisi */
.news-body { color: var(--kaf-ink); line-height: 1.7; font-size: var(--kaf-fs-base); }
.news-body > * + * { margin-top: var(--kaf-space-4); }
.news-body p { margin: 0; }
.news-body a { color: var(--kaf-orange-dark); text-decoration: underline; }
.news-body h1, .news-body h2, .news-body h3 { color: var(--kaf-ink); line-height: 1.25; }
.news-body ul, .news-body ol { padding-left: 1.25em; }
.news-body blockquote {
  border-left: 3px solid var(--kaf-orange); padding-left: var(--kaf-space-4);
  color: var(--kaf-ink-muted); font-style: italic; margin: 0;
}

@media (max-width: 991.98px) {
  .kaf-main { padding-bottom: calc(var(--kaf-bottomnav-h) + var(--kaf-space-5)); }
  .kaf-bottomnav { display: block; }
}

/* 7. Odak & hareket ------------------------------------------------------ */
:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(253,101,0,.45), 0 0 0 1px #fff inset;
  border-radius: var(--kaf-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .card-hover:hover { transform: none; }
}

/* ========================================================================
 * 8. TIFF-TARZI SAYFA BİLEŞENLERİ
 *    Festival temalı geniş görsel dil: hero carousel, yatay rail,
 *    vitrin kutuları (tile), film/etkinlik kartları, gün şeridi.
 * ====================================================================== */

/* ---- 8.1 Hero Carousel (tam genişlik, metin üstte) -------------------- */
.kaf-hero-carousel {
  position: relative;
  border-radius: var(--kaf-radius-lg);
  overflow: hidden;
  background: linear-gradient(135deg, #1a1a1a 0%, #3a1d10 55%, var(--kaf-red-deep) 130%);
  color: #fff;
}
.kaf-hero-carousel__track { position: relative; }
.kaf-hero-slide {
  display: none;
  min-height: clamp(400px, 38vw, 620px);
  position: relative;
}
.kaf-hero-slide.is-active { display: block; animation: kafFade .5s ease; }
@keyframes kafFade { from { opacity: 0; } to { opacity: 1; } }
.kaf-hero-slide__media {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.kaf-hero-slide__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
}
.kaf-hero-slide__scrim {
  position: absolute; inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.4) 55%, rgba(0,0,0,.15) 100%);
}
.kaf-hero-slide__body {
  position: relative;
  z-index: 2;
  max-width: 680px;
  padding: clamp(28px, 5vw, 72px);
  height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.kaf-hero-slide__eyebrow {
  font-size: var(--kaf-fs-sm); text-transform: uppercase; letter-spacing: .14em;
  font-weight: 700; color: var(--kaf-amber); margin-bottom: var(--kaf-space-3);
}
.kaf-hero-slide__title {
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: clamp(1.6rem, 0.95rem + 3vw, 2.85rem); line-height: var(--kaf-lh-tight);
  margin-bottom: var(--kaf-space-4); color: #fff;
}
.kaf-hero-slide__text { font-size: var(--kaf-fs-lg); color: rgba(255,255,255,.9); margin-bottom: var(--kaf-space-5); }
.kaf-hero-slide__date { font-size: var(--kaf-fs-md, 1.05rem); font-weight: 600; color: var(--kaf-amber); letter-spacing: .02em; margin-bottom: var(--kaf-space-4); }
/* Carousel kontrolleri */
.kaf-carousel-dots {
  position: absolute; left: clamp(24px,5vw,64px); bottom: 20px; z-index: 3;
  display: flex; gap: 10px;
}
.kaf-carousel-dot {
  width: 34px; height: 4px; border-radius: 999px; border: 0; padding: 0;
  background: rgba(255,255,255,.4); cursor: pointer; transition: background .2s, width .2s;
}
.kaf-carousel-dot.is-active { background: var(--kaf-amber); width: 52px; }
.kaf-carousel-nav {
  position: absolute; right: clamp(16px,4vw,40px); bottom: 16px; z-index: 3;
  display: flex; gap: 8px;
}
.kaf-carousel-nav button {
  width: var(--kaf-touch); height: var(--kaf-touch); border-radius: 999px;
  border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.25); color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer; transition: background .2s;
}
.kaf-carousel-nav button:hover { background: rgba(0,0,0,.5); }

/* ---- 8.2 Yatay Rail (kaydırılabilir kart dizisi) ---------------------- */
.kaf-rail {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 1fr);
  gap: var(--kaf-space-4);
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--kaf-space-3);
  /* Scrollbar gizli: yatay gezinme yukaridaki ok butonlari (data-*-prev/next)
     ile yapilir; alt cubuk gorsel kirlilik yaratmasin. Tekerlek/touch ile de
     kaydirilabilir. */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.kaf-rail > * { scroll-snap-align: start; }
.kaf-rail--poster { grid-auto-columns: minmax(200px, 240px); }
.kaf-rail--wide   { grid-auto-columns: minmax(280px, 360px); }
.kaf-rail::-webkit-scrollbar { display: none; }

@media (min-width: 992px) {
  /* Masaüstünde 4'lü grid görünümü; taşma varsa rail gibi kayar */
  .kaf-rail--grid-desk { grid-auto-columns: calc((100% - 3 * var(--kaf-space-4)) / 4); }
}

/* ---- 8.3 Vitrin Kutuları (tile / feature) ----------------------------- */
.kaf-tile {
  position: relative; display: block; border-radius: var(--kaf-radius);
  overflow: hidden; color: #fff; min-height: 260px; text-decoration: none;
  background: #222;
}
.kaf-tile:hover { color: #fff; }
.kaf-tile__media { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .4s ease; }
.kaf-tile:hover .kaf-tile__media { transform: scale(1.05); }
.kaf-tile__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.8) 100%); }
.kaf-tile__body { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: var(--kaf-space-4); }
.kaf-tile__title { font-family: var(--kaf-font-display); font-weight: 700; font-size: var(--kaf-fs-xl); line-height: 1.2; }
.kaf-tile--lg { min-height: 420px; }
.kaf-tile--lg .kaf-tile__title { font-size: var(--kaf-fs-h2); }
.kaf-tile__kicker { font-size: var(--kaf-fs-xs); text-transform: uppercase; letter-spacing: .12em; font-weight: 700; color: var(--kaf-amber); margin-bottom: var(--kaf-space-2); }

/* ---- 8.4 Film Kartı (afiş + meta) ------------------------------------- */
.kaf-filmcard { display: block; color: inherit; text-decoration: none; }
.kaf-filmcard:hover { color: inherit; }
.kaf-filmcard__poster { position: relative; border-radius: var(--kaf-radius); overflow: hidden; box-shadow: var(--kaf-shadow-sm); }
.kaf-filmcard__poster img { width: 100%; aspect-ratio: 2/3; object-fit: cover; display: block; transition: transform .4s ease; }
.kaf-filmcard__placeholder { width: 100%; aspect-ratio: 2/3; background: linear-gradient(135deg,#22222c,#2e2e3a 120%); display: block; }
.kaf-filmcard:hover .kaf-filmcard__poster img { transform: scale(1.04); }
.kaf-filmcard__title { font-weight: 700; margin-top: var(--kaf-space-3); font-size: var(--kaf-fs-base); line-height: 1.3; color: var(--kaf-orange-dark); }
.kaf-filmcard__meta { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); display: flex; flex-direction: column; gap: 2px; }
.kaf-filmcard__meta > span { display: block; line-height: 1.4; }
.kaf-filmcard__section { font-weight: 600; color: var(--kaf-ink); }
.kaf-filmcard__badges { position: absolute; top: var(--kaf-space-3); left: var(--kaf-space-3); display: flex; gap: 6px; flex-wrap: wrap; }

/* ---- 8.5 Etkinlik / Gösterim Satırı ----------------------------------- */
.kaf-event {
  display: flex; gap: var(--kaf-space-4); align-items: center;
  padding: var(--kaf-space-4); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); background: var(--kaf-surface);
  transition: box-shadow .2s, border-color .2s;
}
.kaf-event:hover { box-shadow: var(--kaf-shadow); border-color: var(--kaf-line-strong); }
.kaf-event__date {
  flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 76px; padding: var(--kaf-space-2) var(--kaf-space-3); border-radius: var(--kaf-radius-sm);
  background: var(--kaf-orange-tint); color: var(--kaf-orange-dark);
  font-weight: 800; line-height: 1.15;
}
.kaf-event__day { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.kaf-event__mon { font-size: var(--kaf-fs-xs); font-weight: 600; opacity: .8; }
.kaf-event__thumb { flex: 0 0 auto; }
.kaf-event__thumb .kaf-media--poster { width: 72px; border-radius: var(--kaf-radius-sm); display: block; }
.kaf-event__body { flex: 1 1 auto; min-width: 0; }
.kaf-event__badges { display: flex; align-items: center; gap: var(--kaf-space-2); flex-wrap: wrap; margin-bottom: 4px; }
.kaf-event__title { font-weight: 800; font-size: var(--kaf-fs-lg); line-height: 1.25; letter-spacing: -0.01em; }
.kaf-event__title a:hover { color: var(--kaf-orange-dark); }
.kaf-event__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-size: var(--kaf-fs-sm); color: var(--kaf-ink); margin-top: 6px;
}
.kaf-event__meta .kaf-dot, .kaf-dot { color: var(--kaf-ink-muted); }
.kaf-event__actions { flex: 0 0 auto; display: flex; flex-direction: column; gap: var(--kaf-space-2); justify-content: center; }
.kaf-event__time { font-weight: 700; color: var(--kaf-ink); }

/* Mobil/tablet: dikey yığılma, hizalamalar tek kolonda */
@media (max-width: 767.98px) {
  .kaf-event {
    flex-wrap: wrap; align-items: flex-start; gap: var(--kaf-space-3);
    padding: var(--kaf-space-3);
  }
  .kaf-event__thumb { order: -1; }
  .kaf-event__body { flex-basis: calc(100% - 76px - var(--kaf-space-3)); }
  .kaf-event__actions {
    flex-direction: row; flex-wrap: wrap; width: 100%;
    border-top: 1px solid var(--kaf-line); padding-top: var(--kaf-space-3); margin-top: 2px;
  }
  .kaf-event__actions .btn { flex: 1 1 auto; }
}

/* ---- 8.6 Gün Şeridi (Schedule gün seçici) ----------------------------- */
.kaf-daybar {
  display: flex; gap: var(--kaf-space-2); overflow-x: auto;
  padding-bottom: 4px; scrollbar-width: thin;
}
.kaf-day {
  flex: 0 0 auto; min-width: 84px; text-align: center; padding: var(--kaf-space-3) var(--kaf-space-2);
  border: 1px solid var(--kaf-line); border-radius: var(--kaf-radius-sm); background: var(--kaf-surface);
  text-decoration: none; color: var(--kaf-ink); transition: .2s;
}
.kaf-day:hover { border-color: var(--kaf-orange); color: var(--kaf-orange-dark); }
.kaf-day.is-active { background: var(--kaf-ink); border-color: var(--kaf-ink); color: #1A1206; }
.kaf-day__dow { font-size: var(--kaf-fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--kaf-ink-faint); }
.kaf-day.is-active .kaf-day__dow { color: rgba(26,18,6,.65); }
.kaf-day__num { font-family: var(--kaf-font-display); font-size: 1.5rem; font-weight: 700; line-height: 1.1; }

/* ---- 8.7 İstatistik / Bilgi Bandı ------------------------------------- */
.kaf-statband {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  background: var(--kaf-line); border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius); overflow: hidden;
}
@media (min-width: 768px) { .kaf-statband { grid-template-columns: repeat(4, 1fr); } }
.kaf-stat { background: var(--kaf-surface); padding: var(--kaf-space-5) var(--kaf-space-4); text-align: center; }
.kaf-stat__num { font-family: var(--kaf-font-display); font-size: clamp(1.6rem, 1rem + 2vw, 2.4rem); font-weight: 700; color: var(--kaf-red); line-height: 1; }
.kaf-stat__label { font-size: var(--kaf-fs-sm); color: var(--kaf-ink-muted); margin-top: 6px; }

/* ---- 8.8 Bölüm Başlığı varyantı (rail ile birlikte) ------------------- */
.kaf-section-head--loose { margin-bottom: var(--kaf-space-5); }
/* Baslik + yan aksiyonlar (ok butonlari) dikeyde ortalanmis */
.kaf-section-head--center { align-items: center; }
/* Baslik metni altbosluk (padding-bottom) nedeniyle yukari kayar;
   ok butonlarini ayni gorsel hizaya cekmek icin esit alt marg verilir. */
.kaf-section-head--center .kaf-rail-nav { margin-bottom: var(--kaf-space-3); }
.kaf-section-title--sm { font-size: var(--kaf-fs-h3); }
.kaf-eyebrow-dark { color: var(--kaf-red); }

/* ---- 8.9 CTA Bandı (koyu, çağrı) -------------------------------------- */
.kaf-cta {
  background: linear-gradient(135deg, var(--kaf-ink) 0%, #3a1d10 120%);
  color: #fff; border-radius: var(--kaf-radius-lg);
  padding: clamp(28px, 5vw, 56px);
}
.kaf-cta h2 { color: #fff; }
.kaf-cta p { color: rgba(255,255,255,.85); }

/* ---- 8.10 Hakkında özeti kırpma --------------------------------------- */
.kaf-about-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- 8.11 Hızlı Erişim Kutuları (hero altı 3'lü) ---------------------- */
.kaf-quicklinks {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--kaf-space-4);
}
@media (min-width: 768px) {
  .kaf-quicklinks { grid-template-columns: repeat(3, 1fr); }
}
.kaf-qlink {
  position: relative;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 200px;
  padding: var(--kaf-space-5);
  border-radius: var(--kaf-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  border: 1px solid var(--kaf-line);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-qlink:hover {
  color: #fff;
  transform: translateY(-4px);
  box-shadow: var(--kaf-shadow-lg);
  border-color: var(--kaf-line-strong);
}
.kaf-qlink__bg { position: absolute; inset: 0; transition: transform .4s ease; }
.kaf-qlink:hover .kaf-qlink__bg { transform: scale(1.06); }
.kaf-qlink__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15) 20%, rgba(0,0,0,.85) 100%); }
.kaf-qlink__icon {
  position: relative; z-index: 2;
  font-size: 1.9rem; line-height: 1;
  color: var(--kaf-amber);
  margin-bottom: auto;
}
.kaf-qlink__title {
  position: relative; z-index: 2;
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-h3); line-height: 1.15;
}
.kaf-qlink__desc {
  position: relative; z-index: 2;
  font-size: var(--kaf-fs-sm); color: rgba(255,255,255,.8);
  margin-top: 4px;
}
.kaf-qlink__arrow {
  position: relative; z-index: 2;
  margin-top: var(--kaf-space-3); font-size: var(--kaf-fs-sm); font-weight: 700;
  color: var(--kaf-orange-dark);
}

/* ---- 8.12 Festival Bölüm Kartları (3'lü, ana sayfa) ------------------- */
.kaf-sectioncards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--kaf-space-4);
}
@media (min-width: 768px) {
  .kaf-sectioncards { grid-template-columns: repeat(3, 1fr); }
}
.kaf-sectioncard {
  position: relative;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 240px;
  padding: var(--kaf-space-5);
  border-radius: var(--kaf-radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  border: 1px solid var(--kaf-line);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kaf-sectioncard:hover {
  color: #fff;
  transform: translateY(-4px);
  box-shadow: var(--kaf-shadow-lg);
  border-color: var(--kaf-line-strong);
}
.kaf-sectioncard__bg { position: absolute; inset: 0; transition: transform .4s ease; }
.kaf-sectioncard__bg--img { background-size: cover; background-position: center; background-repeat: no-repeat; }
.kaf-sectioncard:hover .kaf-sectioncard__bg { transform: scale(1.06); }
.kaf-sectioncard__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.1) 20%, rgba(0,0,0,.82) 100%); }
.kaf-sectioncard__icon {
  position: relative; z-index: 2;
  font-size: 2.1rem; line-height: 1; color: var(--kaf-amber);
  margin-bottom: auto;
}
.kaf-sectioncard__title {
  position: relative; z-index: 2;
  font-family: var(--kaf-font-display); font-weight: 700;
  font-size: var(--kaf-fs-h3); line-height: 1.15;
}
.kaf-sectioncard__meta {
  position: relative; z-index: 2;
  font-size: var(--kaf-fs-sm); color: rgba(255,255,255,.8); margin-top: 4px;
}
.kaf-sectioncard__arrow {
  position: relative; z-index: 2;
  margin-top: var(--kaf-space-3); font-size: var(--kaf-fs-sm); font-weight: 700;
  color: var(--kaf-orange-dark);
}

/* 8.12.b Festival Bölüm Kartları — full-bleed varyantı (hero altı, TIFF tarzı)
   Viewport genişliğini doldurur; kartlar arası yalnızca ince separator.
   Gap yerine 1px çizgi; köşe/kenarlık sıfırlanır. Yükseklik artırılır. */
.kaf-sectioncards--bleed {
  gap: 1px;
  background: var(--kaf-line);
  border-top: 1px solid var(--kaf-line);
}
.kaf-sectioncards--bleed .kaf-sectioncard {
  border: 0;
  border-radius: 0;
  min-height: 360px;
  padding: clamp(24px, 4vw, 48px);
}
@media (min-width: 768px) {
  .kaf-sectioncards--bleed .kaf-sectioncard { min-height: 420px; }
}

/* 8.12.c Festival Bölüm Kartları - full-bleed yatay rail (1 kartlık kaydırma)
   Viewport genişliğini doldurur; ancak ilk/son kart kaf-wrap padding hizasında durur.
   Masaüstünde tam 3 kart görünür (büyük). Ok başına 1 kart kayar. */
.kaf-sectioncards--rail {
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: 82%;
  gap: var(--kaf-space-4);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  padding-block: 4px var(--kaf-space-4);
  padding-inline: clamp(16px, 3vw, 40px);
  scroll-padding-inline: clamp(16px, 3vw, 40px);
  /* Scrollbar gizli: yatay gezinme yukaridaki ok butonlari (data-rail-prev/next)
     ile yapilir; alt cubuk gorsel kirlilik yaratmasin. Tekerlek/touch ile de
     kaydirilabilir. */
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.kaf-sectioncards--rail > * { scroll-snap-align: start; }
.kaf-sectioncards--rail .kaf-sectioncard { min-height: 300px; width: 100%; }
.kaf-sectioncards--rail::-webkit-scrollbar { display: none; }
@media (min-width: 576px) {
  .kaf-sectioncards--rail { grid-auto-columns: 46%; }
}
@media (min-width: 992px) {
  .kaf-sectioncards--rail { grid-auto-columns: calc((100% - 2 * var(--kaf-space-4)) / 3); }
  .kaf-sectioncards--rail .kaf-sectioncard { min-height: 460px; }
}
/* 8.12.d Bolum rail ok butonlari */
.kaf-rail-nav { display: flex; gap: var(--kaf-space-2); }
.kaf-rail-arrow {
  width: 40px; height: 40px; border-radius: 999px;
  border: 1px solid var(--kaf-line-strong); background: var(--kaf-surface, #fff);
  color: var(--kaf-ink); font-size: 1.4rem; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .2s ease, border-color .2s ease, opacity .2s ease;
}
.kaf-rail-arrow:hover { background: var(--kaf-ink); color: #fff; border-color: var(--kaf-ink); }
.kaf-rail-arrow[disabled] { opacity: .35; cursor: default; }
.kaf-rail-arrow[disabled]:hover { background: var(--kaf-surface, #fff); color: var(--kaf-ink); border-color: var(--kaf-line-strong); }



/* ---- 8.13 Afiş Grid (Öne Çıkan Filmler) ------------------------------- */
.kaf-postergrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--kaf-space-4);
}
@media (min-width: 576px) { .kaf-postergrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) { .kaf-postergrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .kaf-postergrid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) { .kaf-postergrid { grid-template-columns: repeat(5, 1fr); } }

/* 8.13.b Afiş Grid — full-bleed varyantı (vitrin bölümü)
   Viewport genişliği; içerik kenarlara yapışmasın diye yatay padding.
   Geniş ekranda daha çok afiş göster. */
.kaf-postergrid--bleed {
  padding-inline: clamp(16px, 3vw, 40px);
}
@media (min-width: 1400px) { .kaf-postergrid--bleed { grid-template-columns: repeat(6, 1fr); } }

/* ========================================================================
 * 9. KOYU TEMA UYUMLULUĞU (Bootstrap bileşenlerini koyu zemine uyarla)
 * ====================================================================== */

/* Dropdown menüler */
.dropdown-menu {
  background-color: var(--kaf-surface);
  border: 1px solid var(--kaf-line);
  box-shadow: var(--kaf-shadow-lg);
}
.dropdown-item { color: var(--kaf-ink); }
.dropdown-item:hover, .dropdown-item:focus {
  background-color: var(--kaf-surface-2);
  color: var(--kaf-orange-dark);
}
.dropdown-divider { border-color: var(--kaf-line); }

/* Form alanları */
.form-control, .form-select {
  background-color: var(--kaf-surface-2);
  border-color: var(--kaf-line-strong);
  color: var(--kaf-ink);
}
.form-control::placeholder { color: var(--kaf-ink-faint); }
.form-control:focus, .form-select:focus {
  background-color: var(--kaf-surface-2);
  color: var(--kaf-ink);
  border-color: var(--kaf-orange);
  box-shadow: 0 0 0 3px rgba(253,101,0,.25);
}

/* Tablolar */
.table { color: var(--kaf-ink); }
.table > :not(caption) > * > * { background-color: transparent; border-color: var(--kaf-line); }

/* Bootstrap metin yardımcıları */
.text-body, .text-dark { color: var(--kaf-ink) !important; }
.bg-white, .bg-light { background-color: var(--kaf-surface) !important; }
.border { border-color: var(--kaf-line) !important; }

/* Accordion */
.accordion-item { background-color: var(--kaf-surface); border-color: var(--kaf-line); color: var(--kaf-ink); }
.accordion-button { background-color: var(--kaf-surface); color: var(--kaf-ink); }
.accordion-button:not(.collapsed) { background-color: var(--kaf-surface-2); color: var(--kaf-orange-dark); }

/* Pagination */
.page-link { background-color: var(--kaf-surface); border-color: var(--kaf-line); color: var(--kaf-ink); }
.page-link:hover { background-color: var(--kaf-surface-2); color: var(--kaf-orange-dark); }
.page-item.active .page-link { background-color: var(--kaf-orange); border-color: var(--kaf-orange); color: #1A1206; }

/* Modal */
.modal-content { background-color: var(--kaf-surface); color: var(--kaf-ink); border-color: var(--kaf-line); }
.modal-header, .modal-footer { border-color: var(--kaf-line); }
.btn-close { filter: invert(1) grayscale(100%) brightness(200%); }


/* 6.x Juri sayfasi ust basligi (dikkat cekici) */
.kaf-jury-hero {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--kaf-space-3);
  padding: var(--kaf-space-5) var(--kaf-space-5) var(--kaf-space-5);
  margin-bottom: var(--kaf-space-5);
  border-radius: var(--kaf-radius-lg);
  background: linear-gradient(135deg, rgba(253,101,0,.16), rgba(227,6,19,.10));
  border: 1px solid var(--kaf-line);
  overflow: hidden;
}
.kaf-jury-hero::before {
  content: "";
  position: absolute;
  inset-inline-start: 0; top: 0; bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, var(--kaf-orange), var(--kaf-red));
}
.kaf-jury-hero__eyebrow {
  flex-basis: 100%;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: var(--kaf-fs-sm);
  font-weight: 700;
  color: var(--kaf-orange-dark);
}
.kaf-jury-hero__title {
  font-family: var(--kaf-font-display);
  font-size: var(--kaf-fs-h1);
  font-weight: 800;
  line-height: 1.05;
  margin: 0;
  color: var(--kaf-ink);
  background: linear-gradient(90deg, var(--kaf-orange), var(--kaf-red));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.kaf-jury-hero__count {
  margin-inline-start: auto;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding-inline: var(--kaf-space-3);
  border-radius: var(--kaf-radius-pill);
  background: var(--kaf-orange);
  color: #1A1206;
  font-weight: 800;
  font-size: var(--kaf-fs-lg);
}

/* Footer: T.C. Kultur ve Turizm Bakanligi logosu (dil bazli, digerlerinden >= %25 buyuk) */
.kaf-footer .kaf-brand-ktb {
  max-height: 78px;          /* %25 buyutulmus (once 62px) */
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display: block;
  margin-inline: auto;
}
@media (max-width: 767.98px) {
  .kaf-footer .kaf-brand-ktb {
    max-height: 65px;        /* %25 buyutulmus mobil (once 52px) */
  }
}

/* ========================================================================
 * 10. BELGE / PDF BAĞLANTILARI (içerik editöründe kullanılır)
 *    Global <a> stillerine DOKUNMAZ; yalnızca .kaf-doc sınıfı ile kullanılır.
 *    Koyu tema uyumlu, sade "belge satırı" görünümü.
 *    Kullanım (içerik HTML):
 *      <div class="kaf-docs">
 *        <a class="kaf-doc" href="/uploads/documents/x.pdf" target="_blank" rel="noopener">
 *          <span class="kaf-doc__badge">PDF</span>
 *          <span class="kaf-doc__body">
 *            <span class="kaf-doc__title">... başlık ...</span>
 *            <span class="kaf-doc__meta">PDF • yeni sekmede açılır</span>
 *          </span>
 *          <span class="kaf-doc__action">Görüntüle / İndir</span>
 *        </a>
 *      </div>
 * ====================================================================== */

.kaf-docs {
  display: flex;
  flex-direction: column;
  gap: var(--kaf-space-3);
  margin: var(--kaf-space-5) 0;
}

.kaf-doc {
  display: flex;
  align-items: center;
  gap: var(--kaf-space-4);
  padding: var(--kaf-space-4) var(--kaf-space-5);
  background: var(--kaf-surface);
  border: 1px solid var(--kaf-line);
  border-radius: var(--kaf-radius);
  color: var(--kaf-ink);
  text-decoration: none;
  box-shadow: var(--kaf-shadow-sm);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background-color .2s ease;
}

.kaf-doc:hover,
.kaf-doc:focus {
  color: var(--kaf-ink);
  border-color: var(--kaf-line-strong);
  background: var(--kaf-surface-2);
  box-shadow: var(--kaf-shadow);
  transform: translateY(-2px);
}

/* Baştaki "PDF" rozeti / ikon kutusu */
.kaf-doc__badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  padding-inline: var(--kaf-space-2);
  border-radius: var(--kaf-radius-sm);
  background: var(--kaf-orange-tint);
  color: var(--kaf-orange-dark);
  font-weight: 800;
  font-size: var(--kaf-fs-sm);
  letter-spacing: .04em;
  line-height: 1;
}

.kaf-doc__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.kaf-doc__title {
  font-weight: 700;
  font-size: var(--kaf-fs-base);
  line-height: 1.35;
  color: var(--kaf-ink);
}

.kaf-doc__meta {
  font-size: var(--kaf-fs-sm);
  color: var(--kaf-ink-muted);
}

/* Sağdaki eylem etiketi: "Görüntüle / İndir" */
.kaf-doc__action {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: var(--kaf-space-1);
  font-weight: 700;
  font-size: var(--kaf-fs-sm);
  color: var(--kaf-orange-dark);
  white-space: nowrap;
}

.kaf-doc__action::after {
  content: "\2192"; /* → */
  transition: transform .2s ease;
}

.kaf-doc:hover .kaf-doc__action::after {
  transform: translateX(3px);
}

/* Mobil: dikey yığılma, eylem tam genişlikte alt satıra geçer */
@media (max-width: 575.98px) {
  .kaf-doc {
    flex-wrap: wrap;
    padding: var(--kaf-space-4);
  }
  .kaf-doc__action {
    flex-basis: 100%;
    justify-content: flex-end;
  }
}
/* ---- Galeri (Foto + Video) --------------------------------------------- */
/* Kademeli gosterim (progressive reveal) grid'i. Afis gridiyle ayni kirilma
   noktalarini kullanir; "daha fazla" butonuyla artimli sekilde acilir. */
.kaf-gallerygrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--kaf-space-4);
}
@media (min-width: 576px) { .kaf-gallerygrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .kaf-gallerygrid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) { .kaf-gallerygrid { grid-template-columns: repeat(5, 1fr); } }

/* Kademeli gosterimde gizli oge (JS ile acilir). */
.kaf-gallery-item--hidden { display: none !important; }

.kaf-gallery-more {
    display: flex;
    justify-content: center;
    margin-top: var(--kaf-space-4);
}

.kaf-gallery-item {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--kaf-space-2);
}
.kaf-gallery-item a {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--kaf-radius, 8px);
    background: var(--kaf-line, #eee);
    text-decoration: none;
}
.kaf-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}
.kaf-gallery-item a:hover img { transform: scale(1.04); }
.kaf-gallery-caption {
    font-size: 0.85rem;
    color: var(--kaf-muted, #6c757d);
    line-height: 1.3;
}
.kaf-gallery-video__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #2b2b2b, #4a4a4a);
}
.kaf-gallery-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(0, 0, 0, .25);
    pointer-events: none;
}
.kaf-gallery-play svg { filter: drop-shadow(0 2px 6px rgba(0,0,0,.5)); }

/* ---- Kaf Album Card (Foto + Video albüm kartları) ---------------------- */
/* Basın > Galeri sayfasındaki albüm kartları (kaf-albumcard). View'de body,
   bazı eski varyantlarda content kullanılır; ikisi aynı stili paylaşır. */
.kaf-albumcard {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    margin-bottom: 24px;
}
.kaf-albumcard:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}
.kaf-albumcard__media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: #1a1a1a;
    margin: 0;
}
.kaf-albumcard__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.kaf-albumcard:hover .kaf-albumcard__media img {
    transform: scale(1.06);
}
.kaf-albumcard__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2c3e50, #1a252f);
    color: #fff;
    font-size: 14px;
}
.kaf-albumcard__count {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 20px;
    backdrop-filter: blur(4px);
    z-index: 2;
}
.kaf-albumcard__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 48px;
    height: 48px;
    background: rgba(220, 20, 60, 0.9);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    z-index: 2;
    transition: transform 0.3s ease;
}
.kaf-albumcard__play svg {
    width: 24px;
    height: 24px;
}
.kaf-albumcard:hover .kaf-albumcard__play {
    transform: translate(-50%, -50%) scale(1.1);
}
.kaf-albumcard__body,
.kaf-albumcard__content {
    padding: 16px;
}
.kaf-albumcard__title {
    font-size: 16px;
    font-weight: 600;
    color: #222;
    margin-bottom: 6px;
    line-height: 1.4;
}
.kaf-albumcard__desc {
    font-size: 13px;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 0;
}
