/* ==========================================================
   서울특별시윈드서핑연맹 리디자인 — swsf.css
   테마 원본(custom.css 포함)은 수정하지 않고 이 파일에서 덮어씀
   클래스 접두어 sw- (테마 기존 클래스와 충돌 방지)
   ========================================================== */

:root {
    --sw-navy: #0D2B4E;
    --sw-ink:  #1B2229;
    --sw-sub:  #5E6873;
    --sw-mute: #98A1AA;
    --sw-line: #DCE1E6;
    --sw-bg2:  #F2F5F8;
    --sw-or:   #FF5B1A;
    --sw-ft:   #0A223E;
    --sw-mm-h: 192px;   /* PC 메뉴 펼침 높이 */
}

/* 기본 */
body {
    font-family: Pretendard, 'Pretendard Variable', 'Noto Sans KR', sans-serif;
    color: var(--sw-ink);
    -webkit-font-smoothing: antialiased;
    letter-spacing: -0.01em;
}
#wrapper #container { padding-top: 0; }

.sw-hd *, .sw-mnav *, .sw-sv *, .sw-tabs *, .sw-ft * {
    box-sizing: border-box; margin: 0; padding: 0; border-radius: 0;
}
.sw-hd a, .sw-mnav a, .sw-sv a, .sw-tabs a, .sw-ft a { color: inherit; text-decoration: none; }
.sw-hd ul, .sw-hd li { list-style: none; }

.sw-wrap {
    width: 100%;
    max-width: 1240px;
    padding: 0 20px;
    margin: 0 auto;
    position: relative;
}

/* ---------- 로고 (원본 405x90 SVG를 높이 기준으로 축소) ---------- */
.sw-logo { display: block; flex-shrink: 0; }
.sw-logo img { display: block; width: auto; height: 44px; max-width: none; }
.sw-ft .sw-logo img { height: 40px; filter: brightness(0) invert(1); }  /* 하단은 흰색으로 */

/* ---------- 상단 ---------- */
.sw-hd {
    position: relative;
    z-index: 100;
    height: 96px;
    background: #fff;
    border-bottom: 1px solid var(--sw-line);
}
.sw-hd-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 96px;
}

.sw-gnb-list { display: flex; height: 96px; }
.sw-gnb-li { position: relative; width: 108px; height: 96px; }
.sw-gnb-a {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    height: 96px;
    font-size: 17px; font-weight: 500; color: var(--sw-ink);
    white-space: nowrap;
}
.sw-gnb-li.on > .sw-gnb-a,
.sw-gnb-li:hover > .sw-gnb-a { color: var(--sw-navy); font-weight: 600; }
.sw-gnb-li.on > .sw-gnb-a::after,
.sw-gnb-li:hover > .sw-gnb-a::after {
    content: ''; position: absolute;
    left: 24px; right: 24px; bottom: -1px; height: 3px;
    background: var(--sw-or);
}

/* PC 메뉴 펼침 */
.sw-sub {
    display: none;
    position: absolute; left: 0; top: 96px; z-index: 2;
    width: 100%; height: var(--sw-mm-h);
    padding: 28px 0 36px;
    flex-direction: column; align-items: center; gap: 14px;
    background: #fff;
    border-left: 1px solid var(--sw-line);
}
.sw-sub a { font-size: 15px; line-height: 1.4; color: var(--sw-sub); white-space: nowrap; }
.sw-sub a:hover { color: var(--sw-navy); font-weight: 600; }
.sw-gnb-li:hover > .sw-sub { background: var(--sw-bg2); }

.sw-mm-bg {
    display: none;
    position: absolute; left: 0; right: 0; top: 96px; z-index: 1;
    height: var(--sw-mm-h);
    background: #fff;
    border-bottom: 1px solid var(--sw-line);
}
.sw-mm-bg::after {
    content: ''; position: absolute;
    left: 0; right: 0; top: 100%; height: 100vh;
    background: rgba(10, 34, 62, .45);
}
.sw-hd.sw-mm-open .sw-sub   { display: flex; }
.sw-hd.sw-mm-open .sw-mm-bg { display: block; }

/* 모바일 메뉴 버튼 */
.sw-burger {
    display: none;
    width: 24px; height: 18px; padding: 0;
    flex-direction: column; justify-content: space-between;
    background: none; border: 0; cursor: pointer;
}
.sw-burger i { display: block; height: 2px; background: var(--sw-ink); }

