


.search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--space-3);
  padding: 8px;
  background: var(--gradient-brand);
}


.search-bar .search-field { flex: 1 1 0; }


.search-field--text { flex: 1.6 1 0; }
.search-field--text input { padding-right: 16px; }

.search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
  
  background: var(--color-green);
  color: var(--color-white);
  font-size: 20px;
  transition: background-color var(--dur-ui) var(--ease), color var(--dur-ui) var(--ease);
}
.search-submit:hover { background: var(--color-charcoal); color: var(--color-white); }


.search-reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: var(--color-white);
  font-size: 22px;
  transition: background-color var(--dur-ui) var(--ease),
              color var(--dur-ui) var(--ease);
}

.search-reset:hover,
.search-reset:focus-visible {
  background: var(--color-white);
  color: var(--color-charcoal);
}


.search-reset[hidden] { display: none; }



.listing-hero {
  position: relative;
  min-height: var(--inner-hero-h);
  display: flex;
  align-items: end;
  padding-block: var(--space-8);
  overflow: hidden;
}

.listing-hero-bg {
  position: absolute;
  top: -18%;
  bottom: -18%;
  left: 0;
  right: 0;
  z-index: 0;
  overflow: hidden;
  will-change: transform;
  transform-origin: center center;
  pointer-events: none;
}

.listing-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.45);
}


.listing-hero .container { position: relative; z-index: 2; }

.listing-hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.listing-hero-mark { width: 40px; height: 40px; margin-bottom: var(--space-2); }

.listing-hero-title {
  font-size: var(--text-36);
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-white);
}

.listing-hero-lead {
  margin-top: 12px;
  font-size: var(--text-16);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
}

.listing-hero .search-bar { width: 100%; }



#search-results {
  transition: opacity var(--dur-ui) var(--ease);
}
#search-results.is-loading {
  opacity: 0.45;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  #search-results { transition: none; }
}


.listing-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.listing-count {
  font-size: var(--text-14);
  color: var(--color-muted);
  white-space: nowrap;
}
.listing-count strong { color: var(--color-ink); }

.listing-sort {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex: none;
}

.listing-sort-label {
  font-size: var(--text-14);
  color: var(--color-muted);
  white-space: nowrap;
}

.listing-sort-select {
  height: 40px;
  padding: 0 40px 0 14px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
  background-color: var(--color-white);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235c5c5c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  font-size: var(--text-14);
  font-weight: 500;
  color: var(--color-ink);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color var(--dur-ui) var(--ease);
}

.listing-sort-select:hover { border-color: var(--color-green); }

.listing-sort-select:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 1px;
  border-color: var(--color-green);
}

/* Breadcrumb */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: var(--text-12);
  color: var(--color-muted);
}

.breadcrumb a { color: var(--color-muted); }
.breadcrumb a:hover { color: var(--color-green); }
.breadcrumb [aria-current="page"] { color: var(--color-ink); }

.breadcrumb-sep {
  display: inline-flex;
  width: 12px;
  height: 12px;
  opacity: 0.6;
}





.property-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-cream);
  transition: transform var(--dur-ui) var(--ease), box-shadow var(--dur-ui) var(--ease);
}

.property-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}

/* Full-card hit area */
.property-card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.property-card-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16/9;
}

.property-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-media) var(--ease);
}

.property-card:hover .property-card-media img { transform: scale(1.05); }

.property-card-type {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 1;
	padding: 4px 8px;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.92);
	font-size: var(--text-12);
	color: var(--color-ink);
}

.property-card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 16px 16px;
  flex: 1;
}

.property-card-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1);
}

.property-card-price {
  font-size: var(--text-22);
  font-weight: 400;
  color: var(--color-ink);
}

.property-card-currency {
  margin-left: 4px;
  font-size: var(--text-12);
  color: var(--color-muted);
}

