/**
 * DOMEXA Properties — Frontend CSS
 * Usa esclusivamente le CSS custom properties generate da
 * StyleVariables (Impostazioni > Aspetto): ogni nuova opzione
 * aggiunta là diventa utilizzabile qui senza altre modifiche.
 */

.domexa-search-box,
.domexa-archive,
.domexa-property,
.domexa-featured,
.domexa-related {
	font-family: var( --domexa-font-body, inherit );
	font-size: var( --domexa-text-size, 16px );
	color: var( --domexa-text, #1e1e1e );
	box-sizing: border-box;
}

.domexa-search-box *,
.domexa-archive *,
.domexa-property *,
.domexa-featured *,
.domexa-related * {
	box-sizing: inherit;
}

/* ---------- Wrapper dei template fallback (Sticky Header / Footer) ---------- */

.domexa-single-wrap,
.domexa-archive-wrap {
	max-width: 1240px;
	margin: 0 auto;
	padding: 24px 16px 48px;
}

@media ( max-width: 782px ) {
	.domexa-single-wrap,
	.domexa-archive-wrap {
		padding: 16px 12px 32px;
	}
}

/* Sulle pagine gestite da questo plugin nascondiamo il titolo/tagline
   di default del tema, che altrove nel sito è sempre sostituito dalle
   sezioni Elementor create su misura. Non tocca lo Sticky Header
   Manager: agisce solo su questi due elementi testuali. */
body.single-domexa_property .site-title,
body.single-domexa_property .site-description,
body.post-type-archive-domexa_property .site-title,
body.post-type-archive-domexa_property .site-description,
body.tax-domexa_tipologia .site-title,
body.tax-domexa_tipologia .site-description,
body.tax-domexa_contratto .site-title,
body.tax-domexa_contratto .site-description,
body.tax-domexa_comune .site-title,
body.tax-domexa_comune .site-description,
body.tax-domexa_zona .site-title,
body.tax-domexa_zona .site-description {
	display: none;
}

/* ---------- Pulsanti ---------- */

.domexa-search-box .domexa-search-box__submit,
.domexa-contact .domexa-contact__form button {
	border-radius: var( --domexa-button-radius, 6px );
	border-style: solid;
	border-width: var( --domexa-button-border, 2px );
	padding: var( --domexa-button-padding, 12px 28px );
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.domexa-search-box .domexa-search-box__submit {
	background: transparent;
	color: var( --domexa-button-bg, var( --domexa-primary, #215d4e ) );
	border-color: var( --domexa-button-bg, var( --domexa-primary, #215d4e ) );
}

.domexa-search-box .domexa-search-box__submit:hover,
.domexa-search-box .domexa-search-box__submit:focus {
	background: var( --domexa-button-hover, var( --domexa-primary, #215d4e ) );
	border-color: var( --domexa-button-hover, var( --domexa-primary, #215d4e ) );
	color: #fff;
}

.domexa-search-box .domexa-search-box__submit--solid {
	background: var( --domexa-button-bg, var( --domexa-primary, #215d4e ) );
	color: #fff;
}

.domexa-search-box .domexa-search-box__submit--solid:hover,
.domexa-search-box .domexa-search-box__submit--solid:focus {
	background: var( --domexa-button-hover, var( --domexa-badge, #d4a95e ) );
	border-color: var( --domexa-button-hover, var( --domexa-badge, #d4a95e ) );
}

.domexa-contact .domexa-contact__form button {
	background: var( --domexa-button-bg, var( --domexa-primary, #215d4e ) );
	color: #fff;
	border-color: var( --domexa-button-bg, var( --domexa-primary, #215d4e ) );
	min-height: 44px;
}

.domexa-contact .domexa-contact__form button:hover,
.domexa-contact .domexa-contact__form button:focus {
	background: var( --domexa-button-hover, var( --domexa-badge, #d4a95e ) );
	border-color: var( --domexa-button-hover, var( --domexa-badge, #d4a95e ) );
}

.domexa-contact .domexa-contact__form button:disabled {
	opacity: 0.6;
	cursor: default;
}

/* ---------- Search box (Screen01) ---------- */

.domexa-search-box {
	background: var( --domexa-surface, #fff );
	border-radius: var( --domexa-radius, 12px );
	box-shadow: var( --domexa-card-shadow, 0 12px 32px rgba( 0, 0, 0, 0.08 ) );
	padding: 32px;
	max-width: 1100px;
	margin: 0 auto;
}

.domexa-search-box__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	color: var( --domexa-primary, #215d4e );
	margin: 0 0 8px;
	font-size: 1.5rem;
}

.domexa-search-box__subtitle {
	color: #6b7280;
	margin: 0 0 24px;
}

.domexa-search-box__form {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( var( --domexa-search-field-min, 160px ), 1fr ) );
	gap: 16px;
	align-items: end;
}

.domexa-search-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.domexa-search-field label {
	font-family: var( --domexa-font-heading, inherit );
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var( --domexa-primary, #215d4e );
}

.domexa-search-field input,
.domexa-search-field select {
	padding: 12px 14px;
	border: 1px solid var( --domexa-border, #e5e0d8 );
	border-radius: calc( var( --domexa-radius, 12px ) * 0.5 );
	background: #faf8f4;
	font-size: 0.95rem;
	width: 100%;
	min-height: 44px;
}

/* ---------- Archivio con filtri (Screen02) ---------- */

.domexa-archive__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.domexa-archive__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	font-size: 1.75rem;
	margin: 0;
}

.domexa-archive__sort select {
	padding: 8px 12px;
	min-height: 44px;
	border-radius: calc( var( --domexa-radius, 12px ) * 0.4 );
	border: 1px solid var( --domexa-border, #d9dbe1 );
}

.domexa-archive__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 16px;
}

.domexa-archive__tabs .domexa-tab {
	padding: 10px 22px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	border-radius: calc( var( --domexa-radius, 12px ) * 0.4 );
	background: var( --domexa-secondary, #1e1e1e );
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9rem;
	border: 0;
}

.domexa-archive__tabs .domexa-tab:hover,
.domexa-archive__tabs .domexa-tab:focus {
	color: #fff;
	background: var( --domexa-button-hover, var( --domexa-primary, #215d4e ) );
	text-decoration: none;
}

.domexa-archive__tabs .domexa-tab.is-active,
.domexa-archive__tabs .domexa-tab.is-active:hover,
.domexa-archive__tabs .domexa-tab.is-active:focus {
	background: var( --domexa-badge, #d4a95e );
	color: #fff;
}

.domexa-archive__advanced {
	margin-bottom: 24px;
}

.domexa-archive__advanced summary {
	cursor: pointer;
	color: var( --domexa-primary, #215d4e );
	font-weight: 600;
	margin-bottom: 12px;
}

.domexa-archive__results {
	transition: opacity 0.15s ease;
}

.domexa-archive__results.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.domexa-archive__grid {
	display: grid;
	grid-template-columns: repeat( var( --domexa-cols-desktop, 3 ), 1fr );
	gap: var( --domexa-card-margin, 24px );
}

@media ( max-width: 960px ) {
	.domexa-archive__grid {
		grid-template-columns: repeat( var( --domexa-cols-tablet, 2 ), 1fr );
	}
}

@media ( max-width: 640px ) {
	.domexa-archive__grid {
		grid-template-columns: repeat( var( --domexa-cols-mobile, 1 ), 1fr );
	}
}

.domexa-archive__empty {
	color: #6b7280;
	padding: 40px 0;
	text-align: center;
}

.domexa-archive__count {
	color: #6b7280;
	font-size: 0.9rem;
	margin: 0 0 16px;
}

.domexa-archive__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin-top: 32px;
}

.domexa-page-link {
	padding: 8px 14px;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: calc( var( --domexa-radius, 12px ) * 0.4 );
	border: 1px solid var( --domexa-border, #d9dbe1 );
	color: var( --domexa-text, #1e1e1e );
	text-decoration: none;
}

.domexa-archive__pagination .domexa-page-link:hover,
.domexa-archive__pagination .domexa-page-link:focus {
	color: var( --domexa-text, #1e1e1e );
	border-color: var( --domexa-primary, #215d4e );
}

.domexa-archive__pagination .domexa-page-link:visited:not( .is-active ) {
	color: var( --domexa-text, #1e1e1e );
	border-color: var( --domexa-border, #d9dbe1 );
}

.domexa-page-link.is-active {
	background: var( --domexa-primary, #215d4e );
	border-color: var( --domexa-primary, #215d4e );
	color: #fff;
}

.domexa-page-link--prev,
.domexa-page-link--next {
	padding-left: 18px;
	padding-right: 18px;
	font-weight: 600;
	font-size: 0.9rem;
}

/* ---------- Card immobile ---------- */

.domexa-card {
	background: var( --domexa-surface, #fff );
	border-radius: var( --domexa-radius, 12px );
	overflow: hidden;
	box-shadow: var( --domexa-card-shadow, 0 6px 20px rgba( 0, 0, 0, 0.06 ) );
	display: flex;
	flex-direction: column;
}

.domexa-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #eee;
}

/* Tutte le immagini card devono avere le stesse proporzioni, qualunque
   sia la dimensione originale della foto caricata. Molti temi/reset
   CSS impostano globalmente "img { height:auto }": !important qui è
   intenzionale e limitato a questo unico scopo (crop uniforme). */
.domexa-card__media img,
.domexa-card__image {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover !important;
	object-position: center;
	display: block;
	margin: 0;
}

.domexa-card__image--placeholder {
	background: linear-gradient( 135deg, #e5e0d8, #f4f1ea );
}

.domexa-card__badges {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	display: flex;
	justify-content: space-between;
	gap: 8px;
}

.domexa-badge {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 5px 10px;
	border-radius: 999px;
	color: #fff;
}

.domexa-badge--featured {
	background: var( --domexa-badge, #d4a95e );
}

.domexa-badge--contract {
	background: var( --domexa-primary, #215d4e );
	margin-left: auto;
}

.domexa-badge--status {
	background: #6b7280;
}

.domexa-card__body {
	padding: var( --domexa-card-padding, 18px ) var( --domexa-card-padding, 18px ) 8px;
}

.domexa-card__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	font-size: 1.05rem;
	margin: 0 0 8px;
}

.domexa-card__title a {
	color: var( --domexa-text, #1e1e1e );
	text-decoration: none;
}

.domexa-card__price {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: 700;
	font-size: 1.1rem;
	color: var( --domexa-price, var( --domexa-primary, #215d4e ) );
	margin-bottom: 6px;
}

.domexa-card__tag {
	display: inline-block;
	color: var( --domexa-primary, #215d4e );
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 8px;
}

.domexa-card__meta {
	background: var( --domexa-badge, #d4a95e );
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	padding: 10px var( --domexa-card-padding, 18px );
	margin-top: auto;
	font-size: 0.85rem;
	font-weight: 600;
}

.domexa-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.domexa-card__meta-item svg {
	flex-shrink: 0;
}

/* ---------- Scheda singolo immobile ---------- */

.domexa-property {
	background: var( --domexa-bg, #f8f5ee );
	padding: var( --domexa-property-bg-padding, 56px ) var( --domexa-property-bg-padding, 56px );
	border-radius: var( --domexa-property-bg-radius, 24px );
}

.domexa-property__container {
	max-width: var( --domexa-property-width, 1160px );
	margin: 0 auto;
}

.domexa-breadcrumb {
	font-size: 0.85rem;
	color: #6b7280;
	margin-bottom: 20px;
	overflow-wrap: break-word;
}

.domexa-breadcrumb a {
	color: var( --domexa-link, var( --domexa-primary, #215d4e ) );
	text-decoration: none;
}

.domexa-breadcrumb a:hover {
	color: var( --domexa-link-hover, var( --domexa-badge, #d4a95e ) );
}

.domexa-breadcrumb__sep {
	margin: 0 8px;
}

.domexa-breadcrumb__current {
	color: var( --domexa-text, #1e1e1e );
	font-weight: 600;
}

.domexa-property__hero {
	background: var( --domexa-surface, #fff );
	border-radius: var( --domexa-radius, 12px );
	padding: var( --domexa-property-padding, 32px );
	margin-bottom: var( --domexa-property-margin, 24px );
	box-shadow: var( --domexa-card-shadow, 0 4px 18px rgba( 0, 0, 0, 0.05 ) );
}

.domexa-property__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.domexa-property__heading-row {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.domexa-property__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	margin: 0 0 6px;
	font-size: var( --domexa-heading-size, 32px );
	line-height: 1.2;
	overflow-wrap: break-word;
}

.domexa-property__subtitle {
	margin: 0;
	color: #6b7280;
	font-weight: 600;
}

.domexa-property__price-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	align-self: flex-start;
	gap: 4px;
}

.domexa-property__price {
	font-family: var( --domexa-font-heading, inherit );
	font-size: 1.75rem;
	font-weight: 700;
	color: var( --domexa-price, var( --domexa-primary, #215d4e ) );
	white-space: nowrap;
}

.domexa-property__code {
	font-size: 0.85rem;
	color: #6b7280;
	white-space: nowrap;
}

.domexa-social {
	margin-top: 16px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	font-size: 0.85rem;
}

.domexa-social__label {
	color: #6b7280;
	font-weight: 600;
}

.domexa-social__link {
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var( --domexa-border, #e1ded6 );
	color: var( --domexa-link, var( --domexa-primary, #215d4e ) );
	text-decoration: none;
}

.domexa-social__link:hover,
.domexa-social__link:focus {
	background: var( --domexa-primary, #215d4e );
	border-color: var( --domexa-primary, #215d4e );
	color: #fff;
}

.domexa-social__link.domexa-social__link--print {
	font: inherit;
	font-size: inherit;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var( --domexa-border, #e1ded6 );
	background: transparent;
	color: var( --domexa-link, var( --domexa-primary, #215d4e ) );
	text-decoration: none;
	line-height: normal;
}

.domexa-social__link.domexa-social__link--print:hover,
.domexa-social__link.domexa-social__link--print:focus {
	background: var( --domexa-primary, #215d4e );
	border-color: var( --domexa-primary, #215d4e );
	color: #fff;
	outline: none;
}

.domexa-gallery {
	display: grid;
	grid-template-columns: 3fr 1fr;
	gap: var( --domexa-gallery-gap, 12px );
	height: var( --domexa-gallery-height, 500px );
	margin: 0 0 var( --domexa-property-margin, 24px );
	overflow: hidden;
}

.domexa-gallery__hero {
	position: relative;
	display: block;
	height: 100%;
	min-height: 0;
	overflow: hidden;
	border-radius: var( --domexa-gallery-radius, 10px );
	cursor: zoom-in;
}

/* width/height/object-fit forzati con !important: stessa identica
   necessità già documentata per .domexa-card__media img (molti temi
   impostano globalmente "img { height:auto }", che altrimenti vince
   e fa espandere hero/miniature alla loro altezza naturale invece di
   restare contenute nel blocco galleria). */
.domexa-gallery__hero img,
.domexa-gallery__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover !important;
	object-position: center;
	display: block;
	margin: 0;
}

.domexa-gallery__counter {
	position: absolute;
	bottom: 14px;
	right: 14px;
	background: rgba( 0, 0, 0, 0.6 );
	color: #fff;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 5px 12px;
	border-radius: 999px;
}

.domexa-gallery__thumbs {
	display: grid;
	grid-template-rows: repeat( 3, 1fr );
	gap: var( --domexa-gallery-gap, 12px );
	height: 100%;
	min-height: 0;
}

.domexa-gallery__thumb {
	position: relative;
	display: block;
	height: 100%;
	min-height: 0;
	overflow: hidden;
	border-radius: calc( var( --domexa-gallery-radius, 10px ) * 0.7 );
	cursor: zoom-in;
}

.domexa-gallery__more {
	position: absolute;
	inset: 0;
	background: rgba( 0, 0, 0, 0.55 );
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	font-weight: 700;
}

@media ( max-width: 700px ) {
	.domexa-gallery {
		grid-template-columns: 1fr;
		height: auto;
	}

	.domexa-gallery__hero {
		height: 260px;
	}

	.domexa-gallery__thumbs {
		grid-template-rows: none;
		grid-template-columns: repeat( 3, 1fr );
		height: 84px;
	}
}

/* Se il tema inserisce un proprio contenitore "immagine in evidenza"
   davanti al contenuto (tipico di molti temi quando non si passa dal
   Theme Builder di Elementor), sulle pagine gestite da questo plugin
   quel contenitore resta vuoto perché l'immagine in evidenza viene
   già mostrata da noi dentro .domexa-gallery: lo nascondiamo qui,
   scoperto solo su queste pagine, per evitare un riquadro vuoto. */
body.single-domexa_property .domexa-single-wrap > .post-thumbnail {
	display: none;
}

.domexa-property__video,
.domexa-property__tour {
	margin-bottom: var( --domexa-property-margin, 24px );
}

.domexa-property__video iframe,
.domexa-property__tour iframe,
.domexa-map iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var( --domexa-radius, 12px );
	display: block;
}

.domexa-property__layout {
	display: grid;
	grid-template-columns: minmax( 0, 2fr ) minmax( 280px, 1fr );
	gap: var( --domexa-property-margin, 24px );
	align-items: start;
}

.domexa-property__layout[ data-domexa-details-position="left" ] {
	grid-template-columns: minmax( 280px, 1fr ) minmax( 0, 2fr );
}

.domexa-property__layout[ data-domexa-details-position="left" ] .domexa-property__sidebar {
	order: -1;
}

.domexa-property__layout[ data-domexa-details-position="stacked" ] {
	grid-template-columns: 1fr;
}

@media ( max-width: 900px ) {
	.domexa-property__layout {
		grid-template-columns: 1fr;
	}

	.domexa-property__sidebar {
		position: static;
		order: 0;
	}
}

.domexa-property__main {
	display: flex;
	flex-direction: column;
	gap: var( --domexa-property-margin, 24px );
	min-width: 0;
}

.domexa-property__section {
	background: var( --domexa-surface, #fff );
	border-radius: var( --domexa-radius, 12px );
	padding: var( --domexa-property-padding, 32px );
	box-shadow: var( --domexa-card-shadow, 0 4px 18px rgba( 0, 0, 0, 0.05 ) );
}

.domexa-property__section h2 {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	margin: 0 0 16px;
	font-size: 1.3rem;
}

.domexa-property__content p {
	line-height: 1.7;
	margin: 0 0 12px;
	overflow-wrap: break-word;
}

.domexa-features {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 200px, 1fr ) );
	gap: 10px;
}

.domexa-features li {
	background: var( --domexa-bg, #f8f5ee );
	border-radius: calc( var( --domexa-radius, 12px ) * 0.5 );
	padding: 10px 14px;
	font-size: 0.9rem;
	overflow-wrap: break-word;
}

.domexa-property__sidebar {
	position: sticky;
	top: 24px;
	min-width: 0;
}

.domexa-contact {
	background: var( --domexa-surface, #fff );
	border-radius: var( --domexa-radius, 12px );
	padding: var( --domexa-property-padding, 32px );
	box-shadow: var( --domexa-card-shadow, 0 4px 18px rgba( 0, 0, 0, 0.05 ) );
}

.domexa-contact__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	margin: 0 0 16px;
	font-size: 1.2rem;
}

.domexa-contact__message {
	margin-bottom: 16px;
	padding: 12px 14px;
	border-radius: calc( var( --domexa-radius, 12px ) * 0.4 );
	font-size: 0.9rem;
}

.domexa-contact__message.is-success {
	background: #e6f4ea;
	color: #215d4e;
}

.domexa-contact__message.is-error {
	background: #fdecea;
	color: #b3261e;
}

.domexa-contact__form {
	display: grid;
	gap: 12px;
}

.domexa-contact__form input,
.domexa-contact__form textarea {
	padding: 12px 14px;
	border: 1px solid var( --domexa-border, #d9dbe1 );
	border-radius: calc( var( --domexa-radius, 12px ) * 0.4 );
	font-family: inherit;
	width: 100%;
	min-height: 44px;
}

.domexa-contact__form textarea {
	min-height: 100px;
}

.domexa-contact__privacy {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.8rem;
	color: #6b7280;
	line-height: 1.4;
}

.domexa-contact__privacy input {
	width: auto;
	min-height: 0;
	margin-top: 3px;
}

.domexa-contact__privacy a {
	color: var( --domexa-link, var( --domexa-primary, #215d4e ) );
}

.domexa-contact__privacy a:hover {
	color: var( --domexa-link-hover, var( --domexa-badge, #d4a95e ) );
}

/* ---------- Immobili correlati / nuova ricerca ---------- */

.domexa-related {
	margin-top: var( --domexa-property-margin, 24px );
}

.domexa-related__title {
	font-family: var( --domexa-font-heading, inherit );
	font-weight: var( --domexa-font-weight, 700 );
	font-size: 1.4rem;
	margin-bottom: 16px;
}

.domexa-property__search-again {
	margin-top: var( --domexa-property-margin, 24px );
}

/* ---------- Lightbox galleria ---------- */

.domexa-lightbox {
	position: fixed;
	inset: 0;
	background: rgba( 0, 0, 0, 0.92 );
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2147483647;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease;
	padding: 24px;
}

.domexa-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.domexa-lightbox__figure {
	max-width: 92vw;
	max-height: 88vh;
	margin: 0;
	text-align: center;
}

.domexa-lightbox__image {
	max-width: 92vw;
	max-height: 78vh;
	object-fit: contain;
	display: block;
	margin: 0 auto;
	border-radius: 4px;
}

.domexa-lightbox.domexa-lightbox .domexa-lightbox__close,
.domexa-lightbox.domexa-lightbox .domexa-lightbox__prev,
.domexa-lightbox.domexa-lightbox .domexa-lightbox__next {
	position: absolute;
	margin: 0;
	appearance: none;
	-webkit-appearance: none;
	background-color: var( --domexa-lightbox-bg, #215d4e ) !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var( --domexa-lightbox-icon, #d4a95e ) !important;
	cursor: pointer;
	border-radius: 50%;
	width: 48px;
	height: 48px;
	padding: 0;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.domexa-lightbox.domexa-lightbox .domexa-lightbox__close svg,
.domexa-lightbox.domexa-lightbox .domexa-lightbox__prev svg,
.domexa-lightbox.domexa-lightbox .domexa-lightbox__next svg {
	width: 22px;
	height: 22px;
	display: block;
	stroke: currentColor !important;
	fill: none !important;
}

.domexa-lightbox__close:hover,
.domexa-lightbox__prev:hover,
.domexa-lightbox__next:hover {
	opacity: 0.85;
}

.domexa-lightbox__close {
	top: 20px;
	right: 20px;
}

.domexa-lightbox__prev {
	left: 12px;
	top: 50%;
	transform: translateY( -50% );
}

.domexa-lightbox__next {
	right: 12px;
	top: 50%;
	transform: translateY( -50% );
}

body.domexa-lightbox-open {
	overflow: hidden;
}

@media ( max-width: 600px ) {
	.domexa-lightbox {
		flex-direction: column;
	}

	.domexa-lightbox__figure {
		max-height: 66vh;
	}

	.domexa-lightbox__image {
		max-height: 60vh;
	}

	.domexa-lightbox__nav {
		position: static;
		display: flex;
		justify-content: center;
		gap: 20px;
		margin-top: 16px;
	}

	.domexa-lightbox.domexa-lightbox .domexa-lightbox__prev,
	.domexa-lightbox.domexa-lightbox .domexa-lightbox__next {
		position: static;
		transform: none;
		width: 40px;
		height: 40px;
	}

	.domexa-lightbox__close {
		width: 40px;
		height: 40px;
		top: 10px;
		right: 10px;
	}

	.domexa-lightbox__close svg,
	.domexa-lightbox__prev svg,
	.domexa-lightbox__next svg {
		width: 18px;
		height: 18px;
	}
}

/* ---------- Responsive generale ---------- */

@media ( max-width: 560px ) {
	.domexa-search-box {
		padding: 20px;
	}

	.domexa-search-box__form {
		grid-template-columns: 1fr;
	}

	.domexa-property {
		padding: calc( var( --domexa-property-bg-padding, 56px ) * 0.4 );
	}

	.domexa-property__hero,
	.domexa-property__section,
	.domexa-contact {
		padding: calc( var( --domexa-property-padding, 32px ) * 0.6 );
	}

	.domexa-property__title {
		font-size: calc( var( --domexa-heading-size, 32px ) * 0.75 );
	}

	.domexa-property__price {
		font-size: 1.4rem;
	}

	.domexa-archive__header {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---------- Stampa scheda immobile ----------
   Isola .domexa-property da tutto il resto della pagina (header/footer
   del tema, sidebar, menu) senza dipendere da selettori specifici del
   tema: nasconde tutto tranne il contenuto della scheda, poi rimuove
   anche gli elementi della scheda che non hanno senso su carta
   (condivisione/stampa, form contatti, immobili correlati, ricerca). */
@media print {
	body * {
		visibility: hidden;
	}

	.domexa-property,
	.domexa-property * {
		visibility: visible;
	}

	.domexa-property {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
	}

	.domexa-breadcrumb,
	.domexa-social,
	.domexa-property__sidebar,
	.domexa-property__search-again,
	.domexa-related {
		display: none !important;
	}
}

/* ---------- Planimetrie ----------
   Condivide la classe .domexa-gallery solo per agganciarsi al lightbox
   già esistente (il JS cerca l'antenato .domexa-gallery per leggere il
   dataset): qui sotto si sovrascrivono le proprietà grid pensate per
   la galleria foto principale, per un semplice elenco di anteprime. */
.domexa-floorplans.domexa-gallery {
	display: block;
	height: auto;
	overflow: visible;
	margin: 0 0 var( --domexa-property-margin, 24px );
}

.domexa-floorplans__title {
	font-family: var( --domexa-font-heading, inherit );
	margin: 0 0 12px;
}

.domexa-floorplans__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var( --domexa-gallery-gap, 12px );
}

.domexa-floorplans__thumb {
	display: block;
	width: 160px;
	border: 1px solid var( --domexa-border, #e1ded6 );
	border-radius: var( --domexa-gallery-radius, 10px );
	overflow: hidden;
}

.domexa-floorplans__thumb img {
	display: block;
	width: 100%;
	height: auto;
}
