@charset "UTF-8";
/* =====================================================================
   Каталог недвижимости (archive-property, таксономии) — во всю ширину,
   в стиле главной: кремовый фон, оливковый, золотые акценты
   ===================================================================== */
.vlora-listings {
	position: relative;
	background: radial-gradient(60rem 26rem at 88% 4%, rgba(184, 154, 111, .16), transparent 65%), var(--o-bg);
	color: var(--o-ink);
	font-family: var(--o-sans);
	padding: clamp(2.5rem, 6vw, 5rem) var(--o-gutter) clamp(3rem, 7vw, 6rem);
}

/* на всю ширину экрана (на сверхшироких мониторах ограничено базой страниц) */
.vlora-listings__inner {
	margin-inline: auto;
	max-width: var(--vlora-container);
}

/* ---------- Заголовок ---------- */
.vlora-listings__layout {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

/* «Full width»: контейнер страницы снимается, auto-fill сетка набирает столько карточек, сколько влезает */
.vlora-listings[data-filters-layout="wide"] .vlora-listings__inner {
	max-width: none;
}

/* Переключатель положения фильтров доступен только в полноширинном режиме */
.vlora-listings .vlora-listings__filters-side {
	display: none;
}

.vlora-listings[data-filters-layout="wide"] .vlora-listings__filters-side {
	display: inline-flex;
}

@media (min-width: 1024px) {
	.vlora-listings__layout[data-filters-side="left"] {
		align-items: start;
		grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
	}
}

/* ---------- Фильтры: горизонтальная панель ---------- */
.vlora-filters {
	background: var(--o-white);
	border-top: 2px solid var(--o-gold);
	box-shadow: 0 .5rem 2rem rgba(60, 50, 30, .08);
	display: grid;
	gap: 1.1rem;
	padding: clamp(1.25rem, 2.2vw, 2rem);
}

.vlora-filters__head {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1rem;
}

.vlora-filters h2 {
	margin: 0;
	color: var(--o-olive);
	font: 400 .8125rem/1.2 var(--o-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.vlora-filters__hint {
	margin: 0;
	color: var(--o-muted);
	font: 400 clamp(1.05rem, 1.4vw, 1.25rem)/1.2 var(--o-script);
}

.vlora-filters__advanced,
.vlora-filters__fieldgrid {
	align-items: end;
	display: grid;
	gap: .9rem 1rem;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

/* ряд основных фильтров: селекты гибкие, ужимаются под длинные переводы в действиях */
.vlora-filters__main {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: .9rem 1rem;
}

.vlora-filters__main > .vlora-filters__field {
	flex: 1 1 0;
	min-width: 9rem;
}

.vlora-filters__field {
	display: grid;
	gap: .35rem;
	min-width: 0;
}

.vlora-filters label:not(.vlora-filters__checkbox),
.vlora-filters legend {
	color: var(--o-muted);
	font: 400 .6875rem/1.3 var(--o-sans);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.vlora-filters input:not([type="checkbox"]),
.vlora-filters select {
	background: var(--o-white);
	border: 1px solid rgba(85, 85, 47, .25);
	border-radius: var(--vlora-radius-field);
	color: var(--o-ink);
	font: 400 .9375rem/1 var(--o-sans);
	min-height: 3rem;
	padding: 0 1rem;
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
}

.vlora-filters input:not([type="checkbox"]):focus,
.vlora-filters select:focus {
	border-color: var(--o-olive);
	box-shadow: 0 0 0 3px rgba(85, 85, 47, .12);
	outline: none;
}

.vlora-filters input::placeholder {
	color: var(--o-placeholder-text);
}

.vlora-filters select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2355552f' stroke-width='1.3'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.1rem center;
	padding-right: 2.5rem;
}

.vlora-filters__actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: 1rem;
}

.vlora-filters__actions button {
	align-items: center;
	background: var(--o-olive);
	border: 1px solid var(--o-olive);
	border-radius: var(--vlora-radius-btn);
	color: var(--o-cream);
	cursor: pointer;
	display: inline-flex;
	flex: 1;
	justify-content: center;
	max-width: 10rem;
	min-height: 3rem;
	padding: 0 1.5rem;
	text-align: center;
	font: 500 .8125rem/1.3 var(--o-sans);
	letter-spacing: .06em;
	text-transform: uppercase;
	transition: background-color .25s, border-color .25s;
}

.vlora-filters__actions button:hover,
.vlora-filters__actions button:focus-visible {
	background: var(--o-olive-dark);
	border-color: var(--o-olive-dark);
}

.vlora-filters__actions a {
	color: var(--o-olive);
	flex: none;
	font: 500 .6875rem/1 var(--o-sans);
	letter-spacing: .06em;
	text-transform: uppercase;
	text-underline-offset: .25rem;
}

/* «More filters» */
.vlora-filters__more {
	border-top: 1px solid rgba(85, 85, 47, .15);
	padding-top: .9rem;
}

.vlora-filters__more > summary {
	align-items: center;
	color: var(--o-olive);
	cursor: pointer;
	display: inline-flex;
	font: 500 .75rem/1 var(--o-sans);
	gap: .65rem;
	letter-spacing: .08em;
	list-style: none;
	text-transform: uppercase;
}

.vlora-filters__more > summary::-webkit-details-marker {
	display: none;
}

.vlora-filters__more > summary::after {
	align-items: center;
	border: 1px solid rgba(85, 85, 47, .5);
	border-radius: 50%;
	content: "+";
	display: inline-flex;
	font-size: 1rem;
	height: 1.5rem;
	justify-content: center;
	transition: background-color .25s, color .25s;
	width: 1.5rem;
}

.vlora-filters__more[open] > summary::after {
	content: "\2212";
}

.vlora-filters__more > summary:hover::after {
	background: var(--o-olive);
	color: var(--o-cream);
}

.vlora-filters__advanced {
	margin-top: 1.1rem;
}

.vlora-filters__group {
	border: 0;
	display: grid;
	gap: .65rem;
	grid-column: 1 / -1;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.vlora-filters__features {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 1.75rem;
}

.vlora-filters__checkbox {
	align-items: center;
	color: var(--o-muted-strong);
	display: flex;
	gap: .55rem;
	font: 400 .875rem/1.45 var(--o-sans);
}

.vlora-filters__checkbox input {
	accent-color: var(--o-olive);
	height: 1rem;
	margin: 0;
	width: 1rem;
}

/* ---------- Панель результатов ---------- */
.vlora-listings__toolbar {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 1.25rem;
	margin-block-end: 1.5rem;
}

.vlora-listings__count {
	margin: 0 auto 0 0;
	color: var(--o-muted);
	font-size: .9375rem;
}

.vlora-listings__count::before {
	background: var(--o-gold);
	content: "";
	display: inline-block;
	height: 1px;
	margin: 0 .7rem .28rem 0;
	vertical-align: baseline;
	width: 2.25rem;
}

.vlora-listings__views {
	display: flex;
	gap: .35rem;
}

.vlora-listings__views a {
	align-items: center;
	background: transparent;
	border: 1px solid var(--o-olive);
	border-radius: var(--vlora-radius-btn);
	color: var(--o-olive);
	display: inline-flex;
	font: 400 .75rem/1 var(--o-sans);
	gap: .5rem;
	justify-content: center;
	letter-spacing: .08em;
	min-height: 2.75rem;
	min-width: 6.5rem;
	padding: 0 1.25rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color .25s, color .25s;
}

.vlora-listings__views a svg {
	flex: none;
}

.vlora-listings__views a:hover {
	background: rgba(85, 85, 47, .08);
}

.vlora-listings__views a[aria-current="page"] {
	background: var(--o-olive);
	color: var(--o-cream);
}

/* ---------- Переключатели: сегментированные кнопки ---------- */
.vlora-switch {
	border: 1px solid rgba(85, 85, 47, .35);
	border-radius: var(--vlora-radius-field);
	display: inline-flex;
	overflow: hidden;
}

.vlora-switch__btn {
	align-items: center;
	background: var(--o-white);
	border: 0;
	color: var(--o-muted);
	cursor: pointer;
	display: flex;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0 .7rem;
	transition: background-color .2s, color .2s;
}

.vlora-switch__btn + .vlora-switch__btn {
	border-left: 1px solid rgba(85, 85, 47, .2);
}

.vlora-switch__btn:hover {
	background: var(--o-tint);
	color: var(--o-olive);
}

.vlora-switch__btn[aria-pressed="true"] {
	background: var(--o-olive);
	color: var(--o-cream);
}

/* ---------- Сетка карточек: «auto-fill», чтобы 1–2 объекта не растягивались на всю ширину ---------- */
.vlora-listings .vlora-property-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
}

.vlora-listings .vlora-property-grid[data-layout="list"] {
	grid-template-columns: 1fr;
}

.vlora-listings__empty {
	background: var(--o-white);
	box-shadow: 0 .5rem 2rem rgba(60, 50, 30, .08);
	color: var(--o-muted);
	grid-column: 1 / -1;
	margin: 0;
	padding: 1.5rem;
}

/* ---------- Карта ---------- */
.vlora-listings .vlora-map {
	margin-block-end: clamp(1.5rem, 3vw, 2.5rem);
}

.vlora-listings .vlora-map__canvas {
	background: var(--o-surface);
	border: 0;
	border-radius: 0;
	height: clamp(24rem, 46vw, 42rem);
	min-height: 20rem;
}

.vlora-listings .vlora-map__button {
	background: var(--o-olive);
	border: 1px solid var(--o-olive);
	border-radius: var(--vlora-radius-btn);
	color: var(--o-cream);
	font: 500 .75rem/1 var(--o-sans);
	letter-spacing: .06em;
	text-transform: uppercase;
}

.vlora-listings .vlora-map__button--ghost {
	background: transparent;
	color: var(--o-olive);
}

.vlora-listings .vlora-map__button:hover,
.vlora-listings .vlora-map__button--ghost:hover {
	background: var(--o-olive-dark);
	color: var(--o-cream);
}

.vlora-listings .vlora-map__status {
	color: var(--o-muted);
}

/* ---------- Страницы таксономий ---------- */
.vlora-listings__back {
	margin: clamp(2.5rem, 5vw, 4rem) 0 0;
	text-align: center;
}

.vlora-listings__back a {
	align-items: center;
	border: 1px solid var(--o-olive);
	border-radius: var(--vlora-radius-btn);
	color: var(--o-olive);
	display: inline-flex;
	font: 400 .75rem/1 var(--o-sans);
	justify-content: center;
	letter-spacing: .08em;
	min-height: 3rem;
	padding: 0 2rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color .25s, color .25s;
}

.vlora-listings__back a:hover {
	background: var(--o-olive);
	color: var(--o-cream);
}

.vlora-listings--taxonomy .vlora-listings__count {
	margin-block-end: 1.5rem;
}

/* ---------- Фокус ---------- */
.vlora-listings :is(a, button, select, summary):focus-visible {
	outline: var(--vlora-focus);
	outline-offset: 3px;
}

/* ---------- Адаптив ---------- */
@media (max-width: 640px) {
	.vlora-listings__toolbar {
		align-items: center;
		gap: .75rem;
	}

	.vlora-listings__count {
		flex: 1 0 100%;
		margin-inline-end: 0;
	}

	.vlora-listings__views {
		flex: 1 1 100%;
		width: 100%;
	}

	.vlora-listings__views a {
		flex: 1;
	}

	.vlora-filters__main {
		align-items: stretch;
		flex-direction: column;
	}

	.vlora-filters__main > .vlora-filters__field {
		min-width: 0;
		width: 100%;
	}

	.vlora-filters__actions {
		flex-direction: column;
		align-items: stretch;
		gap: .75rem;
	}

	.vlora-filters__actions button {
		max-width: none;
	}

	.vlora-filters__actions a {
		text-align: center;
	}
}

@media (max-width: 640px) and (orientation: portrait) {
	.vlora-filters:has(.vlora-filters__more[open]) {
		display: flex;
		flex-direction: column;
	}

	.vlora-filters:has(.vlora-filters__more[open]) .vlora-filters__main {
		display: contents;
	}

	.vlora-filters:has(.vlora-filters__more[open]) .vlora-filters__main > .vlora-filters__field {
		flex: none;
		min-width: 0;
		width: 100%;
	}

	.vlora-filters:has(.vlora-filters__more[open]) .vlora-filters__actions {
		background: var(--o-white);
		box-shadow: 0 .5rem 1.25rem rgba(60, 50, 30, .1);
		padding-block: .6rem;
		position: sticky;
		top: var(--vl-header-h, 5.25rem);
		z-index: 6;
	}

	body.admin-bar .vlora-filters:has(.vlora-filters__more[open]) .vlora-filters__actions {
		top: calc(46px + var(--vl-header-h, 5.25rem));
	}
}

/* ---------- Появление ---------- */
@keyframes vlora-listing-rise {
	from {
		opacity: 0;
		transform: translateY(1.5rem);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

.vlora-page-head,
.vlora-filters {
	animation: vlora-listing-rise .8s cubic-bezier(.2, .7, .2, 1) both;
}

.vlora-filters {
	animation-delay: .12s;
}

@media (max-width: 640px) {
	.vlora-filters {
		animation: none;
	}
}
