/* ==========================================================================
   Uzun Avukatlık Bürosu — arayüz stilleri
   Tasarım dili: sıcak, yakın, ferah. Krem zemin, kiremit turuncusu vurgu,
   yuvarlak formlar, yumuşak gölgeler, günlük dil.
   1. Değişkenler   6. Bölümler        11. Formlar
   2. Temel         7. Kartlar         12. Araçlar
   3. Tipografi     8. Makale gövdesi  13. Alt bilgi
   4. Bileşenler    9. Akordeon        14. Duyarlı düzen
   5. Başlık       10. İlçe seçici
   ========================================================================== */

/* Plus Jakarta Sans — yerel barındırma (SIL Open Font License 1.1).
   Değişken ağırlıklı (400–800) woff2, yalnız latin + latin-ext alt kümeleri.
   Türkçe için ikisi de gerekli: ı/ç/ö/ü latin'de, ğ/ş/İ latin-ext'te.
   Google Fonts'tan çekildiğinde fonts.googleapis.com + fonts.gstatic.com için
   iki ayrı bağlantı kurulması gerekiyordu; yerelde ilk boyamayı geciktirmiyor. */
@font-face{
  font-family:'Plus Jakarta Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/plus-jakarta-sans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Plus Jakarta Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/plus-jakarta-sans-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* 1. Değişkenler --------------------------------------------------------- */
:root{
  /* Tarayıcının kendi bileşenleri (kaydırma çubuğu, tarih seçici, form denetimleri)
     de temayla uyumlu çizilsin diye. */
  color-scheme:light;
  --paper:#FAF5EE; --card:#FFFFFF; --card-2:#F4EDE3; --card-3:#EBD9C7;
  --ink:#1A1512; --ink-2:#2B2320; --ink-3:#3D332D;
  /* Kontrast notu: --accent hem dolgu (beyaz metinle) hem de metin rengi olarak
     kullanılıyor. Her iki rol de beyazla kontrast gerektirdiği için tek değer
     ikisini birden belirler. #DD5525 4,5 eşiğinin altındaydı (3,89). */
  --accent:#C24518; --accent-2:#A33911; --accent-3:#FF9455;
  --accent-text:#BF441A; --accent-ink:#98350F;
  --accent-soft:#FBE0D0; --accent-tint:#FDEDE3; --accent-line:#F3B08A;
  --text:#1A1512; --text-2:#3D332D; --muted:#5F534B; --muted-2:#8A7A6F;
  --line:#E6D8C8; --line-2:#F0E6D9;
  --ok:#1E7A50; --warn:#A85B12; --err:#B93A28;
  --sans:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r-sm:12px; --r:16px; --r-lg:18px; --r-xl:28px; --r-2xl:34px;
  --sh-1:0 1px 2px rgba(42,35,32,.04),0 2px 6px rgba(42,35,32,.04);
  --sh-2:0 4px 10px rgba(42,35,32,.05),0 14px 34px rgba(42,35,32,.08);
  --sh-3:0 24px 64px rgba(42,35,32,.14);
  --sh-warm:0 6px 18px rgba(221,85,37,.34);
  --wrap:1180px; --nav-h:76px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
[data-theme="dark"]{
  color-scheme:dark;
  --paper:#141109; --card:#211C13; --card-2:#1B170F; --card-3:#31291B;
  --ink:#0D0B06; --ink-2:#1B170F; --ink-3:#31291B;
  --accent:#FF8A4C; --accent-2:#FFA66E; --accent-3:#FFA66E;
  --accent-text:#FF9A5F;
  --accent-tint:#2A2116; --accent-soft:#362B1C; --accent-line:#5A462C;
  --accent-ink:#FFA66E;
  --text:#FAF5EE; --text-2:#E2D8CB; --muted:#C3B6A6; --muted-2:#9A8B7C;
  --line:#332C1E; --line-2:#272115;
  --ok:#6FD3A0; --warn:#F0AE5E; --err:#F0897C;
  --sh-1:0 1px 2px rgba(0,0,0,.3); --sh-2:0 8px 30px rgba(0,0,0,.4); --sh-3:0 24px 70px rgba(0,0,0,.55);
  --sh-warm:0 8px 22px rgba(240,168,104,.2);
}

/* 2. Temel --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px);
  overflow-x:clip;
  /* Çekmece/arama açılırken <html> overflow:hidden oluyor; kaydırma çubuğu
     kaybolunca sayfanın yana sıçramaması için yer baştan ayrılır. */
  scrollbar-gutter:stable}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);
  font-size:16.5px;line-height:1.68;font-weight:450;
  font-feature-settings:"kern","liga";text-rendering:optimizeLegibility;
  /* clip, hidden değil: overflow-x:hidden body'yi kaydırma kabı yapıyor ve
     .site-header'ın position:sticky özelliğini sessizce iptal ediyordu — başlık
     sayfayla birlikte yukarı kayıp gidiyordu. clip, yatay taşmayı yine engeller
     ama kaydırma kabı oluşturmaz. html üzerinde de zaten clip kullanılıyor. */
  overflow-x:clip}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--accent);color:#fff}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.wrap-narrow{width:min(100% - 2.5rem,780px);margin-inline:auto}
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;
  padding:12px 20px;border-radius:0 0 14px 0}
.skip:focus{inset-inline-start:0}
/* Yalnızca ekran okuyucular için — başlık hiyerarşisini bozmadan gizli başlık */
/* `hidden` niteliği tarayıcının display:none'ı; .callout{display:flex} gibi sınıf kuralları onu eziyordu.
   Kıdem hesaplayıcısında "süre 1 yılın altında" uyarısı bu yüzden 7 yıllık kıdemde de görünüyordu (35. tur). */
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 3. Tipografi ----------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--sans);font-weight:800;line-height:1.12;letter-spacing:-.035em;
  margin:0 0 .55em;color:var(--text)}
/* 34. tur ölçek sıkılaştırması (kullanıcı: "yazılar ve kutular büyük"): H1 64→52, H2 43→34, H3 20→18
   masaüstünde; telefonda H1 37→32, H2 29→25. Gövde metni (16,5px) bilerek değişmedi. */
h1{font-size:clamp(2rem,1.35rem + 2.6vw,3.25rem);letter-spacing:-.045em;line-height:1.06}
h2{font-size:clamp(1.56rem,1.25rem + 1.3vw,2.125rem);letter-spacing:-.038em}
h3{font-size:clamp(1.06rem,1rem + .35vw,1.125rem);font-weight:700;letter-spacing:-.025em}
h4{font-size:1.03rem;font-weight:700;letter-spacing:-.015em}
p{margin:0 0 1.15em}
.lede{font-size:clamp(1.06rem,1rem + .38vw,1.2rem);line-height:1.68;color:var(--text-2);font-weight:500;max-width:52ch}
.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;
  color:#fff;background:var(--accent);border-radius:100px;padding:.4rem 1rem;margin:0 0 1.1rem;
  box-shadow:0 4px 12px rgba(221,85,37,.26)}
[data-theme="dark"] .eyebrow{background:var(--accent-soft)}
.section-head{max-width:62ch}
.section-head.center{margin-inline:auto;text-align:center}
.text-muted{color:var(--muted)}
.small{font-size:.9rem}
/* max-width: .8rem metin geniş kutuda 114 karaktere uzuyordu; gövde metniyle
   aynı ölçüde (54ch ≈ 78 karakter) tutulur. */
.tiny{font-size:.8rem;max-width:54ch}

/* 4. Bileşenler ---------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.6rem 1.45rem;min-height:44px;border-radius:100px;border:1.5px solid transparent;cursor:pointer;
  font-size:.95rem;font-weight:700;text-align:center;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease),background .18s,color .18s,border-color .18s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:17px;height:17px;flex:none}
.btn-gold{background:var(--accent);color:#fff;box-shadow:var(--sh-warm)}
.btn-gold:hover{background:var(--accent-2);color:#fff}
[data-theme="dark"] .btn-gold{color:#17150F}
[data-theme="dark"] .btn-gold:hover{color:#17150F}
.btn-primary{background:var(--ink);color:#FBF7F2;box-shadow:var(--sh-1)}
.btn-primary:hover{background:var(--ink-2);color:#fff;box-shadow:var(--sh-2)}
[data-theme="dark"] .btn-primary{background:var(--card-3);color:var(--text)}
.btn-ghost{background:var(--card);border-color:var(--line);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-light{background:rgba(255,255,255,.1);color:#FBF7F2;border-color:rgba(255,255,255,.22);backdrop-filter:blur(8px)}
.btn-light:hover{background:rgba(255,255,255,.18);color:#fff}
.btn-sm{padding:.6rem 1.2rem;font-size:.87rem}
.btn-block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:.7rem}

.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .9rem;border-radius:100px;
  background:var(--card);border:1.5px solid var(--line);font-size:.805rem;font-weight:600;color:var(--text-2);
  transition:.2s var(--ease);line-height:1.5}
.chip svg{width:15px;height:15px;flex:none;stroke-width:1.8}
a.chip:hover{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent-ink);transform:translateY(-1px)}
.chip-gold{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink);font-weight:700}

.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.94rem;color:var(--accent-text);
  transition:.22s var(--ease)}
.link-arrow svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}

.ico{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;flex:none;
  background:var(--accent-soft);color:var(--accent);transition:.28s var(--ease)}
.ico svg{width:22px;height:22px;stroke-width:1.8}
[data-theme="dark"] .ico{color:var(--accent-3)}

/* Bölüm boşluğu. Eskiden masaüstünde iki bölüm arası 192px (96+96) idi;
   kullanıcı fazla buldu, ölçülüp seçildi: masaüstü 112px, telefon 43px.
   Alt sınır 641px'e denk gelecek şekilde seçildi: telefondaki 43px'ten
   çıkarken sıçrama olmasın (641px'te 54px, kademeli olarak 1365px'te 112px).
   ⚠️ .section-tight HER ZAMAN .section'dan küçük kalmalı — üst sınırı
   .section'ın altında tut, yoksa "dar" varyant normalden geniş olur. */
.section{padding:clamp(1.5rem,.1rem + 3.2vw,3rem) 0}          /* 1365px+ → 56px, arası 112px */
.section-tight{padding:clamp(1.2rem,.05rem + 2.8vw,2.2rem) 0}
.section-ink{background:var(--ink);color:#F1EAE4}
[data-theme="dark"] .section-ink{background:var(--card-2)}
.section-ink h1,.section-ink h2,.section-ink h3{color:#FBF7F2}
.section-ink .lede,.section-ink .text-muted{color:#D2C4B7}
.section-ink .eyebrow{background:rgba(255,255,255,.09);color:var(--accent-3)}
.section-alt{background:var(--card-2)}
.rule{height:1px;background:var(--line);margin:0}

/* 5. Başlık / gezinme ---------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:90;background:var(--paper);
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid transparent;transition:.3s var(--ease)}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 1px 24px rgba(42,35,32,.05)}
/* gap ve .nav-link dolgusu ölçülerek kısıldı: Rusça/Ukraynaca menü etiketleri
   Türkçeden ~150px uzun ve içerik 1180px'lik kaba sığmayıp taşıyordu (ru 30px,
   uk 22px — her ekran genişliğinde, çünkü kap --wrap ile sabit). Bu iki değer
   ~40px yer açıyor; Türkçede fark gözle seçilmiyor. */
.nav{display:flex;align-items:center;gap:.85rem;height:var(--nav-h)}
.brand{display:flex;align-items:center;gap:.65rem;flex:none}
.brand svg,.brand img{width:40px;height:40px;border-radius:13px}
/* Logo, butonlarla aynı çifti kullanır: --accent zemin, üstünde .btn-gold metin rengi */
.logo-zemin{fill:var(--accent)}
.logo-cizim{fill:#fff}
[data-theme="dark"] .logo-cizim{fill:#17150F}
.brand-text{display:flex;flex-direction:column;line-height:1.12}
.brand-name{font-size:1.05rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.brand-sub{font-size:.75rem;color:var(--muted);font-weight:600;letter-spacing:-.005em}
.nav-links{display:flex;align-items:center;gap:.15rem;margin-inline-start:auto}
.nav-link{position:relative;padding:.55rem .62rem;border-radius:100px;font-size:.93rem;font-weight:600;
  color:var(--text-2);transition:.2s;display:inline-flex;align-items:center;gap:.28rem;white-space:nowrap}
.nav-link:hover{color:var(--accent-ink);background:var(--accent-tint)}
.nav-link.active{color:var(--text)}
.nav-link .caret{width:11px;height:11px;opacity:.5;transition:transform .25s}
.has-mega:hover .caret,.mega-wrap:focus-within .caret{transform:rotate(180deg)}
.nav-actions{display:flex;align-items:center;gap:.5rem;margin-inline-start:.4rem}
/* Başlık düğmesi hiçbir genişlikte iki satıra kırılmaz. */
.nav-actions .btn{white-space:nowrap;flex:none}
.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;border:1.5px solid var(--line);
  background:var(--card);cursor:pointer;color:var(--muted);transition:.2s var(--ease)}
.icon-btn:hover{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-tint)}
.icon-btn svg{width:18px;height:18px}

.mega-wrap{position:relative}
/* Panel tetikleyicinin altına ortalanıyordu; 880px genişlik menü öğesinden çok daha
   geniş olduğu için sol kenarı ekran dışına taşıyordu (1180px ekranda sol:-11px).
   Artık ekrana göre konumlanıyor: hangi menü öğesinin altında olursa olsun taşmaz.
   .mega-wrap üzerinde transform/filter yok, bu yüzden fixed güvenle kullanılabilir. */
.mega{position:fixed;top:calc(var(--nav-h) + 10px);left:50%;
  transform:translateX(-50%) translateY(-8px);
  width:min(94vw,880px);background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--sh-3);padding:1.4rem;opacity:0;visibility:hidden;z-index:95;
  /* Kapanış kısa bir gecikmeyle olur: fare menüden bir an kayarsa panel kaybolmaz.
     pointer-events:none KULLANILMAZ: fare çıkınca anında devreye girip gecikme sırasında
     geri dönen fareyi yakalatmıyordu. Gizli (visibility:hidden) panel zaten tıklanamaz. */
  transition:opacity .22s var(--ease) .12s,transform .22s var(--ease) .12s,visibility 0s linear .34s}
.mega-wrap:hover .mega,.mega-wrap:focus-within .mega,.mega.open{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s}
/* Köprü: "Ne yapıyoruz" bağlantısı ile panel arasında ~30px boşluk var. Fare bu boşluktan
   geçerken .mega-wrap:hover düşüyor ve panel kapanıyordu (34. tur, kullanıcı bildirdi).
   Panelin üstüne, başlığın alt kenarına kadar uzanan görünmez bir alan eklenir; panelin
   çocuğu olduğu için üzerindeyken hover sürer. Panel gizliyken (visibility) tıklama almaz. */
.mega::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:calc(var(--nav-h) / 2 + 12px)}
.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem}
.mega-item{display:flex;gap:.7rem;padding:.62rem .7rem;border-radius:14px;transition:.2s var(--ease)}
.mega-item:hover{background:var(--accent-tint)}
.mega-item .ico{width:34px;height:34px;border-radius:11px}
.mega-item .ico svg{width:16px;height:16px}
.mega-item b{display:block;font-size:.885rem;font-weight:700;letter-spacing:-.015em}
/* Yalnız açıklama satırı. Eski seçici (.mega-item span) ikon kutusunu da (<span class="ico">)
   yakalıyor, .ico'nun display:grid ortalamasını ezip ikonu sol üste kaydırıyordu. */
.mega-item b + span{display:block;font-size:.775rem;color:var(--muted);line-height:1.45;margin-top:1px;font-weight:500}
.mega-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  margin-top:1rem;padding-top:1rem;border-top:1.5px solid var(--line-2);font-size:.86rem;color:var(--muted)}

