/* ── Map Search layout ────────────────────────────────────────── */
.buscar-app {
	display: grid;
	grid-template-columns: 45fr 55fr;
	height: calc(100vh - 150px); /* fudge factor for the site header */
	background: #f8fafc;
}

.buscar-pane--left {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border-right: 1px solid #e2e8f0;
	overflow-y: auto; /* let the entire pane scroll instead of an inner section */
}
.buscar-pane--right {
	position: relative;
}
.buscar-map {
	width: 100%;
	height: 100%;
}

/* ── Header ── */
.buscar-header {
	padding: 24px 24px 12px;
	border-bottom: 1px solid #e2e8f0;
}
.buscar-title {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 4px;
	color: #0f172a;
}
.buscar-sub {
	margin: 0;
	color: #64748b;
	font-size: 13px;
}

/* ── Filters ── */
.buscar-filters {
	padding: 16px 24px;
	border-bottom: 1px solid #e2e8f0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.filter-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.filter-row--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.filter-label {
	font-size: 12px;
	font-weight: 600;
	color: #334155;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.filter-input {
	width: 100%;
	height: 38px;
	padding: 0 12px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
	color: #0f172a;
	outline: none;
}
.filter-input:focus {
	border-color: var(--primary-color, #1F7BFF);
	box-shadow: 0 0 0 3px rgba(31, 123, 255, 0.15);
}

/* Segmented buttons (operacion, habitaciones) */
.filter-segmented {
	display: flex;
	gap: 4px;
	background: #f1f5f9;
	padding: 4px;
	border-radius: 10px;
}
.filter-segmented button {
	flex: 1;
	padding: 8px 10px;
	background: transparent;
	border: 0;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	color: #475569;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
}
.filter-segmented button.is-active {
	background: #ffffff;
	color: #0f172a;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.filter-segmented--small button {
	padding: 6px 8px;
	font-size: 12px;
}

/* ── Operación: 3 icon cards ── */
.filter-operacion {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
.op-card {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 8px;
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
	border-radius: 12px;
	color: #475569;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s, background-color 0.15s, color 0.15s, transform 0.05s;
}
.op-card svg {
	color: #94a3b8;
	transition: color 0.15s;
}
.op-card:hover {
	border-color: #cbd5e1;
	color: #0f172a;
}
.op-card:hover svg {
	color: #64748b;
}
.op-card.is-active {
	background: var(--primary-color, #1F7BFF);
	border-color: var(--primary-color, #1F7BFF);
	color: #ffffff;
}
.op-card.is-active svg {
	color: #ffffff;
}
.op-card:active {
	transform: translateY(1px);
}

/* ── Habitaciones: compact circular pills ── */
.filter-rooms {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.room-pill {
	min-width: 40px;
	height: 40px;
	padding: 0 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
	border-radius: 999px;
	color: #475569;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: border-color 0.15s, background-color 0.15s, color 0.15s, transform 0.05s;
}
.room-pill:hover {
	border-color: #94a3b8;
	color: #0f172a;
}
.room-pill.is-active {
	background: var(--primary-color, #1F7BFF);
	border-color: var(--primary-color, #1F7BFF);
	color: #ffffff;
}
.room-pill:active {
	transform: scale(0.96);
}
.room-pill--any {
	min-width: auto;
	padding: 0 16px;
	font-size: 13px;
	font-weight: 600;
}

/* Chips (tipo) */
.filter-typegroup {
	margin-bottom: 12px;
}
.filter-typegroup:last-child {
	margin-bottom: 0;
}
.filter-typegroup__title {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #94a3b8;
}
.filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.filter-chip {
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid #cbd5e1;
	background: #fff;
	color: #334155;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.15s;
}
.filter-chip:hover {
	border-color: #94a3b8;
}
.filter-chip.is-active {
	background: var(--primary-color, #1F7BFF);
	border-color: var(--primary-color, #1F7BFF);
	color: #fff;
}

.filter-clear {
	align-self: flex-start;
	padding: 6px 10px;
	background: transparent;
	border: 0;
	color: var(--primary-color, #1F7BFF);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.filter-clear:hover {
	text-decoration: underline;
}

/* ── Results list ── */
.buscar-results {
	flex: 1;
	overflow-y: auto;
	padding: 16px 24px 32px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.result-card {
	display: grid;
	grid-template-columns: 140px 1fr;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}
.result-card.is-highlighted {
	border-color: #2563eb;
	box-shadow: 0 6px 16px rgba(37, 99, 235, 0.15);
	transform: translateY(-1px);
}
.result-card__media {
	display: block;
	background: #f1f5f9;
}
.result-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 110px;
	object-fit: cover;
}
.result-card__body {
	padding: 12px 14px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.result-card__location {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.result-card__title {
	margin: 0;
	font-size: 14px;
	line-height: 1.35;
	font-weight: 600;
}
.result-card__title a {
	color: #0f172a;
	text-decoration: none;
}
.result-card__title a:hover {
	color: #2563eb;
}
.result-card__price {
	margin: 2px 0 4px;
	font-size: 16px;
	font-weight: 700;
	color: #0f172a;
}
.result-card__stats {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	font-size: 12px;
	color: #475569;
}
.result-card__stats li span {
	font-weight: 700;
	color: #0f172a;
}
.result-card__cta {
	margin-top: 6px;
	align-self: flex-start;
	font-size: 12px;
	font-weight: 600;
	color: #2563eb;
	text-decoration: none;
}
.result-card__cta:hover {
	text-decoration: underline;
}

.buscar-empty {
	text-align: center;
	color: #64748b;
	font-size: 14px;
	padding: 24px;
}

/* ── Results-mode header (chevron) ── */
.buscar-header--results {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.filters-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	padding: 8px 14px;
	background: #f1f5f9;
	border: 0;
	border-radius: 999px;
	color: #334155;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s;
}
.filters-toggle:hover {
	background: #e2e8f0;
}
.filters-toggle svg {
	transition: transform 0.2s;
}
.buscar-title--results {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: #0f172a;
	margin: 0;
}

/* ── Filtros avanzados (collapsible: habitaciones / baños / parqueaderos) ── */
.filter-advanced {
	border-top: 1px solid #e2e8f0;
	padding-top: 14px;
}
.filter-advanced__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: transparent;
	border: 0;
	padding: 6px 0;
	font-size: 14px;
	font-weight: 600;
	color: #0b2545;
	cursor: pointer;
}
/* Cancel the global button:hover lift + glow (main.css :449) — that
   effect is meant for primary CTAs and looks out of place on a flat
   accordion toggle. We only want the text colour to nudge. */
.filter-advanced__toggle:hover {
	color: #1F7BFF;
	background: transparent;
	box-shadow: none;
	transform: none;
}
.filter-advanced__toggle svg { transition: transform 0.18s ease; }
.filter-advanced__count {
	color: #1F7BFF;
	margin-left: 4px;
	font-weight: 700;
}
.filter-advanced__panel {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 14px;
}

/* ── Filter actions row (Limpiar + Mostrar Propiedades) ── */
/* Sticks to the bottom of the left pane while the user scrolls the
   filter list, so "Mostrar Propiedades" is always one click away. The
   pane itself is the scroll container (overflow-y:auto on
   .buscar-pane--left), which is what sticky positioning binds to.
   Negative horizontal margins + matching padding extend the sticky
   strip across the pane's gutter so the white background and top
   border read as a footer, not a floating chip. */
.filter-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	position: sticky;
	bottom: 0;
	background: #ffffff;
	border-top: 1px solid #e2e8f0;
	padding: 6px 24px;
	margin: 0 -24px -16px; /* cancels .buscar-filters padding (16px 24px) */
	z-index: 5;
}
.filter-show-results {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 16px;
	background: var(--primary-color, #1F7BFF);
	border: 0;
	border-radius: 10px;
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.15s, transform 0.05s;
}
.filter-show-results:hover {
	background: var(--primary-hover, #165acc);
}
.filter-show-results:active {
	transform: translateY(1px);
}
.filter-show-results__count {
	opacity: 0.85;
	font-weight: 600;
}

/* ── Results grid (MetroCuadrado-style cards) ── */
.buscar-results-grid {
	padding: 20px 24px 32px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	align-content: start;
}

.buscar-results-grid article {
  padding: 0;
}

.property-card {
	position: relative; /* anchor the absolutely-positioned favorite heart to the card */
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  padding: 0;
}
.property-card:hover,
.property-card.is-highlighted {
	border-color: #cbd5e1;
	box-shadow: 0 12px 24px -8px rgba(15, 23, 42, 0.15);
	transform: translateY(-2px);
}
.property-card.is-highlighted {
	border-color: var(--primary-color, #1F7BFF);
	box-shadow: 0 12px 28px -6px rgba(31, 123, 255, 0.30);
}

/* Media — explicit reset so inherited theme img rules can't add gutter */
.property-card__media {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	background: #f1f5f9;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.property-card__media img,
.property-card .property-card__media img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.property-card:hover .property-card__media img {
	transform: scale(1.04);
}
/* WordPress converts emoji (✨, ⭐) inside badges into <img class="emoji">.
   Without this they'd inherit the full-width media-image rule above and blow up. */
.property-card__media img.emoji,
.property-card .property-card__media img.emoji {
	display: inline !important;
	width: 1em !important;
	height: 1em !important;
	max-width: 1em !important;
	margin: 0 0.15em !important;
	vertical-align: -0.1em !important;
	object-fit: initial !important;
	transform: none !important;
}
/* Favoritos grid inside the dashboard panel — reuses property-card styling */
.favoritos-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	margin-top: 16px;
}
.favoritos-count-badge {
	background: rgba(31, 123, 255, 0.1);
	color: var(--primary-color, #1F7BFF);
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}

/* Featured badge — overlay on top-right of the card image */
.property-card__featured {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 5px 10px;
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(245, 158, 11, 0.35);
}

/* Favorite heart button — floats over the top-right of the image */
.property-card__fav {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.95);
	border: 0;
	border-radius: 50%;
	color: #94a3b8;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
	transition: transform 0.15s, color 0.15s, background-color 0.15s, opacity 0.15s;
	z-index: 2;
	opacity: 0; /* hidden by default, revealed on hover or when active */
  padding: 8px 12px;
}
/* Always show when already favorited */
.property-card__fav.is-active {
	opacity: 1;
	color: #ef4444;
}
/* Show for everyone on card hover */
.property-card:hover .property-card__fav,
.property-card.is-highlighted .property-card__fav {
	opacity: 1;
}
.property-card__fav:hover {
	transform: scale(1.08);
	color: #ef4444;
}


.property-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 5px 12px;
	background: rgba(15, 23, 42, 0.85);
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: 999px;
	backdrop-filter: blur(4px);
}

.property-card__new {
	position: absolute;
	bottom: 12px;
	left: 12px;
	padding: 5px 10px;
	background: linear-gradient(135deg, #10b981, #059669);
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(16, 185, 129, 0.35);
}

/* Featured properties: a gold-bordered card instead of an overlapping badge. */
.property-card.is-featured {
	border: 2px solid #f59e0b;
	box-shadow: 0 8px 24px -6px rgba(245, 158, 11, 0.35);
}
/* Featured CTA: filled gold by default, with a deeper/elevated hover. */
.property-card.is-featured .property-card__cta {
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	border-color: #f59e0b;
	color: #ffffff;
	transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.property-card.is-featured .property-card__cta:hover {
	background: linear-gradient(135deg, #f59e0b, #d97706);
	border-color: #d97706;
	color: #ffffff;
	box-shadow: 0 8px 20px -6px rgba(245, 158, 11, 0.55);
	transform: translateY(-2px);
}
/* Featured ribbon — overlaid on the image (bottom-right) so it never pushes
   the title/price rows down and cards stay aligned next to non-featured ones. */
.property-card__featured-tag {
	position: absolute;
	bottom: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 10px;
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	color: #ffffff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(245, 158, 11, 0.4);
	z-index: 2;
	animation: property-card-featured-pulse 2.2s ease-in-out infinite;
}

/* Subtle glow pulse — animates only box-shadow so there's no layout shift. */
@keyframes property-card-featured-pulse {
	0%, 100% { box-shadow: 0 2px 8px rgba(245, 158, 11, 0.4); }
	50%      { box-shadow: 0 2px 8px rgba(245, 158, 11, 0.4), 0 0 0 6px rgba(245, 158, 11, 0.18); }
}

@media (prefers-reduced-motion: reduce) {
	.property-card__featured-tag { animation: none; }
}

/* Body */
.property-card__body {
	padding: 14px 16px 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

/* Property type chip (e.g. "🏢 Apartamentos") */
.property-card__type {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 11px;
	border-radius: 999px;
	background: linear-gradient(135deg, #eef2ff 0%, #faf5ff 100%);
	border: 1px solid #e0e7ff;
	color: #4338ca;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

/* Tighten the gap so the chip sits close to the location line */
.property-card__body > .property-card__type + .property-card__location {
	margin-top: -4px;
}

/* Carousel wrapper: the .pc-card div is the grid/snap item; the reused
   .property-card fills it so every card in the row is the same height.
   (Used by the Property Carousel block and the "Propiedades Similares"
   carousel on the single-property page.) */
.pc-block .pc-card { display: flex; height: 100%; }
.pc-block .pc-card > .property-card { width: 100%; height: 100%; }

/* Full title line (used by the carousel: "N habitaciones, tipo de Xm²").
   Replaces the small type chip when item.heading is provided. */
.property-card__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: #0f172a;
	letter-spacing: -0.01em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}
.property-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.15s ease;
}
.property-card__title a:hover {
	color: var(--primary-color, #1F7BFF);
}

/* Location line — BARRIO | Ciudad */
.property-card__location {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: #64748b;
	font-weight: 500;
}
.property-card__barrio {
	font-weight: 700;
	color: #0f172a;
	letter-spacing: 0.03em;
}
.property-card__sep {
	color: #cbd5e1;
	margin: 0 4px;
}
.property-card__ciudad {
	color: #475569;
}

/* Price */
.property-card__price {
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	color: #0f172a;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

/* Stats row with icons */
.property-card__stats {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-size: 13px;
	color: #475569;
}
.property-card__stats li {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
}
.property-card__stats svg {
	flex-shrink: 0;
	color: #64748b;
}
.property-card__stats span {
	font-weight: 600;
	color: #0f172a;
}

/* CTA button */
.property-card__cta {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 16px;
	border: 1.5px solid var(--primary-color, #1F7BFF);
	border-radius: 10px;
	background: transparent;
	color: var(--primary-color, #1F7BFF);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.property-card__cta:hover {
	background: var(--primary-color, #1F7BFF);
	border-color: var(--primary-color, #1F7BFF);
	color: #ffffff;
}

/* ── Leaflet price-chip markers (MetroCuadrado-style) ── */
.buscar-marker {
	background: transparent !important;
	border: 0 !important;
	width: auto !important;
	height: auto !important;
}
.buscar-marker__chip {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 56px;
	padding: 6px 12px;
	background: #ffffff;
	border: 1.5px solid #0f172a;
	border-radius: 999px;
	color: #0f172a;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
	transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.15s;
	cursor: pointer;
}
/* Little pointer tip at the bottom of the chip */
.buscar-marker__chip::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -6px;
	width: 10px;
	height: 10px;
	background: inherit;
	border-right: 1.5px solid #0f172a;
	border-bottom: 1.5px solid #0f172a;
	transform: translateX(-50%) rotate(45deg);
	transition: border-color 0.15s, background-color 0.15s;
}
.buscar-marker:hover .buscar-marker__chip {
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(15, 23, 42, 0.25);
}
.buscar-marker.is-active .buscar-marker__chip,
.buscar-marker:hover .buscar-marker__chip {
	background: var(--primary-color, #1F7BFF);
	border-color: var(--primary-color, #1F7BFF);
	color: #ffffff;
	z-index: 1000;
}
.buscar-marker.is-active .buscar-marker__chip::after,
.buscar-marker:hover .buscar-marker__chip::after {
	border-color: var(--primary-color, #1F7BFF);
}

/* ── Marker clusters (theme blue circles with a soft halo) ──
   Selector specificity matches Leaflet's default .marker-cluster rules,
   and !important defeats any leftover .leaflet-div-icon background/border. */
.leaflet-marker-icon.buscar-cluster,
.buscar-cluster {
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: var(--primary-color, #1F7BFF) !important;
	color: #ffffff !important;
	font-weight: 700;
	font-size: 14px;
	border: 3px solid rgba(255, 255, 255, 0.9) !important;
	border-radius: 50% !important;
	box-shadow: 0 0 0 6px rgba(31, 123, 255, 0.18),
				0 2px 8px rgba(15, 23, 42, 0.25);
	transition: transform 0.15s;
	text-align: center;
}
.buscar-cluster:hover {
	transform: scale(1.06);
}
.buscar-cluster span {
	display: inline-block;
	line-height: 1;
}
.buscar-cluster--md {
	font-size: 15px;
}
.buscar-cluster--lg {
	font-size: 16px;
	box-shadow: 0 0 0 8px rgba(31, 123, 255, 0.22),
				0 4px 12px rgba(15, 23, 42, 0.3);
}

/* ── "Cargar más" footer ── */
.buscar-load-more {
	padding: 0 24px 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.buscar-load-more__progress {
	margin: 0;
	font-size: 13px;
	color: #64748b;
	font-weight: 500;
}
.buscar-load-more__btn {
	padding: 12px 28px;
	background: #ffffff;
	border: 1.5px solid var(--primary-color, #1F7BFF);
	border-radius: 999px;
	color: var(--primary-color, #1F7BFF);
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
}
.buscar-load-more__btn:hover:not(:disabled) {
	background: var(--primary-color, #1F7BFF);
	color: #ffffff;
}
.buscar-load-more__btn:disabled {
	opacity: 0.6;
	cursor: wait;
}

/* ── Mobile ── */
@media (max-width: 900px) {
	.buscar-app {
		grid-template-columns: 1fr;
		height: auto;
	}
	.buscar-pane--right {
		height: 360px;
		order: -1;
	}
	.buscar-pane--left {
		border-right: 0;
		border-top: 1px solid #e2e8f0;
	}
	.buscar-filters {
		max-height: none;
	}
	.buscar-results-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Auth modal (guest tries a logged-in-only action, e.g. favorites) ── */
.auth-modal[hidden] {
	display: none;
}
.auth-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 0.2s ease;
}
.auth-modal.is-open {
	opacity: 1;
}
.auth-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(2px);
}
.auth-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 400px;
	background: #ffffff;
	border-radius: 20px;
	padding: 32px 28px 28px;
	text-align: center;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.30);
	transform: translateY(12px) scale(0.97);
	transition: transform 0.2s ease;
}
.auth-modal.is-open .auth-modal__dialog {
	transform: translateY(0) scale(1);
}
.auth-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #f1f5f9;
	border: 0;
	border-radius: 50%;
	color: #475569;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
  padding: 8px 12px;
}
.auth-modal__close:hover {
	background: #e2e8f0;
	color: #0f172a;
}
.auth-modal__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(239, 68, 68, 0.10);
	color: #ef4444;
}
.auth-modal__title {
	margin: 0 0 8px;
	font-size: 22px;
	font-weight: 700;
	color: #0f172a;
}
.auth-modal__text {
	margin: 0 0 24px;
	font-size: 15px;
	line-height: 1.5;
	color: #64748b;
}
.auth-modal__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.auth-modal__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	border-radius: 12px;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.auth-modal__btn--primary {
	background: var(--primary-color, #1F7BFF);
	color: #ffffff;
}
.auth-modal__btn--primary:hover {
	background: #1666d6;
}
.auth-modal__btn--ghost {
	background: #ffffff;
	border: 1.5px solid #e2e8f0;
	color: #334155;
}
.auth-modal__btn--ghost:hover {
	border-color: #cbd5e1;
	color: #0f172a;
}

/* ── Map property popup ── */
.leaflet-popup-content-wrapper {
	padding: 0 !important;
	border-radius: 14px !important;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18) !important;
}
.leaflet-popup-content {
	margin: 0 !important;
	width: 250px !important;
}
.leaflet-popup-content h4 { font-family: inherit; }
.leaflet-popup-tip { box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18); }
.leaflet-container a.leaflet-popup-close-button {
	top: 8px;
	right: 8px;
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	color: #0f172a;
	font-size: 18px;
	font-weight: 700;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
	padding: 0;
}
.leaflet-container a.leaflet-popup-close-button:hover {
	background: #fff;
	color: #ef4444;
}
