/* header-chrome.css — projects/ivf(Astro) src/headerChrome.css를 그대로 이식
 * (2026-09-04 그쪽에서 이미 해결/검증된 내용, 재설계 없음).
 *
 * 배경: inc/head.html이 불러오는 css/common.css는 최상단에서
 * css/reset.css를 @import하는데, reset.css는
 *   - h1~h6 { font-weight: 400 !important; }
 *   - body  { font-weight: 400 !important; }
 *   - html  { font-size: 62.5%; }  (1rem = 10px로 재정의)
 *   - * { color:#161C1C; letter-spacing:-6%; }
 *   - input[type=text]/textarea/select 등 레거시 폼 스타일 강제
 * 처럼 태그/전역 선택자로 문서 전체를 리셋한다. 이걸 sub 페이지에 그대로
 * 두면 sub 본문(Tailwind 기반 sub.css)까지 전부 침범당한다 — 특히
 * h1~h6의 !important는 특이도(specificity)로 이길 수 없다.
 *
 * 검토했지만 채택하지 않은 대안(Astro 프로젝트에서 이미 검증):
 *   - CSS @layer로 common.css를 낮은 레이어에 두기: !important 선언은
 *     레이어 순서와 무관하게 일반 선언을 항상 이긴다. 레이어만으론
 *     reset.css의 !important를 못 이긴다.
 *   - Shadow DOM으로 헤더/푸터 격리: header.html의 햄버거 버튼(.hd_menu)이
 *     footer.html 끝에 include되는 sitemap.html의 .sitemap_wrap을 열고
 *     닫는다(common.js의 sitemap()). 서로 다른 shadow root에 들어가면
 *     jQuery가 경계를 못 넘어 이 상호작용이 깨진다.
 *
 * 그래서 이 파일은 common.css/reset.css 중 header.html·footer.html·
 * sitemap.html이 "실제로 쓰는" 규칙만 골라 그대로(값 100% 동일하게)
 * 옮기되, 모든 선택자를 아래 6개 컨테이너 클래스 밑으로 스코프한다:
 *   .header-wrap / .footer / .quick_wrap / .mo_quick_wrap /
 *   .sitemap_wrap / .mo_nav(+.mo_nav_overlay)
 * → sub 본문은 이 파일의 어떤 규칙에도 절대 매치되지 않는다(셀렉터 자체가
 *   이 6개 컨테이너의 자손이 아니면 시작도 안 됨).
 *
 * reset.css가 rem 단위(예: 1.6rem)를 쓰는 이유는 html{font-size:62.5%}
 * 때문에 1rem=10px이기 때문이다. 이 파일은 html 전체를 건드리지 않으므로
 * (sub 본문의 rem 계산에 영향 주면 안 됨), 헤더/푸터가 쓰는 rem 값은 전부
 * "그 62.5% 기준으로 계산한 실제 px 값"으로 미리 환산해서 박아둔다
 * (1.6rem→16px, 2.4rem→24px, 5rem→50px, 1.8rem→18px, 1.4rem→14px,
 * 1.2rem→12px — 아래 개별 주석으로 표시).
 *
 * fonts.css(@font-face)는 이 파일에 포함하지 않는다 — 선택자 기반 규칙이
 * 없어 sub 본문에 안전하게 그대로 로드해도 되고(inc/head.html에서
 * 별도로 <link>), Pretendard가 sub 본문에도 필요하기 때문이다.
 *
 * 원본 common.css/reset.css를 직접 수정하지 않는다 — 메인페이지
 * (index.html, $pageName=="main")는 지금처럼 common.css를 그대로 쓴다.
 * 이 파일은 inc/head.html에서 $pageName=="sub"일 때만 로드된다.
 */

:root {
  --brand: #6c4791;
}