.burger{display:none;width:42px;height:42px;border-radius:13px;border:1.5px solid var(--line);background:var(--card);
  cursor:pointer;place-items:center}
.burger span{display:block;width:17px;height:2px;background:var(--text);border-radius:2px;transition:.3s var(--ease)}
.burger span+span{margin-top:4.5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.drawer{position:fixed;inset:var(--nav-h) 0 0;background:var(--paper);z-index:88;padding:1.4rem 0 4rem;
  overflow-y:auto;transform:translateX(100%);transition:transform .34s var(--ease);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
/* Çekmece araç şeridi. Eskiden flex'ti ve `flex:1` yalnız <button>'ları
   eşitliyordu; dil seçici bir <details> olduğu için kuralın dışında kalıyor,
   genişlikler 47 / 94 / 202px'e dağılıyordu. Artık ızgara: en çok kullanılan
   arama üstte tam genişlik, altta üçlü: randevu · dil · tema (34. tur,
   kullanıcı isteği; tema yalnız simge, "Koyu/açık tema" yazısı kalktı). Dil listesi yarım sütuna sığmadığı için şeridin tamamı
   genişliğinde, menünün üstüne açılan bir kutu olur — bkz. .dil-mobil kuralları. */
.drawer-tools{display:none;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.2rem 0 1.1rem;position:relative}
.drawer-tools>*{min-width:0}
.drawer-tools button,.drawer-tools a.icon-btn{width:100%;height:46px;gap:.45rem;font-size:.9rem;font-weight:600;
  white-space:nowrap;overflow:hidden;
  /* .icon-btn display:grid ve tek sütun olduğu için ikon ile etiket alt alta
     düşüyordu; burada etiketli kullanıldığından yatay sıraya alınıyor. */
  display:flex;align-items:center;justify-content:center}
.drawer-tools #searchBtnMobile{grid-column:1 / -1}
/* :not(.btn) şart — bu kural aksi hâlde çekmecedeki Randevu/telefon düğmelerini de
   yakalayıp display:block ve .3rem yatay dolgu veriyor, ikon satır başına düşüyordu. */
.drawer a:not(.btn):not(.icon-btn){display:block;padding:.9rem .3rem;border-bottom:1.5px solid var(--line-2);font-size:1.04rem;font-weight:600}
/* :not(.dil-secici) şart — dil seçici de bir <details>. Bu kurallar onu da
   yakalayınca alt çizgi, space-between hizası ve "+" işareti dil düğmesine
   biniyordu: "TR" solda, kenarda anlamsız bir artı duruyordu. */
.drawer details:not(.dil-secici)>summary{list-style:none;cursor:pointer;padding:.9rem .3rem;
  border-bottom:1.5px solid var(--line-2);
  font-size:1.04rem;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.drawer details:not(.dil-secici)>summary::-webkit-details-marker{display:none}
.drawer details:not(.dil-secici)>summary::after{content:"+";color:var(--accent);font-size:1.35rem;line-height:1}
.drawer details:not(.dil-secici)[open]>summary::after{content:"–"}
.drawer details .sub a{padding-inline-start:1rem;font-size:.95rem;font-weight:500;color:var(--muted)}

.search-overlay{position:fixed;inset:0;z-index:120;background:rgba(42,35,32,.5);backdrop-filter:blur(6px);
  display:grid;place-items:start center;padding-top:13vh;opacity:0;visibility:hidden;transition:.25s var(--ease)}
.search-overlay.open{opacity:1;visibility:visible}
.search-box{width:min(92vw,620px);background:var(--card);border-radius:var(--r-xl);box-shadow:var(--sh-3);
  padding:1.2rem;transform:translateY(-14px);transition:.3s var(--ease)}
.search-overlay.open .search-box{transform:none}
.search-box input{width:100%;padding:1rem 1.15rem;border:1.5px solid var(--line);border-radius:var(--r);
  background:var(--card-2);font-size:1.05rem}
.search-hint{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}

/* 6. Hero ---------------------------------------------------------------- */
.hero{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(175deg,var(--accent-soft) 0%,var(--accent-tint) 34%,var(--paper) 74%)}
[data-theme="dark"] .hero{background:linear-gradient(180deg,var(--card-2) 0%,var(--paper) 62%)}
.hero::before{content:"";position:absolute;z-index:-1;right:-14vw;top:-28vh;width:62vw;height:62vw;
  border-radius:50%;background:radial-gradient(circle,rgba(221,85,37,.2),transparent 66%)}
.hero-inner{display:grid;grid-template-columns:1.12fr .88fr;gap:3.4rem;align-items:center;
  padding:clamp(2.4rem,1.5rem + 4vw,4.6rem) 0 clamp(2.6rem,1.6rem + 4vw,4.4rem)}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.9rem}

.hero-card{background:var(--card);border-radius:var(--r-2xl);padding:1.6rem;box-shadow:var(--sh-2)}
.hero-card h2,.hero-card h3{font-size:1.05rem;font-weight:800;margin-bottom:.3rem;letter-spacing:-.028em}
.hero-card .sub{font-size:.875rem;color:var(--muted);margin-bottom:1.1rem;font-weight:500}
.qa-list{display:grid;gap:.45rem}
.qa-item{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border-radius:var(--r);
  background:var(--card-2);border:1.5px solid transparent;transition:.24s var(--ease);cursor:pointer}
.qa-item:hover{background:var(--accent-tint);border-color:var(--accent-line);transform:translateX(4px)}
.qa-item .ico{width:36px;height:36px;border-radius:12px}
.qa-item .ico svg{width:17px;height:17px}
.qa-item b{font-size:.9rem;font-weight:700;display:block;letter-spacing:-.018em}
.qa-item span{font-size:.79rem;color:var(--muted);display:block;line-height:1.45;font-weight:500}
.qa-item .go{margin-inline-start:auto;color:var(--accent);opacity:.55}
.qa-item .go svg{width:16px;height:16px}


/* 7. Kartlar ------------------------------------------------------------- */
.grid{display:grid;gap:.85rem}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:1.25rem;
  transition:.28s var(--ease);position:relative;box-shadow:var(--sh-1)}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--accent-line)}
.card:hover .ico{background:var(--accent);color:#fff}
.card h2,.card h3{font-size:1.06rem;margin:.9rem 0 .35rem;font-weight:700;letter-spacing:-.028em}
.card p{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:.9rem;font-weight:500}
.card .card-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.2rem}
.card-flat{border-radius:var(--r);padding:1.2rem;box-shadow:none;border-color:var(--line)}
.card-flat:hover{box-shadow:var(--sh-1)}

.post{display:flex;flex-direction:column;background:var(--card);border:1.5px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;transition:.28s var(--ease);height:100%;box-shadow:var(--sh-1)}
.post:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--accent-line)}
.post-img{aspect-ratio:16/9;background:var(--accent-soft);position:relative;overflow:hidden}
.post-img img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.post:hover .post-img img{transform:scale(1.04)}
.post-img .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--accent);opacity:.3}
.post-img .ph svg{width:56px;height:56px}
.post-body{padding:1.2rem 1.3rem 1.35rem;display:flex;flex-direction:column;flex:1}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.775rem;color:var(--muted);margin-bottom:.6rem;font-weight:500}
.post-meta .dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5}
/* Tarih · okuma süresi tek parça: dar kartta "28 Ağustos 2026 ·" satır sonunda, "5 dk" alt satırda
   kalıyordu. Artık kırılırsa üçü birlikte alt satıra iner. */
.post-meta .meta-grup{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.post h2,.post h3{font-size:1.12rem;font-weight:700;line-height:1.32;margin:0 0 .45rem;letter-spacing:-.03em}
.post p{font-size:.885rem;color:var(--muted);line-height:1.6;margin-bottom:.9rem;font-weight:500}
.post .link-arrow{margin-top:auto}

.stat-card{background:var(--card);border-radius:var(--r-lg);padding:1.25rem 1.35rem;box-shadow:var(--sh-1)}
.stat-card b{display:block;font-size:1.9rem;font-weight:800;line-height:1.1;color:var(--accent);letter-spacing:-.035em}
.stat-card span{font-size:.83rem;color:var(--muted)}

.steps{counter-reset:s;display:grid;gap:.5rem}
.step{display:grid;grid-template-columns:auto 1fr;gap:1rem;background:var(--card);border-radius:var(--r-lg);
  padding:1.15rem 1.3rem;box-shadow:var(--sh-1)}
.step-n{counter-increment:s;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;
  background:var(--accent);color:#fff;font-size:.9rem;font-weight:800}
.step-n::before{content:counter(s)}
.step h3,.step h4{margin:.35rem 0 .3rem;font-size:1.03rem;font-weight:700}
.step p{font-size:.915rem;color:var(--muted);margin:0;line-height:1.62;font-weight:500}

/* 8. Makale gövdesi ------------------------------------------------------ */
.prose{font-size:1.08rem;line-height:1.78;color:var(--text-2);font-weight:450}
.prose>*+*{margin-top:1.15em}
.prose h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.8rem);margin:2.3em 0 .65em;scroll-margin-top:100px;letter-spacing:-.033em}
.prose h3{font-size:1.18rem;margin:1.9em 0 .5em;font-weight:700;scroll-margin-top:100px}
.prose h2 .anchor,.prose h3 .anchor{opacity:0;color:var(--accent);font-weight:400;margin-inline-start:.3em;font-size:.72em;transition:opacity .2s}
.prose h2:hover .anchor,.prose h3:hover .anchor{opacity:.6}
.prose p{margin:0 0 1.15em}
/* Okuma ölçüsü — uzun rehber metinlerinde satır 96 karaktere kadar uzuyordu.
   Yalnızca akan metin sınırlanır; tablo, görsel ve kutular tam genişlikte kalır. */
.prose>p,.prose>ul,.prose>ol,.prose>h2,.prose>h3,.prose>blockquote{max-width:54ch}
.prose a{color:var(--accent-text);font-weight:650;border-bottom:2.5px solid var(--accent-line);transition:.2s}
.prose a:hover{background:var(--accent-tint);border-color:var(--accent)}
.prose ul,.prose ol{margin:0 0 1.25em;padding-inline-start:1.3em}
.prose li{margin-bottom:.55em;padding-inline-start:.15em}
.prose li::marker{color:var(--accent)}
.prose strong{font-weight:700}
.prose em{font-style:italic;color:var(--muted)}
.prose blockquote{margin:1.8em 0;padding:1.1rem 1.4rem;border-inline-start:4px solid var(--accent);
  background:var(--accent-tint);border-radius:0 var(--r) var(--r) 0;color:var(--text-2);font-size:1rem}
