/*
Theme Name:   WpEstate child theme
Theme URI:    https://themeforest.net/item/wp-estate-real-estate-responsive-wordpress-theme/5042235
Description:   WpEstate child theme
Author:       WpEstate
Author URI:   http://wpestate.org
Template:     wpestate
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
*/
@font-face {
font-family: 'BDOGrotesk';
src: url('fonts/BDOGrotesk-Light.ttf') format('truetype');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'BDOGrotesk';
src: url('fonts/BDOGrotesk-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'BDOGrotesk';
src: url('fonts/BDOGrotesk-Medium.ttf') format('truetype');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Bellefair';
src: url('fonts/Bellefair-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
/* =============================================
   FIX: Pagine tagliate - rimuove overflow/altezze fisse dai wrapper globali
   ============================================= */
body,
#all_wrapper,
.snap-content,
.snap-content-inner {
  overflow-x: hidden;
  overflow-y: visible !important;
  max-height: none !important;
  height: auto !important;
}

.content_wrapper {
  max-height: none !important;
  overflow: visible !important;
  height: auto !important;
}

.vc_row,
.vc_row-fluid,
.wpb_row {
  overflow: visible !important;
  max-height: none !important;
}

/* =============================================
   FONT: body default = BDOGrotesk
   ============================================= */
body {
  font-family: 'BDOGrotesk', sans-serif !important;
}

h1 > span {
font-family: 'Bellefair', serif!important;
font-weight: 400!important;
line-height: 120%!important;
}
h1 {
font-family: 'Bellefair', serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h2 {
font-family: 'Bellefair', serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h2 > span {
font-family: 'Bellefair', serif!important;
font-weight: 400!important;
}
h3 {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h3 > span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
}
h4 {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h4 > span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
}
h5 {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h5 > span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
}
h6 {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
line-height: 120%!important;
color:black;
}
h6 > span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400!important;
}
p > span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400;
line-height: 19px;
}
p {
font-family: 'BDOGrotesk', sans-serif!important;
color:#666666;
font-weight: 400;
}
a {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400;
}
span {
font-family: 'BDOGrotesk', sans-serif!important;
font-weight: 400;
}
ul li{
font-family: 'BDOGrotesk', sans-serif!important;
color: #666666;
font-weight: 400;	
}

.max-width-col-about-us {
	max-width: 200px !important;
	margin-right:9.38vw;
}

.about_us_row .about_us_image {
    padding: 20px 0;
  }

.about_us_row .about_us_text {
	padding: 20px 0;
    margin: 0;
    text-align: left;
	max-width: 38.54vw!important;
	width: 38.54vw!important;
}

.about_us_column_text {
  max-width: 38.54vw!important;
  width: 38.54vw!important;
}

#alexa_image_column {
	max-width: 200px !important;
	margin-left:9.38vw;
}

#founded_by_family_row_about_us {
	margin:0;
}

#founded_by_family_column {
	text-align: center!important;
}

#our-team-about-us {
	padding-left: 18vw!important;
	padding-right: 18vw!important;
}

.about_us_row {
	padding-left: 18vw!important;
	padding-right: 18vw!important;
}

.about_us_row div{
	padding-left: 0!important;
	padding-right: 0!important;
}

#our-team-about-us div{
	padding-left: 0;
	padding-right: 0;
}

.variable-column-padding {
	padding-left:15vw!important;
	padding-right:15vw!important;
}

.agent_meta_slider br {
	display: none;
}

.agent_meta_slider span {
  font-weight: 500!important;
  font-size: min(1vw, 13px)!important;
}

.agent_meta_slider {
  font-weight: 400!important;
  font-size: min(1vw, 13px)!important;
}

.agent_phone {
	display:none;
}

.wpestate_marker {
	background-color:#183028;
}

.agent_email {
	word-break: break-all;
}


.wpestate_marker:before {
	    border-top: 10px solid #183028;
}

/*
 * Stili per la sezione Concierge Service - VERSIONE AGGIORNATA
 */

/* 1. Allineamento verticale e padding delle colonne (invariato) */
#renovation_page_concierge_service {
    display: flex;
    align-items: baseline;
	column-gap: 6vh;
}

#renovation_page_concierge_service_image > .vc_column-inner {
    padding-left: 40px;
    padding-right: 20px;
}

#renovation_page_concierge_service_text > .vc_column-inner {
    padding-right: 40px;
    padding-left: 20px;
}

/* 2. NUOVO: Applica spaziatura tra il blocco di testo e il blocco del pulsante */
#renovation_page_concierge_service_text > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px; /* Crea 30px di spazio tra il blocco di testo sopra e il pulsante sotto */
}

/* 3. NUOVO: Applica spaziatura interna al blocco di testo */
#renovation_page_concierge_service_text .wpb_text_column .wpb_wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px; /* Crea 30px di spazio TRA ogni paragrafo */
}

/* Rimuove i margini predefiniti dei paragrafi, dato che usiamo 'gap' */
#renovation_page_concierge_service_text .wpb_text_column p {
    margin: 0;
}

/* 4. Selettori AGGIORNATI per lo stile dei testi */

/* Stile per "OUR CONCIERGE SERVICES" */
#renovation_page_concierge_service_text .wpb_text_column p:nth-child(1) {
    font-family: 'BDOGrotesk';
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    color: #000;
    line-height: 1.2;
}