/* ===== sub 페이지 본문 상단 오프셋 (2026-09-07 추가) =====
 * .header-wrap은 position:fixed; height:100px라 문서 흐름에서 공간을
 * 차지하지 않는다. inc/menu.php에서 sub 페이지는 헤더가 처음부터
 * .fixed(불투명 흰 배경) 상태로 시작하도록 기본값을 뒀으므로, 본문이
 * 헤더 밑에 가려지지 않게 헤더 높이(100px)만큼 미리 밀어준다.
 * sub 페이지는 전부 header.html 다음에 <main> 태그 하나만 오므로
 * body > main으로 스코프해도 안전하다(35개 sub 페이지 전수 확인,
 * 2026-09-07). 이 파일은 $pageName=="sub"일 때만 로드되므로
 * 메인페이지(index.html, 헤더가 영상 히어로 위에 투명하게 얹히는 구조)
 * 에는 영향 없다. */
body > main {
  padding-top: 100px;
}
/* 2026-09-08 추가: sub03(SpermBank_*)/04/05/06의 flat 구조 페이지들은
   <main>이 body 바로 밑이 아니라 <div class="page-shell"> 안에 한 겹 더
   감싸여 있어서(header.html 다음 <body><div class="page-shell"><main>...)
   위 body > main 규칙이 안 먹혀 본문이 고정 헤더(100px) 밑에 가려지고
   있었다. 마크업은 그대로 두고(실제 서버 파일 구조 변경 없음) 이 CSS
   규칙만 추가해서 동일하게 100px를 밀어준다. */
body > .page-shell > main {
  padding-top: 100px;
}

/* ===== 헤더/GNB (.header-wrap) — common.css 원본 그대로,
   전부 이미 .header-wrap으로 스코프되어 있어 그대로 옮김 ===== */
.header-wrap {
  width: 100%;
  height: 100px;
  z-index: 9999;
  transition: all 0.3s;
  position: fixed;
  left: 0px;
  top: 0px;
}
.header-wrap .header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 100%;
  min-width: inherit;
  padding: 0 30px;
  height: 100%;
  transition: all 0.4s;
  z-index: 2;
  position: relative;
}
.header-wrap .header > * {
  z-index: 2;
}
.header-wrap .hd_logo {
  flex-shrink: 0;
  z-index: 3;
}
.header-wrap .hd_logo a {
  display: block;
  width: 280px;
  height: 31px;
  background: url("/ivf/img/common/logo_w.svg") center center / contain
    no-repeat;
}
.header-wrap .hd_menu {
  width: 42px;
  height: 42px;
  cursor: pointer;
  background: url("/ivf/img/common/hd_menu.svg") center center no-repeat;
  border-radius: 100%;
}
.header-wrap .gnb_w {
  height: 100%;
  padding: 16px 0;
}
.header-wrap #gnb {
  display: inline-flex;
  gap: 65px;
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(2px);
  border-radius: 300px;
  padding: 20px 40px;
}
.header-wrap #gnb .main_menu {
  text-align: center;
  position: relative;
}
.header-wrap #gnb .main_menu > a {
  display: block;
  font-size: 20px;
  color: #fff;
  font-weight: bold;
  line-height: 1.4;
}
.header-wrap #gnb .main_menu:hover > a,
.header-wrap #gnb .main_menu:has(.sub_menu li:hover) > a {
  color: var(--brand) !important;
}
.header-wrap .hd_rt {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}
.header-wrap .hd_rt .link_btn {
  display: flex;
  align-items: center;
}
/* 원본 font-size:1.6rem (html{font-size:62.5%} 기준 1rem=10px → 16px) */
.header-wrap .hd_rt .link_btn > * {
  cursor: pointer;
  font-size: 16px;
  color: #fff;
}
.header-wrap .hd_rt .link_btn > * + *::before {
  display: inline-block;
  content: "";
  margin: 0 10px;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 100%;
  vertical-align: middle;
}
.header-wrap .sub_menu {
  position: absolute;
  display: none;
  left: 50%;
  width: max-content;
  transform: translateX(-50%);
  margin-top: 36px;
}
.header-wrap .sub_menu_wrap {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100px;
  background: #fff;
  width: 100%;
}
.header-wrap .sub_menu_wrap .container.flex {
  justify-content: center;
  gap: 65px;
  width: 800px;
  text-align: center;
  padding: 0 40px;
}
.header-wrap.fixed.sub_open .gnb_w::before {
  position: absolute;
  left: 0;
  top: 100px;
  background: #fff;
  display: block;
  content: "";
  width: 100%;
  height: 325px;
  z-index: -1;
  box-shadow: 0px 4px 10px 0px #0000001a;
}
.header-wrap .sub_menu li a {
  font-size: 18px;
  font-weight: 700;
  color: #6b7280;
  line-height: 2.5;
}
.header-wrap .sub_menu li:hover a {
  font-weight: 700;
  color: var(--brand);
}
.header-wrap.fixed .header {
  background: #fff;
  box-shadow: 0px 4px 10px 0px #0000001a;
}
.header-wrap.fixed .hd_logo a {
  background-image: url("/ivf/img/common/logo_c.svg");
}
.header-wrap.fixed #gnb .main_menu > a {
  color: #161c1c;
}
.header-wrap.fixed .hd_rt .link_btn > * {
  color: #161c1c;
}
.header-wrap.fixed .hd_rt .link_btn > *::before {
  background: #161c1c;
}
.header-wrap.fixed .hd_menu {
  background-color: var(--brand);
}