.property-card-status {
  padding: 4px 8px;
  border-radius: var(--radius-xs);
  background: #e4e4e4;
  font-size: var(--text-12);
  font-weight: 500;
  color: var(--color-green-text);
  white-space: nowrap;
}

.property-card-title {
  font-size: var(--text-17);
  font-weight: 500;
  line-height: 1.35;
  color: var(--color-ink);
}

.property-card-location {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--text-14);
  color: var(--color-subtle);
}

.property-card-location i { font-size: 16px; color: var(--color-green); }


.pd-hero {
  padding-top: calc(var(--header-h) + var(--space-3));
  padding-bottom: var(--space-3);
  background: var(--color-cream);
}

.pd-headline {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-top: 8px;
  padding: 16px;
  border-radius: 8px;
  background: #3b3b3b;
  color: #fff;
  overflow: hidden;
}

.pd-headline-copy { min-width: 0; flex: 1; }

.pd-title {
  max-width: 640px;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  color: #fff;
}

.pd-address {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 14px;
  color: #9e9e9e;
}

.pd-address i { color: #9e9e9e; font-size: 16px; }

.pd-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex: none;
  margin: 0;
  font-size: 40px;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  text-align: right;
}

.pd-price strong { font-weight: 400; }
.pd-price-unit {
  display: block;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: #c4c4c4;
}

.pd-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: 139px 139px 139px;
  gap: 8px;
  margin-top: 8px;
}

.pd-gallery-item--hero {
  grid-column: 1 / 3;
  grid-row: 1 / 4;
}

.pd-gallery-item {
  position: relative;
  display: block;
  border-radius: 10px;
  overflow: hidden;
  background: #e7e2d8;
}

.pd-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-media) var(--ease);
}

.pd-gallery-item:hover img { transform: scale(1.04); }


.pd-gallery-badge {
  position: static;
  z-index: 2;
  padding: 5px 10px;
  border-radius: var(--radius-pill);
  font-size: var(--text-12);
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  pointer-events: none;
}


.pd-gallery-badges {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  display: flex;
  gap: 8px;
  pointer-events: none;
}

.pd-gallery-badge--type {
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-ink);
}

.pd-gallery-badge--status {
  background: var(--color-green-dark);
  color: var(--color-white);
}


.pd-gallery-badge--status.is-unavailable {
  background: var(--color-ink);
  color: var(--color-white);
}


@media (max-width: 576px) {
  .pd-gallery-badge {
    max-width: calc(50% - 18px);
    overflow: hidden;
    text-overflow: ellipsis;
  }
}


.pd-gallery-item--more::after { content: none; }

.pd-gallery-more {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 1;
  padding: 4px 8px;
  border-radius: 5px;
  background: #000;
  font-size: 10px;
  font-weight: 500;
  color: #fff;
  white-space: nowrap;
}


.pd-gallery-map-wrap {
  position: relative;
  grid-column: 3 / 5;
  grid-row: 3;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid #cdc6c6;
}

.pd-gallery-map-btn {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 0;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.94);
  font-size: var(--text-12);
  font-weight: 500;
  color: var(--color-ink);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: background-color var(--dur-ui) var(--ease);
}
.pd-gallery-map-btn:hover { background: var(--color-white); }
.pd-gallery-map-btn i { font-size: 14px; }

.pd-gallery-map {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-cream);
}

.pd-gallery-map img { width: 100%; height: 100%; object-fit: cover; }


.pd-gallery-map > div { width: 100%; height: 100%; }


.pd-gallery[data-photos="0"] { grid-template-columns: 1fr; grid-template-rows: 280px; }
.pd-gallery[data-photos="0"] .pd-gallery-map-wrap { grid-column: 1; grid-row: 1; }
.pd-gallery[data-photos="1"] .pd-gallery-map-wrap { grid-column: 3 / 5; grid-row: 1 / 4; }

.pd-gallery-item--wide { grid-column: 3 / 5; }