/* Stile per "PROPERTY MANAGEMENT" */
#renovation_page_concierge_service_text .wpb_text_column p:nth-child(2) {
    font-family: 'Bellefair'!important;
    font-size: 40px;
    font-weight: 400;
    text-transform: uppercase;
    line-height: 1.2;
    color: #000;
}

/* Stile per il paragrafo di descrizione */
#renovation_page_concierge_service_text .wpb_text_column p:nth-child(3) {
    font-family: 'BDOGrotesk';
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    color: #000;
}

/* 5. NUOVO: Stile per il pulsante WPBakery */
/* Il pulsante ha già lo stile "outline", dobbiamo solo assicurarci che il font sia corretto */
#renovation_page_concierge_service_text .vc_btn3 {
    font-family: 'BDOGrotesk' !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 100% !important;
    letter-spacing: 0 !important;
    padding: 14px 40px !important;
}

.reverse-flex {
	display:block;
}

#comments {
	display:none;
}

#wpcf7-f19221-p19215-o1 {
	margin-top: 110px;
}

#wpcf7-f19221-p19215-o1 .wpcf7-submit {
	background-color: white!important;
}

#contact_us_lg {
	padding:40px 64px;
}

#contact_us_lg div ul {
  margin: 0;
}

#agent_contact_name:placeholder,
#agent_user_email:placeholder,
#agent_phone:placeholder,
#agent_contact_name,
#agent_user_email,
#agent_phone,
#agent_comment
{
	font-family: "BDOGrotesk";
    font-size: 12px!important;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    color: #666;
}

.infobox_details_wrapper .infobox_listing_details {
    display: flex;
    flex-direction: row;
    align-items: anchor-center;
}

#infobox_title {
	margin-bottom:5px;
}

.property_categs {
    font-family: "BDOGrotesk";
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 12px;
    margin-left: 3px;
}


.entry-title {
    font-family: Bellefair;
    font-size: 40px !important;
    font-style: normal;
    font-weight: 400;
    line-height: 120%;
    text-transform: uppercase;
}

.adres_area, .adres_area a {
    color: #666!important;
    font-family: "BDOGrotesk";
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.price_area {
    color: #183028!important;
    font-family: "BDOGrotesk"!important;
    font-size: 41px!important;
    font-style: normal!important;
    font-weight: 500!important;
    line-height: 41px!important;
    letter-spacing: -1px!important;
}

.single-content p,
.panel-body,
.panel-body a,
.agent_meta_slider
{
    margin-bottom: 20px;
    color: #666;
    font-family: "BDOGrotesk";
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
}



.title_agent_slider,
.title_agent_slider a{
	font-family: "BDOGrotesk";
	font-size: 16px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
    margin-top: 0;
	margin-bottom: 8px;
}

.slider_agent_image {
    display: none;
}

.social_share_wrapper {
  display:none;
}

.navigational_links {
  display:none;
}

.prop_title_zone_container .prop_social {
  display:none;
}

.wrapper_content h4,
.property-panel h4
{
color: black;
font-family: 'Bellefair', serif;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 20.8px; /* 130% */
text-transform: uppercase;
}

.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output, 
.wpcf7 form.payment-required .wpcf7-response-output {
	width: 100%;
	height: 80px;
	color: #fff;
	font-family: "BDOGrotesk";
	font-size: 16px;
	font-weight: 400;
	border: none;
	margin-left: 0;
	
	/* Proprietà per l'allineamento Flexbox */
	display: flex;
	align-items: center;
	padding: 0 16px;
	box-sizing: border-box;
}

/* *
 * 2. STILI COMUNI PER TUTTE LE ICONE
 * Dimensioni e margini uguali per ogni icona.
 */
.wpcf7 form.sent .wpcf7-response-output:before,
.wpcf7 form.failed .wpcf7-response-output:before,
.wpcf7 form.aborted .wpcf7-response-output:before,
.wpcf7 form.spam .wpcf7-response-output:before,
.wpcf7 form.invalid .wpcf7-response-output:before,
.wpcf7 form.unaccepted .wpcf7-response-output:before,
.wpcf7 form.payment-required .wpcf7-response-output:before {
	width: 48px;
	height: 48px;
	margin-right: 32px;
	flex-shrink: 0; /* Impedisce all'icona di rimpicciolirsi se il testo è lungo */
}

/* *
 * 3. DEFINIZIONE DELLE ICONE E DEI COLORI SPECIFICI
 * Qui si definiscono solo le proprietà che cambiano.
 */

/* -- STATO SUCCESSO -- */
.wpcf7 form.sent .wpcf7-response-output {
	background-color: #00583e;
}
.wpcf7 form.sent .wpcf7-response-output:before {
	content: url('https://gatepropertysolutions.com/wp-content/uploads/2025/07/Check.svg');
}

/* -- STATO ERRORE GRAVE -- */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	background-color: #561000;
}
.wpcf7 form.failed .wpcf7-response-output:before,
.wpcf7 form.aborted .wpcf7-response-output:before {
	content: url('https://gatepropertysolutions.com/wp-content/uploads/2025/07/Error.svg');
}

