/* --- Stile Generale Contenitore --- */
.msl-container {
    font-family: sans-serif; /* O il font specifico del tuo tema */
    color: #555; /* Colore testo base */
    line-height: 1.6;
    border-radius: 30px;
    background-color: #F2F2EE; /* Leggero sfondo se necessario, altrimenti transparent */
    max-width: 100%!important;
}

/* --- Layout a due colonne per la sezione filtri --- */
.msl-filter-section {
    display: flex;
    flex-wrap: wrap; /* Va a capo su schermi piccoli */
    gap: 40px; /* Spazio tra le colonne (aggiusta se necessario) */
    margin-bottom: 40px; /* Spazio sotto la sezione filtri */
    align-items: flex-start; /* Allinea gli elementi all'inizio (verticalmente) */
    padding: 40px 40px 0 40px;
}
.titolo{
    font-family: 'Roboto', sans-serif ;
    font-weight: 700;
    color: #333;
    padding: 40px 40px 0;
}
/* --- Colonna Descrizione (Sinistra) --- */
.msl-filter-description {
    flex: 1; /* Occupa lo spazio disponibile */
    min-width: 280px; /* Larghezza minima prima di andare a capo */
    /* Aggiungi padding o altro stile se necessario */
}
.msl-filter-description p {
    margin-top: 0; /* Rimuovi margine superiore del paragrafo se presente */
    font-size: 0.95rem;
    color: #666;
}


/* --- Colonna Filtri (Destra) --- */
.msl-filters {
    flex: 1; /* Occupa lo spazio disponibile */
    min-width: 280px; /* Larghezza minima prima di andare a capo */
    background-color: transparent; /* Nessuno sfondo */
    border: none;
    padding: 0;
    display: flex; /* Rendi i filtri stessi un contenitore flex */
    flex-direction: column; /* Elementi interni (input, select, button) in colonna */
}

/* Nascondi il titolo H2 generato dallo shortcode (usiamo quello della pagina) */
.msl-filters h2 {
    display: none;
}

/* --- Stile Campi Input e Select (Come prima, ma assicurati che ci siano) --- */
#msl-address-input,
#msl-radius-select {
    display: block;
    width: 100%;
    padding: 14px 45px 14px 20px; /* Aumentato padding destro per freccia */
    margin-bottom: 15px;
    border: 1px solid #eaeaea;
    border-radius: 30px;
    background-color: #ffffff;
    font-size: 0.9rem; /* Leggermente più piccolo? */
    color: #7F7F7F;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    position: relative; /* Per la freccia custom */
}

#msl-address-input::placeholder { color: #aaa; opacity: 1; }
#msl-address-input:-ms-input-placeholder { color: #aaa; }
#msl-address-input::-ms-input-placeholder { color: #aaa; }

/* Freccia Dropdown (Select) */
#msl-radius-select {
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23AAAAAA%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 20px center;
    background-size: 10px 10px;
    cursor: pointer;
}

/* Stile opzione placeholder */
#msl-radius-select option[disabled] {
    color: #aaa;
}

#msl-address-input:focus,
#msl-radius-select:focus {
    outline: none;
    border-color: #bbb;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* --- Stile Pulsante Cerca (Come prima) --- */
#msl-search-button {
    display: block;
    width: fit-content;
    padding: 15px 60px;
    background-color: #8f9a8a;
    color: #ffffff;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: bold;
    letter-spacing: 1px;
    text-align: center;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    margin-top: 10px;
}

#msl-search-button:hover {
    background-color: #7a8576;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

/* --- Messaggi Errore/Caricamento (Come prima) --- */
#msl-error-message { text-align: left; margin-top: 15px; color: #c00; }
#msl-loading { text-align: left; margin-top: 15px; color: #555; }

/* --- Titolo Mappa --- */
.msl-map-title h2 {
    font-size: 1.5rem; /* Aggiusta dimensione se necessario */
    margin-bottom: 15px;
    font-weight: bold;
    color: #333;
}


/* --- Contenitore Mappa (Come prima) --- */
#msl-map-container {
    border: none!important;
    border-radius: 15px;
    overflow: hidden;
    background-color: #f0f0f0;
    height: 500px; /* Mantieni altezza fissa o rendila dinamica */
    width: 100%;
}

/* --- Messaggi Errore/Caricamento --- */
#msl-error-message {
    text-align: center;
    margin-top: 15px;
    color: #c00; /* Rosso per errori */
}
#msl-loading {
    text-align: center;
    margin-top: 15px;
    color: #555;
}

/* --- Stile Lista Risultati (Opzionale) --- */
#msl-results-list {
    margin-top: 20px; /* O 0 se usi il titolo dinamico */
}

/* Stile base per la tabella */
.msl-results-table {
    width: 100%;                /* Occupa tutta la larghezza */
    border-collapse: collapse;   /* Unisce i bordi delle celle */
    border-spacing: 0;           /* Nessuno spazio tra le celle */
}

/* Stile per le celle della tabella (td) */
.msl-results-table td {
    padding: 20px 10px;             /* Spaziatura verticale e un po' orizzontale */
    border-top: 1px solid #000000; /* Linea separatrice sotto ogni cella */
    border-bottom: 1px solid #000000; /* Linea separatrice sotto ogni cella */
    vertical-align: middle;         /* Allinea verticalmente al centro */
    min-width: 300px;
}

/* Stile per la cella del titolo (Sinistra) */
.msl-result-title-cell {
    color: #8f9a8a; /* Colore verde/grigio */
    font-weight: bold;
    font-size: 1.1rem;
    text-align: left; /* Allinea a sinistra */
    /* Puoi dare una larghezza se vuoi, es: width: 40%; */
}

