.residences { padding-block:38px 48px; }
.residences .section-heading { margin-bottom:22px; }
.residences .section-heading h2 em { color:#7e8a76; }
.residence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 28px; }
.residence-card { min-width:0; background:var(--ivory); border:1px solid #d7d7ca; }
.residence-card-open { display:block; padding:0; border:0; width:100%; text-align:left; background:transparent; }
.residence-card-photo { display:block; position:relative; aspect-ratio:1.86; overflow:hidden; background:#e4e2d8; color:white; }
.residence-card-photo picture,.residence-card-photo img { display:block; width:100%; height:100%; }
.residence-card-photo img { object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.residence-card-photo::after { content:''; pointer-events:none; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#11231e9c); }
.residence-card-open:hover .residence-card-photo img { transform:scale(1.025); }
.residence-photo-label,.residence-photo-count { position:absolute; z-index:1; bottom:17px; font-size:11px; line-height:1.5; }
.residence-photo-label { left:24px; letter-spacing:.14em; }
.residence-photo-count { right:24px; color:#faf8f3e0; }
.residence-card-copy { display:block; padding:22px 25px 17px; }
.residence-type { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:#6b745e; line-height:1.5; margin-bottom:9px; }
.residence-card-title { display:block; font-family:var(--serif); font-size:clamp(32px,3.05vw,47px); font-weight:400; letter-spacing:-.035em; line-height:1.05; color:var(--forest); }
.residence-card-facts { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:12px; margin-top:19px; padding:17px 0; border-block:1px solid var(--rule); }
.residence-card-facts>span { display:block; min-width:0; padding-right:8px; }
.residence-card-facts>span+span { border-left:1px solid var(--rule); padding-left:17px; }
.residence-card-facts strong { display:block; font-size:19px; line-height:1.35; font-weight:450; letter-spacing:-.025em; white-space:nowrap; }
.residence-card-facts>span>span { display:block; font-size:11px; color:var(--muted); line-height:1.6; margin-top:4px; }
.residence-card-explore { display:inline-flex; min-height:44px; align-items:center; padding-block:9px; margin-top:10px; border-bottom:1px solid #a6ac99; font-size:12px; font-weight:500; line-height:1.5; }
.residence-card-open:hover .residence-card-explore { border-color:var(--forest); }
.residence-card-footer { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:0 25px 14px; color:var(--muted); }
.residence-card-footer>span { font-size:11px; line-height:1.6; }
.residence-card-inquire { flex:none; min-height:44px; padding:8px 0; border:0; border-bottom:1px solid transparent; font-size:12px; color:var(--forest); }
.residence-card-inquire:hover { border-bottom-color:var(--forest); }
.residence-note { font-size:12px; line-height:1.8; color:var(--muted); max-width:800px; margin-top:17px; }
.residence-load-note { grid-column:1/-1; padding:28px; border:1px solid var(--rule); }
.residence-load-note a { text-decoration:underline; text-underline-offset:3px; }
body.residence-open { overflow:hidden; }
.residence-dialog { color:var(--ink); width:min(1450px,96vw); max-width:none; height:auto; max-height:94svh; padding:0; border:1px solid #b6beae; background:var(--ivory); overflow:auto; overscroll-behavior:contain; box-shadow:0 20px 100px #03180d5e; }
.residence-dialog::backdrop { background:#071a13c9; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.residence-dialog-header { position:sticky; top:0; z-index:3; background:#faf8f3f5; padding:23px 29px 22px; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:20px; backdrop-filter:blur(10px); }
.residence-dialog-header .eyebrow { font-size:10px; line-height:1.5; margin-bottom:6px; letter-spacing:.13em; }
.residence-dialog-header h2 { font-size:clamp(31px,3.5vw,49px); line-height:1.05; }
.residence-close { align-self:flex-start; flex:none; width:46px; height:46px; padding:0; background:transparent; border:1px solid #b3bba9; font-size:20px; line-height:1; color:var(--forest); }
.residence-close:hover { background:var(--forest); color:var(--paper); }
.residence-dialog-body { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr); gap:34px; padding:25px 29px 32px; align-items:start; }
.residence-visual,.residence-detail { min-width:0; }
.residence-gallery-tabs { display:flex; gap:23px; border-bottom:1px solid var(--rule); margin-bottom:15px; }
.residence-gallery-tabs button { min-height:44px; padding:6px 0 12px; border:0; border-bottom:2px solid transparent; font-size:12px; color:var(--muted); }
.residence-gallery-tabs button[aria-pressed=true] { border-bottom-color:var(--forest); color:var(--forest); }
.residence-image-region { position:relative; aspect-ratio:1.72; display:flex; justify-content:center; align-items:center; overflow:hidden; background:#e8e5dc; touch-action:pan-y pinch-zoom; }
.residence-image-region.is-plan { background:#fff; aspect-ratio:auto; height:min(650px,62svh); min-height:340px; }
#residence-picture,#residence-picture picture { width:100%; height:100%; }
#residence-picture img { width:100%; height:100%; object-fit:contain; }
.residence-image-region.is-zoomed { display:block; overflow:auto; touch-action:pan-x pan-y pinch-zoom; }
.residence-image-region.is-zoomed #residence-picture,.residence-image-region.is-zoomed #residence-picture picture { width:max(100%,var(--residence-natural-width)); height:auto; }
.residence-image-region.is-zoomed #residence-picture img { width:100%; max-width:none; height:auto; }
.residence-image-error { position:absolute; inset:auto 20px 20px; padding:15px; font-size:12px; background:#faf8f3ed; color:var(--forest); text-align:center; }
.residence-gallery-caption { display:flex; align-items:center; justify-content:space-between; gap:22px; min-height:67px; padding-top:9px; }
#residence-image-caption { font-family:var(--serif); font-size:25px; line-height:1.15; letter-spacing:-.025em; }
.residence-photo-controls { display:flex; align-items:center; flex:none; gap:10px; }
.residence-photo-controls button { width:44px; height:44px; padding:0; border:1px solid #b3bba9; font-size:21px; line-height:1; }
.residence-photo-controls button:hover:not(:disabled) { background:var(--forest); color:var(--paper); }
#residence-image-count { font-size:11px; line-height:1.5; letter-spacing:.04em; font-variant-numeric:tabular-nums; min-width:45px; text-align:center; color:var(--muted); }
.residence-view-tools { display:flex; gap:18px; justify-content:space-between; align-items:center; margin-top:3px; }
#residence-zoom { min-height:44px; flex:none; border:0; padding:6px 0; font-size:12px; }
#residence-zoom span { margin-left:5px; font-size:15px; }
#residence-view-note { font-size:10px; line-height:1.7; color:var(--muted); text-align:right; }
.residence-thumbs { display:flex; overflow-x:auto; gap:9px; padding:5px 2px 12px; scrollbar-width:thin; scroll-snap-type:x proximity; }
.residence-thumbs>button { padding:0; width:91px; flex:0 0 91px; height:58px; border:2px solid transparent; opacity:.62; overflow:hidden; position:relative; scroll-snap-align:start; }
.residence-thumbs>button img { width:100%; height:100%; object-fit:cover; }
.residence-thumbs>button:hover,.residence-thumbs>button[aria-pressed=true] { opacity:1; }
.residence-thumbs>button[aria-pressed=true] { border-color:var(--forest); outline:1px solid var(--ivory); outline-offset:-4px; }
.residence-thumbs>button>span { position:absolute; bottom:2px; left:0; right:0; padding:1px; font-size:9px; line-height:1.5; background:#faf8f3db; }
.residence-plan-note { font-size:11px; line-height:1.8; color:var(--muted); margin-top:7px; max-width:750px; }
.residence-detail { padding-top:10px; }
.residence-dialog-description { font-family:var(--serif); font-size:26px; line-height:1.25; letter-spacing:-.025em; }
.residence-detail-facts { margin:25px 0 20px; }
.residence-detail-facts>div { display:grid; grid-template-columns:105px 1fr; gap:15px; border-top:1px solid var(--rule); padding:10px 0; font-size:12px; line-height:1.6; }
.residence-detail-facts>div:last-child { border-bottom:1px solid var(--rule); }
.residence-detail-facts dt { color:var(--muted); }
.residence-detail-facts dd { margin:0; }
.residence-highlights { list-style:none; padding:0; margin:0 0 24px; display:grid; grid-template-columns:1fr; gap:7px; }
.residence-highlights li { position:relative; padding-left:13px; font-size:12px; line-height:1.6; }
.residence-highlights li::before { content:''; position:absolute; left:0; top:.7em; width:4px; height:4px; background:var(--bronze); border-radius:50%; }
.residence-dialog-inquire { width:100%; padding-inline:18px; font-size:12px; }
.residence-inquiry-note { font-size:11px; line-height:1.7; color:var(--muted); margin-top:9px; }
.residence-documents { margin-top:23px; border-top:1px solid var(--rule); font-size:11px; line-height:1.8; color:var(--muted); }
.residence-documents summary { cursor:pointer; min-height:44px; padding:12px 0; color:var(--forest); font-size:12px; }
.residence-documents>div { padding:5px 0 10px; }
.residence-source-links { display:flex; flex-wrap:wrap; gap:0 17px; margin:9px 0 10px; }
.residence-source-links a { display:inline-flex; min-height:44px; align-items:center; text-decoration:underline; text-underline-offset:4px; color:var(--forest); font-size:11px; }
@media(min-width:1200px) { .residence-detail { position:sticky; top:116px; } }
@media(max-width:1100px) { .residence-card-copy { padding-inline:22px; } .residence-card-footer { padding-inline:22px; } .residence-dialog-body { grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); gap:25px; padding-inline:24px; } .residence-dialog-header { padding-inline:24px; } .residence-gallery-caption { flex-wrap:wrap; gap:12px; padding-top:15px; } .residence-photo-controls { margin-left:auto; } }
@media(max-width:900px) { .residence-dialog-body { grid-template-columns:1fr; gap:26px; } .residence-detail { padding-top:0; } .residence-detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; } .residence-detail-facts>div { grid-template-columns:92px 1fr; } .residence-detail-facts>div:nth-last-child(2) { border-bottom:1px solid var(--rule); } .residence-highlights { grid-template-columns:1fr 1fr; } .residence-dialog-inquire { width:auto; min-width:280px; } .residence-dialog-header h2 { font-size:37px; } }
@media(max-width:700px) { .residences { padding-block:29px 36px; } .residences .section-heading { display:block; } .residences .section-heading>p { margin-top:15px; max-width:350px; } .residence-grid { grid-template-columns:1fr; gap:24px; } .residence-card-copy { padding:21px 22px 16px; } .residence-card-title { font-size:39px; } .residence-card-facts { margin-top:17px; } .residence-card-facts strong { font-size:20px; } .residence-card-photo { aspect-ratio:1.65; } .residence-photo-label { left:20px; } .residence-photo-count { right:20px; font-size:10px; } .residence-dialog { width:100%; max-width:100%; height:100svh; max-height:100svh; margin:0; border:0; } .residence-dialog-header { padding:18px 20px; gap:13px; } .residence-dialog-header h2 { font-size:31px; } .residence-close { width:44px; height:44px; } .residence-dialog-body { padding:16px 20px 30px; gap:26px; } .residence-gallery-tabs { gap:23px; margin-bottom:13px; } .residence-image-region { aspect-ratio:1.6; } #residence-image-caption { font-size:24px; } .residence-gallery-caption { align-items:center; min-height:75px; padding-top:13px; } .residence-photo-controls { gap:7px; } .residence-view-tools { gap:10px; margin-top:4px; } #residence-view-note { max-width:175px; } .residence-thumbs>button { width:79px; flex-basis:79px; height:53px; } .residence-dialog-description { font-size:27px; } .residence-detail-facts { display:block; margin-top:21px; } .residence-detail-facts>div { grid-template-columns:106px 1fr; gap:20px; padding-block:11px; } .residence-detail-facts>div:nth-last-child(2) { border-bottom:0; } .residence-highlights { grid-template-columns:1fr; } .residence-dialog-inquire { width:100%; min-width:0; } .residence-documents { margin-top:24px; } }
@media(max-width:360px) { .residence-card-copy { padding-inline:17px; } .residence-card-footer { padding-inline:17px; gap:12px; } .residence-card-title { font-size:35px; } .residence-card-facts { gap:8px; } .residence-card-facts>span+span { padding-left:10px; } .residence-card-facts strong { font-size:18px; } .residence-card-footer>span { font-size:10px; } .residence-dialog-header,.residence-dialog-body { padding-inline:15px; } .residence-dialog-header h2 { font-size:28px; } }
@media(prefers-reduced-motion:reduce) { .residence-card-photo img { transition:none; } .residence-card-open:hover .residence-card-photo img { transform:none; } }

.residence-mobile-cta { display:none; }
@media(max-width:700px) {
  .residence-mobile-cta { display:block; position:fixed; bottom:0; left:0; right:0; z-index:5; padding:10px 20px calc(10px + env(safe-area-inset-bottom)); background:var(--ivory); border-top:1px solid var(--rule); box-shadow:0 -4px 24px #11231e10; }
  .residence-mobile-cta .button { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; padding:12px 18px; font-size:13px; }
  .residence-dialog-body { padding-bottom:105px; }
  .residence-detail>.residence-dialog-inquire,.residence-detail>.residence-inquiry-note { display:none; }
}

/* Room-led exploration and on-demand 3D tours. */
.residence-card-actions { display:flex; align-items:center; gap:18px; flex:none; }
.residence-save { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 0; border:0; border-bottom:1px solid #a6ac99; background:transparent; color:var(--forest); font-size:12px; line-height:1.5; white-space:nowrap; }
.residence-save:hover,.residence-save[aria-pressed=true] { border-bottom-color:var(--forest); }
.residence-save[aria-pressed=true] { font-weight:600; }
.residence-dialog-header { padding:18px 25px; gap:18px; }
.residence-dialog-header h2 { font-size:clamp(30px,3.05vw,44px); }
.residence-dialog-actions { display:flex; align-items:center; gap:17px; flex:none; }
.residence-dialog-actions .residence-save { padding-inline:4px; }
.residence-dialog-actions .residence-close { align-self:center; }
.residence-dialog-body { padding:19px 25px 28px; gap:28px; grid-template-columns:minmax(0,1.9fr) minmax(285px,1fr); }
.residence-gallery-tabs { gap:4px; padding:4px; margin-bottom:10px; border:1px solid #d7d7ca; background:#eeece3; }
.residence-gallery-tabs button { flex:1; min-height:44px; padding:9px 10px; border:0; background:transparent; color:var(--muted); text-align:center; font-size:12px; line-height:1.5; white-space:nowrap; }
.residence-gallery-tabs button:hover { color:var(--forest); background:#e4e5d9; }
.residence-gallery-tabs button[aria-pressed=true] { background:var(--forest); color:var(--ivory); }
.residence-room-nav { display:flex; align-items:center; flex-wrap:wrap; gap:3px 5px; min-height:40px; margin-bottom:10px; }
.residence-room-label { margin-right:5px; color:var(--muted); font-size:10px; line-height:1.4; }
.residence-room-nav button { min-height:44px; padding:8px 10px; border:1px solid transparent; background:transparent; color:var(--muted); font-size:11px; line-height:1.5; white-space:nowrap; }
.residence-room-nav button:hover { color:var(--forest); background:#efeee5; }
.residence-room-nav button[aria-pressed=true] { border-color:#b6beae; background:#e8eadf; color:var(--forest); }
.residence-image-region { width:100%; aspect-ratio:1.94; max-height:none; min-height:215px; }
.residence-image-region.is-plan { height:min(520px,55svh); max-height:55svh; min-height:300px; }
.residence-view-status { position:absolute; top:14px; left:14px; max-width:calc(100% - 28px); padding:7px 11px; background:#faf8f3ed; color:var(--forest); font-size:11px; line-height:1.6; pointer-events:none; }
.residence-gallery-caption { min-height:61px; gap:16px; padding-top:8px; }
#residence-image-caption { font-size:clamp(21px,2.1vw,27px); }
.residence-photo-controls { gap:7px; }
.residence-photo-controls button { width:44px; height:44px; }
.residence-view-tools { margin-top:0; gap:12px; }
#residence-zoom { min-height:44px; }
#residence-view-note { max-width:280px; }
.residence-thumbs { gap:8px; padding-top:3px; }
.residence-thumbs>button { width:82px; flex-basis:82px; height:51px; }
.residence-detail { padding-top:5px; }
.residence-dialog-description { font-size:24px; }
.residence-inquiry-block { margin:18px 0 22px; }
.residence-detail-facts { margin:20px 0; }
.residence-detail-facts>div { grid-template-columns:101px 1fr; padding:9px 0; gap:12px; }
.residence-tour-stage { height:clamp(335px,55svh,620px); background:#13291f; position:relative; overflow:hidden; }
.residence-tour-stage iframe { display:block; width:100%; height:100%; border:0; background:#13291f; }
.residence-tour-facade,.residence-tour-poster,.residence-tour-poster picture,.residence-tour-poster img { position:absolute; inset:0; width:100%; height:100%; }
.residence-tour-poster img { object-fit:cover; }
.residence-tour-facade::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#071a14e8,#071a143b); }
.residence-tour-invitation { position:absolute; z-index:1; inset:auto 34px 33px; color:var(--ivory); }
.residence-tour-invitation .eyebrow { color:#ece6d7; font-size:10px; line-height:1.5; margin-bottom:11px; }
.residence-tour-invitation h3 { color:var(--ivory); font-family:var(--serif); font-size:clamp(40px,4vw,58px); font-weight:400; line-height:1.05; letter-spacing:-.03em; }
.residence-tour-invitation p { font-size:13px; line-height:1.7; color:#f7f4ecdf; margin:10px 0 20px; }
.residence-tour-invitation .button { border-color:var(--ivory); background:var(--ivory); color:var(--forest); gap:18px; }
.residence-tour-invitation .button:hover { background:#e4e8da; }
.residence-tour-links { padding:12px 0 0; }
.residence-tour-links>a { display:inline-flex; align-items:center; min-height:44px; gap:12px; color:var(--forest); font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.residence-tour-links p { color:var(--muted); font-size:11px; line-height:1.8; max-width:500px; }
@media(min-width:1200px) { .residence-detail { top:102px; } }
@media(max-width:1100px) {
  .residence-dialog-body { grid-template-columns:minmax(0,1.55fr) minmax(265px,1fr); gap:23px; }
  .residence-room-label { width:100%; }
  .residence-dialog-actions { gap:12px; }
  .residence-gallery-caption { flex-wrap:wrap; }
  .residence-photo-controls { margin-left:auto; }
  .residence-card-footer { flex-wrap:wrap; gap:4px 16px; }
  .residence-card-footer>span { flex:1 1 100%; }
  .residence-card-actions { width:100%; justify-content:space-between; }
}
@media(max-width:900px) {
  .residence-dialog-body { grid-template-columns:1fr; gap:26px; }
  .residence-room-nav { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; padding-bottom:3px; }
  .residence-room-nav>* { flex:none; }
  .residence-room-label { width:auto; }
  .residence-image-region { max-height:48svh; min-height:230px; }
  .residence-image-region.is-plan { height:62svh; max-height:62svh; min-height:320px; }
  .residence-gallery-caption { flex-wrap:nowrap; }
  .residence-detail { padding-top:0; }
  .residence-detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
  .residence-detail-facts>div { grid-template-columns:100px 1fr; }
  .residence-inquiry-block .residence-dialog-inquire { width:auto; min-width:280px; }
}
@media(max-width:700px) {
  .residence-dialog-header { padding:15px 18px; align-items:flex-start; gap:9px; }
  .residence-dialog-header h2 { font-size:29px; line-height:1.06; }
  .residence-dialog-header .eyebrow { font-size:9px; letter-spacing:.1em; }
  .residence-dialog-actions { gap:8px; align-items:flex-start; }
  .residence-dialog-actions .residence-save { font-size:11px; padding-inline:0; }
  .residence-dialog-actions .residence-close { width:44px; height:44px; font-size:18px; }
  .residence-dialog-body { padding:15px 18px 110px; }
  .residence-gallery-tabs { margin-bottom:9px; padding:3px; gap:2px; }
  .residence-gallery-tabs button { min-height:44px; font-size:11px; padding:9px 7px; }
  .residence-room-nav { min-height:44px; gap:2px; margin-bottom:9px; }
  .residence-room-label { display:none; }
  .residence-room-nav button { min-height:44px; padding:8px 10px; font-size:10px; }
  .residence-image-region { aspect-ratio:1.65; min-height:180px; max-height:44svh; }
  .residence-image-region.is-plan { min-height:330px; height:58svh; max-height:58svh; }
  .residence-gallery-caption { flex-wrap:wrap; min-height:75px; gap:9px; padding-top:12px; }
  #residence-image-caption { font-size:24px; }
  .residence-photo-controls button { width:44px; height:44px; }
  .residence-view-tools { gap:12px; margin-top:4px; }
  #residence-view-note { max-width:180px; }
  #residence-zoom { min-height:44px; }
  .residence-thumbs>button { width:78px; flex-basis:78px; height:52px; }
  .residence-detail-facts { display:block; }
  .residence-detail-facts>div { grid-template-columns:106px 1fr; gap:20px; padding-block:11px; }
  .residence-inquiry-block { display:none; }
  .residence-tour-stage { height:clamp(350px,54svh,500px); }
  .residence-tour-invitation { inset:auto 23px 27px; }
  .residence-tour-invitation .button { width:100%; padding-inline:14px; font-size:12px; }
  .residence-tour-links { padding-bottom:3px; }
  .residence-card-footer { gap:6px; }
  .residence-card-actions { gap:20px; }
}
@media(max-width:360px) {
  .residence-dialog-header,.residence-dialog-body { padding-inline:15px; }
  .residence-dialog-header h2 { font-size:26px; }
  .residence-dialog-actions { gap:6px; }
  .residence-dialog-actions .residence-save { font-size:10px; }
  .residence-gallery-tabs button { padding-inline:5px; font-size:10px; }
}
