@charset "utf-8";

/* ==================================================
	공통 상위 컨텐츠
================================================== */
.cont_inner {
	width: 100%;
}

.cont_inner2 {
	width: 100%;
}

.cont_inner2.reveal-up {
	opacity: 0;
	transform: translateY(1.2rem);
	visibility: visible;
	transition: opacity 0.8s 0.3s ease-out, transform 0.8s 0.3s ease-out;
}

.cont_inner2.reveal-up.is-revealed {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
	transition: opacity 0.8s 0.3s ease-out, transform 0.8s 0.3s ease-out;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width:1100px) {
	.cont_inner {
		margin-top: 0;
	}

	.cont_inner2 {
		margin-top: 0;
	}
}

/* ==================================================
	공통 기본 컨텐츠
================================================== */
.blind {
	display: none;
}

/* ==================
	반응형CSS
=====================*/
.mb_brblock {
	display: none !important;
}

@media screen and (max-width: 1024px) {
	.mb_brnone {
		display: none !important;
	}

	.mb_brblock {
		display: block !important;
	}
}

@media screen and (max-width: 640px) {
	.mb_brnone2 {
		display: none !important;
	}
}

/* ==================================================
	공통 개별 컨텐츠
================================================== */

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1600px) {}

/* ==================================================
	애니메이션
================================================== */
.reveal {
	opacity: 0;
	transform: translateY(4rem);
	transition: var(--transition-base);
}

.reveal.is-active {
	opacity: 1;
	transform: translateY(0);
}

.reveal-up,
.reveal-scale,
.reveal-left,
.reveal-right {
	opacity: 0;
	visibility: hidden;
}

.reveal-up {
	transform: translateY(60px);
}

.reveal-scale {
	transform: scale(0.9);
}

.reveal-left {
	transform: translateX(60px);
}

.reveal-right {
	transform: translateX(-60px);
}

.is-revealed {
	opacity: 1;
	visibility: visible;
	transform: translate(0, 0) scale(1);
	transition: all 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sub-hero.reveal-up {
	opacity: 0;
	transform: translateY(1.2rem);
	visibility: visible;
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.sub-hero.reveal-up.is-revealed {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* ==================================================
	행사소개 - 행사개요 (event/overview.html)
================================================== */
.event-overview {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.event-overview .reveal-up {
	opacity: 0;
	transform: translateY(2rem);
	visibility: visible;
	will-change: opacity, transform;
	transition: opacity 0.72s ease-out, transform 0.72s ease-out;
}

.event-overview .reveal-up.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

.event-overview-intro.reveal-up {
	transition-delay: 0.04s;
}

.event-overview-main.reveal-up {
	transition-delay: 0.16s;
}

.event-overview .cta-banner.reveal-up {
	transition-delay: 0.28s;
}

.event-overview-intro h3 {
	margin: 0;
	font-size: 4rem;
	font-weight: var(--font-bd);
	line-height: 1.2;
	color: var(--color-black);
}

.event-overview-intro h3 span {
	color: var(--brand-color-main);
}

.event-overview-intro p {
	margin: 1.4rem 0 0;
	font-size: 1.9rem;
	font-weight: var(--font-reg);
	line-height: 1.5;
	color: var(--color-black);
}

.event-overview-main {
	display: flex;
	align-items: stretch;
	gap: 4rem;
}

.event-overview-poster {
	position: relative;
	flex: 0 0 40rem;
	width: 40rem;
	max-width: 100%;
	align-self: stretch;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 1.6rem;
	overflow: hidden;
	box-shadow: 0 2.5rem 5rem -1.2rem rgba(0, 21, 74, 0.1);
	background: #f6f3f2;
}

.event-overview-poster img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
	object-position: center center;
}

.event-overview-poster::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	background: rgba(0, 21, 74, 0.05);
	pointer-events: none;
}

.event-overview-info {
	flex: 1 1 auto;
	align-self: stretch;
	min-height: 0;
	border: 1px solid #e8e8e8;
	border-radius: 4rem;
	background: var(--color-white);
	padding: 5em 7rem;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.event-overview-item>p:first-child,
.event-overview-org-item>p:first-child {
	display: block;
	font-family: var(--font-Inter);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--brand-color-main);
	opacity: 0.7;
}

.event-overview-item>p:last-child {
	margin: 0.8rem 0 0;
	font-size: 2.2rem;
	font-weight: var(--font-md);
	line-height: 1.2;
	color: #1b1c1c;
}

.event-overview-item:first-child>p:last-child {
	color: #00154a;
}

.event-overview-location {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
}

.event-overview-location img {
	width: 2.5rem;
	height: 2rem;
}

.event-overview-org {
	margin-top: auto;
	padding-top: 1.6rem;
	border-top: 1px solid #dadada;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
}

.event-overview-org-item p {
	margin: 0.8rem 0 0;
	display: flex;
	align-items: center;
	gap: 1.3rem;
}

.event-overview-org-item p img {
	display: block;
	max-height: 3.6rem;
	width: auto;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1500px) {
	.event-overview-main {
		gap: 3rem;
	}

	.event-overview-poster {
		width: 36rem;
	}

	.event-overview-info {
		padding: 4em 6rem;
		gap: 1.8rem;
	}

	.event-overview-intro h3 {
		font-size: 3.6rem;
	}
}

@media screen and (max-width: 1024px) {
	.event-overview {
		gap: 3.2rem;
	}

	.event-overview-intro h3 {
		font-size: 3rem;
	}

	.event-overview-intro p {
		margin-top: 1.2rem;
		font-size: 1.8rem;
	}

	.event-overview-main {
		flex-direction: column;
		align-items: stretch;
		gap: 2rem;
	}

	.event-overview-poster {
		flex: none;
		align-self: center;
		width: 100%;
		max-width: 36rem;
		height: auto;
		margin: 0 auto;
	}

	.event-overview-poster img {
		position: static;
		width: 100%;
		height: auto;
	}

	.event-overview-info {
		align-self: auto;
		min-height: 0;
		border-radius: 2.4rem;
		padding: 3em 4rem;
		gap: 1.6rem;
	}

	.event-overview-org {
		margin-top: 0.4rem;
		padding-top: 1.2rem;
		gap: 1.6rem;
	}

	.event-overview-item>p:last-child {
		font-size: 2rem;
	}
}

@media screen and (max-width: 768px) {
	.event-overview {
		gap: 2.4rem;
	}

	.event-overview-intro h3 {
		font-size: 2.6rem;
	}

	.event-overview-intro p {
		margin-top: 1rem;
		font-size: 1.6rem;
	}

	.event-overview-main {
		gap: 1.6rem;
	}

	.event-overview-poster {
		max-width: 32rem;
	}

	.event-overview-info {
		padding: 2.4em 2.4rem;
		gap: 1.4rem;
	}

	.event-overview-item>p:last-child {
		font-size: 1.8rem;
	}

	.event-overview-org {
		grid-template-columns: 1fr;
		padding-top: 1rem;
		gap: 1.2rem;
	}

	.event-overview-org-item p img {
		max-height: 3rem;
	}
}

/* ==================================================
	행사소개 - 환영사
================================================== */
.welcome_container {
	padding: 3rem 15rem 0;
	text-align: center;
}

/* 헤더 */
.welcome_header {
	margin-bottom: 5rem;
}

.welcome_header .badge {
	display: inline-block;
	padding: 0.7rem 2.4rem;
	background: #EBF4FF;
	color: var(--brand-color-main);
	border-radius: 2rem;
	font-weight: var(--font-bd);
	font-size: 1.3rem;
	margin-bottom: 2.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.welcome_title {
	font-size: 4rem;
	font-weight: var(--font-eb);
	line-height: 1.55;
	letter-spacing: -0.02em;
	word-break: keep-all;
}

/* 본문 단락 */
.welcome_content .main_desc {
	font-size: 1.8rem;
	line-height: 2.1;
	margin-bottom: 3rem;
	letter-spacing: -0.01em;
	word-break: keep-all;
}

/* 마무리 문장 */
.closing_msg {
	font-size: 1.8rem;
	line-height: 2.1;
	margin-top: 6rem;
	word-break: keep-all;
}

/* 서명 */
.signature_area {
	margin-top: 8rem;
	padding-top: 6rem;
	border-top: 1px solid #E0E0E0;
}

.signature_area .position {
	font-size: 1.7rem;
	font-weight: var(--font-bd);
	color: #888;
	margin-bottom: 1.4rem;
	letter-spacing: 0.03em;
}

.signature_area .name {
	font-size: 3.6rem;
	font-weight: var(--font-eb);
	letter-spacing: 0.4em;
	margin-right: -0.4em;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1280px) {
	.welcome_container {
		padding: 0 14rem 0;
	}

	.welcome_title {
		font-size: 3.6rem;
	}
}

@media screen and (max-width: 1024px) {
	.welcome_container {
		padding: 0;
	}

	.welcome_header {
		margin-bottom: 4rem;
	}

	.welcome_title {
		font-size: 3.2rem;
		line-height: 1.5;
	}

	.welcome_content .main_desc,
	.plain_values .value_item,
	.closing_msg {
		font-size: 1.7rem;
		line-height: 2;
	}

	.welcome_content .main_desc {
		margin-bottom: 2.6rem;
	}

	.closing_msg {
		margin-top: 5rem;
	}

	.signature_area {
		margin-top: 7rem;
		padding-top: 5rem;
	}

	.signature_area .name {
		font-size: 3.2rem;
	}
}

@media screen and (max-width: 768px) {
	.welcome_header {
		margin-bottom: 3rem;
	}

	.welcome_header .badge {
		font-size: 1.2rem;
		padding: 0.6rem 2rem;
		margin-bottom: 2rem;
	}

	.welcome_title {
		font-size: 2.6rem;
		line-height: 1.45;
	}

	.welcome_content .main_desc,
	.plain_values .value_item,
	.closing_msg {
		font-size: 1.5rem;
		line-height: 1.9;
	}

	.welcome_content .main_desc {
		margin-bottom: 2.2rem;
	}

	.closing_msg {
		margin-top: 4rem;
	}

	.signature_area {
		margin-top: 5rem;
		padding-top: 4rem;
	}

	.signature_area .position {
		font-size: 1.4rem;
		margin-bottom: 1rem;
	}

	.signature_area .name {
		font-size: 2.6rem;
		letter-spacing: 0.3em;
		margin-right: -0.3em;
	}
}

@media screen and (max-width: 640px) {
	.welcome_header {
		margin-bottom: 2.4rem;
	}

	.welcome_header .badge {
		font-size: 1.1rem;
		padding: 0.5rem 1.6rem;
		margin-bottom: 1.6rem;
		letter-spacing: 0.08em;
	}

	.welcome_title {
		font-size: 2.2rem;
		line-height: 1.45;
	}

	.welcome_content .main_desc,
	.plain_values .value_item,
	.closing_msg {
		font-size: 1.4rem;
		line-height: 1.85;
	}

	.welcome_content .main_desc {
		margin-bottom: 1.8rem;
	}

	.closing_msg {
		margin-top: 3.2rem;
	}

	.signature_area {
		margin-top: 4rem;
		padding-top: 3rem;
	}

	.signature_area .position {
		font-size: 1.3rem;
		margin-bottom: 0.8rem;
	}

	.signature_area .name {
		font-size: 2.2rem;
		letter-spacing: 0.25em;
		margin-right: -0.25em;
	}
}

/* ==================================================
	행사소개 - 연혁
================================================== */
.year_section {
	margin-bottom: 8rem;
}

.year_section:last-child {
	margin-bottom: 0;
}

/* 연도 헤더 */
.year_header {
	display: flex;
	align-items: baseline;
	gap: 1.4rem;
	margin-bottom: 2.8rem;
	padding-bottom: 1.8rem;
	border-bottom: 0.1rem solid #dde3ec;
}

.year_header h3 {
	font-size: 4.8rem;
	font-weight: var(--font-eb);
	color: var(--primary-navy);
	line-height: 1;
	letter-spacing: -0.04em;
}

.year_header .hist_year_sub {
	font-size: 1.8rem;
	font-weight: var(--font-sb);
	color: #8A96A8;
	letter-spacing: -0.01em;
}

/* 4열 그리드 */
.session_grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

/* 카드 */
.session_card {
	background: var(--color-white);
	border: 0.1rem solid #e8ecf2;
	border-radius: 1.2rem;
	padding: 2.8rem 2.4rem 2.4rem;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.session_card:hover {
	border-color: #b3c9f0;
	box-shadow: 0 0.8rem 2.8rem rgba(0, 86, 225, 0.09);
}

/* 회차 배지 */
.session_card .round_badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 3rem;
	padding: 0 1.4rem;
	border-radius: 10rem;
	background: var(--brand-color-main);
	color: var(--color-white);
	font-size: 1.5rem;
	font-weight: var(--font-eb);
	margin-bottom: 2rem;
	width: fit-content;
	letter-spacing: 0.02em;
}

/* 날짜 */
.session_card .date_box {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin-bottom: 1.4rem;
}

.session_card .date_box .cal_icon {
	font-size: 1.5rem;
	color: var(--brand-color-main);
	line-height: 1;
}

.session_card .date_box .date_txt {
	font-size: 1.5rem;
	color: #7A8799;
	font-weight: var(--font-sb);
	letter-spacing: -0.01em;
}

/* 주제 */
.session_card .topic_text {
	font-size: 1.8rem;
	font-weight: var(--font-bd);
	color: var(--primary-navy);
	line-height: 1.5;
	letter-spacing: -0.02em;
	margin-bottom: 2.4rem;
	word-break: keep-all;
	min-height: 5.7rem;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* 버튼 */
.session_card .btn_card_link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	height: 4.8rem;
	border-radius: 0.8rem;
	background: var(--accent);
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s ease, box-shadow 0.2s ease;
	letter-spacing: -0.01em;
	margin-top: auto;
}

.session_card .btn_card_link:hover {
	background: var(--brand-color-main);
	box-shadow: 0 0.4rem 1.4rem rgba(0, 120, 255, 0.25);
}

.session_card .btn_card_link .xi-angle-right-min {
	font-size: 1.6rem;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1300px) {
	.session_grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.8rem;
	}

	.session_card .topic_text {
		font-size: 1.7rem;
		min-height: 5.4rem;
	}
}

@media screen and (max-width: 1024px) {
	.year_section {
		margin-bottom: 6.4rem;
	}

	.year_header {
		gap: 1.2rem;
		margin-bottom: 2.4rem;
		padding-bottom: 1.6rem;
	}

	.year_header h3 {
		font-size: 4rem;
	}

	.year_header .hist_year_sub {
		font-size: 1.6rem;
	}

	.session_grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.6rem;
	}

	.session_card {
		padding: 2.4rem 2rem 2rem;
	}

	.session_card .round_badge {
		height: 2.8rem;
		padding: 0 1.2rem;
		font-size: 1.4rem;
		margin-bottom: 1.6rem;
	}

	.session_card .topic_text {
		font-size: 1.6rem;
		min-height: 5.1rem;
		margin-bottom: 2rem;
	}

	.session_card .btn_card_link {
		height: 4.4rem;
		font-size: 1.4rem;
	}
}

@media screen and (max-width: 768px) {
	.year_section {
		margin-bottom: 5rem;
	}

	.year_header {
		gap: 1rem;
		margin-bottom: 2rem;
		padding-bottom: 1.4rem;
	}

	.year_header h3 {
		font-size: 3.6rem;
	}

	.year_header .hist_year_sub {
		font-size: 1.5rem;
	}

	.session_grid {
		grid-template-columns: 1fr;
		gap: 1.4rem;
	}

	.session_card {
		padding: 2.2rem 2rem 2rem;
		border-radius: 1rem;
	}

	.session_card .topic_text {
		min-height: 0;
		margin-bottom: 1.8rem;
		-webkit-line-clamp: unset;
	}

	.session_card .date_box {
		margin-bottom: 1.2rem;
	}

	.session_card .date_box .cal_icon,
	.session_card .date_box .date_txt {
		font-size: 1.4rem;
	}
}

@media screen and (max-width: 640px) {
	.year_section {
		margin-bottom: 4rem;
	}

	.year_header {
		gap: 0.8rem;
		margin-bottom: 1.6rem;
		padding-bottom: 1.2rem;
	}

	.year_header h3 {
		font-size: 3rem;
	}

	.year_header .hist_year_sub {
		font-size: 1.4rem;
	}

	.session_grid {
		gap: 1.2rem;
	}

	.session_card {
		padding: 2rem 1.6rem 1.8rem;
		border-radius: 0.8rem;
	}

	.session_card .round_badge {
		height: 2.6rem;
		padding: 0 1rem;
		font-size: 1.3rem;
		margin-bottom: 1.4rem;
	}

	.session_card .topic_text {
		line-height: 1.45;
		margin-bottom: 1.6rem;
	}

	.session_card .date_box .cal_icon,
	.session_card .date_box .date_txt {
		font-size: 1.3rem;
	}

	.session_card .btn_card_link {
		height: 4rem;
		font-size: 1.3rem;
	}

	.session_card .btn_card_link .xi-angle-right-min {
		font-size: 1.4rem;
	}
}

/* ==================================================
	프로그램
================================================== */
.program-schedule {
	/* 발표 1 기준(수정 전 .tag: padding 0 1rem + 텍스트 너비) */
	--program-label-w: 6.8rem;
	--program-avatar-size: 10rem;
	--program-tabs-gap: 1rem;
	--program-hero-pb: 2rem;
}

.program-schedule .program-wrap {
	padding-bottom: 0.4rem;
}

.program-schedule .hero {
	padding: 0.2rem 0 var(--program-hero-pb);
	text-align: center;
}

.program-schedule .round {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4.8rem;
	height: 2.8rem;
	padding: 0 1.4rem;
	border-radius: 10rem;
	background: var(--brand-color-main);
	color: var(--color-white);
	font-size: 1.8rem;
	font-weight: var(--font-bd);
	line-height: 1;
}

.program-schedule .date {
	margin: 0.8rem 0 0.3rem;
	font-size: 1.8rem;
	font-weight: var(--font-bd);
	line-height: 1.45;
	color: #6a6a6a;
}

.program-schedule .title {
	margin: 0;
	font-size: 3.2rem;
	line-height: 1.4;
	font-weight: var(--font-bd);
	color: var(--accent);
	letter-spacing: -0.01em;
}

.program-schedule .title span {
	display: block;
	font-size: 2.7rem;
	color: var(--color-black);
}

.program-schedule .program-table {
	display: grid;
	grid-template-columns: 21rem 1fr;
	gap: 0.5rem;
}

.program-schedule .head {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 4.6rem;
	padding: 0.6rem 1.6rem;
	border: 0.1rem solid rgba(0, 120, 255, 0.74);
	border-radius: 99.9rem;
	background: #fcffff;
	font-size: 1.9rem;
	font-weight: 700;
	color: var(--brand-color-main);
}

.program-schedule .time {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.1rem 1.4rem;
	border-radius: 2rem;
	border: 0.1rem solid rgba(0, 103, 180, 0.2);
	background: rgba(134, 191, 255, 0.1);
	font-size: 1.9rem;
	font-weight: var(--font-md);
	line-height: 1.4;
}

.program-schedule .content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.3rem 2rem 1.3rem 2.4rem;
	border-radius: 2rem;
	border: 0.1rem solid rgba(0, 103, 180, 0.2);
	background: rgba(255, 255, 255, 0.9);
}

