/**
 * 747 Propiedades - Estilos frontend
 * Diseño inspirado en ZonaProp, mobile-first, con CSS variables para personalización.
 */

:root {
	--smp-primario: #FF6B1A;
	--smp-secundario: #C74600;
	--smp-whatsapp: #25D366;
	--smp-gris-1: #F4F7FA;
	--smp-gris-2: #E5E7EB;
	--smp-gris-3: #9CA3AF;
	--smp-gris-4: #374151;
	--smp-texto: #1F2937;
	--smp-border-radius: 8px;
	--smp-sombra: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
	--smp-sombra-hover: 0 8px 20px rgba(0,0,0,0.12);
}

/* ============ RESET LOCAL (blindaje contra themes) ============ */
.smp-ficha, .smp-ficha *, 
.smp-archive-wrap, .smp-archive-wrap *, 
.smp-grid, .smp-grid *, 
.smp-buscador, .smp-buscador *,
.smp-card, .smp-card * {
	box-sizing: border-box;
}

/* Blindaje de SVGs: themes como Divi suelen aplicar reglas globales a svg/img que los agrandan.
   Forzamos tamaños absolutos y evitamos que el theme los rompa. */
.smp-ficha svg, 
.smp-archive-wrap svg, 
.smp-grid svg, 
.smp-card svg, 
.smp-action-btn svg, 
.smp-btn svg, 
.smp-stat svg,
.smp-card-btn svg,
.smp-ficha-direccion svg,
.smp-card-ubicacion svg,
.smp-inmo-tel svg,
.smp-preguntas-chips svg,
.smp-buscador svg {
	display: inline-block !important;
	max-width: none !important;
	max-height: none !important;
	width: 18px !important;
	height: 18px !important;
	flex-shrink: 0 !important;
	vertical-align: middle;
}

/* Tamaños específicos mayores */
.smp-stat svg { width: 28px !important; height: 28px !important; }
.smp-card-btn svg { width: 14px !important; height: 14px !important; }
.smp-card-ubicacion svg { width: 14px !important; height: 14px !important; }
.smp-inmo-tel svg { width: 14px !important; height: 14px !important; }
.smp-ficha-direccion svg { width: 18px !important; height: 18px !important; }
.smp-card-noimg svg { width: 48px !important; height: 48px !important; }
.smp-action-btn svg { width: 16px !important; height: 16px !important; }

/* Blindaje de imágenes dentro de cards — algunos themes las fuerzan a ancho completo o border-radius */
.smp-card img, .smp-galeria-mosaico img, .smp-galeria-list img, .smp-inmo-logo {
	max-width: 100% !important;
	height: auto;
	border-radius: 0;
	box-shadow: none;
}
.smp-card-imagen img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
.smp-galeria-principal img, .smp-galeria-thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
.smp-inmo-logo {
	max-width: 60px !important;
	max-height: 60px !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
}

/* Reset de listas (algunos themes les ponen padding/bullets agresivos) */
.smp-chips-list, .smp-preguntas-chips, .smp-grid, .smp-tabs-nav-frontend {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}
.smp-chips-list li, .smp-tabs-nav-frontend li {
	list-style: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
	background: var(--smp-gris-1);
}
.smp-chips-list li::before, .smp-tabs-nav-frontend li::before {
	display: none !important;
	content: none !important;
}

/* Reset de inputs/selects (evitar que el theme los deforme) */
.smp-buscador select,
.smp-buscador input,
.smp-contact-form input,
.smp-contact-form textarea,
.smp-contact-form select {
	box-sizing: border-box !important;
	max-width: 100% !important;
	font-family: inherit !important;
	font-size: 14px !important;
}


/* ============ BOTONES ============ */
.smp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 20px;
	border: none;
	border-radius: var(--smp-border-radius);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: all .2s;
	font-family: inherit;
	line-height: 1.2;
}
.smp-btn-primario {
	background: var(--smp-primario);
	color: #fff;
}
.smp-btn-primario:hover {
	background: color-mix(in srgb, var(--smp-primario) 88%, #000);
	color: #fff;
}
.smp-btn-wa {
	background: var(--smp-whatsapp);
	color: #fff;
}
.smp-btn-wa:hover {
	background: #1ebe57;
	color: #fff;
}
.smp-btn-full { width: 100%; }
.smp-btn svg { width: 18px; height: 18px; }

/* ============ GRID DE LISTADO ============ */
.smp-archive-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 30px 20px;
}
.smp-archive-header h1 {
	font-size: 28px;
	color: var(--smp-secundario);
	margin: 0 0 20px;
}
.smp-grid {
	display: grid !important;
	gap: 24px;
	margin: 30px 0;
	list-style: none;
	padding: 0;
}
.smp-grid-cols-1 { grid-template-columns: 1fr !important; }
.smp-grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.smp-grid-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.smp-grid-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 900px) {
	.smp-grid-cols-3, .smp-grid-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
	.smp-grid { grid-template-columns: 1fr !important; }
}

