/* Single project page (redesign). Scoped under main.pp */
.pp { background: var(--ui-ground); color: var(--ui-ink); }
.pp .pp-note { font-size: 13px; line-height: 1.5; color: var(--ui-muted); }
.pp .screen-reader-text { position: absolute; left: 0; top: 0; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Title + gallery ---------- */
.pp-top { display: flex; flex-direction: column; gap: 20px; padding-top: 28px; }
.pp-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pp-breadcrumbs [aria-current] { color: var(--ui-ink); font-weight: 600; }
.pp-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; }
.pp-head__main { display: flex; flex-direction: column; gap: 14px; min-width: 0; flex: 1 1 520px; }
.pp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-chips .ui-chip { font-size: 12px; font-weight: 700; }
.pp .pp-chip--tint { background: var(--ui-tint); color: var(--ui-accent-deep); }
.pp-title { margin: 0; font-size: clamp(36px, 4.4vw, 56px); line-height: 1; font-weight: 800; letter-spacing: -0.035em; text-wrap: balance; }
.pp-place { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 16px; color: var(--ui-body); }
.pp-place .atlas-icon { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; color: var(--ui-accent); }
.pp-place a { color: inherit; text-decoration: none; }
.pp-place a:hover { color: var(--ui-accent); }
.pp-place .pp-place__dev { font-weight: 700; color: var(--ui-ink); text-decoration: underline; text-underline-offset: 3px; }
.pp-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-action { min-height: 44px; padding: 0 16px; font-size: 14px; }
.pp-action .atlas-icon, .pp-action svg { width: 18px; height: 18px; }
.pp-action[aria-pressed="true"] { border-color: var(--ui-accent); color: var(--ui-accent); background: var(--ui-tint); }
.pp-action[aria-pressed="true"] .atlas-icon { fill: currentColor; }

.pp .pp-gallery { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; height: clamp(360px, 40vw, 540px); min-height: 0; overflow: visible; border-radius: 0; }
.pp .pp-gallery--1 { grid-template-columns: 1fr; }
.pp .pp-gallery .project-gallery__main { position: relative; overflow: hidden; border-radius: 32px; background: var(--ui-line); }
.pp .pp-gallery .project-gallery__side { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; min-height: 0; }
.pp .pp-gallery--2 .project-gallery__side { grid-template-rows: 1fr; }
.pp .pp-gallery .project-gallery__side .project-gallery__trigger { overflow: hidden; border-radius: var(--ui-radius); background: var(--ui-line); }
.pp .pp-gallery .project-gallery__trigger img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pp .pp-gallery .project-image-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--ui-tint), var(--ui-line)); }
.pp .pp-gallery__save { top: 16px; right: 16px; display: none; }
.pp .pp-gallery__all { right: 16px; bottom: 16px; z-index: 3; min-height: 44px; padding: 0 16px; gap: 8px; border: 0; border-radius: 999px; background: var(--ui-accent); color: #fff; font-size: 14px; font-weight: 700; box-shadow: var(--ui-shadow); }
.pp .pp-gallery__all:hover { background: var(--ui-accent-hover); }
.pp .pp-gallery__all svg { width: 16px; height: 16px; }

/* ---------- Body layout ---------- */
.pp-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px 40px; padding-top: 40px; }
.pp-main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 56px; }
.pp-side { flex: 1 1 340px; max-width: 420px; min-width: 0; position: sticky; top: 24px; }

.pp-block { display: flex; flex-direction: column; gap: 16px; min-width: 0; scroll-margin-top: 24px; }
.pp-block__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; }
.pp .pp-h2 { margin: 0; font-size: 28px; line-height: 1.1; font-weight: 800; letter-spacing: -0.03em; }
.pp .pp-h3 { margin: 12px 0 0; font-size: 18px; font-weight: 800; letter-spacing: -0.01em; }
.pp-panel { padding: 32px; border-radius: 32px; background: var(--ui-panel); border: 1px solid var(--ui-line); }
.pp-link { width: max-content; max-width: 100%; padding: 0; border: 0; background: none; color: var(--ui-ink); font-size: 15px; font-weight: 700; text-align: left; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.pp-link:hover { color: var(--ui-accent); }

.pp-summary { display: flex; flex-direction: column; gap: 6px; padding: 20px 24px; border-left: 4px solid var(--ui-accent); border-radius: 0 var(--ui-radius-sm) var(--ui-radius-sm) 0; background: var(--ui-panel); }
.pp-summary strong { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-accent); }
.pp-summary p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--ui-body); }

