.iletisim-harita {
  --ih-radius: 1.25rem;
  --ih-golge: 0 .75rem 2.25rem rgba(var(--bs-body-color-rgb), .08),
              0 .125rem .5rem rgba(var(--bs-body-color-rgb), .05);
}
.iletisim-kart {
  background: var(--bs-body-bg);
  /*border: 1px solid var(--bs-border-color-translucent);*/
  border-radius: var(--ih-radius);
  box-shadow: var(--ih-golge);
  overflow: hidden;
}

/* ---- Bilgi paneli ---- */
.iletisim-bilgi {
  display: flex; flex-direction: column; justify-content: center; gap: 1.5rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: radial-gradient(120% 90% at 0% 0%, rgba(var(--bs-primary-rgb), .10), transparent 60%);
}
.iletisim-etiketi {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .35rem .8rem; border-radius: 50rem;
  font-size: .8rem; font-weight: 600;
  color: var(--bs-primary-text-emphasis);
  background: var(--bs-primary-bg-subtle);
  border: 1px solid var(--bs-primary-border-subtle);
}
.iletisim-baslik {
  margin: 0;
  font-size: clamp(1.35rem, 1.05rem + 1.2vw, 1.85rem);
  font-weight: 800; line-height: 1.2; letter-spacing: -.01em;
  text-wrap: balance;
  color: var(--renk-bir);
}
.iletisim-liste { display: grid; gap: 1rem; margin: 0; }
.iletisim-satir { display: flex; align-items: flex-start; gap: .9rem; }
.iletisim-ikon {
  flex: none; display: grid; place-items: center;
  width: 2.5rem; height: 2.5rem; border-radius: .8rem;
  font-size: 1.1rem; color: var(--color-accent);
  /*background: rgba(var(--bs-primary-rgb), .12);*/
}
.iletisim-etiket { font-size: .8rem; color: var(--bs-secondary-color); }
.iletisim-deger { /*font-weight: 600;*/ color: var(--renk-bir); overflow-wrap: anywhere; }
.iletisim-satir a { color: var(--bs-emphasis-color); text-decoration-color: rgba(var(--bs-primary-rgb), .5); text-underline-offset: .2em; }
.iletisim-satir a:hover { color: var(--bs-primary); }

/* ---- Harita sütunu ---- */
.harita-sutun {
  position: relative; min-height: 21rem;
  /*border-top: 1px solid var(--bs-border-color-translucent);*/
}
@media (min-width: 992px) {
  .harita-sutun { min-height: 28rem; border-top: 0; /*border-left: 1px solid var(--bs-border-color-translucent);*/ }
}
.harita-alan { position: absolute; inset: 0; background: var(--bs-tertiary-bg); }
#map-canvas { position: absolute; inset: 0; }
#map-canvas:focus-visible { outline: .2rem solid rgba(var(--bs-primary-rgb), .6); outline-offset: -.2rem; }

/* OpenLayers kontrolleri */
.iletisim-harita .ol-zoom {
  top: .9rem; right: .9rem; left: auto; padding: 0; background: none;
  display: flex; flex-direction: column; gap: .35rem;
}
.iletisim-harita .ol-zoom button {
  width: 2.4rem; height: 2.4rem; margin: 0; padding: 0;
  font-size: 1.3rem; line-height: 1; font-weight: 500;
  color: var(--bs-emphasis-color); background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color-translucent); border-radius: .75rem;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .15);
}
.iletisim-harita .ol-zoom button:hover,
.iletisim-harita .ol-zoom button:focus-visible { color: var(--bs-primary); background: var(--bs-tertiary-bg); }
.iletisim-harita .ol-attribution {
  right: .5rem; bottom: .5rem; border-radius: .5rem;
  background: rgba(var(--bs-body-bg-rgb), .85);
}
.iletisim-harita .ol-attribution ul { margin: 0; padding: .1rem .45rem; font-size: .7rem; color: var(--bs-secondary-color); text-shadow: none; }
.iletisim-harita .ol-attribution a { color: var(--bs-secondary-color); }

/* Koyu temada harita karoları da koyulaşır (işaretçi ve balon etkilenmez) */
[data-bs-theme="dark"] .iletisim-harita #map-canvas .ol-layer canvas,
[data-bs-theme="dark"] .iletisim-harita #map-canvas canvas.ol-layer {
  filter: invert(1) hue-rotate(180deg) brightness(.92) contrast(.92);
}

/* İşaretçi */
.harita-isaret {
  position: relative; width: 2.75rem; height: 2.75rem; cursor: pointer;
  color: var(--bs-primary);
}
.harita-isaret svg { display: block; width: 100%; height: 100%; filter: drop-shadow(0 .25rem .35rem rgba(0, 0, 0, .35)); }
.harita-isaret:focus-visible { outline: .2rem solid rgba(var(--bs-primary-rgb), .6); outline-offset: .15rem; border-radius: 50%; }
.harita-isaret::after {
  content: ""; position: absolute; left: 50%; bottom: -.15rem;
  width: 1.1rem; height: .5rem; margin-left: -.55rem; border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), .4);
  animation: harita-nabiz 2.2s ease-out infinite; z-index: -1;
}
@keyframes harita-nabiz { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }

/* Balon */
.harita-balon {
  position: relative; width: max-content; max-width: min(18rem, 72vw);
  padding: .8rem 2.1rem .8rem 1rem;
  font-size: .85rem; line-height: 1.45; color: var(--bs-body-color);
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color); border-radius: .9rem;
  box-shadow: var(--ih-golge, 0 .5rem 1.5rem rgba(0, 0, 0, .2));
}
.harita-balon::after {
  content: ""; position: absolute; left: 50%; bottom: -.46rem;
  width: .9rem; height: .9rem; background: var(--bs-body-bg);
  border-right: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color);
  transform: translateX(-50%) rotate(45deg);
}
.harita-balon strong { display: block; margin-bottom: .15rem; color: var(--bs-emphasis-color); }
.harita-balon-kapat { position: absolute; top: .55rem; right: .55rem; --bs-btn-close-opacity: .5; font-size: .7rem; }
.harita-balon a { display: inline-block; margin-top: .35rem; font-weight: 600; text-decoration: none; }
.harita-balon a:hover { text-decoration: underline; }

/* Ctrl + kaydır ipucu ve yedek içerik */
.harita-ipucu {
  position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; padding: 1rem;
  pointer-events: none; text-align: center; font-weight: 600; color: #fff;
  background: rgba(0, 0, 0, .45); opacity: 0; transition: opacity .2s;
}
.harita-ipucu.goster { opacity: 1; }
.harita-yedek {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center;
  gap: .6rem; padding: 1rem; text-align: center; color: var(--bs-secondary-color);
}
.harita-yedek .bi { font-size: 2.5rem; color: var(--bs-primary); }

@media (prefers-reduced-motion: reduce) {
  .harita-isaret::after { animation: none; }
  .harita-ipucu { transition: none; }
}
@media print {
  .harita-sutun, .iletisim-bilgi .btn { display: none !important; }
  .iletisim-kart { box-shadow: none; }
}