/* ==========================================================================
   Buscador de inmuebles — Inmobiliaria Solís
   ========================================================================== */

/* Las tarjetas se usan dentro del buscador y también sueltas (portada),
   así que las variables van al documento, no al contenedor del buscador. */
:root {
	--solis-naranja: #FA6407;
	--solis-naranja-oscuro: #E85500;
	--solis-texto: #111;
	--solis-gris: #7A7A7A;
	--solis-borde: #E4E4E4;
	--solis-fondo: #F4F5F7;
	--solis-radio: 14px;
}

/* ---------------------------------------------------------------- filtros */

/* Todos los controles del buscador miden lo mismo y se redondean igual:
   basta cambiar estas dos medidas para reafinar la barra entera. */
.solis-buscador {
	--alto: 46px;
	--radio-campo: 10px;
}

.solis-filtros {
	background: #fff;
	border: 1px solid var(--solis-borde);
	border-radius: var(--solis-radio);
	padding: 18px;
	margin-bottom: 22px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
}

.solis-filtros__principal {
	display: flex;
	gap: 12px;
	align-items: stretch;
	margin-bottom: 14px;
}

.solis-filtros__buscar {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
}

.solis-filtros__buscar svg {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	color: var(--solis-gris);
	pointer-events: none;
}

.solis-filtros__buscar input {
	width: 100%;
	height: var(--alto);
	padding: 0 16px 0 46px !important;
	font-size: 15px;
	border: 1px solid var(--solis-borde);
	border-radius: var(--radio-campo);
	background: #fff;
	box-sizing: border-box;
	min-height: 0;
	transition: border-color .2s, box-shadow .2s;
}

.solis-filtros__buscar input:focus {
	outline: none;
	border-color: var(--solis-naranja);
	box-shadow: 0 0 0 3px rgba(250, 100, 7, .15);
}

/* Botón que despliega el resto de opciones */

.solis-mas {
	flex: 0 0 auto;
	height: var(--alto);
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 0 18px !important;
	min-height: 0 !important;
	border: 1px solid var(--solis-borde) !important;
	border-radius: var(--radio-campo) !important;
	background: #fff !important;
	color: var(--solis-texto) !important;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: border-color .18s, color .18s, background .18s;
}

.solis-mas svg { width: 18px; height: 18px; }

.solis-mas:hover {
	border-color: var(--solis-naranja) !important;
	color: var(--solis-naranja) !important;
}

.solis-mas.es-abierto {
	border-color: var(--solis-naranja) !important;
	background: rgba(250, 100, 7, .07) !important;
	color: var(--solis-naranja) !important;
}

.solis-mas__n {
	display: inline-grid;
	place-items: center;
	min-width: 21px;
	height: 21px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--solis-naranja);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.solis-mas__n[hidden] { display: none; }

/* Panel desplegable */

.solis-filtros__avanzados {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--solis-borde);
}

.solis-filtros__avanzados[hidden] { display: none; }

.solis-filtros__rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 14px;
	align-items: end;
}

.solis-filtros__pie {
	display: flex;
	justify-content: flex-end;
	margin-top: 14px;
}

/* Botones de categoría */
.solis-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.solis-chip {
	background: #fff !important;
	color: var(--solis-texto) !important;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 40px;
	padding: 0 16px !important;
	min-height: 0 !important;
	border: 1px solid var(--solis-borde);
	border-radius: var(--radio-campo) !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	text-transform: capitalize;
	transition: all .18s;
}

.solis-chip:hover {
	border-color: var(--solis-naranja);
	color: var(--solis-naranja) !important;
}

.solis-chip.es-activo {
	background: var(--solis-naranja) !important;
	border-color: var(--solis-naranja);
	color: #fff !important;
}

.solis-chip__n {
	font-size: 12px;
	font-weight: 700;
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--solis-fondo);
	color: var(--solis-gris);
}

.solis-chip.es-activo .solis-chip__n {
	background: rgba(255, 255, 255, .25);
	color: #fff;
}

/* Campos */
.solis-campo {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 12px;
	font-weight: 600;
	color: var(--solis-gris);
	text-transform: uppercase;
	letter-spacing: .03em;
}

.solis-campo select,
.solis-campo input {
	width: 100%;
	height: var(--alto);
	padding: 0 12px;
	font-size: 14px;
	font-weight: 400;
	color: var(--solis-texto);
	text-transform: none;
	letter-spacing: 0;
	border: 1px solid var(--solis-borde);
	border-radius: var(--radio-campo);
	background: #fff;
	min-width: 0;
	box-sizing: border-box;
	/* Anula el select global heredado del sitio antiguo */
	min-height: 0;
	padding-right: 12px !important;
	background-image: none;
}

.solis-campo select:focus,
.solis-campo input:focus {
	outline: none;
	border-color: var(--solis-naranja);
	box-shadow: 0 0 0 3px rgba(250, 100, 7, .15);
}

.solis-campo__par { display: flex; gap: 8px; }
.solis-campo__par input { min-width: 0; }

.solis-limpiar {
	height: var(--alto);
	padding: 0 18px !important;
	min-height: 0 !important;
	border: 1px solid var(--solis-borde) !important;
	border-radius: var(--radio-campo) !important;
	background: #fff !important;
	color: var(--solis-gris) !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
}

.solis-limpiar:hover {
	color: var(--solis-naranja) !important;
	border-color: var(--solis-naranja) !important;
	background: #fff !important;
}

/* ------------------------------------------------------------------ barra */

.solis-buscador__barra {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 18px;
	flex-wrap: wrap;
}

.solis-buscador__titular { margin-right: auto; }

.solis-buscador__h {
	margin: 0 !important;
	font-size: 22px !important;
	font-weight: 700;
	line-height: 1.25;
	color: var(--solis-texto) !important;
	text-transform: none;
}

.solis-buscador__resumen {
	margin: 3px 0 0 !important;
	font-size: 15px;
	font-weight: 400;
	color: var(--solis-gris);
}

.solis-buscador__orden {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 13px;
	color: var(--solis-gris);
}

/* Partido en dos líneas, "Ordenar por" desalinea toda la barra. */
.solis-buscador__orden > span { white-space: nowrap; }

.solis-buscador__orden select {
	height: var(--alto);
	padding: 0 12px;
	font-size: 14px;
	color: var(--solis-texto);
	border: 1px solid var(--solis-borde);
	border-radius: var(--radio-campo);
	background: #fff;
	min-height: 0;
	padding-right: 12px !important;
	background-image: none;
}

.solis-vistas {
	display: flex;
	gap: 4px;
	height: var(--alto);
	padding: 3px;
	border: 1px solid var(--solis-borde);
	border-radius: var(--radio-campo);
	background: #fff;
	box-sizing: border-box;
}

.solis-vista {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 0 14px !important;
	min-height: 0 !important;
	border: 0 !important;
	border-radius: 7px !important;
	background: none !important;
	color: var(--solis-gris) !important;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background .18s, color .18s;
}

.solis-vista svg { width: 17px; height: 17px; }
.solis-vista:hover { color: var(--solis-texto) !important; }

