@charset "utf-8";

/* === custom list ===*/

/* body의 0.75em을 상속하지 않도록 목록 내부에서 px 기준으로 재설정합니다. 헤더/푸터, 글보기/글쓰기 화면에 대한 선택자는 추가하지 않습니다. */
#bo_gall.blog-list { max-width:min(100%, var(--wrap)); margin:0 auto 80px; color:var(--ink); font-family:var(--font-text); font-size:var(--font-body); line-height:var(--line-height-text); word-break:keep-all; overflow-wrap:anywhere; }
#bo_gall.blog-list,
#bo_gall.blog-list * { box-sizing:border-box; }
#bo_gall.blog-list input,
#bo_gall.blog-list select,
#bo_gall.blog-list button { font-family:inherit; font-size:var(--font-small); }
#bo_gall.blog-list a { text-decoration:none; }
#bo_gall.blog-list a:focus-visible,
#bo_gall.blog-list button:focus-visible,
#bo_gall.blog-list input:focus-visible,
#bo_gall.blog-list select:focus-visible { outline:2px solid var(--color-sub); outline-offset:4px; }

/* 상단 인라인 검색 */
#bo_gall.blog-list .blog-search { padding:0 0 48px; text-align:center; }
#bo_gall.blog-list .blog-search-eyebrow { margin:0 0 12px; color:var(--text-muted); font-family:var(--font-mono); font-size:var(--font-caption); font-weight:600; letter-spacing:.12em; }
#bo_gall.blog-list #blog-search-title { position:static; width:auto; height:auto; margin:0; padding:0; overflow:visible; color:var(--ink); font-family:var(--font-title); font-size:var(--font-heading-lg); font-weight:700; line-height:1.35; letter-spacing:-.04em; }
#bo_gall.blog-list .blog-search-desc { margin:14px 0 26px; color:var(--text-muted); font-size:var(--font-body); }
#bo_gall.blog-list .blog-search-form { display:flex; align-items:center; width:100%; max-width:620px; min-height:58px; margin:0 auto; padding:5px 7px 5px 16px; border:1px solid var(--line); border-radius:99px; background:#fff; transition:border-color .2s, box-shadow .2s; }
#bo_gall.blog-list .blog-search-form:focus-within { border-color:var(--color-main); box-shadow:0 0 0 4px rgba(var(--color-main-rgb),.12); }
#bo_gall.blog-list #blog_sfl { flex:0 0 116px; width:116px; height:36px; margin:0; padding:0 8px 0 0; border:0; border-right:1px solid var(--line); border-radius:0; background-color:transparent; color:var(--ink); font-size:var(--font-small); }
#bo_gall.blog-list #blog_stx { flex:1 1 0; width:0; min-width:0; height:44px; margin:0; padding:0 14px; border:0; background:transparent; box-shadow:none; color:var(--ink); font-size:var(--font-body); }
#bo_gall.blog-list #blog_stx::placeholder { color:var(--text-muted); }
#bo_gall.blog-list .blog-search-submit { display:inline-flex; flex:0 0 44px; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:var(--ink); color:#fff; cursor:pointer; transition:background .2s, color .2s; }
#bo_gall.blog-list .blog-search-submit:hover { background:var(--color-main); color:var(--ink); }
#bo_gall.blog-list .blog-search-result { margin:16px 0 0; color:var(--text-muted); font-size:var(--font-small); }
#bo_gall.blog-list .blog-search-result a { display:inline-block; margin-left:12px; color:var(--ink); text-decoration:underline; text-underline-offset:4px; }

