/* === INIZIO: Logo header (applicato a #logo-container e #logo-container img) === */
#logo-container {
  position: absolute;
  top: -44px;
  left: 0;
  width: 170px;
  height: 170px;
  z-index: 20000;
  box-sizing: border-box;
  background-color: #ffffff;
  padding: 4px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

#logo-container img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
/* === FINE: Logo header (applicato a #logo-container e #logo-container img) === */

/* === INIZIO: Bottone telefono header (applicato a .btn-header-phone + stati hover/focus) === */
.btn-header-phone {
  color: #1e1d85 !important;
  border-color: #1e1d85 !important;
  background-color: transparent !important;
  transition: all 0.3s ease;
}

.btn-header-phone:hover {
  color: #fff !important;
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  box-shadow: none !important;
}

.btn-header-phone:focus {
  color: #fff !important;
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(50, 207, 219, 0.5) !important;
}

@supports (background-color: color-mix(in srgb, #000 0%, #fff 100%)) {
  .btn-header-phone:hover {
    background-color: color-mix(in srgb, var(--primary) 85%, #000) !important;
    border-color: color-mix(in srgb, var(--primary) 80%, #000) !important;
  }

  .btn-header-phone:focus {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--primary) 50%, transparent) !important;
  }
}
/* === FINE: Bottone telefono header (applicato a .btn-header-phone + stati hover/focus) === */

/* === INIZIO: Toggle menu (applicato a .main-header .main-menu #navbar-toggle-immobili.nav-link::before) === */
.main-header .main-menu #navbar-toggle-immobili.nav-link::before {
  display: none !important;
}
/* === FINE: Toggle menu (applicato a .main-header .main-menu #navbar-toggle-immobili.nav-link::before) === */



/* === INIZIO: Header/navbar overflow (applicato a .main-header .sticky-area e .main-header .navbar) === */
.main-header .sticky-area,
.main-header .navbar {
  overflow: visible;
}
/* === FINE: Header/navbar overflow (applicato a .main-header .sticky-area e .main-header .navbar) === */

/* === INIZIO: Spazio brand/navbar (applicato a .main-header .navbar-brand) === */
.main-header .navbar-brand {
  position: relative;
  min-width: 170px;
  padding-top: 0;
  padding-bottom: 0;
}
/* === FINE: Spazio brand/navbar (applicato a .main-header .navbar-brand) === */

/* === INIZIO: Dropdown mobile (applicato sotto 991.98px a .main-header .navbar-nav .dropdown-menu) === */
@media (max-width: 991.98px) {
  .main-header .navbar-nav .dropdown-menu {
    position: static;
    float: none;
  }
}
/* === FINE: Dropdown mobile (applicato sotto 991.98px a .main-header .navbar-nav .dropdown-menu) === */

