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

:root {
	--smp-primario: #FF6B1A;
	--smp-secundario: #0F2A47;
	--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-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: 20px !important;
	box-shadow: var(--smp-sombra);
	margin: 0 0 30px !important;
	border: 1px solid var(--smp-gris-2);
}
.smp-buscador-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px 16px;
	align-items: end;
}
.smp-buscador-completo .smp-buscador-grid {
	grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1024px) {
	.smp-buscador-completo .smp-buscador-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
	.smp-buscador-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
	.smp-buscador-grid { grid-template-columns: 1fr !important; }
}
.smp-buscador-field {
	display: flex !important;
	flex-direction: column !important;
	min-width: 0;
}
.smp-buscador-field label {
	display: block !important;
	font-size: 12px !important;
	text-transform: uppercase;
	color: var(--smp-gris-3) !important;
	margin: 0 0 6px !important;
	font-weight: 600;
	letter-spacing: .3px;
	line-height: 1.2;
}
.smp-buscador-field select,
.smp-buscador-field input[type="number"],
.smp-buscador-field input[type="text"] {
	width: 100% !important;
	padding: 10px 12px !important;
	border: 1px solid var(--smp-gris-2) !important;
	border-radius: 6px !important;
	background: #fff !important;
	font-size: 14px !important;
	height: 42px !important;
	line-height: 1.4;
	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 3px rgba(255,107,26,0.1) !important;
}
.smp-buscador-submit button {
	height: 42px;
	width: 100%;
	font-size: 14px;
}

/* ============ 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;
}
