/* --- KRDS Blog Theme --- */
/* Based on Korea Government Design System (KRDS) */

/* --- 0. Font & Basic Reset --- */
@font-face {
    font-family: 'Paperlogy';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-8ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
}
@font-face {
    font-family: 'Paperlogy';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-4Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

:root {
  --krds-primary-color: #004098; /* KRDS Main Blue */
  --krds-secondary-color: #0768d3;
  --krds-text-color: #222222;
  --krds-text-light-color: #555555;
  --krds-border-color: #e0e0e0;
  --krds-background-color: #f5f5f5;
  --krds-footer-bg-color: #32363d;
  --krds-footer-text-color: #cccccc;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
}

textarea, input, .tt_txt_g {
  font-family: 'Paperlogy', 'KakaoBigSans', "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: 16px;
}

body {
  font-family: 'Paperlogy', 'KakaoBigSans', "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: 16px;
  font-weight: 400; /* Default font weight */
  color: var(--krds-text-color);
  background-color: #fff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.menu-open {
  overflow: hidden;
}

a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; border: 0; }
button { border: none; background: none; cursor: pointer; font-family: inherit; }

h1, h2, h3, h4, h5, h6, strong, b,
.title_post, .title_view, .title_category {
    font-weight: 800; /* Bold font weight */
    
}

.blind, .screen_out {
  position: absolute; width: 1px; height: 1px;
  margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* --- 1. Layout --- */
#wrap { display: flex; flex-direction: column; min-height: 100%; }
#container { flex-grow: 1; padding-top: 80px; }
.main-container { max-width: 1200px; margin: 0 auto; padding: 40px 20px; }


/* --- 2. Header --- */
#header {
  position: fixed; top: 0; left: 0; width: 100%; height: 80px;
  background-color: #004098; border-bottom: 1px solid var(--krds-border-color);
  z-index: 1000; color: #fff
}

.inner_header {
  max-width: 1280px; height: 100%; margin: 0 auto; padding: 0 20px;
  display: flex; align-items: center;
}

#header .logo a {
  display: flex; align-items: center; font-size: 24px; color: var(--krds-primary-color);
  flex-shrink: 0;
}
#header .logo .link_logo {
    display: block; width: 200px; height: 50px; background-size: contain;
    background-repeat: no-repeat; background-position: left center;
}
#header .logo .title_text { font-size: 24px; color: var(--krds-primary-color); }

/* Desktop Navigation (항상 숨김 처리) */
.header-nav {
    display: none; /* 내비게이션 메뉴를 항상 숨김 */
}

/* Header Utils (Search, Mobile Menu) */
.header-utils {
  display: flex; align-items: center; gap: 15px;
  margin-left: auto; /* Pushes utils to the right */
}
.btn_search, .btn_menu { font-size: 26px; color: #fff; }
.btn_menu {
  display: block; /* 메뉴 버튼을 항상 보이게 함 */
}

.area_search {
  position: absolute; top: 80px; left: 0; width: 100%; padding: 20px;
  background-color: #f8f8f8; border-top: 1px solid var(--krds-border-color);
  display: none;
}
.area_search.active { display: block; }
.area_search input {
  max-width: 1240px; width: 100%; margin: 0 auto; display: block;
  height: 48px; padding: 0 20px; border: 1px solid var(--krds-border-color);
  font-size: 16px;
}

/* --- Mobile Menu Panel --- */

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

.mobile-menu-panel {
  position: fixed; top: 0; right: -320px; width: 320px; max-width: 100%; height: 100%;
  background-color: #fff; z-index: 2000; transition: right 0.3s ease-in-out;
  display: flex; padding: 20px 20px; flex-direction: column;
}

.mobile-menu-panel.active { right: 0; }

.mobile-menu-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 0; border-bottom: 0.5px solid #333;
  flex-shrink: 0; margin-bottom: 20px; 
}
.mobile-menu-header .logo-title { font-size: 24px; color: var(--krds-primary-color); font-weight: 800;}
.mobile-menu-header .btn_close_menu { font-size: 28px; }

.mobile-menu-content {
    overflow-y: auto;
    flex-grow: 1;
}

/* 메뉴 리스트의 기본 스타일 초기화 */
.mobile-menu-content ul {
  list-style: none;
  padding-left: 0;
}
.mobile-menu-content .menu_navigation,
.mobile-menu-content .category_list_container {
    margin-top: 0;
    margin-bottom: 20px;
}

.mobile-menu-content .link_gnb,
.mobile-menu-content .link_item {
  display: block;
  /* 1. 글씨 크기 및 굵기 통일 */
  font-size: 24px;
  font-weight: 400;
  color: #333;
  
  /* 2. 줄 간격(세로 여백) 통일 */
  padding: 25px 30px;
  
  /* 3. 항목 구분을 위한 하단 선 */
  border-bottom: 1px solid #f0f0f0;
  
  transition: background-color 0.2s, color 0.2s;
  word-break: keep-all; /* 단어가 잘리지 않게 함 */
}