/* -- STATO SPAM -- */
.wpcf7 form.spam .wpcf7-response-output {
	background-color: #f56e28;
}
.wpcf7 form.spam .wpcf7-response-output:before {
	content: url('https://gatepropertysolutions.com/wp-content/uploads/2025/07/Warning.svg');
}

/* -- STATO ERRORE DI VALIDAZIONE -- */
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output, 
.wpcf7 form.payment-required .wpcf7-response-output {
	background-color: #583300;
}
.wpcf7 form.invalid .wpcf7-response-output:before,
.wpcf7 form.unaccepted .wpcf7-response-output:before,
.wpcf7 form.payment-required .wpcf7-response-output:before {
	content: url('https://gatepropertysolutions.com/wp-content/uploads/2025/07/Warning.svg');
}

.wpcf7-not-valid-tip {
	margin-top:4px;
	color: #FF5858;
	font-family: "BDOGrotesk";
	font-size: 12px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
}



.compare-action {
	display:none;
}

.listing_main_image {
	border: 15px solid #183028;
}

/* 1. Imposta un'altezza fissa per l'intera card.
   Questo è necessario perché .listing-unit-img-wrapper possa usare un'altezza in percentuale. */
.property_listing {
  height: 445px;
  max-width: 430px;
  max-height: 500px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* 2. Imposta l'altezza del contenitore dell'immagine e nasconde l'overflow. */
.listing-unit-img-wrapper {
  height: 50%;
  overflow: hidden;
  /* Opzionale: usa flexbox per assicurare che il carosello sia centrato al suo interno */
  display: flex;
  align-items: center;
}

/* 3. Assicura che gli elementi del carosello riempiano lo spazio disponibile. */
.listing-unit-img-wrapper .carousel,
.listing-unit-img-wrapper .carousel-inner,
.listing-unit-img-wrapper .item {
  height: 100%;
  width: 100%;
}

/* 4. Questa è la regola chiave che risolve tutte le tue richieste sull'immagine. */
.listing-unit-img-wrapper .item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.property_listing_details{
	margin-bottom:20px;
}

#listing_ajax_container .listing_wrapper .property_listing {
	height:445px
}



/* 1. Imposta l'altezza della riga contenitore */
.sezione-altezza-limitata {
  max-height: 400px;
  height: 400px;
  /* Allinea il contenuto della riga verticalmente per sicurezza */
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* 2. Forza la colonna a usare flexbox per centrare il suo contenuto */
.colonna-immagine-da-estendere > .vc_column-inner {
  display: flex;
  flex-direction: column;
  justify-content: center; /* CENTRA VERTICALMENTE */
  height: 100% !important; /* Forza l'altezza al 100% */
}

/* 3. Assicura che l'immagine copra il suo spazio e si ritagli */
.immagine-altezza-piena img {
  width: 100%;
  height: 100%; /* L'altezza al 100% del contenitore definito sopra */
  min-height: 400px;
  object-fit: cover; /* Copre l'area e si ritaglia */
  object-position: center; /* Centra il contenuto visibile dell'immagine */
}

.immagine-altezza-piena-v2 img {
  width: 100%;
  height: 100%; /* L'altezza al 100% del contenitore definito sopra */
  min-height: 410px;
  object-fit: cover; /* Copre l'area e si ritaglia */
  object-position: center; /* Centra il contenuto visibile dell'immagine */
}

/* 4. Assicura che i wrapper intermedi abbiano altezza piena */
.immagine-altezza-piena,
.immagine-altezza-piena .wpb_wrapper,
.immagine-altezza-piena .vc_figure,
.immagine-altezza-piena .vc_single_image-wrapper {
  height: 100%;
  width: 100%;
}

html:-webkit-scrollbar {
  display: none;
}

#wpcf7-f18986-p18066-o1 input.wpcf7-submit {
    background-color: #fff !important;
}
.places_type_2_tagline {
	color: #ffffff;
	text-align: center;
	font-family: "BDOGrotesk";
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
}

.places_type_2_content h2 a{
font-size: 23px;
font-style: normal;
font-weight: 400;
line-height: normal;
}

.places_type_2_tagline {
  /* 1. Imposta una larghezza massima per forzare il testo ad andare a capo.
     Modifica questo valore in base alle tue preferenze. */
  max-width: 476px;

  /* 2. Centra il div stesso (il blocco di testo) orizzontalmente */
  margin-left: auto;
  margin-right: auto;

  /* 3. Assicura che il testo possa andare a capo (sicurezza) */
  white-space: normal;

  /* 4. Centra le linee di testo al suo interno */
  text-align: center;
}

/*
 * Allinea perfettamente le frecce di navigazione del carosello
 */

/* 1. Rende il contenitore dell'immagine un punto di riferimento */
.listing-unit-img-wrapper {
  position: relative;
}

/* 2. Stile e posizionamento di ENTRAMBE le frecce */
.property_unit_carousel .carousel-control {
  /* Posizionamento e centratura verticale */
  position: absolute;
  top: 90%;
  transform: translateY(-50%); /* Questo le centra perfettamente in verticale */

  /* Stili per migliorare visibilità e usabilità */
  height: 45px;
  width: 40px;
  line-height: 45px;
  opacity: 0; /* Le nasconde di default */
  transition: opacity 0.3s ease;
}

