/* style.css */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&family=Outfit:wght@100..900&family=Protest+Riot&display=swap');

/* font-family: "Noto Sans KR", sans-serif; */
/* font-family: "Outfit", sans-serif; */

@font-face {
    font-family: 'Ria';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2410-1@1.0/RiaSans-ExtraBold.woff2') format('woff2');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SchoolSafetyNotification';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-5@1.0/HakgyoansimAllimjangTTF-R.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
	font-family: "Noto Sans KR", sans-serif; 
	font-weight: 400;
	
}

h1, h2, h3, h4 {
	line-height: 1;
}

ol, ul {
    list-style: none
}

blockquote,
q {
    quotes: '"' '"'
}

blockquote:after,
blockquote:before,
q:after,
q:before {
    content: '';
    content: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

address {
    font-style: normal
}

textarea {
    width: 100%;
    resize: none;
}

button, img, input, select {
    vertical-align: middle
}

.ellipsis {
	display:inline-block;
	max-width:100%;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	word-wrap: normal;
	vertical-align:middle
}

table td a {
    overflow: hidden;
    height: auto;
    white-space: normal;
    word-wrap: break-word;
    word-break: break-all;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

body, html {
	overflow-x:hidden;
	overflow-y:auto;
	min-height: 100%;
}

body {
	color:#353535;
	-webkit-font-smoothing: antialiased;
	touch-action: pan-y;
}

img {
	max-width: 100%;
	-webkit-user-drag: none;
}

::selection {
   background: #434343;
   color: #fff
}

::-moz-selection {
   background: #434343;
   color: #fff
}

::-webkit-selection {
    background: #434343;
   color: #fff
}

area {
    cursor: pointer;
}

button {
	background-color: transparent;
	border: none;
	outline: none;
	cursor: pointer;
}

.rel {
    position: relative;
}

.font_outfit {
	font-family: "Outfit", sans-serif; 
}

.container {
    max-width: 1920px;
    margin: auto;
}

.section .inner {
    max-width: 760px;
    margin: auto;
    text-align: center;
}

.section .inner.z-10 {
	position: relative;
	z-index: 10;
}

.section.main {
	background-image: url('/PROJECT_HTML/2026busan_edu_insta/img/main_bg_new.png?new');
	background-size: cover;
	background-position: center;
	height: 968px;
	padding-top: 32px;
	background-color: #004ea2;
	overflow: hidden;
}

.section.main .bg_hands {
	position: absolute;
	background-image: url('/PROJECT_HTML/2026busan_edu_insta/img/main_bg_obj_hands.png?new');
	background-size: cover;
	background-position: center;
	width: 1920px;
	height: 334px;
	left: 50%;
	transform: translateX(-50%);
	bottom: 24.5px;
}

.section.main .bg_hands_bubble {
	position: absolute;
}

.section.main .bg_hands_bubble.left {
	width: 186px;
	height: 118px;
	left: 50%;
	transform: translateX(-50%);
	margin-left: -780px;
    bottom: 360px;
	background-image: url('/PROJECT_HTML/2026busan_edu_insta/img/main_bg_obj_bubble_left.png?new');
	background-size: cover;
	background-position: center;
}

.section.main .bg_hands_bubble.right {
	width: 184px;
	height: 122px;
	right: 50%;
	transform: translateX(-50%);
	margin-right: -880px;
    bottom: 320px;
	background-image: url('/PROJECT_HTML/2026busan_edu_insta/img/main_bg_obj_bubble_right.png?new');
	background-size: cover;
	background-position: center;
}

.section.main .logo {
	margin-bottom: 28px;
}

.section.main .h2,
.section.main .h3 {
	margin-bottom: 8px;
}

.section.main .h4 {
	margin-bottom: 24px;
}

.insta_sec {
	background-color: #004ea2;
	padding-bottom: 44px;
}

.insta_sec .inner {
	margin-top: -344px;
}

/* 하트 burst zone - 인스타 좋아요 이펙트 */
.insta_sec .heart_burst {
	position: absolute;
	pointer-events: none;
	width: 120px;
	bottom: 30%;
	z-index: 5;
	overflow: visible;
}

.insta_sec .heart_burst_left {
	left: -20px;
}

.insta_sec .heart_burst_right {
	right: -50px;
}

.insta_sec .heart_burst .h_item {
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	pointer-events: none;
	user-select: none;
	opacity: 0;

	offset-distance: 0%;
	offset-rotate: 0deg;
	offset-anchor: 50% 50%;

	transform-origin: center center;
	animation:
		heartMove var(--dur, 2200ms) cubic-bezier(.16, .74, .22, 1) forwards,
		heartFade var(--dur, 2200ms) ease-out forwards;

	will-change: offset-distance, transform, opacity;
	backface-visibility: hidden;
}

@keyframes heartMove {
	0% {
		offset-distance: 0%;
	}

	100% {
		offset-distance: 100%;
	}
}

@keyframes heartFade {
	0% {
		opacity: 0;
		transform: scale(.35) rotate(var(--r0, -8deg));
	}

	8% {
		opacity: 1;
		transform: scale(1.12) rotate(var(--r1, 6deg));
	}

	18% {
		opacity: 1;
		transform: scale(.96) rotate(var(--r2, -5deg));
	}

	70% {
		opacity: .78;
		transform: scale(.78) rotate(var(--r1, 6deg));
	}

	100% {
		opacity: 0;
		transform: scale(.52) rotate(var(--r2, -5deg));
	}
}

.insta_sec .slider {
	width: 568px;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 650px;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	justify-items: center;
}

.insta_sec .slider li {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	font-size: 22px;
	word-break: keep-all;
	font-family: 'SchoolSafetyNotification';
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease;
	pointer-events: none;
	align-self: center;
	text-align: center;
}

.insta_sec .slider li.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.insta_sec .nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 690px;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 122px;
}

.section_02 {
	background-color: #004ea2;
	padding-bottom: 128px;
	
}

.section_02 .bg_obj {
	background-image: url('/PROJECT_HTML/2026busan_edu_insta/img/section02_bg_obj.png?new');
	background-position: 100% center;
	background-repeat: no-repeat;
	position: absolute;
	width: 1920px;
	height: 422px;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.section_02 .title {
	margin-bottom: 16px;
}

.section_02 .content {
	margin-bottom: 64px;
}

.section_02 .btn_box {
	display: flex;
	gap: 20px;
	justify-content: center;
	align-items: center;
}

.section_phara {
	background-color: #00346c;
	padding: 60px 0;
	color: #fff;
}

.video_zone {
	margin-bottom: 64px;
}

.video_area {
    position: absolute;
    width: 710px;
    left: 50%;
    transform: translateX(calc(-50%));
	top: 0;
}

.video_wrap {
  position: relative;
  width: 612px;
  margin: auto;
  margin-top: 68px;
  padding-bottom: 48.15%; /* 16:9 */
  height: 0;
  overflow: hidden;
  background: #000;
  border-radius: 20px;
  border: 2px solid #000;
}

.video_wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 18px;
}

.section dl {
	display: flex;
	align-items: flex-start;
	margin: auto;
	margin-bottom: 4px;
	line-height: 1.6;
}

.section dl:last-of-type {
	margin-bottom: 0;
}

.section dt {
	padding-right: 4px;
	font-weight: 600;
}

.section dd {
	font-weight: 600;
	word-break: keep-all;
}

.section.sns {
	padding: 52px 0;
	background-color: #262626;
	border-bottom: 1px solid #fff;
}

.footer {
	padding: 60px 0;
}

.footer .info {
	color: #342323;
	margin-top: 30px;
}

/* 오버레이 (팝업) */
.b_popup {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.7);
  overflow: auto;
  display: none; /* 기본 숨김 */
  align-items: flex-start;
  justify-content: center;
  padding: 40px 12px;
  
}