.program-schedule .content-base {
	display: block;
	padding-right: 0;
}

.program-schedule .content-base .line-title {
	font-size: 2.2rem;
	line-height: 1.4;
}

.program-schedule .content-base .line-meta {
	font-size: 1.5rem;
	line-height: 1.4;
}

.program-schedule .content-base .line-meta strong {
	font-size: 1.8rem;
}

.program-schedule .line-title {
	font-size: 2.2rem;
	line-height: 1.45;
	font-weight: var(--font-md);
	color: var(--color-black);
}

.program-schedule .line-meta {
	margin-top: 0.4rem;
	font-size: 1.5rem;
	line-height: 1.45;
	font-weight: var(--font-md);
	color: #4a4a4a;
}

.program-schedule .line-meta strong {
	font-size: 2rem;
	font-weight: var(--font-bd);
	color: var(--color-black);
}

.program-schedule .divider {
	color: #dfdfdf;
	margin: 0 0.6rem;
}

.program-schedule .topic {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	font-size: 2.1rem;
	line-height: 1.45;
	font-weight: var(--font-md);
	color: var(--color-black);
	word-break: keep-all;
	flex-wrap: wrap;
}

.program-schedule .tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	width: var(--program-label-w);
	min-width: var(--program-label-w);
	max-width: var(--program-label-w);
	height: 2.4rem;
	padding: 0 1rem;
	border: 0.1rem solid var(--brand-color-main);
	border-radius: 10rem;
	font-size: 1.6rem;
	font-weight: var(--font-bd);
	line-height: 1;
	color: var(--brand-color-main);
	white-space: nowrap;
}

.program-schedule .speaker-row {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin-top: 0.5rem;
}

.program-schedule .role-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	width: var(--program-label-w);
	min-width: var(--program-label-w);
	max-width: var(--program-label-w);
	height: 2.4rem;
	padding: 0;
	border: 0.1rem solid #3976ba;
	border-radius: 10rem;
	font-size: 1.6rem;
	font-weight: var(--font-bd);
	line-height: 1;
	color: #3976ba;
	background: #edf6ff;
}

.program-schedule .flag {
	/* 수정 전 원본 유지:
	width: 3.1rem;
	height: 2rem;
	object-fit: cover;
	*/
	/* 수정: 요청 반영 - 모든 국기 SVG 동일 표시 크기(고정 박스) */
	width: 3.1rem;
	height: 2rem;
	object-fit: contain;
	display: block;
}

.program-schedule .flag.kr {
	border: 0.1rem solid #e5e5e5;
	background: var(--color-white);
	/* 수정: 동일 크기 유지 상태에서 내측 여백 제거 */
	padding: 0;
	object-fit: contain;
	box-sizing: border-box;
}

.program-schedule .avatar {
	width: var(--program-avatar-size);
	height: var(--program-avatar-size);
	border-radius: 50%;
	object-fit: cover;
	/* cover + 기본 50% 50% 크롭은 얼굴이 상단에 있는 사진에서 정수리가 잘림 → 초점을 약간 위로 */
	object-position: center 22%;
	flex-shrink: 0;
	border: 1px solid #ededed;
}

.program-schedule .avatar-trigger {
	position: relative;
	width: var(--program-avatar-size);
	height: var(--program-avatar-size);
	border: 0;
	border-radius: 50%;
	padding: 0;
	overflow: hidden;
	background: transparent;
	cursor: pointer;
	flex-shrink: 0;
}

.program-schedule .avatar-trigger .avatar {
	display: block;
	position: relative;
	z-index: 0;
}

.program-schedule .avatar-trigger::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 120, 255, 0.70);
	opacity: 0;
	transition: opacity 0.2s ease;
	z-index: 1;
	pointer-events: none;
}

.program-schedule .avatar-trigger::after {
	content: "+";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 2.8rem;
	height: 2.8rem;
	margin: -1.4rem 0 0 -1.4rem;
	border-radius: 50%;
	border: 0.2rem solid rgba(255, 255, 255, 0.9);
	color: var(--color-white);
	font-size: 2rem;
	font-weight: var(--font-bd);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	text-align: center;
	padding-bottom: 0.1rem;
	opacity: 0;
	transition: opacity 0.2s ease;
	box-sizing: border-box;
	z-index: 2;
	pointer-events: none;
}

.program-schedule .avatar-trigger:hover::before,
.program-schedule .avatar-trigger:hover::after,
.program-schedule .avatar-trigger:focus-visible::before,
.program-schedule .avatar-trigger:focus-visible::after {
	opacity: 1;
}

.program-schedule .avatar-trigger:focus-visible {
	outline: 0.2rem solid var(--brand-color-main);
	outline-offset: 0.2rem;
}

.program-schedule .speaker-row .line-meta {
	margin-top: 0;
	font-size: 1.45rem;
	line-height: 1.4;
}

.program-schedule .speaker-row .line-meta strong {
	font-size: 1.9rem;
	margin-right: 0.4rem;
}

.program-schedule .speaker-row .speaker-meta.long-org {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 1rem;
	min-width: 0;
}

.program-schedule .speaker-row .speaker-meta-name {
	font-size: 2rem;
	font-weight: var(--font-bd);
	line-height: 1.3;
	color: var(--color-black);
}

.program-schedule .speaker-row .speaker-meta-affiliation {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.35;
	color: #4a4a4a;
	word-break: keep-all;
	letter-spacing: -0.01em;
	white-space: normal;
}

.program-schedule .content>div {
	flex: 1;
	min-width: 0;
}

/* Tabs Styling */
.program-tabs-container {
	margin-bottom: var(--program-tabs-gap);
	display: flex;
	justify-content: center;
}

.program-tabs {
	display: inline-flex;
	gap: 0.8rem;
	padding: 0.8rem;
	background: #f8fafc;
	border-radius: 10rem;
	border: 0.1rem solid #e2e8f0;
	box-shadow: inset 0 0.2rem 0.4rem rgba(0, 0, 0, 0.02);
}

.tab-btn {
	padding: 1.4rem 4.5rem;
	border-radius: 10rem;
	font-size: 1.9rem;
	font-weight: var(--font-bd);
	color: --text-muted;
	background: transparent;
	border: none;
	cursor: pointer;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.tab-btn.active {
	color: var(--color-white);
	background: var(--accent);
}

.tab-btn:not(.active):hover {
	color: var(--accent);
	background: rgba(0, 86, 225, 0.05);
}

.tab-panel {
	display: none;
}

.tab-panel.active {
	display: block;
}

.coming-soon-box {
	padding: 12rem 0;
	text-align: center;
	background: rgba(248, 250, 252, 0.5);
	border-radius: 4rem;
	border: 0.2rem dashed #e2e8f0;
}

.coming-soon-box h4 {
	font-size: 3.2rem;
	font-weight: var(--font-bd);
	color: #cbd5e1;
	letter-spacing: -0.02em;
}

.coming-soon-box p {
	margin-top: 1.5rem;
	font-size: 1.8rem;
	color: --text-muted;
}

/* 모달창 */
.speaker_modal {
	--speaker-section-title-size: 2rem;
	--speaker-section-title-mb: 2.5rem;
	--speaker-bio-font-size: 1.6rem;
	--speaker-bio-item-mb: 0.8rem;
	--speaker-bio-line-height: 1.6;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(8, 15, 36, 0.85);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 1000;
	/* 블러가 과하면 배경 합성 시 글자 윤곽이 물리는 느낌이 날 수 있음 */
	backdrop-filter: blur(0.8rem);
	-webkit-backdrop-filter: blur(0.8rem);
	opacity: 0;
	transition: opacity 0.32s ease;
}

.speaker_modal.active {
	display: flex;
	opacity: 1;
}

.speaker_modal .modal_content {
	background: var(--color-white);
	border-radius: 5rem;
	max-width: 82rem;
	width: 95%;
	position: relative;
	overflow: hidden;
	box-shadow: 0 6rem 12rem rgba(0, 0, 0, 0.5);
	border: 0.1rem solid rgba(255, 255, 255, 0.2);
	/* scale은 소수 배율일 때 글자가 흐릿해 보이는 경우가 많아 등장은 translate만 사용 */
	transform: translateY(2rem);
	opacity: 0;
	transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: geometricPrecision;
}

.speaker_modal.active .modal_content {
	transform: translateY(0);
	opacity: 1;
}

.speaker_modal .modal_watermark {
	position: absolute;
	top: -2rem;
	right: -3rem;
	font-size: 15rem;
	font-weight: var(--font-bd);
	color: #F7FAFC;
	text-transform: uppercase;
	z-index: 0;
	pointer-events: none;
	line-height: 1;
	opacity: 0.8;
}

.speaker_modal .modal_header {
	padding: 5rem 7rem 0;
	text-align: left;
	position: relative;
	z-index: 1;
}

.speaker_modal .role_badge {
	display: inline-block;
	padding: 0.6rem 1.8rem;
	background: linear-gradient(135deg, #007AFF 0%, #00C2FF 100%);
	color: var(--color-white);
	border-radius: 5rem;
	font-size: 1.5rem;
	font-weight: var(--font-bd);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	box-shadow: 0 0.8rem 1.5rem rgba(0, 122, 255, 0.15);
	margin-bottom: 2.5rem;
}

.speaker_modal .modal_body {
	padding: 0 7rem 6rem;
	position: relative;
	z-index: 1;
}

.speaker_modal .modal_profile_section {
	display: flex;
	gap: 5rem;
	margin-bottom: 5rem;
	/* 수정 전 원본 유지:
	align-items: flex-start;
	*/
	/* 수정: 요청 반영 - PC 형태에서 사진/정보 세로 가운데 정렬 */
	align-items: center;
}

.speaker_modal .modal_image {
	width: 18rem;
	height: 23rem;
	border-radius: 3rem;
	overflow: hidden;
	flex-shrink: 0;
	box-shadow: 0 2rem 5rem rgba(16, 28, 61, 0.1);
	background: #f8f9fa;
}

.speaker_modal .modal_image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 22%;
}

.speaker_modal .modal_info {
	flex-grow: 1;
	text-align: left;
}

.speaker_modal .name_group {
	display: flex;
	align-items: center;
	gap: 1.8rem;
	margin-bottom: 2rem;
}

.speaker_modal .modal_name {
	font-size: 3.2rem;
	font-weight: var(--font-bd);
	color: var(--primary-navy);
	letter-spacing: -0.04em;
}

.speaker_modal .modal_flag {
	width: 4rem;
	height: 2.6rem;
	border-radius: 0.3rem;
	box-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.1);
	object-fit: cover;
}

