@charset "UTF-8";

/* drosmankokver.com — görsel düzeltme paketi · 18 Eylül 2026
   ============================================================
   Bu dosya her sayfada EN SON yüklenir. Sebebi: sitede üç farklı yükleme
   düzeni var ve accessibility.css 49 sayfada son sırada değil
   (content-reading.css ondan sonra geliyor). Buraya yazılan her kural,
   eşit özgüllükte olduğu sürece kaynak sırasıyla kazanır — bu yüzden
   aşağıdaki seçiciler kasıtlı olarak orijinalleriyle birebir aynı.

   Kaynak: DIZAYN-DENETIMI-2026-09-18.md, öncelik listesi madde 1-6.
   Kontrast oranları canlı sayfada, yarı saydam katmanlar harmanlanarak
   ölçüldü; her kuralın yanında ölçüm var. Hiçbiri tahmin değil. */


/* ============================================================
   1) ODAK HALKASI  (denetim T5)
   Eski halka: outline rgba(184,154,98,.55) solid 3px
     kremde 1,60:1 · beyazda 1,65:1 · koyu yeşilde 2,43:1
   WCAG 2.2 odak göstergesi eşiği 3,0 — üçünde de altındaydı.
   Yeni: açık zeminde #7E6335 (5,2-5,6:1), koyu zeminde #F0E8D8 (10,2:1).
   :focus-visible olduğu için fareyle tıklamada görünmez, yalnız klavyede.

   NOT: buraya bir ara border-radius:2px yazmıştım; kaldırıldı. O bildirim
   odaklanan elemanın KENDİ köşe yarıçapını eziyordu — yuvarlak WhatsApp
   balonu (%50) ve hap butonlar (32px) odaklanınca kareleşiyordu.
   outline zaten elemanın kendi yarıçapını takip ediyor, gerek yok.
   ============================================================ */

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #7E6335;
  outline-offset: 2px;
}

/* Sitenin kendi özel halkası da aynı kurala gelsin (eski hâli .55 altındı) */
.ccard-cta:focus-visible,
.about-actions a:focus-visible {
  outline: 2px solid #7E6335;
  outline-offset: 2px;
}

/* Çerez bildiriminde outline:none ile halka kapatılmıştı — geri açılıyor */
.consent-actions button:focus-visible {
  outline: 2px solid #7E6335;
  outline-offset: 2px;
}

/* Koyu zeminli bileşenlerde halka açık tonda olmalı */
.topbar a:focus-visible,
.proc-hero a:focus-visible,
.post-hero a:focus-visible,
.about-hero a:focus-visible,
.site-footer a:focus-visible,
.complaints a:focus-visible,
.ig-section a:focus-visible,
.proc-cta-section a:focus-visible,
.mobile-menu a:focus-visible,
.mobile-cta:focus-visible,
.wa-float:focus-visible,
.nav-cta:focus-visible,
.btn-primary:focus-visible,
.btn-wa:focus-visible,
.btn-wa-lg:focus-visible,
.btn-wa-faq:focus-visible,
.btn-wa-footer:focus-visible,
.btn-wa-randevu:focus-visible,
.btn-cta-wa:focus-visible,
.btn-post-wa:focus-visible,
.btn-proc-wa:focus-visible,
.btn-uygulama-wa:focus-visible,
.uk-badge:focus-visible,
.blog-card-cat:focus-visible {
  outline-color: #F0E8D8;
}


/* ============================================================
   2) MOBİL MENÜDEKİ ANA CTA  (denetim T6)
   .mobile-cta: padding 0 + justify-content:space-between olduğu için
   ikon butonun sol kenarına, yazı sağ kenarına yapışıyordu; aralarında
   160 px boşluk kalıyordu. Ölçüm: buton 342 px, içerik 182 px.
   ============================================================ */

/* Asıl çakışma .mobile-cta'nın kendisinde değil: aynı satır içi blokta,
   ondan SONRA gelen .mobile-menu a kuralı (özgüllük 0,1,1 > 0,1,0)
   justify-content:space-between ve padding:1rem 0 dayatıyor. Yani orijinal
   .mobile-cta kuralı (center, .875rem) doğru yazılmış, eziliyor.
   Seçiciyi .mobile-menu .mobile-cta (0,2,0) yaparak yazarın niyeti geri
   getiriliyor; dikey padding korunuyor, yatay padding ekleniyor. */
.mobile-menu .mobile-cta {
  justify-content: center;
  padding: .875rem 1.25rem;
  gap: .5rem;
}


/* ============================================================
   3) ALTIN RENGİN METİN KATMANINDAN ÇEKİLMESİ  (denetim T4)
   Kural: altın (#B89A62) AÇIK zeminde metin rengi olamaz.
     açık zemin  → #7E6335   (content-reading.css'teki --cs-gold-text)
     koyu zemin  → #B89A62   (orada zaten 4,65:1 veriyor, dokunulmaz)
     fotoğraf üstü rozet → #fff
   ============================================================ */

/* --- 3a · Açık zeminde altın metin → #7E6335 -----------------
   .proc-section-eyebrow-txt  255 örnek / 26 sayfa  2,57 → 5,40
   .section-eyebrow-txt         2 örnek             2,48 → 5,23
   .cat-eyebrow-txt             4 örnek             2,68 → 5,64
   .bio-edu-title               1 örnek             2,48 → 5,23
   .ct-year                    16 örnek             2,48 → 5,23           */

.proc-section-eyebrow-txt,
.section-eyebrow-txt,
.cat-eyebrow-txt,
.bio-edu-title,
.ct-year {
  color: #7E6335;
}

/* Özet bloğundaki rakamlar: dekoratif token metin olarak kullanılmış.
   --cs-gold (#b28e51) 3,05:1 → --cs-gold-text (#7E6335) 5,64:1.
   Seçici, content-reading.css'teki orijinaliyle birebir aynı tutuldu;
   özgüllük eşit olduğu için kaynak sırasıyla kazanır.
   Uygulama tarafı 130 madde / 26 sayfa · blog tarafı 115 madde / 23 sayfa */