/* 카테고리 / 관리 기능 유지 */
#bo_gall.blog-list #bo_cate { margin:0 0 24px; }
#bo_gall.blog-list #bo_cate_ul { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
#bo_gall.blog-list #bo_cate li { display:block; padding:0; }
#bo_gall.blog-list #bo_cate a { padding:9px 18px; border:1px solid transparent; border-radius:99px; background:var(--surface); color:var(--text-muted); font-size:var(--font-small); font-weight:500; line-height:1.5; transition:background .2s, color .2s; }
#bo_gall.blog-list #bo_cate a:hover { background:rgba(var(--color-main-rgb),.16); color:var(--ink); }
#bo_gall.blog-list #bo_cate #bo_cate_on { border-color:var(--ink); background:var(--ink); color:#fff; font-weight:600; box-shadow:none; }
#bo_gall.blog-list #bo_btn_top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 16px; }
#bo_gall.blog-list #bo_list_total { float:none; color:var(--text-muted); font-size:var(--font-small); line-height:1.6; }
#bo_gall.blog-list .btn_bo_user { display:flex; float:none; flex-wrap:wrap; gap:6px; margin:0 0 0 auto; }
#bo_gall.blog-list .btn_bo_user > li { float:none; width:40px; margin:0; }
#bo_gall.blog-list .btn_bo_user > li > .btn { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border-radius:12px; font-size:18px; line-height:1; }
#bo_gall.blog-list .btn_bo_user > li > .btn:hover { background:var(--surface); color:var(--ink); }
#bo_gall.blog-list .more_opt { min-width:110px; border-color:var(--line); border-radius:12px; box-shadow:0 8px 28px rgba(23,35,33,.1); }
#bo_gall.blog-list .more_opt li { width:100%; }
#bo_gall.blog-list .more_opt button { font-size:var(--font-small); }
#bo_gall.blog-list #gall_allchk { margin:0 0 18px; font-size:var(--font-small); }
#bo_gall.blog-list .chk_box input[type="checkbox"]:focus-visible + label span { outline:2px solid var(--color-sub); outline-offset:3px; }
#bo_gall.blog-list .chk_box input[type="checkbox"]:checked + label span { border-color:var(--ink); background-color:var(--ink); }

/* 관리자 갤러리 열 수 클래스/box_clear를 남기고 실제 배치는 Grid로 적용합니다. */
#bo_gall.blog-list #gall_ul.gall_row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px; margin:0; padding:0; list-style:none; }
/* 원본 float용 clearfix가 Grid의 빈 셀을 차지하지 않도록 해제 */
#bo_gall.blog-list #gall_ul::after { content:none; }
#bo_gall.blog-list .gall_row > .gall_li { float:none; clear:none; width:auto; min-width:0; margin:0; padding:0; }
#bo_gall.blog-list .gall_box { margin:0; border-radius:0; }
#bo_gall.blog-list .gall_con { min-width:0; }
#bo_gall.blog-list .gall_li .gall_chk { top:6px; left:6px; }

/* 실제 이미지 높이를 따릅니다. 보드 설정의 고정 높이는 PHP에서 주석 보존.
   크롭 비율은 기존 get_list_thumbnail 설정을 유지합니다. */
