@charset "utf-8";
/* =========================================================
게시판
========================================================= */
/* nb- : 목록 */
.nb-wrap { width:min(1200px,100%); margin:0 auto; padding:0 16px; color:var(--text); box-sizing:border-box; }
.hb-front-flash { width:min(1180px,calc(100% - 32px)); margin:18px auto 0; padding:14px 16px; border:1px solid #b7d6fb; border-radius:8px; background:#eef7ff; color:#004681; font-size:15px; font-weight:800; box-sizing:border-box; transition:opacity .35s ease, transform .35s ease, max-height .35s ease, margin .35s ease, padding .35s ease, border-width .35s ease; }
.hb-front-flash.is-hiding { max-height:0; margin:0 auto; padding-top:0; padding-bottom:0; border-width:0; opacity:0; transform:translateY(-6px); overflow:hidden; }
.hb-front-flash.error { border-color:#f1b9b4; background:#fff1f0; color:#b42318; }
.nb-head { padding:18px 0 10px; }
.nb-title { font-size:34px; font-weight:900; letter-spacing:-.02em; margin:0; }
.nb-line { margin-top:14px; height:1px; background:#e6e6e6; }
.nb-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0 10px; }
.nb-total,.nb-count { font-size:14px; color:#333; }
.nb-actions { display:flex; align-items:center; gap:8px; }
.nb-btn { display:inline-flex; align-items:center; justify-content:center; height:36px; padding:0 14px; border:1px solid var(--border); border-radius:8px; background:#fff; color:var(--text); font-size:14px; font-weight:600; line-height:1; text-decoration:none; cursor:pointer; white-space:nowrap; box-sizing:border-box; font-family:inherit; }
.nb-btn:hover { background:#f7f7f7; }
.nb-btn--primary { border-color:var(--navy); background:var(--navy); color:#fff; }
.nb-btn--primary:hover { background:#152347; }
.nb-btn--danger { border-color:#d33; background:#d33; color:#fff; }
.nb-btn--danger:hover { background:#bb2424; }
.nb-inline-form { display:inline-flex; margin:0; }
.nb-alert { margin:12px 0; padding:12px 14px; border:1px solid #f1b9b4; border-radius:8px; color:#b42318; background:#fff1f0; font-size:14px; font-weight:700; }
.nb-badge { display:inline-flex; align-items:center; justify-content:center; height:22px; padding:0 8px; border-radius:6px; background:#0b5bd3; color:#fff; font-size:12px; font-weight:700; }
.nb-table-wrap { overflow:auto; }
.nb-table { width:100%; border-collapse:collapse; border-top:2px solid var(--text); margin-top:8px; }
.nb-table th,.nb-table td { padding:14px 10px; border-bottom:1px solid #ececec; vertical-align:middle; }
.nb-table th { font-size:13px; color:#333; font-weight:700; background:#fafafa; }
.nb-table td { font-size:14px; }
.col-no { width:90px; text-align:center; }
.col-name { width:140px; text-align:center; }
.col-hit { width:90px; text-align:center; }
.col-date { width:110px; text-align:center; }
.nb-subject,.nb-rowlink { color:var(--text); text-decoration:none; font-weight:600; }
.nb-subject:hover,.nb-rowlink:hover { text-decoration:underline; }
.nb-new { display:inline-block; margin-left:6px; font-size:12px; font-weight:800; color:#1c7cff; }
.nb-empty { text-align:center; padding:40px 10px !important; color:#777; }
.nb-pagination { display:flex; align-items:center; justify-content:center; gap:6px; padding:22px 0 2px; }
.nb-page { min-width:34px; height:34px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:8px; background:#fff; color:var(--text); font-size:14px; font-weight:700; line-height:1; text-decoration:none; box-sizing:border-box; }
.nb-page:hover { background:#f7f7f7; }
.nb-page.is-active { border-color:var(--navy); background:var(--navy); color:#fff; }
.nb-page.is-disabled { color:#aaa; background:#f6f6f6; pointer-events:none; }
.nb-search,.hb-board-search { display:flex; justify-content:center; padding:20px 0 40px; }
.nb-search form,.hb-board-search__form { display:flex; align-items:center; justify-content:center; gap:8px; width:min(680px,100%); margin:0 auto; }
.nb-sel,.hb-board-search__select { width:110px; height:40px; border:1px solid var(--border); border-radius:10px; padding:0 28px 0 10px; background:#fff; color:#222; box-sizing:border-box; text-align:center; text-align-last:center; font-family:inherit; }
.nb-sel option,.hb-board-search__select option,.cp-sel option { text-align:left; }
.nb-inp,.hb-board-search__input { flex:1; min-width:0; height:40px; border:1px solid var(--border); border-radius:10px; padding:0 12px; background:#fff; color:var(--text); box-sizing:border-box; font-family:inherit; outline:none; }
.nb-inp:focus,.hb-board-search__input:focus,.nb-sel:focus,.hb-board-search__select:focus { border-color:var(--navy); box-shadow:0 0 0 2px rgba(26,43,84,.08); }
.nb-search .nb-btn,.hb-board-search__form .nb-btn { height:40px; min-width:64px; }
.nb-search .nb-btn.search-btn,.hb-board-search__form .nb-btn.search-btn{border-color:var(--searchcolor); background:var(--searchcolor); color:#fff;}
@media (max-width:640px) {
  .nb-title { font-size:26px; }
  .col-name,.col-hit { display:none; }
  .nb-search form,.hb-board-search__form { flex-wrap:wrap; }
  .nb-sel,.hb-board-search__select { width:100px; }
  .nb-inp,.hb-board-search__input { flex:1 1 calc(100% - 108px); }
  .nb-search .nb-btn,.hb-board-search__form .nb-btn { width:100%; }
}
/* nv- : 상세보기 */
.nv-box { padding:10px 0 30px; }
.nv-title-row { display:flex; align-items:center; gap:10px; padding-top:10px; }
.nv-title { margin:0; font-size:20px; font-weight:800; letter-spacing:-.02em; }
.nv-meta { margin-top:10px; color:var(--text-muted); font-size:13px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.nv-sep { color:#bbb; }
.nv-line { height:1px; background:#ececec; margin:12px 0 18px; }
.nv-content { font-size:16px; line-height:1.75; color:var(--text); }
.nv-content img,.nv-content video,.nv-content iframe { max-width:100%; height:auto; }
.nv-attach-image { margin-top:20px; display:flex; justify-content:center; }
.nv-attach-image img { display:block; max-width:100%; height:auto; }
.nv-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:24px; padding-top:18px; border-top:1px solid var(--line-light); }
.nv-actions__left,.nv-actions__right { display:flex; gap:8px; flex-wrap:wrap; }
.nv-actions--detail { justify-content:flex-end; }
.nb-wrap--detail-list { margin-top:36px; }
@media (max-width:640px) {
  .nv-actions { flex-direction:column; align-items:stretch; }
  .nv-actions__left,.nv-actions__right { justify-content:center; }
}
/* nw- / hb-link : 작성폼 */
.nw-box { padding:12px 0 40px; }
.nw-row { margin:14px 0; }
.nw-label { display:block; font-weight:800; margin-bottom:8px; color:var(--text); }
.nw-inp { width:100%; height:44px; border:1px solid var(--border); border-radius:10px; padding:0 12px; box-sizing:border-box; font-family:inherit; }
.nw-editor { border:1px solid var(--border); border-radius:0; overflow:hidden; }
.nw-files { display:flex; flex-direction:column; gap:10px; }
.nw-file { padding:12px 14px; border:1px solid #e4e4e4; border-radius:10px; background:#fafafa; }
.nw-file input[type="file"] { display:block; width:100%; font-family:inherit; color:#444; }
.nw-file-del { display:inline-flex; align-items:center; gap:6px; margin-top:8px; color:#555; font-size:13px; }
.nw-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
.hb-link-fields { display:flex; flex-direction:column; gap:10px; }
.hb-link-row { display:flex; align-items:stretch; width:100%; }
.hb-link-label { width:46px; min-width:46px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); border-right:0; border-radius:10px 0 0 10px; background:#f7f7f7; color:var(--text-muted); box-sizing:border-box; }
.hb-link-label svg { width:18px; height:18px; display:block; stroke:currentColor; }
.hb-link-input { flex:1; min-width:0; height:44px; border:1px solid var(--border); border-radius:0 10px 10px 0; padding:0 12px; box-sizing:border-box; font-family:inherit; outline:none; }
.hb-link-input:focus { border-color:var(--navy); box-shadow:0 0 0 2px rgba(26,43,84,.08); }
.hb-view-links { margin:24px 0 0; }
.hb-view-links ul { list-style:none; margin:0; padding:0; }
.hb-view-links li { display:flex; align-items:center; gap:12px; padding:14px 15px; margin:10px 0; border:1px solid #dfdfdf; border-radius:7px; background:#fff; }
.hb-view-links__icon { width:24px; height:24px; min-width:24px; color:#b2b2b2; }
.hb-view-links__icon svg { display:block; width:100%; height:100%; stroke:currentColor; }
.hb-view-links a { min-width:0; color:var(--text); text-decoration:none; word-break:break-all; }
.hb-view-links a:hover { text-decoration:underline; color:#3a8afd; }
.hb-view-links__count { margin-left:auto; color:#999; font-size:12px; white-space:nowrap; }
.hb-view-links li:hover { border-color:#bed4f4; }
.hb-view-links li:hover .hb-view-links__icon { color:#3a8afd; }
@media (max-width:640px) {
  .hb-view-links li { align-items:flex-start; }
  .hb-view-links__count { display:none; }
}
/* =========================================================
지역상생
========================================================= */
/* 목록 */
.cp-wrap { width:min(1200px,100%); margin:0 auto; padding:0 16px 40px; box-sizing:border-box; }
.cp-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0 18px; border-bottom:1px solid #e7e7e7; margin-bottom:22px; }
.cp-count { font-size:14px; color:#444; }
.cp-actions { display:flex; align-items:center; gap:8px; }
.cp-actbtn { height:36px; padding:0 12px; border:1px solid #d7d7d7; border-radius:8px; background:#fff; color:#222; font-size:14px; line-height:36px; text-decoration:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; }
.cp-actbtn--primary { border-color:var(--navy); background:var(--navy); color:#fff; }
.cp-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.cp-card { border:1px solid #e5e5e5; background:#fff; }
.cp-link { display:block; color:inherit; text-decoration:none; }
.cp-thumb { position:relative; width:100%; aspect-ratio:450 / 338; background:#f3f3f3; overflow:hidden; }
.cp-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.cp-noimg { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; color:#777; }
.cp-meta { padding:14px 16px 16px; }
.cp-title { font-size:18px; font-weight:700; color:var(--text); line-height:1.35; min-height:calc(1.35em * 2); margin-bottom:10px; }
.clamp-2 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
@supports (line-clamp:2) {
  .clamp-2 { display:block; line-clamp:2; }
}
.cp-date { font-size:14px; color:#333; }
.cp-date span { margin-left:10px; color:var(--text); }
.cp-empty { grid-column:1 / -1; padding:40px 0; text-align:center; color:var(--text-muted); border:1px solid #e5e5e5; }
.cp-search { margin-top:24px; border-top:1px solid #e7e7e7; padding-top:18px; }
.cp-search__form { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.cp-sel { height:40px; padding:0 10px; border:1px solid #d7d7d7; border-radius:8px; background:#fff; }
.cp-inp { width:min(420px,100%); height:40px; padding:0 12px; border:1px solid #d7d7d7; border-radius:8px; background:#fff; box-sizing:border-box; }
.cp-btn { height:40px; padding:0 14px; border:1px solid var(--navy); border-radius:8px; background:var(--navy); color:#fff; cursor:pointer; }
.cp-btn--ghost { border-color:#d7d7d7; background:#fff; color:#222; }
@media (max-width:1024px) {
  .cp-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .cp-topbar { flex-direction:column; align-items:flex-start; }
  .cp-actions { width:100%; }
  .cp-grid { grid-template-columns:1fr; }
}
/* 상세 */
.cpv-adminbar { margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.cpv-abtn { display:inline-flex; align-items:center; justify-content:center; height:36px; padding:0 14px; border:1px solid var(--border); border-radius:999px; text-decoration:none; font-size:14px; font-weight:600; color:#222; background:#fff; }
.cpv-abtn:hover { background:#f6f7f9; }
.cpv-abtn--danger { border-color:#f1c1c1; color:#b10000; }
.cpv-abtn--danger:hover { background:#fff3f3; }
.cpv-nav { margin-top:26px; display:flex; gap:10px; flex-wrap:wrap; }
.cpv-navbtn { display:inline-flex; align-items:center; justify-content:center; height:40px; padding:0 16px; border-radius:999px; border:1px solid #e3e3e3; background:#fff; color:#222; text-decoration:none; font-size:14px; font-weight:700; line-height:1; }
.cpv-navbtn:hover { background:#f6f7f9; }
.cpv-navbtn.is-primary { background:var(--navy); border-color:var(--navy); color:#fff; }
.cpv-navbtn.is-primary:hover { background:#152347; }
.cpv-navbtn.is-disabled { opacity:.45; cursor:not-allowed; pointer-events:none; }
.cpv-hero { margin-top:18px; }
.cpv-hero img { display:block; width:100%; max-width:1200px; height:auto; margin:0 auto; border-radius:10px; }
@media (max-width:640px) {
  .cpv-navbtn { height:38px; padding:0 14px; font-size:13px; }
}
