.catalog-intro { padding: 74px 0 48px; border-bottom: 1px solid var(--ren-line); background: white; }
.catalog-intro h1 { max-width: 800px; margin: 0; font: 800 clamp(40px, 5vw, 64px)/1.04 var(--font-display); letter-spacing: -.055em; }
.catalog-intro p { max-width: 700px; margin: 18px 0 0; color: var(--ren-muted); font-size: 15px; line-height: 1.7; }
.catalog-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 34px; padding-top: 38px; padding-bottom: 76px; }
.catalog-filter { align-self: start; display: grid; gap: 19px; padding-right: 28px; border-right: 1px solid var(--ren-line); }
.catalog-filter label, .catalog-filter legend { color: var(--ren-ink); font-size: 11px; font-weight: 650; }
.catalog-filter input, .catalog-filter select, .results-head select { width: 100%; height: 43px; margin-top: 7px; padding: 0 11px; border: 1px solid var(--ren-line); border-radius: 8px; color: var(--ren-ink); background: white; font: 500 11px var(--font-body); }
.catalog-filter fieldset { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.catalog-filter fieldset label { display: flex; align-items: center; gap: 8px; color: var(--ren-muted); font-weight: 500; }
.catalog-filter fieldset input { width: 15px; height: 15px; margin: 0; accent-color: var(--ren-green); }
.catalog-search { display: grid; gap: 9px; }
.catalog-search .button { width: 100%; }
.filter-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.filter-reset { color: var(--ren-muted); background: var(--ren-canvas); }
.saved-searches { display: grid; gap: 10px; padding-top: 18px; border-top: 1px solid var(--ren-line); }
.saved-searches header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.saved-searches header b { font-size: 11px; }
.saved-searches header button { min-height: 30px; padding: 0 9px; border: 1px solid var(--ren-line); border-radius: 7px; color: var(--ren-green); background: white; font-size: 9px; font-weight: 700; }
.saved-search-list { display: grid; gap: 8px; }
.saved-search-list p { margin: 0; color: var(--ren-muted); font-size: 9px; line-height: 1.55; }
.saved-search-item { display: grid; grid-template-columns: 1fr 28px; gap: 6px; }
.saved-search-item button { min-width: 0; border: 1px solid var(--ren-line); border-radius: 8px; background: #fbfcfb; }
.saved-search-item button:first-child { display: grid; gap: 3px; padding: 9px 10px; color: var(--ren-ink); text-align: left; }
.saved-search-item button:last-child { color: var(--ren-danger); font-size: 16px; }
.saved-search-item b, .saved-search-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.saved-search-item b { font-size: 10px; }
.saved-search-item small { color: var(--ren-muted); font-size: 8px; }
.catalog-results { min-width: 0; }
.results-head { min-height: 50px; display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.results-head b, .results-head span { display: block; }
.results-head b { font: 730 16px var(--font-display); }
.results-head span { margin-top: 5px; color: var(--ren-muted); font-size: 10px; }
.results-head select { width: 180px; margin: 0; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.catalog-grid .property-body { padding: 15px; }
.catalog-grid .property-body h3 { font-size: 16px; }
.catalog-grid .property-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; font-size: 9px; }
.catalog-grid .property-foot { align-items: start; flex-direction: column; }
.catalog-empty { grid-column: 1 / -1; min-height: 280px; display: grid; place-items: center; align-content: center; padding: 40px; border: 1px dashed var(--ren-line); color: var(--ren-muted); text-align: center; }
.catalog-empty b { color: var(--ren-ink); font: 730 18px var(--font-display); }
.catalog-empty p { margin: 8px 0 0; font-size: 11px; }
.pagination { display: flex; justify-content: center; gap: 6px; margin-top: 30px; }
.pagination button { min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid var(--ren-line); border-radius: 7px; color: var(--ren-muted); background: white; font-size: 10px; }
.pagination button.active { color: white; border-color: var(--ren-green); background: var(--ren-green); }
.pagination button:disabled { opacity: .4; }

.detail-loading, .detail-error { min-height: 66vh; display: grid; place-items: center; align-content: center; text-align: center; }
.detail-error h1 { margin: 0; font: 800 42px var(--font-display); }
.detail-error p { color: var(--ren-muted); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; padding: 26px 0 18px; color: var(--ren-muted); font-size: 10px; }
.breadcrumbs a { color: var(--ren-green); }
.detail-gallery { display: grid; grid-template-columns: 1.65fr .7fr; gap: 10px; height: min(530px, 48vw); }
.gallery-main, .gallery-side { min-width: 0; overflow: hidden; }
.gallery-side { display: grid; grid-template-rows: 1fr 1fr; gap: 10px; }
.gallery-main img, .gallery-side img, .media-placeholder { width: 100%; height: 100%; display: grid; place-items: center; object-fit: cover; border-radius: 10px; background: #e5ebe8; color: var(--ren-muted); font-size: 11px; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; align-items: start; gap: 46px; padding: 38px 0 72px; }
.detail-title { display: flex; align-items: start; justify-content: space-between; gap: 30px; padding-bottom: 28px; border-bottom: 1px solid var(--ren-line); }
.verified-line { color: var(--ren-green); font-size: 10px; font-weight: 700; }
.detail-title h1 { margin: 10px 0 8px; font: 800 clamp(32px, 4vw, 48px)/1.1 var(--font-display); letter-spacing: -.045em; }
.detail-title p { margin: 0; color: var(--ren-muted); font-size: 12px; }
.detail-title > strong { flex: 0 0 auto; color: var(--ren-green); font: 760 25px var(--font-display); }
.detail-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--ren-line); }
.detail-facts > div { padding: 22px 15px 22px 0; }
.detail-facts span, .detail-facts b { display: block; }
.detail-facts span { color: var(--ren-muted); font-size: 9px; }
.detail-facts b { margin-top: 6px; font-size: 11px; }
.detail-section { padding: 30px 0; border-bottom: 1px solid var(--ren-line); }
.detail-section h2, .sale-strip h2 { margin: 0 0 12px; font: 750 22px var(--font-display); }
.detail-section > p { margin: 0; color: var(--ren-muted); font-size: 12px; line-height: 1.85; white-space: pre-line; }
.detail-facts.compact { border: 0; }
.review-timeline { display: grid; grid-template-columns: minmax(0, .82fr) minmax(220px, 1fr); gap: 22px; align-items: start; }
.review-timeline > div > p { margin: 0; color: var(--ren-muted); font-size: 11px; line-height: 1.7; }
.review-timeline ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.review-timeline li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; position: relative; }
.review-timeline li::before { content: ""; position: absolute; left: 9px; top: 22px; bottom: -14px; width: 1px; background: var(--ren-line); }
.review-timeline li:last-child::before { display: none; }
.review-timeline li > span { width: 20px; height: 20px; margin-top: 2px; border-radius: 999px; background: var(--ren-green); box-shadow: 0 0 0 6px var(--ren-green-soft); }
.review-timeline b, .review-timeline small { display: block; }
.review-timeline b { font-size: 12px; }
.review-timeline li p { margin: 4px 0; color: var(--ren-muted); font-size: 11px; line-height: 1.55; }
.review-timeline small { color: var(--ren-muted); font-size: 9px; }
.lead-aside { position: sticky; top: 96px; }
.lead-box { display: grid; gap: 14px; padding: 26px; border: 1px solid var(--ren-line); border-radius: 12px; box-shadow: var(--shadow-soft); background: white; }
.lead-box h2 { margin: 0; font: 750 22px var(--font-display); }
.lead-box p, .lead-box small { margin: 0; color: var(--ren-muted); font-size: 9px; line-height: 1.65; }
.lead-box label { display: grid; gap: 6px; font-size: 10px; font-weight: 650; }
.lead-box input, .lead-box textarea { padding: 11px; border: 1px solid var(--ren-line); border-radius: 8px; font: 500 11px var(--font-body); resize: vertical; }
.sale-strip { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 16px; margin-top: 30px; padding: 22px; background: var(--ren-green-soft); border-radius: 10px; }
.sale-avatar { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: white; background: var(--ren-green); font-size: 12px; font-weight: 750; }
.sale-strip span, .sale-strip p { color: var(--ren-muted); font-size: 9px; }
.sale-strip h2 { margin: 4px 0; font-size: 17px; }
.sale-strip p { margin: 0; }
.related-section, .project-inventory { background: var(--ren-canvas); }

.project-intro { padding-bottom: 56px; }
.project-catalog { display: grid; gap: 30px; }
.project-catalog-card { display: grid; grid-template-columns: minmax(340px, .9fr) 1.1fr; overflow: hidden; border-block: 1px solid var(--ren-line); background: white; }
.project-cover { min-height: 390px; background: #dfe6e3 center/cover; }
.project-catalog-card > div { align-self: center; padding: 42px; }
.project-catalog-card span { color: var(--ren-green); font-size: 10px; font-weight: 700; }
.project-catalog-card h2 { margin: 10px 0 12px; font: 800 34px/1.12 var(--font-display); letter-spacing: -.04em; }
.project-catalog-card p { color: var(--ren-muted); font-size: 12px; line-height: 1.75; }
.project-catalog-card dl, .project-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); margin: 24px 0; border-block: 1px solid var(--ren-line); }
.project-catalog-card dl div, .project-stat-row div { padding: 16px 8px 16px 0; }
.project-catalog-card dt, .project-stat-row span { color: var(--ren-muted); font-size: 9px; }
.project-catalog-card dd, .project-stat-row b { display: block; margin: 5px 0 0; font: 730 18px var(--font-display); }
.project-detail-hero { color: var(--ren-ink); background: white; }
.project-detail-photo { height: min(520px, 48vw); background: #dfe6e3 center/cover; }
.project-detail-copy { padding-bottom: 48px; }
.project-detail-copy .breadcrumbs { color: var(--ren-muted); }
.project-detail-copy .breadcrumbs a { color: var(--ren-green); }
.project-detail-copy h1 { max-width: 850px; margin: 0; font: 800 clamp(46px, 6vw, 76px)/1.02 var(--font-display); letter-spacing: -.06em; }
.project-detail-copy p { margin: 14px 0 0; color: var(--ren-muted); }
.project-overview { display: grid; grid-template-columns: 1.35fr .65fr; gap: 70px; }
.project-overview h2 { margin: 0 0 18px; font: 780 30px var(--font-display); }
.project-overview p { color: var(--ren-muted); font-size: 12px; line-height: 1.85; }
.project-overview aside { padding-left: 32px; border-left: 3px solid var(--ren-green); }
.project-units { background: white; }
.project-unit-filters { display: flex; gap: 9px; align-items: center; }
.project-unit-filters select { min-width: 150px; height: 40px; padding: 0 11px; border: 1px solid var(--ren-line); border-radius: 8px; background: white; color: var(--ren-ink); font: 650 10px var(--font-body); }
.project-unit-table-wrap { overflow-x: auto; border: 1px solid var(--ren-line); border-radius: 12px; background: white; }
.project-unit-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.project-unit-table th, .project-unit-table td { padding: 15px 16px; border-bottom: 1px solid var(--ren-line); text-align: left; font-size: 10px; vertical-align: top; }
.project-unit-table th { color: var(--ren-muted); background: #f8fbfa; font-weight: 750; }
.project-unit-table tr:last-child td { border-bottom: 0; }
.project-unit-table b, .project-unit-table small { display: block; }
.project-unit-table b { font-size: 12px; }
.project-unit-table small { margin-top: 4px; color: var(--ren-muted); font-size: 9px; }
.unit-status { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; background: var(--ren-green-soft); color: var(--ren-green); font-size: 9px; font-weight: 750; }
.unit-status.held { color: #8a5a00; background: #fff2d2; }
.unit-status.sold { color: var(--ren-muted); background: #eef1f0; }
.unit-empty { color: var(--ren-muted); text-align: center !important; }
.project-unit-count { margin: 12px 0 0; color: var(--ren-muted); font-size: 10px; }

.owner-intro { padding-bottom: 50px; }
.owner-shell { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 54px; padding-top: 38px; padding-bottom: 78px; }
.owner-form { min-width: 0; }
.form-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 34px; padding: 0; list-style: none; counter-reset: steps; }
.form-steps li { padding: 13px 12px; border-bottom: 2px solid var(--ren-line); color: var(--ren-muted); font-size: 9px; font-weight: 650; }
.form-steps li.active { color: var(--ren-green); border-color: var(--ren-green); }
.owner-draft-tools { display: flex; align-items: center; gap: 12px; margin: -16px 0 22px; padding: 14px; border: 1px solid #dbe7e2; border-radius: 10px; background: #f8fbfa; color: var(--ren-muted); font-size: 9px; line-height: 1.6; }
.owner-draft-tools b { color: var(--ren-green); font-size: 10px; }
.owner-draft-tools span { flex: 1; }
.owner-draft-tools .button { min-height: 34px; padding: 0 12px; white-space: nowrap; }
.form-section { padding: 30px 0; border-top: 1px solid var(--ren-line); }
.form-section > header { display: grid; grid-template-columns: 42px 1fr; gap: 12px; margin-bottom: 24px; }
.form-section > header > span { color: var(--ren-copper); font: 750 12px var(--font-display); }
.form-section h2 { margin: 0; font: 750 22px var(--font-display); }
.form-section header p { margin: 5px 0 0; color: var(--ren-muted); font-size: 9px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid label { display: grid; gap: 7px; font-size: 10px; font-weight: 650; }
.form-grid input, .form-grid select, .form-grid textarea { min-width: 0; padding: 11px 12px; border: 1px solid var(--ren-line); border-radius: 8px; color: var(--ren-ink); background: white; font: 500 11px var(--font-body); outline: none; resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: var(--ren-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ren-green) 11%, transparent); }
.form-grid .span-2 { grid-column: 1 / -1; }
.owner-upload { min-height: 160px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 28px; border: 1px dashed #9db7ae; border-radius: 10px; color: var(--ren-green); background: #f8fbfa; text-align: center; cursor: pointer; }
.owner-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.owner-upload b { font-size: 12px; }
.owner-upload span { color: var(--ren-muted); font-size: 9px; }
.owner-thumbnails { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 12px; }
.owner-thumbnail { position: relative; aspect-ratio: 1.2; overflow: hidden; border-radius: 8px; background: var(--ren-line); }
.owner-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.owner-thumbnail button { position: absolute; right: 6px; top: 6px; padding: 5px 7px; border: 0; border-radius: 5px; color: white; background: rgba(20,34,30,.82); font-size: 8px; }
.consent { grid-template-columns: 18px 1fr !important; align-items: start; color: var(--ren-muted); font-weight: 500 !important; line-height: 1.6; }
.consent input { width: 16px; height: 16px; padding: 0; accent-color: var(--ren-green); }
.owner-submit { min-height: 48px; margin-top: 22px; }
.owner-guide { position: sticky; top: 100px; padding: 25px; border: 1px solid var(--ren-line); border-radius: 10px; background: white; }
.owner-guide h2 { margin: 0 0 18px; font: 750 20px var(--font-display); }
.owner-guide ol { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: guide; }
.owner-guide li { position: relative; padding-left: 27px; counter-increment: guide; }
.owner-guide li::before { content: counter(guide); position: absolute; left: 0; top: 0; display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; color: white; background: var(--ren-green); font-size: 8px; }
.owner-guide b, .owner-guide span { display: block; }
.owner-guide b { font-size: 10px; }
.owner-guide span { margin-top: 4px; color: var(--ren-muted); font-size: 9px; line-height: 1.55; }
.owner-legal { margin-top: 23px; padding-top: 20px; border-top: 1px solid var(--ren-line); }
.owner-legal p { margin: 7px 0 0; color: var(--ren-muted); font-size: 9px; line-height: 1.65; }
.owner-success { min-height: 520px; display: grid; place-items: center; align-content: center; gap: 14px; padding: 50px; border: 1px solid var(--ren-line); text-align: center; }
.owner-success > span { color: var(--ren-green); font-size: 10px; font-weight: 700; }
.owner-success h2 { margin: 0; font: 800 38px var(--font-display); }
.owner-success p, .owner-success small { max-width: 560px; color: var(--ren-muted); font-size: 10px; line-height: 1.7; }
.owner-warning { padding: 14px; border: 1px solid #f1c9c4; border-radius: 8px; color: var(--ren-danger); background: #fff3f1; }

@media (max-width: 1080px) {
  .catalog-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; }
}

@media (max-width: 820px) {
  .catalog-shell, .detail-layout, .owner-shell, .project-overview { grid-template-columns: 1fr; }
  .review-timeline { grid-template-columns: 1fr; }
  .project-unit-filters { width: 100%; flex-direction: column; align-items: stretch; }
  .catalog-filter { position: static; grid-template-columns: repeat(2, 1fr); padding: 0 0 24px; border-right: 0; border-bottom: 1px solid var(--ren-line); }
  .catalog-search, .catalog-filter fieldset { grid-column: 1 / -1; }
  .lead-aside, .owner-guide { position: static; }
  .project-catalog-card { grid-template-columns: 1fr; }
  .project-cover { min-height: 330px; }
  .project-detail-photo { height: 420px; }
}

@media (max-width: 600px) {
  .catalog-intro { padding: 48px 0 34px; }
  .catalog-intro h1 { font-size: 40px; }
  .catalog-filter, .catalog-grid, .form-grid { grid-template-columns: 1fr; }
  .catalog-filter > *, .form-grid .span-2 { grid-column: auto; }
  .results-head, .detail-title { align-items: start; flex-direction: column; }
  .results-head select { width: 100%; }
  .detail-gallery { grid-template-columns: 1fr; height: auto; }
  .gallery-main { aspect-ratio: 1.25; }
  .gallery-side { display: none; }
  .detail-facts { grid-template-columns: repeat(2, 1fr); }
  .sale-strip { grid-template-columns: 46px 1fr; }
  .sale-strip .button { grid-column: 1 / -1; }
  .project-catalog-card > div { padding: 28px 20px; }
  .project-catalog-card h2 { font-size: 29px; }
  .project-catalog-card dl, .project-stat-row { grid-template-columns: 1fr; }
  .project-detail-photo { height: 330px; }
  .project-detail-copy h1 { font-size: 42px; }
  .form-steps { grid-template-columns: 1fr; }
  .form-steps li { display: none; }
  .form-steps li.active:last-of-type, .form-steps li:first-child { display: block; }
  .owner-thumbnails { grid-template-columns: repeat(2, 1fr); }
  .owner-success { padding: 32px 20px; }
}