.speaker_modal .info_meta {
	display: flex;
	flex-direction: column;
	gap: 2.2rem;
}

.speaker_modal .meta_item {
	display: grid;
	grid-template-columns: 10.5rem 1fr;
	align-items: flex-start;
	gap: 2.5rem;
}

.speaker_modal .meta_item .label {
	font-size: 1.5rem;
	font-weight: var(--font-bd);
	color: #4A5568;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background: #F7FAFC;
	padding: 0.5rem 0;
	border-radius: 0.6rem;
	text-align: center;
	border: 0.1rem solid #EDF2F7;
}

.speaker_modal .meta_item .value {
	font-size: 1.6rem;
	color: #4A5568;
	font-weight: var(--font-sb);
	line-height: 1.6;
	padding-top: 0.2rem;
	word-break: keep-all;
	letter-spacing: -0.05rem;
}

/*.speaker_modal .meta_item .topic_value {
	color: #4A5568;
	font-size: 1.8rem;
	line-height: 1.4;
}*/

.speaker_modal .modal_bio_section {
	text-align: left;
}

.speaker_modal .section_title {
	font-size: var(--speaker-section-title-size);
	font-weight: var(--font-bd);
	color: var(--primary-navy);
	margin-bottom: var(--speaker-section-title-mb);
	/*letter-spacing: 0.15em;*/
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

/*.speaker_modal .section_title::after {
	content: '';
	flex-grow: 1;
	height: 0.1rem;
	background: linear-gradient(to right, #EDF2F7, transparent);
}*/

.speaker_modal .bio_list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.speaker_modal .bio_list li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: var(--speaker-bio-item-mb);
	font-size: var(--speaker-bio-font-size);
	color: #4A5568;
	line-height: var(--speaker-bio-line-height);
	font-weight: var(--font-md);
}

.speaker_modal .bio_list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 1.2rem;
	width: 0.6rem;
	height: 0.2rem;
	background: var(--brand-color-main);
	border-radius: 0.2rem;
}

.speaker_modal .modal_close {
	position: absolute;
	top: 3.5rem;
	right: 3.5rem;
	width: 4.4rem;
	height: 4.4rem;
	cursor: pointer;
	font-size: 0;
	line-height: 0;
	color: transparent;
	z-index: 100;
	background: #F7FAFC;
	border: none;
	border-radius: 50%;
	display: block;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
	transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1),
		box-shadow 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
	box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
}

/* × 문자 글리프는 폰트마다 박스가 비대칭이라 원 안에서 항상 삐뚤어 보임 → 막대 2개로 X 조립 */
.speaker_modal .modal_close::before,
.speaker_modal .modal_close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 1.45rem;
	height: 0.18rem;
	border-radius: 0.09rem;
	background: var(--primary-navy);
	transform-origin: center center;
	transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1),
		transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.speaker_modal .modal_close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.speaker_modal .modal_close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.speaker_modal .modal_close:hover {
	background: var(--primary-navy);
}

.speaker_modal .modal_close:hover::before,
.speaker_modal .modal_close:hover::after {
	background: var(--color-white);
}

.speaker_modal .modal_close:hover::before {
	transform: translate(-50%, -50%) rotate(45deg) scale(1.08);
}

.speaker_modal .modal_close:hover::after {
	transform: translate(-50%, -50%) rotate(-45deg) scale(1.08);
}

