/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Jun 09 2026 | 05:03:05 */
@charset "utf-8";


/* ============================
   공통 전역 커스텀 CSS
============================ */

:root {
    /* ── 색상 ── */
    --main-color: #003c72;
    --sub-color01: #d8ecfe;
    --sub-color02: #eef4fa;
    --sub-color03: #809eb9;
    --sub-color04: #ffda0a;
    --gray-color01: #b0b0b0;
    --gray-color02: #a2a3a3;
	--gray-color03: #efefef;
    --white-color: #f2f2f2;
    --one-txt-color: #333333;

    /* ── 레이아웃 ── */
    --one-layout: 1200px;
    --one-layout-lg: 1680px;
    --one-outer-layout: 1920px;

    /* ── 타이포그래피 — 크기 ── */
    --one-hd1: 48px;
    --one-hd2: 40px;
    --one-hd3: 32px;
    --one-p-tit: 24px;
    --one-body: 18px;
    --one-caption: 15px;
    --one-m-footer: 13px;
    --one-m-copy: 11px;

    /* ── 타이포그래피 — 줄간격 ──
   * 전체 기본값: --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: 와이드 콘텐츠 영역 — 상하 여백만, 좌우 패딩 없음
============================ */

.wrap-max {
    max-width: var(--one-outer-layout);
    width: 100%;
    margin: 0 auto;
}

.section {
    position: relative;
    padding: 0 var(--one-space-safe);
	overflow-x: hidden;
	overflow-x: clip; /* 호환되면 동작 아니면 hidden  */
    /* 좌우 safe 패딩 필수 */
}

.x-sf {
    padding-right: var(--one-space-safe);
    padding-left: var(--one-space-safe);
}

.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;
    /* 상하 여백만 */
}

section img,
.section 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;
}


/* ============================
   타이포그래피
============================ */

.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.02em;
}

.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);
}

.w-color {
    color: var(--white-color);
}

/* 배경 유틸리티 */
.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: 46px;
        --one-hd2: 38px;
        --one-hd3: 30px;
        --one-p-tit: 20px;
        --one-body: 16px;
        --one-caption: 13px;
        --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);
    }
}


/* ============================
   반응형 — 모바일 (max-width: 639px)
============================ */

@media all and (max-width: 639px) {
    :root {
        --one-layout: 100%;
        /* 타이포그래피 — vw 단위 전환 */
        --one-hd1: 8.2vw;
        --one-hd2: 7vw;
        --one-hd3: 6vw;
        --one-p-tit: 5vw;
        --one-body: 3.7vw;
        --one-caption: 2.7vw;
        /* 줄간격 — 유지 */
        --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 고정 — 변경 금지 */
    }

    .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;
	}
}