/*
Theme Name:   GeneratePress Child
Description:  Child theme di GeneratePress per Fioreimmo.
Template:     generatepress
Version:      1.0.0
Text Domain:  generatepress-child
*/


/* PROPERTIES */
/* Griglia delle card (sul vecchio sito la faceva Bootstrap con col-md-4). */
#ekeria-properties {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 30px;
  width: 100%;
  text-align: left;
}

@media (max-width: 1024px) {
  #ekeria-properties {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  #ekeria-properties {
    grid-template-columns: minmax(0, 1fr);
  }
}

:is(#ekeria-properties, .ekeria-related-props) .d-none {
  display: none !important;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-property a {
  color: inherit;
  text-decoration: none;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-property {
  margin-bottom: 30px;
  box-shadow: 0 10px 31px 0 rgba(7, 152, 255, 0.09);
  border-radius: 8px;
  position: relative;
  border: 1px solid #eef3f6;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-property:hover .ekeria-title {
  color: #83bb39;
  transition: 0.4s;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-container-feature-img {
  position: relative;
  height: 250px;
  overflow: hidden;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-property:hover .ekeria-featuredImg {
  -ms-transform: scale(1.2);
  -moz-transform: scale(1.2);
  -webkit-transform: scale(1.2);
  -o-transform: scale(1.2);
  transform: scale(1.2);
  transition: 0.4s;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-container-feature-img:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-box-shadow: inset 0px -10px 20px 0px #41668d;
  box-shadow: inset 0px -10px 20px 0px #41668d;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

/* display:block: niente spazio della riga di testo sotto l'immagine. */
:is(#ekeria-properties, .ekeria-related-props) .ekeria-featuredImg {
  display: block;
  height: 100%;
  width: 100%;
  object-fit: cover;
  transition: 0.4s;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-content {
  padding: 15px;
  background: white;
  border-bottom: 1px solid #eef3f6;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-content .ekeria-title {
  font-size: 20px;
  font-weight: 400;
  min-height: 52px;
  transition: 0.4s;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-content .ekeria-price {
  padding: 0 0 15px 0;
  font-size: 18px;
  color: #41668d;
  font-weight: 500;
  display: block;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-category {
  display: inline;
  padding: 5px 20px;
  position: absolute;
  top: 5px;
  line-height: 1.1;
  left: 5px;
  background: #41668d;
  color: white;
  font-weight: 500;
  font-size: 12px;
  border-radius: 5px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-typo {
  display: inline;
  padding: 5px 20px;
  position: absolute;
  top: 5px;
  line-height: 1.1;
  right: 5px;
  background: #83bb39;
  color: white;
  font-weight: 500;
  font-size: 12px;
  border-radius: 5px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-imgs {
  display: inline;
  position: absolute;
  top: 225px;
  right: 5px;
  color: white;
  font-size: 11px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-country {
  display: inline;
  position: absolute;
  top: 225px;
  color: white;
  font-size: 12px;
}

:is(#ekeria-properties, .ekeria-related-props)
  .ekeria-content
  :is(
    .ekeria-size-icon,
    .ekeria-rooms-icon,
    .ekeria-bedrooms-icon,
    .ekeria-bathrooms-icon,
	.ekeria-garage-icon
  ) {
  font-size: 14px;
  color: #585858;
  display: inline;
  margin-right: 15px;
}

/* Foto e nome dell'agente affiancati e centrati in verticale. */
:is(#ekeria-properties, .ekeria-related-props) .ekeria-content-sales {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 60px;
  padding: 0 15px;
  background: white;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-content-sales .ekeria-img-sales {
  flex-shrink: 0;
  width: 40px !important;
  height: 40px !important;
  margin: 0;
  border-radius: 50% !important;
  object-fit: cover;
  border: 1px solid #cfdae7;
}

/* Logo usato quando l'agente non ha la foto: intero, non ritagliato. */
:is(#ekeria-properties, .ekeria-related-props) .ekeria-content-sales .ekeria-img-sales[src$="fioreimmo-logo.png"] {
  object-fit: contain;
  padding: 5px;
  background: white;
}

:is(#ekeria-properties, .ekeria-related-props) .ekeria-content-sales .ekeria-text-sales {
  font-size: 13px !important;
  line-height: 1.2;
  color: #111010 !important;
  font-weight: 400 !important;
  text-transform: uppercase;
}

@media (min-width: 320px) and (max-width: 768px) {
  .credits.desktop {
    display: none;
  }

  .credits.mobile {
    display: inline-block;
  }
	
	#ekeria-map.properties {
		display: none;
	}
}

/* SINGLE PROPERTY */
.container.content_wrapper {
  margin-top: 0 !important;
}

#ekeria-property {
  background: #f5f5f7;
  padding: 50px 20px;
}

#ekeria-property b {
  color: #111010;
}

#ekeria-property .ekeria-category {
  color: white;
  font-weight: 500;
  font-size: 12px;
  border-radius: 5px;
  line-height: 1.1;
  background: #41668d;
  display: inline;
  padding: 5px 20px;
}

#ekeria-property .ekeria-typo {
  display: inline;
  padding: 5px 20px;
  line-height: 1.1;
  background: #83bb39;
  color: white;
  font-weight: 500;
  font-size: 12px;
  border-radius: 5px;
  margin-left: 10px;
}

#ekeria-property div[class^="col-"] {
  padding: 0 !important;
}

#ekeria-property .col2Title {
  text-align: right;
}

#ekeria-property .col2Title .ekeria-price {
  font-size: 30px;
  color: #41668d;
  font-weight: 500;
  margin-top: 47px;
}

#ekeria-property .ekeria-container-pics {
  background: #f5f5f7;
  border-radius: 8px;
  margin-top: 50px;
  text-align: center;
  position: relative;
  background: white;
}

#ekeria-property .ekeria-container-pic {
  display: none;
  padding: 0 15px;
}

#ekeria-property .ekeria-container-pic .ekeria-pic {
  min-height: 640px;
  max-height: 640px;
  width: auto;
}

/* Next & previous buttons */
#ekeria-property .prev,
#ekeria-property .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
  background-color: #41668d;
}

#ekeria-property .prev {
  left: 0;
}

