/* Original-resolution viewing, scoped to review photographs. */
.zd-review a.zd-review-image-link { position: relative; display: block; cursor: zoom-in; text-decoration: none; }
.zd-review-body a.zd-review-image-link.alignleft { float: left; width: fit-content; max-width: calc(100% - 24px); margin: 7px 24px 7px 0; }
.zd-review-body a.zd-review-image-link.alignright { float: right; width: fit-content; max-width: calc(100% - 24px); margin: 7px 0 7px 24px; }
.zd-review-body a.zd-review-image-link.aligncenter { width: fit-content; max-width: 100%; margin: 7px auto; }
.zd-review-image-link::after { content: '拡大 ↗'; position: absolute; right: 10px; bottom: 10px; padding: 4px 9px; border: 1px solid #ffffff90; border-radius: 3px; color: #fff; background: #252733ad; font-size: 10px; line-height: 1.6; opacity: 0; transition: opacity .15s; pointer-events: none; }
.zd-review-image-link:hover::after, .zd-review-image-link:focus-visible::after { opacity: 1; }
@media (hover: none) { .zd-review-image-link::after { opacity: 1; } }
html.zd-image-viewer-open { overflow: hidden; }
.zd-image-viewer:not([open]) { display: none; }
dialog.zd-image-viewer { position: fixed; inset: 0; display: flex; flex-direction: column; width: calc(100% - 48px); height: calc(100vh - 48px); height: calc(100dvh - 48px); max-width: 1500px; max-height: none; margin: auto; padding: 0; overflow: hidden; border: 1px solid #66514e; border-radius: 7px; color: #f8f8f8; background: #17191e; box-shadow: 0 18px 80px #0008; }
.zd-image-viewer::backdrop { background: #0e1014e8; }
.zd-image-toolbar { display: flex; align-items: center; flex: none; gap: 12px; min-height: 64px; padding: 8px 12px 8px 22px; border-bottom: 1px solid #e7473266; }
.zd-editorial .zd-image-toolbar h2 { flex: 1; margin: 0; color: #f8f8f8; font-size: 14px; font-weight: 600; line-height: 1.6; }
.zd-editorial .zd-image-original { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #e7d3ce; font-size: 12px; line-height: 1.5; }
.zd-editorial .zd-image-original:hover { color: #fff; }
.zd-editorial .zd-image-viewer button { display: grid; place-items: center; flex: none; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid #ffffff35; border-radius: 4px; color: #f8f8f8; background: #ffffff08; cursor: pointer; font: 14px/1.4 "Hiragino Sans", Meiryo, sans-serif; }
.zd-editorial .zd-image-viewer button:hover { border-color: #e74732; background: #ffffff12; }
.zd-editorial .zd-image-viewer button:disabled { opacity: .4; cursor: wait; }
.zd-editorial .zd-image-viewer button[hidden], .zd-image-viewer [hidden] { display: none !important; }
.zd-editorial .zd-image-viewer .zd-image-close { border-color: transparent; font: 30px/1 Arial, sans-serif; }
.zd-image-stage { position: relative; display: flex; align-items: center; justify-content: center; flex: 1 1 0; min-width: 0; min-height: 0; padding: 16px; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.zd-editorial .zd-image-stage .zd-image-full { display: block; flex: none; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0; }
.zd-image-stage.is-zoomed { display: block; padding: 0; }
.zd-editorial .zd-image-stage.is-zoomed .zd-image-full { max-width: none; max-height: none; margin: 0 auto; object-fit: initial; }
.zd-image-status { max-width: 340px; padding: 24px; color: #c3c4ca; font-size: 13px; line-height: 1.9; text-align: center; }
.zd-image-footer { flex: none; padding: 12px 22px 16px; border-top: 1px solid #ffffff20; }
.zd-editorial .zd-image-caption { max-height: 4.5em; margin: 0 0 10px; overflow: auto; color: #c8c9d1; font-size: 12px; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.zd-image-controls { display: flex; align-items: center; justify-content: center; gap: 10px; }
.zd-image-count { min-width: 64px; color: #d0d1d7; font: 12px/1.5 Arial, sans-serif; font-variant-numeric: tabular-nums; text-align: center; }
.zd-editorial .zd-image-viewer .zd-image-zoom { margin-left: auto; min-width: 130px; font-size: 12px; }
.zd-image-stage:focus-visible { outline: 2px solid #e74732; outline-offset: -3px; }
@media (max-width: 767px) {
  dialog.zd-image-viewer { width: 100%; height: 100vh; height: 100dvh; max-width: none; margin: 0; border: 0; border-radius: 0; }
  .zd-image-toolbar { gap: 8px; min-height: 60px; padding: calc(8px + env(safe-area-inset-top, 0px)) max(8px, env(safe-area-inset-right, 0px)) 8px max(14px, env(safe-area-inset-left, 0px)); }
  .zd-editorial .zd-image-toolbar h2 { font-size: 12px; }
  .zd-editorial .zd-image-original { gap: 4px; font-size: 11px; }
  .zd-image-stage { padding: 8px; }
  .zd-image-footer { padding: 10px max(12px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); }
  .zd-image-controls { gap: 6px; }
  .zd-image-count { min-width: 46px; }
  .zd-editorial .zd-image-viewer .zd-image-zoom { min-width: 118px; padding: 8px 10px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .zd-review-image-link::after { transition: none; } }
