@charset "UTF-8";

@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css");
#bo_v > header {
  display: none;
}

/* 개인정보처리방침 모달 — privacy-modal 스킬 규격
   구조: .modal.prtd > .modal_iner > .modal_hd / .modal_body > .policy_text / .modal_close
   트리거: 아무 요소에나 .modal_open_btn 만 붙이면 동작 (footer.js 가 위임) */
/* --------------- PC modal start-------------- */
.modal_open_btn {
    cursor: pointer;
}

.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* 스킬 규격의 .prtd 클래스는 프로젝트에 따라 없을 수 있어 여기서 직접 지정한다 */
    font-family: "Pretendard Variable", "Pretendard", -apple-system, sans-serif;

    display: flex;
    justify-content: center;
    align-items: center;

    background: rgba(0, 0, 0, 0.7);

    z-index: 9999999999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
}

.modal_iner {
    /* box-sizing: 전역이 border-box 로 바뀐 뒤에도 폭을 보존한다 (reset.css 2026-08-18) */
    box-sizing: content-box;
    width: 60vw;
    background: #fff;

    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;

    border-radius: 2vw;
    padding: 2vw;
}

.modal.on_modal {
    opacity: 1;
    visibility: visible;
}

.modal_hd {
    display: flex;
    justify-content: center;
    align-items: center;

    font-size: 1.4vw;
    font-weight: 600;
    margin-bottom: 2vw;

    width: 100%;
}

.modal_body {
    width: 100%;
    height: 60vh;
    overflow-y: scroll;
    font-size: 0.8vw;
}

.modal_close {
    width: 100%;
    height: 2vw;
    background: #000;
    color: #fff;
    font-size: 0.9vw;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 1vw;
    cursor: pointer;
    margin-top: 2vw;
    font-weight: 500;
}

/* ---------------footer start-------------- */
.footer {
  width: 100%;
  background-color: #009e5a;
  padding-bottom: calc(var(--px) * 129);
  font-family: var(--font-pretendard);
  font-size: var(--bodyS);
  font-weight: 500;
  line-height: 1.866;
  letter-spacing: -0.05em;
  color: #ffffff;
}

.footer img {
  display: block;
}

.footer_top {
  padding-top: calc(var(--px) * 73);
  padding-bottom: calc(var(--px) * 67);
}

/* 가로 중앙 = 부모 flex static-position · .footer_top.front 가 앞 섹션 .front(z10) 위로 올린다 */
.footer_emblem {
  top: calc(var(--px) * -79);
  width: calc(var(--px) * 652);
  aspect-ratio: 652 / 139;
  pointer-events: none; /* 푸터 위로 79px 삐져나와 본문 하단 버튼 클릭을 가로챔 */
}

.footer_emblem img {
  width: 100%;
}

.f_logo {
  width: calc(var(--px) * 285);
  aspect-ratio: 285 / 47;
}

.f_logo img {
  width: 100%;
}

.footer_bottom {
  padding: calc(var(--px) * 38) calc(var(--px) * 283) 0 calc(var(--px) * 231);
  border-top: 1px solid rgba(16, 17, 17, 0.2);
}

.footer_info {
  margin-top: calc(var(--px) * 18);
}

.footer_privacy {
  width: calc(var(--px) * 123);
  height: calc(var(--px) * 29);
  font: inherit;
  color: inherit;
  background-color: #009153;
  border: 0;
  border-radius: calc(var(--px) * 5);
}

.footer_tt {
  margin-top: calc(var(--px) * 20);
  margin-left: calc(var(--px) * 5);
}

/* 시안 원문의 항목 사이 연속 공백을 그대로 살린다 — 부모에 걸면 태그 사이 개행까지 줄로 렌더된다 */
.footer_tt p {
  white-space: pre-wrap;
}

.footer_right {
  gap: calc(var(--px) * 35);
  margin-top: calc(var(--px) * 12);
  margin-left: calc(var(--px) * 5);
}

.footer_gn {
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
}

.footer_sns {
  gap: calc(var(--px) * 13.33);
}