.pd-gallery[data-photos="2"] .pd-gallery-map-wrap,
.pd-gallery[data-photos="3"] .pd-gallery-map-wrap {
  grid-column: 3 / 5;
  grid-row: 2 / 4;
}


.pd-body { background: var(--color-cream); }

.pd-body.section--tight { padding-top: var(--space-4); }

.page-property {
  --pd-sticky-top: 16px;
}
.page-property:has(#header:not(.is-hidden)) {
  --pd-sticky-top: calc(var(--header-h) + 16px);
}

.pd-aside-title {
  margin: 0;
  font-size: var(--text-16);
  font-weight: 600;
  color: var(--color-ink);
}

.pd-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: var(--space-5);
  align-items: start;
}

/* --- Tabs ---------------------------------------------------------------- */
.pd-tabs {
	position: sticky;
	top: var(--pd-sticky-top, 16px);
	z-index: 20;
	margin-bottom: 0;
	padding: 4px;
	border-radius: var(--radius-pill);
	background: color-mix(in srgb, var(--color-cream) 80%, transparent);
	backdrop-filter: blur(5px);
	transition: top var(--dur-media) var(--ease);
}
.pd-tabs__row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  overflow: visible;
}

.pd-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  padding: 8px 14px 8px 10px;
  border: 0;
  border-radius: 29px;
  background: #e2e2e2;
  font-size: 14px;
  font-weight: 500;
  color: #868686;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--dur-ui) var(--ease),
              color var(--dur-ui) var(--ease),
              border-color var(--dur-ui) var(--ease);
}

.pd-tab i {
  font-size: 17px;
  
  opacity: 0.75;
}

.pd-tab:hover {
  background: rgba(0, 0, 0, 0.08);
  color: var(--color-ink);
}


.pd-tab:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}

.pd-tab.is-active {
  background: #000;
  color: #fff;
}
.pd-tab.is-active i { opacity: 1; }

.pd-section {
  padding: 20px 0 4px;
  scroll-margin-top: calc(var(--pd-sticky-top, 16px) + 64px);
}

.pd-section-title {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: #0f172a;
}

.pd-overview { position: relative; }
.pd-overview.is-clamped {
  max-height: 8.4em;
  overflow: hidden;
}
.pd-overview.is-clamped .pd-readmore {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  margin: 0;
  padding-top: 28px;
  text-align: left;
  background: linear-gradient(transparent, var(--color-cream) 50%);
}
.pd-readmore {
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  font-size: var(--text-15);
  font-weight: 600;
  color: var(--color-green-dark);
  cursor: pointer;
}

.pd-body .col-lg-8 {
  min-width: 0;
}

.pd-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 16px 0 0;
  border: 1px solid #e4e4e4;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.pd-fact {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 2px;
  align-items: start;
  min-width: 0;
  padding: 10px 12px;
  border-right: 1px solid #e4e4e4;
  border-bottom: 1px solid #e4e4e4;
  background: #fff;
}

.pd-fact i {
  grid-row: 1 / 3;
  margin-top: 2px;
  font-size: 18px;
  color: var(--color-green);
}

.pd-fact dt {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}

.pd-fact dd {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: #0f172a;
  overflow-wrap: anywhere;
}

.pd-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pd-feature-grid li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  font-size: 14px;
  color: #0f172a;
}

.pd-feature-grid i { flex: none; color: var(--color-green); font-size: 20px; }

.pd-amenities-title {
  margin-top: 24px;
}

.pd-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pd-chips li {
  padding: 10px 16px;
  border: 1px solid #e4e4e4;
  border-radius: 999px;
  background: #fff;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 500;
  color: #0f172a;
}

.pd-clause-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.pd-clause {
  padding: 16px;
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.pd-clause .cms-prose p:last-child { margin-bottom: 0; }

.pd-clause-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: var(--text-15);
  font-weight: 600;
}

.pd-clause-title i { color: var(--color-green); font-size: 18px; }

