@charset "UTF-8";
/* ==========================================================================
   블로그 (목록 · 상세)
   사이트 공통 컬러 : 네이비 #11244b / 골드 #c8a76a / 크림 #faf8f5
   ========================================================================== */

/* 헤더 현재 메뉴 표시 */
header nav a.on {position:relative; font-family:"PretendardB", sans-serif;}
header nav#pcMenu a.on::after {
    content:""; position:absolute; left:0; right:0; bottom:-8px;
    height:2px; background-color:#c8a76a;
}

/* ------------------------------- 공통 ------------------------------- */
.blogSection {padding:90px 0 120px; background-color:#ffffff;}
.blogSection .contentWrap {max-width:1240px;}

.blogHead {text-align:center; margin-bottom:56px;}
.blogKicker {font-family:"PretendardM", sans-serif; font-size:14px; letter-spacing:0.18em; color:#c8a76a; margin-bottom:14px;}
.blogTitle {font-family:"NanumMjB", serif; font-size:46px; color:#11244b; line-height:1.3;}
.blogLead {margin-top:16px; font-family:"PretendardL", sans-serif; font-size:17px; color:#4d4843;}

/* ------------------------------ 목록 ------------------------------- */
.blogList {display:grid; grid-template-columns:repeat(3, 1fr); gap:44px 32px;}

.blogItem > a {display:block; color:inherit;}

/* 썸네일 : 본문 첫 이미지를 정사각형으로 */
.blogThumb {
    position:relative; width:100%; padding-top:100%;   /* 1:1 */
    overflow:hidden; border-radius:14px; background-color:#f2f1ed;
}
.blogThumb img {
    position:absolute; top:0; left:0; width:100%; height:100%;
    object-fit:cover; display:block;
    transition:transform 0.45s ease;
}
.blogThumbEmpty {
    position:absolute; top:0; left:0; width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background-color:#faf8f4;
}
.blogThumbEmpty img {position:static; width:auto; height:38px; opacity:0.35;}

.blogItem > a:hover .blogThumb img {transform:scale(1.06);}

.blogInfo {padding:20px 4px 0;}
.blogItemTitle {
    font-family:"PretendardB", sans-serif; font-size:19px; line-height:1.5; color:#282828;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    transition:color 0.2s ease;
}
.blogItem > a:hover .blogItemTitle {color:#11244b; text-decoration:underline; text-underline-offset:4px;}
.blogItemDesc {
    margin-top:10px; font-family:"PretendardL", sans-serif; font-size:15px; line-height:1.65; color:#837567;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.blogItemDate {margin-top:14px; font-family:"PretendardM", sans-serif; font-size:13px; color:#a89f94;}

/* 목록 없음 */
.blogEmpty {padding:110px 20px; text-align:center; color:#837567;}
.blogEmpty i {display:block; font-size:46px; color:#d8d2c6; margin-bottom:20px;}
.blogEmpty p {font-family:"PretendardB", sans-serif; font-size:19px; color:#282828;}
.blogEmpty span {display:block; margin-top:10px; font-size:15px; font-family:"PretendardL", sans-serif;}
.blogBackBtn {
    display:inline-block; margin-top:28px; padding:14px 34px; border-radius:30px;
    background-color:#11244b; color:#ffffff !important; font-family:"PretendardM", sans-serif; font-size:15px;
}

/* 페이지네이션 */
.blogPaging {display:flex; justify-content:center; align-items:center; gap:8px; margin-top:76px;}
.blogPaging .pg {
    min-width:42px; height:42px; padding:0 10px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-family:"PretendardM", sans-serif; font-size:15px; color:#4d4843;
    transition:all 0.2s ease;
}
.blogPaging .pg:hover {background-color:#faf8f4; color:#11244b;}
.blogPaging .pg.on {background-color:#11244b; color:#ffffff !important; font-family:"PretendardB", sans-serif;}
.blogPaging .pg.off {color:#d5d0c6;}

/* ------------------------------ 상세 ------------------------------- */
.blogViewSection {padding-top:70px;}

.blogViewHead {
    text-align:center; padding-bottom:38px; margin-bottom:48px;
    border-bottom:solid 1px #e4ded4;
}
.blogViewCat {margin-bottom:16px;}
.blogViewCat a {
    display:inline-block; padding:7px 18px; border-radius:30px;
    background-color:#faf8f4; border:solid 1px #e4ded4;
    font-family:"PretendardM", sans-serif; font-size:13px; color:#9b7735 !important;
}
.blogViewTitle {font-family:"NanumMjB", serif; font-size:38px; line-height:1.45; color:#11244b; word-break:keep-all;}
.blogViewMeta {margin-top:18px; font-family:"PretendardL", sans-serif; font-size:14px; color:#a89f94;}
.blogViewMeta .dot {margin:0 8px;}

/* 생성된 페이지 본문이 들어가는 영역
   (본문 CSS 는 서버에서 .blogBody 범위로 한정해 주입한다) */
.blogBody {
    max-width:1000px; margin:0 auto;
    font-family:"PretendardR", sans-serif; color:#282828; line-height:1.7;
    word-break:keep-all;
}
.blogBody img {max-width:100%; height:auto;}

/* 이전 / 다음 */
.blogNav {
    display:flex; align-items:stretch; gap:16px; margin-top:80px;
    padding-top:34px; border-top:solid 1px #e4ded4;
}
.blogNavItem {
    flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center;
    padding:20px 24px; border-radius:12px; background-color:#faf8f4;
    transition:background-color 0.2s ease;
}
.blogNavItem.next {text-align:right;}
.blogNavItem .label {font-family:"PretendardM", sans-serif; font-size:13px; color:#9b7735;}
.blogNavItem .tit {
    margin-top:8px; font-family:"PretendardM", sans-serif; font-size:16px; color:#282828;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
a.blogNavItem:hover {background-color:#f3efe7;}
.blogNavItem.off {opacity:0.5;}
.blogNavItem.off .tit {color:#a89f94;}

.blogListBtn {
    flex:none; display:flex; align-items:center; padding:0 34px; border-radius:12px;
    background-color:#11244b; color:#ffffff !important;
    font-family:"PretendardM", sans-serif; font-size:15px;
}
.blogListBtn:hover {background-color:#1f3b72;}

/* ----------------------------- 반응형 ------------------------------ */
@media (max-width:1400px) {
    .blogSection {padding:70px 0 100px;}
    .blogList {gap:38px 26px;}
    .blogTitle {font-size:40px;}
    .blogViewTitle {font-size:32px;}
}

@media (max-width:1024px) {
    .blogList {grid-template-columns:repeat(2, 1fr);}
}

@media (max-width:768px) {
    .blogSection {padding:50px 0 80px;}
    .blogHead {margin-bottom:38px;}
    .blogTitle {font-size:30px;}
    .blogLead {font-size:15px; margin-top:12px;}

    .blogList {grid-template-columns:repeat(2, 1fr); gap:28px 16px;}
    .blogInfo {padding-top:14px;}
    .blogItemTitle {font-size:16px;}
    .blogItemDesc {font-size:13.5px; margin-top:8px; -webkit-line-clamp:2;}
    .blogItemDate {font-size:12px; margin-top:10px;}

    .blogViewSection {padding-top:40px;}
    .blogViewHead {padding-bottom:26px; margin-bottom:32px;}
    .blogViewTitle {font-size:24px;}
    .blogViewMeta {font-size:13px; margin-top:14px;}

    .blogNav {flex-wrap:wrap; margin-top:56px; gap:10px;}
    .blogNavItem {flex:1 1 100%; padding:16px 18px;}
    .blogNavItem.next {text-align:left;}
    .blogListBtn {flex:1 1 100%; justify-content:center; padding:16px 0;}

    .blogPaging {margin-top:50px; gap:4px;}
    .blogPaging .pg {min-width:38px; height:38px; font-size:14px;}
}

@media (max-width:480px) {
    .blogList {grid-template-columns:1fr; gap:26px;}
}