#bo_gall.blog-list .gall_img { height:auto; max-height:none; border:0; border-radius:16px; background:var(--surface); line-height:0; overflow:hidden; }
#bo_gall.blog-list .gall_img a { display:block; }
#bo_gall.blog-list .gall_img img,
#bo_gall.blog-list .gall_img video { display:block; width:100%; max-width:100%; height:auto !important; margin:0; transition:transform .3s ease; }
#bo_gall.blog-list .gall_img a:hover img { transform:scale(1.025); }
/* 이미지가 없는 글과 공지는 별도 대체 영역을 제공합니다. */
#bo_gall.blog-list .gall_img .no_image,
#bo_gall.blog-list .gall_img .is_notice { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:16 / 9; background:var(--surface); color:var(--text-muted); font-size:var(--font-heading-sm); line-height:1.5; }
#bo_gall.blog-list .gall_img .is_notice { background:rgba(var(--color-main-rgb),.15); color:var(--ink); }
#bo_gall.blog-list .gall_text_href { margin:18px 0 12px; }
#bo_gall.blog-list .bo_cate_link { display:inline-block; height:auto; margin:0 0 8px; padding:0; border-radius:0; background:transparent; color:#237b6b; font-size:var(--font-caption); font-weight:600 !important; line-height:1.5; }
#bo_gall.blog-list .bo_tit { display:block; margin:0; color:var(--ink); font-family:var(--font-title); font-size:var(--font-heading-sm); font-weight:700; line-height:1.5; letter-spacing:-.035em; overflow-wrap:anywhere; }
#bo_gall.blog-list .bo_tit:hover { color:#237b6b; }
#bo_gall.blog-list .gall_now .bo_tit { color:#237b6b; }
#bo_gall.blog-list .bo_cnt { display:-webkit-box; margin:9px 0 0; overflow:hidden; color:var(--text-muted); font-size:var(--font-small); line-height:1.65; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
#bo_gall.blog-list .gall_info { color:var(--text-muted); font-size:var(--font-caption); line-height:1.6; }
#bo_gall.blog-list .gall_info .gall_date { margin:0; color:var(--text-muted); }
#bo_gall.blog-list .gall_info i { margin-right:3px; font-size:var(--font-caption); }
#bo_gall.blog-list .gall_option { top:12px; right:12px; font-size:var(--font-caption); }
#bo_gall.blog-list .empty_list { grid-column:1 / -1; padding:80px 20px; border:1px solid var(--line); border-radius:16px; color:var(--text-muted); font-size:var(--font-body); }
#bo_gall.blog-list .pg_wrap { clear:both; margin:48px 0 24px; text-align:center; }
#bo_gall.blog-list .pg_page,
#bo_gall.blog-list .pg_current { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; margin:3px; border-radius:8px; font-size:var(--font-small); line-height:1; vertical-align:middle; }
#bo_gall.blog-list .pg_current { border-color:var(--ink); background:var(--ink); color:#fff; box-shadow:none; }
#bo_gall.blog-list .bo_fx { display:flex; float:none; justify-content:flex-end; margin:24px 0 0; }

@media (max-width:1024px) {
    #bo_gall.blog-list #gall_ul.gall_row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; }
    #bo_gall.blog-list #blog-search-title { font-size:28px; }
}
@media (max-width:640px) {
    #bo_gall.blog-list { margin-bottom:48px; }
    #bo_gall.blog-list .blog-search { padding:0 0 32px; }
    #bo_gall.blog-list #blog-search-title { font-size:var(--font-heading-md); }
    #bo_gall.blog-list .blog-search-desc { margin:12px 0 22px; font-size:var(--font-small); }
    #bo_gall.blog-list .blog-search-form { padding-left:12px; }
    #bo_gall.blog-list #blog_sfl { flex-basis:96px; width:96px; font-size:var(--font-caption); }
    #bo_gall.blog-list #blog_stx { padding:0 8px; font-size:var(--font-small); }
    #bo_gall.blog-list #bo_cate { margin-bottom:20px; }
    #bo_gall.blog-list #bo_cate_ul { gap:6px; }
    #bo_gall.blog-list #bo_cate a { padding:8px 14px; font-size:var(--font-small); }
    #bo_gall.blog-list #gall_ul.gall_row { grid-template-columns:minmax(0,1fr); gap:34px; }
    #bo_gall.blog-list .gall_text_href { margin-top:16px; }
    #bo_gall.blog-list .pg_wrap { margin-top:36px; }
}
@media (prefers-reduced-motion:reduce) {
    #bo_gall.blog-list .gall_img img,
    #bo_gall.blog-list .gall_img video,
    #bo_gall.blog-list .blog-search-form,
    #bo_gall.blog-list .blog-search-submit,
    #bo_gall.blog-list #bo_cate a { transition:none; }
    #bo_gall.blog-list .gall_img a:hover img { transform:none; }
}

/* === custom view === */

/* 원본 style.css는 유지합니다. 목록/보기 모두 이 파일을 마지막에 불러옵니다. */
#bo_v.blog-view { max-width:min(100%, var(--wrap)); margin:0 auto 80px; padding:0; color:var(--ink); font-family:var(--font-text); font-size:var(--font-body); line-height:var(--line-height-text); word-break:keep-all; overflow-wrap:anywhere; }
#bo_v.blog-view,
#bo_v.blog-view * { box-sizing:border-box; }
#bo_v.blog-view input,
#bo_v.blog-view textarea,
#bo_v.blog-view select,
#bo_v.blog-view button { font-family:inherit; font-size:var(--font-small); }
#bo_v.blog-view a:focus-visible,
#bo_v.blog-view button:focus-visible,
#bo_v.blog-view input:focus-visible,
#bo_v.blog-view textarea:focus-visible { outline:2px solid var(--color-sub); outline-offset:4px; }