.pd-epc-card {
  display: grid;
  grid-template-columns: auto 1px minmax(0, 1fr);
  gap: 16px 24px;
  align-items: stretch;
  padding: 18px 22px;
  border-radius: var(--radius-md);
  background: var(--color-white);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.pd-epc-rule {
  width: 1px;
  align-self: stretch;
  background: var(--color-line);
}

.pd-epc-label {
  margin: 0;
}

.pd-epc-label-cap {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-subtle);
}

.pd-epc-label svg {
  display: block;
  width: auto;
  height: 148px;
  max-width: 100%;
}

.pd-epc-body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.pd-epc-head {
	display: grid;
	align-items: flex-start;
	justify-content: space-between;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px 24px;
	margin: 0;
	width: 100%;
}

.pd-epc-current {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
}

.pd-epc-current span {
  font-size: var(--text-13, 13px);
  font-weight: 500;
  color: var(--color-subtle);
}

.pd-epc-current strong {
  font-size: 52px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #58AB27;
}

.pd-epc-current[data-band="A+"] strong { color: #009036; }
.pd-epc-current[data-band="A"] strong { color: #58AB27; }
.pd-epc-current[data-band="B"] strong { color: #B1C800; }
.pd-epc-current[data-band="C"] strong { color: #c5b400; }
.pd-epc-current[data-band="D"] strong { color: #d4a800; }
.pd-epc-current[data-band="E"] strong { color: #F29400; }
.pd-epc-current[data-band="F"] strong { color: #E2001A; }
.pd-epc-current[data-band="G"] strong { color: #9B0018; }

.pd-epc-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px 24px;
  margin: 0;
  width: 100%;
}

.pd-epc-meta div { display: grid; gap: 2px; }
.pd-epc-meta dt { font-size: var(--text-12); color: var(--color-subtle); }
.pd-epc-meta dd { margin: 0; font-size: var(--text-16); font-weight: 600; color: var(--color-ink); word-break: break-word; }

@media (max-width: 640px) {
  .pd-epc-card {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .pd-epc-label { width: auto; }
  .pd-epc-label svg { height: 128px; }
  .pd-epc-rule {
    width: 100%;
    height: 1px;
  }
  .pd-epc-head { flex-wrap: wrap; }
}

.pd-nearby-title {
  margin: 22px 0 12px;
  font-size: var(--text-18);
  font-weight: 600;
}

.pd-nearby {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #bfcbda;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.pd-nearby li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 10px;
  border-right: 1px solid #bfcbda;
  border-bottom: 1px solid #bfcbda;
  background: #fff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}

.pd-nearby i { flex: none; color: var(--color-green); font-size: 16px; }
.pd-nearby span { flex: 1; min-width: 0; }
.pd-nearby strong {
  flex: none;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #0f172a;
}

.pd-aside {
  position: sticky;
  top: var(--pd-sticky-top, 16px);
  transition: top var(--dur-media) var(--ease);
}
.pd-aside-price {
  display: flex;
  align-items: end;
  gap: 4px;
  margin: 0;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
  color: #0f172a;
}
.pd-aside-price strong { font-weight: 400; }
.pd-aside-price .pd-price-unit { color: #6b7280; }
.pd-aside-address {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 4px 0 0;
  color: #3b3b3b;
  font-size: 13px;
}
.pd-aside-address i { margin-top: 1px; color: var(--color-green); font-size: 16px; }
.pd-stats {
  display: flex;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}
.pd-stats li {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	background: #fff;
	font-size: 15px;
	font-weight: 600;
	color: #0f172a;
}
.pd-stats i { color: var(--color-green); font-size: 24px; }

.pd-panel { display: none; }
.pd-panel.is-active { display: block; }
.pd-panel[hidden] { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .pd-panel.is-active { animation: pd-panel-in 0.25s var(--ease) both; }
}

@keyframes pd-panel-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}

.pd-panel-title {
  font-size: var(--text-16);
  font-weight: 700;
  color: var(--color-ink);
  margin-top: var(--space-3);
  margin-bottom: 8px;
}
.pd-panel-title:first-child { margin-top: 0; }

.pd-panel p {
  font-size: var(--text-16);
  line-height: 1.75;
  color: var(--color-subtle);
}

.pd-panel-map { border-radius: var(--radius-md); }



.pd-floorplans {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
}

.pd-floorplan {
  margin: 0;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-cream);
  overflow: hidden;
  transition: border-color var(--dur-ui) var(--ease);
}

.pd-floorplan:hover { border-color: var(--color-green); }

.pd-floorplan-open {
  display: block;
  position: relative;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}


.pd-floorplan img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.pd-floorplan-zoom {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-ink);
  font-size: 16px;
  opacity: 0;
  transition: opacity var(--dur-ui) var(--ease);
}

.pd-floorplan:hover .pd-floorplan-zoom,
.pd-floorplan-open:focus-visible .pd-floorplan-zoom { opacity: 1; }

.pd-floorplan-open:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: -2px;
}


.pd-map {
  height: 380px;
  margin-top: var(--space-3);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-cream);
}

.pd-map-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  margin: 0;
  font-size: var(--text-14);
  color: var(--color-subtle);
}

@media (max-width: 768px) {
  .pd-map { height: 280px; }
}

/* --- Aside --------------------------------------------------------------- */
.pd-aside {
	position: sticky;
	top: var(--pd-sticky-top, 16px);
	display: grid;
	gap: 8px;
	transition: top var(--dur-media) var(--ease);
}

.pd-card {
  padding: var(--space-3);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.pd-spec { margin-bottom: var(--space-1); }

.pd-spec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: 16px;
  border-bottom: 1px solid var(--color-line);
}

.pd-spec-row dd, .pd-spec-row dt { margin: 0; }

.pd-spec-row:last-child { border-bottom: 0; }

.pd-spec dt { font-size: 14px; color: #949494; }

.pd-spec dd {
  margin: 0;
  font-size: var(--text-16);
  font-weight: 500;
  color: var(--color-ink);
  text-align: right;
}

.pd-enquire {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  background: var(--color-ink);
	border-radius: var(--radius-2xl);
}

.pd-enquire-label {
  padding-left: 12px;
  margin-right: auto;
  font-size: var(--text-14);
  color: var(--color-white);
  white-space: nowrap;
}

.pd-enquire .btn { padding: 10px 16px; }

.btn--white {
  background: var(--color-white);
  color: var(--color-ink);
  border: 1px solid var(--color-white);
}
.btn--white:hover { background: var(--color-cream); color: var(--color-ink); }


.pd-sheet {
  margin: 0;
  border-top: 1px solid var(--color-line);
}

.pd-sheet-row {
  display: grid;
  grid-template-columns: minmax(180px, 240px) 1fr;
  gap: var(--space-2) var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-line);
}

.pd-sheet-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: var(--text-16);
  font-weight: 600;
  color: var(--color-ink);
  line-height: 1.35;
}

.pd-sheet-label > i {
  flex: none;
  margin-top: 1px;
  font-size: 20px;
  color: var(--color-green);
}


.pd-sheet-label small {
  display: block;
  margin-top: 3px;
  font-size: var(--text-12);
  font-weight: 400;
  color: var(--color-muted);
  line-height: 1.4;
}

.pd-sheet-value {
  margin: 0;
  min-width: 0;
  color: var(--color-body);
}


.pd-sheet-value > :first-child { margin-top: 0; }
.pd-sheet-value > :last-child { margin-bottom: 0; }

@media (max-width: 768px) {
  .pd-sheet-row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: var(--space-2) 0;
  }
  .pd-sheet-label small { display: inline; margin-left: 4px; }
}


.pd-downloads {
  display: flex;
  flex-direction: column;
  gap: 8px;
}



.pd-brochure-modal .modal-content {
  border: 0;
  border-radius: 0;
  background: var(--color-ink);
}

.pd-brochure-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  padding: 12px var(--space-3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: var(--color-ink);
}

.pd-brochure-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin-right: auto;
}
.pd-brochure-heading > i { flex: none; font-size: 22px; color: var(--color-green); }

.pd-brochure-modal .modal-title {
  margin: 0;
  font-size: var(--text-16);
  font-weight: 600;
  color: var(--color-white);
}

.pd-brochure-sub {
  margin: 2px 0 0;
  font-size: var(--text-12);
  color: rgba(255, 255, 255, 0.6);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pd-brochure-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: none;
}


.pd-brochure-head-actions .btn--outline {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--color-white);
}
.pd-brochure-head-actions .btn--outline:hover,
.pd-brochure-head-actions .btn--outline:focus-visible {
  border-color: var(--color-white);
  background: rgba(255, 255, 255, 0.14);
  color: var(--color-white);
}


