/* =========================
   인사말
========================= */
.greeting-wrap{
  display:flex;
  gap:24px;
  align-items:flex-start;
}

/* 사진 영역 */
.greeting-photo{
  flex:0 0 250px;          /* PC에서 사진 고정폭 */
}

.greeting-photo img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  border:1px solid #e5e7eb;
}

/* 본문 영역 */
.greeting-text{
  flex:1;
  min-width:0;
}

.greeting-body{
  line-height:1.75;
  color:#222;
  font-size:15px;
}

/* 날짜/이름 우측정렬 */
.greeting-sign{
  margin-top:18px;
  text-align:right;
  line-height:1.7;
  color:#111;
}

.greeting-sign .name{
  font-weight:700;
}

/* ✅ 모바일: 사진 상단, 인사말 하단 */
@media (max-width: 768px){
  .greeting-wrap{
    flex-direction:column;
    gap:14px;
  }

  .greeting-photo{
    flex:0 0 auto;
    width:100%;
    max-width:360px;   /* 필요하면 제거 가능 */
    margin:0 auto;     /* 모바일에서 사진 가운데 정렬 */
  }

  .greeting-body{
    font-size:14px;
  }
}


/* =========================
   임원진
========================= */
/* 탭 버튼 영역 */
.director-tabs{
  display:flex;
  justify-content: center;
  gap:8px;
  margin-bottom:30px;
  flex-wrap: wrap;
}

/* 탭 버튼 */
.director-tab{
  appearance:none;
  border:1px solid #d9d9d9;
  background:#f6f6f6;
  color:#333;

  min-height:40px;      /* ⭐ height 대신 권장 */
  padding:0 20px;

  border-radius:999px;
  cursor:pointer;

  font-size:16px;
  line-height:1.2;      /* ⭐ 1보다 약간 크게 (한글 안정) */

  display:inline-flex;
  align-items:center;
  justify-content:center;

  vertical-align:middle; /* ⭐ baseline 영향 제거 */
  box-sizing:border-box; /* ⭐ 높이 계산 안정 */

  white-space:nowrap;    /* ⭐ 줄바꿈 방지 */

  transition:.2s ease;
}

.director-tab > span {
  display: block;
  position: relative;
  top: -1px; /* 마이너스 값을 주어 글자를 위로 밀어 올림 */
  line-height: 1;
}


.director-tab:hover{
  background:#eeeeee;
}

/* 활성 탭 */
.director-tab.is-active{
  border-color:#003d7c;      /* 사이트 포인트 컬러로 변경 가능 */
  background:#003d7c;
  color:#fff;
  font-weight:400;
}

/* 패널 */
.director-panel{
  display:none;
}

.director-panel.is-active{
  display:block;
}


/* =========================
   director Tabs + Panels (기존 사용)
========================= */
.director-panel{ display:none; }
.director-panel.is-active{ display:block; }

/* =========================
   director Title + Table (Image style)
========================= */
.director-title-box{
  padding: 14px 12px;
  margin: 18px 0 16px;
  text-align: center;
  background: #F9FAFB;
  border: 1px solid #DDDDDD;
  border-radius: 2px;
  color: #1d4b92;
  font-size: 1.1em;
  font-weight: 700;
}

.director-table{
  width: 100%;
  border-collapse: collapse !important;
  border: 1px solid #E5E7EB !important;
  box-shadow: none !important;
  margin: 0 0 30px !important;
  background:#fff;
}

.director-table th,
.director-table td{
  padding: 14px 12px !important;
  border-top: 1px solid #E5E7EB !important;
  border-left: none !important;
  border-right: none !important;
  font-size: 15px;
}

.director-table thead th{
  background: #ffffff !important;
  font-weight: 800 !important;
  color: #111 !important;
  text-align: center !important;
  border-top: none !important;
  border-bottom: 1px solid #D6DEE8 !important;
}

