/* V107: Dernek herkese açık sitesi için ortak görsel yenileme.
   Yalnızca .public-body içinde geçerlidir; yönetim paneli etkilenmez.
   Her derneğin kendi --primary / --public-accent renkleri (public_v610.php'de
   inline olarak basılır) burada color-mix() ile türetilir; sabit dernek rengi
   KULLANILMAZ. Tenant zaten "serif" veya "modern" yazı tipi seçtiyse
   (.p65-font-serif / .p65-font-modern), o seçim burada ezilmez.

   Yazı tipleri Google Fonts CDN'den değil, kendi sunucumuzdan servis edilir
   (bkz. assets/fonts/) — sistemin CSP'si (app/bootstrap.php) dış style-src'e
   izin vermiyor ve buna dokunmak yerine fontları self-host etmek tercih edildi. */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/ibm-plex-sans-latin.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-ext.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/spectral-latin-500.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/spectral-latin-ext-500.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/spectral-latin-600.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/spectral-latin-ext-600.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF}
@font-face{font-family:'Spectral';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/spectral-latin-700.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Spectral';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/spectral-latin-ext-700.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF}

.public-body{
  --pub-font-display:'Spectral',Georgia,'Times New Roman',serif;
  --pub-font-body:'IBM Plex Sans','Segoe UI',Inter,Arial,sans-serif;
  --pub-primary-deep:color-mix(in srgb, var(--primary) 78%, #08111f);
  --pub-primary-tint:color-mix(in srgb, var(--primary) 10%, #ffffff);
  --pub-accent-tint:color-mix(in srgb, var(--public-accent) 14%, #ffffff);
  --pub-line:color-mix(in srgb, var(--primary) 12%, var(--line));
  font-size:18px;
  background:#fff;
}
/* V111: Genel görsel yükseltme — buton ve kart boşlukları biraz büyütüldü. */
.public-body .btn{padding:11px 20px;font-size:16px}
.public-body .btn.small{padding:9px 15px;font-size:14px}
.public-body .p65-member-card{padding-bottom:22px}
/* V112: Herkese açık formlar (Üyelik/Gönüllü/Ticari Eşleştirme başvurusu, İletişim formu vb.)
   yönetim panelinin dar/yoğun form stilini (label{font-size:13px}, components.css) miras alıyordu
   — input/select/textarea de aynı etikete sarıldığı için otomatik küçük kalıyordu. Herkese açık
   sitede bu etiketler ve içindeki alanlar okunur boyuta çıkarılıyor. */
.public-body label{font-size:15px}
.public-body .eyebrow{font-size:13px}
.public-body .announcement-list-card,.public-body .public-event-card{padding:26px}

/* Tipografi: yeni varsayılan eşleşme, mevcut serif/modern tercihini ezmez */
body.public-body:not(.p65-font-serif):not(.p65-font-modern){font-family:var(--pub-font-body)}
.public-body:not(.p65-font-serif):not(.p65-font-modern) h1,
.public-body:not(.p65-font-serif):not(.p65-font-modern) h2,
.public-body:not(.p65-font-serif):not(.p65-font-modern) h3,
.public-body:not(.p65-font-serif):not(.p65-font-modern) .public-brand strong{
  font-family:var(--pub-font-display);
  font-weight:600;
  letter-spacing:-.01em;
}
.public-body .btn{font-family:var(--pub-font-body)}
/* .btn.secondary varsayılan olarak sabit (lavanta) bir yönetim paneli rengi kullanıyor
   (--primary-soft), dernek rengine göre değişmiyor — herkese açık sitede dernek rengine
   göre türetilen tonlarla değiştiriliyor. */
.public-body .btn.secondary{background:var(--pub-primary-tint);border-color:var(--pub-line);color:var(--pub-primary-deep)}
.public-body .btn.secondary:hover{background:color-mix(in srgb, var(--pub-primary-tint) 60%, var(--primary) 15%);border-color:var(--primary)}

/* Etkinlik/Duyuru/Haber ızgarası 3 (veya 2) sütun için hazırlanmış; henüz az sayıda kayıt
   girilmiş bir dernekte tek kart tüm satırı gerip yarım/boş bir görünüm bırakıyordu. Yalnızca
   1-2 kayıt varken kartlar doğal genişliğinde, sola yaslı gösteriliyor. */
.public-body .p12-public-cards:has(>:nth-child(1):last-child){grid-template-columns:minmax(0,420px);justify-content:start}
.public-body .p12-public-cards:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,340px));justify-content:start}

/* Üst menü — içerik sütunu artık sabit 1180px ile sınırlı değil, sayfanın geri kalanı kadar geniş */
.public-body .public-header{border-bottom-color:var(--pub-line);padding:16px clamp(20px,4vw,48px)}
.public-body .public-logo{width:56px;height:56px;flex:0 0 56px}
/* Dernek adı (marka), tıpkı üye kartlarındaki isim gibi ana unsur olmalı — alt yazı (slogan)
   aynı koyulukta kalınca isimle yarışıyordu; şimdi isim kalın+belirgin, slogan soluk/ikincil.
   (font-weight burada !important ile veriliyor — genel başlık kuralı ":not()" seçicileri
   yüzünden bu seçiciden daha yüksek özgüllükte olduğundan normal şekilde ezilemiyordu.) */
.public-body .public-brand strong{font-weight:800!important;font-size:22px;color:var(--pub-primary-deep)}
.public-body .public-brand small{text-transform:uppercase;letter-spacing:.07em;font-size:12.5px;color:var(--muted)}
.public-body .public-header nav{font-size:16px}
.public-body .public-header nav a:not(.btn){opacity:.82}
.public-body .public-header nav a:not(.btn):hover{opacity:1}

/* Üst bilgi çubuğu (telefon/e-posta/sosyal medya) — ana menünün üzerinde, dernek isterse kapatabilir */
.public-body .public-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--pub-primary-deep);color:#fff;font-family:var(--pub-font-body);
  font-size:15px;padding:10px clamp(20px,4vw,48px);
}
.public-body .public-topbar-info,.public-body .public-topbar-social{display:flex;gap:18px;flex-wrap:wrap}
.public-body .public-topbar a{color:rgba(255,255,255,.9);text-decoration:none;font-weight:600}
.public-body .public-topbar a:hover{color:#fff;text-decoration:underline}
@media(max-width:640px){.public-body .public-topbar{font-size:13px;gap:8px 14px}}

/* "Diğer" gibi menü grupları: dernek renginde, tutarlı açılır kutu */
.public-body .public-header .p65-nav-item{cursor:pointer;opacity:.82}
/* Üst menüdeki "Diğer" gibi doğrudan nav içindeki öğeler: yazı + ok işareti aynı satırda
   dikey ortalanmalı. vertical-align:middle yazı tipi metriklerine göre değişkenlik
   gösterip oku metnin üstünde bırakabiliyordu (PC'de fark edildi) — flex ile kesin ortalama
   sağlanıyor. İç içe (alt menü içindeki) .p65-nav-item'lar nav'ın DOĞRUDAN çocuğu olmadığı
   için bu kuraldan etkilenmez. */
.public-body .public-header nav>.p65-nav-item{display:inline-flex;align-items:center}
/* Aşağı ok işareti bazı telefonlarda "▾" karakterini düzgün göstermiyordu (tire gibi
   görünüyordu) — yazı tipine bağlı olmayan, saf CSS ile çizilen bir ok kullanılıyor. */
.public-body .p65-nav-caret{display:inline-block;width:0;height:0;margin-left:4px;flex:0 0 auto;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor}
.public-body .public-header .p65-nav-item:hover{opacity:1}
.public-body .public-header .p65-subnav{border-color:var(--pub-line);box-shadow:0 14px 30px rgba(15,23,42,.12)}
.public-body .public-header .p65-subnav a{opacity:1!important;padding:10px 13px;border-radius:7px;font-size:15px}
.public-body .public-header .p65-subnav a:hover{background:var(--pub-primary-tint);color:var(--pub-primary-deep)}
/* Mobil hamburger menüsünde "Diğer" gibi gruplara dokununca alt menü açılıyordu ama ok hiç
   dönmüyordu (dönme kuralı sadece admin panelinin legacy-shell.css'inde vardı, herkese açık
   sayfalarda o dosya hiç yüklenmiyor) — açık/kapalı durumu görsel olarak hiç belli olmuyordu. */
.public-body .public-header nav.open .p65-nav-item .p65-nav-caret{transition:transform .15s ease}
.public-body .public-header nav.open .p65-nav-item.is-open .p65-nav-caret{transform:rotate(180deg)}

/* V109: Bölümler artık ayrı birer "kart" gibi durmuyor; aralarında boşluk/gölge/kutu
   hissi olmayan, dergi tarzı kesintisiz bir akışa geçirildi. Bölümler arası fark yalnızca
   arka planın değişmesiyle hissedilir. Kapak (hero) ve fotoğraf slider'ı, içindeki metin
   okunabilir genişlikte kalsın diye .public-main'in sınırladığı alandan "taşarak" ekranın
   tam genişliğini kaplar; diğer bölümlerin içeriği mevcut okunabilir genişlikte kalır.
   ÖNEMLİ: Bu kesintisiz akış SADECE ana sayfadaki (.p12-public-home) bölümler içindir —
   Ticari Eşleştirme Formu, Bağlı Kuruluşlar, Şube/Temsilcilik, üye profili gibi TEK BAŞINA
   sayfalar da aynı ".public-section" sınıfını kullandığından, kural ana sayfaya
   ".p12-public-home" ile sınırlanmazsa o sayfalardaki kartların kutu/gölge/arka planını da
   yanlışlıkla kaldırırdı (gerçek bir hataydı — bağımsız denetimde bulundu). */
.public-body .p12-public-home{row-gap:0;column-gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
.public-body .p12-public-home>*{grid-column:1/-1}
/* "Bu bölümü bir sonrakiyle yan yana göster" işaretli iki özel bölüm (ör. "Anketimiz" +
   "Ticari Eşleştirme") aynı ızgara satırında yarım genişlikte yan yana yerleşir. */
.public-body .p12-public-home>.p12-pair-left,
.public-body .p12-public-home>.p12-pair-right{grid-column:auto}
@media(max-width:900px){.public-body .p12-public-home{grid-template-columns:1fr}}
.public-body .p12-public-home .public-section{
  background:transparent;border:0;box-shadow:none;border-radius:0;margin-bottom:0;
  padding-block:56px;
}
.public-body .p12-public-home .public-section .panel-head{padding:0 0 24px;border-bottom:0}
.public-body .p12-public-home .public-section .panel-body{padding:0}
/* Kutu Düzenleyici blokları (ör. "Rakamlarla..." bölümündeki istatistik/organ kutuları) kendi
   üstünde/altında da boşluk bırakıyor; bölümün kendi üst/alt boşluğuyla üst üste binmesin diye
   bir bölümdeki ilk/son bloğun dış boşluğu kaldırılıyor. */
.public-body .p12-public-home .public-section .p65-block:first-child{margin-top:0}
.public-body .p12-public-home .public-section .p65-block:last-child{margin-bottom:0}
.public-body .p12-public-hero,
.public-body .p71-slider{
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  margin-bottom:0;
}
/* "100vw taşma" tekniği kaydırma çubuğu genişliğini hesaba katmadığı için birkaç
   piksellik yatay boşluk bırakabilir; herkese açık sayfada yatay kaydırmayı tamamen kapatıyoruz. */
body.public-body{overflow-x:hidden}

/* Kapak (hero) — dar bir metin sütunu + geniş bir kutu, geniş ekranlarda boş kalmasın diye
   dekoratif katman metnin bittiği yerden itibaren belirgin bir görsel alan oluşturuyor. */
.public-body .p12-public-hero{
  position:relative;isolation:isolate;overflow:hidden;align-items:center;
  min-height:clamp(240px,24vw,320px);
  border-radius:0;
  /* Metin her zaman solda oturduğu için, dernek AÇIK bir marka rengi seçse bile beyaz yazının
     okunur kalması için sabit koyu bir "scrim" katmanı eklendi — dernek renginden bağımsız
     bir kontrast tabanı sağlar, koyu renkli derneklerde görsel olarak neredeyse fark edilmez. */
  background:
    linear-gradient(90deg,rgba(3,8,20,.42) 0%,rgba(3,8,20,.16) 45%,rgba(3,8,20,0) 68%),
    linear-gradient(160deg,var(--pub-primary-deep) 0%,var(--primary) 62%,color-mix(in srgb, var(--primary) 55%, var(--public-accent)) 100%);
}
.public-body .p12-public-hero.has-image{
  background-image:
    linear-gradient(180deg,rgba(3,8,20,.1) 0%,rgba(3,8,20,.4) 100%),
    linear-gradient(90deg,rgba(3,8,20,.6) 0%,rgba(3,8,20,.32) 55%,rgba(3,8,20,.24) 100%),
    linear-gradient(100deg,color-mix(in srgb, var(--pub-primary-deep) 84%, black) 0%,rgba(10,14,26,.42) 100%),var(--p12-hero);
}
.public-body .p12-public-hero:not(.has-image)::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(color-mix(in srgb, #fff 24%, transparent) 1.5px,transparent 1.5px);
  background-size:26px 26px;
  opacity:.4;
  mask-image:linear-gradient(115deg,transparent 0%,transparent 30%,#000 55%,#000 100%);
  -webkit-mask-image:linear-gradient(115deg,transparent 0%,transparent 30%,#000 55%,#000 100%);
}
.public-body .p12-public-hero:not(.has-image)::after{
  content:"";position:absolute;right:-14%;top:50%;transform:translateY(-50%);width:52%;aspect-ratio:1;z-index:0;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb, var(--public-accent) 62%, transparent) 0%,color-mix(in srgb, var(--public-accent) 20%, transparent) 45%,transparent 72%);
}
.public-body .p12-public-hero-overlay{position:relative;z-index:1}
.public-body .p12-public-hero .eyebrow{
  display:inline-block;color:#fff;opacity:.9;
  border:1px solid rgba(255,255,255,.38);border-radius:999px;
  padding:5px 13px;font-family:var(--pub-font-body);
  font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;
}
.public-body .p12-public-hero-overlay h1{text-wrap:balance;text-shadow:0 1px 3px rgba(2,6,16,.35)}
.public-body .p12-public-hero-overlay p{font-family:var(--pub-font-body);opacity:.94;max-width:640px;text-shadow:0 1px 2px rgba(2,6,16,.3)}
.public-body .p12-public-hero .btn.primary{background:#fff;border-color:#fff;color:var(--pub-primary-deep);font-weight:700}
.public-body .p12-public-hero .btn.primary:hover{background:color-mix(in srgb,#fff 88%,var(--primary))}
.public-body .p12-public-hero .btn.secondary{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.public-body .p12-public-hero .btn.secondary:hover{background:rgba(255,255,255,.14)}

/* V108: Hero'dan hemen sonra gelen kapak görselli özel bölüm ("Birlikte Daha Güçlüyüz" gibi),
   ayrı bir "ikinci hero" gibi hissettirmesin diye daha kısa bir editorial şerit haline getirilir
   ve başlık, ayrı bir panel-head kutusu yerine görselin üstüne bindirilir. */
.public-body .p12-custom-section.has-cover{padding:0;overflow:hidden;border:0}
.public-body .p12-custom-section.has-cover .p12-custom-cover{
  position:relative;height:clamp(180px,22vw,280px);border-radius:inherit;
}
.public-body .p12-custom-section.has-cover .p12-custom-cover::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,color-mix(in srgb, var(--pub-primary-deep) 92%, black) 0%,rgba(3,8,20,.24) 55%,rgba(3,8,20,.1) 100%);
}
.public-body .p12-custom-cover-caption{
  position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(18px,3vw,32px);
}
.public-body .p12-custom-cover-caption h2{
  margin:0;color:#fff;font-size:clamp(20px,2.6vw,28px);text-shadow:0 1px 3px rgba(2,6,16,.35);
}
.public-body .p12-custom-cover-caption p{
  margin:6px 0 0;color:rgba(255,255,255,.92);font-family:var(--pub-font-body);
  max-width:640px;text-shadow:0 1px 2px rgba(2,6,16,.3);
}

/* V108: Bölümler arası görsel ritim — art arda gelen bölümler birbirinin birebir aynısı beyaz
   panel gibi durmasın diye çift sıradaki bölüme hafif zıt zemin tonu verilir. Kart/ızgara içerikli
   bölümler (etkinlik/duyuru/üye kartları) zaten kendi beyaz kart arka planına sahip olduğundan bu
   zemin değişikliğinden etkilenmez, sadece bölümün ARKA PLANI değişir. Kapak fotoğraflı özel bölüm
   (.has-cover) kendi tam-genişlik tasarımını koruması için hariç tutulur. */
.public-body .p12-public-home>.public-section:nth-of-type(even):not(.has-cover){
  background:var(--pub-primary-tint);border-radius:28px;
  padding:44px clamp(20px,4vw,48px);
}
/* "Derneğimiz Hakkında" bölümünün üst (yazı+görsel) kısmı sırası ne olursa olsun her zaman beyaz
   kalır — hemen altına eklenebilecek 3'lü kutu alanı (Kutu Düzenleyici'deki "Kartlar" bloğu) ise
   kendi renkli zeminiyle ayrışır. */
.public-body .p12-public-home>.public-section.p12-content-section:nth-of-type(even){
  background:transparent;border-radius:0;padding-block:64px;
}
.public-body .p12-content-section .p65-block-cards{
  background:var(--pub-primary-tint);border-radius:24px;
  padding:clamp(24px,3.5vw,36px);margin-top:8px;
}
.public-body .p12-content-section .p65-block-cards .p65-card-grid article{background:#fff}

/* V110: Gerçek görsel tasarım yükseltmesi — bölüm/kart boşluğu artırıldı, kurul "Tümünü Gör"
   aç/kapa stilleri, anket görsel ağırlığı, duyuru/etkinlik kart iç boşluğu, iletişim düzeni. */
.public-body .p12-public-home .public-section{padding-block:64px}
.public-body .p65-card-grid{gap:22px}
.public-body .announcement-list-card,.public-body .public-event-card{padding:22px}
.public-body .announcement-list-body time,.public-body .public-event-card-body time{margin-bottom:8px}
.public-body .announcement-list-body h3,.public-body .public-event-card-body h3{margin:6px 0 8px}
/* Kurul başlıkları arasına ince bir ayraç eklenir — tek bir dev bölüm bile alt-bölümlere
   ayrılmış gibi hissettirir (art arda gelen kurul listeleri artık "duvar" gibi durmuyor). */
.public-body .p65-gov-body-title{padding-top:28px;border-top:1px solid var(--pub-line)}
.public-body .p65-governance>.p65-gov-body-title:first-child{padding-top:0;border-top:0}

/* Anket bloğu artık düz bir form gibi değil, ayrı ve belirgin bir kart gibi durur. */
.public-body .p100-public-poll{
  border:1px solid var(--pub-line);border-radius:20px;
  padding:clamp(22px,3vw,32px);background:var(--surface,#fff);
}

/* İletişim bloğu: bilgiler solda, iletişim formu sağda — tek sütun düz liste yerine net
   iki sütuna ayrılır (harita, admin tarafından ayrı bir blok olarak eklendiyse kendi
   sırasında akışa devam eder, bu bloğa dahil değildir). */
.public-body .p65-contact{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,48px);align-items:start;
}
.public-body .p65-contact>h2{grid-column:1/-1}
.public-body .p65-contact-info p{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--pub-line)}
.public-body .p65-contact-info p:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}
@media(max-width:760px){.public-body .p65-contact{grid-template-columns:1fr}}

/* V108: Bölümler ekrana girerken hafif belirir (assets/app.js IntersectionObserver ile tetikler). */
.public-body.p65-reveal-ready .public-section{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.public-body.p65-reveal-ready .public-section.p65-reveal{opacity:1;transform:none}

/* Bölüm başlıkları */
.public-body .public-section .panel-head{border-bottom-color:var(--pub-line)}
.public-body .public-section .panel-head h2,
.public-body .public-section .panel-head h1{
  font-size:clamp(21px,3vw,28px);position:relative;padding-left:18px;
}
.public-body .public-section .panel-head h2::before,
.public-body .public-section .panel-head h1::before{
  content:"";position:absolute;left:0;top:5px;bottom:5px;width:4px;border-radius:2px;
  background:var(--public-accent);
}
.public-body .public-section .panel-head p{font-family:var(--pub-font-body);font-size:20px}
.public-body .p12-public-hero-overlay p{font-size:20px}

/* V108: Görselsiz "Hakkımızda" düz paragraf metnine, kod bilmeyen dernek yöneticisinin içerik
   yapısını hiç değiştirmesine gerek kalmadan bir okuma/tasarım vurgusu kazandırır. */
.public-body .p12-content-section .p12-rich-public{max-width:760px}
.public-body .p12-content-section .p12-rich-public:not(:has(>h2))>p:first-of-type::first-letter{
  font-family:var(--pub-font-display);font-size:52px;font-weight:600;line-height:.85;
  float:left;padding:6px 8px 0 0;color:var(--pub-primary-deep);
}

/* Alt başlıklı (h2) zengin metinler: her alt başlık + altındaki paragraf, "kutulu" bir bölüm
   kartına dönüşür — dernek yöneticisi düz metin yazmaya devam eder, kod/blok düzenleyici
   gerekmez, sadece başlık biçimini (H2) kullanması yeterli. Yalnızca DOĞRUDAN çocuk h2'ler
   hedeflenir (>), aksi halde Kutu Düzenleyici'nin içerideki blokları (ör. Organ/Yönetim
   başlığı) da yanlışlıkla kutuya dönüşür. Sıra numarası (01/02) yerine dernek renginde
   sade bir vurgu çizgisi kullanılır. */
.public-body .p12-rich-public>h2{
  position:relative;margin:28px 0 0;padding:20px 26px 14px 32px;
  background:var(--pub-primary-tint);border:1px solid var(--pub-line);border-bottom:0;
  border-radius:16px 16px 0 0;font-size:19px;
}
.public-body .p12-rich-public>h2:first-child{margin-top:0}
.public-body .p12-rich-public>h2::before{
  content:"";position:absolute;left:14px;top:24px;width:4px;height:22px;border-radius:2px;
  background:var(--public-accent);
}
.public-body .p12-rich-public>h2+p{
  background:var(--pub-primary-tint);border:1px solid var(--pub-line);border-top:0;
  border-radius:0 0 16px 16px;padding:0 26px 22px;margin:0;
}

/* Duyuru / etkinlik / haber kartları */
.public-body .announcement-list-card,
.public-body .public-event-card{
  border:1px solid var(--pub-line);border-radius:16px;background:var(--surface,#fff);
}
.public-body .announcement-list-card:hover,
.public-body .public-event-card:hover{
  border-color:color-mix(in srgb, var(--primary) 30%, var(--line));
  box-shadow:0 14px 32px rgba(15,23,42,.09);
}
.public-body .announcement-list-body time,
.public-body .public-event-card-body time{
  font-family:var(--pub-font-body);text-transform:uppercase;letter-spacing:.06em;
  font-size:13px;font-weight:800;color:var(--muted);
  display:inline-flex;align-items:center;gap:6px;
}
.public-body .announcement-list-body time::before,
.public-body .public-event-card-body time::before{
  content:"";width:6px;height:6px;border-radius:999px;background:var(--public-accent);flex:0 0 auto;
}
.public-body .announcement-list-body h3,
.public-body .public-event-card-body h3{font-size:18px;line-height:1.35}
.public-body .announcement-read-link{font-family:var(--pub-font-body);font-weight:800;font-size:14px}

/* Makale/etkinlik/duyuru detay sayfalarındaki "geri dön" linki ve tarih — bu sınıflar
   legacy-shell.css'te admin paneliyle paylaşılıyor (orijinal 12px orada kalsın), public
   tarafta site genelinin 15-18px ölçeğine uysun diye burada büyütülüyor. */
.public-body .article-back{font-size:14px}
.public-body .article-meta{font-size:14px}
/* Etkinlik detay sayfası: Tarih/Konum/Katılım/Organizasyon etiket+değer çiftleri ve
   "Kayıt Alınmıyor" rozeti — legacy-shell.css/components.css'teki admin-yoğunluklu
   10-11px boyuttan miras kalıyordu. */
.public-body .event-facts span{font-size:12.5px}
.public-body .event-facts small,
.public-body .event-facts a{font-size:14px}
.public-body .event-state-card>span{font-size:12.5px}
.public-body .event-gallery-grid figcaption{font-size:13px}
.public-body .badge{font-size:12.5px;padding:6px 10px}

/* Bağış kampanyaları: hedef/ilerleme çubuklu kartlar */
.public-body .p12-campaign-card{
  border:1px solid var(--pub-line);border-radius:16px;padding:22px;
  display:flex;flex-direction:column;gap:12px;background:var(--panel,#fff);
}
.public-body .p12-campaign-card:hover{
  border-color:color-mix(in srgb, var(--primary) 30%, var(--line));
  box-shadow:0 14px 32px rgba(15,23,42,.09);
}
.public-body .p12-campaign-card h3{font-size:18px;line-height:1.35;margin:0}
.public-body .p12-campaign-card>p{color:var(--muted);font-family:var(--pub-font-body);margin:0}
.public-body .p12-campaign-bar{height:10px;border-radius:999px;background:var(--pub-primary-tint);overflow:hidden}
.public-body .p12-campaign-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--public-accent))}
.public-body .p12-campaign-stats{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--pub-font-body)}
.public-body .p12-campaign-stats strong{font-family:var(--pub-font-display);font-size:16px;color:var(--pub-primary-deep)}
.public-body .p12-campaign-stats span{font-weight:800;color:var(--public-accent)}
.public-body .p12-campaign-footer{display:flex;justify-content:space-between;font-family:var(--pub-font-body);font-size:14px;color:var(--muted);border-top:1px solid var(--pub-line);padding-top:10px}

/* İletişim */
.public-body .p12-contact-form-wrap{background:var(--pub-primary-tint);border-color:var(--pub-line)}
.public-body .p12-contact-form-wrap h3{font-size:19px}
.public-body .p12-contact-info span{font-family:var(--pub-font-body);text-transform:uppercase;letter-spacing:.05em;font-size:13px}
.public-body .social-links a{background:var(--pub-primary-tint);color:var(--pub-primary-deep)}

/* Blok oluşturucu (Hakkımızda / Özel sayfa içinde kullanılan bloklar) */
.public-body .p65-hero{background:linear-gradient(135deg,var(--pub-primary-tint),var(--pub-accent-tint))}
.public-body .p65-card-grid article{border-radius:16px;border-color:var(--pub-line)}

/* Kutu bloğu ("Hakkımızda" gibi bölümlerde art arda kullanılan kutular): dernek renginde
   tonlanmış kart, en fazla dernek kaç tane eklerse o kadar (2, 3, ...), hepsi eşit boy.
   Art arda gelen kutu blokları yan yana bir ızgarada gösterilir; diğer blok tipleri
   (istatistik, başkandan mesaj, düz metin vb.) tam genişlikte kalmaya devam eder. */
.public-body .p12-rich-public{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
}
.public-body .p12-rich-public>*{grid-column:1/-1}
.public-body .p12-rich-public>.p65-block-box{grid-column:auto;height:100%;margin-top:0;margin-bottom:0}
.public-body .p65-box{
  background:var(--pub-primary-tint);
  border:1px solid var(--pub-line);border-radius:16px;padding:26px;
  height:100%;display:flex;flex-direction:column;
}
.public-body .p65-box h3{
  font-family:var(--pub-font-display);font-weight:600;font-size:20px;margin:0 0 10px;
  padding-left:14px;position:relative;color:var(--pub-primary-deep);
}
.public-body .p65-box h3::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:2px;
  background:var(--public-accent);
}

/* İstatistik bandı ("Rakamlarla ..."): büyük serif sayı + ince vurgu çizgisi */
.public-body .p65-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:28px;padding:4px 0}
.public-body .p65-stats>div{border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center}
.public-body .p65-stats strong{display:block;font-family:var(--pub-font-display);font-weight:700;font-size:36px;line-height:1;color:var(--pub-primary-deep)}
.public-body .p65-stats strong::after{content:"";display:block;width:26px;height:3px;margin:12px auto 0;background:var(--public-accent);border-radius:2px}
.public-body .p65-stats span{display:block;margin-top:10px;font-family:var(--pub-font-body);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media(max-width:640px){.public-body .p65-stats{grid-template-columns:repeat(2,1fr);gap:24px 16px}.public-body .p65-stats strong{font-size:28px}}

/* Kapak slider'ı — otomatik geçiş, kart yerine tam genişlik gösterim (bkz. assets/app.js) */
.public-body .p71-slider{border-radius:0;position:relative;overflow:hidden}
.public-body .p71-slider-track{position:relative;display:block;overflow:hidden;height:clamp(360px,50vw,600px)}
.public-body .p71-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none;min-height:0;display:block}
.public-body .p71-slide.is-active{opacity:1;pointer-events:auto}
.public-body .p71-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
/* Slider artık kapak (hero) bandının hemen üstünde durduğu için, slaytın alt kenarı hero'nun
   kendi rengine (--pub-primary-deep) tam OPAK olarak bağlanıyor — altındaki fotoğraf ne kadar
   parlak/açık renkli olursa olsun, sağ tarafta rengin "çarptığı" sert bir kesişim kalmıyor. */
.public-body .p71-slide-copy{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,var(--pub-primary-deep) 0%,color-mix(in srgb, var(--pub-primary-deep) 65%, transparent) 38%,transparent 100%);padding:clamp(22px,4vw,46px);padding-bottom:clamp(44px,6vw,64px)}
.public-body .p71-slide-copy h2{font-family:var(--pub-font-display);font-weight:600;font-size:clamp(22px,3vw,34px);color:#fff;margin:0 0 8px;max-width:640px}
.public-body .p71-slide-copy p{font-family:var(--pub-font-body);color:rgba(255,255,255,.88);max-width:560px;margin:0 0 14px}
.public-body .p71-dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:8px;z-index:2}
.public-body .p71-dot{width:9px;height:9px;border-radius:5px;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0;transition:width .2s,background .2s}
.public-body .p71-dot:hover{background:rgba(255,255,255,.8)}
.public-body .p71-dot.is-active{width:26px;background:var(--public-accent)}
@media(max-width:640px){.public-body .p71-slider-track{height:400px}}

