@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 100;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Thin.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Thin.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Thin.otf) format('opentype');}
@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 300;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Light.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Light.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Light.otf) format('opentype');}
@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 400;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Regular.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Regular.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Regular.otf) format('opentype');}
@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 500;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Medium.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Medium.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Medium.otf) format('opentype');}
@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 700;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Bold.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Bold.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Bold.otf) format('opentype');}
@font-face {font-family: 'Noto Sans KR';font-style: normal;font-weight: 900;src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Black.woff2) format('woff2'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Black.woff) format('woff'),url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Black.otf) format('opentype');}

html {scroll-behavior: smooth;font-size:100%;}
body { margin: 0; padding: 0; font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple SD Gothic Neo", "Malgun Gothic", "Nanum Gothic", sans-serif; line-height: 1.6; color: #333; font-size: 14px; }

/* 기본 텍스트 링크 스타일 */
a {
	color: #0066cc; 
	text-decoration: none; 
	transition: all 0.25s ease;
}
a:hover {
	color: #004499;
}
img {border-radius: 8px;}
/* 이미지 반응형 처리 */
.img-responsive {
  max-width: 100%;
  height: auto;
}

/***********************************
LAYOUTS
***********************************/
header { 
	display: flex; 
	flex-direction: column; 
	align-items: center; 
	padding: 10px; 
	border-bottom: 1px solid #eee; 
	gap: 15px; 

	background: linear-gradient(-45deg, #f3f9ff, #b2dbff, #b3dfff, #dbecff);
	background-size: 400% 400%;
	animation: gradient 15s ease infinite;
}
@keyframes gradient {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
#main-content {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.container {
  max-width: 1420px;
  margin: 0 auto;
  padding: 20px 20px;
  display: flex;
  gap: 30px; /* 요소 사이의 간격 */
  box-sizing: border-box;
  width: 100%;
}
.row {width:100%;}
/* 유동적으로 늘어나는 메인 영역 */
#content {
  flex: 1 1 0%;
  min-width: 0; /* 내부 콘텐츠가 넘쳐도 레이아웃이 안 깨지게 함 */
}

/* 250px 고정 사이드바 */
#column-right, #column-left {
  flex: 0 0 250px;
}

/* 모바일 대응 (화면이 작아질 때 세로로 배치) */
@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }
  #content {
	order: 1; 
  }
  #column-right {
    order: 2; 
	flex: 0 0 auto; /* 모바일에서는 고정 너비 해제 */
    width: 100%;
  }
  #column-left {
    order: 3;
	flex: 0 0 auto; /* 모바일에서는 고정 너비 해제 */
    width: 100%;
  }
}

/***********************************
HEADER
***********************************/
/* 내비게이션 바 */
#top { border-bottom: 1px solid #eee; padding: 10px 0; }
#top .container { display: flex; justify-content: space-between; align-items: center; padding: 5px 20px;}

/* 검색 박스 스타일 */
.search-box { display: flex; gap: 5px; }
.search-box input { 
  padding: 5px 10px; 
  border: 1px solid #ccc; 
  border-radius: 4px; 
}
.search-box button { 
  padding: 5px 15px; 
  background: #007bff; 
  color: #fff; 
  border: none; 
  border-radius: 4px; 
  cursor: pointer; 
}

/* 메뉴 리스트 스타일 (ul li) */
.nav-links { 
  list-style: none; 
  display: flex; 
  gap: 15px; 
  margin: 0; 
  padding: 0; 
}
.nav-links li a { 
  text-decoration: none; 
  color: #333; 
  font-size: 1rem; 
}
#logo {text-align: center;}
#logo img {max-width: 350px;width: 100%;}

/***********************************
POST LIST
***********************************/
#content .post-list {
	padding: 10px;
	border: 1px solid #fafafa;
	margin-bottom: 20px;
}
#content .post-list .post-thumb {
	display: flex;
	gap: 20px;
	justify-content: space-between;
	align-items: flex-start;
}
#content .post-list .post-thumb .image {
	width: 200px; 
	flex-shrink: 0;
}
#content .post-list .post-thumb .caption {
	flex: 1; 
}
#content .post-list .post-thumb .caption h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 1.25rem;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
#content .post-list .post-thumb .caption p {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (max-width: 768px) {
	#content .post-list .post-thumb {
		flex-direction: column-reverse; 
		gap: 15px;
	}
	#content .post-list .post-thumb .caption h2 {
		-webkit-line-clamp: 3;
	}
	#content .post-list .post-thumb .image, #content .post-list .post-thumb img {
		width: 100%; 
	}
}

/***********************************
SIDE POST LIST
***********************************/
#column-right .post-list {
	margin-bottom: 10px;
	border-bottom:1px solid #fafafa;
	padding-bottom: 4px;
}
#column-right .post-list .post-thumb {
	display: flex;
	gap: 10px;
	justify-content: space-between;
	align-items: flex-start;
	flex-direction: row;
}
#column-right .post-list .post-thumb .image {
	order: 1; 
    flex: 0 0 70px; /* 이미지 너비 고정 */
}
#column-right .post-list .post-thumb .caption {
	order: 2;
    flex: 1; /* 남은 공간 차지 */
    min-width: 0;
}
#column-right .post-list .post-thumb .caption h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 0.8rem;
	font-weight: normal;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
