@font-face {
    font-family: 'SacheonUniverse';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2506-1@1.0/SacheonUju-Regular.woff2') format('woff2');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'NanumSquareNeo';
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-aLt.woff2);
    font-weight: 300;
    font-display: swap;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
	font-family: 'SacheonUniverse';
}

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
}

input, select {
	border-radius: 0px;
}

button {
	appearance: none;
	background-color: transparent;
	border: none;
	cursor: pointer;
}

a {
	text-decoration: none;
	color: #252525;
}

.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;
}

body {
	min-width:320px;
	color:#353535;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	-webkit-user-drag: none;
}

::selection {
   background: #086FB8;
   color: #fff
}

::-moz-selection {
   background: #086FB8;
   color: #fff
}

::-webkit-selection {
    background: #086FB8;
   color: #fff
}

.rel {
	position: relative;
}

area {
	cursor: pointer;
}

/* MAIN */
.container {
	max-width: 1920px;
	margin: auto;
}

.section .inner {
	max-width: 750px;
	margin: auto;
	text-align: center;
}

.section_01 {
	position: relative;
	height: 1250px;
	background-image: url('/PROJECT_HTML/sacheon/img/main_bg_new_v2.jpg?new');
	background-position: center 0;
	background-size: cover;
}

.section_01 .left_obj {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	background-image: url('/PROJECT_HTML/sacheon/img/main_left_obj_new.png?new');
	background-position: center 0;
	background-size: cover;
}

.section_01 .inner {
	height: 100%;
	padding-top: 48px;
}

.section_01 .phone_title {
	margin: 124px 0 0 -32px;
}

.section_01 .play_btn {
	margin-top: 72px;
}

.section_01 .hand {
	position: absolute;
	bottom: 40px;
	left: -140px;
}

.section_02 {
	position: relative;
	margin-top: -56px;
	padding: 85px 0 100px;
	background-image: url('/PROJECT_HTML/sacheon/img/section02_bg.png?new');
	background-position: center 0;
	background-size: cover;
	z-index: 10;
}

.section_03 {
	padding: 68px 0 120px;
}

.section_03 .btn_box {
	margin-top: 92px;
}

