html {
	position: relative;
	min-height: 100%;
}

body {
	letter-spacing: 0.05em;
	margin-bottom: 8em;
	padding-top: 8em;
	counter-reset: h1counter;
	background-color: #ffffff;
}

/* Notice Image Wrapper */
.notice-swiper .swiper-slide {
	position: relative;
  }
  
  .notice-swiper .swiper-slide .notice-image-wrapper {
	position: relative;
	height: 700px;
	width: auto;
	background-color: #8bccda;
	overflow: hidden;
  }

  .notice-swiper .notice-slide .notice-title {
	font-size: 40px;
	font-weight: 700;
	margin-right: 1.1em;
	text-align: right;
	color: #ffffff;

  }

  .notice-swiper .swiper-pagination {
	position: relative !important;
	bottom: auto !important;
  }

  .notice-swiper .notice-slide .notice-text {
	font-size: 20px;
	margin-right: 2.2em;
	font-weight: 600;
	text-align: right;
	color: #ffffff;
  }

  .notice-swiper .swiper-slide .notice-image-wrapper .notice-image {
	position: absolute;
	top: 0;
	left: 50%;
	height: 100%;
	transform: translateX(-50%);
	width: auto;
  }
  
  .notice-swiper .notice-slide .notice-content {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: rgba(128, 128, 128, 0.5);
	color: #ffffff;
	padding: 0.5em;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.1em;
  }
  
  .notice-slider-container {
	width: 85vw;
	max-width: 1025px;
	margin: 0 auto 1em;
  }

/* small screens: stack event images vertically at ≤1000px */
@media (max-width: 1000px) {
	/* 슬라이더 래퍼 높이를 콘텐츠에 맞춰 자동 조절 */
	.notice-swiper .swiper-slide .notice-image-wrapper {
	  width: 100%;
	  height: auto;
	}
  
	/* 네비게이션 화살표 숨기기 */
	.notice-slider-container .swiper-button-prev,
	.notice-slider-container .swiper-button-next {
	  display: none !important;
	}
  
	/* 텍스트 영역 패딩·정렬 조정 */
	.notice-swiper .notice-slide .notice-content {
	  padding: 0 0.1em;
	  display: flex;
	  flex-direction: column;
	  gap: 0.1em;
	}
  
	/* 제목·본문 폰트 크기 및 중앙 정렬 */
	.notice-swiper .notice-slide .notice-title {
	  font-size: 30px;
	  margin: 0;
	  text-align: center;
	}
	.notice-swiper .notice-slide .notice-text {
	  font-size: 15px;
	  margin: 0;
	  text-align: center;
	}
  
	/* 이미지 비율 유지하며 전체 노출 */
	.notice-swiper .swiper-slide .notice-image-wrapper .notice-image {
	  position: static;
	  width: 100%;
	  height: auto;
	  object-fit: contain;
	  transform: none;
	}
  }  

.container {
	text-align: left;
	margin-top: 2em;
  }

.navbar-default {
	background-color: #8bccda;
	border-color: #40a8bf;
	text-transform: uppercase;
	font-size: 1.3em;
	transition: transform 0.25s ease-in-out;
}

.navbar-default .navbar-header {
	display: flex;
	align-items: center;
}

.navbar-default .navbar-brand {
	height: 50px;
	display: flex;
	align-items: center;
}

.navbar-default .navbar-brand .logo {
	height: 50px;
	width: auto;
}

.navbar-default .navbar-brand .logo:hover {
	opacity: 0.6;
	color: #ffffff;
}

.navbar-default .navbar-brand:focus {
	color: #ffffff;
}

.navbar-default .navbar-text {
	color: #ffffff;
}

.navbar-default .navbar-nav>li>a {
	color: #ffffff;
	font-weight: bold;
}

.navbar-default .navbar-nav>li>a:hover,
.navbar-default .navbar-nav>li>a:focus,
.navbar-default .navbar-nav>li:hover>a {
	color: #ffffff;
	background-color: #40a8bf !important;
}

.navbar-default .navbar-nav>li>.dropdown-menu {
	background-color: rgba(128, 128, 128, 0.8);
}

.navbar-default .navbar-nav>li:hover>.dropdown-menu {
	display: block;
}