body.cs-procedure .proc-ozet li span:first-child,
body.cs-blog .post-ozet li span:first-child {
  color: var(--cs-gold-text, #7E6335);
}

/* "DOĞRU BEKLENTİ" başlığı, pembe kutu (#F4E3DF) üstünde:
   #8A6C30 3,96:1 → #7E6335 4,54:1. 26 sayfa. */

.proc-does-title.no-t {
  color: #7E6335;
}

/* --- 3b · Koyu ve fotoğraf zeminde açık kalmalı --------------
   Bu üçü açık zemin kuralına DAHİL DEĞİL; koyulaştırmak onları bozar.  */

/* Kart rozetleri rgba(37,56,48,.8) ile fotoğrafın üstünde duruyor.
   Fotoğraf yüklüyken gerçek zemin rgb(74,85,72): altın 2,92:1, beyaz 7,82:1.
   Anasayfadaki .acard-badge zaten beyaz metin kullanıyor — dil tutarlı olur.
   26 uygulama kartı + 23 blog kartı. */
.uk-badge,
.blog-card-cat {
  color: #fff;
}

/* Hakkımda hero'sundaki etiket koyu yeşil (#253830) üstünde duruyor.
   Temmuz 2026 düzeltmesi burada ters tepmişti: #7E6335 orada 2,21:1.
   Orijinal ton aynı zeminde 4,65:1 veriyor.
   DİKKAT: aynı sınıf anasayfada da var ama orada BEYAZ zeminde duruyor
   (section.about içinde). Bu yüzden kural .about-hero ile sınırlandırıldı;
   sınırsız yazılsaydı anasayfadaki etiket 5,23'ten 2,68'e düşerdi. */
.about-hero .about-eyebrow-txt {
  color: #B89A62;
}

/* Uygulamalar hero'sundaki kart: zemini rgba(255,255,255,.06) + #253830,
   yani koyu yeşilden 6% daha açık → rgb(50,68,60). Altın orada 3,87:1'e
   düşüyor (12,8 px metin için eşik 4,5). Aynı ailenin bir tık açığı
   #CBB186 aynı zeminde 5,02:1 veriyor ve altın kimliğini korur;
   beyaza çekmek alt başlığı isimden daha baskın yapardı. */
.usc-role {
  color: #CBB186;
}

/* --- 3c · Koyu zeminde beyaz saydamlıkları -------------------
   .footer-location   (57 sayfa)  .45 → .46   4,49 → 4,65
   .about-location    (1)         .45 → .58   3,85 → 5,33
   .about-stat-lbl    (3)         .50 → .58   4,38 → 5,33                */

.footer-location {
  color: rgba(255, 255, 255, .46);
}

.about-location,
.about-stat-lbl {
  color: rgba(255, 255, 255, .58);
}


/* ============================================================
   4) KART GÖRSELLERİNE YER TUTUCU ZEMİN  (denetim T9)
   26 uygulama + 23 blog kartı loading="lazy"; kapsayıcı zemini var(--bg)
   yani sayfayla aynı renk. Kaydırırken görsel gelene kadar kartın yeri
   boş beyaz görünüyor, üstünde rozet havada duruyor. Ölçümde 26 kartın
   13'ü henüz yüklenmemişti. Biraz koyu bir yer tutucu, yükleniyor hâlini
   bozuk görünmekten çıkarır. Oran zaten sabit (aspect-ratio + width/height),
   yani kayma (CLS) sorunu yok — bu yalnız algı düzeltmesi.
   ============================================================ */

.uk-img-wrap,
.blog-card-img-wrap {
  background-color: #EDE7DC;
}


/* ============================================================
   5) MOBİLDE H1 ÖLÇEĞİ  (denetim T3)
   390 px'te başlık 54,6 px ve satır aralığı 1,0 → dört satıra bölünüyor,
   satırlar birbirine değiyor. Kaynak: content-reading.css içindeki
   @media (max-width:640px) { font-size: clamp(2.75rem, 14vw, 3.65rem) }
   Yeni değer 390 px'te 35,1 px verir; satır aralığı 1,12'ye açılır.
   Seçici orijinaliyle birebir aynı.
   ============================================================ */

@media (max-width: 640px) {
  body.cs-encyclopedia .art-hero h1,
  body.cs-procedure .proc-h1,
  body.cs-blog .post-title {
    font-size: clamp(2rem, 9vw, 2.6rem);
    line-height: 1.12;
  }
}


/* ============================================================
   6) MENÜ ALTINDAKİ ETİKET  (denetim T15)
   "MEDİKAL ESTETİK · DENİZLİ" tek satır için 183 px istiyor, kutusu 164 px.
   900-1000 px bandında iki satıra düşüp beyaz menü çubuğunu 4 px aşıyor.
   Sebep: 11,2 px yazıya letter-spacing .22em (25 karakterde ~62 px).
   .1em'e inince gereken genişlik ~149 px olur, kutuya sığar.
   ============================================================ */

.nav-logo-tag {
  white-space: nowrap;
  letter-spacing: .1em;
}


/* --- 3d · Ölçüm sırasında çıkan, denetim raporunda yer almayan üç kalem ---
   Bunlar katman-duyarlı ölçümde göründü (yarı saydam zeminler harmanlanınca).
   Hepsi altın ailesinden ve hepsi AA'nın hemen altındaydı; aynı paketle
   kapatılıyorlar. Hiçbiri yeni bir renk getirmiyor.                        */

/* Anasayfadaki uygulama kartı rozeti: beyaz metin rgba(184,154,98,.85)
   üstünde, fotoğrafla harmanlanınca 2,47:1. Altın kutunun tonu #7E6335'e
   çekilince beyaz metin 4,87:1 oluyor; rozet altın kimliğini koruyor.
   8 rozet / anasayfa. */
.acard-badge {
  background: rgba(126, 99, 53, .9);
}

/* Anasayfa hekim kartındaki alt satır: koyu kart (rgb 43,53,47) üstünde
   beyaz .50 → 4,43:1. .54 → 4,90:1. */
.about-id-meta {
  color: rgba(255, 255, 255, .54);
}

/* Hakkımda kongre listesindeki "KADAVRA/WORKSHOP" rozetleri:
   #8A6C30, rgba(184,154,98,.1) kutu üstünde 4,21:1 → #7E6335 4,83:1.
   5 rozet / hakkimda. */
.badge-workshop {
  color: #7E6335;
}


/* --- 3e · Tüm site taraması sonrası kalan dört sayfa -----------
   62 sayfanın hepsi iframe içinde tek tek tarandı; ilk beş kalemden sonra
   yalnız bu dört sayfada hata kalmıştı. Aynı altın ailesi, aynı kural.   */

/* iletisim.html — açık zeminde altın etiketler */
.harita-panel-eyebrow,
.harita-label,
.randevu-eyebrow-txt,
.bolge-intro-txt {
  color: #7E6335;      /* beyazda 5,64 · kremde 5,23 (eski 2,48-2,68) */
}

/* iletisim.html — koyu yeşil panelde beyaz .35 çok soluktu: 2,93 → 5,33 */
.iletisim-info-label {
  color: rgba(255, 255, 255, .58);
}

/* bolgeler.html hero'su koyu (rgb 59,71,56) — burada altın AÇILMALI.
   #B89A62 orada 3,65:1; .usc-role ile aynı ton #CBB186 → 4,74:1 */
.bolge-hero-eyebrow {
  color: #CBB186;
}


/* ============================================================
   EK) HAM WhatsApp YEŞİLİ  (denetim T11'in kanıtı)
   uygulama-ornekleri/*.html sayfalarında "WhatsApp ile Bilgi Al" butonu
   beyaz metin + #25D366 zeminle 1,98:1 ile yayında.
   Temmuz 2026 düzeltmesi .orn-cta .wa seçicisini KAPSIYOR ama bu iki
   sayfada satır içi <style> accessibility.css'ten SONRA geliyor ve aynı
   özgüllükte (0,2,0) olduğu için onu eziyor. Bu dosya en sonda olduğu
   için düzeltme burada tutuyor. Beyaz metin #188741 üstünde 4,58:1.
   ============================================================ */

.orn-cta .wa {
  background: #188741;
}

.orn-cta .wa:hover {
  background: #137036;
}


/* ============================================================
   7) UYGULAMA SAYFALARINDA BÖLÜM RİTMİ  (denetim T7) · 19 Eylül 2026

   SORUN: 26 uygulama sayfasında 12 bölüm birbirinin aynı ritimde akıyordu —
   hepsi 118 px arayla, aralarında 1 px çizgi. Denetimde "göz tutunacak yer
   bulamıyor" diye not etmiştim.

   Raporda önerdiğim ilk çözüm (alternatif zemini geri açmak) ÖLÇÜMLE ELENDİ:
     · --ivory (#FFFFFF) ile sayfa zemini (rgb 251,250,247) arasındaki kontrast
       1,044:1 — gözle ayırt edilemez.
     · Bölümler tam genişlik değil, 817 px'lik okuma kolonunun içinde; bant
       değil, yüzen bir dikdörtgen olurdu.
     · Markup'taki alternatif sıra zaten bozuk: ALT/–/ALT/–/ALT/–/–/–/–/ALT/–/ALT.

   Ayrıca mevcut ince çizgiler de neredeyse görünmezdi: rgb(220,225,220),
   sayfa zemininde 1,27:1.

   YAPILAN: bölümler dört gruba ayrıldı ve ritim boşlukla kademelendirildi.
   26 sayfanın iskeleti tutarlı olduğu için gruplama id'lere dayanıyor:
     A · Tanıtım   : uyg-tanim, uyg-beklentiler (ve varsa öncesi)
     B · Uygulama  : uyg-aday, uyg-surec, uyg-sonrasi
     C · Ayrıntı   : uyg-risk + sayfaya özel bölümler (seans, kalicilik, hacim…)
     D · Kapanış   : uyg-sss, uyg-kaynaklar
   Grup içi boşluk 77 px, grup arası 154 px + görünür bir çizgi (#CFC9BE, 1,58:1).
   NOT: akış kapsayıcısı display:block olduğu için ardışık bölümlerin dikey
   margin'leri ÇAKIŞIYOR. Bu yüzden sınır boşluğu margin-top ile büyütülemez —
   ilk denememde koyduğum margin-top:1.2rem tamamen yutuluyordu. Boşluk yalnız
   padding ile kurulmalı: 2.4rem (önceki bölümün altı) + 2.4rem (çakışan margin)
   + 4.8rem (sınır bölümünün üstü) = 153,6 px. Çizgi boşluğun tam ortasında kalır.
   11 zayıf çizgi yerine 3 belirgin sınır. Sayfa ~335 px kısalıyor.
   ============================================================ */

body.cs-procedure .cs-procedure-flow .proc-section {
  padding-bottom: 2.4rem;
  margin-bottom: 2.4rem;
  border-bottom: none;
}

body.cs-procedure .cs-procedure-flow #uyg-aday,
body.cs-procedure .cs-procedure-flow #uyg-risk,
body.cs-procedure .cs-procedure-flow #uyg-sss {
  padding-top: 4.8rem;
  border-top: 1px solid #CFC9BE;
}


