/* Ortak katman: reset/base, tipografi, header/footer, cerez, butonlar, formlar, etiket, flash, pager, ilan karti.
   Yalniz tokens.css degiskenleri + birkac yerel degisken. Mobil-once. public.css'ten ONCE yuklenir. */
:root {
  --wa: #0f7a45;
  --wa-koyu: #0b5f35;
  --alan-kenar: #7d8f94;
  --kenar-yumusak: #e9e4d9;
  --header-yuk: 4.5rem;
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
[hidden] { display: none !important; }
body.public {
  margin: 0;
  font-family: var(--font-govde);
  font-size: var(--boyut-md);
  line-height: 1.65;
  color: var(--renk-metin);
  background: var(--renk-arka);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.public > main { flex: 1 0 auto; width: 100%; padding-block: var(--bosluk-5) var(--bosluk-7); outline: none; }
img, svg { max-width: 100%; }
img { height: auto; display: block; }
p { margin: 0 0 var(--bosluk-3); }
a { color: var(--renk-link); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--renk-birincil); text-decoration-thickness: 2px; }
button { font: inherit; touch-action: manipulation; }
::selection { background: rgb(217 164 65 / 0.4); color: var(--renk-birincil-koyu); }
.soluk { color: var(--renk-metin-soluk); }
.ikon { flex: none; }

/* Tipografi: serif basliklar */
h1, h2, h3, h4 {
  font-family: var(--font-baslik);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--renk-birincil-koyu);
  margin: 0 0 var(--bosluk-3);
  text-wrap: balance;
}
h1 { font-size: var(--boyut-xl); }
h2 { font-size: var(--boyut-lg); }
h3 { font-size: var(--boyut-md); }
@media (min-width: 600px) {
  h1 { font-size: var(--boyut-2xl); }
  h2 { font-size: 1.5rem; }
}

:focus-visible { outline: 3px solid var(--renk-link); outline-offset: 2px; }
.site-footer :focus-visible { outline-color: var(--odak-koyu); }

.container { width: 100%; max-width: var(--kap-genislik); margin-inline: auto; padding-inline: var(--bosluk-4); }
@media (min-width: 900px) { .container { padding-inline: var(--bosluk-5); } }

.sr-only, .gizli-etiket, .ana-gizli {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: var(--bosluk-3); top: -5rem; z-index: 200;
  background: var(--renk-birincil); color: #fff; padding: var(--bosluk-3) var(--bosluk-4);
  border-radius: var(--yaricap-sm); text-decoration: none; font-weight: 600;
  transition: top var(--gecis-hizli);
}
.skip-link:focus { top: var(--bosluk-3); color: #fff; }

/* ---------- Ortak yardimcilar ---------- */
.baslik-bolum { margin-bottom: var(--bosluk-5); max-width: 42rem; }
.baslik-bolum--orta { margin-inline: auto; text-align: center; }
.baslik-bolum__ust {
  display: inline-flex; align-items: center; gap: var(--bosluk-2); margin-bottom: var(--bosluk-2);
  font-size: var(--boyut-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--renk-vurgu-koyu);
}
.baslik-bolum__ust::before { content: ""; width: 1.75rem; height: 2px; background: var(--renk-vurgu); border-radius: 2px; }
.baslik-bolum h2 { font-size: clamp(1.5rem, 3.4vw, 2.25rem); margin-bottom: var(--bosluk-2); }
.baslik-bolum p { color: var(--renk-metin-soluk); margin: 0; }

/* Goruntu yuvasi: sabit oranli, kirpan kutu */
.goz-yuvasi { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--renk-arka-2); border-radius: var(--yaricap); }
.goz-yuvasi--16x9 { aspect-ratio: 16 / 9; }
.goz-yuvasi--kare { aspect-ratio: 1; }
.goz-yuvasi > img { width: 100%; height: 100%; object-fit: cover; }

