/* =============================================
   style_resp.css — 반응형 스타일시트
   Breakpoints:
     - 1440px 이하 : 대형 데스크탑 조정
     - 1280px 이하 : 일반 데스크탑
     - 1024px 이하 : 태블릿 가로
     - 768px  이하 : 태블릿 세로 / 모바일 가로
     - 480px  이하 : 모바일 세로
============================================= */

/* ───────── 1440px 이하 ───────── */
@media (max-width: 1440px) {
	.wrap { width: 100%; padding: 0 40px; box-sizing: border-box; }

	/* 헤더 */
	#header .hd-menu .gnb-wrap .gnb > li { padding: 0 25px; }
	#header .hd-menu .gnb-wrap .gnb > li > a { font-size: 18px; }

	/* 메인 비주얼 */
	.main_iconlist { gap: 20px; }

	/* 서브 비주얼 */
	.sub_vis_right .main_iconlist li img { width: 90px; }

	/* 다이어그램 */
	.seon-box-left,
	.seon-box-right { padding: 40px 60px 40px 40px; }
	.seon-box-center { width: 260px; height: 260px; margin: 0 -50px; }
	.seon-box-center h3 { font-size: 30px; }

	/* 버블 */
	.bubble-center { width: 210px; height: 210px; font-size: 24px; }
	.bubble-sub { width: 210px; height: 210px; }
	.bubble-sub h4 { font-size: 24px; }
	.bubble-lines { gap: 160px; }
	.bubble-lines::after { width: 380px; left: calc(50% - 190px); }
}

/* ───────── 1280px 이하 ───────── */
@media (max-width: 1280px) {
	.wrap { padding: 0 30px; }

	/* 헤더 */
	#header .hd-menu .gnb-wrap .gnb > li { padding: 0 18px; }
	#header .hd-menu .gnb-wrap .gnb > li > a { font-size: 16px; }
	.logo img { max-height: 40px; }

	/* SNS 버튼 */
	.head_rightbox { top: 25px; gap: 8px; }
	.sns_btn { width: 38px; height: 38px; }
	.sns_btn i { font-size: 18px; }

	/* 메인 비주얼 */
	.main_vis { height: auto; min-height: 700px; padding: 80px 0; }
	.main_left { width: 45%; }
	.main_right { width: 55%; padding-left: 40px; gap: 20px; }
	.main_iconlist { gap: 16px; }

	/* 서브 비주얼 */
	.sub_vis { height: auto; min-height: 400px; padding: 60px 0; }
	.sub_vis_left { width: 45%; }
	.sub_vis_right { width: 55%; padding-left: 40px; }
	.sub_vis_right .main_iconlist li img { width: 80px; }

	/* 사이드바 */
	.sidebar_inr li a { font-size: 17px; min-width: 160px; }

	/* 서브 컨텐츠 */
	.sub_title h2 { font-size: 40px; }
	.sub_title h2 span { font-size: 20px; }

	/* 메인 con01 */
	.dday-counter { gap: clamp(12px, 4vw, 20px); }
	.dday-number { width: clamp(68px, 14vw, 100px); height: clamp(72px, 15vw, 100px); }
	.dday-number span { font-size: clamp(32px, 7vw, 42px); }

	.main_con01 .imgbox { width: 460px; }
	.main_con01 .textbox { width: calc(100% - 460px); padding-left: 60px; }

	/* 다이어그램 */
	.seon-box h3 { font-size: 26px; }
	.seon-box-left,
	.seon-box-right { padding: 36px 50px 36px 36px; min-height: 260px; }
	.seon-box-center { width: 230px; height: 230px; margin: 0 -45px; }
	.seon-box-center h3 { font-size: 26px; }

	/* about02 */
	.about02_textbox02 .about02_text { padding: 40px 30px; }
	.about02_textbox02 .about02_text h3 { font-size: 26px; }

	/* 프로그램 박스 */
	.program_item { width: calc(50% - 10px); }
}