/* Key specs */
.pp-specs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 12px; }
.pp-specs li { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; min-height: 104px; padding: 20px 20px 22px; border-radius: var(--ui-radius); background: var(--ui-tint); box-sizing: border-box; }
.pp-specs__copy { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pp-specs__copy span { font-size: 14px; color: var(--ui-body); }
.pp-specs__copy strong { font-size: 18px; font-weight: 800; color: #1B2B6B; overflow-wrap: anywhere; }
.pp-specs__icon { width: 22px; height: 22px; flex: 0 0 auto; color: var(--ui-accent); }

.pp-prose { max-width: 760px; }
.pp-prose > *:first-child { margin-top: 0; }
.pp-prose p { font-size: 17px; line-height: 1.6; color: var(--ui-body); }

/* Amenities */
.pp-amenities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 18px 24px; }
.pp-amenities li { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 600; color: var(--ui-body); }
.pp-amenities__icon { display: inline-grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; border-radius: 12px; background: var(--ui-tint); color: var(--ui-accent); }
.pp-amenities__icon .atlas-icon { width: 18px; height: 18px; }

/* Tables */
.pp-table-wrap { overflow-x: auto; padding: 8px 12px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.pp-table { width: 100%; border-collapse: collapse; }
.pp-table th, .pp-table td { padding: 14px 12px; border-bottom: 1px solid var(--ui-line-soft); font-size: 15px; text-align: left; white-space: nowrap; }
.pp-table tbody tr:last-child > * { border-bottom: 0; }
.pp-table thead th { position: relative; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-muted); }
.pp-table tbody th { font-weight: 700; color: var(--ui-ink); white-space: normal; min-width: 160px; }
.pp-table__price { font-weight: 800; }
.pp-table__muted { color: var(--ui-muted); }
.pp-table__action { text-align: right; }
.pp-table__action .pp-link { margin-left: auto; font-size: 14px; }
.pp-empty { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 24px; border-radius: var(--ui-radius); background: var(--ui-panel); border: 1px solid var(--ui-line); }
.pp-empty p { margin: 0; max-width: 520px; color: var(--ui-body); line-height: 1.55; }
.pp-docs { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-docs .ui-pill-link { gap: 8px; }
.pp-docs .atlas-icon { width: 16px; height: 16px; color: var(--ui-accent); }

/* Purchase cost (calculator) */
.pp .project-payments { padding: 0; border: 0; }
.pp-units { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-units button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 52px; padding: 8px 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-panel); color: var(--ui-ink); cursor: pointer; }
.pp-units button span { font-size: 12px; font-weight: 600; color: var(--ui-muted); }
.pp-units button strong { font-size: 15px; font-weight: 800; }
.pp-units button:hover { border-color: var(--ui-accent); }
.pp-units button[aria-pressed="true"] { border-color: var(--ui-accent); background: var(--ui-tint); box-shadow: inset 0 0 0 1px var(--ui-accent); }
.pp-costs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 12px; align-items: stretch; }
.pp-costs__card { display: flex; flex-direction: column; gap: 14px; padding: 22px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.pp-costs__input input { width: 100%; }
.pp-costs__rows { margin: 0; }
.pp-costs__rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--ui-line-soft); font-size: 15px; }
.pp-costs__rows dt { color: var(--ui-body); }
.pp-costs__rows dd { margin: 0; font-weight: 700; text-align: right; }
.pp-costs__rows .pp-costs__zero { color: var(--ui-accent); }
.pp-costs__rows .pp-costs__total { border-bottom: 0; padding-top: 16px; font-size: 17px; }
.pp-costs__total dt, .pp-costs__total dd { font-weight: 800; color: var(--ui-ink); }
.pp-costs__visa { margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--ui-ground); color: var(--ui-body); font-size: 14px; }
.pp-costs__visa.is-eligible { background: var(--ui-tint); color: var(--ui-accent-deep); font-weight: 700; }
.pp-costs__whatsapp { align-self: flex-start; white-space: normal; text-align: center; }
.pp-costs__whatsapp svg { width: 18px; height: 18px; }
.pp-plan { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: var(--ui-radius); background: #DDF4FF; }
.pp-plan__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pp-plan__first { display: flex; flex-direction: column; gap: 2px; }
.pp-plan__first span, .pp-plan__first small { font-size: 13px; color: var(--ui-body); }
.pp-plan__first strong { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; }
.pp-plan__stages { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-plan__stages li { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--ui-radius-sm); background: rgba(255, 255, 255, .78); }
.pp-plan__stages b { font-size: 18px; font-weight: 800; color: var(--ui-accent-deep); }
.pp-plan__label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pp-plan__label strong { font-size: 14px; font-weight: 700; }
.pp-plan__label small { font-size: 12px; color: var(--ui-muted); }
.pp-plan__amount { font-size: 14px; font-weight: 700; text-align: right; }
.pp-plan__empty { font-size: 20px; line-height: 1.25; font-weight: 800; }
.pp-plan__text { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ui-body); }
.pp-plan .ui-btn { align-self: flex-start; margin-top: auto; white-space: normal; }