.prose code{background:var(--card-2);border:1px solid var(--line);border-radius:8px;padding:.14em .45em;
  font-size:.86em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.prose table{width:100%;border-collapse:separate;border-spacing:0;margin:1.8em 0;font-size:.93rem;
  border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden}
.prose thead{background:var(--card-2)}
.prose th,.prose td{padding:.8rem 1rem;text-align:start;border-bottom:1px solid var(--line-2)}
.prose th{font-weight:700;font-size:.85rem;color:var(--text)}
.prose tbody tr:last-child td{border-bottom:0}
/* Dar ekranda tablo taşarsa kesilmesin (overflow:hidden köşe yuvarlaması içindi, 38. turda 3 sütunlu
   boşanma tablosunun 36 px'i kesiliyordu): hücreler sıkılaşır, yine sığmazsa tablo kendi içinde kayar. */
@media (max-width:640px){
  .prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.86rem}
  .prose th,.prose td{padding:.6rem .65rem}
}
.prose img{border-radius:var(--r-lg);margin:1.8em 0;box-shadow:var(--sh-1)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.reading-bar{position:fixed;top:0;inset-inline-start:0;height:3px;background:var(--accent);z-index:100;width:0;transition:width .12s linear}
.toc{position:sticky;top:calc(var(--nav-h) + 20px);background:var(--card);border-radius:var(--r-lg);
  padding:1.2rem 1.3rem;box-shadow:var(--sh-1);max-height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto}
.toc h2,.toc h4{font-size:.82rem;color:var(--muted);margin-bottom:.8rem;font-weight:700}
.toc a{display:block;padding:.38rem 0 .38rem .75rem;font-size:.88rem;color:var(--text-2);line-height:1.45;font-weight:500;
  border-inline-start:2.5px solid var(--line);transition:.2s}
.toc a:hover{color:var(--accent);border-inline-start-color:var(--accent-line)}
.toc a.active{color:var(--accent);border-inline-start-color:var(--accent);font-weight:700}
.toc a.lvl3{padding-inline-start:1.5rem;font-size:.81rem}

.article-head{padding:clamp(1.8rem,1rem + 2.5vw,3rem) 0 1.5rem}
.article-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:3rem;align-items:start}
.split{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:3rem;align-items:start}
.split-sm{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:2.8rem;align-items:start}
.split-left{display:grid;grid-template-columns:210px minmax(0,1fr);gap:2.5rem;align-items:start}
.split-left.wide{grid-template-columns:280px minmax(0,1fr);gap:2.8rem}
.split>aside,.split-sm>aside{position:sticky;top:calc(var(--nav-h) + 20px);display:grid;gap:.9rem;min-width:0}
.split>div,.split-sm>div,.split-left>div{min-width:0}
@media (max-width:1000px){
  .split,.split-sm,.split-left,.split-left.wide{grid-template-columns:minmax(0,1fr);gap:2rem}
  .split>aside,.split-sm>aside{position:static;top:auto}
  .split-left>.toc{position:static;max-height:none}
}

.author-box{display:flex;align-items:center;gap:.85rem;padding:1.1rem 1.2rem;background:var(--card);
  border-radius:var(--r-lg);margin:2.4rem 0;box-shadow:var(--sh-1)}
.author-box .av{width:50px;height:50px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
  display:grid;place-items:center;font-size:1.2rem;font-weight:800;flex:none;overflow:hidden}
.author-box .av img{width:100%;height:100%;object-fit:cover}

/* Ölçü sınırı: bilgi kutuları .prose'un dışında durduğu için `.prose>*`
   kuralındaki 54ch sınırına girmiyor, sütunun tamamını kaplıyordu — iç metin
   806px / 106 karakter, gövde metni ise 679px / ~54 karakter. Yan yana gelince
   okuma ritmi kırılıyordu. İkon, boşluk ve dolgu payı eklenerek kutu, iç metni
   gövdeyle aynı ölçüde tutacak genişliğe sabitlendi. */
.callout{display:flex;gap:.9rem;padding:1.15rem 1.3rem;border-radius:var(--r-lg);margin:1.8em 0;
  max-width:calc(54ch + 20px + .9rem + 2.6rem);
  background:var(--accent-tint);font-size:.95rem;line-height:1.65}
.callout svg{width:20px;height:20px;color:var(--accent);flex:none;margin-top:3px}
.callout.warn{background:var(--card-2);background:color-mix(in srgb,var(--warn) 9%,var(--card))}
.callout.warn svg{color:var(--warn)}
.callout p:last-child{margin-bottom:0}

/* 9. Akordeon ------------------------------------------------------------ */
.acc{display:grid;gap:.5rem}
.acc details{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;
  border:1.5px solid var(--line);transition:.2s}
.acc details[open]{border-color:var(--accent-line)}
.acc summary{list-style:none;cursor:pointer;padding:1.1rem 1.3rem;display:flex;gap:1rem;align-items:flex-start;
  font-weight:700;font-size:1rem;line-height:1.5;letter-spacing:-.02em;transition:color .2s}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{color:var(--accent)}
.acc summary .plus{margin-inline-start:auto;flex:none;width:28px;height:28px;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;
  transition:.28s var(--ease);font-size:1.05rem;line-height:1;font-weight:600}
.acc details[open] summary .plus{transform:rotate(45deg);background:var(--accent);color:#fff}
.acc .acc-body{padding:0 1.3rem 1.3rem;color:var(--text-2);font-size:.97rem;line-height:1.72;max-width:76ch;font-weight:450}
.acc .acc-body p:last-child{margin-bottom:0}
.acc .acc-body a{color:var(--accent-text);font-weight:650;border-bottom:2.5px solid var(--accent-line)}

/* 10. İlçe seçici -------------------------------------------------------- */
.district-tabs{display:flex;gap:.3rem;padding:.3rem;background:var(--card);border-radius:100px;
  width:fit-content;margin-bottom:1.4rem;box-shadow:var(--sh-1)}
/* min-height: dokunmatik ekranda sekmeler 39px kalıyordu, alt sınır 44px. */
.district-tabs button{padding:.5rem 1.2rem;min-height:44px;border-radius:100px;border:0;background:transparent;
  cursor:pointer;font-size:.87rem;font-weight:700;color:var(--muted);transition:.24s var(--ease)}
.district-tabs button.on{background:var(--accent);color:#fff}
.district-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:.45rem}
.district-grid a{display:flex;align-items:center;gap:.5rem;padding:.75rem .95rem;background:var(--card);
  border:1.5px solid var(--line);border-radius:14px;font-size:.885rem;font-weight:600;transition:.22s var(--ease);
  box-shadow:var(--sh-1)}
.district-grid a:hover{border-color:var(--accent-line);color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh-2)}
.district-grid a svg{width:14px;height:14px;color:var(--accent);opacity:.6;flex:none}
.district-search{position:relative;margin-bottom:1.1rem;max-width:340px}
.district-search input{width:100%;padding:.78rem 1rem;padding-inline-start:2.6rem;border:1.5px solid var(--line);
  border-radius:100px;background:var(--card);font-size:.92rem}
.district-search input:focus{border-color:var(--accent);outline:none}
/* Klavyeyle gelindiğinde halka geri gelir: yalnızca kenarlık rengi değişimi
   yeterli bir odak göstergesi değil, --accent-tint halkası ise zeminle
   1.05:1 kontrasta sahip, yani görünmez. */
.district-search input:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.district-search svg{position:absolute;inset-inline-start:1rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted-2)}

/* 11. Formlar ------------------------------------------------------------ */
.form-grid{display:grid;gap:1rem}
.field label{display:block;font-size:.86rem;font-weight:700;margin-bottom:.42rem;color:var(--text)}
.field label .req{color:var(--err)}
.field input,.field select,.field textarea{width:100%;padding:.88rem 1.05rem;border:1.5px solid var(--line);
  border-radius:var(--r-sm);background:var(--card);font-size:.96rem;transition:.2s var(--ease)}
.field textarea{min-height:150px;resize:vertical;line-height:1.65}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);
  box-shadow:0 0 0 4px var(--accent-tint);outline:none}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:2.5px solid var(--accent);outline-offset:2px}
.field .hint{font-size:.8rem;color:var(--muted);margin-top:.35rem;font-weight:500}
.field.err input,.field.err select,.field.err textarea{border-color:var(--err)}
.field .msg{font-size:.8rem;color:var(--err);margin-top:.35rem;font-weight:600}
.check{display:flex;gap:.65rem;align-items:flex-start;font-size:.885rem;color:var(--text-2);line-height:1.55;font-weight:500}
.check input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--accent)}
.check a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
/* Bal küpü (spam tuzağı) alanı.
   `left:-9999px` sağdan sola dillerde felakete yol açıyordu: RTL'de kaydırma
   ekseni ters olduğu için bu taşma KAYDIRILABİLİR alan sayılıyor ve Arapça ile
   Farsça iletişim/randevu sayfaları 11.439px genişliğe çıkıp yatay kayıyordu.
   Taşma yaratmayan standart "görsel olarak gizle" deseni kullanılır: alan 1px
   kutuya kırpılır, sayfa genişliğine hiç dokunmaz. Bot alanı yine görüp
   doldurabilir; insan için aria-hidden + tabindex="-1" zaten var. */
.hp{position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip-path:inset(50%);white-space:nowrap;border:0!important;opacity:0}
.alert{padding:1rem 1.2rem;border-radius:var(--r-lg);font-size:.93rem;margin-bottom:1.3rem;
  display:flex;gap:.7rem;align-items:flex-start}
.alert svg{width:19px;height:19px;flex:none;margin-top:2px}
.alert-ok{background:var(--card-2);background:color-mix(in srgb,var(--ok) 10%,var(--card));color:var(--ok)}
.alert-err{background:var(--card-2);background:color-mix(in srgb,var(--err) 9%,var(--card));color:var(--err)}

.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:2.8rem;align-items:start}
.info-list{display:grid;gap:.1rem}
.info-item{display:flex;gap:.9rem;padding:.95rem 0;border-bottom:1.5px solid var(--line-2)}
.info-item:last-child{border-bottom:0}
.info-item .ico{width:42px;height:42px;border-radius:13px}
.info-item .ico svg{width:19px;height:19px}
.info-item b{display:block;font-size:.8rem;color:var(--accent-text);margin-bottom:.15rem;font-weight:700}
.info-item span,.info-item a{font-size:.98rem;font-weight:600}
.info-item a:hover{color:var(--accent)}

/* 12. Araçlar ------------------------------------------------------------ */
.calc{background:var(--card);border-radius:var(--r-2xl);overflow:hidden;box-shadow:var(--sh-2)}
.calc-head{padding:1.4rem 1.7rem;border-bottom:1.5px solid var(--line-2);display:flex;align-items:center;gap:.9rem;
  background:var(--card-2)}
.calc-head h2{margin:0;font-size:1.12rem;font-weight:800}
.calc-head p{margin:0;font-size:.83rem;color:var(--muted)}
.calc-body{padding:1.7rem}
.calc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.calc-out{margin-top:1.5rem;border-top:2px dashed var(--line);padding-top:1.5rem}
.calc-out h3{font-size:1.03rem;letter-spacing:-.015em}
.result-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;
  border-bottom:1.5px solid var(--line-2)}
