.elementor-1005 .elementor-element.elementor-element-15a5094{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1005 .elementor-element.elementor-element-17d65b6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 20px;--row-gap:0px;--column-gap:20px;}.elementor-1005 .elementor-element.elementor-element-b5205cf{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--border-radius:15px 15px 15px 15px;}.elementor-1005 .elementor-element.elementor-element-b5205cf:not(.elementor-motion-effects-element-type-background), .elementor-1005 .elementor-element.elementor-element-b5205cf > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-ae79d28 );}.elementor-1005 .elementor-element.elementor-element-b061cce{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-1005 .elementor-element.elementor-element-33baba6{--grid-columns:3;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-1005 .elementor-element.elementor-element-b5205cf{--width:25%;}.elementor-1005 .elementor-element.elementor-element-b061cce{--width:80%;}}@media(max-width:1024px){.elementor-1005 .elementor-element.elementor-element-33baba6{--grid-columns:2;}}@media(max-width:767px){.elementor-1005 .elementor-element.elementor-element-33baba6{--grid-columns:1;}}/* Start custom CSS for shortcode, class: .elementor-element-af39cd7 *//* --- 1. CONTENITORE PRINCIPALE --- */
.main-search-wrapper {
    background: #fff;
    padding: 10px 10px;
    border-radius: 60px; /* Effetto pillola */
    box-shadow: 0 10px 10px rgba(0,0,0,0.05); /* Ombra morbida */
    font-family: 'Poppins', sans-serif !important;
    width: 100%;
    margin: 30px auto;
    border: 1px solid #f0f0f0;
}

/* --- 2. FORM LAYOUT --- */
.geo-search-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* --- 3. BLOCCHI DI INPUT --- */
.input-box {
    flex: 1;
    padding: 5px 25px;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* NUOVE PROPORZIONI: 30% + 50% + 8% + 12% bottoni = 100% */
.flex-cosa-cerchi {
    flex: 0 0 30% !important;
    padding: 5px 20px !important;
}

.flex-dove {
    flex: 0 0 50% !important;
    padding: 5px 20px !important;
}

.flex-raggio {
    flex: 0 0 8% !important;
    padding: 5px 10px !important;
}

.flex-raggio select {
    font-size: 12px !important;
    padding: 5px 2px 5px 0 !important;
    text-align: center;
}

/* Linea di separazione tra i blocchi */
.border-right {
    border-right: 1px solid #eee;
}

.input-box label {
    font-size: 11px;
    font-weight: 700;
    color: #000;
    text-transform: uppercase;
    margin-bottom: 2px;
    letter-spacing: 0.5px;
}

.input-box input, 
.input-box select {
    border: none !important;
    outline: none !important;
    font-size: 14px;
    color: #555;
    padding: 5px 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    width: 100%;
}

.input-box input::placeholder {
    color: #aaa;
}

/* --- 4. AUTOCOMPLETE & LOCALIZZAZIONE --- */
.autocomplete-container {
    display: flex;
    align-items: center;
    width: 100%;
}

.locate-me{
  width:44px;
  height:44px;
  border:none !important;
  border-radius:999px;
  background:#ffffff !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
  box-shadow:0 6px 18px rgba(0,0,0,.10);
  transition:all .18s ease;
  appearance:none;
  -webkit-appearance:none;
}

.locate-me:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(0,0,0,.14);
}

.locate-me:focus,
.locate-me:active{
  outline:none !important;
}

.locate-me-icon{
  width:22px;
  height:22px;
  display:block;
}

.locate-me-icon path{
  fill:#1a73e8;
  transition:fill .18s ease;
}

.locate-me-dot{
  fill:#ffffff;
  transition:fill .18s ease;
}

/* stato attivo vero */
.locate-me.is-active,
.locate-me[aria-pressed="true"]{
  background:#1a73e8 !important;
  box-shadow:0 8px 20px rgba(26,115,232,.28);
}

.locate-me.is-active .locate-me-icon path,
.locate-me[aria-pressed="true"] .locate-me-icon path{
  fill:#ffffff;
}

.locate-me.is-active .locate-me-dot,
.locate-me[aria-pressed="true"] .locate-me-dot{
  fill:#dbeafe;
}

/* --- 5. PULSANTI CERCA E RESET --- */
.search-actions {
    flex: 0 0 12% !important; /* Spazio dedicato ai bottoni */
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    padding: 5px 8px;
}

.btn-reset {
    background: transparent;
    border: 1px solid #ddd;
    color: #999;
    padding: 0;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

.btn-reset span:last-child {
    display: none; /* Nascondi la scritta "Resetta", mostra solo la X */
}

.btn-reset:hover {
    background: #ff4444;
    border-color: #ff4444;
    color: white;
    transform: rotate(90deg);
}

.submit-search {
    background: #0b235b;
    color: #fff !important;
    border: none;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    white-space: nowrap;
}

.submit-search:hover {
    background: #000;
    box-shadow: 0 5px 15px rgba(11, 35, 91, 0.3);
    transform: translateY(-1px);
}

/* --- 6. ADATTAMENTO MOBILE --- */
@media (max-width: 991px) {
    .main-search-wrapper {
        border-radius: 25px;
        padding: 20px;
    }
    
    .geo-search-form {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .input-box,
    .flex-cosa-cerchi,
    .flex-dove,
    .flex-raggio {
        width: 100% !important;
        flex: 0 0 100% !important;
        border-right: none;
        border-bottom: 1px solid #eee;
        padding: 15px 0 !important;
    }
    
    .search-actions {
        width: 100%;
        flex: 0 0 100% !important;
        justify-content: space-between;
        margin-top: 20px;
    }
    
    .btn-reset {
        flex: 0 0 auto;
    }
    
    .submit-search {
        flex: 1;
        margin-left: 10px;
        padding: 15px;
    }
}

/* --- 7. GOOGLE AUTOCOMPLETE STYLING --- */
/* Forza il colore del testo e la visibilità dei suggerimenti di Google */
.pac-container {
    background-color: #fff !important;
    z-index: 99999 !important; /* Più alto di tutto */
    border-radius: 8px;
    border-top: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.pac-item {
    padding: 10px;
    cursor: pointer;
    font-family: 'Poppins', sans-serif !important;
    color: #333 !important; /* Testo visibile */
    line-height: 20px;
}

.pac-item:hover {
    background-color: #f8f9fa;
}

.pac-item-query {
    font-size: 14px !important;
    color: #000 !important; /* Nome via visibile */
}

/* Nasconde la scritta "Powered by Google" se vuoi pulizia estrema (opzionale) */
.pac-logo:after {
    display: none !important;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-e3c5209 *//* =========================
   FILTRI STRUTTURE / ASSISTENTI
   ========================= */

/* --- 1. WRAPPER --- */
.wrapper-filtri-strutture{
  font-family: 'Poppins', sans-serif !important;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 20px 0;
}

.wrapper-filtri-strutture *,
.wrapper-filtri-strutture *::before,
.wrapper-filtri-strutture *::after{
  box-sizing: border-box;
}

/* --- 2. AZIONI --- */
.filtri-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.apply-filtri{
  background: #0b235b !important;
  color: #fff !important;
  border: none;
  border-radius: 999px;
  padding: 12px 18px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  font-family: 'Poppins', sans-serif !important;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.apply-filtri:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
}

.reset-totale{
  background: #fff !important;
  border: 1px solid rgba(11,35,91,.18);
  border-radius: 999px;
  padding: 12px 18px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  font-family: 'Poppins', sans-serif !important;
}

.reset-totale a,
.reset-totale a:visited{
  color: #0b235b !important;
  text-decoration: none !important;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
}

/* --- 3. GRUPPO --- */
.gruppo-filtro{
  padding: 12px 10px;
  border-radius: 16px;
  border: 1px solid rgba(11,35,91,.14);
}

.gruppo-filtro h5{
  margin: 0 0 12px 0 !important;
  font-size: 18px;
  font-weight: 500;
  color: #000;
  text-transform: none;
}

/* --- 4. LISTA: VERTICALE --- */
.lista-link{
  width: 100%;
  min-width: 0;
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
}

/* --- 5. ITEM FILTRO --- */
.filtro-item,
.filtro-item:visited{
  position: relative;
  width: 100% !important;
  min-width: 0;
  padding: 10px 12px;

  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: start !important;
  justify-content: stretch !important;
  column-gap: 10px !important;

  background: #fff;
  border: 1px solid rgba(11,35,91,.18);
  border-radius: 14px;

  text-decoration: none !important;
  font-size: 14px;
  font-weight: 400;
  color: #0b2a4a !important;
  text-align: left !important;
  line-height: 1.25;

  white-space: normal !important;
  overflow: visible !important;
  text-overflow: initial !important;
  word-break: break-word;

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

/* Quadratino */
.filtro-item::before{
  content: "";
  grid-column: 1;
  grid-row: 1;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 2px solid rgba(11,35,91,.35);
  background: #fff;
  margin-top: 1px;
}

/* Spunta */
.filtro-item::after{
  content: "";
  position: absolute;
  left: 17px;
  top: 17px;
  width: 8px;
  height: 4px;
  border-left: 2px solid transparent;
  border-bottom: 2px solid transparent;
  transform: rotate(-45deg);
  transform-origin: center;
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events: none;
}

/* Hover / focus */
.filtro-item:hover,
.filtro-item:focus{
  background: #f5f7ff !important;
  border-color: rgba(11,35,91,.32);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
  transform: translateY(-1px);
  outline: none;
}

/* Attivo */
.filtro-item.is-active,
.filtro-item.is-active:visited{
  background: rgba(11,35,91,.06) !important;
  border-color: rgba(11,35,91,.55);
  color: #0b235b !important;
  font-weight: 600;
}

.filtro-item.is-active::before{
  background: #0b235b;
  border-color: #0b235b;
}

.filtro-item.is-active::after{
  opacity: 1;
  border-left-color: #fff;
  border-bottom-color: #fff;
}

/* --- 6. MOSTRA ALTRI --- */
.toggle-mostra{
  width: 100% !important;
  background: transparent !important;
  border: 1px dashed rgba(11,35,91,.35) !important;
  color: #0b235b !important;
  border-radius: 14px;
  padding: 10px 12px;
  font-weight:500;
  cursor: pointer;
  text-transform: none;
  box-shadow: none !important;
  transform: none !important;
}

.toggle-mostra::before,
.toggle-mostra::after{
  display: none !important;
}

/* --- 7. VISIBILITÀ --- */
.filtro-item.is-hidden{
  display: none !important;
}

.lista-link.is-expanded .filtro-item.is-hidden{
  display: grid !important;
  animation: fadeIn .25s ease forwards;
}

@keyframes fadeIn{
  from{
    opacity: 0;
    transform: translateY(4px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}/* End custom CSS */