/* ============ CARD ============ */
.smp-card {
	background: #fff !important;
	border-radius: var(--smp-border-radius) !important;
	overflow: hidden !important;
	box-shadow: var(--smp-sombra) !important;
	transition: transform .2s, box-shadow .2s;
	display: flex !important;
	flex-direction: column !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
}
.smp-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--smp-sombra-hover) !important;
}
.smp-card-imagen {
	display: block !important;
	position: relative !important;
	aspect-ratio: 16/10;
	overflow: hidden !important;
	background: var(--smp-gris-1);
	height: 240px;
	text-decoration: none !important;
}
.smp-card-imagen img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.smp-card-noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--smp-gris-3);
	font-size: 48px;
}
.smp-card-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(255,255,255,0.95);
	color: var(--smp-secundario);
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .3px;
}
.smp-card-badge--estado {
	left: auto;
	right: 12px;
	background: var(--smp-primario);
	color: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,.16);
}
.smp-card-badge--vendida,
.smp-card-badge--alquilada {
	font-weight: 800;
}
.smp-card-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.smp-card-precio {
	font-size: 22px;
	font-weight: 700;
	color: var(--smp-secundario);
}
.smp-card-specs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	color: var(--smp-gris-4);
	font-size: 13px;
}
.smp-card-titulo {
	font-size: 16px;
	font-weight: 600;
	margin: 0;
	line-height: 1.3;
}
.smp-card-titulo a {
	color: var(--smp-secundario);
	text-decoration: none;
}
.smp-card-titulo a:hover { color: var(--smp-primario); }
.smp-card-ubicacion {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--smp-gris-4);
	font-size: 13px;
}
.smp-card-ubicacion svg { width: 14px; height: 14px; }
.smp-card-excerpt {
	color: var(--smp-gris-4);
	font-size: 13px;
	line-height: 1.4;
	flex: 1;
}
.smp-card-actions {
	display: flex;
	gap: 6px;
	margin-top: 10px;
	align-items: stretch;
}
.smp-card-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 12px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: opacity .2s;
}
.smp-card-btn svg { width: 14px; height: 14px; }
.smp-card-btn-tel {
	background: #fff;
	color: var(--smp-primario);
	border: 1px solid var(--smp-primario);
}
.smp-card-btn-wa {
	background: var(--smp-whatsapp);
	color: #fff;
	flex: 1;
}
.smp-card-btn-ver {
	background: var(--smp-primario);
	color: #fff;
	flex: 1;
}
.smp-card-btn:hover { opacity: .88; color: #fff; }
.smp-card-btn-tel:hover { color: var(--smp-primario); opacity: .75; }

/* ============ BUSCADOR ============ */
.smp-buscador {
	background: #fff !important;
	border-radius: var(--smp-border-radius);
	padding: 12px !important;
	box-shadow: var(--smp-sombra);
	margin: 0 0 18px !important;
	border: 1px solid var(--smp-gris-2);
}
.smp-buscador-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px 10px;
	align-items: end;
}
.smp-buscador-completo .smp-buscador-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}
/* Con moneda incluida, el buscador completo ocupa exactamente dos filas de 5 columnas. */
@media (min-width: 1025px) {
	.smp-buscador-completo .smp-buscador-submit {
		grid-column: auto;
	}
}
@media (max-width: 1024px) {
	.smp-buscador-grid,
	.smp-buscador-completo .smp-buscador-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 768px) {
	.smp-buscador {
		padding: 10px !important;
		margin-bottom: 14px !important;
	}
	.smp-buscador-grid,
	.smp-buscador-completo .smp-buscador-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px !important;
	}
	/* La zona necesita un poco más de aire en pantallas chicas. */
	.smp-buscador-field:nth-child(3) {
		grid-column: 1 / -1;
	}
	.smp-buscador-completo .smp-buscador-submit {
		grid-column: 1 / -1;
	}
}
@media (max-width: 340px) {
	.smp-buscador-grid,
	.smp-buscador-completo .smp-buscador-grid {
		grid-template-columns: 1fr !important;
	}
	.smp-buscador-field:nth-child(3),
	.smp-buscador-completo .smp-buscador-submit {
		grid-column: auto;
	}
}
.smp-buscador-field {
	display: flex !important;
	flex-direction: column !important;
	min-width: 0;
}
.smp-buscador-field label {
	display: block !important;
	font-size: 10.5px !important;
	text-transform: uppercase;
	color: var(--smp-gris-3) !important;
	margin: 0 0 4px !important;
	font-weight: 600;
	letter-spacing: .25px;
	line-height: 1.1;
}
.smp-buscador-field select,
.smp-buscador-field input[type="number"],
.smp-buscador-field input[type="text"] {
	width: 100% !important;
	padding: 7px 10px !important;
	border: 1px solid var(--smp-gris-2) !important;
	border-radius: 6px !important;
	background: #fff !important;
	font-size: 13px !important;
	height: 36px !important;
	min-height: 36px !important;
	line-height: 1.25;
	color: var(--smp-texto) !important;
	box-shadow: none !important;
	appearance: auto;
}
.smp-buscador-field select:focus,
.smp-buscador-field input:focus {
	outline: none !important;
	border-color: var(--smp-primario) !important;
	box-shadow: 0 0 0 2px rgba(255,107,26,0.1) !important;
}
.smp-buscador-submit button {
	height: 36px !important;
	min-height: 36px !important;
	width: 100% !important;
	padding-top: 7px !important;
	padding-bottom: 7px !important;
	font-size: 13px !important;
}
/* En mobile conservamos un target táctil cómodo sin volver a inflar la grilla. */
@media (max-width: 768px) {
	.smp-buscador-field label {
		font-size: 10px !important;
		margin-bottom: 3px !important;
	}
	.smp-buscador-field select,
	.smp-buscador-field input[type="number"],
	.smp-buscador-field input[type="text"],
	.smp-buscador-submit button {
		height: 40px !important;
		min-height: 40px !important;
		font-size: 14px !important;
		color: #111111 !important;
	}
}

