/**
 * NECOX K1 — Search Results
 *
 * Frontend CSS for the advert search results page (Ilan Arama). Shared
 * styles + 4 preset-based variants. K2 cascade compatible via var().
 *
 * @file       search-results.css
 * @component  K1
 * @since      v4.1.0
 */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SAYFA WRAPPER (v3.83.0 Faz 1.5 + v3.84.0 Faz 2.6/2.7/2.8)
   archive-advert.php'de <div class="necox-page-search-results"> ile sarilir.
   single-advert ile birebir paralel: 1400px default + margin auto + padding 0 24px.
   K2 ayarlari: sr_max_width (genislik), sr_bg/transparent/gradient/glass (arka plan),
   sr_border_color (kenarlik), sr_shadow (golge). fonts.php K-04 efekt onceligi
   (Glass > Transparent > Gradient > Solid) ile --necox-sr-bg variable'i tek nokta uretir.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.necox-page-search-results {
    max-width: var(--necox-sr-max-width, 1400px);
    margin: 24px auto;
    padding-left: 24px;
    padding-right: 24px;
    padding-top: var(--necox-sr-padding-y, 24px);
    padding-bottom: var(--necox-sr-padding-y, 24px);
    background: var(--necox-sr-bg, transparent);
    backdrop-filter: var(--necox-sr-glass-blur, none);
    -webkit-backdrop-filter: var(--necox-sr-glass-blur, none);
    border: 1px solid var(--necox-sr-border-color, transparent);
    box-shadow: var(--necox-sr-shadow, none);
    border-radius: var(--necox-sr-radius, 0);
}

