@charset "utf-8";

/* ================================================== */
/* SEMI 네비게이션 - 모바일 및 데스크탑 스타일 */
/* ================================================== */

@media (max-width: 890px) {
	/* 헤더 기본 설정 */
	.nav {
		position: fixed !important;
		top: 0 !important;
		z-index: 1000 !important;
		background-color: #111 !important; 
		box-shadow: 0 2px 8px rgba(0,0,0,0.15);
		height: 70px !important;
	}

	/* 로고 설정 */
	.nav .logo {
		display: flex !important;
		align-items: center;
		height: 70px;
		margin-left: 15px;
	}

	.nav .logo a {
		display: inline-block !important;
		line-height: normal !important;
		height: auto;
		width: auto;
	}
	
	.nav .logo a img,
	.semi-logo-img {
		display: block !important;
		width: 85% !important;
		height: auto !important;
		max-height: 32px !important;
		max-width: 110px !important;
		vertical-align: middle;
	}
	
	.nav .inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 70px;
	}

	/* 햄버거 버튼 */
	.nav .menubar {
		width: 48px !important;
		height: 48px !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		top: 11px !important;
		right: 15px !important;
		border-radius: 4px;
		transition: background-color 0.2s;
	}

	.nav .menubar:active {
		background-color: rgba(255,255,255,0.1);
	}

	.nav .menubar img {
		width: 24px;
		height: 24px;
		filter: brightness(0) invert(1); 
	}

	/* PC 메뉴 숨김 */
	.nav .pcmenu {
		display: none !important;
	}

	/* 모바일 메뉴 배경 */
	.nav .m_menu {
		display: none;
		position: fixed !important;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background-color: rgba(0, 0, 0, 0.6) !important;
		z-index: 999 !important;
		overflow: hidden;
	}

	.nav .m_menu.on {
		display: block !important;
	}

	/* 메뉴 패널 슬라이드 */
	.nav .m_menu .gnb_wrap {
		position: fixed !important;
		top: 0;
		right: -100% !important;
		width: 100% !important;
		max-width: 380px;
		height: 100vh;
		background-color: #ffffff !important;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		transition: right 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
		box-shadow: -4px 0 20px rgba(0,0,0,0.2);
		padding: 0 !important;
	}

	.nav .m_menu .gnb_wrap.on {
		right: 0 !important;
	}

	/* X 버튼 */
	.nav .m_menu .gnb_wrap .gnb > li.gnb_img {
		position: sticky;
		top: 0;
		z-index: 10;
		width: 100% !important;
		height: 60px !important;
		background: #111 !important;
		cursor: pointer;
		margin: 0;
		display: flex;
		align-items: center;
		justify-content: flex-end !important;
		padding-right: 20px;
		box-sizing: border-box;
		box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	}

	.nav .m_menu .gnb_wrap .gnb > li.gnb_img::before {
		content: '✕';
		color: #fff;
		font-size: 24px;
		font-weight: 300;
	}

	/* 메뉴 리스트 기본 */
	.nav .m_menu .gnb_wrap .gnb {
		padding: 0;
		margin: 0;
		border-bottom: none;
		list-style: none;
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	}

	/* 대메뉴 (PROGRAM, MY PAGE) */
	.nav .m_menu .gnb_wrap .gnb > li.menu-category > .gnb_tit {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		padding: 24px 24px 10px !important;
		font-size: 18px !important;
		font-weight: 700 !important;
		color: #000 !important;
		background: #ffffff !important;
		border: none !important;
		border-bottom: 1px solid #e8e8e8 !important;
		cursor: default !important;
		margin: 0;
		box-sizing: border-box;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		pointer-events: none;
	}
	
	/* 첫 번째 메뉴 상단 여백 */
	.nav .m_menu .gnb_wrap .gnb > li:nth-child(2) > .gnb_tit {
		padding-top: 18px !important;
	}

	/* 대메뉴 우측 화살표 */
	.nav .m_menu .gnb_wrap .gnb > li.menu-category > .gnb_tit::after {
		content: '›';
		font-size: 26px;
		color: #000;
		font-weight: 300;
		line-height: 1;
	}

	/* 직접 링크 (SIGN UP, LOG IN) */
	.nav .m_menu .gnb_wrap .gnb > li.menu-direct > .gnb_tit {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		padding: 20px 24px !important;
		font-size: 18px !important;
		font-weight: 700 !important;
		color: #000 !important;
		background: #ffffff !important;
		border: none !important;
		border-bottom: 1px solid #e8e8e8 !important;
		cursor: pointer !important;
		margin: 0;
		box-sizing: border-box;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		transition: background-color 0.2s ease;
	}

	/* 직접 링크 우측 화살표 */
	.nav .m_menu .gnb_wrap .gnb > li.menu-direct > .gnb_tit::after {
		content: '›';
		font-size: 26px;
		color: #000;
		font-weight: 300;
		line-height: 1;
	}

	.nav .m_menu .gnb_wrap .gnb > li.menu-direct > .gnb_tit:active {
		background-color: #f8f8f8 !important;
	}

	/* 서브메뉴 컨테이너 */
	.nav .m_menu .gnb_wrap .gnb .lnb {
		display: block !important;
		background-color: #ffffff !important;
		border: none !important;
/*		padding: 0 0 20px 0 !important;*/
		margin: 0;
		list-style: none;
	}

	.nav .m_menu .gnb_wrap .gnb .lnb li {
		border-bottom: none;
	}

	/* 소메뉴 링크 - 본사 스타일 */
	.nav .m_menu .gnb_wrap .gnb .lnb li a {
		display: block !important;
		padding: 14px 24px 14px 40px !important;  /* 들여쓰기 40px */
		font-size: 15px !important;               /* 15px 크기 */
		font-weight: 400 !important;
		color: #666 !important;                   /* 회색 텍스트 */
		background: transparent !important;
		transition: all 0.2s ease !important;
		line-height: 1.5 !important;
		text-decoration: none;
		box-sizing: border-box;
		position: relative;
	}

	/* 소메뉴 터치 시 */
	.nav .m_menu .gnb_wrap .gnb .lnb li a:active {
		background-color: #f8f8f8 !important;
		color: #000 !important;
	}

	/* 현재 페이지 강조 */
	.nav .m_menu .gnb_wrap .gnb .lnb li.active a {
		color: #55A51C !important;
		font-weight: 600 !important;
		background-color: #f9fff7 !important;
	}

	/* 현재 페이지 왼쪽 점 제거 */
	.nav .m_menu .gnb_wrap .gnb .lnb li.active a::before {
		display: none !important;
		content: none !important;
	}

	.nav .m_menu .gnb_wrap .gnb .lnb li.active a:active {
		background-color: #f0f8eb !important;
	}

	/* 로그아웃 링크 */
	.logout-link {
		color: #999 !important;
	}

	body.menu_open {
		overflow: hidden !important;
		position: fixed;
		width: 100%;
	}
}