/* ============ FICHA - LAYOUT ============ */
.smp-ficha {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
}

/* GALERÍA MOSAICO */
.smp-galeria-mosaico {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 8px;
	margin-bottom: 30px;
	border-radius: var(--smp-border-radius);
	overflow: hidden;
	max-height: 480px;
}
.smp-galeria-principal {
	aspect-ratio: 4/3;
	overflow: hidden;
}
.smp-galeria-principal img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	cursor: pointer;
	transition: transform .3s;
}
.smp-galeria-principal img:hover { transform: scale(1.02); }
.smp-galeria-thumbs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 8px;
}
.smp-galeria-thumb {
	overflow: hidden;
	position: relative;
	cursor: pointer;
	aspect-ratio: 1;
}
.smp-galeria-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}
.smp-galeria-thumb:hover img { transform: scale(1.05); }
.smp-thumb-overlay {
	position: absolute;
	inset: 0;
	background: rgba(15,42,71,0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 24px;
	font-weight: 600;
}
@media (max-width: 700px) {
	.smp-galeria-mosaico {
		grid-template-columns: 1fr;
	}
	.smp-galeria-thumbs {
		grid-template-columns: repeat(4, 1fr);
		grid-template-rows: 1fr;
	}
}

/* LAYOUT FICHA */
.smp-ficha-layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 40px;
}
@media (max-width: 960px) {
	.smp-ficha-layout { grid-template-columns: 1fr; }
}

/* HEADER FICHA */
.smp-ficha-header {
	border-bottom: 1px solid var(--smp-gris-2);
	padding-bottom: 20px;
	margin-bottom: 24px;
}
.smp-breadcrumbs {
	color: var(--smp-gris-4);
	font-size: 14px;
	margin-bottom: 12px;
}
.smp-ficha-precio-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 20px;
	flex-wrap: wrap;
}
.smp-ficha-precio {
	font-size: 32px;
	color: var(--smp-secundario);
	margin: 0 0 10px;
	font-weight: 700;
	line-height: 1.2;
}
.smp-operacion {
	font-size: 16px;
	font-weight: 600;
	color: var(--smp-gris-4);
	display: block;
	text-transform: uppercase;
	letter-spacing: .5px;
	margin-bottom: 4px;
}
.smp-ficha-actions {
	display: flex;
	gap: 8px;
}
.smp-action-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: #fff;
	border: 1px solid var(--smp-gris-2);
	border-radius: 6px;
	color: var(--smp-gris-4);
	font-size: 13px;
	cursor: pointer;
	transition: all .2s;
}
.smp-action-btn:hover {
	border-color: var(--smp-primario);
	color: var(--smp-primario);
}
.smp-action-btn svg { width: 16px; height: 16px; }
.smp-action-btn.active {
	background: var(--smp-primario);
	color: #fff;
	border-color: var(--smp-primario);
}
.smp-action-btn.active svg { fill: #fff; }
.smp-ficha-direccion {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--smp-gris-4);
	font-size: 15px;
	margin-top: 8px;
}
.smp-ficha-direccion svg { width: 18px; height: 18px; color: var(--smp-primario); }

/* MAPA */
.smp-ficha-mapa {
	border-radius: var(--smp-border-radius);
	overflow: hidden;
	margin-bottom: 24px;
	height: 350px;
}
.smp-ficha-mapa iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* STATS ICONOS */
.smp-ficha-stats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 16px;
	padding: 20px;
	background: var(--smp-gris-1);
	border-radius: var(--smp-border-radius);
	margin-bottom: 24px;
}
.smp-stat {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--smp-texto);
	font-weight: 600;
}
.smp-stat svg {
	width: 28px;
	height: 28px;
	color: var(--smp-primario);
}
.smp-stat small {
	color: var(--smp-gris-3);
	font-weight: 400;
	font-size: 12px;
}

/* DESCRIPCIÓN */
.smp-ficha-descripcion {
	margin-bottom: 32px;
}
.smp-ficha-titulo {
	font-size: 24px;
	color: var(--smp-secundario);
	margin: 0 0 16px;
}
.smp-ficha-contenido {
	color: var(--smp-texto);
	line-height: 1.7;
	font-size: 15px;
}
.smp-ficha-contenido p { margin: 0 0 12px; }

/* VIDEO */
.smp-ficha-video { margin-bottom: 32px; }
.smp-ficha-video h2 {
	font-size: 20px;
	color: var(--smp-secundario);
	margin: 0 0 12px;
}
.smp-video-wrap {
	position: relative;
	aspect-ratio: 16/9;
	border-radius: var(--smp-border-radius);
	overflow: hidden;
}
.smp-video-wrap iframe, .smp-video-wrap video {
	width: 100%;
	height: 100%;
	border: 0;
}