.speaker_modal.is-chair .role_badge {
	background: linear-gradient(135deg, #1226aa 0%, #3976ba 100%);
}

/* ==================
	반응형CSS
=====================*/
/* 수정: PC 대형 화면(1600px 이하)에서 프로그램/모달 비율 보정 */
@media screen and (max-width: 1600px) {
	.program-schedule {
		--program-avatar-size: 9.2rem;
		--program-tabs-gap: 0.9rem;
		--program-hero-pb: 1.8rem;
	}

	.speaker_modal .modal_content {
		max-width: 78rem;
	}

	.speaker_modal .modal_header {
		padding: 4.5rem 6rem 0;
	}

	.speaker_modal .modal_body {
		padding: 0 6rem 5rem;
	}
}

@media screen and (max-width: 1400px) {
	.program-schedule {
		--program-tabs-gap: 0.85rem;
		--program-hero-pb: 1.7rem;
	}

	.program-schedule .title {
		font-size: 3.2rem;
	}

	.program-schedule .title span {
		font-size: 2.6rem;
	}

	.program-schedule .program-table {
		grid-template-columns: 20rem 1fr;
	}

	.speaker_modal .modal_profile_section {
		gap: 3.5rem;
		margin-bottom: 4rem;
	}

	.speaker_modal .modal_image {
		width: 16rem;
		height: 21rem;
	}

	.speaker_modal .modal_name {
		font-size: 2.9rem;
	}
}

@media screen and (max-width: 1300px) {
	.coming-soon-box {
		padding: 10rem 3rem;
		border-radius: 3.2rem;
	}

	.coming-soon-box h4 {
		font-size: 2.8rem;
	}

	.coming-soon-box p {
		font-size: 1.7rem;
	}

	.program-schedule {
		--program-tabs-gap: 0.8rem;
		--program-hero-pb: 1.6rem;
	}

	.program-schedule .date {
		font-size: 1.7rem;
	}

	.program-schedule .title {
		font-size: 2.9rem;
	}

	.program-schedule .title span {
		font-size: 2.4rem;
	}

	.program-schedule .program-table {
		grid-template-columns: 17rem 1fr;
		gap: 0.45rem;
	}

	.program-schedule .head {
		font-size: 1.7rem;
		min-height: 4.4rem;
	}

	.program-schedule .time {
		font-size: 1.7rem;
	}

	.program-schedule .line-title {
		font-size: 2rem;
	}

	.program-schedule .line-meta {
		font-size: 1.4rem;
	}

	.program-schedule .line-meta strong {
		font-size: 1.8rem;
	}

	.program-schedule .content-base .line-title {
		font-size: 1.8rem;
	}

	.program-schedule .content-base .line-meta {
		font-size: 1.3rem;
	}

	.program-schedule .content-base .line-meta strong {
		font-size: 1.6rem;
	}

	.program-schedule .topic {
		font-size: 1.9rem;
	}

	.program-schedule {
		--program-avatar-size: 8.8rem;
	}

	.speaker_modal .modal_content {
		max-width: 72rem;
	}

	.speaker_modal .modal_header {
		padding: 4rem 4.8rem 0;
	}

	.speaker_modal .modal_body {
		padding: 0 4.8rem 4.6rem;
	}

	.speaker_modal .modal_watermark {
		font-size: 12rem;
	}

	.speaker_modal .modal_close {
		top: 2.8rem;
		right: 2.8rem;
	}
}

@media screen and (max-width: 1024px) {
	.program-schedule {
		--program-tabs-gap: 0.75rem;
		--program-hero-pb: 1.5rem;
	}

	.program-tabs-container {
		width: 100%;
		max-width: 100%;
		margin-right: 0;
		justify-content: center;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x;
		overscroll-behavior-x: contain;
	}

	.program-tabs {
		gap: 0.6rem;
		padding-top: 0.4rem;
		padding-bottom: 0.4rem;
	}

	.program-tabs {
		width: auto;
		justify-content: center;
		flex-wrap: nowrap;
	}

	.tab-btn {
		flex-shrink: 0;
		min-width: 8rem;
		font-size: 1.7rem;
		padding-left: 3.2rem;
		padding-right: 3.2rem;
		padding-top: 1.1rem;
		padding-bottom: 1.1rem;
	}
}

@media screen and (max-width: 980px) {
	.coming-soon-box {
		padding: 8rem 2.4rem;
		border-radius: 2.8rem;
	}

	.coming-soon-box h4 {
		font-size: 2.4rem;
	}

	.coming-soon-box p {
		margin-top: 1.2rem;
		font-size: 1.6rem;
	}

	.program-schedule {
		--program-tabs-gap: 0.7rem;
		--program-hero-pb: 1.4rem;
	}

	.program-schedule .program-table {
		grid-template-columns: 1fr;
		gap: 0.4rem;
	}

	.program-schedule .head,
	.program-schedule .time,
	.program-schedule .content {
		border-radius: 2rem;
	}

	.program-schedule .content {
		padding: 1.4rem 1.6rem;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 1.2rem;
	}

	.program-schedule .avatar-trigger {
		flex: 0 0 auto;
		margin-left: auto;
	}

	.program-schedule .head {
		display: none;
	}

	.program-schedule .time {
		padding: 1rem 1.4rem;
	}

	.program-schedule {
		--program-avatar-size: 8rem;
	}

	.speaker_modal .modal_content {
		max-width: 64rem;
		width: calc(100% - 4rem);
		border-radius: 3rem;
	}

	.speaker_modal .modal_header {
		padding: 3.2rem 3.2rem 0;
	}

	.speaker_modal .modal_body {
		padding: 0 3.2rem 3.4rem;
	}

	.speaker_modal .modal_profile_section {
		flex-direction: column;
		gap: 2.4rem;
		margin-bottom: 3rem;
	}

	.speaker_modal .modal_image {
		width: 15rem;
		height: 19rem;
		margin-left: auto;
		margin-right: auto;
	}

	.speaker_modal .name_group {
		gap: 1.2rem;
		margin-bottom: 1.4rem;
		justify-content: center;
	}

	.speaker_modal .modal_info {
		width: 100%;
		text-align: left;
	}

	.speaker_modal .info_meta {
		align-items: flex-start;
	}

	.speaker_modal .modal_name {
		font-size: 2.6rem;
	}

	.speaker_modal .meta_item {
		grid-template-columns: 8.6rem 1fr;
		gap: 1.6rem;
	}

	.speaker_modal .modal_close {
		top: 2rem;
		right: 2rem;
		width: 4rem;
		height: 4rem;
	}

	.speaker_modal {
		--speaker-section-title-size: 1.9rem;
		--speaker-section-title-mb: 2.3rem;
		--speaker-bio-font-size: 1.55rem;
		--speaker-bio-item-mb: 0.75rem;
	}
}

@media screen and (max-width: 768px) {
	.coming-soon-box {
		padding: 6.2rem 2rem;
		border-radius: 2.4rem;
	}

	.coming-soon-box h4 {
		font-size: 2.1rem;
	}

	.coming-soon-box p {
		font-size: 1.5rem;
	}

	.program-schedule {
		--program-tabs-gap: 0.65rem;
		--program-hero-pb: 1.3rem;
	}

	.tab-btn {
		padding: 1rem 2.5rem;
		font-size: 1.6rem;
	}

	.program-schedule .hero {
		border-radius: 2.8rem;
	}

	.program-schedule .title {
		font-size: 2.5rem;
	}

	.program-schedule .title span {
		font-size: 2.1rem;
	}

	.program-schedule .topic {
		font-size: 1.7rem;
	}

	.program-schedule {
		--program-avatar-size: 7.2rem;
	}

	.speaker_modal .modal_watermark {
		top: 0.5rem;
		right: -1rem;
		font-size: 8rem;
	}

	.speaker_modal .role_badge {
		font-size: 1.3rem;
		margin-bottom: 1.8rem;
	}

	.speaker_modal .modal_name {
		font-size: 2.3rem;
	}

	.speaker_modal .meta_item .value {
		font-size: 1.5rem;
	}

	/*.speaker_modal .meta_item .topic_value {
		font-size: 1.7rem;
	}*/

	.speaker_modal {
		--speaker-section-title-size: 1.8rem;
		--speaker-section-title-mb: 2rem;
		--speaker-bio-font-size: 1.5rem;
		--speaker-bio-item-mb: 0.7rem;
	}
}

@media screen and (max-width: 640px) {
	.coming-soon-box {
		padding: 5.4rem 1.8rem;
	}

	.coming-soon-box h4 {
		font-size: 1.95rem;
	}

	.program-schedule {
		--program-tabs-gap: 0.6rem;
		--program-hero-pb: 1.2rem;
	}

	.speaker_modal {
		--speaker-section-title-size: 1.7rem;
		--speaker-section-title-mb: 1.8rem;
		--speaker-bio-font-size: 1.45rem;
		--speaker-bio-item-mb: 0.65rem;
	}

	.program-tabs {
		gap: 0.8rem;
	}

	.tab-btn {
		padding: 0.9rem 1.8rem;
		font-size: 1.4rem;
	}

	.program-schedule .date {
		font-size: 1.5rem;
	}

	.program-schedule .time {
		font-size: 1.4rem;
		padding: 0.95rem 1.2rem;
	}

	.program-schedule .round {
		min-width: 4.2rem;
		height: 2.4rem;
		font-size: 1.5rem;
	}

	.program-schedule .title {
		font-size: 2.2rem;
	}

	.program-schedule .title span {
		font-size: 1.9rem;
	}

	.program-schedule .line-title {
		font-size: 1.8rem;
	}

	.program-schedule .line-meta {
		font-size: 1.3rem;
	}

	.program-schedule .line-meta strong {
		font-size: 1.6rem;
	}

	.program-schedule .content-base .line-title {
		font-size: 1.6rem;
	}

	.program-schedule .content-base .line-meta {
		font-size: 1.2rem;
	}

	.program-schedule .content-base .line-meta strong {
		font-size: 1.4rem;
	}

	.program-schedule .topic {
		font-size: 1.55rem;
	}

	.program-schedule .content {
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 1rem;
		padding: 1.2rem 1.4rem;
	}

	.program-schedule .content>div {
		width: 100%;
	}

	.program-schedule .speaker-row {
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;
		row-gap: 0.5rem;
		column-gap: 0.8rem;
		text-align: center;
	}

	.program-schedule .speaker-row .role-pill,
	.program-schedule .speaker-row .flag {
		flex-shrink: 0;
	}

	.program-schedule .speaker-row .flag {
		order: 3;
		/* [수정-20260512] flex-basis:100% 가 KR 플래그(배경+테두리)를 가로 전체로 늘려
		   "길쭉한 흰 띠" 처럼 보이는 문제 발생.
		   라인 브레이크 의도는 유지하되, 실제 너비를 max-width 로 고정하여 해결.
		   원본 유지:
		flex-basis: 100%;
		*/
		flex-basis: 100%;
		max-width: 3.1rem;
		height: 2rem;
		margin-left: auto;
		margin-right: auto;
	}

	.program-schedule .speaker-row .speaker-meta.long-org {
		flex: 1 1 100%;
		flex-direction: column;
		align-items: center;
		gap: 0.2rem;
		min-width: 0;
	}

	.program-schedule .speaker-row .speaker-meta-affiliation {
		font-size: 1.25rem;
		line-height: 1.45;
		letter-spacing: 0;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.program-schedule .avatar-trigger {
		margin-left: 0;
		margin-right: 0;
		align-self: center;
	}

	.speaker_modal .modal_content {
		width: calc(100% - 3rem);
		border-radius: 2.4rem;
	}

	.speaker_modal .modal_header {
		padding: 2.6rem 2.2rem 0;
	}

	.speaker_modal .modal_body {
		padding: 0 2.2rem 2.6rem;
	}

	.speaker_modal .modal_image {
		width: 12.5rem;
		height: 16rem;
		border-radius: 1.8rem;
	}

	.speaker_modal .modal_close {
		top: 1.3rem;
		right: 1.3rem;
		width: 3.6rem;
		height: 3.6rem;
	}
}

@media screen and (max-width: 480px) {
	.coming-soon-box {
		padding: 4.6rem 1.5rem;
		border-radius: 2rem;
	}

	.coming-soon-box h4 {
		font-size: 1.8rem;
	}

	.coming-soon-box p {
		margin-top: 1rem;
		font-size: 1.4rem;
	}

	.program-schedule {
		--program-tabs-gap: 0.55rem;
		--program-hero-pb: 1.1rem;
	}

	.program-schedule .title {
		font-size: 2.2rem;
	}

	.program-schedule .title span {
		font-size: 1.8rem;
	}

	.program-schedule .content {
		padding: 1.1rem 1.2rem;
	}

	.program-schedule .time {
		font-size: 1.4rem;
		padding: 0.8rem 1rem;
	}

	.program-schedule .topic {
		font-size: 1.6rem;
	}

	.program-schedule .speaker-row {
		gap: 0.8rem;
	}

	.program-schedule {
		--program-avatar-size: 6.8rem;
	}

	.speaker_modal {
		--speaker-section-title-size: 1.6rem;
		--speaker-section-title-mb: 1.6rem;
		--speaker-bio-font-size: 1.4rem;
		--speaker-bio-item-mb: 0.6rem;
	}

	.speaker_modal .modal_watermark {
		font-size: 6rem;
		right: -0.6rem;
	}

	.speaker_modal .modal_name {
		font-size: 2rem;
	}

	.speaker_modal .modal_flag {
		width: 3.2rem;
		height: 2.1rem;
	}

	.speaker_modal .meta_item {
		grid-template-columns: 1fr;
		gap: 0.9rem;
	}

	.speaker_modal .meta_item .label {
		width: 8rem;
		padding: 0.3rem 0;
	}

	.speaker_modal .meta_item .value {
		padding-top: 0;
	}
}

/* ==================================================
	프로그램 및 발표영상 준비중
================================================== */
.cs-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 15rem 0;
	text-align: center;
}

.cs-tag {
	background: var(--brand-color-main);
	color: var(--color-white);
	padding: 0.8rem 2.4rem;
	border-radius: 10rem;
	font-size: 1.6rem;
	font-weight: var(--font-bd);
	margin-bottom: 3rem;
	letter-spacing: 0.1em;
	box-shadow: 0 1rem 2rem rgba(0, 120, 255, 0.2);
}

.cs-tit {
	font-size: 5.4rem;
	font-weight: 900;
	color: var(--primary-navy);
	margin-bottom: 2.4rem;
	letter-spacing: -0.04em;
	line-height: 1.2;
}

.cs-txt {
	font-size: 2.2rem;
	color: #64748b;
	max-width: 100rem;
	line-height: 1.7;
	font-weight: var(--font-md);
	word-break: keep-all;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1600px) {
	.cs-wrap {
		padding: 13rem 0;
	}

	.cs-tit {
		font-size: 5rem;
	}
}

@media screen and (max-width: 1280px) {
	.cs-wrap {
		padding: 11rem 0;
	}

	.cs-tag {
		font-size: 1.5rem;
		padding: 0.7rem 2rem;
		margin-bottom: 2.4rem;
	}

	.cs-tit {
		font-size: 4.4rem;
		margin-bottom: 2rem;
	}

	.cs-txt {
		font-size: 2rem;
	}
}

@media screen and (max-width: 1024px) {
	.cs-wrap {
		padding: 9rem 0;
	}

	.cs-tag {
		font-size: 1.4rem;
		padding: 0.7rem 1.8rem;
		margin-bottom: 2rem;
	}

	.cs-tit {
		font-size: 3.8rem;
		margin-bottom: 1.8rem;
	}

	.cs-txt {
		font-size: 1.9rem;
		line-height: 1.65;
	}
}

@media screen and (max-width: 768px) {
	.cs-wrap {
		padding: 7rem 0;
	}

	.cs-tag {
		font-size: 1.3rem;
		padding: 0.6rem 1.6rem;
		margin-bottom: 1.6rem;
	}

	.cs-tit {
		font-size: 3rem;
		margin-bottom: 1.4rem;
	}

	.cs-txt {
		font-size: 1.8rem;
		max-width: 100%;
		line-height: 1.6;
	}

	.cs-txt br {
		display: none;
	}
}

@media screen and (max-width: 480px) {
	.cs-wrap {
		padding: 5.6rem 0;
	}

	.cs-tag {
		font-size: 1.2rem;
		padding: 0.55rem 1.4rem;
		margin-bottom: 1.4rem;
	}

	.cs-tit {
		font-size: 2.5rem;
		line-height: 1.3;
	}

	.cs-txt {
		font-size: 1.6rem;
		line-height: 1.55;
	}
}

/* ==================================================
	연사신청
================================================== */
.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .reg_label_wrap {
	grid-column: 1 / -1;
	margin-bottom: 0;
}

.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate {
	margin-bottom: 0;
	--period-plate-py: 2rem;
	--period-plate-px: 3rem;
	gap: 2rem;
}

.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .val {
	font-size: 2rem;
	line-height: 1.35;
	word-break: keep-all;
}

.reg_guide_container > .reg_info_section .reg_label {
	word-break: keep-all;
	line-height: 1.3;
}

.period_plate[aria-disabled="true"] {
	opacity: 0.45;
	filter: grayscale(0.35);
	pointer-events: none;
}

.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate:not([aria-disabled="true"]) {
	border-color: var(--accent);
	box-shadow: 0 1rem 3rem rgba(0, 123, 255, 0.08);
}

.reg_notice_box .process_desc + .process_desc {
	margin-top: 1.6rem;
}

/* [추가-20260610] 연사신청: 증명사진 파일 입력 (reg_input 재사용) */
.reg_form_wrap input[type="file"].reg_input {
	height: auto;
	min-height: 5.2rem;
	padding: 1.2rem 1.8rem;
	line-height: 1.5;
}

.form_field.full .reg_input + .reg_input {
	margin-top: 1rem;
}

/* ==================
	반응형CSS
=====================*/

/* [추가-20260610] 연사신청: 1300px — 신청기간 period_plate (사전등록 1300px 구간과 동일 단계 보강) */
@media screen and (max-width: 1300px) {
	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) {
		gap: 1.4rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate {
		--period-plate-py: 2rem;
		--period-plate-px: 2.6rem;
		gap: 1.8rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .val {
		font-size: 1.95rem;
	}
}

/* [추가-20260610] 연사신청: 1024px — 신청기간·안내문·파일입력 (사전등록 1024px 구간과 동일 단계 보강) */
@media screen and (max-width: 1024px) {
	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate {
		--period-plate-py: 1.9rem;
		--period-plate-px: 2.4rem;
		gap: 1.6rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .period_icon {
		font-size: 2.4rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .val {
		font-size: 1.85rem;
		line-height: 1.4;
	}

	.reg_notice_box .process_desc + .process_desc {
		margin-top: 1.4rem;
	}

	.reg_form_wrap input[type="file"].reg_input {
		min-height: 4.8rem;
		padding: 1.1rem 1.6rem;
		font-size: 1.75rem;
	}
}

/* [수정-20260610] 연사신청: 768px — 신청기간·안내문·파일입력·이력필드 간격 */
@media screen and (max-width: 768px) {
	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) {
		gap: 1.2rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate {
		--period-plate-py: 1.8rem;
		--period-plate-px: 2rem;
		gap: 1.2rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .period_icon {
		font-size: 2.2rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .val {
		font-size: 1.7rem;
		line-height: 1.45;
	}

	.reg_notice_box .process_desc + .process_desc {
		margin-top: 1.2rem;
	}

	.reg_form_wrap input[type="file"].reg_input {
		min-height: 4.6rem;
		padding: 1rem 1.5rem;
		font-size: 1.65rem;
	}

	.form_field.full .reg_input + .reg_input {
		margin-top: 0.8rem;
	}
}

/* [추가-20260610] 연사신청: 640px — 신청기간 세로배치·모바일 최종 사이즈 (사전등록 640px .period_plate 연동) */
@media screen and (max-width: 640px) {
	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) {
		gap: 1rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate {
		--period-plate-py: 1.6rem;
		--period-plate-px: 1.8rem;
		gap: 0.8rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .period_icon {
		font-size: 2rem;
	}

	.reg_guide_container > .reg_info_section:has(.period_plate ~ .period_plate) .period_plate .val {
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.reg_notice_box .process_desc + .process_desc {
		margin-top: 1rem;
	}

	.reg_form_wrap input[type="file"].reg_input {
		min-height: 4.4rem;
		padding: 0.9rem 1.4rem;
		font-size: 1.55rem;
	}

	.form_field.full .reg_input + .reg_input {
		margin-top: 0.7rem;
	}
}

/* ==================================================
	사전등록
================================================== */
/* 섹션 공통 */
.reg_info_section {
	--reg-section-mb: 5rem;
	margin-bottom: var(--reg-section-mb);
}

.reg_info_section:last-child {
	margin-bottom: 0;
}

.reg_label_wrap {
	margin-bottom: 4rem;
	display: flex;
	align-items: center;
	gap: 1.2rem;
}

.reg_label {
	font-size: 2.6rem;
	font-weight: var(--font-eb);
	color: var(--primary-navy);
	position: relative;
	padding-bottom: 1.5rem;
}

.reg_label::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 4rem;
	height: 0.4rem;
	background: var(--accent);
	border-radius: 0.2rem;
}

/* 사전등록 기간 */
.period_plate {
	--period-plate-py: 2.5rem;
	--period-plate-px: 6rem;
	background: linear-gradient(to right, #fff, var(--bg-gray));
	border: 0.1rem solid var(--border);
	border-radius: 1.6rem;
	padding: var(--period-plate-py) var(--period-plate-px);
	display: flex;
	align-items: center;
	gap: 5rem;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.03);
	position: relative;
	overflow: hidden;
}

/*.period_plate::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0) 80%);
	transform: translateX(-120%);
	animation: plateShine 2.8s ease-in-out infinite;
}*/

.period_plate .period_icon {
	font-size: 2.8rem;
	color: var(--accent);
	opacity: 0.8;
	flex-shrink: 0;
	/*animation: pulseIcon 1.8s ease-in-out infinite;*/
}

.period_plate .val {
	font-size: 2.2rem;
	font-weight: var(--font-bd);
	color: var(--accent);
}

/* 등록 절차 */
.process_box {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.5rem;
}

.process_item {
	background: var(--color-white);
	border: 0.1rem solid var(--border);
	border-radius: 2rem;
	padding: 3rem 3rem;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	position: relative;
	overflow: hidden;
	box-shadow: 0 1.5rem 3.5rem rgba(0, 0, 0, 0.04);
	display: flex;
	flex-direction: column;
	min-height: 28rem;
}

.process_item:hover {
	transform: translateY(-1rem);
	border-color: var(--accent);
	box-shadow: 0 2rem 4rem rgba(0, 123, 255, 0.08);
}

.item_bg_num {
	position: absolute;
	right: -1rem;
	top: -1rem;
	font-size: 8rem;
	font-weight: 900;
	color: var(--primary-navy);
	opacity: 0.03;
	font-family: var(--font-Pretendard);
}

.step_num {
	font-size: 1.5rem;
	font-weight: var(--font-eb);
	color: var(--accent);
	margin-bottom: 1.5rem;
	display: inline-block;
	padding: 0.4rem 1.2rem;
	background: rgba(0, 123, 255, 0.05);
	border-radius: 0.4rem;
}

.process_tit {
	font-size: 2.3rem;
	font-weight: var(--font-eb);
	color: var(--primary-navy);
	margin-bottom: 2rem;
}

.process_desc {
	font-size: 1.8rem;
	color: #555;
	line-height: 1.7;
	word-break: keep-all;
}

/* 유의사항 */
.reg_notice_box {
	background: var(--color-white);
	border: 0.1rem solid var(--border);
	border-radius: 1.2rem;
	padding: 4rem 5rem;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.02);
}

.notice_list li {
	position: relative;
	padding-left: 3rem;
	margin-bottom: 1.2rem;
	font-size: 1.8rem;
	color: #444;
	line-height: 1.6;
	list-style: none;
}

.notice_list li:last-child {
	margin-bottom: 0;
}


.notice_list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--accent);
	font-weight: 900;
}

/* 신청 폼: 2컬럼 그리드 */
.reg_form_wrap {
	--reg-input-placeholder-size: 1.7rem;
	background: var(--color-white);
	border-radius: 2rem;
	padding: 5rem;
	box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.04);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.8rem 4rem;
	margin-bottom: 6rem;
}

.form_field {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.form_field.full {
	grid-column: span 2;
}

.field_label {
	font-size: 1.9rem;
	font-weight: 700;
	color: var(--primary-navy);
	letter-spacing: 0.03em;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.req {
	color: #E53935;
	font-size: 1.4rem;
}

.reg_input {
	width: 100%;
	height: 5.2rem;
	background: #EEF2F7;
	border: 0.15rem solid #C2CDD8;
	border-radius: 1rem;
	padding: 0 1.8rem;
	font-family: var(--font-Pretendard);
	font-size: 1.9rem;
	font-weight: var(--font-rg);
	color: #333;
	transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
	box-sizing: border-box;
}

textarea.reg_input {
	height: auto;
	min-height: 12rem;
	padding: 1.4rem 1.8rem;
	resize: vertical;
	line-height: 1.5;
}

.reg_form_wrap .reg_input::placeholder,
.reg_form_wrap textarea.reg_input::placeholder {
	font-family: inherit;
	font-weight: inherit;
	color: #A0AEBB;
	font-size: var(--reg-input-placeholder-size);
	opacity: 1;
}

.reg_input:focus {
	border-color: var(--accent);
	background: var(--color-white);
	box-shadow: 0 0 0 0.3rem rgba(0, 123, 255, 0.1);
	outline: none;
}

.reg_check_item {
	font-size: 1.9rem;
	font-weight: var(--font-sb);
	margin-right: 3rem;
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	cursor: pointer;
}

.reg_check_item input[type="checkbox"],
.reg_check_item input[type="radio"] {
	width: 2rem;
	height: 2rem;
	accent-color: var(--primary-navy);
	cursor: pointer;
}

/* 개인정보 동의 섹션 */
.privacy_agree_box {
	background: var(--color-white);
	border: 0.1rem solid var(--border);
	border-radius: 2rem;
	padding: 4rem;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.03);
}

.privacy_text_area {
	height: 18rem;
	padding: 3rem;
	background: var(--bg-gray);
	border-radius: 1.2rem;
	font-size: 1.7rem;
	color: #666;
	line-height: 1.8;
	margin-bottom: 2.5rem;
	overflow-y: auto;
}

.privacy_text_area p {
	margin-bottom: 1.4rem;
}

.privacy_text_area p:last-child {
	margin-bottom: 0;
}

/* 최종 등록 버튼 */
a.btn_reg_submit,
a.btn_reg_submit:link,
a.btn_reg_submit:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--primary-navy) 0%, #203562 100%);
	color: var(--color-white) !important;
	font-size: 2rem;
	font-weight: var(--font-eb);
	padding: 2.2rem 12rem;
	border-radius: 10rem;
	text-decoration: none;
	transition: all 0.3s;
	box-shadow: 0 1.5rem 3rem rgba(16, 28, 61, 0.2);
	animation: btnFloat 2.4s ease-in-out infinite;
}

a.btn_reg_submit:hover,
a.btn_reg_submit:active,
button.btn_reg_submit:hover,
button.btn_reg_submit:active {
	transform: translateY(-0.5rem);
	box-shadow: 0 2rem 4rem rgba(16, 28, 61, 0.3);
	background: #007BFF;
	color: var(--color-white) !important;
}

button.btn_reg_submit,
button.btn_reg_submit:focus-visible {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--primary-navy) 0%, #203562 100%);
	color: var(--color-white) !important;
	font-size: 2rem;
	font-weight: var(--font-eb);
	padding: 2.2rem 12rem;
	border-radius: 10rem;
	text-decoration: none;
	transition: all 0.3s;
	box-shadow: 0 1.5rem 3rem rgba(16, 28, 61, 0.2);
	animation: btnFloat 2.4s ease-in-out infinite;
	border: none;
	cursor: pointer;
	font-family: inherit;
}

.reg_submit_wrap {
	text-align: center;
	margin-top: 4rem;
	margin-bottom: 2rem;
}

@keyframes btnFloat {

	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-0.3rem);
	}
}

