/* scroll */
::-webkit-scrollbar { width:5px; height: 5px; }
::-webkit-scrollbar-track { background:#eee; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0; }
::-webkit-scrollbar-thumb { height:50px; width:50px; background:#000; -moz-border-radius:0px; -webkit-border-radius:0px; border-radius:0px; }
::-webkit-scrollbar-thumb:window-inactive { background:#000; -moz-border-radius:0px; -webkit-border-radius:0px; border-radius:0px; }

.scroll_on { opacity: 0; transition: all 1s;}
.scroll_on.active {opacity: 1 !important;transform: translate(0, 0) !important;}
.scroll_on.type_top {transform: translate(0, -50px);}
.scroll_on.type_bottom {transform: translate(0, 50px);}
.scroll_on.type_left {transform: translate(-50px, 0);}
.scroll_on.type_right {transform: translate(50px, 0);}

.scroll_on02 { opacity: 0; transition: all 1s;}
.scroll_on02.active {opacity: 1 !important; }

.wrap { width: 1600px; margin: 0 auto; }

/* head */
.head { position: absolute; top: 0; left: 0; z-index: 9; width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.head .wrap { display: flex; flex-wrap: wrap; align-content: center; justify-content: space-between; align-items: center; height: 100px; }
.menu_inr { display: flex; flex-wrap: wrap; }
.menu_inr li { position: relative; display: inline-flex; flex-wrap: wrap; align-items: center; height: 100px; padding: 0 40px; }
.menu_inr li a { color: #fff; font-size: 24px; font-weight: 600; }

.smenu_dl { overflow: hidden; position: absolute; left: -20%; top: 90%; padding: 20px 0px; width: 140%; background: #1e4183; border-radius: 0px; z-index: 999; display: none; }
.smenu_dl dd { margin-bottom: 10px; text-align: center; transition: 0.5s; }
.smenu_dl dd:last-child { margin-bottom: 0px; border-bottom: none; }
.smenu_dl dd:hover {  }
.smenu_dl dd a { display: block; color: rgba(255, 255, 255, 0.8); font-size: 1em; transition: 0.3s; }
.smenu_dl dd a:hover { color: #fff; text-decoration: underline; }

.mobile_menu { display: none; }

/* footer */
.footer { text-align: center; padding: 60px 0; background: #000; color: #fff; }
.footer strong { display: block; margin-bottom: 15px; }
.footer span { position: relative; display: inline-block; padding: 0 30px; color: rgba(255, 255, 255, 0.6); }
.footer span:after { content:''; position: absolute; right: 0px; top: 15%; width: 1px; height: 70%; background: rgba(255, 255, 255, 0.3); }
.footer span.noline:after { display: none; }
.footer p { margin-top: 15px; color: rgba(255, 255, 255, 0.4); }

/* main */
.main_vis { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; width: 100%; height: 100vh; }

.swiper-slide .main_vis_bg { position: absolute; left: 0%; top: 0%; width: 100%; height: 100%; transform: scale(1.1); transition: all 4s; }
.swiper-slide-active .main_vis_bg { transform:scale(1); }

.main_vis_bg01 { background: #000 url('../image/main/main_vis01.png') center top no-repeat; background-size: cover; }
.main_vis_bg02 { background: #111 url('../image/main/main_vis02.png') center top no-repeat; background-size: cover; }
.main_vis_bg03 { background: #333 url('../image/main/main_vis03.png') center top no-repeat; background-size: cover; }

/* ===========================
   메인 전체 컨테이너
=========================== */
.main_arrow { position: absolute; bottom: 160px; left: 0px; display: flex; flex-wrap: wrap; justify-content: center; width: 100%; }
.main_vis .swiper-pagingbox { position: relative; z-index: 999; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 15px; width: 1600px; height: auto; margin: 0 auto; }

/* ===========================
   숫자 (현재 / 전체)
=========================== */
.page_num { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; color: rgba(255, 255, 255, 0.5); font-size: 0.9em; font-family: 'Presentation'; }
.page-current, .page-total { text-align: center; width: 24px; height: 24px; line-height: 24px; font-size: 1em; font-weight: 700; }
.page-current { color: rgba(255, 255, 255, 1); }

/* ===========================
   Progressbar (fill div 방식)
=========================== */
.swiper-progress-bar { overflow: hidden; position: relative; width: 130px; height: 2px; background: rgba(255,255,255,0.3); border-radius: 2px; }

/* 채워지는 바 */
.swiper-progress-bar .progress-fill { position: absolute; left: 0; top: 0; height: 100%; width: 0%; background: #fff; transition: width 5s linear; }

/* ===========================
   Prev / Next 버튼
=========================== */
.main_vis .swiper-button-prev, .main_vis .swiper-button-next { position: relative; top: auto; left: auto; right: auto; width: auto; height: auto; margin-top: 0; color: rgba(255,255,255,0.9); }

.main_vis .swiper-button-prev:after, .main_vis .swiper-button-next:after { font-family: 'xeicon' !important; font-size: 24px; }
.main_vis .swiper-button-prev:after { content: "\e93c"; /* < */ }
.main_vis .swiper-button-next:after { content: "\e93f"; /* > */ }

/* ===========================
   Pause / Play 버튼
=========================== */
.swiper-button-pause { position: relative; text-align: center; width: 24px; height: 24px; color: rgba(255,255,255,0.9); line-height: 24px; cursor: pointer; }
.swiper-button-pause:after { font-family: 'xeicon' !important; font-size: 22px; content: "\ea3b"; /* ❚❚ 일시정지 */ }
.swiper-button-pause.playing:after { content: "\ea3e"; /* ▶ 재생 */ }

/* ===========================
   Swiper 기본 Fraction 숨김
=========================== */
.main_vis .swiper-pagination { display: none !important; }

.main_text { position: absolute; top: 0px; left: 0px; z-index: 8; display: flex; flex-wrap: wrap; align-items: center; width: 100%; height: 100%; color: #fff; }
.main_text .wrap {display: flex;flex-direction: column;flex-wrap: wrap;justify-content: center;text-align: center;align-items: flex-start;}
.main_text h2 { margin-bottom: 80px; animation: fadein 1s ease-in-out;}
.main_text p { line-height: 1.6; animation: fadein 1s ease-in-out; }

@keyframes zoomOut1 {
    0% { background-size: 120% 120%; }
    100% { background-size: 100% 100%; }
}

@keyframes fadein{
	0% { opacity: 0; transform: translateY(100px); }
	100% { opacity: 1; transform: none; }
}

.swiper { width: 100%; height: 100%; }
.swiper-slide { display: flex; justify-content: center; align-items: center; }
.swiper-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }

.main_con { padding: 100px 0; }
.main_con h2 { text-align: center; margin-bottom: 50px; color: #222; font-size: 42px; font-weight: 800; }

.main_con01_inr { text-align: center; }
.main_con01_inr01 { margin-bottom: 80px; }
.main_con01_inr h3 { display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; width: 130px; height: 35px; background: #222; border-radius: 5px; color: #fff; font-size: 20px; font-weight: 600; }
.main_con01_list { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-end; gap: 0 80px; margin-top: 30px; }
.main_con01_list li img { max-width: 100%; }

/* sub */
.sub_vis { overflow: hidden; position: relative; display: flex; flex-wrap: wrap; align-items: center; width: 100%; height: 700px; background: #000; background-size: cover; color: #fff; }
.sub_vis .bg { position: relative; width: 100%; height: 100%; background: #000; animation: zoomOut 5s ease-out forwards;}

.sub_vis .bg01 { background: #000 url('../image/sub/sub_vis01.jpg') center top no-repeat; background-size: cover; }
.sub_vis .bg02 { background: #000 url('../image/sub/sub_vis02.jpg') center top no-repeat; background-size: cover; }
.sub_vis .bg03 { background: #000 url('../image/sub/sub_vis03.jpg') center top no-repeat; background-size: cover; }
.sub_vis .bg04 { background: #000 url('../image/sub/sub_vis04.jpg') center top no-repeat; background-size: cover; }

.sub_vis .sub_textbox { position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding-top: 100px; text-align: center; color: #fff; animation: fadein 1s ease-in-out; }
.sub_vis .sub_textbox .wrap { position: relative; display: flex; flex-wrap: wrap; align-content: center; justify-content: center; align-items: center; text-align: center; height: 100%; }
.sub_vis .sub_textbox h2 { font-size: 72px; line-height: 1; font-weight: 800; animation: fadein 1s ease-in-out; }
.sub_vis .sub_textbox h2 span { display: block; margin-bottom: 20px; color: rgba(255, 255, 255, 0.8); font-size: 16px; font-weight: 600; letter-spacing: 0.05em; }
.sub_vis .sub_textbox p { display: block; width: 100%; margin-top: 30px; color: rgba(255, 255, 255, 1); font-size: 24px; font-weight: 200; line-height: 1.5; animation: fadein 1s ease-in-out; }

@keyframes zoomOut {
	0% { transform: scale(1.2); }
	100% { transform: scale(1); /* 원래 크기로 */ }
}

.sub_contents { position: relative; font-size: 1.15em; }

.board_wrap { padding: 150px 0; }

.page_inr { padding: 150px 0; }

.page_title { position: relative; width: 100%; margin-bottom: 80px; }
.page_title h2 { font-size: 3.3em; font-weight: 900; line-height: 1; text-transform: uppercase; }

.overview_inr01 .page_title h2 { color: #184290; }

.overview_inr01 .wrap { display: flex; flex-wrap: wrap; }
.overview_inr01 .page_title { padding-bottom: 30px; border-bottom: 2px solid #184290; }
.overview_img { width: 650px; }
.overview_img img { max-width: 100%; box-shadow: 0 0px 30px rgba(0, 0, 0, 0.1); }
.overview_text { display: flex; flex-wrap: wrap; align-items: center; align-content: center; width: calc(100% - 650px); padding-left: 120px; }
.overview_logo { margin-bottom: 80px; }
.overview_logo img { max-width: 100%; }
.overview_textlist { width: 100%; }
.overview_textlist li { display: flex; flex-wrap: wrap; margin-bottom: 30px; }
.overview_textlist li:last-child { margin-bottom: 0px; }
.overview_textlist li strong { width: 200px; margin-bottom: 10px; font-size: 1.4em; }
.overview_textlist li p { width: calc(100% - 200px); font-size: 1.2em; }

.overview_inr02 { background: #000 url('../image/sub/sub_vis04.jpg') center top no-repeat; background-size: cover; color: #fff; }
.overview_inr02 .page_title { text-align: center; padding-bottom: 170px; margin-bottom: 50px; }
.overview_inr02 .page_title:after { content:''; position: absolute; left: 50%; bottom: 10px; width: 1px; height: 120px; background: #fff; opacity: 0.4; }
.overview_inr02 .page_title:before { content:''; position: absolute; left: calc(50% - 5px); bottom: 0px; width: 10px; height: 10px; background: #fff; border-radius: 10px; z-index: 9; opacity: 0.4; }
.sloganbox { display: flex; flex-wrap: wrap; justify-content: space-between; }
.slogan { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; text-align: center; width: 100%; margin-bottom: 80px; }
.slogan h4 { position: relative; padding: 20px 100px 0px; font-size: 58px; font-weight: 800; }
.slogan h4:after, .slogan h4:before { position: absolute; top: -20px; color: rgba(255, 255, 255, 0.2); font-size: 145px; }
.slogan h4:after { content:' “ '; left: 0px; }
.slogan h4:before { content:' ” '; right: 0px; }
.slogan_text { text-align: center; width: 100%; font-size: 1.5em; line-height: 1.8; word-break: keep-all; opacity: 1; letter-spacing: 0.05em; }

.partner .page_title { text-align: center; }
.partner_inr02 { background: #f3f7f8; }
.partner_imglist { display: flex; flex-wrap: wrap; justify-content: center; gap: 50px 1.333%;}
.partner_imglist.wh05 { gap: 50px 1.25%;}
.partner_imglist li { width: 24%; }
.partner_imglist.wh05 li { width: 19%; }
.partner_imglist li .logo_img { text-align: center; margin-bottom: 30px; padding: 15px 0; background: #fff; border: 1px solid #ddd; }
.partner_imglist li .logo_img img { max-width: 100%; }
.partner_imglist li .logo_title { text-align: center; font-size: 1.1em; font-weight: 600; letter-spacing: 0.03em; }

.lineup_list01 { display: flex; flex-wrap: wrap; gap: 50px 1.25%;}
.lineup_list01 li { text-align: center; width: 19%; }
.lineup_list01 li .lineup_imgbox { overflow: hidden; background: #eee; border-radius: 10px; margin-bottom: 30px; }
.lineup_list01 li .lineup_imgbox img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lineup_list01 li .lineup_textbox span { display: block; line-height: 1;}
.lineup_list01 li .lineup_textbox span.cate { display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; width: 100px; height: 31px; margin-bottom: 10px; background: #222; border-radius: 3px; color: #fff; font-size: 17px; }
.lineup_list01 li .lineup_textbox span.name { font-size: 1.1em; font-weight: 700; }
