/**
 * 팝업 모달 스타일
 * - .modal_popup: 오버레이 (기본 숨김, .on 클래스 시 표시)
 * - .popup: 본문 박스 (중앙 정렬, 반응형)
 * - .popup-image / .popup-content / .popup-link: 선택적 노출
 * - .control: 하단 버튼 영역 (오늘 하루 보지 않음 / 닫기)
 */

/* 공통 딤 오버레이: 팝업이 하나라도 열려있으면 표시, 여러 팝업이 겹쳐도 하나만 */
#popup-dim-overlay {
	position: fixed;
	inset: 0;
	z-index: 99998;
	background: rgba(0, 0, 0, 0.55);
	display: none;
}

#popup-dim-overlay.show {
	display: block;
}

.modal_popup {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 99999;
	display: none;
	padding: 0;
	box-sizing: border-box;
}

.modal_popup.on {
	display: block;
}

.modal_popup .popup {
	position: relative;
	width: 100%;
	max-width: min(90vw, 500px);
	max-height: 90vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
	animation: popupFadeIn 0.25s ease-out;
}

@keyframes popupFadeIn {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}

/**
 * 여백 체계 (PC):
 * - 콘텐츠 영역 상단 고정 여백: 32px
 * - 콘텐츠 영역 하단 고정 여백: 32px (control 위)
 * - 콘텐츠 요소 간 gap: 24px
 * - 좌우 여백: 32px
 * - 이미지는 전체 너비 (좌우 여백 없음, 상단 0)
 *
 * 각 요소는 자기 상단 여백만 책임지고, 하단 여백은 .control의 margin-top이 담당
 */

.modal_popup .popup-image {
	display: block;
	width: 100%;
	height: auto;
	max-height: 60vh;
	object-fit: contain;
	margin: 0;
}

.modal_popup .popup-title {
	margin: 0;
	padding: 32px 32px 0;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.35;
	color: #111;
	text-align: center;
	word-break: keep-all;
}

.modal_popup .popup-content {
	padding: 24px 32px 0;
	font-size: 15px;
	line-height: 1.6;
	color: #444;
	word-break: keep-all;
}

/* 컨텐츠가 첫 콘텐츠 요소(이미지 직후 또는 .popup 첫 자식)면 상단 32 */
.modal_popup .popup-image + .popup-content,
.modal_popup .popup > .popup-content:first-child {
	padding-top: 32px;
}

.modal_popup .popup-content h1,
.modal_popup .popup-content h2,
.modal_popup .popup-content h3,
.modal_popup .popup-content h4 {
	margin-top: 0;
	margin-bottom: 12px;
	font-weight: 600;
}

.modal_popup .popup-content p {
	margin: 0 0 12px;
}

.modal_popup .popup-content p:last-child {
	margin-bottom: 0;
}

.modal_popup .popup-content ul,
.modal_popup .popup-content ol {
	margin: 0 0 12px;
	padding-left: 20px;
}

.modal_popup .popup-content a {
	color: #0066cc;
	text-decoration: underline;
}

.modal_popup .popup-link {
	display: block;
	margin: 24px 32px 0;
	padding: 16px 24px;
	background: #111;
	color: #fff;
	text-align: center;
	text-decoration: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	transition: background 0.2s;
}

/* 링크가 첫 콘텐츠 요소(이미지 직후 또는 .popup 첫 자식)면 상단 32 */
.modal_popup .popup-image + .popup-link,
.modal_popup .popup > .popup-link:first-child {
	margin-top: 32px;
}

.modal_popup .popup-link:hover {
	background: #333;
	color: #fff;
	text-decoration: none;
}

/* 하단 버튼 영역: 항상 콘텐츠와 32px 간격 (어떤 요소가 바로 앞에 오든) */
.modal_popup .control {
	display: flex;
	width: 100%;
	margin-top: 32px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.modal_popup .control button {
	flex: 1;
	min-height: 48px;
	padding: 14px;
	border: 0;
	background: #f5f5f5;
	color: #333;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s;
}

.modal_popup .control button:hover {
	background: #ebebeb;
}

.modal_popup .control button + button {
	border-left: 1px solid rgba(0, 0, 0, 0.08);
}

.modal_popup .control .close {
	font-weight: 600;
}

@media (max-width: 767px) {
	/**
	 * 여백 체계 (모바일):
	 * - 콘텐츠 영역 상단/하단 고정 여백: 24px
	 * - 콘텐츠 요소 간 gap: 20px
	 * - 좌우 여백: 24px
	 */
	.modal_popup {
		width: calc(100% - 32px);
	}

	.modal_popup .popup {
		max-width: 100%;
	}

	.modal_popup .popup-title {
		padding: 24px 24px 0;
		font-size: 19px;
	}

	.modal_popup .popup-content {
		padding: 20px 24px 0;
		font-size: 14px;
	}

	.modal_popup .popup-image + .popup-content,
	.modal_popup .popup > .popup-content:first-child {
		padding-top: 24px;
	}

	.modal_popup .popup-link {
		margin: 20px 24px 0;
		padding: 14px 20px;
		font-size: 15px;
	}

	.modal_popup .popup-image + .popup-link,
	.modal_popup .popup > .popup-link:first-child {
		margin-top: 24px;
	}

	.modal_popup .control {
		margin-top: 24px;
	}

	.modal_popup .control button {
		padding: 12px;
		font-size: 13px;
	}
}