/* Position the "next button" to the right */
#ekeria-property .next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
#ekeria-property .prev:hover,
#ekeria-property .next:hover {
  background-color: rgba(0, 0, 0, 0.8);
}

#ekeria-property .ekeria-container-dots {
  width: 100%;
  float: left;
  margin-top: 20px;
}

#ekeria-property .ekeria-container-dots .ekeria-div-dot {
  width: 150px;
  height: 85px;
  border-radius: 4px;
  display: inline-block;
  margin-right: 10px;
  margin-bottom: 10px;
  opacity: 0.5;
  border: 1px solid #e6e6e6;
  cursor: pointer;
}

#ekeria-property .ekeria-container-dots .ekeria-div-dot.active {
  opacity: 1;
}

#ekeria-property .ekeria-container-dots .ekeria-div-dot .ekeria-dot {
  border-radius: 4px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#ekeria-property #ekeria-map {
  width: 100%;
  height: 500px;
  margin-top: 30px;
  margin-left: 0;
  margin-right: 0;
  border-radius: 8px;
}

:is(#ekeria-property, #ekeria-map) .popup-title {
  font-weight: 500;
  font-size: 15px;
  color: #111010;
  padding: 10px 15px 0 15px;
  display: block;
}

:is(#ekeria-property, #ekeria-map) hr {
  margin: 10px;
  border-top: 1px solid #f5f5f7;
}

:is(#ekeria-property, #ekeria-map) .popup-price {
  color: #41668d;
  font-weight: bold;
  font-size: 17px;
  padding: 0 15px 10px;
  display: block;
}