.navbar-default .navbar-nav>li>.dropdown-menu>li>a {
	color: #ffffff;
}

.navbar-default .navbar-nav>li>.dropdown-menu>li>a:hover,
.navbar-default .navbar-nav>li>.dropdown-menu>li>a:focus {
	color: #ffffff;
	background-color: rgba(128, 128, 128);
}

.navbar-default .navbar-nav>li>.dropdown-menu>li>.divider {
	background-color: #40a8bf;
}

.navbar-default .navbar-nav .open .dropdown-menu>.active>a,
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus {
	color: #ffffff;
	background-color: #40a8bf;
}

.navbar-default .navbar-nav>.active>a,
.navbar-default .navbar-nav>.active>a:hover,
.navbar-default .navbar-nav>.active>a:focus {
	color: #ffffff;
	background-color: #40a8bf;
}

.navbar-default .navbar-nav>.open>a,
.navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.open>a:focus {
	color: #ffffff;
	background-color: #40a8bf;
}

.navbar-default .navbar-toggle {
	display: none;
	background-color: #40a8bf;
	border-color: #8bccda;
}

.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
	opacity: 0.5;
	background-color: #8bccda;
	border-color: #40a8bf;
}

.navbar-default .navbar-toggle .icon-bar {
	background-color: #ffffff;
}

.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
	border-color: #ffffff;
}

.navbar-default .navbar-link {
	color: #ffffff;
}

.navbar-default .navbar-link:hover {
	color: #ffffff;
}

@media (max-width: 767px) {
	.navbar-default .navbar-nav .open .dropdown-menu>li>a {
		color: #ffffff;
	}
	.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,
	.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus {
		color: #ffffff;
	}
	.navbar-default .navbar-nav .open .dropdown-menu>.active>a,
	.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,
	.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus {
		color: #ffffff;
		background-color: #ffffff;
	}
}

#navbar-collapse-menu {
	display: block !important;
}

.navbar-default.navbar-hidden {
	transform: translateY(-100%);
}

@media (max-width: 768px) {
	.navbar-default .navbar-toggle {
		display: block;
	}
	#navbar-collapse-menu {
		display: none !important;
	}
	.navbar-default {
		transition: transform 0.2s ease-in-out;
	}
}

.latest-news {
	text-align: left;
	margin-top: 2em;
  }
  
  .news-title {
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 0.3em;
  }
  
  .news-list {
	list-style: disc;
	padding-left: 2em;
	list-style-position: outside;
  }
  
  .news-list li {
	font-size: 15px;
	margin-bottom: 0.1em;
  }

.side-menu {
    position: fixed;
    top: 0;
    left: -150px;
    width: 150px;
    height: 100vh;
    background-color: #ffffff;
    z-index: 1050;
    transition: left 0.3s ease;
    padding-top: 60px;
    box-shadow: 2px 0 5px rgba(0,0,0);
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
}

.side-menu.active {
    left: 0;
}

.side-menu .nav {
    margin: 0;
    padding: 0;
}

.side-menu .nav > li {
    width: 100%;
    box-sizing: border-box;
    border-bottom: 2px solid #000;
}

.side-menu .nav li a {
    color: #000;
    padding: 15px 20px;
    display: block;
    font-weight: bold;
}

.side-menu .nav li a:hover {
    background-color: #8bccda;
    color: #000;
}

.side-menu .nav li .dropdown-menu {
    position: static;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.side-menu .nav li .dropdown-menu > li {
    width: 100%;
    box-sizing: border-box;
    border-bottom: none;
}

.side-menu .nav li .dropdown-menu > li > a {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 15px 20px 15px 30px;
    color: #000;
    white-space: normal;
    word-break: break-word;
}

.side-menu .nav li .dropdown-menu > li > a:hover {
    background-color: #8bccda;
    color: #000;
}

.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.5);
    z-index: 1040;
    display: none;
}

.menu-overlay.active {
    display: block;
}

/* Home Intro Section 스타일 */
.home-title {
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 0.3em;
  }

.home-text {
  font-size: 15px;
  padding-left: 1em;
}

.home-text p {
	text-indent: 1em;
  }