/* 제목 / 작성 정보. 본문을 읽기 편한 폭으로 제한하고 최근글은 넓게 표시합니다. */
#bo_v.blog-view > header,
#bo_v.blog-view #bo_v_info,
#bo_v.blog-view #bo_v_atc,
#bo_v.blog-view #bo_v_file,
#bo_v.blog-view #bo_v_link,
#bo_v.blog-view .bo_v_nb { width:100%; margin-right:auto; margin-left:auto; }
#bo_v.blog-view > header { padding-top:0; }
#bo_v.blog-view #bo_v_title { margin:0; padding:0; font-size:var(--font-body); }
#bo_v.blog-view #bo_v_title .bo_v_cate { display:inline-block; margin:0 0 12px; padding:5px 12px; border-radius:99px; background:rgba(var(--color-main-rgb),.14); color:#237b6b; font-family:var(--font-title); font-size:var(--font-small); font-weight:600; line-height:1.5; }
#bo_v.blog-view #bo_v_title .bo_v_tit { display:block; margin:0; color:var(--ink); font-family:var(--font-title); font-size:var(--font-heading-xl); font-weight:700; line-height:1.4; letter-spacing:-.045em; word-break:keep-all; overflow-wrap:anywhere; }
#bo_v.blog-view #bo_v_info { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:22px; margin-bottom:28px; padding:0 0 20px; border-bottom:1px solid var(--line); color:var(--text-muted); font-size:var(--font-small); }
#bo_v.blog-view #bo_v_info .profile_info { display:block; float:none; margin:0; }
#bo_v.blog-view #bo_v_info .profile_info_ct { display:flex; float:none; align-items:center; flex-wrap:wrap; gap:6px 16px; padding:0; line-height:1.6; }
/* 작성자와 날짜는 기존 구조의 줄바꿈을 유지합니다. */
#bo_v.blog-view #bo_v_info strong { margin:0; font-size:var(--font-small); }
#bo_v.blog-view #bo_v_info .if_date { color:var(--text-muted); font-size:var(--font-caption); }
#bo_v.blog-view #bo_v_top { margin-left:auto; }
#bo_v.blog-view .btn_bo_user.bo_v_com { display:flex; float:none; align-items:center; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
#bo_v.blog-view .bo_v_com > li { float:none; width:40px; margin:0; }
#bo_v.blog-view .bo_v_com > li > .btn { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border-radius:12px; font-size:18px; line-height:1; }
#bo_v.blog-view .bo_v_com > li > .btn:hover { background:var(--surface); color:var(--ink); }
#bo_v.blog-view .more_opt { min-width:110px; border-color:var(--line); border-radius:12px; box-shadow:0 8px 28px rgba(23,35,33,.1); }
#bo_v.blog-view .more_opt li { width:100%; margin:0; }
#bo_v.blog-view .more_opt a { font-size:var(--font-small); }

/* 본문: 전역 12px 상속을 끊고 실제 텍스트는 17px/1.85로 표시합니다.
   에디터에서 직접 지정한 인라인 글자 크기는 유지합니다. */
