@charset "UTF-8";
/* ══════════════════════════════════════════════════════════════════════════
   Orhangazi Life — üretim stil sayfası
   Kaynak: _planlar/maket/orhangazilife_maket*.html (patron onayı 13.08.2026)
   Sunai · 13.08.2026 · JS 0 byte · inline <style> yok

   MAKETTEN DEĞİŞENLER (yalnız üç şey, tasarım kararı DEĞİŞMEDİ):
     1. Yazı tipi SELF-HOST (Google Fonts kaldırıldı — KVKK + CWV)
     2. İki maketin ortak CSS'i tek dosyada birleşti
     3. Boş durum / 404 / gezinme etkin durumu eklendi (yeni ekranlar)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── YAZI TİPİ · self-host ─────────────────────────────────────────────────
   Google Fonts KULLANILMIYOR: dış istek kullanıcının IP'sini Google'a
   gönderir (KVKK) ve render'ı bloklar (K-30).
   Dosyalar Türkçe alt kümeye subset edildi; ÖLÇÜLDÜ (raporda cmap dökümü):
   ç Ç ş Ş ğ Ğ ü Ü ö Ö ı I İ i + Â Î Û şapkalıları TAM.
   ⚠️ ₺ (U+20BA) yalnız Bricolage'de VAR, Instrument Sans'ta YOK →
      ₺ basan her metin display ailesinde olmak zorunda (.para / .kalem-fiyat). */
@font-face{
  font-family:"Bricolage Grotesque";
  src:url("/varlik/font/bricolage-grotesque-tr.woff2") format("woff2-variations"),
      url("/varlik/font/bricolage-grotesque-tr.woff2") format("woff2");
  font-weight:600 800;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Instrument Sans";
  src:url("/varlik/font/instrument-sans-tr.woff2") format("woff2-variations"),
      url("/varlik/font/instrument-sans-tr.woff2") format("woff2");
  font-weight:400 700;font-style:normal;font-display:swap;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

:root{
  color-scheme:light;
  --kobalt:#123A6B;  /* çini mürekkebi — başlık, damga, fiyat */
  --mercan:#C1452F;  /* İznik kırmızısı — TEK vurgu */
  --gol:#19707E;     /* göl turkuazı — bağlantı, ikon */
  --kagit:#FCFCFA;   /* sayfa zemini */
  --yuzey:#FFFFFF;   /* kart */
  --metin:#1C2430;
  --is:#55606F;      /* ikincil metin */
  --cizgi:#E4E2DC;
  --cizgi-ince:#EFEDE8;
  --wa:#25D366;      /* WhatsApp markası — sabit */
  --wa-metin:#06301F;/* 7,3:1 · beyaz metin 1,98:1 ile düşerdi */
  /* ⚠️ ÜÇÜNCÜ HÂL — kobalt/mercan çiftinin taşıyamadığı tek durum.
     Recai §12-8: "sarı uyarı rengi palette yok, ölçerek eklenmeli."
     Adı konudan: İznik sırının Kütahya kolunda görülen HARDAL sarısı —
     çini paletinin kendi dünyasından, dışarıdan getirilmiş bir uyarı sarısı
     değil. YALNIZ üç-hâl göstergesinde kullanılır (kapı 🟡 ÖLÇÜLEMEDİ,
     moderasyon SLA sayacı, bayat kapı sonucu). Fiyatsız kalemde ve
     "teyit edilmedi" durumunda KULLANILMAZ: onların dili zaten var
     (kesikli çerçeve = mühürlenmemiş · mercan = bayat).
     Ölçüldü: #8A6410 / #FCFCFA = 5,22:1 · #FBF3E2 zemin üstünde 4,92:1 */
  --hardal:#8A6410;
  --hardal-zemin:#FBF3E2;
  --hardal-cizgi:#E3CE9B;
  --imza:#00BFFE;    /* Saim App favicon — K-04, sabit */
  --r:10px; --r-s:6px;
  --olcu:1120px;
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --govde:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;
}

body{
  margin:0;background:var(--kagit);color:var(--metin);
  font-family:var(--govde);font-size:1.0625rem;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--gol);text-underline-offset:3px}
a:hover{color:var(--kobalt)}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.1;margin:0}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

/* ₺ gövde ailesinde YOK — para basan her yer display ailesinde olmalı */
.para{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}

/* Klavye odağı — asla kaldırılmaz */
:focus-visible{outline:3px solid var(--gol);outline-offset:2px;border-radius:4px}

.atla{position:absolute;left:-9999px;top:0;background:var(--kobalt);color:#fff;
  padding:.75rem 1rem;z-index:99;border-radius:0 0 var(--r-s) 0}
.atla:focus{left:0}

.sar{width:100%;max-width:var(--olcu);margin:0 auto;padding:0 1.15rem}
.ust-ara{margin-top:.85rem}
.alt-ara{margin-bottom:1.1rem}
.blok{padding:2.4rem 0}
.blok + .blok{border-top:1px solid var(--cizgi-ince)}
.gizli{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ── ikon ───────────────────────────────────────────────────────────────── */
.ikon{width:1.375rem;height:1.375rem;flex:none;fill:none;stroke:currentColor;
  stroke-width:16;stroke-linecap:round;stroke-linejoin:round}
.ikon-s{width:1.05rem;height:1.05rem}
.ikon-l{width:1.75rem;height:1.75rem}
.ikon-set{position:absolute;width:0;height:0;overflow:hidden}

/* ── üst bar ────────────────────────────────────────────────────────────── */
.ust{position:sticky;top:0;z-index:40;background:var(--kagit);border-bottom:1px solid var(--cizgi)}
.ust-ic{display:flex;align-items:center;gap:.7rem;min-height:60px}
/* 🚫 Kelime-işareti asla büyük harfe çevrilmez (Fenai kuralı): "ORHANGAZİ LİFE"
   ve "ORHANGAZI LIFE" — iki dil, iki yanlış. Kural burada da yazılı duruyor. */
.marka{display:flex;align-items:center;text-decoration:none;min-height:44px;text-transform:none}
.marka img{height:26px;width:auto;display:block}   /* ölçülmüş üst bar yüksekliği */
.menu-ac{margin-left:auto}
.menu-ac summary{list-style:none;display:flex;align-items:center;gap:.4rem;
  min-height:44px;min-width:44px;justify-content:center;cursor:pointer;
  color:var(--kobalt);font-weight:600;font-size:.92rem;border-radius:var(--r-s)}
.menu-ac summary::-webkit-details-marker{display:none}
.gezinti{position:absolute;left:0;right:0;top:100%;background:var(--yuzey);
  border-bottom:1px solid var(--cizgi);box-shadow:0 12px 24px -18px rgba(18,58,107,.4)}
.gezinti ul{display:flex;flex-direction:column;max-width:var(--olcu);margin:0 auto;padding:.4rem 1.15rem 1rem}
.gezinti a{display:flex;align-items:center;min-height:46px;color:var(--metin);
  text-decoration:none;font-weight:500;border-bottom:1px solid var(--cizgi-ince)}
.gezinti a:hover{color:var(--gol)}
/* Bulunduğun yer görünür olmalı (UX kuralı: Navigation · Active State) */
.gezinti a[aria-current="page"]{color:var(--kobalt);font-weight:700;
  box-shadow:inset 3px 0 0 var(--kobalt);padding-left:.55rem}
.gezinti--masa{display:none}

/* ── hero ───────────────────────────────────────────────────────────────── */
.hero{padding:2.1rem 0 2rem}
.kas{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--is);margin-bottom:.65rem}
.hero-bas{font-size:clamp(2.05rem,7.4vw,3.5rem);color:var(--kobalt);font-weight:800;
  letter-spacing:-.04em;margin-bottom:1.05rem}
.hero-bas label{cursor:text}

.ara-kutu{display:flex;align-items:center;gap:.55rem;background:var(--yuzey);
  border:1.5px solid var(--kobalt);border-radius:var(--r);padding:.35rem .35rem .35rem .8rem}
.ara-kutu:focus-within{outline:3px solid var(--gol);outline-offset:2px}
.ara-ikon{color:var(--kobalt)}
.ara-girdi{flex:1;min-width:0;border:0;background:none;font:inherit;color:var(--metin);
  padding:.6rem 0;min-height:44px}