/* ===== 퀵메뉴(.quick_wrap/.mo_quick_wrap) — common.css 원본 그대로,
   전부 이미 스코프되어 있어 그대로 옮김 ===== */
@media screen and (max-width: 1280px) {
  .quick_wrap {
    right: 35px;
    bottom: 30px;
  }
}
@media screen and (min-width: 769px) and (max-width: 1279px) {
  .quick_wrap {
    transform: scale(0.7);
    right: 24px !important;
    bottom: 24px !important;
    transform-origin: bottom right;
  }
}
@media screen and (min-width: 769px) {
  .quick_wrap {
    position: fixed;
    right: 55px;
    bottom: 50px;
    z-index: 9;
    text-align: center;
  }
  .quick_wrap .quick_list {
    background: linear-gradient(180deg, #845eaa 0%, #c4a5b9 100%);
    border-radius: 16px;
    width: 110px;
  }
  .quick_wrap .quick_list li {
    width: 100%;
    padding: 16px 0;
    text-align: center;
  }
  .quick_wrap .quick_list li + li {
    border-top: solid 1px rgba(255, 255, 255, 0.5);
  }
  .quick_wrap .quick_list li img {
    display: block;
    margin: 0 auto 10px;
  }
  .quick_wrap .quick_list li a {
    display: block;
    font-size: 18px;
    color: #fff;
    font-weight: 700;
  }
}
@media screen and (max-width: 768px) {
  .quick_wrap {
    display: none;
  }
  .mo_quick_wrap {
    display: block;
    position: fixed;
    left: 0px;
    bottom: 0;
    z-index: 9;
    text-align: center;
    background: #fff;
    width: 100%;
    height: 70px;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    box-shadow: 0px 4px 10px 0px #0000001a;
  }
  .mo_quick_wrap .quick_list {
    display: flex;
    width: 100%;
    align-items: center;
    height: 100%;
  }
  .mo_quick_wrap .quick_list li {
    flex: 1;
    text-align: center;
  }
  .mo_quick_wrap .quick_list li a {
    display: inline-flex;
    font-size: 14px;
    color: #555555;
    font-weight: 500;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
  }
  .mo_quick_wrap .quick_list li .icon {
    mask-repeat: no-repeat;
    mask-position: center center;
    background-color: var(--brand);
    width: 20px;
    height: 20px;
    display: block;
    mask-size: cover;
  }
  .mo_quick_wrap .quick_list li:first-child .icon {
    mask-image: url("/ivf/img/common/quick_icon01.svg");
  }
  .mo_quick_wrap .quick_list li:nth-child(2) .icon {
    mask-image: url("/ivf/img/common/quick_icon02.svg");
  }
  .mo_quick_wrap .quick_list li:nth-child(3) .icon {
    mask-image: url("/ivf/img/common/quick_icon03.svg");
  }
  .mo_quick_wrap .quick_list li:last-child .icon {
    mask-image: url("/ivf/img/common/quick_icon04.svg");
  }
}

/* ===== 푸터(.footer) — common.css 원본 그대로 ===== */
.footer {
  background: url("/ivf/img/common/ft_bg.png") center center / cover;
  width: 100%;
  z-index: 2;
  overflow: hidden;
  position: relative;
  padding: 115px 0;
}
.footer * {
  color: #fff;
}
.footer .container {
  margin: 0 auto;
  width: 100%;
  max-width: 1280px;
  position: relative;
  overflow: hidden;
}
.footer > .container {
  display: flex;
  align-items: center;
  gap: 80px;
}
.footer .summary_wrap {
  max-width: 475px;
  flex: 1;
}
.footer .map_wrap {
  max-width: 615px;
  flex: 1;
}
/* 원본 font-size:2.4rem → 24px */
.footer p.cont_tit {
  font-size: 24px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 34px;
  color: #fff;
}
.footer .summary_wrap > div + div {
  margin-top: 32px;
}
.footer .summary_wrap .map_cont p.cont_tit {
  margin-bottom: 24px;
}
/* 원본 font-size:2.4rem → 24px */
.footer .summary_wrap .map_cont p:not(.cont_tit) {
  font-size: 24px;
  font-weight: 700;
}
.footer .map_cont .map_btn {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 24px;
}
/* 원본 font-size:1.8rem → 18px */
.footer .map_cont .map_btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 18px;
  height: 64px;
  font-weight: 700;
  flex: 1;
  background: #f5f7fa;
  color: #161c1c;
  border: 1px solid #d1d5db;
  border-radius: 12px;
}
/* 원본 font-size:5rem → 50px */
.footer .summary_wrap .tel_cont p.tel {
  font-size: 50px;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 4px;
}
.footer .summary_wrap .time_cont ul {
  margin-top: 13px;
}
.footer .summary_wrap .time_cont ul li + li {
  margin-top: 3px;
}
/* 원본 font-size:1.8rem → 18px */
.footer .summary_wrap .time_cont ul li {
  display: flex;
  align-items: center;
  width: max-content;
  position: relative;
  font-size: 18px;
  gap: 24px;
  line-height: 36px;
  font-weight: 600 !important;
}
.footer .summary_wrap .time_cont ul li p {
  display: flex;
  align-items: center;
}
.footer .summary_wrap .time_cont ul li span {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.5px;
}
.footer .summary_wrap .time_cont ul li b {
  min-width: 86px;
  text-align: justify;
  vertical-align: middle;
  text-align-last: justify;
  margin-right: 16px;
}
/* 원본 font-size:1.4rem → 14px */
.footer .summary_wrap .time_cont ul li .remark {
  font-size: 14px;
  font-weight: 500;
}
.footer .root_daum_roughmap {
  width: 100%;
  border-radius: 24px;
}
.footer .wrap_controllers,
.footer .wrap_btn_zoom,
.footer .section_address {
  display: none !important;
}
.footer .ft_bottom {
  position: relative;
  margin-top: 84px;
}
.footer .ft_bottom .ft_bt_top {
  width: 100%;
  border-bottom: solid 1px #9ca3af;
  margin-bottom: 38px;
  padding-bottom: 38px;
  display: flex;
  align-items: end;
  justify-content: space-between;
}
.footer .ft_bottom .ft_bt_top .ft_btn {
  display: flex;
  gap: 16px;
}
/* 원본 font-size:1.2rem → 12px */
.footer .ft_bottom .ft_bt_top .ft_btn a {
  font-size: 12px;
  color: #d1d5db;
}
.footer .ft_copy {
  display: inline-flex;
  align-items: end;
  justify-content: space-between;
  width: 100%;
}
/* 원본 font-size:1.2rem → 12px */
.footer .ft_copy p {
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.4;
  color: #d1d5db;
}
.footer .ft_copy .sns_btn {
  display: flex;
  gap: 14px;
}
/* footer.html이 <div class="ft_bt_top flex"> 처럼 범용 .flex 클래스를
   같이 쓰므로, .footer 스코프 안에서만 그 정의를 되살린다(원본은
   .flex{display:flex}로 전역이었음). */
