@charset "utf-8";

/* === 공통 초기화 === */
.main-menu,
.mobile-menu,
.sub-menu,
.mobile-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-menu a,
.mobile-menu a,
.sub-menu a,
.mobile-menu-list a {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #333;
  font-size: 0.95rem;
  padding: 10px 15px;
  font-weight: 500;
}

.menu-icon {
  margin-right: 0.4rem;
  width: 1.2em;
  text-align: center;
}

/* === current 활성화 === */
.main-menu li.current > a,
.mobile-menu li.current > a {
  font-weight: bold;
  color: #d92228;
}

.main-menu a i,
.mobile-menu a i {
  margin-right: 0.2em; /* 또는 6px */
  display: inline-block;
  min-width: 1.2em;  /* 아이콘 정렬 안정화 */
  text-align: center;
}

/* === PC 메뉴 === */
.main-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.1rem;
  position: relative;
}

.main-menu li {
  position: relative;
}

.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  min-width: 160px;
  display: none;
  z-index: 100;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  flex-direction: column;
}

.main-menu li:hover .sub-menu {
  display: block;
}

.sub-menu a {
  white-space: nowrap;
}

.sub-menu a:hover {
  background-color: #f0f0f0;
}

/* === 전체메뉴 전개형 (선택기능) === */
.all-menu-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: white;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  z-index: 1000;
  padding: 2rem 3rem;
}

.all-menu-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 30px;
}

.menu-col h4 {
  margin-bottom: 0.5rem;
  font-size: 1rem;
  color: #002b5c;
}

.menu-col li a:hover {
  color: #0055aa;
}

/* === 햄버거 버튼 === */
.menu-toggle {
  display: none;
  font-size: 1.6rem;
  background: none;
  border: none;
  color: #002b5c;
  cursor: pointer;
  padding: 10px;
}

/* === 모바일 메뉴 구조 === */
.mobile-menu {
  position: fixed;
  top: 0;
  left: -260px;
  width: 240px;
  height: 100%;
  background: #fff;
  z-index: 1000;
  box-shadow: 2px 0 10px rgba(0,0,0,0.2);
  transition: left 0.3s ease;
  padding: 1rem;
  overflow-y: auto;
}

.mobile-menu.active {
  left: 0;
}

.mobile-menu-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.6);
  z-index: 999;
}

.mobile-menu-overlay.active {
  display: block;
}

.menu-close {
  font-size: 1.5rem;
  background: none;
  border: none;
  color: #444;
  margin-bottom: 1rem;
  cursor: pointer;
}

.mobile-menu-list li {
  margin: 1rem 0;
}

.mobile-menu-list a:hover {
  color: #a22024;
}

/* 기본적으로 서브메뉴는 숨김 */
.mobile-menu .sub-menu {
  display: none !important;
  padding-left: 15px;
  background-color: #f9f9f9;
  border-left: 2px solid #ddd;
}

/* `.open` 클래스가 붙은 경우 서브메뉴 보이도록 */
.mobile-menu li.open > .sub-menu {
  display: block !important;
}

/* 서브메뉴 링크 스타일 */
.mobile-menu .sub-menu li a {
  padding: 8px 15px;
  font-size: 0.9rem;
  color: #555;
}

/* 메뉴 접기/펼치기 표시용 화살표 스타일 */
.mobile-menu-list li.has-sub > a::after {
  content: '▸'; /* 펼치기 표시 */
  margin-left: auto;
  font-size: 0.9rem;
  transition: transform 0.3s ease;
}

/* 펼쳐졌을 때 화살표 방향 변경 */
.mobile-menu-list li.open > a::after {
  content: '▾'; /* 펼쳐진 상태 */
  transform: rotate(0deg);
}

/* === 반응형 분기 === */

/* 모바일 전용 */
@media (max-width: 768px) {
  .menu-toggle {
    display: block;
  }

  .main-menu,
  .all-menu-panel {
    display: none !important;
  }

  .mobile-menu .sub-menu {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    border: none;
    background: none;
    box-shadow: none;
    padding-left: 1rem;
  }

}

/* PC 전용 */
@media (min-width: 769px) {
  .mobile-menu,
  .mobile-menu-overlay,
  .menu-toggle {
    display: none !important;
    visibility: hidden !important;
  }
}