@keyframes plateShine {
	0% {
		transform: translateX(-120%);
	}

	45%,
	100% {
		transform: translateX(120%);
	}
}

/* 기타 */
.reg_check_group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.8rem;
}

.form_help {
	display: block;
	margin-top: 0.8rem;
	font-size: 1.3rem;
	color: #868E96;
	line-height: 1.5;
}

.process_note {
	margin-top: auto;
	padding-top: 1rem;
	font-size: 1.4rem;
	color: #868E96;
	line-height: 1.5;
	word-break: keep-all;
	padding-left: 0.85em;
	text-indent: -0.85em;
}

.process_note::before {
	content: '*';
	margin-right: 0.2em;
}

/* ==================
	반응형CSS
=====================*/

/* [추가-20260512] 1300px 신규: 데스크톱→태블릿 사이 중간 단계 보강 */
@media screen and (max-width: 1300px) {
	.reg_info_section {
		--reg-section-mb: 5rem;
	}

	.reg_label {
		font-size: 2.4rem;
	}

	.reg_label_wrap {
		margin-bottom: 3.5rem;
	}

	.period_plate {
		--period-plate-py: 2.5rem;
		--period-plate-px: 5rem;
		gap: 3.5rem;
	}

	.period_plate .val {
		font-size: 2rem;
	}

	.process_box {
		gap: 2rem;
	}

	.process_item {
		padding: 2.8rem 2.6rem;
		min-height: 24rem;
	}

	.process_tit {
		font-size: 2.1rem;
		margin-bottom: 1.8rem;
	}

	.process_desc {
		font-size: 1.7rem;
	}

	.process_note {
		font-size: 1.35rem;
	}

	.item_bg_num {
		font-size: 7rem;
	}

	.reg_notice_box {
		padding: 4rem 4.5rem;
	}

	.reg_form_wrap {
		--reg-input-placeholder-size: 1.65rem;
		padding: 4rem;
		gap: 2.6rem 3.5rem;
		margin-bottom: 5.5rem;
	}

	.field_label {
		font-size: 1.8rem;
	}

	.reg_input {
		height: 5rem;
		font-size: 1.8rem;
	}

	.reg_check_item {
		font-size: 1.8rem;
	}

	.reg_check_item input[type="checkbox"],
	.reg_check_item input[type="radio"] {
		width: 1.9rem;
		height: 1.9rem;
	}

	.reg_submit_wrap {
		margin-top: 4rem;
	}

	a.btn_reg_submit,
	a.btn_reg_submit:link,
	a.btn_reg_submit:visited,
	button.btn_reg_submit {
		padding: 2rem 10rem;
		font-size: 1.9rem;
	}
}

@media screen and (max-width: 1024px) {
	.process_box {
		grid-template-columns: repeat(2, 1fr);
	}

	/* [추가-20260512] 1024px 보강: 라벨·플레이트·카드·폼 사이즈 일괄 축소 */
	.reg_info_section {
		--reg-section-mb: 4.5rem;
	}

	.reg_label_wrap {
		margin-bottom: 3rem;
		gap: 1rem;
	}

	.reg_label {
		font-size: 2.2rem;
		padding-bottom: 1.2rem;
	}

	.reg_label::after {
		width: 3.6rem;
		height: 0.36rem;
	}

	.period_plate {
		--period-plate-py: 2.2rem;
		--period-plate-px: 4rem;
		gap: 2.8rem;
	}

	.period_plate .period_icon {
		font-size: 2.4rem;
	}

	.period_plate .val {
		font-size: 1.9rem;
	}

	.process_item {
		padding: 2.6rem 2.4rem;
		min-height: 22rem;
	}

	.process_tit {
		font-size: 2rem;
		margin-bottom: 1.6rem;
	}

	.process_desc {
		font-size: 1.65rem;
	}

	.process_note {
		font-size: 1.3rem;
	}

	.step_num {
		margin-bottom: 1.2rem;
	}

	.item_bg_num {
		font-size: 6.4rem;
	}

	.reg_notice_box {
		padding: 3.6rem 4rem;
	}

	.notice_list li {
		font-size: 1.65rem;
		padding-left: 2.6rem;
		margin-bottom: 1.3rem;
	}

	.reg_form_wrap {
		--reg-input-placeholder-size: 1.6rem;
		padding: 3.6rem;
		gap: 2.4rem 3rem;
		margin-bottom: 5rem;
	}

	.field_label {
		font-size: 1.75rem;
	}

	.reg_input {
		height: 4.8rem;
		font-size: 1.75rem;
		padding: 0 1.6rem;
	}

	textarea.reg_input {
		height: auto;
		min-height: 11rem;
		padding: 1.2rem 1.6rem;
	}

	.reg_check_item {
		font-size: 1.75rem;
		margin-right: 2.4rem;
	}

	.reg_check_item input[type="checkbox"],
	.reg_check_item input[type="radio"] {
		width: 1.85rem;
		height: 1.85rem;
	}

	.form_help {
		font-size: 1.25rem;
	}

	.privacy_agree_box {
		padding: 3.6rem;
	}

	.privacy_text_area {
		padding: 2.4rem;
		font-size: 1.5rem;
		margin-bottom: 2.2rem;
	}

	a.btn_reg_submit,
	a.btn_reg_submit:link,
	a.btn_reg_submit:visited,
	button.btn_reg_submit {
		padding: 2rem 9rem;
		font-size: 1.8rem;
	}

	.reg_submit_wrap {
		margin-top: 3.5rem;
	}
}

/* [추가-20260512] 768px 신규: 태블릿→모바일 사이 중간 단계 보강 */
@media screen and (max-width: 768px) {
	.reg_info_section {
		--reg-section-mb: 4rem;
	}

	.reg_label_wrap {
		margin-bottom: 2.5rem;
	}

	.reg_label {
		font-size: 2rem;
		padding-bottom: 1rem;
	}

	.reg_label::after {
		width: 3.2rem;
		height: 0.32rem;
	}

	.period_plate {
		--period-plate-py: 2rem;
		--period-plate-px: 3rem;
		gap: 2.2rem;
	}

	.period_plate .period_icon {
		font-size: 2.2rem;
	}

	.period_plate .val {
		font-size: 1.7rem;
	}

	.process_box {
		gap: 1.8rem;
	}

	.process_item {
		padding: 2.4rem 2.2rem;
		min-height: auto;
	}

	.process_tit {
		font-size: 1.85rem;
		margin-bottom: 1.2rem;
	}

	.process_desc {
		font-size: 1.55rem;
	}

	.process_note {
		font-size: 1.28rem;
	}

	.item_bg_num {
		font-size: 5.8rem;
	}

	.reg_notice_box {
		padding: 3.2rem 3rem;
	}

	.notice_list li {
		font-size: 1.55rem;
		padding-left: 2.4rem;
		line-height: 1.7;
	}

	.reg_form_wrap {
		--reg-input-placeholder-size: 1.5rem;
		padding: 3.2rem;
		gap: 2.2rem 2.6rem;
		margin-bottom: 4.5rem;
	}

	.field_label {
		font-size: 1.65rem;
	}

	.reg_input {
		height: 4.6rem;
		font-size: 1.65rem;
	}

	textarea.reg_input {
		height: auto;
		min-height: 10rem;
		padding: 1.2rem 1.6rem;
	}

	.reg_check_item {
		font-size: 1.65rem;
	}

	.reg_check_item input[type="checkbox"],
	.reg_check_item input[type="radio"] {
		width: 1.8rem;
		height: 1.8rem;
	}

	.form_help {
		font-size: 1.22rem;
	}

	.privacy_agree_box {
		padding: 3rem 2.8rem;
	}

	.privacy_text_area {
		height: 16rem;
		padding: 2rem;
		font-size: 1.45rem;
		margin-bottom: 2rem;
	}

	a.btn_reg_submit,
	a.btn_reg_submit:link,
	a.btn_reg_submit:visited,
	button.btn_reg_submit {
		padding: 1.8rem 7rem;
		font-size: 1.7rem;
	}

	.reg_submit_wrap {
		margin-top: 4rem;
	}
}

@media screen and (max-width: 640px) {
	.reg_info_section {
		--reg-section-mb: 3.5rem;
	}

	.period_plate {
		flex-direction: column;
		align-items: flex-start;
		--period-plate-py: 1.8rem;
		--period-plate-px: 2.4rem;
		gap: 1.2rem;
	}

	.process_box {
		grid-template-columns: 1fr;
	}

	.reg_notice_box {
		padding: 3.5rem 2.5rem;
	}

	.reg_form_wrap {
		grid-template-columns: 1fr;
		padding: 3rem 2.4rem;
		gap: 2.2rem;
		margin-bottom: 4rem;
	}

	.form_field.full {
		grid-column: span 1;
	}

	a.btn_reg_submit,
	a.btn_reg_submit:link,
	a.btn_reg_submit:visited,
	button.btn_reg_submit {
		padding: 2rem 6rem;
		font-size: 1.7rem;
	}

	/* [추가-20260512] 640px 보강: 라벨·카드·리스트·폼·문의처 모바일 최종 사이즈 */
	.reg_label_wrap {
		margin-bottom: 2.2rem;
		gap: 0.8rem;
	}

	.reg_label {
		font-size: 1.9rem;
		padding-bottom: 0.9rem;
	}

	.reg_label::after {
		width: 3rem;
		height: 0.3rem;
	}

	.period_plate .period_icon {
		font-size: 2rem;
	}

	.period_plate .val {
		font-size: 1.6rem;
	}

	.process_item {
		padding: 2.2rem 2rem;
	}

	.process_tit {
		font-size: 1.7rem;
		margin-bottom: 1rem;
	}

	.process_desc {
		font-size: 1.45rem;
		line-height: 1.65;
	}

	.process_note {
		font-size: 1.22rem;
	}

	.item_bg_num {
		font-size: 5rem;
	}

	.step_num {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}

	.notice_list li {
		font-size: 1.45rem;
		padding-left: 2.2rem;
		margin-bottom: 1rem;
		line-height: 1.7;
	}

	.reg_form_wrap {
		--reg-input-placeholder-size: 1.45rem;
		margin-bottom: 4rem;
	}

	.field_label {
		font-size: 1.55rem;
	}

	.reg_input {
		height: 4.4rem;
		font-size: 1.55rem;
		padding: 0 1.5rem;
	}

	textarea.reg_input {
		height: auto;
		min-height: 9.6rem;
		padding: 1.2rem 1.5rem;
	}

	.reg_check_item {
		font-size: 1.55rem;
		margin-right: 1.6rem;
	}

	.reg_check_item input[type="checkbox"],
	.reg_check_item input[type="radio"] {
		width: 1.75rem;
		height: 1.75rem;
	}

	.form_help {
		font-size: 1.2rem;
	}

	.privacy_agree_box {
		padding: 2.6rem 2rem;
	}

	.privacy_text_area {
		height: 14rem;
		padding: 1.8rem;
		font-size: 1.4rem;
		margin-bottom: 1.6rem;
	}

	.reg_submit_wrap {
		margin-top: 3rem;
	}
}