:is(#ekeria-property, #ekeria-map) .mapboxgl-popup-content {
  width: 350px;
  padding: 0;
}

:is(#ekeria-property, #ekeria-map) .popup-container-img {
  float: left;
  display: inline-block;
}

:is(#ekeria-property, #ekeria-map) .popup-img {
  width: 100px;
  height: 105px;
  object-fit: cover;
}

:is(#ekeria-property, #ekeria-map) .popup-container-text {
  float: right;
  width: calc(100% - 100px);
}

:is(#ekeria-property, #ekeria-map) .ekeria-contents {
  padding-left: 0 !important;
}

#ekeria-property
  :is(
    .ekeria-container-map,
    .ekeria-container-description,
    .ekeria-container-address,
    .ekeria-container-detail,
    .ekeria-container-proximity
  ) {
  padding: 30px;
  background: white;
  border-radius: 8px;
  margin-top: 30px;
  position: relative;
  display: inline-block;
  width: 100%;
}

#ekeria-property :is(.ekeria-sidebars, .ekeria-related-props) {
  padding: 15px;
  background: white;
  border-radius: 8px;
  margin-top: 30px;
  position: relative;
  display: inline-block;
}

#ekeria-property .ekeria-container-map {
  width: 100%;
	display: none;
}



#ekeria-property
  :is(.ekeria-description-text, .address-text, .detail-text, .proxim-text) {
  font-size: 15px;
  line-height: 1.5;
}

#ekeria-property :is(.address-text, .detail-text, .proxim-text) {
  padding-left: 0;
  margin-bottom: 20px;
  display: inline;
}

#ekeria-property :is(.ekeria-title-proximity, .ekeria-title-services) {
  padding: 0;
}

#ekeria-property .ekeria-openmaps-link {
  padding: 5px 15px;
  background: #41668d;
  color: white;
  border-radius: 4px;
  width: max-content;
  text-align: center;
}

#ekeria-property .ekeria-content-sales .ekeria-img-sales {
  width: 100%;
  height: 200px;
  border-radius: 4px;
  object-fit: cover;
  object-position: 25% 25%;
}

#ekeria-property .ekeria-content-sales .ekeria-text-sales {
  font-size: 20px;
  color: #111010;
  padding: 15px 0;
  display: block;
  font-weight: 500;
}

#ekeria-property .ekeria-content-sales .ekeria-text-role {
  font-size: 15px;
  font-weight: 400;
}

#ekeria-property .ekeria-content-sales .ekeria-sales-info {
  display: block;
  margin: 15px 0;
}

#ekeria-property .ekeria-content-sales .ekeria-sales-info i {
  padding: 5px;
  background: #e7e7e7;
  border-radius: 50%;
}

#ekeria-property .ekeria-container-form {
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid #e7e7e7;
}

#ekeria-property .ekeria-404 {
  text-align: center;
}

#ekeria-property .ekeria-404 h2 {
  font-size: 300px;
  color: #41668d;
  line-height: 1;
}

#ekeria-property .ekeria-404 h1 {
  font-size: 45px;
  color: #41668d;
  line-height: 1;
}

#ekeria-property .ekeria-404 img {
  width: 400px;
}

.ekeria-social-share {
	margin-top: 30px;
}

.ekeria-social-share a {
	font-size: 35px;
	margin-right: 10px;
}

@media (min-width: 320px) and (max-width: 768px) {
  #ekeria-property {
    padding: 50px 10px;
  }

  #ekeria-property .ekeria-contents {
    padding: 0 !important;
  }

  #ekeria-property .ekeria-container-pic .ekeria-pic {
    min-height: 350px;
    max-height: 350px;
  }

  #ekeria-property .ekeria-container-dots {
    display: none;
  }

  #ekeria-property #ekeria-map {
    height: 350px;
  }

  #ekeria-property .mapboxgl-popup-content {
    width: auto;
    height: 105px;
  }

  #ekeria-property .popup-title {
    font-size: 15px;
  }

  #ekeria-property hr {
    margin: 5px;
  }

  #ekeria-property .popup-price {
    font-size: 15px;
  }

  #ekeria-property
    :is(
      .ekeria-container-map,
      .ekeria-container-description,
      .ekeria-container-address,
      .ekeria-container-detail,
      .ekeria-container-proximity,
      .ekeria-sidebars
    ) {
    padding: 15px;
  }
}

