/* ================================
   ✅ 중앙 K-jobgo 로고: 완전 독립 스타일
   ================================ */
.center-kjobgo-logo {
  position: relative;             /* 독립적 위치지정 */
  width: 100%;                    /* 전체 너비 */
  display: flex;                  /* 가로 중앙 정렬용 */
  justify-content: center;       /* 가운데 정렬 */
  align-items: center;           /* 수직 가운데 정렬 */
  margin: 60px auto 10px auto;   /* 위아래 여백 */
  z-index: 10;                    /* 다른 요소 위에 */
}
/* 기본 스타일 초기화 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Noto Sans KR', sans-serif;
}

.profileform h1 {
  text-align: center;
  font-size: 32px;
  font-weight: 700;
  color: #0E2C54;
  margin-bottom: 40px;
  letter-spacing: -0.5px;
  position: relative;
}

/* 하단 선 강조 효과 */
.profileform h1::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background-color: #007BFF;
  margin: 12px auto 0;
  border-radius: 3px;
}

.profileform {
    max-width: 1200px;    /* 최대 너비 설정 */
  	padding: 80px 60px;
  	max-width: 1500px;
  	margin: 80px auto 0 auto;
  	background-color: #f5f5f5;  /* 회색 배경 */
  	position: relative;
  	overflow: visible;
}

body {
    line-height: 1.6;
 	background-color: #ffffff;  /* 기존 #f9f9f9 → 흰색으로 변경 */
    color: #333;
}

.container, .layout-wrapper, html {
  background-color: transparent !important;
}

/* ✅ 통합된 프로필 박스 */
.profile-box {
    display: flex;
    gap: 30px;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 30px;
  	flex-wrap: nowrap; /* ✅ 가로 고정 */
  	 align-items: flex-start;  /* ✅ 세로 기준 상단 정렬 */
}

.notice-required {
    width: 100%;                     /* ✅ 한 줄 전체 사용 */
    margin-bottom: 10px;
    background-color: #fff8e1;
    border-left: 5px solid #ff9800;
    padding: 8px 12px;
    font-size: 14px;
    color: #333;
    border-radius: 4px;
}


/* ✅ 사진 영역 */
.photo-area {
    width: 150px;
    text-align: center;
}

#photo {
    display: block;
    margin-bottom: 10px;
    width: 100%; /* 입력란 너비를 사진 영역에 맞춤 */
    margin-top: 0;     /* 불필요한 마진이 있는지 확인 */
    align-self: flex-start;  /* 개별 요소 상단 정렬 보장 */
}

#preview {
    width: 150px;
    height: 200px;
    object-fit: cover;
    border: 1px solid #ddd;
    border-radius: 4px;
  	display: block; /* ✅ 반드시 block */
}

/* ✅ 정보 영역 (이름, 비자, 이메일, 연락처 등) */
.profile-info,
.profile-sub-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.profile-info .row-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.profile-info .row-group label {
    min-width: 100px;
    font-weight: 500;
    color: #007BFF;
}

.profile-info .row-group input[type="text"],
.profile-info .row-group input[type="date"] {
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
}

.visa-row input[name="profile.visaType"] {
    margin-bottom: 10px; 
}

/* ✅ 체크박스 정렬 (비자 만기일 옆에) */
.checkbox-inline {
    align-items: center;
    gap: 5px;
    margin-left: 10px; 
}

/* ✅ 추가 개인정보 (이메일, 연락처 등) */
.profile-sub-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.email-group {
    align-items: center;
    margin-bottom: 10px;
    gap: 6px;
}

.email-group label {
    width: 100px;
    font-weight: 500;
    color: #007BFF;
    text-align: left;
    margin-right: 6px;
}

.email-group input[type="text"] {
    width: 150px;
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
}

.email-group span {
    font-weight: bold;
}

