@charset "utf-8";

/* 폰트 임포트 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');

/* ------------------------------------------------------------------- */
/* 1. 기본 초기화 (Reset) */
/* ------------------------------------------------------------------- */
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, sub, sup, tt, var,
u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, input, button, textarea,
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; /* 인라인 요소의 세로 정렬 기준 */
	-webkit-box-sizing: border-box; /* 모든 요소에 border-box 적용 */
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block; /* HTML5 시맨틱 태그를 블록 레벨 요소로 설정 */
}

/* ------------------------------------------------------------------- */
/* 2. 기본 스타일 (Base Styles) */
/* ------------------------------------------------------------------- */
body {
	font-family: "Pretendard", "Noto Sans KR", sans-serif; /* 폰트 패밀리 */
	font-size: 1rem; /* 16px 기본 */
	line-height: 1.5; /* 줄 간격 */
	color: #000; /* 기본 글자색 */
	font-weight: 300; /* 기본 폰트 굵기 */
	word-break: break-all; /* 긴 단어가 요소 경계를 넘을 때 줄 바꿈 */
	outline: none; /* 포커스 아웃라인 제거 */
	overflow-x: hidden; /* 가로 스크롤바 숨김 */
}

ol, ul, li {
	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; /* 테이블 셀 간격 제거 */
}

img {
	max-width: 100%; /* 이미지의 최대 너비를 부모 요소에 맞춤 */
	vertical-align: top; /* 이미지의 세로 정렬 (불필요한 공백 제거) */
}

caption, legend {
	display: none; /* 캡션 및 범례 숨김 (접근성을 위해 .blind 등 사용 권장) */
}

a {
	text-decoration: none; /* 링크 밑줄 제거 */
	color: #000; /* 링크 기본 글자색 */
}

p {
	word-break: keep-all; /* 단어 단위로 줄 바꿈 (한글에 유용) */
}

h1, h2, h3, h4, h5, h6 {
	font-size: 100%; /* 제목 태그의 기본 글자 크기 초기화 */
}

/* ------------------------------------------------------------------- */
/* 3. 폼 요소 스타일 (Form Element Styles) */
/* ------------------------------------------------------------------- */
input {
	border: 1px solid #dddddd; /* 인풋 테두리 */
	background: #fff; /* 인풋 배경 */
	padding: 0; /* 기본 패딩 제거 */
	vertical-align: middle; /* 세로 정렬 */
}

/* 특정 인풋 타입에 대한 초기화 */
input[type="checkbox"],
input[type="radio"] {
	border: none; /* 체크박스/라디오 버튼 테두리 제거 */
	padding: 0;
	width: 13px !important; /* 명시적 크기 */
	height: 13px !important;
}

select {
	border: 1px solid #dddddd; /* 셀렉트 테두리 */
	background: #FFF; /* 셀렉트 배경 */
}

textarea {
	border: 1px solid #dddddd; /* 텍스트 에어리어 테두리 */
	background: #FFF; /* 텍스트 에어리어 배경 */
}

textarea::-webkit-value {
    color: #ccc !important; /* 명시도 높이기 위해 !important 사용 */
}

button {
	border: none; /* 버튼 테두리 제거 */
	background: transparent; /* 버튼 배경 투명 */
	cursor: pointer; /* 마우스 오버 시 커서 변경 */
}

/* ------------------------------------------------------------------- */
/* 4. 유틸리티 클래스 (Utility Classes) */
/* ------------------------------------------------------------------- */
.blind {
	position: absolute;
	top: -1000px;
	visibility: hidden;
	/* 추가: 화면 낭독기에서 읽히지 않도록 완전히 숨김 */
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
}

.sdonly {
	/* 기존 blind와 유사하나, 좀 더 강제적인 숨김 */
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	width: 0 !important;
	height: 0 !important;
	color: transparent !important;
	overflow: hidden !important;
}
.sdonly:before, .sdonly:after {
	display: none !important;
}

.hidden {
	/* display: none; 보다는 스크린리더 인식 가능성 남김 */
	margin: 0;
	padding: 0;
	width: 100%;
	height: 0;
	line-height: 0;
	font-size: 0;
	border: none;
	overflow: hidden;
}

.hide {
	display: none; /* 요소를 완전히 숨김 */
}

.clear:after {
	content: "";
	display: block;
	clear: both; /* float 해제 */
}

/* 이전에 중복되거나 너무 광범위하게 적용되던 *{} 셀렉터는 제거했습니다. */
/* 이미 초기화 영역에서 모든 요소에 box-sizing: border-box;가 적용되었으므로 *{margin:0px; padding:0px;}는 불필요합니다. */