/* SINGLE PROPERTY – griglia al posto di Bootstrap (.row / .col-md-*) */
#ekeria-property {
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  border-radius: 8px;
}

/* Titolo (8/12) e prezzo (4/12) */
#ekeria-property .ekeria-row-title {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

#ekeria-property .ekeria-row-title .ekeria-title {
  margin: 20px 0 10px;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1.2;
}

/* Galleria: le frecce sono dentro al riquadro, le miniature sotto. */
#ekeria-property .ekeria-container-pic .ekeria-pic {
  max-width: 100%;
  object-fit: contain;
}

#ekeria-property .ekeria-container-dots {
  float: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

#ekeria-property .ekeria-container-dots .ekeria-div-dot {
  margin: 0;
}

/* Contenuti (8/12) a sinistra; agente + modulo e immobili correlati (4/12) a destra. */
#ekeria-property .ekeria-container-contents {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  column-gap: 30px;
  align-items: start;
}

#ekeria-property .ekeria-contents {
  grid-column: 1;
  grid-row: 1 / span 2;
}

#ekeria-property :is(.ekeria-sidebars, .ekeria-related-props) {
  grid-column: 2;
  display: block;
  box-sizing: border-box;
}

#ekeria-property .ekeria-related-props .ekeria-property {
  margin: 20px 0 0;
}

/* Dettagli su 2 colonne, indirizzo/servizi/vicinanze su 3 (griglia da 6). */
#ekeria-property :is(.ekeria-container-address, .ekeria-container-detail) {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 20px;
  box-sizing: border-box;
}

#ekeria-property :is(.ekeria-container-address, .ekeria-container-detail) > * {
  grid-column: 1 / -1;
}

#ekeria-property :is(.ekeria-container-address, .ekeria-container-detail) > .detail-text {
  grid-column: span 3;
}

#ekeria-property :is(.ekeria-container-address, .ekeria-container-detail) > :is(.address-text, .proxim-text) {
  grid-column: span 2;
}

#ekeria-property :is(.address-text, .detail-text, .proxim-text) {
  display: block;
  margin: 0 0 12px;
}

#ekeria-property .ekeria-openmaps-link {
  grid-column: 1 / -1;
  margin-top: 8px;
  text-decoration: none;
}

#ekeria-property :is(.ekeria-description-title, .ekeria-address-title, .ekeria-title-detail, .ekeria-related-title) {
  margin: 0 0 20px;
  font-size: 1.4rem;
}

#ekeria-property :is(.ekeria-title-services, .ekeria-title-proximity) {
  margin: 10px 0 15px;
  font-size: 1.1rem;
}

#ekeria-property .ekeria-content-sales .ekeria-sales-info {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 900px) {
  #ekeria-property .ekeria-row-title,
  #ekeria-property .ekeria-container-contents {
    grid-template-columns: minmax(0, 1fr);
  }

  #ekeria-property .col2Title {
    text-align: left;
  }

  #ekeria-property .col2Title .ekeria-price {
    margin-top: 0;
  }

  #ekeria-property :is(.ekeria-contents, .ekeria-sidebars, .ekeria-related-props) {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 640px) {
  #ekeria-property :is(.ekeria-container-address, .ekeria-container-detail) > :is(.detail-text, .address-text, .proxim-text) {
    grid-column: span 3;
  }
}

#full-page-img {
	display: none;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-size: contain;
	background-repeat: no-repeat no-repeat;
	background-position: center center;
	background-color: #000000c2;
}