.phone-group {
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.phone-group label {
    width: 100px;
    font-weight: 500;
    color: #007BFF;
    text-align: left;
    margin-right: 6px;
}

.phone-group input[type="text"] {
    width: 60px;
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-align: center;
    font-size: 14px;
}

.phone-group span {
    font-weight: bold;
}

.address-group {
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.address-group label {
    min-width: 60px;
    font-weight: 500;
    color: #007BFF;
    margin-right: 6px;
}

.address-group input[type="text"] {
    width: 500px;
    padding: 6px 10px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.checkbox-group {
    display: flex;
    gap: 20px;
}

.checkbox-group label {
    display: flex;
    align-items: center;
    gap: 5px;
}


/* ✅ 인적사항 섹션 */
.personal-section {
    padding: 20px;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    gap: 12px; /* ✅ 각 row 간의 상하 간격 */
}

.personal-section .row {
    align-items: center;
    flex-wrap: wrap;
    column-gap: 10px;  /* ✅ label-input 사이 좌우 간격 */
    row-gap: 10px;     /* ✅ 줄바꿈 시 세로 간격 */
    margin-bottom: 8px;
}

.personal-section label {
    font-weight: 500;
    color: #007BFF;
    min-width: 80px;
    text-align: left;
    margin-right: 6px; /* ✅ 항목: 입력란 사이 간격 */
}

/* ✅ 나이 입력란 */
.row-bodyinfo input[name="personalInfo.age"] {
    width: 80px;         /* 🔧 기존보다 줄임 */
    margin-right: 16px;  /* 🔧 키: 라벨과의 간격 확보 */
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
}

.row-bodyinfo label {
    font-weight: 500;
    color: #007BFF;
    margin-right: 6px;
}

/* 🔧 키: 라벨은 나이 input 다음에 위치하므로 margin-left로 여백 확보 */
.row-bodyinfo label:nth-of-type(2) {
    margin-left: 40px;  /* 또는 16px 등 조정 가능 */
}

/* 🔧 몸무게: 라벨은 키 input 다음에 위치하므로 margin-left로 간격 조정 */
.row-bodyinfo label:nth-of-type(3) {
    margin-left: 40px; /* 또는 16px 등 조정 가능 */
}

/* 🔧 TOPIK 라벨 앞 여백 */
.row-entry-topik label:nth-of-type(2) {
    margin-left: 40px; /* 또는 16px 등 조정 가능 */
}

/* 🔧 희망 근무 지역 라벨 앞 여백 */
.row-salary-location label:nth-of-type(2) {
    margin-left: 40px; /* 또는 16px 등 조정 가능 */
}

/* 📌 학력/경력사항 - 기간 입력란 크기 조정 */
.edu-entry input[name$=".period"],
.work-entry input[name$=".period"] {
    width: 230px; /* 🔧 원하는 크기로 조정 가능 */
    padding: 5px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
}

/* ✅ 학력사항 상태 선택 (졸업, 재학중, 중퇴) */
.edu-entry .status-group {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 8px;
}

.edu-entry .status-group label {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    display: flex;
    align-items: center;
    gap: 5px;
}

.edu-entry .status-group input[type="radio"] {
    accent-color: #007BFF; /* ✅ 포인트 컬러 */
    cursor: pointer;
}


/* ✅ 공통 단위 스타일 (cm, kg) */
.row-bodyinfo .unit {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: #888;
    pointer-events: none;
}


.personal-section input[type="text"],
.personal-section input[type="number"],
.personal-section input[type="date"],
.personal-section select {
    padding: 5px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    height: 34px;
}

/* ✅ 단위 표시 input (cm, kg, 원 등) */
.input-unit {
    position: relative;
    display: inline-block;
}

.input-unit input {
    padding-right: 35px; /* 오른쪽 단위 공간 확보 */
    width: 100px;
}

.input-unit .unit {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: #888;
    pointer-events: none;
}

/* ✅ inline 버튼 묶음: 학력/경력 추가/삭제 */
.btn-inline-group {
  display: flex;
  gap: 6px;
  margin-left: 10px;
}

.section button[type="button"] {
    background-color: #007BFF;
    color: #fff;
    border: none;
    padding: 3px 8px; /* 🔧 기존보다 작게 */
    font-size: 13px;  /* 🔧 글자도 작게 */
    border-radius: 4px;
    cursor: pointer;
    line-height: 1.3;
}

.section h3 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.section button[type="button"]:hover {
    background-color: #0056b3;
}

/* 특이사항 */
.section textarea {
    width: 100%;               /* ✅ 전체 너비 차지 */
    height: 150px;             /* ✅ 더 넓은 높이 (문의 입력 느낌) */
    padding: 10px 12px;        /* ✅ 내부 여백 증가 */
    border: 1px solid #ccc;    /* ✅ 라운드 테두리 스타일 */
    border-radius: 6px;        /* ✅ input과 동일한 둥근 테두리 */
    font-size: 14px;
    resize: vertical;          /* ✅ 사용자가 세로 리사이즈 가능 */
    box-sizing: border-box;    /* ✅ padding 포함한 너비 계산 */
}

/* 폼 버튼 */
.btn-form-group {
  text-align: right;
  margin-top: 30px;
}

/* 그룹 안의 모든 버튼 공통 스타일 */
.btn-form-group button {
  margin-left: 10px;
  padding: 10px 24px;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
  border: none;
  color: #fff;
}

/* 등록 버튼 */
.btn-form-group button[type="submit"] {
  background-color: #007BFF;
}
.btn-form-group button[type="submit"]:hover {
  background-color: #0056b3;
}

/* 취소 버튼 */
.btn-form-group button[type="button"] {
  background-color: #6c757d;
}
.btn-form-group button[type="button"]:hover {
  background-color: #5a6268;
}

/* 버튼 그룹 우측 정렬 */
.btn-form-group {
  text-align: right;
  margin-top: 30px;
}

/* 그룹 안 버튼 공통 */
.btn-form-group button {
  display: inline-block;
  margin-left: 10px;
  padding: 10px 24px;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
  border: none;
  color: #fff;
}

/* 등록 버튼 (파랑) */
.btn-form-group button[type="submit"] {
  background-color: #007BFF;
}
.btn-form-group button[type="submit"]:hover {
  background-color: #0056b3;
}

/* 취소 버튼 (회색) */
.btn-form-group button[type="button"] {
  background-color: #6c757d;
}
.btn-form-group button[type="button"]:hover {
  background-color: #5a6268;
}

/* 미디어 쿼리 - 반응형 */
@media (max-width: 768px) {
    .profile-box {
        flex-direction: column;
    }

    .photo-area {
        width: 100%; /* 모바일에서 전체 너비 */
        height: auto; /* 사진 높이 자동 */
    }
    
 	.gender-row
    .row-group,
    .name-row,
    .visa-row,
    .email-group,
    .phone-group,
    .address-group,
    .checkbox-group {
        flex-direction: column;
        align-items: flex-start;
    }
    
   .gender-row label
    .row-group label,
    .name-row label,
    .visa-row label,
    .email-group label,
    .phone-group label,
    .address-group label {
        min-width: 100%;
        text-align: left;
    }

    .row-group input,
    .name-row input,
    .visa-row input,
    .email-group input,
    .phone-group input,
    .address-group input {
        width: 100%;
    }

    .checkbox-group {
        gap: 10px;
    }

    #preview {
        width: 100%;
        height: auto;
        max-height: 200px;
    }

    .profile-info {
        width: 100%;
    }
    
      .profile-form-container {
    padding: 20px;
  }

  .photo-upload-section,
  .basic-info-section {
    width: 100%;
    display: block;
  }

  .section-title {
    font-size: 20px;
    margin-bottom: 10px;
  }

  .input-row {
    flex-direction: column;
  }
}