/* Spacious image viewer; scoped to avoid changing booking administration dialogs. */
.gallery-grid button,.team-photo{position:relative;cursor:zoom-in}
.gallery-grid button:after,.team-photo:after{content:'↗';position:absolute;right:12px;bottom:12px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #ffffff60;border-radius:50%;background:#101a19bf;color:#fff;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}
.gallery-grid button:hover:after,.gallery-grid button:focus-visible:after,.team-photo:hover:after,.team-photo:focus-visible:after{opacity:1;transform:none}
.team-photo{display:block;width:100%;padding:0;border:0;background:transparent;margin-bottom:22px;border-radius:4px;overflow:hidden}.team-photo img{margin-bottom:0!important}
html.photo-viewer-open{overflow:hidden}
dialog.photo-viewer{width:calc(100vw - 48px);max-width:1600px;height:calc(100dvh - 48px);max-height:none;margin:auto;padding:0;border:1px solid #ffffff26;border-radius:12px;background:#0b1211;color:#f5f4ed;overflow:hidden;box-shadow:0 24px 100px #0009}
dialog.photo-viewer[open]{display:flex;flex-direction:column}
dialog.photo-viewer::backdrop{background:#040a09ed;backdrop-filter:blur(8px)}
.photo-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #ffffff14;flex:none}
.photo-label{font-size:13px;letter-spacing:.12em;font-weight:800}.photo-label span{color:#eeb76b;margin-left:18px;font-size:10px;font-weight:600}
dialog.photo-viewer button{position:static;flex:none;display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:0;border:1px solid #ffffff40;border-radius:50%;background:#1b2925;color:#fff;font:32px/1 Arial,sans-serif;transition:background .2s,border-color .2s}
dialog.photo-viewer button:hover{background:#344338;border-color:#eeb76b}
dialog.photo-viewer button[hidden]{display:none}
.photo-stage{display:flex;gap:20px;align-items:center;flex:1;min-height:0;padding:18px 22px}
.photo-stage figure{margin:0;position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:0;height:100%;touch-action:pan-y pinch-zoom}
dialog.photo-viewer .photo-image{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
dialog.photo-viewer .photo-image[hidden]{display:none}
.photo-message{font-size:14px;text-align:center;color:#b6c0b9;padding:20px}.photo-message:empty{display:none}
.photo-footer{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff14;padding:16px 24px}
.photo-caption{margin:0;font-size:14px;color:#dce4dd;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.photo-count{font-size:13px;color:#eeb76b;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.06em}
@media(max-width:700px){dialog.photo-viewer{width:100%;max-width:100%;height:100dvh;border:0;border-radius:0}.photo-toolbar{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.photo-label span{margin-left:10px}.photo-stage{position:relative;padding:8px 0 68px;gap:0}dialog.photo-viewer .photo-prev,dialog.photo-viewer .photo-next{position:absolute;bottom:10px;z-index:2}.photo-prev{left:calc(50% - 60px)}.photo-next{right:calc(50% - 60px)}.photo-footer{padding:14px 18px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.photo-caption{font-size:12px}.gallery-grid button:after,.team-photo:after{opacity:1;transform:none;width:28px;height:28px;font-size:14px}}
.managed-gallery img{aspect-ratio:3/2!important;height:auto!important;width:100%;object-fit:cover}

/* Phone landscape: use the whole browser viewport without cropping the image. */
@media (orientation:landscape) and (max-height:600px){
 dialog.photo-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0}
 dialog.photo-viewer .photo-stage{position:absolute;inset:0;padding:0;gap:0}
 dialog.photo-viewer .photo-stage figure{width:100%;height:100%;margin:0}
 dialog.photo-viewer .photo-image{object-fit:contain}
 dialog.photo-viewer .photo-toolbar{position:absolute;top:0;right:0;left:0;z-index:3;padding:8px max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left));border:0;pointer-events:none;justify-content:flex-end}
 dialog.photo-viewer .photo-label,dialog.photo-viewer .photo-caption{display:none}
 dialog.photo-viewer .photo-close{pointer-events:auto}
 dialog.photo-viewer .photo-prev,dialog.photo-viewer .photo-next{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);z-index:2}
 dialog.photo-viewer .photo-prev{left:max(8px,env(safe-area-inset-left));right:auto}
 dialog.photo-viewer .photo-next{right:max(8px,env(safe-area-inset-right));left:auto}
 dialog.photo-viewer button{background:#0b1211a6;width:44px;height:44px;min-width:44px}
 dialog.photo-viewer .photo-footer{position:absolute;bottom:0;left:0;right:0;z-index:2;border:0;justify-content:center;padding:6px 12px max(6px,env(safe-area-inset-bottom));pointer-events:none}
 dialog.photo-viewer .photo-count{background:#0b1211b3;color:#fff;border-radius:12px;padding:3px 10px}
}
