/* Codex V3 profil sayfası — bizim eklerimiz.
 * Codex'in kendi CSS'i (codex-profil.css) değiştirilmez; bu dosya ondan
 * sonra yüklenir, yeni teslimde ayrıştırma tekrar çalıştırılabilsin diye.
 */

/* ---- Font ----------------------------------------------------------------
 * Codex profil sayfasında `.profile-page` kuralı `font-family: Arial` diyor
 * ve `:root`'taki DM Sans tanımını eziyor — teslimin kendi hatası (diğer üç
 * sayfada bu kural yok). Kullanıcı ana sayfadan profile geçince font
 * değişiyordu. ⚠️ Referanstan bilinçli sapma; CEO onayıyla (2026-09-06).
 */
.profile-page,
.profile-page button,
.profile-page input,
.profile-page select,
.profile-page textarea {
  font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---- Konum haritası ------------------------------------------------------
 * Teslimde OpenStreetMap iframe'i vardı (dış bağımlılık; üstelik sınırları
 * örnek kaydın konumuna sabitti). Yerine kendi Leaflet mini haritamız kondu;
 * yükseklik kuralı iframe'e özel olduğu için div 0 piksel kalıyordu.
 */
.profile-map-wrap .mini-harita {
  width: 100%;
  height: 100%;
  min-height: 370px;
}

/* ---- Kontrast: iki çelişkili durum --------------------------------------
 * Renklerin çoğu ayrıştırma katmanında düzeltiliyor (arac/codex-ayir.py).
 * Şu ikisi orada çözülemez, çünkü aynı renk hem açık hem koyu zeminde
 * kullanılıyor — tek bir değer ikisini birden sağlayamıyor:
 *   1) Mavi eylem düğmesi: üstündeki koyu yazı 3,68 · açık yazı 3,26 idi.
 *      Zemin koyulaştıkça açık yazı düzelir, koyu yazı bozulur → yazı beyaza
 *      çevrildi (beyaz, koyu mavi üstünde 7,4).
 *   2) Koyu altbilgideki marka vurgusu: orada renk KOYULAŞTIRILAMAZ,
 *      açık tona alınıyor.
 */
.profile-primary-action,
.profile-primary-action small,
.profile-primary-action span {
  color: #ffffff;
}

