/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Jun 29 2026 | 11:22:14 */
@charset "utf-8";

/* ============================
   공통 전역 커스텀 CSS
============================ */

:root {
  /* ── 색상 ── */
  --main-color: #132146;
  --sub-color01: #89bee1;
  --sub-color02: #3980bc;
  --sub-color03: #fb7751;
  --sub-color04: #f1f8ff;
  --gray-color01: #b0b0b0;
  --gray-color02: #a2a3a3;
  --gray-color03: #efefef;
  --gray-color04: #ddd;
  --white-color: #f8f8f8;
  --one-txt-color: #333333;
  --one-txt-color02: #787878;
  --one-layout: 1200px;
  --one-layout-lg: 1680px;
  --one-outer-layout: 1920px;

  --one-hd1: 50px;
  --one-hd2: 42px;
  --one-hd3: 34px;
  --one-p-tit: 26px;
  --one-body: 18px;
  --one-caption: 16px;
  --one-m-footer: 14px;
  --one-m-copy: 12px;

  /* ── 타이포그래피 — 줄간격 ──
   * 전체 기본값: --one-lh-r (1.6)
   * 1.3이 필요한 요소만 .lh-lg 클래스를 추가해 개별 적용
   */
  --one-lh-r: 1.6;
  --one-lh-lg: 1.3;

  /* ── 섹션·컨테이너 간 여백 ── */
  --one-space-xl: 120px;
  --one-space-lg: 100px;
  --one-space-r: 80px;
  --one-space-s: 48px;
  --one-space-safe: 16px;
  /* 섹션 좌우 안전 패딩 고정값 — 반응형 변경 금지 */

  /* ── 요소 간 간격 ── */
  --one-gap-xl: 32px;
  --one-gap-lg: 24px;
  --one-gap-r: 16px;
  --one-gap-sm: 8px;
  --one-gap-xs: 4px;
  /* 최소 간격 — 리스트 항목 하단 여백 등 / 반응형 변경 금지 */

  /* ── 아이콘 크기 ──
   * width 기준. height 는 auto (비율 유지)
   * s  : 인라인 텍스트 옆, 뱃지 내부
   * r  : 버튼·입력 필드 기본 아이콘
   * l  : 카드·리스트·툴바 아이콘
   * xl : 섹션 포인트·빈 상태(Empty State) 아이콘
   */
  --one-icon-s: 16px;
  --one-icon-r: 20px;
  --one-icon-l: 24px;
  --one-icon-xl: 32px;
}

/* ============================
   전역 기본 스타일
============================ */

/* 드래그 선택 텍스트 */
::selection {
  background-color: var(--main-color);
  color: var(--sub-color04);
}

::-moz-selection {
  background-color: var(--main-color);
  color: var(--sub-color04);
}

/* ============================
   레이아웃
   * .wrap-max    : 섹션 전체 화면 최대 너비 제한
   * .section     : 섹션 기본 래퍼 — 좌우 safe 패딩 필수, 상하 0
   * .x-sf        : .section 없이 좌우 safe 패딩만 필요할 때
   * .con-inner   : 기본 콘텐츠 영역 — 상하 여백만, 좌우 패딩 없음
   * .con-inner-lg: 와이드 콘텐츠 영역 — 상하 여백만, 좌우 패딩 없음
============================ */
figure {
  margin-bottom: 0;
}

.wrap-max {
  max-width: var(--one-outer-layout);
  width: 100%;
  margin: 0 auto;
}

.section {
  position: relative;
  padding: 0;
  overflow-x: hidden;
  overflow-x: clip;
  /* 호환되면 동작 아니면 hidden  */
  /* 좌우 safe 패딩 필수 */
}

.x-sf {
  padding-right: var(--one-space-safe) !important;
  padding-left: var(--one-space-safe) !important;
}

.con-inner-board {
  position: relative;
  width: 100%;
  max-width: var(--one-layout);
  margin: 0 auto;
  padding: var(--one-space-lg) 0;
}