.result-row:last-of-type{border-bottom:0}
.result-row span{font-size:.91rem;color:var(--text-2);font-weight:500}
.result-row b{font-size:1.06rem;font-variant-numeric:tabular-nums;font-weight:700}
.result-total{background:var(--accent);color:#fff;border-radius:var(--r-lg);padding:1.15rem 1.35rem;margin-top:1rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;box-shadow:var(--sh-warm)}
.result-total span{font-size:.88rem;color:rgba(255,255,255,.95)}
.result-total b{font-size:1.8rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
[data-theme="dark"] .result-total{color:#17150F}
[data-theme="dark"] .result-total span{color:rgba(23,21,15,.82)}
/* Ölçü sınırı: not metni .8rem olduğu için kutunun tamamını kaplayınca satır
   kapasitesi 119 karaktere çıkıyordu. Sitenin gövde metni (.prose>p, 54ch)
   ~80 karakter; aynı sayıyı kullanınca bu boyutta da ~78 karakter oluyor.
   Not: `ch` = "0" genişliği (bu yazıda ~0,73em), ortalama karakterden geniş —
   sınırı karakter sayısıyla karıştırma. */
.calc-note{font-size:.8rem;color:var(--muted);margin-top:1rem;line-height:1.6;max-width:54ch}

.wizard-step{display:none}
.wizard-step.on{display:block;animation:fade .35s var(--ease)}
.wiz-opts{display:grid;gap:.5rem;margin:1.2rem 0}
.wiz-opt{display:flex;align-items:center;gap:.85rem;padding:1rem 1.15rem;border:1.5px solid var(--line);
  border-radius:var(--r);background:var(--card);cursor:pointer;text-align:start;transition:.24s var(--ease);width:100%}
.wiz-opt:hover{border-color:var(--accent-line);background:var(--accent-tint);transform:translateX(4px)}
.wiz-opt .n{width:28px;height:28px;border-radius:10px;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-size:.8rem;font-weight:800;flex:none}
.wiz-opt b{font-size:.95rem;font-weight:700;display:block;letter-spacing:-.02em}
.wiz-opt span{font-size:.815rem;color:var(--muted);display:block;margin-top:1px;font-weight:500}
.wiz-progress{height:5px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:1.5rem}
.wiz-progress i{display:block;height:100%;background:var(--accent);transition:width .4s var(--ease);border-radius:3px}
.roadmap{display:grid;gap:.5rem;margin-top:1.2rem;padding:0}
.roadmap li{list-style:none;display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.05rem 1.2rem;
  background:var(--card-2);border-radius:var(--r)}
.roadmap .rn{width:30px;height:30px;border-radius:10px;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-size:.82rem;font-weight:800}
.roadmap b{display:block;font-size:.97rem;margin-bottom:.15rem;font-weight:700;letter-spacing:-.02em}
.roadmap span{font-size:.885rem;color:var(--text-2);line-height:1.6;font-weight:450}

/* 13. Alt bilgi ---------------------------------------------------------- */
.cta-band{background:var(--ink);color:#F1EAE4;border-radius:var(--r-2xl);
  padding:clamp(2rem,1.5rem + 2.5vw,3.2rem);display:grid;grid-template-columns:1.5fr auto;gap:2.2rem;
  align-items:center;position:relative;overflow:hidden}
[data-theme="dark"] .cta-band{background:var(--card-2)}
.cta-band::before{content:"";position:absolute;right:-70px;top:-70px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(240,168,104,.16),transparent 66%)}
.cta-band h2{color:#FBF7F2;margin-bottom:.45rem}
.cta-band p{color:#D2C4B7;margin:0;max-width:52ch;font-weight:450}
.cta-actions{display:flex;flex-wrap:wrap;gap:.7rem;position:relative}

.site-footer{background:var(--ink);color:#B5A79E;padding:clamp(2.6rem,2rem + 2.5vw,4rem) 0 0}
[data-theme="dark"] .site-footer{background:var(--card-2)}
.footer-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:2.4rem;padding-bottom:2.6rem}
.footer-brand svg{width:44px;height:44px;border-radius:14px;margin-bottom:1rem}
.footer-brand p{font-size:.91rem;line-height:1.7;color:#C4B6AA;max-width:38ch;font-weight:450}
.footer .f-h{font-size:.86rem;color:#FBF7F2;margin:0 0 1rem;font-weight:800;letter-spacing:-.02em}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.58rem}
.footer a{font-size:.91rem;color:#CFC1B5;transition:.2s;font-weight:500}
/* Alt bilgi sütunları <details>. Masaüstünde sıradan bir sütun gibi görünür
   (işaretleyici yok, imleç normal); mobilde katlanır — alt bilgi 390px ekranda
   1923px, yani 2,3 ekran boyundaydı. Açık/kapalı durumu main.js ayarlar. */
.f-col summary{list-style:none;cursor:default;display:block}
.f-col summary::-webkit-details-marker{display:none}
.f-col summary .f-h{display:inline-block}
.footer a:hover{color:var(--accent-3)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.4rem 0;display:flex;flex-wrap:wrap;
  justify-content:space-between;gap:1rem;font-size:.83rem;color:#A99A8D}
.footer-bottom a{font-size:.82rem}
.social{display:flex;gap:.45rem;margin-top:1.3rem}
.social a{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;
  background:rgba(255,255,255,.07);color:#B5A79E;transition:.24s var(--ease)}
.social a:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}
.social svg{width:16px;height:16px}
.legal-note{background:rgba(255,255,255,.03);border-top:1px solid rgba(255,255,255,.07);padding:1.1rem 0;
  font-size:.8rem;color:#A99A8D;line-height:1.7}

/* Masaüstü hızlı iletişim kapsülü. Önce iki dolu daire vardı (parlak yeşil + kiremit);
   doygun renkler sıcak paletle çakışıyor ve içeriğin üstünde ağır duruyordu.
   Artık mobildeki dock ile aynı dil: buzlu cam, kapsül, nötr ikon, sıcak vurgu hoverda. */
.fab{position:fixed;inset-inline-end:22px;bottom:22px;z-index:80;display:flex;align-items:stretch;gap:.1rem;
  padding:.35rem .38rem;border-radius:999px;
  background:color-mix(in srgb, var(--card) 88%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  box-shadow:0 14px 40px rgba(42,35,32,.16),0 3px 10px rgba(42,35,32,.07);
  backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6)}
.fab-item{display:flex;align-items:center;gap:.5rem;padding:.6rem .95rem;border-radius:999px;
  font-size:.86rem;font-weight:600;color:var(--text-2);letter-spacing:-.005em;white-space:nowrap;
  transition:background .2s var(--ease),color .2s var(--ease)}
.fab-item:hover{background:var(--accent-tint);color:var(--accent-ink)}
.fab-ico{display:grid;place-items:center;flex:none}
.fab svg{width:20px;height:20px;stroke-width:1.7}
.fab-item:hover svg{color:var(--accent-ink)}
[data-theme="dark"] .fab{background:color-mix(in srgb, var(--card-3) 92%, transparent);
  border-color:rgba(255,255,255,.14);
  box-shadow:0 16px 44px rgba(0,0,0,.6),0 2px 10px rgba(0,0,0,.35)}

/* ---- Alt dock (telefon + tablet) --------------------------------------
   Kenarlardan içeride duran, buzlu camlı yüzen çubuk. Dört hızlı erişim:
   WhatsApp, telefon, online görüşme, ödeme. Masaüstünde görünmez;
   orada sağ alttaki yuvarlak düğmeler (.fab) kullanılır. */
.dock{display:none}
/* Başlık turuncu düğmesi: masaüstünde ödeme, telefonda (alt çubukla aynı eşik) randevu. */
.cta-telefon{display:none}
@media (max-width:1024px){
  .nav-actions .cta-masaustu{display:none}
  .nav-actions .cta-telefon{display:inline-flex}
  .fab{display:none}
  /* Öğeler tam genişliğe yayılınca aralarında büyük boşluk kalıyordu; artık dock
     içeriğine göre daralıyor ve ortalanıyor — referanstaki yüzen pill görünümü. */
  .dock{display:flex;justify-content:center;align-items:stretch;gap:.1rem;
    position:fixed;left:50%;transform:translateX(-50%);z-index:82;
    width:max-content;max-width:calc(100vw - 28px);
    bottom:calc(14px + env(safe-area-inset-bottom,0px));
    /* Tam kapsül: 28px yarıçap 74px yükseklikte ne kart ne pill görünüyordu. */
    padding:.4rem .42rem;border-radius:999px;
    background:color-mix(in srgb, var(--card) 88%, transparent);
    border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
    box-shadow:0 14px 40px rgba(42,35,32,.16),0 3px 10px rgba(42,35,32,.07);
    backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6)}
  /* min-width: öğe genişliği etikete bağlı; Farsçada "تلفن" 38px'e düşüp
     dokunma hedefi alt sınırının (44px) altında kalıyordu. */
  .dock-item{display:grid;justify-items:center;align-content:center;gap:.3rem;
    min-height:58px;min-width:44px;padding:.5rem .8rem;border-radius:999px;position:relative;
    /* Etiket ikonun önüne geçmesin: daha küçük, daha ince, biraz harf aralığı. */
    font-size:.71rem;font-weight:600;letter-spacing:.005em;color:var(--muted);
    transition:background .2s var(--ease),color .2s var(--ease)}
  /* Çizgi kalınlığı sitedeki diğer ikonlarla aynı; 1.85 kalabalık duruyordu. */
  .dock-item svg{width:24px;height:24px;stroke-width:1.6;color:var(--text-2)}
  .dock-item .dock-lbl{line-height:1.2;white-space:nowrap}
  .dock-item:active{background:var(--accent-tint)}
  /* Dört öğe de aynı nötr renkte; turuncu yalnız bulunulan sayfaya ayrılır
     (iletişim çiftini aksan rengine almak çubuğu alacalı gösteriyordu).
     Ayraç: 34. turda kullanıcı "çizgiler her birinin arasında olsun" dedi —
     eskiden yalnız iletişim/gezinme grupları arasındaydı. Çizgi pseudo öğe,
     yerleşimde yer kaplamaz; yalnız margin genişlik ekler.
     Renk: --line açık temada kapsül zeminine karşı 1,4:1 verip görünmüyordu;
     --muted-2 %90 → 3,4:1, koyu temada da aynı ağırlıkta. */
  .dock-item+.dock-item{margin-inline-start:.4rem}
  .dock-item+.dock-item::before{content:"";position:absolute;inset-inline-start:-.25rem;
    top:22%;bottom:22%;width:1px;
    background:color-mix(in srgb, var(--muted-2) 90%, transparent)}
  /* Bulunulan sayfa: 10 numaralı tasarımdaki sıcak vurgu */
  .dock-item.on{background:var(--accent-soft);color:var(--accent-ink)}
  .dock-item.on svg{color:var(--accent-ink)}
  /* Dock içeriği örtmesin — dock 74px + alttan 14px + 12px pay */
  body{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
/* Koyu temada dock zeminle neredeyse aynı değerdeydi, düz bir levha gibi duruyordu;
   bir kademe açık yüzey ve belirgin hairline ile sayfadan ayrılıyor. */
[data-theme="dark"] .dock{background:color-mix(in srgb, var(--card-3) 92%, transparent);
  border-color:rgba(255,255,255,.14);
  box-shadow:0 16px 44px rgba(0,0,0,.6),0 2px 10px rgba(0,0,0,.35)}
[data-theme="dark"] .dock-item svg{color:var(--text)}
/* Bulunulan sayfa koyu temada da aksan mürekkebi kalsın — yukarıdaki genel
   kural sonra geldiği için özgüllüğü eşitleyip ezilmesini önlüyoruz. */
[data-theme="dark"] .dock-item.on svg{color:var(--accent-ink)}
[data-theme="dark"] .dock-item+.dock-item::before{background:rgba(255,255,255,.38)}
/* Dock etiketleri nowrap; dar telefonlarda dört öğe kapsüle sığmayıp yuvarlak
   zeminin dışına taşıyordu (375px'te iki yandan ~7px). Sıkıştırma eşiği
   360px'ten 430px'e alındı — iPhone 375/390 ve Android 412 bu aralıkta.
   Yazı boyutu KÜÇÜLTÜLMÜYOR — yalnız yatay dolgu kısılıyor. Etiketi .68rem'e
   (10,9px) indirmek taşmayı çözüyordu ama okunamayacak kadar küçüktü;
   .71rem + .5rem dolgu 375px'te 8px payla sığıyor. */
@media (max-width:430px){ .dock-item{padding:.5rem .5rem} .dock-item svg{width:22px;height:22px} }
/* 320px'te yalnız dolgu kısılır; yazı boyutu 11,4px'te kalır. Etiketler
   dock'a özel kısa anahtarlara geçtikten sonra (dock.tools/dock.what) yazıyı
   10,7px'e indirmeye gerek kalmadı. */
@media (max-width:340px){
  /* 320px (iPhone SE 1. nesil) — en uzun etiket "Ücretsiz araçlar" 2px
     taşıyordu. Yazı boyutu korunur; dolgu, boşluk ve harf aralığı kısılır.
     min-width bir ara 40px'e çekilmişti; kısa etiketler ("Telefon", "تلفن")
     40px'e düşüp dokunma hedefi alt sınırının altında kalıyordu. 44px'te
     altı dilin hepsi 320px'e sığıyor — ölçüldü. */
  .dock-item{padding:.5rem .16rem;gap:.2rem;min-width:44px;letter-spacing:-.012em}
}

.pager{display:flex;justify-content:center;gap:.35rem;margin-top:2.8rem;flex-wrap:wrap}
.pager a,.pager span{min-width:44px;height:44px;display:grid;place-items:center;padding:0 .85rem;
  border-radius:14px;font-size:.92rem;font-weight:700;background:var(--card);transition:.2s;box-shadow:var(--sh-1)}
.pager a:hover{color:var(--accent)}
.pager .on{background:var(--accent);color:#fff}

.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.83rem;color:var(--muted);padding:1.1rem 0 0;font-weight:500}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{opacity:.45;margin-inline-end:.4rem}
/* Ayırıcı kendinden sonraki öğeyle aynı parçada: satır kırılınca "Araçlar ›" satır sonunda asılı kalıyordu. */
.crumbs .crumb{display:inline-flex;align-items:center}
.crumbs [aria-current]{color:var(--text);font-weight:600}

@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* JS yoksa içerik her zaman görünür kalır — .js sınıfı <head> içinde eklenir */
.js .reveal{opacity:0;transform:translateY(18px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}}
.reveal-d1{transition-delay:.06s}.reveal-d2{transition-delay:.12s}.reveal-d3{transition-delay:.18s}

/* 14. Duyarlı düzen ------------------------------------------------------ */
@media (max-width:1080px){
  /* Giriş 1080'de tek sütuna iniyordu; 1024px'te fotoğraf tam genişlikte ~1 ekran boyu portre olup
     hızlı kartları aşağı itiyordu (35. tur denetimi). Tek sütun artık 900px'te (aşağıda). */
  .hero-inner{gap:2.4rem}
  .hero-card{max-width:520px}
  .article-layout{grid-template-columns:1fr;gap:2rem}
  .toc{position:static;max-height:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .g-4{grid-template-columns:repeat(2,1fr)}
}
/* Masaüstü menüsü 1050px altında sağdaki düğmelerin üstüne binip kapsayıcıdan
   taşıyordu (901px'te 145px taşma). Geçiş noktası ölçülerek belirlendi:
   1060px'te tam sığıyor, altında sığmıyor. */
@media (max-width:1050px){
  .nav-links,.mega-wrap{display:none}
  .burger{display:grid}
}
/* Rusça ve Ukraynaca menü etiketleri Türkçeden ~150px uzun ("Бесплатные
   калькуляторы" tek başına 223px). Masaüstü menüsü bu dillerde ancak 1220px'ten
   itibaren kaba sığıyor; altında hamburger'e geçilir. Eşik ölçülerek bulundu:
   1200px'te ru 10px / uk 2px taşıyor, 1220'de ikisi de sığıyor. */
@media (max-width:1219px){
  html[lang="ru"] .nav-links, html[lang="ru"] .mega-wrap,
  html[lang="uk"] .nav-links, html[lang="uk"] .mega-wrap{display:none}
  html[lang="ru"] .burger, html[lang="uk"] .burger{display:grid}
}
/* 1220px ve üstünde de ru 7px / uk 4px taşıyordu (35. tur denetimi; başlık adı "Av. Hasan
   Hüseyin Uzun" olunca uzadı). Bu iki dilde bağlantı iç boşluğu ~19px geri kazandırır. */
html[lang="ru"] .nav-link, html[lang="uk"] .nav-link{padding-inline:.5rem}
@media (max-width:900px){
  .g-3{grid-template-columns:repeat(2,1fr)}
  .contact-split{grid-template-columns:1fr;gap:2.2rem}
  .cta-band{grid-template-columns:1fr;gap:1.4rem}
}
@media (max-width:760px){
  .nav{gap:.6rem}
  .nav-actions{gap:.4rem;margin-inline-start:auto}
  #searchBtn,#themeBtn{display:none}
  .drawer-tools{display:grid}
  .brand{min-width:0}
  .brand-text{min-width:0;overflow:hidden}
  .brand svg{width:36px;height:36px}
  .brand-name{font-size:.98rem}
  .nav-actions .btn{padding:.62rem 1.05rem;font-size:.87rem}
}
/* Mobilde dokunma hedefi: alt bilgi ve içindekiler bağlantıları 18–33px yüksekliğindeydi;
   parmakla isabet için asgari 40px hedefleniyor. */
@media (max-width:760px){
  .footer ul{gap:.15rem}
  .footer ul a{display:inline-flex;align-items:center;min-height:40px}
  .footer-bottom a{display:inline-flex;align-items:center;min-height:40px}
  .toc a{padding-top:.62rem;padding-bottom:.62rem}
  .crumbs a{display:inline-flex;align-items:center;min-height:36px}
}
/* Eşik 430 → 600px (35. tur): iPhone Pro Max 440px genişlikte bu kuralın dışında kalıyordu —
   "Randevu al" iki satıra kırılıyor, alt yazı görünüyor, başlık taşıyordu (kullanıcının telefonu). */
@media (max-width:600px){
  .brand-sub{display:none}
  .nav-actions .btn span.lbl{display:none}
  /* Etiket gizlenince düğme 49x40px'e düşüyordu; dokunma hedefi alt sınırı
     44px (Apple HİG 44, Material 48). Sitenin ana eylem düğmesi olduğu için
     min-height/min-width ile 44'e sabitlendi — sayfalama düğmeleri de 44. */
  .nav-actions .btn{padding:.62rem .9rem;min-height:44px;min-width:44px}
  /* 320px'te başlık sığmıyordu (35. tur denetimi): .brand flex:none olduğu için daralamıyor,
     logo+ad 216px, randevu+menü düğmeleri ~100px → menü düğmesi ekranın 34px dışına taşıyordu.
     Ad genişliğe göre küçülür (390px'te 15.7px, 320px'te 13px), logo 34px. */
  .brand{flex:0 1 auto;gap:.5rem}
  .brand svg{width:34px;height:34px}
  .brand-name{font-size:clamp(.8rem,4.05vw,.98rem);white-space:nowrap}
}
@media (max-width:640px){
  /* Alt bilgi sütunları katlanır: başlık dokunma hedefi olur, sağında +/− işareti çıkar */
  .f-col{border-top:1px solid rgba(255,255,255,.1)}
  .f-col:first-of-type{border-top:0}
  .f-col summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;
    gap:1rem;min-height:52px;padding:.2rem 0}
  .f-col summary .f-h{margin:0}
  .f-col summary::after{content:"+";color:var(--accent-3);font-size:1.5rem;line-height:1;font-weight:400}
  .f-col[open] summary::after{content:"–"}
  .f-col > ul{padding-bottom:1.1rem}
  body{font-size:16px}
  .wrap,.wrap-narrow{width:min(100% - 2rem,var(--wrap))}
  .g-2,.g-3,.g-4,.calc-grid{grid-template-columns:1fr}
  /* Telefonda bölüm arası: 2.8rem → 1.35rem, yani 90px yerine 43px.
     .section-tight de birlikte iniyor; yukarıdaki clamp'in alt sınırı
     (1.4rem) burada .section'dan büyük kalırdı. */
  .section{padding:1.35rem 0}
  .section-tight{padding:1.05rem 0}
  .card{padding:1.25rem}
  .footer-grid{grid-template-columns:1fr;gap:1.8rem}
  .fab a{width:50px;height:50px}
  .prose{font-size:1.03rem}
}
@media print{
  .site-header,.site-footer,.fab,.dock,.toc,.cta-band,.reading-bar{display:none!important}
  body{background:#fff;font-size:11pt}
  .prose a{color:#000;border:0}
}

/* ---- Sayfa başlığı bandı (iç sayfalar) ---- */
.page-head{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(172deg,var(--accent-soft) 0%,var(--accent-tint) 44%,var(--paper) 92%);
  padding:0 0 clamp(2rem,1.4rem + 2vw,3.2rem);margin-bottom:clamp(2rem,1.4rem + 2vw,3rem)}
.page-head::before{content:"";position:absolute;z-index:-1;right:-16vw;top:-40vh;width:60vw;height:60vw;
  border-radius:50%;background:radial-gradient(circle,rgba(221,85,37,.16),transparent 68%)}
.page-head .crumbs{padding:1.1rem 0 1.5rem}
.page-head .ph-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2.5rem;align-items:end}
.page-head h1{margin:0 0 .5rem;max-width:20ch}
.page-head .lede{margin:0;max-width:58ch}
.page-head .ph-ico{display:grid;place-items:center;width:60px;height:60px;border-radius:19px;
  background:var(--accent);color:#fff;margin-bottom:1.1rem;box-shadow:var(--sh-warm)}
.page-head .ph-ico svg{width:27px;height:27px;stroke-width:1.8}
.page-head .ph-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
.page-head .ph-aside{display:grid;gap:1rem;justify-items:end;align-content:end}
.page-head .ph-side{display:grid;gap:.5rem;min-width:210px;width:100%}
.page-head .ph-fact{background:var(--card);border-radius:var(--r-lg);padding:.85rem 1.1rem;box-shadow:var(--sh-1)}
.page-head .ph-fact b{display:block;font-size:.76rem;color:var(--accent-text);font-weight:700}
.page-head .ph-fact span{font-size:.92rem;font-weight:600;line-height:1.4}
@media(max-width:900px){.page-head .ph-grid{grid-template-columns:1fr;gap:1.6rem;align-items:start}
  .page-head .ph-side{min-width:0}}

/* ---- Kompakt alan bağlantıları (anasayfa alt sırası) ---- */
.area-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.area-chips a{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1.15rem;border-radius:100px;
  background:var(--card);border:1.5px solid var(--line);font-size:.92rem;font-weight:600;
  box-shadow:var(--sh-1);transition:.22s var(--ease)}
.area-chips a svg{width:17px;height:17px;color:var(--accent);flex:none}
.area-chips a:hover{border-color:var(--accent);color:var(--accent-text);transform:translateY(-2px);box-shadow:var(--sh-2)}

/* ---- Öne çıkan alan kartı ---- */
.card-lg{padding:1.25rem}
/* Kart üstü fotoğraf. Kartın kendi dolgusunu negatif kenar boşluğuyla iptal edip
   görseli kenardan kenara oturtur. Oran, kapak dosyasının kendi oranıdır (1200×630):
   fotoğraf hiç kırpılmadan görünür. Daha ince bir şerit (4:1) denendi ve geri alındı —
   yüzük, tokmak, araç gibi konular kesilip tanınmaz hâle geliyordu. */
.card-media{margin:-1.25rem -1.25rem 1rem;border-radius:calc(var(--r-lg) - 1.5px) calc(var(--r-lg) - 1.5px) 0 0;
  overflow:hidden;background:var(--accent-soft)}
.card-media img{width:100%;height:100%;aspect-ratio:1200/630;object-fit:cover;
  transition:transform .55s var(--ease)}
.card:hover .card-media img{transform:scale(1.05)}
.card{overflow:hidden}
.card-lg .ico{width:48px;height:48px;border-radius:15px}
.card-lg .ico svg{width:22px;height:22px}
.card-lg h2,.card-lg h3{font-size:1.125rem;margin:.9rem 0 .35rem}
/* Görselin hemen altındaki başlık: görselin alt boşluğu (1rem) yeterli; üst kenar
   boşluğu eklenince (flex sütunda birleşmez) arada ~33px açılıyordu. */
.card-media + h2,.card-media + h3{margin-top:0}
.card-lg p{font-size:.945rem}

/* ---- Yan sütun kutuları ---- */
.side-cta{background:var(--ink);color:#F1EAE4;border-radius:var(--r-xl);padding:1.5rem;position:relative;overflow:hidden}
[data-theme="dark"] .side-cta{background:var(--card-2);border:1.5px solid var(--line)}
.side-cta::before{content:"";position:absolute;right:-50px;top:-50px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,138,76,.22),transparent 66%)}
.side-cta h2,.side-cta h3{color:#FBF7F2;font-size:1.12rem;margin-bottom:.45rem;position:relative}
.side-cta p{color:#D2C4B7;font-size:.9rem;margin-bottom:1.1rem;position:relative;font-weight:450}
.side-cta .btn-row{position:relative}
.side-box{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-xl);padding:1.4rem}
.side-box h2,.side-box h4{margin-bottom:.85rem;font-size:.98rem;letter-spacing:-.02em}
.side-list{display:grid;gap:.35rem}
.side-list a{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-radius:12px;
  font-size:.895rem;font-weight:600;color:var(--text-2);transition:.2s var(--ease)}
.side-list a svg{width:16px;height:16px;color:var(--accent);flex:none}
.side-list a:hover{background:var(--accent-tint);color:var(--accent-ink);transform:translateX(3px)}

/* ---- Vurgulu istatistik satırı ---- */
.fact-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.fact{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:.9rem 1.2rem;
  box-shadow:var(--sh-1)}
.fact b{display:block;font-size:1.35rem;font-weight:800;color:var(--accent-text);letter-spacing:-.035em;line-height:1.15}
.fact span{font-size:.8rem;color:var(--muted);font-weight:600}

/* Alt bilgi araç şeridi. Eskiden seçici a[href*="/araclar/"] idi: ru/ar/fa'da adres yolu çevrildiği
   için tutmuyor, simgeler 40px'e büyüyordu; tr'de de alttaki "Rehber ve araçlar" bağlantılarına
   istemeden hap zemini veriyordu (35. tur denetimi). Artık sınıfla. */
.f-araclar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding-bottom:2.2rem;
  border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2.4rem}
.f-araclar__bas{font-size:.9rem;font-weight:700;color:#FBF7F2;margin-inline-end:.6rem}
.footer-grid a.f-arac,.f-araclar a.f-arac{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem 1rem;border-radius:100px;
  background:rgba(255,255,255,.07);color:#E5D9CE;font-size:.855rem;font-weight:600;white-space:nowrap}
.f-arac svg{width:16px;height:16px;color:var(--accent-3);flex:none}
.f-araclar a.f-arac:hover{background:var(--accent);color:#fff}
.f-arac:hover svg{color:#fff}

/* ---- Giriş bölümü fotoğrafı ---- */
.hero-inner{align-items:center}
.hero-text{min-width:0}
.hero-photo{margin:0;position:relative;isolation:isolate}
.hero-photo::before{content:"";position:absolute;z-index:-1;inset:auto -6% -5% -6%;height:88%;
  border-radius:var(--r-2xl);background:var(--accent-soft)}
.hero-photo img{width:100%;height:auto;border-radius:var(--r-2xl);object-fit:cover;
  aspect-ratio:4/5;box-shadow:var(--sh-3);display:block}
.hero-sign{margin:1.9rem 0 0;padding-top:1.4rem;border-top:1.5px solid var(--line);
  display:flex;flex-direction:column;gap:.1rem}
.hero-sign strong{font-size:1.02rem;font-weight:800;letter-spacing:-.025em}
.hero-sign span{font-size:.875rem;color:var(--muted);font-weight:500}

/* ---- Hızlı başlangıç satırı ---- */
.quick-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.quick-item{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;border-radius:var(--r-lg);
  background:var(--card);border:1.5px solid var(--line);box-shadow:var(--sh-1);transition:.24s var(--ease)}
.quick-item:hover{border-color:var(--accent-line);background:var(--accent-tint);transform:translateY(-3px);
  box-shadow:var(--sh-2)}
.quick-item .ico{width:38px;height:38px;border-radius:12px}
.quick-item .ico svg{width:18px;height:18px}
.quick-item b{font-size:.9rem;font-weight:700;display:block;letter-spacing:-.02em;line-height:1.3}
.quick-item span span{font-size:.78rem;color:var(--muted);display:block;line-height:1.4;font-weight:500;margin-top:1px}
.quick-item .go{margin-inline-start:auto;color:var(--accent);opacity:.5;flex:none}
.quick-item .go svg{width:16px;height:16px}

/* ---- Kurucu bölümü ---- */
.founder{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3rem;align-items:center}
.founder-photo{margin:0;position:relative;isolation:isolate}
.founder-photo::before{content:"";position:absolute;z-index:-1;inset:-5% -5% auto -5%;height:82%;
  border-radius:var(--r-2xl);background:var(--accent-soft)}
.founder-photo img{width:100%;height:auto;border-radius:var(--r-2xl);object-fit:cover;aspect-ratio:4/5;
  box-shadow:var(--sh-2)}
.founder-name{margin:1.4rem 0 0;display:flex;flex-direction:column;gap:.1rem}
.founder-name strong{font-size:1.08rem;font-weight:800;letter-spacing:-.025em}
.founder-name span{font-size:.9rem;color:var(--accent-text);font-weight:700}

@media (max-width:1080px){
  .quick-row{grid-template-columns:repeat(2,1fr)}
  .founder{grid-template-columns:1fr;gap:2rem}
  .founder-photo{max-width:460px}
}
@media (max-width:900px){
  .hero-photo{max-width:460px;margin-inline:auto}
  .hero-inner{grid-template-columns:1fr}
}
/* Hızlı soru kartları telefonda (35. tur önce gizlenmişti; 36. turda kullanıcı "geri koyalım ama tam sığsın,
   kaydırma olmasın, çok yer kaplamasın" dedi): 2×2 kompakt kutu, yalnız simge + soru; alt açıklama ve ok gizli. */
@media (max-width:640px){
  .quick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .quick-item{gap:.55rem;padding:.7rem .75rem;min-height:60px;box-shadow:none}
  .quick-item .ico{width:32px;height:32px;border-radius:10px}
  .quick-item .ico svg{width:16px;height:16px}
  .quick-item>span:nth-child(2){min-width:0}
  .quick-item b{font-size:.8rem;line-height:1.25;overflow-wrap:break-word}
  .quick-item span span,.quick-item .go{display:none}
}
/* En dar telefonlarda (ru 320px'te bir kelime kutuya sığmıyordu) simge ve yazı bir tık küçük. */
@media (max-width:360px){
  .quick-item{gap:.45rem;padding:.65rem .6rem}
  .quick-item .ico{width:28px;height:28px;border-radius:9px}
  .quick-item .ico svg{width:15px;height:15px}
  .quick-item b{font-size:.76rem}
}

/* ---- Sayfa başlığı bandındaki kapak fotoğrafı ---- */
.page-head .ph-photo{margin:0;position:relative;isolation:isolate;max-width:330px;justify-self:end}
.page-head .ph-photo::before{content:"";position:absolute;z-index:-1;inset:-6% -6% auto -6%;height:70%;
  border-radius:var(--r-2xl);background:var(--accent-soft)}
.page-head .ph-photo img{width:100%;height:auto;border-radius:var(--r-2xl);object-fit:cover;
  aspect-ratio:1/1;box-shadow:var(--sh-2);display:block}

/* ---- SSS konu başlığı görselleri ---- */
.topic-head{position:relative;border-radius:var(--r-xl);overflow:hidden;margin-bottom:.9rem;
  box-shadow:var(--sh-1)}
.topic-head img{width:100%;height:112px;object-fit:cover;object-position:right center;display:block}
.topic-title{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;
  padding:0 1.5rem;gap:.15rem}
/* Metin fotoğrafın üstünde durduğu için okunurluk fotoğrafa bağlı kalıyordu; açık
   renkli tül bunu fotoğraftan bağımsız hâle getirir. Her iki temada da açık kalır,
   çünkü üstündeki metin her iki temada da koyudur. */
.topic-head::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(250,245,238,.97) 0%,rgba(250,245,238,.92) 40%,
    rgba(250,245,238,.55) 66%,rgba(250,245,238,0) 88%)}
.topic-title h2{margin:0;font-size:clamp(1.25rem,1.05rem + .7vw,1.55rem);color:#1A1512;scroll-margin-top:110px}
.topic-title span{font-size:.83rem;color:#7A5E4C;font-weight:700}
@media (max-width:900px){
  .page-head .ph-photo{max-width:280px;justify-self:start}
  .topic-head img{height:96px}
}

/* Konu şeridi ve makale kapağı — picture sarmalayıcısı */
.topic-head picture{display:block}
.article-cover picture{display:block}
.article-cover img{width:100%;border-radius:var(--r-xl);aspect-ratio:21/9;object-fit:cover;box-shadow:var(--sh-2)}
.post-img picture{display:block;width:100%;height:100%}

/* Sayfa bandındaki konu illüstrasyonu */
.page-head .ph-visual{margin:0;max-width:400px;justify-self:end;position:relative;isolation:isolate}
.page-head .ph-visual picture{display:block}
.page-head .ph-visual img{width:100%;height:auto;border-radius:var(--r-xl);aspect-ratio:16/9;
  object-fit:cover;box-shadow:var(--sh-2);display:block}
@media (max-width:900px){.page-head .ph-visual{max-width:320px;justify-self:start}}

/* 20. Dil seçici ---------------------------------------------------------- */
.dil-secici{position:relative}
.dil-secici>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;
  height:38px;padding:0 .6rem;border:1.5px solid var(--line);border-radius:100px;background:var(--card);
  color:var(--text-2);font-size:.82rem;font-weight:700;transition:.2s var(--ease)}
.dil-secici>summary::-webkit-details-marker{display:none}
.dil-secici>summary:hover{border-color:var(--accent-line);color:var(--accent)}
.dil-secici>summary svg{width:17px;height:17px}
.dil-kod{letter-spacing:.02em}
.dil-liste{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:90;min-width:190px;
  background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--sh-2);padding:.35rem;display:grid;gap:.1rem}
.dil-liste a{display:flex;align-items:center;gap:.55rem;padding:.5rem .65rem;border-radius:8px;
  font-size:.88rem;font-weight:600;color:var(--text-2);text-decoration:none}
.dil-liste a:hover{background:var(--card-2);color:var(--accent)}
.dil-liste a.on{color:var(--accent);background:var(--accent-tint)}
.dil-bayrak{font-size:1.05rem;line-height:1}
/* Mobil çekmecede açılır kutu değil, satır içi liste gibi davranır. */
.dil-mobil{width:100%}
.dil-mobil>summary{width:100%;justify-content:center}
/* Çekmecede arama/tema düğmeleriyle aynı yükseklik ve köşe yarıçapı. */
.drawer-tools .dil-mobil>summary{height:46px;border-radius:13px;font-size:.9rem;gap:.5rem;font-weight:600;color:var(--muted)}
/* Liste .drawer-tools'a göre konumlanır (details static), iki sütunu da kaplar. */
.drawer-tools .dil-mobil{position:static}
.dil-mobil .dil-liste{inset-inline:0;top:calc(100% - .8rem);min-width:0;width:auto}
@media (max-width:900px){ .nav-actions .dil-secici{display:none} }

/* Sağdan sola dillerde henüz çevrilmemiş (Türkçeye düşen) metinler.
   dir="auto" tarayıcının her bloğun yönünü içeriğinden anlamasını sağlar;
   yoksa Latin harfli metnin noktalaması satır başına kayar. */
[dir="rtl"] .prose,[dir="rtl"] .prose *,
[dir="rtl"] .hero p,[dir="rtl"] .hero h1,
[dir="rtl"] .card p,[dir="rtl"] .card h3{unicode-bidi:plaintext}
/* Sağdan sola dillerde "ileri" oku sola bakmalı (35. tur denetimi: /ar/'da hepsi sağı gösteriyordu).
   Ayrı `scale` özelliği kullanılıyor: hover'daki transform:translateX ile çakışmaz. Hover kayması
   da aynalanmış eksende ters yöne (sola) gider. */
[dir="rtl"] svg[data-yon]{scale:-1 1}
[dir="rtl"] .link-arrow:hover svg{transform:translateX(-4px)}

/* Koyu temada aksan rengi açık turuncuya (#FF8A4C) döner; üzerindeki beyaz metin
   2,34:1'de kalıyor ve WCAG AA'nın (4,5:1) altına düşüyordu. .btn-gold ve
   .result-total için zaten koyu mürekkep kullanılıyordu — aksan zeminli diğer
   tüm öğeler de aynı mürekkebe alınır (#17150F üzerinde 7,81:1). Simgeler
   currentColor kullandığı için renk onları da düzeltir. */
[data-theme="dark"] .step-n,
[data-theme="dark"] .card:hover .ico,
[data-theme="dark"] .acc summary .plus,
[data-theme="dark"] .acc details[open] summary .plus,
[data-theme="dark"] .district-tabs button.on,
[data-theme="dark"] .wiz-opt .n,
[data-theme="dark"] .roadmap .rn,
[data-theme="dark"] .social a:hover,
[data-theme="dark"] .pager .on,
[data-theme="dark"] .page-head .ph-ico{color:#17150F}
[data-theme="dark"] .f-araclar a.f-arac:hover,[data-theme="dark"] .f-arac:hover svg{color:#17150F}
[data-theme="dark"] ::selection{background:var(--accent);color:#17150F}

/* ---- Kayan çalışma alanları (anasayfa "Ne konuda destek gerekiyor?", 35. tur) --------
   DentFlow "Nasıl çalışır" mekaniği: solda alanlar akar, sağda yapışkan tuvalde kapak
   fotoğrafı; ekranın ortasına en yakın alan etkinleşir (main.js [data-kay]). 980px altında
   tuval başlığın altına yapışır, alanlar altından geçer. Adımlar arası sabit boşluk (vh yüksekliği
   kullanıcı "çok boşluk" deyince kaldırıldı); son adımın altındaki pay, tuval bırakılmadan
   son adımın ortaya gelebilmesi için. Tuval 440px. */
.kay{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,4vw,4.5rem);align-items:start}
.kay-steps{list-style:none;margin:0;padding:0;display:grid}
.kay-step{display:flex;flex-direction:column;padding-block:clamp(1.75rem,5vh,3rem);
  opacity:.3;transition:opacity .45s var(--ease)}
.kay-step.active{opacity:1}
.kay-step:first-child{padding-top:1rem}
.kay-step:last-child{padding-bottom:7rem}
.kay-num{display:flex;align-items:center;gap:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.1em;
  color:var(--accent-text);margin-bottom:.9rem}
.kay-num svg{width:18px;height:18px}
.kay-num::after{content:"";width:40px;height:1px;background:currentColor;opacity:.45}
.kay-step h3{font-size:clamp(1.45rem,1.1rem + 1.2vw,1.95rem);line-height:1.12;letter-spacing:-.03em;margin:0 0 .75rem}
.kay-step p{color:var(--text-2);font-size:1.02rem;line-height:1.65;max-width:44ch;margin:0 0 1rem}
.kay-step .link-arrow{align-self:flex-start}
.kay-visual{position:sticky;top:max(calc(var(--nav-h) + 16px),calc(50vh - 220px));height:440px}
.kay-canvas{position:absolute;inset:0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);background:#1C140F}
.kay-frame{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity .6s var(--ease),transform .9s var(--ease)}
.kay-frame.active{opacity:1;transform:none}
.kay-frame picture,.kay-frame img{display:block;width:100%;height:100%}
.kay-frame img{object-fit:cover}
.kay-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(18,13,10,.7))}
.kay-cap{position:absolute;z-index:1;inset-inline-start:1.1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;
  color:#fff;font-weight:700;font-size:.95rem}
.kay-cap svg{width:18px;height:18px}
.kay-sayac{position:absolute;z-index:2;inset-inline-end:1.1rem;bottom:1rem;color:rgba(255,255,255,.75);
  font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.kay-sayac b{color:#fff}
@media (max-width:980px){
  /* Tuval üstte yapışır; zemini bölüm zemini, altından geçen metin görünmesin. */
  .kay{grid-template-columns:1fr;gap:0}
  .kay-visual{order:-1;z-index:2;top:var(--nav-h);height:auto;margin-inline:-1.25rem;padding:.5rem 1.25rem .75rem;background:var(--paper)}
  .kay-canvas{position:relative;inset:auto;height:min(34vh,240px);border-radius:var(--r-lg)}
  .kay-step,.kay-step:first-child,.kay-step:last-child{padding:1.6rem 0}
  .kay-step:last-child{padding-bottom:.5rem}
  .kay-step h3{font-size:1.3rem}
  .kay-step p{font-size:.97rem}
}
@media (prefers-reduced-motion:reduce){ .kay-frame,.kay-step{transition:none} }

/* ---- Araç rafı (anasayfa "Ücretsiz araçlar", 35. tur) --------------------------------
   ago-web'deki sektör rafının uyarlaması (kullanıcı isteği). Gizli radyo + şeridi kaplayan
   label, saf CSS. Açık/kapalı tek anahtarda: --acik 0/1; genişleme, gri filtre ve içeriğin
   açılması ondan hesaplanır. Açık şerit: imleç hangisindeyse o (yalnız fareli cihazda —
   dokunmatikte :hover yapışıp kalıyor), imleç raf dışındaysa seçili olan.
   Metin koyu fotoğrafın üstünde: renkler temaya bağlanmadı, iki temada da açık metin.
   Tıklama katmanı bağlantıyı örtmesin: içerik üstte ama pointer-events:none, bağlantı auto. */
.araf{display:flex;gap:10px;height:380px}
.araf__oge{--acik:0;position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:var(--r-xl);
  background:#1C140F;flex-grow:calc(1 + var(--acik) * 3.5);transition:flex-grow .55s var(--ease)}
.araf__oge:has(:checked){--acik:1}
@media (hover:hover){
  .araf:has(.araf__oge:hover) .araf__oge{--acik:0}
  .araf:has(.araf__oge:hover) .araf__oge:hover{--acik:1}
}
.araf__giris{position:absolute;width:1px;height:1px;opacity:0}
.araf__oge:has(:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.araf__dokun{position:absolute;inset:0;z-index:3;cursor:pointer}
.araf__oge picture{position:absolute;inset:0}
.araf__kare{width:100%;height:100%;object-fit:cover;
  filter:grayscale(calc(.7 - var(--acik) * .55)) brightness(calc(.5 + var(--acik) * .2));
  transform:scale(calc(1.06 - var(--acik) * .06));transition:filter .55s var(--ease),transform .55s var(--ease)}
.araf__perde{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(18,13,10,.1) 0%,rgba(18,13,10,.5) 40%,rgba(18,13,10,.92) 78%,rgba(18,13,10,.98) 100%)}
.araf__ic{position:absolute;inset-inline:0;bottom:0;z-index:4;pointer-events:none;color:#F7F1EA;
  display:flex;flex-direction:column;gap:.7rem;padding:1.1rem calc(.9rem + var(--acik) * .5rem) 1.3rem}
.araf__rozet{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;max-width:100%;
  padding:.4rem .75rem .4rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;line-height:1.2;
  color:#FFE3CF;background:rgba(255,138,76,.16);border:1px solid rgba(255,138,76,.38)}
.araf__rozet svg{width:15px;height:15px;flex:none;color:#FF9A5E}
/* Dar kapalı şeritte ad sığmıyor, kutudan taşıyordu (1024px'te tr, 1440px'te ru — denetim):
   şerit 150px'ten darsa rozet dikey yazılır, aşağıdan yukarı okunur. Şerit açılınca yatay döner. */
@media (min-width:901px){
  .araf__oge{container-type:inline-size}
  @container (max-width:150px){
    .araf__rozet{writing-mode:vertical-rl;transform:rotate(180deg);padding:.7rem .4rem .6rem;align-self:center}
    .araf__rozet svg{transform:rotate(90deg)}
    .araf__ic{align-items:center}
  }
}
.araf__ac{overflow:hidden;display:flex;flex-direction:column;gap:.6rem;
  max-height:calc(var(--acik) * 16em);opacity:var(--acik);
  transition:max-height .5s var(--ease),opacity .3s var(--ease) .12s}
.araf__t{margin:0;color:#fff;font-size:clamp(1.15rem,1.4vw,1.45rem);line-height:1.2;letter-spacing:-.02em}
.araf__ac p{margin:0;color:#D9CEC4;font-size:.92rem;line-height:1.55;max-width:46ch}
.araf__bag{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;pointer-events:auto;
  font-weight:700;font-size:.92rem;color:#FF9A5E;text-decoration:none}
.araf__bag svg{width:15px;height:15px}
.araf__bag:hover{text-decoration:underline}
@media (max-width:900px){
  /* Raf 90° döner: alt alta bantlar, dokunulan bant açılır. Sütunda flex:1 1 0 bantları
     çökertir (ago'da ölçülmüş) — yükseklik doğrudan veriliyor. */
  .araf{flex-direction:column;height:auto;gap:8px}
  .araf__oge{flex:0 0 auto;height:calc(64px + var(--acik) * 236px);transition:height .5s var(--ease)}
  .araf__ic{padding:.9rem 1rem 1rem}
  .araf__ac{max-height:calc(var(--acik) * 18em)}
}
@media (prefers-reduced-motion:reduce){ .araf__oge,.araf__kare,.araf__ac{transition:none} }

/* ---- Deste: kaydırdıkça üst üste yapışan kartlar (anasayfa Rehber, 35. tur) ------------
   ago-web assets/css/deste.css uyarlaması (kullanıcı isteği). Saf CSS: kartlar sticky, her kart
   öncekinden --i × 10px aşağıda durur, üst kenarı görünür kalır. Kart OPAK olmalı, yoksa alttaki
   içinden okunur. Kart ekrandan uzun olursa deste hissi kaybolur: telefonda görsel üstte ince
   şerit, metin altta (yan yana dar sütunda kart uzuyordu). */
.deste{display:flex;flex-direction:column;gap:clamp(14px,1.7vw,22px)}
.deste__kart{position:sticky;top:calc(var(--nav-h) + 14px + var(--i,0) * 10px)}
.dkart{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(18px,3vw,44px);
  align-items:center;min-height:clamp(280px,38vh,380px);padding:clamp(18px,2.4vw,32px);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:0 -24px 50px -34px rgba(40,20,10,.35),var(--sh-2)}
.dkart--ters .dkart__medya{order:-1}
.dkart__govde{min-width:0}
.dkart__ust{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.dkart__ikon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:var(--accent-tint);color:var(--accent-text);border:1px solid var(--accent-line)}
.dkart__ikon svg{width:20px;height:20px}
.dkart__no{font-weight:800;font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1.2px var(--accent-line)}
.dkart__meta{margin-bottom:.6rem}
.dkart__t{margin:0 0 .6rem;font-size:clamp(1.2rem,1rem + .9vw,1.6rem);line-height:1.2;letter-spacing:-.025em}
.dkart__t a{color:inherit;text-decoration:none}
.dkart__t a:hover{color:var(--accent-text)}
.dkart__x{margin:0 0 1rem;color:var(--text-2);font-size:.98rem;line-height:1.6;max-width:52ch}
.dkart__medya{display:block;min-width:0;aspect-ratio:16/10;overflow:hidden;border-radius:14px;
  border:1px solid var(--line);box-shadow:var(--sh-2);background:var(--accent-soft)}
.dkart__medya picture,.dkart__medya img{display:block;width:100%;height:100%}
.dkart__medya img{object-fit:cover;transition:transform .55s var(--ease)}
.dkart__medya:hover img{transform:scale(1.04)}
.dkart__ph{display:grid;place-items:center;height:100%;color:var(--accent-text)}
.dkart__ph svg{width:48px;height:48px}
@media (max-width:640px){
  .deste__kart{top:calc(var(--nav-h) + 8px + var(--i,0) * 8px)}
  .dkart,.dkart--ters{grid-template-columns:1fr;min-height:0;gap:14px;padding:16px;border-radius:var(--r-lg)}
  .dkart--ters .dkart__medya,.dkart__medya{order:-1;aspect-ratio:auto;height:110px;border-radius:10px}
  .dkart__ust{margin-bottom:8px}
  .dkart__ikon{width:34px;height:34px;border-radius:10px}
  .dkart__no{font-size:1.5rem}
  .dkart__t{font-size:1.1rem}
  .dkart__x{font-size:.92rem;line-height:1.55;margin-bottom:.7rem}
}

/* ---- Akış: yatay zaman çizgisi (anasayfa "Beş adım. Hepsi bu.", 35. tur) ------------------
   Numaralar bir çizgiyle bağlı; çizgi her adımın ::before'u (numaranın ortasından bir sonraki
   adıma uzanır), RTL'de inset-inline ile kendiliğinden döner. ≤760px: yana kayan şerit, adım
   genişliği %72 → bir sonraki adımın ucu görünür, kaydırılabildiği anlaşılır. */
.akis-bas{display:flex;justify-content:space-between;align-items:end;gap:1.5rem 2.5rem;flex-wrap:wrap;margin-bottom:2rem}
.akis-bas>div:first-child{max-width:60ch}
.akis-bas h2{margin-bottom:.4rem}
.akis-bas .lede{margin:0}
.akis-bas .btn-row{margin:0}
.akis{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem}
.akis__adim{position:relative;min-width:0}
.akis__adim:not(:last-child)::before{content:"";position:absolute;top:19px;height:2px;
  inset-inline-start:48px;inset-inline-end:calc(-1.25rem + 8px);
  background:linear-gradient(90deg,var(--accent-line),var(--line))}
[dir="rtl"] .akis__adim:not(:last-child)::before{background:linear-gradient(-90deg,var(--accent-line),var(--line))}
.akis__no{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;margin-bottom:.9rem;
  background:var(--accent);color:#fff;font-weight:800;font-size:.95rem;box-shadow:var(--sh-2)}
[data-theme="dark"] .akis__no{color:#17150F}
.akis__adim h3{font-size:1.05rem;line-height:1.25;letter-spacing:-.02em;margin:0 0 .35rem}
.akis__adim p{margin:0;color:var(--text-2);font-size:.9rem;line-height:1.55}
@media (max-width:1080px) and (min-width:761px){
  .akis{gap:1rem}
  .akis__adim:not(:last-child)::before{inset-inline-end:calc(-1rem + 8px)}
  .akis__adim p{font-size:.85rem}
}
@media (max-width:760px){
  .akis-bas{margin-bottom:1.4rem}
  /* İki düğme alt alta düşüp 60px yiyordu: küçük ve sığdıkça yan yana; sığmayan dilde/genişlikte
     (ör. ru 320px) alt satıra geçer, taşmaz. */
  .akis-bas .btn-row{flex-wrap:wrap;gap:.5rem;width:100%}
  .akis-bas .btn{flex:1 1 auto;justify-content:center;padding-inline:.9rem;font-size:.88rem;white-space:nowrap}
  .akis{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin-inline:-1.25rem;padding:.25rem 1.25rem .5rem;scroll-padding-inline:1.25rem}
  .akis::-webkit-scrollbar{display:none}
  /* Telefonda yalnız numara + başlık (35. tur, kullanıcı "telefonda çok yer kaplıyor" deyip
     seçti): lede ve adım açıklamaları gizli, metin HTML'de duruyor. Adım dar → 3 adım görünür. */
  .akis-bas .lede{display:none}
  .akis-bas h2{margin-bottom:0}
  .akis{gap:.75rem}
  .akis__adim{flex:0 0 31%;scroll-snap-align:start}
  .akis__adim:not(:last-child)::before{top:15px;inset-inline-start:40px;inset-inline-end:calc(-.75rem + 6px)}
  .akis__no{width:32px;height:32px;border-radius:10px;font-size:.85rem;margin-bottom:.55rem}
  .akis__adim h3{font-size:.88rem;line-height:1.3;margin:0}
  .akis__adim p{display:none}
}

/* .wrap kenar boşluğu 640px altında 1.25rem → 1rem iniyor; kenara dayanan şeritlerin negatif payı
   da ona uymalı, yoksa ekranın 4px dışına taşıyorlardı (35. tur denetimi). Kendi kurallarından
   sonra durmalı. */
@media (max-width:640px){
  .kay-visual{margin-inline:-1rem;padding-inline:1rem}
  .akis{margin-inline:-1rem;padding-inline:1rem;scroll-padding-inline:1rem}
}

/* ==== 35. tur duyarlı tasarım denetimi düzeltmeleri =========================================
   test/duyarli-denetim.mjs (1440/1024/768/390/320) + ekran görüntüsü incelemesiyle bulundu. */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  /* Sayfa başı görseli tablette 320px'e sabitlenip sola yaslanıyor, sağında ~380px boşluk
     kalıyordu; telefonda da sağ boşluk soldan geniş. Artık tam genişlik, daha yatay oran. */
  .page-head .ph-aside{justify-items:stretch}
  .page-head .ph-visual{max-width:none;justify-self:stretch}
  .page-head .ph-visual img{aspect-ratio:21/9}
  /* Kişi fotoğrafı: süs kutusu (::before) sol kenarda ekran dışına taşıyordu. */
  .page-head .ph-photo{max-width:230px}
  .page-head .ph-photo::before{inset:-12px -12px auto -12px}
  /* Makale tek sütuna inince içindekiler tam genişlik, altındaki metin 54ch'de kalıyordu. */
  .article-layout .toc{max-width:var(--olcu)}
}
/* Makale: gövde metni 54ch okuma ölçüsünde; yazar, SSS, uyarı ve hizmet kutuları sütunun tamamını
   kaplayınca üç farklı sağ kenar oluşuyordu. Hepsi gövde ölçüsüne hizalanır. */
.article-layout>div>:not(.prose){max-width:var(--olcu)}
/* İletişim: ızgara çocuğu min-width:auto olduğu için form 320px'te içeriğe göre 323px'e
   genişleyip ekrandan 19px taşıyordu. */
.contact-split>*{min-width:0}
/* SSS "Konular": 1000px altında 11 satırlık dikey liste (telefonda ~550px) → sarılan haplar,
   telefonda tek satır yana kayan şerit. */
@media (max-width:1000px){
  .split-left>.toc{display:flex;flex-wrap:wrap;gap:.4rem;padding:.9rem 1rem}
  .split-left>.toc h2{flex-basis:100%;margin-bottom:.2rem}
  .split-left>.toc a{border:1.5px solid var(--line);border-radius:100px;padding:.4rem .85rem;font-size:.85rem;white-space:nowrap}
}
@media (max-width:640px){
  .split-left>.toc{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-1rem;border-radius:0;
    padding-inline:1rem;box-shadow:none;background:transparent}
  .split-left>.toc::-webkit-scrollbar{display:none}
  .split-left>.toc h2{display:none}
  .split-left>.toc a{display:inline-flex;align-items:center;min-height:40px;background:var(--card)}
}
/* İlçeler: "Avrupa Yakası / Anadolu Yakası" telefonda iki satıra kırılıp hapı ikiye katlıyordu. */
@media (max-width:640px){
  .district-tabs{width:100%}
  .district-tabs button{flex:1 1 auto;padding-inline:.6rem;white-space:nowrap;font-size:.82rem}
  /* 320px'te 158px alt sınır tek sütuna düşürüyordu (39 ilçe alt alta). */
  .district-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}
}
/* Hesaplayıcı sonuçları: "40.000,00" ile "₺", "– 2.329,82 ₺" dar ekranda ayrı satırlara bölünüyordu. */
.result-row b{white-space:nowrap}
@media (max-width:400px){
  .result-row{flex-wrap:wrap;row-gap:.15rem}
  .result-row b{margin-inline-start:auto}
  .calc-head,.calc-body{padding:1.1rem}
  .wiz-opt{padding:.85rem .9rem;gap:.65rem}
}
/* Sayfa başı düğmeleri telefonda farklı genişlikte, sola yaslı alt alta kalıyordu. */
@media (max-width:480px){
  .page-head .ph-actions .btn{flex:1 1 100%;justify-content:center}
}
/* Footer: tablette 2×2 ızgarada marka sütunu altında büyük boşluk → marka tam satır, altında 3 sütun. */
@media (max-width:1080px) and (min-width:641px){
  .footer-grid{grid-template-columns:repeat(3,1fr)}
  .footer-brand{grid-column:1 / -1}
}
@media (max-width:1024px){
  /* Dock payı body'deydi: koyu footer'ın altında açık renkli 100px şerit kalıyordu. Pay footer'a taşındı. */
  body{padding-bottom:0}
  .site-footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:760px){
  /* Alt yasal bağlantılar: 40px dokunma yüksekliği + satır boşluğu satırlar arasında ~50px açıyordu. */
  .footer-bottom{row-gap:0}
  .footer-bottom a{min-height:36px}
}
/* Hakkımızda: gövdenin başındaki dikey portre (860×1074) sütunun tamamına yayılıp masaüstünde
   ~560×700px ile ilk ekranı dolduruyordu; 320px'te de başka bir kuralla %45'e sıkışıyordu. Masaüstünde
   metnin yanına küçük portre, telefonda ortalı ve sınırlı. */
.prose>figure:first-child:has(>img[src*="/ekip/"]){float:inline-end;width:min(300px,40%);margin:.3rem 0 1.2rem 2rem}
[dir="rtl"] .prose>figure:first-child:has(>img[src*="/ekip/"]){margin:.3rem 2rem 1.2rem 0}
.prose>figure:first-child:has(>img[src*="/ekip/"]) img{width:100%;height:auto;margin:0;border-radius:var(--r-xl)}
@media (max-width:640px){
  .prose>figure:first-child:has(>img[src*="/ekip/"]),[dir="rtl"] .prose>figure:first-child:has(>img[src*="/ekip/"]){float:none;width:100%;max-width:340px;margin:0 auto 1.4rem}
}
/* İletişim kutusu: bölünemeyen e-posta adresi 320px'te kutudan 35px taşıyordu. */
.info-item>div{min-width:0}
.info-item a,.info-item span{overflow-wrap:anywhere}
@media (max-width:360px){ .district-tabs{gap:.15rem} .district-tabs button{padding-inline:.45rem} }
/* Hizmet sayfası yan sütunu: yalnız üst grup yapışır, "Diğer çalışma alanları" sütunun dibinde. */
@media (min-width:1001px){
  .split>aside.yan-uzun{position:static;align-self:stretch;display:flex;flex-direction:column;gap:.9rem}
  .yan-uzun>.yan-yapiskan{position:sticky;top:calc(var(--nav-h) + 20px);display:grid;gap:.9rem}
  .yan-uzun>.side-box{margin-top:auto}
}
@media (max-width:1000px){ .yan-uzun>.yan-yapiskan{display:grid;gap:.9rem} }
/* Gövde metni 54ch ölçüsünde; altındaki adımlar/SSS/yazılar sütunun tamamına yayılıp farklı sağ kenar
   oluşturuyordu (hizmet sayfası). Makaledeki gibi gövde ölçüsüne hizalanır. */
.split>div>.prose~div{max-width:var(--olcu)}
/* Makale kategori çipleri: 10 çip 1440px'te bile tek satıra 115px sığmıyor, ikinci satırda tek çip
   ("Güncel Mevzuat") kalıyordu → tek satır, yana kayan şerit; sağ kenarda devamını gösteren solma. */
.kategori-serit{display:flex;gap:.45rem;margin-bottom:2rem;overflow-x:auto;scrollbar-width:none;
  padding-block:.2rem;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent)}
[dir="rtl"] .kategori-serit{-webkit-mask-image:linear-gradient(-90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(-90deg,#000 calc(100% - 48px),transparent)}
.kategori-serit::-webkit-scrollbar{display:none}
.kategori-serit .chip{flex:none;white-space:nowrap;scroll-snap-align:start}
.kategori-serit>:last-child{margin-inline-end:40px}
/* 404 "Sık aranan başlıklar": 8 çip 7+1 diziliyordu → dengeli ızgara (masaüstü 4×2, telefonda 2 sütun). */
.hata-cipleri{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:860px;margin-inline:auto}
.hata-cipleri a{justify-content:center}
@media (max-width:760px){ .hata-cipleri{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* Form örnek metinleri yarım genişlikli hücrede ("ör. Salı öğleden sonra / gör…") ve sözlük aramasında
   320px'te kelime ortasından kesiliyordu → bir tık küçük ve sığmazsa "…" ile biter. */
.field input,.district-search input{text-overflow:ellipsis}
.field input::placeholder,.district-search input::placeholder{font-size:.94em}
/* Beş adım (telefon): ru/uk başlıkları %31 genişlikte üç satıra kırılıyordu. */
@media (max-width:760px){ html[lang="ru"] .akis__adim, html[lang="uk"] .akis__adim{flex-basis:42%} }
/* İlçe sayfası: "Yakın ilçeler" ızgarası ve konu çipleri gövde metninden (54ch) geniş, sağ kenar hizasızdı. */
.split-sm>div>.prose~.area-chips,.split-sm>div>.prose~.district-grid{max-width:var(--olcu)}
/* Başlıklarda dengeli, paragraflarda tek kelimenin alt satırda yalnız kalmaması
   (KVKK sayfası başlık altı yazısında "metni." tek başına kalıyordu). */
h1,h2,h3{text-wrap:balance}
.lede,.prose p{text-wrap:pretty}

/* ==== 35. tur — gerçek cihaz genişlikleri (440 iPhone Pro Max, 820 iPad) denetimi =====================
   Gövde metni ölçüsü: .prose>p 54ch @1.08rem = 679px ≈ 42.5rem. Kutular ch ile hizalanınca her biri kendi
   yazı boyutuyla başka genişliğe çıkıyordu (makalede 687/704/742px — dört sağ kenar). Tek değişken. */
:root{--olcu:42.5rem}
.article-layout>div>:not(.prose) .callout,.article-layout>div>.callout,.split>div>.prose~div .callout{max-width:none}
/* KVKK onayı: .field label{display:block} .check'in flex'ini eziyordu, ikinci satır kutunun altına sarıyordu. */
.field label.check{display:flex;font-size:.885rem;font-weight:500;color:var(--text-2);margin-bottom:0}
/* Kart ızgaraları: 900px altında 2 sütuna iniyordu; 820px iPad'de 17 hizmetin/9 yazının sonuncusu tek kalıp
   sağ yarı boşalıyordu → 721px'e kadar 3 sütun; 641–720 arası 2 sütunda tek kalan kart tam satır. */
@media (max-width:900px) and (min-width:721px){ .g-3{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:720px) and (min-width:641px){ .g-3>:last-child:nth-child(odd){grid-column:1 / -1} }
/* Sayfa başındaki kişi fotoğrafı (İletişim, SSS): tablette başlığın altında 230px sola yaslı, sağ %70 boştu
   → 641–900 arası başlığın yanında küçük. */
@media (max-width:900px) and (min-width:641px){
  .page-head .ph-grid:has(.ph-photo){grid-template-columns:minmax(0,1fr) 190px;align-items:center}
  .page-head .ph-grid:has(.ph-photo) .ph-photo{max-width:190px;justify-self:end}
}
/* Beş adım: 820px'te 5 sütun ~90px'e sıkışıp açıklamalar 8–10 satıra uzuyordu → 1080px altında yana
   kayan şerit (açıklamalar tablette görünür; ≤760'ta telefon kuralı yalnız başlık bırakır). */
@media (max-width:1080px) and (min-width:761px){
  .akis{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin-inline:-1.25rem;padding:.25rem 1.25rem .5rem;scroll-padding-inline:1.25rem}
  .akis::-webkit-scrollbar{display:none}
  .akis__adim{flex:0 0 30%;scroll-snap-align:start}
  .akis__adim:not(:last-child)::before{inset-inline-end:calc(-1.25rem + 8px)}
  .akis__adim p{font-size:.88rem}
}
/* Rehber destesi: kategori ile tarih kimi kartta aynı satırda kimi kartta alt alta düşüyordu (ru) → hep alt satır. */
.dkart__meta .meta-grup{flex-basis:100%}
/* Tek sütuna inen yan sütun (hizmet, araç): kısa liste tam genişlik kartta tek sütunda, kartın %80'i boştu. */
@media (max-width:1000px) and (min-width:641px){
  .split>aside .side-list,.split-sm>aside .side-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}
}
/* Footer tablette marka tam satır: açıklama 38ch'de kalıp sağ yarı boştu. */
@media (max-width:1080px) and (min-width:641px){ .footer-brand p{max-width:70ch} }
/* ---- 440px telefon incelemesi ---- */
/* İlçe kartları 3 sütunda uzun adları ("Büyükçekmece", "Gaziosmanpaşa") kartın dışına taşırıyordu → telefonda
   sabit 2 sütun, ad gerekirse sarılır. */
@media (max-width:640px){
  .district-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .district-grid a{min-width:0;overflow-wrap:anywhere}
}
/* Kişi fotoğrafı telefonda sola yaslı, sağ yarısı boştu (Hakkımızda'daki ortalı) → ortalı. */
@media (max-width:640px){ .page-head .ph-photo{justify-self:center;max-width:260px} }
/* Sayfa başı: başlık ile açıklama yapışık, fotoğraf altında bölüm aralığından büyük boşluk vardı. */
.page-head h1{margin-bottom:.75rem}
@media (max-width:640px){ .page-head:has(.ph-aside){padding-bottom:1.1rem} }
/* Footer yasal bağlantılar: satır içi gap:1.1rem + 36px dokunma yüksekliği satır arasını ikiye katlıyordu. */
.f-yasal{display:flex;flex-wrap:wrap;gap:.2rem 1.1rem}
@media (max-width:760px){ .f-yasal{row-gap:0} .f-yasal a{min-height:34px} }
/* SSS konu hapları: inline-flex'te metin ile "(7)" arasındaki boşluk yutuluyordu. */
.split-left>.toc a{gap:.3rem}
/* Rehber kart numarası ("01") neredeyse görünmüyordu. */
.dkart__no{-webkit-text-stroke:1.2px color-mix(in srgb,var(--accent) 55%,transparent)}
/* Telefonda alt alta düşen giriş ve çağrı bandı düğmeleri farklı genişlikte, sola yaslıydı → tam genişlik. */
@media (max-width:480px){
  .hero .btn-row .btn,.cta-band .btn{flex:1 1 100%;justify-content:center}
}
/* Sözlük harf şeridi */
.harf-serit{margin-bottom:1.1rem}
.harf-serit .chip{min-width:40px;justify-content:center;font-weight:700}
/* Beş adım telefonda TEK SATIR (36. tur, kullanıcı: "yana gidiyor, tek satıra sığdır"): yana kayan şerit
   yerine 5 eşit sütun; numara ortada, çizgi numaradan numaraya, kısa başlık altında ortalı. Önceki
   kayan şerit kuralları (≤760, ≤640 negatif pay, ru/uk %42) burada geçersiz kılınır; kendilerinden sonra durmalı. */
@media (max-width:760px){
  .akis,html[lang] .akis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;overflow:visible;
    margin-inline:0;padding:.2rem 0 0;scroll-snap-type:none}
  .akis__adim,html[lang="ru"] .akis__adim,html[lang="uk"] .akis__adim{flex:none;text-align:center;display:flex;flex-direction:column;align-items:center}
  .akis__no{width:30px;height:30px;border-radius:9px;font-size:.8rem;margin:0 0 .45rem}
  .akis__adim:not(:last-child)::before{top:14px;inset-inline-start:calc(50% + 19px);inset-inline-end:calc(-50% + 15px - .3rem)}
  /* Kelime ortasından tiresiz kırılmasın ("dinleyeli/m", "Расскаж/ите"): dilin heceleme kuralıyla tire. */
  .akis__adim h3{font-size:.7rem;line-height:1.25;letter-spacing:-.01em;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;max-width:100%}
}
@media (max-width:400px){
  .akis{gap:.15rem}
  .akis__adim h3{font-size:.64rem}
}

/* Panelden taslak yazı önizlemesi şeridi (yalnız giriş yapmış yöneticiye görünür) */
.onizleme-serit{background:#93500F;color:#fff;text-align:center;padding:.6rem 1rem;font-weight:600;font-size:.92rem}
.onizleme-serit a{color:#fff;text-decoration:underline;margin-inline-start:.5rem}