.solis-vista.es-activo {
	background: var(--solis-naranja) !important;
	color: #fff !important;
}

@media (max-width: 560px) {
	.solis-vista span { display: none; }
	.solis-vista { padding: 8px 10px !important; }
}

/* -------------------------------------------------------------- tarjetas */

.solis-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
}

.solis-card {
	background: #fff;
	border: 1px solid #E8E8E8;
	border-radius: var(--solis-radio);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .25s ease, transform .25s ease;
}

.solis-card:hover {
	box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
	transform: translateY(-2px);
}

.solis-card__media { position: relative; display: block; line-height: 0; }

.solis-card__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
}

.solis-card__media--vacia {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 3 / 2;
	background: var(--solis-fondo);
	color: var(--solis-gris) !important;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
}

/* ------------------------------------------------------- carrusel de fotos */

.solis-carrusel {
	position: relative;
	overflow: hidden;
	background: var(--solis-fondo);
}

.solis-carrusel__pista {
	display: flex;
	transition: transform .32s cubic-bezier(.4, 0, .2, 1);
	will-change: transform;
}

/* Cada foto ocupa exactamente el ancho visible: el desplazamiento es un
   múltiplo de 100% y no hace falta medir nada en JavaScript. */
.solis-carrusel__foto {
	flex: 0 0 100%;
	max-width: 100%;
	display: block;
	line-height: 0;
}

.solis-carrusel__flecha {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 38px !important;
	height: 46px !important;
	min-height: 0 !important;
	padding: 0 !important;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0 !important;
	border-radius: 4px !important;
	background: rgba(0, 0, 0, .48) !important;
	color: #fff !important;
	cursor: pointer;
	opacity: 0;
	transition: opacity .18s, background .18s;
}

.solis-carrusel__flecha--prev { left: 8px; }
.solis-carrusel__flecha--next { right: 8px; }
.solis-carrusel__flecha svg { width: 20px; height: 20px; }
.solis-carrusel__flecha:hover { background: rgba(0, 0, 0, .72) !important; }

.solis-card:hover .solis-carrusel__flecha,
.solis-carrusel__flecha:focus-visible { opacity: 1; }

/* Sin ratón no hay hover que valga: las flechas se quedan puestas. */
@media (hover: none) {
	.solis-carrusel__flecha { opacity: 1; }
}


@media (prefers-reduced-motion: reduce) {
	.solis-carrusel__pista { transition: none; }
}

/* Etiquetas sobre la foto.
   Empezaron siendo píldoras macizas naranja y morada (pesaban como botones) y
   luego cristal oscuro con un punto de color, que sobre fotos claras quedaba
   turbio. Ahora son chips blancos: se leen igual sobre cualquier fotografía y
   el color de marca lo pone el texto de la operación. */

.solis-badges {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	z-index: 2;
	max-width: calc(100% - 20px);
}

.solis-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 11px;
	border-radius: 8px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.45;
	text-transform: capitalize;
	color: #16211B;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .16);
	white-space: nowrap;
}

/* La operación (alquiler, venta, terreno…) en el naranja de la marca. */
.solis-badge--cat { color: var(--solis-naranja); }

.solis-badge--360 svg { width: 14px; height: 14px; color: #16211B; }

/* ------------------------------------------------------- carrusel de fotos */

.solis-carrusel {
	position: relative;
	overflow: hidden;
	background: var(--solis-fondo);
}

.solis-carrusel__pista {
	display: flex;
	transition: transform .32s cubic-bezier(.4, 0, .2, 1);
	will-change: transform;
}

/* Cada foto ocupa exactamente el ancho visible: el desplazamiento es un
   múltiplo de 100% y no hace falta medir nada en JavaScript. */
.solis-carrusel__foto {
	flex: 0 0 100%;
	max-width: 100%;
	display: block;
	line-height: 0;
}

.solis-carrusel__flecha {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 38px !important;
	height: 46px !important;
	min-height: 0 !important;
	padding: 0 !important;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0 !important;
	border-radius: 4px !important;
	background: rgba(0, 0, 0, .48) !important;
	color: #fff !important;
	cursor: pointer;
	opacity: 0;
	transition: opacity .18s, background .18s;
}

.solis-carrusel__flecha--prev { left: 8px; }
.solis-carrusel__flecha--next { right: 8px; }
.solis-carrusel__flecha svg { width: 20px; height: 20px; }
.solis-carrusel__flecha:hover { background: rgba(0, 0, 0, .72) !important; }

.solis-card:hover .solis-carrusel__flecha,
.solis-carrusel__flecha:focus-visible { opacity: 1; }

/* Sin ratón no hay hover que valga: las flechas se quedan puestas. */
@media (hover: none) {
	.solis-carrusel__flecha { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.solis-carrusel__pista { transition: none; }
}

.solis-card__body {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}

.solis-card__fila-precio { display: flex; align-items: center; gap: 10px; }

.solis-card__precio {
	font-size: 21px;
	font-weight: 800;
	color: var(--solis-texto);
	line-height: 1.2;
}

.solis-card__precio--consultar { font-size: 17px; color: var(--solis-gris); }

.solis-card__precio-alt { font-size: 15px; font-weight: 600; color: var(--solis-gris); }

.solis-card__share {
	margin-left: auto;
	color: var(--solis-texto);
	display: inline-flex;
	padding: 4px;
	border-radius: 8px;
}

.solis-card__share:hover { background: var(--solis-fondo); color: var(--solis-naranja); }
.solis-card__share svg { width: 22px; height: 22px; }

/* ==================================================== menú de compartir */
/* Es un <dialog>: el foco atrapado, el cierre con Escape y el fondo modal
   los pone el navegador. Aquí solo va el aspecto. */

.solis-compartir {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: 100vw;
	max-height: 100vh;
	overflow: visible;
	color: var(--solis-texto);
}

.solis-compartir::backdrop {
	background: rgba(15, 20, 17, .55);
	backdrop-filter: blur(2px);
}

.solis-compartir__caja {
	width: min(460px, calc(100vw - 32px));
	box-sizing: border-box;
	padding: 22px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
	animation: solis-compartir-entra .18s ease;
}

@keyframes solis-compartir-entra {
	from { opacity: 0; transform: translateY(10px) scale(.98); }
	to   { opacity: 1; transform: none; }
}

.solis-compartir__cabecera {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 18px;
}

.solis-compartir__cabecera h2 {
	margin: 0 !important;
	font-size: 19px !important;
	font-weight: 700;
	line-height: 1.25;
	color: var(--solis-texto) !important;
}

.solis-compartir__nombre {
	margin: 4px 0 0 !important;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--solis-gris);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.solis-compartir__cerrar {
	margin-left: auto;
	flex: 0 0 auto;
	width: 34px !important;
	height: 34px !important;
	min-height: 0 !important;
	padding: 0 !important;
	display: grid;
	place-items: center;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--solis-fondo) !important;
	color: var(--solis-texto) !important;
	cursor: pointer;
}

.solis-compartir__cerrar:hover { background: #E7E9EC !important; }
.solis-compartir__cerrar svg { width: 17px; height: 17px; }

/* Rejilla de redes */

/* Dos columnas: a tres, "X (Twitter)" y "Más opciones" parten en dos líneas
   y esas dos casillas quedan más altas que el resto. */
.solis-compartir__redes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}

.solis-compartir__red {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px !important;
	min-height: 0 !important;
	border: 1px solid var(--solis-borde) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--solis-texto) !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	text-align: left;
	text-decoration: none !important;
	cursor: pointer;
	transition: border-color .18s, background .18s, transform .18s;
}