/* TABS */
.smp-ficha-tabs { margin-bottom: 40px; }
.smp-ficha-tabs h2 {
	font-size: 20px;
	color: var(--smp-secundario);
	margin: 0 0 16px;
}
.smp-tabs-nav-frontend {
	display: flex;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	border-bottom: 1px solid var(--smp-gris-2);
	flex-wrap: wrap;
}
.smp-tabs-nav-frontend li a {
	display: block;
	padding: 10px 16px;
	color: var(--smp-gris-4);
	text-decoration: none;
	font-weight: 500;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: all .2s;
}
.smp-tabs-nav-frontend li.active a,
.smp-tabs-nav-frontend li a:hover {
	color: var(--smp-primario);
	border-bottom-color: var(--smp-primario);
}
.smp-tab-pane { display: none; }
.smp-tab-pane.active { display: block; }

.smp-detalle-lista {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 8px 20px;
	margin: 0;
}
.smp-detalle-lista dt {
	color: var(--smp-gris-4);
	font-weight: 500;
}
.smp-detalle-lista dd {
	margin: 0;
	color: var(--smp-texto);
	font-weight: 600;
}
.smp-chips-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.smp-chips-list li {
	background: var(--smp-gris-1);
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 13px;
	color: var(--smp-gris-4);
	border: 1px solid var(--smp-gris-2);
}

/* SIDEBAR */
.smp-ficha-sidebar { align-self: flex-start; }
.smp-sticky-wrap {
	position: sticky;
	top: 20px;
}
@media (max-width: 960px) {
	.smp-sticky-wrap { position: static; }
}

.smp-inmo-card {
	background: #fff;
	border: 1px solid var(--smp-gris-2);
	border-radius: var(--smp-border-radius);
	padding: 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}
.smp-inmo-logo {
	max-width: 60px;
	max-height: 60px;
	object-fit: contain;
}
.smp-inmo-nombre {
	font-weight: 600;
	color: var(--smp-secundario);
	font-size: 15px;
}
.smp-inmo-tel {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--smp-primario);
	text-decoration: none;
	font-size: 14px;
	margin-top: 4px;
}
.smp-inmo-tel svg { width: 14px; height: 14px; }

/* ============ FORMULARIO DE CONTACTO ============ */
.smp-contact-form {
	background: #fff;
	border: 1px solid var(--smp-gris-2);
	border-radius: var(--smp-border-radius);
	margin-bottom: 16px;
	overflow: hidden;
}
.smp-form-header {
	padding: 20px 20px 14px;
	border-bottom: 1px solid var(--smp-gris-2);
	background: linear-gradient(180deg, var(--smp-gris-1) 0%, #fff 100%);
}
.smp-form-header h3 {
	font-size: 18px;
	color: var(--smp-secundario);
	margin: 0 0 4px;
	font-weight: 700;
	line-height: 1.2;
}
.smp-form-subtitle {
	font-size: 13px;
	color: var(--smp-gris-3);
	margin: 0;
}
.smp-form-body {
	padding: 18px 20px 8px;
}
.smp-form-footer {
	padding: 12px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.smp-field {
	margin-bottom: 14px;
}
.smp-field label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--smp-gris-4);
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: .3px;
}
.smp-req {
	color: var(--smp-primario);
	font-weight: 700;
}
.smp-contact-form input[type="text"],
.smp-contact-form input[type="email"],
.smp-contact-form input[type="tel"],
.smp-contact-form textarea {
	width: 100% !important;
	padding: 11px 14px !important;
	border: 1px solid var(--smp-gris-2) !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: #fff !important;
	color: var(--smp-texto) !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	outline: none !important;
	transition: border-color .15s, box-shadow .15s;
}
.smp-contact-form input:focus,
.smp-contact-form textarea:focus {
	border-color: var(--smp-primario) !important;
	box-shadow: 0 0 0 3px rgba(255,107,26,0.1) !important;
}
.smp-contact-form textarea {
	min-height: 100px;
	resize: vertical;
}
.smp-honeypot {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	opacity: 0 !important;
}
.smp-form-ayuda {
	font-size: 11px;
	color: var(--smp-gris-3);
	margin: 4px 0 0;
	line-height: 1.4;
	text-align: center;
}
.smp-form-response {
	margin: 0 20px 16px;
	padding: 10px 14px;
	border-radius: 6px;
	font-size: 14px;
	display: none;
	line-height: 1.4;
}
.smp-form-response.success {
	display: block;
	background: #d1fae5;
	color: #065f46;
	border: 1px solid #6ee7b7;
}
.smp-form-response.error {
	display: block;
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fca5a5;
}
.smp-btn-submit, .smp-btn-wa-form {
	padding: 13px 20px !important;
	font-size: 15px !important;
}
.smp-btn-wa-form {
	background: var(--smp-whatsapp) !important;
	color: #fff !important;
	border: none !important;
}
.smp-btn-wa-form:hover {
	background: #1ebe57 !important;
}