/* 3. Mostra le frecce solo quando il mouse passa sopra */
.listing-unit-img-wrapper:hover .carousel-control {
  opacity: 1;
}

/* 4. Posiziona la freccia sinistra e destra ai lati */
.property_unit_carousel .carousel-control.left {
  left: 10px; /* Distanza dal bordo sinistro */
}

.property_unit_carousel .carousel-control.right {
  right: 10px; /* Distanza dal bordo destro */
}


/* 1. Definisce la "cornice" per l'immagine */
.slick-slide .listing-unit-img-wrapper {
    width: 100%;
    height: 269px; /* <-- IMPOSTA QUI L'ALTEZZA CHE PREFERISCI */
    overflow: hidden; /* Nasconde le parti dell'immagine che eccedono */
    position: relative;
    background-color: #f2f2f2; /* Colore di sfondo di attesa */
}

/* 2. Adatta l'immagine all'interno della cornice */
.slick-slide .listing-unit-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;     /* <-- QUESTA é LA REGOLA CHIAVE */
    object-position: center; /* Assicura che il "crop" sia centrato */
}

.align-center {
	text-align: center;
}

#advanced_submit_3 {
	background-color:#183028!important;
}

/* * Colora il numero (e temporaneamente l'etichetta) per tutte e tre le classi.
 * Le classi sono separate da una virgola.
 */

.infobox_listing_details #inforoom,
.infobox_listing_details #infobath,
.infobox_listing_details #infosize {
  color: black; /* Colore per i numeri */
  font-weight: 500;
}

/* * Ora ripristina il colore originale per le etichette interne di tutte e tre le classi.
 */
.infobox_listing_details #inforoom .info_labels,
.infobox_listing_details #infobath .info_labels,
.infobox_listing_details #infosize .info_labels {
  color: #909090!important; /* Colore per le etichette */
  font-weight: normal!important;
}


.property_listing_details .inforoom,
.property_listing_details .infobath,
.property_listing_details .infosize {
  color: black!important; /* Colore per i numeri */
  font-weight: 500!important;
}

/* * Ora ripristina il colore originale per le etichette interne di tutte e tre le classi.
 */
.property_listing_details .inforoom .info_labels,
.property_listing_details .infobath .info_labels,
.property_listing_details .infosize .info_labels {
  color: #909090; /* Colore per le etichette */
  font-weight: normal;
}

.property_listing h4, .property_listing h4 a, .price_label {
	color:black;
}

.listing_unit_price_wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
}

.listing_unit_price_wrapper .price_label {
	margin-left: 0;
}

.slick-track {
	height:500px;
}

.featured_div {
	background-color:#183028!important;
	opacity: 0.8;
}

.property_location {
	display:none;
}

.search_wr_3#search_wrapper {
    width: 100%!important;
}

#text-6 p{
	color: #909090!important;
}

#access a {
	font-weight: 400!important;
	color: #183028!important;
}

#colophon .textwidget {
	white-space: nowrap;
}

#custom_design_responsive_parent {
	overflow: visible!important;
}

#experienced_concierge_responsive_parent {
	overflow: visible!important;
}

#about_us_responsive_parent {
	overflow: visible!important;
}

#concierge_responsive_parent {
	overflow: visible!important;
}

.and-more-tooltip {
	padding-left: 0!important;
	padding-right: 28px;
}

.and-more-tooltip:before {
	display: none!important;
}


.gps-tooltip.show { opacity: 1; }

.gps-info-icon {               /* già esistente */
  position: relative;          /* ➜ àncora per il tooltip */
}

/* hover / keyboard-focus version */
.gps-info-icon:hover,
.gps-info-icon:focus-visible {
  background:url('http://gatepropertysolutions.com/wp-content/uploads/2025/06/Info_hover.svg')
             center/contain no-repeat!important;
}

/* Tooltip balloon generico */
.gps-tooltip{
  position: absolute;          /* non più relative */
  left: 50%;
  top: calc(100% + 4px);      /* 4 px di gap */
  transform: translateX(-50%);
  width:250px;
  max-width: 250px;
  background: #193029;
  color: #fff;
  padding: 28px;
  font-size: 14px;
  line-height: 1.4;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
  z-index: 9999;
}

/* freccia */
.gps-tooltip:after{
  content:'';
  position:absolute;
  left:50%;
  top:-7px;
  transform:translateX(-50%) rotate(45deg);
  width:14px;
  height:14px;
  background:#193029;
}

#first .widget-container {
	margin-bottom: 0;
}

.wp-block-image img {
	position: relative;
    left: -10px;
    top: -51px;
}

.vc_do_toggle {
	padding-top: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid #666666;
}

.vc_toggle_title {
	display: flex!important;
	justify-content: space-between!important;
	color:black;
}

.vc_toggle_content {
	color: #666666!important
}

#colophon .wp-block-heading {
    color: #ffffff !important;
	white-space: nowrap;
	font-size: 20px;
}

.svg-bullet-list {
  list-style: none!important;
  list-style-type:unset!important;
  padding-left: 0;
}

.svg-bullet-list ul{
  list-style: none!important;
  list-style-type:none!important;
  padding-left: 0;
}

.svg-bullet-list li {
  position: relative;
  padding-left: 28px; /* spazio per l'icona */
  margin-bottom: 12px;
}