.close-full-page {
	position: absolute;
	top: 100px;
	right: 100px;
	font-size: 30px;
	color: white;
	border: 2px solid white;
	padding: 10px 13px 15px 13px;
	line-height: 0.6;
	border-radius: 50%;
	cursor: pointer;
}

@media (min-width: 320px) and (max-width: 768px) {
	.close-full-page {
		right: 10px;
	}
}

/* FILTERS */

#ekeria-number-title-property {
	font-size: 25px;
	line-height: 1.3;
	margin-bottom: 15px;
	padding: 0 5px 20px;
	color: #41668d;
}

/* Rotella di caricamento: lo script la nasconde quando la lista è pronta. */
#loader.loader {
	width: 40px;
	height: 40px;
	margin: 40px auto;
	border: 4px solid #e3e9f0;
	border-top-color: #41668d;
	border-radius: 50%;
	animation: ekeria-spin 0.9s linear infinite;
}

@keyframes ekeria-spin {
	to { transform: rotate(360deg); }
}

#ekeria-map.properties {
	width: calc(50% - 20px);
	position: fixed;
	height: calc(100vh - 145px);
	scale: 1;
	bottom: 10px;
	margin-left: 0;
	margin-right: 0;
	border-radius: 8px;
}

/* Griglia a 12 colonne al posto di Bootstrap (.row / .col-lg-*):
   riga 1 categoria, tipo e zona (col-lg-4); riga 2 i sei campi da col-lg-2. */
#filters {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 30px;
	background: #f5f5f7;
	padding: 35px 35px 15px;
	border-radius: 8px;
	margin-bottom: 30px;
}

#filters > div {
	position: relative;
	grid-column: span 2;
}

#filters > [class*="col-lg-4"] {
	grid-column: span 4;
}

#filters .ekeria-custom-select {
	display: block;
	width: 100%;
	height: 40px;
	border: 1px solid #8593a9;
	background-color: white;
	box-shadow: none;
	font-size: 15px;
	line-height: 1.2;
	border-radius: 4px;
	color: #8593a9;
	padding: 0 13px;
	margin: 0 0 20px;
}

#filters .ekeria-custom-select::placeholder {
	color: #8593a9;
	opacity: 1;
}

/* Unità dentro al campo, a destra (m² lascia spazio alle frecce del campo numerico). */
#filters .min-size-label:after,
#filters .min-price-label:after,
#filters .max-price-label:after {
	position: absolute;
	top: 20px;
	transform: translateY(-50%);
	font-size: 14px;
	color: #41668d;
	pointer-events: none;
}

#filters .min-size-label:after {
	content: "m²";
	right: 40px;
}

#filters .min-price-label:after, #filters .max-price-label:after {
	content: "€";
	right: 13px;
}

#filters :is(#minSize, #maxSize) {
	padding-right: 64px;
}

#filters :is(#minPrice, #maxPrice) {
	padding-right: 30px;
}

@media (max-width: 1024px) {
	#filters > div,
	#filters > [class*="col-lg-4"] {
		grid-column: span 4;
	}
}

@media (max-width: 640px) {
	#filters {
		column-gap: 15px;
		padding: 20px 15px 5px;
	}

	#filters > div,
	#filters > [class*="col-lg-4"] {
		grid-column: span 6;
	}

	#filters .ekeria-custom-select {
		margin-bottom: 15px;
	}
}

#filters .ekeria-price-slider-container {
	position: relative;
}

#filters .ekeria-price-slider-container span {
	font-size: 15px;
	padding-left: 13px;
	color: #8593a9;
}

#filters .ekeria-price-slider-container output {
	background: #41668d;
	color: white;
	padding: 4px 12px;
	position: absolute;
	border-radius: 4px;
	transform: translateX(-50%);
	bottom: -35px;
	text-align: center;
	width: max-content;
}

#filters .ekeria-price-slider-container output::after {
	content: "";
	position: absolute;
	width: 2px;
	height: 2px;
	background: #41668d;
	top: -1px;
	left: 50%;
}