:root {
  --detail-blue: var(--rs-accent-fill,#0c29ab);
  --detail-navy: var(--rs-text,#001368);
  --detail-ink: var(--rs-text,#172641);
  --detail-muted: var(--rs-text-secondary,#52637d);
  --detail-line: var(--rs-border,#dce4f0);
  --detail-surface: var(--rs-canvas,#f7f9fd);
}

.property-detail .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.property-detail {
  width: min(100%, 1224px);
  max-width: none;
  min-height: 70vh;
  margin: 0 auto;
  padding: clamp(34px, 5vw, 62px) 24px 108px;
}

.property-detail .public-breadcrumbs { margin: 0 0 24px; }
.property-detail .public-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin: 0; padding: 0; list-style: none; }
.property-detail .public-breadcrumbs li { display: inline-flex; gap: 7px; align-items: center; color: var(--rs-text-secondary,#52637d); font-size: 11px; font-weight: 650; }
.property-detail .public-breadcrumbs a { color: var(--rs-link,var(--detail-blue)); text-decoration: none; }
.property-detail .public-breadcrumbs a:hover,
.property-detail .public-breadcrumbs a:focus-visible { text-decoration: underline; }

.property-back {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin: 0 0 22px;
  padding: 0 5px;
  border-radius: 7px;
  color: var(--rs-link,var(--detail-blue));
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.property-back:hover { text-decoration: underline; }

.detail-owner-lifecycle {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 12px;
  margin: -8px 0 24px;
  border: 1px solid var(--rs-border-strong,#cfdaf0);
  border-radius: 10px;
  padding: 10px 13px;
  background: var(--rs-surface-subtle,#f2f5ff);
  color: var(--rs-text,#40516e);
}
.detail-owner-lifecycle span { flex: 0 0 auto; border-radius: 999px; padding: 6px 10px; background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.detail-owner-lifecycle small { font-size: 12px; font-weight: 650; line-height: 1.45; }

.property-back:focus-visible,
.detail-gallery:focus-visible,
.property-detail button:focus-visible,
.property-detail a:focus-visible,
.detail-gallery-dialog button:focus-visible {
  outline: 3px solid var(--rs-border,rgba(12, 41, 171, .28));
  outline-offset: 3px;
}

.property-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
  gap: clamp(30px, 4vw, 52px);
  align-items: start;
}

.detail-main { min-width: 0; }

.detail-hero {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 32px;
  margin-bottom: 27px;
}

.detail-eyebrow { margin: 0 0 10px; }

.detail-title {
  max-width: 780px;
  margin: 0;
  color: var(--rs-text,var(--detail-navy));
  font: 800 clamp(32px, 4vw, 51px)/1.08 Manrope, sans-serif;
  letter-spacing: clamp(-2.4px, -.045em, -1.2px);
  overflow-wrap: anywhere;
}

.detail-location {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 13px 0 0;
  color: var(--rs-text-secondary,var(--detail-muted));
  font-size: 14px;
  line-height: 1.55;
}

.detail-location > span[aria-hidden] {
  color: var(--rs-link,var(--detail-blue));
  font-size: 18px;
  line-height: 1.15;
}

.detail-public-address { font-style: normal; }
.detail-public-address strong,
.detail-public-address small { display: block; }
.detail-public-address strong { color: var(--rs-text,#293b57); font-weight: 800; }
.detail-public-address small { margin-top: 1px; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 12px; }
.detail-hero .founding-property-badge { display: inline-flex; margin-top: 13px; }

.detail-hero-price {
  display: grid;
  flex: 0 0 auto;
  justify-items: end;
  padding-bottom: 2px;
  text-align: right;
}

.detail-hero-price b {
  color: var(--rs-text,var(--detail-navy));
  font: 800 29px/1 Manrope, sans-serif;
  letter-spacing: -1.2px;
}

.detail-hero-price span,
.detail-hero-price small {
  color: var(--rs-text-secondary,var(--detail-muted));
  font-size: 11px;
}

.detail-hero-price small { margin-top: 7px; font-weight: 700; }

.detail-gallery-shell { margin-bottom: 34px; }

.detail-gallery,
.detail-gallery-empty {
  position: relative;
  height: auto;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border: 1px solid var(--rs-border,var(--detail-line));
  border-radius: 18px;
  background: var(--rs-surface-subtle,#e8edf5);
}

.detail-gallery {
  cursor: default;
  touch-action: pan-y;
}

.detail-gallery-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .28s cubic-bezier(.2, .75, .25, 1);
  will-change: transform;
}

.detail-gallery-slide {
  position: relative;
  display: grid;
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  place-items: center;
  margin: 0;
  background: var(--rs-surface-subtle,#eef2f8);
}

.detail-gallery-slide picture { width: 100%; height: 100%; }

.detail-gallery-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.detail-gallery::after {
  position: absolute;
  inset: auto 0 0;
  height: 25%;
  background: linear-gradient(transparent, var(--rs-scrim,rgba(0, 19, 80, .22)));
  content: '';
  pointer-events: none;
}

.detail-gallery-top {
  position: absolute;
  z-index: 3;
  top: 14px;
  right: 14px;
  left: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}

.detail-gallery-top .listing-tag,
.detail-gallery-top .gallery-count {
  position: static;
  border-radius: 999px;
  padding: 8px 10px;
  background: var(--rs-surface,rgba(255, 255, 255, .95));
  box-shadow: 0 3px 12px var(--rs-shadow,rgba(8, 28, 68, .13));
}

.detail-gallery-top .listing-tag {
  color: var(--rs-link,var(--detail-blue));
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .6px;
}

.detail-gallery-top .gallery-count {
  margin-right: 47px;
  color: var(--rs-text,#334967);
  font-size: 10px;
  font-weight: 800;
}

.gallery-arrow,
.detail-gallery-fullscreen {
  position: absolute;
  z-index: 5;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--rs-border,rgba(255, 255, 255, .8));
  border-radius: 50%;
  background: var(--rs-surface,rgba(255, 255, 255, .95));
  box-shadow: 0 4px 14px var(--rs-shadow,rgba(8, 27, 65, .16));
  color: var(--rs-text,var(--detail-navy));
  opacity: 1;
  cursor: pointer;
}

.gallery-arrow {
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
}

.gallery-arrow:hover { transform: translateY(-50%) scale(1.04); }
.gallery-arrow.is-previous { left: 14px; }
.gallery-arrow.is-next { right: 14px; }

.detail-gallery-fullscreen {
  top: 13px;
  right: 13px;
  width: 46px;
  height: 46px;
  border-radius: 10px;
  font-size: 18px;
}

.detail-gallery-thumbnails {
  display: flex;
  gap: 9px;
  max-width: 100%;
  margin-top: 11px;
  padding: 2px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.detail-gallery-thumbnails button {
  width: 82px;
  height: 60px;
  flex: 0 0 82px;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 9px;
  padding: 0;
  background: var(--rs-surface-subtle,#e8edf5);
  opacity: .7;
  cursor: pointer;
}

.detail-gallery-thumbnails button.is-active {
  border-color: var(--rs-accent-fill,var(--detail-blue));
  opacity: 1;
}

.detail-gallery-thumbnails img { display: block; width: 100%; height: 100%; object-fit: cover; }

.detail-gallery-empty {
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 9px;
  background: linear-gradient(145deg, var(--rs-accent-soft,#dfe8fa), var(--rs-success-soft,#eff2e7));
  color: var(--rs-text,#40536e);
  text-align: center;
}

.detail-gallery-empty span { color: var(--rs-link,var(--detail-blue)); font-size: 42px; }
.detail-gallery-empty b { font-size: 13px; }

.detail-image-error {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 4px;
  background: linear-gradient(145deg, var(--rs-accent-soft,#e2e9f6), var(--rs-success-soft,#f2f4ed));
  color: var(--rs-text-secondary,#53647c);
  text-align: center;
}

.detail-image-error b,
.detail-image-error small { display: block; }
.detail-image-error small { font-size: 11px; }

.detail-section {
  padding: 34px 0;
  border-top: 1px solid var(--rs-border,var(--detail-line));
}

.detail-section-heading .eyebrow { margin-bottom: 8px; }

.detail-section-heading h2 {
  margin: 0;
  color: var(--rs-text,var(--detail-navy));
  font: 800 clamp(22px, 2.7vw, 29px)/1.2 Manrope, sans-serif;
  letter-spacing: -1px;
}

.detail-city-discovery { margin-top: 18px; padding: 24px; border: 1px solid var(--rs-border,#dce5f1); border-radius: 14px; background: linear-gradient(135deg, var(--rs-surface,#f8fbff), var(--rs-surface-subtle,#fffaf4)); }
.detail-city-discovery .detail-section-heading h2 { font-size: clamp(20px, 2.4vw, 25px); }
.detail-city-discovery > p { max-width: 66ch; margin: 12px 0 16px; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 13px; line-height: 1.65; }
.detail-city-discovery-link { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 15px; border-radius: 8px; background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); font-size: 12px; font-weight: 800; text-decoration: none; }
.detail-city-discovery-link:hover { background: var(--rs-accent-hover,#2d478f); }
.detail-city-discovery-link:focus-visible { outline: 3px solid var(--rs-focus,#f0a06f); outline-offset: 3px; }

@media (max-width: 520px) {
  .detail-city-discovery { padding: 18px 15px; }
  .detail-city-discovery-link { width: 100%; justify-content: center; box-sizing: border-box; }
}

.detail-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  border: 0;
}

.detail-metrics div {
  min-width: 0;
  border: 1px solid var(--rs-border,#e0e7f1);
  border-radius: 12px;
  padding: 15px;
  background: var(--rs-surface,#fbfcff);
}

.detail-metrics dt {
  color: var(--rs-text-secondary,var(--detail-muted));
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
}

.detail-metrics dd {
  margin: 5px 0 0;
  color: var(--rs-text,var(--detail-navy));
  font: 800 18px/1.25 Manrope, sans-serif;
  overflow-wrap: anywhere;
}

.detail-description {
  max-width: 75ch;
  margin: 18px 0 0;
  color: var(--rs-text,#475974);
  font-size: 15px;
  line-height: 1.8;
  white-space: pre-line;
}

.detail-amenity-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 22px;
}

.detail-amenity-groups section {
  border: 1px solid var(--rs-border,#e0e7f1);
  border-radius: 12px;
  padding: 18px;
  background: var(--rs-surface,#fbfcff);
}

.detail-amenity-groups h3 {
  margin: 0 0 12px;
  color: var(--rs-text,#3e506c);
  font-size: 12px;
}

.detail-amenity-groups ul,
.detail-shared-property ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail-amenity-groups li {
  display: flex;
  gap: 8px;
  color: var(--rs-text-secondary,#53637b);
  font-size: 12px;
  line-height: 1.4;
}

.detail-amenity-groups li span { color: var(--rs-success,#16815f); font-weight: 900; }

.detail-terms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 21px 0 0;
  overflow: hidden;
  border: 1px solid var(--rs-border,#e0e7f1);
  border-radius: 12px;
}

.detail-terms div {
  min-width: 0;
  padding: 17px;
  border-right: 1px solid var(--rs-border,#e7ecf3);
  border-bottom: 1px solid var(--rs-border,#e7ecf3);
}

.detail-terms div:nth-child(2n) { border-right: 0; }
.detail-terms div:nth-last-child(-n+2) { border-bottom: 0; }
.detail-terms dt { color: var(--rs-text-secondary,var(--detail-muted)); font-size: 10px; font-weight: 750; }
.detail-terms dd { margin: 5px 0 0; color: var(--rs-text,#30435f); font-size: 13px; font-weight: 750; line-height: 1.45; overflow-wrap: anywhere; }

.detail-shared-property ul {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin-top: 20px;
}

.detail-shared-property li {
  border-radius: 9px;
  padding: 11px 12px;
  background: var(--rs-surface,var(--detail-surface));
  color: var(--rs-text,#425572);
  font-size: 12px;
  font-weight: 750;
}

.detail-shared-property > p {
  margin: 14px 0 0;
  color: var(--rs-text-secondary,var(--detail-muted));
  font-size: 11px;
  line-height: 1.6;
}

.detail-shared-amenities {
  margin-top: 14px;
  border-radius: 10px;
  padding: 13px;
  background: var(--rs-surface,#fbfcff);
}

.detail-shared-amenities h3 { margin: 0; color: var(--rs-text,#3e506c); font-size: 11px; }
.detail-shared-amenities p { margin: 6px 0 0; color: var(--rs-text-secondary,#5e6e85); font-size: 11px; line-height: 1.6; }

.detail-map-copy {
  display: grid;
  gap: 13px;
  margin-top: 20px;
  border: 1px solid var(--rs-border-strong,#dbe5f4);
  border-radius: 14px;
  padding: 19px;
  background: linear-gradient(135deg, var(--rs-surface-subtle,#f0f5ff), var(--rs-success-soft,#f7f9f3));
}

.detail-map-copy > div { display: flex; align-items: center; gap: 11px; }
.detail-map-copy > div > span { color: var(--rs-link,var(--detail-blue)); font-size: 25px; }
.detail-map-copy p { margin: 0; color: var(--rs-text-secondary,#5e6f88); font-size: 12px; line-height: 1.55; }
.detail-map-copy b,
.detail-map-copy small { display: block; }
.detail-map-copy b { color: var(--rs-text,#2b3f5e); font-size: 13px; }
.detail-map-copy small { margin-top: 2px; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 11px; }
.detail-map-copy > button { justify-self: start; min-height: 44px; border: 1px solid var(--rs-accent-fill,var(--detail-blue)); border-radius: 8px; padding: 0 14px; background: var(--rs-surface,#fff); color: var(--rs-link,var(--detail-blue)); font-size: 12px; font-weight: 800; cursor: pointer; }
.detail-map-copy > button:hover { background: var(--rs-accent-soft,#edf2ff); }
.detail-map { width: 100%; height: 340px; margin-top: 13px; overflow: hidden; border: 1px solid var(--rs-border,var(--detail-line)); border-radius: 14px; background: var(--rs-surface-subtle,#e9eff8); }
.detail-map[hidden] { display: none; }
.detail-map-status { min-height: 18px; margin: 8px 0 0; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 11px; }

.listing-inspections { margin: 0; }
.listing-inspections [data-inspection-list] { display: grid; gap: 10px; margin-top: 20px; }
.listing-inspection { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--rs-border,#dfe6f0); border-radius: 12px; padding: 16px; background: var(--rs-surface,#fff); }
.listing-inspection h3 { margin: 0; color: var(--rs-text,var(--detail-navy)); font: 800 14px/1.35 Manrope, sans-serif; }
.listing-inspection p { margin: 3px 0 0; color: var(--rs-text,#445875); font-size: 12px; font-weight: 700; }
.listing-inspection small { display: block; margin-top: 5px; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 10px; line-height: 1.45; }
.listing-inspection button,
.listing-inspection a { display: inline-flex; min-width: 126px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--rs-accent-fill,var(--detail-blue)); border-radius: 8px; padding: 0 12px; background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.listing-inspection button:disabled { cursor: not-allowed; opacity: .55; }
.listing-inspection button.is-booked { border-color: var(--rs-success-border,#16815f); background: var(--rs-success-fill,#16815f); }
.inspection-response-state { border-radius: 999px; padding: 8px 10px; background: var(--rs-success-soft,#eaf8f2); color: var(--rs-text,#116b4e); font-size: 11px; font-weight: 800; }
.listing-inspection-empty { margin: 0; border-radius: 10px; padding: 15px; background: var(--rs-surface,var(--detail-surface)); color: var(--rs-text-secondary,var(--detail-muted)); font-size: 12px; line-height: 1.6; }
.detail-inline-loading { display: flex; align-items: center; gap: 9px; min-height: 50px; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 12px; }
.detail-inline-loading span { width: 18px; height: 18px; border: 2px solid var(--rs-border,#d4dded); border-right-color: var(--rs-accent-fill,var(--detail-blue)); border-radius: 50%; animation: detailSpin .8s linear infinite; }

.detail-action-panel {
  position: sticky;
  top: 96px;
  padding: 26px;
  border: 1px solid var(--rs-border,var(--detail-line));
  border-radius: 16px;
  background: var(--rs-surface,#fff);
  box-shadow: 0 14px 38px var(--rs-shadow,rgba(18, 41, 87, .09));
}

.detail-action-panel .detail-price { margin: 0; color: var(--rs-text,var(--detail-navy)); font: 800 31px/1.2 Manrope, sans-serif; letter-spacing: -1px; }
.detail-price small { color: var(--rs-text-secondary,#52637d); font: 500 12px Inter, sans-serif; letter-spacing: 0; }
.detail-action-panel > p:not(.detail-price) { color: var(--rs-text-secondary,#52637d); font-size: 12px; line-height: 1.6; }
.detail-actions { display: grid; gap: 9px; margin-top: 19px; }
.detail-actions button,
.detail-owner-actions a { display: flex; min-height: 46px; height: auto; align-items: center; justify-content: space-between; gap: 8px; border-radius: 8px; padding: 10px 13px; font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; }
.detail-contact { border: 1px solid var(--rs-accent-fill,var(--detail-blue)); background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); }
.detail-contact:hover { border-color: var(--rs-brand-surface,var(--detail-navy)); background: var(--rs-brand-surface,var(--detail-navy)); }
.detail-ssr-action { display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 8px; margin-top: 19px; border-radius: 8px; padding: 10px 13px; font-size: 12px; font-weight: 800; text-decoration: none; }
.detail-apply { min-height: 46px; border: 1px solid var(--rs-accent-fill,var(--detail-blue)); background: var(--rs-surface-subtle,#eef2ff); color: var(--rs-link,var(--detail-blue)); }
.detail-apply:hover:not(:disabled) { background: var(--rs-accent-soft,#dfe6ff); }
.detail-apply.is-continue { border-color: var(--rs-success-border,#16815f); background: var(--rs-success-soft,#eaf8f2); color: var(--rs-text,#116b4e); }
.detail-secondary-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.detail-save,
.detail-share { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--rs-border,#d5dfed); border-radius: 8px; padding: 9px 11px; background: var(--rs-surface,#fff); color: var(--rs-link,var(--detail-blue)); font-size: 11px; font-weight: 800; }
.detail-save.is-saved { border-color: var(--rs-error-border,#ffc5ba); background: var(--rs-surface-subtle,#fff6f3); color: var(--rs-error,#a83b2a); }
.detail-actions button:disabled,
.detail-mobile-actions button:disabled { cursor: wait; opacity: .62; }
.detail-action-note { margin: 13px 0 0; border-radius: 8px; padding: 10px; background: var(--rs-warning-soft,#fff8e9); color: var(--rs-warning,#795d22) !important; }
.detail-demo-note { margin-top: 17px !important; padding: 11px; border-radius: 8px; background: var(--rs-warning-soft,#fff6e9); color: var(--rs-warning,#85621f) !important; }
.detail-privacy-note { display: flex; gap: 7px; margin: 19px 0 0 !important; padding-top: 16px; border-top: 1px solid var(--rs-border,#e8edf4); color: var(--rs-text-secondary,#52637d) !important; font-size: 10px !important; }
.detail-privacy-note span { color: var(--rs-link,var(--detail-blue)); font-size: 15px; }

.detail-owner-actions { display: grid; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rs-border,#e5eaf2); }
.detail-owner-actions .eyebrow { margin-bottom: 1px; }
.detail-owner-actions a { border: 1px solid var(--rs-border,#ccd8ea); color: var(--rs-link,var(--detail-blue)); }
.detail-owner-actions a.detail-owner-primary { border-color: var(--rs-accent-fill,var(--detail-blue)); background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); }
.detail-owner-note { margin-top: 17px; border-radius: 8px; padding: 11px; background: var(--rs-accent-soft,#edf2ff); color: var(--rs-link,var(--detail-blue)) !important; font-weight: 700; }
.detail-mobile-actions { display: none; }

.detail-gallery-dialog {
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  margin: 0;
  border: 0;
  padding: 0;
  background: var(--rs-brand-surface,#071127);
  color: var(--rs-on-accent,#fff);
}

.detail-gallery-dialog::backdrop { background: var(--rs-scrim,#071127); }
.detail-fullscreen-header { display: flex; height: 70px; align-items: center; justify-content: space-between; gap: 15px; padding: 0 24px; border-bottom: 1px solid var(--rs-sheen,rgba(255, 255, 255, .15)); }
.detail-fullscreen-header h2 { margin: 0; font: 800 18px Manrope, sans-serif; }
.detail-fullscreen-header p { margin-left: auto; color: var(--rs-text-secondary,#c6d0e4); font-size: 12px; }
.detail-fullscreen-header button { width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--rs-sheen,rgba(255, 255, 255, .12)); color: var(--rs-on-accent,#fff); font-size: 26px; }
.detail-fullscreen-media { display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; height: calc(100vh - 70px); align-items: center; gap: 16px; padding: 18px; }
.detail-fullscreen-media [data-fullscreen-move='previous'] { grid-column: 1; }
.detail-fullscreen-media figure { grid-column: 2; }
.detail-fullscreen-media [data-fullscreen-move='next'] { grid-column: 3; }
.detail-fullscreen-media > button { width: 52px; height: 52px; justify-self: center; border: 1px solid var(--rs-sheen,rgba(255, 255, 255, .35)); border-radius: 50%; background: var(--rs-sheen,rgba(255, 255, 255, .1)); color: var(--rs-on-accent,#fff); font-size: 20px; }
.detail-fullscreen-media figure { position: relative; display: grid; height: 100%; min-height: 0; place-items: center; margin: 0; }
.detail-fullscreen-media img { display: block; max-width: 100%; max-height: calc(100vh - 135px); object-fit: contain; }
.detail-fullscreen-media figcaption { align-self: end; margin-top: 8px; color: var(--rs-text-secondary,#c8d1e2); font-size: 11px; text-align: center; }
.detail-fullscreen-image-error { display: grid; width: min(420px, 100%); min-height: 220px; place-content: center; gap: 6px; border: 1px solid var(--rs-sheen,rgba(255, 255, 255, .22)); border-radius: 18px; background: var(--rs-sheen,rgba(255, 255, 255, .08)); color: var(--rs-on-accent,#fff); text-align: center; }
.detail-fullscreen-image-error[hidden] { display: none; }
.detail-fullscreen-image-error b,
.detail-fullscreen-image-error small { display: block; }
.detail-fullscreen-image-error small { color: var(--rs-text-secondary,#c8d1e2); }

.detail-error {
  display: grid;
  max-width: 720px;
  justify-items: center;
  margin: 32px auto;
  border: 1px dashed var(--rs-border,#cfd9e8);
  border-radius: 17px;
  padding: clamp(44px, 8vw, 80px) 26px;
  background: var(--rs-surface,#fbfcff);
  text-align: center;
}

.detail-error > span { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 18px; background: var(--rs-accent-soft,#edf2ff); color: var(--rs-link,var(--detail-blue)); font-size: 28px; }
.detail-error h1 { margin: 20px 0 0; color: var(--rs-text,var(--detail-navy)); font: 800 clamp(24px, 4vw, 34px)/1.2 Manrope, sans-serif; }
.detail-error p { max-width: 520px; margin: 12px 0 0; color: var(--rs-text-secondary,var(--detail-muted)); font-size: 14px; line-height: 1.65; }
.detail-error div { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }
.detail-error a,
.detail-error button { display: inline-flex; min-height: 44px; align-items: center; border: 1px solid var(--rs-accent-fill,var(--detail-blue)); border-radius: 8px; padding: 0 14px; background: var(--rs-surface,#fff); color: var(--rs-link,var(--detail-blue)); font-size: 12px; font-weight: 800; text-decoration: none; }
.detail-error a { background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); }

.enquiry-dialog .dialog-close,
.auth-choice-dialog .dialog-close {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border-radius: 50%;
}

.detail-loading-back,
.detail-loading-title,
.detail-loading-copy,
.detail-loading-gallery,
.detail-loading-section,
.detail-loading-thumb,
.detail-loading-panel {
  position: relative;
  overflow: hidden;
  background: var(--rs-surface-subtle,#e9eef6);
}
.detail-loading :is(.detail-loading-back,.detail-loading-title,.detail-loading-copy,.detail-loading-gallery,.detail-loading-section,.detail-loading-thumb,.detail-loading-panel)::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg,transparent 15%,var(--rs-surface,#f8faff) 50%,transparent 85%);
  transform: translateX(-150%);
  animation: detailShimmer 1.8s linear infinite;
}

.detail-loading-back { width: 160px; height: 20px; margin-bottom: 30px; border-radius: 6px; }
.detail-loading-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 350px); gap: 48px; }
.detail-loading-title { width: 68%; height: 54px; border-radius: 9px; }
.detail-loading-copy { width: 38%; height: 18px; margin-top: 14px; border-radius: 6px; }
.detail-loading-gallery { width: 100%; border-radius: 18px; }
.detail-loading-heading { display: block; }
.detail-loading-thumbnails { display: flex; gap: 10px; padding-top: 14px; }
.detail-loading-thumb { width: 60px; height: 60px; border-radius: 8px; }
.detail-loading-location { display: flex; flex-direction: column; gap: 20px; }
.detail-loading-location .detail-loading-copy { width: 80%; margin: 0; }
.detail-loading-location .detail-loading-panel { flex: 1; }
.detail-loading-section { height: 130px; margin-top: 24px; border-radius: 13px; }
.detail-loading-panel { height: 290px; border-radius: 16px; }

@keyframes detailShimmer { from { transform: translateX(-150%); } to { transform: translateX(150%); } }
@keyframes detailSpin { to { transform: rotate(360deg); } }

@media (max-width: 1000px) {
  .property-detail-grid,
  .detail-loading-grid { grid-template-columns: 1fr; }
  .detail-action-panel { position: static; }
  .detail-action-panel .detail-actions { display: none; }
  .detail-mobile-actions {
    position: fixed;
    z-index: 20;
    right: 0;
    bottom: 0;
    left: var(--workspace-sidebar-width, 244px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    padding: 10px clamp(16px, 4vw, 36px) calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--rs-border,#d9e1ee);
    background: var(--rs-surface,rgba(255, 255, 255, .97));
    box-shadow: 0 -8px 24px var(--rs-shadow,rgba(14, 34, 75, .1));
    backdrop-filter: blur(12px);
  }
  body:not([data-property-context='private']) .detail-mobile-actions { left: 0; }
  .detail-mobile-actions button { min-width: 48px; min-height: 48px; border-radius: 9px; padding: 0 13px; font-size: 12px; font-weight: 800; }
  .detail-mobile-actions .detail-contact,
  .detail-mobile-actions .detail-apply { display: flex; align-items: center; justify-content: space-between; }
  .detail-mobile-actions .detail-save,
  .detail-mobile-actions .detail-share { width: 48px; padding: 0; font-size: 18px; }
  .detail-mobile-actions .detail-save .detail-action-label,
  .detail-mobile-actions .detail-share .detail-action-label { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); white-space: nowrap; }
  .detail-mobile-owner-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-mobile-owner-actions.is-single { grid-template-columns: minmax(0, 1fr); }
  .detail-mobile-owner-actions a, .detail-mobile-owner-actions button {
    display: flex;
    min-width: 0;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: 1px solid var(--rs-accent-fill,var(--detail-blue));
    border-radius: 9px;
    padding: 0 13px;
    background: var(--rs-surface,#fff);
    color: var(--rs-link,var(--detail-blue));
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
  }
  .detail-mobile-owner-actions a.detail-mobile-owner-primary { background: var(--rs-accent-fill,var(--detail-blue)); color: var(--rs-on-accent,#fff); }
  .detail-action-panel { padding: 21px; }
}

@media (max-width: 780px) {
  body[data-property-context='private'] .detail-mobile-actions { left: 0; }
  .property-detail { width: 100%; padding: 32px 22px 116px; }
  .detail-hero { align-items: start; }
  .detail-title { font-size: clamp(31px, 7vw, 43px); }
  .detail-amenity-groups { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .property-detail { padding: 24px 20px 114px; overflow: clip; }
  .property-back { margin-bottom: 16px; }
  .detail-hero { display: grid; gap: 18px; margin-bottom: 22px; }
  .detail-hero-price { grid-template-columns: auto auto; justify-content: start; justify-items: start; align-items: end; column-gap: 7px; text-align: left; }
  .detail-hero-price b { font-size: 27px; }
  .detail-hero-price small { grid-column: 1 / -1; }
  .detail-gallery-shell { margin-right: -20px; margin-left: -20px; }
  .detail-gallery,
  .detail-gallery-empty { aspect-ratio: 4 / 3; border-right: 0; border-left: 0; border-radius: 0; }
  .detail-gallery-thumbnails { padding-right: 20px; padding-left: 20px; }
  .gallery-arrow { width: 48px; height: 48px; }
  .gallery-arrow.is-previous { left: 10px; }
  .gallery-arrow.is-next { right: 10px; }
  .detail-gallery-top { top: 10px; right: 10px; left: 10px; }
  .detail-gallery-fullscreen { top: 9px; right: 9px; width: 48px; height: 48px; }
  .detail-gallery-top .gallery-count { margin-right: 55px; }
  .detail-section { padding: 29px 0; }
  .detail-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-metrics div { padding: 13px; }
  .detail-metrics dd { font-size: 16px; }
  .detail-terms { grid-template-columns: 1fr; }
  .detail-terms div,
  .detail-terms div:nth-child(2n),
  .detail-terms div:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--rs-border,#e7ecf3); }
  .detail-terms div:last-child { border-bottom: 0; }
  .listing-inspection { align-items: stretch; flex-direction: column; }
  .listing-inspection button,
  .listing-inspection a { width: 100%; }
  .detail-map { height: 280px; }
  .detail-action-panel { display: none; }
  .detail-mobile-actions { padding-right: 12px; padding-left: 12px; }
  .detail-fullscreen-header { height: 62px; padding: 0 12px; }
  .detail-fullscreen-media { grid-template-columns: 48px minmax(0, 1fr) 48px; height: calc(100vh - 62px); gap: 5px; padding: 8px; }
  .detail-fullscreen-media > button { width: 44px; height: 44px; }
  .detail-fullscreen-media img { max-height: calc(100vh - 125px); }
  .enquiry-dialog,
  .auth-choice-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 30px 22px; overflow: auto; }
}

@media (max-width: 380px) {
  .detail-title { font-size: 29px; }
  .detail-mobile-actions .detail-contact .detail-action-label { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .detail-fullscreen-media { grid-template-columns: 1fr; }
  .detail-fullscreen-media figure { grid-column: 1; }
  .detail-fullscreen-media > button { position: fixed; z-index: 2; top: 50%; }
  .detail-fullscreen-media > button:first-child { left: 8px; }
  .detail-fullscreen-media > button:last-child { right: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .detail-gallery-track { transition: none; }
  .detail-loading-back,
  .detail-loading-title,
  .detail-loading-copy,
  .detail-loading-gallery,
  .detail-loading-section,
  .detail-loading-panel,
  .detail-inline-loading span { animation: none; }
}
/* Rental decisions: clear scope, location and practical costs. */
.detail-offer-explainer { color: var(--rs-text,#405475); font-size: 13px; line-height: 1.65; margin: 12px 0 0; }
.detail-location-section { margin: 0 0 24px; padding: 20px; border: 1px solid var(--rs-border-strong,#c7d5f4); border-radius: 16px; background: linear-gradient(120deg,var(--rs-surface-subtle,#eef3ff),var(--rs-surface,#fafcff)); }
.detail-location-section .detail-section-heading { margin-bottom: 12px; }
.detail-location-section .detail-section-heading h2 { font-size: 22px; }
.detail-location-section .detail-map-copy { padding: 0; border: 0; background: transparent; }
.detail-location-section .detail-map-copy button { min-height: 44px; font-size: 13px; }
.detail-location-summary { padding: 18px; margin-bottom: 20px; border: 1px solid var(--rs-border,#dce4f0); border-radius: 12px; font-size: 14px; }
.detail-photo-scope { position: absolute; bottom: 16px; left: 16px; padding: 8px 13px; border-radius: 8px; color: var(--rs-on-accent,white); background: var(--rs-brand-surface,#071e51ed); font-size: 13px; font-weight: 750; }
.detail-photo-groups { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.detail-photo-groups button { min-height: 44px; border: 1px solid var(--rs-border,#c9d5ec); border-radius: 30px; padding: 8px 14px; background: var(--rs-surface-subtle,#f5f8ff); color: var(--rs-link,#0c29ab); font: 700 12px Inter,sans-serif; cursor: pointer; }
.detail-photo-groups span { padding-left: 6px; }
.detail-terms dt { font-size: 13px; color: var(--rs-text-secondary,#52637d); }
.detail-terms dd { font-size: 18px; }
.detail-cost-snapshot { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--rs-border,#dce4f0); }
.detail-cost-snapshot div { margin-bottom: 14px; }
.detail-cost-snapshot dt { color: var(--rs-text-secondary,#586a85); font-size: 12px; }
.detail-cost-snapshot dd { margin: 5px 0 0; color: var(--rs-text,#152e59); font-size: 16px; font-weight: 750; }
.detail-budget-jump { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 12px; color: var(--rs-link,#0c29ab); font-size: 12px; font-weight: 700; }
.detail-budget { display: grid; grid-template-columns: minmax(0,1fr) 160px; gap: 16px; margin-top: 22px; padding: 24px; border: 1px solid var(--rs-border-strong,#bdccec); border-radius: 18px; background: var(--rs-surface-subtle,#f2f6ff); }
.detail-budget h3 { margin: 8px 0; color: var(--rs-text,#001368); font: 800 22px/1.25 Manrope,sans-serif; }
.detail-budget p { font-size: 13px; line-height: 1.6; margin: 6px 0; }
.detail-budget label { color: var(--rs-text,#334969); font-size: 13px; font-weight: 700; }
.detail-budget select { width: 100%; min-height: 46px; margin-top: 8px; border: 1px solid var(--rs-border,#aebedc); border-radius: 9px; background: var(--rs-surface,white); color: var(--rs-text,#172641); padding: 8px; font: 600 16px Inter,sans-serif; }
.detail-budget output { display: grid; gap: 8px; grid-column: 1/-1; }
.detail-budget output strong { color: var(--rs-link,#0c29ab); font: 800 34px/1.2 Manrope,sans-serif; letter-spacing: -1px; }
.detail-budget output span { color: var(--rs-text,#405475); font-size: 13px; }
.detail-budget .detail-budget-note { grid-column: 1/-1; font-size: 12px; color: var(--rs-text-secondary,#52637d); }
.detail-floorplans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.detail-floorplans a { display: grid; overflow: hidden; border: 1px solid var(--rs-border,#cbd7ec); border-radius: 12px; color: var(--rs-link,#0c29ab); text-decoration: none; }
.detail-floorplans img { width: 100%; height: 200px; object-fit: contain; padding: 12px; box-sizing: border-box; background: var(--rs-surface-subtle,#f6f8fc); }
.detail-floorplans a > span { padding: 14px; font-size: 14px; font-weight: 700; }
.detail-floorplans small { display: block; margin-top: 5px; font-size: 12px; color: var(--rs-text-secondary,#52637d); }
.detail-video-link { display: flex; align-items: center; gap: 18px; min-height: 72px; margin-top: 20px; padding: 18px; border: 1px solid var(--rs-border,#cbd7ec); border-radius: 12px; background: var(--rs-surface-subtle,#f3f6ff); color: var(--rs-link,#0c29ab); text-decoration: none; }
.detail-video-link > span:first-child { font-size: 34px; }
.detail-video-link > span:nth-child(2) { flex: 1; }
.detail-video-link small { display: block; margin-top: 5px; font-size: 12px; color: var(--rs-text-secondary,#52637d); }
@media(max-width:1000px) {
  .detail-mobile-actions.has-application { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 48px 48px; }
  .detail-mobile-actions.has-application .detail-contact, .detail-mobile-actions.has-application .detail-apply { justify-content: center; font-size: 12px; line-height: 1.35; }
}
@media(max-width:600px) {
  .detail-mobile-actions.has-application { grid-template-columns: minmax(0,1fr) 48px 48px; }
  .detail-mobile-actions.has-application .detail-contact { grid-column: 1; grid-row: 1; }
  .detail-mobile-actions.has-application .detail-apply { grid-column: 1; grid-row: 2; }
  .detail-mobile-actions.has-application .detail-save { grid-column: 2; grid-row: 1/3; height: 100%; }
  .detail-mobile-actions.has-application .detail-share { grid-column: 3; grid-row: 1/3; height: 100%; }
  .property-detail { padding-bottom: 160px; }
  .detail-budget { grid-template-columns: 1fr; padding: 20px; }
  .detail-floorplans { grid-template-columns: 1fr; }
  .detail-photo-groups { padding: 0 20px; }
}
/* Public listing sharing and message-first email verification. */
.listing-share-dialog { box-sizing: border-box; width: min(620px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; border: 1px solid var(--rs-border,#dce2f3); border-radius: 24px; padding: 32px; color: var(--rs-text,#17234b); background: var(--rs-surface,#fff); }
.listing-share-dialog::backdrop { background: var(--rs-scrim,rgb(13 24 59 / 55%)); }
.listing-share-close-row { position: sticky; top: 0; display: flex; justify-content: flex-end; height: 44px; margin-bottom: -44px; z-index: 2; pointer-events: none; }
.listing-share-dialog .dialog-close { position: static; min-width: 44px; min-height: 44px; border: 0; border-radius: 50%; background: var(--rs-surface-subtle,#f5f7ff); color: var(--rs-text,#17234b); font-size: 28px; cursor: pointer; pointer-events: auto; }
.listing-share-dialog h2 { margin: 12px 40px 12px 0; font-size: 28px; }
.listing-share-dialog p { line-height: 1.55; }
.listing-share-dialog label, #enquiry-email-step label, #enquiry-code-step label { display: block; margin: 20px 0 8px; font-weight: 700; }
.listing-share-dialog input, .listing-share-dialog textarea, #enquiry-email, #enquiry-code { box-sizing: border-box; width: 100%; min-width: 0; padding: 12px; border: 1px solid var(--rs-border,#b6c2df); border-radius: 10px; font: inherit; font-size: 16px; background: var(--rs-surface,#fff); color: var(--rs-text,#17234b); }
.listing-share-dialog textarea { resize: vertical; }
.listing-share-dialog button:not(.dialog-close), .listing-share-actions a, .enquiry-code-actions button, .enquiry-discard { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border: 1px solid var(--rs-border,#b6c2df); border-radius: 10px; background: var(--rs-surface-subtle,#f5f7ff); color: var(--rs-link,#0c29ab); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.listing-share-dialog button:disabled, .enquiry-code-actions button:disabled { opacity: .6; cursor: wait; }
.listing-share-actions, .enquiry-code-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.listing-share-downloads { display: flex; align-items: center; gap: 20px; margin-top: 24px; }
.listing-share-downloads img { width: 160px; height: 160px; flex: none; }
.listing-share-downloads button { margin-bottom: 8px; width: 100%; }
.listing-share-downloads p, #enquiry-email-step p, #enquiry-code-step p { font-size: 14px; line-height: 1.5; }
.enquiry-dialog { box-sizing: border-box; max-height: calc(100dvh - 24px); overflow-y: auto; }
.enquiry-dialog #enquiry-message { font-size: 16px; }
.enquiry-discard { margin-top: 12px; }
.listing-share-dialog [hidden], .enquiry-dialog [hidden] { display: none !important; }
.listing-share-dialog :focus-visible, .enquiry-dialog :focus-visible { outline: 3px solid var(--rs-focus,#3664e8); outline-offset: 3px; }
@media (max-width: 480px) { .listing-share-dialog { padding: 24px 20px; } .listing-share-downloads { flex-direction: column; align-items: stretch; } .listing-share-downloads img { align-self: center; } }

.detail-enquire { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid var(--rs-border-strong,#0c29ab); border-radius: 9px; padding: 10px 16px; background: var(--rs-accent-fill,#0c29ab); color: var(--rs-on-accent,white); font: 700 13px Inter,sans-serif; text-decoration: none; cursor: pointer; }
.enquiry-account-choices{padding:12px 14px;margin:14px 0;border:1px solid var(--rs-border-strong,#d8e0f3);border-radius:12px;background:var(--rs-surface-subtle,#f5f7ff)}
.enquiry-account-choices p{margin:0 0 8px;font-size:13px;line-height:1.5}
.enquiry-account-choices a{display:inline-flex;align-items:center;min-height:40px;margin-right:12px;font-size:13px;font-weight:700;color:var(--rs-link,#0c29ab)}
.enquiry-draft-note{color:var(--rs-text,#405575);font-size:12px;line-height:1.5}
.enquiry-starters{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
.enquiry-starters button{min-height:40px;padding:8px 12px;border:1px solid var(--rs-border,#cbd6ee);border-radius:999px;background:var(--rs-surface-subtle,#f7f9ff);color:var(--rs-link,#193aa3);font:600 12px Inter,sans-serif;cursor:pointer}

.enquiry-dialog .enquiry-account-choices p{color:var(--rs-text,#405575);font-size:13px}

/* Keep account continuation and enquiry actions as quiet as the inbox. */
.enquiry-dialog[open],.listing-share-dialog[open]{animation:listing-dialog-in 180ms cubic-bezier(.16,1,.3,1) both}
.enquiry-dialog[open]::backdrop,.listing-share-dialog[open]::backdrop{animation:listing-backdrop-in 180ms ease both}
.enquiry-dialog button,.listing-share-dialog button,.detail-enquire{transition:background-color 140ms ease,scale 140ms cubic-bezier(.16,1,.3,1)}
.enquiry-dialog button:not(:disabled):active,.listing-share-dialog button:not(:disabled):active,.detail-enquire:active{scale:.97}
@keyframes listing-dialog-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}
@keyframes listing-backdrop-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.enquiry-dialog,.listing-share-dialog,.enquiry-dialog::backdrop,.listing-share-dialog::backdrop,.enquiry-dialog button,.listing-share-dialog button,.detail-enquire{animation:none!important;transition:none!important}.enquiry-dialog button:active,.listing-share-dialog button:active,.detail-enquire:active{scale:none}}

@media (max-width: 600px) { .property-detail { padding-bottom: 216px; } }
/* Reporting shares the action style but occupies its own mobile grid row. */
@media (max-width: 1000px) {
  .detail-mobile-actions .detail-report { grid-column: 1 / -1; grid-row: auto; width: 100%; min-height: 44px; padding: 6px 12px; font-size: 12px; }
  .detail-mobile-actions .detail-report .detail-action-label { position: static; overflow: visible; width: auto; height: auto; clip: auto; white-space: normal; }
  .detail-mobile-actions.has-application .detail-report { grid-column: 1 / -1; grid-row: 3; height: auto; }
}

/* Both rows share column widths; only the second row's action card follows scrolling. */
.property-detail-top { margin-bottom: 36px; }
.detail-media-column, .detail-location-card { min-width: 0; }
.detail-location-card { position: static; border: 1px solid var(--detail-line); border-radius: 16px; padding: 24px; background: var(--rs-surface,#fff); }
.detail-location-card .detail-section { padding: 0; margin: 0; border: 0; }
.detail-location-card .detail-map-copy { display: grid; gap: 22px; }
.detail-location-card .detail-map-copy > div { align-items: flex-start; }
.detail-location-card .detail-map { height: 340px; }
.detail-location-card .detail-map-copy > button { width: 100%; justify-content: center; }
.detail-media-column .detail-gallery-shell { margin-bottom: 0; }
/* Explicit containing block prevents portrait image dimensions growing the mobile track. */
.detail-gallery-track { position: absolute; inset: 0; }
.detail-gallery-slide { min-width: 0; }
.detail-gallery-slide picture { display: block; min-width: 0; overflow: hidden; }
.detail-gallery-slide .detail-gallery-image { object-position: 50% 50%; }
.detail-related-rooms, .detail-city-discovery { margin-top: 36px; }
.detail-related-rooms[hidden], .detail-city-discovery[hidden] { display: none; }
.detail-room-grid, .detail-city-discovery .finder-service-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 18px; }
.detail-room-card { display: grid; gap: 12px; overflow: hidden; padding: 16px; border: 1px solid var(--detail-line); border-radius: 12px; background: var(--rs-surface,#fff); color: var(--detail-ink); text-decoration: none; }
.detail-room-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover; object-position: center; border-radius: 8px; }
.detail-city-discovery .finder-service-grid article { padding: 20px; border: 1px solid var(--detail-line); border-radius: 12px; background: var(--rs-surface,#fff); }
.detail-city-discovery .finder-service-grid p { line-height: 1.6; }
.detail-city-discovery .finder-service-grid small { color: var(--detail-muted); }
.property-detail :is(.detail-save,.detail-share,.detail-owner-actions a,.detail-photo-groups button,.detail-gallery-fullscreen,.detail-room-card,.detail-video-link,.detail-floorplans a):not(:disabled):hover { border-color: var(--rs-border-strong,#b9c9e0); background: var(--rs-surface-hover,#edf2fb); }
.property-detail :is(button,a), .detail-gallery-dialog button { transition: background-color 140ms ease,border-color 140ms ease; }
.detail-gallery-dialog button:not(:disabled):hover { background: var(--rs-surface-hover,#edf2fb); color: var(--rs-text,#172641); }
.detail-action-status { margin-top: 16px; font-size: 12px; line-height: 1.6; }
.detail-action-status:empty { margin: 0; }
@media (min-width:1001px) {
  /* Share the gallery row so headings never offset the location card. */
  .property-detail-top { row-gap: 27px; }
  .property-detail-top .detail-media-column { display: contents; }
  .property-detail-top .detail-hero { grid-column: 1; grid-row: 1; margin-bottom: 0; }
  .property-detail-top :is(.detail-gallery-shell,.detail-gallery-empty) { grid-column: 1; grid-row: 2; align-self: stretch; }
  .property-detail-top .detail-gallery-shell { display: flex; flex-direction: column; min-width: 0; }
  .property-detail-top .detail-gallery { flex: 1; }
  .property-detail-top .detail-location-card { grid-column: 2; grid-row: 2; align-self: stretch; }
  .detail-location-card .detail-location-section { display: flex; flex-direction: column; height: 100%; }
  .detail-location-card .detail-map { flex: 1; height: auto; min-height: 180px; }
  .detail-mobile-actions:not(.detail-mobile-owner-actions):has(.detail-contact) { position: fixed; z-index: 20; bottom: 20px; right: 24px; display: flex; padding: 8px; border: 1px solid var(--detail-line); border-radius: 12px; background: var(--rs-surface,#fff); box-shadow: 0 6px 24px var(--rs-shadow,rgba(18,41,87,.12)); }
  .detail-mobile-actions:not(.detail-mobile-owner-actions):has(.detail-contact) > :not(.detail-contact) { display: none; }
  .detail-mobile-actions .detail-contact { display: flex; gap: 18px; align-items: center; min-height: 46px; padding: 12px 18px; border-radius: 8px; font-weight: 700; }
}
@media (max-width:1000px) { .property-detail-top { gap: 24px; } .detail-location-card .detail-map { height: 300px; } }
@media (max-width:600px) { .property-detail-top { margin-bottom: 28px; } .detail-location-card { padding: 20px; } .detail-hero { flex-wrap: wrap; gap: 20px; } }
@media (prefers-reduced-motion:reduce) { .property-detail :is(button,a), .detail-gallery-dialog button { transition: none; } }

@media (prefers-reduced-motion:reduce), (forced-colors:active) {
  .detail-loading :is(.detail-loading-back,.detail-loading-title,.detail-loading-copy,.detail-loading-gallery,.detail-loading-section,.detail-loading-thumb,.detail-loading-panel)::after { display: none; animation: none; }
}
@media (forced-colors:active) {
  .detail-loading :is(.detail-loading-back,.detail-loading-title,.detail-loading-copy,.detail-loading-gallery,.detail-loading-section,.detail-loading-thumb,.detail-loading-panel) { background: Canvas; border: 1px solid GrayText; }
}

.detail-uploaded-video{display:block;width:100%;max-height:520px;margin-block:18px;border-radius:16px;object-fit:contain;background:var(--rs-surface-subtle,#f4f6fa)}