/* ---------- 모바일 전체 메뉴 ---------- */
.sw-mnav {
    display: none;
    position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 1000;
    background: #fff;
    overflow-y: auto;
}
body.sw-mnav-open { overflow: hidden; }
body.sw-mnav-open .sw-mnav { display: block; }

.sw-mnav-hd {
    height: 64px;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 20px;
    border-bottom: 1px solid var(--sw-line);
}
.sw-mnav .sw-logo img { height: 34px; }
.sw-mnav-close {
    padding: 7px 12px;
    font-family: inherit; font-size: 14px; font-weight: 500; color: var(--sw-ink);
    background: #fff; border: 1px solid var(--sw-line); cursor: pointer;
}
.sw-mnav-list { padding: 0 20px; }
.sw-mg {
    position: relative;
    display: flex;
    padding: 18px 0;
    border-bottom: 1px solid var(--sw-line);
}
.sw-mg-t { width: 110px; font-size: 17px; font-weight: 600; color: var(--sw-ink); }
.sw-mg-s { flex: 1; display: flex; flex-direction: column; gap: 12px; padding-top: 2px; }
.sw-mg-s a { font-size: 15px; color: var(--sw-sub); }
.sw-mg.on {
    margin: 0 -20px; padding-left: 20px; padding-right: 20px;
    background: var(--sw-bg2);
}
.sw-mg.on::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
    background: var(--sw-or);
}
.sw-mg.on .sw-mg-t { color: var(--sw-navy); }
.sw-mg.on .sw-mg-s a { color: var(--sw-navy); font-weight: 600; }
.sw-mnav-ft { display: flex; gap: 8px; padding: 28px 20px; }
.sw-mnav-ft a {
    padding: 9px 14px;
    font-size: 13px; color: var(--sw-sub);
    border: 1px solid var(--sw-line);
}

/* ---------- 서브 비주얼 ---------- */
.sw-sv {
    position: relative;
    height: 300px;
    background-color: var(--sw-navy);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.sw-sv::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(10, 34, 62, .58);
}
.sw-sv-in {
    position: relative;
    height: 300px;
    display: flex; flex-direction: column; justify-content: center;
}
.sw-crumb { font-size: 14px; color: rgba(255, 255, 255, .75); }
.sw-sv-title {
    margin-top: 14px;
    font-size: 44px; font-weight: 700; line-height: 1.2;
    color: #fff; letter-spacing: -0.035em;
}

/* ---------- 탭 ---------- */
.sw-tabs { background: #fff; border-bottom: 1px solid var(--sw-line); }
.sw-tabs-in { display: flex; justify-content: center; }
.sw-tab {
    position: relative;
    height: 68px; padding: 0 36px;
    display: flex; align-items: center;
    font-size: 16px; color: var(--sw-sub);
    white-space: nowrap;
}
.sw-tab.on { color: var(--sw-navy); font-weight: 600; }
.sw-tab.on::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px;
    background: var(--sw-or);
}

