.propsys-shop-layout{
	display:grid;
	grid-template-columns:260px 1fr;
	gap:32px;
	max-width:1200px;
	margin:0 auto;
	padding:40px 20px;
}
.propsys-shop-sidebar{
	border-right:1px solid #e5e5e5;
	padding-right:20px;
}
.propsys-filter-group{
	margin-bottom:28px;
}
.propsys-filter-group h4{
	font-size:14px;
	text-transform:uppercase;
	letter-spacing:.5px;
	margin:0 0 12px;
}
.propsys-filter-group ul{
	list-style:none;
	margin:0;
	padding:0;
}
.propsys-filter-group li{
	margin-bottom:8px;
}
.propsys-filter-group label{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:14px;
	cursor:pointer;
}
.propsys-term-count{
	color:#888;
	font-size:12px;
}

.propsys-results-grid{
	position:relative;
	min-height:120px;
	transition:opacity .2s ease;
}
.propsys-results-grid.propsys-loading{
	opacity:.4;
	pointer-events:none;
}
.propsys-ajax-loader{
	position:absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:5;
	pointer-events:none;
}
.propsys-ajax-spinner::after{
	content:"";
	width:42px;
	height:42px;
	border-radius:50%;
	border:3px solid rgba(0,0,0,.15);
	border-top-color:#222;
	animation:propsys-spin .7s linear infinite;
}
@keyframes propsys-spin{
	to{ transform:rotate(360deg); }
}
.propsys-ajax-loader-image img{
	max-width:80px;
	max-height:80px;
}
.propsys-cards-wrap{
	display:grid;
	grid-template-columns:repeat(var(--propsys-columns, 3), 1fr);
	gap:24px;
}
.propsys-results-view-wrap[data-view="list"] .propsys-cards-wrap{
	grid-template-columns:1fr;
}
.propsys-results-view-wrap[data-view="list"] .propsys-card{
	display:grid;
	grid-template-columns:220px 1fr;
	gap:0;
}
.propsys-results-view-wrap[data-view="list"] .propsys-card-thumb img{
	height:100%;
	min-height:140px;
}
@media (max-width: 640px){
	.propsys-results-view-wrap[data-view="list"] .propsys-card{ grid-template-columns:1fr; }
}

.propsys-results-count{
	font-size:13px;
	color:#666;
}