/* 모든 메뉴 링크에 마우스 올렸을 때 효과 */
.mobile-menu-content .link_gnb:hover,
.mobile-menu-content .link_item:hover {
  background-color: var(--krds-background-color);
  color: var(--krds-primary-color);
}

/* 하위 카테고리 리스트의 들여쓰기 제거 */
.mobile-menu-content .sub_category_list {
    padding-left: 0;
}

/* 하위 카테고리 링크에만 왼쪽 여백을 주어 계층 표현 */
.mobile-menu-content .link_sub_item {
    padding-left: 35px; /* 들여쓰기 효과 */
    background-color: #f8f8f8; /* 하위 메뉴 배경색 구분 */
}

/* 하위 카테고리를 시각적으로 알려주는 아이콘 추가 */
.mobile-menu-content .link_sub_item::before {
    content: 'ㄴ';
    position: absolute;
    left: 20px;
    color: #999;
}


/* --- 3. Main Content & Article List --- */
.category {
  font-size: 16px; color: #fff; background: var(--krds-primary-color); border-radius: 6px; padding: 4px 8px;
}

.category::before {
  content: '#';
}

.index_type_common .title_category {
  font-size: 28px; margin-bottom: 30px; margin-top: 30px;
  padding-bottom: 15px; border-bottom: 2px solid #333;
}

.list_gallery, .list_horizontal { display: grid; gap: 30px; }
.index_type_gallery .list_gallery { grid-template-columns: repeat(3, 1fr); }
.index_type_horizontal .list_horizontal { grid-template-columns: 1fr; }

.index_type_horizontal .list_horizontal_item .article_content {
    display: flex; gap: 24px; align-items: flex-start;
}
.index_type_horizontal .thumbnail_post {
    width: 200px; height: 150px; flex-shrink: 0; margin-bottom: 15px; margin-top: 15px;
}
.index_type_horizontal .box_contents { flex-grow: 1; align-items: center; margin-top: auto; margin-bottom: auto;}
.index_type_post .article_content {
    margin-bottom: 40px;
}
.index_type_post .title_post { font-size: 32px; margin-bottom: 10px; }
.index_type_post .thumbnail_post { width: 100%; padding-top: 50%; margin: 20px 0; }
.index_type_post .txt_post { font-size: 16px; color: var(--krds-text-light-color); }

.list_gallery_item, .list_horizontal_item { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.list_gallery_item:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.1); }

.article_content .thumbnail_post {
  display: block; background-size: cover; background-position: center;
  background-color: #eee; border-radius: 8px;
}
.list_gallery .thumbnail_post { padding-top: 66.67%; }

.article_content .title_post {
  font-size: 26px; color: var(--krds-text-color); margin-bottom: 8px; line-height: 110%;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 4; -webkit-box-orient: vertical; word-break: keep-all;
}
.article-card-link:hover .title_post, .link_title:hover .title_post { color: var(--krds-primary-color); }

.article_content .info_post { font-size: 14px; color: var(--krds-text-light-color); margin-bottom: 10px; margin-top: 10px;}
.article_content .link_category { color: var(--krds-primary-color); font-weight: 800; margin-right: 10px; }
.article_content .txt_post {
  font-size: 19px; color: var(--krds-text-light-color);
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}

/* --- 4. Permalink / Article View --- */
.area_view_content .title_view { font-size: 42px; line-height: 1.3; margin-bottom: 20px; word-break: keep-all;}
.area_view_content .view_info_post {
    padding-bottom: 20px; margin-bottom: 40px; border-bottom: 1px solid var(--krds-border-color);
    font-size: 15px; color: var(--krds-text-light-color);
}
.article_view { font-size: 17px; line-height: 1.8; }
.article_view h2, .article_view h3, .article_view h4 { margin: 2em 0 1em; line-height: 1.4; }
.article_view h2 { font-size: 1.5em; }
.article_view h3 { font-size: 1.3em; }
.article_view h4 { font-size: 1.1em; }
.article_view p { margin-bottom: 1.5em; }
.article_view a { color: var(--krds-secondary-color); text-decoration: underline; }
.article_view img { border-radius: 8px; margin: 2em auto; display: block; }
.article_view blockquote { margin: 2em 0; padding: 1.5em; background-color: var(--krds-background-color); border-left: 4px solid var(--krds-primary-color); }
.article_view pre { background: #2d2d2d; color: #f8f8f2; padding: 1.5em; margin: 2em 0; border-radius: 8px; overflow-x: auto; font-family: 'SF Mono', 'Menlo', 'Consolas', monospace; font-size: 15px; }
.article_view ul, .article_view ol { margin: 1.5em 0; padding-left: 2em; }
.article_view ul li { list-style-type: disc; }
.article_view ol li { list-style-type: decimal; }

.area_tag { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--krds-border-color); }
.area_tag .title_tag { float: left; margin-right: 15px; }
.area_tag .tag_content a { display: inline-block; padding: 4px 12px; background-color: var(--krds-background-color); border-radius: 15px; font-size: 14px; margin: 0 5px 5px 0; }
.area_tag .tag_content a:hover { background-color: var(--krds-primary-color); color: #fff; }

.related_type { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--krds-border-color); }
.related_type .title_related { font-size: 22px; margin-bottom: 20px; }
.related_type .list_related { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.related_type .link_related { display: block; position: relative; border-radius: 8px; overflow: hidden; height: 120px; background-size: cover; background-position: center; }
.related_type .link_related .bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.5); transition: background-color 0.3s; }
.related_type .link_related:hover .bg { background-color: rgba(0, 64, 152, 0.7); }
.related_type .link_related .txt { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; padding: 15px; text-align: center; color: #fff; }

.area_reply { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--krds-border-color); }

.protected_form { padding: 40px; border: 1px solid var(--krds-border-color); background-color: var(--krds-background-color); text-align: center; margin: 40px 0; }
.protected_form p { margin-bottom: 20px; }
.protected_form input[type="password"] { height: 44px; padding: 0 15px; border: 1px solid var(--krds-border-color); width: 250px; }
.protected_form button { height: 44px; padding: 0 20px; background-color: var(--krds-primary-color); color: #fff; font-weight: 800; }

/* --- 5. Sidebar & Paging --- */
.sidebar { margin-top: 60px; padding: 40px 0; background-color: var(--krds-background-color); }
.inner_sidebar { max-width: 1200px; margin: 0 auto; padding: 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.box_sidebar .title_sidebar, .related_posts .title_related { font-size: 22px; margin-bottom: 20px; }
.about_me .text_about { line-height: 1.7; }
.related_posts .list_related { grid-template-columns: repeat(2, 1fr); }

.area_paging { margin: 60px 0 20px; text-align: center; }
.area_paging .inner_paging { display: inline-flex; align-items: center; border: 1px solid var(--krds-border-color); border-radius: 4px; overflow: hidden; }
.area_paging a { display: inline-block; padding: 10px 15px; min-width: 44px; height: 44px; line-height: 24px; border-left: 1px solid var(--krds-border-color); font-size: 14px; }
.area_paging a:first-child { border-left: none; }
.area_paging a:hover, .area_paging .selected { background-color: var(--krds-background-color); color: var(--krds-primary-color); font-weight: 800; }
.area_paging .link_prev, .area_paging .link_next { font-size: 20px; }

/* --- 6. Footer --- */
#footer { padding: 50px 0; background-color: var(--krds-footer-bg-color); color: var(--krds-footer-text-color); font-size: 14px; }
.footer-container { max-width: 1280px; margin: 0 auto; padding: 0 20px; display: flex; justify-content: space-between; align-items: center; }
.footer-info p { margin-bottom: 5px; }
.footer-sns { display: flex; gap: 10px; }
.footer-sns a { display: block; width: 36px; height: 36px; background-color: rgba(255,255,255,0.1); border-radius: 50%; text-align: center; line-height: 36px; font-size: 18px; transition: background-color 0.3s; }
.footer-sns a:hover { background-color: var(--krds-primary-color); }

.icon-Instagram {
  display: inline-block;
  width: 18px;  /* 아이콘 크기 */
  height: 18px; /* 아이콘 크기 */

  /* 흰색 인스타그램 SVG 아이콘 */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='%23ffffff' d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.689-.073-4.948-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.162 6.162 6.162 6.162-2.759 6.162-6.162-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4s1.791-4 4-4 4 1.79 4 4-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.441 1.441 1.441 1.441-.645 1.441-1.441-.645-1.44-1.441-1.44z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; /* 아이콘이 영역에 꽉 차도록 설정 */
  vertical-align: middle; /* 다른 아이콘이나 텍스트와 세로 정렬을 맞춤 */
}

/* --- 7. Mobile Responsive --- */
@media screen and (max-width: 1024px) {
    .header-nav { display: none; }
    .btn_menu { display: block; }
    .index_type_gallery .list_gallery { grid-template-columns: repeat(2, 1fr); }
    .related_type .list_related { grid-template-columns: repeat(2, 1fr); }
    .inner_sidebar { grid-template-columns: 1fr; }
}

@media screen and (max-width: 768px) {
    #container { padding-top: 60px; }
    #header { height: 60px; }
    .inner_header { padding: 0 15px; }
    .area_search { top: 60px; }
    #header .logo .link_logo { height: 40px; width: 160px; }
    #header .logo .title_text { font-size: 20px; }
    .header-nav { margin-left: 20px; }
    .header-nav .list_gnb { gap: 15px; }

    .main-container { padding: 20px 15px; margin-bottom: 20px;}
    
    .index_type_common .title_category { font-size: 24px; }
    .index_type_gallery .list_gallery { grid-template-columns: 1fr; }
    .index_type_horizontal .list_horizontal_item .article_content { flex-direction: column; }
    .index_type_horizontal .thumbnail_post { width: 100%; height: auto; padding-top: 60%; }

    .area_view_content .title_view { font-size: 32px; }
    .article_view { font-size: 16px; }

    .related_type .list_related { grid-template-columns: 1fr; }
    
    .footer-container { flex-direction: column; gap: 20px; }
    .footer-info { text-align: center; }
}