/*
 * Sahibinden tarzı ilan listesi — mobil (≤991px) ve uygulama (html.ts-native-app).
 * includes/kd-listing-assets.php bu dosyayı media="(max-width: 991.98px)" (uygulamada "all") ile yükler;
 * bu yüzden kurallar burada medya sorgusuz yazılır. Masaüstü stilleri kd-listing-assets.php içinde.
 *
 * Parçalar: .kd-mbar (Sırala · Filtrele · Görünüm), .kd-mhead (sayı + çipler),
 * .kd-grid görünümleri (liste varsayılan / galeri / büyük fotoğraf), .kd-filters tam ekran sayfa,
 * .kd-sheet--bottom alt sayfalar (sıralama, görünüm). JS'siz: :target; JS ile: .is-sheet-open + .is-portal.
 */

.kd-page {
    --ml-bg: #f1f1f1;
    --ml-panel: #fff;
    --ml-line: #e2e2e2;
    --ml-ink: #1c1c1c;
    --ml-muted: #6f6f6f;
    --ml-price: #111;
    --ml-accent: var(--color-primary-text, #78350F);
    --ml-chip-on: var(--color-primary, #ffe800);
    --ml-top: var(--ts-mheader-h, calc(56px + env(safe-area-inset-top, 0px)));
    --ml-bottom: var(--ts-tabbar-clearance, 0px);
    background: var(--ml-bg);
}

html.ts-native-app .kd-page {
    --ml-top: var(--ts-mheader-h, var(--ts-header-bar, 52px));
}

/* Uygulamada body overflow-x:hidden kaydırma kabı oluşturup position:sticky'yi bozar; clip bozmaz. */
html.ts-native-app body:has(.kd-listing) {
    overflow-x: clip !important;
}

/* ---- Masaüstü parçalarını gizle: hero, istatistik, büyük kategori ızgarası, eski araç çubuğu ---- */
.kd-page .kd-hero,
.kd-page .kd-stats,
.kd-page .kd-discover,
.kd-page .kd-notice,
.kd-page .kd-listing .kd-toolbar {
    display: none !important;
}

.kd-page .kd-main {
    margin-top: 0;
    padding: 0 0 1rem;
}

.kd-page .kd-main > .container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* ---- Yapışkan araç çubuğu ---- */
.kd-page .kd-listing .kd-mbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    position: sticky;
    top: var(--ml-top);
    z-index: 30;
    height: 46px;
    background: var(--ml-panel);
    border-bottom: 1px solid var(--ml-line);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
    scroll-margin-top: var(--ml-top);
}

.kd-page .kd-listing .kd-mbar__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-width: 0;
    padding: 0 0.35rem;
    color: var(--ml-ink);
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
}

.kd-page .kd-listing .kd-mbar__btn + .kd-mbar__btn {
    border-left: 1px solid var(--ml-line);
}

.kd-page .kd-listing .kd-mbar__btn svg {
    flex: 0 0 auto;
    color: var(--ml-muted);
}

.kd-page .kd-listing .kd-mbar__btn:active {
    background: #f6f6f6;
}

.kd-page .kd-listing .kd-mbar__btn.is-active svg,
.kd-page .kd-listing .kd-mbar__count {
    color: var(--ml-accent);
}

.kd-page .kd-listing .kd-mbar__count {
    font-weight: 800;
}

/* ---- Sayı + alt kategori çipleri ---- */
.kd-page .kd-listing .kd-mhead {
    display: block;
    background: var(--ml-panel);
    padding: 0.55rem 0 0.65rem;
    border-bottom: 1px solid var(--ml-line);
}

.kd-page .kd-listing .kd-mhead__count {
    margin: 0;
    padding: 0 0.85rem;
    font-size: 0.82rem;
    color: var(--ml-muted);
}

.kd-page .kd-listing .kd-mhead__count strong {
    color: var(--ml-ink);
    font-weight: 800;
}

.kd-page .kd-listing .kd-mchips {
    display: flex;
    gap: 0.45rem;
    margin-top: 0.55rem;
    padding: 0 0.85rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-padding: 0 0.85rem;
}

