@charset "UTF-8";

/* ==========================================================================
   1. Header Layout & Common (헤더 레이아웃 및 공통)
   ========================================================================== */
.header { position: absolute; top: 0; left: 0; width: 100%; z-index: 9999; }
.header .header_inner { display: flex; position: relative; width: 100%; height: 100%; padding: 0 3%; z-index: 20; }
.header .logo {display: flex; position: relative; margin-top:30px; z-index: 20; }
.header .logo a{display:inline-block;}
.header .logo img{width:170px; max-width:100%;}

/* ==========================================================================
   2. Utility & Login (유틸리티 및 로그인)
   ========================================================================== */
.header .utility { margin-top: 20px; }
.header .login { display: flex; align-items: center; }
.header .login > ul { display: flex; gap: 0; height: 100%; }
.header .login > ul > li { display: flex; align-items: center; height: 100%; }
.header .login > ul > li > a { display: flex; align-items: center; height: 100%; color: #fff; font-weight: 400; opacity: 0.9; transition: opacity 0.3s; }
.header .login > ul > li > a:hover { opacity: 1; text-shadow: 0 0 0.5px currentColor; }
.header.nav_hover .login > ul > li > a { color: #222; }
/* 구분선 및 아이콘 */
.header .login > ul > li + li::before { content: '•'; display: inline-block; color: rgba(255, 255, 255, 0.4); margin: 0 10px; font-size: 10px; }
.header.nav_hover .login > ul > li + li::before { color: rgba(0, 0, 0, 0.2); }
.header .login li img { display: block; max-width: 100%; width: 28px; }

/* ==========================================================================
   3. MyPage Dropdown (마이페이지 드롭다운)
   ========================================================================== */
.header .login .mypage_li { position: relative; }
.header .login .mypage_btn { position: relative; padding-right: 18px; cursor: pointer; }
.header .login .mypage_btn::after { content: ''; position: absolute; right: 0; top: 50%; margin-top: -4px; width: 6px; height: 6px; border-top: 1.5px solid #fff; border-right: 1.5px solid #fff; transform: rotate(135deg); transition: transform 0.3s ease, border-color 0.3s; }
.header.nav_hover .login .mypage_btn::after { border-color: #222; }
.header .login .mypage_li.active .mypage_btn::after { transform: rotate(-45deg); margin-top: -1px; }
/* 드롭다운 메뉴 박스 */
.header .login .mypage_li ul { position: absolute; left: 50%; top: 50px; opacity: 0; visibility: hidden; display: block; min-width: 120px; height: auto; padding: 10px 0; background: #fff; border-radius: 8px; box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.15); transform: translateX(-50%); transition: all 0.3s ease; overflow: hidden; z-index: 40; }
.header .login .mypage_li ul li { display: block; height: auto; padding: 0; }
.header .login .mypage_li ul li::before { display: none; }
.header .login .mypage_li ul li a { display: block; width: 100%; padding: 8px 15px; color: #111; font-weight: 400; text-align: center; }
.header .login .mypage_li ul li a:hover { background: #f9f9f9; color: #fd750b; text-shadow: 0 0 0.5px currentColor; }
.header .login .mypage_li.active ul { top: 35px; opacity: 1; visibility: visible; }

/* ==========================================================================
   4. GNB (메인 네비게이션)
   ========================================================================== */
.header .nav { position: relative; display: flex; flex-wrap: wrap; justify-content: flex-end; width: 100%; z-index: 20; }
.header .nav_wrap { display: flex; justify-content: flex-end; width: 100%; }
.header .gnb_list { position: relative; display: flex; transform: translateX(25px); }
.header .gnb_list > li { min-width: 110px; text-align: center; }
.header .gnb_list > li > a { display: flex; align-items: center; justify-content: center; width: 100%; height: 55px; padding-left: 0; color: #fff; font-size: 19px; font-weight: 500; transition: color 0.3s ease-in-out; }
.header.nav_hover .gnb_list > li a { color: #222; }
.header .gnb_list > li.current > a, .header .gnb_list > li:hover > a { color: #fd750b; }
/* 2Depth 및 배경 */
.header .gnb_list ul { padding-bottom: 20px; }
.header .gnb_list a + ul { display: none; text-align: center; }
.header .gnb_list ul > li { min-width: auto; margin-bottom:10px;}
.header .gnb_list ul > li:last-child{margin-bottom:0;}
.header .gnb_list ul > li > a { color: #666; font-weight: 400; }
.header .gnb_list ul > li > a:hover { color: #222; }
.header .gnb_list ul > li > a > span { position: relative; display: inline-block; height: fit-content; font-size:17px; }
.header .gnb_list ul > li > a > span:after { content: ''; display: block; position: absolute; left: 50%; bottom: 0; width: 0px; height: 1px; background: #222; opacity: 0; transform: translateX(-50%); transition: 0.35s cubic-bezier(.4, 0, .6, 1); }
.header .gnb_list ul > li > a > span:hover:after { width: 100%; opacity: 1; }
.header .nav-bg { content: ''; display: block; position: absolute; top:-280px; left: 0; width: 100%; height: 280px; background: #fff; box-shadow: 0px 4px 4px rgba(0,0,0,0.15); opacity: 0; transition: 0.35s cubic-bezier(.4, 0, .6, 1); z-index: 1;}
.header.nav_hover .nav-bg { top:0; opacity: 1;  transition: 0.35s cubic-bezier(.4, 0, .6, 1); }
.header.nav_hover .gnb_list a + ul { display: block; transition: 0.35s cubic-bezier(.4, 0, .6, 1); }


/* ==========================================================================
   5. Mobile Buttons & Elements (모바일 전용 요소)
   ========================================================================== */
.header .btns { display: none; }
.header .btns > .btn {font-size:0;}
.header .btns > .btn svg{width:34px; height:34px;}
.header .btn.menu {
	fill: var(--fill-color, #fff);
	stroke: var(--line-color, #fff);
	stroke-width:0.1;}
.header .mo_utility {display: none;}

.header .login > ul > li > a svg {width:28px; height:28px;}
body.opened-nav .header .login > ul > li > a svg{
	fill: var(--fill-color, #141a20);
	stroke: var(--line-color, #141a20);}

/* 버튼 상태 제어 */
body.opened-nav .header .btn.menu { display: none; }
body:not(.opened-nav) .header .btn.close-nav { display: none; }


/* ==========================================================================
   6. 퀵메뉴
   ========================================================================== */

.quick{position:fixed; bottom:22%; right:0; z-index:9}

@media (max-width:1440px) {
   .quick ul li img{max-width:100%; width:150px}
}
@media (max-width:768px) {
   .quick{display:none}
}

/* ==========================================================================
   7. Media Queries (반응형)
   ========================================================================== */

@media screen and (max-width:1025px){
    /* Layout Reset */
    #header { height: 80px; }
    body.opened-nav { overflow: hidden; }
    .header .logo { margin-top: 3%; }
    .header .nav-bg, .header.nav_hover .gnb_list a + ul { display: none; }
    .header .utility { display: none; }
    
    /* Mobile Navigation Container */
    .header .nav { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; padding: 70px 0 0; background-color: #fff; z-index: 10; }
    body.opened-nav .header .nav { display: flex; }
    .header .nav_wrap { justify-content: flex-start; }
    
    /* Mobile GNB List */
    .header .gnb_list {margin-top:20px; display: block; width: 100%; transform: translateX(0); }
	.header .gnb_list ul {padding:0;}
	.header .gnb_list ul > li{margin-bottom:0; }
    .header .gnb_list > li {width: 100%; min-width: auto; text-align: left; }
    .header .gnb_list > li > a {padding:20px; justify-content: flex-start; position: relative; height: 100%; color: #222; font-weight: 600; text-align: left; font-size:22px; border-bottom:1px solid #f0f0f0;;}
    .header .gnb_list > li.active > a { color: #ff6600; }
    
    /* Mobile Accordion & Submenu */
    .header .gnb_list > li > a.has-depth::before { content: ''; position: absolute; top:25px; right:20px; width: 24px; height: 24px; background: url('/image/mo_arrow.svg') no-repeat center / cover; transition: 0.3s ease-in-out; transform-origin: center center; }
    .header .gnb_list > li.active > a::before { transform: rotate(180deg); }
    .header .gnb_list > li.active > ul {display: block; padding:15px 20px; background:#f9f9f9;}
    .header .gnb_list a + ul {text-align: left;}
    .header .gnb_list ul > li > a{display:block; padding:8px 0;}
    .header .gnb_list ul > li > a br { display: none; }
	.header .gnb_list ul > li > a > span{font-size:17px;}
    
    /* Mobile Utility & Login */
    .header .mo_utility { display: block; position: absolute; right:75px; top: 28px; margin-left: 0; z-index: 12; }
    .header .login > ul { gap: 10px; }
    .header .login > ul > li + li::before { display: none; }
    .header .login > ul > li > a { width: auto; }
    .header .login li img { width: 24px; }
    body.opened-nav .header .login > ul > li > a { color: #222; }
	.header .login .mypage_btn {padding-top: 4px;}
    body.opened-nav .header .login .mypage_btn::after { border-top: 1.5px solid #222; border-right: 1.5px solid #222; }
    .header .login .mypage_li ul { top: 35px; }
    .opened-nav .header .login .mypage_li.active ul { top: 40px; }
    
    /* Mobile Toggle Buttons */
    .header .btns { display: flex; justify-content: flex-end; align-items: center; width: 100%; z-index: 10; }
}

@media screen and (max-width:768px){
    .header .mo_utility {right:70px;}
}

@media screen and (max-width:680px){
	.header .logo {margin-top:20px; }
	.header .logo img{width: 200px;}
    .header .mo_utility { right:60px; }
    .header .login > ul { gap: 8px; }
}

@media screen and (max-width:375px){
	.header .logo {margin-top: 25px;}
	.header .logo img{width:180px;}
    .header .mo_utility { right:50px; }
	.header .login > ul {gap:8px;}
	.header .login .mypage_btn {font-size: 14px;}
}