/* ============================================================
   8) DOKUNMA HEDEFLERİ  (denetim T10) · 19 Eylül 2026

   Mobilde 44 px'in altında 40 bağımsız kontrol vardı (metin içi bağlantılar
   hariç): footer telefonu 17 px, yasal bağlantılar 15 px, menü satırları 22 px,
   sosyal ikonlar 26-32 px, hamburger 27 px, okuma rayı 34 px, atıf rakamları
   6×13 px. Bunlar telefonda parmakla gerçekten ıskalanıyor.

   Kural YALNIZ MOBİLDE (≤900 px) geçerli. Sebebi ölçüm: masaüstünde okuma rayı
   560 px ve 12 bağlantı 44 px'e çıksa 679 px oluyor — 800 px'lik pencerede
   yapışkan ray taşma sınırına geliyor. Fareyle kullanılan masaüstünde 34 px
   zaten WCAG 2.2'nin 24 px alt sınırının üstünde, dokunulmadı.
   ============================================================ */

@media (max-width: 900px) {

  /* Mobil gezinmenin ana düğmesi — en kritik hedef: 27 → 44 px */
  .hamburger {
    min-width: 44px;
    min-height: 44px;
  }

  /* Footer menü bağlantıları: 21,6 → 45,6 px */
  .footer-links a {
    padding-block: 12px;
  }

  /* Footer yasal bağlantılar ve çerez tercih düğmesi: 15 → 45 px */
  .footer-legal-links a,
  .footer-legal-links button {
    padding-block: 15px;
  }

  /* Footer telefon ve e-posta — arama eylemi, öncelikli: 17 → 44 px.
     Negatif margin, padding'in GÖRSEL etkisini geri alır ama dokunma alanı
     padding'e dahil olduğu için 44 px'te kalır. Böylece "TELEFON" etiketiyle
     numara arasındaki boşluk, komşu satırlarla (ADRES, ÇALIŞMA SAATLERİ)
     aynı kalıyor; yalnız basılabilir alan büyüyor. */
  .footer-info-val a {
    display: inline-block;
    padding-block: 13px;
    margin-block: -13px;
  }

  /* Footer sosyal ikonları: 32 → 44 px */
  .footer-social {
    min-width: 44px;
    min-height: 44px;
  }

  /* Footer düğmeleri: 37 → 44 px */
  .btn-google-reviews,
  .btn-wa-footer {
    min-height: 44px;
  }

  /* Okuma rayı bağlantıları: 34 → 44 px (mobilde ray yatay şerit, yer var).
     Seçici content-reading.css'teki "body.cs-pilot .cs-reading-rail a" ile
     aynı özgüllükte yazıldı; kısa hâli (.cs-reading-rail a) eziliyordu. */
  body.cs-pilot .cs-reading-rail a {
    padding-block: 13px;
  }

  /* Üst bar 40 px yüksekliğinde; içindeki bağlantılar barı tam dolduruyor.
     44'e çıkarmak barı büyütmek demek olurdu, o yüzden 40'ta bırakıldı —
     26/15 px'ten 40 px'e çıkmak yine de büyük kazanç ve WCAG 2.2'nin
     24 px alt sınırının çok üstünde. */
  .topbar-socials a,
  .topbar-item {
    min-height: 40px;
  }
}

/* Künye şeridindeki hekim adı bağlantısı: 18 px, satır içi.
   Aynı görünmez alan tekniğiyle 44 px'e çıkarılıyor; künye şeridi 85 px
   olduğu için alan şeridin dışına taşmıyor. */
.proc-byline a {
  position: relative;
}

.proc-byline a::after {
  content: "";
  position: absolute;
  inset: -13px -6px;
}

/* Atıf rakamları (üst simge) — 7×12 px, sitenin en küçük hedefi.
   Görünümü bozmadan büyütmek için görünmez bir dokunma alanı serilir;
   kutu boyutu ve satır akışı değişmez. Sonuç ~7×26 px — yükseklik ikiye katlanıyor.

   YATAY GENİŞLETME YOK. Sebebi ölçüm: Paket 2'de bazı maddelere iki kaynak
   birden konmuştu ve o atıf rakamları BİTİŞİK duruyor (ölçülen yatay boşluk 0 px).
   Yanlara 9 px genişlettiğimde sonraki rakamın alanı öncekini tamamen örtüyordu;
   "2"ye dokunan "3" kaynağına gidiyordu. Yani düzeltme, düzeltmeye çalıştığı
   şeyi bozuyordu. Dikey genişletme bu riski taşımıyor.

   Tam 24×24 (WCAG 2.2) bir üst simge için ancak bitişik rakamların arası
   açılarak sağlanabilir; o ayrı bir metin/dizgi kararı. */