.footer_sns-link {
  width: calc(var(--px) * 56);
  height: calc(var(--px) * 56);
  background-color: #f3f4ff;
  border-radius: 50%;
}

.footer_sns-icon--blog,
.footer_sns-icon--talk {
  width: calc(var(--px) * 33);
  aspect-ratio: 33 / 30;
}

.footer_sns-icon--insta {
  width: calc(var(--px) * 30);
  aspect-ratio: 1 / 1;
}

.footer_sns-icon--youtube {
  width: calc(var(--px) * 31);
  aspect-ratio: 31 / 23;
}

/* ---------------footer end-------------- */
/* 로딩 */
.loading-overlay {
  position: fixed; /* 화면 전체를 덮도록 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 반투명 검은색 배경 */
  z-index: 9999; /* 다른 요소들보다 위에 표시 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.loading-spinner {
  width: 50px;
  height: 50px;
  border: 5px solid #f3f3f3; /* 회색 테두리 */
  /* 브랜드 메인색상. footer.css 가 library.css 보다 늦게 로드돼 var(--primary) 를 덮어쓰던 것을
     토큰 참조로 통일(2026-07-29). library.css 가 안 붙는 게시판 페이지 대비로 fallback 을 둔다. */
  border-top: 5px solid var(--primary, red);
  border-radius: 50%;
  animation: spin 1s linear infinite; /* 회전 애니메이션 */
}

@media screen and (max-width: 599px) {
  /* content-box 라 padding 6vw×2 를 빼야 카드 외곽이 93vw 가 된다 */
  .modal_iner {
    width: 81vw;
    border-radius: 4vw;
    padding: 6vw;
  }
  .modal_hd {
    font-size: 5vw;
    margin-bottom: 6vw;
  }
  .modal_close {
    height: 8vw;
    font-size: 3.6vw;
    border-radius: 2.8vw;
    margin-top: 6vw;
  }
  .modal_body {
    font-size: 3.3vw;
  }
  .modal-content {
    box-sizing: content-box;   /* 전역 border-box 전환 시 폭 보존 (reset.css 2026-08-18) */
    background-color: #fefefe;
    margin: 17% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 86%;
    border-radius: 30px;
  }
  /* -----footer custom start----- */
  /* 퀵바가 없어 fixed 하단 가림이 없다 — PC 129 를 스케일 스냅 */
  .footer {
    padding-bottom: 21.3333vw;
  }
  .footer_top {
    padding-top: 10.6667vw;
    padding-bottom: 8.5333vw;
  }
  /* 엠블럼·로고는 한 배율(39/285 vw/px)로 줄여 겹침 구도를 유지한다 */
  .footer_emblem {
    top: -10.8105vw;
    width: 89.2211vw;
  }
  .f_logo {
    width: 39vw;
  }
  /* SNS 를 위로 올리는 세로 스택 */
  .footer_bottom {
    flex-direction: column-reverse;
    align-items: center;
    gap: 6.4vw;
    padding: 6.4vw 5.3333vw 0;
  }
  .footer_info {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 0;
    word-break: keep-all;
  }
  .footer_privacy {
    width: auto;
    height: 8.5333vw;
    padding-inline: 3.2vw;
    border-radius: 1.0667vw;
  }
  .footer_tt {
    margin-top: 4.2667vw;
    margin-left: 0;
  }
  .footer_right {
    flex-direction: column;
    gap: 0;
    margin-top: 2.1333vw;
    margin-left: 0;
  }
  .footer_sns {
    gap: 2.1333vw;
  }
  .footer_sns-link {
    width: 10.6667vw;
    height: 10.6667vw;
  }
  /* 원 40/56 배율로 글리프 상대 크기를 유지한다 */
  .footer_sns-icon--blog,
  .footer_sns-icon--talk {
    width: 6.2857vw;
  }
  .footer_sns-icon--insta {
    width: 5.7143vw;
  }
  .footer_sns-icon--youtube {
    width: 5.9048vw;
  }
  /* -----footer custom end----- */
}
