/*
Template Name: Pillarix - Multipurpose Website Template
Author: Pillarix
Author URI: https://wrapbootstrap.com/user/pillarix
Version: 1.0
*/
/*
-- Body
-- Custom Classes 
-- Navbar
-- Sidebar Nav 
-- Homepage
-- About Us
-- Mobile Media
*/

@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap');

 
/* Body */
body {
	font-family: 'Noto Sans KR','Figtree',  NanumGothic, 'Nanum Gothic', sans-serif;	
	font-size:16px;
	color:#000;
	font-weight:400;
	letter-spacing:-0.7px;
	-webkit-text-size-adjust: 100%;
	word-break:keep-all;	
	line-height: 1.5;
}
a {
	text-decoration: none;
	color: #1b1b1b;
}
.display-1 {
	font-size: 45px !important;
}

@media (max-width: 1200px) {
  .display-1 {
    font-size: 33px !important;
  }
  #aboout {
	margin-top:30px !important; 
  }
}

.tag-link {
	display: inline-block;
	padding: 8px 16px;
	font-size: 0.95rem;
	color: #4a5568; /* 짙은 회색 */
	background-color: #ffffff;
	border: 1px solid #e2e8f0; /* 연한 테두리 */
	border-radius: 6px; /* 살짝 각진 둥근 모서리 */
	text-decoration: none;
	font-weight: 500;
	transition: all 0.2s ease;

}

.tag-link:hover {
	background-color: #f7fafc;
	border-color: #cbd5e0;
	color: #2b6cb0; /* 마우스 올리면 파란색 강조 */
}

/* 태그 영역 간격 조절 */
.post-tags-wrapper {
	margin-bottom: 3rem;
}
/* 이미지와 동일한 느낌의 스타일링 */

.post-hero-section {
    /* 1. 높이를 반드시 지정해야 합니다 */
    height: 450px; 
    
    /* 2. 이미지가 영역을 꽉 채우도록 설정 */
    background-size: cover;
    
    /* 3. 이미지의 중심이 오도록 설정 */
    background-position: center;
    
    /* 4. 반복 방지 */
    background-repeat: no-repeat;
    
    /* 5. 가로 너비 꽉 채움 */
    width: 100%;
    display: block;
}

/* 이미지와 동일한 느낌의 스타일링 */
.custom-pagination .page-link {
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    border: none;
    font-size: 1.1rem;
    font-weight: 600;
    background: transparent;
}

.custom-pagination .page-item.active .page-link {
    background-color: #2b6cb0 !important; /* 이미지와 유사한 파란색 */
    color: #fff !important;
    border-radius: 8px !important; /* 약간 각진 라운드 */
}

.custom-pagination .page-item.disabled .page-link {
    color: #ccc;
}

/* 제목 두 줄까지만 보여주고 말줄임 처리 (...) */
.text-truncate-2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 마우스 올렸을 때 이미지 줌 효과 */
.group:hover img {
	transform: scale(1.08);
}

.group:hover .card-title {
	color: #007bff !important; /* 마우스 올리면 제목 색상 변경 */
	text-decoration: underline;
}

/* 관련글 영역 간격 */
.img-wrapper {
	border: 1px solid #eee;
}


#toc-list li {
	transition: transform 0.2s ease;
}
#toc-list li a:hover {
	transform: translateX(8px);
}
#toc-list li a:hover .toc-item-text {
	color: #007bff !important;
	text-decoration: underline;
}
.toc-item-text {
	font-size: 1rem;
	line-height: 1.6;
}
/* 부드러운 스크롤 */
html {
	scroll-behavior: smooth; 
	font-family: 'Noto Sans KR','Figtree',  NanumGothic, 'Nanum Gothic', sans-serif;	
}
/* 이동 시 상단 헤더 공간 확보 */
h2[id], h3[id], h4[id] {
	scroll-margin-top: 80px;
}

.blog-hero {
  margin: 30px 0;
  text-align: center;
}

.blog-title {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 8px;
}

.blog-intro {
  font-size: 13px;
  color: #777;
  margin: 0;
  line-height: 1.6;
}

.post-body p{  color: #000; 
	font-size: 1.3rem;
	font-weight:300;
	letter-spacing:-0.9px;	
	
}	

.post-body strong{  
	font-weight:700;
	letter-spacing:-0.9px;	
}

.post-body b{  
	font-weight:700;
	letter-spacing:-0.9px;	
}


.post-body h3{  color: #000; 
	font-weight:400;
	letter-spacing:-0.7px;
}

.post-body ul{  color: #000; 
	font-weight:300;
	letter-spacing:-0.9px;
}
.post-body ol{  color: #000; 
	font-weight:300;
	letter-spacing:-0.9px;
}

/* 수정된 CSS */
.post-body img:not(.root_daum_roughmap img) {
    width: 100% !important; /* 모바일: 항상 꽉 차게 */
    height: auto;
    display: block;
    margin: 20px auto; 
}

/* PC 버전 (화면 너비 768px 이상) */
@media (min-width: 768px) {
    .post-body img:not(.root_daum_roughmap img) {
        width: 40% !important; /* PC: 50%로 축소 */
    }
}
/* 본문 내 h2 태그 커스텀 스타일 */
.post-body h2 {
	display: flex;
	align-items: center;
	font-size: 1.9rem; /* 크기는 적절히 조절하세요 */
	font-weight: 600;
	color: #000;
	margin-top: 5rem;   /* 위쪽 간격 */
	margin-bottom: 2.6rem; /* 아래쪽 간격 */
	line-height: 1.5;
}

.post-body h3 {
	display: flex;
	align-items: center;
	font-size: 1.3 rem; /* 크기는 적절히 조절하세요 */
	font-weight: 500;
	letter-spacing:-0.9px;
	color: #000;
	margin-top: 2rem;   /* 위쪽 간격 */
	margin-bottom: 1.0rem; /* 아래쪽 간격 */
	line-height: 1.5;
}


/* 이미지 [참조: image_515156.png] 스타일 재현: 왼쪽 주황색 바 */
.post-body h2::before {
	content: "";
	display: inline-block;
	width: 6px;          /* 바의 두께 */
	height: 1.2em;       /* 바의 높이 (글자 크기에 맞춤) */
	background-color: #FF6B00; /* 주황색 포인트 컬러 */
	border-radius: 10px; /* 바 끝을 둥글게 */
	margin-right: 12px;  /* 글자와의 간격 */
	flex-shrink: 0;      /* 바 모양 고정 */
}	

/* 내부 링크 박스 스타일 */
.internal-link-box {
    display: block;              /* 박스 전체를 링크 영역으로 잡음 (클릭 쉽도록) */
    width: 100%;                 /* 반응형: 부모 넓이에 맞춤 */
    /*max-width: 600px;             너무 넓어지지 않게 최대 폭 제한 (옵션) */
    margin: 30px auto;           /* 위아래 여백 30px, 좌우 중앙 정렬 */
    padding: 25px 20px;          /* 내부 여백: 상하 25px, 좌우 20px */
    
    border: 3px dotted #2c3e50;  /* 3px 두께의 진한 남색 점선 테두리 */
    border-radius: 50px;         /* 둥근 모서리 (이미지처럼 둥글게) */
    background-color: #fff;      /* 배경색 흰색 */
    
    text-align: center;          /* 텍스트 가운데 정렬 */
    text-decoration: none;       /* 기본 밑줄 제거 (커스텀 밑줄을 위해) */
    color: #333;                 /* 글자색: 진한 회색 */
    font-size: 1.1em;            /* 글자 크기 약간 키움 */
    
    transition: all 0.3s ease;   /* 마우스 올렸을 때 부드럽게 변하는 효과 */
    box-sizing: border-box;      /* 패딩 포함해서 사이즈 계산 */
}

/* 링크 안의 텍스트 강조 */
.internal-link-box span {
    border-bottom: 1px solid #333; /* 글자 밑에만 깔끔한 실선 */
    padding-bottom: 3px;           /* 글자와 밑줄 사이 간격 */
    font-weight: bold;             /* 글자 두껍게 */
}

/* 마우스 올렸을 때 (Hover) 효과 */
.internal-link-box:hover {
    background-color: #f9f9f9;     /* 배경을 살짝 회색으로 */
    border-color: #0056b3;         /* 테두리 색을 파란색 계열로 변경 */
    transform: translateY(-2px);   /* 살짝 떠오르는 느낌 (클릭 유도) */
}

.internal-link-box:hover span {
    border-bottom-color: #0056b3;  /* 밑줄 색도 같이 변경 */
    color: #0056b3;                /* 글자 색도 변경 */
}

/* 모바일에서는 높이를 조금 줄여주는 것이 예쁩니다 */
@media (max-width: 768px) {
    .post-hero-section {
        height: 250px;
    }
}


table { font-size:16px !important;}
/* Custom Classes */
.bg-dark-subtle {
	background-color: #f0f2f3 !important;
}
.btn-lg {
	padding: 14px 26px;
	font-size: 18px;
}
.mt-n5 {
	margin-top: -5rem;
}
.mt-n8 {
	margin-top: -8rem;
}