@media (max-width: 480px) {
	.nav {
		height: 60px !important;
	}

	.nav .logo {
		margin-left: 10px;
		height: 60px;
	}
	
	.nav .logo a img,
	.semi-logo-img {
		max-height: 26px !important;
		max-width: 90px !important;
	}

	.nav .inner {
		height: 60px;
	}

	.nav .menubar {
		top: 6px !important;
		width: 44px !important;
		height: 44px !important;
	}

	.nav .m_menu .gnb_wrap {
		max-width: 100% !important;
	}

	.nav .m_menu .gnb_wrap .gnb > li.gnb_img {
		height: 56px !important;
	}
	
	.nav .m_menu .gnb_wrap .gnb > li.menu-category > .gnb_tit,
	.nav .m_menu .gnb_wrap .gnb > li.menu-direct > .gnb_tit {
		font-size: 17px !important;
		padding: 20px 20px 8px !important;
	}
	
	.nav .m_menu .gnb_wrap .gnb .lnb li a {
		font-size: 14px !important;
		padding: 12px 20px 12px 36px !important;
	}
}

@media (min-width: 891px) {
	.nav {
		position: fixed !important;
		height: 90px !important;
/*		background-color: #111 !important;*/
		box-shadow: none !important;
	}

	.nav .logo {
		float: left !important;
		display: flex !important;
		align-items: center;
		height: 90px !important;
		margin-left: 0 !important;
	}

	.nav .logo a {
		display: inline-block !important;
		line-height: 80px !important;
		width: auto !important;
		margin-right: 16px;
	}

	.semi-logo-img {
		width: 85% !important;
		height: auto !important;
		vertical-align: middle;
	}

	.nav .pcmenu {
		display: block !important;
	}

	.nav .pcmenu .gnb {
		display: flex !important;
	}

	.nav .menubar {
		display: none !important;
	}

	.nav .m_menu {
		display: none !important;
	}

	.nav .m_menu .gnb_wrap {
		display: none !important;
	}

	body.menu_open {
		overflow: auto !important;
		position: static !important;
	}
}