.gallery-thumbs{overflow-x:auto;max-width:100%;padding-bottom:8px;scroll-snap-type:x proximity}
.gallery-thumb{flex:0 0 116px;scroll-snap-align:start}
.listing-top>div{min-width:0}.listing-top h1{overflow-wrap:break-word}
.listing-section a{overflow-wrap:anywhere}
@media(max-width:600px){.gallery-thumb{flex-basis:88px;width:88px;height:66px}.listing-facts>div{min-width:0}.listing-facts dd{overflow-wrap:anywhere}}


/* The photograph defines the controls' position, not the viewport edges. */
.gallery-preview{display:flex;justify-content:center;background:#f0f3f2;border-radius:9px;overflow:hidden}
.gallery-image-frame{position:relative;max-width:100%;display:flex;justify-content:center}
.gallery-main{width:auto;max-width:100%;border-radius:0;background:transparent;cursor:zoom-in}
.gallery-main>img{display:block;width:auto;max-width:100%;height:clamp(320px,52vh,560px);object-fit:contain}
.gallery-expand{position:absolute;right:12px;bottom:18px;background:#102e43c9;color:white;padding:6px 12px;border-radius:5px;font-size:12px}
.gallery-prev,.gallery-next,.photo-frame>button{position:absolute;z-index:2;top:calc(50% - 22px);width:44px;height:44px;border:0;border-radius:50%;background:#fffE;color:#143747;cursor:pointer;box-shadow:0 2px 12px #0002;transition:opacity .18s,background .18s}
.gallery-prev,.photo-frame .photo-prev{left:10px}.gallery-next,.photo-frame .photo-next{right:10px}
.gallery-prev:before,.gallery-next:before,.photo-prev:before,.photo-next:before{content:'';display:block;position:absolute;width:11px;height:11px;border-top:2px solid currentColor;border-right:2px solid currentColor;top:15px;left:13px;transform:rotate(45deg)}
.gallery-prev:before,.photo-prev:before{transform:rotate(-135deg);left:18px}
.gallery-prev:hover,.gallery-next:hover,.photo-frame>button:hover{background:#fff}
.gallery-prev:focus-visible,.gallery-next:focus-visible,.photo-frame>button:focus-visible{outline:2px solid #177b72;outline-offset:3px}
.photo-dialog{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:transparent;overflow:hidden;color:#fff}
.photo-dialog[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}
.photo-dialog::backdrop{background:rgba(12,25,34,.55)}
.photo-stage{width:100%;height:calc(100dvh - 70px);display:flex;align-items:center;justify-content:center}
.photo-frame{position:relative;display:flex;align-items:center;justify-content:center;max-width:calc(100vw - 40px)}
.photo-dialog .photo-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 70px);object-fit:contain;margin:0;border-radius:4px;box-shadow:0 5px 35px #0003}
.photo-dialog>.photo-close{position:absolute;right:12px;top:10px;z-index:3;width:40px;height:40px;padding:0;font-size:30px;border:0;border-radius:6px;background:#102e4355;color:white;cursor:pointer}
.photo-dialog #photo-caption{font-size:13px;line-height:20px;margin:10px 0 0;padding:3px 12px;background:#102e4366;border-radius:20px;color:white}
@media(hover:hover) and (pointer:fine){.photo-frame>button{opacity:0}.photo-frame:hover>button,.photo-frame>button:focus-visible{opacity:1}}
@media(max-width:760px){.gallery-main>img{height:360px;height:clamp(280px,48dvh,420px)}.photo-frame{max-width:100vw}.photo-frame .photo-prev,.gallery-prev{left:8px}.photo-frame .photo-next,.gallery-next{right:8px}}
