@font-face {
    font-family: 'NanumSquareNeoBold';
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-cBd.eot);
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-cBd.eot?#iefix) format("embedded-opentype"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-cBd.woff) format("woff"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-cBd.ttf) format("truetype");
}

@font-face {
    font-family: 'NanumSquareNeo';
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.eot);
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.eot?#iefix) format("embedded-opentype"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.woff) format("woff"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.ttf) format("truetype");
}

BODY,TD,input,DIV,form,a,p,span,TEXTAREA,center,pre,blockquote {font-family:'NanumSquareNeo';}
	
  /* 그누보드 충돌 방지를 위한 초기화 및 공통 설정 */
  .jj-header-wrap, .jj-header-wrap * { box-sizing: border-box; } /* 래퍼 본체도 border-box 포함 */
  .jj-header-wrap * { margin: 0; padding: 0; }
  .jj-header-wrap a { text-decoration: none; color: inherit; }
  .jj-header-wrap ul, .jj-header-wrap li { list-style: none; }
  .jj-header-wrap button { background: none; border: none; cursor: pointer; }

/* ==========================================
   메뉴 상단 고정 (z-index 우선순위 보장)
   ========================================== */
.jj-header-wrap {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 90px;
  background-color: rgba(255, 255, 255, 1.0);
  z-index: 9999 !important;
  border-bottom: 1px solid #f1f1f1;
}

  /* PC 버전 레이아웃 (1024px 이상) */
  .jj-pc-header {
    max-width: 1300px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 90px;
    padding: 0 20px;
  }

  /* PC 양쪽 영역 너비 고정 (메뉴 정중앙 정렬용) */
/* 1. 좌측 로고 영역 너비 강제 고정 */
.jj-logo {
  flex: 0 0 230px; /* 고정 너비 지정 */
  width: 230px;
}

/* 2. 우측 소셜 아이콘 영역 너비 강제 고정 */
.jj-social-icons {
  flex: 0 0 230px; /* 좌측과 완전히 동일한 너비로 고정 */
  width: 230px;
  display: flex;
  justify-content: flex-end;
  gap: 15px;
  margin-top: 15px; /* 이전 위치 내려둔 값 유지 */
}

/* 3. 중앙 메뉴 컨테이너 (정중앙 정렬 보장) */
.jj-nav-center {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
  text-align: center;
}

/* 4. PC 메뉴 목록 (자체 margin 초기화로 중앙 유지 및 외부 스타일 차단) */
.jj-pc-menu {
  display: flex !important;
  gap: 40px !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  margin: 0 auto !important;
  padding: 0 !important;
  list-style: none !important;
}

/* 1. li 설정 - 외부 margin/padding/height 영향을 원천 차단 */
.jj-pc-menu > li {
  position: relative !important;
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  list-style: none !important;
}

