/* modal-photo のみ hover */
img[modal-photo] {
	cursor: pointer;
	transition: transform .6s ease;
}

img[modal-photo]:hover 
{
	transform: scale(1.04);
}


.photo-hover-wrap 
{
	position: relative;
	display: inline-block;
	cursor: pointer;
}

.photo-hover-wrap img 
{
	display: block;
	width: 100%;
	transition: transform 0.6s ease;
	transform: scale(1);
}

.photo-hover-wrap:hover img 
{
	transform: scale(1.04);
}


.photo-hover-wrap::before 
{
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	opacity: 0;
	transform: scale(0.8);
	transition: opacity .3s ease, transform .3s ease;
	pointer-events: none;
}

.photo-hover-wrap::after 
{
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.6);
	opacity: 0;
	pointer-events: none;
}

.photo-hover-wrap:hover::before 
{
	opacity: 1;
	transform: scale(1.1);
}

.photo-hover-wrap:hover::after 
{
	animation: photoPulse 1.6s ease-out infinite;
}



@keyframes photoPulse 
{
	0% 
	{
		opacity: 0.7;
		transform: scale(0.8);
	}
	70% 
	{
		opacity: 0;
		transform: scale(1.6);
	}
	100% 
	{
		opacity: 0;
	}
}


@media (hover: none) 
{
	.photo-hover-wrap::before,
	.photo-hover-wrap::after 
	{
		display: none;
	}
}







.js-photo-modal 
{
	cursor: pointer;
}


.photo-modal-overlay 
{
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.7);
	display: flex;
	justify-content: center;
	align-items: center; /* 画面中央配置 */
	z-index: 9999;
	opacity: 0;
	overflow: hidden; /* 背景固定 */
}



.photo-modal-inner img 
{
	display: block;
	max-width: 96vw;
	max-height: 96vh;
	cursor: pointer;
	border-radius: 6px; 
	box-shadow: 0 0 20px rgba(0,0,0,0.5);

	/* 上部だけ厚い白ライン + 全周は薄め */
	border-top: 32px solid #fff; /* 厚めの上部ライン */
	border-left: 10px solid #fff;
	border-right: 10px solid #fff;
	border-bottom: 10px solid #fff;
	box-sizing: border-box;
}

.photo-modal-inner img:hover 
{
	opacity: 0.95;
}



.photo-modal-inner 
{
	position: relative;
	display: inline-block;
	opacity: 0;
	transform: scale(0.9);
	transition: transform 0.3s ease, opacity 0.3s ease;
	border-radius: 6px; /* 角丸 */
	overflow: hidden;   /* 角丸に合わせて画像がはみ出ない */
	box-sizing: border-box;
}

.photo-modal-close 
{
	position: absolute;
	top: 0;           /* 上部ライン内に配置 */
	right: 8px;
	width: 32px;
	height: 32px;
	background: transparent; /* 背景なし */
	color: #ccc;
	font-size: 22px;
	line-height: 32px;       /* ボタン内で縦中央 */
	text-align: center;
	cursor: pointer;
	border-radius: 50%;
	z-index: 3;               /* 画像より前面に表示 */
}