.con-inner {
  position: relative;
  width: 100%;
  max-width: var(--one-layout);
  margin: 0 auto;
  padding: var(--one-space-lg) 0;
  /* 상하 여백만 */
}

.con-inner-lg {
  position: relative;
  width: 100%;
  max-width: var(--one-layout-lg);
  margin: 0 auto;
  padding: var(--one-space-lg) 0;
  /* 상하 여백만 */
}

.con-inner img,
.con-inner-lg img {
  width: 100%;
  height: auto;
}

/* Flex 유틸리티 */
.f-row {
  display: flex;
  flex-direction: row;
}

.f-col {
  display: flex;
  flex-direction: column;
}

/* 이미지 컨테이너 */
.img-box {
  position: relative;
  overflow: hidden;
}

.img-box img {
  width: 100%;
  height: auto;
}

.con-inner svg {
  fill: currentColor;
  color: currentColor;
}

/* ============================
   타이포그래피
============================ */

.txt-wrap {
  color: var(--one-txt-color);
  font-size: var(--one-body);
  line-height: var(--one-lh-r);
  font-weight: 400;
  word-break: keep-all;
  letter-spacing: -0.03em;
}

.txt-wrap a {
  color: inherit;
}

/* 타입 스케일 — 기본 line-height 1.6 / 1.3이 필요하면 .lh-lg 추가 */
.txt-wrap .hd1 {
  font-size: var(--one-hd1);
  line-height: var(--one-lh-r);
  font-weight: 700;
}

.txt-wrap .hd2 {
  font-size: var(--one-hd2);
  line-height: var(--one-lh-r);
  font-weight: 600;
}

.txt-wrap .hd3 {
  font-size: var(--one-hd3);
  line-height: var(--one-lh-r);
  font-weight: 500;
}

.txt-wrap .p-tit {
  font-size: var(--one-p-tit);
  line-height: var(--one-lh-r);
  font-weight: 500;
}

.txt-wrap .ft-body {
  font-size: var(--one-body);
  line-height: var(--one-lh-r);
  font-weight: 400;
}

.txt-wrap .cp-txt {
  font-size: var(--one-caption);
  line-height: var(--one-lh-r);
  font-weight: 400;
}

/* 줄간격 유틸리티 — 특정 요소에만 1.3 적용 */
.lh-lg {
  line-height: var(--one-lh-lg) !important;
}

/* 텍스트 정렬 */
.txt-lf {
  text-align: left;
}

.txt-rg {
  text-align: right;
}

.txt-ct {
  text-align: center;
}

