@import url('https://webfontworld.github.io/NexonLv1Gothic/NexonLv1Gothic.css');
@import url('https://webfontworld.github.io/gmarket/GmarketSans.css');
        
.nexon {
    font-family: 'NexonLv1Gothic';
    font-weight: 400;
}
.gmarket {
    font-family: 'GmarketSans';
}

/* reset */
* {
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Noto Sans KR', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    color: #222;   
}
a {
    text-decoration: none;
    color: #FEFEFD;
}
li {
    list-style: none;
}
em {
    font-style: normal;
}

h1,h2,h3,h4,h5,h6 {
    font-weight: normal;
}
img {
    width: 100%;
    height: auto;
}
address {
    font-style: normal;
}
.blind {
    width: 0;
    height: 0;
    line-height: 0;
    overflow: hidden;
    position: absolute;
    text-indent: -9999px;
}
.ir /*image replacement*/{
    display: block;
    overflow: hidden;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
}
.ir_so {
    overflow: hidden;
    position: absolute;
    width: 0;
    height: 0;
    line-height: 0;
    text-indent: -9999px;
}
@media (max-width: 1024px) {
    .card {
        width: 45%;
    }
}

@media (max-width: 600px) {
    .card {
        width: 100%;
    }
}
/* common */
.container {
    max-width: 1500px;
    width: 100%;
    padding: 0 20px;
    margin: 0 auto;
}
.section {
    padding: 80px 0;
}
.section > h2 {
    font-size: 50px;
    line-height: 1;
    margin-bottom: 10px;
    text-align: center;
}
.section > p {
    font-size: 22px;
    font-weight: 300;
    margin-bottom: 10px;
    text-align: center;
    color: #777;
}

/* headerType */
.header__inner {
    height: 80px; /* 높이 증가 */
    padding: 0 30px; /* 여유 공간 확대 */
    background-color: #093A5E;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    box-sizing: border-box; /* padding의 영향을 박스 안으로 제한 */
    border-bottom: 1px solid #093A5E;

}
.header__logo {
    font-size: 19px;
    font-weight: 600;
    width: 20%;
}

.header__menu {
    width: 60%;
    text-align: center;
}
.header__menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center; /*메뉴를 가로 중앙 정렬 */
}
.header__menu li {
    position: relative; /*드롭다운을 위한 상대 위치 */
    padding: 15px 20px;
    display: inline-block;
}
.header__menu li a {
    padding: 13px 20px;
    margin: 0 10px;
    color: white;
    text-decoration: none;
    font-size: 27px;
    font-weight: 500;
    display: block;
}
.header__menu li a:hover {
    background-color: #097A85;
    border-radius: 5px;
}
.header__member {
    width: 20%;
    text-align: right;
}
.header__member a {
    font-size: 15px;
    font-weight: 600;
    border: 1px solid #FEFEFD;
    padding: 10px 30px;
    border-radius: 50px;

    display: inline-block;
    text-decoration: none;
    color: white;
}
.header__member a:hover {
    background-color: #093A5E;
    border-radius: 50px;
}

@media (max-width: 1200px){
  .header__menu li a { font-size: 24px; }  /* 데스크톱보다 살짝 축소 */
}
@media (max-width: 992px){
  .header__menu li a { font-size: 22px; }
}




/* sliderType */
.slider {
    position: relative;
    width: 100%;  /* 화면 너비 전체 사용 */
    overflow: hidden;
}
.slider__img {
    display: flex;
    height: auto;
    transition: transform 0.6s ease-in-out;
}

.slider__img img {
    width: 100%;
    height: auto;
    flex: 0 0 100%; 
}

