/* Intro overlay（ロゴ画像＋日本語コピー＋ボタン） */
.fm-intro{
  position:absolute; inset:0; z-index:2;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.55); backdrop-filter:saturate(80%) blur(1px);
}
.fm-intro-inner{
  text-align:center; color:#fff; max-width:min(90vw,900px); padding:24px;
  opacity:0; transform:translateY(16px); animation:hjfmIntroUp .9s ease forwards .15s;
}
/* 任意：ロゴ画像（SVG/PNG/WebP） */
.fm-intro-logo{
  display:block; max-width:min(70vw,520px); height:auto; margin:0 auto 14px;
  opacity:.0; transform:translateY(8px); animation:hjfmIntroUp .9s ease forwards .05s;
}
/* 日本語コピーは上品に */
.fm-intro-copy{
  font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho",
              "Noto Serif JP","MS PMincho",serif;
  font-weight:500; letter-spacing:.02em; line-height:1.4;
  font-synthesis:none; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  margin:0 0 16px;
}
/* 閲覧ボタン */
.fm-intro-btn{
  appearance:none; border:none; border-radius:9999px; padding:12px 22px;
  font-size:16px; font-weight:600; background:#fff; color:#111; cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.25); transition:transform .15s ease, box-shadow .15s ease, opacity .2s ease;
}
.fm-intro-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.35); }
.fm-intro.hiding{ animation:hjfmIntroOut .35s ease forwards; }

@keyframes hjfmIntroUp{ to{ opacity:1; transform:translateY(0) } }
@keyframes hjfmIntroOut{ to{ opacity:0 } }

/* ===== Modal: multi image navigation ===== */
.fm-overlay{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.6); }
.fm-modal{ position:relative; max-width:min(92vw,1200px); max-height:min(92vh,1200px); display:flex; align-items:center; justify-content:center; }
.fm-modal img{ max-width:100%; max-height:100%; border-radius:10px; box-shadow:0 20px 60px rgba(0,0,0,.45); }

.fm-close{
  position:absolute; top:22px; right:22px; z-index:2;
  width:44px; height:44px; border:none; border-radius:999px; background:#fff; color:#111;
  box-shadow:0 4px 16px rgba(0,0,0,.35); cursor:pointer; font-size:22px; line-height:44px; text-align:center;
}

/* 左右ナビ */
.fm-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px; border-radius:999px; border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.35); color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s ease, transform .15s ease; z-index:2;
  backdrop-filter:saturate(120%) blur(2px);
}
.fm-arrow:hover{ background:rgba(0,0,0,.55); transform:translateY(-50%) scale(1.03); }
.fm-arrow:active{ transform:translateY(-50%) scale(1.0); }
.fm-arrow--prev{ left:14px; }
.fm-arrow--next{ right:14px; }

/* 枚数カウンタ */
.fm-counter{
  position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
  background:rgba(0,0,0,.45); color:#fff; font-size:13px; letter-spacing:.02em;
  padding:6px 10px; border-radius:999px; backdrop-filter:saturate(110%) blur(2px);
  z-index:2;
}

/* “穴あき”の元要素を暗く（既存クラス hole を尊重） */
.fm-card.hole{ opacity:.2; }