.kd-page .kd-listing .kd-mchips::-webkit-scrollbar {
    display: none;
}

.kd-page .kd-listing .kd-mchip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 0.85rem;
    border: 1px solid var(--ml-line);
    border-radius: 999px;
    background: var(--ml-panel);
    color: var(--ml-ink);
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.kd-page .kd-listing .kd-mchip.is-active {
    background: var(--ml-chip-on);
    border-color: color-mix(in srgb, var(--ml-chip-on) 70%, #000);
    color: #111;
}

/* ---- İlan ızgarası: LİSTE (varsayılan) ---- */
.kd-page .kd-listing .kd-grid,
.kd-page .kd-listing .kd-grid.is-list {
    display: block;
    margin: 0;
    background: var(--ml-panel);
}

.kd-page .kd-listing .kd-card {
    position: relative;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 0.7rem;
    padding: 0.65rem 0.85rem;
    background: var(--ml-panel);
    border: 0;
    border-bottom: 1px solid var(--ml-line);
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}

.kd-page .kd-listing .kd-card:hover {
    border-color: var(--ml-line);
    box-shadow: none;
}

.kd-page .kd-listing .kd-card:active {
    background: #fafafa;
}

.kd-page .kd-listing .kd-card__media {
    width: 112px;
    height: 84px;
    aspect-ratio: auto;
    min-height: 0;
    border-radius: 4px;
    background: #ececec;
}

.kd-page .kd-listing .kd-card__vprice,
.kd-page .kd-listing .kd-card__tech,
.kd-page .kd-listing .kd-card__badges,
.kd-page .kd-listing .kd-card__actions {
    display: none;
}

.kd-page .kd-listing .kd-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    padding: 0;
    min-width: 0;
}

.kd-page .kd-listing .kd-card__head {
    display: contents;
}

.kd-page .kd-listing .kd-card__title {
    order: 1;
    flex: 0 0 auto; /* masaüstü flex: 1 1 auto sütunda başlığı uzatmasın */
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.3;
    display: block;
    overflow-wrap: anywhere;
}

/* Satır sınırı bağlantıda: flex öğesi -webkit-box blok olur ve clamp çalışmaz. */
.kd-page .kd-listing .kd-card__title a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--ml-ink);
    text-decoration: none;
}

/* Kartın tamamı detaya gider (başlık bağlantısı karta yayılır). */
.kd-page .kd-listing .kd-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.kd-page .kd-listing .kd-card__meta {
    order: 2;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    min-width: 0;
    font-size: 0.76rem;
    color: var(--ml-muted);
    line-height: 1.3;
}

.kd-page .kd-listing .kd-card__meta-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kd-page .kd-listing .kd-card__meta-rate {
    flex: 0 0 auto;
    white-space: nowrap;
}

.kd-page .kd-listing .kd-card__meta-rate span {
    color: #f5a623;
}

.kd-page .kd-listing .kd-card__loc {
    order: 3;
    margin: 0;
    font-size: 0.76rem;
    color: var(--ml-muted);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kd-page .kd-listing .kd-card__price {
    order: 4;
    margin: auto 0 0 auto;
    padding-top: 0.15rem;
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--ml-price);
    white-space: nowrap;
    text-align: right;
}

.kd-page .kd-listing .kd-card__price.is-quote {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--ml-muted);
}