.director-table tbody tr{ background:#fff; }
.director-table .center.aligned{ text-align:center !important; }
.director-table td{ word-break: keep-all; }

@media (max-width: 768px){
  .director-table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}


/* =========================
   사무국
========================= */

    /* ✅ 컨테이너 폭 안에서 100% */
    .office-map-wrap{
      width: 100%;
    }

    /* ✅ 카카오맵 퍼가기 기본 max-width 제한 해제 + 컨테이너에 맞춤 */
    .office-map-wrap .root_daum_roughmap{
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
    }

    /* ✅ 주소 */
    .office-address{
      text-align: center;
      padding: 30px 0;
      font-size: 18px;
    }


/* =========================
   시상내역
========================= */

/* 탭 버튼 영역 */
.award-tabs{
  display:flex;
  justify-content: center;
  gap:8px;
  margin-bottom:30px;
  flex-wrap: wrap;
}

/* 탭 버튼 */
.award-tab{
  appearance:none;
  border:1px solid #d9d9d9;
  background:#f6f6f6;
  color:#333;

  min-height:40px;      /* ⭐ height 대신 권장 */
  padding:0 20px;

  border-radius:999px;
  cursor:pointer;

  font-size:16px;
  line-height:1.2;      /* ⭐ 1보다 약간 크게 (한글 안정) */

  display:inline-flex;
  align-items:center;
  justify-content:center;

  vertical-align:middle; /* ⭐ baseline 영향 제거 */
  box-sizing:border-box; /* ⭐ 높이 계산 안정 */

  white-space:nowrap;    /* ⭐ 줄바꿈 방지 */

  transition:.2s ease;
}

.award-tab > span {
  display: block;
  position: relative;
  top: -1px; /* 마이너스 값을 주어 글자를 위로 밀어 올림 */
  line-height: 1;
}


.award-tab:hover{
  background:#eeeeee;
}

/* 활성 탭 */
.award-tab.is-active{
  border-color:#003d7c;      /* 사이트 포인트 컬러로 변경 가능 */
  background:#003d7c;
  color:#fff;
  font-weight:400;
}

/* 패널 */
.award-panel{
  display:none;
}

.award-panel.is-active{
  display:block;
}


/* =========================
   award Tabs + Panels (기존 사용)
========================= */
.award-panel{ display:none; }
.award-panel.is-active{ display:block; }


/* =========================
   Title Box (시상내역 공통)
========================= */
.award-title-box{
  padding: 14px 12px;
  margin: 18px 0 16px;
  text-align: center;
  background: #F9FAFB;
  border: 1px solid #DDDDDD;
  border-radius: 2px;
  color: #1d4b92;
  font-size: 1.1em;
  font-weight: 700;
}



/* 상(award) 1개 박스 */
.award-card{
  width:100%;
  box-sizing:border-box;
  border:1px solid  #DDDDDD;
  border-radius:8px;
  background:#fff;
  padding:25px;
  margin:0 0 14px;
}

/* 상 제목 */
.award-card-title{
  font-size:25px!important;
  font-weight:800;
  color:#111;
  margin-bottom: 0px;
}

.award-list{
  list-style: none;   /* ● 제거 */
  padding: 0;         /* 왼쪽 들여쓰기 제거 */
  margin: 0;
}

.award-list li{
  list-style: none;   /* 혹시 모를 중복 제거 */
  padding: 0;
}

/* 수상자 한 줄(아이템) */
.award-item{
  padding:14px 0;
  border-bottom:1px solid #DDDDDD;
  margin-bottom:16px;
}

.award-item:first-child{
  padding-top:20px!important;
}

/* 마지막 아이템은 라인 제거 */
.award-item:last-child{
  border-bottom:none;
  padding-bottom:0;
}

/* 수상자 */
.award-author{
  font-weight:700;
  color:#1d4b92;
  margin-bottom:6px;
}

/* 연제명 */
.award-paper{
  margin-bottom:20px;
  color:#222;
  line-height:1.5;
  word-break:keep-all;
}


/* 연제명 */
.award-name{
  color:#222;
  line-height:1.5;
  word-break:keep-all;
}





/* =========================
   시상내역
========================= */

.abstract-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:20px 0 0 0;
  box-sizing:border-box;
  margin-bottom:0px;
}

/* 대표행사 섹션 - 위/아래 여백 */
.abstract-wrap .row{
  align-items:flex-start;
  --bs-gutter-x: 12px;   /* 기본 24px → 12px */
  --bs-gutter-y: 0px;    /* 세로 간격 제거 */
}


/* =========================
   대표행사 (상단)
========================= */
.feature-thumb img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  box-shadow:0 10px 18px rgba(0,0,0,.08);
  margin-bottom:30px;
}

/* 우측 텍스트 영역(기본) */
.feature-content{
  min-width:0;
  padding-left:30px;
}

/* 제목 */
.feature-title{
  font-size:24px;
  font-weight:800;
  color:#222;
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:12px;
}
.title-bar{
  width:5px;
  height:24px;
  background:#003d7c;
  flex:0 0 auto;
}

/* 안내 문구 */
.feature-register{
  font-size:20px;
  color:#e60023;;
  margin:0 0 18px;
  font-weight:800;
}

/* 일시/장소 리스트 */
.feature-info{
  list-style:none;
  padding:0;
  margin:0 0 22px;
}
.feature-info li{
  display:flex;
  gap:10px;
  margin:0 0 8px;
  font-size:16px;
  color:#333;
}
.feature-info b{
  width:70px;
  color:#003d7c;
  font-weight:800;
  flex:0 0 auto;
}