#bo_v.blog-view #bo_v_atc { min-height:0; }
#bo_v.blog-view #bo_v_share { margin:0 0 24px; font-size:var(--font-small); }
#bo_v.blog-view #bo_v_share .btn { width:auto; height:auto; padding:8px 14px; border-color:var(--line); border-radius:10px; font-size:var(--font-small); line-height:1.5; }
#bo_v.blog-view #bo_v_img { margin:0; }
#bo_v.blog-view #bo_v_img img { display:block; max-width:100%; height:auto; margin:0 auto 28px; border-radius:16px; }
#bo_v.blog-view #bo_v_con { width:100%; min-height:0; margin:24px 0 48px; overflow:visible; color:var(--ink); font-size:var(--font-body); line-height:1.85; word-break:normal; overflow-wrap:anywhere; }
#bo_v.blog-view #bo_v_con p { margin:0 0 1.2em; }
#bo_v.blog-view #bo_v_con h1 { margin:1.6em 0 .7em; font-size:var(--font-heading-lg); line-height:1.45; letter-spacing:-.035em; }
#bo_v.blog-view #bo_v_con h2 { margin:1.6em 0 .7em; font-size:var(--font-heading-md); line-height:1.45; letter-spacing:-.035em; }
#bo_v.blog-view #bo_v_con h3 { margin:1.5em 0 .6em; font-size:var(--font-heading-sm); line-height:1.5; }
#bo_v.blog-view #bo_v_con h4,
#bo_v.blog-view #bo_v_con h5,
#bo_v.blog-view #bo_v_con h6 { margin:1.4em 0 .6em; font-family:var(--font-title); font-size:var(--font-body); line-height:1.5; }
#bo_v.blog-view #bo_v_con ul,
#bo_v.blog-view #bo_v_con ol { margin:0 0 1.2em; padding-left:1.5em; }
#bo_v.blog-view #bo_v_con li { margin:.35em 0; }
#bo_v.blog-view #bo_v_con a { color:#237b6b; text-decoration:underline; text-underline-offset:4px; }
#bo_v.blog-view #bo_v_con img,
#bo_v.blog-view #bo_v_con video { max-width:100%; height:auto; border-radius:12px; }
#bo_v.blog-view #bo_v_con iframe { max-width:100%; }
#bo_v.blog-view #bo_v_con blockquote { margin:24px 0; padding:18px 22px; border-left:3px solid var(--color-main); border-radius:0 12px 12px 0; background:var(--surface); }
#bo_v.blog-view #bo_v_con pre { max-width:100%; margin:24px 0; padding:20px; overflow:auto; border-radius:12px; background:#172321; color:#f4f6f5; font-family:var(--font-mono); font-size:var(--font-small); line-height:1.7; white-space:pre; }
#bo_v.blog-view #bo_v_con code { font-family:var(--font-mono); font-size:.9em; }
#bo_v.blog-view #bo_v_con table { display:block; max-width:100%; margin:24px 0; overflow-x:auto; border-collapse:collapse; font-size:var(--font-small); }
#bo_v.blog-view #bo_v_con th,
#bo_v.blog-view #bo_v_con td { padding:12px 14px; border:1px solid var(--line); }
#bo_v.blog-view #bo_v_con th { background:var(--surface); }
#bo_v.blog-view #bo_v_act { margin:32px 0; font-size:var(--font-small); }
#bo_v.blog-view #bo_v_file,
#bo_v.blog-view #bo_v_link { font-size:var(--font-small); }
#bo_v.blog-view #bo_v_file li,
#bo_v.blog-view #bo_v_link li { overflow-wrap:anywhere; border-color:var(--line); border-radius:12px; box-shadow:none; }
#bo_v.blog-view #bo_v_file a,
#bo_v.blog-view #bo_v_link a { float:none; color:var(--ink); font-size:var(--font-small); }
#bo_v.blog-view #bo_v_file .bo_v_file_cnt,
#bo_v.blog-view #bo_v_link .bo_v_link_cnt { color:var(--text-muted); font-size:var(--font-caption); }

/* 이전글 / 다음글 */
#bo_v.blog-view .bo_v_nb { margin-top:40px; margin-bottom:0; padding:0; list-style:none; font-size:var(--font-small); }
#bo_v.blog-view .bo_v_nb li { display:flex; align-items:baseline; gap:16px; padding:18px 0; border-color:var(--line); }
#bo_v.blog-view .bo_v_nb li .nb_tit { flex:0 0 80px; padding:0; color:var(--text-muted); font-size:var(--font-caption); }
#bo_v.blog-view .bo_v_nb li a { flex:1; min-width:0; color:var(--ink); font-size:var(--font-small); line-height:1.6; text-decoration:none; }
#bo_v.blog-view .bo_v_nb li a:hover { color:#237b6b; }
#bo_v.blog-view .bo_v_nb li .nb_date { float:none; flex:0 0 auto; color:var(--text-muted); font-size:var(--font-caption); }

