/**
 * Necox Promotion Map — Frontend CSS
 *
 * @package Necox
 * @since   2.35.0
 */

/* ── Wrapper ── */
.necox-promotion-map-element {
    width: 100%;
}

/* ── Harita Canvas ── */
.necox-promotion-map__canvas {
    width: 100%;
    min-height: 200px;
    background: var(--necox-bg);
    border-width: var(--necox-map-border-width, 1px);
    border-style: solid;
    border-color: var(--necox-map-border-color, var(--necox-border));
    border-radius: var(--necox-map-border-radius, var(--necox-radius-lg));
    overflow: hidden;
    box-shadow: var(--necox-map-shadow, none);
    z-index: 1;
}

/* ── Leaflet Popup Override ── */
.necox-map-popup {
    display: flex;
    gap: 10px;
    min-width: 220px;
    max-width: 300px;
    font-family: var(--necox-map-popup-font, inherit);
    font-weight: var(--necox-map-popup-weight, inherit);
}

.necox-map-popup__img {
    width: 70px;
    height: 70px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
}

.necox-map-popup__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.necox-map-popup__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.necox-map-popup__title {
    font-weight: 600;
    font-size: 14px;
    color: var(--necox-map-popup-title, var(--necox-text));
    text-decoration: none;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.necox-map-popup__title:hover {
    color: var(--necox-primary, var(--necox-primary));
}

.necox-map-popup__price {
    font-weight: 700;
    font-size: 15px;
    color: var(--necox-map-popup-price, #059669);
}

/* ── Leaflet genel override ── */
.necox-promotion-map__canvas .leaflet-popup-content-wrapper {
    border-radius: 10px;
    box-shadow: var(--necox-map-popup-shadow, 0 4px 16px rgba(0,0,0,0.12));
    padding: 0;
    background: var(--necox-map-popup-bg, var(--necox-white));
    backdrop-filter: var(--necox-map-popup-glass-blur, none);
    -webkit-backdrop-filter: var(--necox-map-popup-glass-blur, none);
    transition: background 0.2s;
}

.necox-promotion-map__canvas .leaflet-popup-content-wrapper:hover {
    background: var(--necox-map-popup-hover-bg, var(--necox-map-popup-bg, #fff));
}

.necox-promotion-map__canvas .leaflet-popup-content {
    margin: 12px;
}

.necox-promotion-map__canvas .leaflet-popup-tip {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* ── Marker Cluster ── */
.necox-promotion-map__canvas .marker-cluster-small {
    background-color: rgba(0, 165, 145, 0.2);
}
.necox-promotion-map__canvas .marker-cluster-small div {
    background-color: rgba(0, 165, 145, 0.6);
    color: #ffffff;
}
.necox-promotion-map__canvas .marker-cluster-medium {
    background-color: rgba(0, 165, 145, 0.35);
}
.necox-promotion-map__canvas .marker-cluster-medium div {
    background-color: rgba(0, 165, 145, 0.75);
    color: #ffffff;
}
.necox-promotion-map__canvas .marker-cluster-large {
    background-color: rgba(0, 165, 145, 0.5);
}
.necox-promotion-map__canvas .marker-cluster-large div {
    background-color: rgba(0, 165, 145, 0.9);
    color: #ffffff;
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .necox-map-popup {
        flex-direction: column;
        min-width: 180px;
    }
    .necox-map-popup__img {
        width: 100%;
        height: 100px;
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* FIYAT ETIKETI MODU (Airbnb tarzi)         */
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Leaflet divIcon container */
.necox-map-price-marker {
    background: none !important;
    border: none !important;
}

.necox-map-price-label {
    display: inline-block;
    padding: 4px 10px;
    background: var(--necox-map-price-bg, var(--necox-text));
    color: var(--necox-map-price-text, var(--necox-white));
    font-family: var(--necox-map-price-font, inherit);
    font-size: var(--necox-map-price-font-size, 13px);
    font-weight: var(--necox-map-price-weight, 700);
    line-height: 1.3;
    border-radius: var(--necox-map-price-radius, 6px);
    white-space: nowrap;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    transition: all 0.2s ease;
    transform: translate(-50%, -100%);
    position: relative;
    cursor: pointer;
}

/* Ok isareti (asagiya bakan ucgen) */
.necox-map-price-label::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid var(--necox-map-price-bg, var(--necox-text));
}

.necox-map-price-label:hover {
    background: var(--necox-map-price-hover-bg, var(--necox-primary, #00a591));
    color: var(--necox-map-price-hover-text, var(--necox-white));
    transform: translate(-50%, -100%) scale(1.08);
    box-shadow: 0 4px 14px rgba(0,0,0,0.3);
}

.necox-map-price-label:hover::after {
    border-top-color: var(--necox-map-price-hover-bg, var(--necox-primary, #00a591));
}

/* Google Maps label override */
.necox-gm-price-label {
    display: inline-block !important;
    padding: 4px 10px !important;
    background: var(--necox-map-price-bg, var(--necox-text)) !important;
    color: var(--necox-map-price-text, var(--necox-white)) !important;
    font-family: var(--necox-map-price-font, inherit) !important;
    font-size: var(--necox-map-price-font-size, 13px) !important;
    font-weight: var(--necox-map-price-weight, 700) !important;
    border-radius: var(--necox-map-price-radius, 6px) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
    white-space: nowrap !important;
    transform: translateY(-10px);
}

/* Google Maps price marker overlay */
.necox-map-price-marker--gm {
    position: absolute;
    transform: translate(-50%, -100%);
}

.necox-map-price-marker--gm .necox-map-price-label {
    transform: none;
}

/* ── v2.48.0 — Popup Hover Shadow + Hover Glass + Price Border ── */

/* Popup hover shadow */
.leaflet-popup-content-wrapper:hover {
    box-shadow: var(--necox-map-popup-hover-shadow, var(--necox-map-popup-shadow, 0 4px 16px rgba(0,0,0,0.12)));
}

/* Popup hover glass */
.leaflet-popup-content-wrapper:hover {
    backdrop-filter: var(--necox-map-popup-glass-hover-blur, var(--necox-map-popup-glass-blur, none));
    -webkit-backdrop-filter: var(--necox-map-popup-glass-hover-blur, var(--necox-map-popup-glass-blur, none));
}

/* Price tag border */
.necox-map-price {
    border-width: var(--necox-map-price-border-width, 0);
    border-style: solid;
    border-color: var(--necox-map-price-border-color, transparent);
}