.slider__desc {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: left;
    color: white;
    z-index: 10;
    width: 80%;  /* 텍스트 박스 크기 조정 */
}
.slider__desc span {
    font-size: 20px;
    background-color: #FEFEFD;
    color: #000;
    padding: 0 14px 0 14px;
    border-radius: 30px;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: inline-block;
}
.slider__desc h3{
  font-size: clamp(28px, 5vw, 64px);
  font-weight: 700;
  color: #fafafa;
  -webkit-text-stroke: 1;   /* 제거 */
  text-shadow: none;        /* 제거 */
}


.slider__desc p {
    font-size: 22px;
    font-weight: 400;
    color: #e7e7e7;
    line-height: 1.35;
    margin-bottom: 150px;
}
.slider__arrow a {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 56px;
    background-image: url(../../images/slide_icon.svg);
    background-repeat: no-repeat;
    cursor: pointer;
}
.slider__arrow a.left {
    left: 30px;
    background-position: 0 0;
}
.slider__arrow a.right {
    right: 40px;
    background-position: -50px 0;
}
.slider__dot {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
}
.slider__dot a {
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url(../../images/slide_icon.svg);
    background-position: -20px -70px;
    cursor: pointer;
}
.slider__dot a.active {
    background-position: 0px -70px;
}

/* imageType */
#imageType {}
.image__wrap {}
.image__inner {
    display: flex;
    flex-direction: column; 
    align-items: center;
}
.schoolmap-image {
    width: 100%;
    max-height: 600px;
    object-fit: cover;
    border-radius: 10px;
}
.btn__wrap {
    margin-top: 30px;
    text-align: center;
}
.image__btn {
    font-size: 16px;
    font-weight: 300;
    color: #FEFEFD;
    background-color: #0A8E9C;
    padding: 10px 40px;
    border-radius: 5px;
    display: inline-block; 
}
.image__btn:hover {
    background: #ccc;
    color: #0A8E9C;
}

/*cardType*/
.card__wrap {
    width: 100%;
    height: 700px;
    background-color: #4F939A;
}
.card__wrap h2 {
    text-align: left;
    margin-left: 180px;
    font-size: 50px;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 15px;
    padding-top: 30px;
    color: #FEFEFD;
}
.card__wrap p {
    text-align: left;
    margin-left: 185px;
    font-size: 20px;
    font-weight: 300;
    margin-bottom: 30px;
    line-height: 1.3;
    color: #FEFEFD;
}
.card__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}
.card {
    width: 30%;
    border-radius: 5px;
    background: #FDFDFD;
    box-shadow: 0px 2px 8px rgba(0,0,0,0.1);
    border: 1px solid #eee;
}
.card__header {
  width: 100%;
  height: 400px; /* 또는 적당한 높이로 고정 */
  overflow: hidden;
}

.card__header img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: unset !important; /* inline aspect-ratio 무시 */
}

.card__body {
    padding: 3px;
}
.card__body h3 {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    color: #666;
}
.card__btn {
    font-size: 16px;
    font-weight: 500;
    background-color: #FEFEFD;
    color: #0A8E9C;
    padding: 12px 60px;
    border-radius: 5px;
    display: inline-block; 
}
.card__btn:hover {
    background: #ccc;
    color: #0A8E9C;
}




.btn-common {
    background-color: #0A8E9C;
    color: white;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 500;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s ease;
    text-decoration: none;
    display: inline-block;
}