/* ---------- 하단 ---------- */
.sw-ft {
    background: var(--sw-ft);
    background-image: none;
    box-shadow: none;
    color: rgba(255, 255, 255, .72);
    padding: 56px 0 48px;
}
.sw-ft-top {
    display: flex; justify-content: space-between; align-items: flex-start;
    padding-bottom: 36px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.sw-ft-nav { display: flex; flex-wrap: wrap; gap: 10px 28px; padding-top: 4px; font-size: 14px; }
.sw-ft-nav .strong { color: #fff; font-weight: 600; }
.sw-ft-bot {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "info side" "copy side";
    padding-top: 32px;
}
.sw-ft-info { grid-area: info; }
.sw-ft-info p { font-size: 14px; line-height: 1.9; }
.sw-gap { display: inline-block; width: 14px; }
.sw-ft-side { grid-area: side; display: flex; gap: 10px; align-items: flex-start; }
.sw-ft-side a {
    padding: 9px 16px;
    font-size: 13px; color: rgba(255, 255, 255, .8);
    border: 1px solid rgba(255, 255, 255, .25);
}
.sw-copy { grid-area: copy; margin-top: 14px; font-size: 13px; color: rgba(255, 255, 255, .45); }

/* ==========================================================
   서브 페이지 (내용관리: 인사말, 조직도, 임원명단, 찾아오시는 길)
   내용관리 스킨 style.css를 이기도록 #container, #ctt_con 기준으로 지정
   ========================================================== */

.sub_menu { display: none !important; }   /* 기존 "HOME > 제목" 막대 숨김 */

#container #ctt {
    box-sizing: border-box !important;
    float: none !important;
    width: auto !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 88px 20px 144px !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
}
#container #ctt .title {
    display: block !important;
    position: static !important;
    margin: 0 0 56px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    text-align: left !important;
}
#container #ctt .title_sub {
    display: block !important;
    position: static !important;
    width: auto !important; height: auto !important;
    overflow: visible !important; clip: auto !important;
    margin: 0 !important; padding: 0 !important;
    border: 0 !important; background: none !important;
    font-size: 34px !important; font-weight: 700 !important; line-height: 1.3 !important;
    letter-spacing: -0.035em; color: var(--sw-ink) !important; text-align: left !important;
}
#container #ctt_con {
    margin: 0 !important; padding: 0 !important; border: 0 !important;
    font-size: 17px; line-height: 1.85; color: #39424B;
}
:where(#ctt_con) * { box-sizing: border-box; }
#ctt_con .sw-note { margin: 40px 0 0; font-size: 14px; line-height: 1.6; color: var(--sw-mute); }

/* 인사말 */
#ctt_con .sw-gr { display: flex; gap: 88px; align-items: flex-start; }
#ctt_con .sw-gr-ph {
    width: 400px; height: 520px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    margin: 0; overflow: hidden;
    font-size: 14px; color: var(--sw-mute);
    background: var(--sw-bg2);
}
#ctt_con .sw-gr-ph p { margin: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
#ctt_con .sw-gr-ph img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
#ctt_con .sw-gr-txt { flex: 1; min-width: 0; padding-top: 4px; }
#ctt_con .sw-gr-txt p { margin: 0 0 24px; padding: 0; font-size: 17px; line-height: 1.85; color: #39424B; }
#ctt_con .sw-gr-txt .sw-gr-lead {
    margin-bottom: 36px;
    font-size: 26px; line-height: 1.5; font-weight: 600;
    color: var(--sw-navy); letter-spacing: -0.03em;
}
#ctt_con .sw-gr-txt .sw-gr-sign {
    margin: 56px 0 0;
    display: flex; justify-content: flex-end; align-items: baseline; gap: 16px;
}
#ctt_con .sw-gr-sign span { font-size: 15px; color: var(--sw-sub); }
#ctt_con .sw-gr-sign strong { font-size: 24px; font-weight: 600; color: var(--sw-ink); letter-spacing: 0.12em; }

/* 조직도
   1줄: 대의원총회 - 회장 - 감사/고문·자문, 스포츠공정위원회(독립)
   2줄: 회장 아래 부회장단/이사회 - 위원회
   3줄: 이사회 아래 사무국장 */
#ctt_con .sw-org {
    --sw-cg: 64px;   /* 가로 간격 */
    --sw-rg: 56px;   /* 세로 간격 */
    --sw-ch: 64px;   /* 칸 한 줄 높이 */
    display: grid;
    grid-template-columns: 1fr 1.1fr 1.2fr .85fr;
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
        "asm pres aud fair"
        ".   brd  cms ."
        ".   sec  cms .";
    column-gap: var(--sw-cg);
    row-gap: var(--sw-rg);
    max-width: 1100px;
    margin: 0 auto;
}
#ctt_con .sw-org-asm  { grid-area: asm; }
#ctt_con .sw-org-pres { grid-area: pres; }
#ctt_con .sw-org-aud  { grid-area: aud; }
#ctt_con .sw-org-fair { grid-area: fair; }
#ctt_con .sw-org-brd  { grid-area: brd; }
#ctt_con .sw-org-cms  { grid-area: cms; }
#ctt_con .sw-org-sec  { grid-area: sec; }

#ctt_con .sw-ob {
    position: relative;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-height: var(--sw-ch); margin: 0; padding: 0 12px;
    font-size: 16px; line-height: 1.4; color: var(--sw-ink); text-align: center;
    background: #fff; border: 1px solid var(--sw-line);
}
#ctt_con .sw-ob-s { display: block; margin-top: 4px; font-size: 14px; font-weight: 400; color: var(--sw-sub); }
#ctt_con .sw-ob-line { border-color: var(--sw-navy); color: var(--sw-navy); font-weight: 600; }
#ctt_con .sw-ob-navy { background: var(--sw-navy); border-color: var(--sw-navy); color: #fff; font-weight: 600; font-size: 17px; }
#ctt_con .sw-ob-gray { background: var(--sw-bg2); border-color: var(--sw-bg2); font-weight: 600; }