/* === INIZIO: Banner home (applicato a .home-main-banner) === */
.home-main-banner {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  min-height: var(--home-banner-height, 544px);
  height: var(--home-banner-height, 544px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-main-banner .imm-home-banner-title {
  font-size: 28px;
  line-height: 1.25;
}

.home-main-banner .imm-home-banner-title-wrap {
  transform: translate3d(0, -24px, 0);
}

.badge.badge-vendita {
  background-color: #4fc3f7 !important;
  color: #fff !important;
}

.badge.badge-affitto {
  background-color: #ff9f43 !important;
  color: #fff !important;
}

@media (max-width: 767.98px) {
  .home-main-banner {
    min-height: 200px;
    height: 200px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background-position: center center !important;
  }

  .home-main-banner .imm-home-banner-title {
    font-size: 20px !important;
    line-height: 1.3 !important;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.9);
  }

  .home-main-banner .imm-home-banner-title-wrap {
    transform: translate3d(0, -14px, 0);
  }
}
/* === FINE: Banner home (applicato a .home-main-banner) === */

/* === INIZIO: Menu ricerca immobili - Desktop/Mobile (applicato a .imm-search-menu e discendenti) === */
.imm-search-menu {
  padding-top: 0;
  padding-bottom: 0;
}

.imm-search-menu .imm-search-legend,
.imm-search-menu .imm-search-label {
  color: #1e1d85;
  font-size: 13px;
  line-height: 1.2;
}

.imm-search-menu .imm-search-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.imm-search-menu .imm-search-legend {
  padding: 0;
  margin: 0 0 0.25rem 0;
}

.imm-search-menu input.form-control,
.imm-search-menu .bootstrap-select > .dropdown-toggle,
.imm-search-menu select.form-control {
  border: 1px solid #1e1d85 !important;
  height: 50px !important;
  padding: 12px 15px !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  border-radius: 4px !important;
  color: #495057 !important;
  outline: none !important;
  box-shadow: none !important;
  transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.imm-search-menu .bootstrap-select > .dropdown-toggle {
  display: flex !important;
  align-items: center !important;
  padding: 0 15px !important;
}

.imm-search-menu .bootstrap-select .filter-option {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
}

.imm-search-menu .bootstrap-select .filter-option-inner-inner {
  display: flex !important;
  align-items: center !important;
  padding-top: 2px;
}

.imm-sort-menu input.form-control,
.imm-sort-menu .bootstrap-select > .dropdown-toggle,
.imm-sort-menu select.form-control {
  height: 40px !important;
  padding: 10px 12px !important;
  font-size: 14px !important;
}

.imm-sort-menu .bootstrap-select > .dropdown-toggle {
  padding: 0 12px !important;
}

.imm-sort-menu .bootstrap-select {
  width: auto !important;
  max-width: 100% !important;
}

@media (max-width: 575.98px) {
  .imm-sort-menu .bootstrap-select {
    width: 100% !important;
  }
}

.imm-search-menu input.form-control:hover,
.imm-search-menu input.form-control:focus,
.imm-search-menu .bootstrap-select > .dropdown-toggle:hover,
.imm-search-menu .bootstrap-select > .dropdown-toggle:focus,
.imm-search-menu .bootstrap-select.show > .dropdown-toggle,
.imm-search-menu input.form-control:active,
.imm-search-menu .bootstrap-select > .dropdown-toggle:active {
  background-color: #e6f7ff !important;
}
/* === FINE: Menu ricerca immobili - Desktop/Mobile (applicato a .imm-search-menu e discendenti) === */

/* === INIZIO: Select custom (applicato a .imm-search-menu .selectpicker e dropdown bootstrap-select) === */
.imm-search-menu .bootstrap-select {
  width: 100% !important;
}

.imm-search-menu .bootstrap-select .dropdown-menu li a span.text {
  font-size: 15px !important;
  font-weight: 400 !important;
}

.bootstrap-select .dropdown-menu li.dropdown-header[class*="optgroup-"] > span.text,
.bs-container .dropdown-menu li.dropdown-header[class*="optgroup-"] > span.text,
select optgroup {
  font-weight: 700 !important;
  color: #000000 !important;
}

.imm-search-menu .form-control.has-value,
.imm-search-menu .bootstrap-select.has-value > .dropdown-toggle {
  background-color: #e6f7ff !important;
  border-color: #1e1d85 !important;
  box-shadow: 0 0 0 1px rgba(30, 29, 133, 0.2) !important;
}

.imm-search-menu select.selectpicker:not(.bs-select-hidden),
select.selectpicker.sortby:not(.bs-select-hidden) {
  display: block !important;
}
/* === FINE: Select custom (applicato a .imm-search-menu .selectpicker e dropdown bootstrap-select) === */

/* === INIZIO: Contratto radio (applicato a .imm-search-menu .checkbox-group + .custom-control custom-radio) === */
.imm-search-menu .checkbox-group {
  display: flex !important;
  justify-content: space-around !important;
  align-items: center !important;
  height: 50px !important;
  width: 100%;
}

.imm-search-menu .checkbox-group .custom-control {
  margin: 0 !important;
  padding-left: 0 !important;
  flex: 1;
  display: flex;
  justify-content: center;
}

.imm-search-menu .checkbox-group .custom-control-label {
  padding-left: 2.2rem !important;
  padding-right: 0 !important;
  font-size: 16px !important;
  line-height: 24px !important;
  padding-top: 0 !important;
  color: var(--secondary);
  text-align: left;
  width: auto;
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}

.imm-search-menu .checkbox-group .custom-control-label::before {
  border: 1px solid var(--secondary) !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  background-color: transparent;
  top: 50% !important;
  transform: translateY(-50%) !important;
  left: 0 !important;
  padding: 2px;
  background-clip: content-box;
}

.imm-search-menu .checkbox-group .custom-control-label::after {
  display: none !important;
  content: none !important;
}

.imm-search-menu .checkbox-group .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
}
/* === FINE: Contratto radio (applicato a .imm-search-menu .checkbox-group + .custom-control custom-radio) === */

/* === INIZIO: Bottoni (applicato a .btn-filter-custom e .btn-search-custom) === */
.btn-filter-custom {
  height: 50px;
  border: 1px solid var(--secondary) !important;
  color: var(--secondary) !important;
  background-color: transparent !important;
  font-size: 14px;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn-filter-custom:hover,
.btn-filter-custom:focus {
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: #ffffff !important;
}

.btn-search-custom {
  height: 50px;
  border: 1px solid var(--primary) !important;
  color: var(--primary) !important;
  background-color: transparent !important;
  font-size: 14px;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn-search-custom:hover,
.btn-search-custom:focus {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #ffffff !important;
}
/* === FINE: Bottoni (applicato a .btn-filter-custom e .btn-search-custom) === */

/* === INIZIO: Animazioni (applicato a .imm-search-advanced-inner dentro .collapse/.collapsing) === */
.imm-search-menu .imm-search-advanced-inner {
  will-change: transform, opacity;
}

.imm-search-menu .collapse .imm-search-advanced-inner {
  opacity: 0;
  transform: translate3d(0, -4px, 0);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.imm-search-menu .collapse.show .imm-search-advanced-inner,
.imm-search-menu .collapsing .imm-search-advanced-inner {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
/* === FINE: Animazioni (applicato a .imm-search-advanced-inner dentro .collapse/.collapsing) === */

.active-menu-item {
  text-decoration: none;
}

.main-header .main-menu .nav-link.active-menu-item::before {
  width: 100%;
  background-color: var(--primary);
}

/* === INIZIO: Pagina contatti - offset card e spazi form (applicato a .contatti-card-offset e #contatti-form) === */
@media (max-width: 767.98px) {
  .contatti-card-offset {
    margin-top: 0 !important;
  }
}

#contatti-form .form-group {
  margin-bottom: 0.75rem;
}

#contatti-form label {
  margin-bottom: 0.35rem;
}

#contatti-form .invalid-feedback {
  margin-top: 0.15rem;
}

#contatti-form .form-control.is-invalid,
#contatti-form textarea.form-control.is-invalid,
#contatti-form select.form-control.is-invalid,
#contatti-form .custom-select.is-invalid {
  border: 1px solid #dc3545 !important;
}

#contatti-form .form-control.is-invalid:focus,
#contatti-form textarea.form-control.is-invalid:focus,
#contatti-form select.form-control.is-invalid:focus,
#contatti-form .custom-select.is-invalid:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.2) !important;
}
/* === FINE: Pagina contatti - offset card e spazi form (applicato a .contatti-card-offset e #contatti-form) === */