.svg-bullet-list li:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 16px;
  height: 16px;
  background-image: url('http://gatepropertysolutions.com/wp-content/uploads/2025/05/Icona-elenco-puntato.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

footer figure {
	width: 170px;
}

input[type="checkbox"]:checked:before {
	color: #000!important;
}

.white-80 {
	color: #ffffffcc
}

html {
  scroll-behavior: smooth;
}


#access .menu li:hover>a {
	color: #2e6452!important;
}

.mobilex-menu li:hover {
	background: #152922!important
}

.mobilemenu-close-user:hover, .mobilemenu-close:hover {
	color: #fff;
}

/* FORM STRUCTURE */
.lg-form-group input[type="text"],
.lg-form-group input[type="email"],
.lg-form-group input[type="tel"],
.lg-form-group textarea {
  width: 100%;
  padding: 12px 16px;
  font-size: 16px;
  font-family: 'Montserrat', sans-serif;
  box-sizing: border-box;
  border: 1px solid #ccc;
  background-color: white;
  color: #000;
}

.logo {
	margin-left: 15px!important;
	width: 90px!important;
}

#logo_image {
 max-height:unset;
 width:120px;
}

.lg-form-group textarea {
  resize: vertical;
  min-height: 150px;
}

/* SUBMIT BUTTON */
.lg-form-group input[type="submit"] {
  background-color: white;
  color: #1a2b22; /* matches your dark green bg */
  border: none;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
}

.lg-form-group input[type="submit"]:hover {
  background-color: #ddd;
}

.wpcf7-form-control {
	border: none;
    background-color: transparent;
}

.wpcf7-list-item {
	display: flex;
	margin: 0;
}

.wpcf7-form p label {
	width: 100%!important;
}

.wpcf7-form p label input {
	width: 15px!important;
}

/*footer fixes*/
#colophon {
    background-color: #183028!important;
}

#colophon .social_sidebar_internal a:hover i, #primary .social_sidebar_internal a:hover i {
    color: #183028;
}

/*back to top button fixes*/
.backtop {
   display: none;
}

/*fixes on cities cards*/
.places_type_2_content h2{
    cursor: default;
}

.places_type_2_content h2 a{
    cursor: default;
    color: #fff;
    text-transform: none;
    font-weight: 400;
    margin-bottom: 0px;
	pointer-events:none;
}
.places_wrapper_type_2 .places_cover{
	cursor:unset;
	pointer-events:none;
}

.places_type_2_content {
	margin-top: 0px;
}

.places_wrapper_type_2 {
    margin-bottom: 0px;
}

.vc_row.vc_row-no-padding .vc_column-inner {
    padding-top: 0;
}

/*menu fix*/

.header_wrapper_inside.full_width_header {
    float: none;
    
}
    
.header_type1.header_center #access {
    max-width: none;
}

.admin-bar .has_header_type1 .header_media {
    padding-top: 0px;
}

.content_wrapper {
    width: 1200px;
    margin: 0px auto;
    background-color: #f5f8fa;
    padding: 0px 15px 0px 15px;
    /* z-index: 100; */
    position: relative;
}

.breadcrumb_container {
    display: none;
}



/*mobile menu fix*/

.mobile-trigger {
    position: relative;
    float: right;
}

.mobile-trigger:hover i {
    color: #ffffff;
}

.mobile_header {
    background-color: #183028;
}

.snap-drawer { background-color: #183028;
}
.mobilex-menu {
    background-color: #183028;
}

.mobile-logo img {
    margin: 0px 24px;
}



/*button fix*/

.vc_btn, a.vc_btn, button.vc_btn {
    font-family: 'BDOGrotesk', sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 100% !important;
    letter-spacing: 0 !important;
    padding: 14px 40px !important;
    gap: 10px;
    border: 1px solid currentColor !important;
}

a.vc_btn3, button.vc_btn3, .vc_btn3-container a, .vc_btn3-container button {
    font-family: 'BDOGrotesk', sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 100% !important;
    letter-spacing: 0 !important;
    padding: 14px 40px !important;
    gap: 10px;
    border: 1px solid currentColor !important;
}

.vc_btn3-container {
    border: none !important;
}


/*hero subtitle fix*/

#heroSubtitle {
    color: rgba(255, 255, 255, 0.8);
}

/*fixes on cities cards*/
.places_type_2_content h2 a{
    cursor: default;
    color: #fff;
    text-transform: none;
    font-weight: 400;
    margin-bottom: 0px;
}


.places_wrapper_type_2 {
    margin-bottom: 0px;
}

.vc_row.vc_row-no-padding .vc_column-inner {
    padding-top: 0;
}



/*contact form fixes*/
.wpcf7-form input[type="submit"]
{
    color: #000000;
}


/*footer fixes*/
#colophon {
    background-color: #183028;
}

#colophon .social_sidebar_internal a:hover i, #primary .social_sidebar_internal a:hover i {
    color: #183028;
}

/*back to top button fixes*/
.backtop {
   display: none;
}

/* Applica solo alla colonna immagine dentro #contact-us */
/* Forza immagine a riempire altezza colonna in #contact-us */
#contact-us {
  display: flex !important;
  align-items: stretch;
  min-height: 50vh; /* altezza minima visibile */
  padding-bottom: 35px;
}

