:root {
    --ch-body-size:17px;
    --ch-sky:#dff3ff;
    --ch-blue:#137bb8;
    --ch-navy:#123f61;
    --ch-ink:#20313f;
    --ch-muted:#61717d;
    --ch-line:#cddde7;
    --ch-paper:#f5f8fa;
    --ch-white:#fff;
    --ch-coral:#d75c45;
    --ch-radius:14px;
    --ch-shadow:0 10px 28px rgba(18,63,97,.09);
    --ch-container:1180px;
}

html.chbob-font-small { --ch-body-size:17px; }
html.chbob-font-medium { --ch-body-size:19px; }
html.chbob-font-large { --ch-body-size:21px; }
html { scroll-behavior:smooth; }
body:has(.chbob-site),
body:has(.chbob-page) {
    margin:0;
    background:var(--ch-paper);
    color:var(--ch-ink);
    font-family:Pretendard,"Noto Sans KR","Malgun Gothic",Arial,sans-serif;
    font-size:var(--ch-body-size);
    line-height:1.75;
    overflow-x:hidden;
}
body:has(.chbob-site) *,
body:has(.chbob-page) * { box-sizing:border-box; }
body:has(.chbob-site) #aicw,
body:has(.chbob-site) #aicw-box,
body:has(.chbob-page) #aicw,
body:has(.chbob-page) #aicw-box {
    display:none!important;
}
.chbob-site a,
.chbob-page a { color:inherit; text-decoration:none; }
.chbob-site a:focus-visible,
.chbob-site button:focus-visible,
.chbob-site input:focus-visible,
.chbob-page a:focus-visible,
.chbob-page button:focus-visible,
.chbob-page input:focus-visible {
    outline:3px solid #f0a33b;
    outline-offset:3px;
}
.chbob-container {
    width:min(calc(100% - 40px),var(--ch-container));
    margin-inline:auto;
}
.chbob-skip {
    position:fixed;
    top:8px;
    left:8px;
    z-index:9999;
    padding:10px 16px;
    background:var(--ch-navy);
    color:var(--ch-white)!important;
    transform:translateY(-140%);
}
.chbob-skip:focus { transform:none; }
.chbob-header {
    position:relative;
    z-index:30;
    border-bottom:1px solid var(--ch-line);
    background:var(--ch-white);
}
.chbob-utility {
    background:var(--ch-sky);
    border-bottom:1px solid #b9ddf1;
}
.chbob-utility__inner {
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
}
.chbob-font-control {
    display:flex;
    align-items:center;
    gap:6px;
}
.chbob-font-control strong { font-size:14px; color:var(--ch-navy); }
.chbob-font-btn,
.chbob-menu-toggle {
    min-width:44px;
    min-height:44px;
    border:1px solid #8ebbd2;
    background:var(--ch-white);
    color:var(--ch-navy);
    border-radius:8px;
    cursor:pointer;
    font:inherit;
}
.chbob-font-btn[aria-pressed="true"] {
    border-color:var(--ch-navy);
    background:var(--ch-navy);
    color:var(--ch-white);
}
.chbob-auth {
    min-height:44px;
    display:flex;
    align-items:center;
    gap:4px;
}
.chbob-auth a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    padding:0 9px;
    font-size:15px;
    color:var(--ch-navy);
}
.chbob-brand-row {
    min-height:112px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.chbob-logo {
    display:inline-flex;
    align-items:center;
    gap:16px;
}
.chbob-logo img {
    width:126px;
    height:auto;
    display:block;
}
.chbob-logo__text strong {
    display:block;
    color:var(--ch-navy);
    font-size:26px;
    letter-spacing:-.04em;
    white-space:nowrap;
}
.chbob-logo__text span { display:block; color:var(--ch-muted); font-size:14px; }
.chbob-menu-toggle { display:none; padding:0 14px; }
.chbob-nav {
    border-top:1px solid var(--ch-line);
    background:var(--ch-navy);
}
.chbob-nav__list {
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    list-style:none;
}
.chbob-nav__item { position:relative; }
.chbob-nav__trigger {
    width:100%;
    min-height:56px;
    border:0;
    border-left:1px solid rgba(255,255,255,.16);
    background:transparent;
    color:var(--ch-white);
    font:inherit;
    font-size:18px;
    cursor:pointer;
}
.chbob-nav__item:last-child .chbob-nav__trigger { border-right:1px solid rgba(255,255,255,.16); }
.chbob-nav__trigger:hover,
.chbob-nav__trigger:focus-visible,
.chbob-nav__item.is-open .chbob-nav__trigger { background:#0c5d8c; }
.chbob-subnav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    display:none;
    margin:0;
    padding:8px;
    list-style:none;
    border:1px solid var(--ch-line);
    border-top:0;
    background:var(--ch-white);
    box-shadow:var(--ch-shadow);
}
.chbob-nav__item:hover .chbob-subnav,
.chbob-nav__item:focus-within .chbob-subnav,
.chbob-nav__item.is-open .chbob-subnav { display:block; }
.chbob-subnav a {
    min-height:44px;
    display:flex;
    align-items:center;
    padding:6px 12px;
    border-radius:7px;
    color:var(--ch-ink);
}
.chbob-subnav a:hover,
.chbob-subnav a:focus-visible { background:var(--ch-sky); color:var(--ch-navy); }
.chbob-hero {
    min-height:310px;
    display:grid;
    place-items:end start;
    padding:44px 0;
    background-color:#e6f6ff;
    background-image:url("/uploads/tenant-10112/www/images/images/main.gif");
    background-position:center 42%;
    background-repeat:no-repeat;
    background-size:cover;
    border-bottom:1px solid var(--ch-line);
}
.chbob-hero__card {
    max-width:600px;
    padding:24px 28px;
    border:1px solid rgba(18,63,97,.22);
    background:rgba(255,255,255,.94);
    box-shadow:var(--ch-shadow);
}
.chbob-eyebrow {
    margin:0 0 4px;
    color:var(--ch-blue);
    font-size:15px;
    font-weight:700;
    letter-spacing:.08em;
}
.chbob-hero h1 {
    margin:0;
    color:var(--ch-navy);
    font-size:clamp(30px,4vw,48px);
    line-height:1.2;
    letter-spacing:-.045em;
}
.chbob-hero p:last-child { margin:12px 0 0; color:var(--ch-muted); }
.chbob-main { padding:44px 0 70px; }
.chbob-search {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    max-width:760px;
    margin:0 auto 42px;
}
.chbob-search label { grid-column:1/-1; color:var(--ch-navy); font-weight:700; }
.chbob-search input {
    min-width:0;
    min-height:52px;
    padding:10px 16px;
    border:1px solid #8ebbd2;
    border-radius:9px;
    background:var(--ch-white);
    color:var(--ch-ink);
    font:inherit;
}
.chbob-btn {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 18px;
    border:1px solid var(--ch-navy);
    border-radius:9px;
    background:var(--ch-navy);
    color:var(--ch-white)!important;
    font:inherit;
    cursor:pointer;
}
.chbob-btn--light { background:var(--ch-white); color:var(--ch-navy)!important; }
.chbob-search-results {
    grid-column:1/-1;
    display:none;
    padding:16px;
    border:1px solid var(--ch-line);
    border-radius:9px;
    background:var(--ch-white);
}
.chbob-search-results.is-open { display:block; }
.chbob-search-results ul { margin:8px 0 0; padding-left:20px; }
.chbob-search-results a { text-decoration:underline; text-underline-offset:3px; }
.chbob-section-head {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:18px;
    margin:0 0 18px;
}
.chbob-section-head h2,
.chbob-section-head h3 { margin:0; color:var(--ch-navy); line-height:1.3; }
.chbob-section-head a { min-height:44px; display:inline-flex; align-items:center; color:var(--ch-blue); }
.chbob-board-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    margin-bottom:42px;
}
.chbob-panel {
    min-width:0;
    padding:24px;
    border:1px solid var(--ch-line);
    border-radius:var(--ch-radius);
    background:var(--ch-white);
    box-shadow:0 6px 18px rgba(18,63,97,.05);
}
.chbob-panel .board-widget-list,
.chbob-panel ul { margin:0; padding:0; list-style:none; }
.chbob-panel li {
    min-width:0;
    min-height:44px;
    display:flex;
    align-items:center;
    border-bottom:1px solid #e6edf1;
}
.chbob-panel li:last-child { border-bottom:0; }
.chbob-gallery { margin-bottom:42px; }
.chbob-gallery .chbob-panel { overflow:hidden; }
.chbob-account {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    border-left:6px solid var(--ch-coral);
}
.chbob-account h2 { margin:0 0 4px; color:var(--ch-navy); }
.chbob-account p { margin:0; }
.chbob-account strong { font-size:clamp(19px,3vw,26px); color:var(--ch-coral); }
.chbob-footer {
    border-top:4px solid var(--ch-blue);
    background:var(--ch-navy);
    color:#dceaf2;
}
.chbob-footer__inner {
    min-height:166px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:26px;
}
.chbob-footer p { margin:3px 0; }
.chbob-footer a { min-height:44px; display:inline-flex; align-items:center; color:var(--ch-white); }
.chbob-footer__links { display:flex; flex-wrap:wrap; gap:6px 18px; }
.chbob-page {
    width:min(calc(100% - 40px),var(--ch-container));
    margin:0 auto;
    padding:32px 0 70px;
    color:var(--ch-ink);
    font-size:var(--ch-body-size);
    line-height:1.75;
}
.chbob-breadcrumb {
    min-height:44px;
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:14px;
    color:var(--ch-muted);
    font-size:15px;
}
.chbob-page-head {
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-end;
    margin-bottom:24px;
    padding-bottom:18px;
    border-bottom:3px solid var(--ch-navy);
}
.chbob-page-head h1 { margin:0; color:var(--ch-navy); font-size:clamp(28px,4vw,40px); line-height:1.25; }
.chbob-page-head p { margin:6px 0 0; color:var(--ch-muted); }
.chbob-page-layout {
    display:grid;
    grid-template-columns:230px minmax(0,1fr);
    gap:28px;
    align-items:start;
}
.chbob-sidebar {
    border:1px solid var(--ch-line);
    border-radius:var(--ch-radius);
    background:var(--ch-white);
    overflow:hidden;
}
.chbob-sidebar h2 {
    margin:0;
    padding:16px 18px;
    background:var(--ch-navy);
    color:var(--ch-white);
    font-size:19px;
}
.chbob-sidebar ul { margin:0; padding:8px; list-style:none; }
.chbob-sidebar a {
    min-height:44px;
    display:flex;
    align-items:center;
    padding:6px 10px;
    border-radius:7px;
}
.chbob-sidebar a:hover,
.chbob-sidebar a[aria-current="page"] { background:var(--ch-sky); color:var(--ch-navy); }
.chbob-content {
    min-width:0;
    padding:22px;
    border:1px solid var(--ch-line);
    border-radius:var(--ch-radius);
    background:var(--ch-white);
}
.chbob-content .board-wrap {
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    font-size:18px;
}
.chbob-content p,
.chbob-content td,
.chbob-content li,
.chbob-content input,
.chbob-content textarea,
.chbob-content select,
.chbob-content button { font-size:max(17px,var(--ch-body-size)); }
.chbob-content table { width:100%; }
.chbob-content input,
.chbob-content select,
.chbob-content button,
.chbob-content .btn-board,
.chbob-content a[class*="btn"] { min-height:44px; }
.chbob-login-help,
.chbob-empty-help {
    margin-bottom:18px;
    padding:16px 18px;
    border:1px solid #a9cadc;
    border-radius:10px;
    background:#eef8fd;
}
.chbob-login-help p,
.chbob-empty-help p { margin:0 0 8px; }
.chbob-login-help__links { display:flex; flex-wrap:wrap; gap:8px; }
.chbob-write-link { margin-top:18px; text-align:right; }

