     :root {
            --primary: #00589e;
            --text-dark: #2d3436;
            --white: #ffffff;
            --shadow: 0 10px 30px rgba(0,0,0,0.12);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Noto Sans KR', sans-serif; color: var(--text-dark); }
        a { text-decoration: none; color: inherit; }
        ul { list-style: none; }

        header {
            height: 80px; background: #fff; position: sticky; top: 0; z-index: 1000;
            display: flex; align-items: center; box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        }

        .header-flex {
            display: flex; justify-content: space-between; align-items: center;
            max-width: 1200px; margin: 0 auto; width: 100%; padding: 0 20px;
        }

        /* --- PC 네비게이션 (깔끔한 정렬) --- */
        .nav-menu .main-menu { display: flex; align-items: center; }
        .nav-menu .main-menu > li { position: relative; margin-left: 35px; }
        .nav-menu .main-menu > li > a { padding: 30px 0; font-weight: 500; font-size: 16px; transition: 0.3s; }
        .nav-menu .main-menu > li > a:hover { color: var(--primary); }

        /* 서브메뉴 공통 스타일 */
        .sub-menu, .sub-menu2 {
            display: none; position: absolute; background: #fff;
            min-width: 200px; padding: 12px 0; border-radius: 4px;
            box-shadow: var(--shadow); border: 1px solid #eee; z-index: 100;
        }

        /* 1단 메뉴: 대메뉴 왼쪽 끝에 맞춤 (가운데 정렬 해제) */
        .sub-menu { top: 100%; left: 0; margin-top: -5px; }

        /* 2단 메뉴: 1단 메뉴 바로 옆에 밀착 */
        .sub-menu2 { top: -1px; left: 100%; margin-left: 0; }

        /* 메뉴 항목 스타일 */
        .sub-menu li { position: relative; }
        .sub-menu li a { 
            padding: 10px 20px; font-size: 14px; display: flex; 
            justify-content: space-between; align-items: center; transition: 0.2s;
        }
        .sub-menu li a:hover { background: #f8f9fa; color: var(--primary); }

        /* PC 마우스 이동 통로 (메뉴 사라짐 방지) */
        @media (min-width: 992px) {
            .sub-menu li.has-sub::after {
                content: ''; position: absolute; top: 0; right: -15px;
                width: 15px; height: 100%;
            }
            .main-menu > li:hover > .sub-menu { display: block; }
            .sub-menu > li:hover > .sub-menu2 { display: block; }
            
            /* 화살표 아이콘 */
            .has-sub > a::after { content: '›'; font-size: 18px; margin-left: 8px; font-weight: 300; }
            .sub-menu .has-sub > a::after { content: '›'; }
        }

        /* --- 신청/약도 버튼 (Apple 스타일 미니멀) --- */
        .nav-btn {
            border: 1.5px solid var(--primary); color: var(--primary) !important;
            padding: 8px 20px !important; border-radius: 50px; font-weight: 600;
            margin-left: 10px; transition: 0.3s;
        }
        .nav-btn:hover { background: var(--primary); color: #fff !important; }

       /* --- 모바일 버튼 (수정 핵심) --- */
        .mobile-menu-btn { 
            display: none; width: 28px; height: 20px; position: relative; cursor: pointer; z-index: 1200; 
        }
        .mobile-menu-btn span { 
            position: absolute; width: 100%; height: 2px; background: #333; transition: 0.3s; left: 0;
        }
        .mobile-menu-btn span:nth-child(1) { top: 0; }
        .mobile-menu-btn span:nth-child(2) { top: 9px; }
        .mobile-menu-btn span:nth-child(3) { bottom: 0; }

        .mobile-menu-btn.active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
        .mobile-menu-btn.active span:nth-child(2) { opacity: 0; }
        .mobile-menu-btn.active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

        /* --- 모바일 레이아웃 --- */
        @media (max-width: 991px) {
            /* 1. 햄버거 버튼: 메뉴판보다 무조건 위에 있어야 함 */
    .mobile-menu-btn {
        display: block !important;
        position: fixed !important; /* 스크롤해도 따라오고, 레이어 위로 띄움 */
        top: 25px;    /* 헤더 높이에 맞춰 조정 (80px 헤더 기준 중간) */
        right: 20px;
        z-index: 10005 !important; /* 메뉴판(10001)보다 높게 설정 */
    }
            .nav-menu {
        position: fixed !important;
					top: 0 !important;
					right: -100% !important; /* 화면 우측 바깥 대기 */
					width: 280px !important;
					height: 100vh !important;
					background: #fff !important;
					z-index: 10001 !important; /* 최상단 레이어로 격상 */
					display: block !important; /* 가끔 다른 CSS가 display:none 시키는 것 방지 */
					transition: right 0.3s ease-in-out !important; /* 부드러운 슬라이딩 */
					box-shadow: -5px 0 15px rgba(0,0,0,0.1) !important;
					padding-top: 80px; /* 버튼과 겹치지 않게 위쪽 여백 확보 */
				}
            /* 이 부분이 작동해야 메뉴가 보입니다 */
            .nav-menu.active { right: 0 !important; }
            .nav-menu ul.main-menu { flex-direction: column; align-items: flex-start; }
            .nav-menu ul.main-menu > li { width: 100%; margin: 0; border-bottom: 1px solid #eee; }
            .nav-menu ul.main-menu > li > a { padding: 18px 20px; display: flex; justify-content: space-between; width: 100%; }

            .sub-menu, .sub-menu2 {
                position: static !important; transform: none !important; width: 100% !important;
                box-shadow: none !important; border: none !important; background: #f9f9f9 !important; padding: 0 !important;
            }
            .sub-menu2 { background: #f1f1f1 !important; }
            .sub-menu li a { padding: 12px 30px; border-bottom: 1px solid #eee; }
            .sub-menu2 li a { padding-left: 50px; }

            .has-sub > a::after { content: '+'; font-size: 20px; transition: 0.3s; }
            .has-sub.open > a::after { transform: rotate(45deg); 
			  .menu-overlay { 
            position: fixed; top: 0; left: 0; width: 100%; height: 100%; 
            background: rgba(0,0,0,0.4); display: none; z-index: 100; 
        }
			
			}
        }

        .nav-btn {
            border: 1.5px solid var(--primary); color: var(--primary) !important;
            padding: 7px 18px !important; border-radius: 50px; font-weight: 600; margin-left: 10px;
        }

        @media (max-width: 991px) {
            .nav-btn { border: none; padding: 18px 20px !important; margin: 0; border-radius: 0; text-align: left; }
        }

      