/**
 * Mattis Property Filters Styles
 * 
 * @package MattisPropertySearch
 * @version 1.0.0
 */

/* ==========================================================================
   Property Filters Container
   ========================================================================== */

.mattis-prop-filters {
	width: 370px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	padding: 24px;
	max-height: calc(100vh - 120px); /* Limitar altura */
	overflow-y: auto; /* Scroll independiente */
	position: sticky;
	top: 20px; /* Mantener fijo al hacer scroll */
}

/* Estilos personalizados de scrollbar para filtros */
.mattis-prop-filters::-webkit-scrollbar {
	width: 6px;
}

.mattis-prop-filters::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 10px;
}

.mattis-prop-filters::-webkit-scrollbar-thumb {
	background: #db7e2b;
	border-radius: 10px;
}

.mattis-prop-filters::-webkit-scrollbar-thumb:hover {
	background: #c56d24;
}

.mpf__inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.mpf__heading {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	color: #1a1a1a;
	line-height: 1.3;
}

/* ==========================================================================
   Filter Blocks
   ========================================================================== */

.mpf-block {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-bottom: 20px;
	border-bottom: 1px solid #d9d9d9;
}

.mpf-block:last-of-type {
	border-bottom: none;
	padding-bottom: 0;
}

.mpf-block__title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: #374151;
	line-height: 1.4;
}

/* ==========================================================================
   Range Inputs (Price & Area)
   ========================================================================== */

.mpf-range {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.mpf-range__inputs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.mpf-range__input {
	width: 100%;
	padding: 10px 16px;
	border: 1px solid #d9d9d9;
	border-radius: 999px;
	font-size: 14px;
	font-family: inherit;
	color: #374151;
	background: #f3f4f6;
	text-align: center;
	transition: all 0.2s ease;
	border-radius: 200px !important;
	font-variant-numeric: tabular-nums;
}

.mpf-range__input:focus {
	outline: none;
	border-color: #db7e2b;
	background: #fff;
	box-shadow: 0 0 0 3px #d9d9d9;
}

.mpf-range__input::placeholder {
	color: #9ca3af;
}

/* Range Track */
.mpf-range__track {
	position: relative;
	height: 4px;
	background: #d9d9d9;
	border-radius: 2px;
	margin: 8px 0;
}

.mpf-range__selection {
	position: absolute;
	height: 100%;
	background: #db7e2b;
	border-radius: 2px;
	pointer-events: none;
	z-index: 1;
}

.mpf-range__slider {
	position: absolute;
	width: 100%;
	height: 4px;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	pointer-events: none;
	top: 0;
	left: 0;
	z-index: 2;
}

.mpf-range__slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	background: #fff;
	border: 1px solid #d1d5db;
	border-radius: 50%;
	cursor: pointer;
	pointer-events: all;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	transition: all 0.2s ease;
}

.mpf-range__slider::-webkit-slider-thumb:hover {
	transform: scale(1.1);
	border-color: #9ca3af;
}

.mpf-range__slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	background: #fff;
	border: 1px solid #d1d5db;
	border-radius: 50%;
	cursor: pointer;
	pointer-events: all;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	transition: all 0.2s ease;
}

.mpf-range__slider::-moz-range-thumb:hover {
	transform: scale(1.1);
	border-color: #9ca3af;
}

/* ==========================================================================
   Chips (Bedrooms, Bathrooms, Parking, Features)
   ========================================================================== */

.mpf-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
}

.mpf-chip {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0 !important;
	background: #d9d9d9 !important;
	border: 2px solid transparent;
	border-radius: 50%;
	font-size: 14px;
	font-weight: 500;
	color: #151515 !important;
	cursor: pointer;
	transition: all 0.2s ease;
	font-family: inherit;
}

.mpf-chip:hover,
.mpf-chip.is-active,
.mpf-chip:focus {
	background: #db7e2b !important;
	color: #151515 !important;
}

/* ==========================================================================
   Action Buttons
   ========================================================================== */

.mpf-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-top: 16px;
}

.mpf-btn {
	width: auto;
	padding: 12px 24px;
	border: none;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	transition: all 0.2s ease;
	text-align: center;
}

.mpf-btn--apply {
	background: #db7e2b;
	color: #fff;
	flex-grow: 1;
}

.mpf-btn--apply:hover {
	background: #b45309;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(217, 119, 6, 0.2);
}

.mpf-btn--apply:active {
	transform: translateY(0);
}

.mpf-btn--clear {
	background: transparent !important;
	color: #151515 !important;
	padding: 4px;
	text-decoration: underline !important;
	text-shadow: none !important;
}

.mpf-btn--clear:hover {
	color: #151515 !important;
}

.mpf-btn:focus {
	outline: none;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 768px) {
	.mattis-prop-filters {
		padding: 20px;
	}

	.mpf__inner {
		gap: 20px;
	}

	.mpf__heading {
		font-size: 18px;
	}

	.mpf-block__title {
		font-size: 14px;
	}

	.mpf-range__inputs {
		gap: 10px;
	}

	.mpf-range__input {
		padding: 9px 10px;
		font-size: 13px;
	}

	.mpf-chip {
		padding: 7px 14px;
		font-size: 13px;
	}

	.mpf-btn {
		padding: 11px 18px;
		font-size: 14px;
	}
}

@media (max-width: 480px) {
	.mattis-prop-filters {
		padding: 16px;
	}

	.mpf__inner {
		gap: 18px;
	}

	.mpf-block {
		padding-bottom: 16px;
	}

	.mpf-range__inputs {
		grid-template-columns: 1fr;
	}

	.mpf-chips {
		gap: 6px;
	}

	.mpf-chip {
		flex: 1 1 auto;
		min-width: calc(33.333% - 4px);
		text-align: center;
	}
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
	.mattis-prop-filters {
		display: none;
	}
}

/* ==========================================================================
   Toggle Sidebar Filters (usado por archive-filters)
   ========================================================================== */

/* Ocultar elemento directo de filtros */
.mps-property-filters.is-hidden,
.mattis-prop-filters.is-hidden,
.mps-filters-sidebar.is-hidden,
[class*='filters-sidebar'].is-hidden,
aside.mattis-prop-filters.is-hidden,
aside.mps-property-filters.is-hidden {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	max-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Ocultar el widget completo de Elementor cuando contiene filtros ocultos */
.elementor-widget.is-hidden,
.elementor-widget-sidebar.is-hidden,
.elementor-element.is-hidden {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	max-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Selectores específicos para Elementor con filtros ocultos */
.elementor-widget-sidebar .mps-property-filters.is-hidden,
.elementor-section .mps-property-filters.is-hidden,
.elementor-widget-sidebar .mattis-prop-filters.is-hidden,
.elementor-section .mattis-prop-filters.is-hidden {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	max-height: 0 !important;
}

/* Asegurar que el contenedor padre también se oculte */
.elementor-widget:has(.mattis-prop-filters.is-hidden),
.elementor-widget:has(.mps-property-filters.is-hidden) {
	display: none !important;
}

/* Fallback para navegadores que no soportan :has() */
@supports not (selector(:has(*))) {
	.elementor-widget-sidebar:has(.is-hidden) {
		display: none !important;
	}
}