/* 두 칸으로 나뉜 상자 */
#ctt_con .sw-ob-stack { justify-content: flex-start; align-items: stretch; padding: 0; }
#ctt_con .sw-ob-c {
    display: flex; align-items: center; justify-content: center;
    height: var(--sw-ch); flex-shrink: 0; margin: 0;
}
#ctt_con .sw-ob-c + .sw-ob-c,
#ctt_con .sw-ob-list { border-top: 1px solid var(--sw-line); }
#ctt_con .sw-ob-line .sw-ob-c + .sw-ob-c,
#ctt_con .sw-ob-line .sw-ob-list { border-top-color: var(--sw-navy); }
#ctt_con .sw-ob-list {
    flex: 1;
    display: flex; flex-direction: column; justify-content: center; gap: 6px;
    margin: 0; padding: 20px 0;
}
#ctt_con .sw-ob-list > div { margin: 0; font-size: 16px; font-weight: 400; line-height: 1.6; color: var(--sw-ink); }

/* 연결선 */
#ctt_con .sw-org-asm::after,
#ctt_con .sw-org-pres::after,
#ctt_con .sw-org-brd::after {
    content: ''; position: absolute; left: 100%; top: 50%;
    width: calc(var(--sw-cg) + 2px); height: 1px;
    background: #AAB3BC;
}
#ctt_con .sw-org-brd::after { top: var(--sw-ch); }
#ctt_con .sw-org-brd::before,
#ctt_con .sw-org-sec::before {
    content: ''; position: absolute; left: 50%; bottom: 100%;
    width: 1px; height: calc(var(--sw-rg) + 2px);
    background: #AAB3BC;
}

/* 임원명단 */
#ctt_con .sw-og { margin: 0 0 64px; }
#ctt_con .sw-og-h {
    margin: 0 0 24px; padding: 0 0 16px;
    border-bottom: 2px solid var(--sw-navy);
    font-size: 20px; font-weight: 600; line-height: 1.4; color: var(--sw-ink);
}
#ctt_con .sw-ocs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
#ctt_con .sw-oc { margin: 0; padding: 26px 28px 28px; border: 1px solid var(--sw-line); }
#ctt_con .sw-oc p { margin: 0; padding: 0; }
#ctt_con .sw-oc .sw-oc-r { font-size: 14px; line-height: 1.5; color: var(--sw-sub); }
#ctt_con .sw-oc .sw-oc-n { margin-top: 10px; font-size: 22px; font-weight: 600; line-height: 1.3; letter-spacing: 0.02em; color: var(--sw-ink); }
#ctt_con .sw-oc .sw-oc-a { margin-top: 8px; font-size: 14px; line-height: 1.45; color: var(--sw-sub); }
#ctt_con .sw-oc .sw-oc-a.sw-oc-none { color: #B8C0C7; }

/* 찾아오시는 길 */
#ctt_con .sw-map {
    display: flex; align-items: center; justify-content: center;
    height: 460px; margin: 0; overflow: hidden;
    font-size: 15px; color: var(--sw-mute);
    background: var(--sw-bg2);
}
#ctt_con .sw-map p { margin: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
#ctt_con .sw-map a { display: block; width: 100%; height: 100%; }
#ctt_con .sw-map img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
#ctt_con .sw-map iframe { display: block; width: 100%; height: 100%; border: 0; }
#ctt_con .sw-map-link { margin: 12px 0 0; text-align: right; font-size: 14px; line-height: 1.5; }
#ctt_con .sw-map-link a { color: var(--sw-sub); text-decoration: none; border-bottom: 1px solid var(--sw-mute); }
#ctt_con .sw-lc { margin: 48px 0 0; border-top: 2px solid var(--sw-navy); }
#ctt_con .sw-lc-row { display: flex; margin: 0; padding: 24px 0; border-bottom: 1px solid var(--sw-line); font-size: 16px; line-height: 1.6; }
#ctt_con .sw-lc-k { width: 160px; flex-shrink: 0; padding-left: 8px; font-weight: 600; color: var(--sw-ink); }
#ctt_con .sw-lc-v { color: var(--sw-sub); }

