/* Property discovery and decision surfaces share components, not one composition. */
.cd-catalog-intro { padding: 1rem 0; border-bottom: 1px solid var(--cd-line); background: #fff; }
.cd-catalog-intro .breadcrumb { font-size: .8125rem; margin-bottom: .75rem; }
.cd-catalog-intro .breadcrumb a { color: var(--cd-muted); text-decoration: none; }
.cd-catalog-intro-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 2rem; }
.cd-catalog-intro h1 { max-width: 26ch; font-size: var(--cd-type-page-title); line-height: 1.25; margin: 0 0 .625rem; }
.cd-catalog-intro p { color: var(--cd-muted); max-width: 80ch; line-height: 1.7; margin-bottom: .5rem; }
.cd-catalog-mode { display: inline-flex; padding: .25rem; gap: .25rem; background: var(--cd-ground); border-radius: var(--cd-radius-sm); white-space: nowrap; }
.cd-catalog-mode a { color: var(--cd-ink); padding: .625rem 1rem; font-weight: 600; font-size: .875rem; text-decoration: none; border-radius: .25rem; }
.cd-catalog-mode [aria-current] { color: #fff; background: var(--cd-ink); }
.cd-catalog-intro-meta { display: flex; justify-content: space-between; align-items: center; gap: .5rem 1.5rem; flex-wrap: wrap; margin-top: .5rem; }
.cd-catalog-context { font-size: .8125rem; color: var(--cd-muted); }
.cd-catalog-promotion { margin-top: 1.5rem; max-width: 100%; }
.cd-catalog-workspace { padding: 1rem 0 3rem; background: var(--cd-ground); }
.cd-catalog-filters { background: #fff; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); padding: .75rem 1rem; margin-bottom: 1rem; }
.cd-catalog-filters > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; list-style: none; cursor: pointer; color: var(--cd-ink); font-weight: 600; }
.cd-catalog-filters > summary small { display: inline-block; color: var(--cd-muted); font-size: .8125rem; font-weight: 400; margin-left: .75rem; }
.cd-catalog-filter-toggle { display: inline-flex; align-items: center; gap: .5rem; color: var(--cd-ink); font-size: .8125rem; white-space: nowrap; }
.cd-catalog-filters:not([open]) .cd-filter-close-label,.cd-catalog-filters[open] .cd-filter-open-label { display: none; }
.cd-catalog-filters[open] .cd-catalog-filter-toggle .bi { transform: rotate(180deg); }
.cd-catalog-filters[open] > summary { padding-bottom: .75rem; }
.cd-catalog-filter-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; gap: 1rem; align-items: end; }
[data-catalog-mode="RENT"] .cd-catalog-filter-grid { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
.cd-catalog-filters label { display: block; color: var(--cd-muted); font-size: .8125rem; margin-bottom: .375rem; }
.cd-catalog-filters .form-select,.cd-catalog-filters .form-control { min-width: 0; }
.cd-catalog-secondary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 0 1rem; margin-top: .5rem; }
.cd-catalog-more-filters { font-size: .875rem; }
.cd-catalog-more-filters > summary { color: var(--cd-ink); cursor: pointer; padding-block: .375rem; }
.cd-catalog-range-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-top: .75rem; }
.cd-catalog-secondary > p { grid-column: 1/-1; margin: 0; color: var(--cd-danger); font-size: .8125rem; }
.cd-catalog-secondary > .btn { font-size: .8125rem; padding: .25rem 0; min-height: 36px; color: var(--cd-muted); }
.cd-catalog-secondary:has(details[open]) { grid-template-columns: 1fr; }
.cd-catalog-secondary:has(details[open]) > .btn { justify-self: end; }
.cd-catalog-results-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; }
.cd-catalog-results-heading h2 { font-size: var(--cd-type-section-title); margin: 0 0 .375rem; }
.cd-catalog-results-heading p { color: var(--cd-muted); font-size: .8125rem; margin: 0; }
.cd-catalog-results-actions { display: flex; gap: .625rem; align-items: center; }
.cd-catalog-results-actions .form-select { width: auto; max-width: 210px; font-size: var(--cd-type-field); }
.cd-catalog-results-actions .btn { font-size: .8125rem; }
.cd-catalog-grid { align-items: stretch; }
.cd-catalog-grid > div { margin-bottom: .5rem !important; }
.cd-catalog-grid[aria-busy="true"] { opacity: .65; }
.codat-public #public-content .cd-property-card { border: 1px solid var(--cd-line) !important; border-radius: var(--cd-radius) !important; overflow: hidden; box-shadow: none !important; background: #fff; transform: none !important; }
.codat-public #public-content .cd-property-card:hover { border-color: #a4b8c7 !important; }
.codat-public #public-content .cd-property-card .card-body { padding: 1.125rem !important; }
.codat-public #public-content .cd-property-card .card-img-top { aspect-ratio: 16/10; height: auto !important; object-fit: cover; }
.codat-public #public-content .cd-property-card .card-body h3 { margin: 0 0 .5rem; line-height: 1.45; font-size: 1rem; overflow-wrap: anywhere; }
.codat-public #public-content .cd-property-card .cd-property-location { white-space: normal; color: var(--cd-muted); font-size: .8125rem; line-height: 1.5; margin-bottom: .875rem; overflow-wrap: anywhere; }
.codat-public #public-content .cd-property-card .cd-property-price { color: var(--cd-ink); font-size: 1.375rem; line-height: 1.4; margin-bottom: 1rem; overflow-wrap: anywhere; }
.codat-public #public-content .cd-property-card .cd-property-specs { gap: .75rem; padding-top: 1rem; }
.codat-public #public-content .cd-property-card .cd-property-specs dt { font-size: .75rem; }
.codat-public #public-content .cd-property-card .cd-property-specs dd { font-size: .8125rem; line-height: 1.5; overflow-wrap: anywhere; }
.codat-public #public-content .cd-property-card .card-footer { margin-top: auto !important; padding: 0 1.125rem 1.125rem !important; }
.codat-public #public-content .cd-property-card .card-footer .btn { min-height: 42px; padding: .625rem .5rem !important; font-size: .8125rem !important; text-align: center; white-space: normal !important; }
.cd-side-panel { border: 1px solid var(--cd-line); border-radius: var(--cd-radius); margin-bottom: 1rem; }
.cd-side-panel > summary { display: flex; justify-content: space-between; align-items: center; gap: .75rem; list-style: none; padding: 1.125rem; cursor: pointer; }
.cd-side-panel > summary h2 { font: 600 1rem/1.5 var(--cd-font); margin: 0; text-wrap: wrap; }
.cd-side-panel > summary .bi { font-size: .75rem; flex-shrink: 0; }
.cd-side-panel[open] > summary .bi { transform: rotate(180deg); }
.cd-side-panel-body { padding: 0 1.125rem 1.125rem; }
.cd-side-panel-body > p { color: var(--cd-muted); font-size: .875rem; line-height: 1.7; }
.cd-side-panel-body ul { padding-left: 1rem; }
.cd-side-panel-body > label { font-size: .8125rem; color: var(--cd-muted); margin-bottom: .375rem; }
.cd-side-contact-actions { display: flex; gap: .5rem; margin-top: .75rem; }
.cd-side-contact-actions .btn { flex: 1; min-width: 0; padding-inline: .5rem; }
.codat-public .cd-catalog-aside > .sticky-top > .bg-white { padding: 0 !important; }
.cd-property-workspace { padding: 1.5rem 0 3rem; background: #fff; }
.cd-property-breadcrumb { margin-bottom: 1.5rem; font-size: .8125rem; }
.cd-property-breadcrumb .breadcrumb { flex-wrap: wrap; line-height: 1.6; }
.cd-property-heading { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 2.5rem; align-items: start; margin-bottom: 2rem; }
.cd-property-status { display: flex; gap: .625rem; align-items: center; flex-wrap: wrap; font-size: .75rem; color: var(--cd-muted); margin-bottom: .875rem; }
.cd-property-status > span:first-child { color: var(--cd-ink); background: var(--cd-ink-soft); padding: .375rem .625rem; border-radius: .25rem; font-weight: 600; }
.cd-transaction-status { color: var(--cd-success); }
.codat-public .cd-property-heading h1 { font-size: var(--cd-type-page-title) !important; line-height: 1.3 !important; margin: 0 0 .875rem; text-wrap: wrap; overflow-wrap: anywhere; }
.cd-property-heading-copy > p { color: var(--cd-muted); line-height: 1.7; margin-bottom: 1.25rem; }
.cd-property-section-nav { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.cd-property-section-nav a { color: var(--cd-ink); font-size: .8125rem; text-decoration: none; border-bottom: 1px solid var(--cd-line); padding-bottom: .375rem; }
.cd-property-section-nav a:hover { border-color: var(--cd-copper); }
.cd-property-price-panel { border-left: 1px solid var(--cd-line); padding-left: 1.5rem; min-width: 0; }
.cd-property-price-panel > span:first-child { color: var(--cd-muted); font-size: .8125rem; }
.cd-property-price-panel > p { font: 700 2rem/1.3 var(--cd-heading); color: var(--cd-ink); margin: .375rem 0; overflow-wrap: anywhere; }
.cd-property-price-panel small { font: 400 .875rem var(--cd-font); margin-left: .375rem; color: var(--cd-muted); }
.cd-property-price-note { color: var(--cd-muted); font-size: .875rem; line-height: 1.6; }
.cd-property-heading-actions { display: flex; gap: .5rem; margin-top: 1rem; }
.cd-property-heading-actions .btn:first-child { flex: 1; }
.cd-property-heading-actions [data-property-share] { width: 44px; padding: .5rem; }
.cd-gallery-section { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 76px; grid-template-areas: 'image thumbs' 'toolbar toolbar'; gap: .75rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--cd-line); margin-bottom: 2rem; }
.cd-gallery-section:not(:has(.cd-gallery-thumbnails button:nth-child(2))) { grid-template-columns: 1fr; }
.cd-gallery-section #property-gallery { grid-area: image; height: clamp(260px,34vw,480px) !important; min-height: 0; border: 0 !important; border-radius: var(--cd-radius); background: var(--cd-ground); overflow: hidden; }
.cd-gallery-section #property-gallery:not(:has(.carousel)) { height: 260px !important; }
.cd-gallery-section #property-gallery img { object-fit: cover; cursor: zoom-in; }
.cd-gallery-section .carousel-control-prev,.cd-gallery-section .carousel-control-next { width: 44px; height: 44px; top: 50%; transform: translateY(-50%); background: var(--cd-ink); border: 1px solid #fff; border-radius: var(--cd-radius-sm); opacity: .95; }
.cd-gallery-section .carousel-control-prev { left: .75rem; }
.cd-gallery-section .carousel-control-next { right: .75rem; }
.cd-gallery-section .carousel-control-prev-icon,.cd-gallery-section .carousel-control-next-icon { width: 20px; height: 20px; }
.cd-gallery-section .carousel-control-prev:hover,.cd-gallery-section .carousel-control-next:hover { opacity: 1; }
.cd-gallery-toolbar { grid-area: toolbar; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .8125rem; color: var(--cd-muted); }
.cd-gallery-thumbnails { grid-area: thumbs; display: flex; flex-direction: column; gap: .625rem; max-height: 480px; overflow-y: auto; padding: 3px; }
.cd-gallery-thumbnails button { flex-shrink: 0; width: 100%; padding: 2px; border: 1px solid transparent; background: #fff; border-radius: var(--cd-radius-sm); }
.cd-gallery-thumbnails button[aria-current="true"] { border-color: var(--cd-copper); }
.cd-gallery-thumbnails img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .25rem; }
.cd-gallery-section:not(:has(.cd-gallery-thumbnails button:nth-child(2))) .cd-gallery-thumbnails { display: none; }
.cd-property-information { background: #fff; }
.cd-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.cd-section-heading h2,.cd-property-loan-heading { font-size: var(--cd-type-section-title); margin: 0; }
.cd-section-heading a { color: var(--cd-muted); font-size: .8125rem; }
.cd-facts-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 1.5rem; margin-bottom: 2.5rem; }
.cd-facts-grid > div { padding: 1rem 0; border-bottom: 1px solid var(--cd-line); min-width: 0; }
.cd-facts-grid dt { font-size: .8125rem; color: var(--cd-muted); font-weight: 400; margin-bottom: .375rem; }
.cd-facts-grid dd { margin: 0; color: var(--cd-ink); font-weight: 600; font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
.cd-facts-grid dd small { font-size: .8125rem; font-weight: 400; }
.cd-property-loan-heading { margin-bottom: 1rem; }
.cd-property-information .loan-calc-box { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); border: 1px solid var(--cd-line) !important; border-radius: var(--cd-radius) !important; }
.cd-property-information .loan-input-section { border: 0 !important; padding: 1.25rem !important; }
.cd-property-information .loan-input-section label { font-size: .8125rem !important; text-transform: none !important; }
.cd-property-information .loan-result-section { padding: 1.25rem !important; }
.cd-property-information .loan-result-section .fw-bold { white-space: normal !important; overflow-wrap: anywhere; }
.codat-public .cd-property-aside > .sticky-top > .bg-white { padding: 1.25rem !important; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); box-shadow: none !important; }
.cd-property-agent { text-align: left; }
.cd-property-agent > div:first-child { float: left; margin-right: .875rem; }
.cd-property-agent > div:first-child img { width: 48px !important; height: 48px !important; border-width: 1px !important; }
.cd-property-agent h5 { text-align: left !important; font-size: 1rem; margin-top: .25rem; }
.cd-property-agent > p { font-size: .8125rem !important; }
.cd-property-agent > .d-flex { clear: both; }
.cd-property-booking h6 { font-size: 1rem !important; text-align: left !important; margin-bottom: 1rem !important; }
.cd-property-booking .cd-booking-dates { margin-bottom: 1rem !important; }
.cd-related-navigation { display: flex; justify-content: flex-end; gap: .5rem; margin-top: -1rem; margin-bottom: .5rem; }
.codat-public .cd-related-navigation .btn { width: 40px; min-height: 40px; padding: .5rem; }
.cd-property-page .property-scroll-item { min-width: 0; }
@media (min-width: 992px) { .codat-public #public-content .cd-catalog-grid .cd-property-card .card-img-top { height: clamp(160px,14vw,180px) !important; } }
@media (min-width: 1440px) { .cd-catalog-grid > .col-lg-6,.cd-catalog-grid > .col-md-6 { width: 33.333333%; } }
@media (max-width: 1199px) {
  .cd-property-heading { grid-template-columns: minmax(0,1fr) 280px; gap: 1.5rem; }
  .cd-property-information .loan-calc-box { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 991px) {
  .cd-catalog-intro-copy { grid-template-columns: 1fr; gap: 1rem; }
  .cd-catalog-mode { justify-self: start; }
  .cd-catalog-filters { margin-bottom: 1.5rem; }
  .cd-catalog-filter-grid,[data-catalog-mode="RENT"] .cd-catalog-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cd-catalog-filter-grid > .btn { grid-column: 1/-1; }
  .cd-catalog-range-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cd-property-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .cd-property-price-panel { border-left: 0; border-top: 1px solid var(--cd-line); padding: 1rem 0 0; }
  .cd-property-price-panel > p { display: inline; margin-right: 1rem; }
  .cd-property-price-note { display: inline; }
  .cd-property-heading-actions { max-width: 380px; }
  .cd-gallery-section { grid-template-columns: 1fr; grid-template-areas: 'image' 'toolbar' 'thumbs'; }
  .cd-gallery-thumbnails { flex-direction: row; overflow-x: auto; overflow-y: hidden; max-height: none; }
  .cd-gallery-thumbnails button { width: 64px; }
  .cd-property-aside { display: block; }
}
@media (max-width: 575px) {
  .cd-catalog-intro { padding: 1.25rem 0; }
  .cd-catalog-intro .breadcrumb { margin-bottom: 1rem; }
  .cd-catalog-intro h1 { font-size: var(--cd-type-page-title); }
  .cd-catalog-workspace { padding-top: 1rem; }
  .cd-catalog-filters { padding: 1rem; }
  .cd-catalog-filters > summary { align-items: center; gap: .5rem; }
  .cd-catalog-filters > summary small { display: block; margin: .25rem 0 0; }
  .cd-catalog-results-actions { width: 100%; }
  .cd-catalog-results-actions .form-select { flex: 1; max-width: none; min-width: 0; }
  .cd-catalog-results-actions .btn { max-width: 46%; padding-inline: .625rem; }
  .cd-catalog-grid > div { width: 100%; }
  .cd-catalog-results-heading h2 { font-size: var(--cd-type-section-title); }
  .cd-property-workspace { padding-top: 1rem; }
  .cd-property-heading { margin-bottom: 1.5rem; }
  .cd-property-heading h1 { font-size: var(--cd-type-page-title) !important; }
  .cd-property-section-nav { gap: .75rem 1rem; }
  .cd-property-price-panel > p { font-size: 1.875rem; }
  .cd-gallery-section #property-gallery { height: 260px !important; }
  .cd-property-page .property-scroll-item { flex: 0 0 84% !important; }
  .cd-facts-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 1rem; }
  .cd-section-heading { align-items: start; }
  .cd-section-heading h2,.cd-property-loan-heading { font-size: var(--cd-type-section-title); }
  .cd-section-heading a { max-width: 40%; }
}

/* Entity inventory: compact rows preserve all facts without oversized placeholder covers. */
.cd-entity-inventory { margin-top: 1.5rem; }
.cd-entity-inventory-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.cd-entity-inventory-heading h2 { margin: 0 0 .375rem; color: var(--cd-ink); }
#entity-listing-status { margin: 0; color: var(--cd-muted); font-size: .8125rem; }
.cd-entity-type-switch { display: flex; gap: .25rem; padding: .25rem; border: 1px solid var(--cd-line); border-radius: var(--cd-radius-sm); }
.codat-public .cd-entity-type-switch .btn { min-width: 92px; padding: .5rem .75rem; border: 0; margin: 0; font-size: .8125rem; color: var(--cd-muted); background: transparent; }
.codat-public .cd-entity-type-switch .btn.active { background: var(--cd-ink); color: #fff; }
.cd-entity-listings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.cd-entity-listing { min-width: 0; }
.codat-public #public-content .cd-property-card.cd-entity-card { display: grid !important; grid-template-columns: 112px minmax(0,1fr); align-content: start; }
.cd-entity-card .cd-property-visual { min-width: 0; align-self: start; }
.codat-public #public-content .cd-property-card.cd-entity-card .card-img-top { height: 120px !important; aspect-ratio: auto; border-radius: 0; }
.codat-public #public-content .cd-property-card.cd-entity-card img:is([src$="/logo.png"],[src$="/brand-mark-v1.webp"]) { padding: 1.5rem; }
.cd-entity-card .cd-listing-type { position: static; display: block; padding: .375rem .5rem; text-align: center; background: var(--cd-ink-soft); font-size: .625rem; }
.codat-public #public-content .cd-property-card.cd-entity-card .card-body { padding: .875rem !important; min-width: 0; }
.cd-entity-card .cd-property-title { margin-bottom: .375rem; }
.codat-public #public-content .cd-property-card.cd-entity-card > .cd-property-specs { grid-column: 1/-1; margin: 0 .875rem; padding-block: .75rem; gap: .5rem .75rem; }
.codat-public #public-content .cd-property-card.cd-entity-card .card-footer { grid-column: 1/-1; padding: 0 .875rem .875rem !important; }
.cd-entity-state,.cd-entity-more-row { grid-column: 1/-1; text-align: center; padding: 1.5rem 1rem; color: var(--cd-muted); }
.cd-entity-state .spinner-border { vertical-align: middle; margin-right: .5rem; }
.cd-entity-more-row { padding: .25rem 0 0; }
@media (max-width: 575px) {
  .cd-entity-listings { grid-template-columns: minmax(0,1fr); }
  .cd-entity-inventory-heading { align-items: stretch; }
  .cd-entity-type-switch { width: 100%; }
  .codat-public .cd-entity-type-switch .btn { flex: 1; }
}

.codat-public #public-content .cd-property-card.cd-entity-card .cd-property-specs dt { line-height: 1.4; }
.codat-public #public-content .cd-property-card.cd-entity-card .cd-property-specs dd { line-height: 1.4; }
.codat-public #public-content .cd-property-card.cd-entity-card .cd-property-price { font-size: 1.25rem; margin: 0; }
.codat-public #public-content .cd-property-card.cd-entity-card .cd-property-location { margin-bottom: .5rem; }