/* ───────── 1024px 이하 (태블릿 가로) ───────── */
@media (max-width: 1024px) {
	.wrap { padding: 0 24px; }

	/* 헤더 */
	#header { height: 70px; }
	#header .hd-menu { display: none; }
	.menu-toggler { display: flex; }
	.mobile_menu { display: block; }
	.logo { top: 15px; }
	.head_rightbox { top: 15px; right: 60px; }

	nav.mobile_menu { position: fixed; top: -100vh; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; width: 100%; height: 100vh; z-index: 9001; background: rgba(0, 0, 0, 0.9); border-bottom-right-radius: 100%; border-bottom-left-radius: 100%; transition: all 650ms cubic-bezier(1,0,0,1); }
	nav.mobile_menu.open { top: 0; padding: 80px 0px; border-radius: initial; }

	.nav-inner { display: flex; width: 100%; flex-wrap: wrap; justify-content: space-between; align-items: center; }
	.nav-list { display: flex; justify-content: center; align-items: flex-start; flex-direction: column; width: 100%; height: 100%; }
	.nav-list li { margin-bottom: 30px; width: 100%; text-align: center; }
	.nav-list li:last-child { margin-bottom: 0px; }
	.nav-list li a { position: relative; color: #fff; font-size: 1.3em; font-weight: 400; }

	.nav-link { padding: 1rem; font-size: 2rem; }
	.nav-link:hover, .nav-link:focus { color: #fff; }

	.menu-toggler { position: fixed; top: 25px; right: 2%; width: 30px; height: 19px; display: flex; flex-direction: column; justify-content: space-between; z-index: 9999; transition: all 650ms ease-out; cursor: pointer; }
	.menu-toggler.open { transform: rotate(-45deg); }

	.bar { background-color: #222; width: 100%; height: 2px; border-radius: 0.8rem; }
	.open .bar { background-color: #fff; }

	.bar.half { width: 50%; }
	.bar.top { transform-origin: right; transition: transform 650ms cubic-bezier(0.54, -0.81, 0.57, 0.57); }
	.open .bar.top { transform: rotate(-450deg) translateX(0.45rem); }
	.bar.bottom { align-self: flex-end; transform-origin: left; transition: transform 650ms cubic-bezier(0.54, -0.81, 0.57, 0.57); }
	.open .bar.bottom { transform: rotate(-450deg) translateX(-0.45rem); }

	.nav-inner ul ul { display: none; margin-top: 10px; }
	.nav-inner ul ul li { margin-bottom:0px; }
	.nav-inner ul ul li a { display: inline-block; padding: 0px; color: rgba(255, 255, 255, 0.7); font-size: 1.1em; font-weight: 300; line-height: 1.8; text-decoration: none; -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -o-transition: all 0.5s; -ms-transition: all 0.5s; transition: all 0.5s; }
	.nav-inner ul ul li a:hover { color: rgba(255, 255, 255, 1); }
	.nav-inner ul ul li a:before { display: none; height: 1px; }

	/* 메인 비주얼 */
	.main_vis { margin-top: 70px; padding: 60px 0; min-height: 600px; }
	.main_left { display: flex; flex-direction: column; flex-wrap: wrap; align-content: center; width: 100%; margin-bottom: 40px; }
	.main_title { text-align: center; margin-bottom: 30px; }
	.main_right { width: 100%; padding-left: 0; justify-content: center; }
	.main_iconlist { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; gap: 14px; }
	.main_textdeco { display: none; }

	/* 서브 비주얼 */
	.sub_vis { margin-top: 70px; padding: 50px 0; min-height: auto; }
	.sub_vis .wrap { flex-direction: column; }
	.sub_vis_left { display: flex; flex-direction: column; flex-wrap: wrap; align-content: center; width: 100%; margin-bottom: 30px; }
	.sub_vis_right { flex-direction: column; width: 100%; padding-left: 0; }
	.sub_vis_right .main_iconlist li img { width: 100%; }

	/* 사이드바 */
	.sidebar { bottom: -45px; }
	.sidebar_inr { padding: 15px 20px; border-radius: 15px; }
	.sidebar_inr li { height: 50px; }
	.sidebar_inr li a { font-size: 15px; min-width: 130px; }

	/* 서브 컨텐츠 */
	.sub_contents { padding: 120px 0 0; }
	.board_contents { padding: 120px 0; }
	.sub_page_inr { padding: 100px 0; }
	.sub_page_inr_first { padding-top: 0px; }
	.sub_title h2 { font-size: 34px; }
	.sub_title h2 span { font-size: 18px; }
	.sub_title { margin-bottom: 50px; }

	/* 메인 con01 */
	.main_con { padding: 70px 0; }

	.main_day .wrap { justify-content: center; }
	.main_day_text { text-align: center; margin-bottom: 20px; }

	.main_con01 .wrap { flex-direction: column; }
	.main_con01 .imgbox { width: 100%; max-width: 500px; margin: 0 auto 40px; }
	.main_con01 .textbox { width: 100%; padding-left: 0; }

	/* 다이어그램 */
	.seon-diagram { flex-direction: column; gap: 0; }
	.seon-box-left {
		clip-path: none;
		border-radius: 20px;
		padding: 40px 40px 60px;
		min-width: 100%;
		min-height: auto;
		align-items: center;
	}

	.seon-box h3 { width: 100%; text-align: center; }

	.seon-box-center {
		width: 200px;
		height: 200px;
		border-radius: 50%;
		margin: -30px auto;
		z-index: 2;
	}
	.seon-box-center h3 { font-size: 24px; }
	.seon-box-right {
		clip-path: none;
		border-radius: 20px;
		padding: 60px 40px 40px;
		min-width: 100%;
		min-height: auto;
		align-items: center;
	}
	.seon-box-right ul { text-align: left; }

	/* 버블 다이어그램 */
	.bubble-center { width: 180px; height: 180px; font-size: 20px; }
	.bubble-sub { width: 180px; height: 180px; padding: 10px; }
	.bubble-sub h4 { font-size: 20px; }
	.bubble-lines { gap: 100px; }
	.bubble-lines::after { width: 240px; left: calc(50% - 120px); }

	/* about02 */
	.about02_textbox { font-size: 1.05em; }
	.about02_textbox02 { flex-direction: column; }
	.about02_textbox02 .about02_text { padding: 40px; }

	/* 탭 */
	.tabs li a { width: 180px; height: 60px; font-size: 0.95em; }

	/* 프로그램 박스 */
	.programbox { gap: 16px; }
	.program_item { width: calc(50% - 8px); }
	.program_item h4 { font-size: 20px; height: 80px; }

	/* 경쟁 테이블 */
	.competition_table01 th,
	.competition_table01 td { padding: 14px 10px; font-size: 0.9em; }

	/* 푸터 */
	.footer { text-align: center; }
	.footer .wrap { flex-direction: column; gap: 30px; }
	.footer_inr01, .footer_inr02, .footer_inr03 { width: 100%; }
	.footer_inr03 { text-align: center; }
	.footer_inr02 ul { display: flex; flex-direction: row; justify-content: center; }
	.ft_snslist { justify-content: center; }
}

/* ───────── 768px 이하 (태블릿 세로 / 모바일 가로) ───────── */
@media (max-width: 768px) {
	.wrap { padding: 0 16px; }

	/* 헤더 */
	#header { height: 60px; }
	.logo { top: 12px; }
	.logo img { max-height: 38px; }
	.head_rightbox { top: 12px; right: 55px; gap: 6px; }
	.sns_btn { width: 34px; height: 34px; }
	.sns_btn i { font-size: 16px; }
	.sns_btn img { width: 16px; }

    .menu-toggler { top: 20px; }

	/* 메인 비주얼 */
	.main_vis { margin-top: 60px; padding: 50px 0; }
	.main_iconlist { grid-template-columns: repeat(5, 1fr); gap: 10px; }
	.main_iconlist li img { width: 100%; }
	.main_schedule ul { gap: 12px; }

	/* 서브 비주얼 */
	.sub_vis { margin-top: 60px; padding: 40px 0 80px; }
	.sub_vis_left { align-items: center; text-align: center; }
	.sub_vis_title img { max-width: 80%; }
	.sub_vis_left .main_schedule { width: 80%; }
	.sub_vis_right .main_iconlist { grid-template-columns: repeat(5, 1fr); width: 80%; }

	/* 사이드바 */
	.sidebar { bottom: -30px; }
	.sidebar_inr { flex-wrap: wrap; width: 100%; padding: 10px; border-radius: 5px; }
	.sidebar_inr li { height: 46px; flex: none; width: 50%; }
	.sidebar_inr li a { min-width: unset; width: 100%; }
	.sidebar_inr.sidebar_wh04 li { width: 25%; }
	.sidebar_inr.sidebar_wh04 li:first-child { border-top: none; }

	/* 서브 컨텐츠 */
	.sub_contents { padding: 50px 0 0; }
	.board_contents { padding: 50px 0; }
	.sub_page_inr { padding: 60px 0; }
	.sub_page_inr_first { padding-top: 0px; }
	.sub_title { margin-bottom: 40px; }
	.sub_title h2 { font-size: 28px; }
	.sub_title h2 span { font-size: 16px; margin-bottom: 12px; }

	/* 메인 con01 */
	.main_con { padding: 50px 0; }
	.main_con01 .imgbox { text-align: center; max-width: 100%; }
	.main_con01 .imgbox:before, .main_con01 .imgbox:after { display: none; }
	.main_con01 .imgbox img { border-radius: 10px; }
	.main_con01 .textbox { font-size: 1em; }
	.main_con01 .sign { margin-top: 40px; }

	/* 다이어그램 */
	.seon-box h3 { font-size: 22px; margin-bottom: 20px; }
	.seon-box h3 span { font-size: 14px; }
	.seon-box ul li { font-size: 0.9em; }
	.seon-box-left { padding: 30px 30px 50px; }
	.seon-box-right { padding: 50px 30px 30px; }
	.seon-box-center { width: 170px; height: 170px; }
	.seon-box-center h3 { font-size: 22px; }
	.seon-box-center p { font-size: 0.8em; line-height: 1.4; }

	/* 버블 다이어그램 */
	.bubble-diagram { margin-bottom: 50px; }
	.bubble-center { font-size: 18px; }
	.bubble-lines { gap: 60px; }
	.bubble-lines::after {  }
	.bubble-sub {  }
	.bubble-sub h4 { font-size: 17px; }
	.bubble-sub-label { font-size: 0.8em; margin-top: 10px; }

	/* about02 */
	.about02_textbox { font-size: 1em; margin-bottom: 50px; }
	.about02_textbox02 .about02_text { padding: 30px 24px; }
	.about02_textbox02 .about02_text h3 { font-size: 22px; }

	/* 탭 */
	.tabs { border-radius: 12px; padding: 6px; }
	.tabs li { width: 50%; }
	.tabs li a { width: 100%; height: 52px; font-size: 0.9em; border-radius: 10px; }

	/* 프로그램 박스 */
	.program_item { width: 100%; }
	.program_item h4 { height: 70px; }
	.program_item h4 span { font-size: 14px; }
	.program_itemlist li { padding: 20px; }
	.program_itemlist li h5 { font-size: 17px; }

	/* 경쟁 일정 */
	.competition h3 { font-size: 22px; margin-bottom: 30px; }
	.competition_schedule01 li .time { width: 35%; font-size: 0.9em; }
	.competition_schedule01 li .subject { width: 45%; font-size: 0.9em; }
	.competition_schedule01 li .place { width: 20%; font-size: 0.85em; }

	/* 경쟁 테이블 */
	.competition_table01 { font-size: 0.85em; }
	.competition_table01 th,
	.competition_table01 td { padding: 10px 6px; }

	/* 푸터 */
	.footer { padding: 40px 0; font-size: 0.85em; }
	.footer_inr01 a img { height: 45px; }
	.footer_inr02 h4 { font-size: 17px; margin-bottom: 14px; }
	.ft_snslist li a { width: 38px; height: 38px; }
	.ft_snslist li a i { font-size: 20px; }
}

/* ───────── 480px 이하 (모바일 세로) ───────── */
@media (max-width: 480px) {
	
	body { font-size: 15px; }

	.wrap { padding: 0 14px; }

	/* 헤더 */
	.logo img { max-height: 32px; }
	.head_rightbox { gap: 4px; }
	.sns_btn i { font-size: 14px; }

	/* 메인 비주얼 */
	.main_vis { padding: 40px 0; }
	.main_iconlist { grid-template-columns: repeat(5, 1fr); gap: 8px; }
	.main_right { gap: 14px; }
	
	/* 메인 con01 */
	.main_day_text h3 { margin-bottom: 5px; font-size: 30px; }
	.main_day_text p { font-size: 1.1em; }


	/* 서브 비주얼 */
	.sub_vis_right { gap: 10px; }
	.sub_vis_right .main_iconlist { gap: 10px; }

	/* 서브 타이틀 */
	.sub_title h2 span { font-size: 14px; }

	/* 다이어그램 */
	.seon-box h3 { font-size: 18px; }
	.seon-box-center { width: 150px; height: 150px; }
	.seon-box-center h3 { font-size: 18px; }

	/* 버블 */
	.bubble-center { width: 130px; height: 130px; }
	.bubble-lines { gap: 40px; }
	.bubble-lines::after { width: 170px; left: calc(50% - 85px); }
	.bubble-sub { width: 130px; height: 130px; }
	.bubble-sub h4 {  }
	.bubble-sub-label {  }

	/* about02 */
	.about02_textbox02 .about02_text { padding: 24px 16px; }
	.about02_textbox02 .about02_text h3 { font-size: 20px; }

	/* 탭 */
	.tabs { margin-bottom: 30px; }
	.tabs li a { height: 48px; font-size: 0.88em; }

	/* 경쟁 일정 */
	.competition_schedule01 li { height: 60px; min-height: 60px; }
	.competition_schedule01 li > div { height: 60px; padding: 6px; }
	.competition_schedule01 li .time { font-size: 0.82em; }
	.competition_schedule01 li .subject { width: 40%; font-size: 0.82em; }
	.competition_schedule01 li .place { width: 25%; font-size: 0.78em; }
	
	.competition h3 { gap: 10px; font-size: 20px; }
	.competition h3 .sub_stitle_icon img { height: 40px; }

	/* 테이블 가로 스크롤 */
	.competition_table01 { display: block; overflow-x: auto; white-space: nowrap; }

	/* 프로그램 */
	.festival_textbox { margin-bottom: 50px; font-size: 1em; }

	
	
	.program_item { gap: 10px; }
	.program_itemlist li { padding: 16px; }
	.program_itemlist li h5 {  }
	.program_itemlist li p { font-size: 0.9em; }

	/* 푸터 */
	.footer { padding: 30px 0; font-size: 0.8em; }
	.ft_snslist li a { width: 34px; height: 34px; }
	.ft_snslist li a i { font-size: 18px; }
	.ft_snslist li a img { width: 16px; }
}

/* ───────── 375px 이하 (모바일 세로) ───────── */
@media (max-width: 375px) {
	
	/* 서브 비주얼 */
    .sub_vis { padding: 40px 0 60px; }

}