/* ==========================================================
   글쓰기 화면 (모든 게시판 공통)
   각 스킨의 write.skin.php는 그대로 두고 모양만 덮어씀
   ========================================================== */
#container .sub_cont .sub_hd { display: none !important; }   /* 갤러리 원본 스킨의 옛 제목 숨김 */

#container #bo_w {
    box-sizing: border-box;
    max-width: 920px !important;
    margin: 0 auto !important;
    padding: 88px 20px 144px;
    color: var(--sw-ink);
}
#container #bo_w form { width: auto !important; }
#container #bo_w * { box-sizing: border-box; }
#container #bo_w .write_div { position: relative; margin: 0 0 12px; padding: 0; border: 0; background: none; }
#container #bo_w .write_div .write_div { margin: 0; }

#container #bo_w .frm_input,
#container #bo_w select {
    height: 48px; margin: 0; padding: 0 16px;
    font-family: inherit; font-size: 15px; color: var(--sw-ink);
    background: #fff; border: 1px solid var(--sw-line); border-radius: 0; box-shadow: none;
}
#container #bo_w textarea {
    width: 100%; min-height: 320px; margin: 0; padding: 14px 16px;
    font-family: inherit; font-size: 15px; line-height: 1.7; color: var(--sw-ink);
    background: #fff; border: 1px solid var(--sw-line); border-radius: 0; box-shadow: none;
}
#container #bo_w .frm_input:focus,
#container #bo_w select:focus,
#container #bo_w textarea:focus { border-color: var(--sw-navy); outline: 0; }
#container #bo_w .frm_input::placeholder,
#container #bo_w textarea::placeholder { color: var(--sw-mute); }
#container #bo_w .full_input { width: 100%; }
#container #bo_w .half_input { width: calc(50% - 6px); margin: 0 8px 8px 0; }
#container #bo_w .bo_w_info .half_input:nth-of-type(2n) { margin-right: 0; }

/* 공지, 비밀글 같은 옵션 */
#container #bo_w .bo_v_option { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; }
#container #bo_w .bo_v_option li { margin: 0; padding: 0; font-size: 14px; color: var(--sw-sub); }
#container #bo_w .bo_v_option label { cursor: pointer; }

/* 제목 + 임시 저장 */
#container #bo_w #autosave_wrapper { position: relative; margin: 0; }
#container #bo_w #wr_subject { padding-right: 150px; }
#container #bo_w #btn_autosave {
    position: absolute; right: 8px; top: 8px;
    height: 32px; margin: 0; padding: 0 12px;
    font-family: inherit; font-size: 13px; color: var(--sw-sub);
    background: #fff; border: 1px solid var(--sw-line); border-radius: 0;
}
#container #bo_w .wr_content { margin: 0; }

/* 링크, 파일 (아이콘 대신 글자) */
#container #bo_w .bo_w_link label,
#container #bo_w .bo_w_flie .lb_icon {
    position: absolute; left: 0; top: 0; z-index: 1;
    display: flex; align-items: center; justify-content: center;
    width: 64px; height: 48px; margin: 0; padding: 0;
    font-size: 13px; color: var(--sw-sub);
    background: var(--sw-bg2); border: 1px solid var(--sw-line);
}
#container #bo_w .bo_w_link label i,
#container #bo_w .bo_w_flie .lb_icon i { display: none; }
#container #bo_w .bo_w_link label::before { content: '링크'; }
#container #bo_w .bo_w_flie .lb_icon::before { content: '파일'; }
#container #bo_w .bo_w_link .frm_input { padding-left: 80px; }
#container #bo_w .bo_w_flie .file_wr {
    position: relative;
    display: flex; align-items: center;
    height: 48px; margin: 0; padding: 0 16px 0 80px;
    background: #fff; border: 1px solid var(--sw-line);
}
#container #bo_w .bo_w_flie .file_wr .lb_icon { left: -1px; top: -1px; }
#container #bo_w .bo_w_flie .frm_file { height: auto; padding: 0; font-family: inherit; font-size: 14px; color: var(--sw-sub); border: 0; background: none; }
#container #bo_w .bo_w_flie > .frm_input { margin-top: 8px; }
#container #bo_w .file_del { display: block; margin-top: 6px; font-size: 13px; color: var(--sw-sub); }