/* Blog tarafında atıflar sınıfsız: <sup><a href="#kaynak-N">N</a></sup>
   (23 sayfada 129 adet, hepsi bağlantı). İlk yazdığım .post-cite diye bir
   sınıf sitede yok; doğru hedef body.cs-blog sup a. */
.proc-cite a,
body.cs-blog sup a {
  position: relative;
}

.proc-cite a::after,
body.cs-blog sup a::after {
  content: "";
  position: absolute;
  inset: -7px 0;
}


/* ============================================================
   9) HAREKET TERCİHİ VE YAZDIRMA  (denetim T17)

   57 sayfanın satır içi CSS'inde 3.513 transition bildirimi var ama
   prefers-reduced-motion kuralı hiçbirinde yoktu. Ayrıca site hiç yazdırma
   stili tanımlamamış; hasta uygulama sayfasını yazdırdığında menü, yüzen
   WhatsApp düğmesi ve çerez kutusu da kâğıda gidiyordu.
   ============================================================ */

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

@media print {
  .topbar,
  .navbar,
  .mobile-menu,
  .wa-float,
  .skip-link,
  .cs-reading-rail,
  .proc-cta-section,
  #consent-banner,
  .consent-reopen,
  .consent-panel {
    display: none !important;
  }

  body {
    background: #fff !important;
  }

  .cs-procedure-layout {
    display: block !important;
  }

  /* Başlık sayfa sonunda tek başına kalmasın */
  h1, h2, h3 {
    break-after: avoid;
  }

  /* Yalnız KÜÇÜK birimler bölünmesin. Bölümlerin kendisine break-inside:avoid
     KONMADI — ölçüm: bölüm yükseklikleri 489-1992 px, ikisi A4 sayfasından
     (≈1120 px) büyük. Bölünmemesini istemek onları yeni sayfaya atar, yine
     sığmaz ve çıktıda koca boşluklar oluşur. Aynı sebeple sayfa özeti (745 px)
     de dışarıda bırakıldı. */
  .proc-facts,
  table,
  figure,
  img,
  li {
    break-inside: avoid;
  }
}


/* ============================================================
   10) ÇEREZ KATMANINDA DOKUNMA HEDEFLERİ
   Paket 14'te bu katmanı atlamıştım: çerez arayüzü consent-manager.js
   tarafından sonradan basılıyor, tarama sırasında ekranda değildi.
   Kaynağı consent-manager.css ve o kaskadda İLK sırada; bu dosya son
   sırada olduğu için buradan eziliyor.

   Medya sorgusu YOK — bilerek. Kapat düğmesinin büyümesi görünmez
   (::after), diğerleri 2-10 px; masaüstünde de bedeli yok, üstelik
   dokunmatik dizüstü ve yatay tabletler 900 px'in üstünde kalıyor.

   ANAHTARLARA DOKUNULMADI (44×24 px). Her biri 295×112 px'lik bir
   <label> içinde; ölçüldü — satırdaki başlığa ve açıklama metnine
   tıklamak da anahtarı çeviriyor. Gerçek dokunma hedefi zaten 295×112.
   ============================================================ */

/* Bildirim ve tercih penceresindeki düğmeler: 42 → 44 px
   (.consent-dialog-actions da .consent-actions sınıfını taşıyor) */
.consent-actions button,
.consent-media-placeholder button {
  min-height: 44px;
}

/* Sol altta kalıcı duran "Çerez Tercihleri" düğmesi: 34 → 44 px.
   consent-manager.js bunu hidden olmadan basıyor, yani her sayfada
   her ziyaretçide görünür. */
.consent-reopen {
  min-height: 44px;
}

/* Tercih penceresinin kapat düğmesi: 38×38 → 44×44, görünüm aynı.
   Öğe zaten position:absolute, ::after ona göre konumlanıyor.

   DİKKAT: ::after'ın referansı kenarlık kutusu değil PADDING kutusu.
   Düğme 38×38 ama 1 px kenarlığı olduğu için padding kutusu 36×36;
   inset:-3px ölçtüğümde 41,5 px çıktı, 44 değil. 36 + 4 + 4 = 44 için
   -4px gerekiyor. Noktasal taramayla doğrulandı.
   Alanın sol kenarı 303 px'te, başlık 295 px'te bitiyor — 9 px açık var. */
.consent-close::after {
  content: "";
  position: absolute;
  inset: -4px;
}

/* ============================================================
   11) 901-981 px BANDINDA MENÜ TAŞMASI
   Paket 14 öncesinden beri var olan bir hata; denetim raporunda 900 ve
   960 px'i ölçüp aradaki bandı atlamışım. 62 sayfanın hepsinde geçerli.

   Ölçüm: .navbar-inner display:flex, gap 32 px, justify-content
   space-between. Üç çocuğu logo 170 + bağlantılar 575 + CTA 124 px,
   iki gap 64 px → içerik 933 px istiyor. 901 px ekranda kullanılabilir
   alan 869 px. Esnek öğeler min-content'in altına inemediği için
   "Randevu Al" düğmesi ekranın 49 px dışına taşıyor ve sayfa yatay
   kayıyor.

   Sınır tek tek ölçüldü: 949 px ve altında yatay kaydırma var; 950-965
   arasında kaydırma yok ama CTA sağ kenar boşluğunu yiyor (966 px'te
   sağ boşluk 16 px'e, yani soldakiyle eşit hâle geliyor). Yani menünün
   düzgün durması için GERÇEK yerleşim alanı en az 965 px olmalı.

   ÜST SINIR NEDEN 965 DEĞİL 981: medya sorgusu kaydırma çubuğunu sayıyor,
   yerleşim alanı saymıyor. Tarayıcıda ölçüldü — 15 px'lik klasik çubukla
   medya sorgusu 920 px görürken yerleşim alanı 905 px kalıyor. macOS'ta
   çubuk üste biniyor ve fark sıfır, Windows/Linux'ta 15-17 px.

   Sınır 965'te kalsaydı YATAY KAYDIRMA yine olmazdı (ölçüldü), ama klasik
   çubuklu sistemlerde pencere 966-981 px iken sağ kenar boşluğu 1-10 px'e
   düşerdi — soldaki 16 px iken. Yani 950-965 aralığında macOS'ta düzelttiğim
   sıkışmanın aynısı orada sürerdi. 965 + 17 = 982; kural 981'de bitiyor ve
   iki sistemde de boşluk her genişlikte 16/16 oluyor.

   Bedeli: üste binen çubuğu olan sistemlerde (macOS) 966-981 px arası
   bağlantılar gereksiz yere 6 px daha yakın duruyor. space-between üç grubu
   yine tam genişliğe yaydığı için fark güç fark ediliyor.

   Bu bantta bağlantı iç boşluğu 14 → 8 px, gap 32 → 20 px:
   933 → 825 px. 901 px'te 869 px'lik alana 44 px payla sığıyor.
   space-between artan boşluğu zaten dağıttığı için menü seyrek durmuyor.

   Seçici yalnız üst düzey 7 bağlantıyı tutuyor; açılır menüdeki 27
   bağlantı (.mega-sub içinde, sınıfsız) etkilenmiyor.
   ============================================================ */

@media (min-width: 901px) and (max-width: 981px) {
  .navbar-inner {
    gap: 20px;
  }

  .nav-links > .nav-item > .nav-link {
    padding-inline: 8px;
  }
}