@media screen and (prefers-reduced-motion: reduce) {

	.period_plate::after,
	.period_plate .period_icon,
	a.btn_reg_submit,
	a.btn_reg_submit:link,
	a.btn_reg_submit:visited,
	button.btn_reg_submit {
		animation: none !important;
	}
}

/* ==================================================
	사전 등록 확인
================================================== */
.check_page {
	max-width: 1000px;
	margin: 0 auto;
	padding: 5rem 0;
}

.check_section {
	background: var(--color-white);
	border: 1px solid rgba(0, 98, 255, 0.1);
	border-radius: 4rem;
	padding: 6rem;
	box-shadow:
		0 10px 30px rgba(0, 0, 0, 0.02),
		0 30px 60px rgba(0, 98, 255, 0.05);
	position: relative;
	overflow: hidden;
	animation: fadeInUp 1s ease-out;
}

.check_section::before {
	content: '';
	position: absolute;
	top: -100px;
	right: -100px;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle, rgba(0, 98, 255, 0.05) 0%, transparent 70%);
	border-radius: 50%;
	z-index: 0;
}

.section_title {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	font-size: 2.6rem;
	font-weight: var(--font-eb);
	color: var(--primary-navy);
	margin-bottom: 5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--border);
}

.section_title .title_icon {
	width: 4.8rem;
	height: 4.8rem;
	background: var(--bg-light);
	color: var(--brand-color-main);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 1.4rem;
	font-size: 2.2rem;
	flex-shrink: 0;
}

.check_form_grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	margin-bottom: 5rem;
}

.form_group {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.form_group label {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--primary-navy);
	padding-left: 0.5rem;
}

.form_group input {
	height: 5.4rem;
	background: #F8FAFC;
	border: 1px solid #DEE2E6;
	border-radius: 0.8rem;
	padding: 0 2rem;
	font-size: 1.6rem;
	transition: all 0.3s;
	color: var(--text-main);
	box-sizing: border-box;
	width: 100%;
}

.form_group input::placeholder {
	color: --text-muted;
}

.form_group input:focus {
	outline: none;
	border-color: var(--brand-color-main);
	box-shadow: 0 0 0 4px rgba(0, 98, 255, 0.1);
	background: #fff;
}

.btn_wrap {
	position: relative;
	z-index: 1;
	text-align: center;
}

.btn_search {
	background: linear-gradient(135deg, var(--brand-color-main) 0%, var(--brand-color-dmain) 100%);
	color: #fff;
	font-size: 2rem;
	font-weight: 800;
	padding: 2.2rem 8rem;
	border-radius: 2rem;
	border: none;
	cursor: pointer;
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	box-shadow: 0 15px 35px rgba(0, 98, 255, 0.3);
	display: inline-flex;
	align-items: center;
	gap: 1.5rem;
}

.btn_search:hover {
	transform: translateY(-5px) scale(1.02);
	box-shadow: 0 20px 45px rgba(0, 98, 255, 0.4);
}

.btn_search i {
	font-size: 2.2rem;
}

/* 모달 */
.check_modal_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(15, 23, 42, 0.8);
	backdrop-filter: blur(12px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 100000;
	visibility: hidden;
	opacity: 0;
	transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.check_modal_overlay.active {
	visibility: visible;
	opacity: 1;
}

.check_modal_content {
	background: #fff;
	width: 90%;
	max-width: 700px;
	border-radius: 4.5rem;
	padding: 7rem 5rem;
	position: relative;
	box-shadow: 0 50px 100px rgba(0, 0, 0, 0.3);
	transform: translateY(60px) scale(0.9);
	transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	overflow: hidden;
	max-height: 90vh;
	overflow-y: auto;
}

.check_modal_overlay.active .check_modal_content {
	transform: translateY(0) scale(1);
}

.modal_close {
	position: absolute;
	top: 3.5rem;
	right: 3.5rem;
	background: #F1F5F9;
	border: none;
	width: 5.4rem;
	height: 5.4rem;
	border-radius: 50%;
	cursor: pointer;
	font-size: 2.6rem;
	color: var(--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s;
	flex-shrink: 0;
}

.modal_close:hover {
	background: var(--primary-navy);
	color: #fff;
	transform: rotate(90deg);
}

.modal_icon {
	width: 12rem;
	height: 12rem;
	background: #F0F7FF;
	color: var(--brand-color-main);
	border-radius: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 5rem;
	margin: 0 auto 4rem;
	position: relative;
}

.modal_icon::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border: 2px dashed rgba(0, 98, 255, 0.2);
	border-radius: 4rem;
	animation: rotate 20s linear infinite;
}

.modal_title {
	font-size: 3rem;
	font-weight: 900;
	color: var(--primary-navy);
	margin-bottom: 1.5rem;
	letter-spacing: -0.02em;
	text-align: center;
}

.modal_desc {
	font-size: 1.7rem;
	color: var(--text-muted);
	line-height: 1.7;
	margin-bottom: 4rem;
	word-break: keep-all;
	text-align: center;
}

.modal_desc b {
	color: var(--brand-color-main);
	font-weight: 800;
}

/* 조회 결과 테이블 */
.edit_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 4rem;
	border: 1px solid var(--border);
}

.edit_table th {
	width: 16rem;
	padding: 1.6rem 2rem;
	background: #F8FAFC;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--primary-navy);
	text-align: left;
	border-bottom: 1px solid var(--border);
	border-right: 1px solid var(--border);
	white-space: nowrap;
}

.edit_table td {
	padding: 1.2rem 1.5rem;
	border-bottom: 1px solid var(--border);
}

.edit_table tr:last-child th,
.edit_table tr:last-child td {
	border-bottom: none;
}

.edit_table td.view_cell {
	font-size: 1.6rem;
	color: var(--text-main);
	word-break: break-word;
	padding: 1.6rem 1.5rem;
	vertical-align: middle;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes rotate {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1024px) {
	.check_page {
		padding: 3rem 2rem;
	}

	.check_section {
		padding: 5rem 4rem;
		border-radius: 3.6rem;
	}

	.check_section::before {
		width: 240px;
		height: 240px;
		top: -80px;
		right: -80px;
	}

	.section_title {
		font-size: 2.4rem;
		margin-bottom: 5rem;
		padding-bottom: 2rem;
		gap: 1.2rem;
	}

	.section_title .title_icon {
		width: 4.4rem;
		height: 4.4rem;
		font-size: 2rem;
		border-radius: 1.2rem;
	}

	.check_form_grid {
		gap: 3rem;
		margin-bottom: 4rem;
	}

	.form_group {
		gap: 1.3rem;
	}

	.form_group label {
		font-size: 1.5rem;
	}

	.form_group input {
		height: 5rem;
		font-size: 1.5rem;
		padding: 0 1.8rem;
	}

	.btn_search {
		font-size: 1.85rem;
		padding: 2rem 6.5rem;
		gap: 1.2rem;
	}

	.btn_search i {
		font-size: 2rem;
	}

	.check_modal_content {
		padding: 6rem 4rem;
		border-radius: 4rem;
	}

	.modal_close {
		top: 3rem;
		right: 3rem;
		width: 5rem;
		height: 5rem;
		font-size: 2.4rem;
	}

	.modal_icon {
		width: 10rem;
		height: 10rem;
		font-size: 4.4rem;
		margin-bottom: 3.2rem;
		border-radius: 3.4rem;
	}

	.modal_title {
		font-size: 2.6rem;
		margin-bottom: 1.2rem;
	}

	.modal_desc {
		font-size: 1.55rem;
		margin-bottom: 3rem;
	}

	.edit_table {
		margin-bottom: 3rem;
	}

	.edit_table th {
		width: 14rem;
		padding: 1.4rem 1.6rem;
		font-size: 1.45rem;
	}

	.edit_table td {
		padding: 1.2rem 1.4rem;
	}

	.edit_table td.view_cell {
		font-size: 1.5rem;
		padding: 1.4rem 1.4rem;
	}
}

@media screen and (max-width: 768px) {
	.check_page {
		padding: 2rem 2rem;
	}

	.check_section {
		padding: 4rem 3rem;
		border-radius: 3rem;
	}

	.check_form_grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
		margin-bottom: 3.5rem;
	}

	.section_title {
		font-size: 2.2rem;
		margin-bottom: 5rem;
		padding-bottom: 1.6rem;
		gap: 1rem;
	}

	.check_modal_content {
		padding: 5rem 3rem;
		border-radius: 3.5rem;
	}

	.modal_title {
		font-size: 2.4rem;
		margin-bottom: 1rem;
	}

	.btn_search {
		width: 100%;
		padding: 2rem;
		font-size: 1.7rem;
		gap: 1rem;
		justify-content: center;
		box-shadow: none;
		transition: none;
	}

	.btn_search:hover,
	.btn_search:active,
	.btn_search:focus {
		transform: none;
		box-shadow: none;
	}

	.edit_table th {
		width: 12rem;
		font-size: 1.4rem;
		padding: 1.2rem 1.4rem;
	}

	.section_title .title_icon {
		width: 4rem;
		height: 4rem;
		font-size: 1.8rem;
		border-radius: 1.1rem;
	}


	.form_group {
		gap: 1.2rem;
	}

	.form_group label {
		font-size: 1.45rem;
	}

	.form_group input {
		height: 4.8rem;
		font-size: 1.45rem;
		padding: 0 1.6rem;
	}

	.btn_search i {
		font-size: 1.8rem;
	}

	.modal_close {
		top: 2.4rem;
		right: 2.4rem;
		width: 4.4rem;
		height: 4.4rem;
		font-size: 2.2rem;
	}

	.modal_icon {
		width: 8.8rem;
		height: 8.8rem;
		font-size: 3.8rem;
		margin-bottom: 2.8rem;
		border-radius: 2.8rem;
	}

	.modal_desc {
		font-size: 1.45rem;
		margin-bottom: 2.6rem;
	}

	.edit_table {
		margin-bottom: 2.6rem;
	}

	.edit_table td {
		padding: 1rem 1.2rem;
	}

	.edit_table td.view_cell {
		font-size: 1.4rem;
		padding: 1.2rem 1.2rem;
	}
}

@media screen and (max-width: 640px) {
	.check_page {
		padding: 1rem 1.4rem;
	}

	.check_section {
		padding: 3.2rem 2.2rem;
		border-radius: 2.4rem;
	}

	.check_section::before {
		width: 180px;
		height: 180px;
		top: -60px;
		right: -60px;
	}

	.section_title {
		font-size: 1.9rem;
		margin-bottom: 5rem;
		padding-bottom: 1.4rem;
		gap: 0.9rem;
	}

	.section_title .title_icon {
		width: 3.6rem;
		height: 3.6rem;
		font-size: 1.6rem;
		border-radius: 1rem;
	}

	.check_form_grid {
		gap: 2rem;
		margin-bottom: 3rem;
	}

	.form_group {
		gap: 1rem;
	}

	.form_group label {
		font-size: 1.4rem;
	}

	.form_group input {
		height: 4.4rem;
		font-size: 1.4rem;
		padding: 0 1.4rem;
	}

	.check_modal_content {
		padding: 4rem 2.4rem;
		border-radius: 3rem;
	}

	.modal_close {
		top: 2rem;
		right: 2rem;
		width: 4rem;
		height: 4rem;
		font-size: 2rem;
	}

	.modal_icon {
		width: 7.6rem;
		height: 7.6rem;
		font-size: 3.4rem;
		margin-bottom: 2.4rem;
		border-radius: 2.4rem;
	}

	.modal_title {
		font-size: 2.1rem;
		margin-bottom: 0.8rem;
	}

	.modal_desc {
		font-size: 1.4rem;
		margin-bottom: 2.2rem;
	}

	.edit_table {
		margin-bottom: 2.2rem;
	}

	.edit_table th {
		width: 9rem;
		padding: 1rem 1.2rem;
		font-size: 1.3rem;
	}

	.edit_table td {
		padding: 0.9rem 1rem;
	}

	.edit_table td.view_cell {
		font-size: 1.35rem;
		padding: 1rem 1rem;
	}
}

/* ==================================================
	수료증 발급
================================================== */
.cert_page {
	max-width: 1000px;
	margin: 0 auto;
	padding: 5rem 0;
}

/* 조회 섹션 카드 */
.cert_section {
	background: var(--color-white);
	border: 1px solid rgba(0, 98, 255, 0.1);
	border-radius: 4rem;
	padding: 6rem;
	box-shadow:
		0 10px 30px rgba(0, 0, 0, 0.02),
		0 30px 60px rgba(0, 98, 255, 0.05);
	position: relative;
	overflow: hidden;
	animation: fadeInUp 1s ease-out;
}

/* 배경 장식 */
.cert_section::before {
	content: '';
	position: absolute;
	top: -100px;
	right: -100px;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle, rgba(0, 98, 255, 0.05) 0%, transparent 70%);
	border-radius: 50%;
	z-index: 0;
}

.section_title {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	font-size: 2.6rem;
	font-weight: var(--font-eb);
	color: var(--primary-navy);
	margin-bottom: 5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--border);
}

.section_title i {
	width: 4.8rem;
	height: 4.8rem;
	background: var(--border-soft);
	color: var(--brand-color-main);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 1.4rem;
	font-size: 2.2rem;
}

.section_title .section_title_note {
	font-size: 1.6rem;
	font-weight: var(--font-rg);
	color: var(--text-muted);
}

.cert_section_head {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 2.4rem 3.2rem;
	margin-bottom: 5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--border);
}