/* 같은 카테고리 최근글: 목록과 같은 카드 크기/색상/타이포그래피 */
#bo_v.blog-view .blog-recent { margin:56px 0; padding-top:32px; border-top:1px solid var(--line); }
#bo_v.blog-view .blog-recent-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 24px; }
#bo_v.blog-view #blog-recent-title { position:static; width:auto; height:auto; margin:0; padding:0; overflow:visible; color:var(--ink); font-family:var(--font-title); font-size:var(--font-heading-md); font-weight:700; line-height:1.5; letter-spacing:-.035em; }
#bo_v.blog-view .blog-recent-more { color:var(--text-muted); font-size:var(--font-small); text-decoration:none; }
#bo_v.blog-view .blog-recent-more:hover { color:#237b6b; }
#bo_v.blog-view .blog-recent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px; margin:0; padding:0; list-style:none; }
#bo_v.blog-view .blog-recent-grid::after { content:none; }
#bo_v.blog-view .blog-recent .gall_li { float:none; clear:none; width:auto; min-width:0; margin:0; padding:0; }
#bo_v.blog-view .blog-recent .gall_box { margin:0; }
#bo_v.blog-view .blog-recent .gall_img { height:auto; max-height:none; overflow:hidden; border-radius:16px; background:var(--surface); line-height:0; }
#bo_v.blog-view .blog-recent .gall_img a { display:block; }
#bo_v.blog-view .blog-recent .gall_img img { display:block; width:100%; max-width:100%; height:auto; margin:0; border-radius:0; transition:transform .3s ease; }
#bo_v.blog-view .blog-recent .gall_img a:hover img { transform:scale(1.025); }
#bo_v.blog-view .blog-recent .no_image { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:16 / 9; color:var(--text-muted); font-size:var(--font-heading-sm); line-height:1.5; }
#bo_v.blog-view .blog-recent .gall_text_href { margin:18px 0 12px; }
#bo_v.blog-view .blog-recent .bo_cate_link { display:inline-block; height:auto; margin:0 0 8px; padding:0; border-radius:0; background:transparent; color:#237b6b; font-size:var(--font-caption); font-weight:600; line-height:1.5; text-decoration:none; }
#bo_v.blog-view .blog-recent .bo_tit { display:block; color:var(--ink); font-family:var(--font-title); font-size:var(--font-heading-sm); font-weight:700; line-height:1.5; letter-spacing:-.035em; text-decoration:none; }
#bo_v.blog-view .blog-recent .bo_tit:hover { color:#237b6b; }
#bo_v.blog-view .blog-recent .bo_cnt { display:-webkit-box; margin:9px 0 0; overflow:hidden; color:var(--text-muted); font-size:var(--font-small); line-height:1.65; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
#bo_v.blog-view .blog-recent .gall_info { color:var(--text-muted); font-size:var(--font-caption); line-height:1.6; }
#bo_v.blog-view .blog-recent-empty { margin:0; padding:36px 20px; border:1px solid var(--line); border-radius:16px; color:var(--text-muted); font-size:var(--font-small); text-align:center; }

