/**
 * TheResortAtlas - Map Styles
 */

/* Map Container */
.map-container {
    width: 100%;
    height: 100%;
    background: var(--color-background);
}

/* Map stylization - slight desaturation and warmth */
.leaflet-container {
    filter: saturate(0.85) sepia(0.08) contrast(1.02);
    font-family: var(--font-body);
}

/* Remove default Leaflet popup styles */
.leaflet-popup-content-wrapper {
    padding: 0;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

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

.leaflet-popup-tip {
    display: none;
}

.leaflet-popup-close-button {
    display: none;
}

/* Custom Map Pin */
.resort-pin {
    width: 28px;
    height: 36px;
    position: relative;
    cursor: pointer;
    transition: transform var(--transition-normal), filter var(--transition-normal);
}

.resort-pin:hover {
    transform: scale(1.2) translateY(-2px);
    z-index: 1000 !important;
    filter: brightness(1.1);
}

.resort-pin svg {
    width: 100%;
    height: 100%;
}

/* Pin styling */
.pin-icon {
    display: block;
    width: 32px;
    height: 40px;
}

/* Leaflet controls styling */
.leaflet-control-zoom {
    border: none !important;
    box-shadow: var(--shadow-md) !important;
}

.leaflet-control-zoom a {
    background: var(--color-card) !important;
    color: var(--color-text-primary) !important;
    border: none !important;
    width: 36px !important;
    height: 36px !important;
    line-height: 36px !important;
    font-size: 18px !important;
}

.leaflet-control-zoom a:hover {
    background: var(--color-background) !important;
}

.leaflet-control-zoom-in {
    border-radius: var(--radius-sm) var(--radius-sm) 0 0 !important;
}

.leaflet-control-zoom-out {
    border-radius: 0 0 var(--radius-sm) var(--radius-sm) !important;
}

/* Attribution styling */
.leaflet-control-attribution {
    background: rgba(255, 255, 255, 0.8) !important;
    padding: 2px 8px !important;
    font-size: 11px !important;
}

.leaflet-control-attribution a {
    color: var(--color-secondary) !important;
}

/* Loading state for pins */
.pins-loading .resort-pin {
    opacity: 0.5;
    pointer-events: none;
}

/* Animation for pins appearing */
@keyframes pinAppear {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.resort-pin.animate-in {
    animation: pinAppear 250ms ease-out forwards;
}

/* Leaflet marker shadow override for custom pins */
.leaflet-marker-icon {
    background: none !important;
    border: none !important;
}

.leaflet-marker-shadow {
    display: none;
}
