/**!
 * Cascading Style Sheet
 */
@charset "utf-8";

/*
    -. 키워드와 키워드 사이는 하이픈('-') 으로 표현하기
    -. 너무 짧은 키워드는 사용하지 않기
    -. 값 표현은 '--' 로 표현하기

    -. 단위는 none, 'p', 'rem', 'px' 등으로 표기
       none: 는 단계
       px, rem, p : 단위 표현
 */

/*
    터치할 대상 크기
    사용자가 클릭, 터치 등의 방법으로 상호작용할 수 있는 화면상의 요소는 안정적으로 상호작용할 수 있을 정도로 커야 합니다.
    머티리얼 디자인 접근성 가이드라인에 설명된 것처럼 이러한 요소의 너비 및 높이는 48dp 이상으로 지정하는 것이 좋습니다.
    https://support.google.com/accessibility/android/answer/7101858?hl=ko
*/
.min-touch-size { min-height: 48px !important }

/* document 하단 여백 */
.gap-bottom { margin-bottom: 6rem !important }


/* highlighter */
.highlighter { position: relative; width: fit-content }
.highlighter:after { position: absolute; bottom: 0; left: 0; width: 100%; height: 0.6rem; opacity: 0.8; content: ''; background: #fce267; z-index: -1 }


/* line */
.line { height: 1px; margin: 0 8px !important; border-bottom: 1px solid #e8e8e8 !important }

.line-1, .line-2 { background-color: #474b53; position: relative; left: 0; display: block; bottom: 0px; width: 100% }
.line-1 { height: 1px }
.line-2 { height: 2px }


/* underline */
.underline { text-decoration: underline !important; text-underline-offset: 3px !important;}

.underline-1, .underline-2 { position: relative !important; width: fit-content !important }
.underline-1:after, .underline-2:after {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    content: '' !important;
    background: #474b53 !important;
}
.underline-1:after { height: 1px !important; }
.underline-2:after { height: 2px !important; }


/* filter */
.filter--grayscale { filter: grayscale(1) !important }


/* overflow */
.overflow--hidden { overflow: hidden !important }


/* font */
.font-weight--bold { font-weight: 700 !important }
.font-weight--regular { font-weight: 400 !important }
.font-weight--light { font-weight: 300 !important }

.font-size-scale--up-1 { font-size: calc(100% * 1.02) !important }
.font-size-scale--up-2 { font-size: calc(100% * 1.06) !important }
.font-size-scale--up-3 { font-size: calc(100% * 1.1) !important }
.font-size-scale--up-4 { font-size: calc(100% * 1.2) !important }


/* line-height */
.line-height--1  { line-height: 1.5 !important }
.line-height--2  { line-height: 1.6 !important }


/* display */
.display--flex { display: -webkit-inline-box !important; display: flex !important }
.display--inline-flex { display: inline-flex !important }

.display-clear:after { clear: both; display: block; content: "" }

/* float */
.float--left { float: left !important }
.float--right { float: right !important }


/* flex align */
/* https://narup.tistory.com/210 */
.flex-align--center { -webkit-box-pack: center !important; justify-content: center !important; -webkit-box-align: center !important; align-items: center !important }
.flex-align--horizontal-center { -webkit-box-pack: center !important; justify-content-center: center !important }
.flex-align--vertical-center { -webkit-box-align: center !important; align-items: center !important }

/* https://developer.mozilla.org/ko/docs/Web/CSS/flex-flow */
.flex-direction--row { flex-direction: row !important }  /* 열 방향 배치 */
.flex-direction--column { flex-direction: column !important }

.flex-wrap--wrap { flex-wrap: wrap !important }  /* flex-item 요소들을 한줄에 표시 혹은 여러 줄에 표시 */
.flex-wrap--nowrap { flex-wrap: nowrap !important }

.flex-flow--row-wrap { flex-flow: row wrap !important }  /* flex-direction 과 flex-wrap 속성을 합쳐서 앞쪽은 flex-direction 설정 뒤쪽은 flex-wrap 을 설정 */
.flex-flow--column-wrap { flex-flow: column wrap !important }

.flex-gap--0 { gap: 0 0 !important }
.flex-gap--1 { gap: 0.25rem 0.25rem !important }
.flex-gap--2 { gap: 0.5rem 0.5rem !important }
.flex-gap--3 { gap: 0.75rem 0.75rem !important }
.flex-gap--4 { gap: 1rem 1rem !important }
.flex-gap--5 { gap: 1.25rem 1.25rem !important }
.flex-gap--6 { gap: 1.5rem 1.5rem !important }
.flex-gap--7 { gap: 1.75rem 1.75rem !important }
.flex-gap--8 { gap: 2rem 2rem !important }
.flex-gap--9 { gap: 3rem 3rem !important }
.flex-gap--10 { gap: 4rem 4rem !important }

.flex-gap--8px { gap: 8px 8px !important }
.flex-gap--16px { gap: 16px 16px !important }


/* width */
.width--100p { width: 100% !important }


/* margin */
.margin-top--0 { margin-top: 0 !important }
.margin-top--8px { margin-top: 8px !important }
.margin-top--16px { margin-top: 16px !important }
.margin-top--20px { margin-top: 20px !important }
.margin-top--24px { margin-top: 24px !important }

.margin-right--0 { margin-bottom: 0 !important }
.margin-right--8px { margin-bottom: 8px !important }
.margin-right--16px { margin-bottom: 16px !important }
.margin-right--20px { margin-bottom: 20px !important }
.margin-right--24px { margin-bottom: 24px !important }

.margin-bottom--0 { margin-bottom: 0 !important }
.margin-bottom--8px { margin-bottom: 8px !important }
.margin-bottom--16px { margin-bottom: 16px !important }
.margin-bottom--20px { margin-bottom: 20px !important }
.margin-bottom--24px { margin-bottom: 24px !important }

.margin-left--0 { margin-left: 0 !important }
.margin-left--8px { margin-left: 8px !important }
.margin-left--16px { margin-left: 16px !important }
.margin-left--20px { margin-left: 20px !important }
.margin-left--24px { margin-left: 24px !important }


/* padding */
.padding-top--0 { padding-top: 0 !important }
.padding-top--8px { padding-top: 8px !important }
.padding-top--16px { padding-top: 16px !important }
.padding-top--24px { padding-top: 24px !important }

.padding-right--0 { padding-bottom: 0 !important }
.padding-right--8px { padding-bottom: 8px !important }
.padding-right--16px { padding-bottom: 16px !important }
.padding-right--24px { padding-bottom: 24px !important }

.padding-bottom--0 { padding-bottom: 0 !important }
.padding-bottom--8px { padding-bottom: 8px !important }
.padding-bottom--16px { padding-bottom: 16px !important }
.padding-bottom--24px { padding-bottom: 24px !important }

.padding-left--0 { padding-left: 0 !important }
.padding-left--8px { padding-left: 8px !important }
.padding-left--16px { padding-left: 16px !important }
.padding-left--24px { padding-left: 24px !important }


/* text */
.text-align--center { text-align: center !important; }
.text-align--left { text-align: left !important; }
.text-align--right { text-align: right !important; }

.text-clip { white-space: nowrap !important; text-overflow: clip !important; overflow: hidden !important; }       /* width 를 넘어가는 텍스트를 자르기 */
.text-ellipsis { white-space: nowrap !important; text-overflow: ellipsis !important; overflow: hidden !important; }   /* width 를 넘어가는 텍스트를 말줄임표(...) 처리 */


/* visibility */
/*
| 용어		| 의미						| 웹 개발 사용 예			|
|-----------|---------------------------|-----------------------|
| hide		| 숨기다, 가리다 (일반적인 의미)	| display: none;		|
| hidden	| 숨겨진, 가려진 (과거형)		| visibility: hidden;	|
| blind		| 웹 접근성을 고려하여 스크린 리더로도 읽히지 않도록 숨기다 (스크린 리더를 위한 숨김 처리) | overflow: hidden; |
 */
.show { display: block !important }
.hide { display: none !important }

.hidden,
.invisible { visibility: hidden !important; }

.blind  {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