/* Navbar */
.osahan-nav  a.nav-link {
	padding-top: 35px !important;
	padding-bottom: 35px !important;
}

/* Sidebar Nav */
.sidebar-nav .navbar-nav .nav-link.active,
.sidebar-nav .navbar-nav .nav-link:hover {
	color: #dc3545;
}

/* Homepage */
.zoom-img img {
	transition: transform .4s;
}
.zoom-img:hover img {
	-ms-transform: scale(1.1);
	-webkit-transform: scale(1.1);
	transform: scale(1.1);
}

/* About Us */
.profile-img {
	width: 50px;
	height: 50px;
	object-fit: cover;
}


.list-unstyled {
	text-align: center;
	padding: 8px;
	margin: 0 auto;
}

.list-unstyled a {
	display: inline-block;
	color: #ffffff;
	text-decoration: none;
	font-size: 12px;
	margin-bottom: 4px;
}

.list-unstyled a:not(:last-child):after {
	content: '|';
	text-decoration: none;
	padding-left: 4px;
	padding-right: 4px;
}

.list-unstyled a:hover {
	text-decoration: underline;
}
	
/* Mobile Media  */
@media (max-width:992px) {
	.m-none {
		display: none;
	}
	.w-35 {
		width: 35% !important;
	}
	.news-letter-image {
    height: 440px;
    object-fit: cover;
	}
	footer.bg-light.py-5 {
    display: none;
	}
}
@media (min-width: 1200px) {
	.position-lg-absolute {
		position: absolute !important;
	}
	.position-lg-relative {
		position: relative !important;
	}
	.w-lg-50 {
		width: 50%;
	}
}


/* 1. 테이블 기본 설정 (PC 모드 최적화) */
table {
  display: table;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 20px;
  border: 1px solid #e5e7eb;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
  margin: 1.5rem 0;
  table-layout: fixed; /* PC에서 모든 열을 균등하게 배분 */
  overflow: hidden;
}

/* 2. 상단 헤더 전체 통일 (첫 번째 셀 포함) */
table thead th {
  background: #EEF0F2 !important; /* 이미지의 딥 다크 차콜 네이비 */
  color: #000 !important;
  padding: 1.25rem 1rem;
  font-weight: 700;
  font-size: 1.2rem;
  border-bottom: 1px solid #111827;
  border-left: 1px solid rgba(255,255,255,0.1);
  text-align: center;
}

/* 헤더의 첫 번째 셀 왼쪽 테두리 제거 */
table thead th:first-child {
  border-left: none;
}

/* 3. 본문 셀 스타일 */
table td {
  padding: 1.2rem 1rem;
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
  border-left: 1px solid #f1f5f9;
  color: #4b5563;
  word-break: keep-all;
}

/* 4. 본문의 첫 번째 열(항목명) 강조 */
table tbody td:first-child,
table tbody th:first-child {
  background: #ffffff; /* 본문 첫 열은 깨끗한 화이트 */
  font-weight: 700;
  color: #111827;
  border-left: none;
}

/* 줄무늬 및 호버 (PC 전용) */
table tbody tr:nth-child(even) {
  background-color: #fcfcfd;
}
@media (min-width: 992px) {
  table tbody tr:hover {
    background-color: #f8fafc;
    transition: background 0.2s ease;
  }
}

/* ------------------------------------------------------ */
/* 5. 모바일 대응 (잘림 방지 및 가로 스크롤 강제) */
/* ------------------------------------------------------ */
@media (max-width: 768px) {
  table {
    display: block !important;    /* 테이블을 블록화하여 스크롤 가능하게 함 */
    width: 100% !important;
    overflow-x: auto !important;  /* 가로 스크롤 활성화 */
    table-layout: auto !important; /* 내용에 맞춰 너비 유동적 조절 */
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
  }

  /* 모바일에서 셀이 찌그러지지 않도록 설정 */
  table thead th, 
  table td {
    white-space: nowrap !important; /* 텍스트 줄바꿈 방지 */
    min-width: 110px;               /* 최소 열 너비 확보 */
    padding: 1rem 0.8rem;
    font-size: 0.95rem;
  }

  /* 모바일 가독성을 위해 첫 번째 열 고정 (선택 사항) */
  table thead th:first-child,
  table tbody td:first-child {
    position: sticky;
    left: 0;
    z-index: 10;
    background: #f9fafb !important;
    border-right: 2px solid #e5e7eb;
  }
  
  /* 고정된 헤더 첫 셀의 색상 유지 */
  table thead th:first-child {
    background: #EEF0F2 !important;
  }
}