/* Başkandan Mesaj bloğu */
.public-body .p65-leader{display:grid;grid-template-columns:186px minmax(0,1fr);gap:36px;align-items:center;background:var(--pub-primary-deep);color:#fff;border-radius:24px;padding:clamp(26px,4vw,46px)}
.public-body .p65-leader-photo{width:186px;height:186px;border-radius:20px;overflow:hidden;background:rgba(255,255,255,.12);border:3px solid rgba(255,255,255,.25)}
.public-body .p65-leader-photo img{width:100%;height:100%;object-fit:cover}
.public-body .p65-leader .p65-leader-body h3{font-family:var(--pub-font-display);font-weight:800;font-size:22px;color:#fff;margin:0}
/* Rol etiketi doğrudan dernek rengini (--public-accent) kullanıyordu; bazı derneklerde bu renk
   koyu zemin üzerinde okunmayacak kadar düşük kontrastlı çıkıyordu — beyazla karıştırılarak
   her zaman okunur kalması sağlandı. */
.public-body .p65-leader-role{display:block;margin-top:5px;font-family:var(--pub-font-body);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--public-accent) 45%, #fff)}
.public-body .p65-leader blockquote{margin:18px 0 0;font-family:var(--pub-font-body);font-size:16.5px;line-height:1.75;color:rgba(255,255,255,.88);border:0;padding:0}
@media(max-width:640px){.public-body .p65-leader{grid-template-columns:1fr;text-align:center;justify-items:center}}

/* Organ Yönetimi / Yönetim Kurulu kartları — herkese açık site */
.public-body .p65-governance>h2{font-family:var(--pub-font-display);font-weight:600;font-size:clamp(24px,3.4vw,32px);color:var(--pub-primary-deep);margin:0 0 22px}
.public-body .p65-gov-body-title{font-family:var(--pub-font-display);font-weight:600;font-size:22px;border-bottom:0;padding-bottom:0;margin:36px 0 20px;color:var(--pub-primary-deep)}
.public-body .p65-governance>.p65-gov-body-title:first-child{margin-top:0}
/* Kurul üyesi kartları bir satırda en fazla 4-5 sütun olacak şekilde (çok geniş ekranlarda
   onlarca dar sütuna bölünmesin diye) minimum kart genişliği yükseltildi. Dar/orta ekranlarda
   (tablet ve altı) bu değer aynı kalır; sadece geniş masaüstü ekranlarında (min-width:1100px)
   minimum genişlik düşürülerek gerçekten 4 (çok geniş ekranda 5) sütun sığması sağlanır —
   önceki sabit 340px değeri standart 1440-1536px laptop ekranlarında 3 sütuna düşüyordu. */
.public-body .p65-member-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
@media (min-width:1100px){
  .public-body .p65-member-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
}
.public-body .p65-member-card{border-color:var(--pub-line);border-radius:16px;transition:box-shadow .18s,border-color .18s,transform .18s}
.public-body .p65-member-card:hover{border-color:var(--primary);box-shadow:0 14px 30px rgba(15,23,42,.10);transform:translateY(-2px)}
.public-body .p65-member-photo{aspect-ratio:1/1;height:auto;max-width:400px;background:var(--pub-primary-tint)}
.public-body .p65-member-initial{color:var(--pub-primary-deep)}
/* Üye dizini isim arama kutusu */
.public-body .p65-member-search{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 22px}
.public-body .p65-member-search input[type=search]{flex:1 1 260px;min-width:0;padding:10px 14px;border:1px solid var(--pub-line);border-radius:10px;font:inherit}
.public-body .p65-member-search-clear{font-size:14px;color:var(--muted);text-decoration:underline}
/* İsim, karttaki ana unsur olmalı; görev/unvan onun altında ikincil bir etikettir. Önceden
   tam tersiydi — görev, parlak vurgu renginde olduğu için isimden daha çok göze çarpıyordu. */
.public-body .p65-member-grid .p65-member-card h3{font-family:var(--pub-font-display);font-weight:800;font-size:19px;color:var(--pub-primary-deep);margin:16px 14px 0}
.public-body .p65-member-card p{font-family:var(--pub-font-body);color:var(--muted);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;margin:5px 14px 0}
/* Kurul üyesinin kendi profilinde yazdığı kısa tanıtım metni (varsa) kart üzerinde gösterilir. */
.public-body .p65-member-bio{font-family:var(--pub-font-body);color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0;font-size:14.5px;line-height:1.5;margin:8px 14px 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Tek sütunlu (metin/liste/anket gibi) bloklar geniş panelde uçtan uca gerilip
   sağ tarafta boş alan bırakmasın diye okunabilir bir genişlikte tutulur; kart/ızgara
   tipi bloklar (duyuru/etkinlik/üye kartları vb.) zaten kendi genişliğini dolduruyor,
   onlara dokunulmuyor. */
.public-body .p65-block-text,
.public-body .p65-block-list,
.public-body .p65-block-faq,
.public-body .p65-block-table,
.public-body .p65-block-heading,
.public-body .p65-block-box,
.public-body .p100-public-poll{max-width:760px}
.public-body .p100-poll-form{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:10px 28px;align-items:start;
}
.public-body .p100-poll-form button{grid-column:1/-1;justify-self:start;margin-top:8px}
.public-body .p100-poll-results{max-width:560px}

/* Etkinlikler sayfası: Yaklaşan / Geçmiş etkinlikler iki ayrı bölüm halinde gösterilir */
.public-body .p12-status-section{margin-top:8px}
.public-body .p12-status-section h2{font-size:clamp(19px,2.6vw,24px);margin-bottom:14px}
.public-body .p12-past-events{margin-top:40px;padding-top:32px;border-top:1px solid var(--pub-line)}
.public-body .p12-past-events h2{color:var(--muted)}
.public-body .p12-past-events .public-event-card{opacity:.86}
.public-body .p12-past-events .public-event-card:hover{opacity:1}

/* Herkese açık formlardaki grup kutuları (ör. Gönüllü Başvurusu — müsait günler/ilgi alanları) */
.public-body .public-form-card fieldset{border:1px solid var(--pub-line);border-radius:12px;margin:0;padding:14px 16px 16px}
.public-body .public-form-card legend{padding:0 8px;font-family:var(--pub-font-body);font-weight:700;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.public-body .public-form-card .check-grid{margin-top:4px}

/* Erişilebilirlik araç çubuğu */
.p65-a11y-widget{position:fixed;right:18px;bottom:18px;z-index:9999;font-family:var(--pub-font-body,system-ui)}
.p65-a11y-toggle{width:52px;height:52px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:24px;line-height:1;cursor:pointer;box-shadow:0 8px 22px rgba(15,23,42,.22);display:flex;align-items:center;justify-content:center}
.p65-a11y-toggle:hover{filter:brightness(1.08)}
.p65-a11y-panel{position:absolute;right:0;bottom:64px;width:230px;background:#fff;border:1px solid var(--pub-line,#e2e6ef);border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:16px}
.p65-a11y-title{margin:0 0 12px;font-weight:800;font-size:13px;color:#0f172a;text-transform:uppercase;letter-spacing:.04em}
.p65-a11y-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px;color:#0f172a}
.p65-a11y-row:last-child{margin-bottom:0}
.p65-a11y-btns{display:flex;gap:6px}
.p65-a11y-btns button{width:32px;height:32px;border-radius:8px;border:1px solid var(--pub-line,#e2e6ef);background:#f8f9fc;font-weight:700;font-size:12px;cursor:pointer;color:#0f172a}
.p65-a11y-btns button:hover{background:#eef1f7}
.p65-a11y-contrast-row input{width:18px;height:18px}
html.a11y-high-contrast body.public-body,
html.a11y-high-contrast body.public-body *{background-color:#fff!important;color:#000!important;border-color:#000!important;box-shadow:none!important;text-shadow:none!important}
html.a11y-high-contrast body.public-body a{color:#00008b!important;text-decoration:underline!important}
html.a11y-high-contrast body.public-body .btn,
html.a11y-high-contrast body.public-body .btn.primary{background:#000!important;color:#fff!important;border:2px solid #000!important}
html.a11y-high-contrast .p65-a11y-toggle{background:#000!important;color:#fff!important}
html.a11y-high-contrast .p65-a11y-panel{background:#fff!important}

/* Organ Yönetimi — kurul altı alt komisyon/çalışma grubu görünümü */
.public-body .p65-gov-subbody{margin:16px 0 28px;padding-left:20px;border-left:3px solid var(--pub-line)}
.public-body .p65-gov-subbody-title{font-size:18px;font-weight:700;margin:0 0 12px;color:var(--muted)}

/* Bağlı Kuruluşlar / Üye Dernekler */
.public-body .p108-org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.public-body .p108-org-card{border:1px solid var(--pub-line);border-radius:16px;padding:20px;text-align:center;text-decoration:none;color:inherit;display:block;background:var(--surface,#fff);transition:box-shadow .15s,border-color .15s}
a.p108-org-card:hover{box-shadow:0 10px 26px rgba(15,23,42,.10);border-color:var(--primary)}
.public-body .p108-org-logo{display:block;height:64px;margin:0 auto 12px}
.public-body .p108-org-logo img{height:100%;width:auto;max-width:100%;object-fit:contain}
.public-body .p108-org-card h3{font-size:17px;margin:0 0 4px}
.public-body .p108-org-card p{font-size:14px;color:var(--muted);margin:0}

/* Şube / Temsilcilik Dizini */
.public-body .p107-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.public-body .p107-category-group{margin-top:32px}
.public-body .p107-category-group:first-of-type{margin-top:0}
.public-body .p107-category-group h3{font-size:20px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--pub-line)}
.public-body .p107-branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.public-body .p107-branch-card{border:1px solid var(--pub-line);border-radius:16px;padding:20px;background:var(--surface,#fff)}
.public-body .p107-branch-card h4{font-size:18px;margin-bottom:6px}
.public-body .p107-branch-card p{margin:4px 0;font-size:15px}
.public-body .p107-branch-location{color:var(--public-accent);font-weight:700;font-size:13.5px;text-transform:uppercase;letter-spacing:.04em}

/* Alt bilgi */
.public-body .public-footer{
  margin-top:64px;padding-top:28px;padding-bottom:28px;
  border-top:1px solid var(--pub-line);
  font-family:var(--pub-font-body);
  flex-wrap:wrap;
}
.public-body .public-footer a{color:var(--primary);font-weight:700}
/* Platform marka satırı: dernek bilgisi/"Yönetim Girişi" satırının altında, kendi satırında,
   görsel ağırlığı düşük (soluk/küçük) — dernek kendi bilgisinin önüne geçmesin. */
.public-body .public-footer .p65-platform-credit{flex-basis:100%;order:3;margin-top:10px;font-size:13.5px;font-weight:400;color:var(--muted)}
.public-body .public-footer .p65-platform-credit a{color:var(--muted);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.public-body .public-footer .p65-platform-credit a:hover{color:var(--primary)}
/* Erişilebilirlik araç çubuğu sağ-alt köşede sabit duruyor (.p65-a11y-widget); ana içerik genişliği
   `min(1400px,80vw)` olduğundan çakışma sadece telefon genişliklerinde değil, tablet genişliklerinde
   (ör. 768px, 900px) de oluşuyor — ölçümle doğrulandı, güvenli aralık ~980px'e kadar sürüyor. Alt
   bilgiye butonun kapladığı alan kadar sağ boşluk bırakılır. */
@media (max-width:980px){
  .public-body .public-footer{padding-right:70px}
}
