/* [tdre_listings] – property cards and search bar (mirrors the previous site) */
.tdre-listings { --pad: clamp(20px, 4vw, 50px); }
.tdre-listings.is-dark { background: #000; color: #fff; }
.tdre-listings.is-dark .tdre-plist { padding: 60px var(--pad) 90px; }
.tdre-listings.is-light .tdre-plist { padding: 50px var(--pad) 90px; }

/* search bar */
.tdre-search {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr auto;
	gap: 0 15px;
	padding: 25px 30px;
	background: #fff;
	color: #000;
	font-size: 22px;
	letter-spacing: 1px;
}
.tdre-listings.is-light .tdre-search { border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; }
.tdre-search__item { display: flex; flex-direction: column; justify-content: space-between; gap: 6px; }
.tdre-search__title { font-weight: 700; }
.tdre-search input[type=text],
.tdre-search select {
	font: inherit;
	letter-spacing: normal;
	color: inherit;
	width: 100%;
	border: 0;
	border-bottom: 1px solid #000;
	border-radius: 0;
	padding: 5px 0;
	background: transparent;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}
.tdre-search select {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 160'%3E%3Cpath d='M226 0 128 98 30 0 0 30l128 128L256 30z'/%3E%3C/svg%3E") no-repeat 100% 50% / 12px auto;
	padding-right: 20px;
}
.tdre-search__btn { display: flex; align-items: flex-end; }

/* dual range slider */
.tdre-range { position: relative; height: 38px; --lo: 0%; --hi: 100%; }
.tdre-range__from, .tdre-range__to {
	position: absolute; top: 0; font: 13px/1 Arial, sans-serif; color: gray; letter-spacing: 1px;
}
.tdre-range__from { left: 0; }
.tdre-range__to { right: 0; }
.tdre-range::before, .tdre-range::after {
	content: ""; position: absolute; bottom: 5px; height: 1px; background: #ccc; left: 0; right: 0;
}
.tdre-range::after { background: #000; left: var(--lo); right: calc(100% - var(--hi)); }
.tdre-range input[type=range] {
	position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 11px; margin: 0;
	background: none; pointer-events: none; -webkit-appearance: none; appearance: none; z-index: 1;
}
.tdre-range input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none; pointer-events: auto; width: 11px; height: 11px; border-radius: 50%;
	background: #fff; border: 1px solid #000; cursor: pointer;
}
.tdre-range input[type=range]::-moz-range-thumb {
	pointer-events: auto; width: 9px; height: 9px; border-radius: 50%; background: #fff; border: 1px solid #000; cursor: pointer;
}
.tdre-range input[type=range]::-moz-range-track { background: none; }

/* cards */
.tdre-plist {
	list-style: none; margin: 0 auto; max-width: 1180px;
	display: grid; grid-template-columns: 1fr 1fr; gap: 55px 80px;
}
.tdre-listings.cols-3 .tdre-plist { grid-template-columns: repeat(3, 1fr); gap: 40px; max-width: 1400px; }
.tdre-pcard { position: relative; background: #fff; color: #000; }
.tdre-pcard[hidden] { display: none; }
.tdre-listings.is-light .tdre-pcard { box-shadow: 0 0 0 1px #e5e5e5; }
.tdre-pcard__link { display: block; color: inherit; text-decoration: none; height: 100%; }
.tdre-pcard__img { aspect-ratio: 452 / 315; overflow: hidden; }
.tdre-pcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tdre-pcard__label {
	position: absolute; top: 0; right: 0; background: #000; color: #fff;
	font-size: 14px; letter-spacing: 2px; text-transform: uppercase; padding: 7px 35px; line-height: 1.25;
}
.tdre-pcard__text { padding: 28px 16px 26px; text-align: center; text-transform: uppercase; }
.tdre-pcard__text h4 { font-size: 22px; font-weight: 400; letter-spacing: 3px; line-height: 1.45; margin: 0 0 8px; }
.tdre-pcard__text p { font-size: 17px; letter-spacing: 1.5px; line-height: 1.5; margin: 0 0 8px; }
.tdre-pcard__text h5 { font-size: 16px; font-weight: 400; letter-spacing: 2px; margin: 4px 0 0; }
.tdre-pcard__hover {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.72); opacity: 0; transition: opacity .3s; pointer-events: none;
}
.tdre-pcard:hover .tdre-pcard__hover,
.tdre-pcard:focus-within .tdre-pcard__hover { opacity: 1; }
.tdre-pcard__hover .wp-element-button { background: transparent; color: #1a1a1a; }
.tdre-plist__empty { text-align: center; padding: 0 0 80px; margin: 0; }

@media (max-width: 950px) {
	.tdre-search { grid-template-columns: 1fr; gap: 18px; }
	.tdre-search__btn { display: none; }
	.tdre-plist, .tdre-listings.cols-3 .tdre-plist { grid-template-columns: 1fr; gap: 40px; }
}

/* section wrapper around the shortcode (title + grid) */
.tdre-listings-section { padding: 0 !important; margin-top: 0 !important; }
.tdre-listings-section > * { max-width: none !important; }
.tdre-listings-section.is-dark { background: #000; color: #fff; }
.tdre-listings-section > .wp-block-heading { padding: 90px 24px 0; margin: 0; }
.tdre-listings-section > p { padding: 24px 24px 0; margin: 0 auto !important; max-width: 70% !important; }
.tdre-listings-section > .wp-block-heading + .tdre-listings .tdre-search,
.tdre-listings-section > p + .tdre-listings .tdre-search { margin-top: 40px; }
.entry-content > .tdre-listings-section + * { margin-top: 0; }
.tdre-listings-section.is-charcoal { background: #1a1a1a; }