@media (max-width:900px) {
    .chbob-brand-row { min-height:92px; }
    .chbob-menu-toggle { display:inline-flex; align-items:center; justify-content:center; }
    .chbob-nav { display:none; }
    .chbob-nav.is-open { display:block; }
    .chbob-nav__list { grid-template-columns:1fr; }
    .chbob-nav__trigger { text-align:left; padding:0 20px; border:0; border-bottom:1px solid rgba(255,255,255,.15); }
    .chbob-subnav { position:static; box-shadow:none; border:0; }
    .chbob-nav__item:hover .chbob-subnav,
    .chbob-nav__item:focus-within .chbob-subnav { display:none; }
    .chbob-nav__item.is-open .chbob-subnav { display:block; }
    .chbob-page-layout { grid-template-columns:1fr; }
    .chbob-sidebar ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
    .chbob-container,
    .chbob-page { width:min(calc(100% - 28px),var(--ch-container)); }
    .chbob-utility__inner { align-items:flex-start; justify-content:space-between; flex-wrap:wrap; padding-block:6px; }
    .chbob-auth { width:100%; justify-content:flex-end; }
    .chbob-logo img { width:94px; }
    .chbob-logo__text strong { font-size:21px; }
    .chbob-logo__text span { display:none; }
    .chbob-hero { min-height:260px; padding:28px 0; }
    .chbob-hero__card { padding:20px; }
    .chbob-main { padding-top:30px; }
    .chbob-search { grid-template-columns:1fr; }
    .chbob-search label,
    .chbob-search-results { grid-column:auto; }
    .chbob-board-grid { grid-template-columns:1fr; }
    .chbob-account,
    .chbob-footer__inner { grid-template-columns:1fr; }
    .chbob-account { align-items:start; }
    .chbob-footer__inner { padding:32px 0; }
    .chbob-page-head { align-items:flex-start; flex-direction:column; }
    .chbob-sidebar ul { grid-template-columns:1fr; }
    .chbob-content { padding:14px; overflow-x:auto; }
}
@media (max-width:375px) {
    .chbob-font-control strong { width:100%; }
    .chbob-font-control { flex-wrap:wrap; }
    .chbob-brand-row { gap:8px; }
    .chbob-logo { gap:8px; }
    .chbob-logo img { width:76px; }
    .chbob-logo__text strong { font-size:18px; }
    .chbob-menu-toggle { padding:0 10px; font-size:15px; }
    .chbob-panel { padding:18px; }
}


