/*
 * Martina Immobiliare, tema Proposta: un solo file per ridurre le richieste.
 *
 * Principio: i colori, i caratteri e gli stili che Houzez gia' gestisce si cambiano dalle opzioni del tema
 * (Houzez, Opzioni tema, Stile e Tipografia), vedi docs/houzez-opzioni-tema.md. Qui stanno solo:
 *  1. i font in locale (le opzioni di Houzez usano Google Fonts);
 *  2. i token del design system come variabili, per chi li usa (Elementor, shortcode, template nuovi);
 *  3. le poche regole che le opzioni non coprono, scritte sulle classi di Houzez e Bootstrap.
 * Token: martina-design-system/assets/css/tokens.css, tema Proposta, valori non modificati.
 */

/* 1. Font in locale, licenza SIL OFL 1.1. Sottoinsieme latino: accenti italiani, euro, m². */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/montserrat-latin-wght-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin-wght-normal.woff2") format("woff2");
}

/* 2. Token */
:root{--brand:#a560a2;--action:#884687;--action-hover:#6d326c;--on-action:#fefbfe;--surface-brand:#884687;--plum:#5a355a;--plum-deep:#652164;--tint:#f6eaf5;--paper:#faf5f9;--card:#fefbfe;--ink:#261b25;--ink-muted:#5d515c;--placeholder:#70656f;--border:#91808f;--hairline:#e4dbe3;--logo-navy:#3d4353;--pink-soft:#f8c6e6;--pink-accent:#e274ab;--badge-featured:#8f3e5c;--on-badge:#fefbfe;--scrim-status:rgba(38,27,37,0.66);--price-chip:rgba(90,53,90,0.88);--cookie-deny:#f1e8f0;--focus-ring:#884687;--shadow-banner:0 10px 24px rgba(90,53,90,0.18), 0 2px 6px rgba(90,53,90,0.12)}
:root{--space-3:3px;--space-4:4px;--space-7:7px;--space-8:8px;--space-10:10px;--space-12:12px;--space-15:15px;--space-20:20px;--space-24:24px;--space-30:30px;--space-40:40px;--space-50:50px;--radius-sm:4px;--radius-md:5px;--radius-lg:6px;--radius-xl:12px;--size-field:59px;--size-button:58px;--size-button-sm:32px;--size-header:90px;--size-cookie-btn:45px;--font-sans:"Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--font-slab:"Roboto Slab", Georgia, serif;--font-display:"Montserrat", "Roboto", system-ui, sans-serif}

/* 3. Regole che le opzioni del tema non coprono */

/* Famiglie: Houzez le imposta dalla tipografia. Con le famiglie su "font di sistema" valgono queste. */
body,
button,
input,
select,
textarea {
	font-family: var(--font-sans);
}

h1,
h2,
h3,
.page-title,
.section-title {
	font-family: var(--font-display);
	text-wrap: balance;
}

p,
li {
	text-wrap: pretty;
}

/* Campi: bordo 3:1 e segnaposto 4.5:1 sul fondo (misurati nel design system). */
.form-control,
.bootstrap-select > .dropdown-toggle,
.form-select {
	border-color: var(--border);
}

::placeholder {
	color: var(--placeholder);
	opacity: 1;
}

/* Anello di focus visibile su tutto cio' che si attiva da tastiera. */
:focus-visible {
	outline: 3px solid var(--focus-ring);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		scroll-behavior: auto;
		transition-duration: 0.01ms;
	}
}

/* 4. Pagine: allineamento al mockup (misurato il 19/10/2026, vedi docs/confronto-pagine.md).
 *
 * Le pagine sono vecchie pagine Elementor con impostazioni proprie: qui si correggono solo dimensioni, colori e forme,
 * mai il contenuto. Ogni blocco vale per una pagina, riconosciuta dalla classe del body, e non usa !important:
 * la specificita' supera quella dei file di Elementor (.elementor-NN .elementor-element.elementor-element-ID).
 * Gli ID dei blocchi (3ff01ee, c965534, ...) sono quelli di Elementor: restano stabili finche' il blocco non viene
 * ricreato. Per tornare alla pagina com'era basta togliere il blocco della pagina.
 * Pagine: home 18, immobili 19575, chi siamo 16650, contatti 16941, valutazione 23054 (pagina di destinazione). */

/* 4.1 Comune */
:is(.page-id-18, .page-id-19575, .page-id-16650, .page-id-16941, .postid-23054) .elementor .elementor-element .elementor-button {
	background: var(--action);
	border-radius: var(--radius-md);
	color: var(--on-action);
	font-family: var(--font-sans);
	font-weight: 600;
}

:is(.page-id-18, .page-id-19575, .page-id-16650, .page-id-16941, .postid-23054) .elementor .elementor-element .elementor-button:hover,
:is(.page-id-18, .page-id-19575, .page-id-16650, .page-id-16941, .postid-23054) .elementor .elementor-element .elementor-button:focus-visible {
	background: var(--action-hover);
	color: var(--on-action);
}

/* Card degli annunci: fondo card, raggio 4 px, titolo da 18 px. */
:is(.page-id-18, .page-id-19575, .page-id-16650) .item-listing-wrap .item-wrap {
	background: var(--card);
	border-radius: var(--radius-sm);
}

:is(.page-id-18, .page-id-19575, .page-id-16650) .item-listing-wrap .item-title {
	font-size: 1.125rem;
	line-height: 1.3;
}

/* 4.3 Immobili */
.page-id-19575 .page-title-wrap {
	padding: var(--space-40) 0;
	background: var(--tint);
}

.page-id-19575 .page-title-wrap .page-title {
	font-family: var(--font-display);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.1;
}

.page-id-19575 .advanced-search-nav {
	background: var(--card);
	border-bottom: 1px solid var(--hairline);
}

.page-id-19575 .advanced-search-nav .form-control,
.page-id-19575 .advanced-search-nav .bootstrap-select > .dropdown-toggle {
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	color: var(--ink);
}

/* Il pulsante Cerca e' verde (#28a745) nelle opzioni di Houzez (adv_search_btn_bg): qui prende il colore d'azione. */
.page-id-19575 .btn-search.btn-secondary {
	background: var(--action);
	border-color: var(--action);
	color: var(--on-action);
	font-weight: 600;
}

.page-id-19575 .btn-search.btn-secondary:hover,
.page-id-19575 .btn-search.btn-secondary:focus-visible {
	background: var(--action-hover);
	border-color: var(--action-hover);
}

/* 4.7 Fluent Forms: aspetto dei moduli del sito e modulo di valutazione a due colonne. */
.fluentform .ff-el-form-control {
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	color: var(--ink);
}

.fluentform .ff-el-input--label label {
	color: var(--ink);
	font-weight: 500;
}

.fluentform .ff-btn-submit.ff_btn_style {
	padding: 18px 40px;
	border-radius: var(--radius-md);
	background-color: var(--action);
	color: var(--on-action);
	font-weight: 600;
}

.fluentform .ff-btn-submit.ff_btn_style:hover,
.fluentform .ff-btn-submit.ff_btn_style:focus-visible {
	background-color: var(--action-hover);
}

/* Modulo di valutazione (n. 4): indirizzo, consensi e pulsante a tutta larghezza, il resto su due colonne. */
@media (min-width: 640px) {
	.fluent_form_4 fieldset {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
	}

	.fluent_form_4 fieldset > .ff-name-address-wrapper,
	.fluent_form_4 fieldset > .ff-custom_html,
	.fluent_form_4 fieldset > .ff-el-input--content,
	.fluent_form_4 fieldset > .ff_submit_btn_wrapper,
	.fluent_form_4 fieldset > .ff-el-group:has(.ff-el-form-check-radio),
	.fluent_form_4 fieldset > .ff-hpsf-container,
	.fluent_form_4 fieldset > .ff_screen_reader_title,
	.fluent_form_4 fieldset > .ff-form-inline-style {
		grid-column: 1 / -1;
	}
}

/* 4.8 Widget Houzez nelle pagine Elementor: telefono. */
@media (max-width: 767px) {
	/* La ricerca Houzez (Search Builder): i menu con testo lungo occupano una riga, prezzo e superficie restano in coppia. */
	.houzez-search-builder-wrapper .elementor-form-fields-wrapper > :is(.elementor-field-group-field-cities, .elementor-field-group-field-types, .elementor-field-group-field-status, .elementor-field-group-field-beds, .elementor-field-group-field-baths, .elementor-field-group-field-labels, .elementor-field-group-field-states, .elementor-field-group-field-areas).elementor-column {
		width: 100%;
		flex: 0 0 100%;
		max-width: 100%;
	}
}

/* Tessere Houzez Grids: se la tipologia non ha un'immagine valida resta il fondo prugna, non il grigio. */
.taxonomy-grids-module .taxonomy-item {
	background-color: var(--plum);
}

/* 4.9 Hero della Home (elemento 73672c16): a tutto schermo; l'intestazione (129 px) e' sopra la hero, assoluta e trasparente
 * solo nella home (regola nel layout dell'intestazione). Il video parte solo da 1025 px (script nel contenuto). */
.elementor .elementor-element.elementor-element-73672c16 {
	min-height: 100vh;
	min-height: 100svh;
}

/* Il video sta in un widget HTML dentro lo slot assoluto: il widget deve riempire lo slot, altrimenti il video ha altezza 0. */
.elementor .elementor-element.elementor-element-73672c16 {
	justify-content: flex-end;
}

.elementor [data-id="7ad5498c"] .elementor-widget {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.elementor [data-id="7ad5498c"] .m-hero__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Testo a sinistra (50 %) e ricerca a destra (50 %: 80 % campo e 20 % pulsante), sulla stessa riga in basso. Su desktop e tablet; sotto i 768 px uno sotto l'altro. */
.elementor .elementor-element.elementor-element-2b14a591 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: auto auto;
	align-items: end;
	gap: 16px 0;
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	padding: 177px clamp(16px, 3vw, 30px) clamp(48px, 10vh, 104px);
}

.elementor [data-id="73f9c313"] {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	padding-inline-end: 48px;
}

.elementor [data-id="3f168814"] {
	grid-column: 1;
	grid-row: 2;
	align-self: start;
	padding-inline-end: 48px;
}

.elementor [data-id="1c048f38"] {
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: end;
	margin: 0;
	padding: 0;
}

.elementor [data-id="1c048f38"] .elementor-widget,
.elementor [data-id="b285ab6"] {
	width: 100%;
}

/* Dentro la meta destra: 80 % campo e 20 % pulsante (le colonne col-80 e col-20 del widget), sempre sulla stessa riga da 768 px. */
@media (min-width: 768px) {
	.elementor [data-id="b285ab6"] .elementor-form-fields-wrapper {
		flex-wrap: nowrap;
	}

	.elementor [data-id="b285ab6"] .elementor-field-group-field-keyword {
		flex: 0 0 80%;
		width: 80%;
		max-width: 80%;
	}

	.elementor [data-id="b285ab6"] .elementor-field-type-submit {
		flex: 0 0 20%;
		width: 20%;
		max-width: 20%;
	}
}

.elementor [data-id="b285ab6"] .form-control,
.elementor [data-id="b285ab6"] input[name="keyword"] {
	height: 56px;
	border: 0;
	border-radius: var(--radius-md);
	font: 400 16px/24px var(--font-sans);
}

.elementor [data-id="b285ab6"] .houzez-search-button,
.elementor [data-id="b285ab6"] button[type="submit"] {
	height: 56px;
	border-radius: var(--radius-md);
	font: 600 18px/18px var(--font-sans);
}

@media (max-width: 767px) {
	.elementor .elementor-element.elementor-element-2b14a591 {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 16px;
	}

	.elementor [data-id="73f9c313"],
	.elementor [data-id="3f168814"] {
		padding-inline-end: 0;
	}

	.elementor [data-id="1c048f38"] {
		grid-column: 1;
		grid-row: 3;
	}
}

/* 5. Card immobile (mockup "Card immobile"): le card di Houzez (griglia v1) ridisegnate col CSS, nessun markup cambiato.
 * Ordine: foto con etichette e pulsanti, prezzo, titolo, indirizzo, dati, tipologia e "Dettagli". Data e agente non si mostrano. */
.listing-view.grid-view {
	--bs-gutter-x: 30px;
	--bs-gutter-y: 30px;
}

.item-listing-wrap.item-wrap-v1 .item-wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--hairline);
	border-radius: var(--radius-sm);
	background: var(--card);
	box-shadow: none;
	color: var(--ink);
	transition: border-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.item-listing-wrap.item-wrap-v1 .item-wrap:hover,