/* 버튼 */
#container #bo_w .btn_confirm { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
#container #bo_w .btn_confirm .btn_cancel,
#container #bo_w .btn_confirm .btn_submit {
    float: none !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    width: auto !important; min-width: 120px;
    height: 52px !important; margin: 0 !important;
    font-family: inherit; font-size: 15px !important; line-height: 1 !important;
    white-space: nowrap !important; text-decoration: none;
    border-radius: 0 !important; cursor: pointer;
}
#container #bo_w .btn_confirm .btn_cancel {
    padding: 0 40px !important;
    color: var(--sw-sub) !important;
    background: #fff !important; border: 1px solid var(--sw-line) !important;
}
#container #bo_w .btn_confirm .btn_submit {
    padding: 0 48px !important;
    font-weight: 500; color: #fff !important;
    background: var(--sw-navy) !important; border: 0 !important;
}

/* ==========================================================
   댓글 (모든 게시판 공통)
   ========================================================== */
#container .cmt_btn {
    display: block; width: 100%; margin: 56px 0 0; padding: 0 0 14px;
    font-family: inherit; font-size: 17px; text-align: left; color: var(--sw-ink);
    background: none; border: 0; border-bottom: 2px solid var(--sw-navy); border-radius: 0; cursor: pointer;
}
#container .cmt_btn::before,
#container .cmt_btn::after,
#container .cmt_btn span::before,
#container .cmt_btn span::after { display: none !important; content: none !important; }
#container .cmt_btn .total { color: var(--sw-ink); }
#container .cmt_btn .total b { margin-right: 4px; font-weight: 600; }
#container .cmt_btn .cmt_more { display: none; }

#container #bo_vc { margin: 0; padding: 0; }
#container #bo_vc > h2,
#container #bo_vc header h2,
#container #bo_vc_w > h2 { display: none; }
#container #bo_vc article {
    position: relative; display: block;
    margin: 0; padding: 20px 0;
    background: none; border: 0; border-bottom: 1px solid var(--sw-line);
}
#container #bo_vc .pf_img { display: none; }
#container #bo_vc .cm_wrap { float: none; width: auto; margin: 0; padding: 0; }
#container #bo_vc header {
    position: static;
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
    margin: 0; padding: 0;
    font-size: 14px; color: var(--sw-ink); background: none;
}
#container #bo_vc header a { color: inherit; }
#container #bo_vc .bo_vc_hdinfo { font-size: 13px; color: var(--sw-mute); }
#container #bo_vc .bo_vc_hdinfo i { display: none; }
#container #bo_vc .cmt_contents { margin: 8px 0 0; padding: 0; font-size: 15px; line-height: 1.7; color: #39424B; }
#container #bo_vc .cmt_contents p { margin: 0; }
#container #bo_vc_empty {
    margin: 0; padding: 40px 0;
    text-align: center; font-size: 14px; color: var(--sw-mute);
    border-bottom: 1px solid var(--sw-line);
}
#container #bo_vc .bo_vl_opt { position: absolute; right: 0; top: 16px; }
#container #bo_vc .btn_cm_opt {
    height: 28px; padding: 0 10px;
    font-family: inherit; font-size: 12px; color: var(--sw-sub);
    background: #fff; border: 1px solid var(--sw-line); border-radius: 0;
}
#container #bo_vc .btn_cm_opt i { display: none; }
#container #bo_vc .btn_cm_opt::before { content: '관리'; }
#container #bo_vc .bo_vc_act {
    position: absolute; right: 0; top: 32px; z-index: 5;
    min-width: 80px; margin: 0; padding: 4px 0; list-style: none;
    background: #fff; border: 1px solid var(--sw-line);
}
#container #bo_vc .bo_vc_act li { margin: 0; }
#container #bo_vc .bo_vc_act a { display: block; padding: 8px 14px; font-size: 13px; color: var(--sw-sub); }