/* Stile per la cella dell'indirizzo (Destra) */
.msl-result-address-cell {
    color: #666;
    font-size: 0.9rem;
    text-align: right; /* Allinea a destra */
    /* Il resto della larghezza disponibile */
}

#msl-results-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
}
#msl-results-list li {
    border-bottom: 1px solid #000000;
    padding: 10px 0;
}
#msl-results-list li:last-child {
    border-bottom: 1px solid #000000;
}
#msl-results-list strong {
    display: block;
    margin-bottom: 3px;
}

.msl-results-title h2 {
    font-family: 'Roboto', sans-serif ;
    font-size: 1.3rem; /* Dimensione titolo */
    font-weight: bold;
    color: #333;
    margin-top: 0;
    margin-bottom: 10px; /* Spazio tra titolo e primo elemento lista */
}

/* Contenitore della lista */
#msl-results-list {
    margin-top: 20px; /* Ripristina margine se non usi il titolo dinamico */
}

/* Stile base per l'UL */
.msl-results-items {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Stile per ogni elemento LI della lista */
.msl-result-item {
    display: flex;                /* Abilita Flexbox */
    justify-content: space-between; /* Spinge titolo e indirizzo ai lati opposti */
    align-items: center;          /* Allinea verticalmente al centro */
    padding: 20px 0;             /* Spaziatura verticale interna */
    border-bottom: 1px solid #000000!important; /* Linea separatrice grigio chiaro */
}

/* Stile per il titolo del negozio (Sinistra) */
.msl-result-title {
    color: #8f9a8a; /* Colore verde/grigio */
    font-weight: bold;
    font-size: 1.1rem; /* Dimensione font titolo negozio */
    padding-right: 20px; /* Spazio tra titolo e indirizzo */
}

/* Stile per l'indirizzo (Destra) */
.msl-result-address {
    color: #666;        /* Colore grigio scuro per l'indirizzo */
    font-size: 0.9rem; /* Dimensione font indirizzo */
    text-align: right; /* Allinea a destra */
    flex-shrink: 0; /* Impedisce all'indirizzo di andare a capo troppo facilmente */
}
/* --- Stile Contenitore Mappa --- */
#msl-map-container {
    border: 1px solid #eaeaea; /* Bordo leggero come i campi */
    border-radius: 15px; /* Angoli arrotondati per il contenitore mappa */
    overflow: hidden; /* Assicura che la mappa non sbordi dagli angoli arrotondati */
    background-color: #f0f0f0; /* Colore placeholder prima del caricamento mappa */
}

/* === CSS PER I MARKER A FORMA DI GOCCIA (RICHIEDE MODIFICA JS - IconAnchor) === */
.msl-custom-marker {
    position: relative;
    /* Le dimensioni effettive sono definite dagli elementi interni + punta */
    /* La larghezza/altezza qui serve solo a Leaflet per i calcoli */
}

/* Parte superiore (quasi) tonda/ovale */
.msl-custom-marker span {
    display: block; /* Necessario per width/height/bordi */
    position: relative; /* Permette z-index */
    z-index: 1;         /* Sta sopra la punta */
    background-color: #8f9a8a; /* Colore di riempimento */
    color: #ffffff;            /* Colore del numero */
    width: 26px;               /* Più stretto */
    height: 28px;              /* Altezza parte "tonda" */
    line-height: 28px;         /* Centra il numero verticalmente */
    border-radius: 50% 50% 50% 50%; /* Arrotondamento completo */
    /* Per un effetto leggermente più ovale/alto potresti aumentare leggermente l'height
       e il line-height rispetto alla width, es: width: 26px; height: 28px; line-height: 28px; */

    /* Proprietà Testo */
    text-align: center;
    font-weight: bold;
    font-size: 13px;           /* Dimensione numero */

    /* Ombra sulla parte tonda */
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
    margin: 0 auto; /* Centra lo span nel contenitore (se il contenitore fosse più largo) */
}

/* Triangolo inferiore (la punta) */
.msl-custom-marker::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;

    /* Dimensioni Triangolo - più allungato e stretto */
    border-left: 11px solid transparent;   /* Base = 14px */
    border-right: 11px solid transparent;
    border-top: 14px solid #8f9a8a;  /* Altezza punta = 14px (più lunga) */

    /* Posizionamento */
    top: 22px;  /* Inizia un po' sotto la metà della parte tonda (28/2=14).
                   Aggiusta questo valore per far toccare la punta allo span.
                   Se top = 14px, inizia a metà. Valori > 14 lo spostano giù */
    left: 50%;  /* Centra orizzontalmente */
    transform: translateX(-50%); /* Centra la base del triangolo */
    z-index: 9999; /* Sta sotto lo span */
}

.custom-select-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.custom-select-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    padding: 1rem 3.5rem 1rem 1.5rem;
    border: none;
    border-radius: 2rem;
    background-color: #fff;
    font-size: 1rem;
    font-weight: 500;
    color: #6b6b6b;
    box-shadow: 0 0 0 1px #ccc;
}

.custom-select-wrapper::after {
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23808080' d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center center; /* centrata */
    background-size: 20px 30px; /* freccia più grande */
    background-color: #ffffff; /* sfondo blu personalizzato */
    border-radius: 25px;
    width: 75px; /* stessa altezza e larghezza = cerchio */
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 0;
    top: 12px;
    pointer-events: none;
}