.property-photos { margin: 12px 0; }
.property-photo { position: relative; min-width: 0; height: 180px; overflow: hidden; border: 1px solid #d9e2eb; border-radius: 8px; background: #f1f5f8; color: #61778b; display: flex; align-items: center; justify-content: center; }
.property-photo span { padding: 10px; text-align: center; font-size: 11px; line-height: 1.5; }
.property-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.property-photo img[hidden] { display: none; }
.property-photo.has-image span { visibility: hidden; }
.property-photo-retry { border: 1px solid #b7c6d3; border-radius: 5px; background: #fff; color: #173e61; padding: 7px 12px; cursor: pointer; }
.property-photo:focus-visible { outline: 2px solid #103e70; outline-offset: 2px; }
.property-photo .property-photo-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; display: flex; align-items: center; justify-content: center; width: 36px; height: 44px; padding: 0; border: 0; border-radius: 6px; background: #132b44b8; color: #fff; font: 28px/1 sans-serif; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
.property-photo .property-photo-nav--previous { left: 8px; }
.property-photo .property-photo-nav--next { right: 8px; }
.property-photo:hover .property-photo-nav, .property-photo:focus-within .property-photo-nav { opacity: 1; pointer-events: auto; }
.property-photo .property-photo-nav:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (hover: none) {
  .property-photo .property-photo-nav { opacity: 1; pointer-events: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .property-photo .property-photo-nav { transition: none; }
}
.development-analysis-page .dashboard-grid__item--map { gap: 16px; }
.development-analysis-page .dashboard-grid__item--map > .property-photos-card { height: auto; flex: 0 0 auto; }
.development-analysis-page .property-photos-card .card-body { padding: 12px; }
.property-photos-card .property-photos { margin: 0; }
.property-photos-card .property-photo { height: 320px; }
.development-analysis-page .dashboard-grid__item--map > .map-card { height: auto; min-height: 0; }
/* Original listing viewport: 340px. Extend it by 1.7 and stretch both columns. */
.development-analysis-page .properties-card .sidebar-table { height: 578px; max-height: none; min-height: 0; flex: 1 1 578px; }
@media (min-width: 992px) {
  /* Reserve the same space before and after selecting a property. */
  .development-analysis-page .dashboard-grid__item--listings > .properties-card { height: 819px; }
}
@media (min-width: 601px) {
  .development-analysis-page #property-area-map { height: 600px; }
}
@media (max-width: 600px) {
  .investment-map-page .imap-card { max-height: calc(100% - 48px); }
}
@media (max-width: 991px) {
  .development-analysis-page .properties-card .sidebar-table { flex: 0 0 578px; max-height: 578px; }
}
@media (max-width: 600px) {
  .property-photos-card .property-photo { height: 240px; }
}
