:root {
  --dps-ink: #17221f;
  --dps-muted: #66716d;
  --dps-forest: #173f35;
  --dps-sage: #dfe8e3;
  --dps-cream: #f6f4ef;
  --dps-gold: #b29463;
  --dps-line: #dfe3df;
  --dps-white: #fff;
  --dps-radius: 3px;
}
html.dps-no-scroll { overflow: hidden; }
body.dps-standalone-page { margin: 0; color: var(--dps-ink); background: var(--dps-cream); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.dps-shell { width: 100%; max-width: 100%; min-height: 100vh; overflow-x: hidden; color: var(--dps-ink); background: var(--dps-cream); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.65; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.dps-shell *, .dps-shell *::before, .dps-shell *::after { box-sizing: border-box; }
.dps-shell button, .dps-shell input { font: inherit; }
.dps-shell img { max-width: 100%; }
.dps-topbar { height: 94px; padding: 18px clamp(24px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; background: var(--dps-white); border-bottom: 1px solid var(--dps-line); }
.dps-brand { display: inline-flex; align-items: center; color: var(--dps-forest); font-family: Georgia, serif; font-size: 25px; font-weight: 700; text-decoration: none; }
.dps-brand img { width: auto; max-width: 220px; max-height: 58px; display: block; }
.dps-top-actions { display: flex; align-items: center; gap: 22px; }
.dps-private-label { color: var(--dps-muted); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.dps-print, .dps-share { border: 1px solid var(--dps-forest); color: var(--dps-forest); background: transparent; padding: 9px 16px; cursor: pointer; }
.dps-share { color: var(--dps-white); background: var(--dps-forest); }
.dps-introduction { max-width: 1240px; margin: 0 auto; padding: clamp(42px, 5vw, 70px) clamp(32px, 4vw, 56px) clamp(35px, 4vw, 55px); }
.dps-eyebrow { margin: 0 0 13px; color: var(--dps-gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.dps-introduction h1 { max-width: 850px; margin: 0; font: 400 clamp(42px, 7vw, 90px)/.98 Georgia, 'Times New Roman', serif; letter-spacing: -.035em; }
.dps-intro-copy { max-width: 720px; margin-top: 32px; color: #48524f; font-size: clamp(17px, 2vw, 20px); }
.dps-intro-copy p { margin: 0 0 1em; }
.dps-selection-meta { display: flex; gap: 28px; margin-top: 24px; color: var(--dps-muted); font-size: 13px; }
.dps-selection-meta span + span { position: relative; }
.dps-selection-meta span + span::before { content: ''; width: 3px; height: 3px; border-radius: 50%; background: var(--dps-gold); position: absolute; left: -16px; top: .8em; }
.dps-map-overview { max-width: 1240px; margin: 0 auto clamp(30px, 4vw, 42px); padding: 0 clamp(32px, 4vw, 56px); }
.dps-map-overview-header { display: flex; align-items: end; justify-content: space-between; gap: 34px; margin-bottom: 18px; }
.dps-map-overview-header > div { max-width: 780px; }
.dps-map-overview-header h2 { margin: 0; color: var(--dps-forest); font: 400 clamp(31px, 4vw, 50px)/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.dps-map-overview-header > div > p:last-child { max-width: 680px; margin: 10px 0 0; color: var(--dps-muted); }
.dps-map-overview-header button { flex: 0 0 auto; border: 1px solid var(--dps-forest); padding: 10px 16px; color: var(--dps-forest); background: transparent; cursor: pointer; }
.dps-map-overview-header button:hover, .dps-map-overview-header button:focus-visible { color: var(--dps-white); background: var(--dps-forest); }
.dps-map-canvas-wrap { position: relative; display: none; overflow: hidden; border: 1px solid #cfd9d4; background: var(--dps-sage); }
.dps-map-overview.is-open .dps-map-canvas-wrap { display: block; }
.dps-map-canvas { width: 100%; height: clamp(370px, 46vw, 555px); z-index: 1; }
.dps-map-status { position: absolute; z-index: 2; inset: 50% auto auto 50%; width: min(420px, calc(100% - 40px)); margin: 0; padding: 16px 20px; transform: translate(-50%, -50%); color: var(--dps-forest); background: rgb(255 255 255 / 94%); text-align: center; }
.dps-map-status[hidden] { display: none; }
.dps-map-overview .leaflet-control-attribution { font-size: 9px; }
.dps-map-marker { border: 0 !important; background: transparent !important; }
.dps-map-marker span { width: 40px; height: 40px; display: grid; place-items: center; border: 3px solid var(--dps-white); border-radius: 50% 50% 50% 8%; color: var(--dps-white); background: var(--dps-forest); box-shadow: 0 5px 18px rgb(14 35 29 / 35%); transform: rotate(-45deg); transition: background .16s ease, transform .16s ease; }
.dps-map-marker b { font-size: 14px; line-height: 1; transform: rotate(45deg); }
.dps-map-marker.is-stack span { background: var(--dps-gold); box-shadow: 4px -4px 0 var(--dps-white), 7px -7px 0 var(--dps-forest), 0 5px 18px rgb(14 35 29 / 35%); }
.dps-map-marker.is-stack b { font-size: 12px; }
.dps-map-marker.is-active span, .dps-map-marker:hover span { background: var(--dps-gold); transform: rotate(-45deg) scale(1.12); }
.dps-map-popup { width: min(250px, 62vw); }
.dps-map-popup-image { width: calc(100% + 40px); height: 125px; display: block; margin: -14px -20px 13px; overflow: hidden; }
.dps-map-popup-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .2s ease; }
.dps-map-popup-image:hover img, .dps-map-popup-image:focus-visible img { transform: scale(1.025); }
.dps-map-popup > div { display: flex; flex-direction: column; gap: 4px; }
.dps-map-popup small { color: var(--dps-gold); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dps-map-popup-title { color: var(--dps-forest); font: 400 18px/1.2 Georgia, 'Times New Roman', serif; text-decoration: none; }
.dps-map-popup-title:hover, .dps-map-popup-title:focus-visible { color: var(--dps-gold); text-decoration: underline; }
.dps-map-popup span { color: var(--dps-muted); font-size: 11px; line-height: 1.4; }
.dps-map-popup .dps-map-popup-specs { color: var(--dps-forest); font-weight: 700; }
.dps-map-popup > div > a:not(.dps-map-popup-title) { width: max-content; margin-top: 6px; color: var(--dps-forest); font-size: 11px; font-weight: 700; }
.dps-map-popup-group { width: min(310px, 72vw); max-height: 340px; display: flex; flex-direction: column; overflow: auto; }
.dps-map-popup-group-item { min-height: 74px; display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; align-items: stretch; padding: 8px 0; color: inherit; border-bottom: 1px solid var(--dps-line); text-decoration: none; }
.dps-map-popup-group-item:last-child { border-bottom: 0; }
.dps-map-popup-group-item img, .dps-map-popup-group-placeholder { width: 82px; height: 66px; display: block; object-fit: cover; background: var(--dps-sage); }
.dps-map-popup-group-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.dps-map-popup-group-copy strong { color: var(--dps-forest); font: 400 15px/1.2 Georgia, 'Times New Roman', serif; }
.dps-map-popup-group-copy small { color: var(--dps-muted); font-size: 10px; line-height: 1.35; }
.dps-map-popup-group-copy .dps-map-popup-group-specs { color: var(--dps-forest); font-weight: 700; }
.dps-map-popup-group-item:hover strong, .dps-map-popup-group-item:focus-visible strong { color: var(--dps-gold); text-decoration: underline; }
.dps-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1240px; margin: 0 auto; padding: 0 clamp(32px, 4vw, 56px) clamp(36px, 4vw, 48px); gap: 22px; }
.dps-overview-card { min-width: 0; display: flex; flex-direction: column; color: inherit; background: var(--dps-white); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.dps-overview-card:hover, .dps-overview-card.is-map-active { transform: translateY(-3px); box-shadow: 0 18px 40px rgb(25 45 38 / 16%); }
.dps-overview-image { position: relative; display: block; overflow: hidden; aspect-ratio: 4/3; background: var(--dps-sage) center/cover no-repeat; }
.dps-overview-image-link { position: absolute; z-index: 1; inset: 0; }
.dps-overview-image-link:focus-visible { outline: 3px solid var(--dps-gold); outline-offset: -5px; }
.dps-overview-availability { position: absolute; z-index: 2; left: 16px; top: 16px; max-width: calc(50% - 20px); padding: 8px 11px; color: var(--dps-white); background: #a43f36; font-size: 10px; line-height: 1.25; letter-spacing: .09em; text-align: center; text-transform: uppercase; }
.dps-overview-availability-sold { background: #4c5551; }
.dps-overview-availability-new { background: var(--dps-forest); }
.dps-overview-availability-new_build { background: var(--dps-gold); }
.dps-overview-availability-recently_reduced { background: #8b6b31; }
.dps-overview-availability-property_visited { background: #376f68; }
.dps-overview-availability-property_viewing_scheduled { background: #355c7d; }
.dps-overview-feedback { position: absolute; z-index: 3; right: 16px; top: 16px; max-width: calc(50% - 20px); padding: 8px 11px; color: var(--dps-white); background: var(--dps-forest); font-size: 10px; line-height: 1.25; letter-spacing: .09em; text-align: center; text-transform: uppercase; pointer-events: none; }
.dps-overview-feedback[hidden], .dps-gallery-feedback[hidden] { display: none; }
.dps-overview-number { position: absolute; z-index: 2; left: 16px; bottom: 16px; width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid var(--dps-white); border-radius: 50%; color: var(--dps-white); background: var(--dps-forest); box-shadow: 0 3px 12px rgb(0 0 0 / 24%); font-size: 12px; font-weight: 700; }
.dps-overview-heart { position: absolute; z-index: 2; right: 10px; top: 9px; width: 38px; min-width: 0 !important; height: 38px; display: grid; place-items: center; padding: 0 !important; border: 0 !important; border-radius: 0; color: var(--dps-forest); background: transparent !important; box-shadow: none !important; cursor: pointer; font-size: 0; appearance: none; -webkit-appearance: none; transition: transform .15s ease; }
.dps-overview-heart:hover { transform: scale(1.08); }
.dps-overview-heart:focus-visible { outline: 3px solid var(--dps-gold); outline-offset: 2px; }
.dps-overview-heart:disabled { cursor: wait; opacity: .7; }
.dps-overview-heart svg { width: 24px; height: 24px; overflow: visible; }
.dps-shell .dps-overview-heart path { fill: none !important; stroke: var(--dps-forest) !important; stroke-linecap: round !important; stroke-linejoin: round !important; stroke-width: 2.2 !important; transition: fill .15s ease; }
.dps-overview-heart.is-interested { color: var(--dps-forest); background: transparent !important; }
.dps-shell .dps-overview-heart.is-interested path { fill: var(--dps-forest) !important; stroke: var(--dps-forest) !important; }
.dps-feedback-banner-interested { background: #287052 !important; }
.dps-feedback-banner-maybe { background: #9a742e !important; }
.dps-feedback-banner-pass { background: #76504b !important; }
.dps-overview-copy { position: relative; display: flex; min-height: 158px; flex: 1; flex-direction: column; padding: 20px; color: inherit; text-decoration: none; }
.dps-overview-copy-link { display: flex; min-width: 0; flex: 1; flex-direction: column; color: inherit; text-decoration: none; }
.dps-overview-copy small { min-height: 15px; padding-right: 34px; color: var(--dps-gold); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.dps-overview-copy-link > strong { display: -webkit-box; overflow: hidden; margin: 7px 0 12px; font: 400 21px/1.2 Georgia, 'Times New Roman', serif; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.dps-overview-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px 14px; margin-top: auto; }
.dps-overview-specs { color: var(--dps-muted); font-size: 11px; font-weight: 600; text-align: right; }
.dps-overview-copy em { flex: 0 0 auto; font-style: normal; font-weight: 700; }
.dps-properties { background: var(--dps-white); }
.dps-section-heading { max-width: 1240px; margin: 0 auto; padding: clamp(45px, 5vw, 65px) clamp(32px, 4vw, 56px) 0; }
.dps-section-heading h2 { max-width: 900px; margin: 0; color: var(--dps-forest); font: 400 clamp(40px, 5vw, 68px)/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.dps-section-heading > div { max-width: 760px; margin-top: 20px; color: var(--dps-muted); font-size: 18px; }
.dps-section-heading p { margin: 0 0 1em; }
.dps-section-heading + .dps-property { padding-top: clamp(30px, 3vw, 40px); }
.dps-property { max-width: 1240px; margin: 0 auto; padding: clamp(52px, 5vw, 72px) clamp(32px, 4vw, 56px); scroll-margin-top: 20px; }
.dps-property + .dps-property { border-top: 1px solid var(--dps-line); }
.dps-property-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; margin-bottom: 26px; }
.dps-property-heading h2 { max-width: 850px; margin: 0 0 9px; font: 400 clamp(34px, 4.8vw, 62px)/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.dps-reference { color: var(--dps-muted); font-size: 12px; }
.dps-property-labels { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.dps-availability { display: inline-block; max-width: 100%; padding: 5px 10px; overflow-wrap: anywhere; white-space: normal; color: var(--dps-white); background: #a43f36; font-size: 11px; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; }
.dps-availability-sold { background: #4c5551; }
.dps-availability-new { background: var(--dps-forest); }
.dps-availability-new_build { background: var(--dps-gold); }
.dps-availability-recently_reduced { background: #8b6b31; }
.dps-availability-property_visited { background: #376f68; }
.dps-availability-property_viewing_scheduled { background: #355c7d; }
.dps-price { white-space: nowrap; padding-bottom: 7px; font: 400 clamp(24px, 2.5vw, 34px)/1 Georgia, 'Times New Roman', serif; }
.dps-gallery { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, .78fr); gap: 7px; height: min(58vw, 600px); overflow: hidden; background: var(--dps-sage); }
.dps-gallery button { position: relative; min-width: 0; border: 0; padding: 0; overflow: hidden; cursor: zoom-in; background: #dce5e0; }
.dps-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s ease; }
.dps-gallery button:hover img { transform: scale(1.015); }
.dps-gallery-main .dps-gallery-count { position: absolute; right: 18px; bottom: 18px; padding: 8px 12px; color: var(--dps-ink); background: rgb(255 255 255 / 92%); font-size: 12px; }
.dps-gallery-main .dps-gallery-number { position: absolute; z-index: 2; left: 18px; bottom: 18px; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 2px solid var(--dps-white); border-radius: 50%; color: var(--dps-white); background: var(--dps-forest); box-shadow: 0 3px 12px rgb(0 0 0 / 24%); font-size: 12px; font-weight: 700; line-height: 1; }
.dps-gallery-main .dps-gallery-availability { position: absolute; z-index: 2; left: 18px; top: 18px; display: block; width: max-content; max-width: 45%; padding: 10px 15px; overflow-wrap: anywhere; white-space: normal; color: var(--dps-white); background: #a43f36; font-size: 12px; line-height: 1.25; letter-spacing: .11em; text-align: center; text-transform: uppercase; }
.dps-gallery-main .dps-gallery-availability-sold { background: #4c5551; }
.dps-gallery-main .dps-gallery-availability-new { background: var(--dps-forest); }
.dps-gallery-main .dps-gallery-availability-new_build { background: var(--dps-gold); }
.dps-gallery-main .dps-gallery-availability-recently_reduced { background: #8b6b31; }
.dps-gallery-main .dps-gallery-availability-property_visited { background: #376f68; }
.dps-gallery-main .dps-gallery-availability-property_viewing_scheduled { background: #355c7d; }
.dps-gallery-main .dps-gallery-feedback { position: absolute; z-index: 2; right: 18px; top: 18px; max-width: 45%; padding: 10px 15px; color: var(--dps-white); background: var(--dps-forest); font-size: 12px; line-height: 1.25; letter-spacing: .11em; text-align: center; text-transform: uppercase; }
.dps-gallery-side { display: grid; grid-template-rows: 1fr 1fr; gap: 7px; min-height: 0; }
.dps-gallery-side button { height: 100%; }
.dps-specs { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin: 0; padding: 22px 0; border-bottom: 1px solid var(--dps-line); }
.dps-specs div { padding: 0 20px; border-right: 1px solid var(--dps-line); }
.dps-specs div:first-child { padding-left: 0; }
.dps-specs div:last-child { border-right: 0; }
.dps-specs dt { color: var(--dps-muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.dps-specs dd { margin: 2px 0 0; font: 400 19px/1.3 Georgia, 'Times New Roman', serif; }
.dps-property-body { display: block; padding: 34px 0 16px; }
.dps-property-body h3 { margin: 0 0 22px; font: 400 28px/1.2 Georgia, 'Times New Roman', serif; }
.dps-description { color: #46504d; }
.dps-description > p { max-width: none; white-space: pre-line; }
.dps-agent-note { margin-top: 36px; padding: 25px 28px; color: var(--dps-forest); background: var(--dps-cream); border-left: 3px solid var(--dps-gold); }
.dps-agent-note p { margin: 8px 0 0; }
.dps-map-link { margin: 30px 0 0; }
.dps-map-link a { display: inline-flex; align-items: center; padding: 11px 16px; color: var(--dps-white); background: var(--dps-forest); text-decoration: none; }
.dps-map-link a:hover, .dps-map-link a:focus-visible { background: #24594b; }
.dps-preference { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 18px; margin-top: 16px; padding: 12px 18px; color: var(--dps-forest); background: var(--dps-cream); }
.dps-preference > div:first-child { display: flex; flex-direction: column; }
.dps-preference [data-dps-feedback-status] { min-height: 16px; color: var(--dps-muted); font-size: 11px; }
.dps-preference [data-dps-feedback-status]:empty { display: none; }
.dps-preference-buttons { display: flex; gap: 8px; }
.dps-preference-buttons button { border: 1px solid #b8c1bd; padding: 7px 12px; color: var(--dps-forest); background: var(--dps-white); cursor: pointer; font-size: 12px; transition: all .15s ease; }
.dps-preference-buttons button:hover, .dps-preference-buttons button.is-active { border-color: var(--dps-forest); color: var(--dps-white); background: var(--dps-forest); }
.dps-new-build-availability { margin-top: 18px; padding: 22px 24px 24px; background: var(--dps-cream); border-top: 3px solid var(--dps-gold); }
.dps-new-build-availability header { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.dps-new-build-availability header .dps-eyebrow { flex: 0 0 auto; margin: 0; }
.dps-new-build-availability h3 { margin: 0; color: var(--dps-forest); font: 400 26px/1.2 Georgia, 'Times New Roman', serif; }
.dps-availability-table-wrap { max-height: 420px; overflow: auto; background: var(--dps-white); border: 1px solid var(--dps-line); }
.dps-availability-table-wrap:focus-visible { outline: 3px solid var(--dps-gold); outline-offset: 2px; }
.dps-new-build-availability table { width: 100%; border-collapse: collapse; color: #3d4844; font-size: 12px; white-space: nowrap; }
.dps-new-build-availability th, .dps-new-build-availability td { padding: 11px 13px; border-bottom: 1px solid var(--dps-line); text-align: left; }
.dps-new-build-availability th { position: sticky; z-index: 1; top: 0; color: var(--dps-forest); background: #ebe8e0; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.dps-new-build-availability tbody tr:nth-child(even) { background: #faf9f6; }
.dps-new-build-availability tbody tr:last-child td { border-bottom: 0; }
.dps-new-build-availability td:nth-child(3) { color: var(--dps-forest); font-weight: 700; }
.dps-note-form { margin: 0; padding: 16px 18px; color: var(--dps-forest); background: var(--dps-cream); border-top: 1px solid #d9dedb; }
.dps-note-form label { display: flex; flex-direction: column; gap: 6px; }
.dps-note-form label > span { color: var(--dps-muted); font-size: 13px; }
.dps-note-form textarea { width: 100%; min-height: 58px; resize: vertical; padding: 10px 12px; color: var(--dps-ink); background: var(--dps-white); border: 1px solid #b8c1bd; font: inherit; }
.dps-note-actions { display: flex; align-items: center; gap: 14px; margin-top: 10px; }
.dps-note-actions button { border: 1px solid var(--dps-forest); padding: 10px 15px; color: var(--dps-white); background: var(--dps-forest); cursor: pointer; }
.dps-note-actions button:disabled { opacity: .55; cursor: wait; }
.dps-note-actions span { color: var(--dps-muted); font-size: 12px; }
.dps-contact { padding: clamp(32px, 4vw, 44px) clamp(32px, 8vw, 120px); color: var(--dps-white); background: var(--dps-forest); }
.dps-contact h2 { max-width: 820px; margin: 0; font: 400 clamp(40px, 6vw, 76px)/1 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.dps-contact > p:not(.dps-eyebrow) { max-width: 670px; margin: 18px 0 0; color: #d9e4df; font-size: 18px; }
.dps-contact-actions { display: flex; gap: 12px; margin-top: 20px; }
.dps-contact-actions a { display: inline-block; padding: 13px 19px; color: var(--dps-forest); background: var(--dps-white); text-decoration: none; }
.dps-contact-actions a + a { color: var(--dps-white); background: transparent; border: 1px solid #b8ccc4; }
.dps-resales-search { padding: clamp(70px, 9vw, 125px) clamp(24px, 5vw, 76px); background: var(--dps-cream); }
.dps-resales-search-heading { max-width: 1440px; margin: 0 auto 38px; }
.dps-resales-search-heading h2 { max-width: 850px; margin: 0; font: 400 clamp(38px, 5vw, 66px)/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.dps-resales-search-heading > p:not(.dps-eyebrow) { max-width: 720px; margin: 22px 0 0; color: var(--dps-muted); font-size: 18px; }
.dps-resales-search-widget { max-width: 1440px; margin: 0 auto; }
.dps-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding: 35px clamp(24px, 5vw, 76px); color: #7a8480; background: #111916; font-size: 11px; }
.dps-footer span { color: var(--dps-white); font: 400 19px Georgia, serif; }
.dps-footer p { max-width: 720px; margin: 0; text-align: right; }
.dps-print-card { display: none; }
.dps-back-to-top { position: fixed; z-index: 9990; left: 22px; bottom: 22px; display: flex; align-items: center; gap: 8px; border: 1px solid rgb(255 255 255 / 45%); border-radius: 999px; padding: 10px 15px; color: var(--dps-white); background: rgb(23 63 53 / 92%); box-shadow: 0 8px 25px rgb(0 0 0 / 18%); cursor: pointer; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; backdrop-filter: blur(6px); }
.dps-back-to-top[hidden] { display: none; }
.dps-back-to-top span:first-child { font-size: 17px; line-height: 1; }
.dps-back-to-top:hover, .dps-back-to-top:focus-visible { color: var(--dps-forest); background: var(--dps-white); border-color: var(--dps-forest); }
.dps-state-message { display: grid; place-items: center; padding: 30px; }
.dps-state-message > div { max-width: 650px; padding: 55px; background: var(--dps-white); text-align: center; }
.dps-state-message h1 { font: 400 44px Georgia, serif; }
.dps-password-card form { display: flex; align-items: flex-end; justify-content: center; gap: 10px; margin-top: 24px; }
.dps-password-card label { display: flex; flex-direction: column; gap: 5px; text-align: left; }
.dps-password-card input[type=password] { padding: 10px; border: 1px solid var(--dps-line); }
.dps-password-card button[type=submit] { padding: 11px 16px; color: white; border: 0; background: var(--dps-forest); cursor: pointer; }
.dps-empty-selection { max-width: 900px; margin: 0 auto 100px; padding: 60px; background: white; text-align: center; }
.dps-lightbox[hidden] { display: none; }
.dps-lightbox { position: fixed; z-index: 999999; inset: 0; display: grid; grid-template-columns: 70px 1fr 70px; align-items: center; color: white; background: rgb(7 11 9 / 96%); }
.dps-lightbox figure { position: relative; min-width: 160px; min-height: 160px; max-width: calc(100vw - 160px); max-height: 92vh; margin: auto; text-align: center; }
.dps-lightbox figure img { max-width: 100%; max-height: 86vh; object-fit: contain; transition: opacity .16s ease; }
.dps-lightbox.is-loading figure img { opacity: .42; }
.dps-lightbox.is-loading figure::before { content: ''; position: absolute; z-index: 2; left: 50%; top: 50%; width: 38px; height: 38px; margin: -23px 0 0 -23px; border: 4px solid rgb(255 255 255 / 35%); border-top-color: #fff; border-radius: 50%; animation: dps-photo-spin .75s linear infinite; }
.dps-lightbox.has-load-error figure img { opacity: .4; }
@keyframes dps-photo-spin { to { transform: rotate(360deg); } }
.dps-lightbox figcaption { margin-top: 7px; font: 12px Arial, sans-serif; }
.dps-lightbox button { border: 0; color: white; background: transparent; cursor: pointer; font: 300 54px/1 Arial, sans-serif; }
.dps-lightbox-close { position: absolute; z-index: 2; right: 24px; top: 20px; font-size: 38px !important; }
.dps-embedded { min-height: 0; }
@media (max-width: 960px) {
  .dps-topbar { height: 70px; gap: 12px; padding: 12px 18px; }
  .dps-brand { min-width: 0; }
  .dps-brand img { max-width: 138px; max-height: 42px; }
  .dps-top-actions { min-width: 0; gap: 7px; }
  .dps-private-label { display: none; }
  .dps-print, .dps-share { flex: 0 0 auto; padding: 8px 10px; white-space: nowrap; font-size: 11px; }
  .dps-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dps-gallery { grid-template-columns: 1fr; height: auto; }
  .dps-gallery-main { aspect-ratio: 4 / 3; }
  .dps-gallery-side { display: none; }
  .dps-specs { grid-template-columns: repeat(4, 1fr); row-gap: 24px; }
  .dps-specs div:nth-child(4) { border-right: 0; }
}
@media (max-width: 760px) {
  .dps-map-overview { margin-bottom: 65px; padding: 0 22px; }
  .dps-map-overview-header { align-items: stretch; flex-direction: column; gap: 17px; }
  .dps-map-overview-header button { width: 100%; }
  .dps-map-canvas { height: min(72vh, 480px); }
}
@media (max-width: 650px) {
  .dps-topbar { height: 62px; gap: 7px; padding: 9px 12px; }
  .dps-brand img { max-width: 108px; max-height: 34px; }
  .dps-top-actions { gap: 5px; }
  .dps-print, .dps-share { padding: 7px 8px; font-size: 10px; letter-spacing: .01em; }
  .dps-private-label { display: none; }
  .dps-introduction { padding: 70px 22px; }
  .dps-introduction h1 { font-size: 45px; }
  .dps-selection-meta { flex-direction: column; gap: 3px; margin-top: 42px; }
  .dps-selection-meta span + span::before { display: none; }
  .dps-overview { display: flex; overflow-x: auto; padding: 0 22px 80px; scroll-snap-type: x mandatory; }
  .dps-overview-card { flex: 0 0 82vw; scroll-snap-align: start; }
  .dps-overview-availability { left: 12px; top: 12px; display: block; width: max-content; max-width: 68%; padding: 7px 10px; overflow-wrap: anywhere; white-space: normal; font-size: 9px; line-height: 1.25; }
  .dps-overview-feedback { right: 12px; top: 12px; padding: 7px 10px; font-size: 9px; }
  .dps-overview-number { left: 12px; bottom: 12px; width: 31px; height: 31px; }
  .dps-overview-heart { right: 8px; top: 8px; width: 38px; height: 38px; }
  .dps-overview-heart svg { width: 24px; height: 24px; }
  .dps-gallery-main .dps-gallery-number { left: 12px; bottom: 12px; width: 31px; height: 31px; }
  .dps-gallery-main .dps-gallery-count { right: 12px; bottom: 12px; }
  .dps-gallery-main .dps-gallery-availability { left: 12px; top: 12px; max-width: 68%; padding: 8px 10px; font-size: 9px; line-height: 1.25; letter-spacing: .08em; }
  .dps-gallery-main .dps-gallery-feedback { right: 12px; top: 12px; padding: 8px 10px; font-size: 10px; }
  .dps-gallery-main .dps-gallery-availability + .dps-gallery-feedback:not([hidden]) { top: 58px; }
  .dps-property { padding: 80px 22px; }
  .dps-property-heading { align-items: flex-start; flex-direction: column; margin-bottom: 38px; }
  .dps-price { padding: 0; }
  .dps-specs { grid-template-columns: repeat(2, 1fr); padding: 30px 0; }
  .dps-specs div { padding: 0 12px 0 0; }
  .dps-specs div:nth-child(even) { border-right: 0; padding-left: 12px; }
  .dps-property-body { padding: 46px 0 18px; }
  .dps-preference { display: flex; align-items: stretch; flex-direction: column; margin-top: 18px; padding: 20px 18px; }
  .dps-preference-buttons { display: grid; grid-template-columns: 1fr; }
  .dps-preference-buttons button { padding: 10px 15px; font-size: inherit; }
  .dps-new-build-availability { padding: 18px 0 0; background: transparent; }
  .dps-new-build-availability header { align-items: flex-start; flex-direction: column; gap: 5px; padding: 0 2px; }
  .dps-new-build-availability h3 { font-size: 23px; }
  .dps-availability-table-wrap { max-height: 360px; }
  .dps-new-build-availability th, .dps-new-build-availability td { padding: 9px 11px; }
  .dps-note-form { padding: 18px; }
  .dps-note-actions { align-items: stretch; flex-direction: column; }
  .dps-note-actions button { width: 100%; }
  .dps-contact { padding: 45px 22px; }
  .dps-section-heading { padding: 70px 22px 0; }
  .dps-section-heading + .dps-property { padding-top: 45px; }
  .dps-resales-search { padding: 70px 22px; }
  .dps-contact-actions { flex-direction: column; }
  .dps-contact-actions a { text-align: center; }
  .dps-footer { flex-direction: column; }
  .dps-footer p { text-align: left; }
  .dps-password-card form { align-items: stretch; flex-direction: column; }
  .dps-lightbox { grid-template-columns: 45px 1fr 45px; }
  .dps-lightbox figure { max-width: calc(100vw - 95px); }
  .dps-back-to-top { left: 14px; bottom: 14px; padding: 9px 13px; }
}
@media (orientation: landscape) and (max-height: 500px) and (max-width: 960px) {
  .dps-topbar { height: 56px; padding: 7px 14px; }
  .dps-brand img { max-width: 112px; max-height: 34px; }
  .dps-introduction { padding-top: 38px; }
}
@media print {
  @page { size: A4 portrait; margin: 8mm; }
  html, body, body.dps-standalone-page { margin: 0 !important; padding: 0 !important; color: #17221f; background: #fff !important; }
  #wpadminbar, .dps-topbar, .dps-introduction, .dps-map-overview, .dps-overview, .dps-section-heading, .dps-contact, .dps-resales-search, .dps-footer, .dps-back-to-top, .dps-lightbox { display: none !important; }
  .dps-shell, .dps-shell main, .dps-properties { min-height: 0; margin: 0; padding: 0; color: #17221f; background: #fff !important; }
  .dps-shell { font-family: Arial, Helvetica, sans-serif; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .dps-property { width: 100%; max-width: none; min-height: 0; margin: 0; padding: 0; border: 0 !important; break-inside: avoid; break-after: page; page-break-after: always; }
  .dps-property:last-child { break-after: auto; page-break-after: auto; }
  .dps-property > *:not(.dps-print-card) { display: none !important; }
  .dps-print-card { height: 275mm; max-height: 275mm; display: flex !important; flex-direction: column; overflow: hidden; color: #17221f; background: #fff; }
  .dps-print-header { height: 15mm; display: flex; align-items: center; justify-content: space-between; gap: 12mm; padding-bottom: 3mm; border-bottom: .35mm solid #173f35; }
  .dps-print-brand img { width: auto; max-width: 44mm; max-height: 11mm; display: block; }
  .dps-print-brand > strong { color: #173f35; font: 700 15pt/1 Georgia, serif; }
  .dps-print-selection { min-width: 55mm; display: flex; flex-direction: column; text-align: right; }
  .dps-print-selection span { color: #b29463; font-size: 6.8pt; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
  .dps-print-selection strong { margin-top: 1mm; font-size: 8.5pt; font-weight: 600; }
  .dps-print-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8mm; padding: 5mm 0 4mm; }
  .dps-print-heading p { margin: 0 0 1.5mm; color: #b29463; font-size: 7pt; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
  .dps-print-heading h2 { max-width: 145mm; margin: 0 0 1.5mm; font: 400 20pt/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.02em; }
  .dps-print-heading span { color: #66716d; font-size: 7.5pt; }
  .dps-print-availability { display: inline-block; margin-top: 2mm; padding: 1.2mm 2.5mm; color: #fff; background: #a43f36; font-size: 7pt; letter-spacing: .08em; text-transform: uppercase; }
  .dps-print-availability-sold { background: #4c5551; }
  .dps-print-availability-new { background: #173f35; }
  .dps-print-availability-new_build { background: #b29463; }
  .dps-print-availability-recently_reduced { background: #8b6b31; }
  .dps-print-availability-property_visited { background: #376f68; }
  .dps-print-availability-property_viewing_scheduled { background: #355c7d; }
  .dps-print-map { display: block; width: max-content; margin-top: 1.8mm; color: #173f35; font-size: 7pt; font-weight: 700; text-decoration: underline; }
  .dps-print-price { padding-bottom: 2mm; white-space: nowrap; font: 400 15pt/1 Georgia, 'Times New Roman', serif; }
  .dps-print-gallery { height: 91mm; display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); grid-template-rows: 1fr 1fr; gap: 2mm; overflow: hidden; background: #dfe8e3; }
  .dps-print-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; }
  .dps-print-gallery img:first-child { grid-row: 1 / 3; }
  .dps-print-gallery-1 { grid-template-columns: 1fr; }
  .dps-print-gallery-2 img:nth-child(2) { grid-row: 1 / 3; }
  .dps-print-specs { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin: 0; padding: 4mm 0; border-bottom: .25mm solid #dfe3df; }
  .dps-print-specs div { min-width: 0; padding: 0 2.5mm; border-right: .25mm solid #dfe3df; }
  .dps-print-specs div:first-child { padding-left: 0; }
  .dps-print-specs div:last-child { padding-right: 0; border-right: 0; }
  .dps-print-specs dt { color: #66716d; font-size: 6.5pt; letter-spacing: .07em; text-transform: uppercase; }
  .dps-print-specs dd { margin: .7mm 0 0; font: 400 9.5pt/1.15 Georgia, 'Times New Roman', serif; }
  .dps-print-copy { min-height: 0; display: grid; grid-template-columns: 1fr; gap: 7mm; padding: 5mm 0 3mm; overflow: hidden; }
  .dps-print-copy.has-note { grid-template-columns: minmax(0, 1fr) 53mm; }
  .dps-print-description { min-width: 0; overflow: hidden; }
  .dps-print-description h3 { margin: 0 0 2mm; color: #173f35; font: 400 11.5pt/1.2 Georgia, 'Times New Roman', serif; }
  .dps-print-description p { margin: 0; color: #46504d; font-size: 8.4pt; line-height: 1.38; }
  .dps-print-note { align-self: start; padding: 4mm; color: #173f35; background: #f6f4ef; border-left: .8mm solid #b29463; }
  .dps-print-note strong { font-size: 7.5pt; }
  .dps-print-note p { margin: 1.5mm 0 0; font-size: 7.5pt; line-height: 1.35; }
  .dps-print-footer { margin-top: auto; display: grid; grid-template-columns: minmax(0, 1fr) 72mm; align-items: end; gap: 8mm; padding-top: 3mm; border-top: .25mm solid #dfe3df; }
  .dps-print-footer > div { display: flex; flex-direction: column; }
  .dps-print-footer strong { color: #173f35; font: 700 9pt/1.2 Georgia, serif; }
  .dps-print-footer span { margin-top: .8mm; color: #46504d; font-size: 7pt; }
  .dps-print-footer small { color: #66716d; font-size: 6.5pt; line-height: 1.3; text-align: right; }
}
/* Expired selections contain branding and a request action, never property cards. */
.dps-expired-card { max-width: 680px; margin: 0 auto; padding: 40px; background: #fff; border-radius: 16px; text-align: center; }
.dps-expired-card .dps-brand { display: inline-block; margin-bottom: 24px; }
.dps-expired-card .dps-brand img { max-width: 220px; max-height: 100px; object-fit: contain; }
.dps-reactivation-button { background: #153c35; color: #fff; border: 0; border-radius: 8px; padding: 16px 24px; font: inherit; cursor: pointer; }
.dps-reactivation-button:focus-visible { outline: 3px solid #b68e51; outline-offset: 3px; }
.dps-reactivation-button:disabled { opacity: .65; cursor: default; }
.dps-expired-card [hidden] { display: none !important; }
.dps-expired-card [role="status"] { margin-top: 18px; }
@media (max-width: 600px) { .dps-expired-card { padding: 24px 16px; } }
