.house { --photo-gap: clamp(1rem, 3vw, 3rem); }
.house img { display: block; width: 100%; height: auto; }
.house h1 { font-size: var(--public-title-size); }
.house-opening { padding-block: .75rem; }
.house-grid { display: grid; gap: var(--photo-gap); align-items: start; }
.house-section, .house-plan { margin-top: calc(var(--space-lg) * 0.7); }
.house-copy:not(.public-prose-wide) { max-width: var(--reading); }
.house-copy p { margin-top: .6rem; color: var(--muted); }
.house-copy h3 { font-size: 1rem; font-weight: 600; margin: 1rem 0 0; }
.house-copy .text-link { margin-top: 0.75rem; }
.house-bedroom-photos { margin-top: 1rem; }
.house-rooms { display: grid; gap: .85rem var(--photo-gap); margin-block: .75rem; }
.house-room-details { margin: 0.75rem 0 0; }
.house-room-details dt, .house-rooms dt { font-weight: 600; }
.house-room-details dd, .house-rooms dd { margin: 0.3rem 0 0; color: var(--muted); }
.house-plan-heading { margin-bottom: 1rem; }
.house-plan-heading p { color: var(--muted); margin-top: 0.5rem; font-size: 0.875rem; }
.plan-link { display: block; cursor: zoom-in; }
.house-closing { text-align: center; padding-block: calc(var(--space-xl) * 0.75); }
.house-closing .button { margin-top: 1.5rem; }
.plan-viewer { width: calc(100% - 1rem); max-width: 120rem; height: 92dvh; max-height: 92dvh; padding: 1rem; border: 0; background: var(--paper); color: var(--ink); }
.plan-viewer::backdrop { background: rgb(0 0 0 / 65%); }
.plan-viewer[open] { display: flex; flex-direction: column; gap: 0.75rem; }
.plan-toolbar { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.plan-toolbar h2 { font-size: 1.4rem; margin-right: auto; }
.plan-toolbar button { min-height: 44px; padding: 0.5rem 0.75rem; border: 1px solid var(--sea); background: var(--paper); color: var(--sea); cursor: pointer; }
.plan-help { font-size: 0.875rem; color: var(--muted); }
.plan-canvas { overflow: auto; flex: 1; min-height: 0; }
.plan-canvas img { display: block; width: 100%; height: 100%; object-fit: contain; }
.plan-canvas.is-zoomed img { width: auto; height: auto; max-width: none; }
@media (min-width: 60rem) {
    .house-grid, .house-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 39.999rem) { .house { font-size: 0.9375rem; } }