/* 댓글 쓰기 */
#container #bo_vc_w { margin: 24px 0 0; padding: 0; background: none; border: 0; }
#container #bo_vc_w textarea {
    box-sizing: border-box; width: 100%; height: 120px; margin: 0; padding: 14px 16px;
    font-family: inherit; font-size: 15px; line-height: 1.7; color: var(--sw-ink);
    background: #fff; border: 1px solid var(--sw-line); border-radius: 0; resize: vertical;
}
#container #bo_vc_w textarea:focus { border-color: var(--sw-navy); outline: 0; }
#container #bo_vc_w .bo_vc_w_wr {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px;
    margin-top: 12px;
}
#container #bo_vc_w .frm_input {
    height: 44px; margin: 0 8px 8px 0; padding: 0 14px;
    font-family: inherit; font-size: 14px;
    border: 1px solid var(--sw-line); border-radius: 0;
}
#container #bo_vc_w .btn_confirm { display: flex; align-items: center; gap: 16px; margin: 0; }
#container #bo_vc_w .secret_cm { font-size: 14px; color: var(--sw-sub); }
#container #bo_vc_w .btn_submit {
    height: 44px; padding: 0 28px;
    font-family: inherit; font-size: 14px; font-weight: 500; color: #fff;
    background: var(--sw-navy); border: 0; border-radius: 0; cursor: pointer;
}

/* ==========================================================
   반응형 (테마 기존 기준 992 / 768 따름)
   ========================================================== */

@media (max-width: 1200px) {
    .sw-gnb-li { width: 92px; }
    .sw-gnb-a { font-size: 16px; }
    .sw-gnb-li.on > .sw-gnb-a::after,
    .sw-gnb-li:hover > .sw-gnb-a::after { left: 18px; right: 18px; }
    .sw-hd .sw-logo img { height: 40px; }

    #ctt_con .sw-gr { gap: 56px; }
    #ctt_con .sw-gr-ph { width: 340px; height: 442px; }
}

@media (max-width: 992px) {
    .sw-hd, .sw-hd-in { height: 64px; }
    .sw-hd .sw-logo img { height: 34px; }
    .sw-gnb, .sw-mm-bg { display: none !important; }
    .sw-burger { display: flex; }

    .sw-sv, .sw-sv-in { height: 180px; }
    .sw-crumb { font-size: 12px; }
    .sw-sv-title { margin-top: 10px; font-size: 28px; }

    .sw-tabs {
        overflow-x: auto; overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .sw-tabs::-webkit-scrollbar { display: none; }
    .sw-tabs-in { justify-content: flex-start; width: max-content; min-width: 100%; padding: 0 8px; }
    .sw-tab { height: 50px; padding: 0 12px; font-size: 15px; }
    .sw-tab.on::after { left: 12px; right: 12px; bottom: 0; }

    /* 서브 공통 */
    #container #ctt { padding: 44px 20px 72px !important; }
    #container #ctt .title { margin-bottom: 28px !important; }
    #container #ctt .title_sub { font-size: 24px !important; }
    #ctt_con .sw-note { margin-top: 28px; font-size: 13px; }

    /* 인사말 */
    #ctt_con .sw-gr { display: block; }
    #ctt_con .sw-gr-ph { width: auto; height: 400px; }
    #ctt_con .sw-gr-txt { margin-top: 32px; padding-top: 0; }
    #ctt_con .sw-gr-txt p { margin-bottom: 18px; font-size: 15px; }
    #ctt_con .sw-gr-txt .sw-gr-lead { margin-bottom: 24px; font-size: 20px; }
    #ctt_con .sw-gr-txt .sw-gr-sign { margin-top: 36px; gap: 12px; }
    #ctt_con .sw-gr-sign span { font-size: 13px; }
    #ctt_con .sw-gr-sign strong { font-size: 20px; letter-spacing: 0.1em; }

    /* 조직도: 2열 (대의원총회 아래로 회장, 오른쪽에 감사·위원회, 맨 아래 스포츠공정위원회) */
    #ctt_con .sw-org {
        --sw-cg: 16px;
        --sw-rg: 28px;
        --sw-ch: 48px;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto 1fr auto;
        grid-template-areas:
            "asm  ."
            "pres aud"
            "brd  cms"
            "sec  cms"
            "fair fair";
        max-width: 400px;
    }
    #ctt_con .sw-ob { padding: 0 8px; font-size: 14px; }
    #ctt_con .sw-ob-navy { font-size: 15px; }
    #ctt_con .sw-ob-s { margin-top: 2px; font-size: 12px; }
    #ctt_con .sw-ob-stack { padding: 0; }
    #ctt_con .sw-org-asm { padding: 10px 8px; }
    #ctt_con .sw-org-asm::after { left: 50%; top: 100%; width: 1px; height: calc(var(--sw-rg) + 2px); }
    #ctt_con .sw-ob-list { gap: 4px; padding: 12px 0; }
    #ctt_con .sw-ob-list > div { font-size: 13px; }
    #ctt_con .sw-org-fair { margin-top: 12px; }

    /* 임원명단 */
    #ctt_con .sw-og { margin-bottom: 40px; }
    #ctt_con .sw-og-h { margin-bottom: 14px; padding-bottom: 12px; font-size: 17px; }
    #ctt_con .sw-ocs { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    #ctt_con .sw-oc { padding: 16px 16px 18px; }
    #ctt_con .sw-oc .sw-oc-r { font-size: 12px; }
    #ctt_con .sw-oc .sw-oc-n { margin-top: 6px; font-size: 18px; }
    #ctt_con .sw-oc .sw-oc-a { margin-top: 6px; font-size: 12px; }

    /* 찾아오시는 길 */
    #ctt_con .sw-map { height: 260px; font-size: 14px; }
    #ctt_con .sw-lc { margin-top: 28px; }
    #ctt_con .sw-lc-row { flex-direction: column; gap: 6px; padding: 16px 4px; }
    #ctt_con .sw-lc-k { width: auto; padding-left: 0; font-size: 14px; }
    #ctt_con .sw-lc-v { font-size: 15px; }

    /* 글쓰기 */
    #container #bo_w { padding: 44px 20px 72px; }
    #container #bo_w .half_input { width: 100%; margin-right: 0; }
    #container #bo_w textarea { min-height: 240px; }
    #container #bo_w .btn_confirm > * { flex: 1; padding: 0; }

    /* 댓글 */
    #container .cmt_btn { margin-top: 36px; font-size: 16px; }
    #container #bo_vc_w .bo_vc_w_wr { display: block; }
    #container #bo_vc_w .btn_confirm { justify-content: space-between; margin-top: 8px; }
}

