/* Original project imagery, always displayed without cropping in the galleries. */
.community-feature { margin-top: 64px; }
.image-expand { display:block; position:relative; width:100%; padding:0; border:0; background:var(--forest); cursor:zoom-in; }
.image-expand > img { width:100%; height:auto; object-fit:contain; }
.expand-hint { position:absolute; right:18px; bottom:18px; padding:9px 16px; border:1px solid rgba(255,255,255,.6); color:#fff; background:rgba(13,34,29,.88); border-radius:30px; font-size:14px; line-height:1.5; }
.community-feature figcaption { display:flex; justify-content:space-between; gap:16px; align-items:baseline; padding:18px 0 0; color:var(--forest); font-family:var(--serif); font-size:26px; }
.community-feature small { color:var(--muted); font-family:var(--sans); font-size:12px; }
.model-photo { display:block; width:100%; padding:0; border:0; background:#ebe8df; cursor:pointer; text-align:left; }
.model-photo > img:first-child { aspect-ratio:1; object-fit:contain; }
.model-button { font-size:14px; letter-spacing:.045em; }
.pool-feature { margin:0 0 42px; }
.pool-feature figcaption { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding:28px 32px; background:var(--forest); color:#fff; }
.pool-feature .eyebrow { margin-bottom:10px; color:#e1c27e; font-size:12px; }
.pool-feature h3 { margin:0; font:400 clamp(30px,4vw,48px)/1.1 var(--serif); }
.pool-feature figcaption > p { margin:0; align-self:center; color:rgba(255,255,255,.83); font-size:17px; }
.amenity-grid { grid-template-columns:repeat(6,1fr); }
.amenity-card { margin:0; }
.amenity-card:nth-child(n) { grid-column:span 2; grid-row:auto; min-height:280px; }
.amenity-card:nth-child(-n+2) { grid-column:span 3; }
.amenity-expand { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; cursor:zoom-in; background:transparent; }
.amenity-card::after,.amenity-label { pointer-events:none; }
#model-dialog { width:min(1240px,calc(100vw - 32px)); max-height:92dvh; }
#model-dialog .dialog-grid { grid-template-columns:1.4fr 1fr; }
#model-dialog .dialog-visual { padding:22px 18px 8px; }
#model-dialog .dialog-body { padding:60px 32px 32px; }
.gallery-switch { display:flex; gap:6px; margin:0 0 16px; padding:4px; width:fit-content; background:#dedbcf; border-radius:28px; }
.gallery-switch button { padding:10px 18px; min-height:44px; border:0; border-radius:24px; background:transparent; color:var(--forest); cursor:pointer; font-size:14px; }
.gallery-switch button[aria-pressed="true"] { background:var(--forest); color:#fff; }
.gallery-stage { position:relative; width:100%; display:block; border:0; padding:0; cursor:zoom-in; background:#ebe8df; touch-action:pan-y; }
.gallery-stage img { width:100%; height:clamp(300px,53vh,580px); object-fit:contain; }
.gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0 4px; }
.gallery-controls p { margin:0; text-align:center; font-size:14px; line-height:1.5; }
.gallery-controls button { flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid #b9bdaf; border-radius:50%; color:var(--forest); background:transparent; cursor:pointer; font-size:30px; line-height:1; }
.gallery-controls button:disabled { opacity:.3; cursor:default; }
.dialog-thumbs { padding:12px 2px 8px; scroll-behavior:smooth; }
.dialog-thumb { flex-basis:74px; width:74px; height:64px; border-radius:3px; }
.dialog-thumb[aria-pressed="true"] { border:3px solid #8c6932; }
.dialog-gallery-note { padding:10px 0; }
#model-dialog .dialog-close { position:sticky; top:12px; float:right; margin:-44px -14px 0 0; z-index:2; width:44px; height:44px; background:var(--white); }
body:has(dialog[open]) { overflow:hidden; }
#image-lightbox { position:fixed; inset:0; margin:0; padding:20px clamp(16px,3vw,48px); width:100vw; height:100dvh; max-height:none; max-width:none; background:#102e28; color:#fff; }
#image-lightbox[open] { display:flex; flex-direction:column; }
.lightbox-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-shrink:0; padding:0 0 12px; }
.lightbox-head h2 { margin:0; font:400 clamp(24px,3vw,36px)/1.2 var(--serif); }
#lightbox-close { width:46px; height:46px; flex:0 0 46px; border:1px solid #789186; border-radius:50%; color:#fff; background:transparent; font-size:26px; cursor:pointer; }
.lightbox-stage { flex:1; min-height:0; touch-action:pan-y; }
.lightbox-stage img { width:100%; height:100%; object-fit:contain; }
#image-lightbox .gallery-controls { width:min(100%,720px); margin:0 auto; flex-shrink:0; }
#image-lightbox .gallery-controls button { color:#fff; border-color:#789186; }
#image-lightbox .dialog-thumbs { max-width:100%; margin:0 auto; flex-shrink:0; }
#image-lightbox .dialog-thumb[aria-pressed="true"] { border-color:#e1c27e; }
@media(max-width:700px) {
 .community-feature { margin-top:36px; }
 .community-feature figcaption { flex-direction:column; gap:6px; font-size:23px; }
 .expand-hint { right:10px; bottom:10px; font-size:12px; padding:7px 12px; }
 .pool-feature figcaption { grid-template-columns:1fr; gap:18px; padding:24px; }
 .amenity-grid { grid-template-columns:1fr 1fr; }
 .amenity-card:nth-child(n) { grid-column:span 1 !important; min-height:220px !important; }
 .amenity-card:last-child { grid-column:span 2 !important; }
 #model-dialog { width:calc(100vw - 16px); }
 #model-dialog .dialog-grid { grid-template-columns:1fr; }
 #model-dialog .dialog-visual { padding:16px 12px 4px; }
 #model-dialog .dialog-body { padding:22px; }
 #model-dialog .dialog-close { position:fixed; top:calc(4dvh + 8px); right:22px; margin:0; background:var(--white); }
 .gallery-switch { margin-right:44px; }
 .gallery-switch button { padding:9px 13px; }
 .gallery-stage img { height:clamp(260px,47dvh,500px); }
 .gallery-controls p { font-size:13px; }
 #image-lightbox { padding:12px; }
 #image-lightbox .dialog-thumb { flex-basis:58px; width:58px; height:50px; }
}