/* ============================================================
   12) BLOG TABLOLARI IZGARA HÜCRESİNİ ŞİŞİRİYORDU
   Madde 11'i düzeltince ortaya çıktı: menünün 49 px'lik taşması
   bunun 8 px'ini gizliyormuş. Kendi başına ayrı bir hata.

   Ölçüm: 6 sütunlu karşılaştırma tablolarına min-width: 620px
   verilmiş (sütunlar okunabilir kalsın diye) ve yanına
   .post-table-wrap { overflow-x: auto } konmuş — yani tasarım
   zaten "dar ekranda tabloyu kendi içinde kaydır" diyor.

   Ama .post-inner okuma ızgarasının hücresinden taşıyordu:
   920 px'te hücre 587,6 px iken .post-inner 620 px oluyordu.
   Sarmalayıcı da ebeveyni kadar (620 px) genişleyince
   overflow-x hiç devreye girmiyordu; tablo sayfayı itiyordu.
   Yan etki olarak paragraflar da 620 px'e çıkıyordu.

   max-width: 100% hücrenin dışına çıkmasını engelliyor; sarmalayıcı
   hücreye oturuyor ve tablo TASARLANDIĞI GİBİ kendi içinde kayıyor.
   Tablo 620 px'te kalıyor, sütunlar sıkışmıyor.

   Etkilenen: 23 blog yazısından 3'ü (6 sütunlu tablosu olanlar).
   Diğer sayfalar etkilenmiyor — uygulama sayfalarının tabloları
   min-width: 0, akış kolonu zaten hücreye oturuyor.
   ============================================================ */

.post-inner {
  max-width: 100%;
}

