@charset "UTF-8";

/* 레이아웃 초기화 */
#hd { width:100%; position: fixed; top: 0; left: 0; background:#fff; z-index: 1000; border-bottom: 1px solid #e8e8e8; }
#wrapper { padding-top: 215px !important; }

/* [1단] 상단 바 */
#top_bar { background: #00338a; height: 40px; width: 100%; position: relative; z-index: 1001; }
.inner, #hd_wrapper { max-width: 1200px; margin: 0 auto; width: 100%; padding: 0 20px; box-sizing: border-box; }
.hd_login { float: right; display: flex; height: 40px; align-items: center; gap: 15px; margin: 0; list-style: none; }
.hd_login a { color: #fff !important; font-size: 13px !important; text-decoration: none; }

/* [2단] 중앙 정보 */
.hd_middle { display: flex; justify-content: space-between; align-items: center; padding: 25px 0; }
.hd_tel { width: 300px; font-size: 32px; font-weight: 800; color: #0046a0; display: flex; align-items: center; gap: 10px; }
.hd_tel i { font-size: 28px; background: #0072bc; color: #fff; border-radius: 50%; width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; }
#logo { flex: 1; text-align: center; }
#logo img { max-width: 220px; height: auto; display: inline-block; }
.hd_promo { width: 300px; text-align: right; }
.promo_box { display: inline-block; text-align: left; border-left: 4px solid #0046a0; padding-left: 15px; line-height: 1.3; }
.p_main { color: #0072bc; font-size: 18px; font-weight: 700; }
.p_sub { color: #222; font-size: 23px; font-weight: 900; }

/* [3단] 하단 메뉴 */
.hd_bottom { position: relative; border-top: 1px solid #f5f5f5; height: 65px; display: flex; align-items: center; justify-content: center; }
#gnb { width: 100%; max-width: 1000px; height: 100%; }
#gnb_1dul { display: flex; list-style: none; padding: 0; margin: 0; height: 100%; width: 100%; }
.gnb_1dli { position: relative !important; flex: 1; height: 100%; display: flex; justify-content: center; align-items: center; }
.gnb_1da { font-size: 20px; font-weight: 700; color: #333; text-decoration: none; white-space: nowrap; }

/* 서브메뉴 교정 */
.gnb_2dul { display: none; position: absolute !important; top: 65px !important; left: 50% !important; transform: translateX(-50%) !important; background: #fff; min-width: 180px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); border-top: 3px solid #0046a0; padding: 10px 0; z-index: 1005; }
.gnb_2dul li a { display: block; padding: 10px 20px; font-size: 15px; color: #666; text-align: center; text-decoration: none; }

/* [햄버거 버튼] 디자인 */
#menu-btn { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 30px; height: 20px; cursor: pointer; }
.burger_icon span { display: block; width: 100%; height: 4px; background: #333; border-radius: 2px; margin-bottom: 4px; }
.burger_icon span:last-child { margin-bottom: 0; }

/* [모바일 메뉴] 내용 사라짐 해결 핵심 코드 */
#mob-gnb { 
    display: none; /* JS에서 block으로 변경 */
    position: fixed !important; 
    top: 0 !important; 
    right: -100% !important; 
    width: 100% !important; 
    height: 100% !important; 
    background: rgba(0,0,0,0.95) !important; 
    z-index: 10010 !important; 
    transition: right 0.4s ease !important; 
    visibility: visible !important; /* 기존 테마 hidden 무력화 */
    opacity: 1 !important; /* 기존 테마 투명도 무력화 */
}
#mob-gnb.on { right: 0 !important; }

.mob_close_wr { position: absolute; top: 20px; right: 20px; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; z-index: 10011; }
.mob_close_btn { background: none; border: none; font-size: 45px; color: #fff; cursor: pointer; }

/* 메뉴 리스트 강제 노출 */
.mob_inner { 
    padding: 100px 20px !important; 
    text-align: center !important; 
    display: block !important; 
    height: 100% !important;
    overflow-y: auto !important;
}
.mob_list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: block !important; }
.mob_li { display: block !important; opacity: 1 !important; transform: none !important; }
.mob_dep1 { color: #fff !important; font-size: 24px !important; font-weight: 800 !important; display: block !important; padding: 15px 0 !important; border-bottom: 1px solid rgba(255,255,255,0.1) !important; text-decoration: none !important; }
.mob_dep2 { display: block !important; list-style: none !important; padding: 10px 0 !important; background: rgba(255,255,255,0.05) !important; margin-bottom: 15px !important; }
.mob_dep2 a { color: #aaa !important; font-size: 17px !important; padding: 8px 0 !important; display: block !important; text-decoration: none !important; }

.no-scroll { overflow: hidden !important; }

/* 로딩 */
#loading-screen { position: fixed; width: 100%; height: 100%; background: #fff; z-index: 99999; display: flex; justify-content: center; align-items: center; }
.spinner { border: 3px solid rgba(0,0,0,0.1); border-top-color: #0046a0; border-radius: 50%; width: 45px; height: 45px; animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }