/* 웹 접근성 스크린 리더 전용 숨김 클래스 */
.blind {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 로그인 바 컨테이너 (남색 배경) */
.MainLogin {
  width: 100%;
  background-color: #2e5196;
  padding: 10px 20px;
  box-sizing: border-box;
}

/* fieldset 기본 테두리 제거 및 플렉스 설정 */
.LoginFieldset {
  border: none;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

/* 폼 컨테이너 */
.LoginForm {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

/* 입력창 및 로그인 버튼 그룹 */
.LoginBox {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

/* 입력창 */
.LoginBox .input {
  height: 38px;
  padding: 0 12px;
  font-size: 14px;
  color: #333333;
  background-color: #ffffff;
  border: 1px solid #dcdcdc;
  border-radius: 2px;
  outline: none;
  box-sizing: border-box;
  width: 170px;
}

.LoginBox .input::placeholder {
  color: #888888;
}

/* 체크박스 영역 */
.saveIdWrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 6px;
}

.saveIdWrap input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: #ffffff;
}

.saveIdWrap .saveId {
  color: #ffffff;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}

/* 공통 버튼 (로그인 / 회원가입 / 로그아웃 등) */
.bu_login,
.bu_join {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 16px;
  background-color: #f1f3f7;
  color: #204382;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  box-sizing: border-box;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}

.bu_login:hover,
.bu_join:hover {
  background-color: #e2e6ef;
  text-decoration: none;
}

/* ===================================================
   로그인 완료 후 상태 (환영 문구 & 메뉴 버튼들)
=================================================== */
.LoggedInWrap {
  color: #ffffff;
}

.userWelcomeTxt {
  font-size: 15px;
  line-height: 1.4;
  color: #ffffff;
}

.userWelcomeTxt strong {
  color: #ffe685; /* 이름 강조 */
}

.userMenuBtns {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* 키보드 포커스(Tab 키) 고대비 링 */
.LoginBox .input:focus-visible,
.saveIdWrap input[type="checkbox"]:focus-visible,
.bu_login:focus-visible,
.bu_join:focus-visible {
  outline: 3px solid #ffbf47 !important;
  outline-offset: 2px;
}

/* ===================================================
   반응형 (768px 이하 모바일)
=================================================== */
@media (max-width: 768px) {
  .LoginFieldset,
  .LoginForm {
    flex-direction: column;
    align-items: stretch;
  }

  .LoginBox {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .LoginBox .input {
    width: 100%;
  }

  .saveIdWrap {
    margin: 4px 0;
  }

  .bu_login,
  .bu_join {
    width: 100%;
  }

  .LoggedInWrap {
    gap: 14px;
    align-items: stretch;
  }

  .userMenuBtns {
    flex-direction: column;
    width: 100%;
  }
}




/* ===================================================
   MainWp 컨테이너
=================================================== */
.MainWp {
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 20px 60px;
  box-sizing: border-box;
  font-family: 'Noto Sans KR', '나눔고딕',"Nanum Gothic",'맑은 고딕','Malgun Gothic',AppleGothic,'돋움',Dotum,'굴림',Gulim,Helvetica,sans-serif;
  color: #2b2b2b;
}

/* ===================================================
   상단 인사말 & 날짜 안내
=================================================== */
.MainGreeting {
  margin-bottom: 20px;
}

.GreetingText .welcomeMsg {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 5px 0;
  line-height: 1.4;
}

.GreetingText .dateInfo {
  font-size: 1rem;
  font-weight: 500;
  color: #333333;
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.GreetingText .badgeDate {
  display: inline-block;
  background-color: #fed897;
  color: #1a458f;
  font-weight: 800;
  padding: 2px 10px;
  border-radius: 4px;
}

/* ===================================================
   그리드 레이아웃 (3열 배치)
=================================================== */
.MainMenuNav .MenuList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.MenuItem {
  display: flex;
  min-height: 160px;
}

/* 1열 일러스트 배너 (데스크톱에서 가로 2칸 차지) */
.MenuItem.bannerItem {
  grid-column: span 2;
  align-items: center;
  justify-content: center;
}

.bannerImgWrap {
  width: 100%;
  height: 100%;
  min-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  box-sizing: border-box;
}

.bannerImgWrap .bannerImg {
  max-width: 100%;
  height: auto;
  max-height: 150px;
  object-fit: contain;
}

/* ===================================================
   카드 버튼 디자인
=================================================== */
.MenuCard {
  width: 100%;
  min-height: 130px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 28px;
  gap: 24px;
  text-decoration: none;
  border-radius: 6px;
  box-sizing: border-box;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.2s ease;
  
  /* 기본 연한 푸른빛 카드 */
  background-color: #f3f6fb;
  border: 1px solid #dbe2ef;
}

/* 마우스 호버 및 포커스 시 밑줄 제거 */
.MenuCard:hover,
.MenuCard:focus {
  text-decoration: none;
}

/* 번갈아 들어가는 약간 더 진한 톤의 배경 카드 */
.MenuCard.bgAlt {
  background-color: #e5ebf4;
  border: 1px solid #ced8e7;
}

/* 마우스 호버 효과 */
.MenuCard:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46, 81, 150, 0.15);
  background-color: #e8eef8;
}

/* 키보드 포커스(Tab 이동) 접근성 강화 */
.MenuCard:focus-visible {
  outline: 4px solid #ffbf47 !important; /* 고대비 노란 포커스 링 */
  outline-offset: 3px;
}

/* ===================================================
   아이콘 및 텍스트 스타일
=================================================== */
.iconWrap {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #a4b4cc; /* 차분한 파스텔톤 블루 */
}

.menuIconSvg {
	width: 100%;
	height: 100%;
}

.menuIconSvg.textLogo {
	color: #adbcd4;
	letter-spacing: 1px;
}

.cardTitle {
	font-family: 'GangwonEduPower', sans-serif;
	font-size: 1.7rem;
	font-weight: normal;
	color: #404859;
	letter-spacing: -0.5px;
	line-height: 1.25;
	text-align: right;
}

/* ===================================================
   반응형 미디어 쿼리
=================================================== */
/* 태블릿 화면 (992px 이하) */
@media (max-width: 992px) {
  .MainMenuNav .MenuList {
    grid-template-columns: repeat(2, 1fr);
  }

  .MenuItem.bannerItem {
    grid-column: span 2;
  }

  .cardTitle {
    font-size: 1.3rem;
  }

  .iconWrap {
    width: 56px;
    height: 56px;
  }
}

/* 모바일 화면 (640px 이하) */
@media (max-width: 640px) {
  .MainGreeting {
    margin-bottom: 16px;
  }

	.MenuItem {
	  min-height: 100px;
	}

  .GreetingText .welcomeMsg {
    font-size: 1rem;
  }

  .GreetingText .dateInfo {
    font-size: 0.9rem;
  }

  .MainMenuNav .MenuList {
    grid-template-columns: 1fr; /* 1열 세로 나열 */
    gap: 12px;
  }

  .MenuItem.bannerItem {
    grid-column: span 1;
  }

  .bannerImgWrap {
    min-height: auto;
    padding: 10px 0;
  }

  .MenuCard {
    min-height: 90px;
    padding: 14px 20px;
    gap: 16px;
  }

  .iconWrap {
    width: 48px;
    height: 48px;
  }

  .cardTitle {
    font-size: 1.2rem;
  }
}