/* === INIZIO: Dettaglio immobile - helper mobile (applicato a #mobile-hidden, .mobile-hidden, .mobile1, .mobile-nav-spacing) === */
@media (max-width: 767.98px) {
  #mobile-hidden,
  .mobile-hidden {
    display: none !important;
  }

  .mobile1 {
    padding-top: 1px !important;
  }

  .mobile-nav-spacing {
    margin-top: 90px !important;
  }
}
/* === FINE: Dettaglio immobile - helper mobile (applicato a #mobile-hidden, .mobile-hidden, .mobile1, .mobile-nav-spacing) === */

/* === INIZIO: Dettaglio immobile - overlay stato (applicato a .overlay-status dentro la galleria immagini) === */
.overlay-status {
  position: absolute;
  top: var(--ts-stato-top, 50%);
  right: var(--ts-stato-right, auto);
  bottom: var(--ts-stato-bottom, auto);
  left: var(--ts-stato-left, 50%);
  transform: var(--ts-stato-transform, translate(-50%, -50%) rotate(-30deg));
  color: var(--ts-stato-color, #dc3545);
  font-size: var(--ts-stato-font-size, clamp(28px, 5vw, 72px));
  font-weight: var(--ts-stato-font-weight, 900);
  font-family: var(--ts-stato-font-family, inherit);
  font-style: var(--ts-stato-font-style, normal);
  text-transform: var(--ts-stato-text-transform, uppercase);
  z-index: 10;
  pointer-events: none;
  -webkit-text-stroke: var(--ts-stato-stroke-width, 0px) var(--ts-stato-stroke-color, #fff);
  text-shadow: var(--ts-stato-text-shadow, 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff);
  white-space: nowrap;
  padding: 5px 15px;
  border-radius: 5px;
}

.home-immobile-card .overlay-status {
  top: 50%;
  right: auto;
  bottom: auto;
  left: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center;
  font-size: clamp(22px, 2.6vw, 44px);
  padding: 4px 10px;
}
/* === FINE: Dettaglio immobile - overlay stato (applicato a .overlay-status dentro la galleria immagini) === */

/* === INIZIO: Dettaglio immobile - overlay stato (applicato a .ts-stato-overlay su tile/card/ancore con immagini) === */
.ts-stato-overlay {
  position: relative;
}

.ts-stato-overlay::after {
  content: var(--ts-stato-text, '');
  position: absolute;
  top: var(--ts-stato-top, 50%);
  right: var(--ts-stato-right, auto);
  bottom: var(--ts-stato-bottom, auto);
  left: var(--ts-stato-left, 50%);
  transform: var(--ts-stato-transform, translate(-50%, -50%) rotate(-30deg));
  transform-origin: top right;
  color: var(--ts-stato-color, #dc3545);
  font-size: var(--ts-stato-font-size, clamp(28px, 5vw, 72px));
  font-weight: var(--ts-stato-font-weight, 900);
  font-family: var(--ts-stato-font-family, inherit);
  font-style: var(--ts-stato-font-style, normal);
  text-transform: var(--ts-stato-text-transform, uppercase);
  z-index: 10;
  pointer-events: none;
  -webkit-text-stroke: var(--ts-stato-stroke-width, 0px) var(--ts-stato-stroke-color, #fff);
  text-shadow: var(--ts-stato-text-shadow, 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff);
  white-space: nowrap;
  padding: 5px 15px;
  border-radius: 5px;
}

.ts-stato-overlay--venduto::after,
.ts-stato-overlay--compact::after {
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  transform-origin: center !important;
  font-size: clamp(20px, 2.4vw, 34px) !important;
  padding: 4px 10px !important;
}
/* === FINE: Dettaglio immobile - overlay stato (applicato a .ts-stato-overlay su tile/card/ancore con immagini) === */

/* === INIZIO: Dettaglio immobile - overlay stato ModuloBox (applicato a .mobx-item::after dentro la lightbox) === */
.mobx-item::after {
  content: var(--ts-stato-text, var(--ts-mobx-overlay-text, ''));
  position: absolute;
  top: var(--ts-stato-top, 50%);
  right: var(--ts-stato-right, auto);
  bottom: var(--ts-stato-bottom, auto);
  left: var(--ts-stato-left, 50%);
  transform: var(--ts-stato-transform, translate(-50%, -50%) rotate(-30deg));
  transform-origin: top right;
  color: var(--ts-stato-color, #dc3545);
  font-size: var(--ts-stato-font-size, 5vw);
  font-weight: var(--ts-stato-font-weight, 900);
  font-family: var(--ts-stato-font-family, inherit);
  font-style: var(--ts-stato-font-style, normal);
  text-transform: var(--ts-stato-text-transform, uppercase);
  z-index: 999999;
  pointer-events: none;
  -webkit-text-stroke: var(--ts-stato-stroke-width, 0px) var(--ts-stato-stroke-color, #fff);
  text-shadow: var(--ts-stato-text-shadow, 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff);
  white-space: nowrap;
  padding: 5px 15px;
  border-radius: 5px;
}
/* === FINE: Dettaglio immobile - overlay stato ModuloBox (applicato a .mobx-item::after dentro la lightbox) === */

/* === INIZIO: Dettaglio immobile - galleria griglia (applicato a .ts-gallery-grid e .ts-gallery-tile) === */
.ts-gallery-grid {
  display: grid;
  gap: 6px;
  height: 540px;
}

.ts-gallery-grid--1 {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  height: 640px;
}

.ts-gallery-grid--2 {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
}

.ts-gallery-grid--3 {
  grid-template-columns: 60% 40%;
  grid-template-rows: 1fr 1fr;
}

.ts-gallery-grid--4 {
  grid-template-columns: 40% 60%;
  grid-template-rows: 1fr 1fr;
}

.ts-gallery-grid--5,
.ts-gallery-grid--6plus {
  grid-template-columns: 60% 40%;
  grid-template-rows: 1fr 1fr;
}

.ts-gallery-tile {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.ts-gallery-tile__link {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}

.ts-gallery-grid--3 .ts-gallery-tile--main {
  grid-column: 1;
  grid-row: 1 / span 2;
}

.ts-gallery-grid--3 .ts-gallery-tile--right-1 {
  grid-column: 2;
  grid-row: 1;
}

.ts-gallery-grid--3 .ts-gallery-tile--right-2 {
  grid-column: 2;
  grid-row: 2;
}

.ts-gallery-grid--4 .ts-gallery-tile--main {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.ts-gallery-grid--4 .ts-gallery-tile--left-1 {
  grid-column: 1;
  grid-row: 1;
}

.ts-gallery-grid--4 .ts-gallery-tile--left-2 {
  grid-column: 1;
  grid-row: 2;
}

.ts-gallery-grid--5 .ts-gallery-tile--main,
.ts-gallery-grid--6plus .ts-gallery-tile--main {
  grid-column: 1;
  grid-row: 1 / span 2;
}

.ts-gallery-grid--5 .ts-gallery-right-grid,
.ts-gallery-grid--6plus .ts-gallery-right-grid {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 6px;
}

.ts-gallery-more-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: rgba(0, 0, 0, 0.35);
  z-index: 20;
}

.ts-gallery-more-count {
  display: inline-block;
  color: #fff;
  font-weight: 800;
  font-size: clamp(28px, 4.5vw, 56px);
  line-height: 1;
  text-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

@media (max-width: 767.98px) {
  .ts-gallery-grid {
    height: auto;
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
  }

  .ts-gallery-right-grid {
    grid-template-columns: 1fr;
  }

  .ts-gallery-tile {
    height: 260px;
  }
}
/* === FINE: Dettaglio immobile - galleria griglia (applicato a .ts-gallery-grid e .ts-gallery-tile) === */

/* === INIZIO: Dettaglio immobile - animazione cerchio mutuo (applicato a #mutuo_circle_stroke nello SVG della sezione mutuo) === */
#mutuo_circle_stroke {
  transition: stroke-dasharray 0.5s ease;
}
/* === FINE: Dettaglio immobile - animazione cerchio mutuo (applicato a #mutuo_circle_stroke nello SVG della sezione mutuo) === */

/* === INIZIO: Dettaglio immobile - Dettagli aggiuntivi (applicato a .additional-details e <dl>/<dt>/<dd>) === */
.additional-details dl.mb-0 {
  margin-bottom: 10px !important;
}

.additional-details dl,
.additional-details dt,
.additional-details dd {
  border-bottom: 0 !important;
}

.additional-details dt,
.additional-details dd {
  line-height: 1.45;
}
/* === FINE: Dettaglio immobile - Dettagli aggiuntivi (applicato a .additional-details e <dl>/<dt>/<dd>) === */

/* === INIZIO: Dettaglio immobile - Punti di interesse (applicato a .nearby-poi-row e discendenti) === */
.nearby-poi-row {
  border-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  min-height: calc(1.45em + 10px);
  font-size: 14px;
  line-height: 1.45;
  margin-bottom: 10px;
}

.nearby-poi-row .nearby-poi-label,
.nearby-poi-row .nearby-poi-distance {
  white-space: nowrap;
}

.nearby-poi-row .nearby-poi-label {
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 12px;
}
/* === FINE: Dettaglio immobile - Punti di interesse (applicato a .nearby-poi-row e discendenti) === */

/* === INIZIO: Dettaglio immobile - Box condivisione (applicato a .share-box, .social-share, .btn-social-network, .btn-social-square) === */
.share-box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}

.share-title {
  font-weight: 600;
}

.social-share {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.social-share-row {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 0;
}

.btn-social-square {
  width: 32px !important;
  min-width: 32px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.btn-social-square i {
  margin: 0 !important;
  line-height: 1 !important;
}

.btn-social-network {
  background: #fff !important;
  border-style: solid !important;
  border-width: 1px !important;
  color:var(--primary) !important;
  border-color: var(--primary) !important;
  line-height: 1 !important;
}

.btn-social-network,
.social-share .social-btn {
  transition: all 0.2s ease;
}

.btn-social-network i,
.btn-social-network .social-icon-x,
.social-share .social-btn i,
.social-share .social-btn .social-icon-x {
  color: inherit !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.social-icon-x {
  font-size: 14px;
  font-weight: 700;
  font-style: normal;
}

.social-share .social-btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid #248845;
  color: #248845;
  background: #fff;
  line-height: 1;
}

.social-share .social-btn i {
  margin: 0;
}

.social-facebook {
  --social-hover-color: #1877f2;
}

.social-whatsapp {
  --social-hover-color: #25d366;
}

.social-x {
  --social-hover-color: #000000;
}

.social-instagram {
  --social-hover-color: #e4405f;
}

.social-telegram {
  --social-hover-color: #229ed9;
}

.social-linkedin {
  --social-hover-color: #0a66c2;
}

.social-pinterest {
  --social-hover-color: #e60023;
}

.btn-social-network.social-facebook:hover,
.btn-social-network.social-facebook:focus,
.social-share .social-btn.social-facebook:hover,
.social-share .social-btn.social-facebook:focus,
.btn-social-network.social-whatsapp:hover,
.btn-social-network.social-whatsapp:focus,
.social-share .social-btn.social-whatsapp:hover,
.social-share .social-btn.social-whatsapp:focus,
.btn-social-network.social-x:hover,
.btn-social-network.social-x:focus,
.social-share .social-btn.social-x:hover,
.social-share .social-btn.social-x:focus,
.btn-social-network.social-instagram:hover,
.btn-social-network.social-instagram:focus,
.social-share .social-btn.social-instagram:hover,
.social-share .social-btn.social-instagram:focus,
.btn-social-network.social-telegram:hover,
.btn-social-network.social-telegram:focus,
.social-share .social-btn.social-telegram:hover,
.social-share .social-btn.social-telegram:focus,
.btn-social-network.social-linkedin:hover,
.btn-social-network.social-linkedin:focus,
.social-share .social-btn.social-linkedin:hover,
.social-share .social-btn.social-linkedin:focus,
.btn-social-network.social-pinterest:hover,
.btn-social-network.social-pinterest:focus,
.social-share .social-btn.social-pinterest:hover,
.social-share .social-btn.social-pinterest:focus {
  background: var(--social-hover-color) !important;
  border-color: var(--social-hover-color) !important;
  color: #fff !important;
}
/* === FINE: Dettaglio immobile - Box condivisione (applicato a .share-box, .social-share, .btn-social-network, .btn-social-square) === */

/* === INIZIO: Dettaglio immobile - Sidebar sticky (applicato a #sidebar >= 992px) === */
@media (min-width: 992px) {
  #sidebar {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 130px !important;
    align-self: flex-start !important;
    z-index: 990;
  }
}
/* === FINE: Dettaglio immobile - Sidebar sticky (applicato a #sidebar >= 992px) === */

/* === INIZIO: Dettaglio immobile - form contatto (applicato a #contactForm e .zform) === */
#contactForm .form-control {
  border-radius: 3px !important;
}

#contactForm .form-control:focus {
  background-color: #e6f7ff !important;
  box-shadow: none !important;
}

#contactForm .form-control.error-border {
  border: 1px solid red !important;
}

.zform .invalid-feedback-custom {
  color: red;
  font-size: 0.875em;
  margin-top: 0.25rem;
  display: block;
}
/* === FINE: Dettaglio immobile - form contatto (applicato a #contactForm e .zform) === */

/* === INIZIO: Dettaglio immobile - overlay privacy (applicato a #privacyOverlay e discendenti, link .privacy-link) === */
#privacyOverlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10050;
}

#privacyOverlay .privacy-box {
  width: 90%;
  max-width: 800px;
  max-height: 90vh;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#privacyOverlay .privacy-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid #eee;
  background: #f8f8f8;
}

#privacyOverlay .privacy-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #111 !important;
}

#privacyOverlay .privacy-close {
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: #111 !important;
}

