/* Vitrin sayfası — müşteriye özel ilan sayfası.
   Renkler ve yazı tipleri tanıtım sitesiyle (styles.css) aynıdır. */

/* ---------- Renkler ---------- */
:root {
  --zemin: #f2f5f9;
  --kart: #ffffff;
  --yazi: #0f1b2d;
  --yazi-2: #56657a;
  --cizgi: #dbe3ec;
  --ana: #13294b;
  --ana-koyu: #0b1a33;
  --buz: #2f8fc4;
  --vurgu: #a8833f;
  --vurgu-acik: #e3c27c;
  --yumusak: #e7eef6;
  --sicak: #b5512f;
  --ust-zemin: #13294b;
  --golge: 0 24px 60px -24px rgba(8, 20, 45, .45);

  --f-baslik: "Cormorant Garamond", Georgia, serif;
  --f-metin: "Manrope", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, monospace;

  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --zemin: #091222;
    --kart: #101d33;
    --yazi: #e8eef6;
    --yazi-2: #93a3b8;
    --cizgi: #22324b;
    --ana: #2f7fb8;
    --buz: #5db3e0;
    --vurgu: #d9b870;
    --yumusak: #0d1a2e;
    --ust-zemin: #0b1a33;
    --golge: 0 24px 60px -24px rgba(0, 0, 0, .7);
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --zemin: #091222;
  --kart: #101d33;
  --yazi: #e8eef6;
  --yazi-2: #93a3b8;
  --cizgi: #22324b;
  --ana: #2f7fb8;
  --buz: #5db3e0;
  --vurgu: #d9b870;
  --yumusak: #0d1a2e;
  --ust-zemin: #0b1a33;
  --golge: 0 24px 60px -24px rgba(0, 0, 0, .7);
  color-scheme: dark;
}

