/* ═══════════════════════════════════════════════════════════
   DOMUX GESTIÓN DE PROPIEDADES – CSS Frontend v2.0.1
   Anti-conflictos: Divi, Elementor, OceanWP, Astra, GeneratePress
═══════════════════════════════════════════════════════════ */

/* ── Variables ─────────────────────────────────────────── */
:root {
	--domux-acento:       #1e3a5f;
	--domux-acento-claro: #2d5a8e;
	--domux-acento-oscuro:#112236;
	--domux-verde:        #25d366;
	--domux-texto:        #1a202c;
	--domux-muted:        #718096;
	--domux-borde:        #e2e8f0;
	--domux-fondo:        #f7f9fc;
	--domux-blanco:       #ffffff;
	--domux-radio:        10px;
	--domux-sombra:       0 4px 20px rgba(0,0,0,.08);
	--domux-sombra-hover: 0 8px 32px rgba(0,0,0,.14);
	--domux-trans:        all .25s ease;
	--domux-fuente:       -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ═══════════════════════════════════════════════════════════
   RESET AISLADO — solo afecta elementos Domux
   Evita que Divi/Elementor rompan el layout
═══════════════════════════════════════════════════════════ */
.domux-search-section,
.domux-search-section *,
.domux-properties-grid,
.domux-properties-grid *,
.domux-single-property,
.domux-single-property *,
.domux-property-card,
.domux-property-card *,
.domux-similar-section,
.domux-similar-section * {
	box-sizing: border-box !important;
}

/* Neutralizar resets agresivos de Divi */
.domux-property-card img,
.domux-single-property img {
	max-width: 100% !important;
	height: auto;
}
.domux-property-card a,
.domux-single-property a {
	text-decoration: none !important;
}

/* Elementor: evitar que anule el grid */
.elementor-widget-container .domux-properties-grid,
.elementor-widget-container .domux-filter-row,
.elementor-section .domux-properties-grid,
.elementor-section .domux-filter-row {
	display: grid !important;
}

/* Divi: evitar que anule el grid */
.et_pb_module .domux-properties-grid,
.et_pb_module .domux-filter-row,
.et_pb_section .domux-properties-grid,
.et_pb_row .domux-properties-grid {
	display: grid !important;
}

/* ── Contenedor ────────────────────────────────────────── */
.domux-container {
	max-width: 1280px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 20px !important;
	padding-right: 20px !important;
	width: 100% !important;
}

/* ═══════════════════════════════════════════════════════════
   FORMULARIO DE BÚSQUEDA
═══════════════════════════════════════════════════════════ */
.domux-search-section {
	background: var(--domux-fondo) !important;
	border: 1px solid var(--domux-borde) !important;
	border-radius: var(--domux-radio) !important;
	padding: 24px !important;
	margin-bottom: 32px !important;
	width: 100% !important;
}

.domux-filter-row {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
	gap: 14px !important;
	align-items: end !important;
}

.domux-filter-field {
	display: flex !important;
	flex-direction: column !important;
}

.domux-filter-field label {
	display: block !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: .6px !important;
	color: var(--domux-muted) !important;
	margin-bottom: 6px !important;
	font-family: var(--domux-fuente) !important;
	line-height: 1.2 !important;
}

.domux-filter-field select,
.domux-filter-field input[type="text"],
.domux-filter-field input[type="number"] {
	width: 100% !important;
	padding: 10px 12px !important;
	border: 1.5px solid var(--domux-borde) !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	color: var(--domux-texto) !important;
	background: var(--domux-blanco) !important;
	transition: var(--domux-trans) !important;
	font-family: var(--domux-fuente) !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	outline: none !important;
}

.domux-filter-field select:focus,
.domux-filter-field input:focus {
	border-color: var(--domux-acento) !important;
	box-shadow: 0 0 0 3px rgba(30, 58, 95, .12) !important;
}

.domux-filter-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

/* ── Encabezado de resultados ──────────────────────────── */
.domux-results-header {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	margin-bottom: 16px !important;
	font-size: 14px !important;
	color: var(--domux-muted) !important;
}
#domux-found-count strong { color: var(--domux-acento) !important; }

/* ═══════════════════════════════════════════════════════════
   BOTONES
═══════════════════════════════════════════════════════════ */
.domux-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 10px 18px !important;
	border: 2px solid transparent !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	text-decoration: none !important;
	transition: var(--domux-trans) !important;
	font-family: var(--domux-fuente) !important;
	white-space: nowrap !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.domux-btn-primary {
	background: var(--domux-acento) !important;
	color: #fff !important;
	border-color: var(--domux-acento) !important;
}
.domux-btn-primary:hover,
.domux-btn-primary:focus {
	background: var(--domux-acento-claro) !important;
	border-color: var(--domux-acento-claro) !important;
	color: #fff !important;
}

.domux-btn-secondary {
	background: var(--domux-blanco) !important;
	color: var(--domux-acento) !important;
	border-color: var(--domux-acento) !important;
}
.domux-btn-secondary:hover,
.domux-btn-secondary:focus {
	background: var(--domux-acento) !important;
	color: #fff !important;
}

.domux-btn-whatsapp {
	background: var(--domux-verde) !important;
	color: #fff !important;
	border-color: var(--domux-verde) !important;
}
.domux-btn-whatsapp:hover {
	background: #1aad50 !important;
	border-color: #1aad50 !important;
	color: #fff !important;
}

.domux-btn-ghost {
	background: transparent !important;
	color: var(--domux-muted) !important;
	border-color: var(--domux-borde) !important;
}
.domux-btn-ghost:hover {
	border-color: var(--domux-acento) !important;
	color: var(--domux-acento) !important;
}

.domux-btn-full  { width: 100% !important; }
.domux-btn-lg    { padding: 13px 20px !important; font-size: 15px !important; }

/* ═══════════════════════════════════════════════════════════
   GRID DE PROPIEDADES
═══════════════════════════════════════════════════════════ */
.domux-properties-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
	gap: 24px !important;
	margin-bottom: 40px !important;
	width: 100% !important;
}

