/* 1. 웹 폰트 최적화 - Pretendard 가변 폰트 사용 (굵기 통합) */
@font-face {
	font-family: 'Pretendard';
	font-weight: 100;
	font-display: swap;
	src: local('Pretendard Thin'), url(/css/font/Pretendard-Thin.woff2) format('woff2'), url(/css/font/Pretendard-Thin.woff) format('woff');
}
@font-face {
	font-family: 'Pretendard';
	font-weight: 300;
	font-display: swap;
	src: local('Pretendard Light'), url(/css/font/Pretendard-Light.woff2) format('woff2'), url(/css/font/Pretendard-Light.woff) format('woff');
}
@font-face {
	font-family: 'Pretendard';
	font-weight: 400;
	font-display: swap;
	src: local('Pretendard Regular'), url(/css/font/Pretendard-Regular.woff2) format('woff2'), url(/css/font/Pretendard-Regular.woff) format('woff');
}
@font-face {
	font-family: 'Pretendard';
	font-weight: 500;
	font-display: swap;
	src: local('Pretendard Medium'), url(/css/font/Pretendard-Medium.woff2) format('woff2'), url(/css/font/Pretendard-Medium.woff) format('woff');
}
@font-face {
	font-family: 'Pretendard';
	font-weight: 600;
	font-display: swap;
	src: local('Pretendard SemiBold'), url(/css/font/Pretendard-SemiBold.woff2) format('woff2'), url(/css/font/Pretendard-SemiBold.woff) format('woff');
}
@font-face {
	font-family: 'Pretendard';
	font-weight: 700;
	font-display: swap;
	src: local('Pretendard Bold'), url(/css/font/Pretendard-Bold.woff2) format('woff2'), url(/css/font/Pretendard-Bold.woff) format('woff');
}
@font-face {
	font-family: 'Montserrat';
	font-style: normal; 
	font-weight: 500;
	src: url('/css/font/Montserrat-Medium.woff2') format('woff2'), url('/css/font/Montserrat-Medium.woff') format('woff');
	font-display: swap;
	unicode-range: U+0020-007E; 
}
@font-face {
	font-family: 'Montserrat';
	font-style: normal; 
	font-weight: 600;
	src: url('/css/font/Montserrat-SemiBold.woff2') format('woff2'), url('/css/font/Montserrat-SemiBold.woff') format('woff');
	font-display: swap;
	unicode-range: U+0020-007E; 
}
@font-face {
	font-family: 'Montserrat';
	font-style: normal; 
	font-weight: 700;
	src: url('/css/font/Montserrat-Bold.woff2') format('woff2'), url('/css/font/Montserrat-Bold.woff') format('woff');
	font-display: swap;
	unicode-range: U+0020-007E; 
}
@font-face {
	font-family: 'Orpheus Pro';
	font-style: normal; 
	font-weight:normal;
	src: url('/css/font/Orpheus Pro.woff2') format('woff2'), url('/css/font/Orpheus Pro.woff') format('woff');
	font-display: swap;
	unicode-range: U+0020-007E; 
}
@font-face {
	font-family: 'Orpheus Pro Medium';
	font-style: normal; 
	font-weight:normal;
	src: url('/css/font/Orpheus Pro Medium.woff2') format('woff2'), url('/css/font/Orpheus Pro Medium.woff') format('woff');
	font-display: swap;
	unicode-range: U+0020-007E; 
}

@font-face {
	font-family: 'NotoSerifKR-SemiBold';
	font-weight: 700;
	font-display: swap;
	src: local('NotoSerifKR-SemiBold'), url(/css/font/NotoSerifKR-SemiBold.woff2) format('woff2'), url(/css/font/NotoSerifKR-SemiBold.woff) format('woff');
}


/* 2. 전역 초기화 */
*, *::before, *::after {
    box-sizing: border-box; /* 레이아웃 계산 일관성 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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, li,
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: 100%;
    font: inherit;
    vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1.5; /* 가독성을 위해 1에서 1.5로 조정 권장 */
    font-family: 'Pretendard', sans-serif;
    word-break: keep-all;
    -webkit-text-size-adjust: none;
}

ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }
a { color: #333; text-decoration: none; cursor: pointer; }

/* 3. 폼 요소 초기화 */
textarea, input, select, button {
    appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    outline: none;
    font-family: inherit;
}

/* 4. 접근성 및 숨김 처리 */
.link-text, .skip, .caption, legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hidden, .hide { display: none !important; }

/* 5. 커스텀 체크박스/라디오 공통 */
input[type="checkbox"], input[type="radio"] {
    display: none;
}

input[type="checkbox"] + label span,
input[type="radio"] + label span {
    display: inline-block;
    width: 20px;
    height: 20px;
    vertical-align: middle;
    cursor: pointer;
    background: url('/images/member/minimal_cr.png') no-repeat;
}

/* 체크박스 */
input[type="checkbox"] + label span { background-position: 0 0; }
input[type="checkbox"]:checked + label span { background-position: -40px 0; }

/* 라디오 */
input[type="radio"] + label span { background-position: -100px 0; }
input[type="radio"]:checked + label span { background-position: -140px 0; }

/* 6. 유틸리티 (Margin) */
.mt10 { margin-top: 10px !important; }
.mt20 { margin-top: 20px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb20 { margin-bottom: 20px !important; }