.cert_section .section_title {
	flex: 0 0 auto;
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.cert_section_notes {
	flex: 1 1 28rem;
	min-width: 0;
	max-width: 52rem;
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.cert_section_note {
	font-size: 1.5rem;
	font-weight: var(--font-rg);
	color: var(--text-main);
	line-height: 1.5;
	word-break: keep-all;
	padding-left: 0.85em;
	text-indent: -0.85em;
	margin-bottom: 0.5rem;
}

.cert_section_note:last-child {
	margin-bottom: 0;
}

.cert_section_note::before {
	content: '*';
	margin-right: 0.2em;
}

/* 폼 레이아웃 */
.cert_form_grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	margin-bottom: 5rem;
}

.form_group {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.form_group label {
	font-size: 1.8rem;
	font-weight: var(--font-bd);
	color: var(--primary-navy);
	padding-left: 0.5rem;
}

.form_group input {
	height: 5.4rem;
	background: #f8fafc;
	border: 1px solid #dee2e6;
	border-radius: 0.8rem;
	padding: 0 2rem;
	font-size: 1.8rem;
	transition: all 0.3s;
	color: var(--text-main);
}

.form_group input::placeholder {
	color: --text-muted;
}

.form_group input:focus {
	outline: none;
	border-color: #007BFF;
	box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.1);
}

/* 버튼 스타일 */
.btn_wrap {
	position: relative;
	z-index: 1;
	text-align: center;
}

.btn_search {
	background: linear-gradient(135deg, var(--brand-color-main) 0%, var(--brand-color-dmain) 100%);
	color: var(--color-white);
	font-size: 2rem;
	font-weight: var(--font-eb);
	padding: 2.2rem 8rem;
	border-radius: 2rem;
	border: none;
	cursor: pointer;
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	box-shadow: 0 15px 35px rgba(0, 98, 255, 0.3);
	display: inline-flex;
	align-items: center;
	gap: 1.5rem;
}

.btn_search:hover {
	transform: translateY(-5px) scale(1.02);
	box-shadow: 0 20px 45px rgba(0, 98, 255, 0.4);
}

.btn_search i {
	font-size: 2.2rem;
}

/* 사전등록 확인·수료증 발급 — 모바일 버튼 */
@media screen and (max-width: 768px) {

	.check_page .btn_wrap,
	.cert_page .btn_wrap {
		text-align: center;
	}

	.check_page .btn_search,
	.cert_page .btn_search {
		justify-content: center;
		box-shadow: none;
		transition: none;
	}

	.check_page .btn_search:hover,
	.check_page .btn_search:active,
	.check_page .btn_search:focus,
	.cert_page .btn_search:hover,
	.cert_page .btn_search:active,
	.cert_page .btn_search:focus {
		transform: none;
		box-shadow: none;
	}
}

@media screen and (max-width: 640px) {

	.check_page .btn_search {
		font-size: 1.45rem;
		padding: 1.3rem 1.5rem;
		border-radius: 1.2rem;
		gap: 0.65rem;
	}

	.check_page .btn_search i {
		font-size: 1.45rem;
	}
}

/* 레이어 팝업 (모달) */
.cert_modal_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(15, 23, 42, 0.8);
	backdrop-filter: blur(12px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 100000;
	visibility: hidden;
	opacity: 0;
	transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.cert_modal_overlay.active {
	visibility: visible;
	opacity: 1;
}

.cert_modal_content {
	background: var(--color-white);
	width: 90%;
	max-width: 650px;
	border-radius: 4.5rem;
	padding: 7rem 5rem;
	position: relative;
	box-shadow: 0 50px 100px rgba(0, 0, 0, 0.3);
	transform: translateY(60px) scale(0.9);
	transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	text-align: center;
	max-height: 90vh;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.cert_modal_overlay.active .cert_modal_content {
	transform: translateY(0) scale(1);
}

/* 모달 상단 장식 */
.modal_close {
	position: absolute;
	top: 3.5rem;
	right: 3.5rem;
	background: #F1F5F9;
	border: none;
	width: 5.4rem;
	height: 5.4rem;
	border-radius: 50%;
	cursor: pointer;
	font-size: 2.6rem;
	color: var(--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s;
}

.modal_close:hover {
	background: var(--primary-navy);
	color: var(--color-white);
	transform: rotate(90deg);
}

.modal_icon {
	width: 12rem;
	height: 12rem;
	background: #F0F7FF;
	color: var(--brand-color-main);
	border-radius: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 5rem;
	margin: 0 auto 4rem;
	position: relative;
}

.modal_icon::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border: 2px dashed rgba(0, 98, 255, 0.2);
	border-radius: 4rem;
	animation: rotate 20s linear infinite;
}

.modal_title {
	font-size: 3.4rem;
	font-weight: 900;
	color: var(--primary-navy);
	margin-bottom: 2rem;
	letter-spacing: -0.02em;
}

.modal_desc {
	font-size: 1.9rem;
	color: var(--text-muted);
	line-height: 1.7;
	margin-bottom: 5rem;
	word-break: keep-all;
}

.modal_desc b {
	color: var(--brand-color-main);
	font-weight: 800;
}

.btn_download_pdf {
	background: linear-gradient(135deg, var(--brand-color-main) 0%, var(--brand-color-dmain) 100%);
	color: var(--color-white);
	font-size: 2.2rem;
	font-weight: var(--font-eb);
	padding: 2.6rem 4rem;
	border-radius: 2.2rem;
	border: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 1.8rem;
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	box-shadow: 0 20px 40px rgba(0, 98, 255, 0.3);
	width: 100%;
	justify-content: center;
	margin-bottom: 5rem;
}

.btn_download_pdf:hover {
	transform: translateY(-5px);
	box-shadow: 0 25px 50px rgba(0, 98, 255, 0.4);
}

.modal_notice {
	text-align: left;
	background: #F8FAFC;
	padding: 3.5rem;
	border-radius: 3rem;
	border: 1px solid var(--border);
}

.modal_notice li {
	position: relative;
	padding-left: 2.5rem;
	font-size: 1.6rem;
	color: var(--text-muted);
	line-height: 1.8;
	margin-bottom: 1.8rem;
}

.modal_notice li:last-child {
	margin-bottom: 0;
}

.modal_notice li::before {
	content: '\e93e';
	/* xi-check */
	font-family: 'xeicon';
	position: absolute;
	left: 0;
	color: var(--brand-color-main);
	font-weight: 900;
}

.modal_notice b {
	color: #E11D48;
	font-weight: 700;
}

/* 애니메이션 */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes rotate {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

/* ==================
	반응형CSS
=====================*/
/* [추가-20260512] 1024px 신규: 수료증 발급 PC→태블릿 전환 보강 */
@media screen and (max-width: 1024px) {
	.cert_page {
		padding: 4.5rem 2rem;
	}

	.cert_section {
		padding: 5rem 4rem;
		border-radius: 3.6rem;
	}

	.cert_section::before {
		width: 240px;
		height: 240px;
		top: -80px;
		right: -80px;
	}

	.cert_section .section_title {
		font-size: 2.45rem;
	}

	.section_title .section_title_note {
		font-size: 1.5rem;
	}

	.cert_section_head {
		margin-bottom: 5rem;
		padding-bottom: 2.2rem;
		gap: 2rem 2.8rem;
	}

	.cert_section_notes {
		flex-basis: 26rem;
		max-width: 48rem;
	}

	.cert_section_note {
		font-size: 1.42rem;
		margin-bottom: 0.45rem;
	}

	.cert_section .section_title i {
		width: 4.4rem;
		height: 4.4rem;
		font-size: 2.05rem;
		border-radius: 1.2rem;
	}

	.cert_page .form_group label {
		font-size: 1.7rem;
	}

	.cert_page .form_group input {
		height: 5.2rem;
		font-size: 1.7rem;
		padding: 0 1.8rem;
	}

	.cert_page .btn_search {
		font-size: 1.9rem;
		padding: 2rem 7rem;
		gap: 1.3rem;
	}

	.cert_page .btn_search i {
		font-size: 2.1rem;
	}

	.cert_form_grid {
		gap: 3rem;
		margin-bottom: 4rem;
	}

	.cert_modal_content {
		padding: 6rem 4rem;
		border-radius: 4rem;
	}

	.cert_page .modal_title {
		font-size: 3.2rem;
		margin-bottom: 1.6rem;
	}

	.cert_page .modal_desc {
		font-size: 1.8rem;
		margin-bottom: 4rem;
	}

	.cert_page .btn_download_pdf {
		font-size: 2.05rem;
		padding: 2.4rem 3.6rem;
		border-radius: 2rem;
		gap: 1.5rem;
		margin-bottom: 4rem;
	}

	.cert_page .modal_notice {
		padding: 3rem;
		border-radius: 2.6rem;
	}

	.cert_page .modal_notice li {
		padding-left: 2.3rem;
		font-size: 1.52rem;
		margin-bottom: 1.5rem;
	}
}

@media screen and (max-width: 768px) {
	.cert_page {
		padding: 3.5rem 2rem;
	}

	.cert_section {
		padding: 4rem 3rem;
		border-radius: 3rem;
	}

	.cert_form_grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
		margin-bottom: 3.5rem;
	}

	.cert_section .section_title {
		font-size: 2.25rem;
		margin-bottom: 0;
	}

	.section_title .section_title_note {
		font-size: 1.45rem;
	}

	.cert_section_head {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.2rem;
		margin-bottom: 5rem;
		padding-bottom: 2rem;
	}

	.cert_section_notes {
		flex: 1 1 auto;
		max-width: 100%;
		width: 100%;
		padding-top: 0;
	}

	.cert_section_note {
		font-size: 1.35rem;
	}

	.cert_section .section_title i {
		width: 4rem;
		height: 4rem;
		font-size: 1.85rem;
		border-radius: 1.1rem;
	}

	.cert_page .form_group label {
		font-size: 1.62rem;
	}

	.cert_page .form_group input {
		height: 5rem;
		font-size: 1.62rem;
		padding: 0 1.7rem;
	}

	.cert_page .btn_search {
		width: 100%;
		font-size: 1.85rem;
		padding: 1.9rem 2rem;
		gap: 1.1rem;
		justify-content: center;
	}

	.cert_page .btn_search i {
		font-size: 2rem;
	}

	.cert_modal_content {
		padding: 5rem 3rem;
		border-radius: 3.5rem;
	}

	.cert_page .modal_title {
		font-size: 2.85rem;
		margin-bottom: 1.4rem;
	}

	.cert_page .modal_desc {
		font-size: 1.7rem;
		margin-bottom: 3.4rem;
	}

	.cert_page .btn_download_pdf {
		font-size: 1.95rem;
		padding: 2.2rem 3rem;
		border-radius: 1.8rem;
		gap: 1.2rem;
		margin-bottom: 3.4rem;
	}

	.cert_page .modal_notice {
		padding: 2.6rem;
		border-radius: 2.2rem;
	}

	.cert_page .modal_notice li {
		padding-left: 2.2rem;
		font-size: 1.45rem;
		margin-bottom: 1.3rem;
	}
}

@media screen and (max-width: 640px) {
	.cert_page {
		padding: 2.5rem 1.4rem;
	}

	.cert_section {
		padding: 3.2rem 2.2rem;
		border-radius: 2.4rem;
	}

	.cert_section::before {
		width: 180px;
		height: 180px;
		top: -60px;
		right: -60px;
	}

	.cert_section .section_title {
		font-size: 2.05rem;
		flex-wrap: nowrap;
		align-items: center;
		line-height: 1.5;
		gap: 1rem 1.2rem;
		margin-bottom: 0;
		padding-bottom: 0;
	}

	.section_title .section_title_note {
		font-size: 1.3rem;
		flex: 1 1 100%;
		padding-left: 4.8rem;
		line-height: 1.45;
	}

	.cert_section_head {
		margin-bottom: 5rem;
		padding-bottom: 1.8rem;
		gap: 1rem;
	}

	.cert_section_notes {
		padding-top: 0;
	}

	.cert_section_note {
		font-size: 1.28rem;
		line-height: 1.5;
		margin-bottom: 0.4rem;
	}

	.cert_section .section_title i {
		width: 3.6rem;
		height: 3.6rem;
		font-size: 1.65rem;
		border-radius: 1rem;
	}

	.cert_page .form_group label {
		font-size: 1.52rem;
	}

	.cert_page .form_group input {
		height: 4.8rem;
		font-size: 1.52rem;
		padding: 0 1.5rem;
	}

	.cert_page .btn_search {
		font-size: 1.7rem;
		padding: 1.6rem 1.5rem;
		gap: 0.75rem;
	}

	.cert_page .btn_search i {
		font-size: 1.75rem;
	}

	.cert_form_grid {
		gap: 2rem;
		margin-bottom: 3rem;
	}

	.cert_modal_content {
		padding: 4rem 2.4rem;
		border-radius: 3rem;
	}

	.cert_page .modal_title {
		font-size: 2.5rem;
		margin-bottom: 1.2rem;
	}

	.cert_page .modal_desc {
		font-size: 1.55rem;
		margin-bottom: 3rem;
	}

	.cert_page .btn_download_pdf {
		font-size: 1.75rem;
		padding: 2rem 2.4rem;
		border-radius: 1.6rem;
		gap: 1rem;
		margin-bottom: 3rem;
	}

	.cert_page .modal_notice {
		padding: 2.2rem 2rem;
		border-radius: 1.8rem;
	}

	.cert_page .modal_notice li {
		padding-left: 2rem;
		font-size: 1.38rem;
		margin-bottom: 1.2rem;
		line-height: 1.7;
	}
}

/* [수정 2026-05-29] 등록확인·수료증 발급 모달 — 모바일 크기·여백 조정 */
@media screen and (max-width: 768px) {

	.check_modal_overlay,
	.cert_modal_overlay {
		padding: 1.2rem 1.6rem;
		box-sizing: border-box;
	}

	.check_modal_content,
	.cert_modal_content {
		width: 100%;
		max-width: none;
		padding: 2.6rem 2rem 2.2rem;
		border-radius: 2rem;
		max-height: calc(100vh - 2.4rem);
		max-height: calc(100dvh - 2.4rem);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-shadow: 0 24px 48px rgba(0, 0, 0, 0.22);
		transform: translateY(20px) scale(0.97);
	}

	.check_modal_overlay.active .check_modal_content,
	.cert_modal_overlay.active .cert_modal_content {
		transform: translateY(0) scale(1);
	}

	.check_modal_content .modal_close,
	.cert_modal_content .modal_close {
		top: 1.4rem;
		right: 1.4rem;
		width: 3.6rem;
		height: 3.6rem;
		font-size: 1.8rem;
	}

	.check_modal_content .modal_icon,
	.cert_modal_content .modal_icon {
		width: 6.4rem;
		height: 6.4rem;
		font-size: 2.8rem;
		margin-bottom: 1.6rem;
		border-radius: 1.6rem;
	}

	.check_modal_content .modal_icon::after,
	.cert_modal_content .modal_icon::after {
		border-radius: 1.6rem;
	}

	.check_modal_content .modal_title,
	.cert_modal_content .modal_title {
		font-size: 2rem;
		margin-bottom: 0.8rem;
	}

	.check_modal_content .modal_desc,
	.cert_modal_content .modal_desc {
		font-size: 1.4rem;
		line-height: 1.55;
		margin-bottom: 1.6rem;
	}

	.check_modal_content .edit_table {
		margin-bottom: 1.6rem;
	}

	.check_modal_content .edit_table th {
		width: 8.5rem;
		padding: 0.9rem 1rem;
		font-size: 1.3rem;
	}

	.check_modal_content .edit_table td,
	.check_modal_content .edit_table td.view_cell {
		padding: 0.8rem 1rem;
		font-size: 1.35rem;
	}

	.cert_modal_content .btn_download_pdf {
		font-size: 1.6rem;
		padding: 1.4rem 1.6rem;
		border-radius: 1.2rem;
		gap: 0.8rem;
		margin-bottom: 1.6rem;
		box-shadow: 0 12px 24px rgba(0, 98, 255, 0.25);
	}

	.cert_modal_content .btn_download_pdf:hover {
		transform: none;
	}

	.cert_modal_content .modal_notice {
		padding: 1.4rem 1.2rem;
		border-radius: 1.2rem;
	}

	.cert_modal_content .modal_notice li {
		padding-left: 1.8rem;
		font-size: 1.3rem;
		line-height: 1.55;
		margin-bottom: 0.8rem;
	}
}

@media screen and (max-width: 480px) {

	.check_modal_overlay,
	.cert_modal_overlay {
		padding: 0.8rem 1.2rem;
	}

	.check_modal_content,
	.cert_modal_content {
		padding: 2.2rem 1.6rem 1.8rem;
		border-radius: 1.6rem;
		max-height: calc(100vh - 1.6rem);
		max-height: calc(100dvh - 1.6rem);
	}

	.check_modal_content .modal_close,
	.cert_modal_content .modal_close {
		top: 1.2rem;
		right: 1.2rem;
		width: 3.2rem;
		height: 3.2rem;
		font-size: 1.6rem;
	}

	.check_modal_content .modal_icon,
	.cert_modal_content .modal_icon {
		width: 5.6rem;
		height: 5.6rem;
		font-size: 2.4rem;
		margin-bottom: 1.2rem;
		border-radius: 1.4rem;
	}

	.check_modal_content .modal_icon::after,
	.cert_modal_content .modal_icon::after {
		border-radius: 1.4rem;
	}

	.check_modal_content .modal_title,
	.cert_modal_content .modal_title {
		font-size: 1.8rem;
	}

	.check_modal_content .modal_desc,
	.cert_modal_content .modal_desc {
		font-size: 1.35rem;
		margin-bottom: 1.4rem;
	}

	.cert_modal_content .btn_download_pdf {
		font-size: 1.5rem;
		padding: 1.2rem 1.4rem;
		margin-bottom: 1.4rem;
	}
}

/* ==================================================
	발표영상
================================================== */
/* 섹션 스타일 */
.archive_section {
	--archive-section-mb: 8rem;
	--archive-section-mt: 0;
	margin-top: var(--archive-section-mt);
	margin-bottom: var(--archive-section-mb);
	scroll-margin-top: calc(var(--header-hei) + 2rem);
}

.video_container > .archive_section:first-child {
	--archive-section-mt: 4rem;
}

.archive_section:last-child {
	margin-bottom: 0;
}

/* 프리미엄 비디오 그리드 스타일 */
.video_main_header {
	margin-bottom: 6rem;
	text-align: center;
}

.forum_name {
	font-size: 2.2rem;
	font-weight: 600;
	color: var(--brand-color-main);
	margin-bottom: 1.5rem;
	display: block;
}

.forum_theme {
	font-size: 3.4rem;
	font-weight: 800;
	color: var(--primary-navy);
	line-height: 1.3;
}

/* 영상 그리드 - 기본 5컬럼 / .is-4col 변형 4컬럼 */
.video_grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 4rem 2rem;
	max-width: var(--px-base);
	margin: 0 auto;
}

.video_grid.is-4col {
	grid-template-columns: repeat(4, 1fr);
	gap: 4rem 2.4rem;
}

.video_card {
	display: flex;
	flex-direction: column;
	transition: opacity 0.3s, transform 0.3s;
	text-align: center;
}

/* reveal-up 스태거: 한 행(4컬럼)당 0.05s씩 지연 */
.video_grid .video_card.reveal-up:nth-child(1) {
	transition-delay: 0.05s;
}

.video_grid .video_card.reveal-up:nth-child(2) {
	transition-delay: 0.12s;
}

.video_grid .video_card.reveal-up:nth-child(3) {
	transition-delay: 0.19s;
}

.video_grid .video_card.reveal-up:nth-child(4) {
	transition-delay: 0.26s;
}

.thumb_box {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #F1F5F9;
	border-radius: 1rem;
	overflow: hidden;
	margin-bottom: 2.5rem;
	box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.08);
	cursor: pointer;
	text-decoration: none;
	/* iOS Safari border-radius + transform 깨짐 방지 */
	isolation: isolate;
	-webkit-mask-image: -webkit-radial-gradient(white, black);
}

.thumb_box>img:not(.youtube_icon) {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translateZ(0) scale(1);
	transform-origin: center center;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.thumb_box .youtube_icon {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.85);
	z-index: 10;
	width: 4.5rem;
	height: 4.5rem;
	object-fit: contain;
	filter: drop-shadow(0 0.5rem 1rem rgba(0, 0, 0, 0.3));
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
	pointer-events: none;
}

.video_card:hover .thumb_box .youtube_icon {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, -50%) scale(1);
}