.profile-footer .profile-brand em { color: #b9c8ff; }

/* ---- Dokunma hedefi ≥24px (pagespeed becerisi, madde 9) ------------------
 * Ölçüldü (390px): kırıntı bağlantıları 15px, metin bağlantıları 16-17px,
 * altbilgi bağlantıları 15px idi.
 */
.profile-breadcrumb a,
.profile-crumbs a,
.profile-header nav a,
.profile-footer a,
.profile-intro a,
.profile-library a.profile-more,
.profile-owner-cta a,
.profile-sources a,
.profile-sources div a,
.profile-sources p + a,
.profile-section-heading a,
.profile-library-heading a,
.profile-claim a,
.profile-side-card a,
.profile-owner-card a {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-block: 3px;
}

/* ---- Diyetisyen.Club yorumları --------------------------------------------
 * Şartname: docs/sartname/2026-09-07-yorum-on-yuz.md (işlev) ve
 *           docs/sartname/2026-09-07-dort-ekran-tasarim.md §4.4 (görünüm).
 * Google puanından TAMAMEN AYRI bir blok — sablon/yorum.js bu class'ları arıyor,
 * isim değiştirilirse ekran bozulur.
 *
 * 2026-09-07 tipografi turu (Ertan: "yazılar ufak kalmış, büyüteceksin"):
 * gövde 13,5 → 16,5px · ad 14 → 17px · tarih 12 → 15px · etiket 13 → 15px
 * · girdi 14 → 17px · rozet 10 → 12px. Hiçbir metin 15px'in altına inmiyor.
 * Yıldız seçici belirginleşti (30 → 40px, dolu #a97a09 = 3,84 · boş #8391a3
 * = 3,21; ikisi de WCAG arayüz eşiği 3,0'ın üstünde — eski #d7dce3 1,38'di).
 * PROFİL SAYFASININ DİĞER BÖLÜMLERİNE DOKUNULMADI.
 */
.profile-yorumlar { padding-top: 110px; scroll-margin-top: 100px; }
/* ⚠️ Seçici bilerek uzun: Codex'in `.profile-section-heading>p:last-child
   :not(.profile-kicker)` kuralı 14px dayatıyor ve daha yüksek özgüllükte.
   Yalnız YORUM bölümünün açıklaması büyütülüyor; profilin diğer 9 bölümünün
   aynı kuralı olduğu gibi kalıyor (Ertan onlara dokunulmasını istemedi). */
.profile-yorumlar .profile-section-heading > p.yorum-not:last-child,
.yorum-not { color: #56667b; max-width: 68ch; margin-top: 14px; font-size: 16px; line-height: 1.7; }

/* Üye yorumu ortalaması — Google puanı bloğuyla asla birleşmez, kendi kutusu. */
.yorum-ozet {
  display: inline-flex; align-items: baseline; gap: 8px;
  color: var(--p-ink); background: #f3f6fb; border: 1px solid var(--p-line); border-radius: 999px;
  margin-top: 28px; padding: 10px 20px; font-size: 17px; font-weight: 700;
}
.yorum-ozet small { color: #56667b; font-weight: 600; font-size: 16px; }
.yorum-ozet b { color: var(--p-ink); font-size: 20px; }

.yorum-liste { display: flex; flex-direction: column; gap: 16px; margin-top: 22px; }
.yorum { border: 1px solid var(--p-line); border-radius: 18px; padding: 22px 24px; background: #fff; }
.yorum-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.yorum-ust b { color: var(--p-ink); font-size: 17px; letter-spacing: -.01em; }
.yorum-ust time { color: #56667b; margin-left: auto; font-size: 16px; }
.yorum p { color: #526176; margin-top: 12px; font-size: 16.5px; line-height: 1.75; }
.yildizlar { display: inline-flex; gap: 3px; }
.yildizlar svg { width: 17px; height: 17px; }
.yildizlar .dolu { color: #a97a09; }
.yildizlar .bos-yildiz { color: #8391a3; }
.rozet { border-radius: 999px; padding: 5px 13px; font-size: 13px; font-weight: 700; letter-spacing: .01em; }
.rozet-yesil { color: #176449; background: #e3f2e9; }
.yorum-yanit {
  border-left: 3px solid var(--p-blue); background: #f5f7ff; border-radius: 0 14px 14px 0;
  margin-top: 16px; padding: 14px 18px;
}
.yorum-yanit b { font-size: 16px; }
.yorum-yanit p { color: #526176; margin-top: 6px; }

/* "Henüz yorum yok" — bugün EN SIK görülen hâl (0 yorum), o yüzden çıplak
   gri cümle değil, davet eden kendi kutusu var. */
.yorum-bos {
  display: grid; justify-items: center; text-align: center; gap: 8px;
  margin-top: 22px; padding: 40px 24px;
  border: 1px dashed #ced7e5; border-radius: 18px;
  background: linear-gradient(180deg, #f8f9ff 0%, #f3f6fb 100%);
}
.yorum-bos .ikon {
  width: 52px; height: 52px; display: grid; place-items: center; border-radius: 999px;
  background: #e3f2e9; color: #176449; margin-bottom: 4px;
}
.yorum-bos .ikon svg { width: 24px; height: 24px; }
.yorum-bos b { color: var(--p-ink); font-size: 18px; letter-spacing: -.01em; }
.yorum-bos p { color: #56667b; font-size: 16px; line-height: 1.7; max-width: 50ch; margin: 0; }

.yorum-kutu { border: 1px solid var(--p-line); border-radius: 24px; background: #fffefb; margin-top: 30px; padding: 30px; }
.yorum-kutu > .yorum-form > h3,
.yorum-kutu-baslik { color: var(--p-ink); font-size: 20px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 6px; }
.yorum-form { display: flex; flex-direction: column; gap: 20px; max-width: 620px; }
.yorum-alan { display: flex; flex-direction: column; gap: 8px; }
.yorum-alan label { color: var(--p-ink); font-size: 16px; font-weight: 700; }
.yorum-alan input, .yorum-alan textarea {
  border: 1px solid #ced7e5; border-radius: 12px; color: var(--p-ink); background: #fff;
  padding: 13px 15px; font: inherit; font-size: 17px; line-height: 1.6; resize: vertical;
}
.yorum-alan textarea { min-height: 130px; }
.yorum-alan input::placeholder, .yorum-alan textarea::placeholder { color: #6a788b; }
.yorum-alan input:hover, .yorum-alan textarea:hover { border-color: #9eafc2; }
.yorum-alan input:focus-visible, .yorum-alan textarea:focus-visible { outline: 3px solid rgba(22,100,71,.35); outline-offset: 1px; }

.yorum-yildiz-secici { border: 0; padding: 0; margin: 0; }
.yorum-yildiz-secici legend { color: var(--p-ink); padding: 0; margin-bottom: 8px; font-size: 16px; font-weight: 700; }
.yorum-yildiz-satir { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; width: fit-content; }
.yorum-yildiz-satir input {
  position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0; padding: 0;
}
.yorum-yildiz-satir label {
  cursor: pointer; color: #8391a3; font-size: 40px; line-height: 1; padding: 2px 4px;
  min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
  transition: color .15s, transform .15s;
}
.yorum-yildiz-satir .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.yorum-yildiz-satir input:checked ~ label,
.yorum-yildiz-satir label:hover,
.yorum-yildiz-satir label:hover ~ label { color: #a97a09; }
.yorum-yildiz-satir label:hover { transform: scale(1.08); }
.yorum-yildiz-satir input:focus-visible + label { outline: 3px solid rgba(22,100,71,.35); outline-offset: 2px; border-radius: 8px; }
@media (prefers-reduced-motion: reduce) { .yorum-yildiz-satir label { transition: none; } }

/* Honeypot: insan görmez, autofill/bot doldurur. */
.yorum-bal-alan { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; }

.yorum-form button[type=submit] {
  align-self: flex-start; color: #fff; background: var(--p-ink); border: 0; border-radius: 999px;
  min-height: 50px; padding: 0 28px; font-size: 17px; font-weight: 700; cursor: pointer;
}
.yorum-form button[type=submit]:hover { background: #0d1f38; }
.yorum-form button[type=submit]:disabled { opacity: .55; cursor: default; }
.yorum-form button[type=submit]:focus-visible { outline: 3px solid rgba(22,100,71,.35); outline-offset: 2px; }
.yorum-durum { min-height: 1.5em; margin-top: 4px; font-size: 16px; font-weight: 700; }
.yorum-durum-basarili { color: #176449; }
.yorum-durum-hata { color: #8f4535; }
.yorum-giris:not(:empty) { color: #526176; margin-bottom: 6px; font-size: 16px; line-height: 1.7; }
.giris-yakinda { color: #526176; font-size: 16px; line-height: 1.7; }
.giris-yakinda b { display: block; color: var(--p-ink); font-size: 18px; margin-bottom: 4px; }

@media (max-width: 640px) {
  .profile-yorumlar { padding-top: 60px; }
  .yorum { padding: 18px; }
  .yorum-kutu { padding: 20px; }
  .yorum-ust time { margin-left: 0; width: 100%; }
  .yorum-form button[type=submit] { width: 100%; }
  .yorum-yildiz-satir label { font-size: 36px; }
}

/* PROFİL V4 — Sol'un (Codex) revizyonu.
 * Teslim: docs/tasarim/2026-09-07-profil-v4/index.html (351 KB tek HTML)
 * Şartname: docs/sartname/2026-09-07-profil-v4-giydirme.md
 *
 * Teslimin sonuna eklenmiş "Profil revizyonu" bloğunun BİREBİR karşılığı.
 * Değerler (px, ağırlık, boşluk) teslimden olduğu gibi alındı — göz kararı yok.
 *
 * ⚠️ İZOLASYON: teslimde bu kurallar `:root` ve çıplak sınıflarla yazılmış.
 * Bizde aynı CSS paketi TÜM sayfa türlerinde yükleniyor, o yüzden her kural
 * `body.profil-v4` altına alındı ve `:root` yerine gövdeye tanımlandı (özel
 * değişkenler kalıtımla iniyor, sonuç aynı). Proje kuralı: yeni tasarım kendi
 * gövde sınıfıyla izole edilir, yoksa eski CSS sızıntısı benzerliği düşürür.
 *
 * ⚠️ Yorum bloğu (`.yorum-*`) BU DOSYADAN yönetilmiyor: teslim, bugünkü
 * tipografi turundan ÖNCEKİ profil sayfasından alınmış ve orada yazılar
 * küçüktü (textarea 14px). Bizim `profil-ek.css`'imiz daha yeni ve daha
 * büyük; geri sarmıyoruz. Teslimin yorum bölümü için tek istediği
 * `.profile-yorumlar{padding-top:76px}` ve liste metninin 16px olması —
 * ikisi de zaten sağlanıyor.
 */

body.profil-v4 {
  --profile-font: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --space-section: 76px;
  --space-card: 28px;
  --radius-card: 24px;
  --shadow-card: 0 14px 36px #192b2509;
  /* Teslimin son `:root` bloğu — Ertan'ın yazdığı palet birebir burada. */
  --background: #fff;
  --foreground: #192b25;
  --muted: #f4f6f3;
  --muted-foreground: #67716c;
  --border: #e2e7e1;
  --ring: #769660;
  --primary: #203e30;
  --accent: #e5eebd;
  --green: #385f40;
  --lime: #e3eeae;
  --soft: #f6f7f3;
}

body.profil-v4 .profile-page { font-family: var(--profile-font); }
body.profil-v4 .profile-page h1,
body.profil-v4 .profile-page h2,
body.profil-v4 .profile-page h3 {
  font-family: var(--profile-font);
  font-style: normal;
  text-wrap: balance;
}

/* ---- Hero: ad DÜZ ve KALIN (Ertan'ın özel isteği) ---------------------- */
body.profil-v4 .profile-hero h1 {
  font-weight: 800 !important;
  font-size: clamp(48px, 5.6vw, 76px);
  line-height: 1.04;
  letter-spacing: -.055em;
}
body.profil-v4 .profile-hero { padding: 48px; gap: 40px; }
body.profil-v4 .profile-hero .profile-lead { font-size: 17px; line-height: 1.8; }
body.profil-v4 .profile-contact-card > p:nth-child(3) { font-size: 16px; }
body.profil-v4 .profile-contact-card h2 { font-size: 30px; font-weight: 700; }
body.profil-v4 .profile-primary-action span { font-size: 17px; }
body.profil-v4 .profile-primary-action small,
body.profil-v4 .profile-contact-note { font-size: 13px; }
body.profil-v4 .profile-secondary-action { font-size: 15px; min-height: 52px; }
body.profil-v4 .profile-proof-row span { font-size: 14px; }
body.profil-v4 .profile-proof-row strong { font-size: 16px; }
body.profil-v4 .profile-kicker { font-size: 13px; letter-spacing: .12em; }
body.profil-v4 .profile-verified { font-size: 13px; }
body.profil-v4 .profile-identity p { font-size: 16px; }

/* ---- Sayfa içi menü şeridi: BÜYÜK (Ertan'ın özel isteği) --------------- */
body.profil-v4 .profile-anchor-nav {
  width: 100%;
  max-width: 100%;
  justify-content: space-between;
  margin: 24px 0;
  padding: 10px;
  gap: 4px;
  border-radius: 20px;
  z-index: 20;
}
body.profil-v4 .profile-anchor-nav a {
  font-size: 16px;
  min-height: 52px;
  padding: 14px 18px;
  font-weight: 700;
}

body.profil-v4 .profile-page :focus-visible { outline: 3px solid var(--ring); outline-offset: 4px; }

/* ---- Konum bölümü: YUKARI TAŞINDI ve AÇIK geliyor ---------------------- */
body.profil-v4 .personal-location {
  margin: 0 0 var(--space-section);
  scroll-margin-top: 110px;
  border: 1px solid var(--p-line);
  border-radius: var(--radius-card);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
body.profil-v4 .location-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  border-bottom: 1px solid var(--p-line);
}
body.profil-v4 .location-bar h2 { font-size: 24px; font-weight: 700; letter-spacing: -.03em; margin: 5px 0 0; }
body.profil-v4 .location-bar button {
  padding: 12px 16px;
  min-height: 48px;
  border: 1px solid var(--p-line);
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 14px;
  font: inherit;
  font-weight: 700;
  font-size: 14px;
  color: var(--p-ink);
  background: #f4f6f3;
  cursor: pointer;
}
body.profil-v4 .personal-location .profile-location-card {
  margin: 0; border: 0; border-radius: 0;
  grid-template-columns: 1.6fr 1fr;
}
body.profil-v4 .personal-location .profile-map-wrap,
body.profil-v4 .personal-location iframe,
body.profil-v4 .personal-location .mini-harita { height: 320px; min-height: 320px; }
body.profil-v4 .personal-location iframe { filter: none; }
body.profil-v4 .profile-location-copy { padding: 28px; }
body.profil-v4 .profile-location-copy .profile-map-icon { display: none; }
body.profil-v4 .profile-location-copy h3 { font-size: 25px; font-weight: 700; }
body.profil-v4 .profile-location-copy > p:not(.profile-kicker) { font-size: 16px; }
body.profil-v4 .profile-location-copy a { font-size: 14px; min-height: 48px; }

/* ---- Gövde ölçeği ------------------------------------------------------ */
body.profil-v4 .profile-layout { grid-template-columns: 1fr; gap: 32px; }
body.profil-v4 .profile-section-heading h2 {
  font-size: clamp(32px, 3.5vw, 46px);
  line-height: 1.12;
  font-weight: 750;
  letter-spacing: -.045em;
}
body.profil-v4 .profile-section-heading > p:last-child:not(.profile-kicker) { font-size: 16px; }
body.profil-v4 .profile-fact-grid article { padding: 20px; min-height: 160px; }
body.profil-v4 .profile-fact-grid span { font-size: 12px; line-height: 1.5; }
body.profil-v4 .profile-fact-grid strong { font-size: 16px; line-height: 1.5; }
body.profil-v4 .profile-about-card { padding: 32px; gap: 28px; grid-template-columns: 1fr; }
body.profil-v4 .profile-about-card h2 { font-size: 30px; line-height: 1.18; font-weight: 700; max-width: 590px; }
body.profil-v4 .profile-about-card > div:last-child p { font-size: 17px; line-height: 1.8; }
body.profil-v4 .profile-about-card a { font-size: 15px; }
body.profil-v4 .profile-visit,
body.profil-v4 .profile-services,
body.profil-v4 .profile-library,
body.profil-v4 .profile-faq { padding-top: var(--space-section); }

body.profil-v4 .profile-prep-grid { gap: 14px; }
body.profil-v4 .profile-prep-grid article {
  border: 1px solid var(--p-line);
  border-top: 3px solid var(--p-blue);
  border-radius: 18px;
  padding: 24px;
  box-shadow: var(--shadow-card);
}
body.profil-v4 .profile-prep-grid span { font-size: 14px; }
body.profil-v4 .profile-prep-grid h3 { font-size: 21px; font-weight: 700; margin-top: 22px; line-height: 1.3; }
body.profil-v4 .profile-prep-grid p { font-size: 16px; line-height: 1.7; }

body.profil-v4 .profile-service-grid article { min-height: 210px; padding: 26px; }
/* Tek kalan kart tam genişlik: yetim ızgara öğesi kalmasın (proje kuralı). */
body.profil-v4 .profile-service-grid article:last-child:nth-child(odd) { grid-column: 1 / -1; }
body.profil-v4 .profile-service-grid h3 { font-size: 25px; font-weight: 700; margin-top: 25px; }
body.profil-v4 .profile-service-grid p { font-size: 16px; }
body.profil-v4 .profile-service-grid article > div { font-size: 13px; margin-top: 18px; }

body.profil-v4 .profile-library-heading { align-items: start; gap: 18px; flex-direction: column; }
body.profil-v4 .profile-library-heading > a { font-size: 15px; }
body.profil-v4 .profile-library-card { padding: 24px; min-height: 360px; }
body.profil-v4 .profile-library-icon { margin-bottom: 26px; }
body.profil-v4 .profile-library-card small { font-size: 12px; letter-spacing: .06em; }
body.profil-v4 .profile-library-card h3 { font-size: 22px; font-weight: 700; line-height: 1.3; }
body.profil-v4 .profile-library-card p { font-size: 16px; line-height: 1.65; }
body.profil-v4 .profile-library-card b { font-size: 14px; }

body.profil-v4 .profile-faq > div:last-child { border: 0; display: grid; gap: 12px; }
body.profil-v4 .profile-faq details {
  border: 1px solid var(--p-line);
  border-radius: 18px;
  background: #fff;
  padding: 0 24px;
}
body.profil-v4 .profile-faq details[open] {
  background: linear-gradient(120deg, #fff, #f4f6f3);
  box-shadow: var(--shadow-card);
}
body.profil-v4 .profile-faq summary { font-size: 18px; padding: 23px 0; font-weight: 700; line-height: 1.5; }
body.profil-v4 .profile-faq summary svg { flex-shrink: 0; }
body.profil-v4 .profile-faq details p { font-size: 17px; line-height: 1.8; padding-right: 12px; }

body.profil-v4 .profile-sources { margin: var(--space-section) 0; gap: 28px; padding: 34px; grid-template-columns: 1fr; }
body.profil-v4 .profile-sources h2 { font-size: 38px; line-height: 1.12; font-weight: 750; }
body.profil-v4 .profile-sources > div:first-child > p:last-child { font-size: 17px; line-height: 1.8; }
body.profil-v4 .profile-sources ol { grid-template-columns: 1fr 1fr; gap: 12px; }
body.profil-v4 .profile-sources li { padding: 20px; grid-template-columns: 28px 1fr; }
body.profil-v4 .profile-sources li > span { font-size: 14px; }
body.profil-v4 .profile-sources li strong { font-size: 18px; }
body.profil-v4 .profile-sources li p { font-size: 16px; line-height: 1.7; }
body.profil-v4 .profile-source-links { flex-wrap: wrap; }
body.profil-v4 .profile-source-links a { font-size: 14px; min-height: 48px; }


body.profil-v4 .profile-yorumlar { padding-top: var(--space-section); }

@media (max-width: 1050px) {
  body.profil-v4 .profile-layout { grid-template-columns: 1fr; }
  body.profil-v4 .profile-anchor-nav { overflow: auto; justify-content: flex-start; }
  body.profil-v4 .profile-hero { grid-template-columns: 1fr; }
  body.profil-v4 .profile-contact-card { max-width: none; }
  body.profil-v4 .profile-fact-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 760px) {
  body.profil-v4 { --space-section: 48px; }
  body.profil-v4 .profile-hero { padding: 28px 22px; gap: 28px; }
  body.profil-v4 .profile-hero h1 { font-size: 46px; }
  body.profil-v4 .profile-lead { font-size: 16px !important; }
  body.profil-v4 .profile-contact-card { padding: 22px; }
  body.profil-v4 .profile-anchor-nav { border-radius: 15px; top: 8px; padding: 6px; scrollbar-width: thin; }
  body.profil-v4 .profile-anchor-nav a { font-size: 15px; padding: 13px 15px; min-height: 50px; }
  body.profil-v4 .location-bar { padding: 18px; align-items: flex-start; flex-direction: column; gap: 12px; }
  body.profil-v4 .location-bar h2 { font-size: 23px; }
  body.profil-v4 .location-bar button { align-self: flex-end; }
  body.profil-v4 .personal-location .profile-location-card { grid-template-columns: 1fr; padding: 0; gap: 0; }
  body.profil-v4 .personal-location .profile-map-wrap,
  body.profil-v4 .personal-location iframe,
  body.profil-v4 .personal-location .mini-harita { height: 250px; min-height: 250px; }
  body.profil-v4 .profile-location-copy { padding: 22px; }
  body.profil-v4 .profile-fact-grid { grid-template-columns: 1fr 1fr; }
  body.profil-v4 .profile-fact-grid article { padding: 18px; }
  body.profil-v4 .profile-about-card { padding: 24px; gap: 22px; }
  body.profil-v4 .profile-about-card h2 { font-size: 28px; }
  body.profil-v4 .profile-section-heading h2 { font-size: 33px; }
  body.profil-v4 .profile-prep-grid,
  body.profil-v4 .profile-library-grid { grid-template-columns: 1fr; }
  body.profil-v4 .profile-prep-grid article { padding: 22px; }
  body.profil-v4 .profile-library-card { min-height: 0; }
  body.profil-v4 .profile-library-card h3 { font-size: 24px; }
  body.profil-v4 .profile-library-icon { margin-bottom: 22px; }
  body.profil-v4 .profile-faq details { padding: 0 18px; }
  body.profil-v4 .profile-faq summary { font-size: 17px; }
  body.profil-v4 .profile-faq details p { font-size: 16px; padding-right: 0; }
  body.profil-v4 .profile-sources { padding: 24px; gap: 24px; }
  body.profil-v4 .profile-sources h2 { font-size: 33px; }
  body.profil-v4 .profile-sources ol { grid-template-columns: 1fr; }
  body.profil-v4 .profile-source-links { flex-direction: column; }
  body.profil-v4 .profile-hero,
  body.profil-v4 .profile-contact-card,
  body.profil-v4 .profile-about-card { min-width: 0; }
  body.profil-v4 .profile-proof-row { gap: 8px; }
  body.profil-v4 .profile-proof-row span { font-size: 13px; }
  body.profil-v4 .profile-page h2,
  body.profil-v4 .profile-page h3 { overflow-wrap: break-word; }
}
@media (prefers-reduced-motion: reduce) {
  body.profil-v4 .profile-page * { transition: none !important; }
}

/* Koordinatı olmayan kayıtta harita basılmıyor: adres sütunu tek başına
   kaldığında dar bir sütuna sıkışmasın (il/ilçe sayfalarında aynı hata
   2026-09-06'da yaşanmıştı). */
body.profil-v4 .personal-location.haritasiz .profile-location-card { grid-template-columns: 1fr; }

/* ---- "Yol tarifi al" + "Konumu paylaş" (2026-09-07) ---------------------
 * Konum kartının ALTINA eklenen yeni, bağımsız bir satır — mevcut harita
 * (.profile-map-wrap) ve adres (.profile-location-copy) bloklarına
 * dokunulmadı, bu yüzden %98,69 piksel ölçümü bozulmuyor.
 * Renkler kasıtlı olarak zaten kontrastı doğrulanmış tonlar: mavi zemin +
 * beyaz yazı .profile-primary-action ile aynı (7,4:1); ikincil düğme
 * .profile-location-copy a ile aynı (#f1f4f8 üstünde #405169).
 */
.profile-page .konum-arac { grid-column: 1 / -1; border-top: 1px solid var(--p-line); padding: 18px 28px 22px; }
.profile-page .konum-arac-satir { display: flex; flex-wrap: wrap; gap: 10px; }
.profile-page .konum-arac-btn {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 0 16px; border: 1px solid var(--p-line); border-radius: 12px;
  background: var(--p-blue); color: #fff; font: inherit; font-size: 13px; font-weight: 750; cursor: pointer;
}
.profile-page .konum-arac-btn svg { flex: none; }
.profile-page .konum-arac-btn.konum-arac-ikincil { background: #f1f4f8; color: #405169; }
.profile-page .rota-panel { margin-top: 14px; }
/* .rota-sekme* kuralları 2026-09-10'da SİLİNDİ — Araçla/Yürüyerek sekmeleri
   kaldırıldı (Ertan'ın ekran görüntüsü), iki süre tek satırda yan yana. */
/* Rota mesaj alanı — 2026-09-09 EK 3.
 * Ertan "düğmeye basıyorum hiçbir şey olmuyor" dedi. Mesaj alanı artık HER
 * durumda dolu ve GÖRÜLECEK kadar büyük: 12px → 16px, uyarı hâli ayrı renkli
 * kutu. Kontrast hesaplandı (kontrast.py): #33445c/#fff 9,90 · #5a3a17 ve
 * #7a4310 üzerinde #fff6e8 9,55 / 7,43 · bağlantı #1b4fd8 6,21-6,65. */
.profile-page .rota-mesaj {
  margin: 12px 0 0; font-size: 16px; line-height: 1.45; color: #33445c;
  min-height: 20px; display: flex; flex-direction: column; gap: 4px;
}
.profile-page .rota-mesaj strong { color: #10233f; font-weight: 750; }
.profile-page .rota-mesaj a { color: #1b4fd8; font-weight: 700; }
.profile-page .rota-mesaj--uyari {
  background: #fff6e8; border: 1px solid #f0c48a; border-left: 4px solid #c2703a;
  border-radius: 10px; padding: 12px 14px; color: #5a3a17;
}
.profile-page .rota-mesaj--uyari strong { color: #7a4310; }
.profile-page .rota-mesaj-alt { font-size: 15px; }
/* Sonuç — 2026-09-10: Ertan'ın ekran görüntüsündeki hâl. İki ulaşım türü
 * TEK SATIRDA yan yana, aralarında ince ayraç noktası:
 *     🚗 4 dk · 2,8 km  ·  🚶 31 dk · 2,6 km
 * ⚠️ `--satir` YALNIZ profil sayfasında; keşfet/şehir kartlarında ve harita
 * rozetinde alt alta düzen korunuyor (bu turun kapsamı dışı). */
.profile-page .rota-mesaj--sonuc { font-size: 17px; color: #10233f; }
.profile-page .dc-sure-kutu--satir {
  flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 14px; row-gap: 4px;
}
.profile-page .dc-sure-kutu--satir .dc-sure-satir + .dc-sure-satir::before {
  content: '·'; color: #606e82; margin-right: 8px; font-weight: 700;
}
@media (max-width: 760px) {
  .profile-page .konum-arac { padding: 16px 22px 20px; }
  .profile-page .konum-arac-btn { font-size: 14px; min-height: 48px; }
  /* 390 px'te iki grup yan yana sığmazsa alt satıra SARAR (sekme geri gelmez). */
  .profile-page .dc-sure-kutu--satir { column-gap: 10px; }
}

/* ---------- HARİTA marka renkleri (pin, popup, küme) — 2026-09-09 ----------
   Bkz. sablon/codex/ic-sayfa.css'teki aynı blok — sebep orada anlatılıyor;
   ayrı bir stylesheet isteği açmamak için bu üç zaten-yüklü dosyaya kopyalandı. */
:root{--yesil:#4E6B2A;--yesil-koyu:#3B5320;--kayisi:#B5561A;--kayisi-koyu:#8A3F0E}
.leaflet-container{height:100%;width:100%;font:400 15px/1.5 system-ui,-apple-system,sans-serif;background:#F3F7EC}
.leaflet-container a{color:var(--yesil-koyu)}
.leaflet-control-attribution{font-size:11px;background:rgba(255,255,255,.85)}
.leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 18px 40px -12px rgba(16,24,16,.28);padding:4px}
.leaflet-popup-content{margin:14px 16px;min-width:190px}
.dc-pin svg{width:28px;height:36px;display:block;filter:drop-shadow(0 2px 3px rgba(28,42,20,.35));transition:transform .15s ease}
.dc-pin svg .dc-pin__govde{fill:#10233f}
.dc-pin--klinik svg .dc-pin__govde{fill:var(--kayisi)}
.dc-pin svg .dc-pin__ikon{stroke:#4d69e5}
.dc-pin--klinik svg .dc-pin__ikon{stroke:var(--kayisi-koyu)}
.dc-pin-secili svg{transform:scale(1.2) translateY(-3px)}
.dc-popup b{display:block;font:600 16px/1.3 system-ui,sans-serif;color:#1c2a14;margin-bottom:2px}
.dc-popup span{display:block;font-size:13px;color:#5a6a52}
.dc-popup .puan{display:inline-flex;align-items:center;gap:5px;margin:6px 0 10px;color:var(--kayisi);font-size:13px;font-weight:600}
.dc-popup .puan small{color:#8a978a;font-weight:400}
.dc-popup .btn{width:100%;justify-content:center}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(78,107,42,.22)!important}
.marker-cluster div{background:var(--yesil)!important;color:#fff!important;font:600 13px/30px system-ui,sans-serif!important}
.marker-cluster-large div,.marker-cluster-medium div{background:var(--yesil-koyu)!important}

/* İki satırlık süre bloğu — araç / yaya (Ertan EK 3 §E3.2, 2026-09-09).
   Aynı blok ic-sayfa.css ve sehir-v6-ek.css'te de var (her sayfa türü kendi
   stylesheet'ini yüklüyor; yeni bir dosya isteği açmamak için kopyalandı). */
.dc-sure-kutu { display: flex; flex-direction: column; gap: 2px; }
.dc-sure-satir { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.dc-sure-satir svg { flex: none; opacity: .9; }
.dc-sure-satir b { font-weight: 750; }

/* "Bu profil sizin mi?" — düzeltme/kaldırma formuna doğrudan bağlantılar
   (Diyetisyen.Club deseni, listesiteleriform becerisi; şartname 2026-09-26-harita-analytics-form.md §5).
   Düğme görünümü Codex tasarımı: aşağıdaki "Codex düğme" bloğu (dc-dugme sınıfları). */
body.profil-v4 .profil-sahip-serit { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--p-line); font-size: 14px; color: #4a5a6f; }
body.profil-v4 .profil-sahip-serit span { flex-basis: 100%; font-weight: 700; color: var(--p-ink); }

/* ---- Codex düğme (2026-09-26, docs/tasarim/2026-09-26-dugme-codex/): dikdörtgen, beyaz yazı, ince gradient.
   Telefon + Düzenleme + Kaldırma aynı dil. Kontrast (beyaz yazı, gradient uçları) 4,70–6,21:1. Ayrı dosya değil: yeni stylesheet isteği açmamak için. */
/* Tasarım önerisi. profil.css ve profil-ek.css SONRASINDA yüklenir.
   Mevcut bağlantılara dc-dugme + uygun değiştirici sınıf eklenir. */
:root {
  --dc-dugme-radius: 15px;
  --dc-dugme-yesil: #5fcf9a;
  --dc-dugme-kirmizi: #ff6f61;
  --dc-dugme-mavi: #4d69e5;
  --dc-dugme-yazi: #fff;
  --dc-dugme-focus: #10233f;
}
body.profil-v4 .profile-contact-card .dc-dugme {
  --dc-ton: var(--dc-dugme-mavi);
  --dc-golge-ust: .08;
  --dc-golge-alt: .16;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid rgb(0 0 0 / .12);
  border-radius: var(--dc-dugme-radius);
  background: linear-gradient(180deg, rgb(0 0 0 / var(--dc-golge-ust)), rgb(0 0 0 / var(--dc-golge-alt))), var(--dc-ton);
  color: var(--dc-dugme-yazi);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .16), inset 0 -1px 0 rgb(0 0 0 / .08), 0 2px 4px rgb(16 35 63 / .09);
  transition: box-shadow 160ms ease, transform 160ms ease;
  -webkit-tap-highlight-color: transparent;
}
body.profil-v4 .profile-contact-card .dc-dugme--duzenle {
  --dc-ton: var(--dc-dugme-yesil);
  --dc-golge-ust: .39;
  --dc-golge-alt: .44;
}
body.profil-v4 .profile-contact-card .dc-dugme--kaldir {
  --dc-ton: var(--dc-dugme-kirmizi);
  --dc-golge-ust: .26;
  --dc-golge-alt: .32;
}
body.profil-v4 .profile-contact-card .dc-dugme--telefon {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 18px;
  width: 100%;
  min-height: 66px;
  padding: 12px 14px;
  text-align: left;
}
body.profil-v4 .profile-contact-card .dc-dugme--telefon span {
  display: grid; gap: 3px; color: #fff; font-size: 17px; font-weight: 700;
}
body.profil-v4 .profile-contact-card .dc-dugme--telefon small {
  color: #fff; font-size: 13px; font-weight: 500;
}
body.profil-v4 .profile-contact-card .dc-dugme svg {
  color: #fff; flex: none;
}
body.profil-v4 .profile-contact-card .dc-dugme--telefon > svg:first-child {
  box-sizing: border-box; width: 36px; height: 36px; padding: 8px;
  border-radius: 10px; background: rgb(0 0 0 / .08);
}
body.profil-v4 .profile-contact-card .dc-dugme-grup {
  display: flex; flex-wrap: wrap; gap: 8px;
}
body.profil-v4 .profile-contact-card .dc-dugme-grup .dc-dugme { flex: 1 1 auto; }
@media (hover: hover) {
  body.profil-v4 .profile-contact-card .dc-dugme:hover {
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .16), inset 0 0 0 100px rgb(0 0 0 / .04), 0 4px 8px rgb(16 35 63 / .14);
  }
}
body.profil-v4 .profile-contact-card .dc-dugme:focus-visible {
  outline: 3px solid var(--dc-dugme-focus); outline-offset: 3px;
}
body.profil-v4 .profile-contact-card .dc-dugme:active {
  transform: translateY(0);
  box-shadow: inset 0 1px 3px rgb(0 0 0 / .20);
}
@media (prefers-reduced-motion: reduce) {
  body.profil-v4 .profile-contact-card .dc-dugme { transition: none; transform: none; }
}
@media (forced-colors: active) {
  body.profil-v4 .profile-contact-card .dc-dugme {
    border: 1px solid ButtonText; background: ButtonFace; color: ButtonText; box-shadow: none;
  }
  body.profil-v4 .profile-contact-card .dc-dugme :is(span, small, svg) { color: ButtonText; }
  body.profil-v4 .profile-contact-card .dc-dugme:focus-visible { outline-color: Highlight; }
}
body.profil-v4 .profile-contact-card .profil-sahip-serit .dc-dugme { flex: 1 1 auto; }