#column-right .post-list .post-thumb .caption a {
	color: #333;
}
#column-right .post-list .post-thumb .caption p {
	display: none;
}
@media (max-width: 768px) {
    #column-right .post-list .post-thumb {
        flex-direction: column; /* 세로 배치로 변경 */
    }
    #column-right .post-list .post-thumb .image, #column-right .post-list .post-thumb img {
        flex: 0 0 auto; /* 너비 고정 해제 */
        width: 100%;    /* 너비 100% */
    }
    #column-right .post-list .post-thumb .caption {
        width: 100%; /* 너비 100% */
    }
	#column-right .post-list .post-thumb .caption h2 {
		font-size: 1.25rem;
		font-weight: bold;
	}
	#column-right .post-list .post-thumb .caption p {
		display: block;
	}
}



/***************************
맨 위로 가기 버튼
***************************/
#toTopBtn {
	position: fixed;
	bottom: 30px;
	right: 30px;
	width: 46px;
	height: 46px;
	background-color: #1a73e8;
	color: #ffffff;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease-in-out;
	z-index: 999;
}
#toTopBtn:hover {
	background-color: #004499;
	transform: translateY(-3px);
	box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25);
}
#toTopBtn.show {
	opacity: 1;
	visibility: visible;
}
#toTopBtn::after {
	content: '';
	width: 10px;
	height: 10px;
	border-top: 3px solid #fff;
	border-left: 3px solid #fff;
	transform: rotate(45deg);
	margin-top: 4px;
}
@media (max-width: 480px) {
	#toTopBtn {
		bottom: 20px;
		right: 20px;
		width: 42px;
		height: 42px;
	}
}


/***************************
FOOTER
***************************/
footer {
  background-color: #f8f9fa;
  border-top: 1px solid #e9ecef;
  padding: 40px 0 0;
  color: #555;
  font-size: 0.85rem;
}

footer .container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
  padding: 0 20px;
}

footer h3 {
  font-size: 1.1rem;
  color: #222;
  margin-bottom: 15px;
  font-weight: 600;
}

/* 각 항목(div)의 간격 조절 */
footer .footer-about div, 
footer .footer-info div {
  margin-bottom: 8px;
}

/* 이메일 한 줄 정렬 핵심 스타일 */
footer .email-line {
  display: flex;
  align-items: center;
  gap: 5px;
}

/* 링크 스타일 */
.footer-link, .email-link {
  color: #555;
  text-decoration: none;
  transition: color 0.2s;
}

.footer-link:hover, .email-link:hover {
  color: #4a90e2; /* 브랜드 컬러 */
}

/* 카피라이트 박스 */
.copyright-box {
  text-align: center;
  padding: 20px;
  border-top: 1px solid #e9ecef;
  font-size: 0.9rem;
  color: #888;
}



/***************************
BREADCRUMB
***************************/
.breadcrumb {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.85rem;
}

.breadcrumb li {
  display: flex;
  align-items: center;
}

/* 구분자 추가 (아이콘 사이의 '/') */
.breadcrumb li:not(:last-child)::after {
  content: "/";
  margin: 0 10px;
  color: #ccc;
}

.breadcrumb li a {
  text-decoration: none;
  color: #666;
  display: flex;
  align-items: center;
}

.breadcrumb li a:hover {
  color: #007bff;
}

/* SVG 아이콘 스타일 */
.breadcrumb svg {
  stroke: currentColor;
  width: 16px;
  height: 16px;
}


/***************************
PAGER
***************************/

/* 페이징 버튼 스타일 */
.pagination {
display: flex;
list-style: none;
padding: 0;
margin: 0;
gap: 4px; /* 버튼 사이 간격 */
}

.pagination li a, 
.pagination li span {
display: block;
padding: 8px 14px;
border: 1px solid #ddd;
border-radius: 6px; /* 둥근 모서리 */
color: #555;
text-decoration: none;
font-size: 14px;
transition: all 0.2s;
}

/* 호버 및 액티브 상태 */
.pagination li a:hover {
background-color: #f1f1f1;
border-color: #ccc;
color: #333;
}

.pagination li.active span {
background-color: #4a90e2; /* 브랜드 컬러 */
color: white;
border-color: #4a90e2;
font-weight: bold;
}

/* 텍스트 정보 영역 */
.text-right {
font-size: 14px;
color: #777;
float:right;
}
.text-left {
font-size: 14px;
color: #777;
float:left;
}

/* 반응형 처리 */
@media (max-width: 768px) {
	.row {
	  flex-direction: column;
	  gap: 15px;
	}
}

/***************************
애드센스 광고 관련
***************************/
.ad-slot, .ads-container, .ad-container {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  padding: 0 10px; 
}
/* 구글 애드센스 광고 강제 정렬 */
.adsbygoogle {
    display: block !important;
    width: 100% !important;
    /* max-width를 명시적으로 설정하여 부모 영역을 벗어나지 않게 합니다 */
    max-width: 100% !important;
    /* 부모 박스의 padding이나 border 영향을 받지 않도록 합니다 */
    box-sizing: border-box !important;
    /* 광고가 삐져나갈 경우 숨김 처리 */
    overflow: hidden !important;
    /* 혹시 모를 외부 여백 제거 */
    margin: 0 auto !important; 
}
.blog-post-content .tab-content {overflow: hidden;}