/* ---------- Shop Widget Toolbar ---------- */
.propsys-shop-widget{ max-width:1200px; margin:0 auto; padding:0 20px; }
.propsys-shop-toolbar{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:16px;
	padding:14px 0;
	border-bottom:1px solid #e5e5e5;
	margin-bottom:20px;
}
.propsys-toolbar-left{ display:flex; align-items:center; }
.propsys-toolbar-right{ display:flex; align-items:center; gap:12px; }
.propsys-sort-select{
	padding:8px 12px;
	border:1px solid #ddd;
	border-radius:6px;
	font-size:13px;
}
.propsys-view-toggle{ display:flex; gap:4px; }
.propsys-view-btn{
	display:flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border:1px solid #ddd;
	border-radius:6px;
	background:#fff;
	cursor:pointer;
	color:#666;
}
.propsys-view-btn.active{
	background:#222;
	border-color:#222;
	color:#fff;
}
.propsys-shop-form-wrap .propsys-shop-layout{
	padding:0;
}
@media (max-width: 900px){
	.propsys-shop-layout{ grid-template-columns:1fr; }
	.propsys-shop-sidebar{ border-right:none; border-bottom:1px solid #e5e5e5; padding-bottom:20px; }
}

.propsys-card{
	display:block;
	text-decoration:none;
	color:inherit;
	border:1px solid #e5e5e5;
	border-radius:8px;
	overflow:hidden;
	transition:box-shadow .2s ease, transform .2s ease;
}
.propsys-card:hover{
	box-shadow:0 10px 24px rgba(0,0,0,.08);
	transform:translateY(-3px);
}
.propsys-card-thumb img{
	width:100%;
	height:200px;
	object-fit:cover;
	display:block;
}
.propsys-card-body{
	padding:14px 16px;
}
.propsys-card-title{
	font-size:16px;
	margin:0 0 6px;
}
.propsys-card-price{
	font-weight:600;
}
.propsys-no-results{
	grid-column:1 / -1;
	text-align:center;
	padding:40px 0;
	color:#666;
}
.propsys-pagination{
	margin-top:28px;
	text-align:center;
}
.propsys-pagination .page-numbers{
	display:inline-block;
	padding:8px 14px;
	margin:0 3px;
	border:1px solid #e5e5e5;
	border-radius:4px;
	text-decoration:none;
	color:inherit;
}
.propsys-pagination .page-numbers.current{
	background:#222;
	color:#fff;
	border-color:#222;
}

/* ---------- Property Filter Bar widget ---------- */
.propsys-wf{
	display:flex;
	flex-wrap:wrap;
	align-items:flex-end;
	gap:16px;
}
.propsys-wf.propsys-wf-vertical{
	flex-direction:column;
	align-items:stretch;
}
.propsys-wf-field{
	display:flex;
	flex-direction:column;
	gap:6px;
}
.propsys-wf-label{
	font-size:13px;
	font-weight:600;
}
.propsys-wf select,
.propsys-wf-search-field input{
	padding:10px 14px;
	border:1px solid #ddd;
	border-radius:6px;
	font-size:14px;
	min-width:160px;
}
.propsys-wf-options{
	display:flex;
	flex-direction:column;
	gap:6px;
}
.propsys-wf-option{
	display:flex;
	align-items:center;
	gap:6px;
	font-size:14px;
	cursor:pointer;
}
.propsys-wf-count{
	color:#888;
	font-size:12px;
}
.propsys-wf-button-group{
	flex-direction:row;
	flex-wrap:wrap;
	gap:8px;
}
.propsys-wf-toggle-btn{
	position:relative;
	cursor:pointer;
}
.propsys-wf-toggle-btn input{
	position:absolute;
	opacity:0;
	width:0;
	height:0;
}
.propsys-wf-toggle-btn span{
	display:inline-block;
	padding:8px 16px;
	border:1px solid #ddd;
	border-radius:20px;
	font-size:13px;
	transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.propsys-wf-toggle-btn input:checked + span{
	background:#222;
	border-color:#222;
	color:#fff;
}
.propsys-wf-buttons{
	display:flex;
	gap:8px;
}
.propsys-wf-submit{
	padding:10px 24px;
	background:#222;
	color:#fff;
	border:none;
	border-radius:6px;
	cursor:pointer;
	font-weight:600;
	white-space:nowrap;
}
.propsys-wf-submit:hover{ background:#000; }
.propsys-wf-reset{
	padding:10px 20px;
	background:transparent;
	color:#555;
	border:1px solid #ddd;
	border-radius:6px;
	cursor:pointer;
	font-weight:500;
	white-space:nowrap;
}
.propsys-wf-reset:hover{ background:#f5f5f5; }
.propsys-wf-reset-link{
	display:inline-flex;
	align-items:center;
	text-decoration:none;
}

/* ---------- Hero Filter Bar ---------- */
.propsys-hero-filter{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	align-items:center;
	background:#fff;
	padding:16px;
	border-radius:8px;
	box-shadow:0 10px 30px rgba(0,0,0,.1);
}
.propsys-hero-search,
.propsys-hero-select{
	padding:10px 14px;
	border:1px solid #ddd;
	border-radius:6px;
	font-size:14px;
}
.propsys-hero-search{
	flex:1 1 200px;
}
.propsys-hero-search-btn{
	padding:10px 24px;
	background:#222;
	color:#fff;
	border:none;
	border-radius:6px;
	cursor:pointer;
	font-weight:600;
}
.propsys-hero-search-btn:hover{
	background:#000;
}
@media (max-width: 640px){
	.propsys-hero-filter{ flex-direction:column; align-items:stretch; }
}
