@import url("https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500|Roboto:300,400,500&display=swap");
/* KCMS front – basic layout & skins */
:root {
  --kc-primary: #1f5eff;
  --kc-primary-dark: #1647c4;
  --kc-text: #1d2330;
  --kc-muted: #6b7280;
  --kc-line: #e5e7eb;
  --kc-soft: #f6f7f9;
  --kc-radius: 10px;
  --kc-header-h: 68px;
  --bs-body-font-family: "Roboto", "Noto Sans KR", 나눔고딕, "Nanum Gothic", "Malgun Gothic", 맑은고딕, 굴림, 돋움, "Dotum", sans-serif;
  --bs-body-color: var(--kc-text);
  --bs-link-color: var(--kc-text);
  --bs-link-color-rgb: 29, 35, 48;
  --bs-link-hover-color: var(--kc-primary);
  --bs-link-hover-color-rgb: 31, 94, 255;
  --bs-primary: var(--kc-primary);
  --bs-primary-rgb: 31, 94, 255;
}
body.kc-front { background: #fff; font-size: 15px; word-break: keep-all; overflow-wrap: anywhere; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }
.btn-primary { --bs-btn-bg: var(--kc-primary); --bs-btn-border-color: var(--kc-primary); --bs-btn-hover-bg: var(--kc-primary-dark); --bs-btn-hover-border-color: var(--kc-primary-dark); --bs-btn-active-bg: var(--kc-primary-dark); --bs-btn-disabled-bg: var(--kc-primary); --bs-btn-disabled-border-color: var(--kc-primary); }
.btn-outline-primary { --bs-btn-color: var(--kc-primary); --bs-btn-border-color: var(--kc-primary); --bs-btn-hover-bg: var(--kc-primary); --bs-btn-hover-border-color: var(--kc-primary); --bs-btn-active-bg: var(--kc-primary); }
.btn:hover, .page-link:hover, .dropdown-item:hover, .nav-link:hover { text-decoration: none; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #8fb0ff; box-shadow: 0 0 0 .2rem rgba(31, 94, 255, .15); }
.form-check-input:checked { background-color: var(--kc-primary); border-color: var(--kc-primary); }
.kc-skip { position: absolute; left: 8px; top: 8px; z-index: 2000; background: #000; color: #fff; padding: 6px 12px; }

/* header */
.kc-header { border-bottom: 0; background: #fff; position: sticky; top: 0; z-index: 1030; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.kc-topbar { font-size: 12px; background: #082a47; color: #fff; height: 40px; padding: 0; border-bottom: 0; }
.kc-topbar .container { height: 40px; display: flex; align-items: center; justify-content: flex-end; gap: 0; }
.kc-topbar-menu { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; line-height: 40px; }
.kc-topbar-menu li { display: inline-flex; align-items: center; padding-right: 15px; color: #ccc; }
.kc-topbar-menu li:last-child { padding-right: 0; }
.kc-topbar-menu i { color: #ccc; padding-right: 5px; font-size: 12px; }
.kc-topbar-menu a { color: #ccc; font-size: 12px; padding-left: 5px; text-decoration: none; }
.kc-topbar-menu a:hover { color: #fff; text-decoration: none; }
.kc-topbar-menu .badge { margin-left: 5px; display: inline-block; min-width: 10px; padding: 3px 7px; font-size: 10px; font-weight: 700; color: #fff; line-height: 1; vertical-align: baseline; white-space: nowrap; text-align: center; background-color: #999; border-radius: 10px; }
.kc-header-main { display: flex; align-items: center; height: 50px; line-height: 50px; gap: 0; }
.kc-logo { font-size: 18px; font-weight: 700; line-height: 20px; color: #000; letter-spacing: 0; white-space: nowrap; }
.kc-logo:hover { text-decoration: none; color: #2773ae; }
.kc-gnb { flex: 0 0 auto; margin-left: auto; }
.kc-gnb > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; }
.kc-gnb > ul > li { position: relative; height: 50px; }
.kc-gnb > ul > li > a { display: block; padding: 0 20px; height: 50px; line-height: 50px; font-weight: 400; font-size: 13px; color: #000; }
.kc-gnb > ul > li.active > a, .kc-gnb > ul > li > a:hover, .kc-gnb > ul > li > a:focus, .kc-gnb > ul > li.has-sub:hover > a { color: #fff; background: #3498db; text-decoration: none; box-shadow: none; }
.kc-sub { display: none; position: absolute; top: 50px; right: 0; left: auto; min-width: 190px; list-style: none; margin: 0; padding: 0; background: #444; border: 0; border-radius: 0; box-shadow: none; overflow: hidden; z-index: 1; }
.kc-gnb li.has-sub:hover > .kc-sub, .kc-gnb li.has-sub:focus-within > .kc-sub { display: block; }
.kc-sub li { height: 40px; line-height: 40px; }
.kc-sub a { display: block; padding: 0 20px; height: 40px; line-height: 40px; color: #ccc; white-space: nowrap; font-size: 13px; }
.kc-sub a:hover, .kc-sub a:focus, .kc-sub li.active > a { background: #3498db; color: #fff; text-decoration: none; }
.kc-header-search { display: flex; align-items: center; gap: 0; margin: 0 0 0 4px; height: 50px; }
.kc-header-search .kc-hs-input { border: 1px solid #e5e6e7; height: 26px; width: 140px; outline: 0; padding: 3px 12px; background: #fff; border-radius: 5px; font-size: 13px; line-height: 1.5; color: #333; }
.kc-header-search .kc-hs-btn { margin-left: 4px; border: 1px solid #348fe2; background: #348fe2; color: #fff; font-size: 12px; line-height: 1.42857143; padding: 3px 8px; border-radius: 4px; cursor: pointer; }
.kc-header-search .kc-hs-btn:hover { background: #2670b7; border-color: #2670b7; }
.kc-header-tools { margin-left: auto; display: flex; align-items: center; }
.kc-icon-btn { font-size: 1.35rem; color: var(--kc-text); position: relative; padding: 6px 8px; }
.kc-dot { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; border-radius: 50%; background: #e5484d; }
.kc-search-bar { border-top: 1px solid var(--kc-line); background: var(--kc-soft); }
.kc-mnav-user { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-bottom: 14px; margin-bottom: 10px; border-bottom: 1px solid var(--kc-line); font-size: 14px; }
.kc-mnav-list, .kc-mnav-list ul { list-style: none; margin: 0; padding: 0; }
.kc-mnav-list > li > a { display: block; padding: 10px 0; font-weight: 600; }
.kc-mnav-list ul { padding: 0 0 6px 12px; }
.kc-mnav-list ul a { display: block; padding: 6px 0; color: var(--kc-muted); }

/* main */
.kc-main { padding-top: 28px; padding-bottom: 56px; min-height: 60vh; }
.kc-page-title { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; }
.kc-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.kc-page-desc { color: var(--kc-muted); margin: 0; }
.kc-section-title { font-size: 1.1rem; font-weight: 700; margin: 0 0 12px; }
.kc-box { border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 16px; margin-bottom: 16px; background: #fff; }
.kc-box-title { font-size: .95rem; font-weight: 700; margin: 0 0 10px; }
.kc-empty { text-align: center; color: var(--kc-muted); padding: 48px 12px; }
.kc-muted { color: var(--kc-muted); }

/* sidebar */
.kc-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.kc-avatar-blank { display: inline-flex; align-items: center; justify-content: center; background: var(--kc-soft); color: var(--kc-muted); font-size: 1.2rem; }
.kc-avatar-lg { width: 80px; height: 80px; font-size: 2rem; }
.kc-loginbox-stats { list-style: none; padding: 0; margin: 0 0 10px; display: flex; gap: 6px; font-size: 13px; }
.kc-loginbox-stats li { flex: 1; text-align: center; background: var(--kc-soft); border-radius: 8px; padding: 6px 2px; }
.kc-loginbox-stats b { display: block; color: var(--kc-primary); }
.kc-latest { list-style: none; padding: 0; margin: 0; }
.kc-latest li { display: flex; gap: 6px; padding: 6px 0; border-bottom: 1px dashed var(--kc-line); font-size: 14px; }
.kc-latest li:last-child { border-bottom: 0; }
.kc-latest li > a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-latest .kc-date { color: var(--kc-muted); font-size: 12px; white-space: nowrap; }
.kc-cmt { color: #e5484d; font-size: 12px; font-weight: 600; }
.kc-banners { display: grid; gap: 10px; }
.kc-banner img { max-width: 100%; height: auto; border-radius: 6px; display: block; }

/* main page */
.kc-hero { background: linear-gradient(135deg, #1f5eff 0%, #6a8dff 100%); color: #fff; border-radius: 14px; padding: 40px 32px; margin-bottom: 28px; }
.kc-hero h1 { font-size: 1.8rem; font-weight: 800; margin: 0 0 6px; }
.kc-hero p { margin: 0; opacity: .9; }
.kc-latest-card { height: 100%; }
.kc-latest-card .kc-box-title { display: flex; justify-content: space-between; align-items: center; font-size: 1rem; }
.kc-latest-card .kc-box-title a.more { font-size: 13px; font-weight: 400; color: var(--kc-muted); }
.kc-gallery-latest { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 767.98px) { .kc-gallery-latest { grid-template-columns: repeat(2, 1fr); } }

/* board list */
.kc-board-head { margin-bottom: 14px; }
.kc-cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.kc-cats a { padding: 5px 12px; border: 1px solid var(--kc-line); border-radius: 999px; font-size: 14px; color: var(--kc-muted); }
.kc-cats a.active, .kc-cats a:hover { border-color: var(--kc-primary); color: var(--kc-primary); text-decoration: none; }
.kc-list { width: 100%; border-top: 2px solid var(--kc-text); font-size: 14px; }
.kc-list th { font-weight: 600; text-align: center; padding: 10px 6px; border-bottom: 1px solid var(--kc-line); background: var(--kc-soft); white-space: nowrap; }
.kc-list td { padding: 11px 6px; border-bottom: 1px solid var(--kc-line); text-align: center; color: var(--kc-muted); white-space: nowrap; }
.kc-list td.kc-subject { text-align: left; color: var(--kc-text); white-space: normal; width: 100%; }
.kc-list tr.is-notice td { background: #f7f9ff; }
.kc-list tr.is-current td { background: #fffbe6; }
.kc-subject a { color: var(--kc-text); font-weight: 500; }
.kc-subject .kc-cat { color: var(--kc-primary); font-size: 13px; margin-right: 4px; }
.kc-reply-mark { color: var(--kc-muted); margin-right: 4px; }
.kc-badge { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 5px; vertical-align: 1px; margin-left: 4px; }
.kc-badge-new { background: #e5484d; color: #fff; }
.kc-badge-hot { background: #ff8a00; color: #fff; }
.kc-badge-notice { background: var(--kc-primary); color: #fff; margin: 0; }
.kc-ico { color: var(--kc-muted); font-size: 13px; margin-left: 3px; }
.kc-list-mobile { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--kc-text); }
.kc-list-mobile li { padding: 12px 2px; border-bottom: 1px solid var(--kc-line); }
.kc-list-mobile .kc-meta { font-size: 12px; color: var(--kc-muted); margin-top: 4px; display: flex; flex-wrap: wrap; gap: 8px; }
.kc-gallery { display: grid; gap: 16px; }
.kc-gallery-item { display: block; color: var(--kc-text); }
.kc-gallery-item:hover { text-decoration: none; }
.kc-thumb { aspect-ratio: 4/3; background: var(--kc-soft); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: #b0b6c0; font-size: 2rem; }
.kc-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.kc-gallery-item:hover .kc-thumb img { transform: scale(1.04); }
.kc-gallery-item .kc-gtitle { margin-top: 8px; font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-gallery-item .kc-meta { font-size: 12px; color: var(--kc-muted); }
.kc-list-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; position: relative; top: -10px; }
.kc-search-form { display: flex; gap: 6px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }
.kc-search-form .form-select { width: auto; }
.kc-search-form .form-control { width: 220px; max-width: 100%; }
.kc-pager { margin-top: 18px; }
.page-link { color: var(--kc-text); }
.page-item.active .page-link { background: var(--kc-primary); border-color: var(--kc-primary); }

/* post view */
.kc-post-head { border-top: 2px solid var(--kc-text); border-bottom: 1px solid var(--kc-line); padding: 18px 4px 14px; }
.kc-post-title { font-size: 1.35rem; font-weight: 700; margin: 0 0 10px; letter-spacing: -.01em; }
.kc-post-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--kc-muted); align-items: center; }
.kc-post-meta .kc-name { color: var(--kc-text); font-weight: 600; }
.kc-post-files, .kc-post-links { border-bottom: 1px solid var(--kc-line); padding: 10px 4px; font-size: 14px; }
.kc-post-files ul, .kc-post-links ul { list-style: none; margin: 0; padding: 0; }
.kc-post-files li, .kc-post-links li { padding: 3px 0; }
.kc-post-body { padding: 28px 4px; min-height: 160px; line-height: 1.75; overflow-x: auto; }
.kc-post-body img { max-width: 100%; height: auto; }
.kc-post-body iframe, .kc-post-body video { max-width: 100%; }
.kc-post-body table { max-width: 100%; }
.kc-post-body pre { background: #0f172a; color: #e2e8f0; padding: 14px; border-radius: 8px; }
.kc-post-images img { display: block; max-width: 100%; height: auto; margin: 0 auto 14px; border-radius: 4px; }
.kc-post-tags { padding: 0 4px 14px; }
.kc-post-tags a { display: inline-block; font-size: 13px; padding: 3px 10px; margin: 0 4px 4px 0; background: var(--kc-soft); border-radius: 999px; color: var(--kc-muted); }
.kc-extra-fields { margin: 0 4px 16px; font-size: 14px; }
.kc-extra-fields th { width: 160px; background: var(--kc-soft); font-weight: 600; }
.kc-reactions { display: flex; justify-content: center; gap: 10px; padding: 8px 0 22px; }
.kc-react-btn { min-width: 96px; border-radius: 999px; }
.kc-react-btn.active { background: var(--kc-primary); color: #fff; border-color: var(--kc-primary); }
.kc-post-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-top: 1px solid var(--kc-line); border-bottom: 1px solid var(--kc-line); padding: 10px 0; }
.kc-post-actions .btn { --bs-btn-padding-y: .25rem; --bs-btn-padding-x: .6rem; --bs-btn-font-size: .85rem; }
.kc-prevnext { list-style: none; padding: 0; margin: 16px 0; border-top: 1px solid var(--kc-line); font-size: 14px; }
.kc-prevnext li { display: flex; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--kc-line); }
.kc-prevnext li > span { color: var(--kc-muted); white-space: nowrap; width: 56px; }
.kc-prevnext li > a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-blind { background: var(--kc-soft); border-radius: 8px; padding: 24px; text-align: center; color: var(--kc-muted); }

/* comments */
.kc-comments { margin-top: 28px; }
.kc-comments-title { font-size: 1.05rem; font-weight: 700; margin-bottom: 10px; }
.kc-comment { border-bottom: 1px solid var(--kc-line); padding: 14px 4px; display: flex; gap: 10px; }
.kc-comment.is-reply { padding-left: 36px; background: #fbfbfc; }
.kc-comment.is-best { background: #fff8e6; }
.kc-comment-photo { flex: 0 0 36px; }
.kc-comment-photo img, .kc-comment-photo .kc-avatar { width: 36px; height: 36px; }
.kc-comment-main { flex: 1; min-width: 0; }
.kc-comment-head { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 13px; color: var(--kc-muted); margin-bottom: 4px; }
.kc-comment-head .kc-name { color: var(--kc-text); font-weight: 600; }
.kc-comment-body { font-size: 14px; line-height: 1.65; }
.kc-comment-tools { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 6px; font-size: 13px; }
.kc-comment-tools button, .kc-comment-tools a { background: none; border: 0; padding: 0; color: var(--kc-muted); font-size: 13px; }
.kc-comment-tools button.active { color: var(--kc-primary); font-weight: 600; }
.kc-comment-form { border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 12px; margin-top: 14px; background: #fff; }
.kc-comment-form textarea { resize: vertical; }

/* forms */
.kc-form-card { max-width: 720px; margin: 0 auto; }
.kc-form-narrow { max-width: 420px; margin: 0 auto; }
.kc-form-row { display: grid; grid-template-columns: 170px 1fr; gap: 6px 16px; padding: 12px 0; border-bottom: 1px solid var(--kc-line); align-items: start; }
.kc-form-row > label, .kc-form-row > .kc-label { font-weight: 600; padding-top: 7px; font-size: 14px; }
.kc-form-row .form-text { font-size: 12.5px; }
.kc-req { color: #e5484d; margin-left: 2px; }
@media (max-width: 575.98px) { .kc-form-row { grid-template-columns: 1fr; } .kc-form-row > label { padding-top: 0; } }
.kc-form-actions { display: flex; justify-content: center; gap: 8px; margin-top: 22px; }
.kc-terms { max-height: 220px; overflow: auto; border: 1px solid var(--kc-line); border-radius: 8px; padding: 14px; font-size: 13.5px; background: var(--kc-soft); }
.kc-steps { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0 0 22px; counter-reset: s; }
.kc-steps li { flex: 1; text-align: center; font-size: 13px; color: var(--kc-muted); padding: 10px 4px; border-bottom: 3px solid var(--kc-line); }
.kc-steps li.active { color: var(--kc-primary); border-color: var(--kc-primary); font-weight: 700; }
.kc-captcha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.kc-captcha img { border: 1px solid var(--kc-line); border-radius: 6px; height: 44px; }
.kc-captcha input { width: 130px; }
.kc-check-msg { font-size: 12.5px; margin-top: 4px; }
.kc-check-msg.ok { color: #12805c; }
.kc-check-msg.bad { color: #d6363b; }
.kc-file-row { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.kc-file-row .form-control { flex: 1; min-width: 200px; }

/* mypage */
.kc-mypage-nav { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--kc-line); margin-bottom: 20px; }
.kc-mypage-nav a { padding: 10px 14px; color: var(--kc-muted); font-weight: 600; font-size: 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.kc-mypage-nav a.active { color: var(--kc-primary); border-color: var(--kc-primary); }
.kc-mypage-nav a:hover { text-decoration: none; color: var(--kc-primary); }
.kc-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 20px; }
.kc-stat { border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 14px; }
.kc-stat span { display: block; font-size: 13px; color: var(--kc-muted); }
.kc-stat b { font-size: 1.3rem; }
.kc-table { width: 100%; font-size: 14px; border-top: 2px solid var(--kc-text); }
.kc-table th { background: var(--kc-soft); font-weight: 600; padding: 9px 8px; border-bottom: 1px solid var(--kc-line); white-space: nowrap; }
.kc-table td { padding: 10px 8px; border-bottom: 1px solid var(--kc-line); vertical-align: middle; }
.kc-table .num { text-align: right; white-space: nowrap; }
.kc-plus { color: #1f5eff; }
.kc-minus { color: #d6363b; }

/* faq */
.kc-faq .accordion-button { font-weight: 600; }
.kc-faq .accordion-button::before { content: "Q"; color: var(--kc-primary); font-weight: 800; margin-right: 10px; }
.kc-faq .accordion-body { background: var(--kc-soft); }

/* popups */
.kc-popup { position: fixed; z-index: 1060; background: #fff; border: 1px solid #ccd; box-shadow: 0 12px 32px rgba(0, 0, 0, .18); max-width: calc(100vw - 20px); max-height: calc(100vh - 20px); display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; }
.kc-popup.is-center { left: 50%; top: 50%; transform: translate(-50%, -50%); }
.kc-popup-body { overflow: auto; padding: 0; }
.kc-popup-body img { max-width: 100%; height: auto; display: block; }
.kc-popup-foot { display: flex; justify-content: space-between; background: #222; }
.kc-popup-foot .btn-link { color: #fff; font-size: 13px; text-decoration: none; }
@media (max-width: 575.98px) { .kc-popup { left: 10px !important; top: 80px !important; right: 10px; width: auto !important; } .kc-popup.is-center { transform: none; } }

/* shop */
.kc-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 22px; }
.kc-item-card { color: var(--kc-text); display: block; }
.kc-item-card:hover { text-decoration: none; }
.kc-item-card .kc-thumb { aspect-ratio: 1/1; }
.kc-item-card h3 { font-size: 15px; font-weight: 600; margin: 10px 0 4px; }
.kc-price { font-weight: 800; font-size: 1.05rem; }
.kc-list-price { color: var(--kc-muted); text-decoration: line-through; font-size: 13px; margin-left: 6px; }
.kc-item-flags .badge { font-weight: 600; margin-right: 3px; }
.kc-item-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; margin-bottom: 32px; }
@media (max-width: 767.98px) { .kc-item-detail { grid-template-columns: 1fr; } }
.kc-item-images .kc-thumb { aspect-ratio: 1/1; border-radius: 12px; }
.kc-item-images .kc-thumbs { display: flex; gap: 8px; margin-top: 8px; }
.kc-item-images .kc-thumbs img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; cursor: pointer; border: 1px solid var(--kc-line); }
.kc-total { font-size: 1.3rem; font-weight: 800; color: var(--kc-primary); }
.kc-stars { color: #f5a623; letter-spacing: 1px; }

/* footer */
.kc-footer { background: #1f2430; color: #aab1bd; font-size: 13px; padding: 28px 0 36px; }
.kc-footer a { color: #e2e6ec; }
.kc-footer-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 12px; }
.kc-company { margin: 0 0 8px; line-height: 1.8; }
.kc-company span { margin-right: 14px; display: inline-block; }
.kc-copy { margin: 0; color: #7d8592; }

@media (max-width: 991.98px) {
  :root { --kc-header-h: 56px; }
  .kc-main { padding-top: 18px; }
  .kc-page-title { font-size: 1.3rem; }
  .kc-hero { padding: 28px 20px; }
}
@media print {
  .kc-header, .kc-footer, .kc-sidebar, .kc-post-actions, .kc-comments, .kc-reactions, .kc-prevnext, .kc-popup, .kc-list-wrap { display: none !important; }
}

/* header container: 1320px wide, 15px gutters */
.kc-header .container { max-width: 1320px; width: 100%; padding-left: 15px; padding-right: 15px; }
.kc-header-main { justify-content: space-between; }
.kc-header-main .kc-logo { float: none; display: block; height: 50px; padding-top: 15px; }
.kc-header-main .kc-logo img { max-height: 50px; vertical-align: top; }
@media (max-width: 991.98px) {
  .kc-header-main { height: 50px; }
  .kc-header-tools .kc-icon-btn { height: 50px; line-height: 50px; padding: 0 8px; }
}

/* body, footer and header-search containers: same 1320px width and 15px gutters as the header */
.kc-main.container, .kc-footer .container, .kc-search-bar .container { max-width: 1320px; width: 100%; padding-left: 15px; padding-right: 15px; }

/* PC: logo left; menu + search pushed to the right edge (the empty tools box must not take half of the free space) */
@media (min-width: 992px) {
  .kc-header-main .kc-header-tools { margin-left: 0; display: none; }
  .kc-header-main .kc-gnb { margin-left: auto; }
  .kc-header-main .kc-header-search { margin-left: 4px; }
}


/* write form: attachment list + drag-and-drop zone */
.kc-hint-inline { font-size: .8125rem; color: var(--kc-muted); }
.file-list { display: flex; flex-direction: column; gap: .5rem; }
.file-list:empty { display: none; }
.file-item { display: flex; align-items: center; gap: .625rem; flex-wrap: wrap; padding: .5rem .75rem; border: 1px solid var(--kc-line); border-radius: 6px; background: #fff; }
.file-item.is-deleted { opacity: .45; text-decoration: line-through; }
.file-item .file-name { flex: 1 1 10rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; font-weight: 500; }
.file-item .file-size { flex: none; font-size: .75rem; color: var(--kc-muted); }
.file-item .file-remove { flex: none; display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .5rem; border: 0; border-radius: .375rem; background: transparent; color: var(--kc-muted); font: inherit; font-size: .8125rem; cursor: pointer; }
.file-item .file-remove:hover { background: var(--kc-soft); color: #dc3545; }
.file-dropzone { margin-top: .5rem; }
.file-dropzone-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 1.5rem 1rem; text-align: center; border: 1.5px dashed var(--kc-line); border-radius: 6px; cursor: pointer; transition: border-color .15s, background-color .15s; }
.file-dropzone-inner:hover, .file-dropzone-inner:focus-visible, .file-dropzone-inner.is-drag-over { border-color: var(--kc-primary); background: var(--kc-soft); outline: 0; }
.file-dropzone-inner.is-full { opacity: .5; cursor: not-allowed; }
.file-dropzone-inner svg { color: var(--kc-muted); }
.file-dropzone-text { font-size: .875rem; margin: 0; }
.file-dropzone-hint { font-size: .75rem; color: var(--kc-muted); margin: 0; }
.file-item .file-caption { flex: 1 1 12rem; min-width: 0; max-width: 18rem; }

/* input + "중복확인" button row */
.kc-check-row { display: flex; gap: .5rem; align-items: stretch; }
.kc-check-row .form-control { flex: 1 1 auto; min-width: 0; }

/* 이름 클릭 메뉴 (사이드뷰) — ciboard #nameContextMenu 와 같은 검은 상자 */
.kc-sv-menu { background: #000; color: #fff; padding: 4px 8px 6px; min-width: 0; width: max-content; border: 0; border-radius: 0; z-index: 10000; font-size: 12px; --bs-dropdown-min-width: 0; }
.kc-sv-menu { margin-left: 14px; }
.kc-sv-menu li { list-style: none; }
.kc-sv-menu .kc-sv-id { color: #fff; font-size: 12px; line-height: 20px; white-space: nowrap; }
.kc-sv-menu a { color: #fff; font-size: 12px; line-height: 20px; display: block; white-space: nowrap; text-decoration: none; background: transparent; padding: 0; }
.kc-sv-menu a:hover, .kc-sv-menu a:focus { color: #ff0000; background: transparent; }

/* font: clien.net 과 같은 글꼴 (Roboto + Noto Sans KR, 본문 400 · 제목 500) */
html, body { font-family: "Roboto", "Noto Sans KR", 나눔고딕, "Nanum Gothic", "Malgun Gothic", 맑은고딕, 굴림, 돋움, "Dotum", sans-serif; font-weight: 400; }
h1, h2, h3, h4 { font-weight: 500; }
pre { font-family: "Roboto", "Noto Sans KR", 나눔고딕, "Nanum Gothic", "Malgun Gothic", 맑은고딕, 굴림, 돋움, "Dotum", sans-serif; }

/* board list: clien.net 'content_list' CSS (clien-main.css 의 규칙을 그대로 가져와 .kc-clien-list 안에서만 적용) */
.kc-board-head .kc-page-title { font-size: 1.75rem; font-weight: 500; letter-spacing: -.5px; margin: 0; }
.kc-board-head { margin-bottom: 6px; padding: .5em 0; align-items: center; }
.kc-clien-list { position: relative; width: 100%; font-size: 12px; line-height: 1; color: #111; font-weight: 400; }
.kc-clien-list .list_manage { padding: 0 0 .5em; font-size: 12px; color: #666; }
.kc-clien-list .list_content { position: relative; display: block; width: 100%; background-color: #F1F1F1; border-top: 1px solid #E2E2E2; }
.kc-clien-list .list_item { position: relative; display: flex; align-items: center; width: 100%; height: 3.083em; border-bottom: 1px solid #E2E2E2; border-left: 1px solid #E2E2E2; border-right: 1px solid #E2E2E2; background-color: #FFF; }
.kc-clien-list .list_item.notice { background-color: #FAFAFA; }
.kc-clien-list .list_item.notice .list_title { font-weight: 500; }
.kc-clien-list .list_item.is-current { background-color: #FFFBE6; }
.kc-clien-list .list_item .list_chk { display: flex; align-items: center; width: 2.5em; justify-content: center; border-left: 0px solid #E2E2E2; }
.kc-clien-list .list_item .list_symph, .kc-clien-list .list_item .list_title, .kc-clien-list .list_item .list_author, .kc-clien-list .list_item .list_hit, .kc-clien-list .list_item .list_time { display: flex; align-items: center; }
.kc-clien-list .list_item .list_symph, .kc-clien-list .list_item .list_symph_not { justify-content: center; height: 3em; color: transparent; border-left: 2px solid #E2E2E2; }
.kc-clien-list .list_item .list_symph { min-width: 3.333em; }
.kc-clien-list .list_item .list_symph > span, .kc-clien-list .list_item .list_symph_not > span { display: flex; align-items: center; justify-content: center; height: 1.273em; line-height: 1; font-size: 0.917em; padding: 0.091em 0.455em 0; border-radius: 0.33em; }
.kc-clien-list .list_item.notice .list_symph { color: #6875AD; border-left-color: #E6EFF6; }
.kc-clien-list .view_symph.lSymph01 { border-left-color: #F1F1F1; }
.kc-clien-list .view_symph.lSymph01 span { background-color: #FAFAFA; color: #CCC; }
.kc-clien-list .view_symph.lSymph02 { border-left-color: #E6EFF6; }
.kc-clien-list .view_symph.lSymph02 span { background-color: #E6EFF6; color: #000; }
.kc-clien-list .view_symph.lSymph03 { border-left-color: #CCDFED; }
.kc-clien-list .view_symph.lSymph03 span { background-color: #CCDFED; color: #000; }
.kc-clien-list .view_symph.lSymph04 { border-left-color: #AFCAE2; }
.kc-clien-list .view_symph.lSymph04 span { background-color: #AFCAE2; color: #FFF; }
.kc-clien-list .view_symph.lSymph05 { border-left-color: #7195B5; }
.kc-clien-list .view_symph.lSymph05 span { background-color: #7195B5; color: #FFF; }
.kc-clien-list .view_symph.lSymph06 { border-left-color: #527492; }
.kc-clien-list .view_symph.lSymph06 span { background-color: #527492; color: #FFF; }
.kc-clien-list .list_item .list_title { flex: 1 1 auto; min-width: 0; overflow: hidden; padding: 0 0.833em 0 0.417em; }
.kc-clien-list .list_item .list_title .list_subject { display: inline-block; position: relative; max-width: 32.857em; font-size: 1.166666em; line-height: 1.286em; word-break: break-all; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; margin: 0 0.357em 0 0; color: #111; font-weight: inherit; text-decoration: none; }
.kc-clien-list .list_item .list_title .list_subject:visited { text-decoration: none; color: #999; }
.kc-clien-list .list_item .list_title .list_subject:hover { color: #D43F3A; }
.kc-clien-list .list_item .list_title .kc-cat { color: #666; font-size: 0.857em; margin: 0 0.833em 0 0; padding: 0 0.25em; border-radius: 0.33em; border: 1px solid rgba(0, 0, 0, 0.05); line-height: 1.417em; }
.kc-clien-list .list_item .list_title .kc-ico { color: #999; font-size: 1.167em; margin: 0 0.357em 0 0; }
.kc-clien-list .list_item .list_title .list_reply { position: relative; top: 0.091em; font-size: 0.917em; color: #F7683A; padding: 0; font-weight: 400; }
.kc-clien-list .list_item .list_title .list_reply { display: inline-block; height: 1.636em; line-height: 1.545em; padding: 0 0.364em; border-radius: 0.33em; border: 1px solid rgba(0, 0, 0, 0.05); background-color: #FAFAFA; }
.kc-clien-list .list_item .list_author { position: relative; justify-content: center; }
.kc-clien-list .list_item .list_author .nickname { display: flex; align-items: center; justify-content: center; width: 7.917em; height: 1.333em; min-height: 16px; font-weight: 500; line-height: 1.333em; text-overflow: ellipsis; white-space: nowrap; border-left: 1px solid #E2E2E2; }
.kc-clien-list .list_item .list_hit, .kc-clien-list .list_item .list_time { text-align: center; color: #666; }
.kc-clien-list .list_item .list_hit .hit, .kc-clien-list .list_item .list_hit .time, .kc-clien-list .list_item .list_time .hit, .kc-clien-list .list_item .list_time .time { display: block; position: relative; width: 5.455em; font-size: 0.917em; line-height: 1.545em; height: 1.455em; border-left: 1px solid #E2E2E2; }
.kc-clien-list .list_item .list_hit .time, .kc-clien-list .list_item .list_time .time { color: #333; }
.kc-clien-list .list_item .list_time .time { width: 8.5em; }
.kc-clien-list .kc-badge { font-size: 0.917em; }
.kc-list-mobile { border-top: 0; }
.kc-list-mobile li { padding: 10px 4px; border-bottom: 1px solid #e2e2e2; }
.kc-list-mobile li a { color: #111; text-decoration: none; }
.kc-list-mobile li a:visited { color: #999; }
.kc-list-mobile .kc-cmt { color: #f7683a; font-size: 12px; font-weight: 500; margin-left: 5px; }
@media (max-width: 767.98px) { .kc-clien-list .list_item .list_hit, .kc-clien-list .list_item .list_author { display: none; } .kc-clien-list .list_item .list_time .time { width: auto; padding: 0 0.833em; white-space: nowrap; } }

/* pager: clien.net 'board-pagination / board-nav-area' CSS (clien-main.css 규칙을 그대로) */
.board-pagination { position: relative; top: -1px; display: flex; justify-content: center; font-weight: 500; font-size: 12px; line-height: 1; margin-top: 18px; }
.board-pagination .board-nav { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }
.board-pagination .board-nav .board-nav-area { display: flex; border-radius: 0.33em; overflow: hidden; }
.board-pagination .board-nav a { text-decoration: none; color: #333; }
.board-pagination .board-nav .board-nav-area .board-nav-page:first-child { border-bottom-left-radius: 0.33em; border-top-left-radius: 0.33em; }
.board-pagination .board-nav .board-nav-area .board-nav-page:last-child { border-top-right-radius: 0.33em; border-bottom-right-radius: 0.33em; border: 1px solid #E2E2E2; }
.board-pagination .board-nav .board-nav-area .board-nav-page:last-child.active { border: 1px solid #37475A; }
.board-pagination .board-nav .board-nav-area .board-nav-page:last-child.active:hover { background-color: #333; border: 1px solid #333; }
.board-pagination .board-nav .board-nav-first, .board-pagination .board-nav .board-nav-prev, .board-pagination .board-nav .board-nav-page, .board-pagination .board-nav .board-nav-next { display: flex; align-items: center; justify-content: center; padding: 0 0.417em; margin-top: 0.833em; min-height: 2.667em; line-height: 2.5em; }
.board-pagination .board-nav .board-nav-first { color: #666; }
.board-pagination .board-nav .board-nav-first:before { content: "\f100"; position: relative; top: -0.071em; font-family: "FontAwesome"; padding: 0 0.357em 0 0; font-size: 1.167em; }
.board-pagination .board-nav .board-nav-first:hover, .board-pagination .board-nav .board-nav-first:focus { outline: none; color: #D43F3A; }
.board-pagination .board-nav .board-nav-prev { padding: 0 0.833em; }
.board-pagination .board-nav .board-nav-prev:before { content: "\f0d9"; position: relative; top: -0.071em; font-family: "FontAwesome"; font-size: 1.167em; }
.board-pagination .board-nav .board-nav-prev:after { content: ""; position: relative; right: 1.17em; height: 2.33em; border-left: 1px solid #E2E2E2; }
.board-pagination .board-nav .board-nav-prev.ten { padding: 0 0.417em; }
.board-pagination .board-nav .board-nav-prev.ten:after { border-left: 0; }
.board-pagination .board-nav .board-nav-prev.ten:before { content: "\f104"; padding: 0 0.357em 0 0; }
.board-pagination .board-nav .board-nav-prev:hover, .board-pagination .board-nav .board-nav-prev:focus { outline: none; color: #D43F3A; }
.board-pagination .board-nav .board-nav-page { z-index: 1; min-width: 2.667em; border: 1px solid #E2E2E2; border-right-width: 0; margin-right: 0; background-color: #FFF; }
.board-pagination .board-nav .board-nav-page.last { border: 1px solid #E2E2E2; }
.board-pagination .board-nav .board-nav-page.active { color: #FFF; border: 1px solid #37475A; border-right-width: 0; background-color: #37475A; }
.board-pagination .board-nav .board-nav-page.active:hover, .board-pagination .board-nav .board-nav-page.active:focus { outline: none; background-color: #333; border: 1px solid #333; border-right: 0; }
.board-pagination .board-nav .board-nav-page:hover, .board-pagination .board-nav .board-nav-page:focus { outline: none; background-color: #E2E2E2; }
.board-pagination .board-nav .board-nav-next { padding: 0 0.833em; }
.board-pagination .board-nav .board-nav-next:after { content: "\f0da"; position: relative; top: -0.071em; font-family: "FontAwesome"; font-size: 1.167em; }
.board-pagination .board-nav .board-nav-next:before { content: ""; position: relative; right: -1.17em; height: 2.33em; border-right: 1px solid #E2E2E2; }
.board-pagination .board-nav .board-nav-next.ten { padding: 0 0.417em; }
.board-pagination .board-nav .board-nav-next.ten:after { content: "\f105"; padding: 0 0 0 0.357em; }
.board-pagination .board-nav .board-nav-next.ten:before { border-right: 0; }
.board-pagination .board-nav .board-nav-next:hover, .board-pagination .board-nav .board-nav-next:focus { outline: none; color: #D43F3A; }

/* write button: clien.net 'button_post' (clien-main.css 의 .list_button_area .button_post 규칙) */
.kc-pager-wrap .button_post { width: 8em; height: 2.667em; font-size: 12px; line-height: 1; color: #FFF; margin-top: 0.833em; border-radius: 0.33em; background-color: #37475A; }
.kc-pager-wrap .button_post .action_icon { display: flex; align-items: center; height: 2.667em; color: #FFF; line-height: 2.667em; border-radius: 0.33em; text-decoration: none; cursor: pointer; }
.kc-pager-wrap .button_post .action_icon:hover { color: #FFF; }
.kc-pager-wrap .button_post .action_icon:focus { outline: none; background-color: #516B82; }
.kc-pager-wrap .button_post .button_icon { width: 33px; font-size: 1.167em; line-height: 1; padding: 0.643em 0; text-align: center; border-right: 1px solid rgba(255, 255, 255, 0.1); box-sizing: border-box; }
.kc-pager-wrap .button_post .button_name { display: inline-block; width: 5.167em; text-align: center; }

/* clien button_command 스타일 (관리자 버튼) */
.kc-list-foot .button_command { display: inline-block; width: 75px; height: 2.667em; padding: 0; margin-top: .833em; font-size: 12px; line-height: 2.667em; color: #666; text-align: center; text-decoration: none; cursor: pointer; border: 0; border-radius: .33em; background-color: #FFF; box-shadow: 0 0 0 1px rgba(0,0,0,0.1) inset; box-sizing: border-box; }
.kc-list-foot .button_command:hover { color: #666; box-shadow: 0 0 0 1px rgba(0,0,0,0.15) inset; }
.kc-list-foot .button_command:focus { outline: none; background-color: #F1F1F1; }
.kc-list-foot .kc-mgr-btns select { margin-top: .833em; }
.kc-list-foot #kc-move-target { font-size: 12px; }

/* ---- clien content_view 스타일 글보기 ---- */
.kc-clien-view { font-size: 12px; }
.kc-clien-view .kc-post-head { border-top: 0; border-bottom: 0; padding: 0; }
.kc-clien-view .kc-post-title { display: block; font-size: 1.83333em; line-height: 1.7; font-weight: 400; letter-spacing: 0; word-break: break-all; margin: 0; padding: 0.42em 0 0.9em; }
.kc-clien-view .kc-post-meta { display: block; gap: 0; font-size: 1em; color: #666; padding: 0 0 1.25em; border-bottom: 1px solid #516B82; }
.kc-clien-view .kc-post-meta > span { display: inline-block; padding: 0 0.42em 0 0; margin: 0 0.67em 0 0; border-right: 1px solid #E2E2E2; }
.kc-clien-view .kc-post-meta > span:last-child { padding: 0; margin: 0; border-right: 0; }
.kc-clien-view .kc-post-meta .kc-name { color: #333; font-weight: 400; }
.kc-clien-view .kc-post-files, .kc-clien-view .kc-post-links { margin-top: 1em; padding: 0.583em 0.833em 0.417em; border: 1px solid rgba(0,0,0,0.05); border-radius: 0.33em; background-color: #FFF9E5; font-size: 1em; }
.kc-clien-view .kc-post-body { margin-top: 1em; padding: 2.5em 1.25em; min-height: 160px; font-size: 13px; line-height: 1.6; word-break: break-all; border: 1px solid #E2E2E2; border-radius: 0 0 0.33em 0.33em; }
.kc-clien-view .kc-post-tags { padding: 1em 0 0; }
.kc-clien-view .kc-reactions { display: flex; justify-content: center; gap: 2px; padding: 1.25em 0 0; }
.kc-clien-view .kc-post-actions { justify-content: center; gap: 2px 1em; border-top: 0; border-bottom: 1px solid #E2E2E2; padding: 1.25em 0 2.5em; }
.kc-clien-view .kc-post-actions .btn, .kc-clien-view .kc-reactions .btn { --bs-btn-padding-y: 0.75em; --bs-btn-padding-x: 0.833em; --bs-btn-font-size: 1em; --bs-btn-border-radius: 0.33em; font-size: 12px; line-height: 1.2; color: #FFF; margin: 0 1px; border: 1px solid #516B82; background-color: #516B82; }
.kc-clien-view .kc-post-actions .btn:hover, .kc-clien-view .kc-reactions .btn:hover { color: #FFF; background-color: #435A6E; border-color: #435A6E; }
.kc-clien-view .kc-post-actions .btn:focus, .kc-clien-view .kc-reactions .btn:focus { outline: none; border-color: rgba(0,0,0,0.3); box-shadow: none; }
.kc-clien-view .kc-post-actions .btn-outline-danger { border-color: #D7625E; background-color: #D7625E; }
.kc-clien-view .kc-post-actions .btn-outline-danger:hover { background-color: #C4524E; border-color: #C4524E; }
.kc-clien-view .kc-reactions .btn.active, .kc-clien-view .kc-post-actions .btn.active { color: #FFF; background-color: #F7683A; border-color: #F7683A; }
@media (max-width: 767.98px) { .kc-clien-view .kc-post-body { padding: 1.5em 0.833em; } .kc-clien-view .kc-post-title { font-size: 1.5em; } }
.kc-clien-view .kc-post-actions .btn, .kc-clien-view .kc-reactions .btn { border-radius: 0.33em; font-weight: 400; }

/* 글쓰기 버튼을 페이저 우측으로 */
.kc-pager-wrap { position: relative; }
.kc-pager-wrap .button_post { position: absolute; right: 0; top: 8px; margin-top: 0; }
@media (max-width: 767.98px) { .kc-pager-wrap .button_post { position: static; margin: 0.833em auto 0; } }

/* clien button_next_page (다음페이지) */
.kc-pager-wrap .button_next_page { position: absolute; z-index: 2; left: 0; top: 8px; display: block; width: 8em; min-width: 8em; height: 2.667em; font-size: 12px; line-height: 1; color: #666; text-align: center; text-decoration: none; padding: 0.75em; margin-top: 0; border-radius: 0.33em; box-shadow: 0 0 0 1px rgba(0,0,0,0.1) inset; background-color: #FFF; box-sizing: border-box; cursor: pointer; }
.kc-pager-wrap .button_next_page:hover { color: #666; box-shadow: 0 0 0 1px rgba(0,0,0,0.15) inset; }
.kc-pager-wrap .button_next_page:focus { outline: none; background-color: #F1F1F1; }
.kc-pager-wrap .button_next_page .button_name { position: relative; top: -0.083em; }
.kc-pager-wrap .button_next_page .fa { font-size: 1.167em; margin: 0 0 0 0.357em; }
@media (max-width: 767.98px) { .kc-pager-wrap .button_next_page { position: static; margin: 0.833em auto 0; } }

/* clien post_info (작성자 바) + 작성자 메뉴 */
.kc-clien-view .kc-post-meta { border-bottom: 1px solid #516B82; }
.kc-clien-view .kc-post-meta strong { font-weight: 700; color: #333; }
.kc-clien-view .kc-post-info { display: flex; align-items: center; min-height: 3em; padding: 0.833em 1.25em; margin-top: 1em; background-color: #FAFAFA; border: 1px solid #E2E2E2; border-bottom: 0; }
.kc-clien-view .kc-post-info .kc-name { color: #78909C; font-weight: 700; text-decoration: none; }
.kc-clien-view .kc-post-info .kc-name::after, .kc-clien-view .kc-post-info .kc-name.dropdown-toggle::after { content: "님"; display: inline; margin: 0; vertical-align: baseline; font-weight: 400; border: 0; }
.kc-clien-view .kc-post-info .kc-sv-menu { background: #FFF; color: #666; min-width: 8.5em; margin-left: 0; padding: 0; font-size: 12px; border: 1px solid rgba(0,0,0,0.15); border-radius: 0.33em; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
.kc-clien-view .kc-post-info .kc-sv-menu li { border-bottom: 1px dotted #CCC; }
.kc-clien-view .kc-post-info .kc-sv-menu li:last-child { border-bottom: 0; }
.kc-clien-view .kc-post-info .kc-sv-menu li > a, .kc-clien-view .kc-post-info .kc-sv-menu li.kc-sv-id { display: block; padding: 0.75em 0.833em; color: #666; font-size: 12px; background: transparent; }
.kc-clien-view .kc-post-info .kc-sv-menu li.kc-sv-id { color: #000; font-weight: 500; }
.kc-clien-view .kc-post-info .kc-sv-menu li > a:hover { color: #D43F3A; background-color: #FAFAFA; }
.kc-clien-view .kc-post-info + .kc-post-files, .kc-clien-view .kc-post-info + .kc-post-links { margin-top: 0; }
.kc-clien-view .kc-post-head ~ .kc-post-body { margin-top: 0; border-top: 1px solid #E2E2E2; }

/* ---- clien 댓글 / 하단 버튼 ---- */
.kc-clien-comments { font-size: 12px; margin-top: 1.5em; }
.kc-clien-comments .kc-comments-title { font-size: 1em; font-weight: 400; color: #516B82; margin: 0 0 0.833em; padding: 0.833em 0 0; }
.kc-clien-comments .kc-comments-title .fa-comment { color: #516B82; margin-right: 0.25em; }
.kc-clien-comments .kc-comments-title strong { font-weight: 700; }
.kc-clien-comments .border-top { border-top: 0 !important; }
.kc-clien-comments .kc-comment { display: block; padding: 0; margin-bottom: 0.5em; border-bottom: 0; background: transparent; }
.kc-clien-comments .kc-comment.is-reply { background: transparent; }
.kc-clien-comments .kc-comment-photo { display: none; }
.kc-clien-comments .kc-comment-head { display: flex; flex-wrap: nowrap; align-items: center; gap: 0 0.5em; margin: 0; padding: 0.5em 0.833em; font-size: 12px; color: #666; background-color: #F1F1F1; }
.kc-clien-comments .kc-comment-head .kc-name { color: #333; font-weight: 500; text-decoration: none; }
.kc-clien-comments .kc-comment-head time { margin-left: auto; color: #666; padding-right: 0.5em; border-right: 1px solid #E2E2E2; }
.kc-clien-comments .kc-comment-head time:last-child { border-right: 0; padding-right: 0; }
.kc-clien-comments .kc-comment-tools { display: flex; gap: 0; margin: 0; font-size: 12px; }
.kc-clien-comments .kc-comment-tools > * { padding: 0 0.5em; border-left: 1px solid #E2E2E2; line-height: 1.2; }
.kc-clien-comments .kc-comment-tools > *:first-child { border-left: 0; }
.kc-clien-comments .kc-comment-tools button, .kc-clien-comments .kc-comment-tools a { color: #3B6FA3; font-size: 12px; text-decoration: none; }
.kc-clien-comments .kc-comment-tools [data-prompt] { color: #D43F3A; }
.kc-clien-comments .kc-comment-tools button:hover, .kc-clien-comments .kc-comment-tools a:hover { text-decoration: underline; }
.kc-clien-comments .kc-comment-body { padding: 0.75em 0.833em 1.25em; font-size: 13px; line-height: 1.6; word-break: break-all; }
.kc-clien-comments .kc-comment.is-best .kc-comment-head { background-color: #FAE3BF; }
.kc-clien-comments .kc-comment.is-best .kc-comment-body { background-color: #FFF8EB; }
.kc-clien-comments .kc-comment.is-best .badge { font-size: 11px; }
.kc-clien-comments .kc-comment-form { padding: 1.25em; margin-top: 1em; background-color: #E4E8EC; border: 0; border-radius: 0; }
.kc-clien-comments .kc-cm-box { display: flex; align-items: stretch; }
.kc-clien-comments .kc-cm-box textarea { flex: 1; min-height: 6.5em; margin: 0; font-size: 13px; border: 1px solid #37475A; border-right: 0; border-radius: 0.33em 0 0 0.33em; resize: vertical; }
.kc-clien-comments .kc-cm-box textarea:focus { box-shadow: none; border-color: #37475A; }
.kc-clien-comments .kc-cm-submit { width: 9.5em; flex: none; font-size: 12px; font-weight: 700; color: #FFF; background-color: #37475A; border: 1px solid #37475A; border-radius: 0 0.33em 0.33em 0; cursor: pointer; }
.kc-clien-comments .kc-cm-submit:hover { background-color: #516B82; }
.kc-clien-comments .kc-comment-form > .d-flex:last-child { margin-top: 0.5em; }
.kc-view-foot { display: flex; justify-content: space-between; margin: 1.5em 0 0; }
.kc-view-foot .button_post { width: 8em; height: 2.667em; font-size: 12px; line-height: 1; color: #FFF; border-radius: 0.33em; background-color: #37475A; }
.kc-view-foot .button_post.button_list { background-color: #999; }
.kc-view-foot .button_post .action_icon { display: flex; align-items: center; height: 2.667em; color: #FFF; line-height: 2.667em; border-radius: 0.33em; text-decoration: none; }
.kc-view-foot .button_post .button_icon { width: 33px; font-size: 1.167em; line-height: 1; padding: 0.643em 0; text-align: center; border-right: 1px solid rgba(255, 255, 255, 0.1); box-sizing: border-box; }
.kc-view-foot .button_post .button_name { display: inline-block; width: 5.167em; text-align: center; }
@media (max-width: 767.98px) { .kc-clien-comments .kc-comment-head { flex-wrap: wrap; } .kc-clien-comments .kc-cm-submit { width: 6em; } }
.kc-clien-comments .kc-comment-form > .mb-2:has(.kc-comment-cancel.d-none) { display: none !important; }

/* ---- solution.eworks.kr 'site-header' 스타일 헤더 ---- */
.kc-sol-header { --sol-fg: #09090B; --sol-muted: #71717A; --sol-border: #E4E4E7; --sol-soft: #F4F4F5; --sol-brand: #5E6AD2;
  background: rgba(255, 255, 255, 0.84); -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid var(--sol-border); box-shadow: none; }
.kc-sol-header .kc-sol-main { display: flex; align-items: center; height: 68px; gap: 1.5rem; padding-left: 16px; padding-right: 16px; }
.kc-sol-header .kc-sol-brand { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; text-decoration: none; color: var(--sol-fg); }
.kc-sol-header .kc-sol-brand:hover { color: var(--sol-fg); text-decoration: none; }
.kc-sol-header .kc-sol-brand .mark { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--sol-brand); color: #FFF; font-weight: 700; font-size: 16px; line-height: 1; }
.kc-sol-header .kc-sol-brand .wordmark { font-size: 22px; font-weight: 600; letter-spacing: -0.4px; color: var(--sol-fg); line-height: 1; white-space: nowrap; }
.kc-sol-header .kc-sol-gnb { flex: 1 1 auto; min-width: 0; margin: 0; }
.kc-sol-header .gnb-1d { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.kc-sol-header .gnb-1li { position: relative; }
.kc-sol-header .gnb-1a { display: block; padding: 8px 13px; border-radius: 8px; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--sol-muted); white-space: nowrap; text-decoration: none; transition: background-color .16s cubic-bezier(.4,0,.2,1), color .16s cubic-bezier(.4,0,.2,1); }
.kc-sol-header .gnb-1li:hover > .gnb-1a { color: var(--sol-fg); background: var(--sol-soft); }
.kc-sol-header .gnb-1li.is-active > .gnb-1a { color: var(--sol-fg); font-weight: 600; }
.kc-sol-header .gnb-2d { position: absolute; top: 100%; left: -14px; z-index: 50; min-width: 208px; padding: 10px; margin: 8px 0 0; list-style: none; background: #FFF; border: 1px solid var(--sol-border); border-radius: 12px; box-shadow: 0 10px 30px rgb(0 0 0 / .08); opacity: 0; visibility: hidden; transform: translateY(-2px); transition: opacity .16s cubic-bezier(.4,0,.2,1), transform .16s cubic-bezier(.4,0,.2,1), visibility .16s; }
.kc-sol-header .gnb-2d::before { content: ""; position: absolute; left: 0; right: 0; top: -9px; height: 9px; }
.kc-sol-header .gnb-1li:hover > .gnb-2d, .kc-sol-header .gnb-1li:focus-within > .gnb-2d { opacity: 1; visibility: visible; transform: translateY(0); }
.kc-sol-header .gnb-2d a { display: block; padding: 10px 12px; font-size: 14px; color: var(--sol-muted); border-radius: 8px; text-decoration: none; }
.kc-sol-header .gnb-2d a:hover, .kc-sol-header .gnb-2d a:focus { background: var(--sol-soft); color: var(--sol-fg); }
.kc-sol-header .hd-tools { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; margin-left: auto; height: 35px; }
.kc-sol-header .hd-search { display: flex; align-items: center; gap: 9px; height: 35px; padding: 0 14px; background: #FFF; color: var(--sol-muted); border: 1px solid var(--sol-border); border-radius: 8px; font-size: 14px; cursor: pointer; transition: border-color .16s cubic-bezier(.4,0,.2,1); }
.kc-sol-header .hd-search:hover, .kc-sol-header .hd-search:focus-visible { border-color: #A1A1AA; color: var(--sol-muted); }
.kc-sol-header .hd-user { align-items: center; gap: 10px; list-style: none; margin: 0; padding: 0; }
.kc-sol-header .hd-user .btn.btn-sm { display: inline-flex; align-items: center; gap: 8px; height: 35px; padding: 0 14px; font-size: 12px; font-weight: 500; line-height: 1; color: var(--sol-fg); background: #FFF; border: 1px solid var(--sol-border); border-radius: 12px; white-space: nowrap; }
.kc-sol-header .hd-user .btn.btn-sm:hover { background: var(--sol-soft); border-color: var(--sol-border); color: var(--sol-fg); }
.kc-sol-header .hd-user .btn.btn-sm i { font-size: 13px; }
.kc-sol-header .hd-badge { display: inline-block; min-width: 16px; padding: 2px 5px; font-size: 10px; font-weight: 700; line-height: 1.2; text-align: center; color: #FFF; background: #E5484D; border-radius: 999px; }
.kc-sol-header .hd-user a[title="현재접속자"] .hd-badge { color: var(--sol-fg); background: var(--sol-soft); }
.kc-sol-header .mhd-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 35px; padding: 0; color: var(--sol-muted); background: #FFF; border: 1px solid var(--sol-border); border-radius: 8px; cursor: pointer; }
.kc-sol-header .mhd-btn:hover { color: var(--sol-fg); }
.kc-sol-header .mhd-btn .kc-dot { top: 5px; right: 5px; }
@media (max-width: 991.98px) { .kc-sol-header .kc-sol-main { height: 56px; gap: 4px; } .kc-sol-header .kc-sol-brand { margin-right: auto; } .kc-sol-header .kc-sol-brand .wordmark { font-size: 19px; } .kc-sol-header .hd-search { width: 35px; padding: 0; justify-content: center; } .kc-sol-header .hd-tools { gap: 6px; } }

/* ---- 테마 선택 (시스템 / 라이트 / 다크) ---- */
.theme-group { --tg-bg: #F4F4F5; --tg-border: #E4E4E7; --tg-active: #FFFFFF; --tg-fg: #09090B; --tg-muted: #71717A;
  display: flex; align-items: center; gap: 2px; padding: 3px; flex: 0 0 auto; height: 35px; background: var(--tg-bg); border: 1px solid var(--tg-border); border-radius: 12px; }
.theme-group .theme-opt { width: 32px; height: 27px; display: grid; place-items: center; padding: 0; background: none; border: 0; border-radius: 8px; color: var(--tg-muted); cursor: pointer; transition: background-color .16s cubic-bezier(.4,0,.2,1), color .16s cubic-bezier(.4,0,.2,1); }
.theme-group .theme-opt:hover { color: var(--tg-fg); }
.theme-group .theme-opt[aria-pressed="true"] { background: var(--tg-active); color: var(--tg-fg); }
.kc-mnav .theme-group { margin-bottom: 14px; align-self: flex-start; display: inline-flex; }

/* ---- 푸터: 하단 메뉴(kc-footer-links) 오른쪽의 현재접속자 버튼 ---- */
.kc-footer-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 12px; }
.kc-footer-top .kc-footer-links { margin-bottom: 0; }
.kc-footer-user { margin-left: auto; }
.kc-footer-user .btn.btn-sm { display: inline-flex; align-items: center; gap: 8px; height: 35px; padding: 0 14px; font-size: 12px; font-weight: 500; line-height: 1; color: #e2e6ec; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 12px; white-space: nowrap; }
.kc-footer-user .btn.btn-sm:hover { color: #fff; background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.28); }
.kc-footer-user .btn.btn-sm i { font-size: 13px; }
.kc-footer-user .hd-badge { display: inline-block; min-width: 16px; padding: 2px 5px; font-size: 10px; font-weight: 700; line-height: 1.2; text-align: center; color: #e2e6ec; background: rgba(255, 255, 255, 0.14); border-radius: 999px; }

/* ---- 전체 메뉴 (넓은 화면 전체 덮개; solution 'sol-menu-all') ---- */
.kc-menu-all { --ma-bg: #FFFFFF; --ma-card: #FFFFFF; --ma-border: #E4E4E7; --ma-fg: #09090B; --ma-muted: #71717A; --ma-soft: #F4F4F5; --ma-ring: #A1A1AA; --ma-brand: #5E6AD2;
  position: fixed; inset: 0; z-index: 1050; display: none; }
.kc-menu-all.is-open { display: block; }
.kc-menu-all .menu-all-panel { position: absolute; inset: 0; overflow-y: auto; background: var(--ma-bg); color: var(--ma-fg); opacity: 0; transition: opacity .2s cubic-bezier(.4,0,.2,1); }
.kc-menu-all.is-open .menu-all-panel { opacity: 1; }
.kc-menu-all .menu-all-top { display: flex; align-items: center; justify-content: space-between; max-width: 1248px; margin: 0 auto; padding: 20px 24px; border-bottom: 1px solid var(--ma-border); }
.kc-menu-all .kc-sol-brand { display: flex; align-items: center; gap: 10px; color: var(--ma-fg); }
.kc-menu-all .kc-sol-brand .mark { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--ma-brand); color: #FFF; font-weight: 700; font-size: 16px; line-height: 1; }
.kc-menu-all .kc-sol-brand .wordmark { font-size: 22px; font-weight: 600; letter-spacing: -0.4px; line-height: 1; }
.kc-menu-all .menu-all-close { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; padding: 0; background: none; border: 0; color: var(--ma-muted); border-radius: 8px; cursor: pointer; transition: background-color .16s cubic-bezier(.4,0,.2,1), color .16s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1); }
.kc-menu-all .menu-all-close:hover { background: var(--ma-soft); color: var(--ma-fg); transform: rotate(90deg); }
.kc-menu-all .menu-all-grid { max-width: 1248px; margin: 0 auto; padding: 40px 24px 60px; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; counter-reset: menuall; }
.kc-menu-all .menu-all-card { position: relative; counter-increment: menuall; padding: 32px 18px 20px; background: var(--ma-card); border: 1px solid var(--ma-border); border-radius: 12px; transition: border-color .2s cubic-bezier(.4,0,.2,1), box-shadow .2s cubic-bezier(.4,0,.2,1), transform .2s cubic-bezier(.4,0,.2,1); }
.kc-menu-all .menu-all-card:hover { border-color: var(--ma-ring); box-shadow: 0 14px 32px rgb(0 0 0 / .08); transform: translateY(-4px); }
.kc-menu-all .menu-all-card::before { content: counter(menuall, decimal-leading-zero); position: absolute; top: 18px; right: 20px; font-size: 12px; font-weight: 700; color: var(--ma-border); letter-spacing: .05em; }
.kc-menu-all .menu-all-card-t { display: block; font-size: 17px; font-weight: 700; color: var(--ma-fg); padding-bottom: 12px; margin-bottom: 8px; border-bottom: 1px solid var(--ma-border); text-decoration: none; transition: color .2s cubic-bezier(.4,0,.2,1); }
.kc-menu-all .menu-all-card:hover .menu-all-card-t { color: var(--ma-brand); }
.kc-menu-all .menu-all-sub { display: flex; flex-direction: column; gap: 2px; list-style: none; margin: 0; padding: 0; }
.kc-menu-all .menu-all-sub a { display: block; padding: 8px 6px; border-radius: 8px; font-size: 13.5px; color: var(--ma-muted); text-decoration: none; }
.kc-menu-all .menu-all-sub a:hover, .kc-menu-all .menu-all-sub a:focus { background: var(--ma-soft); color: var(--ma-fg); }
.kc-menu-all .menu-all-foot { display: flex; gap: 8px; justify-content: flex-end; max-width: 1248px; margin: 0 auto; padding: 20px 24px 40px; border-top: 1px solid var(--ma-border); }
.kc-menu-all .menu-all-foot a { padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--ma-muted); text-decoration: none; }
.kc-menu-all .menu-all-foot a:hover, .kc-menu-all .menu-all-foot a:focus { background: var(--ma-soft); color: var(--ma-fg); }
body.kc-menu-all-open { overflow: hidden; }
@media (max-width: 991.98px) { .kc-menu-all { display: none !important; } }

/* ---- 검색 모달 (solution 'sol-search') ---- */
.kc-search-modal { font-size: 16px; line-height: 1.5; --sm-card: #FFFFFF; --sm-border: #E4E4E7; --sm-fg: #09090B; --sm-muted: #71717A; --sm-soft: #F4F4F5; --sm-ring: #A1A1AA; --sm-brand: #5E6AD2;
  position: fixed; inset: 0; z-index: 1100; display: none; }
.kc-search-modal.is-open { display: block; }
.kc-search-modal .modal-backdrop { position: absolute; inset: 0; background: #000; opacity: 0; width: auto; height: auto; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: opacity .16s cubic-bezier(.4,0,.2,1); }
.kc-search-modal.is-open .modal-backdrop { opacity: .6; }
.kc-search-modal .modal-panel { position: relative; margin: 13vh auto 0; max-width: 600px; width: calc(100% - 32px); max-height: 80vh; overflow-y: auto; background: var(--sm-card); color: var(--sm-fg); border: 1px solid var(--sm-border); border-radius: 16px; padding: 0; box-shadow: 0 20px 60px rgb(0 0 0 / .4); opacity: 0; transform: translateY(-4px); transition: opacity .16s cubic-bezier(.4,0,.2,1), transform .16s cubic-bezier(.4,0,.2,1); }
.kc-search-modal.is-open .modal-panel { opacity: 1; transform: translateY(0); }
.kc-search-modal .modal-field { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--sm-border); }
.kc-search-modal .modal-field > svg { flex: 0 0 auto; color: var(--sm-muted); }
.kc-search-modal .modal-field:focus-within > svg { color: var(--sm-brand); }
.kc-search-modal .modal-field input[type=text] { flex: 1 1 auto; min-width: 0; height: auto; padding: 0; border: 0; background: transparent; outline: 0; box-shadow: none; color: var(--sm-fg); font-size: 15px; font-weight: 500; line-height: 1.6; }
.kc-search-modal .modal-x { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: none; border: 0; color: var(--sm-muted); border-radius: 6px; cursor: pointer; transition: color .16s, background-color .16s; }
.kc-search-modal .modal-x:hover { color: var(--sm-fg); background: var(--sm-soft); }
.kc-search-modal .modal-adv { padding: 10px 20px; border-bottom: 1px solid var(--sm-border); }
.kc-search-modal .modal-adv-t { display: inline-flex; align-items: center; gap: 4px; padding: 0; background: none; border: 0; font-size: 12px; color: var(--sm-muted); cursor: pointer; }
.kc-search-modal .modal-adv-t:hover { color: var(--sm-fg); }
.kc-search-modal .modal-adv-caret { display: inline-block; transition: transform .16s cubic-bezier(.4,0,.2,1); }
.kc-search-modal .modal-adv.is-open .modal-adv-caret { transform: rotate(90deg); }
.kc-search-modal .modal-adv-body { margin-top: 10px; }
.kc-search-modal .modal-adv-body[hidden] { display: none; }
.kc-search-modal .modal-sec-t { margin-bottom: 6px; font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--sm-muted); }
.kc-search-modal .modal-adv-body .modal-chips + .modal-sec-t { margin-top: 12px; }
.kc-search-modal .modal-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.kc-search-modal .modal-chip { padding: 4px 10px; background: transparent; border: 1px solid var(--sm-border); border-radius: 6px; color: var(--sm-muted); font-size: 12px; font-weight: 400; line-height: 1.6; font-family: inherit; cursor: pointer; transition: background-color .16s, border-color .16s, color .16s; }
.kc-search-modal .modal-chip:hover { background: var(--sm-soft); color: var(--sm-fg); }
.kc-search-modal .modal-chip.on { background: var(--sm-brand); border-color: var(--sm-brand); color: #FFF; }
.kc-search-modal .modal-sec { padding: 10px 20px 14px; border-bottom: 1px solid var(--sm-border); }
.kc-search-modal .modal-sec[hidden] { display: none; }
.kc-search-modal .modal-sec ul { list-style: none; margin: 0; padding: 0; }
.kc-search-modal .modal-recent-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-radius: 6px; }
.kc-search-modal .modal-recent-list li:hover { background: var(--sm-soft); }
.kc-search-modal .modal-recent-list a { flex: 1 1 auto; min-width: 0; padding: 6px 8px; font-size: 13px; color: var(--sm-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.kc-search-modal .modal-recent-list li:hover a { color: var(--sm-fg); }
.kc-search-modal .modal-recent-del { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-right: 4px; padding: 0; font-size: 14px; line-height: 1; background: none; border: 0; border-radius: 4px; color: var(--sm-muted); cursor: pointer; }
.kc-search-modal .modal-recent-del:hover { color: var(--sm-fg); }
.kc-search-modal .modal-pop ul { display: flex; flex-wrap: wrap; gap: 6px; }
.kc-search-modal .modal-pop a { display: inline-flex; align-items: center; padding: 4px 10px; background: transparent; border: 1px solid var(--sm-border); border-radius: 6px; color: var(--sm-muted); font-size: 12px; font-weight: 400; line-height: 1.6; text-decoration: none; }
.kc-search-modal .modal-pop a:hover, .kc-search-modal .modal-pop a:focus { background: var(--sm-soft); border-color: var(--sm-ring); color: var(--sm-fg); }
.kc-search-modal .modal-hint { display: flex; justify-content: flex-start; align-items: center; gap: 16px; flex-wrap: wrap; margin: 0; padding: 10px 20px; font-size: 12px; line-height: 1.4; color: var(--sm-muted); }
.kc-search-modal .modal-hint kbd { display: inline-block; padding: 2px 6px; font-family: inherit; font-size: 11px; line-height: 1.4; background: var(--sm-soft); border: 1px solid var(--sm-border); border-radius: 4px; color: var(--sm-fg); box-shadow: none; }
body.kc-search-open { overflow: hidden; }
@media (max-width: 767.98px) { .kc-search-modal .modal-field input[type=text] { font-size: 16px; } }

.kc-sol-header a.hd-search { text-decoration: none; }

/* ---- 통합검색 (solution 'search-page') ---- */
.search-page { --sp-card: #FFFFFF; --sp-border: #E4E4E7; --sp-fg: #09090B; --sp-muted: #71717A; --sp-soft: #F4F4F5; --sp-ring: #A1A1AA; --sp-brand: #5E6AD2; width: 100%; margin: 0 auto; }
.search-page .search-hero { margin-bottom: 1rem; }
.search-page input[type=search].search-hero-input { box-sizing: border-box; width: 100%; height: 56px; padding: 0 20px; font-size: 16px; line-height: 1.6; color: var(--sp-fg); background: var(--sp-card); border: 1px solid var(--sp-border); border-radius: 12px; box-shadow: none; }
.search-page input[type=search].search-hero-input:focus { border-color: var(--sp-ring); box-shadow: none; outline: 0; }
.search-page .search-info { margin: 1rem 0; text-align: center; font-size: 14px; color: var(--sp-muted); }
.search-page .search-info b { color: var(--sp-brand); font-weight: 600; }
.search-page .search-info .search-scope { font-size: 12px; opacity: .85; }
.search-page .search-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 60px 0 .5rem; }
.search-page .search-tabs + .search-tabs { margin-top: 20px; }
.search-page .search-sorts { margin-bottom: 1.25rem; }
.search-page .search-tab { display: inline-flex; align-items: center; gap: .25rem; padding: 6px 14px; font-size: 13px; font-weight: 600; line-height: 1.7; color: var(--sp-muted); background: transparent; border: 1px solid var(--sp-border); border-radius: 8px; text-decoration: none; }
.search-page .search-tab span { font-weight: 400; opacity: .8; }
.search-page .search-tab:hover { background: var(--sp-soft); color: var(--sp-fg); }
.search-page .search-tab.on, .search-page .search-tab.on:hover { background: var(--sp-brand); border-color: var(--sp-brand); color: #FFF; }
.search-page .search-tab.is-empty { opacity: .5; }
.search-page .search-tab.is-empty:hover { opacity: 1; }
.search-page .search-empty { padding: 60px 20px; text-align: center; color: var(--sp-muted); }
.search-page .search-empty h3 { margin: 0 0 8px; font-size: 18px; font-weight: 400; line-height: 1.7; color: var(--sp-fg); }
.search-page .search-empty p { margin: 0; font-size: 14px; line-height: 1.7; }
.search-page .search-empty p.search-empty-hint { margin-top: 8px; font-size: 13px; }
.search-page .search-suggestions { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 16px; }
.search-page .search-hit { display: block; padding: 16px 20px; margin-bottom: 8px; background: var(--sp-card); border: 1px solid var(--sp-border); border-radius: 12px; color: inherit; text-decoration: none; transition: border-color .16s ease, background-color .16s ease; }
.search-page .search-hit:hover { border-color: var(--sp-ring); background: var(--sp-soft); color: inherit; }
.search-page .search-hit-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; font-size: 12px; color: var(--sp-muted); }
.search-page .search-hit-badge { padding: 2px 8px; border-radius: 5px; font-size: 11px; font-weight: 700; color: var(--sp-fg); background: var(--sp-soft); }
.search-page .search-hit:hover .search-hit-badge { background: var(--sp-card); }
.search-page .search-hit-date { margin-left: 0; }
.search-page .search-hit-title { margin-bottom: 4px; font-size: 15px; font-weight: 700; line-height: 1.45; color: var(--sp-fg); overflow-wrap: anywhere; }
.search-page .search-hit-excerpt { font-size: 13px; line-height: 1.6; color: var(--sp-muted); overflow-wrap: anywhere; }
.search-page mark { padding: 0 1px; border-radius: 2px; background: rgba(94, 106, 210, 0.2); color: var(--sp-brand); font-weight: 600; }

/* ---- 게시판 목록 (solution 'bd-head' · 카드 테이블) ---- */
.sol-board { --sb-card: #FFFFFF; --sb-border: #E4E4E7; --sb-border-sub: #F1F1F3; --sb-fg: #09090B; --sb-muted: #71717A; --sb-soft: #F4F4F5; --sb-ring: #A1A1AA; --sb-brand: #5E6AD2; --sb-secondary: #F4F4F5; }
.sol-board a { text-decoration: none; }
.sol-board .breadcrumb { display: block; padding: 0; background: none; font-size: 14px; color: var(--sb-muted); margin: 0 0 .75rem; }
.sol-board .breadcrumb a { color: var(--sb-muted); }
.sol-board .breadcrumb a:hover { color: var(--sb-fg); }
.sol-board .breadcrumb span { margin: 0 .35rem; opacity: .6; }
.sol-board .bd-head { padding: 26px 0 24px; text-align: center; }
.sol-board .bd-label { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--sb-brand); text-transform: uppercase; }
.sol-board .bd-title { margin: 0 0 8px; font-size: 30px; font-weight: 700; line-height: 1.7; }
.sol-board .bd-title a { color: var(--sb-fg); }
.sol-board .bd-desc { margin: 0; font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--sb-muted); }
.sol-board .bd-desc a { color: var(--sb-muted); }
.sol-board .bd-filters { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 0 0 20px; }
.sol-board .bd-filter { display: inline-flex; align-items: center; padding: 6px 14px; font-size: 13px; font-weight: 600; line-height: 1.7; color: var(--sb-muted); background: transparent; border: 1px solid var(--sb-border); border-radius: 7px; }
.sol-board .bd-filter:hover { background: var(--sb-soft); color: var(--sb-fg); }
.sol-board .bd-filter.on, .sol-board .bd-filter.on:hover { background: var(--sb-brand); border-color: var(--sb-brand); color: #FFF; }
.sol-board .bd-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.sol-board .bd-toolbar-l, .sol-board .bd-toolbar-r { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sol-board .bd-count { font-size: 13px; color: var(--sb-muted); }
.sol-board .bd-count strong { font-weight: 700; color: var(--sb-fg); }
.sol-board .bd-sorts { display: flex; gap: 2px; }
.sol-board .bd-sort { padding: 3px 8px; border-radius: 6px; font-size: 11px; font-weight: 600; line-height: 1.7; color: var(--sb-muted); background: transparent; }
.sol-board .bd-sort:hover { color: var(--sb-fg); }
.sol-board .bd-sort.on { color: var(--sb-brand); background: rgba(94, 106, 210, 0.08); }
.sol-board .bd-search { display: flex; align-items: center; gap: 6px; width: 220px; margin: 0; padding: 7px 14px; background: var(--sb-card); border: 1px solid var(--sb-border); border-radius: 8px; }
.sol-board .bd-search > svg { flex: none; color: var(--sb-muted); }
.sol-board .bd-search:focus-within { border-color: var(--sb-ring); }
.sol-board .bd-search input[type=search] { flex: 1 1 auto; min-width: 0; height: auto; padding: 0; font-size: 13px; line-height: 1.7; color: var(--sb-fg); background: transparent; border: 0; box-shadow: none; outline: 0; }
.sol-board .bd-write { flex: none; }
.sol-board .bd-manage-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; padding: 10px 14px; background: var(--sb-soft); border: 1px solid var(--sb-border); border-radius: 10px; font-size: 12px; }
.sol-board .bd-manage-bar select { width: auto; font-size: 12px; }
.sol-board .bd-manage-bar .btn-sm { font-size: 11px; }
.sol-board .sb-card { background: var(--sb-card); border: 1px solid var(--sb-border); border-radius: 12px; overflow: hidden; }
.sol-board .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sol-board table.sb-list { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--sb-card); margin: 0; }
.sol-board table.sb-list thead th { padding: .75rem 1rem; text-align: left; white-space: nowrap; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--sb-muted); border-bottom: 1px solid var(--sb-border); background: transparent; }
.sol-board table.sb-list tbody td { padding: .875rem 1rem; border-bottom: 1px solid var(--sb-border-sub); vertical-align: middle; background: transparent; color: var(--sb-fg); }
.sol-board table.sb-list tbody tr:last-child td { border-bottom: 0; }
.sol-board table.sb-list tbody tr:hover td { background: var(--sb-soft); }
.sol-board table.sb-list .num, .sol-board table.sb-list .center { text-align: center; white-space: nowrap; }
.sol-board table.sb-list th.center, .sol-board table.sb-list th.num { text-align: center; }
.sol-board table.sb-list .subject { width: 100%; }
.sol-board table.sb-list .subject a.list_subject { color: var(--sb-fg); font-weight: 500; overflow-wrap: anywhere; }
.sol-board table.sb-list .subject a.list_subject:hover { color: var(--sb-brand); }
.sol-board table.sb-list .muted, .sol-board table.sb-list td.muted a, .sol-board table.sb-list td.muted .kc-name { color: var(--sb-muted); font-size: .8125rem; white-space: nowrap; }
.sol-board table.sb-list tr.is-notice td { background: rgba(94, 106, 210, 0.05); }
.sol-board table.sb-list tr.is-current td { background: rgba(245, 158, 11, 0.12); }
.sol-board .kc-cmt { margin-left: 6px; font-size: 12px; font-weight: 600; color: #F7683A; }
.sol-board .kc-ico { margin-left: 4px; font-size: 12px; color: var(--sb-muted); }
.sol-board .kc-reply-mark { color: var(--sb-muted); margin-right: 4px; }
.sol-board .badge { display: inline-block; padding: 3px 8px; border-radius: 5px; font-size: 11px; font-weight: 700; line-height: 1.4; }
.sol-board .badge-cat { background: var(--sb-secondary); color: var(--sb-fg); }
.sol-board .badge-notice { background: #FDE8E8; color: #B42318; }
.sol-board .bd-empty { padding: 60px 20px; text-align: center; color: var(--sb-muted); font-size: 14px; }
.sol-board .sb-pager { margin: 1.5rem 0; }
.sol-board .sb-pager .board-pagination { top: 0; margin-top: 0; }
.sol-board .sb-pager .board-nav { gap: .25rem; }
.sol-board .sb-pager .board-nav-area { gap: .25rem; border-radius: 0; overflow: visible; }
.sol-board .sb-pager .board-nav a { display: grid; place-items: center; min-width: 36px; height: 36px; padding: 0 .625rem; border: 1px solid var(--sb-border); border-radius: 8px; background: var(--sb-card); color: var(--sb-muted); font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; }
.sol-board .sb-pager .board-nav a:hover { background: var(--sb-soft); color: var(--sb-fg); }
.sol-board .sb-pager .board-nav a.active, .sol-board .sb-pager .board-nav a.active:hover { background: var(--sb-brand); border-color: var(--sb-brand); color: #FFF; }
.sol-board .sb-pager .board-nav a::before, .sol-board .sb-pager .board-nav a::after { content: none !important; border: 0 !important; position: static !important; padding: 0 !important; height: auto !important; }
.sol-board .sb-pager .board-nav a.board-nav-first, .sol-board .sb-pager .board-nav a.board-nav-prev.ten, .sol-board .sb-pager .board-nav a.board-nav-next.ten { font-size: 13px; }
.sol-board .sb-pager .board-nav a.board-nav-prev:not(.ten)::after { content: "‹" !important; font-size: 18px; }
.sol-board .sb-pager .board-nav a.board-nav-next:not(.ten)::after { content: "›" !important; font-size: 18px; }
.sol-board .sb-pager .board-nav { flex-wrap: wrap; justify-content: center; }
@media (max-width: 767.98px) {
  .sol-board .hide-sm { display: none; }
  .sol-board .bd-head { padding: 32px 0 20px; }
  .sol-board .bd-title { font-size: 24px; }
  .sol-board .bd-toolbar-r { width: 100%; }
  .sol-board .bd-search { width: auto; flex: 1 1 auto; }
  .sol-board table.sb-list thead th, .sol-board table.sb-list tbody td { padding: .75rem .625rem; }
}

/* ---- 게시판 글쓰기 (solution 'page-head' + 카드 폼) ---- */
.sol-write { --sw-card: #FFFFFF; --sw-bg: #FFFFFF; --sw-border: #E4E4E7; --sw-input: #E4E4E7; --sw-fg: #09090B; --sw-muted: #71717A; --sw-soft: #F4F4F5; --sw-ring: #A1A1AA; --sw-brand: #5E6AD2; --sw-danger: #E5484D; }
.sol-write a { text-decoration: none; }
.sol-write .breadcrumb { display: block; padding: 0; background: none; font-size: 14px; color: var(--sw-muted); margin: 0 0 .75rem; }
.sol-write .breadcrumb a { color: var(--sw-muted); }
.sol-write .breadcrumb a:hover { color: var(--sw-fg); }
.sol-write .breadcrumb span { margin: 0 .35rem; opacity: .6; }
.sol-write .page-head { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.sol-write .page-head h1 { margin: 0; font-size: 1.875rem; line-height: 2.25rem; letter-spacing: -.025em; font-weight: 700; color: var(--sw-fg); }
.sol-write .sw-card { background: var(--sw-card); border: 1px solid var(--sw-border); border-radius: 12px; }
.sol-write .sw-card-body { padding: 1.25rem; }
.sol-write .kc-form-row { display: block; padding: 0; margin-bottom: 1rem; border-bottom: 0; }
.sol-write .kc-form-row > label, .sol-write .kc-form-row > .kc-label { display: block; padding: 0; margin-bottom: .375rem; font-size: 14px; font-weight: 500; color: var(--sw-fg); }
.sol-write .kc-req { color: var(--sw-danger); margin-left: 2px; }
.sol-write .py-3.border-bottom, .sol-write .py-2.border-bottom { border-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-bottom: 1rem; }
.sol-write .form-control, .sol-write .form-select { padding: .5rem .75rem; font-size: 14px; line-height: 1.25rem; color: var(--sw-fg); background-color: var(--sw-bg); border: 1px solid var(--sw-input); border-radius: 8px; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease; }
.sol-write .form-control:focus, .sol-write .form-select:focus { border-color: var(--sw-ring); box-shadow: 0 0 0 3px rgba(161, 161, 170, 0.25); outline: 0; }
.sol-write textarea.form-control { min-height: 80px; }
.sol-write .form-control::placeholder { color: var(--sw-muted); }
.sol-write .form-text, .sol-write .kc-hint-inline { font-size: .8125rem; color: var(--sw-muted); margin-top: .375rem; }
.sol-write .form-check-label { font-size: 14px; color: var(--sw-fg); }
.sol-write .form-check-input:checked { background-color: var(--sw-brand); border-color: var(--sw-brand); }
.sol-write .file-list { display: flex; flex-direction: column; gap: .5rem; }
.sol-write .file-list:empty { display: none; }
.sol-write .file-item { display: flex; align-items: center; gap: .625rem; flex-wrap: wrap; padding: .5rem .75rem; border: 1px solid var(--sw-border); border-radius: .375rem; background: var(--sw-card); }
.sol-write .file-item.is-deleted { opacity: .45; text-decoration: line-through; }
.sol-write .file-item .file-name { flex: 1 1 10rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; font-weight: 500; }
.sol-write .file-item .file-size { flex: none; font-size: .75rem; color: var(--sw-muted); }
.sol-write .file-item .file-caption { flex: 1 1 12rem; min-width: 0; max-width: 18rem; }
.sol-write .file-item .file-remove { flex: none; display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .5rem; border: 0; border-radius: .375rem; background: transparent; color: var(--sw-muted); font: inherit; font-size: .8125rem; cursor: pointer; }
.sol-write .file-item .file-remove:hover { background: var(--sw-soft); color: var(--sw-danger); }
.sol-write .file-dropzone { margin-top: .5rem; }
.sol-write .file-dropzone-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 1.5rem 1rem; text-align: center; border: 1.5px dashed var(--sw-border); border-radius: .375rem; cursor: pointer; transition: border-color .15s, background-color .15s; }
.sol-write .file-dropzone-inner:hover, .sol-write .file-dropzone-inner.is-drag-over { border-color: var(--sw-brand); background: var(--sw-soft); }
.sol-write .file-dropzone-inner.is-full { opacity: .5; cursor: not-allowed; }
.sol-write .file-dropzone-inner svg { color: var(--sw-muted); }
.sol-write .file-dropzone-text { font-size: .875rem; margin: 0; }
.sol-write .file-dropzone-hint { font-size: .75rem; color: var(--sw-muted); margin: 0; }
.sol-write .kc-form-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.sol-write .sw-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .5rem 1rem; font-size: 14px; font-weight: 500; line-height: 1.25rem; color: var(--sw-fg); background: var(--sw-soft); border: 1px solid transparent; border-radius: 8px; cursor: pointer; white-space: nowrap; transition: opacity .2s ease, background-color .2s ease, color .2s ease; }
.sol-write .sw-btn:hover { color: var(--sw-fg); background: #E9E9EC; }
.sol-write .sw-btn.sw-primary { padding: .65rem 1.5rem; background: var(--sw-brand); color: #FFF; }
.sol-write .sw-btn.sw-primary:hover { opacity: .9; background: var(--sw-brand); color: #FFF; }
.sol-write .alert { border-radius: 10px; }
.sol-write .kc-form-row:has(> .kc-label + .pt-2) { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; }
.sol-write .kc-form-row:has(> .kc-label + .pt-2) > .kc-label { width: auto; margin: 0; }
.sol-write .kc-form-row > .pt-2 { padding-top: 0 !important; }
.sol-write .kc-form-row > div > .form-select.w-auto, .sol-write .kc-form-row .form-select.w-auto { width: 100% !important; }
@media (max-width: 767.98px) { .sol-write .page-head h1 { font-size: 1.5rem; line-height: 2rem; } }
