/* [추가 2026-10-07] SPEAKER 테스트2 — 상세 화면을 우측 슬라이드 대신 화면 가운데 팝업으로
   speaker-test.css 다음에 로드 */

.spk-panel {
	top: 50%;
	right: auto;
	bottom: auto;
	left: 50%;
	width: min(110rem, calc(100% - 4rem));
	max-height: calc(100vh - 6rem);
	max-height: calc(100dvh - 6rem);
	border-radius: 2.4rem;
	box-shadow: 0 2.4rem 6rem rgba(0, 0, 0, 0.35);
	overflow: hidden;
	opacity: 0;
	transform: translate(-50%, -46%) scale(0.96);
	transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.45s;
}

.spk-panel.is-open {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
	transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
}

.spk-panel-inner {
	height: auto;
	max-height: inherit;
	padding: 6.4rem 6.4rem 6rem;
}

/* 상세 상단 — 세션 배지 / 세션 주제 / 이름 */
.spk-detail-head {
	gap: 3.6rem;
}

.spk-detail-photo {
	flex-basis: 21rem;
}

.spk-detail-top {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.spk-detail-badge {
	display: inline-flex;
	align-items: center;
	height: 3.4rem;
	padding: 0 1.8rem;
	border: 2px solid #fff;
	border-radius: 2rem;
	background: #00b3ae;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	white-space: nowrap;
}

.spk-detail-session {
	margin: 1.2rem 0 0;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.45;
	color: #fff;
}

.spk-detail-top .spk-detail-name {
	align-self: stretch;
	margin-top: 2.4rem;
	font-size: 3.6rem;
}

.spk-detail-org,
.spk-detail-pos {
	font-size: 1.7rem;
}

.spk-detail-cv {
	margin-top: 4.4rem;
	font-size: 1.8rem;
}

.spk-detail-scroll {
	height: 38rem;
}

/* 소개 글 — 흰 배경 박스, 스크롤바는 박스 바깥 좌측 */
.spk-detail-body {
	box-sizing: border-box;
	min-height: 100%;
	margin-left: 2.4rem;
	padding: 2.6rem 3rem;
	background: #fff;
	border-radius: 0.4rem;
	font-size: 1.65rem;
	color: #333;
}

.spk-detail-body h5 {
	color: #0e7481;
}

.spk-detail-body strong {
	color: #1a1a1a;
}

.spk-detail-body .spk-meta {
	color: #555;
}

.spk-detail-body .spk-tbu {
	color: #999;
}

/* 5명 한 줄이 박스 폭을 꽉 채우도록 남는 폭을 4칸 간격으로 분배 */
.spk-list {
	gap: 5rem max(5.6rem, calc((100% - 21.6rem * 5) / 4));
}

@media screen and (max-width: 1024px) {
	.spk-panel-inner {
		padding: 5.6rem 3.6rem 4.4rem;
	}

	.spk-detail-photo {
		flex-basis: 18rem;
	}

	.spk-detail-top .spk-detail-name {
		font-size: 3rem;
	}
}

@media screen and (max-width: 768px) {
	.spk-panel {
		width: calc(100% - 2.4rem);
		max-height: calc(100vh - 4rem);
		max-height: calc(100dvh - 4rem);
		border-radius: 1.6rem;
	}

	.spk-panel-inner {
		padding: 6rem 2rem 3rem;
	}

	.spk-panel-close {
		top: 1.4rem;
		right: 1.4rem;
	}

	.spk-detail-head {
		gap: 1.8rem;
	}

	.spk-detail-photo {
		flex-basis: 11rem;
	}

	.spk-detail-badge {
		height: 2.6rem;
		padding: 0 1.2rem;
		font-size: 1.3rem;
	}

	.spk-detail-session {
		margin-top: 0.8rem;
		font-size: 1.4rem;
	}

	.spk-detail-top .spk-detail-name {
		margin-top: 1.2rem;
		font-size: 2.2rem;
	}

	.spk-detail-org,
	.spk-detail-pos {
		font-size: 1.4rem;
	}

	.spk-detail-cv {
		margin-top: 2.4rem;
		font-size: 1.5rem;
	}

	.spk-detail-scroll {
		height: auto;
		min-height: 14rem;
		flex: 1 1 auto;
	}

	.spk-detail-body {
		margin-left: 1.6rem;
		padding: 1.8rem 1.8rem;
		font-size: 1.45rem;
	}

	.spk-list {
		gap: 3.2rem 2.8rem;
	}
}

@media screen and (max-width: 480px) {
	.spk-list {
		gap: 3.2rem 3.4rem;
	}
}