/* ── 연회비 연도 선택 (dues 대표보드 + 연도별 14개) ───────────────── */
.chbob-year-nav {
    margin:0 0 18px;
    padding:14px 16px;
    background:var(--ch-paper);
    border:1px solid var(--ch-line);
    border-radius:var(--ch-radius);
}
.chbob-year-nav h2 {
    margin:0 0 10px;
    font-size:17px;
    color:var(--ch-navy);
}
.chbob-year-nav ul {
    margin:0; padding:0; list-style:none;
    display:flex; flex-wrap:wrap; gap:8px;
}
.chbob-year-nav a {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:44px; min-width:44px; padding:0 14px;
    border:1px solid var(--ch-line); border-radius:10px;
    background:var(--ch-white); color:var(--ch-ink);
    font-size:16px; text-decoration:none;
}
.chbob-year-nav a:hover,
.chbob-year-nav a:focus-visible { background:var(--ch-sky); color:var(--ch-navy); }
.chbob-year-nav a[aria-current="page"] {
    background:var(--ch-blue); border-color:var(--ch-blue);
    color:var(--ch-white); font-weight:700;
}

/* ── 조작 대상 최소 44px (설계 §3-5 #3) — 페이지네이션·목록 버튼 ──── */
.chbob-content .pagination a,
.chbob-content .pagination span,
.chbob-content .page-link,
.chbob-content .page-item > a,
.chbob-content .page-item > span,
.chbob-content .paging a,
.chbob-content .paging span,
.chbob-content .board-pagination a,
.chbob-content .board-pagination span {
    min-width:44px; min-height:44px;
    display:inline-flex; align-items:center; justify-content:center;
    box-sizing:border-box;
}