/* 버튼 */
.feature-buttons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.feature-buttons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 28px;
  border-radius:4px;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  transition:.2s;
}
.btn-primary{ background:#003d7c; color:#fff; }
.btn-primary:hover{ background:#333; color:#fff; }

.btn-outline{ border:1px solid #003d7c; color:#003d7c; background:#fff; }
.btn-outline:hover{ background:#e6f1fc; }



/* =========================
   지난 행사 리스트 (하단)
========================= */

/* ✅ 리스트는 컨테이너 폭에 맞추고, 상단 라인이 대표행사와 붙지 않게 */
.abstract-list{
  border-top:2px solid #003d7c;
  padding-top:0px;          /* ✅ 상단 라인 아래 여백 */
  margin-top:-30px;            /* ✅ 대표행사와 추가 분리 */
}

/* 한 항목 */
.abstract-item{
  display:flex;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid #dddddd;
  align-items:flex-start;
}

/* 내용 */
.abstract-content{
  flex:1;
  min-width:0;
}

.abstract-header h3{
  font-size:19px;
  font-weight:800;
  margin:0 0 10px;
  color:#003d7c;
}


/* 모바일: item 세로배치 + 버튼은 아래 우측 */
@media (max-width:768px){
  .abstract-item{
    flex-direction:column;
    gap:12px;
  }
  .abstract-buttons{
    width:100%;
    justify-content:flex-end;
  }
  .abstract-info b{ width:96px; }
}



/* =========================
   학술행사
========================= */

.conference-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:20px 0 0 0;
  box-sizing:border-box;
  margin-bottom:0px;
}

/* 대표행사 섹션 - 위/아래 여백 */
.conference-wrap .row{
  align-items:flex-start;
  --bs-gutter-x: 12px;   /* 기본 24px → 12px */
  --bs-gutter-y: 0px;    /* 세로 간격 제거 */
}


/* =========================
   대표행사 (상단)
========================= */
.feature-thumb img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  box-shadow:0 10px 18px rgba(0,0,0,.08);
  margin-bottom:30px;
}

/* 우측 텍스트 영역(기본) */
.feature-content{
  min-width:0;
  padding-left:30px;
}

/* 제목 */
.feature-title{
  font-size:24px;
  font-weight:800;
  color:#222;
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:12px;
}
.title-bar{
  width:5px;
  height:24px;
  background:#003d7c;
  flex:0 0 auto;
}

/* 안내 문구 */
.feature-register{
  font-size:20px;
  color:#e60023;;
  margin:0 0 18px;
  font-weight:800;
}


/* 일시/장소 리스트 */
.feature-info{
  list-style:none;
  padding:0;
  margin:0 0 22px;
}
.feature-info li{
  display:flex;
  gap:10px;
  margin:0 0 8px;
  font-size:16px;
  color:#333;
}
.feature-info b{
  width:70px;
  color:#003d7c;
  font-weight:800;
  flex:0 0 auto;
}


/* 버튼 */
.feature-buttons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.feature-buttons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 28px;
  border-radius:4px;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  transition:.2s;
}
.btn-primary{ background:#003d7c; color:#fff; }
.btn-primary:hover{ background:#333; color:#fff; }

.btn-outline{ border:1px solid #003d7c; color:#003d7c; background:#fff; }
.btn-outline:hover{ background:#e6f1fc; color:#003d7c; }



/* =========================
   지난 행사 리스트 (하단)
========================= */

/* ✅ 리스트는 컨테이너 폭에 맞추고, 상단 라인이 대표행사와 붙지 않게 */
.conference-list{
  border-top:2px solid #003d7c;
  padding-top:0px;          /* ✅ 상단 라인 아래 여백 */
  margin-top:-30px;            /* ✅ 대표행사와 추가 분리 */
}

/* 한 항목 */
.conference-item{
  display:flex;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid #dddddd;
  align-items:flex-start;
}

/* 내용 */
.conference-content{
  flex:1;
  min-width:0;
}

.conference-header h3{
  font-size:19px;
  font-weight:800;
  margin:0 0 10px;
  color:#003d7c;
}

.conference-info{
  list-style:none;
  padding:0;
  margin:0;
}
.conference-info li{
  font-size:15px;
  color:#555;
  margin:0 0 4px;
}
.conference-info b{
  display:inline-block;
  width:120px;
  color:#333;
  font-weight:800;
}
.deadline{ color:#e60023; font-weight:900; }

/* ✅ 버튼: 항상 우측 (conference-item의 오른쪽 칼럼) */
.conference-buttons{
  flex:0 0 auto;
  margin-left:auto;
  display:flex;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
  white-space:nowrap;
}

.conference-buttons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  font-size:14px;
  font-weight:800;
  text-decoration:none;
  border-radius:4px;
  white-space:nowrap;
}

.btn-detail{
  border:1px solid #003d7c;
  color:#003d7c;
  background:#fff;
}
.btn-detail:hover{ background:#e6f1fc; }

.btn-register{
  background:#eee;
  color:#555;
}
.btn-register:hover{ background:#e6e6e6; }

/* 모바일: item 세로배치 + 버튼은 아래 우측 */
@media (max-width:768px){
  .conference-item{
    flex-direction:column;
    gap:12px;
  }
  .conference-buttons{
    width:100%;
    justify-content:flex-end;
  }
  .conference-info b{ width:96px; }
}



/* =========================
   학술행사 탭 메뉴
========================= */

.detail-tabs{
  display:flex;
  width:100%;
  border-top:1px solid #cfcfcf;
  border-bottom:1px solid #cfcfcf;
}

.detail-tab{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  height:54px;

  background:#efefef;
  color:#333;
  text-decoration:none;

  font-size:17px;
  font-weight:600;

  border-right:1px solid #d5d5d5;
  transition:.2s;
}

.detail-tab:first-child{
  border-left:1px solid #d5d5d5;
}

.detail-tab:hover{
  background:#003d7c;  
  color:#fff;
  font-weight:700;
}

.detail-tab.is-active{
  background:#003d7c;  
  color:#fff;
  font-weight:700;
}

/* 모바일 */
@media (max-width: 768px){
  .detail-tab{
    font-size:14px;   /* ⭐ 글씨 축소 */
    height:48px;      /* 높이도 약간 줄이면 더 안정 */
    padding:0 8px;
  }
}



/* =========================
   타이틀 박스
========================= */
.detail-title-box{
  padding:14px 12px;
  margin:18px 0 0;      /* ❗ 아래 여백 제거 */
  text-align:center;
  background:#003d7c;
  border:1px solid #DDDDDD;
  border-radius:2px 2px 0 0;   /* 위쪽만 둥글게 */
  color:#fff;
  font-size:1.1em;
  font-weight:700;
}

/* =========================
   컨텐츠 박스 (흰색 + 회색 테두리)
========================= */
.detail-content {
  padding: 0;           /* ❗ 패딩을 0으로 제거하여 이미지를 끝까지 붙임 */
  margin: 0;
  text-align: center;
  background: #ffffff;
  border: 1px solid #DDDDDD;
  border-top: none;
  border-radius: 0 0 2px 2px;
  overflow: hidden;     /* ❗ 이미지가 테두리를 넘어가지 않게 함 */
}

/* 이미지 100% 채우기 */
.detail-content img {
  width: 100%;          /* 가로 100% */
  height: auto;         /* 세로 비율 유지 */
  display: block;       /* 하단 미세 여백 제거 */
  margin: 0;
}




/* =========================
   강의원고 접수안내 (TABLE 버전)
========================= */

/* ✅ 테이블 전체 */
table.note{
  width: 100% !important;         /* HTML width="100%"와 동일하지만 우선 적용 */
  max-width: 980px !important;    /* 너무 넓어지지 않게 */
  margin: 0 auto !important;      /* 가운데 정렬 */
  border-collapse: separate !important;
  border-spacing: 0 !important;
  padding: 30px;
  background:#fff !important;

  box-sizing:border-box !important;
  overflow:hidden;                /* 라운드 모서리 잘 먹게 */
}

/* ✅ 셀 공통 */
table.note td{
  padding: 12px 16px !important;  /* 기존 10px 0 → 너무 좁아서 수정 */
  text-align: left !important;
  vertical-align: top !important;
}

/* ✅ 안내 문장 */
table.note .note-title{
  font-size: 24px;
  font-weight: 800;
  color: #222;
  line-height: 1.5;
  display: block;
  text-align: center;
}

/* ✅ 접수 기간 */
table.note .note-date{
  font-size: 20px;
  font-weight: 800;
  color: #e60023;
  display: block;
  text-align: center;
  margin: 0;
}

/* ✅ 리스트 박스 */
table.note .note-list{
  list-style: none;               /* 도트 제거 원하면 */
  margin: 0;
  padding: 16px 18px;
  line-height: 1.6;
  color: #222;
  background: #efefef;
  border: 1px solid #DDDDDD;
  border-radius:10px;
}

table.note .note-list li{
  margin: 6px 0;
  position: relative;
  padding-left: 12px;             /* 도트 대신 들여쓰기 */
}
table.note .note-list li::before{
  content: "-";
  position: absolute;
  left: 0;
  top: 0;
  color: #666;
}

/* ✅ 버튼 영역 */
table.note .btn-go1{
  display: inline-block;
  padding: 15px 30px;
  margin: 8px 6px 0;
  border-radius: 6px;
  background: #333333;
  color: #ffffff;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 16px rgba(0,0,0,.08);
  transition: .2s;
}
table.note .btn-go1:hover{
  background: #003d7c;
  color: #fff;
}

/* ✅ 마지막 줄(버튼줄) 가운데 정렬 */
table.note tr:last-child td{
  text-align: center !important;
  padding-top: 16px !important;
}

/* ✅ 모바일 */
@media (max-width:640px){
  table.note .note-title{ font-size: 20px; }
  table.note .note-date{ font-size: 16px; }

  table.note .btn-go1{
    display: block;
    width: 100%;
    margin: 8px 0 0;
    text-align: center;
    box-sizing: border-box;
  }
}

/* =========================
   입력폼 공통 스타일
========================= */

.upload-form input[type="text"],
.upload-form input[type="select"],
.upload-form input[type="password"],
.upload-form input[type="email"],
.upload-form input[type="date"],
.upload-form textarea,
.upload-form select{
  border:1px solid #999999;   /* 연한 회색 */
  background:#fff;
  border-radius:3px;
  padding:6px 8px;
  font-size:13px;
  box-sizing:border-box;
}

/* 포커스 시 */
.upload-form input:focus,
.upload-form textarea:focus,
.upload-form select:focus{
  border-color:#999999;   /* 살짝 진한 회색 */
  outline:none;
}

/* =========================
   강의원고 접수
========================= */

.upload-form{
  width:100%;
  padding: 40px;              /* ✅ 좌우 padding 제거(테이블 폭 깨짐 방지) */
  box-sizing:border-box;
}

/* 바깥 테이블 */
.upload-form .form-outer{
  width:100%;
  border-collapse:collapse;
  border-top:0;
  border-bottom:0;
}

/* 내부 폼 테이블 */
.upload-form .form-table{
  width:100%;
  border-collapse:collapse;
}

/* 행 라인 */
.upload-form .form-table tr{
  border-bottom:1px solid #ddd;
}

/* 셀 공통 */
.upload-form .form-table th,
.upload-form .form-table td{
  padding:12px 10px;
  vertical-align:middle;
  text-align:left;
  box-sizing:border-box;
}

/* 라벨 */
.upload-form .form-table th{
  width:140px;                   /* ✅ 약간 넓혀서 줄바꿈 줄임 */
  font-weight:700;
  white-space:nowrap;
}

/* 필수표시 */
.upload-form .req{
  color:#e60023;
  font-weight:900;
  margin-left:2px;
}

/* =========================
   입력/셀렉트 공통
========================= */
.upload-form .inp{
  height:28px;                   /* ✅ 24→28 (클릭 편의/일관성) */
  border:1px solid #777;
  box-sizing:border-box;
  padding:0 8px;
  background:#fff;
}

/* ✅ 폭 프리셋: PC에서는 최대치, 작은 화면에서는 자동 100% */
.upload-form .w-sm{ width:220px; max-width:100%; }
.upload-form .w-md{ width:360px; max-width:100%; }
.upload-form .w-lg{ width:520px; max-width:100%; }
.upload-form .w-pw{ width:180px; max-width:100%; }

/* =========================
   파일 영역
========================= */
.upload-form .file-table{
  width:100%;
  border-collapse:collapse;
}
.upload-form .file-table td{
  padding:6px 0;
  border:none;
}
.upload-form .file-label{
  width:90px;
  font-weight:700;
  white-space:nowrap;
}

/* =========================
   섹션 구분선
========================= */
.upload-form .divider{
  height:18px;
}
.upload-form .divider-line{
  border-top:2px solid #333;
}

/* =========================
   안내 문구
========================= */
.upload-form .notice{
  padding:14px 10px 6px;
  font-weight:500;
  text-align:left;
  line-height:1.5;
}

/* =========================
   버튼
========================= */
.upload-form .btn-area{
  text-align:center;
  padding:18px 0 10px;
}
.upload-form .btn-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:12px 28px;
  border-radius:6px;
  background:#333333;
  color:#ffffff;
  font-size:16px;
  font-weight:800;
  text-decoration:none;
  border:1px solid #0b5ea8;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(0,0,0,.08);
  transition:.2s;
}
.upload-form .btn-submit:hover{
  background:#003d7c;           /* ✅ 요청: 오버시 파란색 */
  color:#fff;
}

/* =========================
   ✅ 라디오/체크박스 "안 보임" 강제 복구
   - 공통 CSS에서 appearance:none 걸려있는 경우 대비
========================= */
.upload-form input[type="radio"],
.upload-form input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:auto !important;
  -moz-appearance:auto !important;

  width:auto !important;
  height:auto !important;
  opacity:1 !important;
  position:static !important;
  clip:auto !important;
  margin:0 6px 0 0;             /* 라벨과 간격 */
  vertical-align:middle;
}

/* 라디오(또는 체크) 라벨 */
.upload-form .radio-item,
.upload-form .chk-item{
  display:inline-flex;
  align-items:center;
  margin-right:18px;
  cursor:pointer;
  font-weight:600;
  line-height:1.2;
}

/* 혹시 label 내부 input이 떠버리는 경우 대비 */
.upload-form .radio-item input,
.upload-form .chk-item input{
  transform:none !important;
}

/* =========================
   모바일 대응
========================= */
@media (max-width:640px){
  .upload-form{ padding:16px 0; }

  .upload-form .form-table th{
    width:96px;
  }

  /* 작은 화면에서는 입력이 셀 너비에 맞게 */
  .upload-form .w-sm,
  .upload-form .w-md,
  .upload-form .w-lg,
  .upload-form .w-pw{
    width:100%;
  }

  /* 파일 테이블도 줄바꿈 자연스럽게 */
  .upload-form .file-label{
    width:70px;
  }
}

/* 섹션 제목(학술정보/인적사항/자료제출 같은 라벨) */
.upload-form .section-title{
  display:block;
  width:100%;
  margin:26px 0 14px;
  padding:10px 0;
  text-align:left;
  font-size:22px;
  font-weight:800;
  color:#003d7c;
}

/* 위/아래 구분선 느낌(원하면) */
.upload-form .section-title{
  border-top:0px solid #ddd;
  border-bottom:2px solid #003d7c;
}


/* =========================
   강의원고 수정 로그인
========================= */

.login-wrap{
  max-width: 700px;
  margin: 0 auto;
  padding: 36px 18px 60px;
  text-align: center;   /* ⭐ 설명문 가운데 */
}

.login-desc{
  padding: 10px 0px;
  font-size: 20px;
  font-weight: 800;
  color: #222;
  line-height: 1.5;
  display: block;
  text-align: center;
}

/* ⭐ 입력 영역 전체를 가운데 */
.login-box{
  max-width: 360px;
  margin: 0 auto;
  text-align: left;      /* 입력창 내부 텍스트는 좌측 */
}

/* ===== 입력 ===== */
.login-input{
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid #707070;
  border-radius: 2px;
  font-size: 15px;
  outline: none;
  background:#fff;
  margin-bottom: 12px;
  display:block;         /* ⭐ 정렬 안정화 */
}

.login-input::placeholder{ color:#222; }

.login-input:focus{
  border-color:#2f6f8a;
  box-shadow: 0 0 0 3px rgba(47,111,138,.15);
}

/* ===== 버튼 ===== */
.btn-login{
  width: 100%;
  display:block;
  padding: 15px 0;
  margin: 12px auto 0;   /* ⭐ 가운데 정렬 핵심 */
  border-radius: 6px;
  background: #333333;
  color: #ffffff;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 16px rgba(0,0,0,.08);
  transition: .2s;
  border:none;
  cursor:pointer;
}

.btn-login:hover{ 
  background: #003d7c;
  color: #fff;
}

/* 모바일 */
@media (max-width: 420px){
  .login-desc{ font-size: 15px; }
  .login-box{ max-width: 100%; }
}


/* =========================
   사전등록
========================= */

  .pre-wrap{
    max-width:1200px;
    margin:0 auto;
    padding:24px 18px 40px;
    box-sizing:border-box;
    font-family: "Noto Sans KR", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    color:#111;
  }

  /* ===== top deadline banner ===== */
.deadline-banner{
  background: var(--soft);
  border-radius: 12px;
  padding: 22px 26px;
  display: flex;
  align-items: center;
  justify-content: center;   /* ⭐ 핵심 */
  box-sizing: border-box;
}

.deadline-text{
  text-align: center;
}

.deadline-text .title{
  font-size: 24px;
  font-weight: 800;
  color: #222;
  line-height: 1.5;
  display: block;
  text-align: center;
}


.deadline-text .date{
  font-size: 20px;
  font-weight: 800;
  color: #e60023;
  display: block;
  margin: 0;
}

  /* ===== two cards ===== */
  .pre-cards{
    margin-top:18px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px;
  }

/* 모바일: 1열 */
@media (max-width: 768px){
  .pre-cards{
    grid-template-columns: 1fr;   /* ⭐ 1열 */
  }

  .pre-card{
    width:100%;
  }
}  

  .pre-card{
    position:relative;
    min-height:220px;
    border-radius:var(--cardRadius);
    overflow:hidden;
    background:#6b7280;
  }

  /* background image */
  .pre-card::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--bg);
    background-size:cover;
    background-position:center;
    transform:scale(1.02);
  }

  /* dark overlay */
  .pre-card::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(17,24,39,.55);
  }

  .pre-card-inner{
    position:relative;
    z-index:2;
    height:100%;
    padding:26px 28px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    color:#fff;
    box-sizing:border-box;
  }

  .pre-card-title{
    font-size:26px;
    font-weight:900;
    margin:0 0 10px;
    letter-spacing:-0.02em;
    color:#fff;
  }

  .pre-card-desc{
    margin:0 0 18px;
    font-size:15px;
    line-height:1.6;
    font-weight:400;
    color:#fff;
  }

  .pre-card-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:44px;
    padding:0 26px;
    border-radius:6px;
    background:#fff;
    color:#111;
    font-weight:800;
    text-decoration:none;
    margin:0 auto;
    box-shadow:0 10px 18px rgba(0,0,0,.14);
    transition:.15s ease;
  }
  .pre-card-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 22px rgba(0,0,0,.18);
  }

 /* ===== 안내 정보 영역 ===== */

.info-table{
  width:100%;
  margin-top:24px;
  border-top:1px solid #e3e7ef;
}

/* 한 줄 (좌측 제목 + 우측 내용) */
.info-row{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:20px;
  padding:18px 6px;
  border-bottom:1px solid #e3e7ef;
  align-items:flex-start;
}

/* ⭐ 좌측 항목 (파란색) */
.info-th{
  color:#0b4aa2;
  font-weight:800;
  letter-spacing:-0.02em;
  padding-top:2px;
}

/* ⭐ 우측 내용 — 왼쪽 정렬 */
.info-td{
  text-align:left;     /* ← 핵심 */
  line-height:1.7;
  font-weight:400;
  color:#111;
}

.info-td .muted{
  color:#6b7280;
}

/* 작은 네모 표시 */
.info-td .dot{
  display:inline-block;
  width:10px;
  height:10px;
  background:#111;
  border-radius:2px;
  margin-right:8px;
  transform:translateY(1px);
}

/* 모바일 */
@media (max-width:640px){
  .info-row{
    grid-template-columns:110px 1fr;
  }
}


/* =========================
   광고등록
========================= */

  .ad-wrap{
    max-width:1200px;
    margin:0 auto;
    padding:50px 0px;
    box-sizing:border-box;
    font-family: "Noto Sans KR", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    color:#111;
  }
  



/* =========================
   회원가입 스탭
========================= */


  /* ===== layout ===== */
  .join-guide-wrap{
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px 80px;
    font-family: "Noto Sans KR", Arial, sans-serif;
    color:#222;
  }


/* ===== step bar (교체본) ===== */
.stepbar{
  display:flex;
  align-items:center;
  justify-content:center;     /* 가운데 정렬 */
  gap:0;                      /* gap 제거 */
  padding:10px 0 26px;
}

/* step */
.step{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;              /* 폭을 강제로 늘리지 않음 */
  min-width:0;
}

.step .circle{
  width:86px;
  height:86px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#cfcfcf;
  color:#fff;
  flex:0 0 auto;
}

.step.active .circle{ background:#003d7c; }

.step .circle img{
  width:50px;
  height:50px;
  opacity:.95;
}

.step .meta{
  line-height:1.25;
}

.step .meta .st{
  font-weight:800;
  color:#003d7c;
  font-size:13px;
  letter-spacing:.2px;
}
.step:not(.active) .meta .st{ color:#999; }

.step .meta .ttl{
  margin-top:6px;
  font-size:18px;
  font-weight:700;
  color:#222;
  white-space:nowrap;         /* ✅ 줄바꿈 방지 */
}

/* arrow : 화살표 기준 좌우 50px */
.arrow{
  width:24px;
  height:24px;
  flex:0 0 24px;
  margin:0 50px;              /* ✅ 요청값 */

}

/* ===== 모바일에서도 한줄 유지 ===== */
@media (max-width:768px){

  /* stepbar 자체를 무조건 가로 flex로 고정 */
  .stepbar{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:space-between !important;
    align-items:center !important;
    gap:0 !important;
  }

  /* 각 step은 3등분 */
  .stepbar .step{
    flex:1 1 0 !important;
    width:auto !important;
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;   /* 아이콘 위, 텍스트 아래 */
    align-items:center !important;
    text-align:center !important;
  }

  /* 화살표는 고정폭 */
  .stepbar .arrow{
    flex:0 0 16px !important;
    width:16px !important;
    height:16px !important;
    margin:0 10px !important;
  }

  /* 모바일에서 크기 축소 */
  .stepbar .circle{
    width:54px !important;
    height:54px !important;
  }
  .stepbar .circle img{
    width:28px !important;
    height:28px !important;
  }

  .stepbar .meta .st{ font-size:11px !important; }
  .stepbar .meta .ttl{
    font-size:12px !important;
    margin-top:2px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
  }
}




  .divider{
    border-top:1px solid #333;
    opacity:.25;
    margin: 18px 0 26px;
  }

  /* ===== content rows ===== */
  .guide-row{
    display:flex;
    gap:34px;
    padding: 28px 0;
    border-bottom:1px solid #eee;
  }
  .guide-row:last-child{ border-bottom:0; }

  .guide-img{
    width: 320px;
    flex:0 0 320px;
    border-radius:2px;
    overflow:hidden;
    background:#f2f2f2;
    position:relative;
  }
  .guide-img img{
    width:100%;
    height:200px;
    object-fit:cover;
    display:block;
 filter: brightness(0.8) saturate(.95);  /* ⭐ 어둡게 */
  }
  .guide-img .label{
    position:absolute;
    left:0; top:0; right:0; bottom:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    font-weight:800;
    color:#fff;
    background:rgba(0,0,0,.18);
  }

  .guide-body{
    flex:1;
    font-size:16px;
    line-height:1.85;
    color:#222;
    padding-top:6px;
  }

  .guide-body b{ font-weight:800; }

  .bullets{
    margin: 6px 0 0;
    padding-left: 18px;
  }
  .bullets li{
    margin: 6px 0;
  }

  .sub-bullets{
    margin: 10px 0 0;
    padding-left: 18px;
  }
  .sub-bullets li{ margin: 6px 0; }

  .note{
    margin-top:10px;
    color:#444;
  }

  /* ===== buttons ===== */
  .btn-area{
    margin-top: 22px;
    text-align: center;  
  }
  
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:50px;
    padding:10px 30px;
    border-radius:10px;
    font-size:18px;
    font-weight:800;
    text-decoration:none;
    border:1px solid #003d7c;
    color:#ffffff;
    background:#003d7c;
  }
  .btn:hover{
    background:#333333;
    color:#fff;
  }

  /* ===== responsive ===== */
  @media (max-width: 860px){
    .stepbar{ flex-direction:column; gap:16px; }
    .arrow{ display:none; }
    .step{ min-width:auto; width:100%; justify-content:center; }
    .guide-row{ flex-direction:column; }
    .guide-img{ width:100%; flex:0 0 auto; }
    .guide-img img{ height:200px; }
  }




/* =========================
   일정달력
========================= */
.yearCal-wrap{
  width:100%;
  margin:0 auto;
}

.yearCal-head{
  text-align:center;
  margin: 10px 0 30px;
}

.yearCal-head .year{
  font-size:30px;
  font-weight:800;
  letter-spacing:1px;
}

.yearCal-head .sub{
  margin-top:8px;
  font-size:16px;
  color:#666;
}

.yearCal-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr); /* PC: 4열 = 12개월 딱 */
  gap:30px;
}