.b_popup.is-open { display: flex; } /* 열릴 때 flex */

.b_popup_inner {
  position: relative;
  width: min(720px, 100%);
  background-color: #fff;
  margin: 0 auto 40px;
}

.b_popup_title {
    position: relative;
    text-align: center;
    color: #fff;
    font-size: 36px;
	line-height: 1.25;
	background-color: #000;
	padding: 20px;
	word-break: keep-all;
}

.b_popup_title span {
	display: block;
    font-weight: 900;
}

.b_popup_title .btn_close_popup {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 40px;
    color: #999;
    background: transparent;
    border: none;
    outline: none;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.b_popup_content {
	padding: 20px;
}

.b_popup_content .form_group {
    display: flex;
    align-items: center;
	overflow: hidden;
	border-bottom: 1px solid #000;
} 

.b_popup_content .form_group:nth-child(4) {
	border-top: 1px solid #000;
}

.b_popup_content .form_group span.text {
	display: inline-block;
}

/* 칭찬메세지(textarea) 폼을 시각적으로 맨 위로 — flex order 로만 변경, DOM/관리자 건드리지 않음 */
.b_popup_content #saveFrmProcess {
	display: flex;
	flex-direction: column;
}
.b_popup_content .form_group:has(textarea) {
	order: -3;
	border-top: 1px solid #000;
}
/* 경고문구 + 카운터를 한 줄에 배치 (왼쪽: 경고, 오른쪽: 0/50) */
.b_popup_content .char_counter {
	order: -2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 12px 14px;
	padding-left: 172px;
	margin: 0;
	overflow: visible;
}