/* 빈 src 이미지가 페이지 URL 을 이미지로 요청해 깨진 아이콘이 되는 것을 막는다 */
.chbob-content img[src=""],
.chbob-content img:not([src]),
.chbob-content img[src^="file:"] { display:none !important; }


/* ── 목록 제목 링크·브레드크럼도 44px 이상 (설계 §3-5 #3) ─────────── */
.chbob-content td.td-title a,
.chbob-content table td a,
.chbob-content .board-list a.title,
.chbob-content .chbob-card a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
}
.chbob-breadcrumb a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    padding:0 4px;
}


/* ── 홈 최신글 위젯 / 갤러리 스트립 ─────────────────────────────── */
.chbob-latest { margin:0; padding:0; list-style:none; }
.chbob-latest li { border-bottom:1px solid var(--ch-line); }
.chbob-latest li:last-child { border-bottom:0; }
.chbob-latest a {
    display:flex; align-items:center; gap:10px;
    min-height:44px; padding:6px 2px;
    color:var(--ch-ink); text-decoration:none;
    overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
}
.chbob-latest a:hover { color:var(--ch-blue); text-decoration:underline; }
.chbob-latest__date { display:block; padding:0 2px 8px; color:var(--ch-muted); font-size:15px; }
.chbob-latest li:empty { display:none; }

.chbob-gallery-strip {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px;
}
.chbob-gallery-strip .chbob-thumb { display:block; border-radius:10px; overflow:hidden; background:var(--ch-paper); }
.chbob-gallery-strip img { display:block; width:100%; height:150px; object-fit:cover; }
@media (max-width:600px) {
    .chbob-gallery-strip { grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; }
    .chbob-gallery-strip img { height:110px; }
}