.pd-brochure-head-actions .btn--green {
  background: var(--color-green);
  color: var(--color-white);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.14) inset;
}
.pd-brochure-head-actions .btn--green:hover,
.pd-brochure-head-actions .btn--green:focus-visible {
  background: var(--color-green-dark);
  color: var(--color-white);
}


.pd-brochure-head-actions .btn:focus-visible,
.pd-brochure-modal .btn-close:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}

.pd-brochure-head-actions .btn > i { font-size: 18px; }


.pd-brochure-modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.7;
}
.pd-brochure-modal .btn-close:hover { opacity: 1; }


.pd-brochure-body {
  position: relative;
  padding: 24px;
  background: #2b2b2b;
  overflow: hidden;
}


.pd-video {
  position: relative;
  width: 100%;
  aspect-ratio: 618 / 418;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-cream);
}

.pd-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.pd-brochure-viewer {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
	border-radius: 4px;
}


.pd-brochure-loading {
  position: absolute;
  inset: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0;
  padding: var(--space-4);
  text-align: center;
  font-size: var(--text-14);
  color: rgba(255, 255, 255, 0.75);
}

.pd-brochure-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid rgba(255, 255, 255, 0.25);
  border-top-color: var(--color-green);
  border-radius: 50%;
  animation: pd-brochure-spin 0.7s linear infinite;
}

