.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 ---------- */
/* Outer container: [ .propsys-hero-fields (search + dropdowns) , button ] —
   button PLACEMENT (inline next to fields, or stacked below) is set here. */
.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-filter.propsys-hero-btnlayout-inline{
	flex-direction:row;
}
.propsys-hero-filter.propsys-hero-btnlayout-stacked{
	flex-direction:column;
	align-items:stretch;
}

/* Inner fields wrapper: search box + dropdown filters ONLY — its own
   Horizontal/Vertical layout is independent of where the button sits. */
.propsys-hero-fields{
	display:flex;
	flex:1 1 auto;
	gap:12px;
	min-width:0;
}
.propsys-hero-fields.propsys-hero-fieldslayout-horizontal{
	flex-direction:row;
	flex-wrap:wrap;
}
.propsys-hero-fields.propsys-hero-fieldslayout-vertical{
	flex-direction:column;
	align-items:stretch;
}
.propsys-hero-fields.propsys-hero-fieldslayout-vertical .propsys-hero-search-wrap,
.propsys-hero-fields.propsys-hero-fieldslayout-vertical .propsys-hero-select-wrap{
	width:100%;
	flex:1 1 auto;
}
/* Grid mode (Layout tab → "Fields Width" = Grid): fixed number of columns,
   each field spans however many of them its own "Column Span" says — this
   comes AFTER the flexbox rule above and wins on equal specificity. */
.propsys-hero-fields.propsys-hero-grid-mode{
	display:grid;
	grid-template-columns:repeat(var(--propsys-hero-cols, 3), 1fr);
	align-items:start;
}

.propsys-hero-search-wrap{
	position:relative;
	display:flex;
	flex:1 1 200px;
	min-width:0;
}
.propsys-hero-select-wrap{
	display:flex;
	min-width:0;
}
.propsys-hero-select-wrap .propsys-hero-select{
	width:100%;
}
.propsys-hero-search,
.propsys-hero-select{
	padding:10px 14px;
	border:1px solid #ddd;
	border-radius:6px;
	font-size:14px;
	transition:border-color .2s ease, box-shadow .2s ease;
}
.propsys-hero-search{
	width:100%;
	padding-right:34px; /* room for the clear button */
}
.propsys-hero-search-clear{
	position:absolute;
	right:6px;
	top:50%;
	transform:translateY(-50%);
	background:transparent;
	border:none;
	cursor:pointer;
	font-size:20px;
	line-height:1;
	color:#999;
	padding:4px 6px;
}
.propsys-hero-search-clear:hover{
	color:#333;
}

/* Button WIDTH — "Auto" needs nothing extra; "Full" and "Custom %" below. */
.propsys-hero-search-btn.propsys-hero-btn-width-full{
	width:100%;
}
.propsys-hero-search-btn.propsys-hero-btn-width-custom{
	flex:0 0 auto;
}
.propsys-hero-search-btn{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:10px 24px;
	background:#222;
	color:#fff;
	border:none;
	border-radius:6px;
	cursor:pointer;
	font-weight:600;
	transition-property:background-color, color, border-color;
	transition-duration:.25s;
	transition-timing-function:ease;
}
.propsys-hero-search-btn:hover{
	background:#000;
}
.propsys-hero-search-btn i,
.propsys-hero-search-btn svg{
	font-size:1.1em;
	width:1em;
	height:1em;
}
/* Loading spinner shown on the button while a search request is in flight */
.propsys-hero-search-btn.propsys-btn-loading{
	pointer-events:none;
	opacity:.85;
}
.propsys-hero-search-btn.propsys-btn-loading .propsys-hero-search-btn-text,
.propsys-hero-search-btn.propsys-btn-loading i,
.propsys-hero-search-btn.propsys-btn-loading svg{
	visibility:hidden;
}
.propsys-hero-search-btn.propsys-btn-loading::after{
	content:"";
	position:absolute;
	width:16px;
	height:16px;
	top:50%;
	left:50%;
	margin:-8px 0 0 -8px;
	border:2px solid currentColor;
	border-right-color:transparent;
	border-radius:50%;
	animation:propsys-btn-spin .6s linear infinite;
}
@keyframes propsys-btn-spin{
	to{ transform:rotate(360deg); }
}
@media (max-width: 640px){
	.propsys-hero-filter.propsys-hero-btnlayout-inline{ flex-direction:column; align-items:stretch; }
	.propsys-hero-fields.propsys-hero-fieldslayout-horizontal{ flex-direction:column; align-items:stretch; }
}