/* Reveal: JS yoksa gorunur kalir */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity var(--gecis-yavas), transform var(--gecis-yavas); }
.js .reveal.gorunur { opacity: 1; transform: none; }
.js .reveal-2 { transition-delay: 90ms; }
.js .reveal-3 { transition-delay: 180ms; }
.js .reveal-4 { transition-delay: 270ms; }
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Butonlar ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--bosluk-2);
  min-height: 46px; padding: var(--bosluk-2) var(--bosluk-5);
  font: inherit; font-weight: 600; font-size: var(--boyut-sm); line-height: 1.2; white-space: nowrap;
  border: 1px solid transparent; border-radius: var(--yaricap-tam); cursor: pointer; text-decoration: none;
  transition: background-color var(--gecis-hizli), border-color var(--gecis-hizli), color var(--gecis-hizli), transform var(--gecis-hizli), box-shadow var(--gecis-hizli);
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgb(7 42 51 / 0.18); text-decoration: none; }
.btn:active { transform: translateY(0) scale(0.98); box-shadow: none; }
.btn:focus-visible { box-shadow: var(--odak); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; transform: none; box-shadow: none; }
.btn-sm { min-height: 40px; padding: var(--bosluk-1) var(--bosluk-4); }
.btn-birincil { background: var(--renk-birincil); color: #fff; }
.btn-birincil:hover { background: var(--renk-birincil-koyu); color: #fff; }
.btn-vurgu { background: var(--renk-vurgu); color: #fff; }
.btn-vurgu:hover { background: var(--renk-vurgu-koyu); color: #fff; }
.btn-ikincil { background: var(--renk-yuzey); color: var(--renk-birincil); border-color: var(--alan-kenar); }
.btn-ikincil:hover { border-color: var(--renk-birincil); background: var(--renk-arka-2); color: var(--renk-birincil-koyu); }
.btn-whatsapp { background: var(--wa); color: #fff; }
.btn-whatsapp:hover { background: var(--wa-koyu); color: #fff; }
.btn-tehlike { background: var(--renk-hata); color: #fff; }
.btn-tehlike:hover { background: #8f1e18; color: #fff; }
.eylem-satiri { display: flex; flex-wrap: wrap; gap: var(--bosluk-2); margin-top: var(--bosluk-3); }
.eylem-satiri--dikey { flex-direction: column; }
.eylem-satiri--dikey .btn { width: 100%; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgb(255 255 255 / 0.94); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--renk-kenar);
  transition: box-shadow var(--gecis), background-color var(--gecis);
}
.site-header.kucuk { box-shadow: 0 6px 24px rgb(7 42 51 / 0.12); border-bottom-color: transparent; }
.site-header__in {
  position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--bosluk-2) var(--bosluk-4); padding-block: var(--bosluk-3); transition: padding var(--gecis);
}
.site-header.kucuk .site-header__in { padding-block: var(--bosluk-2); }
.site-logo { display: inline-flex; align-items: center; gap: var(--bosluk-3); color: var(--renk-birincil); text-decoration: none; min-height: 44px; }
.site-logo:hover { color: var(--renk-birincil); }
.site-logo__img { width: 40px; height: 40px; border-radius: 10px; transition: width var(--gecis), height var(--gecis); }
.site-header.kucuk .site-logo__img { width: 34px; height: 34px; }
.site-logo__ad { font-family: var(--font-baslik); font-size: 1.3rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.1; }
/* Banner (genis) logo: yukseklik <= 48px, header yuksekligi korunur; adsiz modda ad yalniz ekran okuyucuya kalir */
.site-logo--banner .site-logo__img { width: auto; height: auto; max-height: 48px; max-width: min(240px, 58vw); object-fit: contain; border-radius: 0; }
.site-header.kucuk .site-logo--banner .site-logo__img { max-height: 40px; }
.site-logo--banner { min-width: 0; max-width: 100%; }
.site-logo--adsiz .site-logo__ad {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.site-logo--adsiz { gap: 0; }

/* Hamburger (yalniz JS varken, mobilde) */
.nav-ac { display: none; align-items: center; gap: var(--bosluk-2); min-height: 44px; padding: 0 var(--bosluk-3); background: transparent; color: var(--renk-birincil); border: 1px solid var(--renk-kenar); border-radius: var(--yaricap-tam); cursor: pointer; font-weight: 600; font-size: var(--boyut-sm); }
.js .nav-ac { display: inline-flex; }
.nav-ac:hover { background: var(--renk-arka); }
.nav-ac__cubuk, .nav-ac__cubuk::before, .nav-ac__cubuk::after {
  display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; transition: transform var(--gecis), opacity var(--gecis);
}
.nav-ac__cubuk { position: relative; }
.nav-ac__cubuk::before, .nav-ac__cubuk::after { content: ""; position: absolute; left: 0; }
.nav-ac__cubuk::before { top: -6px; }
.nav-ac__cubuk::after { top: 6px; }
.nav-ac[aria-expanded="true"] .nav-ac__cubuk { background: transparent; }
.nav-ac[aria-expanded="true"] .nav-ac__cubuk::before { transform: translateY(6px) rotate(45deg); }
.nav-ac[aria-expanded="true"] .nav-ac__cubuk::after { transform: translateY(-6px) rotate(-45deg); }

/* Menu paneli: JS yoksa her zaman acik akis, JS varsa mobilde acilir panel */
.site-menu { width: 100%; display: flex; flex-direction: column; gap: var(--bosluk-3); padding-bottom: var(--bosluk-2); }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--bosluk-1); margin: 0; padding: 0; }
.site-nav a {
  position: relative; display: block; padding: var(--bosluk-2) var(--bosluk-3); border-radius: var(--yaricap-sm);
  color: var(--renk-metin); text-decoration: none; font-size: var(--boyut-sm); font-weight: 600;
  transition: background-color var(--gecis-hizli), color var(--gecis-hizli);
}
.site-nav a:hover { background: var(--renk-arka-2); color: var(--renk-birincil); }
.site-nav a[aria-current="page"] { color: var(--renk-birincil); box-shadow: inset 0 -3px 0 var(--renk-vurgu); border-radius: var(--yaricap-sm) var(--yaricap-sm) 0 0; }
.site-cta { display: flex; flex-wrap: wrap; gap: var(--bosluk-2); }
.nav-alt { position: relative; display: flex; flex-wrap: wrap; align-items: center; }
.nav-alt__dugme { display: none; }
.nav-alt__liste { list-style: none; margin: 0; padding: 0; width: 100%; }
.nav-alt__liste a { font-weight: 500; padding-left: var(--bosluk-5); }

@media (max-width: 959px) {
  .js .site-menu {
    display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 5;
    padding: var(--bosluk-3) var(--bosluk-4) var(--bosluk-4); background: var(--renk-yuzey);
    border-top: 1px solid var(--renk-kenar); box-shadow: 0 18px 30px rgb(7 42 51 / 0.16);
    max-height: calc(100vh - var(--header-yuk)); max-height: calc(100dvh - var(--header-yuk)); overflow-y: auto;
  }
  .js .site-menu.acik { display: flex; }
  .site-nav ul { flex-direction: column; }
  .site-nav a { padding: var(--bosluk-3); font-size: var(--boyut-md); }
  .site-cta .btn { flex: 1 1 12rem; }
}
@media (min-width: 960px) {
  .js .nav-ac { display: none; }
  .site-menu { width: auto; flex: 1; flex-direction: row; align-items: center; justify-content: flex-end; gap: var(--bosluk-4); padding: 0; }
  .site-nav ul { flex-wrap: nowrap; }
  .site-nav > ul > li > a { padding-inline: var(--bosluk-3); }
  .nav-alt { flex-wrap: nowrap; }
  .nav-alt__dugme {
    display: none; align-items: center; justify-content: center; width: 28px; height: 36px; margin-left: -6px;
    background: transparent; border: 0; border-radius: var(--yaricap-sm); color: var(--renk-metin-soluk); cursor: pointer;
  }
  .js .nav-alt__dugme { display: inline-flex; }
  .nav-alt__dugme .ikon { width: 16px; height: 16px; transition: transform var(--gecis-hizli); }
  .nav-alt__dugme[aria-expanded="true"] .ikon { transform: rotate(180deg); }
  .nav-alt__liste {
    position: absolute; top: 100%; left: 0; z-index: 10; width: auto; min-width: 13rem; padding: var(--bosluk-2);
    background: var(--renk-yuzey); border: 1px solid var(--renk-kenar); border-radius: var(--yaricap); box-shadow: var(--golge-yuksek);
    opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: opacity var(--gecis-hizli), transform var(--gecis-hizli), visibility 0s linear 160ms;
  }
  .nav-alt::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 8px; }
  .nav-alt:hover > .nav-alt__liste,
  html:not(.js) .nav-alt:focus-within > .nav-alt__liste,
  .nav-alt.acik > .nav-alt__liste { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .nav-alt__liste a { padding-left: var(--bosluk-3); white-space: nowrap; }
}

/* ---------- Flash ---------- */
.flash { padding: var(--bosluk-3) var(--bosluk-4); border-radius: var(--yaricap-sm); margin-bottom: var(--bosluk-4); border: 1px solid var(--renk-kenar); border-left-width: 4px; background: var(--renk-yuzey); }
.flash-basari { border-color: var(--renk-basari); background: #eaf6ef; color: #1e5a38; }
.flash-hata { border-color: var(--renk-hata); background: #fdeceb; color: #8a1d17; }
.flash-bilgi { border-color: var(--renk-link); background: #e8f2f5; color: #0b4a5e; }

/* ---------- Form alanlari ---------- */
.alan { display: flex; flex-direction: column; gap: var(--bosluk-1); margin-bottom: var(--bosluk-3); min-width: 0; }
.alan label, .cephe-grup legend { font-size: var(--boyut-xs); font-weight: 600; color: var(--renk-metin-soluk); }
.alan input, .alan select, .alan textarea {
  font: inherit; font-size: var(--boyut-sm); color: var(--renk-metin); background: var(--renk-yuzey);
  border: 1px solid var(--alan-kenar); border-radius: var(--yaricap-sm); padding: 0 var(--bosluk-3); min-height: 46px; width: 100%;
  transition: border-color var(--gecis-hizli), box-shadow var(--gecis-hizli);
}
.alan select { padding-right: var(--bosluk-2); }
.alan textarea { padding-block: var(--bosluk-2); resize: vertical; min-height: 7.5rem; line-height: 1.5; }
.alan input:hover, .alan select:hover, .alan textarea:hover { border-color: var(--renk-birincil-acik); }
.alan input:focus, .alan select:focus, .alan textarea:focus { outline: 0; border-color: var(--renk-birincil); box-shadow: 0 0 0 3px rgb(20 96 111 / 0.28); }
.alan input::placeholder, .alan textarea::placeholder { color: #5f7075; }
.alan [aria-invalid="true"] { border-color: var(--renk-hata); }
.alan-iki { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--bosluk-3); }
.ipucu { font-size: var(--boyut-xs); color: var(--renk-metin-soluk); margin: calc(var(--bosluk-1) * -1) 0 var(--bosluk-3); }
.cephe-grup { border: 0; padding: 0; margin: 0 0 var(--bosluk-3); }
.cephe-grup legend { padding: 0; margin-bottom: var(--bosluk-1); }
.onay { display: inline-flex; align-items: center; gap: var(--bosluk-2); margin-right: var(--bosluk-4); min-height: 36px; font-size: var(--boyut-sm); cursor: pointer; }
.onay input { width: 1.15rem; height: 1.15rem; accent-color: var(--renk-birincil); }
.bal-tuzagi { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-sonuc { padding: var(--bosluk-3) var(--bosluk-4); border-radius: var(--yaricap-sm); margin: 0 0 var(--bosluk-4); border: 1px solid var(--renk-kenar); border-left-width: 4px; }
.form-sonuc p { margin: 0 0 var(--bosluk-2); }
.form-sonuc ul { margin: 0; padding-left: 1.25em; }
.form-sonuc--hata { border-color: var(--renk-hata); background: #fdeceb; color: #8a1d17; }
.form-sonuc--basari { border-color: var(--renk-basari); background: #eaf6ef; color: #1e5a38; }

/* ---------- Kart / etiket / tablo / bos durum / pager ---------- */
.kart { background: var(--renk-yuzey); border: 1px solid var(--renk-kenar); border-radius: var(--yaricap); padding: var(--bosluk-5); box-shadow: var(--golge); margin-bottom: var(--bosluk-4); }
.etiket {
  display: inline-flex; align-items: center; gap: 4px; padding: 3px var(--bosluk-3); border-radius: var(--yaricap-tam);
  font-size: var(--boyut-xs); font-weight: 700; line-height: 1.3; background: var(--renk-birincil); color: #fff;
}
.etiket-satilik { background: var(--renk-birincil); }
.etiket-kiralik { background: var(--renk-vurgu); }
.etiket-one { background: var(--renk-altin); color: #2b1d00; }
.tablo { width: 100%; border-collapse: collapse; font-size: var(--boyut-sm); }
.tablo th, .tablo td { text-align: left; padding: var(--bosluk-2) var(--bosluk-3); border-bottom: 1px solid var(--kenar-yumusak); vertical-align: top; }
.tablo th { width: 45%; font-weight: 600; color: var(--renk-metin-soluk); }
.tablo tr:last-child th, .tablo tr:last-child td { border-bottom: 0; }
.bos-durum {
  text-align: center; background: var(--renk-yuzey); border: 2px dashed #b9c9cc; border-radius: var(--yaricap-lg);
  padding: var(--bosluk-7) var(--bosluk-4); margin-bottom: var(--bosluk-6);
}
.bos-durum p { color: var(--renk-metin-soluk); max-width: 46ch; margin-inline: auto; margin-bottom: var(--bosluk-4); }
.pager { margin-top: var(--bosluk-6); }
.pager ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--bosluk-2); justify-content: center; margin: 0; padding: 0; }
.pager a, .pager .aktif {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--bosluk-3);
  border: 1px solid var(--renk-kenar); border-radius: var(--yaricap-sm); background: var(--renk-yuzey); color: var(--renk-metin);
  text-decoration: none; font-size: var(--boyut-sm); font-weight: 600; transition: background-color var(--gecis-hizli), border-color var(--gecis-hizli), transform var(--gecis-hizli);
}
.pager a:hover { border-color: var(--renk-birincil); background: var(--renk-arka-2); transform: translateY(-1px); }
.pager .aktif { background: var(--renk-birincil); border-color: var(--renk-birincil); color: #fff; }

/* ---------- Ilan karti ---------- */
.ilan-izgara { display: grid; gap: var(--bosluk-4); grid-template-columns: minmax(0, 1fr); }
.ilan-kart {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: var(--renk-yuzey); border: 1px solid var(--renk-kenar); border-radius: var(--yaricap-lg);
  box-shadow: var(--golge); transition: transform var(--gecis), box-shadow var(--gecis), border-color var(--gecis);
}
.ilan-kart:hover { transform: translateY(-4px); box-shadow: var(--golge-yuksek); border-color: #c8d6d8; }
.ilan-kart:focus-within { outline: 3px solid var(--renk-link); outline-offset: 2px; }
.ilan-kart .ilan-kart__gorsel { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--renk-arka-2); }
.ilan-kart .ilan-kart__gorsel img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--gecis-yavas); }
.ilan-kart:hover .ilan-kart__gorsel img { transform: scale(1.06); }
.ilan-kart .ilan-kart__gorsel img.ilan-kart__yok { object-fit: cover; }
.ilan-kart .ilan-kart__gorsel::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: var(--kaplama-koyu); opacity: 0.55; pointer-events: none; }
.ilan-kart .ilan-kart__rozet { position: absolute; z-index: 2; left: var(--bosluk-3); top: var(--bosluk-3); display: flex; flex-wrap: wrap; gap: var(--bosluk-1); }
.ilan-kart .ilan-kart__rozet .etiket { box-shadow: 0 2px 8px rgb(7 42 51 / 0.25); }
.ilan-kart .ilan-kart__govde { display: flex; flex-direction: column; gap: var(--bosluk-1); padding: var(--bosluk-4) var(--bosluk-4) var(--bosluk-4); flex: 1; }
.ilan-kart .ilan-kart__fiyat { font-family: var(--font-baslik); font-size: 1.5rem; font-weight: 700; line-height: 1.15; color: var(--renk-birincil); margin: 0; }
.ilan-kart--kiralik .ilan-kart__fiyat { color: var(--renk-vurgu-koyu); }
.ilan-kart .ilan-kart__fiyat small { font-family: var(--font-govde); font-size: var(--boyut-xs); font-weight: 600; color: var(--renk-metin-soluk); }
.ilan-kart .ilan-kart__baslik { margin: var(--bosluk-1) 0 0; font-family: var(--font-govde); font-size: var(--boyut-md); font-weight: 600; line-height: 1.35; letter-spacing: 0; }
.ilan-kart .ilan-kart__baslik a { color: var(--renk-metin); text-decoration: none; }
.ilan-kart .ilan-kart__baslik a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ilan-kart .ilan-kart__baslik a:hover { color: var(--renk-birincil); }
.ilan-kart .ilan-kart__baslik a:focus-visible { outline: none; }
.ilan-kart .ilan-kart__konum { display: flex; align-items: flex-start; gap: 6px; margin: 0; color: var(--renk-metin-soluk); font-size: var(--boyut-sm); }
.ilan-kart .ilan-kart__konum .ikon { margin-top: 3px; color: var(--renk-vurgu); }
.ilan-kart .ilan-kart__ozet {
  list-style: none; display: flex; flex-wrap: wrap; gap: var(--bosluk-1) var(--bosluk-4); margin: auto 0 0; padding: var(--bosluk-3) 0 0;
  border-top: 1px solid var(--kenar-yumusak); font-size: var(--boyut-sm); color: var(--renk-metin);
}
.ilan-kart .ilan-kart__govde > .ilan-kart__konum + .ilan-kart__ozet { margin-top: var(--bosluk-3); }
.ilan-kart .ilan-kart__ozet li { display: inline-flex; align-items: center; gap: 6px; }
.ilan-kart .ilan-kart__ozet .ikon { color: var(--renk-birincil-acik); }
@media (min-width: 600px) { .ilan-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ilan-izgara { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) {
  .ilan-kart:hover { transform: none; }
  .ilan-kart:hover .ilan-kart__gorsel img { transform: none; }
  .btn:hover { transform: none; }
}

/* ---------- Footer ---------- */
.site-footer { position: relative; background: var(--renk-birincil-koyu); color: #cfdfe2; margin-top: auto; }
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--degrade-vurgu); }
.site-footer a { color: #fff; text-decoration-color: rgb(255 255 255 / 0.35); }
.site-footer a:hover { color: var(--renk-altin); text-decoration-color: currentColor; }
.site-footer__in { display: grid; gap: var(--bosluk-6); grid-template-columns: 1fr; padding-block: var(--bosluk-7) var(--bosluk-6); }
.site-footer__logo { display: inline-flex; align-items: center; gap: var(--bosluk-3); margin-bottom: var(--bosluk-3); text-decoration: none !important; }
.site-footer__logo img { width: 44px; height: 44px; border-radius: 11px; }
.site-footer__logo span { font-family: var(--font-baslik); font-size: 1.4rem; font-weight: 700; color: #fff; }
/* Footer marka: ortak logo isaretlemesi (site_logo_html); banner modunda boyut sinirli, ad gizliyse yalniz ekran okuyucu */
.site-footer__logo .site-logo__img { border-radius: 11px; }
.site-footer__logo.site-logo--banner img { width: auto; height: auto; max-height: 56px; max-width: min(260px, 100%); object-fit: contain; border-radius: 0; }
.site-footer__logo.site-logo--adsiz span {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.site-footer__marka p { max-width: 38ch; }
.site-footer__baslik { font-family: var(--font-baslik); font-size: 1.05rem; font-weight: 700; color: #fff; margin: 0 0 var(--bosluk-3); letter-spacing: 0.01em; }
.site-footer__baslik--alt { margin-top: var(--bosluk-5); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer__kol li { margin: 0; }
.site-footer__kol ul a { display: inline-block; padding: 5px 0; text-decoration: none; }
.site-footer__kol ul a:hover { text-decoration: underline; }
.site-footer__alt-kol { margin-top: var(--bosluk-5); }
.site-footer__sosyal { display: flex; gap: var(--bosluk-2); margin-top: var(--bosluk-4); }
.site-footer__sosyal a {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
  background: rgb(255 255 255 / 0.1); color: #fff; transition: background-color var(--gecis-hizli), transform var(--gecis-hizli);
}
.site-footer__sosyal a:hover { background: var(--renk-vurgu); color: #fff; transform: translateY(-2px); }
.site-footer address { font-style: normal; }
.site-footer__iletisim li, .site-footer__saat { display: flex; align-items: flex-start; gap: var(--bosluk-3); margin-bottom: var(--bosluk-3); }
.site-footer__iletisim .ikon, .site-footer__saat .ikon { margin-top: 3px; color: var(--renk-altin); }
.site-footer__saat { margin-bottom: 0; }
.site-footer__serit { border-top: 1px solid rgb(255 255 255 / 0.14); background: rgb(0 0 0 / 0.16); }
.site-footer__serit-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bosluk-2) var(--bosluk-5); padding-block: var(--bosluk-4); font-size: var(--boyut-xs); }
.site-footer__telif { margin: 0; }
.site-footer__yasal { display: flex; flex-wrap: wrap; gap: var(--bosluk-1) var(--bosluk-4); align-items: center; }
.site-footer__yasal a, .site-footer__cerez { display: inline-flex; align-items: center; min-height: 36px; }
.site-footer__cerez {
  padding: 0; background: none; border: 0; color: #fff; font: inherit; cursor: pointer;
  text-decoration: underline; text-decoration-color: rgb(255 255 255 / 0.35); text-underline-offset: 3px;
}
.site-footer__cerez:hover { color: var(--renk-altin); text-decoration-color: currentColor; }
@media (min-width: 600px) {
  .site-footer__in { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 960px) {
  .site-footer__in { grid-template-columns: 1.5fr 1fr 1.1fr 1.4fr; gap: var(--bosluk-6) var(--bosluk-7); }
}

/* Yukari cik */
.yukari-cik {
  position: fixed; right: var(--bosluk-4); bottom: var(--bosluk-4); z-index: 40; width: 48px; height: 48px;
  display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; cursor: pointer;
  background: var(--renk-birincil); color: #fff; box-shadow: var(--golge-yuksek);
  opacity: 0; transform: translateY(12px); transition: opacity var(--gecis), transform var(--gecis), background-color var(--gecis-hizli);
}
.yukari-cik.gorunur { opacity: 1; transform: none; }
.yukari-cik:hover { background: var(--renk-vurgu); }
body.public:has(.mobil-cubuk) .yukari-cik { bottom: 5rem; }
@media (min-width: 900px) { body.public:has(.mobil-cubuk) .yukari-cik { bottom: var(--bosluk-4); } }

/* ---------- Cerez izni ---------- */
.cerez {
  position: fixed; z-index: 90; left: var(--bosluk-3); right: var(--bosluk-3); bottom: var(--bosluk-3);
  max-width: 64rem; margin-inline: auto; padding: var(--bosluk-4) var(--bosluk-5);
  background: var(--renk-yuzey); border: 1px solid var(--renk-kenar); border-top: 4px solid var(--renk-vurgu);
  border-radius: var(--yaricap-lg); box-shadow: var(--golge-yuksek);
  opacity: 0; transform: translateY(24px); transition: opacity var(--gecis), transform var(--gecis);
}
.cerez.gorunur { opacity: 1; transform: none; }
.cerez__in { display: flex; flex-direction: column; gap: var(--bosluk-4); }
.cerez h2 { font-size: 1.1rem; margin-bottom: var(--bosluk-1); }
.cerez p { font-size: var(--boyut-sm); color: var(--renk-metin); margin: 0; }
.cerez__eylem, .cerez-modal__eylem { display: flex; flex-wrap: wrap; gap: var(--bosluk-2); }
.cerez__eylem .btn { flex: 1 1 8rem; }
@media (min-width: 800px) {
  .cerez__in { flex-direction: row; align-items: center; gap: var(--bosluk-5); }
  .cerez__metin { flex: 1; }
  .cerez__eylem { flex-wrap: nowrap; flex: none; }
  .cerez__eylem .btn { flex: none; }
}
/* Mobil: kompakt kart (ekranin ~1/4'u), 3 dugme tek satir, sabit alt cubugun ustunde kalir */
@media (max-width: 799px) {
  .cerez { padding: var(--bosluk-3) var(--bosluk-4); border-radius: var(--yaricap); max-height: 45vh; overflow-y: auto; }
  .cerez__in { gap: var(--bosluk-2); }
  .cerez h2 { font-size: var(--boyut-md); }
  .cerez p { font-size: var(--boyut-xs); line-height: 1.45; }
  .cerez__eylem { flex-wrap: nowrap; gap: var(--bosluk-2); }
  .cerez__eylem .btn { flex: 1 1 0; min-width: 0; padding-inline: var(--bosluk-2); min-height: 44px; font-size: var(--boyut-sm); }
  body:has(.mobil-cubuk) .cerez { bottom: calc(4.75rem + var(--bosluk-2)); }
}

.cerez-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: flex-end; justify-content: center; }
.cerez-modal__arka { position: absolute; inset: 0; background: rgb(7 42 51 / 0.6); }
.cerez-modal__kutu {
  position: relative; width: 100%; max-width: 36rem; max-height: 92vh; max-height: 92dvh; overflow-y: auto;
  background: var(--renk-yuzey); border-radius: var(--yaricap-lg) var(--yaricap-lg) 0 0; padding: var(--bosluk-5);
  box-shadow: var(--golge-yuksek); outline: none;
}
.cerez-modal__kutu :focus-visible { outline-color: var(--renk-link); }
.cerez-modal__ust { display: flex; align-items: center; justify-content: space-between; gap: var(--bosluk-3); margin-bottom: var(--bosluk-2); }
.cerez-modal__ust h2 { margin: 0; font-size: 1.4rem; }
.cerez-modal__x { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--renk-arka); color: var(--renk-metin); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.cerez-modal__x:hover { background: var(--renk-arka-2); }
.cerez-modal__giris { font-size: var(--boyut-sm); color: var(--renk-metin-soluk); }
.cerez-kat { list-style: none; margin: 0 0 var(--bosluk-5); padding: 0; }
.cerez-kat li { padding: var(--bosluk-3) 0; border-top: 1px solid var(--renk-kenar); }
.cerez-kat__satir { display: flex; align-items: center; justify-content: space-between; gap: var(--bosluk-3); }
.cerez-kat__satir label { font-weight: 700; }
.cerez-kat p { margin: var(--bosluk-1) 0 0; font-size: var(--boyut-xs); color: var(--renk-metin-soluk); }
.cerez-anahtar {
  appearance: none; -webkit-appearance: none; position: relative; flex: none; width: 3rem; height: 1.75rem; margin: 0; cursor: pointer;
  border-radius: var(--yaricap-tam); background: #738489; transition: background-color var(--gecis-hizli);
}
.cerez-anahtar::before {
  content: ""; position: absolute; top: 3px; left: 3px; width: calc(1.75rem - 6px); height: calc(1.75rem - 6px);
  border-radius: 50%; background: #fff; transition: transform var(--gecis-hizli);
}
.cerez-anahtar:checked { background: var(--renk-birincil); }
.cerez-anahtar:checked::before { transform: translateX(1.25rem); }
.cerez-anahtar:disabled { cursor: not-allowed; opacity: 0.6; }
.cerez-modal__eylem .btn { flex: 1 1 8rem; }
html.cerez-kilit, html.cerez-kilit body { overflow: hidden; }
@media (min-width: 600px) {
  .cerez-modal { align-items: center; padding: var(--bosluk-4); }
  .cerez-modal__kutu { border-radius: var(--yaricap-lg); }
}
@media (prefers-reduced-motion: reduce) {
  .cerez, .yukari-cik { transform: none; }
}

/* ---------- Yasal sayfalar (kvkk.php, cerez.php) ---------- */
.yasal-sayfa { max-width: 48rem; margin-inline: auto; background: var(--renk-yuzey); border: 1px solid var(--renk-kenar); border-radius: var(--yaricap-lg); padding: var(--bosluk-5); box-shadow: var(--golge); }
.yasal-sayfa__ust { margin-bottom: var(--bosluk-5); padding-bottom: var(--bosluk-4); border-bottom: 1px solid var(--renk-kenar); }
.yasal-sayfa h2 { font-size: 1.25rem; margin-top: var(--bosluk-5); }
.yasal-sayfa ul { padding-left: 1.25em; margin: 0 0 var(--bosluk-3); }
.yasal-sayfa li { margin-bottom: var(--bosluk-1); }
.yasal-sayfa code { background: var(--renk-arka-2); padding: 1px 6px; border-radius: 4px; font-size: 0.92em; }
.yasal-tablo-kap { overflow-x: auto; margin-bottom: var(--bosluk-3); }
.yasal-tablo { min-width: 34rem; }
.yasal-tablo th, .yasal-tablo td { width: auto; }
@media (min-width: 600px) { .yasal-sayfa { padding: var(--bosluk-6); } }
