@charset "utf-8";

/* ============================================
   WRAP / CONTAINER
   ============================================ */
#wrap {
  overflow: hidden;
  position: relative;
  width: 100%;
}

#container { position: relative; }

/* ============================================
   HEADER
   ============================================ */
#header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
  padding: 40px var(--side-pad);
}

/* 진입 시 히어로 요소와 함께 서서히 드러난다.
   JS가 .is-intro 를 붙였을 때만 숨김 상태로 시작한다 */
#header.is-intro .logo,
#header.is-intro .util {
  opacity: 0;
  -webkit-transform: translateY(-12px);
  transform: translateY(-12px);
  -webkit-transition: opacity 0.9s ease-out, -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.9s ease-out, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

#header.is-intro .logo { -webkit-transition-delay: 0.15s; transition-delay: 0.15s; }
#header.is-intro .util { -webkit-transition-delay: 1.45s; transition-delay: 1.45s; }

#header.is-loaded .logo,
#header.is-loaded .util {
  opacity: 1;
  -webkit-transform: none;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  #header.is-intro .logo,
  #header.is-intro .util {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
    -webkit-transition: none;
    transition: none;
  }
}

#header .logo { display: block; width: 90px; }

#header .logo img { width: 100%; }

/* 우측 유틸 */
#header .util {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 40px;
}

/* 공식 사이트 이동 버튼 */
#header .btn-site {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 10px;
  position: relative;
  height: 55px;
  padding: 0 20px 0 30px;
  background: rgba(85, 85, 85, 0.7);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  font-size: 16px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  white-space: nowrap;
  -webkit-transition: background 0.2s;
  transition: background 0.2s;
}

#header .btn-site:hover { background: rgba(120, 120, 120, 0.8); }

/* 좌우 사선 마감 */
#header .btn-site::before,
#header .btn-site::after {
  content: '';
  position: absolute;
  top: 0;
  width: 10px;
  height: 100%;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#header .btn-site::before {
  left: -10px;
  background-image: url('/ns2/assets/images/main/bg_btn_edge_l.svg');
}

#header .btn-site::after {
  right: -10px;
  background-image: url('/ns2/assets/images/main/bg_btn_edge_r.svg');
}

/* 원본 아이콘이 뒤로 화살표라 방향만 뒤집어 사용 */
#header .btn-site .ico {
  width: 24px;
  height: 24px;
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

/* 상하 헤어라인 */
#header .btn-site .line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.35);
}

#header .btn-site .line-t { top: 8px; }
#header .btn-site .line-b { bottom: 8px; }

/* 모바일 전용 축약 문구 */
#header .btn-site .txt-sm { display: none; }

/* 언어 선택 */
#header .lang { position: relative; }

#header .lang-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  height: 24px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
}

#header .lang-btn .ico-globe { width: 20px; height: 20px; }

#header .lang-btn .ico-arw {
  width: 12px;
  height: 7px;
  -webkit-transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
}

#header .lang.is-open .lang-btn .ico-arw {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

#header .lang-list {
  display: none;
  position: absolute;
  top: 34px;
  right: 0;
  min-width: 120px;
  padding: 6px 0;
  border: 1px solid var(--color-border);
  background: rgba(13, 14, 18, 0.92);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

#header .lang.is-open .lang-list { display: block; }

#header .lang-list a {
  display: block;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
}

#header .lang-list a:hover,
#header .lang-list a.is-active { color: #fff; background: rgba(0, 94, 255, 0.4); }

@media (max-width: 1280px) {
  #header { padding: 30px 40px; }
  #header .util { gap: 24px; }
}

@media (max-width: 1024px) {
  #header .btn-site { height: 48px; padding: 0 16px 0 22px; font-size: 14px; }
}

@media (max-width: 768px) {
  #header { padding: 20px; }
  #header .logo { width: 64px; }
  #header .btn-site { height: 42px; padding: 0 12px 0 16px; font-size: 12px; }
  #header .btn-site::before,
  #header .btn-site::after { display: none; }
  #header .btn-site .line { display: none; }
  #header .util { gap: 14px; }
}

@media (max-width: 480px) {
  #header .btn-site { gap: 6px; padding: 0 12px; font-size: 11px; }
  #header .btn-site .txt { display: none; }
  #header .btn-site .txt-sm { display: block; }
  #header .btn-site .ico { width: 20px; height: 20px; }
}

/* ============================================
   FOOTER
   ============================================ */
#footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 36px;
  padding: 60px var(--side-pad);
  background: var(--color-bg-deep);
  text-align: center;
}

#footer .tit {
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
}

#footer .sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 20px;
}

#footer .sns a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--color-bg-circle);
  -webkit-transition: background 0.2s;
  transition: background 0.2s;
}

#footer .sns a:hover { background: var(--color-primary); }

#footer .sns img { width: auto; height: 28px; }

@media (max-width: 1024px) {
  #footer { gap: 28px; padding: 50px 40px; }
  #footer .tit { font-size: 18px; }
}

@media (max-width: 768px) {
  #footer { padding: 40px 20px; }
  #footer .tit { font-size: 16px; }
  #footer .sns { gap: 14px; }
  #footer .sns a { width: 54px; height: 54px; }
  #footer .sns img { height: 22px; }
}

@media (max-width: 480px) {
  #footer .tit { font-size: 14px; }
  #footer .sns a { width: 46px; height: 46px; }
  #footer .sns img { height: 18px; }
}