#contact-us > .wpb_column:first-child {
  display: flex !important;
  flex-direction: column;
}

#contact-us .vc_column-inner,
#contact-us .wpb_wrapper,
#contact-us .vc_single_image,
#contact-us .vc_single_image-wrapper {
  height: 100% !important;
}

#contact-us .vc_single_image-img {
  height: 100% !important;
  width: 100% !important;
  object-fit: cover;
  display: block;
}

  #experienced_concierge_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }

  #concierge_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }

  #about_us_responsive {
	  padding: 20px!important;
	  margin: 0!important;
	  text-align: left;
	}

  #custom_design_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }
	
  #experienced_concierge_responsive_image {
    padding: 20px!important;
  }

  #concierge_responsive_image {
    padding: 20px!important;
  }

	#about_us_responsive_image {
		padding: 20px!important;
	}

  #custom_design_responsive_image {
    padding: 20px!important;
  }
	
  #alexandra_balzarini_title_responsive h2 {
	  line-height:0;
	}
	
  #alexandra_balzarini_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #alexandra_balzarini_subtitle_responsive p {
    line-height:0;
  }

  #alexandra_balzarini_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	line-height:140%;
  }
	
  #grace_balzarini_title_responsive h2 {
	  line-height:0;
	}
	
  #grace_balzarini_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #grace_balzarini_subtitle_responsive p {
    line-height:0;
  }

  #grace_balzarini_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	  line-height:140%;
  }
	
  #tayla_pacifico_title_responsive h2 {
	  line-height:0;
	}	
	
  #tayla_pacifico_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #tayla_pacifico_subtitle_responsive p {
    line-height:0;
  }

  #tayla_pacifico_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	line-height:140%;
  }

  #contact_us_responsive_column > div:first-of-type {
    padding-right: 130px !important;
    padding-left: 130px !important;
    background-color: #183028 !important;
  }

/* Tablet (max-width: 1024px) */
@media (max-width: 1024px) {
	
	#our-team-about-us {
	padding-left: 17vw!important;
	padding-right: 17vw!important;
}

