/* --- Structure du Conteneur --- */
#wrapper-situation { 
    width: 100%; height: 80vh; min-height: 450px; 
    position: relative; background: #f0f0f0; 
    border-radius: 12px; overflow: hidden; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
#map-situation { width: 100%; height: 100%; z-index: 1; }

/* --- Contrôles (PC) --- */
.map-controls-right { position: absolute; top: 20px; right: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; }
.map-controls-left { position: absolute; top: 20px; left: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 12px; }

.ctrl-btn { 
    padding: 12px 18px; background: rgba(26, 42, 64, 0.85); color: white !important; 
    border-radius: 8px; cursor: pointer; border: 1px solid rgba(255,255,255,0.15);
    font-weight: 600; font-size: 13px; text-transform: uppercase;
    transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    backdrop-filter: blur(5px);
}

.ctrl-btn:hover { background: rgba(26, 42, 64, 1); transform: translateY(-2px); }
.ctrl-btn.active { background: #8ca927; border-color: #a7c439; }

/* --- Popups Fix Structure Verticale --- */
.popup-premium {
    font-family: Arial, sans-serif; background: white; border-radius: 10px;
    padding: 15px; width: 220px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    text-align: center; /* Centre tout le contenu */
}

.popup-main-img {
    width: 100% !important; height: auto !important; border-radius: 8px;
    margin: 0 0 12px 0 !important; display: block !important;
}

/* LE BLOC ICONE 48PX */
.popup-icon-container {
    display: flex; justify-content: center; margin-bottom: 10px;
}

.popup-icon-xl {
    width: 48px !important; 
    height: 48px !important; 
    min-width: 48px !important;
    max-width: 48px !important;
    display: block !important;
    object-fit: contain;
}

.popup-title-stacked {
    font-size: 16px; font-weight: bold; color: #1a2a40;
    margin-bottom: 8px; display: block;
}

.popup-text-content { font-size: 13px; color: #444; line-height: 1.4; }

.popup-btn { 
    display: inline-block; padding: 8px 14px; background: #1a2a40; 
    color: white !important; border-radius: 6px; text-decoration: none !important; 
    margin-top: 10px; font-size: 13px; 
}
.popup-btn:hover { background: #8ca927; }

.leaflet-routing-container { display: none !important; }

/* Adaptation Mobile */
@media (max-width: 768px) {
    #wrapper-situation { height: 65vh; }
    .map-controls-left, .map-controls-right {
        top: auto !important; bottom: 15px !important;
        flex-direction: row !important; flex-wrap: wrap;
        justify-content: center; left: 0 !important; right: 0 !important;
        width: 100%; padding: 0 10px; gap: 8px;
    }
    .map-controls-left { bottom: 65px !important; }
    .ctrl-btn { padding: 8px 12px; font-size: 11px; }
}