.section_03 .btn_box .flex {
	max-width: 700px;
	margin: auto;
	margin-bottom: 40px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.section_04 {
	padding: 100px 0 84px;
	background-color: #002d61;
	color: #fff;
}

.section_04 p {
	font-size: 30px;
	margin-bottom: 48px;
}

.section_04 dl {
	display: flex;
	align-items: flex-start;
	font-size: 20px;
	padding: 0 24px;
	line-height: 160%;
}

.section_04 dt {
	padding-right: 3px;
	font-size: 22px;
}

.section_04 dd {
	font-family: 'NanumSquareNeo';
	letter-spacing: -.5px;
	text-align: left;
	word-break: keep-all;
}

.section.sns {
	padding: 70px 0;
	background-color: #002046;
}

.footer {
	padding: 48px 20px;
	border-top: 2px solid #002046;
}

.footer .info {
	margin-top: 32px;
	font-family: 'NanumSquareNeo';
	font-weight: 700;
	color: #5f5f5f;
	line-height: 180%;
}

.quick_btn.pc {
	position: fixed;
	background-color: #fff;
	border-left: 3px solid #002d61;
	width: 130px;
	top: 0;
	right: 0px;
	height: 100dvh;
	z-index: 15;
}

.quick_btn.pc li {
	position: relative;
	border-bottom: 1px solid #0c3462;
}

.quick_btn.pc li.bg_blue {
	background-color: #086fb8;
	color: #fff;
}

.quick_btn.pc li.bg_orange {
	background-color: #ff6e44;
}

/*.quick_btn.pc li::after {
	content:'';
	display: block;
	position: absolute;
	bottom: 0;
	width: 60%;
	height: 1px;
	left: 50%;
	transform: translateX(-50%);
	background-color: #0c3462;
}*/

.quick_btn.pc a,
.quick_btn.pc button {
	display: block;
	width: 100%;
	padding: 45px 0;
	text-align: center;
	font-size: 24px;
	color: #0c3462;
}

.quick_btn.pc li.bg_blue a {
	color: #fff;
}

./*quick_btn.pc .text_bl {
	color: #086fb8;
}

.quick_btn.pc .text_or {
	color: #ff6e44;
}*/

/* ---------------------- Anim Utilities ---------------------- */
.will-animate { opacity:0; transform:translate3d(0,10px,0); }
.in-view { opacity:1; transform:none; }

@keyframes fadeIn {
  0% { opacity:0;  }
  100% { opacity:1;  }
}
@keyframes fadeInDown {
  0% { opacity:0; transform:translate3d(0,-16px,0); }
  100% { opacity:1; transform:translate3d(0,0,0); }
}
@keyframes fadeScaleUp {
  0% { opacity:0; transform:scale(.85); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes fadeUp {
  0% { opacity:0; transform:translate3d(0,24px,0); }
  100% { opacity:1; transform:translate3d(0,0,0); }
}
@keyframes fadeOut {
  0% { opacity:1; transform:translate3d(0,0,0) scale(1); }
  100% { opacity:0; transform:translate3d(0,-12px,0) scale(.98); }
}
@keyframes handEnter {
  0% { opacity:0; transform:translate3d(-60px,60px,0) rotate(-6deg); }
  100% { opacity:1; transform:translate3d(0,0,0) rotate(0deg); }
}
@keyframes tapPulse {
  0%, 100% { transform:scale(1); }
  50% { transform:scale(1.06); }
}

/* 로딩 시 순차 진입용 클래스 */
.anim-fadeInDown { animation:fadeInDown .7s both; }
.anim-fadeScaleUp { animation:fadeScaleUp .7s both; }

/* 스크롤 트리거 공용(섹션 02/03 요소) */
.scroll-fadeUp { opacity:0; transform:translate3d(0,24px,0); transition:opacity .6s ease, transform .6s ease; }
.scroll-fadeUp.in { opacity:1; transform:none; }

/* phone item 단계별 상태 클래스 */
.phone--stage-play .play_btn { animation:fadeUp .6s both; }
.phone--stage-hand .hand { animation:handEnter .7s both; }
.phone--tapping .play_btn img { animation:tapPulse .35s ease-in-out var(--tap-iter,1) alternate; }
.phone--tapping .hand img { animation:tapPulse .35s ease-in-out var(--tap-iter,1) alternate; transform-origin:60% 40%; }
.phone--fadeout .play_btn,
.phone--fadeout .hand { animation:fadeOut .45s both; }
.phone--char .charator { display:block; animation:fadeIn .6s both;  }

/* 접근성: 모션 축소 환경 */
@media (prefers-reduced-motion: reduce) {
  .anim-fadeInDown,
  .anim-fadeScaleUp,
  .phone--stage-play .play_btn,
  .phone--stage-hand .hand,
  .phone--tapping .play_btn img,
  .phone--tapping .hand img,
  .phone--fadeout .play_btn,
  .phone--fadeout .hand,
  .phone--char .charator {
    animation: none !important;
    transition: none !important;
  }
  .will-animate, .scroll-fadeUp { opacity:1 !important; transform:none !important; }
}

.charator {
	width: 460px;
	position: absolute;
	left: 50%;
	transform: translateX(-50.7%);
	margin-top: -286px;
}

.charator > img {
	position: absolute;
	left: 0;
}

/* 오버레이 */
.b_popup {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.7);
  /* 오버레이 스크롤 가능 */
  overflow: auto;
  /* 중앙정렬: flex */
  display: none; /* 기본 숨김 */
  align-items: center;
  justify-content: center;
  padding: 24px 12px;
}
.b_popup.is-open { display: flex; } /* 열릴 때 flex로 */

.b_popup_inner {
  position: relative;
  width: min(750px, 100%);
  background: #fff;
  padding: 30px 30px 30px;
  padding-top: 70px;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  max-height: calc(100svh - 48px);
  overflow: auto; /* 팝업 내용 스크롤 */
  -webkit-overflow-scrolling: touch;
}

.b_popup_title {
	position: relative;
	text-align: center;
	margin-bottom: 40px;
	color: #05307e;
	font-size: 32px;
}

.b_popup_title .btn_close_popup {
	position: absolute;
	right: 0;
	top: -40px;
	font-size: 40px;
	color: #999;
}

.b_popup_content {
  text-align: center;
}

.b_popup .btn_box {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-top: 40px;
}

.section.main {
	padding-top: 120px;
	height: 638px;
	background-image: url('/PROJECT_HTML/sacheon/img/main_sec_bg_new_v2.jpg?new');
	background-position: center;
	background-size: cover;
}

.section.main .home_btn {
	position: relative;
	background-color: #066EB4;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
	width: 250px;
	height: 60px;
	border-radius: 10px;
	color: #fff;
	font-size: 20px;
}

.section.main .home_btn::before {
	position: absolute;
	content: '';
	display: block;
	left: 5px;
	top: 5px;
	border: 2px solid #fff;
	width: 235px;
	height: 46px;
	border-radius: 10px;
}

.section.notice .inner {
	max-width: 1000px;
	text-align: center;
	padding: 100px 0;
}

.section.notice .inner > .title {
	font-size: 60px;
	color: #0d3462;
	letter-spacing: -2px;
}

.m_float {
	display: none;
}

/* POPUP */
.form_group {
	display: flex;
	align-items: center;
	margin-bottom: 10px;
}

.form_group label.label {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 120px;
	height: 55px;
	background-color: #05307e;
	color: #fff;
	font-size: 25px;
	word-break: keep-all;
}

.form_group label.label_3,
.form_group label.label_4 {
	font-size: 15px;
}

.form_group input[type='text'],
.form_group input[type='tel'],
.form_group input[type='number'],
.form_group input[type='url']{
	width: 560px;
	height: 55px;
	font-size: 25px;
	border: none;
	outline: none;
	border: 1px solid #05307e;
	padding: 0 15px;
	font-family: 'NanumSquareNeo';
	color: #000;
	font-weight: 600;
}

.form_group input[type='file'] {
	display: none;
}

.form_group input[type='file'] + label {
	position: relative;
	width: 560px;
	height: 55px;
	line-height: 55px;
	font-size: 15px;
	border: none;
	outline: none;
	border: 1px solid #05307e;
	padding: 0 10px;
	text-align: left;
	color: #000;
	font-family: 'NanumSquareNeo';
	font-weight: 600;

}

.form_group input[type='file'] + label::after {
	content: '추가';
	display: flex;
	justify-content: center;
	align-items: center;
	right: 6.5px;
	top: 6.5px;
	position: absolute;
	width: 80px;
	height: 40px;
	background-color: #ff8764;
	color: #fff;
	font-size: 20px;
	cursor: pointer;
}

.pharaese {
	margin-top: 15px;
	font-size: 20px;
	color: #05307e;
}

.pharaese.line__ {
	margin: 15px 0;
	padding-bottom: 32px;
	border-bottom: 1px dashed #05307e;
	font-family: 'NanumSquareNeo';
	font-weight: 600;
	text-align: left;
	font-size: 19px;
}

.pharaese dl {
	display: flex;
	align-items: flex-start;
	margin-bottom: 4px;
	line-height: 160%;
}

.pharaese dl dt {
	padding-right: 3px;
}

.pharaese dl.text_or {
	color: #ff8764;
}

.pharaese dl dd {
	text-align: left;
	font-family: 'NanumSquareNeo';
	font-weight: 600;
}

.section.notice .btn_box {
	margin-top: 30px;
}

.b_popup#popup03 .btn_box .btn,
.section.notice .btn_box .btn {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-left: auto;
	width: 100px;
	height: 40px;
	background-color: #002046;
	color: #fff;
	font-family: 'NanumSquareNeo';
	font-weight: 600;
}


.b_popup#popup03 .btn_box .btn,
.section.notice .btn_box .btn.big {
	width: 250px;
	height: 60px;
	margin: auto;
	font-size: 22px;
}

.notice_table {
	width: 100%;
	margin-top: 40px;
	font-size: 14px;
}

.notice_table.mo {
	display: none;
}

.notice_table * {
	font-family: 'NanumSquareNeo';
	font-weight: 600;
}

.notice_table th,
.notice_table td {
	padding: 12px;
}

.notice_table th {
	background-color: #002046;
	color: #fff;
}

.notice_table td {
	border-bottom: 1px solid #002046;
}

.notice_table td span {
	border-radius: 4px;
	background-color: #002046;
	padding: 4px 8px;
	color: #fff;
	font-size: 12px;
}

.notice_table td span.complete {
	background-color: #FF6E44;
}

.notice_w_table {
	width: 100%;
	border-top: 2px solid #002046;
}

.notice_w_table th {
	border-bottom: 1px solid #f5f5f5;
	width: 200px;
}

.notice_w_table input,
.notice_w_table textarea {
	width: 100%;
	padding: 12px;
	font-size: 16px;
}

.notice_w_table textarea {
	height: 250px;
	resize: none;
}

.notice_w_table input {
	height: 40px;
	border: 1px solid #002046;
}

.notice_view td {
	text-align: left;
}

.password_wrap {
	position: relative;
}

.password_wrap input {
  width: 100%;
  padding-right: 40px; /* 아이콘 자리 */
  box-sizing: border-box;
}

.pw input {
	height: 40px;
	border: 1px solid #002046;
	font-size: 16px;
	padding: 0 12px;
}

.password_wrap .toggle_pw {
  display: block;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pagenation {
	margin-top: 60px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.pagenation span,
.pagenation button {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid #002046;
	background-color: #002046;
	color: #fff;
	font-family: 'NanumSquareNeo';
	font-weight: 600;
	cursor: pointer;
}

.pagenation span.active {
	background-color: #FF6E44;
	border-color: #FF6E44;
}

/* 깜빡임 방지: 레이어 고정 & 합성 강제 */
.section_01 .play_btn,
.section_01 .hand,
.section_01 .phone_item img {
  backface-visibility: hidden;
  transform: translateZ(0);
  will-change: opacity, transform;
}

/* display 토글 금지: visibility/opacity 전환 */
.section_01 .charator{
  opacity:0; visibility:hidden;
  transition:opacity .28s ease;
  backface-visibility:hidden; will-change:opacity;
}
.section_01 .charator.is-on{
  opacity:1; visibility:visible;
}

@media(max-width: 991px) {

	.section.sns {
		padding-bottom: 160px;
	}

	.quick_btn.pc {
		display: none;
	}

	.m_float_wrap {
		background-color: #002046;
	}

	.m_float {
		display: block;
		width: 100%;
		max-width: 750px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 50;
	}
}

@media(max-width: 750px) {
	.section_01 {
		height: 166.67vw;
		background-size: auto 100%;
	}

	.section_01 .inner {
		padding-top: 6.4vw;
	}

	.section_01 .top {
		width: 84.53vw;
		margin: auto;
	}

	.section_01 .phone_title {
		width: 47.47vw;
		margin: 16.53vw auto 0 auto;
		padding-right: 4vw;
	}

	.section_01 .play_btn {
		width: 20vw;
		margin: auto;
		margin-top: 9.6vw;
	}

	.section_01 .hand {
		width: 75.47vw;
		bottom: 5.33vw;
		left: -18.67vw;
	}

	.charator {
		width: 62vw;
		position: absolute;
		left: 50%;
		transform: translateX(-50.2%);
		margin-top: -38.6vw;
	}

	.section_02 {
		margin-top: -7.47vw;
		padding: 11.33vw 0 13.33vw;
	}

	.section_02 .inner > img {
		width: 84.27vw;
		margin: auto;
	}

	.section_03 {
		padding: 9.07vw 0 16vw;
	}

	.section_03 .inner .text {
		width: 93.33vw;
		margin: auto;
	}

	.section_03 .btn_box {
		margin-top: 12.27vw;
	}

	.section_03 .btn_box .flex {
		margin-bottom: 0;
	}

	.section_03 .btn_box .flex a {
		width: 43.47vw;
	}

	.section_03 .btn_box button {
		margin-top: 2.13vw;
		width: 93.33vw;
	}

	.section_04 {
		padding: 13.33vw 0 11.2vw;
	}

	.section_04 p {
		font-size: 4vw;
		margin-bottom: 6.4vw;
	}

	.section_04 dl {
		padding: 0 3.2vw;
		font-size: 2.67vw;
	}

	.section_04 dt {
		font-size: 2.93vw;
	}

	.section.sns {
		padding: 9.33vw 0 21.33vw;
	}

	.section.main  {
		background-size: auto 100%;
		padding-top: 15vw;
		height: 80.33vw;
	}

	.section.sns .inner {
		width: 85.07vw;
	}
	
	.section.main .home_btn {
		width: 40vw;
		height: 8vw;
		font-size:2.8vw;
	}
	
	.section.main .home_btn::before {
		left: 1vw;
		top: 1vw;
		border-width: 1px;
		width: 37.5vw;
		height: 5.5vw;
	}

	.footer {
		padding: 6.4vw 2.67vw;
	}

	.footer .logo {
		width: 24vw;
		margin: auto;
	}

	.footer .info {
		margin-top: 4.27vw;
		font-size: 2.13vw;
	}

	.b_popup_inner {
		width: 96%;
		padding: 4vw;
	}

	.b_popup_title .btn_close_popup {
		top: -2vw;
		right: -1.33vw;
	}

	.b_popup_title {
		padding-top: 7.33vw;
		margin-bottom: 5.33vw;
		font-size: 4.27vw;
	}

	.b_popup_inner .btn_box button {
		width: 32vw;
	}

	.form_group label.label {
		width: 22vw;
		font-size: 16px;
		height: 9.33vw;
	}

	.form_group input[type='text'], 
	.form_group input[type='tel'], 
	.form_group input[type='number'],
	.form_group input[type='url'],
	.form_group input[type='file'] + label{ 
		width: 58.67vw;
		height: 9.33vw;
		font-size: 16px;
		padding: 0 2vw;
	}
	

	.form_group input[type='file'] + label {
		display: flex;
		align-items: center;
		font-size: 2.4vw;
		padding-right: 12vw;
		line-height: 2.8vw;
		word-break: keep-all;
	}

	.form_group input[type='file'] + label::after {
		width: 10.67vw;
		height: 6.53vw;
		font-size: 3.33vw;
		right: 1vw;
		top:1vw;
	}

	.pharaese {
		margin-top: 2vw;
		font-size: 2.67vw;
		
	}
	
	.pharaese.line__ {
		font-size: 2.67vw;
		line-height: 3.6vw;
	}

	.b_popup .btn_box {
		margin-top: 5.33vw;
		gap: 2.67vw;
	}

	.section.notice .inner {
		padding: 13.33vw 4vw 22vw;
	}

	.section.notice .inner > .title {
		font-size: 8vw;
	}

	.notice_table.pc {
		display: none;
	}

	.notice_table.mo {
		display: block;
	}

	.pagenation {
		margin-top: 8vw;
		gap: 2vw;
	}

	.pagenation span,
	.pagenation button {
		font-size: 2.87vw;
		width: 6.27vw;
		height: 6.27vw;
	}

	.notice_table.mo {
		width: 100%;
		border-top: 2px solid #0d3462;
	}

	.notice_table.mo li {
		width: 100%;
		display: flex;
		align-items: center;
		padding: 2vw;
		gap: 2vw;
		border-bottom: 1px solid #0d3462;
		font-size: 3.2vw;
	}

	.notice_table.mo li .no {
		width: 8vw;
	}

	.notice_table.mo li .title {
		font-size: 4vw;
		margin-bottom: 1.2vw;
		font-weight: 900;
		color: #000;
	}

	.notice_table.mo li .con {
		width: 76vw;
		text-align: left;
	}

	.notice_table.mo li .con .flex {
		display: flex;
		align-items: center;
		gap: 2vw;
	}

	.notice_table.mo li .con .flex .date {
		border-left: 1px solid #999;
		padding-left: 2vw;
	}

	.notice_table.mo li .answer {
		width: 20vw;
	}

	.notice_table.mo li .answer span {
		border-radius: 0.8vw;
		background-color: #002046;
		padding: 1.2vw 1.6vw;
		color: #fff;
		font-size: 3.2vw;
	}

	.notice_table.mo li .answer span.complete {
		background-color: #FF6E44;
	}

	.notice_w_table {
		font-size: 3.2vw;
	}

	.notice_w_table th {
		width: 24vw;
	}

	.section.notice .btn_box {
		margin-top: 15px;
	}

	.section.notice .btn_box .btn {
		font-size: 14px;
	}
	
	.b_popup#popup03 .btn_box .btn,
	.section.notice .btn_box .btn.big {
		width: 200px;
		height: 50px;
		font-size: 16px;
	}
	
	.form_group label.label_3,
	.form_group label.label_4 {
		font-size: 2.4vw;
	}
}