.about_us_row {
	padding-left: 17vw!important;
	padding-right: 17vw!important;
}
	
	.about_us_row .about_us_text {
		padding: 20px 0;
		margin: 0;
		text-align: left;
		max-width: 38.54vw!important;
		width: 38.54vw!important;
	}

	.about_us_column_text {
		max-width: 38.54vw!important;
		width: 38.54vw!important;
	}

	    /* 1. Cambia la direzione del layout da orizzontale a verticale e inverte l'ordine */
    #renovation_page_concierge_service {
        flex-direction: column-reverse; /* Questa è la regola chiave: impila gli elementi in colonna e inverte l'ordine! */
        gap: 40px; /* Aggiunge uno spazio verticale tra il blocco di testo e l'immagine */
    }
	
	#renovation_page_concierge_service div {
		width: 100%!important;
    }
	
	#renovation_page_concierge_service_image_column {
		padding: 0 10vh;
	}
	
	#renovation_page_concierge_service_image {
		text-align:center!important;
	}

    /* 2. Resetta il padding delle colonne per adattarlo al layout mobile */
    #renovation_page_concierge_service_image > .vc_column-inner,
    #renovation_page_concierge_service_text > .vc_column-inner {
        padding-left: 10vh; /* Applica un padding uniforme a sinistra e destra */
        padding-right: 10vh;
    }
  /* 1. La riga interna ora ha un'altezza definita (es. 80% dello schermo)
     e usa flexbox per impilare e gestire i figli. */
  .sezione-altezza-limitata.vc_row_inner {
    display: flex;
    flex-direction: column; /* Impila gli elementi verticalmente */
    height: 80vh; /* Esempio: 80% dell'altezza del viewport. Puoi cambiare questo valore. */
    max-height: none;
  }
	
  .reverse.vc_row_inner {
    flex-direction: column-reverse!important; /* Impila gli elementi verticalmente */
  }
	
  .reverse-flex {
	display:flex;
	flex-direction: column-reverse!important; /* Impila gli elementi verticalmente */
}

  /* 2. Entrambe le colonne figlie (immagine e testo) occuperanno il 50% dell'altezza. */
  .sezione-altezza-limitata.vc_row_inner > .wpb_column {
    height: 50%;
    width: 100% !important; /* Mantiene la larghezza piena */
    flex: none; /* Rimuove le regole flex precedenti se presenti */
    margin-bottom: 0;
	overflow: hidden;
  }

  /* 3. Centra il contenuto della card di testo nel suo spazio del 50% */
  .sezione-altezza-limitata .text_card_lg .vc_column-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* 4. Lo stile dell'immagine non cambia: si adatterà al nuovo contenitore del 50%.
     L'effetto "overflow" è gestito da object-fit. */
  .immagine-altezza-piena img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
	
	#photo_row_responsive {
		padding-bottom: 136px!important;
	}
	
	.master_header{
		position: fixed!important;      /* resta sempre visibile */
		top: 0!important;
		left: 0!important;
		width: 100%!important;
		z-index: 10000!important;       /* sopra a tutto il resto */
		transform: none !important; 
	}
	
	#our_team_last_row {
		padding-bottom:96px!important;
	}
	
	#video_div_responsive_parent {
		align-content: space-around!important;
	}
	
	#video_div_responsive div:first-of-type{
		padding-top: 0px;
	}
		h1 > span {
			font-size: 32px!important;
		}
		h1 {
			font-size: 32px!important;
		}
		.single-estate_property .content_wrapper, .single-estate_agent .content_wrapper, .single-post .content_wrapper, .archive .content_wrapper, .page .content_wrapper {
			padding: 0px 0px 0px;
		}
	  .content_wrapper {
		padding-top:0!important;
	  }
	/*video fix*/
	/* Righe UA con video: tengono sempre almeno l’altezza del viewport */

	/* Video a tutta larghezza/altezza e SOPRA l’overlay (z-index 0) */
	.upb_video_class.vc_row-o-full-height{
			min-height:100vh!important;     /* oppure 70vh se preferisci */
	  }

	.upb_video-wrapper,
	.upb_video-bg,
	.upb_video-src{
		position:absolute!important;
		inset:0;
		width:100%!important;
		height:100%!important;
		object-fit:cover!important;
		z-index:0!important;      /* sopra l’overlay semitrasparente */
	}

	/* L’overlay resta ma non copre completamente il filmato */
	.upb_bg_overlay{
		z-index:1;
		pointer-events:none;
	}
	
  #alexandra_balzarini_title_responsive {
		margin-bottom:4px!important;
	}
	
  #alexandra_balzarini_title_responsive h2 {
	  line-height:0;
	}
	
  #alexandra_balzarini_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #alexandra_balzarini_subtitle_responsive p {
    line-height:0;
  }

  #alexandra_balzarini_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	line-height:140%;
  }
	
  #grace_balzarini_title_responsive {
	  margin-bottom:4px!important;
	}
	
  #grace_balzarini_title_responsive h2 {
	  line-height:0;
	}
	
  #grace_balzarini_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #grace_balzarini_subtitle_responsive p {
    line-height:0;
  }

  #grace_balzarini_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	  line-height:140%;
  }
	
  #tayla_pacifico_title_responsive {
	  margin-bottom:4px!important;
	}
	
  #tayla_pacifico_title_responsive h2 {
	  line-height:0;
	}	
	
  #tayla_pacifico_title_responsive span {
    text-align: center;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
	line-height:140%;
  }
	
  #tayla_pacifico_subtitle_responsive p {
    line-height:0;
  }

  #tayla_pacifico_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
	line-height:140%;
  }

  #andrea_eusebio_title_responsive span {
    text-align: left;
    font-size: 20px!important;
	font-weight:400!important;
	white-space:nowrap;
  }

  #andrea_eusebio_subtitle_responsive span {
    text-align: left;
    font-size: 14px!important;
  }

  #experienced_concierge_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }

  #concierge_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }

  #custom_design_responsive {
    padding: 20px!important;
	margin: 0!important;
    text-align: left;
  }
	
  #experienced_concierge_responsive_image {
    padding: 20px!important;
  }

  #concierge_responsive_image {
    padding: 20px!important;
  }
	
	#about_us_responsive_image {
	padding: 20px!important;
  }

  #custom_design_responsive_image {
    padding: 20px!important;
  }
	
  #contact-us {
	display:flex;
	justify-content:center;
  }
	
  #contact_us_responsive_column > div:first-of-type {
    padding-right: 15px !important;
    padding-left: 15px !important;
    background-color: #183028 !important;
  }
	
  #renovations > div:first-of-type {
    height: 0 !important;
  }
	
.mobile-logo img {
	max-height:unset;
	width:120px;
	margin-top:0!important;
	height: 75px;
  }
}

/*contact form fix*/
@media (max-width: 991px) {
	#second {
		display:none!important;
	}
	
	#third {
		display:none!important;
	}
	
	#colophon .xoxo {
    padding-top: 56px;
    }
	
	#text-6 {
		margin-top:40px!important;
	}

	#first ul li figure {
		height:100px!important;
	}
}

@media (min-width: 992px) and (max-width: 1420px) {
	#second {
		display:none;
	}
}

@media (min-width: 1024px) and (max-width: 1075px) {
	#fourth {
		left: -50px;
	}
}

@media (max-width: 1150px) {
    #access a {
        font-size: 1.2vw!important;
		font-weight:400;
        padding-left: 5px!important;
        padding-right: 5px!important;
    }
}

