@charset "utf-8";

/* =============================================
   반응형 유틸리티
   ============================================= */
.pc_v {
  display: block;
}

.mo_v {
  display: none;
}

/* =============================================
   공통
   ============================================= */
.one-container {
  min-height: 350px;
}

.one-hd-con {
  background-color: #fff;
  border-bottom: 1px solid #e8e8e8;
  position: relative;
  z-index: 100;
}

.one-hd-con img {
  width: 100%;
  height: auto;
}

/* =============================================
   PC 헤더 — 단일 행 레이아웃
   ============================================= */
.one-hd-inner {
  max-width: var(--typeB-layout);
  margin: 0 auto;
  padding: var(--typeB-space-safe) var(--typeB-space-lg);
}

.one-hd-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  gap: var(--typeB-gap-lg);
}

/* 로고 */
.one-hd-logo-wrap {
  flex: 0 0 auto;
}

.one-hd-logo {
  line-height: 1;
  margin: 0;
}

.one-hd-logo a,
.one-hd-logo img {
  display: block;
}

/* GNB 네비게이션 */
.one-hd-nav {
  flex: 1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.one-hd-nav .one-main-menu {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 64px;
}

.one-hd-nav .menu-item {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
}

.one-hd-nav .menu-item>a {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 var(--typeB-gap-lg);
  font-weight: 500;
  color: #222;
  text-decoration: none;
  letter-spacing: -0.02em;
  white-space: nowrap;
  transition: color 0.2s ease;
  position: relative;
}

.one-hd-nav .menu-item>a::after {
  content: "";
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background-color: var(--main-color);
  transition: width 0.25s ease;
}

.one-hd-nav .menu-item:hover>a,
.one-hd-nav .menu-item.current-menu-item>a,
.one-hd-nav .menu-item.current-menu-ancestor>a {
  color: var(--main-color);
}

.one-hd-nav .menu-item:hover>a::after,
.one-hd-nav .menu-item.current-menu-item>a::after {
  width: calc(100% - 40px);
}

/* 드롭다운 서브메뉴 */
.one-hd-nav .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-top: 2px solid var(--main-color);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  list-style: none;
  margin: 0;
  padding: 4px 0;
  z-index: 200;
}

.one-hd-nav .menu-item:hover>.sub-menu {
  display: block;
}

.one-hd-nav .sub-menu .menu-item>a {
  display: block;
  padding: var(--typeB-gap-sm) var(--typeB-gap-r);
  font-size: 14px;
  font-weight: 400;
  color: #333;
  height: auto;
  white-space: nowrap;
}

.one-hd-nav .sub-menu .menu-item>a::after {
  display: none;
}

.one-hd-nav .sub-menu .menu-item:hover>a {
  color: var(--main-color);
  background: #f5f8fb;
}

/* 우: 전화 + 야간 뱃지 */
.one-hd-contact {
  gap: var(--typeB-gap-r);
}

.one-hd-contact .flx-row {
  align-items: center;
  gap: var(--typeB-gap-sm);
}

.one-hd-contact img {
  max-width: 18px;
}

/* 스티키 네비 (JS에서 .fixed 추가) */
.one-hd-con.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
  animation: oneHdSlideDown 0.3s ease forwards;
}

@keyframes oneHdSlideDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* =============================================
   모바일 헤더 — 상단 고정 바
   ============================================= */
.one-mo-hd {
  background-color: #fff;
  border-bottom: 1px solid #e8e8e8;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.one-mo-hd-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--typeB-space-safe);
  height: 70px;
}

/* 로고 */
.one-mo-hd-lf {
  flex: 1;
  display: flex;
  align-items: center;
}

.one-mo-hd-logo {
  line-height: 1;
  margin: 0;
}

.one-mo-hd-logo a,
.one-mo-hd-logo img {
  display: block;
  max-height: 32px;
  width: auto;
}

/* 우측: 전화 + 햄버거 */
.one-mo-hd-rg {
  display: flex;
  align-items: center;
  gap: var(--typeB-gap-sm);
}

/* 전화 아이콘 버튼 */
.one-mo-tel-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: var(--main-color);
}

.one-mo-tel-btn svg {
  width: 22px;
  height: 22px;
}

/* 햄버거 버튼 */
.one-mo-menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

.one-mo-menu-icon {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
}

.one-mo-bar {
  display: block;
  position: absolute;
  width: 22px;
  height: 2px;
  background-color: #222;
  border-radius: 2px;
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.2s ease,
    top 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}

.one-mo-bar--top {
  top: 4px;
}

.one-mo-bar--mid {
  top: 11px;
}

.one-mo-bar--btm {
  top: 18px;
}

/* X 변환 */
.one-mo-menu-btn.is-active .one-mo-bar--top {
  top: 11px;
  transform: rotate(45deg);
}

.one-mo-menu-btn.is-active .one-mo-bar--mid {
  opacity: 0;
  transform: scaleX(0);
}

.one-mo-menu-btn.is-active .one-mo-bar--btm {
  top: 11px;
  transform: rotate(-45deg);
}

/* 풀다운 메뉴 패널 */
.one-mo-nav {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease;
  background-color: #fff;
  border-top: 1px solid #e8e8e8;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06);
}

.one-mo-nav.is-open {
  max-height: var(--one-mo-nav-h, 600px);
}

/* 모바일 메뉴 리스트 */
.one-mo-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.one-mo-menu>.menu-item {
  border-bottom: 1px solid #f0f0f0;
}

.one-mo-menu>.menu-item:last-child {
  border-bottom: none;
}

.one-mo-menu>.menu-item>a {
  display: block;
  padding: var(--typeB-space-safe) var(--typeB-gap-r);
  font-size: 15px;
  font-weight: 500;
  color: #222;
  text-decoration: none;
  text-align: center;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.one-mo-menu>.menu-item>a:hover,
.one-mo-menu>.menu-item.current-menu-item>a {
  background-color: #f5f8fb;
  color: var(--main-color);
}

/* 하위 메뉴 */
.one-mo-menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #fafafa;
}

.one-mo-menu .sub-menu .menu-item>a {
  display: block;
  padding: var(--typeB-gap-sm) var(--typeB-gap-r) var(--typeB-gap-sm) var(--typeB-gap-xl);
  font-size: 14px;
  color: #555;
  text-decoration: none;
  border-top: 1px solid #ececec;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.one-mo-menu .sub-menu .menu-item>a:hover {
  background-color: #f0f0f0;
  color: var(--main-color);
}

/* =============================================
   태블릿 이하 (≤ 1024px)
   ============================================= */
@media all and (max-width: 1024px) {
  .pc_v {
    display: none !important;
  }

  .mo_v {
    display: block;
  }

  .one-container {
    padding-top: 0;
    /* 고정 모바일 헤더 높이만큼 */
  }
}

/* =============================================
   모바일 (≤ 639px)
   ============================================= */
@media all and (max-width: 639px) {
  .one-mo-hd-bar {
    height: 70px;
  }
}