@charset "utf-8";

/**
 * coreframe2 유틸리티 - 참고 스타일 적용
 * Pretendard, Montserrat, NanumSquareNeo, Poppins 등
 */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* 폰트 클래스 */
.nanum-neo { font-family: 'NanumSquare Neo', 'NanumSquareNeo', sans-serif; }
.nanum { font-family: 'NanumSquare', sans-serif; }
.poppins { font-family: "Poppins", sans-serif; }
.mont { font-family: "Montserrat", sans-serif; }
.pre { font-family: 'Pretendard Variable', 'Pretendard Variable', sans-serif; }

/* 텍스트/색상 */
.txt-white { color: #fff !important; }
.text-primary { color: var(--color-accent, #3d7abe) !important; }
.text-default { color: #0C0C0D; }
.text-nomal { color: #999; }
.text-gray { color: #666; }
.text-lgray { color: #8B8B8B; }
em { font-style: normal; }

/* 접근성 */
.blind { position: absolute; width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; clip: rect(0, 0, 0, 0); overflow: hidden; }
.svg { font-size: 0 !important; text-indent: -999999px !important; }
.wid100 { width: 100% !important; }
.wid50 { width: 50% !important; }

/* 텍스트 말줄임 */
.t-rw { overflow: hidden; text-overflow: ellipsis; -o-text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -moz-box-orient: vertical; word-break: break-all; word-wrap: break-word; }
.rw-1 { -webkit-line-clamp: 1; }
.rw-2 { -webkit-line-clamp: 2; }
.rw-3 { -webkit-line-clamp: 3; }

/* 정렬 */
.txt-l { text-align: left !important; }
.txt-c { text-align: center !important; }
.txt-r { text-align: right !important; }

/* Margin */
.m0-auto { margin: 0 auto !important; }
.mt-0 { margin-top: 0 !important; }
.mt-10 { margin-top: 10px !important; }
.mt-20 { margin-top: 20px !important; }
.mt-30 { margin-top: 30px !important; }
.mt-40 { margin-top: 40px !important; }
.mt-50 { margin-top: 50px !important; }
.mt-80 { margin-top: 80px !important; }
.mt-100 { margin-top: 100px !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-10 { margin-bottom: 10px !important; }
.mb-20 { margin-bottom: 20px !important; }
.mb-30 { margin-bottom: 30px !important; }
.mb-40 { margin-bottom: 40px !important; }

/* Padding */
.p-0 { padding: 0 !important; }
.p-20 { padding: 20px !important; }
.p-40 { padding: 40px !important; }
.p-60 { padding: 60px !important; }
.p-80 { padding: 80px !important; }
.ptb-100 { padding: 100px 0 !important; }

/* Flex */
.flex-box { display: flex; }
.justify-content-center { justify-content: center; }
.justify-content-between { justify-content: space-between; }
.align-items-center { align-items: center; }
.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }

/* Gap */
.gap-10 { gap: 10px; }
.gap-20 { gap: 20px; }
.gap-30 { gap: 30px; }
.gap-40 { gap: 40px; }

/* 폰트 크기 */
.fs14 { font-size: 1.4rem; }
.fs16 { font-size: 1.6rem; }
.fs18 { font-size: 1.8rem; }
.fs20 { font-size: 2.0rem; }
.fs24 { font-size: 2.4rem; }
.fs30 { font-size: 3.0rem; }
.fs40 { font-size: 4.0rem; }

/* 폰트 굵기 */
.fw400 { font-weight: 400 !important; }
.fw500 { font-weight: 500 !important; }
.fw600 { font-weight: 600 !important; }
.fw700 { font-weight: 700 !important; }
.fw800 { font-weight: 800 !important; }

/* 기타 */
.clear:after { clear: both; content: ''; display: block; }
.p-relative { position: relative; }