/* Mobile (max-width: 768px) */
@media (max-width: 767px) {
	
	.about_us_row .about_us_text {
		padding: 20px 0;
		margin: 0;
		text-align: left;
		max-width: 80vw!important;
		width: 80vw!important;
	}

	.about_us_column_text {
		max-width: 80vw!important;
		width: 80vw!important;
	}
	
	#our-team-about-us {
	padding-left: 5vw!important;
	padding-right: 5vw!important;
}
	
	.max-width-col-about-us {
		max-width: 200px !important;
		margin-right:0;
	}
	
	#alexa_image_column {
		max-width: 200px;
		margin-left: 0;
	}
	
		.mobile-column {
			display: flex;
			flex-direction: column;
			align-items: center;
		}

		.mobile-column-reverse {
			display: flex;
			flex-direction: column-reverse;
			align-items: center;
		}
		
		#about_us_hero_image_row div {
			padding-top:0!important;
		}
	
		.text_card_lg .vc_column-inner {
		padding-top: 8px !important;
		padding-right: 12px !important;
		padding-bottom: 8px !important;
		padding-left: 12px !important;
}
	
	    .sezione-altezza-limitata.vc_row_inner {
        display: flex;
        flex-direction: column;
        height: auto !important; /* Let height be determined by the content */
        max-height: none !important;
    }
	
	
		.master_header{
		position: fixed!important;      /* resta sempre visibile */
		top: 0!important;
		left: 0!important;
		width: 100%!important;
		z-index: 10000!important;       /* sopra a tutto il resto */
		transform: none !important; 
	}
	
	#photo_row_responsive {
		padding-bottom: 88px!important;
	}
	
	.kill_in_mobile {
		display:none!important;
	}
	
	.resize_to_80_in_mobile img {
		width: 80px!important;
		height:80px!important;
	}
	
	.hero-text-lg {
	font-size: 32px!important;
  }
	
	.mobile-logo img {
	max-height:unset;
	width:120px;
	margin-top:0!important;
	height: 75px;
  }
	
	#concierge_responsive_parent {
		display: flex !important;
		flex-direction: column-reverse !important;
	}

	#concierge_responsive_parent > .wpb_column {
		width: 100% !important;
		max-width: 100% !important;
	}
	
	#about_us_responsive_parent {
		display: flex !important;
		flex-direction: column-reverse !important;
	}

	#about_us_responsive_parent > .wpb_column {
		width: 100% !important;
		max-width: 100% !important;
	}
	
	
  #our_team_last_row {
    padding-bottom:0!important;
  }
	
	#alexandra_balzarini_img_responsive {
		text-align: center;
	}
	
  #alexandra_balzarini_title_responsive {
    text-align: center;
  }
	
  #alexandra_balzarini_title_responsive span {
    font-size: 20px!important;
  }


  #alexandra_balzarini_subtitle_responsive {
    text-align: center;
  }
	
  #alexandra_balzarini_subtitle_responsive span {
    font-size: 14px!important;
  }
	
  #grace_balzarini_img_responsive {
		text-align: center;
	}
	
  #grace_balzarini_title_responsive {
    text-align: center;
  }
	
  #grace_balzarini_title_responsive span {
    font-size: 20px!important;
  }

  #grace_balzarini_subtitle_responsive {
    text-align: center;
  }
	
  #grace_balzarini_subtitle_responsive span {
    font-size: 14px!important;
  }
	
  #tayla_pacifico_img_responsive {
	text-align: center;
  }
	
  #tayla_pacifico_title_responsive {
    text-align: center;
  }
	
  #tayla_pacifico_title_responsive span {
    font-size: 20px!important;
  }

  #tayla_pacifico_subtitle_responsive {
    text-align: center;
  }
	
  #tayla_pacifico_subtitle_responsive span {
    font-size: 14px!important;
  }
	
  #andrea_eusebio_title_responsive {
    text-align: center;
  }
	
  #andrea_eusebio_title_responsive span {
    font-size: 20px!important;
  }

  #andrea_eusebio_subtitle_responsive {
    text-align: center;
  }
	
  #andrea_eusebio_subtitle_responsive span {
    font-size: 14px!important;
  }

  #experienced_concierge_responsive {
    padding: 20px;
    text-align: left;
  }

  #concierge_responsive {
    padding: 20px;
    text-align: left;
  }
	
  #about_us_responsive {
    padding: 20px;
    text-align: left;
  }

  #custom_design_responsive {
    padding: 20px;
    text-align: left;
  }
	
  .lg-form-row .lg-form-group {
    flex: 1 1 100%;
  }

  .lg-form-group {
    margin-bottom: 16px;
  }
	
  #renovations > div:first-of-type {
    height: 0 !important;
  }
	
  #contact_us_responsive_column > div:first-of-type {
    padding-right: 15px !important;
    padding-left: 15px !important;
    background-color: #183028 !important;
  }
}


/*
 * METODO DEFINITIVO - Overlay con Pseudo-elemento
 * Applica un overlay virtuale direttamente al box con l'immagine di sfondo.
*/

/* 1. Il contenitore principale che ha l'immagine come sfondo */
.places_image_wrapper {
  position: relative !important; /* Obbligatorio per posizionare l'overlay */
  isolation: isolate; /* Previene conflitti di sovrapposizione (z-index) */
}

/* 2. Creiamo l'overlay VERO e PROPRIO */
.places_image_wrapper:before {
  content: '' !important; /* Necessario per creare l'elemento virtuale */
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  
  /* L'overlay nero al 50% */
  background-color: rgba(0, 0, 0, 0.5) !important;
  
  /* Mettiamo l'overlay tra lo sfondo e il testo */
  z-index: 2 !important; 
}

/* 3. Assicuriamoci che il testo sia SOPRA l'overlay */
.places_type_2_content {
  position: relative !important; /* Necessario per far funzionare lo z-index */
  z-index: 3 !important; /* Valore più alto dell'overlay per stare davanti */
}

/* 4. Rendiamo il testo bianco per leggibilità */
.places_type_2_content,
.places_type_2_content h2 a {
  color: #ffffff !important;
}

@media (min-width: 1600px) {
	.variable-column-padding {
		padding-left:25vw!important;
		padding-right:25vw!important;
	}
}
