/* ============================================================
   escEmlak — "Modern Portal" temasi
   Renkler layout'ta :root uzerine basilir (bkz. TemaPalet).
   --p  ana renk      --p2 ana renk acik
   --a  aksan         --a2 aksan koyu
   --ink metin        --soft yumusak zemin
   ============================================================ */

:root{
  --line:#e6ecf2; --muted:#64748b; --bg:#fff;
  /* 146 — YUZEY JETONLARI. Tema dosyalari bunlari degistirerek koyu
     surum uretiyor; taban.css'te artik sabit beyaz zemin YOK.

     NEDEN: koyu tema denemesinde kartlar, suzgec sutunu ve acilir
     listeler beyaz kutu olarak kaliyordu. Sebep 53 yerde dogrudan
     "background:#fff" yazmasiydi; tema dosyasi bunlarin her birini tek
     tek ezmek zorundaydi ve yeni bir bilesen eklendiginde unutuluyordu
     (ayni hata 140'ta para birimi secicisinde yasandi).

     ACIK TEMADA HICBIR SEY DEGISMIYOR: varsayilan degerler eskisiyle
     birebir ayni.

     --yuzey    kart, panel, girdi, acilir liste zemini
     --ustu     FOTOGRAFIN ya da koyu bandin ustundeki ogeler; koyu
                temada da acik kalir (fav dugmesi, galeri oku, EIDS
                rozeti). --yuzey ile ayni olmamalari bu yuzden.
     --nav-zemin  yapisik ust bar (yari saydam) */
  --yuzey:#fff; --ustu:#fff; --nav-zemin:rgba(255,255,255,.93);
  /* ZIT YUZEY: sayfanin tersi. Ipucu balonu ve karsilastirma cubugu
     gibi "uyari kutusu" hissi veren ogeler icin. Eskiden --ink zemin
     olarak kullaniliyordu; koyu temada --ink ACIK oldugu icin beyaz
     kutunun icine beyaz yazi geliyordu. Ikisi CIFT: zemin degisince
     yazi da degismeli. */
  --ters:#0f172a; --ters-yazi:#fff;
  /* 162 — VURGU ZEMININ USTUNDEKI YAZI ve MARKA RENGININ METIN HALI.
     Ikisi de koyu temada tek tek yamanan bir hata sinifini kapatiyor.

     --a-yazi : background:var(--a) olan her seyin yazi rengi.
                Acik temada beyaz; ALTIN/SARI gibi acik bir vurgu
                renginde beyaz okunmuyor (olculdu: .arama .tab.on
                kontrast 2.17) ve tema bunu koyuya cekiyor.
                gece/tema.css bu satiri dort ayri bilesende
                (.btn, .sayfalama a.on, .rozet, .kat:hover .ic) tek
                tek yaziyordu; artik bir kez yaziyor.

     --p-metin: marka renginin METIN olarak kullanilabilir hali.
                --p koyu temada ZEMIN rengi; onu yazi diye kullanan
                her yer koyu uzerine koyu yaziyordu (olculdu:
                .sayac b kontrast 1.06 — sayilar tamamen gorunmez).
                Tema bunu --a'ya cekiyor.

     ACIK TEMADA HICBIR SEY DEGISMIYOR: varsayilanlar eskisiyle
     birebir ayni. */
  --a-yazi:#fff; --p-metin:var(--p);
  /* 150 — SAYFANIN DIBI (altbilgi). Sabit lacivert yaziliydi ve
     koyu temada sayfanin geri kalani notr koyuyken altbilgi MAVI
     kaliyordu: koyu ama BASKA bir koyu, yama gibi duruyordu.
     Acik temalarda deger aynen eskisi. */
  --dip:#0b1f2e; --dip-yazi:#93a9b8;
  /* Uzun govde metni: --ink basliklar icin, bu paragraflar icin.
     Sabit #334155 yaziliydi ve koyu temada gorunmuyordu. */
  --ink-yumusak:#334155;
  --r:14px;
  --sh:0 1px 3px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06);
  --sh2:0 8px 30px rgba(15,23,42,.14);
  /* Navbar yuksekligi ve logo boyu birbirine bagli: logo bardan buyuk
     olamaz. Sticky yan sutunlar da bara yapismasin diye --yapisik'i
     buradan turetiyor - bar degisince elle guncellenecek sayi kalmasin. */
  --nav-h:86px; --logo-h:65px;
  --yapisik:calc(var(--nav-h) + 20px);
}

*{box-sizing:border-box;margin:0;padding:0}
body{
  font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* --- butonlar --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;
  font-weight:600;font-size:15px;line-height:1;padding:14px 22px;border-radius:10px;background:var(--a);color:var(--a-yazi);transition:.2s}
.btn:hover{background:var(--a2);transform:translateY(-1px);color:var(--a-yazi)}
.btn-o{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn-o:hover{background:var(--soft);border-color:var(--a);color:var(--a);transform:none}
.btn-p{background:var(--p)}
.btn-p:hover{background:var(--p2)}
.btn-sm{padding:10px 16px;font-size:14px}

/* --- bolum --- */
.sec{padding:76px 0}
.sec.soft{background:var(--soft)}
.eyebrow{display:inline-block;font-weight:700;font-size:12px;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:var(--a);margin-bottom:12px}
.h2{font-size:clamp(26px,3.4vw,38px);font-weight:700;letter-spacing:-.02em;line-height:1.2}
.lead{color:var(--muted);margin-top:10px;max-width:620px}
/* Cok paragrafli tanitim yazisi tek satir gibi sikismasin. */
.hakkimizda-metin{line-height:1.75;max-width:720px}

/* Duz metin sayfalari (cerez politikasi gibi). Okuma genisligi 760px'te
   tutuluyor - 1200px'lik wrap icinde satirlar goz takip edemeyecek kadar
   uzuyordu. Basliklar burada sinifsiz <h2> olarak yazilabilsin diye
   bicimlendirme elemana veriliyor. */
.metin-sayfa{max-width:760px;line-height:1.75;color:var(--ink)}
.metin-sayfa h2{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:30px 0 10px}
.metin-sayfa h2:first-child{margin-top:0}
.metin-sayfa p{margin-bottom:14px}
.metin-sayfa ul{margin:0 0 14px 20px}
.metin-sayfa li{margin-bottom:6px}
.metin-sayfa a{color:var(--a);text-decoration:underline}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.bos{text-align:center;padding:56px 20px;color:var(--muted);background:var(--soft);border-radius:var(--r)}

/* --- topbar / nav --- */
.topbar{background:var(--p);color:rgba(255,255,255,.78);font-size:13.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:42px;gap:16px;flex-wrap:wrap}
.topbar b,.topbar a:hover{color:#fff}
.topbar .tb-r{display:flex;gap:18px;align-items:center}
/* Sosyal simgeler. Sabit 16px kutu: metin ("Instagram", "Facebook")
   ust barin yarisini yiyor ve dar ekranda satiri tasiriyordu. */
.tb-sim{display:grid;place-items:center;width:16px;height:16px;flex:none}
.tb-sim svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}
/* "Ilan Gonder" — ust barda ayirt edilsin ama gurultu yapmasin.
   Sabit dolgu ve cerceve: modul acilip kapandiginda bar yuksekligi
   degismiyor, menude kayma olmuyor. */
.tb-vurgu{border:1px solid rgba(255,255,255,.34);border-radius:999px;
  padding:4px 12px;line-height:1.4;white-space:nowrap;transition:.16s}
.tb-vurgu:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
/* Cekmecede tam genislikte dugme. */
.menu-gonder .btn{width:100%;justify-content:center}
nav.ust{position:sticky;top:0;z-index:50;background:var(--nav-zemin);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav.ust .wrap{display:flex;align-items:center;gap:28px;min-height:var(--nav-h)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.02em}
.logo .mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--p),var(--a));
  display:grid;place-items:center;color:#fff;font-size:16px;flex:none}
/* Genis logolarda width:auto tek basina tasmayi engellemiyor; max-width +
   object-fit ile dar ekranda oran bozulmadan kuculsun. */
.logo img{height:var(--logo-h);width:auto;max-width:100%;object-fit:contain}
.menu{display:flex;gap:26px;margin-left:auto;font-weight:500;font-size:15px;list-style:none;align-items:center}
.menu > li{position:relative}
.menu a{display:block;padding:26px 0;border-bottom:2px solid transparent;transition:.2s}
.menu a:hover,.menu a.on{color:var(--a);border-color:var(--a)}
.menu .alt{position:absolute;top:100%;left:0;min-width:200px;background:var(--yuzey);border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--sh);padding:8px;display:none;list-style:none;z-index:60}
.menu > li:hover .alt{display:block}
.menu .alt a{padding:9px 12px;border:0;border-radius:7px;font-size:14.5px}
.menu .alt a:hover{background:var(--soft)}
.nav-tel{margin-left:auto}

/* Hamburger: uc cizgi. Metin karakteri (☰) yerine span'ler.
   Eskiden acilinca X'e donuyordu; cekmecenin kendi kapatma dugmesi
   eklenince ekranin sag ustunde IKI X gorunur oldu. Artik cekmece
   acilinca hamburger gizleniyor (bkz. mobil blogundaki .nav-ac.acik). */
.nav-ac{display:none;background:none;border:0;cursor:pointer;margin-left:auto;
  width:44px;height:44px;padding:10px;position:relative;z-index:70}
.nav-ac span{display:block;height:2px;width:100%;background:currentColor;border-radius:2px}
.nav-ac span + span{margin-top:5px}

/* Cekmece basligi ve alt iletisim bloğu yalnizca mobilde gorunur. */
/* 159 — .menu-ara da bu listede: cekmecedeki arama kutusu masaustunde
   yatay navigasyona sizip logo altinda basibos bir kutu olarak
   duruyordu (olculdu). Uc parca da YALNIZCA mobil cekmecenin ogesi. */
.menu-bas,.menu-alt,.menu-ara{display:none}

.menu-perde{position:fixed;inset:0;z-index:55;background:rgba(8,15,26,.5);
  opacity:0;transition:opacity .3s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  /* Kapanis animasyonu suresince perde gorunmez ama hala ekranda; pointer-events
     olmadan o ~300 ms boyunca altindaki butonlarin tiklamalarini yutuyor. */
  pointer-events:none}
.menu-perde.acik{opacity:1;pointer-events:auto}

/* --- hero / slider --- */
.hero{position:relative;color:#fff;overflow:hidden}
.hero .slayt{position:relative;padding:96px 0 130px;background-size:cover;background-position:center}
.hero .slayt.varsayilan{background:linear-gradient(120deg,var(--p) 0%,var(--p2) 55%,var(--a2) 130%)}
.hero .slayt::before{content:"";position:absolute;inset:0;background:rgba(8,20,32,var(--karartma,.45))}
.hero .slayt.varsayilan::before{background:none}
.hero .slayt::after{content:"";position:absolute;inset:0;opacity:.14;
  background-image:radial-gradient(circle at 18% 22%,#fff 1.4px,transparent 1.4px),radial-gradient(circle at 78% 68%,#fff 1.4px,transparent 1.4px);
  background-size:44px 44px,64px 64px}
.hero .wrap{position:relative;z-index:2}
.hero.orta{text-align:center}
.hero.orta .hero-ic{margin:0 auto}
.hero.sag{text-align:right}
.hero h1{font-size:clamp(32px,5vw,54px);font-weight:800;letter-spacing:-.03em;line-height:1.1;max-width:17ch}
.hero.orta h1,.hero.orta p{max-width:none}
.hero p{margin-top:16px;font-size:18px;color:rgba(255,255,255,.86);max-width:52ch}
.hero-btn{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.hero.orta .hero-btn{justify-content:center}

/* --- arama --------------------------------------------------
   Birlesik arama cubugu: alanlarin kendi kutusu YOK, tek govde
   icinde dikey ayraclarla bolunur. Kutucuk yigini yerine tek
   parca gorunur — hover/odak alani yumusak zeminle vurgular.
   ------------------------------------------------------------ */
.arama{margin-top:38px;background:var(--yuzey);border-radius:22px;box-shadow:var(--sh2);
  padding:8px;text-align:left;color:var(--ink)}

/* Sekmeler: segment kontrolu (kaydirmali hap) */
.arama .tabs{display:inline-flex;gap:3px;margin:6px 6px 10px;padding:4px;
  background:var(--soft);border-radius:999px}
.arama .tab{padding:9px 20px;border-radius:999px;font-weight:600;font-size:14px;line-height:1;color:var(--muted);
  cursor:pointer;border:0;background:transparent;transition:.2s;white-space:nowrap}
.arama .tab.on{background:var(--a);color:var(--a-yazi);box-shadow:0 2px 8px rgba(0,0,0,.14)}
.arama .tab:not(.on):hover{color:var(--ink)}

.alanlar{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;gap:2px;
  padding:0 2px 2px;align-items:stretch}

.alan{position:relative;min-width:0;display:flex;align-items:center;gap:11px;
  padding:11px 15px;border-radius:16px;transition:background .18s,box-shadow .18s}
.alan:hover{background:var(--soft)}
.alan:focus-within{background:var(--soft);box-shadow:inset 0 0 0 1.5px var(--a)}

/* Ayrac: her alanin soluna. Komsu alan vurgulaninca gizlenir ki
   yuvarlak zeminin kenarina cizgi yapismasin. */
.alan + .alan::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:30px;background:var(--line);transition:opacity .18s}
.alan:hover::before,.alan:focus-within::before,
.alan:hover + .alan::before,.alan:focus-within + .alan::before{opacity:0}

.alan-ikon{width:19px;height:19px;flex:none;color:var(--a);stroke:currentColor;
  fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.alan-govde{min-width:0;flex:1}

.alan label{display:block;font-weight:600;font-size:10.5px;line-height:1;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);margin-bottom:5px;cursor:pointer}
/* display:block şart — inline-block bırakılırsa alanlar satır kutusunda
   taban çizgisine hizalanıp aşağı kayıyor ve satır gereksiz uzuyor. */
.alan input,.alan select{display:block;width:100%;border:0;background:transparent;
  padding:0;font-size:15px;line-height:1.25;color:var(--ink);appearance:none;
  text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
/* Dokunma hedefi. Select yalnizca 19px'lik yazi satiri kadardi; kutunun
   bos kalan yerine basinca hicbir sey olmuyordu, ozellikle mobilde secim
   yapmak zordu. Negatif margin ile yerlesimi bozmadan tiklanabilir alani
   buyutuyoruz — etiketin "for" bagi zaten var, o da aciyor. */
.alan select{cursor:pointer;padding:7px 18px 7px 0;margin:-7px 0}
/* 16px alti yazi iOS'ta odaklaninca sayfayi zorla yakinlastiriyor. */
@media(max-width:900px){
  .alan select,.alan input{font-size:16px}
  .alan select{padding:11px 18px 11px 0;margin:-11px 0}
}
.alan input:focus,.alan select:focus{outline:0}
.alan input::placeholder{color:#9aa8b8}
/* NOT: bu sınıfın adı ".sec" OLMAMALI — ".sec" temada bölüm (section)
   anlamında kullanılıyor ve padding:76px 0 taşıyor. */
.alan.acilir::after{content:"";position:absolute;right:15px;bottom:17px;width:6px;height:6px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg);pointer-events:none}

.arama .btn{border-radius:16px;padding:0 28px;font-size:15.5px;gap:9px;align-self:stretch}
.arama .btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}

/* --- sayaclar --- */
.sayac{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-radius:var(--r);
  overflow:hidden;margin-top:-52px;position:relative;z-index:5;box-shadow:var(--sh)}
.sayac > div{background:var(--yuzey);padding:26px 22px;text-align:center}
.sayac b{display:block;font-size:30px;font-weight:800;color:var(--p-metin);letter-spacing:-.02em}
.sayac span{font-size:13.5px;color:var(--muted)}

/* --- kategori --- */
.kats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.kat{background:var(--yuzey);border:1.5px solid var(--line);border-radius:var(--r);padding:24px 14px;text-align:center;transition:.22s;display:block}
.kat:hover{border-color:var(--a);transform:translateY(-4px);box-shadow:var(--sh)}
.kat .ic{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;background:var(--soft);
  display:grid;place-items:center;font-size:22px;transition:.22s;color:var(--p-metin)}
.kat:hover .ic{background:var(--a);color:var(--a-yazi)}
.kat b{display:block;font-size:14.5px;font-weight:650}
.kat span{font-size:12.5px;color:var(--muted)}

/* --- ilan kartlari --- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid.g2{grid-template-columns:repeat(2,1fr)}
.grid.g3{grid-template-columns:repeat(3,1fr)}

/* --- sonuç çubuğu ve görünüm seçici --- */
.sonuc-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-bottom:18px;flex-wrap:wrap}
.sonuc-adet{font-size:14.5px;color:var(--muted)}
.sonuc-adet b{color:var(--ink);font-size:16px;font-weight:700}
.gorunum{display:flex;gap:2px;background:var(--soft);border:1px solid var(--line);
  border-radius:10px;padding:3px}
.gorunum button{width:36px;height:32px;border:0;background:transparent;cursor:pointer;
  border-radius:7px;display:grid;place-items:center;color:var(--muted);transition:.16s}
.gorunum button:hover{color:var(--ink);background:var(--yuzey)}
.gorunum button.on{background:var(--a);color:var(--a-yazi)}
.gorunum svg{width:14px;height:14px;fill:currentColor}

/* --- liste görünümü ---
   Kart normalde dikey (foto üstte). Listede yatayda: foto solda sabit
   genişlikte, içerik sağda. Kartın kendi işaretlemesi değişmiyor,
   yalnızca yerleşim. */
.grid.liste{grid-template-columns:1fr;gap:14px}
.grid.liste .kart{flex-direction:row}
.grid.liste .kart:hover{transform:none;box-shadow:var(--sh)}
.grid.liste .kart .foto{width:280px;height:auto;min-height:190px;flex:none}
.grid.liste .kart .govde{display:flex;flex-direction:column;justify-content:center}
.grid.liste .kart .alt{border-top:0;border-left:1px solid var(--line);background:transparent;
  flex-direction:column;align-items:flex-start;justify-content:center;min-width:190px}

@media(max-width:900px){
  /* Dar ekranda üç sütun okunmuyor; iki sütuna, listede tekrar dikey karta. */
  .grid.g3{grid-template-columns:repeat(2,1fr)}
  .grid.liste .kart .foto{width:190px;min-height:150px}
  .grid.liste .kart .alt{display:none}
}
@media(max-width:560px){
  .grid.g3,.grid.g2{grid-template-columns:1fr}
  .grid.liste .kart{flex-direction:column}
  .grid.liste .kart .foto{width:100%;height:210px;min-height:0}
}

/* --- yogun gorunum (vitrin) ---
   Masaustunde 4-6 sutun, mobilde 2. Listede oldugu gibi kartin kendi
   isaretlemesi degismiyor, yalnizca yerlesim ve olculer.

   Sutun sayisi SABIT DEGIL. Ilan listesinde solda 290px filtre var,
   anasayfada ve favorilerde yok; repeat(4,1fr) yazsaydik ya filtreli
   sayfada kartlar sikisir ya filtresiz sayfada sagda bosluk kalirdi.
   auto-fill kapsayici ne kadarsa o kadar sutun aciyor: 1200px'lik
   sarmalayicida filtreyle 4, filtresiz 5.

   Secici .grid.yogun ile basliyor cunku temalar .kart .foto ve
   .kart .govde .fiyat gibi kurallari kendi tema.css'inde eziyor
   (bkz. vitrin, harita); tek sinifla yazilsa tema sonradan yuklendigi
   icin yogun olculer tutmazdi. */
.grid.yogun{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.grid.yogun .kart{border-radius:10px}
/* 6px kalkis kucuk kartta zipliyor gibi duruyor. */
.grid.yogun .kart:hover{transform:translateY(-3px)}
.grid.yogun .kart .foto{height:150px}
.grid.yogun .kart .govde{padding:12px 13px}
.grid.yogun .kart .fiyat{font-size:17px}
.grid.yogun .kart .fiyat small{font-size:12px}
.grid.yogun .kart h3{font-size:13.5px;margin:5px 0 4px}
.grid.yogun .kart .konum{font-size:12px}
.grid.yogun .kart .ozellikler{margin-top:10px;padding-top:10px}
.grid.yogun .kart .ozellikler b{font-size:12.5px}
.grid.yogun .kart .ozellikler span{font-size:10px}
.grid.yogun .kart .alt{padding:10px 13px}
.grid.yogun .kart .alt .avatar{width:26px;height:26px;font-size:11px}
.grid.yogun .kart .alt b{font-size:12px}
.grid.yogun .kart .alt small{font-size:11px}
/* Rozet 11px yazi + 7/10 dolgu ile 200px'lik kartin yarisini kapliyor
   ve ikinci rozet alt satira tasiyordu. */
.grid.yogun .rozet{font-size:10px;padding:5px 7px}
.grid.yogun .medya-rozet{font-size:10px;padding:4px 6px;gap:4px}
.grid.yogun .medya-rozet svg{width:11px;height:11px}
.grid.yogun .fav-btn{width:29px;height:29px;top:8px;right:8px}
.grid.yogun .fav-btn svg{width:15px;height:15px}

@media(max-width:560px){
  /* Yogun gorunumun asil kazanci burada: telefonda tek sutun yerine iki
     kart, yani ekrana giren ilan sayisi ikiye katlaniyor. Sutun sayisi
     elle sabitleniyor - auto-fill'e birakilsa 190px esigi 375px'lik
     ekranda yine tek sutun verirdi. */
  .grid.yogun{grid-template-columns:repeat(2,1fr);gap:10px}
  .grid.yogun .kart .foto{height:118px}
  .grid.yogun .kart .govde{padding:10px}
  .grid.yogun .kart .fiyat{font-size:15px}
  .grid.yogun .kart h3{font-size:12.5px}
  .grid.yogun .kart .konum{font-size:11.5px}
  /* ~160px'lik kartta uc sutunluk ozellik seridi ve danisman satiri
     okunmuyor: "3+1" ile "480 m²" yan yana kirpiliyor. Fiyat, baslik ve
     konum kaliyor; ucu de detayda zaten var. */
  .grid.yogun .kart .ozellikler,.grid.yogun .kart .alt{display:none}
  .grid.yogun .rozet.one{display:none}
}
/* --- tablo gorunumu (liste duzeni) ---
   Portal tarzi satir listesi: foto, baslik, m², oda, fiyat, tarih, bolge.
   Kart izgarasiyla ayni anda basiliyor, gorunurlugu buradan yonetiliyor.

   Siralama SUNUCUDA: basliklar birer baglantı, tiklayinca sayfa yeniden
   geliyor. Tarayicida siralamak yanlis cevap verirdi — liste sayfali,
   JS yalnizca acik sayfadaki ilanlari siralayabilirdi. */
/* Gizle/goster YALNIZCA ilan listesinin tablo gorunumune ait. Bu kural
   once ".tablo-sar" uzerindeydi; oysa ".tablo-sar" asagida (bkz. "veri
   tablosu") her yerde kullanilan genel bir sarmalayici. Sonuc: proje
   detayindaki "Daire Secenekleri" tablosu HTML'de basiliyor ama
   display:none ile hic gorunmuyordu — musteri daire tiplerini giriyor,
   sitede yalnizca bos bir baslik cikiyordu. Anahtar kendi sinifina
   alindi; ".tablo-sar" yine yatay kaydirmayi veriyor. */
.ilan-tablo-sar{display:none}
.ilan-tablo-sar.acik{display:block}
/* Guvenlik agi: sutunlar sikisirsa sayfa degil TABLO yatayda kaysin. */
/* table-layout:fixed — sutun genislikleri asagidaki bildirimlerden okunuyor,
   icerikten degil. Otomatik yerlesimde denendi ve tutmadi: yuzdeler
   (width:1% / width:100%) toplami 104 ettigi icin tarayici hepsini
   oranlayarak kuculttu, "Oda" sutunu 131px olurken ilan basligina 183px
   kaldi. Sabit yerlesimde artan genislik width:auto olan tek sutuna,
   yani baslik sutununa gidiyor. */
.ilan-tablo{width:100%;min-width:620px;table-layout:fixed;border-collapse:collapse;
  background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r)}
.ilan-tablo th,.ilan-tablo td{padding:10px 12px;text-align:left;vertical-align:middle;
  border-bottom:1px solid var(--line)}
.ilan-tablo tbody tr:last-child td{border-bottom:0}

.ilan-tablo thead th{background:var(--soft);font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0}
.ilan-tablo thead th a{display:flex;align-items:center;gap:5px;padding:11px 10px;color:inherit}
.ilan-tablo thead th a:hover{color:var(--a);background:var(--yuzey)}
.ilan-tablo thead th.sirali{color:var(--a)}
.ilan-tablo thead th.t-sayi a,.ilan-tablo thead th.t-fiyat a{justify-content:center}
/* Ucgen ok: siralanmamis sutunda soluk asagi ok durur ki basilabilecegi
   belli olsun; yalnizca sirali sutunda ok gostermek "burasi tiklanir mi"
   sorusunu her sutun icin yeniden sordururdu. */
.ilan-tablo .ok{flex:none;width:0;height:0;border-left:4px solid transparent;
  border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.3}
.ilan-tablo .ok.asc{border-top:0;border-bottom:5px solid currentColor;opacity:1}
.ilan-tablo .ok.desc{opacity:1}

.ilan-tablo .t-foto{width:96px;min-width:96px;padding:8px 0 8px 10px}
.ilan-tablo .t-foto a{display:block;width:86px}
/* max-width:none SART. Genel kural img{max-width:100%}; otomatik yerlesimli
   tabloda hucrenin genisligi icerige, icerigin genisligi de hucreye
   bagli olunca dongu olusuyor ve tarayici gorseli 0'a indiriyordu —
   foto sutunu 96px yerine 10px cikiyordu. Sutun genisligi zaten sabit. */
.ilan-tablo .t-foto img{width:86px;height:65px;max-width:none;object-fit:cover;
  border-radius:6px;display:block}
.ilan-tablo .t-foto .yok{display:block;width:86px;height:65px;border-radius:6px;background:var(--soft)}
/* Tek width:auto sutun: sabit yerlesimde artan genisligin tamami buraya
   geliyor. 842px'lik sonuc sutununda ~280px eder. */
.ilan-tablo .t-baslik{width:auto;font-size:14px;font-weight:600;line-height:1.35}
/* Baslik en fazla iki satir: emlak basliklari cok uzun yaziliyor ve
   kirpilmazsa satir yuksekligi ilana gore degisip tabloyu dalgalandirir. */
.ilan-tablo .t-baslik a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden}
.ilan-tablo .t-baslik a:hover{color:var(--a)}
.ilan-tablo .t-sayi{width:76px;text-align:center;white-space:nowrap;font-size:13.5px;padding:10px 8px}
/* Fiyatta nowrap SART: "12.750.000 ₺" bolunurse sayi iki satira dagilir
   ve tablonun en cok bakilan sutunu okunmaz olur. */