.solis-compartir__red:hover {
	transform: translateY(-1px);
	background: var(--solis-fondo) !important;
}

.solis-compartir__red svg { width: 21px; height: 21px; flex: 0 0 auto; }
.solis-compartir__red span { line-height: 1.2; white-space: nowrap; }

/* Enfocado por showModal(): no debe parecer que ya está pulsado. */
.solis-compartir__caja:focus { outline: none; }

/* Cada red con su color, que es lo que las hace reconocibles de un vistazo. */
.solis-compartir__red.es-whatsapp svg { color: #25D366; }
.solis-compartir__red.es-facebook svg { color: #1877F2; }
.solis-compartir__red.es-x svg        { color: #111; }
.solis-compartir__red.es-telegram svg { color: #229ED9; }
.solis-compartir__red.es-correo svg   { color: var(--solis-gris); }
.solis-compartir__red.es-mas svg      { color: var(--solis-naranja); }

.solis-compartir__red.es-whatsapp:hover { border-color: #25D366 !important; }
.solis-compartir__red.es-facebook:hover { border-color: #1877F2 !important; }
.solis-compartir__red.es-x:hover        { border-color: #111 !important; }
.solis-compartir__red.es-telegram:hover { border-color: #229ED9 !important; }

/* Copiar enlace */

.solis-compartir__enlace {
	display: flex;
	gap: 8px;
}

.solis-compartir__enlace input {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	padding: 0 14px !important;
	min-height: 0;
	border: 1px solid var(--solis-borde);
	border-radius: 10px;
	background: var(--solis-fondo);
	color: var(--solis-gris);
	font-size: 13.5px;
	font-family: inherit;
	text-overflow: ellipsis;
}

.solis-compartir__copiar {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 20px !important;
	min-height: 0 !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--solis-naranja) !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background .18s;
}

.solis-compartir__copiar:hover { background: var(--solis-naranja-oscuro) !important; }

.solis-compartir__aviso {
	margin: 10px 0 0 !important;
	min-height: 1.3em;
	font-size: 13px;
	font-weight: 600;
	color: #1B7F3B;
}

@media (max-width: 420px) {
	.solis-compartir__redes { grid-template-columns: 1fr 1fr; }
	.solis-compartir__caja { padding: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.solis-compartir__caja { animation: none; }
	.solis-compartir__red { transition: none; }
	.solis-compartir__red:hover { transform: none; }
}

/* Cada característica en su propia cajita: sueltas en una línea se leían
   como un renglón de texto más y se perdían entre el título y la dirección. */
.solis-card__specs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 4px;
}

.solis-card__specs span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 11px;
	border: 1px solid var(--solis-borde);
	border-radius: 10px;
	background: var(--solis-fondo);
	font-size: 13.5px;
	line-height: 1.3;
	color: var(--solis-texto);
	white-space: nowrap;
}

.solis-card__specs svg {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	color: var(--solis-naranja);
}

.solis-card__specs b { font-weight: 700; }

/* Piezas exclusivas de la vista en lista: en cuadrícula no hay sitio para
   ellas, así que se declaran ocultas y la vista de lista las enciende. */

.solis-card__tipo,
.solis-card__desc,
.solis-card__acciones { display: none; }

.solis-card__tipo {
	margin: 0 !important;
	font-size: 15px;
	color: var(--solis-texto);
}

.solis-card__desc {
	margin: 0 !important;
	font-size: 14px;
	line-height: 1.55;
	color: var(--solis-gris);
	overflow: hidden;
	/* El recorte a dos líneas se aplica al encenderla en la vista de lista:
	   ponerlo aquí reactivaría el display y la colaría en la cuadrícula. */
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.solis-card__acciones {
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}

.solis-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 42px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none !important;
	color: var(--solis-texto) !important;
	transition: background .18s, color .18s, border-color .18s;
}

.solis-cta svg { width: 18px; height: 18px; flex: 0 0 auto; }

.solis-cta--principal {
	background: var(--solis-naranja);
	color: #fff !important;
	padding: 0 22px;
}

.solis-cta--principal:hover { background: var(--solis-naranja-oscuro); }

/* Secundarios: sin caja, para que el naranja siga siendo el único botón. */
.solis-cta:not(.solis-cta--principal) { color: var(--solis-naranja) !important; }
.solis-cta:not(.solis-cta--principal):hover { background: var(--solis-fondo); }

/* Va después del :not de arriba para poder ganarle sin subir especificidad. */
.solis-cta.solis-cta--wsp { color: #128C4B !important; }
.solis-cta.solis-cta--wsp:hover { background: #F1FBF4; }

/* El título va en gris oscuro y con menos peso: en negro puro y seminegrita
   competía con el precio, que es lo que primero se busca en una tarjeta. */
.solis-card__nombre {
	font-size: 15px;
	font-weight: 400;
	color: #4A4A4A !important;
	text-decoration: none;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.solis-card__nombre:hover { color: var(--solis-naranja) !important; }

.solis-card__dir { font-size: 14px; color: var(--solis-gris); margin-top: auto; }

/* =================================================================== mapa */
/* Mapa a la izquierda y resultados a la derecha, cada uno con su propio
   scroll. Los pines son los de la página que se está viendo, no los de las
   88 propiedades: si no, el mapa y la lista contarían cosas distintas. */

.solis-buscador__mapa { display: none; }

/* Solo el mapa va a sangre; los filtros y las tarjetas se quedan dentro del
   contenedor. 100vw y márgenes negativos desde el centro de su caja; el
   sobrante de la barra de desplazamiento lo recorta el `overflow-x: clip`
   del body, más abajo. */
.es-vista-mapa .solis-buscador__zona {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 16px;
	box-sizing: border-box;

	/* Sin columna de resultados al lado: el mapa se lo queda todo y la
	   información de cada propiedad sale en su globo. */
	height: clamp(560px, calc(100vh - 150px), 1040px);
}

/* La lista sobra en esta vista: lo que se busca aquí es dónde están. */
.es-vista-mapa .solis-buscador__resultados { display: none; }

/* El recorte va en el BODY, no en la raíz del buscador: esa mide lo que el
   contenedor de Elementor (1160px) y recortaba la zona a sangre justo en su
   borde, dejando las tarjetas cortadas. "clip" y no "hidden" porque hidden
   crearía un contenedor de scroll. */
body { overflow-x: clip; }

.es-vista-mapa .solis-buscador__mapa {
	display: block;
	height: 100%;
	border: 1px solid var(--solis-borde);
	border-radius: var(--solis-radio);
	overflow: hidden;
	background: var(--solis-fondo);
	/* Por debajo de la cabecera y del menú de compartir. */
	z-index: 0;
}

/* Aviso cuando ninguna propiedad del filtro tiene punto marcado. */
.solis-buscador__mapa.es-vacio::after {
	content: "Ninguna de estas propiedades tiene ubicación marcada todavía.";
	display: grid;
	place-items: center;
	height: 100%;
	padding: 24px;
	text-align: center;
	color: var(--solis-gris);
	font-size: 15px;
}

/* Cuántas de las propiedades listadas salen en el mapa. */
.solis-mapa-nota {
	margin: 0 0 10px !important;
	font-size: 13px;
	color: var(--solis-gris);
}

.solis-mapa-nota[hidden] { display: none; }

/* Pin: una casita, no el precio. En un listado con alquileres de S/600 y
   ventas de S/300.000 el número no dice gran cosa; el nombre sí, y ese sale
   en el globo al pulsar (y en el título del marcador al pasar el ratón). */
.solis-pin {
	display: grid;
	place-items: center;
	/* divIcon ancla por la esquina; esto lo centra sobre su coordenada. */
	transform: translate(-50%, -50%);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 2px solid #fff;
	background: var(--solis-naranja);
	color: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .35);
	cursor: pointer;
	transition: background .15s, transform .15s;
}

.solis-pin svg { width: 17px; height: 17px; }

.solis-pin:hover { background: var(--solis-naranja-oscuro); }

.solis-pin.es-activo {
	background: #072017;
	transform: translate(-50%, -50%) scale(1.18);
}

/* Globo con la ficha resumida */

.solis-globo-caja .leaflet-popup-content-wrapper {
	padding: 0;
	border-radius: 12px;
	overflow: hidden;
}

/* Leaflet calcula el ancho del contenido y con margin:0 se quedaba en lo que
   midiera el texto más corto; el ancho lo fija la propia ficha. */
.solis-globo-caja .leaflet-popup-content { margin: 0; width: 240px !important; }

.solis-globo {
	display: block;
	width: 240px;
	text-decoration: none !important;
	color: var(--solis-texto) !important;
}

.solis-globo img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.solis-globo__texto { display: block; padding: 11px 13px 13px; }

.solis-globo__texto b {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

.solis-globo__texto i {
	display: block;
	margin-top: 3px;
	font-style: normal;
	font-size: 12.5px;
	color: var(--solis-gris);
}

.solis-globo__texto em {
	display: block;
	margin-top: 6px;
	font-style: normal;
	font-size: 16px;
	font-weight: 800;
	color: var(--solis-naranja);
}

@media (max-width: 900px) {
	.es-vista-mapa .solis-buscador__zona {
		height: clamp(420px, calc(100vh - 210px), 700px);
		padding: 0;
		width: auto;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
	}
}

/* ================================================================== lista */
/* Una tarjeta por fila: foto fija a la izquierda, datos y botones al lado.
   La clase vive en la raíz del buscador para que sobreviva al refresco de
   resultados, que reemplaza el HTML de las tarjetas entero. */

.es-vista-lista .solis-cards {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.es-vista-lista .solis-card {
	flex-direction: row;
	align-items: stretch;
}

/* Levantar una fila de ancho completo se ve como un salto, no como un realce. */
.es-vista-lista .solis-card:hover { transform: none; }

.es-vista-lista .solis-card__media {
	position: relative;
	flex: 0 0 340px;
	width: 340px;
	align-self: stretch;
}

/* Sacar el carrusel del flujo es lo que impide que la foto deforme la fila:
   así la altura la marca solo el texto, y la imagen se recorta para llenarla.
   Si se dejara en flujo, una foto vertical estiraría la tarjeta entera. */
.es-vista-lista .solis-carrusel {
	position: absolute;
	inset: 0;
}

.es-vista-lista .solis-carrusel__pista,
.es-vista-lista .solis-carrusel__foto { height: 100%; }

.es-vista-lista .solis-card__media img {
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	object-fit: cover;
}

.es-vista-lista .solis-card__media--vacia {
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	aspect-ratio: auto;
}

/* El alto de la fila lo pone el texto; este mínimo evita tarjetas raquíticas
   cuando la propiedad casi no tiene datos. */
.es-vista-lista .solis-card__body { min-height: 252px; }

/* Redondas y siempre visibles, como en el listado de referencia. */
.es-vista-lista .solis-carrusel__flecha {
	width: 34px !important;
	height: 34px !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .82) !important;
	color: #333 !important;
	opacity: 1;
}

.es-vista-lista .solis-carrusel__flecha:hover { background: #fff !important; }
.es-vista-lista .solis-carrusel__flecha svg { width: 17px; height: 17px; }

.es-vista-lista .solis-card__body {
	padding: 18px 22px 16px;
	gap: 7px;
	min-width: 0;
}

.es-vista-lista .solis-card__precio { font-size: 23px; }

/* Piezas que solo tienen sentido con el ancho de una fila entera. */
.es-vista-lista .solis-card__tipo { display: block; }
.es-vista-lista .solis-card__desc { display: -webkit-box; }
.es-vista-lista .solis-card__acciones { display: flex; }

.es-vista-lista .solis-card__specs { margin-top: 6px; }

.es-vista-lista .solis-card__nombre {
	font-size: 16px;
	font-weight: 500;
	-webkit-line-clamp: 1;
	margin-top: 3px;
}

/* La dirección ya va en la línea de "Alquiler en …": repetirla sobra. */
.es-vista-lista .solis-card__dir { display: none; }

/* Los botones se pegan abajo cuando la foto es más alta que el texto. */
.es-vista-lista .solis-card__acciones { margin-top: auto; padding-top: 12px; }

/* Estrecho, la fila no cabe: vuelve a apilarse como la tarjeta normal. */
@media (max-width: 860px) {
	.es-vista-lista .solis-card__media { flex-basis: 260px; width: 260px; }
	.es-vista-lista .solis-card__body { padding: 16px 18px 14px; }
	.es-vista-lista .solis-card__precio { font-size: 22px; }
}

@media (max-width: 680px) {
	.es-vista-lista .solis-card { flex-direction: column; }

	.es-vista-lista .solis-card__media {
		flex: 0 0 auto;
		width: auto;
	}

	/* Apilada ya no hay fila que llenar: el carrusel vuelve al flujo, porque
	   fuera de él la foto no tendría de dónde sacar el alto y desaparecería. */
	.es-vista-lista .solis-carrusel,
	.es-vista-lista .solis-card__media--vacia {
		position: static;
		inset: auto;
	}

	.es-vista-lista .solis-carrusel__pista,
	.es-vista-lista .solis-carrusel__foto { height: auto; }

	.es-vista-lista .solis-card__media img,
	.es-vista-lista .solis-card__media--vacia {
		width: 100%;
		height: auto;
		min-height: 0;
		aspect-ratio: 3 / 2;
	}

	.es-vista-lista .solis-card__body { min-height: 0; }
	.es-vista-lista .solis-card__acciones { margin-top: 12px; }
}

/* ==================================================== zonas de la portada */
/* "Estamos cerca de ti": una foto por zona con el número real de propiedades.
   El velo de abajo es lo que garantiza que el texto se lea, sea cual sea la
   fotografía; antes iba suelto sobre la imagen y dependía de la suerte. */

.solis-zonas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 26px;
	max-width: 1200px;
	margin: 0 auto;
}

.solis-zona {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none !important;
	background: var(--solis-fondo);
	box-shadow: 0 4px 18px rgba(0, 0, 0, .1);
}

.solis-zona .solis-zona__foto,
.solis-zona__foto {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s ease;
}

.solis-zona:hover .solis-zona__foto { transform: scale(1.06); }

.solis-zona::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(6, 17, 12, 0) 35%,
		rgba(6, 17, 12, .55) 68%,
		rgba(6, 17, 12, .88) 100%
	);
}

.solis-zona__texto {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 22px;
	color: #fff;
}

.solis-zona__texto b {
	display: block;
	font-size: clamp(22px, 2.3vw, 30px);
	font-weight: 700;
	line-height: 1.15;
}

/* La cifra es la misma que devolverá el buscador al pulsar. */
.solis-zona__texto em {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--solis-naranja);
	color: #fff;
	font-style: normal;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1;
	transition: gap .18s, background .18s;
}

.solis-zona:hover .solis-zona__texto em {
	gap: 12px;
	background: var(--solis-naranja-oscuro);
}

.solis-zona__texto em svg { width: 16px; height: 16px; }

@media (prefers-reduced-motion: reduce) {
	.solis-zona__foto,
	.solis-zona__texto em { transition: none; }
	.solis-zona:hover .solis-zona__foto { transform: none; }
}

/* ============================================== categorías de la portada */
/* Foto arriba y ficha blanca debajo (icono, nombre y pie con la cifra).
   Justo encima va "Estamos cerca de ti", que son fotos grandes con el nombre
   ENCIMA; con la misma fórmula las dos secciones parecían la misma. */

.solis-cats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
}

.solis-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
	text-decoration: none !important;
	color: var(--solis-texto) !important;
	box-shadow: 0 1px 2px rgba(16, 24, 20, .06), 0 6px 18px rgba(16, 24, 20, .06);
	transition: box-shadow .22s ease, transform .22s ease;
}

.solis-cat:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgba(16, 24, 20, .07), 0 18px 40px rgba(16, 24, 20, .16);
}

/* -------------------------------------------------------------- la foto */

.solis-cat__foto {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--solis-fondo);
}

/* El selector lleva un nivel de más a propósito: Elementor impone
   .elementor img{height:auto} después de esta hoja y con la misma
   especificidad, y la foto se quedaba corta dejando una franja gris. */
.solis-cat .solis-cat__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .55s ease;
}

.solis-cat:hover .solis-cat__foto img { transform: scale(1.07); }

/* Oscurecido leve al pie de la foto: engancha con la ficha blanca en vez de
   cortarse en seco. */
.solis-cat__foto::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 45%;
	background: linear-gradient(180deg, rgba(6, 17, 12, 0), rgba(6, 17, 12, .3));
}

/* ------------------------------------------------------------- la ficha */

.solis-cat__ficha {
	position: relative;
	display: block;
	padding: 0 20px 18px;
}

/* El icono monta sobre la foto y ata las dos mitades de la tarjeta. */
.solis-cat__icono {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-top: -26px;
	margin-bottom: 12px;
	border-radius: 15px;
	background: #fff;
	color: var(--solis-naranja);
	box-shadow: 0 4px 14px rgba(16, 24, 20, .16);
	transition: background .22s ease, color .22s ease;
}

.solis-cat:hover .solis-cat__icono {
	background: var(--solis-naranja);
	color: #fff;
}

.solis-cat__icono svg { width: 25px; height: 25px; }

.solis-cat__nombre {
	display: block;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	min-height: 2.6em;   /* dos líneas: las tarjetas quedan a la misma altura */
}

.solis-cat__pie {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--solis-borde);
}

.solis-cat__pie i {
	font-style: normal;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--solis-gris);
	transition: color .22s ease;
}

.solis-cat:hover .solis-cat__pie i { color: var(--solis-naranja); }

.solis-cat__pie svg {
	flex: 0 0 auto;
	width: 19px;
	height: 19px;
	color: var(--solis-naranja);
	transition: transform .22s ease;
}

.solis-cat:hover .solis-cat__pie svg { transform: translateX(4px); }