/* Timeline */
.pp-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 8px; }
.pp-timeline li { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: var(--ui-radius); background: var(--ui-panel); border: 1px solid var(--ui-line); }
.pp-timeline__dot { width: 12px; height: 12px; border-radius: 999px; border: 2px solid #C3CCDD; box-sizing: border-box; }
.pp-timeline__date, .pp-timeline__state { font-size: 13px; color: var(--ui-muted); }
.pp-timeline li strong { font-size: 16px; font-weight: 800; }
.pp-timeline li.is-complete { background: var(--ui-accent); border-color: var(--ui-accent); color: #fff; }
.pp-timeline li.is-complete .pp-timeline__dot { border: 0; background: #7FD8FF; }
.pp-timeline li.is-complete .pp-timeline__date { color: rgba(255, 255, 255, .8); }
.pp-timeline li.is-complete .pp-timeline__state { color: #D9E5FF; font-weight: 700; }

/* Details */
.pp-details { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 0 32px; padding: 8px 24px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.pp-details > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--ui-line-soft); }
.pp-details dt { font-size: 14px; color: var(--ui-muted); }
.pp-details dd { margin: 0; font-size: 15px; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.pp-details dd a { color: var(--ui-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--ui-line); }
.pp-details dd a:hover { color: var(--ui-accent); }
.pp-dld .dld-record summary { min-height: 44px; font-size: 14px; color: var(--ui-accent); }
.pp-dld .dld-record__body { padding: 18px; border-radius: var(--ui-radius-sm); background: var(--ui-panel); }
.pp-dld .dld-record__body > strong { font-size: 15px; }
.pp-dld .dld-record__facts { margin: 0; }
.pp-dld .dld-record__facts div { display: flex; justify-content: space-between; gap: 14px; padding: 8px 0; border-bottom: 1px solid var(--ui-line-soft); }
.pp-dld .dld-record__facts div:last-child { border-bottom: 0; }
.pp-dld .dld-record__facts dt, .pp-dld .dld-record__facts dd { margin: 0; font-size: 13px; }
.pp-dld .dld-record__facts dt { color: var(--ui-muted); }
.pp-dld .dld-record__source { font-size: 13px; color: var(--ui-accent-deep); }

/* Location */
.pp-maps-link { min-height: 44px; font-size: 14px; }
.pp-maps-link .atlas-icon { width: 16px; height: 16px; }
.pp .pp-map { margin: 0; border-radius: var(--ui-radius); border-color: var(--ui-line); }
.pp .pp-map .project-map { height: 380px; background: #E8EEF6; }
.pp .pp-map .project-map__status { font-size: 13px; }
.pp .pp-map .project-map__place strong { font-size: 13px; }
.pp .pp-map .project-map__place span { font-size: 12px; }
.pp-address { margin: 0; }
.pp-nearby { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 8px; }
.pp-nearby li { display: grid; grid-template-columns: 20px auto 1fr; align-items: center; gap: 8px; padding: 12px 14px; border-radius: var(--ui-radius-sm); background: var(--ui-panel); border: 1px solid var(--ui-line); font-size: 14px; }
.pp-nearby .atlas-icon { width: 18px; height: 18px; color: var(--ui-accent); }

/* FAQ */
.pp .pp-faq .faq-list summary { font-size: 16px; }

/* Developer */
.pp-developer { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding: 24px; color: var(--ui-ink); text-decoration: none; }
.pp-developer:hover { color: var(--ui-ink); }
.pp-developer__logo { display: inline-grid; place-items: center; width: 120px; height: 64px; flex: 0 0 auto; padding: 8px; border-radius: var(--ui-radius-sm); background: var(--ui-ground); box-sizing: border-box; overflow: hidden; }
.pp-developer__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.pp-developer__logo .developer-logo__fallback { font-size: 18px; font-weight: 800; color: var(--ui-accent); }
.pp-developer__copy { display: flex; flex-direction: column; gap: 4px; flex: 1 1 240px; min-width: 0; }
.pp-developer__copy strong { font-size: 20px; font-weight: 800; }
.pp-developer__copy span { font-size: 14px; color: var(--ui-muted); }
.pp-developer__cta { min-height: 44px; background: var(--ui-ground); border-color: transparent; font-size: 14px; }

/* Sales sidebar */
.pp-sales { display: flex; flex-direction: column; gap: 18px; padding: 28px; border-radius: 32px; background: var(--ui-panel); border: 1px solid var(--ui-line); box-shadow: 0 20px 50px rgba(36, 56, 120, .08); }
.pp-sales__price { display: flex; flex-direction: column; gap: 4px; }
.pp-sales__price span { font-size: 13px; color: var(--ui-muted); }
.pp-sales__price strong { font-size: clamp(30px, 2.8vw, 40px); font-weight: 800; letter-spacing: -0.035em; line-height: 1; }
.pp-sales__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pp-sales__facts div { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: var(--ui-radius-sm); background: var(--ui-ground); }
.pp-sales__facts span { font-size: 12px; color: var(--ui-muted); }
.pp-sales__facts strong { font-size: 16px; font-weight: 800; }
.pp-sales__form { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.pp-sales__form .ui-field { border: 1px solid var(--ui-line); }
.pp-sales__btn { width: 100%; min-height: 52px; border-radius: var(--ui-radius-sm); font-size: 16px; white-space: normal; text-align: center; }
.pp-sales__wa { background: var(--ui-tint); color: var(--ui-accent-deep); }
.pp-sales__wa:hover { background: #DCE5FF; color: var(--ui-accent-deep); }
.pp-sales__wa svg { width: 20px; height: 20px; }
.pp-sales__links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 16px; }
.pp-sales__links .pp-link { font-size: 14px; min-height: 32px; }
.pp-sales__manager { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--ui-line-soft); }
.pp-sales__avatar { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: 0 0 auto; border-radius: 999px; background: var(--ui-accent); color: #fff; font-size: 12px; font-weight: 800; }
.pp-sales__manager > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.pp-sales__manager strong { font-size: 14px; }
.pp-sales__manager small { font-size: 13px; color: var(--ui-muted); }

/* Related */
.pp-related .ui-section__head { margin-bottom: 24px; }
.pp-related .project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pp .pp-related .ui-btn { min-height: 44px; font-size: 14px; }

/* Mobile sticky CTA */
.pp-mobile-cta { display: none; }

@media (max-width: 1100px) {
  .pp-related .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .pp-related .project-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .pp .pp-gallery { grid-template-columns: 1fr; height: auto; }
  .pp .pp-gallery .project-gallery__main { height: clamp(280px, 62vw, 460px); }
  .pp .pp-gallery .project-gallery__side { display: none; }
  .pp-main { gap: 44px; }
  .pp { padding-bottom: 84px; }
  .pp-side { position: static; max-width: none; flex-basis: 100%; }
  .pp-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: flex; align-items: center; gap: 10px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); background: var(--ui-panel); border-top: 1px solid var(--ui-line-soft); box-shadow: 0 -8px 24px rgba(36, 56, 120, .08); }
  .pp-mobile-cta__price { display: flex; flex-direction: column; flex: 1; min-width: 0; }
  .pp-mobile-cta__price small { font-size: 12px; color: var(--ui-muted); }
  .pp-mobile-cta__price strong { font-size: 18px; font-weight: 800; color: var(--ui-accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pp-mobile-cta__wa { display: inline-grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 16px; background: var(--ui-tint); color: var(--ui-accent-deep); }
  .pp-mobile-cta__wa svg { width: 22px; height: 22px; }
  .pp-mobile-cta__btn { min-height: 52px; padding: 0 20px; border: 0; border-radius: 16px; background: var(--ui-accent); color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }
  .pp-mobile-cta__btn:hover { background: var(--ui-accent-hover); }
  .pp-panel { padding: 24px; border-radius: var(--ui-radius); }
}

@media (max-width: 760px) {
  .pp-top { padding-top: 0; gap: 16px; }
  .pp .pp-gallery { order: -1; margin: 0 calc(-1 * var(--ui-pad)); }
  .pp .pp-gallery .project-gallery__main { height: 330px; border-radius: 0; }
  .pp .pp-gallery__save { display: grid; }
  .pp .pp-gallery__all { bottom: 34px; }
  .pp-head { margin-top: -38px; position: relative; z-index: 3; padding: 22px var(--ui-pad) 0; margin-inline: calc(-1 * var(--ui-pad)); border-radius: 28px 28px 0 0; background: var(--ui-ground); }
  .pp-head__main { flex-basis: 100%; gap: 12px; }
  .pp-title { font-size: 32px; }
  .pp-place { font-size: 14px; }
  .pp-action { flex: 1 1 0; padding: 0 10px; font-size: 13px; }
  .pp-actions { width: 100%; }
  .pp-actions [data-favorite] { display: none; }
  .pp-breadcrumbs { display: none; }
  .pp-body { padding-top: 28px; }
  .pp .pp-h2 { font-size: 24px; }
  .pp-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pp-specs li { min-height: 0; padding: 14px; border-radius: 16px; }
  .pp-specs__copy span { font-size: 12px; }
  .pp-specs__copy strong { font-size: 15px; }
  .pp-specs__icon { display: none; }
  .pp-table-wrap { padding: 4px 8px; }
  .pp-table th, .pp-table td { padding: 12px 8px; font-size: 14px; }
  .pp-table tbody th { min-width: 130px; }
  .pp-plan__stages li { grid-template-columns: 52px minmax(0, 1fr); }
  .pp-plan__amount { grid-column: 2; text-align: left; }
  .pp-details { padding: 4px 16px; }
  .pp-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-timeline li { padding: 14px; gap: 6px; }
  .pp-timeline li strong { font-size: 14px; }
  .pp .pp-map .project-map { height: 280px; }
  .pp-sales { padding: 22px; border-radius: var(--ui-radius); }
}

/* find.reelly.io units: bedroom filter, sq.ft/m² toggle, group accordions with layouts. */
.pp-units-x { display: flex; flex-direction: column; gap: 12px; }
.pp-units-x__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.pp-units-x__filters { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-units-x__filters button { min-height: 40px; padding: 0 16px; border: 1px solid var(--ui-line); border-radius: 999px; background: var(--ui-panel); color: var(--ui-ink); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.pp-units-x__filters button:hover { border-color: var(--ui-accent); }
.pp-units-x__filters button[aria-pressed="true"] { border-color: var(--ui-accent); background: var(--ui-accent); color: #fff; }
.pp-units-x__toggle { display: inline-flex; overflow: hidden; border: 1px solid var(--ui-line); border-radius: 999px; background: var(--ui-panel); }
.pp-units-x__toggle button { min-height: 40px; padding: 0 14px; border: 0; background: none; color: var(--ui-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.pp-units-x__toggle button[aria-pressed="true"] { background: var(--ui-ink); color: #fff; }
.pp-ugroup { overflow: hidden; border: 1px solid var(--ui-line); border-left: 4px solid var(--pp-ugroup, var(--ui-accent)); border-radius: var(--ui-radius-sm); background: var(--ui-panel); }
.pp-ugroup[hidden] { display: none; }
.pp-ugroup__head { width: 100%; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, 1.3fr) minmax(0, 1.2fr) 40px; align-items: center; gap: 16px; padding: 16px 16px 16px 20px; border: 0; background: none; color: var(--ui-ink); font: inherit; text-align: left; cursor: pointer; }
.pp-ugroup__head:hover, .pp-ugroup__head[aria-expanded="true"] { background: var(--ui-ground); }
.pp-ugroup__head strong { font-size: 17px; font-weight: 800; }
.pp-ugroup__count, .pp-ugroup__size { font-size: 15px; color: var(--ui-body); white-space: nowrap; }
.pp-ugroup__price { font-size: 17px; font-weight: 800; white-space: nowrap; }
.pp-ugroup__chev { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--ui-line); border-radius: 12px; background: var(--ui-panel); transition: transform .2s; }
.pp-ugroup__chev .atlas-icon { width: 18px; height: 18px; }
.pp-ugroup__head[aria-expanded="true"] .pp-ugroup__chev { transform: rotate(90deg); }
.pp-table-wrap--flat { padding: 0 8px; border: 0; border-top: 1px solid var(--ui-line); border-radius: 0; }
.pp-utable tr[hidden] { display: none; }
.pp-utable td { vertical-align: middle; }
.pp-utable td.pp-table__action { width: 1%; text-align: right; }
.pp-utable__thumb { display: inline-grid; place-items: center; width: 60px; height: 60px; overflow: hidden; border: 1px solid var(--ui-line); border-radius: 12px; background: var(--ui-ground); }
.pp-utable__thumb img { width: 100%; height: 100%; object-fit: contain; }
.pp-utable__thumb--empty .atlas-icon { width: 26px; height: 26px; color: var(--ui-muted); }
.pp-utable__price { display: flex; flex-direction: column; gap: 2px; }
.pp-utable__price strong { font-weight: 800; }
.pp-utable__price small { font-size: 12px; color: var(--ui-muted); }
.pp-utable__actions { display: inline-flex; justify-content: flex-end; gap: 8px; }
.pp-utable__view { width: 44px; min-height: 44px; padding: 0; justify-content: center; }
.pp-utable__view .atlas-icon { width: 18px; height: 18px; }
.pp-utable__request { min-height: 44px; padding: 0 16px; font-size: 14px; }
.pp-ugroup__more { width: 100%; min-height: 48px; border: 0; border-top: 1px solid var(--ui-line); background: var(--ui-panel); color: var(--ui-accent-deep); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.pp-ugroup__more:hover { background: var(--ui-tint); }
.pp-units-x__summary { display: grid; gap: 12px; margin-top: 4px; }
.pp-units-x__summary--two { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.pp-ucard { overflow: hidden; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-panel); }
.pp-ucard h3 { margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--ui-line); background: var(--ui-ground); font-size: 16px; font-weight: 800; }
.pp-ucard ul { list-style: none; margin: 0; padding: 4px 20px 8px; }
.pp-ucard li { display: grid; grid-template-columns: 14px minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ui-line-soft); font-size: 15px; }
.pp-ucard li:last-child { border-bottom: 0; }
.pp-ucard__dot { width: 12px; height: 12px; border-radius: 3px; }
.pp-ucard__muted { color: var(--ui-muted); }
.pp-ucard li.pp-ucard__parking { grid-template-columns: 22px auto minmax(0, 1fr); }
.pp-ucard__parking .atlas-icon { width: 20px; height: 20px; color: var(--ui-accent); }
.pp-ucard__parking .pp-ucard__muted { text-align: right; }

/* Photo groups (exterior / interiors / lobby). */
.pp-photo-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 16px; }
.pp-photo-group { display: flex; flex-direction: column; gap: 10px; padding: 0; border: 0; background: none; color: var(--ui-ink); font: inherit; text-align: left; cursor: pointer; }
.pp-photo-group__media { position: relative; display: block; overflow: hidden; border-radius: var(--ui-radius-sm); background: var(--ui-line); }
.pp-photo-group__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .3s; }
.pp-photo-group:hover img { transform: scale(1.03); }
.pp-photo-group__count { position: absolute; left: 10px; top: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .92); font-size: 12px; font-weight: 700; }
.pp-photo-group strong { font-size: 16px; font-weight: 800; }

/* Payment plans: tabs, stage bar. */
.pp-plan__tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-plan__tabs button { min-height: 40px; padding: 0 14px; border: 1px solid rgba(20, 27, 45, .14); border-radius: 999px; background: rgba(255, 255, 255, .7); color: var(--ui-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.pp-plan__tabs button[aria-selected="true"] { border-color: var(--ui-ink); background: var(--ui-ink); color: #fff; }
.pp-plan__panel { display: flex; flex-direction: column; gap: 12px; }
.pp-plan__panel[hidden] { display: none; }
.pp-plan__bar { display: flex; height: 12px; overflow: hidden; border-radius: 6px; background: rgba(255, 255, 255, .6); }
.pp-plan__bar span { border-right: 2px solid #fff; }
.pp-plan__bar span:last-child { border-right: 0; }
.pp-plan__panel .pp-plan__stages li { box-shadow: inset 4px 0 0 var(--pp-stage, var(--ui-accent)); }
.pp-plan__after { margin: 0; font-size: 14px; font-weight: 700; }

/* Amenity photos, nearby with distance, master plan. */
.pp-amenity-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); gap: 16px; }
.pp-amenity-photos figure { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-amenity-photos img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--ui-radius-sm); background: var(--ui-line); }
.pp-amenity-photos figcaption { font-size: 15px; font-weight: 600; color: var(--ui-body); }
.pp-amenity-photos__plain { display: flex; align-items: center; align-self: start; gap: 12px; padding: 12px 14px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-panel); font-size: 15px; font-weight: 600; color: var(--ui-body); }
.pp-nearby-x { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-line); }
.pp-nearby-x li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--ui-panel); font-size: 15px; }
.pp-nearby-x li > span { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pp-nearby-x .atlas-icon { width: 16px; height: 16px; flex: 0 0 auto; color: var(--ui-accent); }
.pp-nearby-x small { font-size: 13px; color: var(--ui-muted); white-space: nowrap; }
.pp-masterplan { display: block; overflow: hidden; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.pp-masterplan img { display: block; width: 100%; height: auto; }

@media (max-width: 760px) {
  .pp-ugroup__head { grid-template-columns: minmax(0, 1fr) auto 40px; gap: 10px; padding: 14px 12px 14px 16px; }
  .pp-ugroup__count, .pp-ugroup__size { display: none; }
  .pp-ugroup__price { font-size: 15px; }
  .pp-utable thead { display: none; }
  .pp-utable tr { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 4px 12px; padding: 12px 4px; border-bottom: 1px solid var(--ui-line-soft); }
  .pp-utable tr:last-child { border-bottom: 0; }
  .pp-utable td { padding: 0; border: 0; white-space: normal; }
  .pp-utable__plan { grid-row: span 3; }
  .pp-utable td.pp-table__action { width: auto; text-align: left; }
  .pp-utable__actions { justify-content: flex-start; }
  .pp-units-x__summary--two { grid-template-columns: 1fr; }
  .pp-ucard li { grid-template-columns: 12px minmax(0, 1fr) auto; }
  .pp-ucard li > .pp-ucard__muted:last-child:not(:only-child) { grid-column: 2 / -1; }
}
