/* 会報誌ビューア（single-newsletter.php 用）
   すべて .nv 配下 / nv- プレフィックスで、既存テーマのCSSと干渉しないようにしています。 */
.nv{--nv-bg:#EEF1F4;--nv-surface:#FFFFFF;--nv-fg:#1F2A33;--nv-muted:#5D6B77;--nv-line:#D5DCE2;--nv-accent:#E0702E;--nv-accent-fg:#FFFFFF;--nv-stage:#DFE4E9;--nv-font:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",system-ui,sans-serif;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;z-index:99998;overflow:hidden;background:var(--nv-bg);font-family:var(--nv-font);font-size:14px;color:var(--nv-fg);line-height:normal;letter-spacing:normal;}
.nv *,.nv *::before,.nv *::after{box-sizing:border-box}
.nv button{
  margin:0;
  appearance:none;
  font-family:inherit;
}
.nv button:focus-visible,.nv a:focus-visible{
  outline:2px solid var(--nv-accent);
  outline-offset:2px;
}

/* ツールバー */
.nv-bar{
  padding:10px 16px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  border-bottom:1px solid var(--nv-line);
  background:var(--nv-surface);
}
.nv-toggle{
  padding:3px;
  display:inline-flex;
  border:1px solid var(--nv-line);
  border-radius:999px;
  background:var(--nv-bg);
}
.nv-toggle button{
  padding:6px 14px;
  border:0;
  border-radius:999px;
  background:transparent;
  cursor:pointer;
  font-size:13px;
  color:var(--nv-muted);
}
.nv-toggle button[aria-pressed="true"]{
  background:var(--nv-accent);
  font-weight:700;
  color:var(--nv-accent-fg);
}
.nv-grp{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-variant-numeric:tabular-nums;
}
.nv-ic{
  min-width:34px;
  height:34px;
  padding:0 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--nv-line);
  border-radius:999px;
  background:var(--nv-surface);
  cursor:pointer;
  font-size:16px;
  line-height:1;
  color:var(--nv-fg);
}
.nv-ic--txt{
  padding:0 12px;
  font-size:12px;
}
.nv-ic:disabled{
  opacity:.35;
  cursor:default;
}
#nv-zlabel{
  min-width:44px;
  text-align:center;
}
.nv-dl{
  height:34px;
  margin-left:auto;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:var(--nv-accent);
  font-size:13px;
  font-weight:700;
  color:var(--nv-accent-fg);
  text-decoration:none;
  white-space:nowrap;
}
.nv-dl:hover{
  opacity:.9;
  color:var(--nv-accent-fg);
}
.nv-dl svg{
  width:15px;
  height:15px;
}

/* 表示エリア */
.nv-stage{
  min-height:0;
  position:relative;
  flex:1;
  background:var(--nv-stage);
}
.nv-loading{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:14px;
  color:var(--nv-muted);
}
.nv-loading[hidden]{display:none}
.nv-pages{
  height:100%;
  touch-action:pan-x pan-y;
  -webkit-user-select:none;
  user-select:none;
}
.nv-pages canvas{
  margin:auto;
  display:block;
  flex:0 0 auto;
  background:#ffffff;
  box-shadow:0 2px 10px rgba(0,0,0,.12);
}

/* 横スライド */
.nv-pages.is-h{
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.nv-pages.is-h::-webkit-scrollbar{display:none}
.nv-pages.is-h .nv-pg{
  height:100%;
  padding:16px;
  flex:0 0 100%;
  display:flex;
  overflow-x:hidden;
  overflow-y:auto;
  scroll-snap-align:center;
  scroll-snap-stop:always;
}
.nv-pages.is-h.is-zoomed{
  overflow:hidden;
  scroll-snap-type:none;
}
.nv-pages.is-h.is-zoomed .nv-pg.is-cur{overflow:auto}

/* 縦スクロール */
.nv-pages.is-v{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:16px;
  overflow:auto;
}
.nv-pages.is-v .nv-pg{
  margin:0 auto;
  flex:0 0 auto;
}
.nv-pages.is-zoomed{cursor:grab}
.nv-pages.is-zoomed.is-drag{cursor:grabbing}

/* 操作ヒント（数秒で消える吹き出し） */
.nv-hint{
  max-width:calc(100% - 32px);
  position:absolute;
  left:50%;
  bottom:14px;
  overflow:hidden;
  padding:6px 12px;
  border:1px solid var(--nv-line);
  border-radius:999px;
  background:var(--nv-surface);
  pointer-events:none;
  transform:translateX(-50%);
  transition:opacity .4s;
  font-size:12px;
  color:var(--nv-muted);
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* スマホ幅 */
@media (max-width:767px){
  .nv-bar{padding:8px 12px}
  .nv-dl{padding:0 10px}
  .nv-dl span{display:none}
}

/* タッチ端末（スマホ・タブレット）の横スライドは、JSで「1回のスワイプ＝1ページ」に制御する */
@media (pointer:coarse){
  .nv-pages.is-h:not(.is-zoomed){
    overflow-x:hidden;
    scroll-snap-type:none;
    touch-action:pan-y;
  }
  .nv-pages.is-h:not(.is-zoomed) .nv-pg{touch-action:pan-y}
}

/* ===== 全画面表示 ===== */
html.nv_lock,html.nv_lock body{overflow:hidden;}
html.nv_lock #wpadminbar{display:none !important;}
.nv .nv_close{height:34px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--nv-line);border-radius:999px;background:var(--nv-surface);font-size:13px;font-weight:700;color:var(--nv-fg);text-decoration:none;white-space:nowrap;}
.nv .nv_close:hover{opacity:.8;color:var(--nv-fg);}
.nv .nv_title{min-width:0;margin:0;padding:0;flex:1 1 200px;overflow:hidden;font-size:15px;font-weight:700;line-height:1.3;color:var(--nv-fg);text-overflow:ellipsis;white-space:nowrap;}
.nv .nv_title small{display:block;font-size:11px;font-weight:400;color:var(--nv-muted);letter-spacing:.04em;}

/* ===== 拡大表示（画面幅320px前後）では、ツールバーを縮小して標準表示と同じ見た目の大きさにする ===== */
@media (max-width:340px){
.nv-bar{zoom:.82;}
}