/* 기존 댓글 기능 유지. 별도의 댓글 스킨 수정 없이 가독성만 조정합니다. */
#bo_v.blog-view .cmt_btn { margin-top:36px; color:var(--ink); font-size:var(--font-body); }
#bo_v.blog-view #bo_vc,
#bo_v.blog-view .bo_vc_w { font-size:var(--font-small); line-height:1.7; }
#bo_v.blog-view #bo_vc .cmt_contents { font-size:var(--font-body); line-height:1.8; }
#bo_v.blog-view #bo_vc .bo_vc_hdinfo { font-size:var(--font-caption); }
#bo_v.blog-view #bo_vc .cm_wrap { float:none; width:auto; max-width:none; margin-left:60px; }
#bo_v.blog-view #bo_vc_empty { padding:36px 0 !important; color:var(--text-muted); font-size:var(--font-small); }
#bo_v.blog-view .bo_vc_w textarea { padding:16px; border-color:var(--line); border-radius:12px; color:var(--ink); font-size:var(--font-body); line-height:1.7; }
#bo_v.blog-view .bo_vc_w .frm_input { max-width:100%; font-size:var(--font-small); }
#bo_v.blog-view .bo_vc_w .btn_submit { padding:0 22px; border-radius:10px; font-size:var(--font-small); }

@media (max-width:1024px) {
    #bo_v.blog-view #bo_v_title .bo_v_tit { font-size:var(--font-heading-lg); }
    #bo_v.blog-view .blog-recent-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; }
}
@media (max-width:640px) {
    #bo_v.blog-view { margin-bottom:48px; }
    #bo_v.blog-view #bo_v_title .bo_v_tit { font-size:28px; }
    #bo_v.blog-view #bo_v_info { margin-top:18px; margin-bottom:22px; padding-bottom:16px; }
    #bo_v.blog-view #bo_v_con { margin-bottom:32px; }
    #bo_v.blog-view #bo_v_con h1 { font-size:28px; }
    #bo_v.blog-view #bo_v_con h2 { font-size:22px; }
    #bo_v.blog-view #bo_v_con pre { padding:16px; }
    #bo_v.blog-view .bo_v_nb li { flex-wrap:wrap; gap:6px 12px; }
    #bo_v.blog-view .bo_v_nb li .nb_tit { flex-basis:68px; }
    #bo_v.blog-view .bo_v_nb li .nb_date { flex-basis:100%; padding-left:80px; }
    #bo_v.blog-view .blog-recent { margin:40px 0; padding-top:24px; }
    #bo_v.blog-view #blog-recent-title { font-size:22px; }
    #bo_v.blog-view .blog-recent-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
    #bo_v.blog-view .blog-recent .gall_text_href { margin-top:16px; }
}
@media (prefers-reduced-motion:reduce) {
    #bo_v.blog-view .blog-recent .gall_img img { transition:none; }
    #bo_v.blog-view .blog-recent .gall_img a:hover img { transform:none; }
}