/* 2. a 태그 설정 - line-height와 box-sizing 고정으로 모든 페이지 높이 통일 */
.jj-pc-menu > li > a {
  display: block !important;
  font-size: 15px !important;
  line-height: 1 !important; /* 외부 줄높이 계산 간섭 차단 */
  color: #333;
  font-weight: 500;
  position: relative !important;
  padding-top: 45px !important;   /* 메뉴 세로 위치 */
  padding-bottom: 25px !important;/* 헤더 높이(90px) 균형 맞춤 */
  margin: 0 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

/* 3. 밑줄 기본 상태 (왼쪽에서 오른쪽으로 길어지는 애니메이션 유지) */
.jj-pc-menu > li > a::after {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  bottom: -2px !important;
  width: 0%;
  height: 2px !important;
  background-color: #111 !important;
  transition: width 0.3s ease-in-out !important;
}

/* 4. 활성화 및 마우스오버 밑줄 */
.jj-pc-menu > li.active > a::after,
.jj-pc-menu > li:hover > a::after {
  width: 100% !important;
  background-color: #333 !important;
}

  /* PC 서브메뉴 & 더보기 드롭다운 공통 설정 (직각, #fff 배경, #ececec 테두리, 자연스러운 트랜지션) */
  .jj-pc-submenu,
  .jj-more-dropdown {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff;
    border: 1px solid #ececec;
    border-radius: 0;
    min-width: 150px;
    z-index: 1000;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  /* 더보기 메뉴 위치 조정 (우측 정렬) */
  .jj-more-dropdown {
    top: 70px;
    left: auto;
    right: 0;
    transform: none;
  }

  /* 더보기 메뉴 내의 서브메뉴 위치 조정 (오른쪽으로 펼쳐짐) */
  .jj-more-dropdown .jj-pc-submenu {
    top: -1px;
    left: 100%;
    transform: none;
  }

  .jj-pc-menu > li:hover > .jj-pc-submenu,
  .jj-more-btn:hover > .jj-more-dropdown,
  .jj-more-dropdown > li:hover > .jj-pc-submenu {
    visibility: visible;
    opacity: 1;
  }

  .jj-pc-submenu li a,
  .jj-more-dropdown li a {
    display: block;
    padding: 12px 20px;
    font-size: 14px;
    color: #333; 
    text-align: center;
    transition: all 0.2s;
  }

  .jj-pc-submenu li a:hover,
  .jj-more-dropdown li a:hover {
    background-color: #111;
    color: #fff;
  }

  /* PC 더보기(...) 버튼 (정가운데 정렬 반영) */
  .jj-more-btn {
    display: none; /* JS에서 flex로 변경됨 */
    align-items: center;
    justify-content: center;
    font-size: 24px;
    cursor: pointer;
    padding: 0 15px;
    position: relative;
    height: 90px; /* 헤더와 동일한 높이로 세로 정중앙 정렬 */
    color: #333;
  }

  /* 모바일/태블릿 헤더 숨김 */
  .jj-mobile-wrap {
    display: none;
  }

  /* 반응형 1024px 미만 */
  @media (max-width: 1023px) {
  .jj-header-wrap {
    position: static; 
    border-bottom: none;
    background-color: transparent;
  }

  .jj-pc-header { display: none; }
  .jj-mobile-wrap { display: block; }

  /* 1. 모바일 헤더 (로고 포함, 사이드바보다 아래에 위치하여 메뉴 뒤로 가려짐) */
  .jj-mobile-header {
    position: fixed; 
    top: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box; /* 패딩 포함 크기 유지 */
    background-color: #fff;
    z-index: 1000; /* 사이드바(1001)보다 낮아서 메뉴가 열리면 로고가 메뉴 뒤로 숨음 */
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px 20px;
    border-bottom: 1px solid #f1f1f1;
  }

  .jj-mobile-logo { 
    margin: 0 auto; 
  }
  .jj-mobile-logo img { 
    width: 140px; 
    height: auto; 
  }

  /* 2. 독립된 삼선 / X 닫기 버튼 (항상 메뉴보다 위에 위치하여 클릭 보장) */
  .jj-hamburger {
    position: fixed;
    top: 30px; /* 헤더 패딩에 맞춘 위치 */
    right: 20px;
    width: 24px;
    height: 20px;
    z-index: 1002; /* 사이드바(1001)보다 위에 위치하여 항상 클릭 가능 */
    background: transparent;
  }
  
  .jj-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: #111;
    position: absolute;
    transition: 0.3s;
  }
  .jj-hamburger span:nth-child(1) { top: 0; }
  .jj-hamburger span:nth-child(2) { top: 9px; }
  .jj-hamburger span:nth-child(3) { top: 18px; }

  .jj-hamburger.open span:nth-child(1) { top: 9px; transform: rotate(45deg); background-color: #111; }
  .jj-hamburger.open span:nth-child(2) { opacity: 0; }
  .jj-hamburger.open span:nth-child(3) { top: 9px; transform: rotate(-45deg); background-color: #111; }

  /* 1. 모바일 가로 스크롤, 메뉴 햄버거 메뉴가 열리면 로고를 완벽히 숨기고 클릭도 차단 */
  .jj-mobile-header:has(.jj-hamburger.open) .jj-mobile-logo {
    opacity: 0;
    visibility: hidden;
    pointer-events: none; /* 클릭 완전히 차단 */
  }

/* 2. 모바일 가로 스크롤 메뉴 (하단 1px 실선 추가) */
.jj-scroll-menu-container {
  margin-top: 75px;
  background-color: #fff;
  border-top: 1px solid #f1f1f1;
  border-bottom: 1px solid #e5e5e5; /* 화면 좌우 끝까지 완벽하게 꽉 차는 실선 */
  width: 100%;
  box-sizing: border-box !important;
}

/* 2. 내부 스크롤 메뉴 (텍스트와 스크롤 영역) */
.jj-mobile-scroll-menu {
  position: relative !important; /* 스크립트 위치(offsetLeft) 계산 기준점 */
  display: flex !important;
  align-items: center;
  overflow-x: auto !important;
  white-space: nowrap !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-padding-right: 40px !important; /* 스크롤 끝지점 우측 여유 공간 확보 */
  scroll-behavior: smooth; /* 스크롤 이동 시 부드럽게 전환 */
}

.jj-mobile-scroll-menu::-webkit-scrollbar { display: none; }

/* 3. 각 메뉴 항목(li) 설정 - li 패딩을 0으로 만들어 a 태그가 영역을 꽉 채우도록 함 */
.jj-mobile-scroll-menu li {
  position: relative !important; /* 위치 계산 기준점 지정 */
  display: inline-block !important;
  flex-shrink: 0 !important; /* 모바일 화면이 좁아도 메뉴 너비가 줄어들지 않도록 고정 */
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* 4. a 태그를 블록화하여 상하 전체 영역 클릭 가능 및 외부 CSS 덮어쓰기 방지 */
.jj-mobile-scroll-menu li a {
  display: block !important; /* 상하 전체 영역 클릭 가능 */
  padding: 15px 15px !important; /* 기존 li에 있던 패딩을 a 태그로 이동 */
  font-size: 12px !important;
  line-height: 1 !important; /* 외부 line-height 영향을 차단하여 모든 페이지 높이 동일 유지 */
  color: #333;
  font-weight: 400;
  position: relative;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

/* 맨 앞/뒤 메뉴 패딩 유지 */
.jj-mobile-scroll-menu li:first-child a {
  padding-left: 45px !important;
}

.jj-mobile-scroll-menu li:last-child a {
  padding-right: 45px !important;
}

.jj-mobile-scroll-menu li.active a {
  color: #333;
  font-weight: bold;
  scroll-margin-left: 45px !important;
}

  /* 4. 선택된 메뉴의 검정 밑줄 위치 고정 */
  .jj-mobile-scroll-menu li.active a::after {
    content: '';
    display: inline-block;
    position: absolute;
    left: 0;
    bottom: -6px; /* li 패딩(15px) + 컨테이너 하단 선 위치에 맞춤 */
    width: 100%;
    height: 1px;
    background-color: #333;
    z-index: 1;
  }

  /* 모바일 사이드바 */
  .jj-sidebar-overlay {
    position: fixed;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* 어두워지는 투명도 배경 */
    z-index: 1000;
    visibility: hidden; /* display: none 대신 사용하여 부드러운 페이드 인/아웃 가능하게 처리 */
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .jj-sidebar-overlay.active {
    visibility: visible;
    opacity: 1;
  }

  .jj-sidebar {
    position: fixed;
    top: 0; right: -100%;
    width: 85%; max-width: 350px; height: 100%;
    background-color: #fff;
    z-index: 1001; /* 헤더(1000) 위, 햄버거 버튼(1002) 아래 */
    transition: right 0.4s ease-in-out;
  }
  .jj-sidebar.open { right: 0; }

  .jj-sidebar-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    overflow-y: auto;
    padding-top: 70px; 
  }

  .jj-sidebar-menu-list { padding: 0 20px; }
  .jj-sidebar-menu-list > li {
    border-bottom: 1px solid #f1f1f1;
    position: relative;
  }
  .jj-sidebar-menu-list > li.active::after {
    content: '';
    position: absolute;
    left: 0; bottom: -1px; width: 100%; height: 2px; background-color: #111; z-index: 1;
  }
  .jj-sidebar-menu-list > li > a {
    display: flex; justify-content: space-between; align-items: center;
    padding: 18px 0; font-size: 14px; color: #333;
  }
  .jj-sidebar-menu-list > li.active > a { font-weight: 700; }

  /* 아코디언 화살표 */
  .jj-arrow {
    width: 12px; height: 12px;
    border-right: 2px solid #999; border-bottom: 2px solid #999;
    transform: rotate(45deg); transition: transform 0.3s ease;
  }
  .jj-sidebar-menu-list > li.open .jj-arrow { transform: rotate(-135deg); }

  /* 모바일 서브메뉴 */
  .jj-mobile-submenu {
    padding: 0 0 0 15px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding-bottom 0.4s ease; 
  }
  .jj-mobile-submenu li a {
    display: block; padding: 10px 0; font-size: 13px; color: #666;
  }
  .jj-mobile-submenu li a.jj-active-sub {
    font-weight: 700; color: #111;
  }

  /* 하단 소셜 버튼 */
  .jj-sidebar-bottom { padding: 20px; margin-top: auto; }
  .jj-btn-sns {
    display: block; text-align: center; border: 1px solid #ececec;
    padding: 12px 0; margin-top: 10px; font-size: 12px; color: #333;
  }

  /* 햄버거 메뉴가 열렸을 때(.open) 헤더 배경과 선을 숨김 */
  .jj-mobile-header:has(.jj-hamburger.open) {
    background-color: transparent; /* 아래에 깔린 메뉴 배경색이 그대로 비치도록 투명하게 처리 */
    border-bottom: none; /* 하단 선 제거 */
  }

  /* 로고가 어두운 메뉴 아래에 묻힌 것처럼 시각적 효과 부여 */
  .jj-mobile-header:has(.jj-hamburger.open) .jj-mobile-logo {
    filter: brightness(0.4); /* 0 ~ 1 사이 수치로 어두운 정도 조절 */
  }

  /* (선택 사항) 어두워진 배경 위에서 X 표시가 잘 보이도록 선 색상을 흰색으로 변경 */
  .jj-hamburger.open span {
    background-color: #ffffff; 
  }
  }