.bio-section {
	display: flex;
	align-items: flex-start;
	margin-bottom: 35px;
}

.bio-section img.professor-image {
	float: none;
	width: 230px;
	max-width: 230px;
	height: auto;
	margin-right: 30px;
}

@media screen and (max-width: 1000px) {
	.bio-section {
	  display: block;
	  margin: 0 auto 20px;
	  padding: 0 20px;
	}
	.bio-section img.professor-image {
	  display: block;
	  width: 300px;
	  max-width: 300px;
	  height: auto;
	  margin: 0 auto 20px;
	}
}

.publication {
	display: flex;
	align-items: flex-start;
	margin-bottom: 1px;
	box-sizing: border-box;
}

.publication-info {
	display: flex;
	flex-direction: column;
	gap: 1px;
	font-size: 13px;
}

.publication-info p {
	margin: 0;
	padding: 0;
	white-space: normal;
	line-height: normal;
}

@media screen and (max-width: 1000px) {
	.publication {
	  display: block;
	  width: 100%;
	  margin-bottom: 1px;
	}
	.publication-info {
	  width: 100%;
	}
}

.student-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
}

.profile-card {
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	padding: 8px;
	flex: 0 0 calc(50% - 8px);
}

.profile-card img {
	width: 150px;
	height: 193px;
	object-fit: cover;
}

.profile-info {
	display: flex;
	align-items: center;
	margin-left: 12px;
}

.profile-info .name {
	font-weight: bold;
	font-size: 20px;
	margin-right: 6px;
}

.profile-info .home-icon {
	font-size: 20px;
	color: #007bff;
	text-decoration: none;
	margin-right: 8px;
}

.profile-info .home-icon:hover {
	color: #0056b3;
}

.position-text {
	display: inline-block;
	margin-left: 30px;
	font-size: 16px;
	color: #333;
	text-decoration: underline;
}

.topic-text {
	display: inline-block;
	margin-left: 30px;
	font-size: 16px;
	color: #333;
	font-style: italic;
}

.email-text {
	display: inline-block;
	margin-left: 30px;
	font-size: 16px;
	color: #333;
}

@media (max-width: 1000px) {
	.profile-card {
	  flex: 0 0 100%;
	}
}

/* gallery page */
.gallery-container {
	display: flex;
	gap: 2em;
}

/* year nav */
.year-nav {
	flex: 0 0 100px;
	font-size: 20px;
}
.year-nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.year-nav li {
	margin-bottom: 0.5em;
}
.year-nav a {
	display: block;
	padding: 4px 8px;
	text-decoration: none;
	color: inherit;
	font-weight: bold;
	transition: background-color 0.3s, color 0.3s;
}
.year-nav a:hover {
	background-color: #40a8bf;
	color: #fff;
}
/* content */
.gallery-content {
	flex: 1;
}

/* year styling */
.year-title {
	font-size: 50px;
	margin: 0;
	padding: 0;
	line-height: 1;
}
.year-divider {
	border: none;
	border-top: 2px solid #40a8bf;
	margin: 0;
	padding: 0;
}

/* month grouping */
.month-group {
	margin-top: 20px;
	margin-bottom: 50px;
}
.month-title {
	font-size: 30px;
	margin: 0;
	padding: 0;
	line-height: 1;
}
.month-divider {
	border: none;
	border-top: 1px solid #999;
	margin: 0;       /* remove all margins */
	padding: 0;
}

/* gallery grid */
.gallery-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.gallery-item {
	flex: 0 0 calc(25% - 16px);
	box-sizing: border-box;
}
.gallery-item img {
	width: 100%;
	height: auto;
	display: block;
}

/* event entry styling */
.event-entry {
	margin-bottom: 2em;
}

.event-date {
	font-size: 15px;
	font-weight: bold;
	margin: 1em 0 0;
	padding: 0;
}

/* images: 3 per row */
.event-images {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.event-images img {
	width: calc((100% - 16px) / 3);
	height: auto;
	object-fit: cover;
	display: block;
}

/* small screens: stack event images vertically at ≤1000px */
@media (max-width: 1000px) {
	.event-images {
	  flex-direction: column;
	  gap: 8px;
	}
	.event-images img {
	  width: 100%;
	  height: auto;
	}
  }