.cpg-development-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--cpg-space-6,1.5rem); margin-block:2rem; }
.cpg-development-card .cpgh-media { aspect-ratio:16/10; }
.cpg-development-card h3 { font-size:clamp(1.3rem,2vw,2rem); }
.cpg-development-card .cpgp-card__body { padding:1.5rem; }
.cpg-discovery-context { padding-block:1.5rem; }
@media(max-width:64rem) { .cpg-development-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:40rem) { .cpg-development-grid { grid-template-columns:1fr; } }
.cpg-development-grid .cpgh-media img { width:100%; height:100%; object-fit:cover; }
.cpgd-card__specs { flex-wrap:wrap; }
.cpgd-card__spec-label { font-size:.75rem; white-space:normal; }
/* The directory follows the page title directly: a short step down, and a
   small heading, rather than a full section break under the lead. */
.cpg-body--properties .cpgp-section.cpg-discovery-directory { padding-block-start:clamp(1rem,2vw,1.75rem); }
.cpg-body--properties .cpg-discovery-directory h2 { font-size:clamp(1.125rem,1rem + .5vw,1.375rem); letter-spacing:-.01em; }
.cpg-discovery-directory .cpg-development-grid { margin-block-start:1.25rem; }
/* Filter rail actions. Results refresh as soon as a value changes, so Apply
   only shows without the script; what remains is one quiet, outlined
   "Clear filters" row. */
.cpg-body--properties .cpgd .cpgd-filters .cpgp-filters-rail__actions { display:flex; gap:.5rem; padding:1rem 1.25rem; }
.cpg-body--properties .cpgd .cpgd-filters .cpgp-filters-rail__actions .cpgd-apply {
  flex:1 1 auto; min-height:2.75rem; padding:0 1rem; border:1px solid var(--cpg-ink); border-radius:.5rem;
  background:var(--cpg-ink); color:var(--cpg-white,#fff); font:inherit; font-size:var(--cpg-text-sm); font-weight:600; cursor:pointer;
}
.cpg-body--properties .cpgd .cpgd-filters .cpgp-filters-rail__actions .cpgd-reset {
  flex:1 1 auto; width:auto; min-height:2.75rem; gap:.5rem; padding:0 1rem;
  border:1px solid var(--cpg-rule-strong, rgba(13,13,12,.24)); border-radius:.5rem;
  background:transparent; color:var(--cpg-ink); font-size:var(--cpg-text-sm); font-weight:500; text-decoration:none;
}
.cpg-body--properties .cpgd .cpgd-filters .cpgp-filters-rail__actions .cpgd-reset:hover { border-color:var(--cpg-ink); background:transparent; color:var(--cpg-ink); }
.cpg-body--properties .cpgd .cpgd-filters .cpgp-filters-rail__actions .cpgd-reset svg { width:1rem; height:1rem; }
.cpgd-main.is-loading { opacity:.45; transition:opacity .2s; pointer-events:none; }
@media (prefers-reduced-motion: reduce) { .cpgd-main.is-loading { transition:none; } }
/* Inside one development the filters run as a single quiet row above the
   results instead of a ruled column beside them: a small label over each
   value, a hairline under it, and nothing else. */
.cpg-body--properties .cpgp-discover.cpgd.cpgd--top { grid-template-columns:minmax(0,1fr); gap:clamp(1rem,2vw,1.5rem); }
.cpg-body--properties .cpgd--top .cpgd-side { position:static; }
.cpg-body--properties .cpgd--top .cpgd-filters {
  position:static; display:flex; flex-wrap:wrap; align-items:flex-end; gap:1rem clamp(.875rem,1.6vw,1.25rem);
  padding:0 0 clamp(1rem,2vw,1.25rem); border:0; border-bottom:1px solid var(--cpg-rule,rgba(13,13,12,.12)); background:none;
}
.cpg-body--properties .cpgd--top .cpgd-filters .cpgp-field { flex:1 1 6rem; min-width:6rem; padding:0; background:none; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgd-range { flex:1.5 1 9rem; min-width:9rem; gap:.375rem; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpg-label { margin-block-end:.25rem; font-size:.625rem; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpg-select,
.cpg-body--properties .cpgd--top .cpgd-filters .cpg-input { min-height:2rem; border-bottom:1px solid var(--cpg-rule,rgba(13,13,12,.16)); font-size:var(--cpg-text-sm); }
.cpg-body--properties .cpgd--top .cpgd-filters .cpg-select:hover { border-bottom-color:var(--cpg-ink); }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgd-range__values { gap:.5rem; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgd-range__value { padding:0; background:none; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgd-range__value .cpg-input { min-height:1.5rem; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgp-filters-rail__actions { flex:0 0 auto; padding:0; }
.cpg-body--properties .cpgd--top .cpgd-filters .cpgp-filters-rail__actions .cpgd-reset,
.cpg-body--properties .cpgd--top .cpgd-filters .cpgp-filters-rail__actions .cpgd-apply { flex:0 0 auto; min-height:2.25rem; padding:0 .875rem; font-size:.8125rem; }
@media (max-width:33.999rem) {
  .cpg-body--properties .cpgd--top .cpgd-filters .cpgp-field { flex-basis:calc(50% - .5rem); }
  .cpg-body--properties .cpgd--top .cpgd-filters .cpgd-range,
  .cpg-body--properties .cpgd--top .cpgd-filters .cpgp-filters-rail__actions { flex-basis:100%; }
  .cpg-body--properties .cpgd--top .cpgd-filters .cpgp-filters-rail__actions .cpgd-reset { flex:1 1 auto; }
}
