/* 공용 box-sizing 설정 */
*, *::before, *::after {box-sizing: border-box;}
ol, ul {list-style: none;}
a {text-decoration: none !important; color: inherit;}
img {border: 0; vertical-align: middle;}
body {font-family: "Pretendard", "Pretendard GOV", -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important; padding: 0; margin: 0;}

/* 상단바*/
.top_bar {background: #fff; height: 110px; display: flex; justify-content: center; 
 align-items: center; position: relative; z-index: 1000;}
.top_bar .top_wrap {width: 1400px; display: flex; justify-content: space-between;
  align-items: center; padding: 0 10px; height: 100%; margin: 0 auto; max-width: 100%;}
.top_bar .site_name {position: absolute; left: 50%; transform: translateX(-50%);}
.top_bar .site_name a{font-size: 34px; font-weight: bold; letter-spacing:-2px; color: #000;}
.top_bar .search_box {display: flex; align-items: center; gap: 40px; }
.top_bar .search_form {display: flex; align-items: center; background: #f0f0f0;  border-radius: 25px; padding: 0 20px; height: 50px; box-sizing: border-box;}
.top_bar .search_form input {flex: 1;  border: none; background: transparent; font-size: 16px;
  outline: none; height: 100%; color: #888; border-radius: 25px 0 0 25px;}
.top_bar .search_form button {background: transparent; border: none; padding: 0; cursor: pointer;}
.top_bar .search_form button img {width: 20px; height: 20px;}
.top_bar .search_box .btn {font-size: 24px; background: none; border: none; cursor: pointer; padding: 0;}
.top_bar .m_btn {display: none;}
/* 상단바_end*/

/*모바일메뉴*/
.m_menu {position: fixed; top: 0; left: 0; width: 100%; height: 100vh; z-index: 1000; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out; padding: 0;}
.m_menu.active {left: 0;}
.m_menu .sub_menu, 
.m_menu .sub_menu_inner {height: 0; overflow: hidden; transition: height 0.3s ease, padding 0.3s ease; padding-top: 0; padding-bottom: 0;}
.m_menu .sub_menu.active, 
.m_menu .sub_menu_inner.active {padding-top: 10px; padding-bottom: 10px;}

/* 서브메뉴 숨김 */
.sub_menu,
.sub_menu_inner {
  list-style: none;
  padding-left: 15px;
}
/* 아코디언 화살표 표시 */
.m_menu li > a::after {
  font-size: 12px;
  margin-left: 5px;
  transition: transform 0.2s;
}
/* 메뉴 열리면 화살표 회전 */
.m_menu li.open > a::after {
  transform: rotate(-180deg);
}
/* 서브 메뉴 열기 */
.m_menu li.open > .sub_menu {
  display: block;
}

.m_menu li.open > .sub_menu_inner {
  display: block;
}





/* gnb */
.gnb{background: #fff; position:relative; height:62px;  z-index:10; border-top:1px solid #e8e8e8; border-bottom:1px solid #ececec;}
.gnb_wrap{width:1400px; margin:0 auto; max-width: 100%;}
.gnb_wrap>ul{overflow:hidden; width:100%; margin:0 auto; display: flex; align-items: center; justify-content: center; padding: 0;}
.gnb_wrap>ul>li{width:25%; text-align:center; margin-right:0px; /*padding:5px 0 10px;*/ padding:0px; line-height:62px;}

.gnb_wrap>ul>li>a{font-size:23px; font-weight:500; color:#000; letter-spacing:-1px; position:relative; height: 100%; display: inline-block;}

.gnb_wrap>ul>li>a.active{text-decoration:none; display:inline-block; color:#4f59ae; position:relative;}

.gnb_wrap > ul > li > a::after { content: ''; position: absolute;
  left: 0; bottom: 0; height: 2px; width: 0; background-color: #4f59ae; transition: width 0.3s ease; }
.gnb_wrap > ul > li > a:hover::after,
.gnb_wrap > ul > li > a.active::after {
  width: 100%; 
}
.gnb_wrap ul li div.gnb_sub{display:none; position:absolute; top:100%; left:0; width:100%; 
background:#fff; z-index:10;}
.gnb_wrap ul li div.gnb_sub.active{display:block; position:absolute; top:70px; left:0; width:100%; 
background: #fff; z-index:9999; border-top:1px solid #ececec; border-bottom:1px solid #ececec; padding:40px 0 60px;}
/*20250617*/
.gnb_wrap ul li div.gs_wrap{width:1400px; margin:0 auto; display:flex; justify-content:space-between; 
background: #fff url(../images/main/menu_bg.png) no-repeat left 20px top 0; padding: 40px 0;}
.gnb_wrap ul li div.gs_wrap:after{display:block; content:""; clear:both; text-align:left;}
.gnb_wrap ul li div.gs_wrap h3{width:395px; color:#000; font-size:40px; font-weight:bold; line-height:1em; padding-top:25px; text-align:left; letter-spacing: -2px; margin: 0;}
.gnb_wrap ul li div.gs_wrap ul{display:flex !important; flex-wrap:wrap; gap:20px; padding:0 !important; justify-content: left; width: calc(100% - 395px);}
.gnb_wrap ul li div.gs_wrap ul li{margin:0; }
.gnb_wrap ul li div.gs_wrap ul li.lst{border:none;}
.gnb_wrap ul li div.gs_wrap ul li.depth_n{border-bottom:none; width: 236px;}
.gnb_wrap ul li div.gs_wrap ul li a{font-size:16px; text-align:center; letter-spacing:-1px; display: block; color:#000; border-radius:10px; background:#f3f5f7; font-weight: bold; display: flex; align-items: center; justify-content: center; width: 100%;  height: 50px;}
.gnb_wrap ul li div.gs_wrap ul li a.active {text-decoration:none;}
.gnb_wrap ul li div.gs_wrap ul li ul.list{float:left; margin-bottom:15px;  margin-left:20px; 
padding:10px 0 0 20px; /*padding-top:10px;*/ display:flex; flex-direction:column; border:0px solid #000; padding-top:15px !important; gap: 0 !important; width: 100%;}

.gnb_wrap ul li div.gs_wrap ul li ul.list li{margin-right:0; border-bottom:none; /*padding:0px;*/ position:relative; margin-bottom: 15px;}
.gnb_wrap ul li div.gs_wrap ul li ul.list li:before{min-width:4px; height:4px; background:#aaa; content:''; display:block; position:absolute; top:6px; left:0; border-radius: 50%;}
.gnb_wrap ul li div.gs_wrap>ul>li>ul>li>a{text-align:left; line-height:1em;  letter-spacing:-1px; color:#444; border:none; width:100%; justify-content: flex-start; height: auto;
background:none; padding-left:12px;  text-decoration:none; font-weight: 500;}

.gnb_wrap ul li div.gs_wrap ul li ul.w177p { width:177px; margin-bottom:0px;}
.gnb_wrap ul li div.gs_wrap ul li ul li.halfli a { width:60px !important; }

.gnb_wrap ul li div.gs_wrap ul li ul li a:hover,
.gnb_wrap ul li div.gs_wrap ul li ul li a:focus  { border:none;}
.gnb_wrap ul li div.gnb_sub div ul:first-child{position:relative; display:none; z-index:10;}


/*전체메뉴*/
.all_menu {display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: #fff; overflow-y: auto; z-index: 2000;}
.all_menu.active {display: block;}
.all_menu .close_btn {background: url(/img/close.png) no-repeat center right; border: 0;
  font-size: 24px; width: 66px; font-weight: bold; line-height: 1em; padding: 0; text-align: left;}
.all_menu .top_con{display: flex; align-items: center; justify-content: space-between;
width: 100%; height: 110px;}
.all_menu .top_con .logo{min-width: 269px; height: 44px; }
.all_menu .top_con .logo img{width: 100%;}
.all_menu .top_con .menu_tit{margin: 0; padding: 0; font-size: 34px; font-weight: bold;
color: #000; letter-spacing: -1px;}
.all_menu .mobile_gnb{margin-top: 70px;}
.all_menu .mobile_gnb .section{display: flex; border-bottom: 1px solid #cccccc; padding-left: 0; padding: 40px 0;}
.all_menu .mobile_gnb .section .items{display: flex; padding: 0; width: 100%; flex-wrap: wrap;
margin: 0;}
.all_menu .mobile_gnb .section .items li{width: calc(100% / 5); line-height: 1em; }
.all_menu .mobile_gnb .section .items li a{font-size: 20px; font-weight: 500; color: #424241;
line-height: 1em; padding: 10px; display: block;}
.all_menu .mobile_gnb .section .items li ul{padding: 0;}
.all_menu .mobile_gnb .section .items li ul li{width: 100%;}
.all_menu .mobile_gnb .section .items li ul li a{font-size: 17px; color: #939393;}
.all_menu .mobile_gnb h3{min-width: 207px; margin: 0 20px 0 0; padding-top: 10px;}
.all_menu .mobile_gnb h3 a{color: #000; font-size: 24px; line-height: 1em; font-weight: bold;
letter-spacing: -1px;}
/*전체메뉴_end*/






@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
      max-width: 1400px !important;
  }
  


}
@media (max-width: 1050px) {
  .gnb, .site_name{display: none;}
  .top_bar .pc_btn { display: none; } 
  .top_bar .m_btn { display: block; }
}


@media (max-width: 768px) {
    header {
        justify-content: space-between;
    }
}