@keyframes pd-brochure-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .pd-brochure-spinner { animation-duration: 2.4s; }
}

@media (max-width: 768px) {
  .pd-brochure-head { padding: 10px var(--space-2); }
  .pd-brochure-head-actions .btn span { display: none; }
  .pd-brochure-sub { display: none; }
}

.pd-enquiry-modal .modal-content {
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--color-white);
  overflow: hidden;
}

/* --- Header: property context ------------------------------------------- */
.pd-enquiry-modal .enq-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: var(--space-3);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-cream);
}

.enq-header-media {
  flex: none;
  width: 72px;
  height: 54px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-white);
}
.enq-header-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.enq-header-copy { min-width: 0; }

.enq-title {
  margin: 0;
  font-size: var(--text-18);
  font-weight: 600;
  line-height: 1.25;
  color: var(--color-ink);
}


.enq-subtitle {
  margin: 2px 0 0;
  font-size: var(--text-14);
  line-height: 1.4;
  color: var(--color-subtle);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pd-enquiry-modal .btn-close { margin-left: auto; align-self: flex-start; }

/* --- Body ---------------------------------------------------------------- */
.pd-enquiry-modal .enq-body { padding: var(--space-3); }


.enq-form { display: block; }


.enq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--space-2);
}

@media (max-width: 576px) {
  .enq-grid { grid-template-columns: minmax(0, 1fr); }
}

.pd-enquiry-modal .form-field { margin-bottom: 14px; position: relative; }