.play_overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(16, 28, 61, 0);
	transition: all 0.3s;
	z-index: 5;
}

.video_card:hover .play_overlay {
	background: rgba(16, 28, 61, 0.2);
}

.video_card:hover .thumb_box>img:not(.youtube_icon) {
	transform: translateZ(0) scale(1.06);
}

/* 유튜브 링크가 없는 경우 (no-link 변형) */
.thumb_box.no-link {
	cursor: default;
}

.thumb_box.no-link .youtube_icon,
.thumb_box.no-link .play_overlay {
	display: none;
}

.video_card:hover .thumb_box.no-link>img:not(.youtube_icon) {
	transform: translateZ(0) scale(1);
}

.video_card:hover .thumb_box.no-link+.video_info .video_title {
	color: inherit;
}

.video_title {
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--primary-navy);
	line-height: 1.4;
	margin-bottom: 2rem;
	/* 2줄 기준 min-height (1.8rem × 1.4 × 2) — 그리드 카드 높이 정렬 */
	min-height: 5.04rem;
	word-break: keep-all;
	transition: color 0.3s;
}

.video_card:hover .video_title {
	color: var(--brand-color-main);
}

.video_speaker_info {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.v_affiliation {
	font-size: 1.5rem;
	color: #8a96a8;
	font-weight: var(--font-sb);
}

.v_name {
	font-size: 1.8rem;
	color: #2c3e5a;
	font-weight: var(--font-bd);
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1300px) {

	.video_grid,
	.video_grid.is-4col {
		grid-template-columns: repeat(3, 1fr);
		gap: 3.5rem 1.8rem;
	}

	.archive_section {
		--archive-section-mb: 7rem;
	}

	.video_container > .archive_section:first-child {
		--archive-section-mt: 3.5rem;
	}

	.video_main_header {
		margin-bottom: 5rem;
	}

	.forum_theme {
		font-size: 3rem;
	}
}

@media screen and (max-width: 1024px) {
	.archive_section {
		--archive-section-mb: 6.5rem;
		scroll-margin-top: calc(var(--header-hei) + 1.5rem);
	}

	.video_container > .archive_section:first-child {
		--archive-section-mt: 3rem;
	}

	.video_main_header {
		margin-bottom: 4rem;
	}

	.forum_name {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}

	.forum_theme {
		font-size: 2.6rem;
	}

	.video_grid,
	.video_grid.is-4col {
		grid-template-columns: repeat(2, 1fr);
		gap: 3rem 1.8rem;
	}

	.thumb_box {
		margin-bottom: 2rem;
	}

	.thumb_box .youtube_icon {
		width: 4rem;
		height: 4rem;
	}

	.video_title {
		font-size: 1.7rem;
		min-height: 4.76rem;
		margin-bottom: 1.6rem;
	}

	.v_affiliation {
		font-size: 1.4rem;
	}

	.v_name {
		font-size: 1.6rem;
	}
}

@media screen and (max-width: 768px) {
	.archive_section {
		--archive-section-mb: 6rem;
		scroll-margin-top: calc(var(--header-hei) + 1.5rem);
	}

	.video_container > .archive_section:first-child {
		--archive-section-mt: 2.5rem;
	}

	.video_main_header {
		margin-bottom: 3.5rem;
	}

	.forum_name {
		font-size: 1.6rem;
		margin-bottom: 0.8rem;
	}

	.forum_theme {
		font-size: 2.2rem;
	}

	.video_grid,
	.video_grid.is-4col {
		gap: 2.4rem 1.5rem;
	}

	.thumb_box {
		margin-bottom: 1.6rem;
		border-radius: 0.8rem;
	}

	.thumb_box .youtube_icon {
		width: 3.6rem;
		height: 3.6rem;
	}

	.video_title {
		font-size: 1.6rem;
		min-height: 4.48rem;
		margin-bottom: 1.4rem;
	}
}

@media screen and (max-width: 640px) {
	.archive_section {
		--archive-section-mb: 5rem;
		scroll-margin-top: calc(var(--header-hei) + 1rem);
	}

	.video_container > .archive_section:first-child {
		--archive-section-mt: 2rem;
	}

	.video_main_header {
		margin-bottom: 3rem;
	}

	.forum_name {
		font-size: 1.4rem;
	}

	.forum_theme {
		font-size: 2rem;
	}

	.video_grid,
	.video_grid.is-4col {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

	.thumb_box {
		margin-bottom: 1.4rem;
	}

	.video_title {
		font-size: 1.6rem;
		min-height: 0;
		margin-bottom: 1.2rem;
	}

	.v_affiliation {
		font-size: 1.3rem;
	}

	.v_name {
		font-size: 1.5rem;
	}
}

/* ==================================================
	개인정보 처리방침
================================================== */
.sub-hero .util-title {
	margin-bottom: 8rem;
}

.util_box {
	background: var(--color-white);
	padding: 8rem 8rem;
	border: 1px solid #e5eaf2;
	border-radius: 2.5rem;
	overflow: hidden;
	position: relative;
}

.util_box::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 6px;
	background: var(--brand-color-main);
	border-radius: 2.5rem 2.5rem 0 0;
}

.util_box::after {
	content: 'CORPORATE PRIVACY POLICY';
	position: absolute;
	top: 3rem;
	right: 4rem;
	font-size: 1.2rem;
	font-weight: var(--font-bd);
	color: #cbd5e0;
	letter-spacing: 0.15em;
}

/* [개인정보 처리방침] 이메일무단수집거부 페이지 문구 변경 */
.util_box--email::after {
	content: 'EMAIL COLLECTION REJECTION';
}

.privacy_txt {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	color: #444;
	line-height: 1.85;
	word-break: keep-all;
}

.privacy_txt .privacy_sec {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
	margin-top: 5rem;
	padding-bottom: 0.25rem;
}

.privacy_txt .privacy_sec:first-of-type {
	margin-top: 2rem;
}

.privacy_txt .privacy_sec h2 {
	font-size: var(--rem-26);
	font-weight: var(--font-bd);
	color: var(--color-black);
	margin: 0 0 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 2px solid #f2f4f7;
	position: relative;
}

.privacy_txt .privacy_sec h2::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 6rem;
	height: 2px;
	background: var(--brand-color-main);
}

.privacy_txt p {
	margin-bottom: 2.5rem;
	font-size: 1.6rem;
}

.privacy_txt ul {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 2rem 0 4rem;
}

.privacy_txt ul:last-child {
	margin-bottom: 0;
}

.privacy_txt ul li {
	position: relative;
	font-size: 1.6rem;
	padding-left: 1rem;
}

.privacy_txt>ul>li>ul {
	margin-top: 1rem;
}

.privacy_txt .dash_list {
	background: #f9fbfd;
	padding: 3rem 4rem;
	border-radius: 8px;
	border: 1px solid #edf2f7;
	margin: 2rem 0;
}

.privacy_txt .dash_list li {
	padding-left: 1.5rem;
	color: #555;
}

.privacy_txt .dash_list li::before {
	content: '·';
	background: none;
	font-weight: var(--font-bd);
	top: -1px;
	font-size: 2rem;
	color: var(--brand-color-main);
	margin-left: -2rem;
	margin-right: 1rem;
}

.privacy_txt strong {
	color: #111;
	font-weight: var(--font-bd);
}

.privacy_txt .privacy_sec:last-of-type>p:last-of-type {
	margin-top: 2.5rem;
	margin-bottom: 0;
	padding-top: 2.5rem;
	border-top: 1px dashed #e2e8f0;
	color: #999;
	font-size: 1.4rem;
	text-align: right;
}

/* ==================
	반응형CSS
=====================*/
@media screen and (max-width: 1024px) {
	.sub-hero .util-title {
		margin-bottom: 6rem;
	}

	.util_box {
		padding: 6rem 4rem;
	}

	.privacy_txt .privacy_sec h2 {
		font-size: 2.2rem;
	}

	.privacy_txt ul {
		margin: 1.5rem 0 2.5rem;
	}

	.privacy_txt>ul>li>ul {
		margin-top: 0.8rem;
	}

	.privacy_txt .dash_list {
		padding: 2.5rem 3rem;
		margin: 1.6rem 0;
		border-radius: 7px;
	}

	.privacy_txt p {
		margin-bottom: 2.2rem;
	}
}

@media screen and (max-width: 768px) {
	.sub-hero .util-title {
		margin-bottom: 4rem;
	}

	.util_box {
		padding: 4rem 2.5rem;
	}

	.util_box::after {
		display: none;
	}

	.privacy_txt .privacy_sec {
		margin-top: 2.25rem;
	}

	.privacy_txt .privacy_sec:first-of-type {
		margin-top: 1.5rem;
	}

	.privacy_txt p {
		font-size: 1.6rem;
		margin-bottom: 2rem;
	}

	.privacy_txt ul {
		margin: 1.2rem 0 2.0rem;
	}

	.privacy_txt>ul>li>ul {
		margin-top: 0.7rem;
	}

	.privacy_txt .dash_list {
		padding: 2rem 2.3rem;
		margin: 1.2rem 0;
		border-radius: 6px;
	}

	.privacy_txt .dash_list li::before {
		font-size: 1.8rem;
	}
}