@media (max-width: 768px) {
    .necox-page-search-results {
        margin: 16px auto;
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FAZ 5a YENI K2 ALANLARI (v3.87.0)
   Bos sonuc ekrani + sayfalama + daha fazla yukle butonu K2 destekleri.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Bos sonuc ekrani */
.necox-empty-state {
    background: var(--necox-sr-empty-bg, transparent);
    color: var(--necox-sr-empty-text, var(--necox-muted, #6b7280));
    padding: var(--necox-sr-empty-padding, 60px) 20px;
    text-align: center;
    border-radius: var(--necox-sr-result-header-radius, 0);
}

.necox-empty-state p {
    margin: 0;
    color: inherit;
    font-size: 15px;
}

/* Sayfalama butonlari K2 cift class override */
.necox-search__pagination .necox-filter-pagination__btn {
    background: var(--necox-sr-pag-bg, var(--necox-white));
    color: var(--necox-sr-pag-color, var(--necox-muted));
    border-radius: var(--necox-sr-pag-radius, 6px);
}

.necox-search__pagination .necox-filter-pagination__btn.is-current {
    background: var(--necox-sr-pag-active-bg, var(--necox-primary, #2A3254));
    color: #ffffff;
}

/* Daha Fazla Yukle butonu cift class override (ana selector .necox-btn--outline) */
.necox-search__pagination .necox-search__load-more,
.necox-btn.necox-search__load-more {
    background: var(--necox-sr-loadmore-bg, transparent);
    color: var(--necox-sr-loadmore-color, var(--necox-primary, #2A3254));
}

.necox-search__pagination .necox-search__load-more:hover,
.necox-btn.necox-search__load-more:hover {
    filter: brightness(0.95);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FAZ 6 HARITA — Preset 3 (v3.89.0)
   Leaflet pin (custom divIcon), popup, empty state stilleri.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Pin container (Leaflet divIcon className) */
.necox-search__map-pin-wrap {
    background: transparent !important;
    border: none !important;
}

/* Pin - fiyat etiketi */
.necox-search__map-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--necox-primary, #2A3254);
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 10px;
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
    white-space: nowrap;
    border: 2px solid #ffffff;
    cursor: pointer;
    transition: transform 0.15s, background-color 0.15s;
}

.necox-search__map-pin:hover {
    background: var(--necox-secondary, #FFCC04);
    color: var(--necox-primary, #2A3254);
    transform: scale(1.08);
}

/* Pin - sade nokta (fiyat yoksa) */
.necox-search__map-pin--dot {
    width: 16px;
    height: 16px;
    padding: 0;
    border-radius: 50%;
}

/* Pin popup */
.necox-search__map-popup {
    display: flex;
    flex-direction: column;
    min-width: 220px;
}

.necox-search__map-popup img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 6px 6px 0 0;
}

.necox-search__map-popup-body {
    padding: 10px 12px;
}

.necox-search__map-popup-title {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--necox-heading, #1a1a2e);
    text-decoration: none;
    line-height: 1.3;
    margin-bottom: 4px;
}

.necox-search__map-popup-title:hover {
    color: var(--necox-primary, #2A3254);
}

.necox-search__map-popup-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--necox-primary, #2A3254);
}

/* Leaflet popup container override - genel temaya uy */
.leaflet-popup-content-wrapper {
    border-radius: 8px !important;
    padding: 0 !important;
    overflow: hidden;
}

.leaflet-popup-content {
    margin: 0 !important;
}

/* Pin yok / hata durumu */
.necox-search__map-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 300px;
    color: var(--necox-muted, #6b7280);
    text-align: center;
    padding: 40px 20px;
    gap: 12px;
}

.necox-search__map-empty p {
    margin: 0;
    font-size: 14px;
    color: inherit;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   AJAX FILTRE LOADING STATE (v3.85.0 Faz 3)
   doFilter sirasinda container'a is-loading class eklenir + spinner gosterilir.
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.necox-search__main.is-loading,
.necox-search__cards.is-loading {
    opacity: 0.6;
    pointer-events: none;
    transition: opacity 0.2s;
}

.necox-filter-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 60px 20px;
    color: var(--necox-muted, #6b7280);
    font-size: 14px;
    text-align: center;
}

.necox-filter-loading__spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--necox-border, #e5e7eb);
    border-top-color: var(--necox-primary, #2A3254);
    border-radius: 50%;
    animation: necox-filter-spin 0.7s linear infinite;
}

@keyframes necox-filter-spin {
    to { transform: rotate(360deg); }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FAZ 4 UI STATE (v3.86.0)
   List view + chip aktif item + load-more loading + preview panel scale-in
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* List view modu (grid yerine yatay liste) */
.necox-search__cards.is-list-view {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.necox-search__cards.is-list-view .necox-ad-card {
    width: 100%;
    max-width: 100%;
}

/* Preset 2 / 3 list-item aktif state */
.necox-search__list-item {
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s;
}

.necox-search__list-item.is-active {
    background: var(--necox-primary-light, rgba(42, 50, 84, 0.06));
    border-left: 3px solid var(--necox-primary, #2A3254);
}

/* Daha Fazla Yukle butonu loading state */
.necox-search__load-more.is-loading {
    opacity: 0.65;
    cursor: wait;
    position: relative;
    pointer-events: none;
}

.necox-search__load-more.is-loading::after {
    content: '';
    position: absolute;
    right: 12px;
    top: 50%;
    width: 14px;
    height: 14px;
    margin-top: -7px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: necox-filter-spin 0.7s linear infinite;
}

/* Preview panel content fade-in */
.necox-search__preview-content {
    animation: necox-preview-fade-in 0.18s ease-out;
}

@keyframes necox-preview-fade-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   ORTAK STILLER
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ── Sonuc Basligi ── */
/* v3.87.0 Faz 5a: Bg/padding/radius destegi - kutu seklinde gosterim icin */
.necox-search__result-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 8px;
    background: var(--necox-sr-result-header-bg, transparent);
    padding: var(--necox-sr-result-header-padding, 0);
    border-radius: var(--necox-sr-result-header-radius, 0);
}

.necox-search__result-count {
    font-size: var(--necox-sr-result-size, 14px);
    font-weight: 500;
    color: var(--necox-sr-result-color, var(--necox-heading));
}

.necox-search__result-count strong {
    color: var(--necox-sr-result-strong, var(--necox-primary, #2A3254));
}

/* ── Gorunum Toggle ── */
.necox-search__view-toggle {
    display: flex;
    gap: 4px;
}

.necox-search__view-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--necox-border, var(--necox-border));
    border-radius: 6px;
    background: none;
    color: var(--necox-muted, var(--necox-muted));
    cursor: pointer;
    transition: all 0.15s;
}

.necox-search__view-btn.is-active,
.necox-search__view-btn:hover {
    background: var(--necox-primary, var(--necox-primary));
    color: #ffffff;
    border-color: var(--necox-primary, var(--necox-primary));
}

/* ── Kartlar Grid ── */
/* v3.84.0 Faz 2.1: Inline style="grid-template-columns:repeat(var(--necox-sr-columns,N),1fr)"
   helpers.php tarafindan basilir. Burada sadece gap. */
.necox-search__cards {
    display: grid;
    gap: var(--necox-sr-gap, 16px);
}

/* ── Chip Filtreler ── */
.necox-search__chips {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.necox-search__chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: calc(var(--necox-sr-chip-padding, 8px) / 2) var(--necox-sr-chip-padding, 8px);
    font-size: 12px;
    font-weight: 500;
    background: var(--necox-sr-chip-bg, var(--necox-primary-light, #e6f7f5));
    color: var(--necox-sr-chip-color, var(--necox-primary, #00a591));
    border-radius: var(--necox-sr-chip-radius, 20px);
}

.necox-search__chip-remove {
    border: none;
    background: none;
    color: inherit;
    font-size: 14px;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    opacity: 0.7;
}

.necox-search__chip-remove:hover { opacity: 1; }

.necox-search__chips-clear {
    font-size: 12px;
    color: var(--necox-muted, var(--necox-muted));
    text-decoration: none;
    margin-left: 4px;
}

.necox-search__chips-clear:hover { color: #ef4444; text-decoration: none; }

.necox-search__chips-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

/* ── Kategori Tab'lari ── */
.necox-search__cat-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--necox-border, var(--necox-border));
    margin-bottom: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.necox-search__cat-tab {
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--necox-muted, var(--necox-muted));
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}

.necox-search__cat-tab:hover { color: var(--necox-heading, #1a1a2e); text-decoration: none; }

.necox-search__cat-tab.is-active {
    color: var(--necox-primary, var(--necox-primary));
    border-bottom-color: var(--necox-primary, var(--necox-primary));
}

/* ── Yatay Filtre Bar ── */
.necox-search__hbar {
    margin-bottom: 16px;
}

.necox-search__hbar-form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.necox-search__hbar-field {
    flex: 1;
    min-width: 140px;
}

.necox-search__hbar-field--price {
    display: flex;
    gap: 4px;
    align-items: center;
}

.necox-search__hbar-select,
.necox-search__hbar-input {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    border: 1px solid var(--necox-sr-filter-border, var(--necox-border, #e5e7eb));
    border-radius: var(--necox-sr-filter-radius, 6px);
    background: var(--necox-sr-filter-bg, var(--necox-white));
    color: var(--necox-sr-filter-color, var(--necox-text, #374151));
    font-size: 13px;
}

.necox-search__hbar-sep {
    color: var(--necox-muted, var(--necox-muted));
    font-size: 12px;
    flex-shrink: 0;
}

.necox-search__hbar-submit {
    flex-shrink: 0;
    height: 38px;
}

/* ── Topbar (Preset 4) ── */
.necox-search__topbar {
    margin-bottom: 16px;
}

.necox-search__topbar-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.necox-search__topbar-input-wrap {
    flex: 1;
    position: relative;
}

.necox-search__topbar-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--necox-muted, var(--necox-muted));
}

.necox-search__topbar-input {
    width: 100%;
    height: 42px;
    padding: 0 12px 0 38px;
    border: 1px solid var(--necox-sr-filter-border, var(--necox-border, #e5e7eb));
    border-radius: var(--necox-sr-filter-radius, var(--necox-radius));
    background: var(--necox-sr-filter-bg, var(--necox-white));
    color: var(--necox-sr-filter-color, var(--necox-text, #374151));
    font-size: 14px;
}

/* ── Liste Ogeleri (Preset 2, 3) ── */
/* v3.88.0 Faz 5b: K2 variable destekli list-item (Preset 2 ve 3 ortak) */
.necox-search__list-item {
    display: flex;
    gap: 10px;
    padding: var(--necox-sr-list-item-padding, 12px);
    border: 1px solid var(--necox-border, var(--necox-border));
    border-radius: var(--necox-sr-list-item-radius, 8px);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
    margin-bottom: var(--necox-sr-list-item-gap, 8px);
    background: var(--necox-sr-list-item-bg, var(--necox-white));
}

.necox-search__list-item:hover {
    background: var(--necox-sr-list-item-hover-bg, var(--necox-white));
    border-color: var(--necox-primary, var(--necox-primary));
    box-shadow: 0 0 0 1px var(--necox-primary, var(--necox-primary));
}

.necox-search__list-item.is-active {
    background: var(--necox-sr-list-item-active-bg, var(--necox-primary-light, rgba(42,50,84,0.06)));
    border-color: var(--necox-primary, var(--necox-primary));
    box-shadow: 0 0 0 1px var(--necox-primary, var(--necox-primary));
}

.necox-search__list-thumb {
    width: var(--necox-sr-list-thumb-size, 80px);
    height: calc(var(--necox-sr-list-thumb-size, 80px) * 0.75);
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
}

.necox-search__list-info { flex: 1; min-width: 0; }

.necox-search__list-title {
    font-size: 13px;
    font-weight: 500;
    color: var(--necox-heading, #1a1a2e);
    text-decoration: none;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.necox-search__list-meta {
    display: flex;
    gap: 8px;
    margin-top: 4px;
    font-size: 12px;
}

.necox-search__list-price {
    font-weight: 600;
    color: var(--necox-primary, var(--necox-primary));
}

.necox-search__list-loc {
    color: var(--necox-muted, var(--necox-muted));
}

/* ── Onizleme Paneli (Preset 2) ── */
/* v3.84.0 Faz 2.9: K2 sr_preview_bg/border/radius */
/* v3.88.0 Faz 5b: K2 sr_preview_title_color + price_color + padding eklendi */
.necox-search__preview {
    border: 1px solid var(--necox-sr-preview-border, var(--necox-border, var(--necox-border)));
    border-radius: var(--necox-sr-preview-radius, 10px);
    background: var(--necox-sr-preview-bg, var(--necox-white));
    overflow: hidden;
}

.necox-search__preview-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    color: var(--necox-muted, var(--necox-muted));
    gap: 8px;
    text-align: center;
    padding: 20px;
    font-size: 13px;
}

.necox-search__preview-img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
}

.necox-search__preview-content { padding: var(--necox-sr-preview-padding, 20px); }

.necox-search__preview-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--necox-sr-preview-title, var(--necox-heading, #1a1a2e));
    margin: 0 0 8px;
}

.necox-search__preview-price {
    font-size: 20px;
    font-weight: 700;
    color: var(--necox-sr-preview-price, var(--necox-primary, var(--necox-primary)));
    margin-bottom: 8px;
}

.necox-search__preview-excerpt {
    font-size: 13px;
    color: var(--necox-text, var(--necox-text));
    line-height: 1.5;
    margin-bottom: 12px;
}

.necox-search__preview-loc {
    font-size: 12px;
    color: var(--necox-muted, var(--necox-muted));
    margin-bottom: 12px;
}

/* ── Harita Paneli (Preset 3) ── */
.necox-search__map {
    width: 100%;
    height: 100%;
    min-height: var(--necox-sr-map-height, 500px);
    border-radius: 10px;
    overflow: hidden;
}

/* ── Sayfalama ── */
.necox-search__pagination {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.necox-search__load-more {
    min-width: 200px;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PRESET 1 — Klasik 2 Kolon
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.necox-search--preset-1 {
    display: grid;
    grid-template-columns: var(--necox-sr-sidebar-width, 260px) 1fr;
    gap: var(--necox-sr-gap, 24px);
    padding: 24px 0;
    align-items: start;
}

/* v5.15.0 — Preset 1 sticky: her iki taraf bagimsiz sticky.
   Desktop'ta JS hover-bazli swap ile aktif olmayan panel sticky kalir. */
.necox-search--preset-1 .necox-search__sidebar,
.necox-search--preset-1 .necox-search__main {
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    /* Scrollbar sade gostersin */
    scrollbar-width: thin;
}
.necox-search--preset-1 .necox-search__sidebar::-webkit-scrollbar,
.necox-search--preset-1 .necox-search__main::-webkit-scrollbar {
    width: 6px;
}
.necox-search--preset-1 .necox-search__sidebar::-webkit-scrollbar-thumb,
.necox-search--preset-1 .necox-search__main::-webkit-scrollbar-thumb {
    background: var(--necox-border);
    border-radius: 3px;
}
/* Hover-bazli: aktif panel scroll edilir, digeri sabit kalir.
   JS .necox-search--hover-left / --hover-right class'i sayfaya ekler. */
.necox-search--hover-left.necox-search--preset-1 .necox-search__main {
    overflow-y: hidden;
}
.necox-search--hover-right.necox-search--preset-1 .necox-search__sidebar {
    overflow-y: hidden;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PRESET 2 — 3 Kolon Panel
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.necox-search--preset-2 {
    display: grid;
    grid-template-columns: calc(var(--necox-sr-sidebar-width, 260px) - 60px) 1fr 300px;
    gap: var(--necox-sr-gap, 20px);
    padding: 24px 0;
    align-items: start;
}

.necox-search__sidebar--compact .necox-filter-sidebar {
    font-size: 12px;
}

/* v5.15.0 — Preset 2: tum 3 panel sticky.
   Sag preview zaten sticky; sol filtre + orta liste eklenir.
   Hover-bazli swap: mouse hangi panelde ise digerleri sabit. */
.necox-search--preset-2 .necox-search__sidebar,
.necox-search--preset-2 .necox-search__main {
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    scrollbar-width: thin;
}
.necox-search--preset-2 .necox-search__preview {
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
}
.necox-search--preset-2 .necox-search__sidebar::-webkit-scrollbar,
.necox-search--preset-2 .necox-search__main::-webkit-scrollbar,
.necox-search--preset-2 .necox-search__preview::-webkit-scrollbar {
    width: 6px;
}
.necox-search--preset-2 .necox-search__sidebar::-webkit-scrollbar-thumb,
.necox-search--preset-2 .necox-search__main::-webkit-scrollbar-thumb,
.necox-search--preset-2 .necox-search__preview::-webkit-scrollbar-thumb {
    background: var(--necox-border);
    border-radius: 3px;
}
/* Hover-bazli: sadece aktif panel scroll, digerleri sabit */
.necox-search--hover-left.necox-search--preset-2 .necox-search__main {
    overflow-y: hidden;
}
.necox-search--hover-middle.necox-search--preset-2 .necox-search__sidebar {
    overflow-y: hidden;
}
.necox-search--hover-right.necox-search--preset-2 .necox-search__sidebar,
.necox-search--hover-right.necox-search--preset-2 .necox-search__main {
    overflow-y: hidden;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PRESET 3 — Harita + Liste Split
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.necox-search--preset-3 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding-bottom: 24px;
    align-items: start;
}

.necox-search__main--scroll {
    max-height: 600px;
    overflow-y: auto;
}

.necox-search__map-panel {
    position: sticky;
    top: 80px;
}

/* v5.15.0 — Preset 3: ust yatay filtre bar her zaman sticky (klasik) */
.necox-search__hbar {
    position: sticky;
    top: 70px;
    z-index: 50;
    background: var(--necox-white, #fff);
    /* Bar arka planı page bg'den belli olsun ki scroll'da uste yapışınca yamali gozukmesin */
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PRESET 4 — Ust Filtre + Tam Grid
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.necox-search--preset-4 {
    padding: 24px 0;
}

.necox-search__full-grid .necox-search__cards {
    grid-template-columns: repeat(4, 1fr);
}

/* v5.15.0 — Preset 4: topbar + tabs + chips ust panelinin tamami sticky.
   Bunlar 3 ayri div oldugu icin tum ustu kapsayan bir wrapper sticky yapiyoruz. */
.necox-search--preset-4 .necox-search__topbar,
.necox-search--preset-4 .necox-search__cat-tabs,
.necox-search--preset-4 .necox-search__chips-row {
    background: var(--necox-white, #fff);
}
.necox-search--preset-4 .necox-search__topbar {
    position: sticky;
    top: 70px;
    z-index: 52;
}
.necox-search--preset-4 .necox-search__cat-tabs {
    position: sticky;
    top: 130px;
    z-index: 51;
}
.necox-search--preset-4 .necox-search__chips-row {
    position: sticky;
    top: 180px;
    z-index: 50;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   RESPONSIVE
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

@media (max-width: 1024px) {
    .necox-search--preset-1 {
        grid-template-columns: 220px 1fr;
    }
    .necox-search--preset-2 {
        grid-template-columns: 1fr 280px;
    }
    .necox-search--preset-2 .necox-search__sidebar {
        display: none;
    }
    .necox-search--preset-3 {
        grid-template-columns: 1fr;
    }
    .necox-search__map-panel {
        position: static;
        height: 350px;
    }
    .necox-search__map { min-height: 350px; }
    .necox-search__main--scroll { max-height: none; }
    .necox-search__full-grid .necox-search__cards {
        grid-template-columns: repeat(3, 1fr);
    }

    /* v5.15.0 — Tablet: hover-bazli swap kapali, klasik sticky devam.
       Her panel kendi sticky'sini korur (her iki taraf bagimsiz scroll). */
    .necox-search--hover-left,
    .necox-search--hover-middle,
    .necox-search--hover-right { /* hover class'lari etkisiz */ }
    .necox-search--hover-left.necox-search--preset-1 .necox-search__main,
    .necox-search--hover-right.necox-search--preset-1 .necox-search__sidebar,
    .necox-search--hover-left.necox-search--preset-2 .necox-search__main,
    .necox-search--hover-middle.necox-search--preset-2 .necox-search__sidebar,
    .necox-search--hover-right.necox-search--preset-2 .necox-search__sidebar,
    .necox-search--hover-right.necox-search--preset-2 .necox-search__main {
        overflow-y: auto; /* hover-bazli kisitlamayi iptal et */
    }
}

@media (max-width: 767px) {
    .necox-search--preset-1 {
        grid-template-columns: 1fr;
    }
    .necox-search--preset-1 .necox-search__sidebar {
        display: none;
    }
    .necox-search--preset-2 {
        grid-template-columns: 1fr;
    }
    .necox-search--preset-2 .necox-search__preview {
        display: none;
    }
    .necox-search__hbar-form {
        flex-direction: column;
    }
    .necox-search__hbar-field { min-width: 100%; }
    .necox-search__full-grid .necox-search__cards {
        grid-template-columns: 1fr;
    }
    .necox-search__cards {
        grid-template-columns: 1fr !important;
    }
    .necox-search__map-panel { height: 280px; }
    .necox-search__map { min-height: 280px; }

    /* v5.15.0 — Mobil: tum sticky kapali (tek-kolon scroll dogal akiş) */
    .necox-search--preset-1 .necox-search__sidebar,
    .necox-search--preset-1 .necox-search__main,
    .necox-search--preset-2 .necox-search__sidebar,
    .necox-search--preset-2 .necox-search__main,
    .necox-search--preset-2 .necox-search__preview,
    .necox-search__hbar,
    .necox-search--preset-4 .necox-search__topbar,
    .necox-search--preset-4 .necox-search__cat-tabs,
    .necox-search--preset-4 .necox-search__chips-row {
        position: static;
        max-height: none;
        overflow-y: visible;
        top: auto;
    }

    /* v6.3.0 — Eski .necox-search__mobile-filter-btn kaldirildi.
       Mobil filtre paneli artik bagimsiz #necox-mfp-fab + #necox-mfp-drawer
       sistemine devredildi (CSS bu dosyanin en altinda). */
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* v6.3.0 — MOBIL FILTRE PANELI (Drawer + FAB Buton, ZIP 1) */
/* v6.4.0 — Gorsel zenginlestirme (gradient, cam, resim, golge,*/
/* overlay blur), drawer header/body, FAB hover/tipografi.     */
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* CSS variable defaults — admin K2'den override edilir */
:root {
    /* ZIP 1 — temel davranis + kabuk + FAB temel */
    --necox-mfp-width: 85%;
    --necox-mfp-height: 80%;
    --necox-mfp-anim-duration: 300ms;
    --necox-mfp-overlay-color: #000000;
    --necox-mfp-overlay-opacity: 0.50;
    --necox-mfp-panel-bg: #ffffff;
    --necox-mfp-panel-border-color: transparent;
    --necox-mfp-panel-border-width: 0;
    --necox-mfp-panel-radius: 0;
    --necox-mfp-panel-padding: 16px;
    --necox-mfp-fab-size: 48px;
    --necox-mfp-fab-bg: var(--necox-primary, #2271b1);
    --necox-mfp-fab-color: #ffffff;

    /* ZIP 2 — drawer kabuk gelismis */
    --necox-mfp-panel-bg-alpha: 1;            /* 0..1 — solid BG'ye alpha (cam KAPALI iken) */
    --necox-mfp-glass-blur: blur(0);          /* cam acikken backdrop-filter degeri */
    --necox-mfp-glass-bg: transparent;        /* cam acikken yarim saydam katman */
    --necox-mfp-panel-gradient: none;         /* gradient acikken linear-gradient(...) */
    --necox-mfp-panel-bg-image: none;         /* arka plan resmi acikken url(...) */
    --necox-mfp-panel-bg-size: cover;
    --necox-mfp-panel-bg-repeat: no-repeat;
    --necox-mfp-panel-bg-position: center center;
    --necox-mfp-panel-shadow: 0 0 24px 0 rgba(0,0,0,0.15);
    --necox-mfp-overlay-blur: blur(0);

    /* ZIP 2 — drawer header */
    --necox-mfp-header-bg: transparent;
    --necox-mfp-header-title-color: inherit;
    --necox-mfp-header-close-color: inherit;
    --necox-mfp-header-padding: 12px;
    --necox-mfp-header-border-color: rgba(0,0,0,0.08);
    --necox-mfp-header-font-family: inherit;
    --necox-mfp-header-font-size: 16px;
    --necox-mfp-header-font-weight: 600;

    /* ZIP 2 — drawer body */
    --necox-mfp-body-bg: transparent;
    --necox-mfp-body-padding: 16px;
    --necox-mfp-body-label-font-family: inherit;
    --necox-mfp-body-label-font-size: 13px;
    --necox-mfp-body-label-font-weight: 500;
    --necox-mfp-body-label-color: inherit;

    /* ZIP 2 — FAB gelismis */
    --necox-mfp-fab-hover-bg: var(--necox-mfp-fab-bg);
    --necox-mfp-fab-hover-color: var(--necox-mfp-fab-color);
    --necox-mfp-fab-hover-border: transparent;
    --necox-mfp-fab-border-color: transparent;
    --necox-mfp-fab-border-width: 1px;
    --necox-mfp-fab-font-family: inherit;
    --necox-mfp-fab-font-size: 14px;
    --necox-mfp-fab-font-weight: 600;
    --necox-mfp-fab-letter-spacing: 0;

    /* ZIP 3 — drawer footer + buton + sayac + easing */
    --necox-mfp-anim-easing: ease-out;
    --necox-mfp-footer-bg: rgba(255, 255, 255, 0.96);
    --necox-mfp-footer-padding: 12px;
    --necox-mfp-footer-border-color: rgba(0, 0, 0, 0.08);
    --necox-mfp-footer-border-width: 1px;
    --necox-mfp-apply-bg: var(--necox-primary, #2271b1);
    --necox-mfp-apply-color: #ffffff;
    --necox-mfp-apply-radius: 6px;
    --necox-mfp-apply-padding-y: 12px;
    --necox-mfp-reset-bg: transparent;
    --necox-mfp-reset-color: inherit;
    --necox-mfp-reset-border-color: rgba(0, 0, 0, 0.15);
    --necox-mfp-counter-font-size: 14px;
    --necox-mfp-counter-color: inherit;
}

/* Desktop ve tablet: drawer sistemi tamamen gizli */
.necox-mfp-fab,
.necox-mfp-overlay,
.necox-mfp-drawer {
    display: none;
}

/* Mobile (≤767px): drawer sistemi aktif */
@media (max-width: 767px) {

    /* ─── FAB Buton (sabit, sayfa altinda) ─── */
    .necox-mfp-fab {
        position: fixed;
        bottom: 16px;
        z-index: 998;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: var(--necox-mfp-fab-size);
        height: var(--necox-mfp-fab-size);
        padding: 0;
        background: var(--necox-mfp-fab-bg);
        color: var(--necox-mfp-fab-color);
        border: none;
        cursor: pointer;
        line-height: 1;
        font-family: var(--necox-mfp-fab-font-family);
        letter-spacing: var(--necox-mfp-fab-letter-spacing);
        transition: transform 0.15s ease, opacity 0.15s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
    }
    .necox-mfp-fab:active {
        transform: scale(0.94);
    }

    /* v6.4.0 — FAB Hover renkleri */
    .necox-mfp-fab:hover {
        background: var(--necox-mfp-fab-hover-bg);
        color: var(--necox-mfp-fab-hover-color);
        border-color: var(--necox-mfp-fab-hover-border);
    }

    /* v6.4.0 — FAB Kenarlik (toggle ile aktif olur) */
    .necox-mfp-fab--border {
        border-style: solid;
        border-width: var(--necox-mfp-fab-border-width);
        border-color: var(--necox-mfp-fab-border-color);
    }

    /* FAB pozisyon */
    .necox-mfp-fab--right { right: 16px; }
    .necox-mfp-fab--left  { left: 16px; }

    /* FAB sekil */
    .necox-mfp-fab--circle  { border-radius: 50%; }
    .necox-mfp-fab--square  { border-radius: 8px; }
    .necox-mfp-fab--capsule { border-radius: 9999px; padding: 0 18px; width: auto; min-height: var(--necox-mfp-fab-size); }

    /* FAB metinli mode (icon + text yan yana) */
    .necox-mfp-fab--with-text {
        width: auto;
        padding: 0 18px;
        border-radius: 9999px;
    }
    .necox-mfp-fab--with-text.necox-mfp-fab--square {
        border-radius: 8px;
    }

    /* FAB golge */
    .necox-mfp-fab--shadow {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    }

    .necox-mfp-fab__icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    /* v6.4.0 — FAB metni: tipografi variable'lari kullan */
    .necox-mfp-fab__text {
        font-size: var(--necox-mfp-fab-font-size);
        font-weight: var(--necox-mfp-fab-font-weight);
        white-space: nowrap;
    }

    /* ─── Overlay (drawer arkasi) ─── */
    .necox-mfp-overlay {
        position: fixed;
        inset: 0;
        z-index: 9998;
        background: var(--necox-mfp-overlay-color);
        opacity: 0;
        visibility: hidden;
        transition: opacity var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing), visibility var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing);
        display: block;
        /* v6.4.0 — Backdrop blur (admin'den ayarlanabilir, default blur(0)) */
        backdrop-filter: var(--necox-mfp-overlay-blur);
        -webkit-backdrop-filter: var(--necox-mfp-overlay-blur);
    }
    .necox-mfp-overlay.is-open {
        opacity: var(--necox-mfp-overlay-opacity);
        visibility: visible;
    }

    /* v6.5.0 — Overlay animasyonu drawer'dan ayri tetiklensin (mfp_overlay_anim_separate).
       Acilirken: overlay once goruner (delay yok), drawer ~50ms sonra slide eder.
       Kapanirken: drawer once kayar, overlay ~80ms sonra fade eder. Kademeli efekt. */
    body.necox-mfp-overlay-separate .necox-mfp-drawer {
        transition-delay: 50ms;  /* acilirken drawer biraz geri */
    }
    body.necox-mfp-overlay-separate .necox-mfp-overlay {
        transition-delay: 0ms;
    }
    /* Kapanirken (is-open YOK iken) tersine cevir: overlay geri, drawer once */
    body.necox-mfp-overlay-separate .necox-mfp-drawer:not(.is-open) {
        transition-delay: 0ms;
    }
    body.necox-mfp-overlay-separate .necox-mfp-overlay:not(.is-open) {
        transition-delay: 80ms;
    }

    /* ─── Drawer Panel (kabuk) ─── */
    .necox-mfp-drawer {
        position: fixed;
        z-index: 9999;
        background: var(--necox-mfp-panel-bg);
        border-color: var(--necox-mfp-panel-border-color);
        border-style: solid;
        border-width: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        display: flex;
        flex-direction: column;
        visibility: hidden;
        /* v6.4.0 — Default: solid BG (yukarida). Cam/gradient/resim uygulanirsa
           asagidaki state-class kurallari devralir. */
    }

    /* v6.4.0 — Drawer BG efekt onceligi: cam > resim > gradient > solid+alpha
       CSS K-43 patterni: state-class'lar sira ile soldan saga override eder.
       En genel solid BG en altta, en spesifik (cam) en ustte. */

    /* 1. Solid + alpha (cam KAPALI, resim/gradient yokken) */
    .necox-mfp-drawer {
        background-color: var(--necox-mfp-panel-bg);
    }

    /* 2. Gradient (cam KAPALI, resim YOK iken) — gradient solid BG'yi gizler */
    .necox-mfp-drawer {
        background-image: var(--necox-mfp-panel-gradient);
    }

    /* 3. Arka plan resmi (cam KAPALI iken) — gradient ustune binebilir
       (kullanici hem gradient hem resim acarsa: resim ustte sari ozellikleri ile) */
    .necox-mfp-drawer--has-bg-image {
        background-image: var(--necox-mfp-panel-bg-image), var(--necox-mfp-panel-gradient);
        background-size: var(--necox-mfp-panel-bg-size);
        background-repeat: var(--necox-mfp-panel-bg-repeat);
        background-position: var(--necox-mfp-panel-bg-position);
    }

    /* 4. Cam efekti (en yuksek oncelik — solid/gradient/resim'in ustune yarim
       saydam katman + backdrop-filter blur uygular) */
    .necox-mfp-drawer--glass {
        background-color: var(--necox-mfp-glass-bg);
        background-image: none;          /* gradient/resim cam aciksa gizlenir */
        backdrop-filter: var(--necox-mfp-glass-blur);
        -webkit-backdrop-filter: var(--necox-mfp-glass-blur);
    }

    /* v6.4.0 — Solid BG icin alpha uygulamak icin trick:
       Modern tarayicilarda color-mix kullanilabilir, ama eski tarayicilara
       fallback icin once display'in opacity yontemi kullaniyoruz: panel BG
       solid renkken --necox-mfp-panel-bg-alpha 0..1 arasi olabilir. Cam /
       gradient / resim acilirsa bu kural gormezden gelinir. */
    .necox-mfp-drawer:not(.necox-mfp-drawer--glass):not(.necox-mfp-drawer--has-bg-image) {
        background-color: color-mix(in srgb, var(--necox-mfp-panel-bg) calc(var(--necox-mfp-panel-bg-alpha) * 100%), transparent);
    }

    /* v6.4.0 — Drawer Golge (toggle ile aktif olur) */
    .necox-mfp-drawer--shadow {
        box-shadow: var(--necox-mfp-panel-shadow);
    }

    /* Yon: Soldan acilan drawer */
    .necox-mfp-drawer--left {
        top: 0;
        left: 0;
        bottom: 0;
        width: var(--necox-mfp-width);
        max-width: 100vw;
        border-right-width: var(--necox-mfp-panel-border-width);
        border-top-right-radius: var(--necox-mfp-panel-radius);
        border-bottom-right-radius: var(--necox-mfp-panel-radius);
    }

    /* Yon: Sagdan acilan drawer */
    .necox-mfp-drawer--right {
        top: 0;
        right: 0;
        bottom: 0;
        width: var(--necox-mfp-width);
        max-width: 100vw;
        border-left-width: var(--necox-mfp-panel-border-width);
        border-top-left-radius: var(--necox-mfp-panel-radius);
        border-bottom-left-radius: var(--necox-mfp-panel-radius);
    }

    /* Yon: Alttan acilan drawer (bottom sheet) */
    .necox-mfp-drawer--bottom {
        left: 0;
        right: 0;
        bottom: 0;
        height: var(--necox-mfp-height);
        max-height: 100vh;
        border-top-width: var(--necox-mfp-panel-border-width);
        border-top-left-radius: var(--necox-mfp-panel-radius);
        border-top-right-radius: var(--necox-mfp-panel-radius);
    }

    /* ─── Animasyon: Slide ─── */
    .necox-mfp-drawer--anim-slide {
        transition: transform var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing), visibility var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing);
    }
    .necox-mfp-drawer--anim-slide.necox-mfp-drawer--left   { transform: translateX(-100%); }
    .necox-mfp-drawer--anim-slide.necox-mfp-drawer--right  { transform: translateX(100%); }
    .necox-mfp-drawer--anim-slide.necox-mfp-drawer--bottom { transform: translateY(100%); }
    .necox-mfp-drawer--anim-slide.is-open {
        transform: translate(0, 0);
        visibility: visible;
    }

    /* ─── Animasyon: Fade ─── */
    .necox-mfp-drawer--anim-fade {
        opacity: 0;
        transition: opacity var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing), visibility var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing);
    }
    .necox-mfp-drawer--anim-fade.is-open {
        opacity: 1;
        visibility: visible;
    }

    /* ─── Drawer Header ─── */
    .necox-mfp-drawer__header {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: var(--necox-mfp-header-padding) var(--necox-mfp-panel-padding);
        background: var(--necox-mfp-header-bg);
        /* v6.4.0 — Border-bottom toggle ile aktif (default kapali) */
        border-bottom: 0 solid var(--necox-mfp-header-border-color);
    }
    /* v6.4.0 — Header alt sinir cizgisi (toggle aktifken 1px) */
    .necox-mfp-drawer__header--bordered {
        border-bottom-width: 1px;
    }
    .necox-mfp-drawer__title {
        margin: 0;
        font-family: var(--necox-mfp-header-font-family);
        font-size: var(--necox-mfp-header-font-size);
        font-weight: var(--necox-mfp-header-font-weight);
        color: var(--necox-mfp-header-title-color);
        line-height: 1.3;
    }
    .necox-mfp-drawer__close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        padding: 0;
        background: transparent;
        border: none;
        cursor: pointer;
        color: var(--necox-mfp-header-close-color);
        border-radius: 4px;
        transition: background 0.15s ease;
    }
    .necox-mfp-drawer__close:active {
        background: rgba(0, 0, 0, 0.06);
    }

    /* ─── Drawer Body (sidebar buraya tasinacak) ─── */
    .necox-mfp-drawer__body {
        flex: 1 1 auto;
        padding: var(--necox-mfp-body-padding);
        background: var(--necox-mfp-body-bg);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    /* Sidebar drawer ici icine tasindiginda fixed pozisyondan kurtar
       (filter.css mobile bloku eski full-screen davranisini kaldirdik) */
    .necox-mfp-drawer__body .necox-filter-sidebar {
        position: static;
        inset: auto;
        z-index: auto;
        border-radius: 0;
        transform: none;
        overflow-y: visible;
        max-height: none;
    }

    /* v6.4.0 — Drawer body icindeki form etiketleri (necox_filter_render_sidebar
       cikti pattern: <label class="necox-filter-group__label">). Drawer'in kendi
       tipografisi uygulanir. Sidebar'in kendi sr_filter_label_color'ini override
       eder cunku drawer ortami farkli (mobil kullanici beklentisi). */
    .necox-mfp-drawer__body .necox-filter-group__label {
        font-family: var(--necox-mfp-body-label-font-family);
        font-size: var(--necox-mfp-body-label-font-size);
        font-weight: var(--necox-mfp-body-label-font-weight);
        color: var(--necox-mfp-body-label-color);
    }

    /* ─── v6.5.0 — Drawer Footer (sticky alt bar) ─── */
    .necox-mfp-drawer__footer {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: var(--necox-mfp-footer-padding) var(--necox-mfp-panel-padding);
        background: var(--necox-mfp-footer-bg);
        /* Footer ust sinir cizgisi (toggle aktifken kalinlik gelir) */
        border-top: 0 solid var(--necox-mfp-footer-border-color);
        /* Sticky footer — drawer altina yapisik kalir */
        position: sticky;
        bottom: 0;
        z-index: 1;
    }
    .necox-mfp-drawer__footer--bordered {
        border-top-width: var(--necox-mfp-footer-border-width);
    }

    /* Footer aktifken body alt padding ekler (sticky footer iceriginin uzerine binmesin) */
    .necox-mfp-drawer--has-footer .necox-mfp-drawer__body {
        padding-bottom: calc(var(--necox-mfp-body-padding) + 16px);
    }

    /* Sayac */
    .necox-mfp-drawer__counter {
        display: inline-flex;
        align-items: baseline;
        gap: 4px;
        font-size: var(--necox-mfp-counter-font-size);
        color: var(--necox-mfp-counter-color);
        line-height: 1.2;
    }
    .necox-mfp-drawer__counter-num {
        font-weight: 700;
    }
    .necox-mfp-drawer__counter-label {
        opacity: 0.85;
    }

    /* Aksiyon butonlari konteyneri */
    .necox-mfp-drawer__actions {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex: 0 0 auto;
        margin-left: auto;
    }

    /* Buton tabani (Uygula + Sifirla ortak) */
    .necox-mfp-drawer__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: var(--necox-mfp-apply-padding-y) 18px;
        border-radius: var(--necox-mfp-apply-radius);
        border: 1px solid transparent;
        font-family: inherit;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.2;
        cursor: pointer;
        transition: background var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing),
                    color var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing),
                    border-color var(--necox-mfp-anim-duration) var(--necox-mfp-anim-easing),
                    transform 0.1s ease;
    }
    .necox-mfp-drawer__btn:active {
        transform: scale(0.97);
    }

    /* Uygula buton (primary) */
    .necox-mfp-drawer__btn--apply {
        background: var(--necox-mfp-apply-bg);
        color: var(--necox-mfp-apply-color);
    }

    /* Sifirla buton (secondary outline) */
    .necox-mfp-drawer__btn--reset {
        background: var(--necox-mfp-reset-bg);
        color: var(--necox-mfp-reset-color);
        border-color: var(--necox-mfp-reset-border-color);
    }

    /* Body scroll lock — drawer aktifken sayfa kaydirilmasin */
    body.necox-mfp-open {
        overflow: hidden;
    }
}
