.photo-carousel{margin:2rem 0 3rem}.carousel-stage{background:#e4e5df;touch-action:pan-y}.carousel-slide{margin:0}.carousel-slide[hidden]{display:none}.carousel-slide img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.carousel-toolbar{display:flex;align-items:center;gap:.8rem;padding:.8rem 0}.carousel-toolbar[hidden],.carousel-thumbnails[hidden]{display:none}.carousel-toolbar button{min-width:46px;min-height:46px;border:1px solid var(--line);background:transparent;color:var(--ink);font:1.1rem Arial,sans-serif;cursor:pointer}.carousel-toolbar p{margin:0;font-size:.875rem;font-variant-numeric:tabular-nums}.carousel-toolbar .expand-button{margin-left:auto;padding:0 1rem;font-size:.875rem}.carousel-thumbnails{display:flex;gap:.7rem}.carousel-thumbnails button{width:calc((100% - 1.4rem)/3);max-width:150px;border:2px solid transparent;padding:3px;background:transparent;cursor:pointer;opacity:.65}.carousel-thumbnails button[aria-pressed=true]{border-color:var(--ink);opacity:1}.carousel-thumbnails img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}.photo-carousel button:focus-visible,.photo-dialog button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.photo-dialog{padding:3.5rem 1rem 1rem;border:0;max-width:95vw;max-height:95vh;background:#172d28;color:white}.photo-dialog::backdrop{background:rgba(8,18,15,.9)}.photo-dialog img{display:block;max-width:88vw;max-height:80vh;width:auto;height:auto;object-fit:contain}.photo-dialog button{position:absolute;right:1rem;top:.5rem;min-height:40px;background:none;border:0;color:white;font:1rem Arial,sans-serif;cursor:pointer}@media(max-width:550px){.carousel-slide img{aspect-ratio:1/1}.photo-carousel{margin:1.5rem 0 2rem}}

/* Preserve the complete composition, including vertical bathroom photos. */
.carousel-stage{background:#e9e7df}.carousel-slide img{height:clamp(300px,42vw,620px);aspect-ratio:auto;object-fit:contain}.carousel-slide figcaption{padding:.8rem 1rem;font-size:.875rem;line-height:1.5;color:var(--ink);background:var(--paper)}.carousel-thumbnails{overflow-x:auto;overscroll-behavior-x:contain;padding:.2rem 0 .75rem;scrollbar-width:thin}.carousel-thumbnails button{flex:0 0 100px;width:100px;max-width:none}.carousel-toolbar button:hover{background:#e4e9e2}@media(max-width:550px){.carousel-slide img{height:340px}.carousel-thumbnails button{flex-basis:82px;width:82px}}
/* Click-through navigation also remains available in the enlarged view. */
.carousel-slide img[role=button],.photo-dialog img[role=button]{cursor:pointer;touch-action:pan-y pinch-zoom}.carousel-slide img:focus-visible,.photo-dialog img:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}.photo-dialog .dialog-navigation{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:.75rem}.photo-dialog .dialog-navigation button{position:static;min-width:48px;min-height:44px;border:1px solid #85958e;font-size:1.4rem}.photo-dialog .dialog-navigation button:hover{background:#344c43}.dialog-navigation span{font-size:.9375rem;font-variant-numeric:tabular-nums}.photo-dialog img{max-height:70vh}

.carousel-slide figcaption{text-align:center;font-size:1rem;line-height:1.6;padding:1rem 1.5rem;text-wrap:pretty;min-height:5.2rem;display:flex;align-items:center;justify-content:center}@media(max-width:550px){.carousel-slide figcaption{font-size:.9375rem;padding:.85rem 1rem;min-height:6.2rem}}
/* Compact shared row: caption at left, navigation and enlarge at right. */
.photo-carousel{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;row-gap:.4rem}.carousel-stage,.carousel-slide:not([hidden]){display:contents}.carousel-slide[hidden]{display:none}.carousel-slide img{grid-column:1/-1;grid-row:1;background:#e9e7df}.carousel-slide figcaption{grid-column:1;grid-row:2;min-height:0;margin:0;padding:.5rem 0;font-size:.9375rem;line-height:1.5;align-self:center}.carousel-toolbar{grid-column:2;grid-row:2;padding:.25rem 0;gap:.5rem;align-self:center}.carousel-toolbar button{min-width:36px;min-height:38px}.carousel-toolbar .expand-button{margin-left:.2rem;padding:0 .7rem}.carousel-thumbnails{grid-column:1/-1;margin:0;padding-top:0}.carousel-toolbar p{white-space:nowrap}@media(max-width:700px){.photo-carousel{column-gap:.5rem}.carousel-slide figcaption{grid-column:1/-1;grid-row:2;padding:.4rem 0;min-height:0}.carousel-toolbar{grid-column:1/-1;grid-row:3;justify-content:center;padding:0}.carousel-toolbar .expand-button{margin-left:.5rem}.carousel-thumbnails{grid-row:4}}