/* blog 게시판 목록·보기에서만 기본 페이지 제목 숨김 */
#container:has(#bo_gall.blog-list) > #container_title,
#container:has(#bo_v.blog-view) > #container_title { display:none; }
/* === 보기 화면 반응형 보완: 기존 목록 / PC 디자인 유지 === */
@media (max-width:1024px) {
    /* 스킨에 inline으로 들어오는 게시판 폭도 작은 화면에 맞춥니다. */
    #bo_v.blog-view { width:100% !important; max-width:100%; min-width:0; }
    #container:has(#bo_v.blog-view) { min-width:0; }
    #bo_v.blog-view > header,
    #bo_v.blog-view #bo_v_info,
    #bo_v.blog-view #bo_v_atc,
    #bo_v.blog-view #bo_v_file,
    #bo_v.blog-view #bo_v_link,
    #bo_v.blog-view .bo_v_nb,
    #bo_v.blog-view .blog-recent { min-width:0; max-width:100%; }
    #bo_v.blog-view #bo_v_con { min-width:0; max-width:100%; }
    #bo_v.blog-view #bo_v_con pre,
    #bo_v.blog-view #bo_v_con table { width:100%; max-width:100%; overflow-x:auto; }
    #bo_v.blog-view #bo_v_con img,
    #bo_v.blog-view #bo_v_img img { max-width:100% !important; height:auto !important; }
}
@media (max-width:640px) {
    #bo_v.blog-view { margin-bottom:40px; }
    #bo_v.blog-view #bo_v_title .bo_v_cate { margin-bottom:10px; padding:4px 11px; font-size:13px; }
    #bo_v.blog-view #bo_v_title .bo_v_tit { font-size:clamp(23px, 6vw, 27px); line-height:1.45; letter-spacing:-.035em; word-break:normal; overflow-wrap:anywhere; }
    #bo_v.blog-view #bo_v_info { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin-top:16px; margin-bottom:20px; padding-bottom:14px; }
    #bo_v.blog-view #bo_v_info .profile_info { min-width:0; width:100%; margin:0; }
    #bo_v.blog-view #bo_v_info .profile_info_ct { gap:6px 14px; min-width:0; padding:0; }
    /* 원본 br은 HTML에 남겨 두고 모바일에서만 강제 줄바꿈을 해제합니다. */
    #bo_v.blog-view #bo_v_info .profile_info_ct > br { display:none; }
    #bo_v.blog-view #bo_v_info strong { max-width:100%; font-size:14px; }
    #bo_v.blog-view #bo_v_info .if_date { font-size:13px; }
    #bo_v.blog-view #bo_v_top { width:100%; min-width:0; margin:0; }
    #bo_v.blog-view .btn_bo_user.bo_v_com { justify-content:flex-end; gap:4px; margin:0; }
    #bo_v.blog-view .bo_v_com > li { width:40px; }
    #bo_v.blog-view .bo_v_com > li > .btn { width:40px; height:40px; font-size:17px; }
    #bo_v.blog-view #bo_v_share { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 20px; padding:0; }
    #bo_v.blog-view #bo_v_share .btn { margin:0; padding:8px 12px; font-size:14px; line-height:1.5; }
    #bo_v.blog-view #bo_v_img img { margin-bottom:20px; border-radius:12px; }
    #bo_v.blog-view #bo_v_con { margin:20px 0 32px; font-size:17px; line-height:1.8; }
    #bo_v.blog-view #bo_v_con blockquote { margin:20px 0; padding:14px 16px; }
    #bo_v.blog-view .bo_v_nb li { display:grid; grid-template-columns:60px minmax(0,1fr); gap:5px 10px; padding:15px 0; }
    #bo_v.blog-view .bo_v_nb li .nb_tit { padding:0; font-size:12px; }
    #bo_v.blog-view .bo_v_nb li a { font-size:14px; }
    #bo_v.blog-view .bo_v_nb li .nb_date { grid-column:2; padding:0; font-size:12px; }
    #bo_v.blog-view .blog-recent { margin:32px 0; padding-top:24px; }
    #bo_v.blog-view .blog-recent-heading { gap:8px; margin-bottom:18px; }
    #bo_v.blog-view #blog-recent-title { font-size:21px; }
    #bo_v.blog-view .blog-recent-more { font-size:14px; }
    #bo_v.blog-view #bo_vc article .pf_img { width:32px; margin-right:10px; }
    #bo_v.blog-view #bo_vc article .pf_img img { width:32px; height:32px; }
    #bo_v.blog-view #bo_vc .cm_wrap { width:auto; min-width:0; margin-left:42px; }
    #bo_v.blog-view .bo_vc_w textarea { min-width:0; padding:12px; font-size:16px; }
    #bo_v.blog-view .bo_vc_w_info { display:flex; flex-wrap:wrap; gap:8px; width:100%; min-width:0; }
    #bo_v.blog-view .bo_vc_w_info .frm_input { float:none; width:calc(50% - 4px); min-width:0; margin:0; font-size:16px; }
    #bo_v.blog-view .bo_vc_w_info #captcha { max-width:100%; }

	#bo_v.blog-view #bo_v_con { width:100%; min-width:0; max-width:100%; font-size:17px; line-height:1.8; word-break:keep-all; overflow-wrap:anywhere; }
    #bo_v.blog-view #bo_v_con h6 { max-width:100%; margin:0 0 14px; font-weight:700; line-height:1.5; word-break:keep-all; overflow-wrap:anywhere; }
	#bo_v.blog-view #bo_v_con p { width:auto; max-width:100%; margin:0 0 1.2em; font-size:15px; line-height:inherit; word-break:inherit; overflow-wrap:inherit; }
}