/* ---------- Temel ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; scroll-padding-top: 16px; }

body {
  margin: 0;
  background: var(--zemin);
  color: var(--yazi);
  font-family: var(--f-metin);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3 { margin: 0; }
h1, h2 { font-family: var(--f-baslik); font-weight: 600; }
p { margin: 0; }
a { color: inherit; }
dl, dd { margin: 0; }

.mono { font-family: var(--f-mono); font-variant-numeric: tabular-nums; }
.kap { width: 100%; max-width: 1120px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px) { .kap { padding: 0 28px; } }
.gizli { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.atla { position: absolute; left: -999px; top: 8px; z-index: 50; background: var(--kart); padding: 8px 14px; border-radius: 8px; }
.atla:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 3px; }

html[data-sektor="galeri"] .sadece-emlak,
html[data-sektor="emlak"] .sadece-galeri { display: none; }

/* ---------- Düğmeler ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; padding: 0 22px;
  border-radius: 999px; border: 1.5px solid transparent;
  font: 700 1rem var(--f-metin);
  text-decoration: none; cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.btn-ana { background: var(--ana); color: #fff; }
.btn-ana:hover { background: var(--ana-koyu); }
.btn-altin { background: var(--vurgu); color: #fff; }
.btn-altin:hover { background: #8f6e33; }
/* koyu temada açık altın üstünde koyu yazı daha okunur */
:root[data-theme="dark"] .btn-altin { color: #0b1a33; }
:root[data-theme="dark"] .btn-altin:hover { background: var(--vurgu-acik); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .btn-altin { color: #0b1a33; }
  :root:not([data-theme="light"]) .btn-altin:hover { background: var(--vurgu-acik); }
}
.btn-cizgi { background: var(--kart); color: var(--yazi); border-color: var(--cizgi); }
.btn-cizgi:hover { border-color: var(--yazi); }
.btn-tam { width: 100%; }

.ikon-dugme {
  display: grid; place-items: center; flex: none;
  width: 40px; height: 40px; border-radius: 999px;
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  background: transparent; color: inherit; cursor: pointer;
}

/* ---------- Örnek şeridi (pilot) ---------- */
.ornek-serit {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 6px 16px; background: var(--yumusak); color: var(--yazi-2);
  font-size: .8rem; font-weight: 600;
}
.ornek-sec { display: flex; gap: 4px; }
.ornek-sec button {
  border: 1px solid var(--cizgi); background: var(--kart); color: var(--yazi);
  border-radius: 999px; padding: 4px 12px; font: 600 .8rem var(--f-metin); cursor: pointer;
}
.ornek-sec button[aria-pressed="true"] { background: var(--ana); border-color: var(--ana); color: #fff; }

/* ---------- Üst bar: işletmenin logosu ---------- */
.ust { background: var(--ust-zemin); color: #fff; }
.ust-ic { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; }
.isletme { display: flex; align-items: center; gap: 12px; min-width: 0; }
.isletme-logo {
  display: grid; place-items: center; flex: none;
  width: 42px; height: 42px; border-radius: 12px;
  border: 1.5px solid var(--vurgu-acik); color: var(--vurgu-acik);
  font: 700 1.2rem var(--f-baslik); letter-spacing: .04em;
}
.isletme-ad { display: grid; line-height: 1.2; min-width: 0; }
.isletme-ad b { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.isletme-ad small { font-size: .78rem; color: rgba(255,255,255,.65); }

/* ---------- Karşılama ---------- */
.karsila {
  background: radial-gradient(ellipse 70% 90% at 15% 30%, #20466c 0, transparent 70%), var(--ust-zemin);
  color: #fff;
  padding: 18px 0 80px;
  position: relative; overflow: hidden;
}
.karsila::before {
  /* vitrin camı: hafif çapraz yansıma */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 52%, rgba(255,255,255,.05) 52%, rgba(255,255,255,.05) 66%, transparent 66%);
}
.karsila-ic { position: relative; }
.ozel-etiket { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--vurgu-acik); }
.karsila h1 { font-size: clamp(2.4rem, 9vw, 3.6rem); line-height: 1.05; margin-top: 8px; }
.karsila-metin { margin-top: 10px; max-width: 46ch; color: rgba(255,255,255,.82); font-size: 1.02rem; }
.danisman { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.danisman-foto {
  display: grid; place-items: center; flex: none;
  width: 44px; height: 44px; border-radius: 999px;
  background: rgba(255,255,255,.12); border: 1.5px solid rgba(255,255,255,.3);
  font-weight: 700; font-size: .9rem;
}
.danisman span { display: grid; line-height: 1.3; }
.danisman small { color: rgba(255,255,255,.65); font-size: .82rem; }

/* ---------- Sayfa düzeni ---------- */
.ana-izgara { display: grid; gap: 14px; margin-top: -56px; position: relative; padding-bottom: 32px; }
.sol { display: grid; gap: 14px; min-width: 0; }
.sag { display: none; }
@media (min-width: 960px) {
  .ana-izgara { grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
  .sag { display: block; position: sticky; top: 20px; }
}

.kart { background: var(--kart); border-radius: 20px; padding: 20px; box-shadow: 0 1px 0 var(--cizgi); }
@media (min-width: 640px) { .kart { padding: 26px; } }
.bolum-baslik { font: 700 .76rem var(--f-metin); letter-spacing: .14em; text-transform: uppercase; color: var(--yazi-2); margin-bottom: 14px; }

/* ---------- Galeri ---------- */
.galeri { position: relative; border-radius: 20px; overflow: hidden; box-shadow: var(--golge); background: var(--kart); }
.galeri-serit {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; overscroll-behavior-x: contain;
}
.galeri-serit::-webkit-scrollbar { display: none; }
.foto {
  flex: 0 0 100%; scroll-snap-align: start;
  aspect-ratio: 4 / 3; position: relative; margin: 0;
  display: grid; place-items: center; color: rgba(255,255,255,.9);
}
@media (min-width: 640px) { .foto { aspect-ratio: 16 / 10; } }
.foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.foto svg { width: 58%; max-width: 360px; height: auto; filter: drop-shadow(0 18px 18px rgba(0,0,0,.25)); }
.foto figcaption {
  position: absolute; left: 14px; bottom: 14px;
  padding: 5px 12px; border-radius: 999px;
  background: rgba(8, 18, 36, .55); color: #fff; font-size: .82rem; font-weight: 600;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.galeri-sayac {
  position: absolute; right: 14px; top: 14px;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(8, 18, 36, .55); color: #fff; font-size: .78rem;
}
.galeri-ok {
  position: absolute; top: 50%; translate: 0 -50%;
  display: none; place-items: center;
  width: 44px; height: 44px; border-radius: 999px; border: 0;
  background: rgba(255,255,255,.9); color: #13294b; cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,.2);
}
.galeri-ok.geri { left: 14px; }
.galeri-ok.ileri { right: 14px; }
.galeri-ok:disabled { opacity: .35; cursor: default; }
@media (hover: hover) { .galeri-ok { display: grid; } }

.kucukler { display: flex; gap: 8px; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.kucukler::-webkit-scrollbar { display: none; }
.kucukler button {
  flex: 0 0 64px; height: 48px; border-radius: 10px; cursor: pointer;
  border: 2px solid transparent; padding: 0; opacity: .6;
  transition: opacity .15s, border-color .15s;
}
.kucukler button[aria-current="true"] { border-color: var(--vurgu); opacity: 1; }

/* ---------- İlan başlığı ---------- */
.ilan-no { font-size: .74rem; color: var(--yazi-2); letter-spacing: .06em; }
.ilan-bas h2 { font-size: clamp(1.9rem, 6vw, 2.5rem); line-height: 1.08; margin-top: 4px; text-wrap: balance; }
.fiyat { font-size: 1.5rem; font-weight: 500; color: var(--vurgu); margin-top: 10px; }
.ozet { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ozet li {
  padding: 6px 12px; border-radius: 999px; background: var(--yumusak);
  font-size: .86rem; font-weight: 600;
}

/* ---------- Özellikler ---------- */
.ozellikler { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.ozellikler div { padding: 11px 0; border-bottom: 1px solid var(--cizgi); min-width: 0; }
.ozellikler dt { font-size: .8rem; color: var(--yazi-2); }
.ozellikler dd { font-weight: 700; font-size: .96rem; }

/* ---------- Boya / değişen haritası ---------- */
.harita-ic { display: grid; grid-template-columns: 148px 1fr; gap: 18px; align-items: start; }
@media (min-width: 640px) { .harita-ic { grid-template-columns: 170px 1fr; gap: 32px; } }
.harita { width: 100%; height: auto; }
.harita rect { stroke: var(--kart); stroke-width: 3; cursor: pointer; transition: fill .2s, opacity .2s; }
.harita rect.secili { stroke: var(--yazi); }
.harita text { font: 500 10px var(--f-mono); fill: #5d6872; text-anchor: middle; pointer-events: none; }
.harita .harita-on { font-size: 8px; letter-spacing: .2em; fill: var(--yazi-2); }
.harita .p-org, .lejant .p-org { fill: #dfe5e8; background: #dfe5e8; }
.harita .p-boya, .lejant .p-boya { fill: #e2c27f; background: #e2c27f; }
.harita .p-degis, .lejant .p-degis { fill: #c96a4a; background: #c96a4a; }

.lejant { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .84rem; color: var(--yazi-2); }
.lejant i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.harita-liste { margin-top: 14px; display: grid; gap: 10px; }
.harita-liste dt { font-size: .8rem; color: var(--yazi-2); }
.harita-liste dd { font-weight: 700; font-size: .94rem; }
.harita-not { margin-top: 14px; font-size: .84rem; color: var(--yazi-2); min-height: 2.6em; }
.harita-not b { color: var(--yazi); }

/* ---------- Çevre (emlak) ---------- */
.cevre { list-style: none; margin: 0; padding: 0; }
.cevre li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--cizgi); }
.cevre li:last-child { border-bottom: 0; }
.cevre span:last-child { color: var(--yazi-2); white-space: nowrap; }

.aciklama { color: var(--yazi); max-width: 64ch; }

/* ---------- Soru kutusu ---------- */
.soru-alt { color: var(--yazi-2); font-size: .92rem; margin-top: -6px; }
.sohbet { display: grid; gap: 10px; margin-top: 16px; }
.sohbet:empty { display: none; }
.balon { max-width: 88%; padding: 10px 14px; border-radius: 16px; font-size: .95rem; }
.balon small { display: block; font-size: .74rem; font-weight: 700; color: var(--yazi-2); margin-bottom: 2px; }
.balon.musteri { justify-self: end; background: var(--ana); color: #fff; border-bottom-right-radius: 4px; }
.balon.musteri small { color: rgba(255,255,255,.7); }
.balon.asistan { justify-self: start; background: var(--yumusak); border-bottom-left-radius: 4px; }
.balon.yaziyor { color: var(--yazi-2); font-style: italic; }

.hazir { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 12px; }
.hazir button {
  border: 1.5px solid var(--cizgi); background: transparent; color: var(--yazi);
  border-radius: 999px; padding: 7px 14px; font: 600 .86rem var(--f-metin); cursor: pointer;
}
.hazir button:hover { border-color: var(--buz); color: var(--buz); }

#soruForm { display: grid; gap: 14px; }
textarea, .not-alan input {
  width: 100%; padding: 12px 14px;
  border: 1.5px solid var(--cizgi); border-radius: 14px;
  background: var(--zemin); color: var(--yazi);
  font: 500 1rem var(--f-metin); resize: vertical;
}
textarea:focus, .not-alan input:focus { outline: none; border-color: var(--ana); background: var(--kart); }
textarea.hatali { border-color: var(--sicak); }

.onay { display: flex; gap: 12px; align-items: flex-start; font-size: .86rem; color: var(--yazi-2); cursor: pointer; }
.onay input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ana); flex: none; }
.onay.hatali span { color: var(--sicak); }
.form-hata { color: var(--sicak); font-size: .9rem; font-weight: 600; }
.form-hata:empty { display: none; }

/* ---------- Sağ kart (bilgisayar) ---------- */
.yan-kart { display: grid; gap: 12px; box-shadow: var(--golge); }
.yan-baslik { font: 600 1.35rem/1.15 var(--f-baslik); }
.yan-kart .fiyat { margin: 0 0 6px; }
.yan-not { font-size: .84rem; color: var(--yazi-2); }

/* ---------- Alt bilgi ---------- */
.alt { padding: 12px 0 112px; color: var(--yazi-2); font-size: .9rem; }
@media (min-width: 960px) { .alt { padding-bottom: 40px; } }
.alt-isletme b { color: var(--yazi); }
.kvkk { margin-top: 14px; }
.kvkk summary { cursor: pointer; font-weight: 600; }
.kvkk p { font-size: .86rem; max-width: 76ch; margin-top: 10px; }
.hazirlayan {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  text-decoration: none; font-size: .8rem; letter-spacing: .04em;
}
.hazirlayan:hover { color: var(--yazi); }

/* ---------- Telefonda alt çubuk ---------- */
.alt-cubuk {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--zemin) 92%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 -1px 0 var(--cizgi);
}
@media (min-width: 960px) { .alt-cubuk { display: none; } }

/* ---------- Randevu penceresi ---------- */
.randevu {
  width: min(100% - 24px, 460px); max-height: calc(100% - 24px);
  border: 0; border-radius: 22px; padding: 0;
  background: var(--kart); color: var(--yazi);
  box-shadow: var(--golge);
}
.randevu::backdrop { background: rgba(5, 12, 26, .6); }
@media (max-width: 639px) {
  /* telefonda alttan açılan pencere */
  .randevu { margin: auto 0 0; width: 100%; max-width: 100%; border-radius: 22px 22px 0 0; }
}
#randevuForm { padding: 20px 20px calc(20px + env(safe-area-inset-bottom)); display: grid; gap: 16px; }
#randevuAdimlar { display: grid; gap: 16px; }
.randevu-bas { display: flex; align-items: center; justify-content: space-between; }
.randevu-bas h3 { font: 600 1.7rem var(--f-baslik); }
.randevu-alt { color: var(--yazi-2); font-size: .92rem; margin-top: -8px; }

.secim { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; min-width: 0; }
.secim legend { font-size: .9rem; font-weight: 700; padding: 0; margin-bottom: 8px; }
.gunler { grid-template-columns: repeat(3, 1fr); }
.saatler { grid-template-columns: 1fr; }
@media (min-width: 420px) { .saatler { grid-template-columns: repeat(3, 1fr); } }
.secim label { position: relative; cursor: pointer; }
.secim input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.secim span {
  display: grid; place-items: center; text-align: center; min-height: 52px; padding: 4px;
  border: 1.5px solid var(--cizgi); border-radius: 12px; background: var(--zemin);
  font-weight: 700; font-size: .9rem; line-height: 1.25;
}
.secim span small { display: block; font-weight: 500; color: var(--yazi-2); font-size: .76rem; }
.secim input:checked + span { border-color: var(--ana); background: var(--ana); color: #fff; }
.secim input:checked + span small { color: rgba(255,255,255,.75); }
.secim input:focus-visible + span { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.secim.hatali span { border-color: var(--sicak); }

.not-alan { display: grid; gap: 6px; }
.not-alan > span { font-size: .9rem; font-weight: 700; }
.not-alan small { font-weight: 500; color: var(--yazi-2); }

.randevu-tamam { display: grid; gap: 10px; }
.randevu-tamam b { font: 600 1.8rem var(--f-baslik); }
.randevu-tamam p { color: var(--yazi-2); margin-bottom: 8px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Satılmış ilan ---------- */
.satildi-serit {
  position: absolute; left: 0; right: 0; top: 50%; translate: 0 -50%; z-index: 2; pointer-events: none;
  padding: 12px 16px; text-align: center;
  background: rgba(8, 18, 36, .78); color: var(--vurgu-acik);
  font: 600 1.15rem var(--f-metin); letter-spacing: .32em;
  box-shadow: 0 0 0 1px rgba(227, 194, 124, .45);
}
.satildi-not { display: inline-block; margin-top: 8px; padding: 4px 12px; border-radius: 999px; font-size: .82rem; font-weight: 700; color: var(--sicak); box-shadow: inset 0 0 0 1px currentColor; }
[data-satildi] .fiyat { text-decoration: line-through; text-decoration-thickness: 1px; opacity: .7; }
[data-satildi] .randevu-ac { display: none; }
[data-satildi] .alt-cubuk { grid-template-columns: 1fr; }
:root[data-theme="dark"] .satildi-not { color: #ec8a66; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .satildi-not { color: #ec8a66; } }