.btn-common:hover {
    background-color: #086C78;
}
/* noticeType*/
.notice__wrap {
    text-align: center;
    padding: 80px 0;
}
.notice__wrap h2 {
    text-align: left;
    margin-left: 300px;
    font-size: 50px;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 15px;
    padding-top: 30px;
    color: #000;
}
.notice__wrap p {
    text-align: left;
    margin-left: 305px;
    font-size: 20px;
    font-weight: 300;
    margin-bottom: 30px;
    line-height: 1.3;
    color: #666;
}
.notice__btn {
    margin-bottom: 20px;
    text-align: left;
    margin-left: 310px;
    margin-bottom: 50px;
}
.notice__btn .btn {
    font-size: 16px;
    font-weight: 500;
    background: #0A8E9C;
    color: #FEFEFD;
    padding: 10px 20px;
    border-radius: 5px;
    transition: 0.3s;
}
.notice__btn .btn:hover {
    background: #ccc;
    color: #0A8E9C;
}
.notice__table {
    max-width: 900px;
    margin: 0 auto;
    background: white;
    border-radius: 5px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);

    max-height: 400px;
    overflow-y: auto;
}
.notice__table table {
    width: 100%;
    border-collapse: collapse;
}
.notice__table th, .notice__table td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid #ddd;
    text-align: center;
}
.notice__table th {
    background: rgba(10, 142, 156, 0.15); 
    font-weight: bold;
}
.notice__table tr:hover {
    background: #f5f5f5;
}
.notice__table td {
    color: #333;
}

.notice__table a {
    color: #000;        /* 검은색 텍스트 */
    font-weight: 400;
}

.notice__table a:hover {
    text-decoration: underline;
    color: #0A8E9C;     /* 호버 시 포인트 색상 */
}

.btn-write {
    display: inline-block;
    background-color: #0A8E9C;
    color: white;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    border: none;
    transition: background-color 0.2s ease;
}

.btn-write:hover {
    background-color: #086C78;
    text-decoration: none;
    }



/* 공지사항 상세 페이지 */
.notice-detail {
    max-width: 800px;
    margin: 50px auto;
    padding: 20px;
    background: white;
    border-radius: 10px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}

.notice-title {
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 10px;
}

.notice-meta p {
    font-size: 14px;
    color: #777;
    margin-bottom: 5px;
}

.notice-content {
    font-size: 16px;
    line-height: 1.6;
    margin: 20px 0;
}

.notice-actions {
    text-align: right;
    margin-top: 20px;
}

.btn-back {
    display: inline-block;
    padding: 10px 20px;
    background: #0A8E9C;
    color: white;
    border-radius: 5px;
    text-decoration: none;
    font-size: 14px;
}

.btn-back:hover {
    background: #086C78;
}


/* footerType */
.footer__wrap {
background-color: #093A5E;
padding: 40px 0;
color: white;
}
.footer__inner {
    max-width: 900px;
    margin: 0 auto;
    text-align: left;
    display: flex;
    flex-direction: column;
}
.footer__logo {
    width: 120px;
    height: 40px;
    background: url("../../images/CAU_symbol.png") no-repeat left center / contain;
    margin-bottom: 10px;    
}
.footer__info p {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 5px;
}
.footer__info a {
    color: #FEFEFD;
    text-decoration: underline;
}
.footer__links {
  text-align: center;
  font-size: 13px;
  color: rgba(255,255,255,0.9);
  margin-top: 20px;
}