#privacyOverlay .privacy-body {
  padding: 16px;
  overflow: auto;
  font-size: 14px;
  color: #212529 !important;
  background: #fff !important;
  line-height: 1.6;
}

#privacyOverlay .privacy-body * {
  color: #212529 !important;
}

#privacyOverlay .privacy-body a {
  color: #1e1d85 !important;
  text-decoration: underline !important;
}

.privacy-link {
  color: #1e1d85;
  text-decoration: underline;
}
/* === FINE: Dettaglio immobile - overlay privacy (applicato a #privacyOverlay e discendenti, link .privacy-link) === */

.pagination.rounded-active .page-item .page-link {
  border: 1px solid #d1d5db;
  background-color: #fff;
  color: #111827;
  box-shadow: none;
}

.pagination.rounded-active .page-item .page-link:hover {
  background-color: #f3f4f6;
  color: #111827;
}

.pagination.rounded-active .page-item.active .page-link {
  background-color: #4b5563;
  border-color: #4b5563;
  color: #fff;
}

.pagination.rounded-active .page-item.page-item-next .page-link,
.pagination.rounded-active .page-item.page-item-prev .page-link {
  width: auto;
  padding: 0 18px;
  border-radius: 6px;
}

.pagination.rounded-active .page-item.page-item-next .page-link i,
.pagination.rounded-active .page-item.page-item-prev .page-link i {
  font-size: 14px;
}

.imm-annuncio-slider .slick-arrow,
.property-widget .slick-arrow {
  width: 30px;
  height: 30px;
  line-height: 30px;
  font-size: 18px;
}

.imm-annuncio-slider .slick-arrow.slick-prev,
.property-widget .slick-arrow.slick-prev {
  left: 10px !important;
}

.imm-annuncio-slider .slick-arrow.slick-next,
.property-widget .slick-arrow.slick-next {
  right: 10px !important;
}