.ilan-tablo .t-fiyat{width:130px;text-align:center;white-space:nowrap}
.ilan-tablo .t-fiyat b{font-size:15px;font-weight:800;color:var(--p-metin)}
.ilan-tablo .t-fiyat small{color:var(--muted);font-size:12px}
/* Tarih ve bolge SARABILIR ("03 Ağustos / 2026", "Bağlum / Güzelyurt").
   nowrap kalsaydi ikisi 240px isterdi ve o genislik basliktan cikardi. */
.ilan-tablo .t-tarih{width:88px;font-size:12.5px;color:var(--muted);padding:10px 8px}
.ilan-tablo .t-bolge{width:96px;font-size:13px;color:var(--muted);padding:10px 8px;
  overflow-wrap:break-word}
.ilan-tablo tbody tr:hover{background:var(--soft)}
/* One cikan satir — kartlardaki "Öne Çıkan" rozetinin tablodaki karsiligi. */
.ilan-tablo tbody tr.one{background:#f0fdf4}
.ilan-tablo tbody tr.one:hover{background:#dcfce7}
.soluk{color:var(--muted);font-size:13px}
/* Yalnizca ekran okuyucu icin: foto sutununun basligi gorsel olarak bos
   ama <th> bos birakilamaz. */
.gizli-yazi{position:absolute;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap}

@media(min-width:768px){
  /* Tablo aciksa yatay kart listesi cizilmiyor: ikisi birden gorunurse
     ayni 12 ilan sayfada iki kez listelenir. */
  .grid.liste{display:none}
}
/* 901-1100px en dar aralik: filtre hala 290px yer kapliyor ama ekran
   genis degil. Once tarih dusuyor — en az bilgi tasiyan sutun o.
   900'un altinda filtre zaten ustte toplaniyor, tabloya yer aciliyor. */
@media(max-width:1100px) and (min-width:901px){
  .ilan-tablo .t-tarih{display:none}
}
@media(max-width:767px){
  /* Telefonda yedi sutunlu tablo okunmuyor; liste duzeni yatay kartlara
     donuyor. Tabloyu yatay kaydirmaya birakmak, ziyaretcinin fiyati
     gormek icin her satirda saga kaydirmasi demekti. */
  .ilan-tablo-sar.acik{display:none}
}

.kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.25s;display:flex;flex-direction:column}
.kart:hover{transform:translateY(-6px);box-shadow:var(--sh2);border-color:transparent}
.kart .foto{position:relative;height:210px;background:var(--soft);overflow:hidden}
.kart .foto img{width:100%;height:100%;object-fit:cover;transition:.4s}
.kart:hover .foto img{transform:scale(1.05)}
.kart .foto .yok{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px}
.rozetler{position:absolute;top:12px;left:12px;display:flex;gap:6px;z-index:2;flex-wrap:wrap}
.rozet{background:var(--a);color:var(--a-yazi);font-weight:700;font-size:11px;line-height:1;padding:7px 10px;border-radius:6px;letter-spacing:.03em}
.rozet.koyu{background:var(--p)}
.rozet.one{background:#f59e0b}
/* 95 — video / 360 rozeti. Durum rozetleri sol üstte; bunlar sağ altta
   dursun ki fiyat ve "Satıldı" ile aynı köşeye yığılmasınlar. */
.medya-rozetler{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;z-index:2}
.medya-rozet{display:inline-flex;align-items:center;gap:5px;background:rgba(15,23,42,.72);
  color:#fff;font-weight:700;font-size:11px;line-height:1;padding:6px 9px;border-radius:6px;letter-spacing:.02em;
  backdrop-filter:blur(3px)}
.medya-rozet svg{width:13px;height:13px;fill:#fff}
.medya-rozet svg.ince{fill:none;stroke:#fff;stroke-width:1.8}
.kart .govde{padding:20px;flex:1}
/* Rengi --p: acik temada marka lacivertine oturuyor. Koyu temada
   fiyat kaybolur, o yuzden tema dosyasi bunu aksana cevirmeli
   (bkz. temalar/gece). */
.fiyat{font-size:22px;font-weight:800;color:var(--p-metin);letter-spacing:-.02em}
.fiyat small{font-size:14px;color:var(--muted);font-weight:500}
/* Baslik en fazla iki satir. Emlak ilanlarinin basliklari cok uzun
   yaziliyor ("BAGLUM EMLAKTAN LUX YAPILI GENIS KAT SECENEKLERI MEVCUT
   OLAN EMSALI OLMAYAN DAIRE"); kirpmayinca kartlar farkli boylarda
   oluyor ve izgara dagiliyor. Tam basligi detay sayfasi gosteriyor,
   ayrica title ile uzerine gelince baloncukta cikiyor. */
.kart h3{font-size:16px;font-weight:650;margin:8px 0 6px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:calc(2 * 1.35em)}
.kart h3 a:hover{color:var(--a)}
.konum{font-size:13.5px;color:var(--muted)}
.ozellikler{display:flex;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.ozellikler > div{flex:1;text-align:center;border-right:1px solid var(--line);padding:0 4px;min-width:0}
.ozellikler > div:last-child{border-right:0}
.ozellikler b{display:block;font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ozellikler span{font-size:11.5px;color:var(--muted);letter-spacing:.02em}
.kart .alt{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--soft);border-top:1px solid var(--line)}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--a));
  display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;line-height:1;flex:none;overflow:hidden}
/* object-position ust tarafa kaydirilir: portre fotograflarinda yuz genelde
   karenin ust ucte birindedir, "center" birakilirsa daire maskesi cenenin
   altini gosterip alni kirpar. */
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.kart .alt b{font-size:13.5px;font-weight:600;display:block}
.kart .alt small{color:var(--muted);font-size:12.5px}

/* --- projeler --- */
.projeler{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.proje{position:relative;border-radius:var(--r);overflow:hidden;min-height:260px;display:flex;align-items:flex-end;
  padding:26px;color:#fff;background:linear-gradient(135deg,var(--p2),var(--a2));background-size:cover;background-position:center}
.proje::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,24,38,.85),rgba(8,24,38,.05) 65%)}
.proje > div{position:relative;z-index:2}
.proje .durum{display:inline-block;background:var(--a);font-weight:700;font-size:11px;line-height:1;padding:6px 10px;border-radius:6px;margin-bottom:10px}
.proje h3{font-size:21px;font-weight:700}
.proje p{font-size:13.5px;color:rgba(255,255,255,.82);margin-top:4px}

/* --- danismanlar --- */
.ekip{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.uye{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:26px 20px;text-align:center;transition:.22s}
.uye:hover{border-color:var(--a);box-shadow:var(--sh);transform:translateY(-4px)}
.uye .pp{width:88px;height:88px;border-radius:50%;margin:0 auto 14px;overflow:hidden;
  background:linear-gradient(135deg,var(--p),var(--a));display:grid;place-items:center;color:#fff;font-weight:700;font-size:26px;line-height:1}
.uye .pp img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.uye b{font-size:16px;font-weight:650}
.uye .unvan{display:block;font-size:13px;color:var(--a);font-weight:600;margin-top:2px}
.uye small{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
.uye .sosyal{display:flex;justify-content:center;gap:8px;margin-top:14px}
.uye .sosyal a{width:32px;height:32px;border-radius:8px;background:var(--soft);display:grid;place-items:center;font-size:13px;transition:.2s}
.uye .sosyal a:hover{background:var(--a);color:var(--a-yazi)}

/* 106 — danisman profil satirlari (hizmet bolgesi / uzmanlik / deneyim).
   TABAN'DA, tema dosyasinda DEGIL: alanlar tema secimi ne olursa olsun
   dolduruluyor, isaretleme yalnizca 'ofis' temasinda bicimlenseydi
   musteri temasini degistirdiginde girdigi bilgi bicimsiz kalirdi
   (portal temasinda ogrenilen ders).

   Bos alan HIC SATIR CIZMIYOR — sayfa tarafinda kontrol ediliyor;
   "Uzmanlik: —" yazan bir kart bilgisiz kalmaktan kotudur. */
.dan-meta{display:grid;gap:5px;margin-top:12px;text-align:left;font-size:12.5px;color:var(--muted)}
.dan-meta div{display:flex;align-items:flex-start;gap:7px;line-height:1.4}
.dan-meta svg{width:14px;height:14px;flex:none;margin-top:1px;
  stroke:var(--a);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dan-meta b{font-weight:600;color:var(--ink)}

/* 106 — "Danisman Ol" cagri bandi. Harita bandiyla ayni kalibi
   kullaniyor ama TERS renkte: ikisi de anasayfada, ust uste iki ayni
   lacivert kutu birbirini yutuyordu. */
.katil-band{position:relative;border-radius:18px;overflow:hidden;background:var(--soft);
  border:1.5px solid var(--line);padding:44px 48px;display:flex;justify-content:space-between;
  align-items:center;gap:36px;flex-wrap:wrap}
/* 640px: baslik tek satirda kalsin ("Gayrimenkul danismani olarak bizimle
   calisin" 26px'te ~560px eder). 60ch denendi ve 518px'e dustugu icin
   baslik iki satira kiriliyordu; bandin sag yarisi da bos duruyordu.
   Paragraf kendi olcusunde kaliyor: 640px'lik satir okumak icin uzun. */
.katil-band .kb-ic{max-width:640px}
.katil-band p{max-width:58ch}
.katil-band .kb-et{display:inline-block;font-weight:700;font-size:11.5px;line-height:1;
  letter-spacing:.12em;text-transform:uppercase;color:var(--a);margin-bottom:10px}
.katil-band h3{font-size:26px;font-weight:750;letter-spacing:-.02em;line-height:1.25}
.katil-band p{color:var(--muted);margin-top:8px}
.katil-band .btn{flex:none}

/* --- 107 · sade (bagimsiz) sayfa ------------------------------
   Tek isi olan inis sayfalari icin: ust bar, menu, footer ve sabit
   iletisim butonu basilmiyor (bkz. _Layout'taki `sade`). Geriye
   yalnizca logo seridi, form ve ince bir kunye satiri kaliyor.

   Neden ayri bir duzen: reklamdan/QR'dan gelen aday siteyi gezmeye
   degil basvurmaya geliyor. Menu koymak, formu yarim birakip
   cikmasinin en kolay yolunu vermek demek.
   ------------------------------------------------------------ */
.sade-bas{background:var(--p);color:#fff}
.sade-bas .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:16px;min-height:72px;flex-wrap:wrap}
.sade-bas .logo{color:#fff}
.sade-bas .logo img{height:48px;width:auto;max-width:220px;object-fit:contain}
.sade-tel{font-size:14.5px;font-weight:600;color:rgba(255,255,255,.9);
  border:1.5px solid rgba(255,255,255,.32);border-radius:8px;padding:8px 14px;
  white-space:nowrap;transition:.16s}
.sade-tel:hover{background:var(--ustu);color:var(--p);border-color:#fff}

.sade-alt{background:var(--soft);border-top:1px solid var(--line);
  padding:20px 0;font-size:13px;color:var(--muted);margin-top:56px}
.sade-alt .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sade-alt a{color:var(--muted);text-decoration:underline}
.sade-alt a:hover{color:var(--a)}

/* Basvuru govdesi: tek sutun, okuma genisliginde. */
.basvuru{max-width:760px;margin:0 auto;padding:44px 20px 0}
.basvuru-bas{text-align:center;margin-bottom:32px}
.basvuru-bas h1{font-size:clamp(24px,3.4vw,32px);font-weight:800;letter-spacing:-.02em;line-height:1.2}
.basvuru-bas p{color:var(--muted);margin-top:10px;font-size:15.5px;line-height:1.6}
/* Sayfanin kendisi bir "kart": cevresi bos, form one cikiyor. */
.basvuru-kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh);padding:30px}
/* Guven satiri — formun ustunde, kisa. Uzun bir tanitim metni koymak
   sayfanin tek isini golgeler; ayrintiyi ofis kendi metninde anlatiyor. */
.basvuru-guven{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;
  margin-bottom:26px;font-size:13px;color:var(--muted)}
.basvuru-guven span{display:inline-flex;align-items:center;gap:7px}
.basvuru-guven svg{width:15px;height:15px;flex:none;stroke:var(--a);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Onay kutulari. Zorunlu olan ile istege bagli olan GORSEL OLARAK
   ayrilmiyor ama metinleri ayri: birini digerinin sarti gibi
   gostermek acik rizayi gecersiz kilar. */
.basvuru-onaylar{display:grid;gap:12px;margin:18px 0 20px;
  padding:16px;background:var(--soft);border-radius:10px}
.basvuru-onaylar label{display:flex;gap:10px;align-items:flex-start;
  font-size:13.5px;line-height:1.55;cursor:pointer;color:var(--ink)}
.basvuru-onaylar input{width:17px;height:17px;flex:none;margin-top:2px;
  accent-color:var(--a);cursor:pointer}
.basvuru-onaylar a{color:var(--a);text-decoration:underline}

.basvuru-basari{max-width:600px;margin:0 auto;text-align:center;
  background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:48px 30px}
.basvuru-basari .tik{width:62px;height:62px;margin:0 auto 18px;border-radius:50%;
  background:var(--a);display:grid;place-items:center}
.basvuru-basari .tik svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round}
.basvuru-basari h2{font-size:23px;margin-bottom:12px}
.basvuru-basari p{color:var(--muted);line-height:1.65}

@media(max-width:560px){
  .basvuru{padding:28px 16px 0}
  .basvuru-kart{padding:20px 16px;border-radius:10px}
  .basvuru-guven{gap:14px;margin-bottom:20px}
  .sade-bas .wrap{min-height:62px}
  .sade-bas .logo img{height:38px}
  .sade-alt{margin-top:36px}
}

/* 106 — "Danisman Ol" sayfasindaki kazanc listesi. */
.katil-liste{list-style:none;display:grid;gap:13px;margin-top:4px}
.katil-liste li{display:flex;gap:11px;align-items:flex-start;line-height:1.55;font-size:15px}
.katil-liste svg{width:19px;height:19px;flex:none;margin-top:3px;
  stroke:var(--a);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:900px){
  .katil-band{padding:30px 24px}
  .katil-band h3{font-size:22px}
  .katil-band .btn{width:100%}
}

/* --- guven seridi + istatistik bari ---------------------------
   97'de "Yatirim" temasina ozel yazilmisti, 106'da TABANA tasindi:
   Ofis temasi da ayni iki bileseni basiyor ve bicim tema dosyasinda
   kalsaydi markup'i olan ama stili olmayan bir sayfa cikardi.

   Isaretlemeyi anasayfa yalnizca bu iki temada render ediyor
   (bkz. Index.cshtml'deki zenginTema); baska bir temada bu kurallar
   hicbir seye uymaz, zarari yok.
   ------------------------------------------------------------ */
/* DIKKAT: burada display YOK. Bu iki blok dosyanin en altinda
   display:none ile basliyor ve YALNIZCA yatirim/ofis tema.css'i
   onlari aciyor; gerekce orada yazili. Buraya display:block
   yazmak seciciyi delip her temada gorunur yapardi. */
.guven-serit{background:var(--bg);border-bottom:1px solid var(--line)}
.guven-serit .gs-liste{display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:30px 0}
.guven-serit .gs{display:flex;align-items:center;gap:14px;padding:6px 26px;border-left:1px solid var(--line)}
.guven-serit .gs:first-child{border-left:0}
.guven-serit .gs-ikon{width:34px;height:34px;flex:0 0 34px;fill:none;stroke:var(--a);
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.guven-serit .gs b{display:block;font-size:15px;font-weight:700;color:var(--ink);line-height:1.25}
.guven-serit .gs span{display:block;font-size:12.5px;color:var(--muted);line-height:1.35;margin-top:2px}

.istatistik-wrap{padding:0 0 76px}
.istatistik-bar{background:var(--p);border-radius:var(--r);box-shadow:var(--sh2);
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:34px 20px}
.istatistik-bar .ist{display:flex;align-items:center;justify-content:center;gap:14px;
  padding:6px 18px;border-left:1px solid rgba(255,255,255,.12)}
.istatistik-bar .ist:first-child{border-left:0}
.istatistik-bar .ist-ikon{width:38px;height:38px;flex:0 0 38px;fill:none;stroke:var(--a);
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.istatistik-bar .ist b{display:block;font-size:30px;font-weight:800;color:#fff;
  letter-spacing:-.02em;line-height:1}
.istatistik-bar .ist span{display:block;font-size:13.5px;color:rgba(255,255,255,.72);margin-top:5px}

@media (max-width:900px){
  .guven-serit .gs-liste{grid-template-columns:repeat(2,1fr);gap:22px 0}
  .guven-serit .gs{border-left:0;padding:6px 16px}
  .istatistik-bar{grid-template-columns:repeat(2,1fr);gap:26px 0;padding:30px 16px}
  .istatistik-bar .ist{border-left:0}
  .istatistik-bar .ist:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)}
}
@media (max-width:520px){
  .guven-serit .gs-liste{grid-template-columns:1fr;gap:18px;padding:24px 0}
  .guven-serit .gs{justify-content:flex-start}
  .istatistik-bar{grid-template-columns:1fr 1fr}
  .istatistik-bar .ist{flex-direction:column;text-align:center;gap:8px}
  .istatistik-bar .ist b{font-size:26px}
}

/* --- harita bandi --- */
.harita-band{position:relative;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,var(--p),var(--p2));
  padding:52px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:36px;flex-wrap:wrap}
.harita-band::after{content:"";position:absolute;inset:0;opacity:.13;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:48px 48px}
.harita-band > *{position:relative;z-index:2}
.harita-band h3{font-size:29px;font-weight:750;letter-spacing:-.02em}
.harita-band p{color:rgba(255,255,255,.82);margin-top:8px;max-width:46ch}
.harita-band .btn{background:var(--ustu);color:var(--p)}
.harita-band .btn:hover{background:var(--soft)}

/* --- footer --- */
footer.alt{background:var(--dip);color:var(--dip-yazi);padding:64px 0 26px;margin-top:76px;font-size:14.5px}
.fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:40px}
footer.alt h4{color:#fff;font-size:15.5px;font-weight:650;margin-bottom:16px}
footer.alt ul{list-style:none;display:grid;gap:9px}
footer.alt a:hover{color:var(--a)}
footer.alt .logo{color:#fff;margin-bottom:14px}
.fbot{border-top:1px solid rgba(255,255,255,.09);margin-top:44px;padding-top:22px;
  display:flex;justify-content:space-between;font-size:13px;flex-wrap:wrap;gap:10px}

/* --- sayfa basligi --- */
.sayfa-bas{background:linear-gradient(120deg,var(--p),var(--p2));color:#fff;padding:46px 0}
.sayfa-bas h1{font-size:clamp(24px,3.2vw,34px);font-weight:750;letter-spacing:-.02em}
.sayfa-bas p{color:rgba(255,255,255,.78);margin-top:6px;font-size:15px}
.sayfa-bas .yol{font-size:13.5px;color:rgba(255,255,255,.66);margin-bottom:8px}
.sayfa-bas .yol a:hover{color:#fff}

/* --- liste duzeni: sol filtre + sag sonuclar --- */
.liste-duzen{display:grid;grid-template-columns:290px 1fr;gap:28px;align-items:start}
.filtre-ac{display:none;width:100%;margin-bottom:12px}
.filtre-govde{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:20px;position:sticky;top:var(--yapisik)}
/* Cekmece basligi, perdesi ve yapiskan alti yalnizca mobilde gorunur. */
.filtre-bas,.filtre-perde{display:none}
.fgrup{margin-bottom:18px}
.fgrup h4{font-weight:700;font-size:11.5px;line-height:1;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
/* font kisaltmasi KULLANMAYIN: "font: 14.5px/1.3 inherit" gecersizdir
   (inherit yalnizca declaration'in tamami olabilir), tarayici satiri komple
   atiyordu ve alanlar 14.5px yerine varsayilan 13.3px cikiyordu — mobilde
   de iOS'un 16px esiginin altinda kalip odaklaninca sayfayi zoomluyordu.
   Bu tuzak dosyanin genelinde 41 yerde daha vardi; hepsi longhand'e
   cevrildi. Aile zaten kalitiliyor, ayrica yazmaya gerek yok. */
.fgrup input[type=text],.fgrup input[type=number],.fgrup select{
  display:block;width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;
  font-size:14.5px;line-height:1.3;font-family:inherit;color:var(--ink);background:var(--yuzey)}
.fgrup select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 16px) 18px,calc(100% - 11px) 18px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}
.fgrup input:focus,.fgrup select:focus{outline:0;border-color:var(--a)}
.fgrup .ikili{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fgrup .ipucu{display:block;margin-top:7px;font-size:12px;color:var(--muted);line-height:1.45}
.secenekler{max-height:190px;overflow-y:auto;display:grid;gap:2px;padding-right:4px}
.secenekler::-webkit-scrollbar{width:6px}
.secenekler::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.onay{display:flex;align-items:center;gap:9px;padding:6px 4px;border-radius:7px;cursor:pointer;font-size:14px;transition:.15s}
.onay:hover{background:var(--soft)}
.onay input{width:16px;height:16px;accent-color:var(--a);cursor:pointer;flex:none}
.temizle{display:block;text-align:center;margin-top:10px;font-size:13.5px;color:var(--muted)}
.temizle:hover{color:var(--a)}

/* --- ilan detay --- */
.detay-duzen{display:grid;grid-template-columns:1fr 350px;gap:32px;align-items:start}
/* min-width:0 ZORUNLU — yoksa sayfanin tamami yatayda kayiyor.
   Grid ogesinin varsayilani min-width:auto'dur: oge, icerigin MIN
   genisliginin altina inemez. Kucuk fotograf seridi (.galeri-kucuk)
   16 fotografta 1814px istiyor; 1fr sutunu bunu karsilamak icin
   1200px'lik kabindan tasiyor ve icerideki her blok (baslik, aciklama,
   ozellik tablosu) sagdan disari kayiyor.
   Seritteki overflow-x:auto tek basina YETMEZ: o, seridin KENDI
   tasmasini cozer, grid sutununun genislemesini engellemez. */
.detay-duzen>*{min-width:0}
.galeri{margin-bottom:28px}
.galeri-buyuk{position:relative;border-radius:var(--r);overflow:hidden;background:var(--soft);aspect-ratio:16/10}
.galeri-buyuk img{width:100%;height:100%;object-fit:cover}
.galeri-buyuk.bos-foto{display:grid;place-items:center;color:var(--muted);font-size:14.5px}
.galeri-kucuk{display:flex;gap:10px;margin-top:10px;overflow-x:auto;padding-bottom:4px;scroll-behavior:smooth}
.galeri-kucuk img{width:104px;height:74px;object-fit:cover;border-radius:9px;cursor:pointer;
  border:2px solid transparent;transition:.18s;flex:none;opacity:.62}
.galeri-kucuk img:hover{border-color:var(--a);opacity:1}
.galeri-kucuk img.on{border-color:var(--a);opacity:1}

/* --- galeri gezinme --- */
.galeri-buyuk img{cursor:zoom-in}
.g-ok{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;cursor:pointer;
  border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);display:grid;place-items:center;
  box-shadow:0 2px 12px rgba(0,0,0,.22);transition:.18s;z-index:3;opacity:0}
.galeri-buyuk:hover .g-ok,.g-ok:focus-visible{opacity:1}
.g-ok:hover{background:var(--ustu);transform:translateY(-50%) scale(1.07)}
.g-ok.onceki{left:12px}
.g-ok.sonraki{right:12px}
.g-ok svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* Galeride yeni fotograf ilk kez aciliyorsa sunucuda o an uretiliyor ve
   birkac yuz milisaniye surebiliyor. Mevcut fotografi hafifce soldurmak
   "tiklandi, geliyor" bilgisini veriyor; onbellektekilerde hic gorunmez. */
.galeri-buyuk.yukleniyor img{opacity:.5;transition:opacity .12s}
.galeri-buyuk img{transition:opacity .18s}

.g-sayac{position:absolute;right:12px;bottom:12px;z-index:3;background:rgba(15,23,42,.72);color:#fff;
  font-weight:600;font-size:12.5px;line-height:1;padding:7px 11px;border-radius:999px;letter-spacing:.02em}

/* Dokunmatikte hover yok - oklar hep gorunur.
   Genislik sorgusu da var: hover:none her ortamda guvenilir raporlanmiyor,
   dar ekranda okun gizli kalmasi kabul edilemez. */
@media(hover:none),(max-width:860px){ .g-ok{opacity:1} }

/* Mobilde galeri. Ana gorsel .wrap'in 20px'lik yan boslugu yuzunden dar
   kaliyor ve ilan vitrini zayif duruyordu; kenardan kenara aliniyor ve
   4/3'e cekiliyor - dikey alanin daha cogunu gorsel kapliyor.
   Kucuk onizlemeler 104px'te ekranin ucte birini yiyordu, 64px'e indi.
   Bu blok galeri kurallarinin SONUNDA durmali: ustte olsaydi asagidaki
   temel kurallar ezer, ozellikle .g-ok'un display'i geri gelirdi. */
@media(max-width:700px){
  /* Kenardan kenara. 100vw + translateX yerine negatif margin: vw kaydirma
     cubugunu sayip saymadigina gore degisiyor ve bazi tarayicilarda yatay
     tasma yapiyor. .wrap yan boslugu 20px, birebir onu geri aliyoruz. */
  .galeri-buyuk{margin-left:-20px;margin-right:-20px;
    border-radius:0;aspect-ratio:4/3}
  .galeri-kucuk{gap:6px;margin-top:8px;
    scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .galeri-kucuk img{width:64px;height:48px;border-radius:6px;border-width:1.5px;
    scroll-snap-align:start;opacity:.75}
  /* Oklar bilerek gizlenmiyor: ustteki kural dokunmatikte gorunur
     yapiyor, parmakla kaydirma tek basina kesfedilebilir degil. */
  .g-ok{width:38px;height:38px}
  .g-ok.onceki{left:8px}
  .g-ok.sonraki{right:8px}
}

/* --- tam ekran gorunum --- */
.g-tam{position:fixed;inset:0;z-index:9500;background:rgba(8,12,20,.94);display:none;
  align-items:center;justify-content:center;padding:28px}
.g-tam.acik{display:flex}
.g-tam img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.g-tam .g-kapat{position:absolute;top:18px;right:20px;width:42px;height:42px;border:0;cursor:pointer;
  border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1}
.g-tam .g-kapat:hover{background:rgba(255,255,255,.26)}
.g-tam .g-ok{opacity:1;background:rgba(255,255,255,.16);color:#fff}
.g-tam .g-ok:hover{background:rgba(255,255,255,.3)}
.g-tam .g-sayac{left:50%;right:auto;transform:translateX(-50%);bottom:20px}

/* 140 — para birimi secici (ust bar) ve fiyatin altindaki karsilik.
   Karsilik ayri satirda ve SOLUK: asil fiyatla yarismamali, "≈"
   isareti de bunun bir tahmin oldugunu soyluyor. */
/* Ust bar KOYU zeminli: acilir liste de oyle. Tarayicinin varsayilan
   beyaz kutusu barin ortasinda yama gibi duruyordu.
   color-scheme:dark — acilan listenin kendisi de koyu ciziliyor. */
/* Oku KENDIMIZ ciziyoruz (appearance:none): yoksa tarayici hem kutuyu
   hem oku kendi renkleriyle basiyor. Acilan listeyi de option kurali
   koyulastiriyor; color-scheme tek basina Chrome'da yetmedi. */
.kur-secim,.dil-secim{appearance:none;-webkit-appearance:none;
  border:1px solid rgba(255,255,255,.34);background-color:rgba(255,255,255,.08);color:#fff;
  border-radius:999px;padding:4px 26px 4px 11px;font-family:inherit;font-size:13px;
  line-height:1.4;cursor:pointer;color-scheme:dark;transition:.16s;
  background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.75) 50%),linear-gradient(135deg,rgba(255,255,255,.75) 50%,transparent 50%);
  background-position:calc(100% - 14px) 11px,calc(100% - 10px) 11px;
  background-size:4px 4px,4px 4px;background-repeat:no-repeat}
.kur-secim:hover,.dil-secim:hover{background-color:rgba(255,255,255,.18);border-color:#fff}
.kur-secim:focus-visible,.dil-secim:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* Acilan liste: koyu bar ile ayni dunyada kalsin. */
.kur-secim option,.dil-secim option{background:#16233a;color:#fff}
/* Cekmecedeki kopya acik zeminde: koyu kurallar oradan geri aliniyor. */
.menu-kur .kur-secim,.menu-kur .dil-secim{border:1.5px solid var(--line);color:var(--ink);
  background-color:var(--yuzey);border-radius:9px;padding:9px 30px 9px 12px;font-size:14.5px;color-scheme:light;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 16px) 18px,calc(100% - 11px) 18px;
  background-size:5px 5px,5px 5px}
.menu-kur .kur-secim:hover,.menu-kur .dil-secim:hover{border-color:var(--a);background-color:var(--yuzey)}
.menu-kur .kur-secim option,.menu-kur .dil-secim option{background:var(--yuzey);color:var(--ink)}
.kur-karsilik{display:block;font-size:12.5px;font-weight:600;color:var(--muted);
  margin-top:2px;letter-spacing:0}
.fiyat-kart .kur-karsilik{color:rgba(255,255,255,.82)}
/* Cekmecedeki kopya: ust bar mobilde gizli oldugu icin secici oraya da
   konuyor. Iki secici de ayni data-birim dugmelerini kullaniyor; JS
   hangisine basilirsa ikisini birden guncelliyor. */
.menu-kur{align-items:center;justify-content:space-between;gap:12px}
.menu-kur-etiket{font-size:13.5px;color:var(--muted);font-weight:600}

/* --- paylas --- */
/* Şerit YAZISIZ simgelerden oluşuyor ve SARMIYOR: sığmayan düğmeyi
   paylas.js "Diğer" menüsüne taşıyor. Ölçüm .paylas-serit'in
   scrollWidth/clientWidth farkına bakıyor — overflow:hidden ve
   min-width:0 bu yüzden şart, süs değil.
   "Bağlantıyı kopyala" şeridin dışında: menüye hiç düşmüyor. */
.paylas{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
.paylas .etiket-yazi{font-size:13px;color:var(--muted);margin-right:2px;flex:0 0 auto}
.paylas-kutu{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 240px}
.paylas-serit{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  overflow:hidden;min-width:0;flex:0 1 auto}
.paylas-kutu .paylas-oge,.paylas-diger-dugme,.paylas-kopya{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;
  width:38px;height:38px;padding:0;border:1.5px solid var(--line);background:var(--yuzey);
  color:var(--ink);border-radius:9px;font-weight:600;font-size:13.5px;line-height:1;
  cursor:pointer;transition:.16s}
.paylas-kutu .paylas-oge:hover,.paylas-diger-dugme:hover,.paylas-kopya:hover{
  border-color:var(--a);color:var(--a)}
.paylas-kutu svg{width:17px;height:17px;flex:0 0 auto;stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.paylas-serit .paylas-ad{display:none}
/* display veren sinif, [hidden] icin gelen tarayici kuralini eziyor:
   gizli kalmasi gereken dugme ve menu boyle geri aciliyordu. */
.paylas-kutu .paylas-oge[hidden],.paylas-diger[hidden],.paylas-menu[hidden]{display:none}
.paylas-kutu svg.dolu{fill:currentColor;stroke:none}

.paylas-diger{position:relative;flex:0 0 auto}
.paylas-diger-dugme{width:auto;padding:0 12px}
.paylas-diger-dugme svg{width:14px;height:14px}
.paylas-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:210px;
  display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--yuzey);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh2)}
.paylas-kutu .paylas-menu .paylas-oge{width:100%;height:36px;justify-content:flex-start;
  padding:0 10px;border:0;border-radius:8px}
.paylas-kutu .paylas-menu .paylas-oge:hover{background:var(--soft);color:var(--a)}

/* Simge düğmede yazı yok; kopyalama geri bildirimini balon veriyor. */
.paylas-kopya{position:relative}
.paylas-balon{position:absolute;right:0;bottom:calc(100% + 8px);z-index:40;
  width:max-content;max-width:min(260px,70vw);padding:7px 10px;border-radius:8px;background:var(--ters);
  color:var(--ters-yazi);font-size:12.5px;font-weight:600;line-height:1.35;text-align:left;
  opacity:0;visibility:hidden;transform:translateY(4px);transition:.16s;pointer-events:none}
.paylas-balon.acik{opacity:1;visibility:visible;transform:none}
.ilan-no{font-size:13px;color:var(--muted);margin-top:10px}
.ilan-no b{color:var(--ink);font-weight:650;letter-spacing:.02em}
/* 110 — EIDS blogu (ilan detayinda YAN SUTUN karti). Solda logo, sagda metin.
   Blok yalnizca ilanda EIDS numarasi varsa ciziliyor.
   Dar ekranda alt alta gecmiyor: logo 64px'e iniyor ve metin yaninda
   kaliyor — tek satirlik bir cumlenin altina dusen logo "yukleniyor" gibi
   duruyordu. */
.eids-blok{display:flex;align-items:center;gap:16px}
.eids-blok p{margin:0;font-size:15px;line-height:1.5}
.eids-logo{flex:0 0 auto;width:96px;height:auto}
/* 114 — iddia ile "kimin beyani" notu alt alta dursun; ikisi de dogrudan
   .eids-blok'un cocugu olsaydi flex onlari logonun yanina yan yana dizerdi. */
.eids-metin{display:flex;flex-direction:column;gap:6px}
.eids-not{color:var(--muted);font-size:13px !important}
@media(max-width:520px){.eids-logo{width:64px}.eids-blok{gap:12px}.eids-blok p{font-size:14px}.eids-not{font-size:12.5px !important}}
/* 121 — yan sutundaki kart. Sutun 350px: ana govdedeki olculer burada
   buyuk kaciyor, logo ve yazi bir tik kuculuyor. Kart cercevesi
   danisman/talep kartlariyla ayni ki sutun tek bir seri gibi dursun. */
.eids-kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.eids-kart h3{font-size:17px;font-weight:700;margin-bottom:12px}
.eids-belge{font-size:14px;color:var(--muted);margin-bottom:14px;padding-bottom:14px;
  border-bottom:1px solid var(--line)}
.eids-belge b{color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.02em}
.eids-kart .eids-logo{width:62px}
.eids-kart .eids-blok{gap:13px;align-items:flex-start}
.eids-kart .eids-blok p{font-size:13.5px;line-height:1.45}
.eids-kart .eids-not{font-size:12.5px !important}

/* 122 — fotografin uzerindeki EIDS rozeti (kart + ilan galerisi).
   SOL ALTTA: sag alt medya rozetlerinin (video/360), ust koseler de
   durum etiketi ile favori dugmesinin yeri.
   Beyaz daire + golge: logo koyu zeminli fotografta kenarini
   kaybediyordu. pointer-events:none — rozet karta giden tiklamayi
   yutmasin.

   Secici kasitli olarak .kart .foto ile basliyor: rozet de bir <img>
   ve tek sinifla yazilsaydi `.kart .foto img` (genislik %100, object-fit
   cover) onu ezip fotografin tamamina yayardi. Ayni sebeple tema
   dosyalarindaki hover buyutmesi de burada geri aliniyor. */
.kart .foto .eids-foto-rozet,.galeri-buyuk .eids-foto-rozet{position:absolute;left:10px;bottom:10px;
  z-index:2;width:38px;height:38px;padding:2px;border-radius:50%;background:var(--ustu);
  object-fit:contain;box-shadow:0 2px 8px rgba(15,23,42,.28);pointer-events:none;transition:none}
.kart:hover .foto .eids-foto-rozet{transform:none}
.grid.yogun .kart .foto .eids-foto-rozet{width:28px;height:28px;left:8px;bottom:8px}
.grid.liste .kart .foto .eids-foto-rozet{width:34px;height:34px}
.galeri-buyuk .eids-foto-rozet{width:58px;height:58px;left:16px;bottom:16px;padding:3px}
@media(max-width:560px){.galeri-buyuk .eids-foto-rozet{width:44px;height:44px;left:12px;bottom:12px}}

.blok{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:26px;margin-bottom:22px}
.blok h2{font-size:19px;font-weight:700;letter-spacing:-.01em;margin-bottom:16px}
.blok .metin{color:var(--ink-yumusak);line-height:1.75;font-size:15.5px}

/* 123 — kredi hesaplama. Alanlar kendi kutularinda: sayfanin genel .alan
   sinifi form ekranlari icin kurgulandi, ilan detayinda tek satirlik
   cerceveli kutular daha okunur duruyor.
   Sonuc seridi taksiti one cikariyor — ziyaretcinin baktigi tek sayi o;
   kalan uc kalem yaninda kucuk ve gri. */
.kredi-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.kredi-alan{display:flex;flex-direction:column;gap:6px;min-width:0}
.kredi-alan label{font-size:12.5px;font-weight:600;color:var(--muted)}
.kredi-alan input,.kredi-alan select{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:11px 13px;font-family:inherit;font-size:15.5px;font-weight:600;line-height:1.2;
  color:var(--ink);background:var(--yuzey);transition:.16s}
.kredi-alan input:focus,.kredi-alan select:focus{outline:0;border-color:var(--a)}
.kredi-ipucu{font-size:12px;color:var(--muted)}
.kredi-sonuc{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;
  background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px 20px}
.kredi-sonuc.sonuc-yok{opacity:.5}
.kredi-taksit{display:flex;flex-direction:column;gap:2px;margin-right:auto}
.kredi-taksit span{font-size:12.5px;font-weight:600;color:var(--muted)}
.kredi-taksit b{font-size:27px;font-weight:800;letter-spacing:-.02em;color:var(--a);line-height:1.1}
.kredi-kalem{display:flex;flex-direction:column;gap:2px}
.kredi-kalem span{font-size:12.5px;color:var(--muted)}
.kredi-kalem b{font-size:15.5px;font-weight:700}
.kredi-uyari{margin-top:10px;font-size:13.5px;color:#b45309}
.kredi-not{margin-top:14px;font-size:12.5px;line-height:1.6;color:var(--muted)}
@media(max-width:560px){
  .kredi-sonuc{gap:12px 20px}
  .kredi-taksit{flex:1 0 100%;margin-right:0}
  .kredi-taksit b{font-size:24px}
}

.oz-tablo{display:grid;grid-template-columns:repeat(2,1fr);gap:0 28px}
.oz-satir{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.oz-satir span{color:var(--muted)}
.oz-satir b{font-weight:650;text-align:right}

.oz-etiketler{display:flex;flex-wrap:wrap;gap:8px}
.oz-etiket{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:8px 13px;font-size:13.5px;font-weight:500}

.detay-harita{height:380px;border-radius:10px;overflow:hidden;z-index:1}

/* --- 95 · video / sanal tur gömmesi ---
   Kutu tıklanana kadar yalnızca kendi kapak fotoğrafımızı gösterir;
   iframe JS ile sonradan giriyor (bkz. js/medya-gomme.js). */
.gomme{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;
  background:#0f172a;isolation:isolate}
.gomme.gomme-tur{aspect-ratio:3/2}
.gomme .gomme-kapak{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  /* Kapak burada içeriğin kendisi değil, arka plan: hafifçe karartıp
     bulanıklaştırınca oynat düğmesi her fotoğrafta okunur kalıyor. */
  filter:brightness(.62) saturate(.9);transform:scale(1.03)}
.gomme .gomme-ac{position:absolute;inset:0;width:100%;height:100%;border:0;cursor:pointer;
  background:transparent;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:14px;color:#fff;font:inherit;padding:20px}
.gomme .gomme-ac:focus-visible{outline:3px solid var(--a);outline-offset:-3px}
.gomme .gomme-oynat{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.85);
  backdrop-filter:blur(2px);transition:transform .18s,background .18s}
.gomme .gomme-oynat svg{width:38px;height:38px;fill:#fff;stroke:#fff;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
/* Oynat üçgeni dolu, tur küresi çizgi — ikisi aynı svg kuralını paylaşıyor. */
.gomme .gomme-oynat svg path,.gomme .gomme-oynat svg circle,.gomme .gomme-oynat svg ellipse{fill:none}
.gomme:not(.gomme-tur) .gomme-oynat svg path{fill:#fff;stroke:none}
.gomme-ac:hover .gomme-oynat{transform:scale(1.07);background:rgba(255,255,255,.28)}
.gomme .gomme-not{font-size:13px;font-weight:600;letter-spacing:.01em;
  text-shadow:0 1px 3px rgba(0,0,0,.55);text-align:center}
.gomme iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* Fotoğrafsız ilanda kapak yok; boş koyu kutu yerine hafif bir doku. */
.gomme:not(:has(.gomme-kapak)){background:linear-gradient(135deg,#1e293b,#0f172a)}
@media(max-width:560px){
  .gomme.gomme-tur{aspect-ratio:4/3}
  .gomme .gomme-oynat{width:60px;height:60px}
  .gomme .gomme-oynat svg{width:30px;height:30px}
}

/* --- 118 · doğrudan yüklenen video ---
   Gömme kutusunun aksine burada tarayıcının kendi oynatıcısı var:
   ikinci bir "oynat" katmanı çizmiyoruz, kapak karesi zaten
   poster olarak duruyor. object-fit:contain — dikey çekilmiş
   telefon videosu 16:9 kutuda kırpılmasın, yanlarda siyah kalsın. */
.yerel-video{display:block;width:100%;aspect-ratio:16/9;border-radius:10px;
  background:#0f172a;object-fit:contain}

/* --- "Yakında ne var?" — harita altındaki çevre bilgisi --- */
.cevre{margin-top:18px}
.cevre h3{font-size:16px;font-weight:700;margin-bottom:4px}
.cevre-not{font-size:13px;color:var(--muted);margin-bottom:12px}
.cevre-sekme{display:flex;flex-wrap:wrap;gap:8px}
.cevre-dugme{display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  border:1.5px solid var(--line);background:var(--bg);color:inherit;
  border-radius:20px;padding:8px 14px;font-weight:600;font-size:13.5px;line-height:1;transition:.16s}
.cevre-dugme:hover{border-color:var(--a)}
.cevre-dugme.on{background:var(--a);border-color:var(--a);color:var(--a-yazi)}
.cevre-liste{margin-top:12px;display:grid;gap:2px}
.cevre-liste:empty{margin-top:0}
.cevre-satir{display:flex;justify-content:space-between;gap:12px;align-items:center;
  padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px;transition:.14s}
.cevre-satir:nth-child(odd){background:var(--soft)}
.cevre-satir:hover{background:var(--a);color:var(--a-yazi)}
.cevre-satir b{flex:none;font-size:13px;opacity:.85}
.cevre-bos{font-size:13.5px;color:var(--muted);padding:8px 0}

/* yan sutun */
.detay-yan{position:sticky;top:var(--yapisik);display:grid;gap:18px}
.fiyat-kart{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border-radius:var(--r);padding:24px}
.fiyat-kart .fiyat{font-size:29px;font-weight:800;color:#fff;letter-spacing:-.02em}
.fiyat-kart .fiyat small{color:rgba(255,255,255,.75)}
.kat-etiket{display:inline-block;margin-top:10px;background:rgba(255,255,255,.18);padding:5px 11px;border-radius:6px;font-size:12.5px;font-weight:600}

.danisman-kart,.talep-kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.danisman-kart .ust{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.avatar.buyuk{width:52px;height:52px;font-size:18px}
.danisman-kart .ust b{display:block;font-size:15.5px;font-weight:650}
.danisman-kart .ust small{color:var(--muted);font-size:13px}
.danisman-kart .butonlar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.danisman-kart .butonlar .btn{padding:12px;font-size:14px}
.profil-link{display:block;text-align:center;margin-top:13px;font-size:13.5px;color:var(--a);font-weight:600}
.talep-kart h3{font-size:17px;font-weight:700;margin-bottom:14px}
.talep-kart input,.talep-kart textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:11px 13px;font-size:14.5px;color:var(--ink);background:var(--yuzey);
  margin-bottom:9px;font-family:inherit}
.talep-kart input:focus,.talep-kart textarea:focus{outline:0;border-color:var(--a)}
.uyari{padding:13px 15px;border-radius:9px;font-size:14px;line-height:1.5}
.uyari.basarili{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}
.uyari.hata{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5;margin-bottom:12px}

/* --- sekmeler (proje filtreleri) --- */
.sekmeler{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}
.sekmeler a{padding:10px 18px;border-radius:9px;border:1.5px solid var(--line);font-weight:600;font-size:14.5px;transition:.18s;background:var(--yuzey)}
.sekmeler a:hover{border-color:var(--a);color:var(--a)}
.sekmeler a.on{background:var(--a);border-color:var(--a);color:var(--a-yazi)}

/* --- bilgi kartlari (hakkimizda) --- */
.kartlar-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.bilgi-kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:30px 26px;transition:.22s}
.bilgi-kart:hover{border-color:var(--a);box-shadow:var(--sh);transform:translateY(-4px)}
.bilgi-kart .ic{width:54px;height:54px;border-radius:14px;background:var(--soft);display:grid;place-items:center;font-size:24px;margin-bottom:14px}
.bilgi-kart b{display:block;font-size:17px;font-weight:700;margin-bottom:6px}
.bilgi-kart p{color:var(--muted);font-size:14.5px}

/* --- iletisim --- */
.iletisim-duzen{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start}
.iletisim-form input,.iletisim-form textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:12px 14px;font-size:15px;font-family:inherit;color:var(--ink);background:var(--yuzey);
  margin-bottom:11px}
.iletisim-form input:focus,.iletisim-form textarea:focus{outline:0;border-color:var(--a)}
/* 106 — iletisim formundaki tek acilir liste (danisman basvurusu).
   .iletisim-form kurali yalnizca input ve textarea'yi kapsiyordu; select
   tarayici varsayilaniyla kaliyor ve formun ortasinda yamali duruyordu.
   16px SART: iOS daha kucuk yazili alana odaklaninca sayfayi zorla
   buyutuyor (bkz. dosya sonundaki not). */
.katil-secim{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:12px 34px 12px 14px;font-size:16px;font-family:inherit;color:var(--ink);
  background:var(--yuzey);margin-bottom:11px;cursor:pointer;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
                   linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.katil-secim:focus{outline:0;border-color:var(--a)}
.iletisim-liste{list-style:none;display:grid;gap:0}
.iletisim-liste li{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.iletisim-liste li:last-child{border-bottom:0}
.iletisim-liste span{color:var(--muted);flex:none}
.iletisim-liste b{font-weight:650;text-align:right}
.iletisim-liste a:hover{color:var(--a)}
.iletisim-butonlar{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
.yol-tarifi{display:flex;width:100%;margin-top:9px;gap:8px}
.yol-tarifi svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.ofis-harita{height:380px;border-radius:var(--r);overflow:hidden;z-index:1;border:1px solid var(--line)}

/* --- Ziyaretçi ilan gönderme formu ---
   Kendi sınıf öneki (ig-) var: public temada .alan zaten arama çubuğunun
   alanı, onu kullansaydık form paramparça görünürdü. */
/* DIKKAT: burada "font: 15px inherit" gibi bir kisaltma KULLANMAYIN.
   CSS-genel anahtar kelimeler (inherit) yalnizca declaration'in TAMAMI
   olabilir; font kisaltmasinin aile bolumunde gecersizdir ve tarayici
   declaration'i komple atar. Bu formda oyleydi: etiketler 600 13px yerine
   400 16px, girdiler 15px yerine tarayici varsayilani 13.3px cikiyordu.
   font-size / font-weight ayri ayri yaziliyor. */
.ig-form{max-width:820px;margin:0 auto}
.ig-baslik{font-size:19px;font-weight:700;margin:26px 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.ig-baslik:first-child{margin-top:0}
.ig-satir{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.ig-alan{margin-bottom:15px;min-width:0}
.ig-alan label{display:block;font-size:13px;font-weight:600;line-height:1.3;margin-bottom:6px;color:var(--ink)}
.ig-alan input,.ig-alan select,.ig-alan textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:12px 14px;font-size:15px;font-family:inherit;color:var(--ink);background:var(--bg)}
.ig-alan input:focus,.ig-alan select:focus,.ig-alan textarea:focus{outline:0;border-color:var(--a);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--a) 18%,transparent)}
.ig-alan input[type=file]{padding:14px;background:var(--soft);cursor:pointer;
  border-style:dashed;font-size:14px}
.ig-ipucu{display:block;font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}
.ig-zorunlu{color:#dc2626}
.ig-onay{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.55;cursor:pointer}
.ig-onay input{width:auto;flex:none;margin-top:3px}
.ig-harita{height:300px;border-radius:10px;overflow:hidden;z-index:1;border:1.5px solid var(--line)}
.ig-gonder{width:100%;justify-content:center;padding:15px;font-size:16px;font-weight:600}
.ig-basari{max-width:600px;margin:0 auto;text-align:center;background:var(--soft);
  border:1px solid var(--line);border-radius:var(--r);padding:44px 30px}
.ig-basari h2{font-size:23px;margin-bottom:12px}
.ig-basari p{color:var(--muted);line-height:1.65;margin-bottom:22px}

@media(max-width:560px){
  /* 16px ALTINA INMEYIN: iOS Safari daha kucuk yazili bir alana
     odaklaninca sayfayi otomatik buyutuyor ve geri dondurmuyor. */
  .ig-alan input,.ig-alan select,.ig-alan textarea{font-size:16px;padding:13px 14px;min-height:48px}
  .ig-alan input[type=file]{min-height:0;font-size:14px}
  .ig-alan{margin-bottom:13px}
  .ig-alan label{font-size:13.5px}

  /* Kisa sayisal alanlar tek sutunda gereksiz yer kapliyordu: fiyat + para
     birimi ve m2 + oda ikili duruyor, form bir ekran kisaliyor. */
  .ig-satir.kisa{grid-template-columns:1fr 1fr;gap:10px}

  .ig-bolum{background:var(--soft);border:1px solid var(--line);border-radius:12px;
    padding:16px 14px;margin-bottom:16px}
  .ig-bolum .ig-alan:last-child{margin-bottom:0}
  .ig-baslik{font-size:16px;margin:0 0 14px;padding-bottom:8px}

  .ig-harita{height:230px}
  /* Sticky yapmadik: sabit iletisim butonu (z-index 8500) mobilde sag altta
     duruyor, yapisan bir gonder cubugu onun altina giriyordu. */
  .ig-gonder{padding:16px}
  .ig-basari{padding:32px 20px}
  .ig-basari h2{font-size:20px}
}

/* --- veri tablosu --- */
.tablo-sar{overflow-x:auto}
.veri-tablo{width:100%;border-collapse:collapse;font-size:14.5px;min-width:380px}
.veri-tablo th{text-align:left;padding:11px 12px;background:var(--soft);font-weight:700;font-size:11.5px;line-height:1;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.veri-tablo td{padding:13px 12px;border-bottom:1px solid var(--line)}
.veri-tablo tr:last-child td{border-bottom:0}

/* 135 — danisman degerlendirmeleri.
   Yildizlar METIN karakteri (★): tek renkli bir simge icin SVG yuklemek,
   her yildizda bir dugum daha demekti. Punto ile buyuyor, renkle
   doluyor. */
.deg-blok .deg-bas{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;margin-bottom:14px}
.deg-blok h2{margin:0}
.deg-ozet{display:flex;align-items:baseline;gap:8px}
.deg-ozet b{font-size:24px;font-weight:800;letter-spacing:-.02em}
.deg-ozet small{color:var(--muted);font-size:13px}
.deg-yildiz{letter-spacing:1px;color:#cbd5e1;font-size:15px;line-height:1}
.deg-yildiz .dolu{color:#f59e0b}
.deg-bos{color:var(--muted);font-size:14.5px;margin-bottom:16px}
.deg-liste{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.deg-oge{border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.deg-oge-bas{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:6px}
.deg-oge-bas b{font-size:14.5px}
.deg-oge-bas time{font-size:12.5px;color:var(--muted);margin-left:auto}
.deg-oge p{font-size:14.5px;line-height:1.6;color:var(--ink-yumusak);margin:0}
/* FORMDA PANEL SINIFLARI KULLANILMIYOR (.alan / .form-satir / .ipucu).
   Vitrinde .alan bir SUZGEC HUCRESI: ikon + minik buyuk harf etiket +
   cercevesiz input. Form o siniflarla yazilinca etiketler kucuk, kutular
   cerceveisiz ve ipucu satiri yana kacmis halde ciziliyordu. Bu blok
   iletisim formunun gorsel dilini izliyor. */
.deg-form{border-top:1px solid var(--line);padding-top:20px;margin-top:4px}
.deg-alan{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.deg-etiket{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:0}
.deg-yildiz-zorunlu{color:#e11d48}
.deg-form input,.deg-form textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:12px 14px;font-size:15px;font-family:inherit;line-height:1.5;color:var(--ink);background:var(--yuzey)}
.deg-form input:focus,.deg-form textarea:focus{outline:0;border-color:var(--a)}
.deg-form textarea{resize:vertical;min-height:104px}
.deg-form .btn{width:100%;justify-content:center;padding:13px}
.deg-ipucu{font-size:12.5px;color:var(--muted);line-height:1.45}
.deg-ikili{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:560px){.deg-ikili{grid-template-columns:1fr}}
.deg-not{margin-top:10px;font-size:12.5px;color:var(--muted);text-align:center}

/* Yildiz secimi: radio'lar TERS sirada basiliyor (5'ten 1'e) ki
   "isaretliden onceki kardesler" secicisiyle soldaki yildizlar da
   dolsun. JS yok — klavyeyle de calisiyor. */
.deg-secim{display:inline-flex;flex-direction:row-reverse;gap:4px;align-self:flex-start}
.deg-secim input{position:absolute;opacity:0;width:0;height:0}
.deg-secim label{font-size:34px;line-height:1;color:#cbd5e1;cursor:pointer;transition:.12s}
.deg-secim input:checked ~ label,
.deg-secim label:hover,
.deg-secim label:hover ~ label{color:#f59e0b}
.deg-secim input:focus-visible + label{outline:2px solid var(--a);outline-offset:2px;border-radius:4px}

/* --- harita sayfasi (sol liste + sag harita) --- */
.harita-sayfa{display:grid;grid-template-columns:380px 1fr;height:calc(100dvh - 116px);min-height:520px}
.harita-liste{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--yuzey);min-height:0}
.harita-liste-bas{padding:16px 18px;border-bottom:1px solid var(--line);font-size:14.5px}
.harita-liste-bas b{color:var(--p-metin)}
.harita-liste-bas small{display:block;color:var(--muted);font-size:12.5px;margin-top:3px}
.harita-liste-govde{overflow-y:auto;flex:1;min-height:0}
.mini-kart{border-bottom:1px solid var(--line);transition:.15s}
.mini-kart:hover{background:var(--soft)}
.mini-kart a{display:flex;gap:12px;padding:12px 14px}
.mini-foto{width:92px;height:70px;border-radius:8px;overflow:hidden;background:var(--soft);flex:none}
.mini-foto img{width:100%;height:100%;object-fit:cover}
.mini-govde{min-width:0}
.mini-fiyat{font-weight:800;color:var(--p-metin);font-size:15px}
.mini-baslik{font-size:13.5px;font-weight:600;margin:2px 0;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mini-konum{font-size:12.5px;color:var(--muted)}
.harita-alan{z-index:1}

/* 134 — alan cizerek arama.
   Cizim cubugu haritanin USTUNDE duruyor; bunun icin harita bir
   sarmalayiciya alindi ve izgara hucresi artik o. Cubugu haritanin
   disina koymak, mobilde ekranin ustunden bir serit daha yerdi. */
.harita-alan-sar{position:relative;min-width:0;min-height:0}
.harita-alan-sar .harita-alan{height:100%}
.cizim-cubuk{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:15;
  display:flex;align-items:center;gap:8px;background:var(--yuzey);border:1px solid var(--line);
  border-radius:10px;padding:8px 10px;box-shadow:var(--sh);max-width:calc(100% - 24px)}
.cizim-cubuk .btn{white-space:nowrap}
.cizim-bilgi{font-size:12.5px;color:var(--muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
/* Cizim kipinde imlec: nereye basildigi belli olsun. */
.harita-alan.ciziyor{cursor:crosshair}
@media(max-width:560px){
  .cizim-cubuk{left:12px;right:12px;transform:none;max-width:none;flex-wrap:wrap}
  .cizim-bilgi{flex:1 0 100%;white-space:normal}
}

/* Harita/liste sekmesi — yalnizca dar ekranda. Masaustunde ikisi zaten
   yan yana duruyor, sekmeye gerek yok. */
.harita-sekme{display:none;gap:2px;padding:8px 12px;background:var(--soft);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.harita-sekme button{flex:1;border:0;cursor:pointer;background:transparent;color:var(--muted);
  font-weight:600;font-size:14.5px;line-height:1;padding:11px;border-radius:9px;transition:.16s}
.harita-sekme button.on{background:var(--a);color:var(--a-yazi)}

/* --- harita onay kapısı ---
   Karolar üçüncü taraftan (OSM / Esri / CARTO) geliyor; ziyaretçi
   onaylayana kadar harita yerine bu kutu duruyor. Bkz. js/harita-onay.js */
.harita-kapali{position:relative;background:var(--soft);
  background-image:
    linear-gradient(rgba(148,163,184,.22) 1px,transparent 1px),
    linear-gradient(90deg,rgba(148,163,184,.22) 1px,transparent 1px);
  background-size:38px 38px}
.harita-yer-tutucu{position:absolute;inset:0;display:grid;place-items:center;
  padding:22px;text-align:center;z-index:2}
.harita-yer-tutucu .hyt-ic{max-width:400px}
.harita-yer-tutucu .hyt-ikon{display:grid;place-items:center;width:52px;height:52px;
  margin:0 auto 12px;border-radius:50%;background:var(--yuzey);border:1px solid var(--line)}
.harita-yer-tutucu .hyt-ikon svg{width:26px;height:26px;fill:none;stroke:var(--a);
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.harita-yer-tutucu b{display:block;font-size:16px;font-weight:700;margin-bottom:7px}
.harita-yer-tutucu p{color:var(--muted);font-size:13.5px;line-height:1.55;margin-bottom:15px}
.harita-yer-tutucu .hyt-dugme{border:0;cursor:pointer;background:var(--a);color:var(--a-yazi);
  border-radius:9px;padding:12px 22px;font-weight:650;font-size:14.5px;line-height:1}
.harita-yer-tutucu .hyt-dugme:hover{filter:brightness(1.07)}
.harita-yer-tutucu .hyt-hatirla{display:flex;align-items:center;justify-content:center;
  gap:7px;margin-top:12px;font-size:12.5px;color:var(--muted);cursor:pointer}
.harita-yer-tutucu .hyt-hatirla input{width:15px;height:15px;accent-color:var(--a);cursor:pointer}
@media(max-width:560px){
  .harita-yer-tutucu p{font-size:12.5px}
  .harita-yer-tutucu .hyt-ikon{width:44px;height:44px;margin-bottom:9px}
}

/* --- 96 · blog --- */
.yazi-grid{align-items:stretch}
.yazi-kart{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:.25s}
.yazi-kart:hover{transform:translateY(-6px);box-shadow:var(--sh2);border-color:transparent}
.yazi-kart .foto{position:relative;height:190px;background:var(--soft);overflow:hidden;display:block}
.yazi-kart .foto img{width:100%;height:100%;object-fit:cover;transition:.4s}
.yazi-kart:hover .foto img{transform:scale(1.05)}
.yazi-kart .foto .yok{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px}
.yazi-kart .govde{padding:20px;flex:1;display:flex;flex-direction:column}
.yazi-kart .ust-bilgi{font-size:12.5px;color:var(--muted);margin-bottom:8px}
/* 154 — anasayfadaki blog bolumunde kart basligi h3 (bolum basligi h2).
   Blog listesinde h2 kaliyor; ikisi ayni gorunmeli. */
.yazi-kart h2,.yazi-kart h3{font-size:17.5px;font-weight:700;line-height:1.35;letter-spacing:-.01em;margin-bottom:9px}
.yazi-kart h2 a:hover,.yazi-kart h3 a:hover{color:var(--a)}
.yazi-kart p{color:var(--ink-yumusak);font-size:14.5px;line-height:1.6;flex:1}
.yazi-kart .devam{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:650;color:var(--a)}

/* Etiketli liste — şerit kalktığı için tek çıkış yolu bu satır */
.suzgec-not{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px;
  background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:13px 18px;
  font-size:14px;color:var(--muted)}
.suzgec-not b{color:var(--ink)}
.suzgec-not a{margin-left:auto;font-weight:650;color:var(--a)}

/* Yazı gövdesi — okunabilirlik için dar ölçü. 65-75 karakter satır
   uzunluğu uzun metinde göz yormuyor; tam genişlik satırda okuyucu
   satır başını kaybediyor. */
.yazi-sar{max-width:840px}
.yazi-kapak{margin:0 0 28px;border-radius:var(--r);overflow:hidden}
.yazi-kapak img{width:100%;height:auto;display:block}
.yazi-metin{color:var(--ink-yumusak);font-size:16.5px;line-height:1.8}
.yazi-metin p{margin-bottom:18px}
.yazi-metin h2{font-size:23px;font-weight:750;letter-spacing:-.015em;color:var(--ink);margin:34px 0 14px}
.yazi-metin ul{margin:0 0 18px;padding-left:22px;list-style:disc}
.yazi-metin li{margin-bottom:8px}
.yazi-metin>*:first-child{margin-top:0}

.yazi-etiketler{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:30px;
  padding-top:22px;border-top:1px solid var(--line)}
.yazi-etiketler .etiket-yazi{font-size:13px;color:var(--muted);margin-right:2px}
.yazi-etiketler a{background:var(--soft);border:1px solid var(--line);border-radius:8px;
  padding:7px 12px;font-size:13px;font-weight:500}
.yazi-etiketler a:hover{border-color:var(--a);color:var(--a)}

.yazi-yazar{display:flex;gap:15px;align-items:center;margin-top:30px;padding:20px;
  background:var(--soft);border:1px solid var(--line);border-radius:var(--r)}
.yazi-yazar img,.yazi-yazar .avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;flex:none}
.yazi-yazar .avatar{display:grid;place-items:center;background:var(--a);color:var(--a-yazi);
  font-weight:700;font-size:22px}
.yazi-yazar b{display:block;font-size:15.5px;font-weight:700}
.yazi-yazar small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.yazi-yazar a{display:inline-block;margin-top:6px;font-size:13.5px;font-weight:600;color:var(--a)}

.bos-liste{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);
  padding:48px 26px;text-align:center}
.bos-liste b{display:block;font-size:17px;font-weight:700;margin-bottom:6px}
.bos-liste span{color:var(--muted);font-size:14.5px}

@media(max-width:560px){
  .yazi-metin{font-size:15.5px}
  .yazi-metin h2{font-size:20px;margin:26px 0 12px}
  .yazi-kart .foto{height:170px}
  .suzgec-not a{margin-left:0}
}

/* --- sayfalama --- */
.sayfalama{display:flex;justify-content:center;gap:6px;margin-top:34px;flex-wrap:wrap}
.sayfalama a{min-width:40px;height:40px;padding:0 12px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:9px;font-weight:600;font-size:14.5px;background:var(--yuzey);transition:.18s}
.sayfalama a:hover{border-color:var(--a);color:var(--a)}
.sayfalama a.on{background:var(--a);border-color:var(--a);color:var(--a-yazi)}

/* --- sabit iletisim butonu ------------------------------------
   Her sayfada durur, site ayarindan kapatilabilir.
   Masaustu: sag altta yuvarlak butonlar.
   Mobil: ekranin altina yapisan tam genislikte cubuk.
   -------------------------------------------------------------- */
.sabit-iletisim{position:fixed;right:18px;bottom:18px;z-index:8500;display:flex;
  flex-direction:column;gap:10px;align-items:flex-end}
.si-btn{display:inline-flex;align-items:center;gap:9px;height:52px;padding:0 17px;border-radius:999px;
  color:#fff;font-weight:650;font-size:14.5px;line-height:1;box-shadow:0 4px 18px rgba(0,0,0,.26);transition:.18s;white-space:nowrap}
.si-btn:hover{color:#fff;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.32)}
.si-btn svg{width:23px;height:23px;fill:currentColor;flex:none}
.si-wa{background:#25d366}
.si-wa:hover{background:#1fb457}
.si-tel{background:var(--p)}
.si-tel:hover{background:var(--p2)}

/* Masaustunde yalnizca ikon; uzerine gelince yazi acilir - koseyi mesgul etmesin.
   Sinir 980: menu cekmecesi ve alt bar da orada devreye giriyor, iki farkli
   kirilma noktasi 861-980 arasinda hem alt barsiz hem cubuklu bir ara durum
   uretiyordu. */
@media(min-width:981px){
  .si-metin{max-width:0;overflow:hidden;opacity:0;transition:max-width .22s,opacity .18s}
  .si-btn:hover .si-metin,.si-btn:focus-visible .si-metin{max-width:120px;opacity:1}
}

/* --- mobil alt gezinme cubugu (bkz. _AltBar) ---
   Masaustunde HIC cizilmiyor: orada ust menu zaten tam gorunur. */
.altbar{display:none}

/* Sinir 980 — menu cekmecesiyle ayni. Alt bar 860'ta baslasaydi
   861-980 arasinda gezinme yalnizca hamburger cekmecesinde kalirdi. */
@media(max-width:980px){
  /* Bes sekme + ustunde WhatsApp. Tek serit: alt gezinme ile iletisim
     ayri ayri cizilseydi ekranin ~110px'i sabit cubuklara giderdi. */
  .altbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:8400;
    background:var(--yuzey);border-top:1px solid var(--line);
    box-shadow:0 -2px 14px rgba(8,15,26,.08);
    /* iPhone'un ana ekran cizgisi sekmelerin uzerine biniyordu. */
    padding-bottom:env(safe-area-inset-bottom)
  }
  .ab-oge{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    position:relative;height:56px;font-size:11px;font-weight:600;color:var(--muted);
    letter-spacing:-.01em;transition:color .15s
  }
  .ab-oge svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;
    stroke-linecap:round;stroke-linejoin:round}
  .ab-oge.on{color:var(--a)}
  /* Aktif sekmenin ustunde ince serit — renk tek basina yeterince
     okunmuyordu, ozellikle aksani acik olan paletlerde. */
  .ab-oge.on::before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;
    background:var(--a);border-radius:0 0 2px 2px}
  .ab-ara{color:var(--p)}
  .ab-rozet{position:absolute;top:5px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;
    border-radius:999px;background:var(--a);color:var(--a-yazi);font-size:10px;font-weight:700;
    line-height:16px;text-align:center}

  /* Sabit iletisim mobilde ARTIK CUBUK DEGIL: telefon alt barda bir sekme,
     geriye yalnizca WhatsApp kaliyor ve cubugun uzerinde yuvarlak duruyor.
     Eski tam genislikteki serit alt barla ust uste binerdi. */
  .sabit-iletisim{right:14px;left:auto;bottom:calc(66px + env(safe-area-inset-bottom));
    flex-direction:column;gap:10px;align-items:flex-end}
  .si-tel{display:none}
  /* Yalnizca ikon: yaninda ilan listesindeki "Filtrele" dugmesi duruyor,
     yazili pill ikisini ust uste bindiriyordu. */
  .si-metin{display:none}
  .si-btn{width:52px;height:52px;padding:0;justify-content:center;
    border-radius:999px;box-shadow:0 4px 18px rgba(0,0,0,.26)}
  .si-btn:hover{transform:none}

  /* Cubuk icerigin uzerine binmesin. */
  body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  footer.alt{margin-bottom:0}
}

/* --- responsive --- */
@media(max-width:1100px){
  .kats{grid-template-columns:repeat(3,1fr)}
  .ekip{grid-template-columns:repeat(2,1fr)}
  .harita-sayfa{grid-template-columns:320px 1fr}
}
@media(max-width:980px){
  .detay-duzen{grid-template-columns:1fr}
  .detay-yan{position:static}
  .oz-tablo{grid-template-columns:1fr}
  .iletisim-duzen,.kartlar-3{grid-template-columns:1fr}
  /* Sekmeli mod: harita ve liste ust uste degil, biri ekranin tamami.
     Eskiden liste ustte 44vh + harita altta 60vh vardi; toplam ekrani
     asiyordu ve harita sayfasina girip haritayi gormek icin kaydirmak
     gerekiyordu. */
  .harita-sekme{display:flex}
  .harita-sayfa{grid-template-columns:1fr;grid-template-rows:1fr;
    height:calc(100dvh - 164px);min-height:420px}
  .harita-liste{display:none;border-right:0;max-height:none}
  .harita-sayfa.liste-acik .harita-liste{display:flex}
  .harita-sayfa.liste-acik .harita-alan-sar{display:none}
  .liste-duzen{grid-template-columns:1fr}
  /* --- Filtre: mobilde alttan acilan cekmece ---
     Eskiden panel sayfanin en ustunde acilip kapaniyordu: ziyaretci
     sonuclari gorurken filtreye donmek icin yukari kaydirmak zorundaydi
     ve 15 alanlik form sonuclari ekrandan itiyordu. Dugme artik parmak
     menzilinde, panel de listenin uzerine geliyor. */
  .filtre-ac{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;margin:0;
    position:fixed;left:12px;right:78px;z-index:8450;
    bottom:calc(66px + env(safe-area-inset-bottom));
    height:48px;border-radius:999px;box-shadow:0 6px 20px rgba(8,15,26,.24)
  }
  .fa-sim{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  .fa-rozet{min-width:20px;height:20px;padding:0 6px;border-radius:999px;
    background:rgba(255,255,255,.24);font-size:12px;font-weight:700;line-height:20px}

  .filtre-perde{display:block;position:fixed;inset:0;z-index:9050;
    background:rgba(8,15,26,.5);opacity:0;transition:opacity .28s;pointer-events:none}
  .filtre-perde.acik{opacity:1;pointer-events:auto}

  .filtre-govde{
    display:block;padding:0 20px;
    position:fixed;left:0;right:0;bottom:0;top:auto;z-index:9100;
    max-height:86vh;max-height:86dvh;overflow-y:auto;overscroll-behavior:contain;
    border-radius:18px 18px 0 0;border-bottom:0;
    box-shadow:0 -10px 40px rgba(8,15,26,.28);
    transform:translateY(100%);visibility:hidden;
    transition:transform .28s cubic-bezier(.4,0,.2,1),visibility .28s
  }
  .filtre-govde.acik{transform:none;visibility:visible}

  /* Baslik ve "Filtrele" seridi yapiskan. flex + ayri kayan govde yerine
     sticky secildi: ara bir sarmalayici <div> eklemek gerekmiyor, panelin
     icindeki alan sayisi kategoriye gore degistigi icin (dinamik ozellik
     filtreleri) sabit yukseklik varsaymak da dogru olmazdi. */
  .filtre-bas{display:flex;align-items:center;justify-content:space-between;
    position:sticky;top:0;z-index:2;background:var(--yuzey);margin:0 -20px;
    padding:16px 20px;border-bottom:1px solid var(--line)}
  .filtre-bas b{font-size:16px}
  .filtre-bas button{background:none;border:0;font-size:30px;line-height:1;cursor:pointer;
    color:var(--muted);padding:0 4px}
  .filtre-alt{position:sticky;bottom:0;z-index:2;background:var(--yuzey);margin:14px -20px 0;
    padding:14px 20px calc(14px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);text-align:center}
  .topbar{display:none}
  .nav-ac{display:block}
  /* Cekmece acikken hamburger gizlenir. z-index:70 ile cekmecenin (60)
     ustunde durdugu icin, kapatma dugmesinin tam uzerine binip ikinci bir
     X gibi gorunuyordu. Kapatma isi .menu-bas'taki dugmede ve perdede.
     visibility: display:none olsaydi cekmece kapanirken buton bir kare
     erken geri gelip zipliyordu. */
  .nav-ac.acik{visibility:hidden}
  .nav-tel{display:none}

  /* KRITIK: backdrop-filter, icindeki position:fixed elemanlar icin KAPSAYICI
     BLOK olusturur. Blur acik kalirsa cekmece viewport'a degil navbar'a gore
     konumlanir ve yuksekligi navbar kadar (--nav-h) kalir. Mobilde blur'u
     kaldiriyoruz; zaten gorsel bir sustan ibaret, islevsel karsiligi yok. */
  /* z-index: cekmece ve perde nav'in yigilma baglami icinde kaldigi icin
     disariya karsi TEK seviye olarak davraniyorlar. Sabit iletisim butonu
     (8500) ve demo paneli (9000) acik cekmecenin uzerine binmesin diye
     nav CEKMECE ACIKKEN bunlarin ustune cikiyor.
     Cekmece KAPALIYKEN nav'i 9500'de tutmak demo panelini menu seridinin
     altinda birakiyordu: panelin ust seridindeki kapatma X'i menunun arkasina
     dusuyor ve ziyaretci paneli kapatamiyordu. Sinifi _Layout'taki ayarla()
     takip cikariyor. */
  nav.ust{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--yuzey);z-index:8000}
  nav.ust.cekmeceAcik{z-index:9500}

  /* --- yandan kayan menu cekmecesi ---
     Ekranin sagindan girer. display:none yerine transform kullaniliyor ki
     acilip kapanma animasyonlu olsun; kapaliyken visibility ile klavye
     odagindan da cikarilir. */
  .menu{
    position:fixed;top:0;right:0;bottom:0;left:auto;
    width:min(86vw,340px);max-width:none;
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    background:var(--yuzey);box-shadow:-8px 0 40px rgba(8,15,26,.22);
    padding:0 0 24px;margin:0;z-index:60;
    overflow-y:auto;overscroll-behavior:contain;
    transform:translateX(100%);visibility:hidden;
    transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;
  }
  .menu.acik{transform:translateX(0);visibility:visible}

  .menu-bas{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--yuzey);z-index:2}
  .menu-bas span{font-weight:750;font-size:16px;letter-spacing:-.01em;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .menu-bas button{background:none;border:0;font-size:30px;line-height:1;cursor:pointer;
    color:var(--muted);padding:0 4px}
  .menu-bas button:hover{color:var(--ink)}

  .menu > li{border-bottom:1px solid var(--line)}
  .menu > li:last-child{border-bottom:0}
  .menu a{padding:15px 20px;border:0;font-size:15.5px}
  .menu a:hover,.menu a.on{background:var(--soft);border:0;color:var(--a)}

  /* Alt menuler acik listelenir - cekmecede ayrica acilir menu istenmiyor. */
  .menu .alt{position:static;display:block;border:0;box-shadow:none;
    padding:0 0 8px;background:var(--soft);border-radius:0;min-width:0}
  .menu .alt a{padding:11px 20px 11px 34px;font-size:14.5px;border-radius:0}

  /* Cekmecenin alt blogu: Favorilerim, Giris Yap, telefon, WhatsApp...
     Her biri ayri <li>.

     margin-top:auto HEPSINDE duruyordu ve flex, artan bosluğu bu li'lerin
     ARASINA esit dagitiyordu: "Favorilerim" ile "Giris Yap" arasinda bir
     ekran boyu bosluk kaliyor, alttaki iletisim dugmeleri de ekrandan
     tasiyordu (olculdu — ekran goruntusundeki hata bu).

     Asagi iten yalnizca ILK blok olmali; sonrakiler ona yapisik gelsin. */
  .menu-alt{display:grid;gap:8px;padding:0 20px;border-bottom:0 !important;margin-top:8px}
  .menu-kur{display:flex}
  .menu > li:not(.menu-alt) + .menu-alt{margin-top:auto;padding-top:18px}
  .menu-alt .btn{width:100%}
  .alanlar{grid-template-columns:1fr 1fr}
  /* Dar ekranda ayrac dikey degil yatay olmali. */
  .alan + .alan::before{left:15px;right:15px;top:0;bottom:auto;transform:none;
    width:auto;height:1px}
  .alan:nth-child(2)::before{display:none}
  .arama .btn{grid-column:span 2;padding:15px;margin-top:4px}
  .sayac{grid-template-columns:repeat(2,1fr);margin-top:-30px}
  .grid,.grid.g2,.projeler,.fgrid{grid-template-columns:1fr}
  .sec{padding:52px 0}
  .harita-band{padding:34px}
}
@media(max-width:560px){
  .kats{grid-template-columns:repeat(2,1fr)}
  .ekip{grid-template-columns:1fr}
  .alanlar{grid-template-columns:1fr}
  .alan:nth-child(2)::before{display:block}
  .arama .btn{grid-column:span 1}
}

/* --- mobilde zorla yakinlastirmayi engelle ---
   iOS Safari, 16px'ten kucuk yazili bir alana odaklaninca sayfayi kendiliginden
   buyutuyor ve geri dondurmuyor. Kullanici her form alanina dokundugunda site
   "kayiyor". Anasayfa arama kutusu (.alan) bunu zaten yapiyordu; ayni esik tum
   form alanlari icin gecerli olmali.

   Cozum viewport'a "user-scalable=no" koymak DEGIL: o, yakinlastirmayi tamamen
   kapatir ve az goren kullaniciyi siteden diser. Yalnizca yaziyi buyutuyoruz. */
@media(max-width:900px){
  .fgrup input[type=text],.fgrup input[type=number],.fgrup select,
  .iletisim-form input,.iletisim-form textarea,
  .arama input,.arama select{font-size:16px}
}

/* ============================================================
   99 — Üyelik ve "Hesabım" ekranları
   ------------------------------------------------------------
   Kendi öneki var (uye- / hesap- / hf-): public temada .kart ilan
   kartı, .alan arama çubuğunun alanı. Onları kullansaydık üye
   ekranları ilan kartı gibi görünürdü.
   ============================================================ */

/* Dar, ortalanmış giriş/kayıt kutusu */
/* 107 — üye giriş/kayıt/şifre ekranları "sade" moda alındı: menü ve
   footer basılmıyor, üstte yalnızca firmanın logosu duruyor. Giriş
   ekranı tek işi olan bir sayfa; ziyaretçiyi menüyle dağıtmak
   şifresini girmesine yardım etmiyor. Panel girişiyle de aynı dile
   geldiler (bkz. admin.css .giris-duzen).

   .oturum, .basvuru ile aynı ölçüleri kullanıyor ama daha dar:
   iki alanlı bir formu 760px'e yaymak formu kaybettiriyordu. */
/* --- oturum ekranlari (giris / kayit / sifre / dogrulama) ----------
   107 — panel girisiyle AYNI dil: solda lacivert marka sutunu, sagda
   form. Musteri her gun panele o ekrandan giriyor; uyenin gordugu
   ekranin baska bir dilde olmasi icin sebep yok.

   Zemin <body>'de (bkz. _Layout'taki sade-koyu): sarmalayiciya
   verilseydi sayfa kisa oldugunda altta beyaz bir bant kalirdi.
   ------------------------------------------------------------------ */
body.sade-koyu{background:linear-gradient(135deg,var(--p),var(--p2))}
/* Ince izgara dokusu — duz degrade ucuz duruyordu. fixed: sayfa
   kaydiginda doku kaymasin. */
body.sade-koyu::before{content:"";position:fixed;inset:0;opacity:.10;pointer-events:none;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);
  background-size:52px 52px}
body.sade-koyu main{position:relative;z-index:1;display:grid;place-items:center;
  padding:44px 20px;min-height:calc(100dvh - 150px)}
/* Altlik lacivertin uzerinde: beyaz kutu ve cizgi orada yanlis durur. */
body.sade-koyu .sade-alt{position:relative;z-index:1;background:transparent;border-top:0;
  color:rgba(255,255,255,.55);margin-top:28px}
body.sade-koyu .sade-alt a{color:rgba(255,255,255,.78)}
body.sade-koyu .sade-alt a:hover{color:#fff}

.oturum-duzen{width:100%;max-width:860px;display:grid;grid-template-columns:1fr 410px;
  border-radius:var(--r);overflow:hidden;box-shadow:0 24px 70px rgba(8,15,26,.32)}
.oturum-marka{background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  padding:44px 38px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;
  color:#fff;border-right:1px solid rgba(255,255,255,.10)}
.oturum-marka h2{font-size:23px;font-weight:750;letter-spacing:-.02em;line-height:1.3;margin-top:30px}
.oturum-marka p{color:rgba(255,255,255,.72);font-size:14.5px;line-height:1.6;margin-top:10px}
.oturum-marka .alt-bilgi{font-size:13px;color:rgba(255,255,255,.58);line-height:1.7}
.oturum-marka .alt-bilgi a{color:rgba(255,255,255,.82);text-decoration:underline}

.oturum-govde{background:var(--yuzey);padding:40px 34px;display:flex;flex-direction:column;justify-content:center}
.oturum-bas{margin-bottom:22px}
.oturum-bas h1{font-size:21px;font-weight:750;letter-spacing:-.015em;line-height:1.25}
.oturum-bas p{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.55}
/* Ic kutu artik cerceve tasimiyor: sag sutunun kendisi kutu. */
.oturum-govde .uye-kutu{background:none;border:0;box-shadow:none;padding:0;max-width:none;margin:0}

.oturum-logo{display:flex;align-items:center;gap:10px;
  font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--ink)}
.oturum-logo img{height:54px;width:auto;max-width:230px;object-fit:contain}
.oturum-logo .mark{width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,var(--p),var(--a));display:grid;place-items:center;
  color:#fff;font-size:18px;flex:none}
.oturum-logo.koyu{color:#fff}
.oturum-logo.koyu .mark{background:var(--a)}
/* Marka sutunu gizlenince gorunen kucuk logo. */
.oturum-mobil-marka{display:none;margin-bottom:18px}
.oturum-mobil-marka .oturum-logo img{height:42px;max-width:180px}

@media(max-width:900px){
  .oturum-duzen{grid-template-columns:1fr;max-width:440px}
  /* Telefonda ekranin yarisini dekora vermek, klavye acilinca formu
     ekran disina itiyordu (panel girisinde olculen ayni davranis). */
  .oturum-marka{display:none}
  .oturum-govde{padding:32px 24px}
  .oturum-mobil-marka{display:block}
  body.sade-koyu main{padding:28px 16px;min-height:calc(100dvh - 130px)}
}
@media(max-width:560px){
  .oturum-logo{font-size:19px}
  .oturum-mobil-marka .oturum-logo img{height:38px;max-width:160px}
}

.uye-kutu{max-width:440px;margin:0 auto;background:var(--yuzey);border:1px solid var(--line);
  border-radius:var(--r);padding:32px 28px}
/* Sade sayfada kutu kendi gölgesini taşıyor: arkasında bölüm zemini
   yok, düz kenarlıklı kutu boşlukta yüzüyor gibi duruyordu. */
.oturum .uye-kutu{max-width:none;box-shadow:var(--sh)}
.uye-kutu .iletisim-form{margin-top:4px}
.uye-kutu .btn{width:100%;justify-content:center;padding:14px;font-size:15.5px}
.uye-alt{margin-top:18px;text-align:center;font-size:14px;color:var(--muted);line-height:1.7}
.uye-alt a{color:var(--a);font-weight:600}
.ayrac{margin:0 7px;color:var(--line)}

/* Üye ekranlarında bilgi kutusu. taban.css'te .uyari.basarili ve
   .uyari.hata vardı; nötr bir üçüncüsü yoktu. */
.uyari.bilgi{background:#eff6ff;color:#1e40af;border:1px solid #93c5fd;margin-bottom:14px}

/* Durum rozetleri — admin.css'teki .etiket'in public karşılığı */
.etiket{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;
  font-weight:650;line-height:1.5;white-space:nowrap}
.etiket.yesil{background:#d1fae5;color:#065f46}
.etiket.sari{background:#fef3c7;color:#92400e}
.etiket.kirmizi{background:#fee2e2;color:#991b1b}
.etiket.gri{background:#e5e7eb;color:#374151}

/* Hesabım üst çubuğu */
.hesap-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.hesap-sayac{font-size:14.5px;color:var(--muted)}
.hesap-sayac b{color:var(--ink);font-size:17px;font-weight:700}
.hesap-islem{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hesap-islem form{margin:0}
.hesap-not{font-size:13.5px;color:#92400e;max-width:280px;line-height:1.45}

.bos-kutu{text-align:center;background:var(--soft);border:1px solid var(--line);
  border-radius:var(--r);padding:48px 26px;color:var(--muted)}
.bos-kutu p{margin-bottom:18px;font-size:15.5px}

/* İlan satırı */
.hesap-liste{display:flex;flex-direction:column;gap:14px}
.hesap-satir{display:flex;gap:16px;background:var(--yuzey);border:1px solid var(--line);
  border-radius:var(--r);padding:14px;align-items:center}
.hs-foto{width:132px;height:96px;flex:none;border-radius:9px;overflow:hidden;
  background:var(--soft);position:relative}
.hs-foto img{width:100%;height:100%;object-fit:cover}
.hs-foto .yok{position:absolute;inset:0;display:grid;place-items:center;
  color:var(--muted);font-size:12px;text-align:center;padding:6px}
.hs-govde{flex:1;min-width:0}
.hs-govde h3{font-size:16px;font-weight:650;margin:7px 0 5px;line-height:1.35}
.hs-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.hs-meta b{color:var(--ink);font-size:15px}
.hs-red{margin-top:8px;font-size:13px;color:#991b1b;background:#fef2f2;
  border-radius:7px;padding:7px 10px;line-height:1.45}

/* 100 — kalan yayın süresi. Son 7 günde vurgulanıyor ki üye ilanının
   sessizce kapanmasıyla karşılaşmasın. */
.hs-sure{margin-top:7px;font-size:12.5px;color:var(--muted)}
.hs-sure.yakin{color:#92400e;font-weight:600}
.hs-islem{display:flex;flex-direction:column;gap:7px;flex:none}
.hs-islem form{margin:0}
.hs-islem .btn{width:100%;justify-content:center;padding:8px 14px;font-size:13.5px}

/* Yüklü fotoğraflar (düzenleme ekranı) */
.hesap-fotolar{max-width:820px;margin:26px auto 0}
.hesap-fotolar h2{font-size:19px;font-weight:700;margin-bottom:14px;
  padding-bottom:9px;border-bottom:1px solid var(--line)}
.hf-izgara{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.hf-oge{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);
  aspect-ratio:4/3;background:var(--soft)}
.hf-oge img{width:100%;height:100%;object-fit:cover}
.hf-oge form{position:absolute;top:7px;right:7px;margin:0}
.hf-kapak{position:absolute;top:7px;left:7px;background:rgba(15,23,42,.82);color:#fff;
  font-size:11px;font-weight:650;padding:4px 9px;border-radius:999px}
.hf-sil{background:rgba(220,38,38,.92);color:#fff;border:0;cursor:pointer;
  font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px}
.hf-sil:hover{background:#b91c1c}

.hesap-gonder{max-width:820px;margin:22px auto 0;display:flex;gap:12px;align-items:center}
.hesap-gonder .btn-o{flex:none;padding:15px 24px}

@media(max-width:640px){
  .uye-kutu{padding:24px 18px}
  .hesap-satir{flex-direction:column;align-items:stretch;gap:12px}
  .hs-foto{width:100%;height:180px}
  .hs-islem{flex-direction:row}
  .hs-islem .btn{flex:1}
  .hesap-bar{flex-direction:column;align-items:stretch}
  .hesap-islem{justify-content:space-between}
  .hesap-gonder{flex-direction:column-reverse}
  .hesap-gonder .btn-o{width:100%;justify-content:center}
}

/* ============================================================
   102 — Bölge SEO: dizin sayfası ve bölge tanıtım metni
   ============================================================ */

.bolge-dizin{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px}
.bd-blok{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.bd-blok h2{font-size:17px;font-weight:700;margin:0 0 12px;padding-bottom:10px;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.bd-blok h2 a{color:var(--ink)}
.bd-blok h2 a:hover{color:var(--a)}
.bd-liste,.bd-alt{list-style:none;margin:0;padding:0}
.bd-liste > li{padding:5px 0;font-size:14.5px}
.bd-liste > li > a{color:var(--ink)}
.bd-liste > li > a:hover{color:var(--a)}
.bd-alt{margin:5px 0 9px 14px;padding-left:10px;border-left:2px solid var(--line)}
.bd-alt li{padding:3px 0;font-size:13.5px}
.bd-alt a{color:var(--muted)}
.bd-alt a:hover{color:var(--a)}
/* Adet rozetini bağlantıdan ayırıyoruz: tıklanabilir alanın içinde
   olsaydı kullanıcı sayıya basıp bölgeye gittiğini sanırdı. */
.bd-adet{display:inline-block;margin-left:6px;background:var(--soft);color:var(--muted);
  font-size:11.5px;font-weight:650;padding:2px 7px;border-radius:999px}

/* Bölgeye özgün tanıtım metni — ilan listesinin altında. */
.bolge-metin{background:var(--soft);border-top:1px solid var(--line)}
.bolge-metin .wrap{max-width:820px}
.bolge-metin h2{font-size:20px;font-weight:700;margin-bottom:14px}
.bolge-metin p{line-height:1.75;margin-bottom:13px;color:var(--ink)}
.bolge-metin h3{font-size:16.5px;font-weight:650;margin:22px 0 9px}
.bolge-metin ul{margin:0 0 13px 20px;line-height:1.75}

/* 103 — footer kurumsal künye. Ayrı satır: iletişim bloğuyla karışmasın,
   ama telif satırından da ayrılsın. Doldurulmamışsa hiç çizilmiyor. */
.fkunye{display:flex;flex-wrap:wrap;gap:6px 22px;padding:16px 0 0;margin-top:20px;
  border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;line-height:1.6;
  color:rgba(255,255,255,.62)}
.fkunye b{color:rgba(255,255,255,.82);font-weight:600}
@media(max-width:640px){ .fkunye{flex-direction:column;gap:5px} }

/* ============================================================
   113 — Footer sosyal simgeleri + portal bağlantıları
   ============================================================ */

/* Simgeler footer'da üst bardakinden BÜYÜK (18px): üst bar
   mobilde hiç çizilmiyor, telefondan giren ziyaretçi için
   dokunma hedefi bu. 16px'lik üst bar ölçüsü parmakla küçüktü. */
.fsosyal{display:flex;gap:14px;align-items:center;margin-top:14px;flex-wrap:wrap}
.fsos-sim{display:grid;place-items:center;width:18px;height:18px;flex:none;
  color:rgba(255,255,255,.72);transition:color .15s}
.fsos-sim:hover{color:#fff}
.fsos-sim svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7}

/* Portal bağlantıları künyeyle aynı satır dili — ikisi de
   footer'ın dibinde duran, adıyla okunan bilgi blokları. */
.fportal{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;
  padding:16px 0 0;margin-top:20px;border-top:1px solid rgba(255,255,255,.12);
  font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.62)}
.fportal a{color:rgba(255,255,255,.82);text-decoration:underline;text-underline-offset:2px}
.fportal a:hover{color:#fff}
@media(max-width:640px){ .fportal{gap:5px 14px} }

/* ============================================================
   104 — Favori
   ============================================================ */

/* Kart üzerindeki kalp. Fotoğrafın sağ üstünde; sol üstte durum
   rozetleri var, çakışmasın. */
.fav-btn{position:absolute;top:10px;right:10px;z-index:3;width:34px;height:34px;
  border:0;border-radius:50%;background:rgba(255,255,255,.92);cursor:pointer;
  display:grid;place-items:center;padding:0;transition:.16s;
  box-shadow:0 2px 8px rgba(0,0,0,.16)}
.fav-btn:hover{background:var(--ustu);transform:scale(1.08)}
.fav-btn svg{width:18px;height:18px;fill:none;stroke:#64748b;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round;transition:.16s}
.fav-btn.on svg{fill:#e11d48;stroke:#e11d48}
.fav-btn.on{background:var(--ustu)}

/* Dokunmatikte 34px küçük kalıyor; hedefi büyütüyoruz ama görünümü değil. */
@media(hover:none){
  .fav-btn{width:38px;height:38px}
  .fav-btn svg{width:20px;height:20px}
}

/* İlan detayındaki düz (yuvarlak olmayan) hâli. */
.fav-btn.duz{position:static;width:auto;height:auto;border-radius:9px;
  padding:8px 14px;gap:7px;grid-auto-flow:column;background:var(--soft);
  border:1px solid var(--line);box-shadow:none;font-weight:600;font-size:13.5px;line-height:1;
  color:var(--ink);margin-right:14px}
.fav-btn.duz:hover{transform:none;background:var(--ustu);border-color:var(--a)}
.fav-btn.duz.on{border-color:#e11d48;color:#e11d48}

/* 132 — karsilastirma.
   Kart uzerindeki dugme favori kalbinin ALTINDA: ikisi de sag ust
   kosede, ust uste degil alt alta. */
.kars-btn{position:absolute;top:52px;right:10px;z-index:3;width:34px;height:34px;
  display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.92);box-shadow:var(--sh);transition:.16s}
.kars-btn:hover{background:var(--ustu);transform:scale(1.08)}
.kars-btn svg{width:18px;height:18px;fill:none;stroke:#64748b;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.kars-btn.on{background:var(--a)}
.kars-btn.on svg{stroke:#fff}
.grid.yogun .kars-btn{width:29px;height:29px;top:43px;right:8px}
.grid.yogun .kars-btn svg{width:15px;height:15px}
@media(max-width:560px){.kars-btn{width:38px;height:38px;top:56px}.kars-btn svg{width:20px;height:20px}}

/* Alt cubuk: secim varken JS aciyor. */
.kars-cubuk{position:fixed;left:50%;bottom:-100px;transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:14px;background:var(--ters);color:var(--ters-yazi);
  border-radius:12px;padding:12px 16px;box-shadow:var(--sh2);transition:bottom .22s;
  max-width:calc(100vw - 24px)}
.kars-cubuk.acik{bottom:18px}
.kars-sayi{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kars-cubuk .btn{padding:9px 16px;font-size:13.5px}
.kars-cubuk .btn.pasif{opacity:.45;pointer-events:none}
/* Rengi ZIT YUZEYIN yazisindan aliyor. Eskiden sabit beyazdi cunku
   cubuk her zaman koyuydu; koyu temada cubuk acik zemine dondu ve
   "Temizle" gorunmez oldu (onizlemede goruldu). */
.kars-temizle{background:transparent;border:0;color:var(--ters-yazi);opacity:.7;
  font-size:13px;cursor:pointer;font-family:inherit}
.kars-temizle:hover{opacity:1}

/* Karsilastirma tablosu: satir basliklari sola yapisik, sutunlar kayiyor. */
.kars-ust{margin-bottom:16px;font-size:14px;color:var(--muted)}
.kars-ust a{color:var(--a);font-weight:600}
.kars-temizle-hepsi{background:transparent;border:0;color:var(--muted);font-size:14px;
  cursor:pointer;font-family:inherit;text-decoration:underline}
.kars-sar{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--yuzey)}
.kars-tablo{border-collapse:collapse;width:100%;min-width:520px}
.kars-tablo th,.kars-tablo td{padding:12px 14px;text-align:left;font-size:14px;
  border-bottom:1px solid var(--line);vertical-align:top}
.kars-tablo thead th{background:var(--soft);position:sticky;top:0;z-index:2}
.kars-etiket{width:180px;color:var(--muted);font-weight:600;background:var(--yuzey);
  position:sticky;left:0;z-index:1}
.kars-tablo thead .kars-etiket{z-index:3}
.kars-foto{display:block;width:100%;max-width:190px;height:120px;border-radius:8px;
  overflow:hidden;background:var(--soft);margin-bottom:8px}
.kars-foto img{width:100%;height:100%;object-fit:cover}
.kars-foto .yok{display:grid;place-items:center;height:100%;font-size:12.5px;color:var(--muted)}
.kars-baslik{display:block;font-weight:700;font-size:14.5px;line-height:1.4;margin-bottom:4px}
.kars-fiyat{font-weight:800;color:var(--a);font-size:16px}
.kars-fiyat small{color:var(--muted);font-weight:600;font-size:12px}
.kars-cikar{margin-top:8px;background:transparent;border:1px solid var(--line);
  border-radius:8px;padding:5px 10px;font-size:12.5px;color:var(--muted);
  cursor:pointer;font-family:inherit}
.kars-cikar:hover{border-color:#e11d48;color:#e11d48}
/* Butun ilanlarda ayni olan satir soluk: aranan sey FARK. */
.kars-ayni td{color:var(--muted);opacity:.72}
.kars-not{margin-top:12px;font-size:13px;color:var(--muted)}
.bos-kutu{background:var(--yuzey);border:1px solid var(--line);border-radius:var(--r);
  padding:32px;text-align:center}
.bos-kutu b{display:block;font-size:17px;margin-bottom:6px}
.bos-kutu p{color:var(--muted);font-size:14.5px;margin-bottom:16px}

/* Üst bardaki sayaç. Boşken JS gizliyor. */
.tb-fav{position:relative}
.fav-sayac{display:inline-block;margin-left:5px;min-width:17px;height:17px;padding:0 5px;
  background:#e11d48;color:#fff;border-radius:999px;font-weight:700;font-size:11px;line-height:17px;
  text-align:center;vertical-align:1px}

/* ============================================================
   Temaya ÖZGÜ blokların varsayılanı: GİZLİ
   ------------------------------------------------------------
   .guven-serit ve .istatistik-wrap yalnızca "Yatırım" (97) ve
   "Ofis" (106) temalarında render ediliyor. Burada gizli
   başlatılıyorlar; o iki temanın tema.css'i tek satırla geri
   açıyor (`display:block`).

   106'DA DEĞİŞEN ŞEY: yerleşim kuralları (ızgara, ikon ölçüsü,
   kırılma noktaları) yukarı, taban.css'e taşındı — iki tema
   kırk satırı kopyalamasın. GÖRÜNÜRLÜK yine tema dosyasında
   kaldı, çünkü aşağıdaki gerekçe hâlâ geçerli.

   NEDEN GEREKLİ: demo vitrinindeki canlı tasarım seçici yalnızca
   <link id="temaCss"> href'ini değiştiriyor, sayfayı yenilemiyor —
   panel bütün temaların AYNI markup'ı paylaştığı dönemde yazıldı.
   Yatırım seçiliyken başka bir temaya geçilince markup sayfada
   kalıyor ama biçimi gidiyordu. Ölçüldü: ikon 34px -> 1160px,
   başlık block -> inline, yani "Güvenilir HizmetŞeffaf ve..."
   diye bitişik bir yığın.

   Görünürlüğü de tabana alsaydık seçici başka bir temaya geçtiğinde
   bu iki blok ekranda kalırdı; o temanın anasayfasında karşılığı
   olmayan bir bant görünürdü.

   Aynı kural ikinci bir savunma hattı: markup ile CSS herhangi bir
   sebeple ayrışırsa blok görünmez, bozuk görünmez.
   ============================================================ */
.guven-serit,
.istatistik-wrap{ display:none; }

/* ============================================================
   142 — SAĞDAN SOLA (Arapça, Farsça)
   ------------------------------------------------------------
   <html dir="rtl"> tek başına metni ve flex sıralamasını zaten
   çeviriyor; burada yalnızca ELLE yön yazılmış yerler düzeltiliyor.
   Tam bir ayna tema DEĞİL: sitenin tamamını iki yöne göre yeniden
   yazmak, bu iki dilin getireceği trafikle orantısız bir iş olurdu.
   Amaç, sayfanın okunabilir ve gezilebilir olması.

   Yalnızca [dir=rtl] altında çalışıyor; Türkçe sayfaya sıfır etki.
   ============================================================ */
[dir="rtl"] .menu,
[dir="rtl"] .nav-tel,
[dir="rtl"] .nav-ac,
[dir="rtl"] .deg-oge-bas time,
[dir="rtl"] .suzgec-not a{margin-left:0;margin-right:auto}
[dir="rtl"] .kredi-taksit{margin-right:0;margin-left:auto}
/* Kendi çizdiğimiz açılır ok, kutunun SOL kenarına geçiyor. */
[dir="rtl"] .kur-secim,[dir="rtl"] .dil-secim{padding:4px 11px 4px 26px;
  background-position:14px 11px,18px 11px}
[dir="rtl"] .menu-kur .kur-secim,[dir="rtl"] .menu-kur .dil-secim{padding:9px 12px 9px 30px;
  background-position:16px 18px,21px 18px}
/* Latin harfli veriler (fiyat, m², telefon, e-posta, adres) RTL akışta
   parçalanıp ters görünüyordu; bunlar her dilde soldan sağa yazılır. */
[dir="rtl"] .fiyat,[dir="rtl"] .kur-karsilik,[dir="rtl"] .kart .ozet b{direction:ltr;unicode-bidi:isolate}

/* ============================================================
   151 — BAŞLIK VARYANTLARI
   ------------------------------------------------------------
   Bütün temalar aynı sayfayı çiziyordu: projede temaya göre
   markup değişen tek bir yer vardı, gerisi %100 CSS'ti. Bir
   şablonun kimliğini en çok taşıyan öğe BAŞLIK — ziyaretçinin
   gördüğü ilk şey.

   DÖRT VARYANT DA AYNI İŞARETLEMEYİ kullanıyor; varyant bir
   sınıf olarak <nav>'a biniyor (bs-klasik / bs-orta / bs-saydam
   / bs-arama). Dört ayrı başlık dosyası açsaydık zamanla
   ayrışır, birine eklenen dil seçici diğerinde unutulurdu.

   Temanın hangisini istediği veritabanında: Temalar.BaslikVaryanti.
   NULL = klasik, yani mevcut temaların görünümü değişmiyor.
   ============================================================ */

/* Başlıktaki arama HER temada basılıyor; yalnızca "arama"
   varyantında açılıyor. Böylece tema değişince geride sahipsiz
   markup kalmıyor. */
.bs-ara{display:none}

/* SEÇİCİLER "nav.ust" İLE BAŞLIYOR ve bu şart: taban kuralları
   "nav.ust ..." biçiminde ve özgüllükleri daha yüksek. Yalnızca
   ".bs-saydam" yazınca saydamlık hiç uygulanmıyordu (ölçüldü —
   başlık koyu zeminiyle hero'nun ÜSTÜNDE değil YANINDA duruyordu). */

/* ------------------------------------------------------------
   bs-orta — logo ortada, menü altında ayrı şeritte
   ------------------------------------------------------------
   Telefon düğmesi akıştan çıkıp sağa sabitleniyor: satırın
   içinde kalsaydı logoyu ortadan kaydırırdı.
   ------------------------------------------------------------ */
nav.ust.bs-orta .wrap{position:relative;flex-wrap:wrap;justify-content:center;
  gap:0;padding-top:16px;min-height:0}
nav.ust.bs-orta .logo{flex-basis:100%;justify-content:center;margin:0 0 12px}
nav.ust.bs-orta .menu{flex-basis:100%;justify-content:center;margin-left:0;
  border-top:1px solid var(--line);padding-top:2px}
nav.ust.bs-orta .menu > li > a{padding:16px 0}
nav.ust.bs-orta .nav-tel{position:absolute;right:20px;top:14px;margin-left:0}

/* ------------------------------------------------------------
   bs-saydam — anasayfada hero'nun üstüne biner
   ------------------------------------------------------------
   YALNIZCA hero'su olan sayfada uygulanıyor (bkz. _Layout):
   hero'suz bir sayfada başlık içeriğin üstüne binerdi.

   "top:auto" ŞART: taban kuralı "position:sticky;top:0" diyor ve
   yalnızca position'ı değiştirince o "top:0" mutlak konumda
   sayfanın TEPESİ anlamına geliyordu — başlık üst şeridin üzerine
   biniyordu (ölçüldü: nav top 0, üst şerit yüksekliği 42).

   top:auto başlığı akıştan çıkarıyor
   ama KENDİ yerinde bırakıyor (üst şeridin hemen altı). Arkasındaki
   <main> boşluğu doldurmak için yukarı kayıyor ve hero başlığın
   altından başlıyor. "top:0" yazsaydık başlık üst şeridin üzerine
   biner, sayfa iki kez kaymış görünürdü.

   Kaydırınca .katilasti geliyor (bkz. taban JS): hero geçildikten
   sonra saydam başlık fotoğrafsız zeminde okunmuyor.
   ------------------------------------------------------------ */
nav.ust.bs-saydam{position:absolute;top:auto;left:0;right:0;background:transparent;
  border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
/* Başlığın yazı rengi TEK DEĞİŞKENDE. İki durum için ayrı ayrı
   renk kuralı yazmak özgüllük savaşına dönüyordu: ".on" bağlantısı
   fazladan bir sınıf taşıdığı için saydam hâlin kuralı katılaşmış
   hâlin kuralını yeniyordu ve menü katılaştıktan sonra da BEYAZ
   kalıyordu (ölçüldü). Değişken miras yoluyla indiği için bu sorun
   yapısal olarak ortadan kalkıyor. */
nav.ust.bs-saydam{--bs-yazi:#fff}
nav.ust.bs-saydam.katilasti{--bs-yazi:var(--ink)}

/* Renk NAV'A veriliyor, bağlantılara tek tek değil: taban.css'te
   "a{color:inherit}" olduğu için menü bağlantıları zaten miras
   alıyor. Bağlantıyı doğrudan hedefleyen kural yazmak, ".on" gibi
   fazladan sınıf taşıyan durumlarla özgüllük yarışına sokuyordu
   (ölçüldü: menü katılaştıktan sonra da beyaz kalıyordu). */
nav.ust.bs-saydam{color:var(--bs-yazi)}
nav.ust.bs-saydam .logo,
nav.ust.bs-saydam .nav-ac{color:var(--bs-yazi)}
nav.ust.bs-saydam .menu > li > a:hover,
nav.ust.bs-saydam .menu > li > a.on{color:var(--bs-yazi);border-color:var(--bs-yazi)}
/* Açılır alt menü fotoğrafın üstünde değil, kendi yüzeyinde. */
nav.ust.bs-saydam .menu .alt a{color:var(--ink)}

nav.ust.bs-saydam.katilasti{position:fixed;top:0;background:var(--nav-zemin);
  border-bottom-color:var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:var(--sh)}
/* Renkler --bs-yazi'den geliyor; burada yalnızca zemin değişiyor. */

/* ------------------------------------------------------------
   bs-arama — menü ile telefon arasında dar arama kutusu
   ------------------------------------------------------------
   Portal sitelerinin kalıbı: ziyaretçi her sayfadan arama
   yapabiliyor, anasayfaya dönmesi gerekmiyor.
   ------------------------------------------------------------ */
/* Satırda dört öğe var: logo + menü + arama + telefon. Logo ve
   telefon SARMAMALI — ölçüldü, "Demo Emlak" iki satıra, telefon
   numarası üç satıra bölünüyordu. Esneyen tek öğe arama kutusu. */
nav.ust.bs-arama .logo{flex:none;white-space:nowrap}
nav.ust.bs-arama .nav-tel{flex:none;white-space:nowrap}
nav.ust.bs-arama .menu{margin-left:24px;flex:0 1 auto}
nav.ust.bs-arama .bs-ara{display:flex;align-items:center;gap:8px;margin-left:auto;
  background:var(--soft);border:1.5px solid var(--line);border-radius:999px;
  padding:0 16px;height:42px;max-width:250px;flex:1 1 130px;min-width:0;transition:.18s}
nav.ust.bs-arama .bs-ara:focus-within{border-color:var(--a);background:var(--yuzey)}
nav.ust.bs-arama .bs-ara svg{width:17px;height:17px;flex:none;stroke:var(--muted);
  fill:none;stroke-width:2;stroke-linecap:round}
nav.ust.bs-arama .bs-ara input{flex:1;min-width:0;border:0;background:transparent;
  font:inherit;font-size:14px;color:var(--ink);outline:0}
nav.ust.bs-arama .nav-tel{margin-left:14px}

@media(max-width:1250px){
  /* Menü + arama + telefon aynı satıra sığmıyor; arama kalkıyor —
     menüyü kırpmak ya da logoyu sardırmak daha kötü olurdu. */
  nav.ust.bs-arama .bs-ara{display:none}
}
@media(max-width:900px){
  /* Mobilde menü zaten çekmecede; varyantların hepsi klasik
     başlığa dönüyor. */
  nav.ust.bs-orta .wrap{flex-wrap:nowrap;justify-content:flex-start;padding-top:0}
  nav.ust.bs-orta .logo{flex-basis:auto;justify-content:flex-start;margin:0}
  nav.ust.bs-orta .nav-tel{position:static}
  nav.ust.bs-saydam{position:sticky;background:var(--nav-zemin);
    border-bottom-color:var(--line)}
  nav.ust.bs-saydam .logo,nav.ust.bs-saydam .nav-ac{color:var(--ink)}
}

/* ============================================================
   152 — HERO VARYANTLARI
   ------------------------------------------------------------
   151'deki kalıbın aynısı: dört varyant da AYNI hero
   işaretlemesini kullanıyor, varyant bir sınıf olarak
   <section class="hero">'ya biniyor. Yeni markup yok.

   Seçiciler ".hero" ile başlıyor: taban kuralları da öyle ve
   yalnızca varyant sınıfını yazmak özgüllük savaşı çıkarıyordu
   (151'de ölçüldü).
   ============================================================ */

/* ------------------------------------------------------------
   hs-tam — hero ekranı dolduruyor
   ------------------------------------------------------------
   Saydam başlıkla birlikte "tam ekran giriş" hissi veriyor.
   min-height, vh DEĞİL svh: mobil tarayıcıların adres çubuğu
   kayarken 100vh sayfayı zıplatıyor. vh yedek olarak önce
   yazılıyor (svh'yi tanımayan tarayıcı onu kullanır).
   ------------------------------------------------------------ */
.hero.hs-tam .slayt{min-height:100vh;min-height:100svh;
  display:flex;align-items:center;padding:120px 0 90px}
.hero.hs-tam .hero-ic{margin:0 auto;text-align:center}
.hero.hs-tam h1{font-size:clamp(38px,6vw,66px);max-width:20ch;margin:0 auto}
.hero.hs-tam p{margin-left:auto;margin-right:auto}
.hero.hs-tam .hero-btn{justify-content:center}
.hero.hs-tam .arama{margin-top:46px}

/* ------------------------------------------------------------
   hs-bolunmus — sol yarı düz renk, sağ yarı fotoğraf
   ------------------------------------------------------------
   Fotoğraf .slayt'ın zemininde duruyor; sağ yarıya sıkıştırıp
   sol yarıyı marka rengiyle kapatıyoruz. Karartma katmanı
   (::before) bu varyantta o kapamayı yapıyor — fotoğrafın
   üstünde ayrıca karartma gerekmiyor, metin zaten düz zeminde.
   ------------------------------------------------------------ */
.hero.hs-bolunmus .slayt{background-size:52% 100%;background-position:right center;
  background-repeat:no-repeat;padding:110px 0}
.hero.hs-bolunmus .slayt::before{
  background:linear-gradient(90deg,var(--p) 0,var(--p) 48%,transparent 56%)}
.hero.hs-bolunmus .hero-ic{max-width:46%}
.hero.hs-bolunmus h1{max-width:14ch}
.hero.hs-bolunmus p{max-width:38ch}
/* Arama kutusu tam genişlikte kalıyor: yarıya sıkışınca dört
   alan okunmaz hâle geliyordu. */
.hero.hs-bolunmus .arama{margin-top:40px}

@media(max-width:900px){
  /* Dar ekranda iki sütun yok; fotoğraf tam zemine dönüyor ve
     klasik hero gibi davranıyor. */
  .hero.hs-bolunmus .slayt{background-size:cover;background-position:center}
  .hero.hs-bolunmus .slayt::before{background:rgba(8,20,32,var(--karartma,.45))}
  .hero.hs-bolunmus .hero-ic{max-width:none}
}

/* ------------------------------------------------------------
   hs-sade — fotoğrafsız, arama odaklı dar bant
   ------------------------------------------------------------
   Portal kalıbı: ziyaretçi fotoğrafa değil arama kutusuna
   bakıyor. Zemin açık olduğu için metin rengi de dönüyor —
   .hero taban kuralında "color:#fff" var.
   ------------------------------------------------------------ */
.hero.hs-sade{color:var(--ink)}
.hero.hs-sade .slayt{background-image:none;background:var(--soft);padding:54px 0 64px}
/* Karartma ve doku katmanları fotoğraf içindi; zemin düz olunca
   ikisi de gereksiz. */
.hero.hs-sade .slayt::before,.hero.hs-sade .slayt::after{display:none}
.hero.hs-sade .hero-ic{margin:0 auto;text-align:center;max-width:44ch}
.hero.hs-sade h1{font-size:clamp(26px,3.4vw,38px);max-width:none;margin:0 auto}
.hero.hs-sade p{color:var(--muted);font-size:16.5px;margin-left:auto;margin-right:auto}
.hero.hs-sade .hero-btn{justify-content:center}
.hero.hs-sade .arama{margin-top:26px;box-shadow:var(--sh)}

/* ============================================================
   157 — HERO SLIDER
   ------------------------------------------------------------
   Buraya kadar anasayfa Sliderlar.FirstOrDefault() basiyordu:
   panel cok slaytli yonetim sunuyor, ekrana yalnizca birincisi
   dusuyordu. Artik metin katmani ve arka plan donuyor.

   .slayt'in KENDISI donmuyor. O hem arka plan katmani hem
   yerlesim kapsayicisi — hs-tam / hs-bolunmus / hs-sade
   varyantlarinin tamami ".hero.hs-X .slayt" uzerinden
   padding, min-height ve arka plan konumu veriyor. Slaytlari
   ayri .slayt'lar olarak yigsaydik on temanin hero CSS'i
   bastan yazilacakti.

   Kurallar dosyanin SONUNDA: ozgullukleri dusuk tutuldu ki
   yukaridaki varyant kurallari (.hero.hs-sade .slayt gibi)
   siraya bakilmaksizin kazanmaya devam etsin.
   ============================================================ */

/* Arka plan artik satir ici degil DEGISKENDEN geliyor. Satir ici
   background-image her tema kuralini eziyordu (152'de olculdu);
   degisken ile ozgulluk normal calisiyor ve JS tek ozelligi
   degistirerek slayt gecebiliyor. */
.hero .slayt { background-image: var(--g); }

/* GorselMobil 157'ye kadar veritabaninda duruyor ama hicbir yerde
   okunmuyordu. Dar ekranda varsa o, yoksa masaustu gorseli. */
@media (max-width: 700px) {
  .hero .slayt { background-image: var(--gm, var(--g)); }
}

/* --- Metin katmanlari --- */
/* Tek slaytli sitede .coklu hic basilmiyor: .hero-metinler duz bir
   sarmalayici olarak kaliyor ve yerlesim 157 oncesiyle birebir ayni.
   Asagidaki yigma yalnizca coklu slaytta devreye giriyor. */
.hero.coklu .hero-metinler { position: relative; }
.hero.coklu .hero-ic {
  transition: opacity .55s ease, transform .55s ease;
}
/* Ilki akista kalip yuksekligi belirliyor; digerleri uzerine biniyor.
   Hepsini mutlak yapsaydik kapsayicinin yuksekligi sifira duser ve
   arama kutusu hero'nun icine tirmanirdi. */
.hero.coklu .hero-ic + .hero-ic { position: absolute; inset: 0; }
.hero.coklu .hero-ic:not(.on) {
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;   /* gorunmeyen slaytin butonu tiklanmasin */
}

@media (prefers-reduced-motion: reduce) {
  .hero.coklu .hero-ic { transition: none; transform: none; }
  .hero.coklu .hero-ic:not(.on) { transform: none; }
}

/* --- Denetimler --- */
.hero-denetim {
  position: relative;
  z-index: 3;
  margin-top: 26px;
  display: flex;
  align-items: center;
  gap: 12px;
}
/* Hizalama hero ile ayni yonde: ortali hero'da denetim solda kalirsa
   sayfa egri gorunuyor. */
.hero.orta .hero-denetim { justify-content: center; }
.hero.sag .hero-denetim { justify-content: flex-end; }

.hero-denetim .hd-ok {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 50%;
  background: rgba(255, 255, 255, .10);
  color: inherit;
  cursor: pointer;
  transition: .16s;
}
.hero-denetim .hd-ok:hover { background: rgba(255, 255, 255, .22); }
.hero-denetim .hd-ok svg {
  width: 18px; height: 18px;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}

.hd-noktalar { display: flex; gap: 7px; }
/* Nokta 9px ama dokunma hedefi 24px: parmakla 9px'e isabet
   ettirmek mumkun degil, ::before gorunmez bir alan aciyor. */
.hd-nokta {
  position: relative;
  width: 9px; height: 9px;
  padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .42);
  cursor: pointer;
  transition: .18s;
}
.hd-nokta::before {
  content: ""; position: absolute; inset: -8px;
}
.hd-nokta:hover { background: rgba(255, 255, 255, .7); }
/* --ustu: fotografin/koyu bandin ustundeki oge. Koyu temada da
   okunur kalmasi jetonun isi (146). */
.hd-nokta.on { background: var(--ustu); width: 24px; border-radius: 999px; }

/* Acik zeminli varyantta beyaz denetim kayboluyor. */
.hero.hs-sade .hero-denetim .hd-ok {
  border-color: var(--line);
  background: var(--yuzey);
  color: var(--ink);
}
.hero.hs-sade .hd-nokta { background: rgba(0, 0, 0, .22); }
.hero.hs-sade .hd-nokta.on { background: var(--a); }

@media (max-width: 700px) {
  /* Telefonda oklar yer kapliyor ve kaydirma zaten parmakla
     yapiliyor; noktalar yeter. */
  .hero-denetim .hd-ok { display: none; }
  .hero-denetim { justify-content: center; margin-top: 20px; }
}

/* Denetim hizasi VARYANTI izlemeli, .hero.sol/orta/sag sinifini degil:
   hs-tam ve hs-sade metni hizalamadan bagimsiz ORTALIYOR
   (".hero.hs-tam .hero-ic{margin:0 auto}"). Hizalamaya baksaydik
   "sol" ayarli bir sitede metin ortada, oklar solda kalirdi — olculdu. */
.hero.hs-tam .hero-denetim,
.hero.hs-sade .hero-denetim { justify-content: center; }

/* hs-bolunmus'te metin sol yarida duruyor; denetim de orada kalmali. */
.hero.hs-bolunmus .hero-denetim { justify-content: flex-start; }

/* ============================================================
   159 — MOBIL MENU
   ------------------------------------------------------------
   Olculen sorunlar (375x812, sekiz menu ogesi olan bir site):
     - Icerik 868px, kapsayici 812px: telefon ve WhatsApp
       dugmeleri ekranin disindaydi ve kaydirmadan gorunmuyordu.
       Cekmecenin tek EYLEM blogu buydu.
     - Genislik 86vw (322px): arkada 52px'lik, ne tiklanabilen
       ne okunabilen bir serit kaliyordu.
     - Arama yoktu — emlak sitesinde en cok yapilan is.
     - padding-bottom:24px sabitti; iPhone'da ana ekran cubugu
       son dugmenin uzerine biniyordu.

   Kurallar dosyanin SONUNDA ve kendi medya sorgusunda: yukarida
   ayni seciciler var, ozgullugu esit tutup siraya guveniyoruz.
   ============================================================ */
@media(max-width:900px){

  /* Genislik: 92vw. Tam ekran YAPILMADI (o ayri bir jeton) ama
     52px'lik olu serit 30px'e iniyor — arkadaki sayfanin gorunur
     kalmasi "buradan cikabilirim" isareti, tamamen kapatmak
     ziyaretciyi baska bir sayfaya girmis gibi hissettiriyor. */
  .menu{ width:min(92vw,400px); }

  /* --- Arama --- */
  /* display SART: masaustunde .menu-bas ve .menu-alt ile birlikte
     gizleniyor; mobilde her ucunun de ayri ayri geri acilmasi gerekiyor
     (.menu-bas flex, .menu-alt grid aliyor). Unutuldugunda cekmecedeki
     arama hic gorunmuyordu — olculdu. */
  .menu-ara{ display:block; padding:12px 16px; border-bottom:1px solid var(--line); }
  .menu-ara form{
    display:flex; align-items:center; gap:9px;
    border:1.5px solid var(--line); border-radius:11px;
    padding:0 12px; background:var(--yuzey);
  }
  .menu-ara form:focus-within{ border-color:var(--a); }
  .menu-ara svg{
    width:19px; height:19px; flex:none; color:var(--muted);
    fill:none; stroke:currentColor; stroke-width:2;
    stroke-linecap:round; stroke-linejoin:round;
  }
  /* 16px ALTINA INMEYIN: iOS Safari daha kucuk yazili bir alana
     odaklaninca sayfayi kendiliginden buyutuyor (ayni esik
     .giris-kutu ve .alan icin de uygulanmis durumda). */
  .menu-ara input{
    flex:1; min-width:0; border:0; background:none; outline:0;
    padding:13px 0; font-size:16px; font-family:inherit; color:var(--ink);
  }

  /* --- Satirlar biraz sikilasti (56 -> 50) ---
     On dort satirin tamami hicbir durumda ekrana sigmiyor; amac
     sigdirmak degil, kaydirmayi kisaltmak. */
  .menu a{ padding:13px 20px; }

  /* --- Iletisim dugmeleri alta yapisiyor --- */
  /* Secici .menu > li.menu-cta: taban kuraldaki ".menu > li{position:relative}"
     ozgullugu 0,1,1 ve duz ".menu-cta" (0,1,0) onu ezemiyordu — olculdu,
     blok relative kaliyordu. */
  .menu > li.menu-cta{
    position:sticky; bottom:0; z-index:3;
    background:var(--yuzey);
    border-top:1px solid var(--line);
    margin-top:auto;
    padding:12px 20px calc(12px + env(safe-area-inset-bottom));
  }
  /* Ustundeki blok da "asagi iten" olmaktan cikiyor: iki oge birden
     margin-top:auto alirsa flex artan boslugu ARALARINA dagitiyor
     (ayni tuzak yukarida .menu-alt icin de yazili). */
  .menu > li:not(.menu-alt) + .menu-alt{ margin-top:auto; }
  .menu-cta ~ .menu-alt{ margin-top:0; }

  /* Cekmecenin kendi alt dolgusu artik gerekmiyor; CTA blogu
     safe-area'yi kendisi karsiliyor. */
  .menu{ padding-bottom:0; }
  /* CTA'si olmayan sitede (telefon ve WhatsApp bos) alt bosluk
     yine de gerekli. */
  .menu:not(:has(.menu-cta)){ padding-bottom:calc(16px + env(safe-area-inset-bottom)); }

  /* --- mm-tamekran ---
     Ekrani kaplayan menu. Sagdan kaymak yerine yukaridan aciliyor:
     tam genislikte yatay kayma, ziyaretciye "sayfa degisti"
     hissi veriyordu. */
  .menu.mm-tamekran{
    width:100%; max-width:none;
    box-shadow:none;
    transform:translateY(-100%);
  }
  .menu.mm-tamekran.acik{ transform:translateY(0); }
  /* Tam ekranda perde gorunmuyor zaten; gecisi de kapatiyoruz ki
     menunun arkasinda bir an karartma parlamasin. */
  .menu.mm-tamekran ~ .menu-perde,
  nav.ust:has(.menu.mm-tamekran) .menu-perde{ display:none; }
  /* Tam ekranda satirlar biraz daha rahat: yer var. */
  .menu.mm-tamekran a{ padding:15px 22px; font-size:16.5px; }
  .menu.mm-tamekran .menu-bas{ padding:20px 22px; }
}

/* ============================================================
   162 — KARSILASTIRMA CUBUGU MOBILDE ALT CUBUGUN ALTINDA KALIYORDU
   ------------------------------------------------------------
   .kars-cubuk z-index:60 ve bottom:18px ile yaziliydi; 132'de
   eklendiginde mobil alt cubuk (.altbar) HENUZ YOKTU. Alt cubuk
   z-index:8400 ve 56px + safe-area yuksekliginde, yani karsilastirma
   cubugu hem ARKASINDA hem ALTINDA kaliyor: ziyaretci iki ilan
   seciyor, cubugun ancak bir seridini goruyor ve "Karsilastir"
   dugmesine hic ulasamiyor (ekran goruntusuyle bildirildi).

   Ayni cakismayi .sabit-iletisim ve .filtre-ac zaten cozmus durumda;
   ikisi de 66px + safe-area kullaniyor. Cubuk da o hizaya giriyor.
   ============================================================ */
@media(max-width:900px){
  .kars-cubuk{
    /* Alt cubugun USTUNE: 8400'un uzerinde, sabit iletisim (8500)
       ile ayni seviyede degil — cubuk gecici, WhatsApp kalici. */
    z-index:8450;
    left:12px; right:12px; transform:none; max-width:none;
    /* Kapaliyken ekranin altina: transform:none oldugu icin artik
       "bottom" tek basina tasiyor. */
    bottom:-140px;
  }
  .kars-cubuk.acik{ bottom:calc(66px + env(safe-area-inset-bottom)); }

  /* Ilan listesinde filtre dugmesi de 66px'te duruyor; ikisi ust
     uste binerdi. Cubuk onun bir kat ustune cikiyor.
     :has() ile SAYFAYA gore karar veriliyor — cubuk global bir
     bilesen, "hangi sayfadayim" bilgisini kendisi tasimiyor. */
  body:has(.filtre-ac) .kars-cubuk.acik{
    bottom:calc(122px + env(safe-area-inset-bottom));
  }

  /* Dar ekranda "Temizle" ile iki dugme yan yana sigmiyordu. */
  .kars-cubuk{ gap:10px; padding:10px 12px; }
  .kars-sayi{ font-size:13px; }
}

/* 162 — sabitIletisim jetonu "ikisi" iken telefon mobilde de kaliyor.
   Varsayilanda .si-tel mobilde gizli (telefon alt cubugun bir sekmesi);
   bazi ofisler onun da WhatsApp gibi her sayfada yuvarlak bir dugme
   olarak durmasini istiyor — alt cubuktaki sekme yeterince gorunur
   gelmiyor. Ozgullugu yukaridaki ".si-tel{display:none}" kuralini
   yenecek sekilde iki sinif. */
@media(max-width:900px){
  .si-tel.si-tel-mobil{display:inline-flex}
}

/* ============================================================
   163 — KARSILASTIRMA: FARK SUZGECI + MOBIL OKUNURLUK
   ------------------------------------------------------------
   Olculdu (375px telefon): etiket sutunu 180px sabit, tablo
   min-width 520px, tavan 4 ilan -> 180 + 4x190 = 940px. Yani
   ekranin iki buçuk kati ve bir dairede ~90 ozellik satiri var.
   ============================================================ */

/* --- Fark suzgeci --- */
.kars-suzgec{margin:0 0 12px}
.kars-anahtar{display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  border:1.5px solid var(--line);border-radius:999px;padding:8px 15px 8px 12px;
  background:var(--yuzey);font-size:14px;transition:.16s}
.kars-anahtar:hover{border-color:var(--a)}
.kars-anahtar input{width:17px;height:17px;accent-color:var(--a);cursor:pointer;flex:none}
.kars-anahtar small{color:var(--muted);font-size:12.5px}
/* Acikken cerceve vurgulu: anahtarin acik oldugu, tablodaki satirlarin
   azaldigini fark etmeden de anlasilmali. */
.kars-tablo.yalniz-fark ~ * .kars-anahtar,
.kars-suzgec:has(input:checked) .kars-anahtar{border-color:var(--a);background:var(--soft)}

/* Ayni satirlari gizle. Sunucu zaten .kars-ayni basiyordu (soluk
   cizmek icin); burada ayni sinif ikinci bir ise yariyor. */
.kars-tablo.yalniz-fark .kars-ayni{display:none}

@media(max-width:900px){
  /* --- Yapisik baslik ---
     .kars-sar{overflow-x:auto} yaziyordu; CSS'te bir eksen "visible"
     digeri degilse visible da "auto"ya donuyor, yani sarmalayici DIKEYDE
     de kaydirma kutusu oluyor. Yuksekligi sinirsiz oldugu icin dikeyde
     hic kaydirilmiyor ve thead'deki position:sticky HIC DEVREYE
     GIRMIYORDU (olculdu). Yukseklik sinirlanince baslik gercekten
     yapisiyor: uzun tabloda hangi sutunun hangi ilan oldugu
     kaybolmuyor. */
  .kars-sar{max-height:calc(100vh - 210px);overflow:auto;overscroll-behavior:contain}

  /* Etiket sutunu 180 -> 110px: 375px ekranda 180px, ilanlara kalan
     yeri 195px'e dusuruyordu. Etiket adlari ("Isitma", "Yapinin
     Durumu") 110px'te iki satira sariyor ama okunuyor. */
  .kars-etiket{width:110px;min-width:110px;font-size:12.5px;line-height:1.35}
  .kars-tablo{min-width:0}
  .kars-tablo th,.kars-tablo td{padding:10px 10px;font-size:13.5px}
  /* Sutun basina en az yer: dort ilanda yatay kaydirma kaciniLmaz ama
     hucre icerigi kirpilmadan okunsun. */
  .kars-tablo thead th:not(.kars-etiket),
  .kars-tablo tbody td:not(.kars-etiket){min-width:150px}
  .kars-foto{max-width:150px;height:96px}
  .kars-baslik{font-size:13px}
  .kars-fiyat{font-size:15px}
}

/* ============================================================
   164 — CEKMECE KISAYOLLARI (Ilan Gonder / Ofis Ac / Danisman Ol /
   Favorilerim / Hesabim)
   ------------------------------------------------------------
   Bu ogeler .btn.btn-o olarak yaziliydi ama mobil blokta
   ".menu a{...;border:0}" butun cekmece baglantilarinin cercevesini
   siliyor. Sonuc: cerceveli dugme olmasi istenen bes oge, girintili
   duz metne dusmus ve ana menuyle ayirt edilemez olmustu (ekran
   goruntusuyle bildirildi).

   Dugme gorunumunu GERI GETIRMEK yerine MENU SATIRI yapiliyor: bes
   tane tam genislikte cerceveli dugme, zaten uzun olan cekmeceye 5x54px
   daha ekliyordu. Ikonlu satir hem kisa hem ana menuyle ayni ritimde.

   Ikon guvenli, cunku bu bes sayfa SABIT ve bilinen. Ana menu
   musterinin yazdigi rastgele bir liste oldugu icin 159'da oraya ikon
   konulmamisti.
   ============================================================ */
@media(max-width:900px){
  .menu-kisayol{ display:block; padding:0 !important; margin:0 !important; border-bottom:0 !important; }
  .menu-kisayol a{
    display:flex; align-items:center; gap:12px;
    padding:11px 20px; font-size:14.5px; color:var(--muted);
  }
  .menu-kisayol a:hover{ background:var(--soft); color:var(--a); }
  .menu-kisayol svg{
    width:19px; height:19px; flex:none;
    fill:none; stroke:currentColor; stroke-width:1.9;
    stroke-linecap:round; stroke-linejoin:round;
  }
  /* Favori sayaci: alt cubuktakiyle ayni rozet, satirin sagina. */
  .menu-kisayol .ab-rozet{ margin-left:auto; position:static; }

  /* Kisayol blogunun basi: ana menuden AYRILDIGINI tek cizgi soyluyor.
     Bir de baslik ("Kisayollar" gibi) denendi, cekmeceyi uzatmaktan
     baska is gormedi — ikonlar zaten ayrimi tasiyor. */
  .menu > li:not(.menu-kisayol) + .menu-kisayol{
    border-top:1px solid var(--line) !important; margin-top:6px !important; padding-top:6px !important;
  }

  /* --- Alt menuler ---
     Acik listeleniyorlar (bkz. yukaridaki ".menu .alt" kurali) ve OYLE
     KALIYOR: olculdu, yedi siteden yalnizca birinde alt menu var ve o da
     iki oge. Iki baglantiyi bir dokunusun arkasina saklamak fayda degil
     surtunme ekler.

     Degisen yalnizca GORSEL BAG: dolu bir --soft zemin, ana menuden
     kopuk ikinci bir blok gibi duruyordu. Sol kenardaki cizgi
     "bunlar ustteki ogenin altlari" diyor ve yer kaplamiyor. */
  .menu .alt{ background:none; padding:0 0 6px; }
  .menu .alt a{
    padding:10px 20px 10px 38px; font-size:14px; color:var(--muted);
    position:relative;
  }
  .menu .alt a::before{
    content:""; position:absolute; left:26px; top:0; bottom:0;
    width:2px; background:var(--line); border-radius:2px;
  }
  .menu .alt a:hover::before,
  .menu .alt a.on::before{ background:var(--a); }
}
