/* Shared photo viewer; scoped to preserve each property identity. */
html.gallery-open{overflow:hidden}
#villa-lightbox{position:fixed;inset:0;margin:auto;color:#faf7ef;background:#272a24;border:1px solid #ffffff20;font-family:"Helvetica Neue","Noto Sans JP",sans-serif;line-height:1.8;overscroll-behavior:contain}
#villa-lightbox::backdrop{background:#000d}
#villa-lightbox button{font:inherit;cursor:pointer;color:#fff;border:1px solid #ffffff80;background:transparent;padding:10px 18px;min-height:44px;letter-spacing:normal}
#villa-lightbox :is(h2,p){color:inherit}#villa-lightbox h2{margin:0;font-weight:400;line-height:1.6}
#villa-lightbox :is(a,button):focus-visible{outline:3px solid #d9c8a4;outline-offset:4px}
#villa-lightbox .v-photo-thumb{padding:0;border:0;text-align:left;min-width:0;background:transparent;color:#f4f1e9}
#villa-lightbox .lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:12px}
.v-gallery-archive[hidden],.v-gallery-all[hidden]{display:none!important}.v-gallery-actions{text-align:center;margin-top:35px}
.v-gallery-all{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:54px;border:1px solid currentColor;background:transparent;color:inherit;padding:16px 25px;font:inherit;font-size:14px;cursor:pointer}
.v-gallery-all span{font-size:12px}.v-gallery-all:hover{background:#8881}.v-gallery-all:focus-visible{outline:3px solid #b3965d;outline-offset:5px}
@media(max-width:700px){.v-gallery-all{width:100%;gap:12px;padding:15px 18px;font-size:14px}}
#villa-lightbox.v-photo-dialog{padding:0;width:min(1120px,calc(100vw - 28px));max-width:calc(100vw - 28px);height:min(900px,92dvh);max-height:92dvh;overflow:hidden;border:1px solid #ffffff20}
.v-photo-dialog[open]{display:flex;flex-direction:column}.v-photo-dialog [hidden]{display:none!important}
.v-dialog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 20px;border-bottom:1px solid #ffffff24;flex-shrink:0;background:#282923}
.v-photo-dialog .close-gallery{margin:0}.v-photo-dialog .v-photo-toggle{color:#e9dec8;border-color:#b4a17c;font-size:14px}
.v-dialog-single{display:flex;flex-direction:column;flex:1;min-height:0;padding:20px}
.v-dialog-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.v-dialog-stage img{display:block;width:100%;height:100%;object-fit:contain;min-height:0}
.v-dialog-stage .v-photo-status{font-size:14px;text-align:center;max-width:460px;padding:24px;line-height:1.8;color:#e5e1d7}
.v-photo-dialog .lightbox-controls{flex-shrink:0;padding-top:16px}.v-photo-dialog .lightbox-controls p{font-size:13px;line-height:1.7;margin:0 12px}
.v-dialog-index{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px}
.v-index-heading{margin-bottom:24px}.v-index-heading h2{font-size:26px}.v-index-heading h2 small{font-family:system-ui,sans-serif;font-size:13px;color:#d9c8a4;margin-left:10px}.v-index-heading p{font-size:13px;color:#d5d1c5;margin:8px 0 0}
.v-photo-thumbnails{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:23px 16px;align-items:start}
.v-photo-dialog .v-photo-thumb{padding:0;border:0;text-align:left;min-width:0;background:transparent;color:#f4f1e9;font:inherit;cursor:zoom-in}
.v-photo-thumb img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#393b33}.v-photo-thumb span{display:block;font-size:12px;line-height:1.7;padding-top:9px}
.v-photo-thumb[aria-current=true] img{outline:2px solid #d9c8a4;outline-offset:3px}.v-photo-thumb:hover img{filter:brightness(1.1)}
@media(max-width:700px){#villa-lightbox.v-photo-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);height:92dvh;max-height:92dvh}.v-dialog-toolbar{padding:12px;gap:10px}.v-photo-dialog .v-dialog-toolbar button{font-size:13px;padding:9px 12px;min-height:44px}.v-dialog-single{padding:12px}.v-photo-dialog .lightbox-controls{gap:6px;padding-top:12px}.v-photo-dialog .lightbox-controls p{font-size:12px;margin:0 5px}.v-photo-dialog .lightbox-controls button{padding:9px 15px}.v-dialog-index{padding:20px 14px}.v-index-heading h2{font-size:24px}.v-photo-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.v-photo-thumb span{font-size:11px}}

.photo-collection-note{max-width:680px;margin:20px auto 0;font:inherit;font-size:13px;line-height:1.9;text-align:center}
.v-gallery-all span{margin-left:0}
