﻿@charset "utf-8";
/* CSS Document */
/* 웹폰트 */
@font-face {
	font-family: 'Pretendard Variable';
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
	src: local('Pretendard Variable'), url('../font/PretendardVariable.woff2') format('woff2-variations');
}

@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Thin.woff') format('woff');
    font-weight: 100;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Light.woff') format('woff');
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Regular.woff') format('woff');
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Medium.woff') format('woff');
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-SemiBold.woff') format('woff');
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Bold.woff') format('woff');
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-ExtraBold.woff') format('woff');
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('../font/Pretendard-Black.woff') format('woff');
    font-weight: 900;
    font-display: swap;
}
@font-face {
    font-family: 'GyeongbokgungSumunjangBodyText';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2511-3@1.0/Sumunjang_BodyB.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: 'GyeongbokgungSumunjangTitle';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2511-3@1.0/Sumunjang_TitleB.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}
.handfb{ font-family:'GyeongbokgungSumunjangBodyText';}
.handf{ font-family: 'GyeongbokgungSumunjangTitle';}
html { -webkit-box-sizing: border-box; -moz-box-sizing: border-box;box-sizing: border-box; -webkit-text-size-adjust: none; -moz-text-size-adjust: none; -ms-text-size-adjust: none; }
*, *:before, *:after { -webkit-box-sizing: inherit; -moz-box-sizing: inherit; box-sizing: inherit; }
body { position: relative;/* height: 100%!important;  <- 이 줄을 반드시 삭제하거나 주석 처리하세요 */ background-color: #fff;  }
body, html { /* overflow-x: hidden!important; <- sticky를 쓰는 페이지에서는 조심해야 합니다. */ font-size: 16px; line-height: 1!important; font-family: 'Pretendard'; font-weight: 400; letter-spacing: -0.0375em; scroll-behavior: smooth;
overflow-wrap: normal; line-height: initial;}
/*li, color:#728191;vertical-align: bottom!important;*/
html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,b, u, i, center, dl, dt, dd, ol, ul, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: inherit; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
input { -webkit-appearance: none; -webkit-border-radius: 0; } /* 아이폰 기본 스타일 제거 */
input[type="date"] { display:block; -webkit-appearance: textfield; -moz-appearance: textfield;/* min-height: 1.2em;*/ min-width: 100%; }
input, button, textarea, select {/* padding: 2%;*/ background: transparent; overflow: hidden; outline: none;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
/*code, pre, select {font-size:1.3em; font-family: 'Pretendard'; font-weight: 400; }*/
address, em, cite { font-style: normal; }
img, svg { display: block; max-width: 100%; border:0 none; }
/* hr {display:none;} */
table { border-collapse: collapse; border-spacing: 0; }
th, td {vertical-align:middle;text-align:left;font-weight:normal; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
label, button { cursor: pointer; }

input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset; transition: background-color 5000s ease-in-out 0s; }
input:-moz-autofill { transition: background-color 5000s ease-in-out 0s; }
input:-webkit-autofill, input:-moz-autofill, input:-ms-autofill { background-color: transparent; }
select:focus { outline: none; }
button {overflow: visible; border: none; background: transparent; white-space: nowrap; /*vertical-align: top;*/ text-decoration:none; }
button::-moz-focus-inner {border:0;padding:0;}
a:link, a:visited, a:hover, a:active { text-decoration:none;*cursor:pointer;}
img{ vertical-align: top; display: inline-block; }
* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing:border-box; }
p{display: block; unicode-bidi: isolate;}
/* 스크롤바 전체 */ ::-webkit-scrollbar { width: 8px!important; background-color: #cecfd0!important; }
/* 스크롤바 막대 */ ::-webkit-scrollbar-thumb { background-color: #9e9fa2!important; }
/* 스크롤바 외부 */ ::-webkit-scrollbar-track { background-color: #cecfd0!important; }

/* 아이콘 */
.fa, .fa-brands, .fa-duotone, .fa-light, .fa-regular, .fa-solid, .fa-thin, .fab, .fad, .fal, .far, .fas, .fat { line-height: normal!important; }

/* number input 화살표 숨김 */
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

/* 플레이스홀더숨김 */
::placeholder { background-color: transparent; font-size:inherit;  }
input:focus::-webkit-input-placeholder { color:transparent; }
input:focus:-moz-placeholder { color:transparent; }
input:focus::-moz-placeholder { color:transparent; }
input:focus:-ms-input-placeholder { color:transparent; }

button, a{-webkit-tap-highlight-color:transparent; line-height: inherit;cursor: pointer;transition: all var(--q_trans); columns: inherit;}
a:focus, a:active {-webkit-tap-highlight-color: transparent;}

/* 아이폰 기본 스타일 제거 */
input, textarea { appearance: none; -webkit-appearance: none; -webkit-border-radius: 0; line-height: 0.8}


/* Wrap */
.wrap { width: 100%; max-width: calc( 1400px + 4rem); padding-left: 2rem; padding-right: 2rem; margin: 0 auto; word-break: keep-all; }
.halfwrap{max-width: calc((1280px / 2) + 2rem); }
/* 모바일 표시 */
.m_ver { display: none; }
.p_ver{display: inline-flex;}
/* br */
.m_br { display: none; }
.p_br { display: inline-block; }
/*키워드숨김*/
.keywordhide{overflow: hidden; display: inline-block; position: relative; z-index: -1; border: 0; width: 1px; height: 1px; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);}


/* 버튼 스타일 01 */
.btn_style_01 { display: inline-flex; gap: 10px; align-items: center; height: 60px; padding: 0 1.5rem; border-radius: 500rem; border: none; overflow: hidden; color: #fff; position: relative; transition: var(--transition); }
.btn_style_01 .btn_txt { transform: translateX(15px); font-size: 1.2em; font-weight: 600; transition-duration: 0.3s;  line-height: 1; }
.btn_style_01 .iconer { transform: translateY(50px); transition-duration: 0.3s; display: inline-flex!important; align-items: center; justify-content: center; font-weight: 400; font-size: 1.35em; }
.btn_style_01:hover .btn_txt { transform: translateX(0px); }
.btn_style_01:hover .iconer { transform: translateY(0%); }

/* 버튼 스타일 02 */
.btn_style_02 { display: inline-flex; gap: 10px; align-items: center; height: 50px; padding: 0 1.5rem; border-radius: 500rem; border: none; overflow: hidden; color: #fff; position: relative; transition: var(--transition); font-size: 1.1em; font-weight: 600; }

.btn_down{ display: flex; gap: 10px; align-items: center; width: fit-content; height: 50px; padding: 0 1.25rem; border-radius: 500rem; border: none; overflow: hidden; background-color: var(--pink); color: #fff!important; transition: var(--transition); font-size: 1.1em; font-weight: 600;}


.Mybtn { color: #fff; line-height: 1; border-radius: var(--br_c); padding:1.6rem 3rem 1.5rem; border: 1px solid #ffffff27; background-clip: padding-box!important; }
	.Mybtn:hover{filter:hue-rotate(40deg) contrast(110%) saturate(120%); box-shadow: 0 10px 20px rgba(46,7,0,0.20), 0 -5px 10px rgba(46,7,0,0.15), 0 6px 6px rgba(46,7,0,0.10);  }
	a.orange_grd:hover, button.orange_grd:hover{background: linear-gradient(-70deg, #ff4e50, #ff5858, #f89b29); filter: none;}

/*기본버튼 배경 이펙트*/
.hover{ display: inline-flex!important; align-items: center; justify-content: center; gap: 5px; position: relative!important; overflow: hidden; min-width: fit-content!important;}
.hover:after { background: var(--white); content: ""; height: 155px; left: -150%; opacity: 0.2;  position: absolute; top: -50px; transform: rotate(35deg); transition: all 450ms cubic-bezier(0.19, 1, 0.22, 1); width: 50px; pointer-events: none; filter: blur(3px);}
.hover:hover::after { left: 150%; transition: all 750ms cubic-bezier(.81,.11,.41,1); }
.hover.hover_loop:hover::after{
    transition: none !important;
    animation: hoverFlashLoop 1800ms cubic-bezier(.81,.11,.41,1) infinite;
}
.hover.hover_loop:not(:hover)::after{
    animation: none !important;
    left: -150%;
    opacity: 0.2;
}
.fill_btn{
	 /* 1. 레이아웃 및 박스 모델 */
    vertical-align: baseline;
    border-radius: var(--br_c);
    white-space: nowrap;

    background-color: var(--lighter_point);
    border: 1px solid rgba(51, 133, 255, 0.25);
    transition: all 450ms cubic-bezier(0.19, 1, 0.22, 1);
    box-shadow: 0 0rem .5rem 0.25rem rgba(0, 72, 196, 0.15);
}

.fill_btn:hover {
    border-color: var(--point);
}
/* 반복 플래시 키프레임 */
@keyframes hoverFlashLoop{
    0%{
        left: -150%;
        opacity: 0;
    }
    12%{
        opacity: 0.25;
    }
    45%{
        left: 150%;
        opacity: 0.25;
    }
    60%{
        opacity: 0;
    }
    100%{
        left: 150%;
        opacity: 0;
    }
}
/* a나 버튼 에 텍스트랑 아이콘 함께 있는 경우 작은 버튼 큰번튼 동시에 사용하려면  */
a .btn_txt, button .btn_txt { transform: translateX(0.65rem); transition-duration: 0.3s;  line-height: 1; text-align: center; }
a .iconer, button .iconer { transform: translateY(4rem); transition-duration: 0.3s; display: inline-flex!important; align-items: center; justify-content: center;}
a:hover .btn_txt, button:hover .btn_txt  { transform: translateX(0px); }
a:hover .iconer, button:hover .iconer { transform: translateY(0%); }
@keyframes btn_flash {
0% ,100%  { left: -150%; }
10%  { left: 150%; }
}

/* 라디오 셀렉트 */
.radio_button_group { display: flex; justify-content: space-between; }
.radio_button_group .radio_input { display: none; }
.radio_button_group label { display: inline-flex; align-items: center; justify-content: center; border: solid 1px var(--gray_dd); flex: 1; margin-right: 2%; box-sizing: border-box; font-weight: 600; transition: var(--transition); color: var(--gray_8); border-radius: var(--br_m); height: 56px; }
	.radio_button_group label:last-child { margin-right: 0; }
.radio_button_group .radio_input:checked + .radio_label { border: solid 1px var(--point); background-color: rgba(15,115,233,0.1); color: var(--point); }
.radio_button_group label.disabled { background-color: rgba(0,0,0,0.05)!important; color: var(--gray_8)!important; cursor: not-allowed; }

/* 테이블 스타일 01 */
.table_style_01 { border-bottom: 1px solid var(--border_color); width: 100%; }
.table_style_01 tr { border-top: 1px solid var(--border_color); }
.table_style_01 tr:first-of-type { border-top: 1px solid var(--gray_1)important; }
.table_style_01 th { background-color: var(--gray_f8); font-weight: bold; }
.table_style_01 th, .table_style_01 td { padding: 1rem; text-align: center; }

/* 체크박스 (공통 스타일 효과 적용) */
/* 5. 체크박스 커스텀 스타일 */
input[type="checkbox"].custom_chk {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 20px !important;
    height: 20px !important;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    vertical-align: middle;
    margin-right: 8px;
    position: relative;
    box-sizing: border-box;
    transition: all 0.3s;
    transform: scale(0.95);
}

/* 호버 시 텍스트와 박스 테두리 동시 반응 */
label.d_flex:hover input[type="checkbox"].custom_chk {
    border-color: var(--light_point);
    transform: scale(1);
}

/* ★ 체크되었을 때: 배경색이 포인트 컬러로 변경 */
input[type="checkbox"].custom_chk:checked {
    background-color: var(--light_point);
    border-color: var(--light_point);
}

/* ★ 체크마크: 흰색으로 변경 및 초기 상태 설정 */
input[type="checkbox"].custom_chk::after {
    content: '';
    position: absolute;
    left: 5.5px;
    top: 1px;
    width: 6px;
    height: 13px;
    border: solid #fff; /* 흰색 체크마크 */
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg) scale(0.5); /* 애니메이션 시작 준비 */
    opacity: 0;
    transition: none; /* 애니메이션으로 제어하기 위해 transition 해제 */
}

/* 체크 시 애니메이션 실행 */
input[type="checkbox"].custom_chk:checked::after {
    animation: checkAnim 0.15s ease-out forwards;
}

/* 레이블 호버 시 텍스트 색상 변경 */
label.d_flex:hover span {
    color: var(--light_point);
}

/* 공통 애니메이션: 슬라이드 대신 Scale+Opacity 방식 */
@keyframes checkAnim {
    0% {
        opacity: 0;
        transform: rotate(45deg) scale(0.5);
    }
    100% {
        opacity: 1;
        transform: rotate(45deg) scale(1);
    }
}

/* 6. 모바일 대응 */
@media screen and (max-width: 600px) {
    input[type="checkbox"].custom_chk {
        width: 16px !important; /* 모바일에서 텍스트와 비율 맞춤 */
        height: 16px !important;
        transform: scale(1);
        margin-right: 5px;
    }

    input[type="checkbox"].custom_chk::after {
        left: 5px;
        top: 1.5px;
        width: 4px;
        height: 9px;
        border-width: 0 2px 2px 0;
    }
}
/* ==================== 모바일 레이아웃 ==================== */

@media(max-width: 1280px) {
    .column_lg{flex-direction: column;}
}

@media ( max-width: 900px ) {
    .column_md{flex-direction: column;}
	/* Wrap */
	.halfwrap{max-width:100%; }

    /* PC, 모바일 표시 */
	.m_ver { display: inline-flex; }
	.p_ver {display: none;}
	/* br */
	.m_br { display: inline-block; }
	.p_br { display: none; }

	/* 버튼 스타일 01 */
	.btn_style_01 { height: 48px !important; color: #fff !important; gap: 5px; font-size: 0.9em; line-height: 1.2; padding: 0 2rem; }
	.btn_style_01:hover { color: #fff !important; }
	.btn_style_01 .btn_txt { transform: translateX(0); }
	.btn_style_01 .iconer { transform: translateY(0); font-size: 1.3em; margin-left: 0.2rem; }
	.btn_style_01 .iconer svg { width: 20px; height: 20px; }
	.btn_style_01:hover .iconer { transform: translateY(0); }

	/* 버튼 스타일 02 */
	.btn_style_02 { height: 44px; padding: 0 1.5rem; gap: 6px; }

	/* 체크박스 */
	.checkbox_ctr { height: 22px; padding-left: 25px; transform: scale(0.9); transform-origin: left; }
	.checkbox_ctr .checkmark { height: 22px; width: 22px; }
	.checkbox_ctr .checkmark::after { top: 3px; left: 7px; }

	/* 폼 스타일 01 */
	.form_style_01 input[type="text"], .form_style_01 input[type="number"], .form_style_01 input[type="password"], .form_style_01 input[type="tel"], .form_style_01 select { height: 48px; padding: 0 0.8rem; }

	/* 라디오 셀렉트 */
	.radio_button_group label { height: 48px; }
	.btn_down{ margin: auto;}
}
@media ( max-width: 600px ) {
	.column_sm{flex-direction: column;}
}


