@charset "utf-8";
/* ===== cv-* を voice-lightbox と同じ動きに ===== */
/* オーバーレイ全体は display を使わず opacity/visibility で制御 */
.cv-overlay {
 position: fixed;
 inset: 0;
 z-index: 12000;
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition: opacity .24s ease, visibility 0s linear .24s; /* フェード後に非表示 */
}
/* 開く：即可視＋フェードイン */
.cv-overlay.is-open {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transition: opacity .24s ease, visibility 0s;
}
/* 閉じる：親ごとフェードアウトしてから不可視に */
.cv-overlay.is-open.is-closing {
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition: opacity .24s ease, visibility 0s linear .24s;
}
/* 背景の暗幕は別要素でフェード */
.cv-backdrop {
 position: absolute;
 inset: 0;
 background: rgba(13, 67, 148, .7);
 backdrop-filter: blur(1px);
 opacity: 0;
 transition: opacity .24s ease;
}
.cv-overlay.is-open .cv-backdrop {
 opacity: 1;
}
/* モーダル本体：中央固定＋ズーム＆フェード */
.cv-modal {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%); /* すこし縮小から */
 opacity: 0;
 width: min(90vw, 580px);/*min(95vw, 580px);*/
 max-height: 85vh;/*90vh;*/
 background: #fff;
 border-radius: 20px;
 box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
 display: grid;
 grid-template-rows: 1fr auto; /* 見出し/キャプションなし前提 */
 padding: 50px 0;
 overflow: hidden;
 transition: transform .25s cubic-bezier(.2, .8, .2, 1), opacity .2s ease;
}
.cv-overlay.is-open .cv-modal {
 transform: translate(-50%, -50%) scale(1);
 opacity: 1;
}
.cv-overlay.is-open.is-closing .cv-modal {
 opacity: 0;
}
/* 中身はそのまま（必要なら微調整） */
.cv-body {
 overflow: auto;
}
.cv-footer {
 margin-top: 1em;/*2em;*/
 display: flex;
 justify-content: center;
}
/* ボタンのタイプミス修正 */
.cv-btn {
 appearance: none;
}
/* 低モーション設定に配慮 */
@media (prefers-reduced-motion: reduce) {
 .cv-overlay, .cv-backdrop, .cv-modal {
  transition: none !important;
 }
}
.cv-close {
 position: absolute;
 top: 17px;
 right: 17px;
 width: 25px;
 height: 25px;
 border: none;
 border-radius: 50%;
 background: transparent;
 cursor: pointer;
}
.cv-close::before, .cv-close::after {
 content: "";
 position: absolute;
 left: 50%;
 top: 50%;
 width: calc(40px * .52);
 height: 3px;
 background: #0d4394;
 border-radius: 1px;
 transform-origin: center;
}
.cv-close::before {
 transform: translate(-50%, -50%) rotate(45deg);
}
.cv-close::after {
 transform: translate(-50%, -50%) rotate(-45deg);
}
.cv-body {
 overflow: auto;
	padding: 20px;
}
.cv-img {
 display: block;
 max-width: 100%;
 height: auto;
 margin: 0 auto;
	box-shadow: 3px 3px 6px rgba(51, 51, 51, 0.3);
}
/*.cv-footer {
 margin-top: 2em;
 display: flex;
 justify-content: center;
}*/
.cv-btn {
 appearance: none;
 border: 2px solid #0d4394;
 background: #fff;
 color: #0d4394;
 border-radius: 999px;
 padding: 13px 60px;
 line-height: 1;
 font-weight: 700;
 font-size: 14px;
 cursor: pointer;
 transition: background .15s ease, transform .05s ease;
}
.cv-btn:hover {
 background: #0d4394;
 color: #fff;
}
/*front-page.phpの虫眼鏡アイコン*/
.js-cv-modal {
 position: relative;
 display: inline-block;
	transition: transform .2s ease, box-shadow .2s ease;
}
.js-cv-modal:hover{
 position: relative;
 display: inline-block;
	transform: translateY(-2px);
}
.js-cv-modal:hover img{
 filter: none;
}
.js-cv-modal .zoom_icon {
 position: absolute;
 background: #0d4394;
 /*z-index: 1;*/
 border-radius: 50%;
 width: 38px;
 height: 38px;
 display: flex;
 justify-content: center;
 align-items: center;
 right: 25px;
 top: 20px;
}
@media (max-width:767px) {
.js-cv-modal .zoom_icon {
 width: 26px;
 height: 26px;
 right: 10px;
 top: 10px;
}
}
.js-cv-modal:hover .zoom_icon {
 filter: none;
 transition: all .1s ease-in;
		background: #2589d0;
}
.js-cv-modal .fa-regular {
 font-weight: bold;
 color: #fff;
}
/*gaiyou.htmlの虫眼鏡アイコン*/
#gaiyou .js-cv-modal .zoom_icon {
 width: 32px;
 height: 32px;
 right: 15px;
 top: 12px;
}
#gaiyou .js-cv-modal .fa-regular {
 font-size: 15px;
}