.elementor-2309 .elementor-element.elementor-element-bc3eef5{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}/* Start custom CSS for html, class: .elementor-element-ae6407a *//* --- [1] 좌측 유령 글자 및 모든 중복 메뉴 박멸 (기존 유지) --- */
.hfe-nav-menu, .hfe-nav-menu__toggle, .hfe-nav-menu__toggle-container, 
.hfe-nav-menu__toggle-text, .uae-nav-menu__toggle-text, .uae-menu-toggle-subtext,
.screen-reader-text, .skip-link, .mobile-nav, #mobile-menu, 
.menu-mobile-container, .mobile-menu-wrapper, .elementor-menu-toggle,
.elementor-widget-hfe-nav-menu, .elementor-widget-nav-menu,
.hfe-nav-menu-wrapper,
[class*="hfe-nav-menu"]:not(.main-header *), 
[class*="uae-nav-menu"]:not(.main-header *), 
[class*="elementor-nav-menu"]:not(.main-header *),
nav[class*="hfe-"]:not(.main-header *), 
div[class*="hfe-"]:not(.main-header *) { 
    display: none !important; visibility: hidden !important; opacity: 0 !important; 
    position: fixed !important; left: -9999px !important; width: 0 !important; height: 0 !important; 
    overflow: hidden !important; pointer-events: none !important;
}

/* --- [2] 기본 초기화 --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
li { list-style: none; }
a { text-decoration: none; transition: 0.3s ease; font-family: 'Noto Sans KR', sans-serif; }
body.admin-bar .main-header { top: 32px !important; }

/* --- [3] 헤더 배경 및 구분선 설정 (CSS 전용 스크롤 애니메이션) --- */
@keyframes revealDivider {
    from { opacity: 0; }
    to { opacity: 1; }
}

.main-header {
    width: 100% !important; 
    height: 68px !important; 
    position: fixed !important; 
    top: 0 !important; 
    left: 0 !important; 
    z-index: 9999 !important;
    background: #ffffff !important; 
    transition: height 0.3s ease;
}

.main-header::before {
    content: ""; 
    position: absolute; 
    top: 65px; 
    left: 0; 
    width: 100%; 
    height: 1px;
    background-color: #eeeeee; 
    z-index: 10;
    opacity: 0;
    animation: revealDivider linear both;
    animation-timeline: scroll(root); 
    animation-range: 10px 50px;      
}

.main-header::after {
    content: ""; position: absolute; top: 350px; left: 0; width: 100%; height: 1px;
    background-color: #eeeeee; opacity: 0; transition: opacity 0.3s ease; z-index: 10;
}
.main-header:hover::after { opacity: 1; }

.header-bg-panel {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: #ffffff !important; z-index: -1; opacity: 1 !important;
}

@media screen and (min-width: 1025px) {
    .main-header:hover { height: 350px !important; }
    .main-header:hover .sub-menu { 
        opacity: 1 !important; visibility: visible !important; display: block !important; 
    }
}

/* --- [4] 로고 설정 --- */
.header-container {
    width: 100%; max-width: 1800px; margin: 0 auto; height: 100px;
    display: flex; justify-content: space-between; align-items: center;
    padding: 0 60px; position: relative; z-index: 100;
}
.logo-area { position: relative; width: 250px; flex-shrink: 0; }
.logo-area img { height: 150px !important; width: auto; margin-top: -40px; display: block; }
.logo-white { display: none !important; } 
.logo-color { display: block !important; opacity: 1 !important; visibility: visible !important; position: relative !important; }

/* --- [5] PC 메뉴 및 서브메뉴 정렬 --- */
.nav-area { position: absolute; left: 50%; top: 44%; transform: translate(-50%, -50%); display: flex; }
.gnb { display: flex !important; flex-direction: row !important; }
.menu-item { padding: 0 35px; position: relative; }
.menu-item > a { font-size: 1.25rem; font-weight: 800; line-height: 110px; color: #222222 !important; }

.sub-menu {
    position: absolute; 
    top: 55px; 
    left: 50%; 
    transform: translateX(-50%);
    width: 160px; 
    opacity: 0; visibility: hidden; 
    background: transparent !important; 
    box-shadow: none !important; 
    padding: 20px 0; 
    z-index: 1000;
    transition: opacity 0.3s ease;
}
.sub-menu li a { display: block; padding: 10px 0; color: #666 !important; font-size: 1rem; text-align: center; font-weight: 600; }
.sub-menu li a:hover { color: #000 !important; }

/* --- [6] 모바일 대응 (오른쪽 여백 수정 버전) --- */
@media screen and (max-width: 1024px) {
    /* 가로 스크롤 방지 강제 적용 */
    html, body { overflow-x: hidden !important; width: 100%; position: relative; }

    .main-header, .main-header:hover, .main-header:active { height: 68px !important; } 
    .main-header::before { top: 67px; } 
    .main-header::after { display: none !important; }

    /* 헤더 컨테이너 너비 이탈 방지 */
    .header-container { 
        height: 68px !important; 
        padding: 0 20px !important; 
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .logo-area { width: 150px; }
    .logo-area img { 
        height: 80px !important; 
        margin-top: -10px !important; 
    }

    .mobile-toggle { 
        display: flex !important; 
        cursor: pointer; width: 25px; height: 18px; 
        position: relative; z-index: 10001; 
        flex-direction: column; justify-content: space-between; 
    }
    .mobile-toggle span { display: block; width: 100%; height: 2.5px; background: #222222 !important; }

    /* 모바일 메뉴: visibility 추가로 오른쪽 여백 제거 */
    .nav-area {
        position: fixed; top: 0; right: -100%; width: 280px; height: 100vh;
        background: #ffffff !important; display: block !important; padding: 80px 0 0 0;
        transition: 0.4s ease-in-out; box-shadow: -5px 0 15px rgba(0,0,0,0.1);
        left: auto; transform: none; z-index: 10000; overflow-y: auto;
        visibility: hidden; /* 평소에는 아예 존재감을 없앰 (여백 방지) */
    }

    /* 메뉴 열렸을 때 */
    .main-header.active .nav-area { 
        right: 0 !important; 
        visibility: visible !important; 
    }

    .gnb { flex-direction: column !important; width: 100%; }
    .menu-item { padding: 0; border-bottom: 1px solid #f5f5f5; height: auto; width: 100%; }
    .menu-item > a { 
        color: #222222 !important; 
        line-height: 50px; 
        padding: 0 30px; 
        display: block; 
        font-size: 1.1rem; 
        text-align: left;
    }

    .sub-menu { 
        position: static !important; 
        display: block !important; 
        opacity: 1 !important; 
        visibility: visible !important; 
        width: 100% !important; 
        transform: none !important; 
        background: #fafafa !important; 
        padding: 5px 0 15px 0 !important; 
    }
    .sub-menu li a { text-align: left !important; padding: 10px 45px !important; font-size: 0.95rem !important; }
}/* End custom CSS */