@media (max-width: 980px) {
	.solis-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

/* Dos columnas compactas: con una tarjeta gigante por fila, solo esta
   sección ya medía seis pantallas de scroll. */
@media (max-width: 620px) {
	.solis-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.solis-cat__nombre { min-height: 0; font-size: 15px; }
	.solis-cat__foto { aspect-ratio: 4 / 3; }
	.solis-cat__icono { width: 40px; height: 40px; margin-top: -20px; border-radius: 11px; }
	.solis-cat__icono svg { width: 19px; height: 19px; }
	.solis-cat__ficha { padding: 0 14px 12px; }
	.solis-cat__pie { padding: 10px 14px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.solis-cat,
	.solis-cat__foto img,
	.solis-cat__icono,
	.solis-cat__pie svg,
	.solis-cat__pie i { transition: none; }
	.solis-cat:hover { transform: none; }
	.solis-cat:hover .solis-cat__foto img,
	.solis-cat:hover .solis-cat__pie svg { transform: none; }
}

/* ------------------------------------------------------- estados y paginación */

.solis-vacio {
	padding: 56px 20px;
	text-align: center;
	background: #fff;
	border: 1px dashed var(--solis-borde);
	border-radius: var(--solis-radio);
	color: var(--solis-gris);
}

.solis-vacio strong { color: var(--solis-texto); font-size: 17px; }
.solis-vacio p { margin: 0 0 6px; }

.solis-paginacion {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 32px;
	flex-wrap: wrap;
}

.solis-pag {
	background: #fff !important;
	color: var(--solis-texto) !important;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--solis-borde);
	border-radius: 9px;
	background: #fff;
	color: var(--solis-texto);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all .18s;
}

.solis-pag:hover:not(:disabled) { border-color: var(--solis-naranja); color: var(--solis-naranja) !important; }

.solis-pag.es-activo {
	background: var(--solis-naranja) !important;
	border-color: var(--solis-naranja);
	color: #fff !important;
}

.solis-pag:disabled { opacity: .35; cursor: default; }
.solis-pag--flecha { font-size: 18px; line-height: 1; }
.solis-pag__hueco { padding: 0 4px; color: var(--solis-gris); }

/* Carga */
.solis-buscador__resultados { transition: opacity .15s; }
.solis-buscador.esta-cargando .solis-buscador__resultados { opacity: .45; }

.solis-buscador__cargando {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 20px;
	color: var(--solis-gris);
	font-size: 14px;
}

.solis-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid var(--solis-borde);
	border-top-color: var(--solis-naranja);
	border-radius: 50%;
	animation: solis-giro .7s linear infinite;
}

@keyframes solis-giro { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
	.solis-card, .solis-buscador__resultados { transition: none; }
	.solis-card:hover { transform: none; }
	.solis-spinner { animation-duration: 2s; }
}

/* ------------------------------------------------------------------ móvil */

@media (max-width: 782px) {
	.solis-filtros { padding: 14px; }

	/* Las categorías no caben en una línea: se deslizan de lado en vez de
	   partirse en varias filas y comerse la pantalla. */
	.solis-chips { width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
	.solis-chip { flex: 0 0 auto; }

	.solis-filtros__rejilla { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
	.solis-cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
	.solis-buscador__barra { gap: 10px; }
	.solis-buscador__h { font-size: 19px !important; }
	.solis-buscador__resumen { font-size: 14px; }

	/* La barra de resultados en dos alturas: titular arriba, controles abajo. */
	.solis-buscador__titular { flex: 1 0 100%; }
}

@media (max-width: 460px) {
	.solis-filtros__principal { flex-wrap: wrap; }
	.solis-mas { width: 100%; justify-content: center; }
}

/* Rejilla con número de columnas fijado desde el shortcode
   [solis_propiedades columnas="4"] — se reduce sola en pantallas pequeñas. */
.solis-cards--fijas {
	grid-template-columns: repeat(var(--solis-cols, 4), minmax(0, 1fr));
}

@media (max-width: 1100px) {
	.solis-cards--fijas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.solis-cards--fijas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* En móvil la pila vertical hacía la portada interminable (~10 tarjetas
   completas una tras otra). Pasa a ser un carril deslizable con snap: se
   hojea con el pulgar, como en los portales grandes. Solo afecta a las
   rejillas fijas de la portada, no al buscador. */
@media (max-width: 560px) {
	.solis-cards--fijas {
		display: flex;
		grid-template-columns: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 14px;
		padding-bottom: 16px;
		scrollbar-width: none;
	}

	.solis-cards--fijas::-webkit-scrollbar { display: none; }

	.solis-cards--fijas > .solis-card {
		flex: 0 0 84%;
		scroll-snap-align: center;
	}
}

/* ==========================================================================
   Sección de servicios de la portada ([solis_servicios])
   ========================================================================== */

.solis-serv {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.solis-serv__card {
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	padding: 34px 26px 28px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: box-shadow .22s ease, transform .22s ease;
}

.solis-serv__card:hover {
	box-shadow: 0 10px 28px rgba(0, 0, 0, .10);
	transform: translateY(-3px);
}

.solis-serv__icono {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50% 50% 6px 6px;
	background: rgba(250, 100, 7, .10);
	color: var(--solis-naranja, #FA6407);
	margin-bottom: 18px;
}

.solis-serv__icono svg { width: 38px; height: 38px; }

.solis-serv__titulo {
	margin: 0 0 10px !important;
	font-size: 21px !important;
	font-weight: 700;
	color: var(--solis-texto, #111);
}

.solis-serv__texto {
	margin: 0 0 22px;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--solis-gris, #7A7A7A);
	flex: 1;
}

.solis-serv__boton {
	display: inline-block;
	padding: 11px 24px;
	border: 1.5px solid #111 !important;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	color: #111 !important;
	text-decoration: none;
	transition: all .18s;
}

.solis-serv__boton:hover {
	background: var(--solis-naranja, #FA6407);
	border-color: var(--solis-naranja, #FA6407) !important;
	color: #fff !important;
}

@media (max-width: 1000px) {
	.solis-serv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 2x2 compacto: apiladas eran cuatro pantallas más de scroll. */
@media (max-width: 560px) {
	.solis-serv { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.solis-serv__card { padding: 20px 14px 18px; }
	.solis-serv__icono { width: 52px; height: 52px; }
	.solis-serv__icono svg { width: 24px; height: 24px; }
	.solis-serv__titulo { font-size: 16px; }
	.solis-serv__texto { font-size: 12.5px; }
	.solis-serv__boton { padding: 9px 14px; font-size: 13px; }
}

/* Casillas de filtros (estacionamiento, 360, mascotas) */
.solis-filtros__casillas {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid #F0F0F0;
}

.solis-casilla {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--solis-texto);
	cursor: pointer;
	min-height: 44px; /* objetivo táctil */
}

.solis-casilla input[type="checkbox"] {
	width: 18px !important;
	height: 18px;
	margin: 0 !important;
	accent-color: var(--solis-naranja);
	cursor: pointer;
}

.solis-casilla em {
	font-style: normal;
	font-size: 12px;
	font-weight: 700;
	color: var(--solis-gris);
	background: var(--solis-fondo);
	padding: 1px 7px;
	border-radius: 999px;
}

/* ==========================================================================
   Piezas comunes de marketing (botones, kicker, formularios)
   ========================================================================== */

.solis-kicker {
	margin: 0 0 10px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--solis-naranja);
}

.solis-kicker--centro { text-align: center; }

.solis-btn-primario,
.solis-btn-secundario,
.solis-btn-blanco {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: all .18s;
	box-sizing: border-box;
}

.solis-btn-primario {
	background: var(--solis-naranja) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 6px 18px rgba(250, 100, 7, .28);
}

.solis-btn-primario:hover {
	background: var(--solis-naranja-oscuro) !important;
	transform: translateY(-1px);
}

.solis-btn-secundario {
	background: #fff !important;
	color: var(--solis-texto) !important;
	border: 1.5px solid #111 !important;
}

.solis-btn-secundario:hover { background: #111 !important; color: #fff !important; }

.solis-btn-blanco {
	background: #fff !important;
	color: var(--solis-texto) !important;
	border: 0 !important;
}

.solis-btn-blanco:hover { transform: translateY(-1px); }

/* Honeypot: fuera de la vista pero presente para los bots. */
.solis-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.solis-form__estado { margin: 10px 0 0; font-size: 14px; min-height: 1.4em; }
.solis-form__estado.es-exito { color: #1B7F3B; font-weight: 600; }
.solis-form__estado.es-error { color: #C62828; font-weight: 600; }

/* ==========================================================================
   ¿Por qué elegir Solís?
   ========================================================================== */

.solis-porque {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.solis-porque__titulo {
	margin: 0 0 14px !important;
	font-size: clamp(26px, 3.2vw, 38px) !important;
	font-weight: 800;
	line-height: 1.15;
}

.solis-porque__titulo span { color: var(--solis-naranja); }

.solis-porque__intro {
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 1.7;
	color: #4A4A4A;
	max-width: 520px;
}

.solis-porque__lista {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 24px;
}

.solis-porque__lista li { display: flex; gap: 12px; align-items: flex-start; }

.solis-porque__icono {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgba(250, 100, 7, .1);
	color: var(--solis-naranja);
}

.solis-porque__icono svg { width: 22px; height: 22px; }

.solis-porque__lista strong { display: block; font-size: 15px; margin-bottom: 3px; }
.solis-porque__lista p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--solis-gris); }

.solis-porque__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

.solis-porque__cifras {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.solis-cifra {
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	padding: 26px 20px;
	text-align: center;
}

.solis-cifra b {
	display: block;
	font-size: clamp(30px, 3vw, 40px);
	font-weight: 800;
	color: var(--solis-naranja);
	line-height: 1.1;
	margin-bottom: 6px;
}

.solis-cifra span { font-size: 13px; line-height: 1.45; color: var(--solis-gris); display: block; }

@media (max-width: 900px) {
	.solis-porque { grid-template-columns: 1fr; gap: 30px; }
	.solis-porque__lista { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Testimonios
   ========================================================================== */

.solis-testi { text-align: center; }

.solis-testi__titulo {
	margin: 0 0 28px !important;
	font-size: clamp(24px, 3vw, 34px) !important;
	font-weight: 800;
}

.solis-testi__rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 22px;
	margin-bottom: 28px;
	text-align: left;
}

.solis-testi__card {
	margin: 0;
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	padding: 26px;
}

.solis-testi__comilla { width: 26px; height: 26px; color: var(--solis-naranja); opacity: .5; }

.solis-testi__card blockquote {
	margin: 10px 0 18px;
	font-size: 15px;
	line-height: 1.7;
	color: #3A3A3A;
}

.solis-testi__card figcaption { display: flex; align-items: center; gap: 12px; }

.solis-testi__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--solis-naranja);
	color: #fff;
	font-weight: 700;
	font-size: 17px;
	flex: 0 0 auto;
}

.solis-testi__card figcaption b { display: block; font-size: 14.5px; }
.solis-testi__card figcaption i { font-style: normal; font-size: 12.5px; color: var(--solis-gris); }

.solis-testi__aviso {
	background: #FFF6E9;
	border: 1px dashed #F0C48C;
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 13.5px;
	color: #8A5A16;
	max-width: 620px;
	margin: 0 auto 24px;
}

.solis-testi__google {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	border: 1px solid var(--solis-borde);
	border-radius: 999px;
	background: #fff;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--solis-texto) !important;
	text-decoration: none;
	transition: box-shadow .18s;
}

.solis-testi__google:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .1); }
.solis-testi__google svg { width: 20px; height: 20px; }

/* ==========================================================================
   Banda "vende tu propiedad"
   ========================================================================== */

.solis-vender {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
	background: linear-gradient(115deg, var(--solis-naranja), #F98B3F);
	border-radius: 20px;
	padding: 42px 46px;
	color: #fff;
}

.solis-vender__titulo {
	margin: 0 0 8px !important;
	font-size: clamp(22px, 2.6vw, 30px) !important;
	font-weight: 800;
	color: #fff !important;
}

.solis-vender__texto { margin: 0; font-size: 15.5px; line-height: 1.6; color: rgba(255, 255, 255, .92); max-width: 560px; }

.solis-vender__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

.solis-vender .solis-btn-primario {
	background: #fff !important;
	color: var(--solis-naranja) !important;
	box-shadow: none;
}

@media (max-width: 640px) {
	.solis-vender { padding: 30px 22px; }
}

/* ==========================================================================
   Alertas / newsletter
   ========================================================================== */

.solis-alertas {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	padding: 28px 32px;
	margin-top: 36px;
}

.solis-alertas__texto h2 { margin: 0 0 6px !important; font-size: 20px !important; font-weight: 700; }
.solis-alertas__texto p { margin: 0; font-size: 14px; color: var(--solis-gris); }

.solis-alertas__form {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
}

.solis-alertas__form select,
.solis-alertas__form input[type="email"] {
	min-height: 48px;
	padding: 10px 14px !important;
	border: 1px solid #D9D9D9;
	border-radius: 10px;
	font-size: 14.5px;
	background: #fff;
	background-image: none;
	box-sizing: border-box;
}

.solis-alertas__form input[type="email"] { min-width: 230px; }
.solis-alertas__form .solis-form__estado { flex-basis: 100%; margin: 0; }

/* ==========================================================================
   Página de valoración (/vender/)
   ========================================================================== */

.solis-valorar { max-width: 1200px; margin: 0 auto; padding: 48px 20px 64px; }

.solis-valorar__cabecera { max-width: 680px; margin-bottom: 36px; }
.solis-valorar__cabecera h1 {
	margin: 0 0 12px !important;
	font-size: clamp(28px, 3.6vw, 42px) !important;
	font-weight: 800;
	line-height: 1.15;
}
.solis-valorar__intro { margin: 0; font-size: 16px; line-height: 1.7; color: #4A4A4A; }

.solis-valorar__cuerpo {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 42px;
	align-items: start;
}

.solis-form {
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	padding: 30px;
}

.solis-form label {
	display: block;
	margin-bottom: 16px;
	font-size: 13px;
	font-weight: 600;
	color: #555;
}

.solis-form input,
.solis-form select,
.solis-form textarea {
	display: block;
	width: 100%;
	margin-top: 6px;
	min-height: 48px;
	padding: 11px 14px !important;
	border: 1px solid #D9D9D9 !important;
	border-radius: 10px !important;
	font-size: 15px;
	font-weight: 400;
	background: #fff;
	background-image: none;
	box-sizing: border-box;
}

.solis-form textarea { min-height: 110px; resize: vertical; }

.solis-form input:focus,
.solis-form select:focus,
.solis-form textarea:focus {
	outline: none;
	border-color: var(--solis-naranja) !important;
	box-shadow: 0 0 0 3px rgba(250, 100, 7, .14);
}

.solis-form__par { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.solis-form__enviar { width: 100%; margin-top: 6px; }
.solis-form__nota { margin: 12px 0 0; font-size: 12.5px; color: var(--solis-gris); text-align: center; }

.solis-valorar__lado {
	background: var(--solis-fondo);
	border-radius: 16px;
	padding: 30px;
}

.solis-valorar__lado h2 { margin: 0 0 16px !important; font-size: 20px !important; font-weight: 700; }

.solis-valorar__lado ol { margin: 0 0 22px; padding-left: 0; list-style: none; counter-reset: paso; }

.solis-valorar__lado li {
	counter-increment: paso;
	position: relative;
	padding-left: 44px;
	margin-bottom: 16px;
	font-size: 14px;
	line-height: 1.6;
	color: #4A4A4A;
}

.solis-valorar__lado li b { color: var(--solis-texto); }

.solis-valorar__lado li::before {
	content: counter(paso);
	position: absolute;
	left: 0;
	top: 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--solis-naranja);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (max-width: 860px) {
	.solis-valorar__cuerpo { grid-template-columns: 1fr; }
	.solis-form__par { grid-template-columns: 1fr; gap: 0; }
}

/* ==========================================================================
   Blog
   ========================================================================== */

.solis-blog { max-width: 1200px; margin: 0 auto; padding: 48px 20px 64px; }

.solis-blog__cabecera { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.solis-blog__cabecera h1 {
	margin: 0 0 10px !important;
	font-size: clamp(26px, 3.4vw, 40px) !important;
	font-weight: 800;
	line-height: 1.15;
}
.solis-blog__intro { margin: 0; font-size: 15.5px; color: #4A4A4A; }

.solis-blog__rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 26px;
}

.solis-blog__card {
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .22s, transform .22s;
}

.solis-blog__card:hover { box-shadow: 0 10px 26px rgba(0, 0, 0, .1); transform: translateY(-2px); }

.solis-blog__media { display: block; line-height: 0; }
.solis-blog .solis-blog__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

.solis-blog__media--vacia {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	background: var(--solis-fondo);
	color: #C9C9C9;
}
.solis-blog__media--vacia svg { width: 44px; height: 44px; }

.solis-blog__cuerpo { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.solis-blog__meta { margin: 0 0 8px; font-size: 12.5px; color: var(--solis-gris); }

.solis-blog__titulo { margin: 0 0 10px !important; font-size: 18px !important; font-weight: 700; line-height: 1.35; }
.solis-blog__titulo a { color: var(--solis-texto) !important; text-decoration: none; }
.solis-blog__titulo a:hover { color: var(--solis-naranja) !important; }

.solis-blog__extracto { margin: 0 0 14px; font-size: 14px; line-height: 1.65; color: #4A4A4A; flex: 1; }

.solis-blog__leer { font-size: 14px; font-weight: 700; color: var(--solis-naranja) !important; text-decoration: none; }

.solis-blog__paginas { margin-top: 36px; text-align: center; }
.solis-blog__paginas .page-numbers {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 6px 14px;
	margin: 0 3px;
	border: 1px solid var(--solis-borde);
	border-radius: 9px;
	font-size: 14px;
	color: var(--solis-texto) !important;
	text-decoration: none;
}
.solis-blog__paginas .page-numbers.current { background: var(--solis-naranja); border-color: var(--solis-naranja); color: #fff !important; }

.solis-blog__vacio { text-align: center; color: var(--solis-gris); padding: 40px 0; }

/* Artículo */
.solis-articulo { max-width: 820px; }
.solis-articulo__miga { margin: 0 0 12px; font-size: 13.5px; }
.solis-articulo__miga a { color: var(--solis-naranja) !important; text-decoration: none; font-weight: 600; }
.solis-articulo__cabecera h1 {
	margin: 0 0 10px !important;
	font-size: clamp(26px, 3.4vw, 38px) !important;
	font-weight: 800;
	line-height: 1.2;
}

.solis-articulo__portada { margin: 26px 0; border-radius: 16px; overflow: hidden; line-height: 0; }
.solis-articulo .solis-articulo__portada img { width: 100%; height: auto; }

.solis-articulo__contenido { font-size: 16.5px; line-height: 1.8; color: #333; }
.solis-articulo__contenido h2 { font-size: 24px !important; margin: 34px 0 12px !important; }
.solis-articulo__contenido h3 { font-size: 19px !important; margin: 26px 0 10px !important; }
.solis-articulo__contenido p { margin: 0 0 18px; }
.solis-articulo__contenido ul, .solis-articulo__contenido ol { margin: 0 0 18px; padding-left: 24px; }
.solis-articulo__contenido li { margin-bottom: 8px; }

.solis-articulo__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	background: var(--solis-fondo);
	border-radius: 16px;
	padding: 26px 30px;
	margin-top: 40px;
}
.solis-articulo__cta h2 { margin: 0 0 4px !important; font-size: 20px !important; }
.solis-articulo__cta p { margin: 0; font-size: 14px; color: var(--solis-gris); }

/* ==================================================== equipo de asesores */
/* En reposo se ve la foto con el nombre; al pasar el ratón sube un panel con
   el cargo y los accesos a WhatsApp y teléfono. Sin ratón (móvil) el panel
   se queda siempre visible: si no, esa información no habría forma de verla. */

.solis-equipo {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1100px;
	margin: 0 auto;
}

.solis-asesor {
	position: relative;
	aspect-ratio: 3 / 4;
	border-radius: 20px;
	overflow: hidden;
	background: #0B1712;
	box-shadow: 0 2px 6px rgba(16, 24, 20, .1), 0 12px 30px rgba(16, 24, 20, .12);
	transition: transform .25s ease, box-shadow .25s ease;
}

.solis-asesor:hover,
.solis-asesor:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 4px 10px rgba(16, 24, 20, .12), 0 22px 46px rgba(16, 24, 20, .22);
}

/* El nivel de más es por Elementor, que impone .elementor img{height:auto}
   después de esta hoja y con la misma especificidad. */
.solis-asesor .solis-asesor__foto {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	display: block;
	transition: transform .55s ease;
}

.solis-asesor:hover .solis-asesor__foto,
.solis-asesor:focus-within .solis-asesor__foto { transform: scale(1.05); }

/* --------------------------------------------------------------- panel */

.solis-asesor__panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 20px;
	color: #fff;
	background: linear-gradient(
		180deg,
		rgba(6, 17, 12, 0) 0%,
		rgba(6, 17, 12, .55) 35%,
		rgba(6, 17, 12, .93) 100%
	);
}

.solis-asesor__nombre {
	display: block;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
}

/* Cerrado por alto, no oculto: así la transición es suave y el texto sigue
   estando en el documento para quien use lector de pantalla.
   El contenido va en UN solo hijo a propósito: con dos, grid-template-rows
   solo cerraba la primera fila y la segunda seguía ocupando alto. */
.solis-asesor__info {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows .3s ease, opacity .25s ease;
}

.solis-asesor__interior { overflow: hidden; }

.solis-asesor:hover .solis-asesor__info,
.solis-asesor:focus-within .solis-asesor__info {
	grid-template-rows: 1fr;
	opacity: 1;
}

.solis-asesor__cargo {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-top: 8px;
	font-size: 14px;
	color: rgba(255, 255, 255, .85);
}

.solis-asesor__cargo i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #25D366;
	flex: 0 0 auto;
}

.solis-asesor__acciones {
	display: flex;
	gap: 8px;
	padding-top: 14px;
}

.solis-asesor__wsp {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border-radius: 999px;
	background: #25D366;
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	transition: background .18s;
}

.solis-asesor__wsp:hover { background: #1FB855; }
.solis-asesor__wsp svg { width: 17px; height: 17px; }

.solis-asesor__tel {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .35);
	color: #fff !important;
	text-decoration: none !important;
	transition: background .18s, border-color .18s;
}

.solis-asesor__tel:hover {
	background: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .6);
}

.solis-asesor__tel svg { width: 18px; height: 18px; }



.solis-card__media .solis-badges--inferior {
    top: auto; /* Anula la posición superior heredada */
    bottom: 12px; /* Margen desde la parte inferior de la imagen */
    left: 12px;
    right: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px; /* Espaciado entre botones */
    pointer-events: none; /* Evita que el contenedor invisible bloquee el enlace a la foto */
}

.solis-card__media .solis-badges--inferior > * {
    pointer-events: auto; /* Reactiva los clics únicamente sobre los botones */
}



/* Sin ratón no hay hover que valga: la información se queda a la vista. */
@media (hover: none) {
	.solis-asesor__info { grid-template-rows: 1fr; opacity: 1; }
}

@media (max-width: 900px) {
	.solis-equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

@media (max-width: 600px) {
	.solis-equipo { grid-template-columns: 1fr; max-width: 340px; gap: 16px; }
	/* 3/4 a todo el ancho eran ~500px de alto por asesor; 4/5 basta. */
	.solis-asesor { aspect-ratio: 4 / 5; }
}

@media (prefers-reduced-motion: reduce) {
	.solis-asesor,
	.solis-asesor__foto,
	.solis-asesor__info { transition: none; }
	.solis-asesor:hover { transform: none; }
	.solis-asesor:hover .solis-asesor__foto { transform: none; }
}