.pd-enquiry-modal .form-field label {
  display: flex;
  align-items: center;
  gap: 4px;
}

.pd-enquiry-modal .req { color: var(--color-green-text); }

.pd-enquiry-modal .form-field textarea { min-height: 110px; }

/* Inline validation */
.field-error {
  display: none;
  margin-top: 5px;
  font-size: var(--text-12);
  color: #c0392b;
}
.form-field.has-error .field-error { display: block; }
.form-field.has-error input,
.form-field.has-error textarea {
  border-color: #c0392b;
  outline-color: #c0392b;
}

.field-count {
  display: block;
  margin-top: 5px;
  font-size: var(--text-12);
  color: var(--color-muted);
  text-align: right;
}

/* --- Footer -------------------------------------------------------------- */
.enq-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-line);
}

.enq-reassure {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: var(--text-12);
  color: var(--color-muted);
}
.enq-reassure i { font-size: 15px; color: var(--color-green); }

.pd-enquiry-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}


.enq-spinner {
  display: none;
  width: 15px;
  height: 15px;
  margin-left: 8px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: var(--color-white);
  border-radius: 50%;
  animation: enq-spin 0.6s linear infinite;
}
.is-submitting .enq-spinner { display: inline-block; }
.is-submitting { pointer-events: none; opacity: 0.85; }

@keyframes enq-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .enq-spinner { animation-duration: 2s; }
}

.enq-alt {
  margin: var(--space-2) 0 0;
  font-size: var(--text-14);
  color: var(--color-subtle);
  text-align: center;
}
.enq-alt a { font-weight: 600; color: var(--color-green-text); }

@media (max-width: 576px) {
  .enq-footer { flex-direction: column; align-items: stretch; }
  .pd-enquiry-actions { flex-direction: column-reverse; }
  .pd-enquiry-actions .btn { width: 100%; justify-content: center; }
}

/* --- Callback ------------------------------------------------------------ */
.enq-callback {
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
  background: var(--color-cream);
}

.enq-callback.is-open {
  border-color: var(--color-green);
  background: var(--color-green-light);
}

.enq-callback-toggle {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  font-weight: 500;
  color: var(--color-ink);
}

.enq-callback-toggle input[type="checkbox"] {
  flex: none;
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: var(--color-green);
  cursor: pointer;
}

.enq-callback-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.enq-callback-title {
  font-size: var(--text-15);
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-ink);
}

.enq-callback-hint {
  font-size: var(--text-10);
  font-weight: 400;
  line-height: 1.4;
  color: var(--color-subtle);
}

.enq-callback-when {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--color-line);
}

.enq-callback-pickers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--space-2);
}

.enq-callback-when .form-field { margin-bottom: 0; }

.enq-callback-note {
  margin: 8px 0 0;
  font-size: var(--text-12);
  line-height: 1.4;
  color: var(--color-muted);
}

.pd-enquiry-modal .enq-callback input[type="date"],
.pd-enquiry-modal .enq-callback input[type="time"] {
  color-scheme: light;
}

@media (max-width: 576px) {
  .enq-callback-pickers { grid-template-columns: minmax(0, 1fr); }
  .enq-callback-when .form-field { margin-bottom: 12px; }
  .enq-callback-when .form-field:last-child { margin-bottom: 0; }
}

/* --- Card "Enquire" action ----------------------------------------------- */
.property-card-actions {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 3;
}


.share-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  background: var(--color-white);
  color: var(--color-charcoal);
  font-size: 18px;
  transition: background-color var(--dur-ui) var(--ease),
              border-color var(--dur-ui) var(--ease),
              color var(--dur-ui) var(--ease),
              transform var(--dur-ui) var(--ease);
}

.share-btn:hover {
  background: var(--color-green);
  border-color: var(--color-green);
  color: var(--color-white);
  transform: translateY(-2px);
}


.share-btn:focus { outline: none; }

.share-btn:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}


.share-btn--copy,
.share-btn--native {
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}