.b_popup_content .char_counter .guide_notice.bold {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 700;
	color: #000c4b;
	letter-spacing: -0.5px;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.b_popup_content .char_counter .guide_notice.bold dd {
	background: linear-gradient(transparent 1%, #ffc6fa 1%, #ffc6fa 99%, transparent 99%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.b_popup_content .char_counter .char_counter_box {
	flex-shrink: 0;
	font-size: 16px;
	font-weight: 700;
	color: #d23838;
	font-family: 'SchoolSafetyNotification';
	white-space: nowrap;
}

.b_popup_content .char_counter.is-valid .char_counter_box {
	color: #027be4;
}
/* 칭찬메세지 라벨 "칭찬메세지 쓰기" → 공백에서 줄바꿈 (2줄) */
.b_popup_content .form_group:has(textarea) > .label {
	line-height: 1.2;
	padding: 28px 10px;
	align-items: flex-start;
	text-align: center;
	height: auto;
	word-break: keep-all;
}

.b_popup_content .form_group:has(textarea) > .label span.text {
	width: 120px;
}

.b_popup_content .form_group label {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 166px;
	max-width: 166px;
    height: 60px;
    font-size: 24px;
    background-color: #1f1f1f;
    color: #fff;
	font-family: 'SchoolSafetyNotification';
}


/* 유튜브 구독 라디오 행 */
.b_popup_content .form_group:has(input[type="radio"]) {
	justify-content: center;
	background-color: #027be4;
	align-items: center;
}
.b_popup_content .form_group:has(input[type="radio"]) > .label {
	width: auto;
	max-width: none;
	white-space: nowrap;
	align-items: center;
	padding: 0 18px;
	padding-top: 0;
}
.b_popup_content .form_group:has(input[type="radio"]) > label:not(.label) {
	width: auto;
	max-width: none;
	height: 60px;
	padding: 0 16px;
	background-color: transparent;
	color: #fff;
	gap: 10px;
	font-size: 18px;
	cursor: pointer;
}
.b_popup_content .form_group:has(input[type="radio"]) input[type="radio"] {
	width: 24px;
	height: 24px;
	border: 3px solid #000;
	background-color: #fff;
	cursor: pointer;
	transition: background-color 0.2s ease;
	box-sizing: border-box;
}
.b_popup_content .form_group:has(input[type="radio"]) input[type="radio"]:checked {
	/* background-color: #fff; */
}

.b_popup_content .form_group input {
    flex: 1;
    min-width: 0;
    width: auto;
    height: 60px;
    padding: 0 12px;
    font-size: 24px;
    border-radius: 0px;
    border: none;
    outline: none; 
	font-family: 'SchoolSafetyNotification';
	background-color: #fff;
}

.b_popup_content .form_group input[type='file'] {
	display: none;
}

.b_popup_content .form_group input::placeholder {
	font-size: 20px;
}

/* 칭찬메세지 textarea: input과 동일한 가로폭/타이포 */
.b_popup_content .form_group:has(textarea) {
	align-items: stretch;
}

.b_popup_content .form_group textarea {
	flex: 1;
	min-width: 0;
	width: auto;
	height: 120px;
	padding: 14px 12px;
	font-size: 20px;
	border: none;
	outline: none;
	background-color: #fff;
	font-family: 'SchoolSafetyNotification';
	resize: none;
	display: block;
	line-height: 1.4;
}
.b_popup_content .form_group textarea::placeholder {
	font-size: 18px;
	color: #b3b3b3;
}

/* 칭찬메세지 글자수 카운터 */
.char_counter {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	gap: 4px;
	font-size: 16px;
	font-weight: 600;
	color: #d23838;
	padding: 8px 12px 0;
	font-family: 'SchoolSafetyNotification';
}
.char_counter.is-valid {
	color: #027be4;
}
.char_counter .char_counter_current {
	font-weight: 900;
}

.b_popup_content .form_group.form_group_has_guide {
	display: grid;
	grid-template-columns: 166px minmax(0, 1fr);
	align-items: stretch;
	border-bottom: 1px solid #000;
}

.b_popup_content .form_group.form_group_has_guide > .label {
	grid-column: 1;
	grid-row: 1 / 3;
	width: 166px;
	max-width: 166px;
	height: auto;
	align-items: flex-start;
	padding-top: 18px;
	line-height: 1.05;
}

.b_popup_content .form_group.form_group_has_guide > input:not([type='hidden']) {
	grid-column: 2;
	width: 100%;
	border-bottom: 1px solid #000;
}

.b_popup_content .youtube_comment_guide {
	grid-column: 2;
	padding: 10px;
	text-align: left;
	background-color: #fff;
	color: #353535;
}

.b_popup_content .youtube_comment_guide p {
	font-family: 'SchoolSafetyNotification';
	line-height: 1.28;
}

.b_popup_content .youtube_comment_guide .guide_notice {
	font-size: 14px;
	font-weight: 400;
	display: flex;
	align-items: flex-start;
	gap: 4px;
	margin-bottom: 6px;
	line-height: 1.45;
}

.b_popup_content .youtube_comment_guide .guide_notice dt {
	flex-shrink: 0;
}

.b_popup_content .youtube_comment_guide .guide_notice dd {
	word-break: keep-all;
}

.b_popup_content .youtube_comment_guide .guide_notice.ex {
	margin-top: 4px;
}

.b_popup_content .youtube_comment_guide .guide_notice.ex span {
	display: inline-block;
	background-color: #21245F;
	padding: 2px;
	color: #fff;
	word-break: keep-all;
}

/* 예시보러가기 버튼 */
.b_popup_content .youtube_comment_guide .ex_pop_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 6px;
	padding: 4px 14px;
	background-color: #1f1f1f;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	font-family: 'SchoolSafetyNotification';
	border: none;
	cursor: pointer;
	letter-spacing: 0.5px;
}
.b_popup_content .youtube_comment_guide .ex_pop_btn:hover {
	background-color: #000;
}

/* 50자 이상 경고문구 - 빨간 글씨 + 노란 형광펜 하이라이트 (single line) */
.b_popup_content .youtube_comment_guide .guide_notice.bold {
	margin-top: 14px;
	font-weight: 700;
	color: #000c4b;
	font-size: 14px;
	white-space: nowrap;
	letter-spacing: -0.3px;
}
/* .b_popup_content .youtube_comment_guide .guide_notice.bold dt, */
.b_popup_content .youtube_comment_guide .guide_notice.bold dd {
	background: linear-gradient(transparent 1%, #ffc6fa 1%, #ffc6fa 99%, transparent 99%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* 예시 이미지 팝업 - 중앙 정렬 */
.b_popup.ex_popup {
	padding: 60px 12px;
	align-items: center;
}
.ex_popup .b_popup_inner.ex_popup_inner {
	background-color: transparent;
	width: min(560px, 100%);
	padding: 0;
	margin: 0 auto;
}
.ex_popup_inner img {
	display: block;
	width: 100%;
	height: auto;
	border: 3px solid #fff;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}
.ex_popup .ex_close {
	position: absolute;
	top: -48px;
	right: 0;
	width: 40px;
	height: 40px;
	color: #fff;
	background: transparent;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.ex_popup .ex_close:hover { color: #35ffd7; }

.b_popup_content .youtube_comment_guide .guide_desc {
	margin: 14px 0 10px;
}

.b_popup_content .youtube_comment_guide .guide_desc p {
	font-size: 17px;
	font-weight: 600;
}

.b_popup_content .youtube_comment_guide img {
	display: block;
	width: 380px;
	max-width: 100%;
}

.b_popup_content .pharases {
    padding: 0 12px 12px;
}

.b_popup_content dl {
    display: flex;
    margin-bottom: 4px;
}

.b_popup_content dl dt {
    padding-right: 4px;
}

.b_popup_content dl dd {
	word-break: keep-all;
}

.b_popup_content .term_zone .term {
    height: 280px;
    font-size: 18px;
    margin-bottom: 12px;
	border-radius: 20px;
	margin-top: 40px;
}

.b_popup_content .term_zone .term .inner {
	height: 100%;
    overflow-y: scroll;
	border: 1px solid #000;
	padding: 20px;
	text-align: left;
	background-color: #fff;
}

.b_popup_content .term_zone .term .h5 {
	font-weight: 900;
	margin-bottom: 8px;
}

.b_popup_content .term_zone .term .h6 {
	margin-bottom: 4px;
}

.b_popup_content .term_zone .agree {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    gap: 8px;
	color: #000;
}

.b_popup_content .term_zone .agree .align_center {
	display: flex;
	align-items:center;
	justify-content: center;
	gap: 8px;
}

.b_popup_content .term_zone .agree input + label {
    cursor: pointer;
}

.b_popup_content .term_zone .agree input {
    appearance: none;
    position: relative;
    display: inline-block;
    width: 20px;
    height: 20px;
    background-color: #fff;
    border: 2px solid #000;
    border-radius: 50%;
}

.b_popup_content .term_zone .agree input::after {
    content:'';
    display: none;
    width: 12px;
    height: 12px;
    background-color: #434343;
    border-radius: 50%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.b_popup_content .term_zone .agree input:checked::after {
    display: inline-block;
}

.b_popup_content .btn_box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
}
.b_popup_content .btn_box .btn_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.b_popup_content .btn_box button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 230px;
    height: 70px;
    background-color: #a5a5a5;
    font-size: 25px;
	cursor: pointer;
	font-weight: 900;
	border: 2px solid #000;
	color: #000;
}

.b_popup_content .btn_box button.confirm_btn {
    background-color: #35ffd7;
}

.quick_bar.pc {
	position: fixed;
	margin-left: 836px;
	z-index: 50;
}

.quick_bar.mo {
	display: none;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	z-index: 50;
}

@media(max-width: 1600px) {
	.quick_bar.pc {
		margin-left: 0;
		right: 16px;
	}
}

@media(max-width: 991px) {
	.quick_bar.pc {
		display: none;
	}
	
	.quick_bar.mo {
		display: block;
	}
	
	.section.sns {
		padding-bottom: 120px;
	}

}

/* ==============================================
   FILE LABEL - 흰 영역(파일명) + 검정 파일선택 버튼
   ============================================== */
.b_popup_content .form_group label.file_label {
	max-width: none;
	width: auto;
	flex: 1;
	min-width: 0;
	height: 60px;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	cursor: pointer;
	background-color: #fff;
	padding: 0;
	font-size: 16px;
	color: #888;
	overflow: hidden;
}
.b_popup_content .form_group label.file_label .file-name {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	padding: 0 16px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 16px;
	color: #888;
	background-color: #fff;
}
.b_popup_content .form_group label.file_label.has-file .file-name {
	color: #1f1f1f;
	font-weight: 700;
}
.b_popup_content .form_group label.file_label::after {
	content: '파일선택';
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #1f1f1f;
	color: #fff;
	height: 100%;
	padding: 0 22px;
	font-size: 18px;
	font-weight: 700;
	white-space: nowrap;
	font-family: 'SchoolSafetyNotification';
	flex-shrink: 0;
	cursor: pointer;
}

@media(max-width: 760px) {

	.section.main {
		padding-top: 4.21vw;
		height: 127.37vw;
	}
	
	.section.main .bg_hands,
	.section.main .bg_hands_bubble.left,
	.section.main .bg_hands_bubble.right {
		display: none;
	}
	
	.section.main .logo {
		margin-bottom: 3.68vw;
	}
	
	.section.main .logo img {
		width: 28.68vw;
	}
	
	.section.main .h2, .section.main .h3 {
		margin-bottom: 1.05vw;
	}
	
	.section.main .h2 img {
		width: 54.21vw;
	}
	
	.section.main .h3 img {
		width: 75.53vw;
	}
	
	.section.main .h4 {
		margin-bottom: 3.16vw;
	}
	
	.section.main .h4 img {
		width: 68.42vw;
	}
	
	.section.main .event_date img {
		width: 68.42vw;
	}
	
	.insta_sec {
		padding-bottom: 5.79vw;
	}
	
	.insta_sec .inner {
		margin-top: -42.26vw;
	}
	
	.insta_sec .inner > img {
		width: 86.84vw;
	}
	
	.insta_sec .slider {
		width: 74.74vw;
		top: 85.53vw;
	}
	
	.insta_sec .slider li {
		font-size: 3vw;
	}
	
	.insta_sec .nav {
		width: 90.79vw;
		bottom: 16.05vw;
	}
	
	.insta_sec .nav button img {
		width: 5.53vw;
	}
	
	.insta_sec .heart_burst {
		width: 14vw;
	}
	.insta_sec .heart_burst_left  { left: -3vw; }
	.insta_sec .heart_burst_right { right: -6vw; }
	
	.section_02 {
		padding-bottom: 16.84vw;
	}
	
	.section_02 .title {
		margin-bottom: 2.11vw;
	}
	
	.section_02 .title img {
		width: 77.63vw;
	}
	
	.section_02 .content {
		margin-bottom: 8.42vw;
	}
	
	.section_02 .content img {
		width: 96vw;
	}
	
	.section_02 .btn_box {
		gap: 2.63vw;
	}
	
	.section_02 .btn_box img {
		width: 43.42vw;
	}
	
	.video_zone {
		margin-bottom: 8.53vw;
	}
	
	.video_zone > img {
		width: 94.67vw;
	}
	
	.video_wrap {
		margin-top: 9.07vw;
		width: 81.6vw;
		padding-bottom: 45.25vw;
		border-radius: 2.4vw;
	}
	
	.video_wrap iframe {
		border-radius: 2.4vw;
	}
	
	.section_phara {
		padding: 7.89vw 2.8vw;
	}
	
	.section_phara dl {
		font-size: 3.2vw;
		word-break: keep-all;
	}
	
	.section.sns {
		padding: 13.6vw 2.8vw 24vw;
	}
	
	.footer {
		padding: 8vw 0;
	}
	
	.footer .logo img {
		width: 36vw;
	}
	
	.footer .info {
		margin-top: 4vw;
		font-size: 3.2vw;
	}
	
	.b_popup_title {
		font-size: 4.8vw;
		line-height: 1.3;
    }

    
    .b_popup_content .form_group label {
		min-width: 30vw;
        width: 30vw;
        height: 10vw;
        font-size: 3.2vw;
		padding: 0 2.4vw;
    }
	
	.b_popup_content .form_group .label_2,
	.b_popup_content .form_group .label_3 {
		padding-top: 1.28vw;
		font-size: 3.2vw;
	}
	
	.b_popup_content .form_group:has(textarea) > .label {
		display: flex;
		align-items: center;
	}
	
	.b_popup_content .char_counter {
		padding-left: 2.4vw;
	}
	
    .b_popup_content .form_group input {
        width: 58.53vw;
        padding: 1.6vw;
        height: 10vw;
        font-size: 16px;
    }

	.b_popup_content .form_group input::placeholder {
        font-size: 3.2vw;
    }

	.b_popup_content .form_group textarea {
		width: 58.53vw;
		min-height: 22vw;
		height: 22vw;
		padding: 2.13vw;
		font-size: 16px;
		line-height: 1.4;
	}

	.b_popup_content .form_group textarea::placeholder {
		font-size: 3vw;
	}

	.char_counter {
		font-size: 3.2vw;
		padding: 1.6vw 2.4vw 0;
	}

	.b_popup_content .form_group.form_group_has_guide {
		grid-template-columns: 30vw minmax(0, 1fr);
	}

	.b_popup_content .form_group.form_group_has_guide > .label {
		width: 30vw;
		max-width: 30vw;
		height: auto;
		padding-top: 2.67vw;
	}

	.b_popup_content .form_group.form_group_has_guide > input:not([type='hidden']) {
		width: 100%;
	}

	.b_popup_content .youtube_comment_guide {
		padding: 2.13vw 2.4vw 2.67vw;
	}

	.b_popup_content .youtube_comment_guide .guide_notice {
		font-size: 2.8vw;
		margin-bottom: 1.2vw;
	}

	.b_popup_content .youtube_comment_guide .guide_notice.bold,
	.b_popup_content #saveFrmProcess > .guide_notice.bold {
		font-size: 3vw;
		margin-top: 2vw;
		white-space: normal;
		letter-spacing: 0;
		padding: 1.6vw 2.4vw 2vw;
	}

	.b_popup_content .youtube_comment_guide .ex_pop_btn {
		margin-top: 1.2vw;
		padding: 0.8vw 2.4vw;
		font-size: 2.8vw;
	}

	.b_popup.ex_popup {
		padding: 14vw 4vw;
	}

	.ex_popup .ex_close {
		top: -10vw;
		width: 8vw;
		height: 8vw;
	}

	.ex_popup .ex_close svg {
		width: 7vw;
		height: 7vw;
	}

	.b_popup_content .youtube_comment_guide .guide_desc {
		margin: 2.13vw 0 1.6vw;
	}

	.b_popup_content .youtube_comment_guide .guide_desc p {
		font-size: 3.07vw;
	}

	.b_popup_content .youtube_comment_guide img {
		width: 50.67vw;
	}
	
	.b_popup_content .form_group label.file_label {
		width: 58.53vw;
		height: 10vw;
		font-size: 3.2vw;
	}
	.b_popup_content .form_group label.file_label .file-name {
		font-size: 3.2vw;
		padding: 0 2.4vw;
	}
	.b_popup_content .form_group label.file_label::after {
		font-size: 3.6vw;
		padding: 0 3.6vw;
	}
   
    .b_popup_content .pharases {
        padding: 0 1.6vw 1.6vw;
        font-size: 3.2vw;
    }
    
    .b_popup_content .term_zone .term {
        height: 32vw;
        margin: 3.2vw 0 1.6vw;
        font-size: 3.2vw;
		border-radius: 3.2vw;
		padding: 0;
    }
	
	.b_popup_content .term_zone .term .h5 {
		margin-bottom: 8px;
	}

	.b_popup_content .term_zone .term .h6 {
		margin-bottom: 4px;
	}
    
    .b_popup_content .term_zone .agree {
        display: block;
        font-size: 3.2vw;
        gap: 1.07vw;
        text-align: center;
    }
    
    .b_popup_content .term_zone .agree > span:first-child {
        display: block;
        margin-bottom: 2vw;
        text-align: center;
    }
    
    .b_popup_content .term_zone .agree > span:nth-child(2) {
        margin-right: 1.6vw;
    }
    
    .b_popup_content .term_zone .agree input {
        width: 3.6vw;
        height: 3.6vw;
    }
    
    .b_popup_content .term_zone .agree input::after {
        width: 2vw;
        height: 2vw;
    }
	
	.b_popup_content .form_group:has(input[type="radio"]) > .label {
		padding: 0;
		padding-right: 2.4vw;
	}
	
	.b_popup_content .form_group:has(input[type="radio"]) > label:not(.label) {
		min-width: auto;
		font-size: 3.2vw;
		height: 10vw;
		padding: 1.2vw;
		gap: 1.6vw;
	}
	
	.b_popup_content .form_group:has(input[type="radio"]) input[type="radio"] {
		width: 3.6vw;
		height: 3.6vw;
		flex: 0 1 auto;
	}
    
    .b_popup_content .btn_box {
        gap: 3.33vw;
		margin-top: 5.22vw;
    }
	
	.b_popup_content .term_zone .term .inner {
		padding: 3.6vw;
	}
	
	.section dl {
		justify-content: flex-start;
	}
	
	.section dd {
		text-align: left;
	}

	.b_popup_content {
		padding: 2.4vw;
	}
	
	.b_popup_content .btn_box button {
		height: 12vw;
		font-size: 4vw;
	}

}

/* ==============================================
   ANIMATIONS
   ============================================== */

/* 페이지 로딩 전 초기 상태 (section01) */
.section.main .logo,
.section.main .h2,
.section.main .h3,
.section.main .h4,
.section.main .event_date {
	opacity: 0;
}

/* .section.main .bg_hands {
	opacity: 0;
} */

.section.main .bg_hands_bubble.left,
.section.main .bg_hands_bubble.right {
	opacity: 0;
}

/* 로딩 완료 시 애니메이션 트리거 */
body.page-loaded .section.main .logo {
	animation: itemFadeDown 0.7s 0.1s ease-out forwards;
}
body.page-loaded .section.main .h2 {
	animation: itemPop 0.7s 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
body.page-loaded .section.main .h3 {
	animation: itemSlideR 0.7s 0.6s ease-out forwards;
}
body.page-loaded .section.main .h4 {
	animation: itemSlideL 0.7s 0.85s ease-out forwards;
}
body.page-loaded .section.main .event_date {
	animation: itemBounce 0.8s 1.1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* hands 자연스러운 fade-in */
/* body.page-loaded .section.main .bg_hands {
	animation: handsFade 1.4s 0.4s ease-out forwards;
} */

/* 말풍선 액티비티 등장 + 까딱까딱 무한 */
body.page-loaded .section.main .bg_hands_bubble.left {
	opacity: 1;
	animation:
		bubbleInLeft 0.8s 1.3s cubic-bezier(0.34, 1.56, 0.64, 1) both,
		bubbleRockLeft 2.4s 2.1s infinite ease-in-out;
}
body.page-loaded .section.main .bg_hands_bubble.right {
	opacity: 1;
	animation:
		bubbleInRight 0.8s 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) both,
		bubbleRockRight 2.4s 2.3s infinite ease-in-out;
}

@keyframes itemFadeDown {
	from { opacity: 0; transform: translateY(-30px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes itemPop {
	0%   { opacity: 0; transform: scale(0.3) rotate(-10deg); }
	100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes itemSlideR {
	from { opacity: 0; transform: translateX(-60px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes itemSlideL {
	from { opacity: 0; transform: translateX(60px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes itemBounce {
	0%   { opacity: 0; transform: scale(0) rotate(-15deg); }
	60%  { opacity: 1; transform: scale(1.15) rotate(3deg); }
	100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes handsFade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes bubbleInLeft {
	0%   { opacity: 0; transform: translateX(-50%) scale(0) rotate(-25deg); }
	70%  { opacity: 1; transform: translateX(-50%) scale(1.15) rotate(6deg); }
	100% { opacity: 1; transform: translateX(-50%) scale(1) rotate(0); }
}
@keyframes bubbleInRight {
	0%   { opacity: 0; transform: translateX(-50%) scale(0) rotate(25deg); }
	70%  { opacity: 1; transform: translateX(-50%) scale(1.15) rotate(-6deg); }
	100% { opacity: 1; transform: translateX(-50%) scale(1) rotate(0); }
}
@keyframes bubbleRockLeft {
	0%, 100% { transform: translateX(-50%) rotate(-6deg); }
	50%      { transform: translateX(-50%) rotate(6deg); }
}
@keyframes bubbleRockRight {
	0%, 100% { transform: translateX(-50%) rotate(6deg); }
	50%      { transform: translateX(-50%) rotate(-6deg); }
}

/* 스크롤 모션 공통 */
.scroll_motion {
	opacity: 0;
	transition: opacity 0.9s ease, transform 0.9s ease;
	will-change: opacity, transform;
}
.scroll_motion.motion-up    { transform: translateY(50px); }
.scroll_motion.motion-zoom  { transform: scale(0.85); }
.scroll_motion.motion-fade  { transform: translateY(0); }

.scroll_motion.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}

/* 5. 인스타 영역은 section01 inner items 보다 늦게 등장 */
.insta_sec .inner.scroll_motion {
	transition: opacity 1s ease 1.6s, transform 1s ease 1.6s;
}

/* 4. section02 이하 액티비티한 staggered 애니메이션 */
.section_02 .inner.scroll_motion .title,
.section_02 .inner.scroll_motion .content,
.section_02 .inner.scroll_motion .btn_box {
	opacity: 0;
	transform: translateY(50px) scale(0.85) rotate(-2deg);
	transition: opacity 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.section_02 .inner.scroll_motion.is-visible .title {
	transition-delay: 0.15s;
	opacity: 1;
	transform: translateY(0) scale(1) rotate(0);
}
.section_02 .inner.scroll_motion.is-visible .content {
	transition-delay: 0.4s;
	opacity: 1;
	transform: translateY(0) scale(1) rotate(0);
}
.section_02 .inner.scroll_motion.is-visible .btn_box {
	transition-delay: 0.65s;
	opacity: 1;
	transform: translateY(0) scale(1) rotate(0);
}
.section_02 .inner.scroll_motion.is-visible .btn_box a {
	animation: itemBounce 0.7s 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.section_02 .inner.scroll_motion.is-visible .btn_box button {
	animation: itemBounce 0.7s 0.85s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* section_02 배경 오브젝트 - 슬며시 등장 */
.section_02 .bg_obj {
	opacity: 0;
	transform: translateX(-50%) translateY(30px);
	transition: opacity 1.2s ease 0.4s, transform 1.2s ease 0.4s;
}
.section_02:has(.inner.scroll_motion.is-visible) .bg_obj {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* section_phara - dl 항목별 좌→우 슬라이드 */
.section_phara .inner.scroll_motion dl {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.55s ease, transform 0.55s ease;
}
.section_phara .inner.scroll_motion.is-visible dl { opacity: 1; transform: translateX(0); }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(1) { transition-delay: 0.05s; }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(2) { transition-delay: 0.15s; }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(3) { transition-delay: 0.25s; }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(4) { transition-delay: 0.35s; }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(5) { transition-delay: 0.45s; }
.section_phara .inner.scroll_motion.is-visible dl:nth-child(6) { transition-delay: 0.55s; }

/* sns 영역 - 회전하면서 팝업 */
.section.sns .inner.scroll_motion {
	transform: scale(0.5) rotate(-8deg);
	transition: opacity 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.section.sns .inner.scroll_motion.is-visible {
	transform: scale(1) rotate(0);
}

/* 6. 인스타 하트 burst keyframe - 좋아요 누른 듯 뿜뿜 */
@keyframes heartBurst {
	0% {
		opacity: 0;
		transform:
			translate3d(var(--x0, 0px), 0, 0)
			scale(.35)
			rotate(var(--r0, -10deg));
	}

	8% {
		opacity: 1;
		transform:
			translate3d(var(--x1, 6px), -12px, 0)
			scale(1.12)
			rotate(var(--r1, 8deg));
	}

	18% {
		opacity: 1;
		transform:
			translate3d(var(--x2, -14px), -34px, 0)
			scale(.96)
			rotate(var(--r2, -8deg));
	}

	42% {
		opacity: .95;
		transform:
			translate3d(var(--x3, 24px), -95px, 0)
			scale(.9)
			rotate(var(--r3, 6deg));
	}

	68% {
		opacity: .65;
		transform:
			translate3d(var(--x4, -18px), -155px, 0)
			scale(.78)
			rotate(var(--r2, -8deg));
	}

	100% {
		opacity: 0;
		transform:
			translate3d(var(--x5, 10px), -230px, 0)
			scale(.58)
			rotate(var(--r0, -10deg));
	}
}

/* 모션 사용 안 함 사용자 배려 */
@media (prefers-reduced-motion: reduce) {
	.section.main .logo,
	.section.main .h2,
	.section.main .h3,
	.section.main .h4,
	.section.main .event_date,
	.section.main .bg_hands,
	.section.main .bg_hands_bubble.left,
	.section.main .bg_hands_bubble.right,
	.scroll_motion {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
	.insta_sec .heart_burst .h_item { animation: none !important; opacity: 0 !important; }
}