.ara-girdi:focus{outline:none}
.ara-girdi::placeholder{color:#72757B}
.ara-btn{border:0;background:var(--kobalt);color:#fff;font:inherit;font-weight:600;
  border-radius:var(--r-s);padding:0 1.15rem;min-height:44px;cursor:pointer;
  transition:background-color .16s ease}
.ara-btn:hover{background:#0D2C52}

/* ⚠️ gap .45rem = 7,2px idi; dokunma hedefleri arası eşik 8px (UX vt ·
   Touch/Spacing). 13.08'de `.alt li` düzeltildi ama AYNI AİLENİN diğer
   iki üyesi (.cipler, .mah) gözden kaçtı — kapı ikisini de sayıyordu.
   Bir kusur ailesi bulunca aileyi taramak gerekir, tek üyeyi değil. */
.cipler{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.85rem}
.cip{display:inline-flex;align-items:center;min-height:44px;padding:0 .85rem;
  border:1px solid var(--cizgi);background:var(--yuzey);border-radius:999px;
  color:var(--is);text-decoration:none;font-size:.92rem;font-weight:500;
  transition:border-color .16s ease,color .16s ease}
.cip:hover{border-color:var(--gol);color:var(--gol)}

/* dürüstlük satırı — hero'nun tezi */
.durust{margin-top:1.5rem;padding-top:1.1rem;border-top:1px solid var(--cizgi);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;color:var(--is);font-size:.98rem}
.durust b{color:var(--kobalt);font-weight:700}
.durust a{font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}

/* ── bölüm başlığı ──────────────────────────────────────────────────────── */
.bas-sira{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.bas{font-size:clamp(1.3rem,4.3vw,1.75rem);color:var(--kobalt)}
.bas-yan{font-size:.92rem;font-weight:600;white-space:nowrap;
  display:inline-flex;align-items:center;min-height:44px}

/* ── teyit damgası — İMZA ELEMAN ────────────────────────────────────────── */
.damga{display:inline-flex;flex-direction:column;align-items:center;gap:.05rem;
  position:relative;border:2px solid currentColor;border-radius:5px;
  padding:.5rem .85rem;color:var(--kobalt);background:transparent;
  transform:rotate(-2deg);transform-origin:left center;
  font-family:var(--govde);text-align:center;line-height:1.15}
.damga::before{content:"";position:absolute;inset:3px;border:1px solid currentColor;
  border-radius:2px;opacity:.5;pointer-events:none}
.damga-ust{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.damga-alt{font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.damga--mini,.damga--s{padding:.3rem .55rem;transform:rotate(-1.5deg)}
.damga--mini .damga-ust,.damga--s .damga-ust{font-size:.55rem}
.damga--mini .damga-alt,.damga--s .damga-alt{font-size:.8rem}
/* Eşik aşıldı: renk DEĞİŞİR ve METİN de değişir — sadece-renkle-anlam yasağı */
.damga--bayat{color:var(--mercan)}

/* ── bugün şeridi ───────────────────────────────────────────────────────── */
.bugun{display:grid;gap:.9rem}
.nobet{background:var(--yuzey);border:1px solid var(--cizgi);border-left:4px solid var(--kobalt);
  border-radius:var(--r);padding:1.05rem 1.1rem}
.nobet-ust{display:flex;align-items:center;gap:.5rem;color:var(--kobalt);
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.nobet-ad{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--metin);
  letter-spacing:-.02em;margin:.4rem 0 .15rem}
.nobet-adres{color:var(--is);font-size:.95rem}
.nobet-saat{margin-top:.5rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--kobalt)}
.nobet-kaynak{margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--cizgi);
  color:var(--is);font-size:.8rem;font-variant-numeric:tabular-nums}

.eylemler{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.9rem}   /* 8px alt piksel yuvarlamasında 7,8 ölçüldü → 8,8px */
.eylem{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  min-height:48px;padding:0 1.1rem;border-radius:var(--r-s);text-decoration:none;
  font-weight:600;font-size:.97rem;border:1.5px solid var(--kobalt);color:var(--kobalt);
  background:var(--yuzey);transition:background-color .16s ease,color .16s ease}
.eylem:hover{background:var(--kobalt);color:#fff}
.eylem--sade{border-color:var(--cizgi);color:var(--is)}
.eylem--sade:hover{background:var(--kobalt);border-color:var(--kobalt);color:#fff}

/* ── hızlı erişim ───────────────────────────────────────────────────────── */
.hizli{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.hizli li:first-child{grid-column:1 / -1}
.hkart{display:flex;align-items:center;gap:.7rem;min-height:64px;padding:.8rem .9rem;
  background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);
  text-decoration:none;color:var(--metin);font-weight:600;
  transition:border-color .16s ease,color .16s ease}
.hkart:hover{border-color:var(--kobalt);color:var(--kobalt)}
.hkart .ikon{color:var(--gol)}
.hkart small{display:block;font-weight:400;font-size:.8rem;color:var(--is);line-height:1.3}

/* ── mekân kartları ─────────────────────────────────────────────────────── */
.kartlar{display:grid;gap:.85rem}
.mkart{background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:border-color .16s ease}
.mkart--one{border-color:var(--kobalt);border-width:1.5px}
.mkart:hover{border-color:var(--kobalt)}
.mkart:focus-within{outline:3px solid var(--gol);outline-offset:2px}
/* Kartın tamamı dokunma hedefi — başlık bağlantısı kartı kaplıyor */
.mkart-ad a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
/* Fotoğraf yok — yer tutucu ince şerit: yeri ayırır (CLS), yalan söylemez */
.foto-yok{height:76px;background:#F3F2EE;border-bottom:1px solid var(--cizgi);
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  color:#676B73;text-align:left;padding:.8rem 1rem}
.foto-yok span{font-size:.78rem;font-weight:600;letter-spacing:.03em;display:block}
.foto-yok small{font-size:.72rem;font-weight:400;display:block;line-height:1.35}
.mkart-ic{padding:.95rem 1rem 1.05rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.mkart-ic .damga{align-self:flex-start}
.mkart-kas{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--is)}
.mkart-ad{font-family:var(--display);font-size:1.2rem;font-weight:700;letter-spacing:-.025em;line-height:1.2}
.mkart-ad a{color:var(--metin);text-decoration:none}
.mkart-ad a:hover{color:var(--kobalt);text-decoration:underline}
.mkart-alt{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.rozet-menu{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;
  letter-spacing:.04em;color:var(--mercan);border:1px solid var(--mercan);
  border-radius:999px;padding:.22rem .6rem;text-transform:uppercase}
.bekliyor{font-size:.86rem;color:var(--is)}
.git{display:inline-flex;align-items:center;gap:.25rem;font-weight:600;font-size:.92rem;
  color:var(--gol);min-height:44px}

/* davet kartı */
.davet{background:var(--kobalt);color:#fff;border-radius:var(--r);padding:1.2rem 1.15rem;
  display:flex;flex-direction:column;gap:.75rem}
.davet h3{font-size:1.15rem;color:#fff}
.davet p{color:#CBD8E8;font-size:.95rem}
.davet a{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  align-self:flex-start;min-height:48px;padding:0 1.15rem;background:#fff;color:var(--kobalt);
  border-radius:var(--r-s);text-decoration:none;font-weight:700}

/* ── mahalleler ─────────────────────────────────────────────────────────── */
.mah{display:flex;flex-wrap:wrap;gap:.55rem}  /* .5rem tam 8px verir ama alt piksel yuvarlaması 7,7px ölçtü — .55rem (8,8px) */
.mah a{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;
  border:1px solid var(--cizgi);background:var(--yuzey);border-radius:var(--r-s);
  text-decoration:none;color:var(--metin);font-weight:600;font-size:.95rem}
.mah a:hover{border-color:var(--kobalt);color:var(--kobalt)}
.mah-not{margin-top:.8rem;color:var(--is);font-size:.92rem}
.mah-not a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* ── uyarı kutusu ───────────────────────────────────────────────────────── */
.uyari{display:flex;gap:.65rem;background:#FDF3F1;border:1px solid #EBC3BA;
  border-left:4px solid var(--mercan);border-radius:var(--r);padding:.85rem 1rem;
  color:#7A2A1B;font-size:.93rem}
.uyari .ikon{color:var(--mercan);margin-top:.15rem;flex:none}

/* ══ İŞLETME PROFİLİ ═══════════════════════════════════════════════════════ */
body.profil{padding-bottom:88px} /* yapışkan sipariş çubuğu içeriği örtmesin */
body.profil--siparissiz{padding-bottom:0} /* numara yok → çubuk da yok */

/* ⚠️ .kirinti aynı elemanda .sar ile (<nav class="kirinti sar">) — ikisi de tek
   sınıf, özgüllük EŞİT → kaynak sırası kazanır (.kirinti 281 > .sar 90).
   Bu yüzden BURADA KISAYOL YAZILMAZ:
     padding kısayolu  → .sar'ın `padding:0 1.15rem` yatayını siler
     margin  kısayolu  → .sar'ın `margin:0 auto` ORTALAMASINI siler (14.08 hatası:
                         `margin:.85rem 0 .2rem` sol/sağı 0 yaptı, kırıntı
                         >1120px ekranda sola kaçtı, gövde ortada kaldı)
   Kural: bu kural bloğunda yalnız TEK YÖNLÜ (longhand) yaz. */
.kirinti{margin-top:.85rem;margin-bottom:.2rem;font-size:.86rem;color:var(--is)}
.kirinti ol{display:flex;flex-wrap:wrap;gap:0 .5rem;align-items:center}
.kirinti li{display:flex;align-items:center}
/* min-width: kısa kırıntı ("Keşfet" 41px) hedefi 44px'i tutturamıyordu (Kapı 9) */
.kirinti a{color:var(--is);text-decoration:none;display:inline-flex;align-items:center;
  justify-content:center;min-height:44px;min-width:44px}
.kirinti a:hover{color:var(--gol);text-decoration:underline}
.kirinti li:not(:last-child)::after{content:"›";margin-left:.5rem;color:#72757B}
.kirinti [aria-current]{color:var(--metin);font-weight:600}

.kapak{height:120px;background:#F3F2EE;border:1px solid var(--cizgi);
  border-radius:var(--r);margin-top:.7rem;display:flex;align-items:center;
  justify-content:center;gap:.7rem;color:#676B73;text-align:left;padding:1rem 1.2rem}
.kapak span{font-size:.85rem;font-weight:600;letter-spacing:.03em;display:block}
.kapak small{font-size:.78rem;display:block;line-height:1.4}

.kunye{padding:1.5rem 0 .4rem}
.kunye .kas{display:flex;flex-wrap:wrap;align-items:center;gap:0 .35rem}
.kunye .kas a{color:var(--is);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.kunye .kas a:hover{color:var(--gol);text-decoration:underline}
.kunye h1{font-size:clamp(1.8rem,6.2vw,2.7rem);color:var(--kobalt);font-weight:800;
  letter-spacing:-.035em;margin:.5rem 0 1rem}

.satirlar{display:flex;flex-direction:column;gap:.6rem;margin:1.2rem 0 0;
  padding-top:1.1rem;border-top:1px solid var(--cizgi)}
.satir{display:flex;gap:.7rem;align-items:flex-start}
.satir .ikon{color:var(--gol);margin-top:.18rem}
.satir b{display:block;font-weight:600}
.satir small{display:block;color:var(--is);font-size:.88rem;line-height:1.45}
.satir a{text-decoration:none;font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.satir a:hover{text-decoration:underline}

.saatler{margin-top:.35rem}
.saatler summary{cursor:pointer;color:var(--gol);font-size:.88rem;font-weight:600;
  min-height:44px;display:inline-flex;align-items:center;gap:.3rem;list-style:none}
.saatler summary::-webkit-details-marker{display:none}
/* ⚠️ maket "▾" karakteri kullanıyordu; ÖLÇTÜM: U+25BE her iki yazı tipinde de
   YOK → sistem yedeğine düşüyordu. Phosphor caret SVG ile değiştirildi. */
.saatler summary .ikon{transition:transform .16s ease}
.saatler[open] summary .ikon{transform:rotate(180deg)}
.saatler table{border-collapse:collapse;margin-top:.4rem;font-size:.9rem}
.saatler td{padding:.22rem .9rem .22rem 0;color:var(--is)}
.saatler td+td{font-variant-numeric:tabular-nums;padding-right:0}
.saatler tr[data-bugun] td{color:var(--metin);font-weight:700}

.profil-ag{display:block}
.bolum-blok{padding:2.2rem 0;border-top:1px solid var(--cizgi-ince)}

.menu-bas{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.menu-bas h2{font-size:clamp(1.5rem,5vw,2rem);color:var(--kobalt)}
.menu-not{margin-top:.65rem;color:var(--is);font-size:.92rem}

.mbolum{margin-top:1.8rem}
.mbolum-bas{font-family:var(--govde);font-size:.74rem;font-weight:700;letter-spacing:.17em;
  text-transform:uppercase;color:var(--mercan);padding-bottom:.5rem;
  border-bottom:1.5px solid var(--cizgi)}
.kalemler{margin-top:.35rem}
.kalem{display:flex;align-items:baseline;gap:.4rem;padding:.62rem 0}
.kalem + .kalem{border-top:1px solid var(--cizgi-ince)}
.kalem-ad{font-weight:500}
.kalem-ad small{display:block;font-size:.85rem;color:var(--is);font-weight:400;line-height:1.4}
.kalem-nokta{flex:1 1 1.5rem;min-width:1.5rem;border-bottom:2px dotted #CFCCC4;
  transform:translateY(-.28rem)}
.kalem-fiyat{font-family:var(--display);font-weight:700;font-size:1.06rem;color:var(--kobalt);
  font-variant-numeric:tabular-nums;white-space:nowrap}

.paket{margin-top:1.7rem;padding:.95rem 1.05rem;background:var(--yuzey);
  border:1px solid var(--cizgi);border-radius:var(--r);font-size:.95rem;color:var(--is)}
.paket b{color:var(--metin)}

.profil-yan{margin:1.6rem 0 .4rem}
.wa-kart{background:var(--yuzey);border:1.5px solid var(--kobalt);border-radius:var(--r);
  padding:1.15rem 1.1rem;display:flex;flex-direction:column;gap:.85rem}
.wa-kart h2{font-size:1.2rem;color:var(--kobalt)}
.wa-kart p{font-size:.94rem;color:var(--is)}
.wa-btn{display:flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:56px;padding:0 1.2rem;background:var(--wa);color:var(--wa-metin);
  border-radius:var(--r-s);text-decoration:none;font-family:var(--display);
  font-weight:800;font-size:1.08rem;letter-spacing:-.02em;transition:filter .16s ease}
.wa-btn:hover{filter:brightness(.93);color:var(--wa-metin)}
.wa-btn .ikon{stroke-width:18}
/* Mobilde eylem yapışkan çubukta; kart aynı düğmeyi tekrarlamaz */
.wa-btn--kart{display:none}
.onizleme{background:#F1F6F2;border:1px dashed #B9CFBF;border-radius:var(--r-s);
  padding:.7rem .85rem;font-size:.9rem;color:#2A4436;line-height:1.5}
.onizleme span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:#4C6856;margin-bottom:.25rem}

.sahiplik{display:flex;gap:.7rem;align-items:flex-start;padding:1rem 1.05rem;
  background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);font-size:.95rem}
.sahiplik .ikon{color:var(--gol);margin-top:.15rem}
.sahiplik a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

.yakin-bas{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--is);margin-bottom:.7rem;font-family:var(--govde)}
.yakin{display:grid;gap:.5rem;margin-bottom:1.6rem}
.yakin a{display:flex;align-items:center;justify-content:space-between;gap:.7rem;
  min-height:56px;padding:.6rem .95rem;background:var(--yuzey);border:1px solid var(--cizgi);
  border-radius:var(--r);text-decoration:none;color:var(--metin);font-weight:600;
  transition:border-color .16s ease,color .16s ease}
.yakin a:hover{border-color:var(--kobalt);color:var(--kobalt)}
.yakin small{display:block;font-weight:400;font-size:.82rem;color:var(--is)}
.yakin .ikon{color:var(--gol)}

.wa-serit{position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:var(--kagit);border-top:1px solid var(--cizgi);
  padding:.6rem 1.15rem calc(.6rem + env(safe-area-inset-bottom))}
.wa-serit .wa-btn{max-width:var(--olcu);margin:0 auto}

/* ══ BOŞ DURUM / 404 — K-20'nin görünen yüzü ═══════════════════════════════
   Kural (UX vt · Feedback/Error Recovery): hata tek başına bırakılmaz,
   çıkış yolu verilir. Kural (Feedback/Empty States): boş ekran değil,
   ne olduğu + ne yapılacağı. Sahte doluluk ÜRETİLMEZ. */
.bos{padding:3rem 0 3.5rem;max-width:44rem}
.bos-kod{font-family:var(--govde);font-size:.72rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mercan)}
.bos h1{font-size:clamp(1.7rem,5.5vw,2.6rem);color:var(--kobalt);font-weight:800;
  letter-spacing:-.035em;margin:.55rem 0 .9rem}
.bos p{color:var(--is)}
.bos p + p{margin-top:.7rem}
.bos .eylemler{margin-top:1.6rem}
.bos-liste{margin-top:1.9rem;padding-top:1.2rem;border-top:1px solid var(--cizgi)}
.bos-liste h2{font-size:.74rem;font-family:var(--govde);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--is);margin-bottom:.7rem}
.bos-liste ul{display:flex;flex-wrap:wrap;gap:.5rem}   /* 7,2px → 8px (aynı aile) */
/* ⚠️ ÖZGÜLLÜK KAZASI (gözle bakışta yakalandı, kapılar yeşildi):
   seçici `.bos-liste a` idi ve yeni `.bos-not` cümlesinin İÇİNDEKİ bağlantıyı
   da çipe çeviriyordu — cümlenin ortasına düşmüş bir düğme gibi duruyordu.
   Çip yalnız LİSTE ögesine ait: `.bos-liste ul a`. Tasarım DNA'sının uyardığı
   "tip-tabanlı ve eleman-tabanlı seçici karışımı" kazasının aynısı. */
.bos-liste ul a{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;
  border:1px solid var(--cizgi);background:var(--yuzey);border-radius:var(--r-s);
  text-decoration:none;color:var(--metin);font-weight:600;font-size:.95rem}
.bos-liste ul a:hover{border-color:var(--kobalt);color:var(--kobalt)}
/* 404 çıkış yolu: açık sayfa yoksa çalışmayan bağlantı vermek yerine tek cümle */
.bos-not{color:var(--is);font-size:.95rem;line-height:1.6;max-width:44ch}
.bos-not a{font-weight:600;text-decoration:underline;padding-block:.32em}
/* Arama YALNIZ /ara ucu açıkken çizilir; etiket görünür (placeholder etiket değildir) */
.bos-ara{margin-top:1.6rem;max-width:34rem}
.bos-ara label{display:block;font-size:.9rem;font-weight:600;color:var(--metin);margin-bottom:.4rem}
/* Hazırlık şeridi — ana sayfada yayında kayıt yokken görünür. Sahte doluluk
   yerine sayının kendisini söyler; "yakında" demez, ne yapıldığını söyler. */
.hazirlik{display:flex;gap:.75rem;align-items:flex-start;background:var(--yuzey);
  border:1px solid var(--cizgi);border-left:4px solid var(--kobalt);
  border-radius:var(--r);padding:1.05rem 1.1rem}
.hazirlik .ikon{color:var(--kobalt);margin-top:.15rem;flex:none}
.hazirlik b{display:block;color:var(--metin);font-weight:700;margin-bottom:.2rem}
.hazirlik p{color:var(--is);font-size:.95rem}
.hazirlik a{font-weight:600;display:inline-flex;align-items:center;min-height:44px}

/* ── alt bilgi ──────────────────────────────────────────────────────────── */
.alt{border-top:1px solid var(--cizgi);background:var(--yuzey);padding:2rem 0 2.4rem;margin-top:.5rem}
.alt-ag{display:grid;gap:1.4rem}
.alt h2{font-family:var(--display);font-size:.95rem;color:var(--kobalt);margin:0 0 .5rem;letter-spacing:-.01em}
/* ⚠️ Kapı 9 ölçtü: 44px'lik bağlantılar arasında yalnız 4px kalıyordu
   (UX vt · Touch: hedefler arası ≥8px). .3rem → .55rem, ölçülen aralık 9px. */
.alt li{margin-bottom:.55rem}
.alt a{color:var(--is);text-decoration:none;font-size:.95rem;display:inline-flex;align-items:center;min-height:44px}
.alt a:hover{color:var(--gol);text-decoration:underline}
.alt-son{margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid var(--cizgi-ince);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  color:var(--is);font-size:.85rem}
.imza-bag{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-s)}
.imza-bag svg{width:26px;height:26px} /* K-04: hedef ≥24px, dokunma kutusu 44px */

/* ── responsive ─────────────────────────────────────────────────────────── */
@media (min-width:600px){
  .kartlar{grid-template-columns:repeat(2,1fr)}
  .hizli{grid-template-columns:repeat(3,1fr)}
  .hizli li:first-child{grid-column:auto}
  .yakin{grid-template-columns:repeat(2,1fr)}
  .kalem-fiyat{font-size:1.12rem}
}
@media (min-width:900px){
  .blok{padding:3.2rem 0}
  .hero{padding:3.4rem 0 3rem}
  .ara,.cipler,.durust{max-width:46rem}
  .bugun{grid-template-columns:1.4fr 1fr;align-items:start}
  .kartlar{grid-template-columns:repeat(3,1fr)}
  .hizli{grid-template-columns:repeat(5,1fr)}
  .hkart{flex-direction:column;align-items:flex-start;justify-content:center;min-height:100px}
  .alt-ag{grid-template-columns:repeat(4,1fr)}
  .menu-ac{display:none}
  .gezinti--masa{display:block;margin-left:auto;position:static;border:0;box-shadow:none;background:none}
  .gezinti--masa ul{flex-direction:row;gap:1.35rem;padding:0;align-items:center}
  .gezinti--masa a{min-height:44px;border:0;font-size:.95rem;color:var(--is);white-space:nowrap}
  .gezinti--masa a:hover{color:var(--gol)}
  .gezinti--masa a[aria-current="page"]{color:var(--kobalt);font-weight:700;box-shadow:none;
    padding-left:0;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
  .ust-ic{gap:1.6rem}
  .bolum-blok{padding:2.8rem 0}
}
@media (min-width:1024px){
  body.profil{padding-bottom:0}
  .wa-serit{display:none}
  /* DOM sırası künye → WhatsApp kartı → menü; masaüstünde kart sağ sütunda
     ve İLK EKRANDA. Tek işaretleme, iki düzen. */
  .profil-ag{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0 2.6rem;align-items:start}
  /* ⚠️ Sipariş kartı yoksa 340px'lik sütun boş kalıyordu ve içerik gereksiz
     daralıyordu (masaüstünde gözle bakışta yakalandı; sayısal kapıların
     hepsi yeşildi). Gövde sınıfı zaten durumu taşıyor, :has() gerekmiyor. */
  body.profil--siparissiz .profil-ag{display:block}
  .kunye{grid-column:1;grid-row:1;padding-top:1.5rem}
  .profil-yan{grid-column:2;grid-row:1 / span 2;position:sticky;top:80px;margin:1.5rem 0 0}
  .profil-ana{grid-column:1;grid-row:2}
  .kunye h1{max-width:18ch}
  .kapak{height:150px}
  .wa-btn--kart{display:flex}
}

/* ══ İÇERİK SAYFASI · mahalle · keşfet · pillar ════════════════════════════
   Sunai · 13.08.2026 · Şifai'nin 52 Markdown dosyası için.

   ⚠️ ÖZGÜLLÜK NOTU: global sıfırlama `p{margin:0}` ve `ul,ol{list-style:none}`
      diyor. Uzun metin bunları GERİ ister; `.yazi p` (0,2,0) ve `.yazi ul`
      (0,2,0) global tek-eleman seçicileri (0,0,1) yener. Sıfırlamayı
      DEĞİŞTİRMİYORUM — kart/liste bileşenlerinin tamamı ona dayanıyor.

   Ölçülen kurallar (ui-ux-pro-max · Typography):
      satır uzunluğu 65-75 karakter → `max-width:68ch`
      satır yüksekliği 1.5-1.75     → gövde 1.72
   Ölçülen kural (Navigation/Sticky): 60px yapışkan üst bar çapa hedefini
      örter → `scroll-margin-top`. */

.yazi-ag{display:block}
.yazi-bas{padding:1.6rem 0 0}
.yazi-bas .kas{margin-bottom:.55rem}
.yazi-bas h1{font-size:clamp(1.85rem,6.4vw,2.9rem);color:var(--kobalt);font-weight:800;
  letter-spacing:-.035em;margin:0 0 1rem;max-width:20ch}

/* ⚠️ ÖLÇÜLDÜ, VARSAYILMADI — `ch` TUZAĞI:
   `1ch` = "0" glifinin genişliği (Instrument Sans 17px'te **11,31px**), ama
   Türkçe gövde metninde ortalama karakter **7,84px**. Yani `68ch` = 769px =
   **98 karakter/satır** demek; kural 65-75 diyor. İlk sürümüm `max-width:68ch`
   yazmıştı ve kapı yeşildi (kural "68ch" olarak yazılıydı) — kuralı SAYIYLA
   sınayınca %40 sapma çıktı. Doğru değer: 49ch ≈ 554px ≈ **71 karakter**.
   Kapsayıcıya değil METİN ÖGESİNE uygulanır: tablo ve omurga ızgarası sütunun
   tamamını kullanmalı, onlar okunacak satır değil. */
.yazi{font-size:1.0625rem;line-height:1.72}
.yazi p,.yazi .yazi-liste,.sss dt,.sss dd{max-width:49ch}
.yazi .not{max-width:54ch}
.yazi .not p{max-width:none}
.yazi p{margin:0 0 1.05rem}
.yazi p:last-child{margin-bottom:0}
.yazi b{font-weight:700;color:var(--metin)}
.yazi code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;
  background:#F3F2EE;border:1px solid var(--cizgi);border-radius:4px;padding:.05em .35em}
/* Giriş 18,24px: 49ch orada 76 karakter veriyordu (ölçüldü) → 46ch = 72 */
.yazi--giris{font-size:1.14rem;line-height:1.65;color:var(--is)}
.yazi--giris p{max-width:46ch}
.yazi--giris b{color:var(--metin)}

.yazi section{padding-top:2.1rem}
.yazi section + section{margin-top:.2rem}
/* ⚠️ GÖZLE BAKIŞ: bölüm ayracı (h2'nin üst çizgisi) sütunun TAMAMINI
   kaplıyordu (1084px) ama altındaki metin 555px'te bitiyordu — çizgi metne
   ait görünmüyor, havada duruyordu. Ayraç okuma sütunuyla AYNI genişlikte
   olmalı: 34.7rem = 555px (ölçülen paragraf genişliği). */
.yazi h2{font-size:clamp(1.28rem,4.2vw,1.68rem);color:var(--kobalt);margin:0 0 .9rem;
  padding-top:.9rem;border-top:2px solid var(--cizgi);max-width:34.7rem}
.yazi h3{font-family:var(--display);font-size:1.1rem;font-weight:700;color:var(--metin);
  letter-spacing:-.02em;margin:1.7rem 0 .6rem}
/* Yapışkan üst bar (60px) çapayı örtmesin */
.yazi h2,.yazi h3,.yazi section{scroll-margin-top:76px}
/* ⚠️ emojisi ikon DEĞİL: başlıktaki uyarı Phosphor SVG ile çizilir */
.yazi h2.bas-uyari,.yazi h3.bas-uyari{display:flex;align-items:center;gap:.5rem;color:var(--mercan)}
.yazi h2.bas-uyari .ikon,.yazi h3.bas-uyari .ikon{flex:none}

.yazi-liste{list-style:disc;padding-left:1.2rem;margin:0 0 1.05rem}
ol.yazi-liste{list-style:decimal}
.yazi-liste li{margin-bottom:.5rem}
.yazi-liste li::marker{color:var(--gol)}
.yazi a{font-weight:500}
/* ── SATIR İÇİ BAĞLANTI — 44px kuralından BİLİNÇLİ SAPMA, gerekçesiyle ───
   WCAG 2.5.8 (Target Size Minimum) cümle içindeki bağlantıyı AÇIKÇA muaf
   tutar: "hedef bir cümlenin içindeyse veya boyutu hedef olmayan metnin
   satır yüksekliğiyle sınırlanmışsa". Prozadaki 652 bağlantıyı 44px'e
   zorlamak her satırı şişirir ve metnin ritmini bozar.
   Yaptığım: dokunma alanını **satır kutusunun tamamına** (≈29px) genişletmek.
   `padding-block` satır içi kutuda YERLEŞİMİ değiştirmez, yalnız isabet
   alanını büyütür; negatif margin gerekmez.
   ⚠️ Kapı 9 bu muafiyeti tanımıyor ve satır içi bağlantıları kırmızı yakıyor —
      bulgu Fedai/Görai'ye yan bulgu olarak yazıldı, kapı susturulmadı. */
.yazi-liste a,.yazi p a,.sss dd a{text-decoration:underline;text-decoration-thickness:1px}
/* Kapı 9 ölçtü: kural yalnız `p` ve `li` altına iniyordu; `dd`, `.not p`,
   tablo hücresi 19-21px kalmıştı. Kural metin bağlamının TAMAMINA yazıldı. */
.yazi a{padding-block:.32em}
/* Gezinme rolündeki bağlantılar TAM hedef alır — cümle içi muafiyet onlara işlemez */
.omurga a,.kunye-kart dd a,.kaynaklar a{padding-block:0}
/* Veri tablosundaki bağlantı gezinmedir (31 mahalle listesi): satır büyür, hedef 44px olur */
/* min-width: kısa mahalle adları ("Tekke" 41px, "Fatih" 35px) genişlikte
   kalıyordu; kutu büyür, metin hizası değişmez (justify-content: flex-start). */
table.veri a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding-block:0}

/* ── not kutusu (⚠️ paragrafı ve alıntı) ─────────────────────────────────
   Emoji yerine Phosphor ikon. Renk TEK BAŞINA anlam taşımaz: uyarı kutusunun
   ikonu ve metni de vardır (UX vt · Accessibility/Color Only). */
.yazi .not{display:flex;gap:.7rem;background:var(--yuzey);border:1px solid var(--cizgi);
  border-left:4px solid var(--is);border-radius:var(--r);padding:.9rem 1.05rem;
  margin:0 0 1.15rem;font-size:.98rem;color:var(--is)}
.yazi .not p{margin:0}
.yazi .not--uyari{background:#FDF3F1;border-color:#EBC3BA;border-left-color:var(--mercan);color:#7A2A1B}
.yazi .not--uyari .ikon{color:var(--mercan);margin-top:.15rem;flex:none}
.yazi .not b{color:inherit}

/* ── TEYİT ROZETİ — imza elemanın satır içi kardeşi ──────────────────────
   `[SAHA TEYİDİ GEREKLİ]` işareti yayında ham köşeli parantez olarak GÖRÜNMEZ;
   yazarın koyduğu yerde bu rozete dönüşür. Kesikli çerçeve = damgalanmamış:
   dolu çerçeve "gittik, sorduk" demektir, burada gidilmedi. */
.teyit-im{display:inline-flex;align-items:center;gap:.28rem;vertical-align:baseline;
  border:1.5px dashed var(--is);border-radius:999px;padding:.05rem .5rem .1rem;
  font-family:var(--govde);font-size:.8rem;font-weight:600;line-height:1.35;
  color:var(--is);background:var(--kagit);white-space:nowrap}
.teyit-im .ikon{flex:none}
.ikon-xs{width:.85rem;height:.85rem}
/* Metin içinde kalan uyarı işareti (tablo hücresi, künye değeri) — emoji değil */
.ikon-uyari{color:var(--mercan);vertical-align:-.1em;margin-right:.2em}
.yazi .kunye-artik{padding-top:1.4rem}
.not--uyari .teyit-im{color:#7A2A1B;border-color:#B9705F;background:#FFF7F5}

/* ── damgasız damga (sayfa düzeyi durum) ─────────────────────────────────
   Aynı kutu, aynı eğim, KESİKLİ çerçeve. Üç durum metinle ayrılır. */
.damga--kesik{border-style:dashed;color:var(--is)}
.damga--kesik::before{border-style:dashed}

.derleme{display:flex;align-items:flex-start;gap:.9rem;flex-wrap:wrap;
  margin:1.35rem 0 0;padding-top:1.1rem;border-top:1px solid var(--cizgi)}
.derleme p{flex:1 1 16rem;color:var(--is);font-size:.92rem;line-height:1.55;margin:0}
.derleme a{font-weight:600;display:inline-flex;align-items:center;min-height:44px}

/* ── künye kartı ─────────────────────────────────────────────────────────
   ⚠️ Değeri olmayan satır HİÇ ÇİZİLMEZ (şablon kuralı). Nüfus kaynağı yok →
      nüfus satırı yok; "—" bile basılmaz. Boş alan boş görünür. */
.yan-kunye{margin:1.7rem 0 0}
.kunye-kart{background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);
  padding:1.05rem 1.1rem 1.15rem}
.kunye-kart h2{font-size:.74rem;font-family:var(--govde);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--is);margin:0 0 .35rem}
.kunye-kart dl{margin:0}
/* ⚠️ GÖZLE BAKIŞ BULGUSU (sayısal kapılar yeşilken): ilk sürüm etiket solda /
   değer SAĞA DAYALI idi. "Kırsal mahalle (eski köy)" ve "~6,6 km (kuş uçuşu)"
   sarınca sağa dayalı iki satıra düşüyor ve künye kırık görünüyordu — üstelik
   sağa dayalı sarmalayan metin en zor okunan hizalamadır.
   Çözüm: etiket ÜSTTE, değer ALTTA, ikisi de sola dayalı. Sarma sorunu
   yapısal olarak ortadan kalkıyor; künye bir tablo değil, bir künyedir. */
.kunye-kart dl > div{padding:.62rem 0;border-top:1px solid var(--cizgi-ince)}
.kunye-kart dt{color:var(--is);font-size:.82rem;line-height:1.35;margin-bottom:.12rem}
.kunye-kart dd{margin:0;font-weight:600;line-height:1.4;min-width:0;
  overflow-wrap:break-word}
.kunye-kart dd a{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;
  font-weight:700;text-decoration:none}
.kunye-kart dd a:hover{text-decoration:underline}

/* ── SSS ─────────────────────────────────────────────────────────────────
   AKORDEON YOK: her cevabın ilk cümlesi doğrudan yanıt; kapalı akordeon onu
   hem taramadan hem alıntıdan gizlerdi. */
.sss dl{margin:0}
.sss dl > div{padding:1rem 0;border-top:1px solid var(--cizgi-ince)}
.sss dl > div:first-child{border-top:0;padding-top:.2rem}
.sss dt{font-family:var(--display);font-weight:700;font-size:1.04rem;color:var(--kobalt);
  letter-spacing:-.015em;margin-bottom:.35rem}
.sss dd{margin:0;color:var(--is)}

/* ── iç link omurgası ────────────────────────────────────────────────────
   652 bağlantı, 0 kırık. Şablon bağlantı EKLEMEZ ve ÇIKARMAZ. */
/* ── iç link omurgası — GEZİNMEDİR, cümle değil ──────────────────────────
   ⚠️ İlk sürümde bağlantılar satır içi duruyordu; Kapı 9 ölçtü: sarılan
      satırlarda hedefler arası **7px** kalıyordu (eşik 8px). Bunlar prozanın
      içindeki bağlantılar değil, sayfanın omurgası — bu yüzden `.mah a` ve
      `.bos-liste a` ile AYNI çip dilini kullanıyorlar. Yeni bileşen değil,
      var olan gezinme dilinin tekrarı. */
.omurga ul{display:grid;gap:.55rem}
.omurga li{padding:.7rem .9rem .55rem;background:var(--yuzey);border:1px solid var(--cizgi);
  border-radius:var(--r);font-size:.94rem;color:var(--is);line-height:1.55}
.omurga a{display:inline-flex;align-items:center;min-height:44px;padding:0 .8rem;
  margin:.32rem .6rem .32rem 0;border:1px solid var(--cizgi);background:var(--kagit);
  border-radius:var(--r-s);color:var(--metin);text-decoration:none;
  font-weight:600;font-size:.93rem;transition:border-color .16s ease,color .16s ease}
.omurga a:hover{border-color:var(--kobalt);color:var(--kobalt)}

/* ── kaynaklar ───────────────────────────────────────────────────────────
   Kapalı başlar (UX vt · Content/Truncation), çünkü kaynak listesi okurun
   değil denetleyenin aradığı şeydir — ama saklanmaz. */
.kaynaklar{margin-top:2.4rem;border:1px solid var(--cizgi);border-radius:var(--r);
  background:var(--yuzey);max-width:54ch}
.kaynaklar summary{display:flex;align-items:center;gap:.55rem;min-height:52px;padding:0 1rem;
  cursor:pointer;list-style:none;font-weight:600;font-size:.94rem;color:var(--kobalt);
  border-radius:var(--r)}
.kaynaklar summary::-webkit-details-marker{display:none}
.kaynaklar summary span{flex:1}
.kaynaklar summary .kaynak-ok{transition:transform .16s ease;color:var(--is)}
.kaynaklar[open] summary .kaynak-ok{transform:rotate(180deg)}
.kaynaklar ul{padding:0 1rem .3rem;display:grid;gap:.55rem}
.kaynaklar li{font-size:.88rem;color:var(--is);line-height:1.55;padding-left:.9rem;
  border-left:2px solid var(--cizgi)}
.kaynak-not{padding:.2rem 1rem 1rem;font-size:.82rem;color:var(--is);line-height:1.5}

/* ── veri tablosu ────────────────────────────────────────────────────────
   Kaydırma SAYFAYA değil tabloya ait (UX vt · Responsive/Horizontal Scroll:
   375px'te 6 sütunlu tablo sayfayı kaydırıyordu). Klavyeyle de kaydırılır. */
.tablo-sar{overflow-x:auto;margin:0 0 1.15rem;border:1px solid var(--cizgi);
  border-radius:var(--r);background:var(--yuzey)}
.tablo-sar:focus-visible{outline:3px solid var(--gol);outline-offset:2px}
table.veri{border-collapse:collapse;width:100%;font-size:.94rem}
table.veri th,table.veri td{padding:.62rem .85rem;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--cizgi-ince)}
table.veri thead th{font-family:var(--govde);font-size:.72rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--is);
  border-bottom:1.5px solid var(--cizgi);white-space:nowrap}
table.veri tbody th{font-weight:600;color:var(--metin)}
table.veri tr:last-child th,table.veri tr:last-child td{border-bottom:0}

.ham-satir{white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:.85rem;
  background:#FDF3F1;border:1px dashed var(--mercan);border-radius:var(--r-s);padding:.6rem .8rem}

@media (min-width:900px){
  .yazi-bas{padding-top:2.2rem}
  .omurga ul{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
  /* Aynı DOM, iki düzen: künye masaüstünde sağ sütunda.
     ⚠️ YAPIŞKAN DEĞİL — 5-7 satırlık başvuru verisi takip edilecek bir eylem
        değil. İşletme profilinde yapışkan olan şey sipariş kartıdır. */
  .yazi-ag{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0 2.8rem;align-items:start}
  .yazi-bas{grid-column:1;grid-row:1}
  .yan-kunye{grid-column:2;grid-row:1 / span 2;margin-top:2.2rem}
  .yazi--govde{grid-column:1;grid-row:2}
  /* Künyesi olmayan sayfa (keşfet) 320px'lik boş sütun bırakmaz */
  body.yazi-sayfa--kunyesiz .yazi-ag{display:block}
}

/* ── hareket azaltma ────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .damga{transform:none}
  .profil-yan{position:static}
}

/* ══ /ara — TEK KUTUDAN ARAMA ══════════════════════════════════════════════
   Sunai · 14.08.2026 · JS 0 byte (form GET, sunucu çizer)

   ⚠️ Arama kutusu YENİDEN TASARLANMADI: ana sayfadaki `.ara-kutu` bileşeninin
      aynısı kullanılıyor. Aynı işi yapan iki farklı görünüm, arayüzün
      sözlüğünü bölerdi.
   ⚠️ Otomatik tamamlama YOK — UX vt `Search/Autocomplete` kuralı BİLİNÇLİ
      reddedildi: öneri ya JS ya her tuşta sunucu isteği ister, ikisi de
      halka açık sayfanın 0-byte sözleşmesini bozar (K-30). Telafi: form GET,
      sonuç sayfası paylaşılabilir ve yer imlenebilir bir adrestir. */

.ara-bas{padding:2rem 0 .4rem}
.ara-h1{font-size:clamp(1.7rem,6vw,2.6rem);color:var(--kobalt);font-weight:800;
  letter-spacing:-.035em;margin:0 0 1rem}
.ara-etiket{display:block;font-size:.92rem;font-weight:600;color:var(--is);
  margin-bottom:.5rem;max-width:44ch;line-height:1.45}
.ara-h2{font-size:.74rem;font-family:var(--govde);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--is);margin:0 0 .7rem}
.ara-not{color:var(--is);font-size:.96rem;line-height:1.6;max-width:46ch}
.ara-not a{font-weight:600;padding-block:.32em}

/* ── İMZA · arama muhasebesi ──────────────────────────────────────────────
   Panelin satır muhasebesiyle AYNI gramer: girdi → çıktının ayrıştırması.
   Kullanıcıya ne kadar veri tarandığı ve neyin neden görünmediği tek satırda
   söylenir. "0 sonuç bulundu" yerine geçen şey budur. */
.ara-muhasebe{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .55rem;
  margin:1.4rem 0 .2rem;padding:.65rem .85rem;background:var(--yuzey);
  border:1px solid var(--cizgi);border-left:4px solid var(--kobalt);
  border-radius:var(--r);font-size:.93rem;color:var(--is);line-height:1.5;
  font-variant-numeric:tabular-nums}
.ara-muhasebe .am-girdi{font-family:var(--display);font-weight:700;color:var(--metin)}
.ara-muhasebe .am-ok{color:var(--kobalt);font-weight:700}
.ara-muhasebe .am-parca{white-space:nowrap}
.ara-muhasebe .am-parca b{font-family:var(--display);font-weight:700;color:var(--metin)}

/* ── grup ─────────────────────────────────────────────────────────────────
   ⚠️ GRUP BAŞINA KAPI DURUMU: bir grup iki tamamen farklı sebeple boş
      olabilir — (a) öyle bir kayıt hiç yok, (b) kayıt var ama yayında değil
      (K-20). Jenerik arama ikisine de "0 sonuç" der; biz hangisi olduğunu
      söylüyoruz. Sitenin tezinin aramaya uygulanmış hâli budur. */
.ara-grup{padding-top:1.6rem}
.ara-grup-bas{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.7rem}
.ara-grup-bas h2{font-family:var(--govde);font-size:.74rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--is)}
.ara-sayi{font-family:var(--display);font-weight:700;color:var(--kobalt);
  font-variant-numeric:tabular-nums;font-size:.95rem}
.ara-liste li{display:flex;align-items:center;gap:.7rem;
  border-bottom:1px solid var(--cizgi-ince)}
.ara-liste a{flex:1;min-width:0;display:block;padding:.7rem 0;min-height:56px;
  text-decoration:none;color:inherit}
.as-ad{display:block;font-family:var(--display);font-weight:700;font-size:1.05rem;
  letter-spacing:-.02em;color:var(--metin);line-height:1.3}
.ara-liste a:hover .as-ad{color:var(--gol)}
.as-alt{display:block;font-size:.9rem;color:var(--is);margin-top:.1rem}
.as-damga{flex:none;font-size:.78rem;font-weight:700;color:var(--kobalt);
  font-variant-numeric:tabular-nums;text-align:right}
.ara-bos{background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);
  padding:1rem 1.05rem}
.ara-bos p{color:var(--is);font-size:.96rem;line-height:1.6;max-width:48ch}
.ara-bos p + p{margin-top:.55rem}
.ara-bos b{color:var(--metin);font-weight:700}
.ara-bos a{font-weight:600;padding-block:.32em}
/* İpucu çipleri — gezinme rolünde, tam 44px hedef (satır içi muafiyet yok) */
.ara-cip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.ara-cip a{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;
  border:1px solid var(--cizgi);background:var(--yuzey);border-radius:var(--r-s);
  color:var(--metin);text-decoration:none;font-weight:600;font-size:.93rem}
.ara-cip a:hover{border-color:var(--kobalt);color:var(--kobalt)}

/* ══ /etkinlikler — AJANDA OMURGASI ════════════════════════════════════════
   ⚠️ TAKVİM IZGARASI REDDEDİLDİ: belediyenin tüm arşivi 23 kayıt; bir ay
      ızgarası ekranın büyük bölümünü boş kutuyla doldurur — yani sayfa
      "burada bir şey yok" der ve bunu SÜSLEYEREK der. Tek sütun, zaman
      sıralı ajanda.
   ⚠️ Tarih burada dekorasyon değil YAPININ KENDİSİ: doktrin "sıra ancak
      içerik gerçekten sıralıysa" der; tarih gerçekten sıralıdır. */

.etk-suzgec ul{display:flex;flex-wrap:wrap;gap:.5rem;padding:.4rem 0 0}
.etk-suzgec a,.etk-yok{display:inline-flex;align-items:center;gap:.45rem;
  min-height:44px;padding:0 .9rem;border-radius:var(--r-s);
  font-weight:600;font-size:.93rem;text-decoration:none}
.etk-suzgec a{border:1px solid var(--cizgi);background:var(--yuzey);color:var(--metin)}
.etk-suzgec a:hover{border-color:var(--kobalt);color:var(--kobalt)}
.etk-suzgec a[aria-current="page"]{border-color:var(--kobalt);border-width:2px;
  background:#EEF3F9;color:var(--kobalt);font-weight:700}
/* ⚠️ SIFIR DÖNECEK SÜZGEÇ DÜĞMEYE DÖNMEZ — ölü uca giden bir çip, çıkmazı
   süslemektir. 404 sayfasında arama kutusunu çizmeme kuralının aynısı. */
.etk-yok{border:1px dashed var(--cizgi);color:var(--is);cursor:default}
.etk-sayi{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--is)}
.etk-suzgec a[aria-current="page"] .etk-sayi{color:var(--kobalt)}

.etk-ajanda{margin:0}
/* Gün başlığı = omurga. `aria-hidden`: tam tarih her kayıtta ayrıca yazılı,
   görsel gruplama işitsel bağlamı bozmasın. */
.etk-gun{display:flex;align-items:center;gap:.65rem;padding:1.5rem 0 .5rem}
.etk-gun:first-child{padding-top:.2rem}
.etk-gun-no{font-family:var(--display);font-size:2.1rem;font-weight:800;
  color:var(--kobalt);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.etk-gun-ad{font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--is);line-height:1.25}
.etk-kayit{border-top:1px solid var(--cizgi-ince);padding:.85rem 0}
.etk-zaman{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--is);
  font-variant-numeric:tabular-nums;margin-bottom:.2rem}
.etk-im{display:inline-flex;align-items:center;padding:.05rem .5rem .1rem;
  border:1px solid var(--cizgi);border-radius:999px;background:var(--yuzey);
  font-size:.78rem;font-weight:700;color:var(--gol)}
.etk-ad{font-size:1.18rem;letter-spacing:-.025em;line-height:1.28}
.etk-ad a{color:var(--metin);text-decoration:none;display:inline-flex;
  align-items:center;min-height:44px}
.etk-ad a:hover{color:var(--gol)}
.etk-yer{display:flex;align-items:center;gap:.35rem;font-size:.92rem;color:var(--is);
  margin-top:.1rem}
.etk-yer .ikon{flex:none;color:var(--is)}
.etk-arsiv{margin-top:1.8rem;padding-top:1.1rem;border-top:1px solid var(--cizgi)}
.etk-arsiv a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* Etkinlik künyesi — mahalle künye kartının kardeşi: etiket ÜSTTE, değer
   ALTTA, ikisi de sola dayalı. (Sağa dayalı sarmalayan metin en zor okunandır;
   bu ders 13.08 gözle bakışında ölçüldü.) */
.etk-kunye{margin:1.3rem 0 0;max-width:34.7rem}
.etk-kunye > div{padding:.7rem 0;border-top:1px solid var(--cizgi-ince)}
.etk-kunye dt{color:var(--is);font-size:.82rem;line-height:1.35;margin-bottom:.12rem}
.etk-kunye dd{margin:0;font-weight:600;line-height:1.5;overflow-wrap:break-word}
.etk-kunye dd a{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;
  font-weight:700;text-decoration:none}
.etk-kunye dd a:hover{text-decoration:underline}
.etk-bitis{font-weight:400;color:var(--is);font-size:.92rem}
.yazi-h2-benzeri{font-family:var(--display);font-size:1.28rem;color:var(--kobalt);
  margin:0 0 .9rem;padding-top:.9rem;border-top:2px solid var(--cizgi);max-width:34.7rem}

@media (min-width:900px){
  .ara-bas{padding-top:3rem}
  .ara-h1{max-width:18ch}
  .etk-gun-no{font-size:2.5rem}
}

/* ══ /mahalleler — MUHTAR DEFTERİ ══════════════════════════════════════════
   Sunai · 14.08.2026

   ⚠️ KART IZGARASI REDDEDİLDİ. Bu sayfanın tek gerçek değeri 31 muhtarın
      telefon numarası (PLAN'ın kendi gerekçesi). Kart ızgarası seçilseydi
      31 fotoğrafsız gri dikdörtgen çıkar, numara kartın dibinde küçük metne
      düşerdi. Burada numara BİR DÜĞMEDİR: 44 px hedef, tabular rakam, tel:.
   ⚠️ SATIRI KAPLAYAN GÖRÜNMEZ BAĞLANTI YOK (`.mkart-ad a::after` kalıbı).
      Satırda iki ayrı hedef var (mahalle sayfası + arama); üstlerine üçüncü
      bir katman koymak ikisini de yutardı. */
.mliste{display:grid;gap:.55rem}          /* 8,8px — alt piksel yuvarlaması payı */
.mrow{display:flex;align-items:center;gap:.6rem .9rem;flex-wrap:wrap;
  background:var(--yuzey);border:1px solid var(--cizgi);border-radius:var(--r);
  padding:.35rem .95rem .6rem;transition:border-color .16s ease}
.mrow:hover{border-color:var(--kobalt)}
.mrow:focus-within{outline:3px solid var(--gol);outline-offset:2px}
.mrow-ic{flex:1 1 10rem;min-width:0}
.mrow-ad{font-family:var(--display);font-size:1.1rem;font-weight:700;
  letter-spacing:-.02em;line-height:1.2}
.mrow-ad a{display:inline-flex;align-items:center;min-height:44px;
  color:var(--metin);text-decoration:none}
.mrow-ad a:hover{color:var(--kobalt);text-decoration:underline}
.mrow-muhtar{font-size:.9rem;color:var(--is);line-height:1.35;
  overflow-wrap:break-word;margin-top:-.35rem}
.mrow-not{font-size:.82rem;color:var(--is);line-height:1.4;margin-top:.2rem}
/* Numara: kobalt metin + kağıt zemin = 8,6:1. Hover'da zemin kobalt olur ve
   metin beyaza döner — iki durumda da eşiğin çok üstünde. */
.mrow-tel{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;
  min-height:44px;padding:0 .85rem;border:1.5px solid var(--cizgi);
  border-radius:var(--r-s);background:var(--kagit);color:var(--kobalt);
  text-decoration:none;font-weight:700;font-size:.95rem;
  font-variant-numeric:tabular-nums;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.mrow-tel:hover{background:var(--kobalt);border-color:var(--kobalt);color:#fff}

/* ══ /kesfet — METİN ÖNCELİKLİ DİZİN ═══════════════════════════════════════
   ⚠️ `parca/kart` KULLANILMADI: 18 kaydın hiçbirinin fotoğrafı yok ve uydurma
      görsel yasak. Kart kalıbı 18 tane "Fotoğraf bekleniyor" yer tutucusu
      üretirdi — kart.php'nin kendi uyarısının ("gri dikdörtgen kolonu")
      tam olarak gerçekleşmesi. Bir yer tutucu dürüsttür; on sekizi sayfa olur.
      Fotoğraflar geldiği gün ızgaraya geçmek tek `grid` satırıdır. */
.kliste{display:grid}
.krow{border-top:1px solid var(--cizgi-ince);padding:.75rem 0 .9rem}
.krow:first-child{border-top:0;padding-top:.1rem}
.krow-ad{font-family:var(--display);font-size:1.15rem;font-weight:700;
  letter-spacing:-.025em;line-height:1.28}
.krow-ad a{display:inline-flex;align-items:center;min-height:44px;
  color:var(--metin);text-decoration:none}
.krow-ad a:hover{color:var(--gol);text-decoration:underline}
.krow-ozet{color:var(--is);font-size:.94rem;line-height:1.55;max-width:62ch;margin-top:-.3rem}
.krow-durum{margin-top:.5rem}
/* Kesikli rozet = MÜHÜRLENMEMİŞ. Damganın kardeşi ama mührü yok; dolu
   çerçeve "gittik, sorduk" demek ve bu 17 sayfa için doğru değil. */
.rozet-kesik{display:inline-flex;align-items:center;border:1px dashed #B4AFA3;
  border-radius:999px;padding:.18rem .65rem;background:var(--yuzey);
  font-size:.76rem;font-weight:700;letter-spacing:.03em;color:var(--is)}
.cip-sayi{margin-left:.45rem;font-weight:700;font-variant-numeric:tabular-nums}

/* ══ kategori kökü — ÜST KATEGORİ KARTLARI ════════════════════════════════
   Kart görünümü `.hkart`'ın ta kendisi (ana sayfadaki "Nereye bakalım?"
   kartı). Yeni bir kart dili ÜRETİLMEDİ: aynı iş, aynı görünüm. Değişen
   yalnız ızgara — `.hizli` ilk ögeyi tam genişlik yapar, kategori kökünde
   hiçbir kategori diğerinden büyük değildir. */
.kat-ag{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}

/* ══ KÖKEN BEYANI — damgasız kaydın görünür karşılığı ══════════════════════
   ⚠️ ALARM DEĞİL, DURUM. `.uyari` (mercan/kırmızı) kullanılmadı: bugün
      künyelerin neredeyse tamamı damgasız ve her sayfada kırmızı yanan bir
      kutu, kırmızının anlamını tüketirdi. Kırmızı BAYAT'a ayrıldı — orada
      gerçekten bir şey bozulmuştur.
   ⚠️ Kesikli çerçeve bu projede zaten "mühürlenmemiş" demek
      (`.damga--kesik`). Yeni dil icat edilmedi, var olan doğru yere kondu.
   Kontrast (ölçüldü, formülle): #1C2430/#FAF9F6 = 14,9:1 · #55606F = 6,05:1
   · #19707E = 5,45:1 — üçü de 4,5:1 eşiğinin üstünde. */
.beyan{display:flex;align-items:flex-start;gap:.7rem;
  background:#FAF9F6;border:1px dashed #C6C1B5;border-radius:var(--r);
  padding:.85rem 1rem}
.beyan .ikon{flex:none;color:var(--is);margin-top:.15rem}
.beyan-ic{min-width:0}
.beyan-bas{color:var(--metin);font-weight:600;font-size:.95rem;line-height:1.5}
.beyan-alt{color:var(--is);font-size:.88rem;line-height:1.5;margin-top:.2rem}
.beyan-bag{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;
  color:var(--gol);font-weight:700;font-size:.93rem}
.beyan-bag:hover{color:var(--kobalt)}

@media (min-width:760px){
  .mliste{grid-template-columns:repeat(2,1fr)}
  /* İki sütunda ÜST ÇİZGİYİ İKİ ÖGE birden kaybetmeli; tek `:first-child`
     kuralı sağ sütunun ilk ögesinde çizgi bırakırdı (gözle bakışta yakalanır
     ama önce burada engellendi). */
  .krow:nth-child(2){border-top:0;padding-top:.1rem}
  .kliste{grid-template-columns:repeat(2,1fr);column-gap:2.2rem}
  .kat-ag{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1024px){
  .kat-ag{grid-template-columns:repeat(4,1fr)}
}