/* ============ PAGINACIÓN ============ */
.smp-paginacion {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 40px 0;
}
.smp-paginacion a,
.smp-paginacion span {
	padding: 8px 14px;
	border-radius: 6px;
	background: #fff;
	border: 1px solid var(--smp-gris-2);
	color: var(--smp-texto);
	text-decoration: none;
	font-weight: 500;
}
.smp-paginacion a:hover {
	background: var(--smp-primario);
	color: #fff;
	border-color: var(--smp-primario);
}
.smp-paginacion .current {
	background: var(--smp-primario);
	color: #fff;
	border-color: var(--smp-primario);
}
.smp-no-results {
	text-align: center;
	padding: 40px;
	color: var(--smp-gris-3);
	font-size: 15px;
}

/* ============ MAPA GENERAL DE PROPIEDADES ============ */
.smp-map-module {
	--smp-map-venta: var(--smp-primario, #FF6B1A);
	--smp-map-alquiler: color-mix(in srgb, var(--smp-primario, #FF6B1A) 72%, #000 28%);
	--smp-map-mixed: color-mix(in srgb, var(--smp-primario, #FF6B1A) 84%, #000 16%);
	position: relative;
	width: 100%;
	max-width: 100%;
	font-family: inherit;
	box-sizing: border-box;
}
.smp-map-module *,
.smp-map-module *::before,
.smp-map-module *::after {
	box-sizing: border-box;
}
.smp-map-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}
.smp-map-filter {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 42px;
	padding: 8px 14px;
	border: 1px solid color-mix(in srgb, var(--smp-primario, #FF6B1A) 28%, transparent 72%);
	border-radius: 999px;
	background: #fff;
	color: #4b4b4b;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
	box-shadow: 0 4px 14px rgba(35, 20, 10, .05);
}
.smp-map-filter:hover:not(:disabled) {
	transform: translateY(-1px);
	border-color: var(--smp-map-venta);
	box-shadow: 0 7px 20px rgba(35, 20, 10, .08);
}
.smp-map-filter small {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--smp-primario, #FF6B1A) 10%, transparent 90%);
	color: inherit;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
}
.smp-map-filter.is-active {
	background: var(--smp-map-mixed);
	border-color: var(--smp-map-mixed);
	color: #fff;
	box-shadow: 0 7px 20px color-mix(in srgb, var(--smp-primario, #FF6B1A) 22%, transparent 78%);
}
.smp-map-filter.is-active small {
	background: rgba(255,255,255,.20);
	color: #fff;
}
.smp-map-filter--venta.is-active {
	background: var(--smp-map-venta);
	border-color: var(--smp-map-venta);
}
.smp-map-filter--venta:not(.is-active) {
	border-color: color-mix(in srgb, var(--smp-map-venta) 38%, #fff 62%);
}
.smp-map-filter--alquiler:not(.is-active) {
	border-color: color-mix(in srgb, var(--smp-map-alquiler) 38%, #fff 62%);
}
.smp-map-filter--alquiler.is-active {
	background: var(--smp-map-alquiler);
	border-color: var(--smp-map-alquiler);
	box-shadow: 0 7px 20px rgba(140, 51, 8, .22);
}
.smp-map-filter:disabled {
	opacity: .38;
	cursor: not-allowed;
	box-shadow: none;
}
.smp-map-canvas {
	position: relative;
	width: 100%;
	height: var(--smp-map-height, 474px);
	min-height: 321px;
	max-width: 100%;
	border-radius: 16px;
	overflow: hidden;
	background: #f4f1ee;
	box-shadow: 0 12px 36px rgba(35, 20, 10, .10);
	z-index: 1;
}
.smp-map-empty,
.smp-map-message {
	margin-top: 12px;
	padding: 12px 14px;
	border-radius: 10px;
	background: #fff7f2;
	border: 1px solid rgba(255, 107, 26, .18);
	color: #6d3a20;
	font-size: 13px;
	line-height: 1.45;
}

/* Precio sobre el mapa */
.smp-map-div-icon {
	background: transparent !important;
	border: 0 !important;
}
.smp-map-price-pin {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 132px;
	height: 34px;
	padding: 0 10px;
	border-radius: 999px;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.1px;
	white-space: nowrap;
	box-shadow: 0 5px 16px rgba(76, 31, 8, .26);
	border: 2px solid rgba(255,255,255,.92);
	transform: translateY(2px);
}
.smp-map-price-pin span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 108px;
}
.smp-map-price-pin i {
	position: absolute;
	left: 50%;
	bottom: -7px;
	width: 12px;
	height: 12px;
	transform: translateX(-50%) rotate(45deg);
	border-right: 2px solid rgba(255,255,255,.92);
	border-bottom: 2px solid rgba(255,255,255,.92);
	border-radius: 0 0 3px 0;
}
.smp-map-price-pin--venta,
.smp-map-price-pin--venta i { background: var(--smp-map-venta); }
.smp-map-price-pin--alquiler,
.smp-map-price-pin--alquiler i { background: var(--smp-map-alquiler); }
.smp-map-price-pin--generico,
.smp-map-price-pin--generico i { background: var(--smp-map-mixed); }

/* Clusters */
.smp-map-cluster-icon {
	background: transparent !important;
	border: 0 !important;
}
.smp-map-cluster {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	color: #fff;
	font-size: 14px;
	font-weight: 900;
	border: 3px solid rgba(255,255,255,.94);
	box-shadow: 0 7px 20px rgba(76, 31, 8, .24);
}
.smp-map-cluster--venta { background: var(--smp-map-venta); }
.smp-map-cluster--alquiler { background: var(--smp-map-alquiler); }
.smp-map-cluster--mixed { background: var(--smp-map-mixed); }

/* Popup compacto */
.smp-map-leaflet-popup .leaflet-popup-content-wrapper {
	padding: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 14px 42px rgba(34, 20, 12, .20);
}
.smp-map-leaflet-popup .leaflet-popup-content {
	margin: 0 !important;
	width: 300px !important;
	max-width: calc(100vw - 56px) !important;
}
.smp-map-leaflet-popup .leaflet-popup-tip {
	box-shadow: 2px 2px 5px rgba(34, 20, 12, .08);
}
.smp-map-leaflet-popup .leaflet-popup-close-button {
	top: 7px !important;
	right: 7px !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50%;
	background: rgba(255,255,255,.94) !important;
	color: #333 !important;
	font-size: 22px !important;
	line-height: 27px !important;
	box-shadow: 0 3px 12px rgba(0,0,0,.12);
	z-index: 3;
}
.smp-map-popup-card {
	margin: 0;
	background: #fff;
	color: #292929;
}
.smp-map-popup-image {
	position: relative;
	display: block;
	height: 150px;
	overflow: hidden;
	background: #eee;
	text-decoration: none !important;
}
.smp-map-popup-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.smp-map-popup-badge {
	position: absolute;
	left: 12px;
	top: 12px;
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--smp-map-venta);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .25px;
}
.smp-map-popup-card--alquiler .smp-map-popup-badge {
	background: var(--smp-map-alquiler);
}
.smp-map-popup-card--generico .smp-map-popup-badge {
	background: var(--smp-map-mixed);
}
.smp-map-popup-body {
	padding: 14px 15px 15px;
}
.smp-map-popup-price {
	margin-bottom: 6px;
	color: var(--smp-map-venta);
	font-size: 19px;
	font-weight: 900;
	line-height: 1.1;
}
.smp-map-popup-card--alquiler .smp-map-popup-price {
	color: var(--smp-map-alquiler);
}
.smp-map-popup-card--generico .smp-map-popup-price {
	color: var(--smp-map-mixed);
}
.smp-map-popup-body h3 {
	margin: 0 0 7px !important;
	padding: 0 !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	line-height: 1.3 !important;
	color: #222 !important;
}
.smp-map-popup-address {
	margin: 0 0 12px !important;
	color: #666 !important;
	font-size: 12.5px !important;
	line-height: 1.35 !important;
}
.smp-map-popup-link {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 40px;
	padding: 9px 13px !important;
	border-radius: 8px;
	background: var(--smp-map-venta);
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}
.smp-map-popup-card--alquiler .smp-map-popup-link {
	background: var(--smp-map-alquiler);
}
.smp-map-popup-card--generico .smp-map-popup-link {
	background: var(--smp-map-mixed);
}
.smp-map-popup-link:hover {
	color: #fff !important;
	opacity: .92;
}

/* Ajustes Leaflet para touch / temas */
.smp-map-module .leaflet-container {
	font-family: inherit;
	-webkit-tap-highlight-color: transparent;
}
.smp-map-module .leaflet-container a {
	color: var(--smp-map-alquiler);
}
.smp-map-module .leaflet-control-zoom a {
	color: #4a2a18 !important;
	text-decoration: none !important;
}

/* Zoom más visible en desktop; mobile conserva el control nativo compacto. */
@media (min-width: 769px) {
	.smp-map-module .leaflet-control-zoom {
		margin-top: 18px !important;
		margin-left: 18px !important;
		border: 2px solid color-mix(in srgb, var(--smp-primario, #FF6B1A) 34%, transparent 66%) !important;
		border-radius: 12px !important;
		overflow: hidden;
		background: #fff;
		box-shadow: 0 9px 24px rgba(76, 31, 8, .20) !important;
	}
	.smp-map-module .leaflet-control-zoom a {
		width: 42px !important;
		height: 42px !important;
		line-height: 40px !important;
		background: rgba(255,255,255,.98) !important;
		color: var(--smp-primario, #FF6B1A) !important;
		font-size: 25px !important;
		font-weight: 800 !important;
	}
	.smp-map-module .leaflet-control-zoom a:hover,
	.smp-map-module .leaflet-control-zoom a:focus {
		background: color-mix(in srgb, var(--smp-primario, #FF6B1A) 8%, #fff 92%) !important;
		color: color-mix(in srgb, var(--smp-primario, #FF6B1A) 72%, #000 28%) !important;
	}
}
.smp-map-module .leaflet-control-attribution {
	font-size: 10px;
}

@media (max-width: 900px) {
	.smp-map-canvas {
		height: min(var(--smp-map-height, 474px), 48vh);
		min-height: 337px;
		border-radius: 14px;
	}
}

@media (max-width: 600px) {
	.smp-map-filters {
		gap: 6px;
		margin-bottom: 10px;
	}
	.smp-map-filter {
		flex: 1 1 0;
		min-width: 0;
		min-height: 44px;
		padding: 8px 9px;
		font-size: 13px;
	}
	.smp-map-filter small {
		min-width: 20px;
		height: 20px;
		padding: 0 5px;
		font-size: 10px;
	}
	.smp-map-canvas {
		height: min(var(--smp-map-height, 474px), 50vh);
		min-height: 298px;
		border-radius: 12px;
	}
	.smp-map-price-pin {
		width: 116px;
		height: 32px;
		font-size: 11px;
	}
	.smp-map-price-pin span { max-width: 94px; }
	.smp-map-leaflet-popup .leaflet-popup-content {
		width: 272px !important;
		max-width: calc(100vw - 48px) !important;
	}
	.smp-map-popup-image { height: 132px; }
	.smp-map-popup-body { padding: 12px 13px 13px; }
	.smp-map-popup-price { font-size: 17px; }
	.smp-map-popup-link { min-height: 42px; }
}


/* Gesto cooperativo mobile: 1 dedo hace scroll de página; 2 dedos controlan el mapa. */
@media (max-width: 768px) and (pointer: coarse) {
	.smp-map-module { position: relative; }
	.smp-map-canvas.smp-map-cooperative {
		touch-action: pan-y !important;
		overscroll-behavior-y: auto;
	}
	.smp-map-gesture-hint {
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%) scale(.98);
		z-index: 650;
		pointer-events: none;
		max-width: calc(100% - 42px);
		padding: 12px 16px;
		border-radius: 10px;
		background: rgba(20, 20, 20, .82);
		color: #fff !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		line-height: 1.25 !important;
		text-align: center;
		box-shadow: 0 8px 24px rgba(0,0,0,.22);
		opacity: 0;
		visibility: hidden;
		transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
	}
	.smp-map-gesture-hint.is-visible {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, -50%) scale(1);
	}
}

/* Estado comercial separado de la operación (v1.7). */
.smp-ficha-precio-wrap { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.smp-estado {
	display:inline-flex; align-items:center; justify-content:center;
	padding:5px 10px; border-radius:999px; background:var(--smp-primario); color:#fff;
	font-size:12px; font-weight:800; line-height:1; text-transform:uppercase; letter-spacing:.45px;
}
.smp-estado--reservada { background:color-mix(in srgb, var(--smp-primario) 72%, #6b7280); }
@media (max-width: 600px) { .smp-card-badge--estado { right:8px; top:8px; } .smp-card-badge--operacion { left:8px; top:8px; } }

/* ============ FICHA TÉCNICA VISIBLE / RESPONSIVE v1.7.2 ============ */
.smp-ficha-tabs {
	margin: 36px 0 44px;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--smp-gris-2);
	border-radius: calc(var(--smp-border-radius) + 2px);
	box-shadow: 0 8px 28px rgba(18, 28, 45, .06);
}
.smp-ficha-tabs > h2 {
	font-size: clamp(22px, 2vw, 28px) !important;
	line-height: 1.22 !important;
	font-weight: 700 !important;
	color: #0a0a0a !important;
	margin: 0 0 18px !important;
}
.smp-ficha-tabs .smp-tabs-nav-frontend {
	display: flex;
	gap: 8px;
	margin: 0 0 20px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--smp-gris-2);
	flex-wrap: wrap;
}
.smp-ficha-tabs .smp-tabs-nav-frontend li {
	margin: 0 !important;
	padding: 0 !important;
}
.smp-ficha-tabs .smp-tabs-nav-frontend li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 15px !important;
	border: 1px solid var(--smp-gris-2) !important;
	border-radius: 999px;
	background: var(--smp-gris-1);
	color: #111111 !important;
	font-size: 15px !important;
	line-height: 1.2 !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	margin: 0 !important;
}
.smp-ficha-tabs .smp-tabs-nav-frontend li.active a,
.smp-ficha-tabs .smp-tabs-nav-frontend li a:hover,
.smp-ficha-tabs .smp-tabs-nav-frontend li a:focus {
	background: color-mix(in srgb, var(--smp-primario) 10%, #fff 90%);
	border-color: color-mix(in srgb, var(--smp-primario) 55%, #fff 45%) !important;
	color: color-mix(in srgb, var(--smp-primario) 82%, #2a1a12 18%) !important;
	outline: none;
}
.smp-ficha-tabs .smp-tabs-content-frontend {
	min-width: 0;
}
.smp-ficha-tabs .smp-detalle-lista {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
}
.smp-ficha-tabs .smp-detalle-item {
	min-width: 0;
	padding: 14px 16px;
	background: #f7f7f7;
	border: 1px solid #d9d9d9;
	border-radius: 9px;
}
.smp-ficha-tabs .smp-detalle-item--wide {
	grid-column: 1 / -1;
}
.smp-ficha-tabs .smp-detalle-item dt {
	display: block !important;
	margin: 0 0 5px !important;
	padding: 0 !important;
	color: #111111 !important;
	font-size: 14px !important;
	line-height: 1.35 !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: .35px;
}
.smp-ficha-tabs .smp-detalle-item dd {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #000000 !important;
	font-size: 19px !important;
	line-height: 1.4 !important;
	font-weight: 800 !important;
	word-break: break-word;
}
.smp-ficha-tabs .smp-chips-list {
	gap: 10px;
}
.smp-ficha-tabs .smp-chips-list li {
	padding: 9px 14px;
	font-size: 15px !important;
	line-height: 1.35;
	font-weight: 700;
	color: #111111 !important;
	background: var(--smp-gris-1);
	border-color: var(--smp-gris-2);
}

@media (max-width: 700px) {
	.smp-ficha-tabs {
		margin: 26px 0 32px;
		padding: 18px 14px;
		border-radius: 12px;
	}
	.smp-ficha-tabs > h2 {
		font-size: 24px !important;
		line-height: 1.2 !important;
		color: #000000 !important;
		margin-bottom: 14px !important;
	}
	.smp-ficha-tabs .smp-tabs-nav-frontend {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 7px;
		padding-bottom: 11px;
		margin-bottom: 16px;
	}
	.smp-ficha-tabs .smp-tabs-nav-frontend::-webkit-scrollbar { display: none; }
	.smp-ficha-tabs .smp-tabs-nav-frontend li { flex: 0 0 auto; }
	.smp-ficha-tabs .smp-tabs-nav-frontend li a {
		min-height: 44px;
		padding: 9px 14px !important;
		font-size: 14px !important;
		color: #111111 !important;
	}
	.smp-ficha-tabs .smp-detalle-lista {
		grid-template-columns: 1fr !important;
		gap: 8px !important;
	}
	.smp-ficha-tabs .smp-detalle-item,
	.smp-ficha-tabs .smp-detalle-item--wide {
		grid-column: auto;
		padding: 13px 14px;
	}
	.smp-ficha-tabs .smp-detalle-item dt {
		font-size: 14px !important;
		line-height: 1.35 !important;
		color: #111111 !important;
	}
	.smp-ficha-tabs .smp-detalle-item dd {
		font-size: 19px !important;
		line-height: 1.4 !important;
		color: #000000 !important;
	}
	.smp-ficha-tabs .smp-chips-list li {
		font-size: 15px !important;
		padding: 10px 13px;
		color: #111111 !important;
	}
}


/* ============ CONTRASTE REFORZADO FICHA TÉCNICA v1.7.3 ============ */
.smp-ficha-tabs,
.smp-ficha-tabs .smp-tabs-content-frontend,
.smp-ficha-tabs .smp-tab-pane {
	color: #111111 !important;
}
.smp-ficha-tabs .smp-detalle-item dt {
	color: #111111 !important;
	opacity: 1 !important;
}
.smp-ficha-tabs .smp-detalle-item dd {
	color: #000000 !important;
	opacity: 1 !important;
}
.smp-ficha-tabs .smp-tabs-nav-frontend li a,
.smp-ficha-tabs .smp-chips-list li {
	color: #111111 !important;
	opacity: 1 !important;
}
@media (max-width: 700px) {
	.smp-ficha-tabs .smp-detalle-item {
		padding: 15px 15px !important;
	}
	.smp-ficha-tabs .smp-detalle-item dt {
		font-size: 14px !important;
		font-weight: 800 !important;
	}
	.smp-ficha-tabs .smp-detalle-item dd {
		font-size: 19px !important;
		font-weight: 800 !important;
	}
}

/* ============ BARRA DE DATOS RÁPIDOS — LEGIBILIDAD v1.7.4 ============ */
/* Esta es la franja inmediatamente debajo del mapa. Se blinda contra
   tipografías/colores pequeños heredados del theme. */
.smp-ficha .smp-ficha-stats {
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
	gap: 18px 22px !important;
	padding: 24px 26px !important;
	background: var(--smp-gris-1) !important;
}
.smp-ficha .smp-ficha-stats .smp-stat {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	min-width: 0;
	color: #000000 !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	opacity: 1 !important;
}
.smp-ficha .smp-ficha-stats .smp-stat > span {
	display: block !important;
	min-width: 0;
	color: #000000 !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	opacity: 1 !important;
}
.smp-ficha .smp-ficha-stats .smp-stat small {
	display: inline-block !important;
	margin-top: 5px !important;
	color: #000000 !important;
	font-size: 15px !important;
	font-weight: 650 !important;
	line-height: 1.25 !important;
	opacity: 1 !important;
}
.smp-ficha .smp-ficha-stats .smp-stat svg {
	width: 40px !important;
	height: 40px !important;
	min-width: 40px !important;
	color: var(--smp-primario) !important;
	stroke: currentColor !important;
	stroke-width: 2.25 !important;
	opacity: 1 !important;
}

@media (max-width: 700px) {
	.smp-ficha .smp-ficha-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 16px 12px !important;
		padding: 20px 16px !important;
	}
	.smp-ficha .smp-ficha-stats .smp-stat {
		gap: 11px !important;
		font-size: 19px !important;
	}
	.smp-ficha .smp-ficha-stats .smp-stat > span {
		font-size: 19px !important;
	}
	.smp-ficha .smp-ficha-stats .smp-stat small {
		font-size: 15px !important;
		font-weight: 650 !important;
	}
	.smp-ficha .smp-ficha-stats .smp-stat svg {
		width: 38px !important;
		height: 38px !important;
		min-width: 38px !important;
	}
}

@media (max-width: 380px) {
	.smp-ficha .smp-ficha-stats {
		grid-template-columns: 1fr !important;
	}
}