/* 텍스트 꾸밈 */
.txt-ul {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.txt-uc {
  text-transform: uppercase;
}

/* 브랜드 서체 */
.sub-ft {
  font-family: 'Ridibatang', sans-serif !important;
  letter-spacing: -0.05em;
}

/* 폰트 굵기 유틸리티 */
.ft-b {
  font-weight: 700 !important;
}

.ft-sb {
  font-weight: 600 !important;
}

.ft-r {
  font-weight: 400 !important;
}

.ft-l {
  font-weight: 300 !important;
}

/* 보조 텍스트
 * font-size: --one-caption(15px)과 동일값으로 변수 참조
 * 태블릿: --one-caption 재정의(13px)에 따라 자동 전환
 * 모바일: vw 전환 예외 — 12px 고정 (2.7vw가 너무 작아질 수 있어 별도 지정)
 * padding-top: 태블릿에서 --one-gap-sm 만큼 상단 여백 추가
 */
.txt-help {
  font-size: var(--one-caption);
  color: var(--gray-color01);
}

/* ============================
   색상 유틸리티
   * 각 계열의 첫 번째(01)는 번호 생략
   * .m-color    = --main-color
   * .sb-color   = --sub-color01
   * .gray-color = --gray-color01
============================ */

.m-color {
  color: var(--main-color);
}

.sb-color {
  color: var(--sub-color01);
}

.sb02-color {
  color: var(--sub-color02);
}

.sb03-color {
  color: var(--sub-color03);
}

.sb04-color {
  color: var(--sub-color04);
}

.gray-color {
  color: var(--gray-color01);
}

.gray-color02 {
  color: var(--gray-color02);
}

.gray-color03 {
  color: var(--gray-color03);
}

.gray-color04 {
  color: var(--gray-color04);
}

.w-color {
  color: var(--white-color);
}

.ft-g-color {
  color: var(--one-txt-color02);
}

/* 배경 유틸리티 */
.bg-cv {
  background: no-repeat center / cover;
}

.bg-ct {
  background: no-repeat center / 100% auto;
}

/* ============================
   아이콘 크기 유틸리티
   * width: 변수값 고정 / height: auto (비율 유지)
============================ */

.icon-s,
.icon-r,
.icon-l,
.icon-xl {
  display: inline-block;
  height: auto;
  flex-shrink: 0;
}

.icon-s {
  width: var(--one-icon-s);
}

.icon-r {
  width: var(--one-icon-r);
}

.icon-l {
  width: var(--one-icon-l);
}

.icon-xl {
  width: var(--one-icon-xl);
}

/* ============================
   여백 초기화 유틸리티
============================ */

.pdt-0 {
  padding-top: 0 !important;
}

.pdb-0 {
  padding-bottom: 0 !important;
}

.mgt-0 {
  margin-top: 0 !important;
}

.mgb-0 {
  margin-bottom: 0 !important;
}

/* 인라인 스페이서 */
.sp {
  display: inline-block;
  width: 1em;
}

/* ============================
   반응형 가시성
   * view-mo   : 태블릿·모바일에서 표시 (block)
   * view-pc   : 태블릿·모바일모바일에서 숨김
   * view-mo-i : 태블릿·모바일에서 표시 (inline-block)
   * only-mo   : 모바일에서만 표시
============================ */

.view-mo {
  display: none !important;
}

.view-mo-i {
  display: none !important;
}

.only-mo {
  display: none !important;
}

/* ============================
   리스트 스타일
============================ */

/* 점(dot) 스타일 */
.lst-dot li {
  position: relative;
  padding-left: var(--one-gap-r);
  padding-bottom: var(--one-gap-xs);
  /* 4px — 항목 간 최소 하단 여백 */
}

.lst-dot li.lst-sub {
  font-weight: 700;
  padding-left: 0;
}

.lst-dot li::before {
  position: absolute;
  content: '';
  clear: both;
  width: 3px;
  /* 장식 기호 크기 — 변수화 제외 */
  height: 3px;
  border-radius: 50%;
  background-color: var(--one-txt-color);
  left: 2px;
  /* 장식 기호 위치 미세조정 — 변수화 제외 */
  top: 0.78em;
}

.lst-dot li.space::before,
.lst-dot li.lst-sub::before {
  display: none;
}

.lst-dot li.space {
  height: 1em;
}

/* 대시(dash) 스타일 */
.lst-dash li {
  position: relative;
  padding-left: var(--one-gap-r);
  padding-bottom: var(--one-gap-xs);
  /* 4px — 항목 간 최소 하단 여백 */
}

.lst-dash li.no-dash {
  padding-left: var(--one-gap-xs);
  /* 4px — 기호 제거 후 최소 들여쓰기 보정 */
}

.lst-dash li.no-dash::before {
  display: none;
}

.lst-dash li.lst-sub {
  font-weight: 700;
  padding-left: 0;
}

.lst-dash li::before {
  position: absolute;
  content: '';
  clear: both;
  width: 5px;
  /* 장식 기호 크기 — 변수화 제외 */
  height: 1px;
  border-radius: 50%;
  background-color: var(--one-txt-color);
  left: 5px;
  /* 장식 기호 위치 미세조정 — 변수화 제외 */
  top: 0.78em;
}

.lst-dash li.space::before,
.lst-dash li.lst-sub::before {
  display: none;
}

/* ============================
   섹션 헤딩
   * .txt-wrap 과 함께 사용 — .cp-txt 등 타이포 클래스 스코프 확보
   * 예: <div class="sec-hd txt-wrap">
============================ */

.sec-hd {
  padding-bottom: var(--one-space-s);
}

.sec-hd .cp-txt {
  letter-spacing: 0.5em;
  margin-bottom: var(--one-gap-sm);
}

/* ============================
   뱃지
============================ */

.badge {
  background: var(--main-color);
  font-size: 0.65em;
  padding: 1px 1em 2px;
  font-weight: 700;
  border-radius: 0.3em;
  display: inline-block;
  vertical-align: text-bottom;
  line-height: 1.5;
  /* 컴포넌트 전용 예외값 — lh 변수 체계 적용 제외 */
}

.who-need.cp-txt {
  letter-spacing: 0.5em;
}

/* ============================
   반응형 — 태블릿 (max-width: 1024px)
============================ */

@media all and (max-width: 1024px) {
  :root {
    --one-hd1: 48px;
    --one-hd2: 40px;
    --one-hd3: 32px;
    --one-p-tit: 22px;
    --one-body: 18px;
    --one-caption: 14px;
    --one-space-xl: 100px;
    --one-space-lg: 80px;
    --one-space-r: 54px;
    --one-gap-xl: 24px;
    --one-gap-lg: 16px;
  }

  .view-mo {
    display: block !important;
  }

  .view-mo-i {
    display: inline-block !important;
  }

  .view-pc {
    display: none !important;
  }

  /* font-size: --one-caption 재정의(13px) 자동 전환
   * padding-top: 입력 필드 하단 등 보조 텍스트 간격 확보 */
  .txt-help {
    font-size: var(--one-caption);
    padding-top: var(--one-gap-sm);
  }

  .sec-hd {
    padding-bottom: var(--one-space-s);
  }

  .section {
    padding-left: var(--one-space-s);
    padding-right: var(--one-space-s);
  }

  .section.full .txt-wrap {
    padding-left: var(--one-space-safe);
    padding-right: var(--one-space-safe);
  }

  .section.full {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ============================
   반응형 — 모바일 (max-width: 639px)
============================ */

@media all and (max-width: 639px) {
  :root {
    --one-layout: 100%;
    /* 타이포그래피 — vw 단위 전환 */
    --one-hd1: 8.5vw;
    --one-hd2: 7.4vw;
    --one-hd3: 6.4vw;
    --one-p-tit: 5.4vw;
    --one-body: 4vw;
    --one-caption: 2.9vw;
    /* 줄간격 — 유지 */
    --one-lh-r: 1.6;
    --one-lh-lg: 1.3;
    /* 섹션 여백 — vw 단위 전환 */
    --one-space-xl: 15vw;
    --one-space-lg: 12.5vw;
    --one-space-r: 11vw;
    --one-space-s: 9.3vw;
    /* 요소 간 간격 — vw 단위 전환 */
    --one-gap-xl: 4.7vw;
    --one-gap-lg: 3.7vw;
    --one-gap-r: 3.2vw;
    --one-gap-sm: 2.5vw;
    /* --one-space-safe, --one-gap-xs 는 px 고정 — 변경 금지 */
  }

  .txt-wrap h2 {
    text-align: center;
  }

  .lst-dot li {
    padding-bottom: 0;
  }

  .lst-dot li.space {
    height: 0.9em;
  }

  .only-mo {
    display: block !important;
  }

  /* vw 전환 예외 — --one-caption(2.7vw)이 너무 작아질 수 있어 px 고정 */
  .txt-help {
    font-size: 12px;
  }

  .f-row {
    flex-direction: column;
  }

  .section {
    padding-left: var(--one-space-safe);
    padding-right: var(--one-space-safe);
  }

  .section.full {
    padding-left: 0;
    padding-right: 0;
  }
}