/* ── Tarjeta de Propiedad ──────────────────────────────── */
.domux-property-card {
	background: var(--domux-blanco) !important;
	border-radius: var(--domux-radio) !important;
	overflow: hidden !important;
	box-shadow: var(--domux-sombra) !important;
	transition: var(--domux-trans) !important;
	display: flex !important;
	flex-direction: column !important;
	border: 1px solid var(--domux-borde) !important;
	position: relative !important;
	width: 100% !important;
}

.domux-property-card:hover {
	transform: translateY(-4px) !important;
	box-shadow: var(--domux-sombra-hover) !important;
}

/* Bloque de imagen */
.domux-card-image-wrap {
	position: relative !important;
	overflow: hidden !important;
	aspect-ratio: 16 / 10 !important;
	background: var(--domux-fondo) !important;
	width: 100% !important;
}

.domux-card-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform .4s ease !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	max-width: none !important;
}

.domux-property-card:hover .domux-card-img {
	transform: scale(1.04) !important;
}

.domux-card-img-link {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

.domux-no-img {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 48px !important;
	background: var(--domux-fondo) !important;
	width: 100% !important;
	height: 100% !important;
}

/* Badges sobre imagen */
.domux-card-badges {
	position: absolute !important;
	top: 10px !important;
	left: 10px !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 4px !important;
	z-index: 2 !important;
}

.domux-badge {
	padding: 3px 10px !important;
	border-radius: 20px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .4px !important;
	line-height: 1.5 !important;
	display: inline-block !important;
}
.domux-badge-op     { background: var(--domux-acento) !important; color: #fff !important; }
.domux-badge-type   { background: rgba(0,0,0,.55) !important;     color: #fff !important; }
.domux-badge-status { background: #e67e22 !important;             color: #fff !important; }

/* Contador de fotos */
.domux-img-count {
	position: absolute !important;
	bottom: 8px !important;
	right: 8px !important;
	background: rgba(0,0,0,.6) !important;
	color: #fff !important;
	font-size: 11px !important;
	padding: 2px 8px !important;
	border-radius: 20px !important;
	z-index: 2 !important;
}

/* Botón favorito */
.domux-favorite-btn {
	position: absolute !important;
	top: 10px !important;
	right: 10px !important;
	background: rgba(255,255,255,.9) !important;
	border: none !important;
	border-radius: 50% !important;
	width: 36px !important;
	height: 36px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	z-index: 3 !important;
	transition: var(--domux-trans) !important;
	color: #aaa !important;
	box-shadow: 0 2px 8px rgba(0,0,0,.15) !important;
	padding: 0 !important;
}
.domux-favorite-btn.domux-favorited { color: #e53e3e !important; }
.domux-favorite-btn:hover { background: #fff !important; transform: scale(1.1) !important; }
.domux-favorite-btn svg { pointer-events: none !important; }

/* Cuerpo de la tarjeta */
.domux-card-body {
	padding: 16px !important;
	display: flex !important;
	flex-direction: column !important;
	flex: 1 !important;
	gap: 8px !important;
}

.domux-card-price {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 4px !important;
}

.domux-price {
	font-size: 19px !important;
	font-weight: 800 !important;
	color: var(--domux-acento) !important;
	line-height: 1.2 !important;
}
.domux-price-label {
	font-size: 11px !important;
	font-weight: 500 !important;
	color: var(--domux-muted) !important;
	margin-right: 3px !important;
}
.domux-price-consult {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--domux-muted) !important;
}

.domux-units-avail {
	font-size: 11px !important;
	color: #2f855a !important;
	font-weight: 600 !important;
	background: #c6f6d5 !important;
	padding: 2px 8px !important;
	border-radius: 12px !important;
}

.domux-card-title {
	font-size: 15px !important;
	font-weight: 700 !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.35 !important;
	color: var(--domux-texto) !important;
}
.domux-card-title a {
	color: var(--domux-texto) !important;
	text-decoration: none !important;
}
.domux-card-title a:hover { color: var(--domux-acento) !important; }

.domux-card-location {
	font-size: 12px !important;
	color: var(--domux-muted) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Características (íconos) */
.domux-card-features {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px !important;
	padding: 8px 0 !important;
	border-top: 1px solid var(--domux-borde) !important;
	margin-top: auto !important;
}

.domux-feature {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	font-size: 12px !important;
	color: var(--domux-muted) !important;
	background: var(--domux-fondo) !important;
	padding: 3px 8px !important;
	border-radius: 20px !important;
	white-space: nowrap !important;
}
.domux-feature-icon { font-size: 13px !important; }

/* Acciones de la tarjeta */
.domux-card-actions {
	display: flex !important;
	gap: 8px !important;
}
.domux-card-actions .domux-btn-primary {
	flex: 1 !important;
	font-size: 13px !important;
	padding: 9px 14px !important;
}
.domux-card-actions .domux-btn-whatsapp {
	padding: 9px 12px !important;
	flex-shrink: 0 !important;
}

/* ═══════════════════════════════════════════════════════════
   PAGINACIÓN
═══════════════════════════════════════════════════════════ */
.domux-pagination {
	display: flex !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
	gap: 6px !important;
	margin-top: 32px !important;
}

.domux-pagination .page-numbers,
.domux-pagination-btn {
	padding: 8px 14px !important;
	border: 1.5px solid var(--domux-borde) !important;
	border-radius: 6px !important;
	text-decoration: none !important;
	color: var(--domux-acento) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	transition: var(--domux-trans) !important;
	background: var(--domux-blanco) !important;
	cursor: pointer !important;
	font-family: var(--domux-fuente) !important;
}
.domux-pagination .page-numbers.current,
.domux-pagination .page-numbers:hover,
.domux-pagination-btn.active,
.domux-pagination-btn:hover {
	background: var(--domux-acento) !important;
	border-color: var(--domux-acento) !important;
	color: #fff !important;
}
.domux-pag-sep {
	display: flex !important;
	align-items: center !important;
	color: var(--domux-muted) !important;
	padding: 0 4px !important;
}

/* ═══════════════════════════════════════════════════════════
   PROPIEDAD INDIVIDUAL
═══════════════════════════════════════════════════════════ */
.domux-single-property {
	padding: 32px 0 60px !important;
	width: 100% !important;
}

.domux-single-layout {
	display: grid !important;
	grid-template-columns: 1fr 340px !important;
	gap: 32px !important;
	align-items: start !important;
	width: 100% !important;
}

/* ── Galería ─────────────────────────────────────────────── */
.domux-gallery-block { margin-bottom: 28px !important; width: 100% !important; }

.domux-gallery-tabs {
	display: flex !important;
	gap: 4px !important;
	margin-bottom: 12px !important;
	flex-wrap: wrap !important;
}

.domux-gallery-tab {
	padding: 8px 18px !important;
	background: var(--domux-fondo) !important;
	border: 1.5px solid var(--domux-borde) !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	color: var(--domux-muted) !important;
	transition: var(--domux-trans) !important;
	font-family: var(--domux-fuente) !important;
}
.domux-gallery-tab.active,
.domux-gallery-tab:hover {
	background: var(--domux-acento) !important;
	border-color: var(--domux-acento) !important;
	color: #fff !important;
}
.domux-tab-count {
	display: inline-block !important;
	background: rgba(0,0,0,.15) !important;
	border-radius: 10px !important;
	padding: 0 6px !important;
	font-size: 10px !important;
	margin-left: 4px !important;
}

.domux-gallery-panel { display: none !important; }
.domux-gallery-panel.active { display: block !important; }

/* Carrusel */
.domux-carousel {
	position: relative !important;
	border-radius: var(--domux-radio) !important;
	overflow: hidden !important;
	background: #000 !important;
	aspect-ratio: 16 / 9 !important;
	width: 100% !important;
}

.domux-carousel-track {
	display: flex !important;
	transition: transform .4s ease !important;
	height: 100% !important;
	width: 100% !important;
}

.domux-carousel-slide {
	min-width: 100% !important;
	height: 100% !important;
	flex-shrink: 0 !important;
}

.domux-gallery-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	cursor: zoom-in !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	max-width: none !important;
}

.domux-carousel-nav {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	background: rgba(255,255,255,.88) !important;
	border: none !important;
	border-radius: 50% !important;
	width: 44px !important;
	height: 44px !important;
	font-size: 22px !important;
	cursor: pointer !important;
	z-index: 10 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: var(--domux-trans) !important;
	color: var(--domux-acento) !important;
	box-shadow: 0 2px 10px rgba(0,0,0,.2) !important;
	padding: 0 !important;
	line-height: 1 !important;
}
.domux-carousel-nav.prev { left: 12px !important; }
.domux-carousel-nav.next { right: 12px !important; }
.domux-carousel-nav:hover {
	background: var(--domux-blanco) !important;
	box-shadow: 0 4px 16px rgba(0,0,0,.25) !important;
}

.domux-carousel-counter {
	position: absolute !important;
	bottom: 12px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	background: rgba(0,0,0,.55) !important;
	color: #fff !important;
	font-size: 12px !important;
	padding: 3px 12px !important;
	border-radius: 20px !important;
	z-index: 10 !important;
	pointer-events: none !important;
}

.domux-carousel-dots {
	position: absolute !important;
	bottom: 40px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	display: flex !important;
	gap: 6px !important;
	z-index: 10 !important;
}

.domux-dot {
	width: 8px !important;
	height: 8px !important;
	border-radius: 50% !important;
	background: rgba(255,255,255,.5) !important;
	border: none !important;
	cursor: pointer !important;
	transition: var(--domux-trans) !important;
	padding: 0 !important;
}
.domux-dot.active {
	background: #fff !important;
	transform: scale(1.3) !important;
}

/* Lightbox */
.domux-lightbox-overlay {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(0,0,0,.93) !important;
	z-index: 999999 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.domux-lightbox-close {
	position: absolute !important;
	top: 20px !important;
	right: 24px !important;
	color: #fff !important;
	font-size: 36px !important;
	cursor: pointer !important;
	background: none !important;
	border: none !important;
	line-height: 1 !important;
	padding: 0 !important;
	opacity: .8 !important;
}
.domux-lightbox-close:hover { opacity: 1 !important; }
.domux-lightbox-img {
	max-width: 90vw !important;
	max-height: 90vh !important;
	object-fit: contain !important;
	border-radius: 6px !important;
}

/* ── Encabezado propiedad individual ─────────────────────── */
.domux-single-header { margin-bottom: 24px !important; }
.domux-single-badges {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px !important;
	margin-bottom: 10px !important;
}
.domux-single-title {
	font-size: clamp(22px, 3vw, 30px) !important;
	font-weight: 800 !important;
	color: var(--domux-texto) !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	line-height: 1.2 !important;
}
.domux-single-address {
	color: var(--domux-muted) !important;
	font-size: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 8px !important;
}
.domux-maps-link {
	color: var(--domux-acento) !important;
	font-size: 13px !important;
	text-decoration: none !important;
}
.domux-maps-link:hover { text-decoration: underline !important; }

/* Descripción */
.domux-single-description {
	background: var(--domux-fondo) !important;
	border-radius: var(--domux-radio) !important;
	padding: 20px 24px !important;
	margin-bottom: 24px !important;
}
.domux-single-description h2 {
	font-size: 16px !important;
	font-weight: 700 !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
	color: var(--domux-acento) !important;
}

/* Grid de características */
.domux-features-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
	gap: 14px !important;
	margin-bottom: 28px !important;
}
.domux-feature-item {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	background: var(--domux-fondo) !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	border: 1px solid var(--domux-borde) !important;
}
.domux-feature-icon-lg { font-size: 24px !important; }
.domux-feature-label {
	display: block !important;
	font-size: 11px !important;
	color: var(--domux-muted) !important;
	text-transform: uppercase !important;
	letter-spacing: .5px !important;
}
.domux-feature-val {
	display: block !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: var(--domux-texto) !important;
}

/* Amenidades */
.domux-amenities-block,
.domux-nearby-block,
.domux-virtual-tour,
.domux-map-block { margin-bottom: 28px !important; }

.domux-amenities-block h2,
.domux-nearby-block h2,
.domux-virtual-tour h2,
.domux-map-block h2 {
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px !important;
	padding: 0 0 8px !important;
	color: var(--domux-texto) !important;
	border-bottom: 2px solid var(--domux-borde) !important;
}

.domux-amenities-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
	gap: 10px !important;
}
.domux-amenity-item {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 13px !important;
	padding: 8px 12px !important;
	background: var(--domux-fondo) !important;
	border-radius: 6px !important;
	color: var(--domux-texto) !important;
}

/* Lugares Cercanos */
.domux-nearby-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
	gap: 10px !important;
}
.domux-nearby-item {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 8px 12px !important;
	background: var(--domux-fondo) !important;
	border-radius: 6px !important;
}
.domux-nearby-icon { font-size: 20px !important; }
.domux-nearby-name {
	display: block !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--domux-texto) !important;
}
.domux-nearby-dist {
	display: block !important;
	font-size: 11px !important;
	color: var(--domux-muted) !important;
}

/* Tour Virtual / Mapa */
.domux-tour-embed iframe,
.domux-map-embed iframe {
	width: 100% !important;
	border: none !important;
	border-radius: var(--domux-radio) !important;
	display: block !important;
}

/* ── SIDEBAR ──────────────────────────────────────────────── */
.domux-price-card {
	background: var(--domux-blanco) !important;
	border: 1.5px solid var(--domux-borde) !important;
	border-radius: var(--domux-radio) !important;
	overflow: hidden !important;
	box-shadow: var(--domux-sombra) !important;
}
.domux-sticky-sidebar {
	position: sticky !important;
	top: 24px !important;
}

.domux-sidebar-price {
	background: var(--domux-acento) !important;
	color: #fff !important;
	padding: 20px !important;
}
.domux-sidebar-price-label {
	font-size: 11px !important;
	opacity: .75 !important;
	text-transform: uppercase !important;
	letter-spacing: .5px !important;
	display: block !important;
	margin-bottom: 4px !important;
}
.domux-sidebar-price-value {
	font-size: 26px !important;
	font-weight: 800 !important;
	display: block !important;
	line-height: 1.2 !important;
}
.domux-sidebar-price-range {
	font-size: 16px !important;
	font-weight: 600 !important;
	opacity: .85 !important;
	display: block !important;
}
.domux-sidebar-avail {
	margin-top: 8px !important;
	font-size: 12px !important;
	background: rgba(255,255,255,.15) !important;
	padding: 4px 10px !important;
	border-radius: 20px !important;
	display: inline-block !important;
}
.domux-sidebar-status {
	margin-top: 6px !important;
	font-size: 12px !important;
	opacity: .85 !important;
	font-style: italic !important;
}

.domux-sidebar-actions {
	padding: 16px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}

/* Tarjeta del Asesor */
.domux-agent-card {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	padding: 16px !important;
	border-top: 1px solid var(--domux-borde) !important;
	background: var(--domux-fondo) !important;
}
.domux-agent-photo {
	width: 56px !important;
	height: 56px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	border: 2px solid var(--domux-blanco) !important;
	box-shadow: var(--domux-sombra) !important;
	flex-shrink: 0 !important;
}
.domux-agent-info { flex: 1 !important; min-width: 0 !important; }
.domux-agent-label {
	font-size: 10px !important;
	text-transform: uppercase !important;
	letter-spacing: .5px !important;
	color: var(--domux-muted) !important;
	margin: 0 0 2px !important;
	display: block !important;
}
.domux-agent-info strong {
	display: block !important;
	font-size: 14px !important;
	color: var(--domux-texto) !important;
}
.domux-agent-info span {
	display: block !important;
	font-size: 12px !important;
	color: var(--domux-muted) !important;
}
.domux-agent-email {
	font-size: 12px !important;
	color: var(--domux-acento) !important;
	word-break: break-all !important;
	display: block !important;
	margin-top: 4px !important;
	text-decoration: none !important;
}
.domux-agent-tel {
	font-size: 13px !important;
	color: var(--domux-acento) !important;
	display: block !important;
	margin-top: 6px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
.domux-agent-tel:hover,
.domux-agent-email:hover { text-decoration: underline !important; }

/* ── Formulario de contacto (LeadConnector / GHL) ────────── */
.domux-form-block {
	background: var(--domux-fondo) !important;
	border: 1px solid var(--domux-borde) !important;
	border-radius: var(--domux-radio) !important;
	padding: 28px !important;
	margin-top: 28px !important;
}
.domux-form-block h2 {
	font-size: 22px !important;
	font-weight: 700 !important;
	color: var(--domux-acento) !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: none !important;
}
.domux-form-intro {
	font-size: 14px !important;
	color: var(--domux-muted) !important;
	margin: 0 0 20px !important;
}
.domux-form-embed {
	width: 100% !important;
}
.domux-form-embed iframe {
	width: 100% !important;
	min-height: 540px !important;
	border: none !important;
	border-radius: 8px !important;
	display: block !important;
}

/* ── Propiedades Similares ─────────────────────────────── */
.domux-similar-section {
	background: var(--domux-fondo) !important;
	padding: 48px 0 !important;
	margin-top: 40px !important;
	width: 100% !important;
}
.domux-similar-section h2 {
	font-size: 22px !important;
	font-weight: 700 !important;
	margin: 0 0 24px !important;
	padding: 0 !important;
	color: var(--domux-texto) !important;
}
.domux-similar-carousel-wrapper {
	position: relative !important;
	width: 100% !important;
}
.domux-similar-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
	gap: 20px !important;
}

/* ── Archivo de propiedades ─────────────────────────────── */
.domux-archive-page { padding: 32px 0 60px !important; }
.domux-archive-header { padding: 0 0 24px !important; }
.domux-archive-header h1 {
	font-size: 28px !important;
	font-weight: 800 !important;
	color: var(--domux-texto) !important;
	margin: 0 !important;
}

/* ── Estados de carga ──────────────────────────────────── */
.domux-loading-overlay {
	text-align: center !important;
	padding: 60px 20px !important;
	grid-column: 1 / -1 !important;
}
.domux-spinner {
	width: 40px !important;
	height: 40px !important;
	border: 3px solid var(--domux-borde) !important;
	border-top-color: var(--domux-acento) !important;
	border-radius: 50% !important;
	animation: domux-giro .7s linear infinite !important;
	margin: 0 auto 16px !important;
}
@keyframes domux-giro { to { transform: rotate(360deg); } }

.domux-no-results {
	grid-column: 1 / -1 !important;
	text-align: center !important;
	padding: 60px 20px !important;
	color: var(--domux-muted) !important;
	font-size: 16px !important;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVO
═══════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
	.domux-single-layout {
		grid-template-columns: 1fr !important;
	}
	.domux-price-card { position: static !important; }
	.domux-single-sidebar { order: -1 !important; }
}

@media (max-width: 768px) {
	.domux-filter-row {
		grid-template-columns: 1fr 1fr !important;
	}
	.domux-filter-actions {
		grid-column: 1 / -1 !important;
		flex-direction: row !important;
	}
	.domux-properties-grid {
		grid-template-columns: 1fr !important;
	}
	.domux-features-grid { grid-template-columns: 1fr 1fr !important; }
	.domux-amenities-grid { grid-template-columns: 1fr 1fr !important; }
}

@media (max-width: 540px) {
	.domux-search-section { padding: 16px !important; }
	.domux-filter-row { grid-template-columns: 1fr !important; }
	.domux-filter-actions { flex-direction: column !important; }
	.domux-single-title { font-size: 20px !important; }
	.domux-features-grid { grid-template-columns: 1fr !important; }
	.domux-amenities-grid { grid-template-columns: 1fr !important; }
	.domux-nearby-grid { grid-template-columns: 1fr !important; }
	.domux-sidebar-price-value { font-size: 22px !important; }
}

/* ═══════════════════════════════════════════════════════════
   OVERRIDES ESPECÍFICOS DIVI
═══════════════════════════════════════════════════════════ */
.et_pb_section .domux-search-section,
.et_pb_row .domux-search-section {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
}

/* Divi a veces fuerza display:block en los hijos directos */
.et_pb_module > .domux-properties-grid,
.et_pb_column > .domux-properties-grid,
.et_pb_text_inner .domux-properties-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
}

/* Divi anula max-width de imágenes */
.et_pb_module .domux-card-img,
.et_pb_module .domux-gallery-img {
	max-width: none !important;
	width: 100% !important;
	height: 100% !important;
}

/* ═══════════════════════════════════════════════════════════
   OVERRIDES ESPECÍFICOS ELEMENTOR
═══════════════════════════════════════════════════════════ */
.elementor-widget-shortcode .domux-properties-grid,
.elementor-widget-text-editor .domux-properties-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
}

/* Elementor neutraliza padding de body en algunos temas */
.elementor-page .domux-search-section {
	width: 100% !important;
}

/* Elementor + OceanWP/Astra image reset */
.elementor-widget-container .domux-card-img,
.elementor-widget-container .domux-gallery-img {
	max-width: none !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