@media (max-width: 768px) {
    .sw-ft { padding: 40px 0 36px; }
    .sw-ft-top { display: block; padding-bottom: 24px; }
    .sw-ft .sw-logo img { height: 34px; }
    .sw-ft-nav { margin-top: 24px; padding-top: 0; gap: 10px 18px; font-size: 13px; }
    .sw-ft-bot {
        grid-template-columns: 1fr;
        grid-template-areas: "info" "side" "copy";
        padding-top: 20px;
    }
    .sw-ft-info p { font-size: 13px; }
    .sw-gap { display: none; }
    .sw-ft-mail { display: block; }
    .sw-ft-side { margin-top: 20px; gap: 8px; }
    .sw-ft-side a { padding: 8px 12px; font-size: 12px; }
    .sw-copy { margin-top: 20px; font-size: 11px; }
}

/* ==========================================================
   페이지 큰 제목 강제 표시
   기존 스킨(갤러리, 내용관리)이 제목을 숨기는 것을 무력화
   ========================================================== */
#container .sw-bo .sw-bo-h,
#container #ctt .title,
#container #ctt .title_sub {
    display: block !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    text-indent: 0 !important;
    transform: none !important;
    animation: none !important;
    background: none !important;
}
#container .sw-bo .sw-bo-h,
#container #ctt .title_sub {
    font-size: 34px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.035em !important;
    color: var(--sw-ink) !important;
}
@media (max-width: 992px) {
    #container .sw-bo .sw-bo-h,
    #container #ctt .title_sub { font-size: 24px !important; }
}

/* 내용관리 제목 (그누보드 기본 스킨 header h1 형태) */
#container #ctt > header {
    display: block !important; position: static !important;
    width: auto !important; height: auto !important; overflow: visible !important;
    margin: 0 0 56px !important; padding: 0 !important; border: 0 !important; background: none !important;
}
#container #ctt > header h1 {
    display: block !important; position: static !important;
    width: auto !important; height: auto !important; overflow: visible !important;
    clip: auto !important; visibility: visible !important; opacity: 1 !important; text-indent: 0 !important;
    margin: 0 !important; padding: 0 !important;
    font-size: 34px !important; font-weight: 700 !important; line-height: 1.3 !important;
    letter-spacing: -0.035em !important; color: var(--sw-ink) !important;
}
@media (max-width: 992px) {
    #container #ctt > header { margin-bottom: 28px !important; }
    #container #ctt > header h1 { font-size: 24px !important; }
}