.footer__links a {
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer__links a:hover {
  color: white;
}

/* 울림 링크 – 버튼처럼 안 보이게 */
.footer__link-ullim {
  font-weight: 500;
}

.footer__link-ullim:hover {
  opacity: 1;
  color: white;
}
.footer__links span {
  color: #ffffff;         /* 링크와 동일한 색상 유지 */
  cursor: default;        /* 클릭 안 되게 */
  text-decoration: none;  /* 밑줄 제거 */
}

.footer__links a.footer__link-ullim {
  color: #ffffff;
  text-decoration: none;
}

.footer__links a.footer__link-ullim:hover {
  text-decoration: underline;
}

/* ========== 드롭다운 ========== */

/* 1) 드롭다운 기본 설정 */
.dropdown__menu {
    display: none;
    position: absolute;
    top: 85%; /* 부모 메뉴 아래 (원래 쓰셨던) */
    left: 0;
    background: #093A5E; /* 파란색 배경 */
    width: 170px;
    border-radius: 5px;
    padding: 10px 0;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 1000;
}
/* 마우스를 올리면 보이게 */
.dropdown:hover .dropdown__menu {
    display: block;
}
.dropdown__menu li {
    padding: 5px 8px;
    display: block;
}
.dropdown__menu li a {
    color: white; /* 하얀 글자 */
    font-size: 12px;
    text-align: center;
    padding: 3px 6px;
    transition: background 0.3s ease;
}
.dropdown__menu li a:hover {
    background: #072c47;
    border-radius: 5px;
}


@media (max-width: 600px){
  .dropdown__menu li a { font-size: 11px; }
}







/* ================================ */
/* 🚀 헤더 우측 사용자 정보 스타일 */
/* ================================ */
.header__member {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* 유저 정보 박스 */
.user-info {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 200px;  /* 최대 너비 설정 */
    white-space: nowrap; /* 텍스트 줄바꿈 방지 */
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 프로필 아이콘 */
.user-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
}

/* 사용자 이름 (폰트 크기 자동 조정) */
.user-name {
    font-size: 18px;
    font-weight: bold;
    color: #fff;
    max-width: 140px; /* 길어지면 자동으로 ... 처리 */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 관리자 버튼 / 로그아웃 버튼 가로 정렬 */
.user-actions {
    display: flex;
    gap: 8px; /* 간격 조정 */
}

/* 버튼 스타일 공통 */
.user-actions a {
    padding: 6px 12px;  /* 버튼 크기 줄이기 */
    border-radius: 15px;
    font-size: 13px;  /* 폰트 크기 줄이기 */
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: background 0.3s ease;
}



/* 로그아웃 버튼 */
.btn-logout {
    background-color: #097A85; /* 웹사이트 기본 색상과 조화 */
    color: white;
}

/* 버튼 hover 효과 */
.btn-admin:hover {
    background-color: #086C78;
}
.btn-logout:hover {
    background-color: #075F66;
}

.notice-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 600px;
    margin: 0 auto;
}

.notice-form input[type="text"],
.notice-form textarea {
    padding: 10px;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 6px;
}

.notice-form button.btn {
    background-color: #007baf;
    color: black;
    padding: 10px;
    border-radius: 6px;
    border: none;
    font-weight: bold;
}





/* 🔹 회계감사내역 페이지 스타일 */
.finance.container {
    max-width: 900px;
    margin: 50px auto;
    padding: 20px;
    background: white;
    border-radius: 10px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}
.btn-delete {
    background-color: #e74c3c;      /* 부드러운 빨간색 */
    color: white;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 500;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.btn-delete:hover {
  background-color: #c0392b;     /* 진한 빨강 on hover */
}



/* 🔹 게시판 스타일 */
.board-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.board-table th, .board-table td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: center;
}

.board-table th {
    background: #f8f9fa;
    font-weight: bold;
}

.board-table .board-title {
    text-align: left;
}

.board-table a {
    color: #0A8E9C;
    text-decoration: none;
    font-weight: bold;
}

.board-table a:hover {
    text-decoration: underline;
}

.no-reports {
    text-align: center;
    font-size: 16px;
    color: #777;
    padding: 20px;
}

/* 🔹 업로드 폼 스타일 */
.upload-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.upload-form input, .upload-form button {
    padding: 10px;
    font-size: 16px;
}




.about-paragraph {
    white-space: pre-line;
    line-height: 1.8;
}
/*총학 소개 페이지 스타일*/
.about-layout {
display: flex;
justify-content: space-between;
max-width: 1500px;
margin: 0 auto;
padding: 40px;
gap: 40px;
}

.about-section {
flex: 3;
max-width: 140%;
}





/*학교생활 파트*/
.aff-form-wrap {
    max-width: 600px;
    margin: 0 auto;
    padding: 30px;
}

.aff-form-wrap h2 {
    text-align: center;
    font-size: 28px;
    margin-bottom: 30px;
}

.aff-form-wrap label {
    display: block;
    margin-bottom: 6px;
    font-weight: 500;
    font-size: 15px;
}

.aff-form-wrap input[type="text"],
.aff-form-wrap input[type="date"],
.aff-form-wrap textarea,
.aff-form-wrap input[type="file"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 20px;
    box-sizing: border-box;
}

.aff-form-wrap textarea {
    resize: vertical;
    min-height: 600px;
}


.aff-form-wrap button {
    display: block;
    width: 100%;
    padding: 12px;
    background-color: #0A8E9C;
    color: white;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.aff-form-wrap button:hover {
    background-color: #086c78;
}


.partner-slider {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 0 auto 40px;
    overflow: hidden;
    }

    .partner-slider-track {
    display: flex;
    transition: transform 0.3s ease;
    }

    .partner-slider-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 60px;
    color: #888;
    cursor: pointer;
    padding: 4px 10px;
    z-index: 10;
    }

    .partner-slider-button.left {
    left: 0;
    }

    .partner-slider-button.right {
    right: 0;
}






















.icon-download {
    display: inline-block;
    margin-top: 4px;
    padding: 6px 10px;
    color: white;
    border-radius: 4px;
    font-size: 16px;
    text-decoration: none;
    transition: background 0.2s ease;
}
.icon-download:hover {
    background-color: #007a8c;
}

.wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.main-content img.campus-map {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

.map-dropdown {
    width: 100%;
    background-color: #1e3a75;
    color: #cbd5f0;
    border: 1px solid #2f4a91;
    font-family: inherit;
}

.map-dropdown .selected {
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    cursor: pointer;
}

.map-dropdown .dropdown-list {
    max-height: 200px;
    overflow-y: auto;
    background-color: #1e3a75;
    border-top: 1px solid #2f4a91;
}

.map-dropdown .dropdown-list button {
    width: 100%;
    padding: 10px 20px;
    text-align: left;
    background: none;
    color: #cbd5f0;
    border: none;
    cursor: pointer;
}

.map-dropdown .dropdown-list button:hover {
    background-color: #2f4a91;
}

.hidden {
    display: none;
}







.sidebar h4 {
  background-color: #0A8E9C;
  color: white;
  text-align: center;
  padding: 10px;
  margin: -20px -20px 10px -20px;
  border-radius: 10px 10px 0 0;
}

.sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar li {

  border-bottom: 1px solid #ddd;
}

.sidebar li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
}

.sidebar li a:hover {
  background-color: #f0f0f0;
}

.sidebar .nav-current {
  font-weight: bold;
  color: #007baf;
  background: none;
  padding: 0;
}




/* KEPT layout-two-column */

/* KEPT main-content */

/* KEPT sidebar */

.sidebar h4 {
  background-color: #0A8E9C;
  color: white;
  text-align: center;
  padding: 10px;
  margin: -20px -20px 10px -20px;
  border-radius: 10px 10px 0 0;
}

/* === Restored Layout Blocks === */

.layout-two-column {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: flex-start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  min-height: 600px;
}
.main-content {
  flex: 1;
  max-width: 100%;
}
.sidebar {
  width: 240px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 10px;
  padding: 20px;
  height: fit-content;
  position: sticky;
  top: 100px;
}
.sidebar h4 {
  background-color: #0A8E9C;
  color: white;
  text-align: center;
  padding: 10px;
  margin: -20px -20px 10px -20px;
  border-radius: 10px 10px 0 0;
}
.sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sidebar li {
  border-bottom: 1px solid #ddd;
}
.sidebar li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
}
.sidebar li a:hover {
  background-color: #f0f0f0;
}
.sidebar .nav-current {
  background-color: #e6f2ff;
  font-weight: bold;
  color: #007baf;
}


/* ===== Header text scaling ===== */
.header__logo{
  /* 학교명 영역도 같이 축소 */
  font-size: clamp(14px, 1.6vw, 20px);
}

/* 메뉴 글자/간격이 해상도에 맞춰 점진적으로 축소 */
.header__menu li { padding: clamp(6px, 1.2vw, 15px) clamp(8px, 1.2vw, 20px); }
.header__menu li a{
  font-size: clamp(12px, 1.4vw, 18px);
  margin: 0 clamp(4px, 0.8vw, 10px);
  line-height: 1.2;
}

/* 아주 좁아지면 줄바꿈 대신 보이는 범위만 노출(겹침/깨짐 방지) */
@media (max-width: 820px){
  .header__menu ul{
    flex-wrap: nowrap;     /* 한 줄 유지 */
    overflow: hidden;      /* 화면 밖으로 넘치는 항목은 숨김 */
  }
}


/* ===== Hero / slider text scaling & outline ===== */
.slider__desc span{
  font-size: clamp(14px, 2.2vw, 22px);
  text-shadow: 0 2px 6px rgba(0,0,0,.45), 0 0 2px rgba(0,0,0,.5);
}



.slider__desc p{
  /* "중앙대학교 … 되겠습니다." */
  font-size: clamp(13px, 1.6vw, 18px);
  line-height: 1.45;
  text-shadow: 0 2px 8px rgba(0,0,0,.45), 0 0 2px rgba(0,0,0,.55);
}

/* ✅ 분실물 안내 섹션 위치를 공지사항과 동일하게 정렬 */
.card__wrap h2,
.card__wrap p {
  margin-left: 300px !important;
}

/* 사이드 네비 기본 리셋 */
.side-nav ul{ margin:0; padding:0; list-style:none; }
.side-nav li{ margin:0; padding:0; }

/* 항목 전체가 클릭/호버 되도록 block + 패딩은 a에만 */
.side-nav li a{
  display:block;               /* ✅ 전체 폭 클릭 */
  padding:12px 16px;
  text-decoration:none;
  color:#0b2c3d;
  line-height:1.35;
  border-radius:4px;           /* 모서리 살짝 */
}

/* 호버/포커스 시 항목 전체가 파랗게 */
.side-nav li a:hover,
.side-nav li a:focus{
  background:rgba(27,151,175,0.12);  /* 메뉴 상단 색과 톤 맞춘 연파랑 */
  outline:none;
}

/* 활성(현재) 항목도 동일하게 전체 강조 */
.side-nav li a.nav-current{
  background:rgba(27,151,175,0.18);
  font-weight:700;
  color:#0b4e66;
}

/* 구분선은 li에만: 폭 일정 */
.side-nav li + li{
  border-top:1px solid rgba(0,0,0,0.08);
  margin-top:6px;              /* 항목 간 여백 */
  padding-top:6px;
}


/* === 사이드 드롭다운 네비 통일 === */
.side-nav ul { margin:0; padding:8px 0; list-style:none; }
.side-nav li { margin:0; padding:0; border:0; }

/* 항목 전체가 클릭/하이라이트 되도록: a를 block + 패딩은 a에만 */
.side-nav li a{
  display:block;
  box-sizing:border-box;
  padding:12px 16px;             /* ⬅ 기본 패딩(활성/호버와 동일) */
  margin:0;                      /* 좌측 튀어나옴 방지 */
  text-decoration:none;
  color:#0b2c3d;
  line-height:1.35;
  border-radius:4px;
  white-space:nowrap;
}

/* 구분선은 li 사이에만 (폭 일정) */
.side-nav li + li{
  border-top:1px solid rgba(0,0,0,0.08);
  margin-top:6px;
  padding-top:6px;
}

/* 호버/포커스/현재 활성 항목: 배경만 바꾸고 패딩은 동일하게 유지 */
.side-nav li a:hover,
.side-nav li a:focus,
.side-nav li.active > a,
.side-nav li.current > a,
.side-nav li a.nav-current,
.side-nav li a[aria-current="page"]{
  background:rgba(27,151,175,0.15); /* 상단 메뉴 톤과 맞춘 연파랑 */
  color:#0b4e66;
  font-weight:700;
  padding:12px 16px;               /* ⬅ 기본과 **동일**: 높이 변화 방지 */
}


/* 공통 페이지 헤더(제목/설명)를 본문 표(left column) 시작선에 맞추기 */
.page-head,
.page-title,
.page-lead {
  /* 본문 테이블과 동일한 폭으로 강제 */
  max-width: 860px;        /* ← 본문 표(리스트) 폭과 동일하게 맞춰 주세요 */
  margin: 0 auto;          /* 중앙 컨테이너 기준으로 좌우 정렬 동일 */
  text-align: left;        /* 가운데 정렬 → 왼쪽 정렬 */
}

/* 여백 정리 */
.page-head { margin-top: 40px; margin-bottom: 16px; }
.page-title { margin: 0 0 8px; }
.page-lead { margin: 0; color: #667085; }  /* 설명글 색 살짝 톤다운(선택) */


/* 공지/회계/생활 등 본문 페이지: 제목/설명을 표와 같은 시작선으로 맞추기 */
.notice__wrap .main-content { min-width: 0; }

/* 표 컨테이너와 동일한 가로폭을 제목/설명에도 적용 */
:root { --content-w: 860px; }  /* 표 폭에 맞게 조정(개발자도구로 표 부모 width 확인) */

.notice__wrap .page-head,
.notice__wrap .notice__table {
  max-width: var(--content-w);
  margin: 0 auto;            /* 같은 중앙 기준(= 같은 왼쪽 시작선) */
}

/* 제목/설명은 왼쪽 정렬 */
.notice__wrap .page-head { text-align: left; padding: 0 16px; }
.notice__wrap .page-head h2 { margin: 0 0 8px; }
.notice__wrap .notice__desc { margin: 0; color: #667085; }


/* 캠퍼스 맵 페이지: 제목/설명 정렬을 맵 이미지 왼쪽 끝에 맞춤 */
.map-container {
  display: flex;
  justify-content: flex-start; /* 왼쪽 정렬 */
}

.map-container .campus-map {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 캠퍼스 맵 전용 헤더 정렬 */
body.page-map .page-head {
  text-align: left;
  margin-left: 0;
  padding-left: 0;
}

/* 제목과 이미지가 같은 기준선에서 시작하도록 */
body.page-map .page-head h2,
body.page-map .page-head .notice__desc {
  margin-left: 20px; /* 필요시 조정 (맵 이미지 여백에 맞춰 튜닝) */
}


.page-head {
  padding-bottom: 20px; /* 헤더 내부에 여백 */
  margin-bottom: 10px;  /* 헤더와 다음 요소 사이의 간격 */
}



/* === 공통: 제목/설명 블록과 다음 콘텐츠 사이 간격 === */
.page-head {
  padding-bottom: 14px;   /* 헤더 내부 아래 여백 */
  margin-bottom: 12px;    /* 헤더와 다음 요소 사이 간격 */
}

/* === 기본: 공지/회계 등 목록 페이지는 표의 시작선(가로폭)과 맞춤 === */
/* 이미 선언된 --content-w(=860px)를 그대로 사용 */
.notice__wrap:not(.page--map) .page-head {
  max-width: var(--content-w);
  margin: 0 auto 12px;    /* 표와 같은 좌우 기준 */
  text-align: left;
}

/* === 지도 페이지 전용: 제목/설명을 '이미지의 왼쪽 끝'에 맞춤 === */
.page--map .page-head {
  max-width: none;        /* 중앙 모으기 해제 */
  margin: 0 0 12px 0;     /* 좌측 정렬 */
  text-align: left !important;
  padding-left: 0;
}

.page--map .map-container {
  display: flex;
  justify-content: flex-start; /* 이미지 왼쪽 정렬 */
}

/* === 가운데 정렬 기본값을 확실히 덮어쓰기 (모든 페이지 공통 안전장치) === */
.notice__wrap .main-content .page-head {
  text-align: left !important;
}