.item-listing-wrap.item-wrap-v1 .item-wrap:focus-within {
	border-color: var(--action);
}

.item-listing-wrap.item-wrap-v1 .item-wrap > .d-flex {
	position: static;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.item-listing-wrap.item-wrap-v1 .item-header {
	display: contents;
}

.item-listing-wrap.item-wrap-v1 .listing-image-wrap {
	order: 0;
	position: relative;
	align-self: stretch;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.item-listing-wrap.item-wrap-v1 .listing-image-wrap .slick-list,
.item-listing-wrap.item-wrap-v1 .listing-image-wrap .slick-track,
.item-listing-wrap.item-wrap-v1 .listing-image-wrap .slide-img,
.item-listing-wrap.item-wrap-v1 .listing-image-wrap .listing-thumb,
.item-listing-wrap.item-wrap-v1 .listing-image-wrap img {
	height: 100%;
}

.item-listing-wrap.item-wrap-v1 .listing-image-wrap img {
	width: 100%;
	object-fit: cover;
}

.item-listing-wrap.item-wrap-v1 .listing-image-wrap .slick-arrow,
.item-listing-wrap.item-wrap-v1 .listing-image-wrap .slick-dots {
	display: none;
}

/* Etichette in alto a sinistra */
.item-listing-wrap.item-wrap-v1 .label {
	display: inline-block;
	margin: 0;
	padding: 6px 10px;
	border-radius: var(--radius-sm);
	font: 600 12px/16px var(--font-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--on-action);
}

.item-listing-wrap.item-wrap-v1 .label-featured {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	background: #8f3e5c;
}

.item-listing-wrap.item-wrap-v1 .labels-wrap {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	max-width: 60%;
	flex-wrap: wrap;
}

.item-listing-wrap.item-wrap-v1 .label-featured + .labels-wrap {
	left: 142px;
}

.item-listing-wrap.item-wrap-v1 .labels-wrap .label {
	background: var(--plum);
}

.item-listing-wrap.item-wrap-v1 .labels-wrap .label[href*="ribassat"] {
	background: #1e5a2e;
}

/* Pulsanti in alto a destra: preferiti e confronto */
.item-listing-wrap.item-wrap-v1 .item-tools {
	position: absolute;
	top: 8px;
	right: 8px;
	bottom: auto;
	left: auto;
	z-index: 3;
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.item-listing-wrap.item-wrap-v1 .item-tool.item-preview {
	display: none;
}

.item-listing-wrap.item-wrap-v1 .item-tool > span {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--card);
	color: var(--plum);
	cursor: pointer;
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.item-listing-wrap.item-wrap-v1 .item-tool > span:hover {
	background: var(--tint);
}

.item-listing-wrap.item-wrap-v1 .item-tool i,
.item-listing-wrap.item-wrap-v1 .item-amenities i,
.item-listing-wrap.item-wrap-v1 .item-address i {
	display: block;
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	font-size: 0;
	line-height: 0;
	background: currentColor;
	-webkit-mask: var(--ic) center / contain no-repeat;
	mask: var(--ic) center / contain no-repeat;
}

.item-listing-wrap.item-wrap-v1 .item-tool i::before,
.item-listing-wrap.item-wrap-v1 .item-amenities i::before,
.item-listing-wrap.item-wrap-v1 .item-address i::before {
	content: none;
}

.item-listing-wrap.item-wrap-v1 .item-favorite i {
	--ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1.1L12 21l7.8-7.5 1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");
}

.item-listing-wrap.item-wrap-v1 .item-compare i {
	--ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3 4 7l4 4M4 7h16M16 21l4-4-4-4M20 17H4'/%3E%3C/svg%3E");
}

/* Prezzo sotto la foto */
.item-listing-wrap.item-wrap-v1 .item-price-wrap {
	order: 1;
	position: static;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-self: stretch;
	margin: 0;
	padding: 20px 20px 0;
	background: transparent;
	list-style: none;
}

.item-listing-wrap.item-wrap-v1 .item-price-wrap .item-price,
.item-listing-wrap.item-wrap-v1 .item-price-wrap .price {
	margin: 0;
	padding: 0;
	background: transparent;
	font: 700 28px/32px var(--font-display);
	color: var(--ink);
}

.item-listing-wrap.item-wrap-v1 .item-price-wrap s {
	font: 400 17px/24px var(--font-sans);
	color: var(--ink-muted);
}

/* Corpo: titolo, indirizzo, dati, tipologia e Dettagli */
.item-listing-wrap.item-wrap-v1 .item-body {
	order: 2;
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-content: flex-start;
	align-self: stretch;
	width: 100%;
	position: relative;
	padding: 8px 20px 4px;
}

.item-listing-wrap.item-wrap-v1 .item-title {
	flex: 0 0 100%;
	margin: 0;
	font: 700 18px/26px var(--font-sans);
}

.item-listing-wrap.item-wrap-v1 .item-title a {
	color: var(--ink);
	text-decoration: none;
}

.item-listing-wrap.item-wrap-v1 .item-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.item-listing-wrap.item-wrap-v1 .item-address {
	flex: 0 0 100%;
	display: flex;
	gap: 6px;
	align-items: flex-start;
	margin: 4px 0 0;
	font: 400 15px/23px var(--font-sans);
	color: var(--ink-muted);
}

.item-listing-wrap.item-wrap-v1 .item-address i {
	width: 16px;
	height: 16px;
	margin-top: 3px;
	--ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.item-listing-wrap.item-wrap-v1 .item-amenities {
	display: flex;
	flex: 0 0 100%;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.item-listing-wrap.item-wrap-v1 .item-amenities li {
	display: flex;
	gap: 6px;
	align-items: center;
	margin: 14px 18px 0 0;
	font: 500 14px/20px var(--font-sans);
	color: var(--ink);
}

.item-listing-wrap.item-wrap-v1 .item-amenities li i {
	width: 18px;
	height: 18px;
	color: var(--action);
}

.item-listing-wrap.item-wrap-v1 .item-amenities-text {
	display: none;
}

.item-listing-wrap.item-wrap-v1 .h-beds i {
	--ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16M2 8h18a2 2 0 0 1 2 2v10M2 17h20M6 8v9'/%3E%3C/svg%3E");
}

.item-listing-wrap.item-wrap-v1 .h-baths i {
	--ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16v4a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3zM6 12V5a2 2 0 0 1 4 0M7 19l-1 2M17 19l1 2'/%3E%3C/svg%3E");
}

/* Superficie e terreno: stesse icone della scheda immobile, dal font di Houzez (icon-ruler-triangle e
 * icon-real-estate-dimensions-map), non le sagome SVG delle altre voci. Nella card e nella panoramica della scheda devono essere uguali. */
.item-listing-wrap.item-wrap-v1 .h-area i,
.item-listing-wrap.item-wrap-v1 .h-land-area i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 1;
	background: none;
	-webkit-mask: none;
	mask: none;
	color: var(--action);
}

.item-listing-wrap.item-wrap-v1 .h-area i::before {
	content: "\e936";
}

.item-listing-wrap.item-wrap-v1 .h-land-area i::before {
	content: "\e952";
}

.item-listing-wrap.item-wrap-v1 .h-beds .hz-figure::after {
	content: " camere";
}

.item-listing-wrap.item-wrap-v1 .h-baths .hz-figure::after {
	content: " bagni";
}

.item-listing-wrap.item-wrap-v1 .h-land-area::after {
	content: " terreno";
}

.item-listing-wrap.item-wrap-v1 .item-amenities li.h-type {
	flex: 0 0 100%;
	box-sizing: border-box;
	min-height: 58px;
	margin: 16px 0 0;
	padding: 14px 100px 0 0;
	align-items: center;
	border-top: 1px solid var(--hairline);
	font: 600 12px/16px var(--font-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-muted);
}

.item-listing-wrap.item-wrap-v1 .btn-item {
	position: absolute;
	right: 20px;
	bottom: 4px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font: 500 15px/20px var(--font-sans);
	color: var(--action);
	text-transform: none;
}

.item-listing-wrap.item-wrap-v1 .btn-item::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.item-listing-wrap.item-wrap-v1 .btn-item:hover {
	background: transparent;
	color: var(--action-hover);
}

/* Data di pubblicazione e agente: non si mostrano */
.item-listing-wrap.item-wrap-v1 .item-footer {
	max-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: hidden;
	visibility: hidden;
}

/* 6. Lista immobili (mockup "Lista immobili"): filtri, ordinamento e paginazione dei widget Houzez.
 * La colonna dei filtri e' l'elemento 76c67f43 della pagina Immobili. I contenitori 931a494 (fascia) e 374242eb (corpo)
 * hanno lo stesso margine laterale delle altre pagine. */
.elementor.elementor-19575 :is(.elementor-element-931a494, .elementor-element-374242eb) {
	box-sizing: border-box;
	padding-inline: clamp(16px, 3vw, 30px);
}

.elementor-element-76c67f43 .elementor-form-fields-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 12px;
}

.elementor-element-76c67f43 .elementor-field-group {
	margin: 0;
	padding: 0;
}

.elementor-element-76c67f43 .elementor-col-100 {
	flex: 0 0 100%;
	width: 100%;
}

.elementor-element-76c67f43 .elementor-col-50 {
	flex: 0 0 calc(50% - 6px);
	width: calc(50% - 6px);
}

.elementor-element-76c67f43 .elementor-field-label {
	display: block;
	margin: 0 0 6px;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.elementor-element-76c67f43 .bootstrap-select {
	width: 100%;
}

.elementor-element-76c67f43 .form-control,
.elementor-element-76c67f43 .bootstrap-select > .dropdown-toggle {
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background-color: var(--card);
	box-shadow: none;
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.elementor-element-76c67f43 .bootstrap-select.form-control {
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor-element-76c67f43 .elementor-col-50 .bootstrap-select > .dropdown-toggle {
	padding: 0 10px;
	font-size: 15px;
}

.elementor-element-76c67f43 .form-control::placeholder {
	color: var(--placeholder);
	opacity: 1;
}

.elementor-element-76c67f43 .houzez-search-button {
	width: 100%;
	height: 56px;
	margin-top: 4px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: var(--action);
	font: 600 18px/18px var(--font-sans);
	color: var(--on-action);
}

.elementor-element-76c67f43 .houzez-search-button:hover {
	border-color: var(--action-hover);
	background: var(--action-hover);
}

.elementor-element-76c67f43 .elementor-field-type-clear-button button,
.elementor-element-76c67f43 .elementor-field-type-clear-button a {
	width: 100%;
	height: 44px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: transparent;
	font: 600 16px/18px var(--font-sans);
	color: var(--action);
}

.sort-by .sort-by-title {
	margin: 0 10px 0 0;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.sort-by .bootstrap-select > .dropdown-toggle {
	min-width: 260px;
	height: 48px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

nav .pagination {
	gap: 8px;
	flex-wrap: wrap;
}

nav .pagination .page-item .page-link {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font: 500 16px/20px var(--font-sans);
	color: var(--ink);
}

nav .pagination .page-item.active .page-link {
	border-color: var(--action);
	background: var(--action);
	color: var(--on-action);
}

/* 7. Singolo immobile (mockup "Singolo immobile"): layout 33496 del Theme Builder e widget Houzez ridisegnati col CSS.
 * Fascia in alto: dcbf856; galleria: ab010001; corpo: 223e022f (colonna 5e5920f0, laterale e61032f); simili: 1055e9da.
 * I valori delle fasce e dei contenitori sono qui, non in Elementor, per tenerli uguali a header e footer (1440 px). */
body.single-property {
	background: var(--paper);
}

.elementor.elementor-33496 .elementor-element-dcbf856 {
	padding: 28px 0 clamp(32px, 4vw, 48px);
	background: var(--card);
	border-bottom: 1px solid var(--hairline);
}

.elementor.elementor-33496 .elementor-element-ab010001 {
	padding: clamp(24px, 3vw, 40px) 0 0;
	background: transparent;
}

.elementor.elementor-33496 .elementor-element-223e022f {
	padding: clamp(32px, 5vw, 56px) 0 clamp(48px, 7vw, 96px);
	background: transparent;
}

.elementor.elementor-33496 .elementor-element-1055e9da {
	padding: clamp(48px, 7vw, 88px) 0;
	background: var(--tint);
}

.elementor.elementor-33496 .elementor-element-1446a835,
.elementor.elementor-33496 .elementor-element-ab010002,
.elementor.elementor-33496 .elementor-element-1c733be0,
.elementor.elementor-33496 .elementor-element-5901cce2 {
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(16px, 3vw, 30px);
}

/* Testata: briciole, etichette, titolo, indirizzo; a destra prezzo e ribasso; sotto gli strumenti */
.elementor.elementor-33496 .elementor-element-648dea92 {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.elementor.elementor-33496 .breadcrumb-wrap .breadcrumb {
	margin: 0;
	padding: 0;
	font: 400 15px/23px var(--font-sans);
	color: var(--ink-muted);
}

.elementor.elementor-33496 .breadcrumb-wrap .breadcrumb a {
	color: var(--action);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor.elementor-33496 .elementor-element-ab010003 {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px 40px;
}

.elementor.elementor-33496 .elementor-element-ab010004 {
	display: flex;
	flex: 1 1 420px;
	flex-direction: column;
	gap: 10px;
	max-width: 720px;
}

.elementor.elementor-33496 .elementor-element-ab010005 {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.elementor.elementor-33496 .elementor-element-ab010005 .ele-labels-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.elementor.elementor-33496 .elementor-element-ab010005 .label {
	display: inline-block;
	margin: 0;
	padding: 6px 10px;
	border-radius: var(--radius-sm);
	background: var(--plum);
	font: 600 12px/16px var(--font-sans);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--on-action);
}

.elementor.elementor-33496 .elementor-element-ab010005 .label[href*="ribassat"] {
	background: #1e5a2e;
}

.elementor.elementor-33496 h1.property_title {
	margin: 0;
	font: 700 40px/44px var(--font-display);
	letter-spacing: -0.3px;
	color: var(--ink);
}

.elementor.elementor-33496 address.item-address {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font: 400 18px/26px var(--font-sans);
	color: var(--ink-muted);
}

.elementor.elementor-33496 address.item-address i {
	color: var(--action);
	font-size: 20px;
}

.elementor.elementor-33496 .elementor-element-ab010006 {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
	text-align: right;
}

.elementor.elementor-33496 .hz-ele-price {
	margin: 0;
	padding: 0;
	list-style: none;
}

.elementor.elementor-33496 .hz-ele-price .price {
	font: 700 48px/52px var(--font-display);
	color: var(--ink);
}

.elementor.elementor-33496 .hz-ele-price s,
.elementor.elementor-33496 .hz-ele-price del {
	font: 400 18px/26px var(--font-sans);
	color: var(--ink-muted);
}

.elementor.elementor-33496 .elementor-element-ab010006 .mcomp-drop {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	font: 500 16px/24px var(--font-sans);
	color: #1e5a2e;
}

.elementor.elementor-33496 .elementor-element-ab010006 .mcomp-drop__title {
	margin: 0;
	color: #1e5a2e;
	font-weight: 600;
}

.elementor.elementor-33496 .ele-item-tools {
	flex-wrap: wrap;
	gap: 10px;
}

.elementor.elementor-33496 .ele-item-tools .item-tool > span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: auto;
	height: 44px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font: 500 15px/20px var(--font-sans);
	white-space: nowrap;
	color: var(--ink);
	cursor: pointer;
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.elementor.elementor-33496 .ele-item-tools .item-tool {
	width: auto;
	height: auto;
	margin: 0;
}

.elementor.elementor-33496 .ele-item-tools .item-tool > span:hover {
	background: var(--tint);
}

.elementor.elementor-33496 .ele-item-tools .item-tool > span i {
	font-size: 18px;
}

.elementor.elementor-33496 .ele-item-tools .houzez-favorite > span::after {
	content: "Aggiungi ai preferiti";
}

.elementor.elementor-33496 .ele-item-tools .houzez-share > span::after {
	content: "Condividi";
}

.elementor.elementor-33496 .ele-item-tools .houzez-print > span::after {
	content: "Stampa";
}

/* Galleria: una foto grande e quattro piccole; il resto resta nel gruppo della finestra di ingrandimento. */
.elementor.elementor-33496 .property-gallery-grid-wrap {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 12px;
	height: clamp(280px, 34vw, 480px);
	margin: 0;
}

.elementor.elementor-33496 .property-gallery-grid-wrap > .col {
	display: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
}

.elementor.elementor-33496 .property-gallery-grid-wrap > .col:nth-child(-n + 5) {
	display: block;
	min-height: 0;
}

.elementor.elementor-33496 .property-gallery-grid-wrap > .col:first-child {
	grid-row: 1 / 3;
}

.elementor.elementor-33496 .property-gallery-grid-wrap .gallery-grid-item {
	position: relative;
	display: block;
	height: 100%;
}

.elementor.elementor-33496 .property-gallery-grid-wrap img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: var(--radius-sm);
	object-fit: cover;
}

.elementor.elementor-33496 .property-gallery-grid-wrap > .col:nth-child(3) .gallery-grid-item::after {
	content: "Vedi tutte le foto";
	position: absolute;
	top: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font: 500 15px/20px var(--font-sans);
	color: var(--ink);
}

@media (max-width: 640px) {
	.elementor.elementor-33496 .property-gallery-grid-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
		height: auto;
	}

	.elementor.elementor-33496 .property-gallery-grid-wrap > .col:first-child {
		grid-column: 1 / 3;
		grid-row: auto;
		aspect-ratio: 3 / 2;
	}

	.elementor.elementor-33496 .property-gallery-grid-wrap > .col:nth-child(n + 2) {
		aspect-ratio: 4 / 3;
	}
}

/* Corpo: colonna principale e colonna laterale (mockup: 1fr e 400 px) */
.elementor.elementor-33496 .elementor-element-1c733be0 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.elementor.elementor-33496 .elementor-element-5e5920f0 {
	display: flex;
	flex-direction: column;
	gap: clamp(36px, 5vw, 56px);
	width: auto;
	min-width: 0;
}

.elementor.elementor-33496 .elementor-element-e61032f {
	display: grid;
	gap: 20px;
	align-content: start;
	width: auto;
	min-width: 0;
}

@media (max-width: 980px) {
	.elementor.elementor-33496 .elementor-element-1c733be0 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Sezioni dei widget Houzez: senza riquadro, con il titolo del mockup */
.elementor.elementor-33496 .property-section-wrap,
.elementor.elementor-33496 .property-section-wrap .block-wrap,
.elementor.elementor-33496 .property-section-wrap .block-content-wrap {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.elementor.elementor-33496 .property-section-wrap .block-title-wrap {
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor.elementor-33496 .property-section-wrap .block-title-wrap h2 {
	margin: 0;
	font: 600 28px/32px var(--font-display);
	color: var(--ink);
}

/* Dati principali: riquadri */
.elementor.elementor-33496 .property-overview-wrap .block-title-wrap {
	height: 0;
	margin: 0;
	overflow: hidden;
	visibility: hidden;
}

.elementor.elementor-33496 .property-overview-data .row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
	margin: 0;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.elementor.elementor-33496 .property-overview-data .row > .col {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
}

.elementor.elementor-33496 .property-overview-data ul {
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
	margin: 0;
	padding: 14px;
	border: 1px solid var(--hairline);
	border-radius: var(--radius-sm);
	background: var(--card);
}

/* Riquadro su tre righe: icona in alto, poi il valore, poi l'etichetta (l'etichetta e' il secondo li del riquadro). */
.elementor.elementor-33496 .property-overview-data .property-overview-item {
	flex-direction: column;
	align-items: flex-start !important;
	gap: 8px;
}

.elementor.elementor-33496 .property-overview-data .property-overview-item i {
	margin: 0 !important;
	color: var(--action);
	font-size: 24px;
	line-height: 1;
}

/* Tipologia: il widget Houzez non disegna l'icona di questa voce (le altre sue icone vengono dal font del tema), quindi si aggiunge
 * qui la stessa icona Font Awesome Pro (fap73-classic-regular-house-building, codice e810 del set dell'Elementor) con lo stesso
 * colore e la stessa misura delle altre. Il font e' caricato dalla pagina stessa insieme alle icone di Elementor. */
.elementor.elementor-33496 .property-overview-data ul:has(> .h-types) > .property-overview-item::before {
	content: "\e1b1";
	font-family: "FAP73-classic-regular";
	font-weight: 400;
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	color: var(--action);
}

.elementor.elementor-33496 .property-overview-data .property-overview-item strong {
	font: 700 18px/24px var(--font-display);
	color: var(--ink);
	overflow-wrap: break-word;
}

.elementor.elementor-33496 .property-overview-data .hz-meta-label {
	font: 400 14px/20px var(--font-sans);
	color: var(--ink-muted);
}

/* Descrizione */
.elementor.elementor-33496 .hzele-property-content-wrap p {
	max-width: none;
	margin: 0 0 16px;
	font: 400 18px/29px var(--font-sans);
	color: var(--ink);
	overflow-wrap: break-word;
	hyphens: manual;
	text-wrap: pretty;
}

@media (max-width: 767px) {
	.elementor.elementor-33496 .hzele-property-content-wrap p {
		font-size: 17px;
		line-height: 27px;
	}
}

/* Dettagli: coppie voce e valore su due colonne */
.elementor.elementor-33496 :is(.detail-wrap, .property-address-wrap .block-content-wrap) ul.row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 0 48px;
	margin: 0;
	padding: 0;
	--bs-gutter-x: 0;
}

.elementor.elementor-33496 :is(.detail-wrap, .property-address-wrap .block-content-wrap) ul.row > li {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
}

.elementor.elementor-33496 :is(.detail-wrap, .property-address-wrap .block-content-wrap) .list-lined-item {
	gap: 16px;
	padding: 14px 0;
	border: 0;
	border-top: 1px solid var(--hairline);
	font: 400 16px/24px var(--font-sans);
}

.elementor.elementor-33496 :is(.detail-wrap, .property-address-wrap .block-content-wrap) .list-lined-item strong {
	font-weight: 400;
	color: var(--ink-muted);
}

.elementor.elementor-33496 :is(.detail-wrap, .property-address-wrap .block-content-wrap) .list-lined-item span {
	font-weight: 500;
	text-align: right;
	color: var(--ink);
}

/* Dotazioni */
.elementor.elementor-33496 .property-features-wrap ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 4px 24px;
	margin: 0;
	padding: 0;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.elementor.elementor-33496 .property-features-wrap ul > li {
	display: flex;
	align-items: center;
	width: auto;
	max-width: none;
	min-height: 44px;
	margin: 0;
	padding: 0;
	font: 500 16px/24px var(--font-sans);
}

.elementor.elementor-33496 .property-features-wrap ul > li i {
	color: var(--action);
	font-size: 22px;
}

.elementor.elementor-33496 .property-features-wrap ul > li a {
	color: var(--ink);
	text-decoration: none;
}

/* Calcolo del mutuo ([martina_mutuo], tema figlio) */
.elementor.elementor-33496 .ms-sec-title {
	margin: 0;
	font: 600 28px/32px var(--font-display);
	color: var(--ink);
}

.elementor.elementor-33496 .ms-sec-lead {
	max-width: 62ch;
	margin: 8px 0 0;
	color: var(--ink-muted);
}

.elementor.elementor-33496 .ms-mutuo__box {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 28px;
	margin-top: 20px;
	padding: 28px;
	border: 1px solid var(--hairline);
	border-radius: var(--radius-sm);
	background: var(--card);
}

.elementor.elementor-33496 .ms-mutuo__fields {
	display: grid;
	gap: 18px;
	align-content: start;
}

.elementor.elementor-33496 .ms-mutuo label {
	display: block;
	margin: 0 0 6px;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.elementor.elementor-33496 .ms-mutuo input[type="number"] {
	width: 100%;
	height: 52px;
	padding: 0 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.elementor.elementor-33496 .ms-mutuo input[type="range"] {
	width: 100%;
	height: 44px;
	accent-color: var(--action);
}

.elementor.elementor-33496 .ms-mutuo__hint {
	margin: 6px 0 0;
	font: 400 14px/20px var(--font-sans);
	color: var(--ink-muted);
}

.elementor.elementor-33496 .ms-mutuo__result {
	align-self: start;
	padding: 24px;
	border-radius: var(--radius-sm);
	background: var(--plum);
	color: var(--on-action);
}

.elementor.elementor-33496 .ms-mutuo__result .ms-mutuo__hint {
	color: var(--on-action);
}

.elementor.elementor-33496 .ms-mutuo__label {
	margin: 0;
	font: 500 16px/24px var(--font-sans);
}

.elementor.elementor-33496 .ms-mutuo__monthly {
	margin: 4px 0 0;
	font: 700 48px/52px var(--font-display);
}

.elementor.elementor-33496 .ms-mutuo__bar {
	display: flex;
	height: 10px;
	margin-top: 16px;
	border-radius: 5px;
	overflow: hidden;
	background: var(--pink-soft);
}

.elementor.elementor-33496 .ms-mutuo__bar span {
	display: block;
	background: var(--on-action);
}

.elementor.elementor-33496 .ms-mutuo__result dl {
	margin: 12px 0 0;
}

.elementor.elementor-33496 .ms-mutuo__result dl > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-top: 1px solid rgba(254, 251, 254, 0.25);
	font: 400 16px/24px var(--font-sans);
}

.elementor.elementor-33496 .ms-mutuo__result dd {
	margin: 0;
	font-weight: 700;
}

.elementor.elementor-33496 .ms-mutuo__note {
	width: 100%;
	max-width: none;
	margin: 12px 0 0;
	font: italic 400 13px/20px var(--font-sans);
	color: var(--ink-muted);
	text-wrap: pretty;
}

.elementor.elementor-33496 .ms-mutuo__note strong {
	font-weight: 600;
}

/* Colonna laterale: visita, richiesta di informazioni, scheda PDF */
.elementor.elementor-33496 .elementor-element-ab010008,
.elementor.elementor-33496 .elementor-element-ab010009 {
	box-sizing: border-box;
	padding: 28px;
	border: 1px solid var(--hairline);
	border-radius: var(--radius-sm);
	background: var(--card);
}

.elementor.elementor-33496 .elementor-element-ab010009 {
	display: grid;
	gap: 18px;
}

.elementor.elementor-33496 .elementor-element-ab010008 .block-title-wrap h2 {
	font-size: 28px;
}

.elementor.elementor-33496 .elementor-element-ab010008 .block-title-wrap h3 {
	margin: 8px 0 0;
	font: 600 16px/24px var(--font-sans);
	color: var(--ink);
}

.elementor.elementor-33496 .elementor-element-e61032f .row {
	--bs-gutter-x: 0;
	--bs-gutter-y: 14px;
}

.elementor.elementor-33496 .elementor-element-e61032f .row > [class*="col-"] {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
}

.elementor.elementor-33496 .elementor-element-e61032f label {
	margin: 0 0 6px;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.elementor.elementor-33496 .elementor-element-e61032f .form-control,
.elementor.elementor-33496 .elementor-element-e61032f .form-select,
.elementor.elementor-33496 .elementor-element-e61032f .bootstrap-select > .dropdown-toggle {
	min-height: 52px;
	padding: 0 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background-color: var(--card);
	box-shadow: none;
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.elementor.elementor-33496 .elementor-element-e61032f .bootstrap-select.form-control {
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor.elementor-33496 .elementor-element-e61032f textarea.form-control {
	min-height: 120px;
	padding-top: 12px;
}

.elementor.elementor-33496 .elementor-element-e61032f button[type="submit"],
.elementor.elementor-33496 .elementor-element-e61032f .btn-primary {
	width: 100%;
	height: 56px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: var(--action);
	font: 600 18px/18px var(--font-sans);
	color: var(--on-action);
}

.elementor.elementor-33496 .elementor-element-e61032f button[type="submit"]:hover,
.elementor.elementor-33496 .elementor-element-e61032f .btn-primary:hover {
	border-color: var(--action-hover);
	background: var(--action-hover);
}

.elementor.elementor-33496 .elementor-element-ab010009 .elementor-widget-heading .elementor-heading-title {
	margin: 0;
	font: 600 28px/32px var(--font-display);
	color: var(--ink);
}

.elementor.elementor-33496 .elementor-element-ab010009 .elementor-icon-list-item a,
.elementor.elementor-33496 .elementor-element-ab010009 .elementor-icon-list-text {
	font: 500 18px/24px var(--font-sans);
	color: var(--action);
}

.elementor.elementor-33496 .elementor-element-ab01000a .mcomp-pdfbox {
	margin: 0;
}

/* Simili e posizione */
.elementor.elementor-33496 .elementor-element-5836f435 .property-section-wrap .block-title-wrap h2 {
	font: 700 40px/44px var(--font-display);
	letter-spacing: -0.3px;
}

.elementor.elementor-33496 .elementor-element-ab010007 .mcomp-zonebox {
	margin: 0;
	border-radius: var(--radius-sm);
	background: var(--card);
}

.elementor.elementor-33496 .elementor-element-e61032f .btn-secondary {
	width: 100%;
	height: 56px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: var(--action);
	font: 600 18px/18px var(--font-sans);
	color: var(--on-action);
}

.elementor.elementor-33496 .elementor-element-e61032f .btn-secondary:hover {
	border-color: var(--action-hover);
	background: var(--action-hover);
}

.elementor.elementor-33496 .elementor-element-e61032f .btn-secondary-outlined {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: transparent;
	font: 600 16px/20px var(--font-sans);
	color: var(--action);
}

.elementor.elementor-33496 .elementor-element-e61032f .btn-secondary-outlined:hover {
	background: var(--tint);
}

.elementor.elementor-33496 .elementor-element-6af3f15f,
.elementor.elementor-33496 .elementor-element-4285516 {
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor.elementor-33496 .elementor-element-ab010009 .elementor-widget-icon-list,
.elementor.elementor-33496 .elementor-element-ab010009 .elementor-widget-heading {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

/* Rifiniture del singolo immobile: contenitori nuovi senza il riquadro di base, dettagli senza fondo, moduli senza doppio riquadro */
.elementor.elementor-33496 :is(.elementor-element-ab010003, .elementor-element-ab010004, .elementor-element-ab010005, .elementor-element-ab010006, .elementor-element-ab010007, .elementor-element-ab01000a) {
	padding: 0;
}

.elementor.elementor-33496 .elementor-element-ab010003 {
	flex-direction: row;
}

.elementor.elementor-33496 :is(.elementor-element-ab010004, .elementor-element-ab010006) {
	width: auto;
}

.elementor.elementor-33496 .elementor-element-ab010006 {
	flex: 0 1 auto;
	margin-left: auto;
}

.elementor.elementor-33496 .elementor-element.elementor-element-ade3bf2 ul.ele-item-tools {
	justify-content: flex-start;
}

/* La scheda PDF e il pulsante WhatsApp della scheda: le stesse funzioni ci sono gia' (Stampa e Condividi del tema). */
.elementor.elementor-33496 .mcomp-tool,
.elementor.elementor-33496 .mcomp-pdfbox {
	display: none;
}

.elementor.elementor-33496 .detail-wrap {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor.elementor-33496 :is(.hzele-form-wrap, .property-form-wrap, .property-form) {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.elementor.elementor-33496 .elementor-element-ab010009 .elementor-widget-icon-list .elementor-widget-container,
.elementor.elementor-33496 .elementor-element-ab010009 .elementor-widget-heading .elementor-widget-container {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.elementor.elementor-33496 .elementor-element-cc6ec9b {
	margin-top: 16px;
	border-radius: var(--radius-sm);
	overflow: hidden;
}

/* La barra di ricerca di Houzez sotto l'intestazione non c'e' nel mockup: la ricerca e' nella Home e nei filtri della lista. */
.advanced-search-nav,
.mobile-search-nav {
	display: none;
}

/* 8. Pagine dei servizi (contenuto V4 copiato dalla bozza 33430: gli ID degli elementi sono gli stessi in tutte e sei le pagine).
 * I collegamenti dentro i paragrafi perdono lo stile in linea: si dichiarano qui. */
.elementor [data-id="c474691"] a {
	color: var(--action);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor .elementor-element-6874f7af a:not([class*="e-button"]) {
	color: var(--on-action);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor .elementor-element-6874f7af a:not([class*="e-button"]):hover {
	color: var(--pink-soft);
}

.elementor .elementor-element-44911e01 a:hover p {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Piè di pagina: l'indirizzo non eredita il colore chiaro dal tema. */
.mf address,
.mf address div,
.mf address strong {
	color: var(--on-action);
}

/* 9. Finestra Accedi e Registrati (Houzez, solo da non loggato): grande, centrata, senza scroll su desktop, a due colonne;
 * campi con etichetta, pulsanti del design system, Google e Facebook nel loro stile originale, telefono con prefisso e bandiera. */
.login-register-form .modal-dialog {
	width: calc(100% - 32px);
	max-width: 880px;
	--bs-modal-margin: 16px;
}

.login-register-form .modal-content {
	overflow: visible;
	border: 0;
	border-radius: var(--radius-xl);
	background: var(--card);
	box-shadow: var(--shadow-banner);
}

.login-register-form .modal-header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 28px 40px 0;
	border: 0;
	background: transparent;
}

.login-register-form .login-register-tabs {
	flex: 1 1 auto;
}

.login-register-form .nav-tabs {
	display: flex;
	gap: 4px;
	padding: 4px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--tint);
}

.login-register-form .nav-tabs .nav-item {
	flex: 1 1 0;
	margin: 0;
}

.login-register-form .nav-tabs .nav-link {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0 12px;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	font: 600 17px/20px var(--font-sans);
	color: var(--ink-muted);
}

.login-register-form .nav-tabs .nav-link.active {
	background: var(--card);
	color: var(--action);
	box-shadow: 0 1px 3px rgba(90,53,90, 0.18);
}

.login-register-form .nav-tabs .nav-link:not(.active) {
	background: transparent;
	color: var(--ink-muted);
}

.login-register-form .modal-header .btn.close,
#reset-password-form .modal-header .btn.close {
	position: relative;
	display: block;
	flex: none;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	font-size: 0;
	line-height: 0;
	color: var(--ink);
	opacity: 1;
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.login-register-form .modal-header .btn.close > *,
#reset-password-form .modal-header .btn.close > * {
	display: none;
}

.login-register-form .modal-header .btn.close::before,
#reset-password-form .modal-header .btn.close::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / contain no-repeat;
}

.login-register-form .modal-header .btn.close:hover,
#reset-password-form .modal-header .btn.close:hover {
	background: var(--tint);
	color: var(--ink);
}

.login-register-form .modal-header .btn.close:focus-visible,
#reset-password-form .modal-header .btn.close:focus-visible {
	outline: 3px solid var(--focus-ring);
	outline-offset: 2px;
	box-shadow: none;
}

.login-register-form .modal-body {
	padding: 28px 40px 36px;
}

.login-register-form .form-group {
	margin: 0 0 16px;
}

.login-register-form .form-group-field {
	position: static;
	padding: 0;
	border: 0;
	background: transparent;
}

.login-register-form .form-group-field::before,
.login-register-form .form-group-field::after {
	content: none;
}

.login-register-form .login-form-wrap,
.login-register-form .register-form-wrap {
	padding: 0;
	border: 0;
	background: transparent;
}

.login-register-form .mc-label {
	display: block;
	margin: 0 0 6px;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.login-register-form .mc-hint {
	margin: 6px 0 0;
	font: 400 14px/20px var(--font-sans);
	color: var(--ink-muted);
}

.login-register-form .mc-hint--err {
	color: var(--badge-featured);
}

.login-register-form input.form-control {
	height: 52px;
	padding: 0 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	box-shadow: none;
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.login-register-form input.form-control:focus {
	border-color: var(--action);
	outline: 3px solid var(--focus-ring);
	outline-offset: 0;
	box-shadow: none;
}

.login-register-form input.form-control[aria-invalid="true"] {
	border-color: var(--badge-featured);
}

.login-register-form .mc-pass {
	position: relative;
}

.login-register-form .mc-pass input.form-control {
	padding-right: 96px;
}

.login-register-form .mc-eye {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	font: 600 14px/20px var(--font-sans);
	color: var(--action);
}

.login-register-form .mc-eye:hover {
	background: var(--tint);
}

.login-register-form .form-check-label,
.login-register-form .form-check label,
.login-register-form label:not(.mc-label) {
	font: 400 15px/22px var(--font-sans);
	color: var(--ink);
}

.login-register-form input[type="checkbox"] {
	width: 22px;
	height: 22px;
	margin-right: 10px;
	accent-color: var(--action);
}

.login-register-form a {
	color: var(--action);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.login-register-form .form-tools {
	margin: 0 0 16px;
}

.login-register-form .captcha_wrapper:not(:has(iframe)) {
	margin: 0;
}

/* Pulsanti Accedi e Registrati. */
.login-register-form .btn-primary,
.login-register-form button[type="submit"] {
	width: 100%;
	min-height: 56px;
	border: 2px solid var(--action);
	border-radius: var(--radius-md);
	background: var(--action);
	font: 600 18px/18px var(--font-sans);
	color: var(--on-action);
}

.login-register-form .btn-primary:hover,
.login-register-form button[type="submit"]:hover {
	border-color: var(--action-hover);
	background: var(--action-hover);
}

/* Tabella dei campi: Accedi (nome utente o e-mail, password) e Registrati (nome, cognome, e-mail, telefono, password, consenso)
 * su due colonne da 768 px; il pulsante e il resto occupano tutta la riga. */
@media (min-width: 768px) {
	.login-register-form #houzez_login_form,
	.login-register-form #houzez_register_form {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 20px;
		align-items: start;
	}

	.login-register-form .login-form-wrap,
	.login-register-form .register-form-wrap {
		display: contents;
	}

	.login-register-form #houzez_login_form > .form-tools,
	.login-register-form #houzez_login_form > .captcha_wrapper,
	.login-register-form #houzez_login_form > button,
	.login-register-form #houzez_register_form > .captcha_wrapper,
	.login-register-form #houzez_register_form > button {
		grid-column: 1 / -1;
	}

	/* Il consenso sta accanto alla password, allineato al campo. */
	.login-register-form #houzez_register_form > .form-tools {
		align-self: end;
		display: flex;
		align-items: center;
		min-height: 52px;
		margin-bottom: 16px;
	}
}

@media (max-width: 767px) {
	.login-register-form .modal-header {
		padding: 16px 16px 0;
	}

	.login-register-form .modal-body {
		padding: 20px 16px 24px;
	}

	.login-register-form .modal-dialog {
		width: calc(100% - 16px);
		--bs-modal-margin: 8px;
	}
}

/* Google e Facebook: stile originale dei marchi (Google: fondo bianco, bordo grigio, "G" a quattro colori; Facebook: blu #1877F2,
 * testo bianco, logo bianco). Due colonne su desktop, una su telefono. */
.login-register-form .social-login-wrap {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 20px;
	margin: 4px 0 0;
}

.login-register-form .mc-or {
	display: flex;
	grid-column: 1 / -1;
	align-items: center;
	gap: 16px;
	margin: 0 0 4px;
	font: 400 14px/20px var(--font-sans);
	color: var(--ink-muted);
}

.login-register-form .mc-or::before,
.login-register-form .mc-or::after {
	content: "";
	flex: 1 1 0;
	height: 1px;
	background: var(--hairline);
}

.login-register-form .hz-facebook-login,
.login-register-form .hz-google-login {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0 16px;
	border-radius: var(--radius-md);
	font: 500 16px/20px var(--font-sans);
	text-decoration: none;
}

.login-register-form .hz-facebook-login::before,
.login-register-form .hz-google-login::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.login-register-form .hz-google-login img.google-icon {
	display: none;
}

.login-register-form .hz-google-login {
	border: 1px solid #747775;
	background: #ffffff;
	color: #1f1f1f;
}

.login-register-form .hz-google-login::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E");
}

.login-register-form .hz-google-login:hover,
.login-register-form .hz-google-login:focus-visible {
	border-color: #747775;
	background: #f1f1f1;
	color: #1f1f1f;
}

.login-register-form .hz-facebook-login {
	border: 1px solid #1877f2;
	background: #1877f2;
	color: #ffffff;
}

.login-register-form .hz-facebook-login::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E");
}

.login-register-form .hz-facebook-login:hover,
.login-register-form .hz-facebook-login:focus-visible {
	border-color: #166fe5;
	background: #166fe5;
	color: #ffffff;
}

.login-register-form .hz-facebook-login:focus-visible,
.login-register-form .hz-google-login:focus-visible {
	outline: 3px solid var(--focus-ring);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.login-register-form .social-login-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Telefono con prefisso (intl-tel-input): largo come gli altri campi, bandiera e prefisso a sinistra. */
.login-register-form .iti {
	display: block;
	width: 100%;
}

.login-register-form .iti input.form-control {
	width: 100%;
}

.login-register-form .iti__selected-country-primary {
	border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.login-register-form .iti__selected-dial-code {
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.login-register-form .iti__country-list {
	font: 400 15px/22px var(--font-sans);
	color: var(--ink);
}

.login-register-form .iti__search-input {
	height: 44px;
	font: 400 16px/24px var(--font-sans);
}

/* Schermi bassi (portatili): nessuno scroll nemmeno sulla Registrazione. */
@media (min-width: 768px) and (max-height: 760px) {
	.login-register-form .modal-dialog {
		--bs-modal-margin: 8px;
	}

	.login-register-form .modal-header {
		padding-top: 20px;
	}

	.login-register-form .modal-body {
		padding: 18px 40px 24px;
	}

	.login-register-form .form-group {
		margin-bottom: 10px;
	}

	.login-register-form input.form-control {
		height: 46px;
	}

	.login-register-form .mc-pass input.form-control {
		padding-right: 90px;
	}

	.login-register-form .mc-eye {
		height: 38px;
	}

	.login-register-form #houzez_register_form > .form-tools {
		min-height: 46px;
		margin-bottom: 10px;
	}

	.login-register-form .form-tools {
		margin-bottom: 10px;
	}

	.login-register-form .btn-primary,
	.login-register-form button[type="submit"] {
		min-height: 50px;
	}

	.login-register-form .hz-facebook-login,
	.login-register-form .hz-google-login {
		min-height: 46px;
	}
}


/* 10. Menu a tendina (bootstrap-select di Houzez): voci, evidenziazione e selezione nei colori del design system. */
.bootstrap-select > .dropdown-toggle:focus-visible,
.bootstrap-select.show > .dropdown-toggle {
	border-color: var(--action);
	outline: 3px solid var(--focus-ring);
	outline-offset: 0;
	box-shadow: none;
}

.bootstrap-select .dropdown-menu {
	min-width: 100%;
	margin-top: 4px;
	padding: 6px;
	border: 1px solid var(--hairline);
	border-radius: var(--radius-md);
	background: var(--card);
	box-shadow: var(--shadow-banner);
}

.bootstrap-select .dropdown-menu li a,
.bootstrap-select .dropdown-menu .dropdown-item {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 12px;
	border-radius: var(--radius-sm);
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:focus,
.bootstrap-select .dropdown-menu .dropdown-item:hover,
.bootstrap-select .dropdown-menu .dropdown-item:focus {
	background: var(--tint);
	color: var(--ink);
}

.bootstrap-select .dropdown-menu li.selected a,
.bootstrap-select .dropdown-menu li.active a,
.bootstrap-select .dropdown-menu .dropdown-item.active,
.bootstrap-select .dropdown-menu .dropdown-item.selected {
	background: var(--action);
	color: var(--on-action);
}

.bootstrap-select .dropdown-menu li.disabled a {
	color: var(--placeholder);
}

.bootstrap-select .bs-searchbox .form-control {
	min-height: 44px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font: 400 16px/24px var(--font-sans);
}

/* 11. Scheda immobile, "Pianifica un tour": tipo a due card, calendario con gli orari (assets/js/single-property.js). */
.mt-ui {
	display: grid;
	gap: 20px;
	margin: 0 0 20px;
}

.mt-ui .mt-field {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.mt-ui .mt-label {
	float: none;
	width: auto;
	margin: 0 0 8px;
	padding: 0;
	font: 600 14px/20px var(--font-sans);
	color: var(--ink);
}

.mt-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.mt-types {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.mt-type {
	position: relative;
	display: block;
	margin: 0;
	cursor: pointer;
}

.mt-type__box {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	height: 100%;
	box-sizing: border-box;
	padding: 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
	color: var(--action);
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.mt-type__box strong {
	font: 600 16px/20px var(--font-sans);
	color: var(--ink);
}

.mt-type__box small {
	font: 400 13px/18px var(--font-sans);
	color: var(--ink-muted);
}

.mt-type:hover .mt-type__box {
	background: var(--tint);
}

.mt-type input:checked + .mt-type__box {
	border-color: var(--action);
	background: var(--tint);
	box-shadow: inset 0 0 0 1px var(--action);
}

.mt-type input:focus-visible + .mt-type__box {
	outline: 3px solid var(--focus-ring);
	outline-offset: 2px;
}

.mt-cal {
	box-sizing: border-box;
	padding: 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--card);
}

.mt-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 8px;
}

.mt-cal__title {
	margin: 0;
	font: 600 16px/24px var(--font-sans);
	text-transform: capitalize;
	color: var(--ink);
}

.mt-nav {
	display: grid;
	flex: none;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--card);
	color: var(--ink);
	cursor: pointer;
}

.mt-nav:hover:not(:disabled) {
	background: var(--tint);
}

.mt-nav:disabled {
	opacity: 0.4;
	cursor: default;
}

.mt-cal__week,
.mt-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 2px;
}

.mt-cal__week span {
	display: block;
	padding: 4px 0;
	text-align: center;
	font: 600 12px/16px var(--font-sans);
	text-transform: uppercase;
	color: var(--ink-muted);
}

.mt-day {
	display: grid;
	place-items: center;
	height: 40px;
	min-width: 0;
	padding: 0;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	background: transparent;
	font: 500 15px/20px var(--font-sans);
	color: var(--ink);
	cursor: pointer;
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.mt-day--blank {
	pointer-events: none;
}

.mt-day:hover:not(:disabled) {
	background: var(--tint);
}

.mt-day.is-today:not([aria-pressed="true"]) {
	border-color: var(--action);
}

.mt-day[aria-pressed="true"] {
	background: var(--action);
	color: var(--on-action);
}

.mt-day:disabled {
	color: var(--placeholder);
	opacity: 0.45;
	cursor: default;
}

.mt-day:focus-visible,
.mt-nav:focus-visible,
.mt-time:focus-visible {
	outline: 3px solid var(--focus-ring);
	outline-offset: 1px;
}

.mt-times {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--hairline);
}

.mt-times__title {
	margin: 0 0 8px;
	font: 500 14px/20px var(--font-sans);
	color: var(--ink-muted);
}

.mt-times__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 8px;
}

.mt-times__list[hidden],
.mt-error[hidden] {
	display: none;
}

.mt-time {
	min-height: 40px;
	padding: 0 8px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--card);
	font: 500 15px/20px var(--font-sans);
	color: var(--ink);
	cursor: pointer;
	transition: background-color 200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.mt-time:hover {
	background: var(--tint);
}

.mt-time[aria-pressed="true"] {
	border-color: var(--action);
	background: var(--action);
	color: var(--on-action);
}

.mt-error {
	margin: 0;
	font: 600 14px/20px var(--font-sans);
	color: var(--badge-featured);
}

/* 12. Caricamento: schermata con il logo animato (prima visita della sessione e passaggio alla scheda immobile)
 * e riquadri "scheletro" per le immagini che stanno arrivando. */
#m-splash {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	background: rgba(90,53,90, 0.9);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	opacity: 1;
	visibility: visible;
	transition: opacity 400ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 400ms;
}

#m-splash:not(.is-nav) {
	animation: m-splash-failsafe 400ms cubic-bezier(0.16, 1, 0.3, 1) 5s forwards;
}

#m-splash.is-done,
html.m-splash-skip #m-splash:not(.is-nav) {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

#m-splash.is-nav {
	transition: opacity 150ms ease-out;
}

.m-splash__inner {
	display: grid;
	justify-items: center;
	gap: 24px;
	width: min(260px, 70vw);
}

.m-splash__inner img {
	display: block;
	width: 100%;
	height: auto;
	animation: m-splash-pulse 1500ms ease-in-out infinite;
}

.m-splash__bar {
	position: relative;
	width: 100%;
	height: 3px;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(254, 251, 254, 0.18);
}

.m-splash__bar::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 40%;
	border-radius: 2px;
	background: var(--pink-soft);
	animation: m-splash-bar 1200ms cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

@keyframes m-splash-pulse {
	0%, 100% { opacity: 0.55; }
	50% { opacity: 1; }
}

@keyframes m-splash-bar {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(250%); }
}

@keyframes m-splash-failsafe {
	to { opacity: 0; visibility: hidden; pointer-events: none; }
}

@keyframes m-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}

img.lazy:not(.loaded):not(.entered),
img[data-src]:not(.loaded):not(.entered) {
	background-color: var(--tint);
	background-image: linear-gradient(90deg, var(--tint) 25%, var(--card) 50%, var(--tint) 75%);
	background-size: 200% 100%;
	animation: m-shimmer 1400ms ease-in-out infinite;
}

.elementor-33496 .property-gallery-grid-wrap > * {
	background-color: var(--tint);
}

@media (prefers-reduced-motion: reduce) {
	.m-splash__inner img,
	.m-splash__bar::after,
	img.lazy:not(.loaded):not(.entered),
	img[data-src]:not(.loaded):not(.entered) {
		animation: none;
	}
}

/* 13. Scheda immobile su telefono: etichetta contratto a sinistra e prezzo a destra sulla stessa riga, titolo e indirizzo a tutta larghezza.
 * Il blocco del titolo (ab010004) si dissolve nella griglia, cosi' le sue parti si dispongono accanto al prezzo (ab010006). */
.elementor.elementor-33496 .elementor-element-0195f0a:has(.elementor-shortcode:empty) {
	display: none;
}

@media (max-width: 767px) {
	.elementor.elementor-33496 .elementor-element-ab010003 {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 12px 16px;
	}

	.elementor.elementor-33496 .elementor-element-ab010004 {
		display: contents;
	}

	.elementor.elementor-33496 .elementor-element-ab010005 {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
	}

	.elementor.elementor-33496 .elementor-element-ab010006 {
		grid-column: 2;
		grid-row: 1;
		align-items: flex-end;
		gap: 0;
		margin: 0;
	}

	.elementor.elementor-33496 .elementor-element-2e26869,
	.elementor.elementor-33496 .elementor-element-a384b7d {
		grid-column: 1 / -1;
		width: 100%;
		max-width: none;
		min-width: 0;
	}

	.elementor.elementor-33496 .elementor-element-2e26869 {
		grid-row: 2;
	}

	.elementor.elementor-33496 .elementor-element-a384b7d {
		grid-row: 3;
	}

	.elementor.elementor-33496 h1.property_title {
		width: 100%;
		font-size: clamp(28px, 8vw, 36px);
		line-height: 1.15;
		hyphens: manual;
		overflow-wrap: break-word;
	}

	.elementor.elementor-33496 .hz-ele-price .price {
		font-size: 28px;
		line-height: 32px;
		white-space: nowrap;
	}

	.elementor.elementor-33496 address.item-address {
		font-size: 16px;
		line-height: 24px;
	}
}

/* 14. Suggerimenti della ricerca (Houzez, #auto_complete_ajax): pannello del design system, senza voci doppie (le toglie lo script in inc/search.php).
 * Nella hero della Home il campo sta in fondo e la hero ritaglia quello che esce: il pannello si apre verso l'alto. */
.auto-complete {
	z-index: 20;
	overflow: auto;
	max-height: min(320px, 50vh);
	border: 1px solid var(--hairline);
	border-radius: var(--radius-md);
	background: var(--card);
	box-shadow: var(--shadow-banner);
}

.auto-complete .list-group {
	margin: 0;
	padding: 6px;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.auto-complete .list-group-item {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	cursor: pointer;
}

.auto-complete .list-group-item + .list-group-item {
	margin-top: 2px;
}

.auto-complete .list-group-item > .d-flex {
	min-height: 48px;
	padding: 0 12px;
}

.auto-complete .auto-complete-content-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	font: 400 16px/24px var(--font-sans);
	color: var(--ink);
}

.auto-complete .auto-complete-content-wrap i {
	flex: none;
	margin: 0;
	font-size: 18px;
	color: var(--action);
}

.auto-complete .list-group-item:hover,
.auto-complete .list-group-item:focus,
.auto-complete .list-group-item.active {
	background: var(--tint);
	color: var(--ink);
}

.auto-complete.mc-empty,
.auto-complete:empty {
	display: none !important;
}

.auto-complete:not(:has(.list-group)) {
	padding: 14px 16px;
	font: 400 16px/24px var(--font-sans);
	color: var(--ink-muted);
}

.elementor [data-id="73672c16"] .auto-complete {
	top: auto;
	bottom: calc(100% + 6px);
	left: 5px !important;
	right: auto !important;
	width: calc(100% - 10px) !important;
	scrollbar-width: thin;
}

/* 13. Header e footer: colori invertiti. Il viola del design system (#884687) va nell'header di tutte le pagine tranne la Home
 * (dove l'header resta trasparente sopra la hero) e il prugna scuro (#5a355a) diventa lo sfondo del footer. I colori dei testi, dei
 * bordi e dei pulsanti dentro header e footer sono chiari (#fefbfe) e leggibili su entrambi gli sfondi. Header e footer sono due
 * moduli HTML di Elementor con il loro CSS interno: qui si sovrascrivono solo i due sfondi, con piu' specificita'. */
body:not(.home) .mh,
body:not(.home) .mh-mobile {
	background: var(--surface-brand);
}

footer.mf {
	background: var(--plum);
}