/* ============================================================
   13) TIPOGRAFIK OLCEK — 7 BASAMAK
   Denetim raporu madde 10. Sitede 70 ayri boyut basamagi vardi
   (4.931 bildirim, %64'u 14 px altinda); tek sayfada 37 basamak
   render oluyordu.

   OLCEK (16 px kok):
     S1  .7rem  11.2   mikro etiket: rozet, eyebrow, ust bar, menu etiketi
     S2  .8rem  12.8   kucuk: menu baglantisi, buton, tablo basligi
     S3  .9rem  14.4   okunan metin: liste, tablo hucresi, aciklama
     S4  1rem   16     govde metni
     S5  1.2rem 19.2   giris metni, kart basligi
     S6  1.6rem 25.6   bolum alt basligi
     S7  2rem   32     buyuk baslik

   "D" YAKLASIMI (senin karar): mikro etiketler (chrome) kucuk kalir,
   OKUNAN metin en az S3'e cikar. Boylece okunabilirlik duzelirken
   menu genisligi etkilenmiyor ve 901-981 bandi oldugu gibi kaliyor.

   DOKUNULMAYANLAR:
     · clamp() ile tanimli duyarli basliklar (17 bildirim) — ekran
       genisligiyle olceklenen gosterim tipi.
     · <sup> atif rakamlari — tarayicinin kendi goreli kuculttmesi,
       tipografik gelenek.
     · 32 px ustu sabit boyutlar.

   NEREYE YAZILDI: tamami bu dosyada, kaynak CSS'lere dokunulmadi.
   Bu dosya kaskadda en sonda oldugu icin kurallar aynen uyguluyor.
   Geri almak icin bu blogu silmek yeterli.

   ISTISNALAR (olculerek konuldu, yorumlar olcek.py'de):
     .bolge-name  17.6 -> 16 (19.2 yapinca bolgeler.html 375 px'te 15 px kayiyordu)
     .acard-title 17.6 -> 16 (19.2 yapinca 4 kart basligi tasiyordu; 16'da
                              MEVCUT tasma da azaliyor: tasan baslik 2 -> 1)
     .btn-primary / .btn-secondary: iki dosyada farkli boyuttaydi, S3'te birlestirildi
   ============================================================ */

  .about-feature-text { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .about-feature-title { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .about-location { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .about-stat-lbl { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .about-tagline { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */
  .acard-link { font-size: 0.8rem }   /* 12.0 ↑ 12.8 */
  .acard-title { font-size: 1rem }   /* 17.6 ↓ 16.0 */
  .ax-decide { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .ax-decide th { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .ax-lead { font-size: 1rem }   /* 16.8 ↓ 16.0 */
  .bcard-excerpt { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .bcard-title { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */
  .bio-content h2 { font-size: 1.6rem }   /* 28.0 ↓ 25.6 */
  .bio-content p { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .bio-edu-name { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .bio-edu-school { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .bio-edu-title { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .bio-edu-year { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .blog-card-excerpt { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .blog-card-meta { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .blog-card-title { font-size: 1.2rem }   /* 18.4 ↑ 19.2 */
  .bolge-hero-p { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .bolge-intro-txt { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .bolge-name { font-size: 1rem }   /* 17.6 ↓ 16.0 */
  .bolge-sub { font-size: 0.8rem }   /* 12.0 ↑ 12.8 */
  .btn-call { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-cta-wa { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .btn-dark { font-size: 0.8rem }   /* 13.12 ↓ 12.8 */
  .btn-google-reviews { font-size: 0.8rem }   /* 12.48 ↑ 12.8 */
  .btn-google-reviews-arrow { font-size: 0.8rem }   /* 11.2 ↑ 12.8 */
  .btn-maps { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-maps-lg { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-primary { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .btn-primary { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-proc-tel { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-proc-wa { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-secondary { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .btn-secondary { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-text { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-uygulama-tel { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-uygulama-wa { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .btn-wa { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .btn-wa-faq { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-wa-footer { font-size: 0.8rem }   /* 12.48 ↑ 12.8 */
  .btn-wa-lg { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .btn-wa-lg2 { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .btn-whatsapp-contact { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .ccard-badge-txt { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .ccard-body { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .ccard-italic { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .coming-text { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .complaints-sub { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .congress-location { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .congress-name { font-size: 1rem }   /* 16.8 ↓ 16.0 */
  .congress-note { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .congress-year { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .consent-actions button,.consent-media-placeholder button { font-size: 0.8rem }   /* 12.48 ↑ 12.8 */
  .consent-always { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .consent-banner-copy a,.consent-policy-links a { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .consent-banner-copy p { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .consent-category p { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .consent-close { font-size: 1.6rem }   /* 23.2 ↑ 25.6 */
  .consent-intro { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .consent-media-placeholder span { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .consent-policy-links { font-size: 0.9rem }   /* 12.16 ↑ 14.4 */
  .consent-reopen { font-size: 0.8rem }   /* 11.2 ↑ 12.8 */
  .contact-item-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .contact-item-value { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .cs-ext p { font-size: 0.9rem }   /* 14.88 ↓ 14.4 */
  .cs-ext-btn { font-size: 0.9rem }   /* 14.08 ↑ 14.4 */
  .cs-ext-label { font-size: 0.9rem }   /* 10.88 ↑ 14.4 */
  .ct-event-loc { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .ct-event-name { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .ct-year { font-size: 1.6rem }   /* 24.0 ↑ 25.6 */
  .faq-a { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .faq-q-text { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .footer-copy { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .footer-desc { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .footer-disclaimer { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .footer-info-val { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .footer-legal-links a,.footer-legal-links button { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .footer-links a { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .footer-location { font-size: 0.9rem }   /* 12.0 ↑ 14.4 */
  .footer-role { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .harita-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .harita-panel-h2 { font-size: 1.6rem }   /* 24.0 ↑ 25.6 */
  .harita-value { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .hero-id-rating { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .hero-id-role { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .hero-infobox { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .hero-photo-placeholder p { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .hero-stat-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .hero-stat-link { font-size: 0.8rem }   /* 11.2 ↑ 12.8 */
  .ig-cta { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .ig-disclaimer { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .ig-post-icon { font-size: 1.6rem }   /* 24.0 ↑ 25.6 */
  .ig-setup-note { font-size: 0.8rem }   /* 12.0 ↑ 12.8 */
  .iletisim-info-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .mega-footer a { font-size: 0.8rem }   /* 12.0 ↑ 12.8 */
  .membership-desc { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .membership-name { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */
  .nav-cta { font-size: 0.8rem }   /* 12.48 ↑ 12.8 */
  .nav-dropdown a { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .nav-link { font-size: 0.8rem }   /* 13.12 ↓ 12.8 */
  .orn-answer { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .orn-body p { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .orn-cta a { font-size: 0.9rem }   /* 14.08 ↑ 14.4 */
  .orn-grid figcaption { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .orn-note { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .orn-rel a { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .orn-seri a { font-size: 0.9rem }   /* 13.92 ↑ 14.4 */
  .orn-seri span { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .post-author-note { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .post-cta p { font-size: 1.2rem }   /* 21.6 ↓ 19.2 */
  .post-defbox { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .post-disclaimer { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .post-faq summary { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .post-fig figcaption { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .post-inner h2 { font-size: 1.6rem }   /* 24.0 ↑ 25.6 */
  .post-inner li { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .post-sources-list { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .post-steps li { font-size: 0.9rem }   /* 14.88 ↓ 14.4 */
  .post-steps li::before { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .proc-after-text-desc { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .proc-after-text-title { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .proc-does-list li { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .proc-does-title { font-size: 0.9rem }   /* 12.0 ↑ 14.4 */
  .proc-editorial-note { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .proc-faq-q { font-size: 1rem }   /* 16.8 ↓ 16.0 */
  .proc-lead { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .proc-p { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .proc-related-links a { font-size: 0.9rem }   /* 13.28 ↑ 14.4 */
  .proc-related-title { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .proc-risk-lede { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  .proc-risk-title { font-size: 0.9rem }   /* 12.0 ↑ 14.4 */
  .proc-risk-urgent p { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .proc-sources li { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  .proc-sources-note { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  .proc-sources-title { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  .proc-step-desc { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .proc-step-num { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */
  .proc-step-title { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .proc-who-list li { font-size: 0.9rem }   /* 14.0 ↑ 14.4 */
  .proc-who-title { font-size: 0.9rem }   /* 12.0 ↑ 14.4 */
  .randevu-step-desc { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .randevu-step-num { font-size: 1.2rem }   /* 20.0 ↓ 19.2 */
  .secim-box h2 { font-size: 1.6rem }   /* 24.0 ↑ 25.6 */
  .secim-box p { font-size: 1rem }   /* 15.68 ↑ 16.0 */
  .topbar-item { font-size: 0.7rem }   /* 11.52 ↓ 11.2 */
  .uk-desc { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .uk-title { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */
  .usc-item { font-size: 0.9rem }   /* 13.6 ↑ 14.4 */
  .usc-name { font-size: 1.2rem }   /* 20.0 ↓ 19.2 */
  .usc-role { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  .uygulama-subtitle { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  body.cs-blog .cs-care-steps li::before { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  body.cs-blog .cs-sources .post-src-disclaimer { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  body.cs-blog .cs-sources .post-src-note { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  body.cs-blog .cs-sources summary small { font-size: 0.9rem }   /* 10.88 ↑ 14.4 */
  body.cs-blog .cs-sources summary span { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  body.cs-blog .cs-sources summary::after { font-size: 1.2rem }   /* 21.6 ↓ 19.2 */
  body.cs-blog .post-inner h3 { font-size: 0.9rem }   /* 14.72 ↓ 14.4 */
  body.cs-blog .post-meta { font-size: 0.7rem }   /* 10.88 ↑ 11.2 */
  body.cs-blog .post-ozet li span:first-child { font-size: 1.2rem }   /* 20.0 ↓ 19.2 */
  body.cs-blog .post-ozet-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  body.cs-blog .post-table th,body.cs-blog .post-table td { font-size: 0.9rem }   /* 13.44 ↑ 14.4 */
  body.cs-blog .post-table tr:first-child th { font-size: 0.9rem }   /* 11.52 ↑ 14.4 */
  body.cs-encyclopedia .art-faq summary,body.cs-blog .post-faq summary { font-size: 1.2rem }   /* 18.4 ↑ 19.2 */
  body.cs-encyclopedia .art-hero .crumb { font-size: 0.7rem }   /* 10.88 ↑ 11.2 */
  body.cs-encyclopedia .art-hero .lede { font-size: 1rem }   /* 16.8 ↓ 16.0 */
  body.cs-encyclopedia .art-related .rel-links a { font-size: 1rem }   /* 16.8 ↓ 16.0 */
  body.cs-encyclopedia .cs-hero-meta span { font-size: 0.7rem }   /* 10.88 ↑ 11.2 */
  body.cs-pilot .cs-info-card p { font-size: 0.9rem }   /* 14.88 ↓ 14.4 */
  body.cs-pilot .cs-info-card strong { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  body.cs-pilot .cs-info-card::before { font-size: 0.9rem }   /* 14.08 ↑ 14.4 */
  body.cs-pilot .cs-rail-label,body.cs-pilot .cs-section-label { font-size: 0.7rem }   /* 10.56 ↑ 11.2 */
  body.cs-pilot .cs-rail-note { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  body.cs-pilot .cs-reading-rail a { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
  body.cs-procedure .proc-answer-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  body.cs-procedure .proc-byline { font-size: 0.9rem }   /* 12.8 ↑ 14.4 */
  body.cs-procedure .proc-does-title,body.cs-procedure .proc-who-title,body.cs-procedure .proc-risk-title { font-size: 0.9rem }   /* 10.88 ↑ 14.4 */
  body.cs-procedure .proc-faq-q { font-size: 1.2rem }   /* 18.4 ↑ 19.2 */
  body.cs-procedure .proc-ozet li { font-size: 1rem }   /* 16.32 ↓ 16.0 */
  body.cs-procedure .proc-ozet li span:first-child { font-size: 1.2rem }   /* 20.8 ↓ 19.2 */
  body.cs-procedure .proc-ozet-label { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
  body.cs-procedure .proc-sources-list { font-size: 1rem }   /* 15.2 ↑ 16.0 */
  body.cs-procedure .quick-box .proc-facts { font-size: 0.9rem }   /* 13.12 ↑ 14.4 */
  body.cs-procedure .quick-box .proc-facts caption { font-size: 0.9rem }   /* 11.2 ↑ 14.4 */
@media (max-width:640px) {
    .post-table { font-size: 0.9rem }   /* 12.48 ↑ 14.4 */
    body.cs-blog .post-table td::before { font-size: 0.9rem }   /* 9.92 ↑ 14.4 */
    body.cs-blog .post-table.cs-key-value-table th { font-size: 0.9rem }   /* 10.88 ↑ 14.4 */
}

/* ============================================================
   14) OLCEKTE KALAN SECICILER (homepage-refresh.css)
   p18'de bir stil dosyasi atlanmisti: /assets/homepage-refresh.css
   (5.697 bayt, YALNIZ index.html cagiriyor, kaskadta 3. sirada).
   duzeltme.css ondan SONRA yuklendigi icin p18'in kurallari onu zaten
   eziyordu; kapsam disi kalan yalnizca SADECE o dosyada tanimli seciciler.

   Uc kural yeterli. Olculerek secildi:
     .acard-badge  8,32 -> 11,2  (sitedeki en kucuk yazi; rozet, S1)
     .ccard-title  17,6 -> 19,2  (adim disiydi; tasma kontrol edildi, yok)
     .hero-stat-val 12,48 -> 14,4 (adim disiydi)

   BILEREK YAPILMAYANLAR — olctum, p18 bunlari zaten dogru hale getirmis:
     .acard-title  ≤560'ta zaten 16 (adim uzerinde)
     .hero-stat-label / .hero-stat-link  zaten 14,4 — genel esleme bunu
       12,8'e DUSURECEKTI, yani okunabilirligi geriletecekti. Dokunulmadi.
   ============================================================ */

.ccard-title { font-size: 1.2rem }   /* 17.6 ↑ 19.2 */

@media (max-width: 560px) {
  .acard-badge { font-size: .7rem }   /* 8.32 ↑ 11.2 */
  .hero-stat-val { font-size: .9rem }   /* 12.48 ↑ 14.4 */
}


/* ============================================================
   15) YASAL SAYFALAR (legal-pages.css)
   Yuklemeden onceki son kontrolde 62 sayfanin cagirdigi TUM stil
   dosyalarini tek tek saydim; iki tane daha ciktI:
     /assets/legal-pages.css        3 sayfa (cerez, gizlilik, kvkk)
     /assets/uygulamalar-sade.css   1 sayfa — icinde font-size YOK, temiz.

   legal-pages.css'te 6 adim disi boyut vardi. Bu sayfalar KVKK, gizlilik
   ve cerez metinleri — gercekten okunan yerler, govde metni 14,08 px'ti.

     .legal-hero .eyebrow           11,52 -> 11,2   (eyebrow, S1)
     .legal-hero p                  14,72 -> 14,4
     .legal-card h3                 15,2  -> 16
     .legal-card p / li             14,08 -> 14,4   ← govde metni
     .legal-table th / td           12,48 -> 14,4   ← tablo hucreleri

   .legal-updated'a kural YAZILMADI: uc sayfada da .legal-card icindeki bir
   <p> ve .legal-card p (0,1,1) daha ozgul; 14,4'u zaten oradan aliyor.
   legal-pages.css kaskadta duzeltme.css'ten ONCE yuklendigi icin bu kurallar
   sorunsuz uyguluyor.
   ============================================================ */

.legal-hero .eyebrow { font-size: .7rem }   /* 11.52 ↓ 11.2 */
.legal-hero p { font-size: .9rem }   /* 14.72 ↓ 14.4 */
.legal-card h3 { font-size: 1rem }   /* 15.2 ↑ 16 */
.legal-card p,
.legal-card li { font-size: .9rem }   /* 14.08 ↑ 14.4 */
.legal-table th,
.legal-table td { font-size: .9rem }   /* 12.48 ↑ 14.4 */

/* ============================================================
   16) OKUMA KOLONU GENISLIGI  (denetim madde 11 / bulgu T13)

   RAPORDAKI SAYI YANLISTI, DUZELTILDI.
   Raporda "satir basina 78-91 karakter" yazmistim ve "68ch" onermistim.
   Karakter karakter olcunce gercek deger cikti:
       uygulama sayfasi 1180 px : kutu 817 px, satir basina 103-117, ortanca 110
   Hata sebebi: ch birimini ortalama karakter genisligi sanmisim. DM Sans'ta
   1ch (yani "0" glifi) 10,95 px, ortalama Turkce karakter ise 7,08 px —
   ch, gercegin 1,55 KATI. Klasik "65-75ch" tavsiyesi tek aralikli fontlar icin.
   Raporun onerisi uygulansaydi kolon 817 -> 744 px olurdu, yani 105 karakter;
   hicbir sey degismezdi.

   DOGRU DEGER: 75 karakter icin 75/1,55 = 48ch.
   Piksel yerine ch kullanildi, cunku punto degisince karakter sayisi sabit kalsin:
       16 px sayfalarda   kutu 525 px -> ortanca 71-74 karakter
       14,4 px yasal syf. kutu 473 px -> ortanca 72-73 karakter
   Sabit piksel (531 px) denendi ve ELENDI: yasal sayfalarda 14,4 px punto
   yuzunden ortanca 79-82 karakter cikiyordu.

   KAPSAM: yalniz AKAN METIN. Kunye tablosu, karar tablolari, ozet kutulari,
   kaynak listesi ve gorsel kutularin KENDISI genis kaliyor — raporun kurali.
   Gorsel kutularda (proc-answer, proc-risk-contra, secim-box) kutunun degil
   ICINDEKI paragrafin genisligi sinirlandi.

   .post-defbox'a DOKUNULMADI: zemini ve cercevesi olan bir kutu ama metni
   dogrudan icinde (ayri <p> yok), yani daraltmak kutuyu daraltirdi. Tek oge,
   96 karakter, vurgulu blok — oldugu gibi birakildi.

   .proc-lead AYRI YAZILDI: content-reading.css'te "body.cs-procedure .proc-lead
   { max-width: 650px }" var (ozgulluk 0,2,1) ve dusuk ozgullukteki kurali
   eziyordu. Ayni ozgullukle yazildi. (Ilginc not: uygulama.css'te zaten
   ".proc-lead { max-width: 48ch }" varmis ama 650px kurali onu eziyormus.)

   Mobil etkilenmiyor: kutu zaten 341 px, 48ch (525 px) baglamiyor.
   Bedeli: sayfa boyu %5 uzuyor (satirlar kisaldigi icin).
   ============================================================ */

.proc-p,
.proc-risk-lede,
.ax-lead,
.post-inner > p,
.legal-card > p,
.legal-note > p,
.bio-content > p,
.cat-intro,
.proc-answer > p,
.proc-risk-contra > p,
.secim-box > p {
  max-width: 48ch;
}

/* content-reading.css'teki 650px kuralini gecmek icin esit ozgulluk */
body.cs-procedure .proc-lead {
  max-width: 48ch;
}


/* ============================================================
   17) MOBİL EYLEM ÇUBUĞU  (20 Eylül 2026)

   Ekranın altında sabit duran üç düğme: Ara · Yol Tarifi · WhatsApp.
   YALNIZ ≤900 px'te görünür — 900 px, hamburger menünün belirdiği
   sınırdır (uygulama.css: @media(max-width:900px){.hamburger{display:flex}}).
   901 px ve üstünde kural hiç devreye girmez; masaüstü etkilenmez.

   NEDEN: uygulama sayfaları mobilde 15.126 px (~19 ekran). O 19 ekran
   boyunca kalıcı tek eylem 50×50'lik WhatsApp balonuydu; "ara" ve
   "yol tarifi" hiçbir yerde kalıcı değildi.

   ÇAKIŞMA YÖNETİMİ (hepsi ölçülerek kondu):
     · .wa-float   → ≤900 px'te gizlenir. Aksi hâlde çubuğun üstüne
                     binerdi (arkadaşın sitesinde Chaty balonu "Ara"
                     düğmesinin %21'ini örtüyor; aynı hataya düşmeyelim).
     · .consent-reopen → mobilde gizlenir (footer'daki eşdeğeri kalıyor).
     · .consent-banner   → çubuğun üstüne kaldırılır.
     · body padding-bottom → sayfanın sonu çubuğun altında kalmaz.
     · @media print       → çubuk kâğıda basılmaz.

   RENK: WhatsApp düğmesi #188741 + beyaz = 4,58:1 (AA geçer).
   Ham #25D366 üzerine beyaz 1,98:1 olurdu; kullanılmadı.
   Ara/Yol Tarifi: #1C1A18 üzerine #F8F6F3 = 15,8:1.

   ETİKETLER: 0.7rem = 11,2 px = ölçeğin S1 basamağı. Mikro etiket
   kalıbına uyar; dokunma hedefi etiket değil 64 px'lik kutudur.

   ÖLÇÜM: her düğme 375 px'te 125×64, 360'ta 120×64, 320'de 106×64.
   ============================================================ */

.cs-actionbar { display: none; }

@media (max-width: 900px) {

  .cs-actionbar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 600;
    background: #F8F6F3;
    border-top: 1px solid #E4DED7;
    box-shadow: 0 -10px 30px -20px rgba(28, 26, 24, .45);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .cs-actionbar a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 64px;
    padding: 6px 4px;
    color: #1C1A18;
    background: #F8F6F3;
    text-decoration: none;
    text-align: center;
  }

  .cs-actionbar a + a { border-left: 1px solid #E4DED7; }

  .cs-actionbar .cs-ab-ic {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 22px;
  }

  .cs-actionbar svg { width: 22px; height: 22px; fill: currentColor; display: block; }

  .cs-actionbar .cs-ab-lb {
    font-size: 0.7rem;
    line-height: 1.1;
    letter-spacing: .04em;
    font-weight: 500;
    white-space: nowrap;
  }

  .cs-actionbar .cs-ab-wa {
    background: #188741;
    color: #fff;
    border-left-color: #188741;
  }

  /* Yüzen balon çubukla çakışmasın — çubuk zaten onun işini görüyor */
  .wa-float { display: none !important; }

  /* Yüzen "Çerez Tercihleri" düğmesi mobilde GİZLENİR.
     İlk denemede onu çubuğun üstüne (64 px yukarı) kaldırmıştım; ölçünce
     hero'daki "+90 533 761 01 82" düğmesinin üstüne oturduğu çıktı —
     o düğmeye ulaşım %96'dan %71'e düşüyordu (nokta taraması).
     Gizlemek güvenli: aynı işi gören <button data-open-consent>
     footer'da 61 sayfanın HEPSİNDE var, ölçülerek doğrulandı.
     Yan fayda: sayfa sonundaki "Çerez Tercihleri" çift görünümü de kalkıyor. */
  .consent-reopen { display: none; }

  /* Çerez bildirimi çubuğun üstünde kalsın */
  .consent-banner { bottom: calc(64px + env(safe-area-inset-bottom, 0px) + 0.55rem); }

  /* Sayfanın sonu çubuğun altında kalmasın */
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
}

@media print { .cs-actionbar { display: none !important; } }


/* ============================================================
   18) ÇEREZ BİLDİRİMİ — MOBİLDE ŞERİT  (20 Eylül 2026)

   Bildirim mobilde 357x340 px yer kaplıyordu: 812 px'lik ekranın %42'si.
   Instagram'dan gelen ziyaretçi sayfayı ilk olarak bunun arkasından görüyor.

   ÖLÇÜLEN DAĞILIM (375 px):
     üç düğme ALT ALTA (3x44 + 2x8.8)   150 px   <- asıl şişkinlik
     açıklama (4 satır)                  89 px
     iç boşluk (18.4 x 2)                37 px
     başlık                              26 px
     politika bağlantısı                 19 px
     bloklar arası boşluk                16 px

   NE DEĞİŞTİ: yerleşim ve punto. Düğmeler yan yana alındı, boşluklar
   sıkıldı, açıklama bir basamak küçüldü (14.4 -> 12.8).
   METNİN KENDİSİNE, SEÇENEKLERE VE İŞLEYİŞE DOKUNULMADI —
   "Kabul Et / Reddet / Tercihler" üçü de aynı yerde, aynı işlevde.
   Yasal duruş birebir aynı kalıyor.

   DOKUNULMAYANLAR (bilerek):
     · Düğme yüksekliği 44 px'te kaldı (p15'te oraya çıkarılmıştı).
     · Metnin kendisi, üç seçenek ve JS işleyişi aynı.

   YAN FAYDA: "Çerez politikasını inceleyin" bağlantısı 19 px'lik bir
   dokunma hedefiydi ve 61 sayfanın HEPSİNDE görünüyordu — denetim
   raporundaki T10'un en büyük tek kalemi. padding/negatif margin ile
   44 px'e çıkarıldı; görünen konumu değişmiyor.
   ============================================================ */

@media (max-width: 900px) {

  .consent-banner { padding: 14px; gap: 10px; }

  /* Başlık 16 -> 14.4 (S3), açıklama 14.4 -> 12.8 (S2), satır aralığı 1.55 -> 1.45.
     ÖLÇÜM: kazancın tamamı açıklamanın 4 satırdan 3 satıra düşmesinden geliyor.
       14.4 px  -> 4 satır, kutu 217 px
       12.8 px  -> 3 satır, kutu 187 px   <- eşik burada
       11.2 px  -> 3 satır, kutu 177 px   (10 px için bir basamak daha küçülmeye değmez)
     12.8 px bu kutudaki düğme etiketleriyle aynı basamak; kutu kendi içinde
     tek dile geliyor. Ölçeğin S3 (14.4) alt sınırı OKUNAN metin içindir;
     bu bir bildirim metni, gövde metni değil. Kontrast eşiği değişmiyor
     (ikisi de 18.66 px altı = normal metin, 4.5:1). */
  .consent-banner-copy strong { margin-bottom: 2px; font-size: 0.9rem; }

  .consent-banner-copy p { font-size: 0.8rem; line-height: 1.45; }

  /* Üç düğme yan yana. 375 px'te ~103 px, 320 px'te ~88 px genişlik. */
  .consent-actions { grid-template-columns: repeat(3, 1fr); gap: 6px; }

  .consent-actions button {
    min-height: 44px;
    padding-inline: 4px;
    font-size: 0.8rem;
    white-space: nowrap;
  }

  /* Politika bağlantısı: 19 -> 45 px, görünen konum değişmeden.
     Satır kutusu 19 px; 13 px padding ile 45 px oluyor, negatif margin
     görsel boşluğu eski hâline döndürüyor (p14'teki footer telefon tekniği).
     Alt padding 3 px kadar düğme satırına taşıyor ama düğmeler DOM'da
     sonra geldiği için üstte kalıyor: üç düğmenin de ulaşılabilirliği
     %100 ölçüldü, bağlantının kendisi %95. */
  .consent-banner-copy > a {
    display: inline-block;
    padding-block: 13px;
    margin-block: -13px;
  }
}