.monthCard{
  border:1px solid #e6e8ef;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  min-height:170px;
  padding:0;   /* ⭐ 이 줄 추가 */
}

.monthTitle{
  margin:0;
  padding:14px;
  font-size:16px;
  font-weight:800;
  background:#f3f6fb;
  border-bottom:1px solid #eef1f6;
}

.monthBody{
  padding:12px 14px 14px;
}

.noEvent{
  color:#9aa3ad;
  font-size:13px;
  padding: 18px 0;
  text-align:center;
}

.eventItem{
  display:flex;
  gap:10px;
  padding:10px 10px;
  border:1px solid #eef1f6;
  border-radius:12px;
  background:#fafcff;
  margin-bottom:10px;
}
.eventItem:last-child{ margin-bottom:0; }

.eventDate{
  flex:0 0 86px;
  font-weight:800;
  font-size:13px;
  color:#0b4aa2;
  line-height: 1.2;
  padding-top:2px;
}

.eventInfo{ min-width:0; }
.eventName{
  font-weight:800;
  font-size:14px;
  color:#111;
  line-height:1.25;
  word-break: keep-all;
}
.eventPlace{
  margin-top:4px;
  font-size:12px;
  color:#666;
  line-height:1.3;
  word-break: keep-all;
}

/* 행사 있는 달 강조(선택) */
.monthCard.hasEvent .monthTitle{
  background: linear-gradient(90deg, #eaf3ff, #f6f8fc);
}

/* ===== 반응형 ===== */
/* 태블릿: 2열 */
@media (max-width: 991px){
  .yearCal-grid{ grid-template-columns: repeat(2, 1fr); }
}

/* 모바일: 1열 */
@media (max-width: 767px){
  .yearCal-head .year{ font-size:22px; }
  .yearCal-grid{ grid-template-columns: 1fr; }
  .monthCard{ border-radius:12px; }
  .eventDate{ flex-basis: 78px; }
}
  
  
/* =========================
    연회비관리
========================= */
.bbslist{width: 100%; padding:5px; margin-bottom:30px; }
.bbslist th {background:#efefef; color: #333333; text-align:center; padding:5px; border: 1px solid #e0e0e0;}
.bbslist td {background:#ffffff; color: #333333; text-align:center; padding:5px; border: 1px solid #e0e0e0;}
.bbslist td.left {text-align:left;}
.bbslist td.right {text-align:right;}
.bbslist td.content {text-align:left; padding:15px; height:200px;}
.bbslist td.file {text-align:left; padding:15px;}
.bbslist td.reply {text-align:left; padding:15px; background:#efefef; }
.bbslist td.photo {padding:15px;}