.footer .flex {
  display: flex;
}
/* header.html의 <div class="mo_link_btn is_mo">, footer.html의
   <div class="mo_quick_wrap is_mo">/<p class="is_mo">가 쓰는 .is_mo
   (원본 common.css: 전역 { display:none })를 .header-wrap/.footer/
   .mo_quick_wrap 스코프로 되살림 — 아래 모바일 미디어쿼리의
   display:block 오버라이드도 동일하게 스코프. */
.header-wrap .is_mo,
.footer .is_mo,
.mo_quick_wrap.is_mo {
  display: none;
}

/* ===== 사이트맵(.sitemap_wrap) — common.css 원본 그대로,
   sitemap.html의 <div class="container">/<div class="flex">/
   <p class="tit bold"> 처럼 범용 클래스를 쓰는 지점만 .sitemap_wrap
   스코프를 명시적으로 덧붙임 ===== */
.sitemap_wrap {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 9999;
  display: none;
  background: url("/ivf/img/common/sitemap_bg.png") center center / cover;
}
.sitemap_wrap .container {
  margin: 0 auto;
  width: 100%;
  max-width: 1280px;
  position: relative;
  overflow: hidden;
}
.sitemap_wrap > .container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.sitemap_wrap.active {
  display: block;
}
.sitemap_wrap .sitemap_top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  opacity: 0;
  margin-bottom: 50px;
}
.sitemap_wrap .sitemap_top .logo {
  width: 410px;
  height: 50px;
  background-size: cover;
}
.sitemap_wrap .close {
  background: url("/ivf/img/common/sitemap_x.svg");
  cursor: pointer;
  width: 45px;
  height: 45px;
  position: absolute;
  right: 66px;
  top: 50px;
}
.sitemap_wrap .sitemap_cont {
  position: relative;
  display: flex;
  align-items: center;
  gap: 64px;
}
.sitemap_wrap .sitemap_cont .sitemap_left {
  width: 36%;
  background-size: cover;
  aspect-ratio: 669 / 562;
  min-width: 669px;
}
.sitemap_wrap .sitemap_list {
  width: 100%;
}
.sitemap_wrap .sitemap_list .flex {
  display: flex;
  gap: 30px;
  width: 100%;
  flex-direction: column;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu {
  flex: 1;
  transform: translateY(50px);
  transition: all 0.5s ease-in-out;
  opacity: 0;
  position: relative;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu p.tit::before {
  display: inline-block;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #fff;
  position: absolute;
  left: -15px;
  top: 10px;
  opacity: 0;
  transition: opacity 0.4s;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu.active p.tit::before {
  opacity: 1;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu p.tit {
  font-size: 24px;
  color: #fff;
  margin-bottom: 20px;
}
/* 원본 .bold{font-weight:700 !important}(common.css, 전역)을
   sitemap.html의 <p class="tit bold">에서만 되살림 — sitemap_wrap 밖으론
   .bold 선택자 자체가 존재하지 않으므로 sub 본문엔 영향 없음. */
.sitemap_wrap .bold {
  font-weight: 700 !important;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 0;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul li {
  color: #fff;
  position: relative;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul li + li {
  margin-left: 20px;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul li + li::before {
  display: inline-block;
  vertical-align: bottom;
  content: "";
  width: 1px;
  height: 15px;
  background-color: rgba(255, 255, 255, 0.2);
  position: absolute;
  left: -10px;
  top: 0;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul li a {
  font-size: 16px;
  color: inherit;
  line-height: 1;
  white-space: nowrap;
}
.sitemap_wrap .sitemap_list .flex > div.sub_menu ul li:hover {
  font-weight: 700;
}
.sitemap_wrap.active .sitemap_top {
  opacity: 1;
}
.sitemap_wrap.active .sitemap_list .flex > div.sub_menu {
  opacity: 1;
  transform: translateY(0);
}

/* ===== 데스크톱 전용: 모바일 내비/오버레이 숨김 — common.css 원본.
   .center-header-wrap/.mo_center_link/.mo_center_click_toggle은
   inc/header.html이 안 쓰는(다른 헤더 변형용) 선택자라 제외. ===== */
@media screen and (min-width: 1281px) {
  .mo_nav {
    display: none;
  }
  .mo_nav_overlay {
    display: none;
  }
}

/* ===== 태블릿/모바일 공통(~1280px) — common.css 원본 중
   header/footer/mo_nav 관련만. 원본의 전역 *{word-break:keep-all}는
   6개 컨테이너에만 스코프해서 되살림(상속되니 자손엔 동일하게 적용됨).
   .layerPop-wrap 블록은 팝업 레이어 전용이라 제외. ===== */
@media screen and (max-width: 1280px) {
  .header-wrap,
  .footer,
  .quick_wrap,
  .mo_quick_wrap,
  .sitemap_wrap,
  .mo_nav {
    word-break: keep-all;
  }
  .header-wrap .header {
    padding: 0 35px;
    height: 78px;
  }
  .header-wrap .gnb_w {
    display: none !important;
  }
  .header-wrap .hd_logo a {
    width: 180px;
    height: 28px;
  }
  .header-wrap .hd_menu {
    width: 35px;
    height: 35px;
    background-size: auto 16px;
  }
  .mo_nav .nav_top {
    padding: 0 35px;
    height: 78px;
    justify-content: space-between;
    display: flex;
    background: #fff;
    position: relative;
    align-items: center;
  }
  .mo_nav .nav_top .logo {
    width: 180px;
    height: 28px;
  }
  .mo_nav .nav_btn {
    display: flex;
    align-items: center;
    gap: 25px;
  }
  .mo_nav .nav_btn .btn_close {
    width: 38px;
    height: 38px;
    display: inline-block;
    position: relative;
    background: url("/ivf/img/common/mo_hd_gnb_x.svg") center center no-repeat;
    background-size: cover;
  }
  .mo_nav {
    display: none;
    background: #f5f7fa;
    position: fixed;
    z-index: 10000;
    width: 50vw;
    height: 100%;
    top: 0;
    right: 0;
  }
  .mo_nav_overlay {
    position: fixed;
    z-index: 9999;
    width: 100%;
    height: 100%;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.3);
    display: none;
  }
  .mo_nav > .flex {
    height: 100%;
  }
  .mo_nav .mo_gnb {
    max-height: calc(100% - 80px);
    overflow-y: auto;
    scrollbar-width: thin;
  }
  .mo_nav .mo_gnb .main_menu > p::after {
    display: inline-block;
    content: "";
    width: 13px;
    height: 13px;
    background: url("/ivf/img/common/mo_hd_gnb_arrow.svg") center center
      no-repeat;
    transition: all 0.4s;
  }
  .mo_nav .mo_gnb .main_menu.active > p::after {
    transform: scaleY(-1);
  }
  .mo_nav .mo_gnb .main_menu > p {
    line-height: 64px;
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    border-bottom: 1px solid #d1d5db;
  }
  .mo_nav .sub_menu {
    width: 100%;
  }
  .mo_nav .sub_menu_list {
    display: none;
    background: #fff;
    padding: 25px 40px;
    border-bottom: 1px solid #d1d5db;
  }
  .mo_nav .sub_menu_list li {
    position: relative;
  }
  .mo_nav .sub_menu_list li + li {
    margin-top: 16px;
  }
  .mo_nav .sub_menu_list a {
    display: block;
    font-size: 16px;
    color: #6b7280;
  }
  .footer .container {
    gap: 30px;
    padding: 0 16px;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
  .footer .map_wrap {
    width: 100%;
    max-width: initial;
  }
  .footer .summary_wrap {
    width: 100%;
    max-width: initial;
    padding-left: 20px;
  }
}

/* ===== 모바일(~768px) — common.css 원본 중 header/footer/mo_nav
   관련만. .layerPop-wrap은 제외. ===== */
@media screen and (max-width: 768px) {
  .header-wrap .header {
    height: 78px;
    padding: 0 20px;
  }
  .mo_nav {
    width: 100%;
  }
  .mo_nav .nav_top {
    padding: 0 20px;
  }
  .header-wrap .hd_rt .link_btn.mo_none {
    display: none;
  }
  .header-wrap .is_mo,
  .footer .is_mo,
  .mo_quick_wrap.is_mo {
    display: block;
  }
  .header-wrap:not(.fixed) .hd_rt .mo_link_btn p img {
    filter: brightness(1000%);
  }
  .footer {
    padding: 50px 0 90px;
    background-image: url("/ivf/img/common/ft_bg_mo.png");
  }
  .footer .root_daum_roughmap {
    height: 250px;
  }
  .footer .summary_wrap .map_cont p:not(.cont_tit) {
    font-size: 16px;
  }
  .footer .summary_wrap p.cont_tit {
    font-size: 16px;
  }
  .footer .summary_wrap p.cont_tit img {
    width: 30px;
  }
  .footer .summary_wrap .tel_cont p.tel {
    font-size: 26px;
    line-height: 1.4;
  }
  .footer .summary_wrap .time_cont ul li {
    line-height: 32px;
    flex-direction: column;
    gap: 0;
    align-items: flex-start;
  }
  .footer .summary_wrap .time_cont ul li span.remark {
    line-height: initial;
  }
  .footer .ft_bottom {
    margin-top: 48px;
  }
  .footer .ft_bottom .ft_bt_top {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 24px;
    padding-bottom: 24px;
  }
  .footer .ft_bottom .ft_bt_top img {
    height: 22px;
  }
  .footer .ft_bottom .ft_copy {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 12px;
  }
  .footer .ft_copy p.mo_none {
    display: none;
  }
}

/* ===== 스코프된 최소 리셋 — reset.css가 담당하던 것 중 헤더/푸터/
   퀵메뉴/사이트맵 자신의 렌더링에 실제로 필요한 항목만, 6개 컨테이너의
   자손으로만 한정해서 되살린다(reset.css의 * 전역 색상/자간, body·h1~h6
   굵기 !important, margin/padding/border 리셋, ul/li list-style, a 링크
   스타일, img 테두리/정렬, b 굵기, span 상속은 전부 sub 본문에는 적용하지
   않는다 — 이게 이번 작업의 핵심). */
.header-wrap,
.footer,
.quick_wrap,
.mo_quick_wrap,
.sitemap_wrap,
.mo_nav {
  box-sizing: border-box;
}
.header-wrap *,
.footer *,
.quick_wrap *,
.mo_quick_wrap *,
.sitemap_wrap *,
.mo_nav * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  font-family: "Pretendard", sans-serif;
}
.header-wrap ul,
.footer ul,
.quick_wrap ul,
.mo_quick_wrap ul,
.sitemap_wrap ul,
.mo_nav ul,
.header-wrap ol,
.footer ol {
  list-style: none;
}
.header-wrap a,
.footer a,
.quick_wrap a,
.mo_quick_wrap a,
.sitemap_wrap a,
.mo_nav a {
  color: #161c1c;
  text-decoration: none;
}
.header-wrap img,
.footer img,
.quick_wrap img,
.mo_quick_wrap img,
.sitemap_wrap img,
.mo_nav img {
  max-width: 100%;
  border: 0;
  vertical-align: middle;
}
.header-wrap b,
.footer b,
.sitemap_wrap b {
  font-weight: 600;
  color: inherit;
}
.header-wrap span,
.footer span,
.sitemap_wrap span {
  color: inherit;
  letter-spacing: inherit;
}