.share-btn--copy.is-copied {
  background: var(--color-green);
  border-color: var(--color-green);
  color: var(--color-white);
}


@media (max-width: 1200px) {
  .pd-grid { grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (max-width: 992px) {
  .pd-grid { grid-template-columns: 1fr; }
  .pd-aside { position: static; }
  .pd-headline { flex-direction: column; align-items: flex-start; gap: var(--space-2); }

  .pd-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 220px 120px 120px 180px;
  }
  .pd-gallery-item--hero { grid-column: 1 / 3; grid-row: 1; }
  .pd-gallery-item--wide { grid-column: 1 / 3; }
  .pd-gallery-map-wrap { grid-column: 1 / 3; grid-row: 4; height: auto; }

  .pd-gallery[data-photos="0"] { grid-template-columns: 1fr; grid-template-rows: 280px; }
  .pd-gallery[data-photos="1"] { grid-template-rows: 220px 200px; }
  .pd-gallery[data-photos="1"] .pd-gallery-map-wrap { grid-column: 1 / 3; grid-row: 2; }
  .pd-gallery[data-photos="2"] { grid-template-rows: 220px 160px 200px; }
  .pd-gallery[data-photos="2"] .pd-gallery-map-wrap { grid-column: 1 / 3; grid-row: 3; }
  .pd-gallery[data-photos="3"] { grid-template-rows: 220px 120px 200px; }
  .pd-gallery[data-photos="3"] .pd-gallery-map-wrap { grid-column: 1 / 3; grid-row: 3; }
  .pd-facts,
  .pd-feature-grid { grid-template-columns: 1fr 1fr; }
  .pd-clause-grid,
  .pd-nearby { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .listing-toolbar { flex-wrap: wrap; }
  .listing-sort { margin-left: 0; width: 100%; }
  .listing-sort-select { flex: 1 1 auto; min-width: 0; }

  
  .pd-spec-row { flex-wrap: wrap; gap: 2px; }
  .pd-spec-row dd { text-align: left; }
}

@media (max-width: 576px) {
  .pd-facts { grid-template-columns: 1fr; }
  .pd-price { font-size: var(--text-34); }
  .pd-enquire { border-radius: var(--radius-lg); }
  .pd-enquire-label { white-space: normal; margin-right: 0; }

  .listing-hero-title { font-size: var(--text-28, 28px); }
  .pd-title { font-size: var(--text-20); }

  .property-card-row { flex-wrap: wrap; gap: 4px; }
  .property-card-price { font-size: var(--text-20); }

  .pd-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: 220px;
    grid-auto-rows: 180px;
  }
  .pd-gallery-item--hero,
  .pd-gallery-map-wrap { grid-column: 1; grid-row: auto; }
  .pd-gallery-item--wide { grid-column: 1; }
  .pd-gallery-map-wrap { min-height: 200px; }
  .pd-gallery[data-photos="0"] { grid-template-rows: 240px; grid-auto-rows: auto; }
  .pd-gallery[data-photos="1"] .pd-gallery-map-wrap,
  .pd-gallery[data-photos="2"] .pd-gallery-map-wrap,
  .pd-gallery[data-photos="3"] .pd-gallery-map-wrap {
    grid-column: 1;
    grid-row: auto;
  }

  
  .pd-brochure-body { padding: 8px; }
  .pd-brochure-loading { inset: 8px; padding: var(--space-2); }
}


@media (hover: none) {
  .pd-floorplan-zoom { opacity: 1; }
}


@media (max-width: 1200px) {
  .search-bar { flex-wrap: wrap; border-radius: var(--radius-lg); }
  .search-bar .search-field { flex: 1 1 160px; }
  
  .search-bar .search-field--text { flex: 1 1 100%; }
}

@media (max-width: 576px) {
  .search-bar .search-field { flex: 1 1 100%; }
}

.pd-related .property-card {
  height: 100%;
}