/* ---- GALERİ (2 sütun, görsel üstünde fiyat rozeti) ---- */
html[data-kd-view="gallery"] .kd-page .kd-listing .kd-grid,
.kd-page .kd-listing .kd-grid.kd-view--gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    padding: 0.5rem;
    background: transparent;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card {
    display: block;
    padding: 0;
    border: 1px solid var(--ml-line);
    border-radius: 6px;
    overflow: hidden;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__media,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__media {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: 0;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__vprice,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__vprice {
    display: block;
    position: absolute;
    top: 0.4rem;
    right: 0.4rem;
    max-width: calc(100% - 0.8rem);
    padding: 0.18rem 0.45rem;
    border-radius: 4px;
    background: rgba(17, 17, 17, 0.78);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__vprice.is-quote,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__vprice.is-quote {
    font-weight: 700;
    background: rgba(17, 17, 17, 0.6);
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__body,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__body {
    padding: 0.4rem 0.5rem 0.55rem;
    gap: 0.15rem;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__title,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__title {
    font-size: 0.84rem;
    min-height: 2.6em;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__meta,
html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__price,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__meta,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__price {
    display: none;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__loc,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__loc {
    font-size: 0.72rem;
}

html[data-kd-view="gallery"] .kd-page .kd-listing .kd-card__mode,
.kd-page .kd-listing .kd-grid.kd-view--gallery .kd-card__mode {
    display: none;
}

/* ---- BÜYÜK FOTOĞRAF (tam genişlik görsel, başlık, fiyat, hızlı işlemler) ---- */
html[data-kd-view="big"] .kd-page .kd-listing .kd-grid,
.kd-page .kd-listing .kd-grid.kd-view--big {
    display: block;
    padding: 0.5rem;
    background: transparent;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card {
    display: block;
    padding: 0;
    margin: 0 0 0.6rem;
    border: 1px solid var(--ml-line);
    border-radius: 8px;
    overflow: hidden;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__media,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__media {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    border-radius: 0;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__body,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 0.75rem;
    row-gap: 0.2rem;
    padding: 0.65rem 0.8rem 0.8rem;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__title,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__title {
    grid-column: 1;
    grid-row: 1;
    font-size: 1.02rem;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__price,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__price {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    padding: 0;
    font-size: 1.12rem;
    align-self: start;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__meta,
html[data-kd-view="big"] .kd-page .kd-listing .kd-card__loc,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__meta,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__loc {
    grid-column: 1 / -1;
    font-size: 0.8rem;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__actions,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__actions {
    grid-column: 1 / -1;
    order: 5;
    position: relative;
    z-index: 2;
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

html[data-kd-view="big"] .kd-page .kd-listing .kd-card__actions .kd-btn,
.kd-page .kd-listing .kd-grid.kd-view--big .kd-card__actions .kd-btn {
    flex: 1 1 0;
    min-height: 42px;
    padding: 0.5rem 0.6rem;
    font-size: 0.88rem;
    border-radius: 8px;
}

/* ---- Daha fazla ilan / boş durum ---- */
.kd-page .kd-listing .kd-more-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
    padding: 0.75rem 0.85rem 0.25rem;
}

.kd-page .kd-listing .kd-more-wrap .kd-btn {
    width: 100%;
    min-height: 46px;
    background: var(--ml-panel);
    border: 1px solid var(--ml-line);
    border-radius: 8px;
    color: var(--ml-ink);
    font-size: 0.92rem;
}

.kd-page .kd-listing .kd-empty {
    margin: 0.75rem;
    padding: 2rem 1rem;
    border-radius: 10px;
    background: var(--ml-panel);
}

.kd-page .kd-listing .kd-empty h2 {
    font-size: 1.05rem;
}

/* ---- Tam ekran filtre sayfası ----
 * JS açınca form <body>'ye taşınır (.is-portal): main#main yığın bağlamı (z-index:1) başlık/sekme çubuğunun
 * altında bırakmasın. JS'siz :target ile açılır; :has() destekleyen tarayıcıda yığın bağlamı kaldırılır. */
.kd-filters.kd-sheet,
.kd-filters.kd-sheet.is-open {
    display: none;
    animation: none;
}

.kd-filters.kd-sheet:target,
.kd-filters.kd-sheet.is-sheet-open {
    position: fixed;
    top: var(--ml-top);
    right: 0;
    bottom: var(--ml-bottom);
    left: 0;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--ml-bg, #f1f1f1);
}

.kd-sheet.is-portal {
    --ml-bg: #f1f1f1;
    --ml-panel: #fff;
    --ml-line: #e2e2e2;
    --ml-ink: #1c1c1c;
    --ml-muted: #6f6f6f;
    --ml-accent: var(--color-primary-text, #78350F);
    --kd-ink: #1a1a1a;
    --kd-muted: #57534E;
    --kd-panel: #fff;
    --kd-line: rgba(26, 26, 26, 0.12);
    --kd-primary: var(--color-primary, #ffe800);
    --kd-secondary: var(--color-primary-hover, #F5C518);
    --kd-deep: var(--color-primary-text, #78350F);
    color: var(--ml-ink);
}

.kd-filters.kd-sheet.is-portal {
    top: 0;
    bottom: 0;
}

.ts-main:has(.kd-sheet:target),
main#main:has(.kd-sheet:target),
.kd-page .kd-main {
    z-index: auto !important;
}

.kd-filters .kd-sheet__head {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    min-height: 54px;
    padding-top: 0;
    background: var(--ml-panel);
    border-bottom: 1px solid var(--ml-line);
}

.kd-filters.is-portal .kd-sheet__head {
    padding-top: env(safe-area-inset-top, 0px);
}

html.ts-native-app .kd-filters.is-portal .kd-sheet__head {
    padding-top: 0;
}

.kd-sheet__x {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: 4px;
    color: var(--ml-ink, #1c1c1c);
    border-radius: 999px;
}

.kd-sheet__title {
    margin: 0;
    text-align: center;
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--ml-ink, #1c1c1c);
}

.kd-sheet__clear {
    padding: 0 1rem;
    color: var(--ml-accent, #78350F);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
}

.kd-filters .kd-sheet__body,
.kd-filters .kd-filters__grid {
    flex: 1 1 auto;
    display: block;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: 0 0 1rem;
}

.kd-filters .kd-frow {
    display: block;
    margin: 0.5rem 0 0;
    padding: 0.8rem 1rem 0.9rem;
    background: var(--ml-panel);
    border-top: 1px solid var(--ml-line);
    border-bottom: 1px solid var(--ml-line);
}

.kd-filters .kd-frow--cat {
    display: block;
}

.kd-filters .kd-frow--sort,
.kd-filters .kd-filters__actions {
    display: none;
}

.kd-filters .kd-frow__label,
.kd-filters legend.kd-frow__label {
    float: none;
    width: auto;
    margin: 0 0 0.55rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--ml-ink);
}

.kd-filters .kd-frow--q .kd-frow__label {
    font-size: 0.95rem;
    color: var(--ml-ink);
}

.kd-filters .kd-field label {
    margin-bottom: 0.25rem;
}

.kd-filters .kd-field input,
.kd-filters .kd-field select {
    min-height: 46px;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    font-size: 16px; /* iOS yakınlaştırmasın */
    background-color: #fff;
}

.kd-filters .kd-frow__pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
}

.kd-filters .kd-optlist {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0 -1rem -0.9rem;
}

.kd-filters .kd-opt {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 48px;
    padding: 0 1rem;
    border-top: 1px solid var(--ml-line);
    font-size: 0.95rem;
    color: var(--ml-ink);
}

.kd-filters .kd-opt input {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    accent-color: var(--ml-accent);
}

.kd-filters .kd-seg {
    gap: 0.5rem;
}

.kd-filters .kd-seg__opt span {
    min-height: 40px;
    padding: 0 0.95rem;
    font-size: 0.9rem;
}

.kd-filters .kd-sheet__foot {
    flex: 0 0 auto;
    display: block;
    padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
    background: var(--ml-panel);
    border-top: 1px solid var(--ml-line);
    box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.05);
}

.kd-filters:not(.is-portal) .kd-sheet__foot {
    padding-bottom: 0.65rem;
}

.kd-sheet__submit {
    width: 100%;
    min-height: 50px;
    font-size: 1rem;
    border-radius: 8px;
}

/* ---- Alt sayfalar: Sıralama, Görünüm ---- */
.kd-sheet--bottom {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
}

.kd-sheet--bottom:target,
.kd-sheet--bottom.is-sheet-open {
    display: block;
}

.kd-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    animation: kd-ml-fade 160ms ease-out;
}

.kd-sheet--bottom .kd-sheet__panel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--ml-bottom, 0px);
    max-height: 82vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12);
    animation: kd-ml-up 200ms ease-out;
}

.kd-sheet--bottom.is-portal .kd-sheet__panel {
    bottom: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
}

.kd-sheet--bottom .kd-sheet__panel::before {
    content: "";
    display: block;
    width: 38px;
    height: 4px;
    margin: 8px auto 0;
    border-radius: 999px;
    background: #d6d6d6;
}

.kd-sheet--bottom .kd-sheet__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 0.4rem 0.5rem 1rem;
    border-bottom: 1px solid #ececec;
}

.kd-sheet--bottom .kd-sheet__title {
    text-align: left;
}

.kd-radios {
    list-style: none;
    margin: 0;
    padding: 0 0 0.35rem;
}

.kd-radio {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-height: 52px;
    padding: 0 1rem;
    border-bottom: 1px solid #f0f0f0;
    color: #1c1c1c;
    font-size: 0.97rem;
    text-decoration: none;
}

.kd-radios li:last-child .kd-radio {
    border-bottom: 0;
}

.kd-radio:active {
    background: #f7f7f7;
}

.kd-radio__dot {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 2px solid #b9b9b9;
    border-radius: 999px;
    background: #fff;
}

.kd-radio.is-checked {
    font-weight: 700;
}

.kd-radio.is-checked .kd-radio__dot {
    border-color: var(--color-primary-text, #78350F);
    background: var(--color-primary-text, #78350F);
    box-shadow: inset 0 0 0 4px #fff;
}

.kd-radio__icon {
    flex: 0 0 auto;
    color: #6f6f6f;
}

/* Yalnız <html>: body'ye overflow verilirse body kaydırma kabı olur, yapışkan çubuk kayar. */
html.ml-lock {
    overflow: hidden !important;
    overscroll-behavior: none;
}

@keyframes kd-ml-up {
    from { transform: translateY(24px); opacity: 0.6; }
    to { transform: none; opacity: 1; }
}

@keyframes kd-ml-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .kd-sheet__backdrop,
    .kd-sheet--bottom .kd-sheet__panel {
        animation: none;
    }
}

/* Tablet genişliğinde galeri 3 sütun. */
@media (min-width: 640px) {
    html[data-kd-view="gallery"] .kd-page .kd-listing .kd-grid,
    .kd-page .kd-listing .kd-grid.kd-view--gallery {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---- "Haritaya Geç" — sahibinden tarzı yüzen hap: sağ altta, sekme çubuğunun hemen üstünde ---- */
.kd-page .kd-listing .kd-mapfab {
    position: fixed;
    right: 16px;
    bottom: calc(var(--ts-tabbar-clearance, 0px) + 14px);
    z-index: 1035;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 46px;
    padding: 0 1.15rem 0 0.95rem;
    border-radius: 999px;
    background: #1a1a1a;
    color: #ffe800;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28), 0 1px 3px rgba(0, 0, 0, 0.2);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    transition: transform 0.12s ease;
}

.kd-page .kd-listing .kd-mapfab:hover,
.kd-page .kd-listing .kd-mapfab:focus-visible {
    color: #ffe800;
}

.kd-page .kd-listing .kd-mapfab:focus-visible {
    outline: 3px solid #ffd700;
    outline-offset: 2px;
}

.kd-page .kd-listing .kd-mapfab:active {
    transform: scale(0.96);
}

.kd-page .kd-listing .kd-mapfab svg {
    flex: 0 0 auto;
}

/* Alt sayfa / filtre açıkken ve arama katmanında gizli. */
html.ml-lock .kd-page .kd-listing .kd-mapfab,
html.ts-sheet-open .kd-page .kd-listing .kd-mapfab,
html.ts-msearch-open .kd-page .kd-listing .kd-mapfab,
.kd-page .kd-listing:has(.kd-sheet:target) .kd-mapfab {
    display: none;
}

/* "Yukarı çık" düğmesi hapın üstüne kayar (üst üste binmesin). */
body:has(.kd-mapfab) .btntoTop {
    bottom: calc(var(--ts-tabbar-clearance, 0px) + 72px) !important;
}

/* Son ilan kartları hapın altında kalmasın. */
.kd-page .kd-listing:has(.kd-mapfab) .kd-more-wrap {
    padding-bottom: 64px;
}

@media (prefers-reduced-motion: reduce) {
    .kd-page .kd-listing .kd-mapfab {
        transition: none;
    }
}
