/* 파일 업로드 컨트롤 커스텀 스타일 (통일된 디자인 & 수직 가운데 정렬) */
.custom-file-upload {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
}

.custom-file-upload input[type="file"] {
    display: none;
}

.custom-file-upload .file-select-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3.2rem;
    padding: 0 1.5rem;
    background-color: #4797ec;
    color: #ffffff !important;
    border: none;
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    white-space: nowrap;
    margin: 0;
}

.custom-file-upload .file-select-btn:hover {
    background-color: #337ab7;
}

.custom-file-upload .file-name-display {
    display: inline-flex;
    align-items: center;
    height: 3.2rem;
    padding: 0 1.25rem;
    background-color: #f8f9fa;
    border: 1px solid #ced4da;
    border-radius: 6px;
    color: #495057;
    font-size: 0.95rem;
    flex-grow: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 입력 필드 (Text, Email, Password, Textarea) 글자 및 비밀번호 마스킹 점 색상 강제 통일 */
input[type="text"],
input[type="email"],
input[type="password"],
textarea,
select {
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
    background-color: #ffffff !important;
    border: 1px solid #cccccc !important;
}

input[type="password"] {
    font-family: caption, sans-serif !important; /* 비밀번호 점(●)이 선명하게 보이도록 설정 */
    letter-spacing: 0.15em !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-text-fill-color: #111111 !important;
    -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important;
    transition: background-color 5000s ease-in-out 0s;
}

/* ---------------------------------------------------- */
/* 전반적 페이지 상단 타이틀 위/아래 및 라인 여백 극소화 */
/* ---------------------------------------------------- */

.wrapper {
    padding: 1.8rem 0 2.5rem 0 !important; /* 타이틀 윗 공간 50% 추가 축소 (3.5rem -> 1.8rem) */
}

header.major h1, 
header.major h2, 
header.major h3, 
header.major h4, 
header.major h5, 
header.major h6 {
    margin: 0 0 0.15em 0 !important; /* 제목 밑 여백 최소화 */
    padding-bottom: 0.15em !important;
}

header.major h1:after, 
header.major h2:after, 
header.major h3:after, 
header.major h4:after, 
header.major h5:after, 
header.major h6:after {
    top: 0.15em !important; /* 라인 위치를 제목 바로 밑으로 밀착 */
    margin-top: 0.1em !important;
}

header.major p {
    font-size: 1.05rem !important;
    margin: 0.35rem 0 1.5rem 0 !important; /* 라인과 하단 설명 사이 및 아래 여백 거의 없도록 밀착 */
}

@media screen and (max-width: 1280px) {
    .wrapper {
        padding: 1.5rem 0 2rem 0 !important;
    }
    header.major p {
        margin: 0.3rem 0 1.2rem 0 !important;
    }
}

@media screen and (max-width: 736px) {
    .wrapper {
        padding: 1.2rem 0 1.5rem 0 !important;
    }
    header.major p {
        font-size: 0.95rem !important;
        margin: 0.25rem 0 1rem 0 !important;
    }
}

/* ---------------------------------------------------- */
/* [테스트용] 태블릿/모바일(11pt) 기준으로 획일적 지정 */
/* ---------------------------------------------------- */

html {
    font-size: 11pt !important; /* 태블릿/모바일 기준 11pt(약 14.6px)로 획일적 고정 */
}
