/* ===== XedPlex 画像拡大（ライトボックス）共通部品 ===== */
/* 既存セレクタと衝突しないよう xp-lb- / xp-shot を接頭辞に使用 */

img.xp-shot{cursor:zoom-in;transition:filter .15s ease;position:relative;z-index:2;}
img.xp-shot:hover{filter:brightness(1.03);}

/* セクションの装飾オーバーレイ（::before 等）がクリックを奪わないように、
   ギャラリー自体を前面へ */
.xp-gallery,.sys-shots{position:relative;z-index:2;}

/* ギャラリー内は縦長・横長が混在しても表示領域を統一（全体を表示＝contain） */
.xp-gallery img.xp-shot,
.sys-shots img.xp-shot{
  width:100% !important;
  aspect-ratio:4 / 3;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  background:#f4f5f7;
}

.xp-lb{
  position:fixed;inset:0;z-index:9999;display:none;
  align-items:center;justify-content:center;
  padding:28px;background:rgba(8,12,22,.88);
  cursor:zoom-out;opacity:0;transition:opacity .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.xp-lb.is-open{display:flex;opacity:1;}
.xp-lb-img{
  max-width:96vw;max-height:92vh;width:auto;height:auto;
  border-radius:10px;box-shadow:0 30px 90px rgba(0,0,0,.6);
  cursor:default;background:#fff;
}
.xp-lb-close{
  position:absolute;top:18px;right:22px;width:46px;height:46px;
  border:none;border-radius:50%;background:rgba(255,255,255,.16);
  color:#fff;font-size:26px;line-height:1;cursor:pointer;
  display:grid;place-items:center;transition:background .2s;
}
.xp-lb-close:hover{background:rgba(255,255,255,.3);}
.xp-lb-cap{
  position:absolute;left:0;right:0;bottom:20px;text-align:center;
  color:#e7edf6;font-size:13px;padding:0 24px;pointer-events:none;
}
@media(max-width:480px){
  .xp-lb{padding:12px;}
  .xp-lb-close{top:10px;right:12px;width:42px;height:42px;}
}
