/* Public listing layout, shared by live listings and private previews. */
body.public-design.pd-market-listing #main-content .listing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  grid-template-areas: "media sidebar" "overview sidebar" "details sidebar";
  gap: 24px 32px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 32px 24px;
  align-items: start;
}
.listing-media { grid-area: media; min-width: 0; }
.listing-overview { grid-area: overview; min-width: 0; }
.listing-details { grid-area: details; min-width: 0; }
.listing-sidebar { grid-area: sidebar; min-width: 0; }
body.public-design.pd-market-listing #main-content #photo-lightbox { z-index: 150; }
.listing-support-section > div { max-width: 1080px; padding-inline: 24px; }
.listing-gallery { position: relative; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-muted, #f1f5f9); }
.listing-gallery .listing-hero-photo { display: block; width: 100%; padding: 0; border: 0; background: transparent; aspect-ratio: 16 / 10; }
.listing-gallery .listing-hero-photo img { width: 100%; height: 100%; object-fit: contain; }
.listing-gallery #view-all-photos { display: inline-flex; align-items: center; gap: 8px; position: absolute; right: 12px; bottom: 12px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text); font-weight: 600; }
body.public-design.pd-market-listing #main-content .listing-address { margin: 12px 0 20px; }
body.public-design.pd-market-listing #main-content .listing-address a { display: inline; padding: 3px 6px; background: var(--surface-card-sky, #cceeff); color: var(--text); font-size: 22px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; box-decoration-break: clone; -webkit-box-decoration-break: clone; text-decoration: none; }
.listing-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 20px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
body.public-design.pd-market-listing #main-content .listing-summary-label { font-size: 12px; line-height: 18px; color: var(--text-secondary); font-weight: 600; margin-bottom: 4px; }
body.public-design.pd-market-listing #main-content .listing-summary-value { font-size: 20px; line-height: 28px; font-weight: 600; overflow-wrap: anywhere; }
.listing-summary-value i { color: var(--text-secondary); margin-right: 4px; }
.listing-details #listing-description { max-width: none; white-space: pre-line; }
.listing-details .listing-body-row { display: block; }
.listing-details .listing-glance { width: auto; margin-top: 20px; }
.listing-details .listing-glance > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; padding: 16px 0; border: 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; }
.listing-details .listing-glance > div > p { grid-column: 1 / -1; margin-bottom: 0; }
.listing-details .listing-glance-row + .listing-glance-row { margin-top: 0; }
.listing-details .listing-fact-block { margin-top: 24px; }
.listing-details .listing-fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.listing-fact-grid > div { min-width: 0; }
.listing-fact-grid i { flex-shrink: 0; }
body.public-design.pd-market-listing #main-content .listing-price-card { padding: 24px; border: 2px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: none; }
.listing-price-card .listing-rent-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
body.public-design.pd-market-listing #main-content .listing-rent-row .listing-rent { font-size: 28px; line-height: 36px; }
.listing-price-card .listing-lease-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: baseline; }
.listing-lease-row > :last-child { text-align: right; overflow-wrap: anywhere; }
body.public-design.pd-market-listing #main-content .listing-sidebar :is(.pd-action, .pd-secondary),
body.public-design.pd-market-listing #main-content .listing-mobile-cta :is(.pd-action, .pd-secondary) { min-height: 44px; padding: 8px 12px; border-radius: 999px; }
body.public-design.pd-market-listing #main-content :is(.listing-sidebar, .listing-mobile-cta) .pd-action { background: var(--btn-primary-bg) !important; color: var(--btn-primary-fg) !important; transition: background-color 400ms ease, color 400ms ease; }
body.public-design.pd-market-listing #main-content :is(.listing-sidebar, .listing-mobile-cta) .pd-action:is(:hover, :focus-visible) { background: var(--btn-primary-hover) !important; color: var(--btn-primary-hover-fg) !important; }
body.public-design.pd-market-listing #main-content .listing-sidebar .pd-secondary { border-color: var(--brand-purple); }
.listing-sidebar .listing-contact-info { text-align: left; }
body.public-design.pd-market-listing #main-content .listing-sidebar .listing-contact-info > p:first-of-type { font-size: 14px; letter-spacing: normal; text-transform: none; color: var(--text); }
.listing-sidebar .listing-contact-info a { overflow-wrap: anywhere; }
.listing-sidebar .listing-contact-info img { margin-left: 0; }
body.public-design.pd-market-listing #main-content .listing-tour-action { width: auto; display: block; margin: 12px auto 0; padding: 8px 12px; border: 0; background: transparent; color: var(--link-ink); }
body.public-design.pd-market-listing #main-content .listing-mobile-cta { box-shadow: none; }
.listing-mobile-cta > div { min-width: 0; }
@media (min-width: 900px) and (min-height: 760px) { .listing-sidebar { position: sticky; top: 104px; } }
@media (max-width: 899px) {
  body.public-design.pd-market-listing #main-content .listing-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "overview" "sidebar" "details"; max-width: 680px; padding: 24px 16px; gap: 24px; }
  .listing-summary { gap: 12px; }
  .listing-support-section > div { max-width: 680px; padding-inline: 16px; }
}
@media (max-width: 767px) { body.public-design.pd-market-listing { padding-bottom: calc(84px + env(safe-area-inset-bottom)); } }
@media (max-width: 480px) {
  .listing-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-design.pd-market-listing #main-content .listing-address a { font-size: 19px; }
  .listing-details .listing-fact-grid { grid-template-columns: minmax(0, 1fr); }
  body.public-design.pd-market-listing #main-content .listing-price-card { padding: 16px; }
  .listing-mobile-cta { gap: 8px; }
  body.public-design.pd-market-listing #main-content .listing-mobile-cta .pd-listing-fact { font-size: 20px; }
}
