@charset "utf-8";

/* 공통 레이아웃 */
html { scroll-behavior: smooth; }   

.sub-container {display: flex;min-height: calc(100vh - 320px);}
.sub-container .side-menu {width: 220px;font-size: 1rem;background-color: #fff;/* border-right: 1px solid #ddd; */padding: 50px 0;}
.sub-container .side-menu .menu-title {background: #002d6d;color: #fff;font-weight: 500;padding: 16px;text-align: center;font-size: 1.25rem;border-radius: 10px;margin-bottom: 16px;}
.sub-container .side-menu ul {list-style: none;padding: 0;margin: 0;border: 1px solid #f0f0f0;border-radius: 10px;overflow: hidden;}
.sub-container .side-menu li {padding: 13px 20px;border-bottom: 1px solid #f0f0f0;cursor: pointer;background-color: #fff;transition: background-color 0.2s;position: relative;}
.sub-container .side-menu li:hover {background-color: #f0f0f0;}
.sub-container .side-menu li.active {background-color: #f1f4f8;font-weight: bold;}
.sub-container .side-menu li.active::after {position: absolute;display: block; content: "";width: 8px;height: 13px;background: url(../../images/home/active_arrow.png) no-repeat center;top: 50%;transform: translateY(-50%); right: 20px;}
.sub-container .side-menu li a {display: inline-block; width: 100%; height: 100%;}
.sub-container .content-area {flex: 1;padding: 40px 60px;}
.sub-container .breadcrumb {font-size: 14px;color: #888;margin-bottom: 10px;}
.sub-container .page-title {font-size: 1.5rem;font-weight: 700;margin-bottom: 20px;border-bottom: 1px solid #ddd;padding-bottom: 8px;}
.sub-container .page-content {font-size: 16px;line-height: 1.7; color: #333;padding: 20px 0;}
.sub-container .page-content.login {padding: 50px 0; display: flex;justify-content: center;align-items: center;margin: 0;}

/* 반응형 */
@media screen and (max-width: 1200px) {
  .sub-container .side-menu {display: none;}
  .sub-container .content-area {padding: 30px 10px;}
  .sub-container .page-content {padding: 0;}
}
@media screen and (max-width: 500px) {
  .sub-container .page-content.login {padding: 0; }
}

/* 협회장인사말 */
.intro-greeting {position: relative;}
.intro-greeting::before {display: block;position: absolute;content: "";width: 100%;height: 100%;background: #ccc;z-index: -1;background-size: 125px;background: url(../../images/home/gnta.png) no-repeat bottom 94px right 0px;filter: opacity(0.08);}
.intro-greeting p {margin-bottom: 24px;}
.intro-greeting .greeting {font-size: 18px;font-weight: bold;margin-bottom: 16px;}
.intro-greeting .intro {font-size: 16px;font-weight: 500;color: #555;margin-bottom: 24px;}
.intro-greeting .sign-off {font-weight: 600;text-align: right;}


:root{
  --navy:#002d6d;
  --court:#2a8c4a;
  --ball:#f5e56b;
  --ink:#333;
  --muted:#6b7280;
  --bg:#f7f9fc;
}
/* 인사말 상단 히어로 */
.intro-hero{background:linear-gradient(180deg, rgba(0,0,0,0.03), rgba(0,0,0,0)) , repeating-linear-gradient(0deg, transparent 0 18px, rgba(0,0,0,0.015) 18px 19px); border-radius: 12px;padding: 28px 24px;margin-bottom: 28px;}
.intro-hero .hero-inner{display: grid;grid-template-columns: 1.2fr 0.8fr;align-items: start;gap: 20px;}
.intro-hero .kicker{color: var(--navy);font-weight: 700;letter-spacing: .02em;margin: 0 0 6px;}
.intro-hero .hero-title{font-size: clamp(1.35rem, 2.2vw, 1.9rem);line-height: 1.3;margin: 0 0 10px;color: var(--ink);}
.hero-badges{display: flex; gap: 8px; padding:0; margin: 12px 0 0; list-style:none;}
.hero-badges li{border:1px solid #e5e7eb; padding:6px 10px; border-radius: 999px;font-size: .9rem; background:#fff;}
.hero-portrait{justify-self: end;margin:0;}
.hero-portrait img{width: 156px; height: 200px; object-fit: cover; box-shadow: 0 8px 30px rgba(0,0,0,.08);}

/* 반응형 */
@media (max-width: 1200px){
  .intro-body{ grid-template-columns: 1fr; }
  .chair-card{ position: static; order: -1; }
  .intro-hero .hero-inner{ grid-template-columns: 1fr; }
  .hero-portrait{ justify-self: start; }
  .intro-greeting::before {background: url(../../images/home/gnta.png) no-repeat bottom 30px right 0px;}
}
@media (max-width: 640px){
  .hero-portrait img{ width: 140px; height:175px; }
  .pullquote blockquote{ padding-left:30px; }
  .pullquote blockquote::before{ font-size:2rem; top:-4px; }
}

/* 게시판 리스트 ; 협회소개-임원게시판 */
.board-top {display: flex;justify-content: space-between;align-items: center;margin-bottom: 15px;flex-wrap: wrap;}
.board-top .total-count {font-size: 14px;}
.board-top .search-box {display: flex;gap: 5px;}
.board-top .search-box input {padding: 5px 10px;border: 1px solid #ccc;border-radius: 4px;}
.board-top .search-box button {padding: 6px 12px;background: #002d6d;color: #fff;border: none;border-radius: 4px;cursor: pointer;}
.board-list {border-top: 2px solid #333;}
.board-header,.board-row a {display: grid;grid-template-columns: 80px 1fr 120px 120px;align-items: center;padding: 10px;}
.board-header {background: #f5f5f5;font-weight: bold;border-bottom: 1px solid #ddd;}
.board-row {border-bottom: 1px solid #eee;}
.board-row a {text-decoration: none;color: #333;transition: background-color 0.2s;}
.board-row a:hover {background: #f0f8ff;}
.board-row .title {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.pagination {display: flex;justify-content: center;gap: 5px;margin-top: 20px;}
.pagination a {padding: 6px 10px;border: 1px solid #ddd;color: #333;text-decoration: none;border-radius: 4px;}
.pagination a.active {background: #0066cc;color: #fff;}
.pagination a:hover {background: #f0f8ff;}
/* 반응형 */
@media (max-width: 768px) {
  .board-header,.board-row a {grid-template-columns: 50px 1fr;grid-template-rows: auto auto;row-gap: 5px;}
  .board-row .writer,.board-row .date,.board-header .writer,.board-header .date {font-size: 12px;color: #666;}
}

/* 갤러리 게시판 리스트 ; 시군협회소개-갤러리게시판 */
.galleryboard-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}

/* 카드 */
.galleryboard-grid .gallery-item { background:#fff; border:1px solid #e8e8e8; border-radius:12px; overflow:hidden; width: 100%;}
.galleryboard-grid .gallery-item .card-link { display:block; color:inherit; text-decoration:none; height:100%; }
.galleryboard-grid .gallery-item .card-link:focus-visible { outline: 3px solid #86b7ff; outline-offset: 2px; }

.galleryboard-grid .galleryboard-thumb { width:100%; aspect-ratio: 4 / 3; background:#f2f4f7; overflow:hidden; }
.galleryboard-grid .galleryboard-thumb img {width:100%; height:100%; object-fit: cover; display:block; transition: transform .3s ease;}
.galleryboard-grid .card-body { padding: 12px; display:flex; flex-direction:column; gap:8px; }
.galleryboard-grid .card-title {font-size: 16px; line-height:1.4; font-weight: 600;max-height: 2.8em; overflow: hidden;display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient:vertical;}
.galleryboard-grid .card-meta { display:flex; gap:10px; font-size: 13px; color:#666; }

.galleryboard-grid .gallery-item:hover .galleryboard-thumb img { transform: scale(1.05); }
.galleryboard-grid .gallery-item:hover { box-shadow: 0 6px 20px rgba(0,0,0,.06); border-color: transparent; }

/* 반응형 */
@media (max-width: 1200px) {
  .galleryboard-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .galleryboard-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .galleryboard-grid { grid-template-columns: 1fr; }
  .search-box { width:100%; }
  .search-box input { flex:1; min-width: 0; }
}

/* 고감도 터치 타겟 보정 */
@media (hover:none) {
  .galleryboard-grid .gallery-item:hover .galleryboard-thumb img { transform:none; }
}


/* 게시글 상세페이지 */

/* 제목/메타 */
.board-view .view-head { padding: 8px 0 16px; border-bottom:1px solid #e5e7eb; }
.board-view .view-title { margin:0 0 10px; font-size:1.5rem; line-height:1.35; font-weight:700; }

.board-view .view-meta {
  display:flex; gap:18px; margin:0; padding:0; font-size:14px; color:#666;
}
.board-view .view-meta > div { display: flex; margin-right: 20px; }
.board-view .view-meta dt { font-weight:600; color:#555; }

/* 첨부파일 */
.board-view .view-attach { padding:14px 0; border-bottom:1px solid #f0f0f0; }
.board-view .view-attach ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.board-view .view-attach li { display:flex;justify-content:space-between; align-items:center; gap:10px;}
.board-view .view-attach a { display:inline-flex;align-items:center; gap:8px; color:#333; text-decoration:none;}
.board-view .view-attach a:hover { text-decoration:underline;}
.board-view .file-size { font-size:13px; color:#888;}

/* 파일 아이콘 (간단한 CSS 아이콘) */
      /* ===== 공통 베이스 ===== */
      .board-view .file-icon {
        display:inline-block;
        width:18px; height:22px;
        border:1px solid #d1d5db;
        border-radius:3px;
        position:relative;
        background:#f6f7f9;
        vertical-align:middle;
        margin-right:6px;
        border-color:#d1d5db; background:#f6f7f9; 
      }
      .board-view .file-icon::after {
        content:"FILE";
        position:absolute; top:50%; left:50%;
        transform:translate(-50%,-50%);
        font-size:10px; font-weight:700;
        color:#445;
        letter-spacing:-0.2px;
        content:"FILE"; color:#445;
      }

      /* ===== 문서류 ===== */
      /* PDF */
      .board-view .file-icon.pdf { border-color:#8fb4ff; background:#eef5ff; }
      .board-view .file-icon.pdf::after { content:"PDF"; color:#2c5fd3; }

      /* HWP / HWPX */
      .board-view .file-icon.hwp,
      .board-view .file-icon.hwpx { border-color:#ff9aa2; background:#fff0f1; }
      .board-view .file-icon.hwp::after,
      .board-view .file-icon.hwpx::after { content:"HWP"; color:#c81e3a; }

      /* MS Word */
      .board-view .file-icon.doc,
      .board-view .file-icon.docx { border-color:#9bb8ff; background:#eef3ff; }
      .board-view .file-icon.doc::after,
      .board-view .file-icon.docx::after { content:"DOC"; color:#2157d3; }

      /* MS Excel */
      .board-view .file-icon.xls,
      .board-view .file-icon.xlsx { border-color:#7ac09f; background:#e9f7f1; }
      .board-view .file-icon.xls::after,
      .board-view .file-icon.xlsx::after { content:"XLSX"; color:#2e7d5b; }

      /* MS PowerPoint */
      .board-view .file-icon.ppt,
      .board-view .file-icon.pptx { border-color:#ffb38a; background:#fff2eb; }
      .board-view .file-icon.ppt::after,
      .board-view .file-icon.pptx::after { content:"PPT"; color:#c24a17; }

      /* 텍스트/데이터 */
      .board-view .file-icon.txt { border-color:#c9c9c9; background:#f6f6f6; }
      .board-view .file-icon.txt::after { content:"TXT"; color:#555; }

      .board-view .file-icon.csv { border-color:#91d3a6; background:#effbf3; }
      .board-view .file-icon.csv::after { content:"CSV"; color:#237a48; }

      .board-view .file-icon.pdfa { border-color:#8fb4ff; background:#eef5ff; }
      .board-view .file-icon.pdfa::after { content:"PDFA"; color:#2c5fd3; }

      /* ===== 이미지류 ===== */
      .board-view .file-icon.jpg,
      .board-view .file-icon.jpeg { border-color:#f6b26b; background:#fff4e9; }
      .board-view .file-icon.jpg::after,
      .board-view .file-icon.jpeg::after { content:"JPG"; color:#a85b10; }

      .board-view .file-icon.png { border-color:#9ad0f5; background:#eef9ff; }
      .board-view .file-icon.png::after { content:"PNG"; color:#106aa8; }

      .board-view .file-icon.gif { border-color:#caa8ff; background:#f6efff; }
      .board-view .file-icon.gif::after { content:"GIF"; color:#6c2dbf; }

      .board-view .file-icon.webp { border-color:#89d3b5; background:#ebfbf4; }
      .board-view .file-icon.webp::after { content:"WEBP"; color:#1f7a57; }

      .board-view .file-icon.svg { border-color:#a3d2ff; background:#eef7ff; }
      .board-view .file-icon.svg::after { content:"SVG"; color:#1c5fa8; }

      .board-view .file-icon.bmp { border-color:#cfd4e1; background:#f4f6fb; }
      .board-view .file-icon.bmp::after { content:"BMP"; color:#4a5568; }

      .board-view .file-icon.tif,
      .board-view .file-icon.tiff { border-color:#ffd28a; background:#fff8e9; }
      .board-view .file-icon.tif::after,
      .board-view .file-icon.tiff::after { content:"TIFF"; color:#a86a10; }

      /* ===== 압축류 ===== */
      .board-view .file-icon.zip { border-color:#8ab4a1; background:#ecf7f0; }
      .board-view .file-icon.zip::after { content:"ZIP"; color:#1f6b43; }

      .board-view .file-icon.rar { border-color:#b98aff; background:#f4ecff; }
      .board-view .file-icon.rar::after { content:"RAR"; color:#5b1fa8; }

      .board-view .file-icon.tar,
      .board-view .file-icon.gz,
      .board-view .file-icon.tgz { border-color:#ffcc9a; background:#fff4e6; }
      .board-view .file-icon.tar::after,
      .board-view .file-icon.gz::after,
      .board-view .file-icon.tgz::after { content:"TAR"; color:#a85b10; }

      /* ===== 오디오/비디오 ===== */
      .board-view .file-icon.mp3,
      .board-view .file-icon.wav,
      .board-view .file-icon.flac { border-color:#9ad0ff; background:#eef7ff; }
      .board-view .file-icon.mp3::after { content:"MP3"; color:#1e63a8; }
      .board-view .file-icon.wav::after { content:"WAV"; color:#1e63a8; }
      .board-view .file-icon.flac::after { content:"FLAC"; color:#1e63a8; }

      .board-view .file-icon.mp4,
      .board-view .file-icon.mov,
      .board-view .file-icon.avi,
      .board-view .file-icon.mkv { border-color:#ffa3a3; background:#fff0f0; }
      .board-view .file-icon.mp4::after { content:"MP4"; color:#c21e1e; }
      .board-view .file-icon.mov::after { content:"MOV"; color:#c21e1e; }
      .board-view .file-icon.avi::after { content:"AVI"; color:#c21e1e; }
      .board-view .file-icon.mkv::after { content:"MKV"; color:#c21e1e; }

      /* ===== 디자인/퍼블리싱 소스 ===== */
      .board-view .file-icon.psd { border-color:#7db3ff; background:#eaf3ff; }
      .board-view .file-icon.psd::after { content:"PSD"; color:#1557b3; }

      .board-view .file-icon.ai { border-color:#ffb783; background:#fff2e8; }
      .board-view .file-icon.ai::after { content:"AI"; color:#b34700; }

      .board-view .file-icon.eps { border-color:#ffc48a; background:#fff6e9; }
      .board-view .file-icon.eps::after { content:"EPS"; color:#a85b10; }

      .board-view .file-icon.indd { border-color:#ff99c8; background:#fff0f6; }
      .board-view .file-icon.indd::after { content:"INDD"; color:#b1005a; }

      .board-view .file-icon.sketch { border-color:#ffd166; background:#fff7db; }
      .board-view .file-icon.sketch::after { content:"SKETCH"; color:#a86a00; }

      .board-view .file-icon.fig { border-color:#a3a3ff; background:#f0f0ff; }
      .board-view .file-icon.fig::after { content:"FIG"; color:#3b3bd1; }

      /* 코드/마크업 */
      .board-view .file-icon.html { border-color:#ffb199; background:#fff2ee; }
      .board-view .file-icon.html::after { content:"HTML"; color:#e34f26; }

      .board-view .file-icon.css { border-color:#99baff; background:#eef4ff; }
      .board-view .file-icon.css::after { content:"CSS"; color:#2965f1; }

      .board-view .file-icon.js { border-color:#ffe28a; background:#fffae6; }
      .board-view .file-icon.js::after { content:"JS"; color:#b58900; }

      .board-view .file-icon.json { border-color:#9ad0c7; background:#ecf8f6; }
      .board-view .file-icon.json::after { content:"JSON"; color:#1f6b5e; }

      .board-view .file-icon.xml { border-color:#c2a3ff; background:#f5f0ff; }
      .board-view .file-icon.xml::after { content:"XML"; color:#5a26c2; }

      /* ===== 기타/알 수 없음 ===== */
      .board-view .file-icon.apk,
      .board-view .file-icon.exe,
      .board-view .file-icon.dmg { border-color:#c9cfd9; background:#f2f4f8; }
      .board-view .file-icon.apk::after { content:"APK"; color:#374151; }
      .board-view .file-icon.exe::after { content:"EXE"; color:#374151; }
      .board-view .file-icon.dmg::after { content:"DMG"; color:#374151; }

      .board-view .file-icon.unknown { border-color:#d1d5db; background:#f6f7f9; }
      .board-view .file-icon.unknown::after { content:"FILE"; color:#445; }

/* 본문 */
.board-view .view-body { padding:18px 0 10px; }
.board-view .view-body p { margin:0 0 16px; line-height:1.8; }
.board-view .view-body .notice { background:#fff8e1; border:1px solid #ffe4a3; border-radius:8px; padding:12px 14px; margin: 10px 0;}
.board-view .view-body h4 {font-size: 18px; font-weight: 500;}
.board-view .view-image { max-width: 1200px; width: 100%; height:auto; display:block; border-radius:10px; margin: 20px auto;}

/* 표 (본문 내) */
.board-view .table-responsive { width:100%; overflow-x:auto; padding: 20px 0;}
.board-view .view-table { width:100%; border-collapse:collapse; }
.board-view .view-table th, .view-table td { border:1px solid #e5e7eb; padding:10px 12px; text-align:center; }
.board-view .view-table thead th { background:#f8fafc; }

/* 이전/다음 글 */
.board-view .view-nav { border-top:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; }
.board-view .view-nav .nav-row {display:grid; grid-template-columns: 90px 1fr auto;align-items:center; gap:12px; padding:12px 8px;text-decoration:none; color:#333;}
.board-view .view-nav .nav-row + .nav-row { border-top:1px solid #f2f2f2; }
.board-view .view-nav .nav-row:hover { background:#f4f8ff; }
.board-view .view-nav .nav-label { font-weight:700; color:#0a63d8; }
.board-view .view-nav .nav-title {overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}
.board-view .view-nav time { font-size:13px; color:#666; }

/* 하단 버튼 */
.board-view .view-actions {display:flex; justify-content:space-between; align-items:center;gap:10px; padding-top:16px;}
.board-view .view-actions .action-right { display:flex; gap:8px; }
.board-view .btn {display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding: 5px 20px; border-radius: 3px; border: 1px solid #d1d5db;
  background:#fff; color:#111827; cursor:pointer; text-decoration:none; font-size:14px;}
.board-view .btn:hover { background:#f9fafb; }
.board-view .btn.listbtn { background:#464646; color: #fff;}
.board-view .btn.danger { background:#c40013; border-color:#c40013; color:#fff; }
.board-view .btn.danger:hover { background:#dc2626; }

/* 하단 버튼 (공통) */
.board-view-btn .view-actions {display:flex; justify-content:space-between; align-items:center;gap:10px; padding-top:16px;}
.board-view-btn .view-actions .action-right { display:flex; gap:8px; }
.board-view-btn .btn {display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding: 5px 20px; border-radius: 3px; border: 1px solid #d1d5db;
  background:#ffffff; color:#111827; cursor:pointer; text-decoration:none; font-size:14px;}
.board-view-btn .btn:hover { background:#f9fafb; }
.board-view-btn .btn.listbtn { background:#464646; color: #fff;}
.board-view-btn .btn.danger { background:#c40013; border-color:#c40013; color:#fff; }
.board-view-btn .btn.danger:hover { background:#dc2626; }

/* 접근성용 스크린리더 텍스트 */
.board-view .sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* 반응형 */
@media (max-width: 900px) {
  .board-view .view-title { font-size:20px; }
  .board-view .view-meta { flex-wrap:wrap; gap:10px; }
  .board-view .view-nav .nav-row { grid-template-columns: 70px 1fr; }
  .board-view .view-nav time { display:none; }
}
@media (max-width: 560px) {
  .board-view .view-attach li { flex-direction:column; align-items:flex-start; }
  .board-view .view-actions { flex-direction:column; align-items:stretch; }
  .board-view .view-actions .action-right { justify-content:space-between; }
}



/* 로그인 */
/* 로그인 컨테이너 스타일 */
.login-container {background-color: white;padding: 30px;border-radius: 8px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);width: 100%;max-width: 400px;}

/* 입력 필드 그룹 */
.login-container .input-group {margin-bottom: 15px;}
.login-container .input-group label {display: block;font-size: 14px;margin-bottom: 5px;}
.login-container .input-group input {width: 100%;padding: 10px;font-size: 16px;border: 1px solid #ddd;border-radius: 4px;box-sizing: border-box;}

/* 로그인 버튼 */
.login-container button.login-btn {width: 100%;padding: 12px;background-color: #002d6d; color: white;border: none;border-radius: 4px;font-size: 16px;cursor: pointer; transition: all .3s;}

/* 제목 스타일 */
.login-container h2 {text-align: center;font-size: 24px;margin-bottom: 20px;}
.login-container button.login-btn:hover {background-color: #0c2850;}

/* 체크박스 및 로그인 상태 유지 */
.login-container .remember-me {margin: 15px 0;font-size: 14px;}
.login-container .remember-me input {margin-right: 5px;}

/* 추가 링크 */
.login-container .extra-links {text-align: center;font-size: 14px; margin-top: 10px;}
.login-container .extra-links a {color: #002d6d;text-decoration: none;}
.login-container .extra-links a:hover {text-decoration: underline;}

@media (max-width: 500px) {
  .login-container {box-shadow: none;}
}

/* --s--로그인 실패 안내 페이지--s-- */
/* 에러 메시지 컨테이너 */
.error-container {background-color: white;padding: 40px;border-radius: 8px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);width: 100%;max-width: 400px;text-align: center;}

/* 에러 제목 */
.error-container .error-message h2 {font-size: 24px;color: #333;font-weight: 700;margin-bottom: 20px;}

/* 에러 설명 */
.error-container .error-message p {font-size: 16px;color: #333;margin-bottom: 30px;}

/* 다시 시도 버튼 */
.error-container .retry-btn {display: inline-block;padding: 12px 24px;background-color: #002d6d;color: white;text-decoration: none;font-size: 16px;border-radius: 4px;transition: background-color 0.3s;}

@media (max-width: 500px) {
  .error-container {box-shadow: none;}
}

/* --e--로그인 실패 안내 페이지--e-- */

/* --s--회원가입 약관 동의 페이지--s-- */
.terms-container {background-color: white;width: 100%;border-radius: 8px;box-sizing: border-box;}
.signup h2 {text-align: center;font-size: 24px;margin-bottom: 20px;font-weight: 700;color: #333;  }

/* 약관 안내 텍스트 */
.terms-container .terms-text p {text-align: center;font-size: 16px;color: #333;margin-bottom: 20px;}

/* 각 약관 섹션 구분 */
.terms-container .terms-section {margin-bottom: 25px;}

/* 스크롤 박스 */
.terms-container .scroll-box {max-height: 200px;overflow-y: auto;border: 1px solid #ddd;padding: 15px;margin-bottom: 10px;background-color: #f9f9f9;font-size: 14px;line-height: 1.6;border-radius: 6px;}
.terms-container .scroll-box p{text-align: left;}
.terms-container .scroll-box p strong {font-weight: bold;font-size: 16px;color: #333; margin-top: 15px;margin-bottom: 5px;}

/* 리스트 스타일 */
.terms-container .scroll-box ul {padding-left: 20px; margin: 10px 0 15px;}
.terms-container .scroll-box ul li {font-size: 16px;line-height: 1.6;color: #333; position: relative;}
.terms-container .scroll-box ul li::before {position: absolute; display: block; content: '-'; left: -10px;}

/* 체크박스 그룹 스타일 */
.terms-container .terms-checkbox {font-size: 14px;}
.terms-container .terms-checkbox input {margin-right: 10px;}

/* 동의 버튼 */
.terms-container .agree-btn {margin: 0 auto; max-width: 500px; width: 100%;padding: 12px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s; display: block;}
.terms-container .agree-btn:hover {background-color: #001f47;}


/* 반응형 스타일 */
@media screen and (max-width: 768px) {
    .signup h2 {font-size: 20px;}
    .terms-container .terms-text p {font-size: 14px;}
    .terms-container .agree-btn {font-size: 14px;}
    .terms-container .scroll-box {max-height: 150px;}
}
/* --e--회원가입 약관 동의 페이지--e-- */

/* --s--회원정보입력폼--s-- */
.signupform-container {width: 50%; margin: 0 auto; background-color: white;padding: 30px;border-radius: 8px;box-sizing: border-box;}
.signupform-container .form-group {margin-bottom: 20px;}
.signupform-container .form-group label {display: block;font-size: 14px;margin-bottom: 8px;color: #333;}
.signupform-container .form-group input {width: 100%;padding: 12px;font-size: 16px;border: 1px solid #ddd;border-radius: 6px;box-sizing: border-box;background-color: #f9f9f9;transition: border-color 0.3s ease;}
.signupform-container .form-group input:focus {border-color: #002d6d;background-color: #fff;}
.signupform-container .submit-btn {max-width: 300px; width: 100%;padding: 15px 12px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease; margin: 50px auto 0; display: block;}
.signupform-container .submit-btn:hover {background-color: #001f47;}

/* 반응형 스타일 */
@media screen and (max-width: 768px) {
    .signupform-container {padding: 15px; width: 100%;}
    .signupform-container .form-group input {font-size: 14px;padding: 10px;}
    .signupform-container .submit-btn {font-size: 14px;}
}
/* --e--회원정보입력폼--e-- */



/* --s--회원가입완료--s-- */
.signup-complete {width: 100%; max-width: 960px;margin: 40px auto;padding: 20px;background-color: #fff;box-sizing: border-box;text-align: center;}
.signup-complete p {font-size: 16px;color: #333;margin-bottom: 30px;}
.signup-complete .button-group {display: flex;justify-content: center;gap: 20px;}
.signup-complete .submit-btn {padding: 12px 20px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease;
}
.signup-complete .submit-btn:hover {background-color: #001f47;}
.signup-complete .button-link {text-decoration: none;}

/* 반응형 스타일 */
@media screen and (max-width: 768px) {
    .signup-complete p {font-size: 14px;}
    .signup-complete .submit-btn {font-size: 14px;width: 150px;}
}
/* --e--회원가입완료--e-- */



/* --s--계정관리--s-- */
.find-id {width: 100%;max-width: 600px;margin: 40px auto;padding: 20px;background-color: #fff;box-sizing: border-box;text-align: center;}
.management h2 {text-align: center;font-size: 24px;margin-bottom: 20px;font-weight: 700;color: #333;}
.find-id p {font-size: 16px;color: #333;margin-bottom: 30px;}
.find-id .form-group {margin-bottom: 20px;}
.find-id .form-group label {display: block;font-size: 14px;margin-bottom: 8px;color: #333; text-align: left;}
.find-id .form-group input {width: 100%;padding: 12px;font-size: 16px;border: 1px solid #ddd;border-radius: 6px;box-sizing: border-box;background-color: #f9f9f9;transition: border-color 0.3s ease;}
.find-id .form-group input:focus {border-color: #002d6d;background-color: #fff;}
.find-id .submit-btn {width: 100%;padding: 12px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease;}
.find-id .submit-btn:hover {background-color: #001f47;}
.find-id .back-link {margin-top: 20px;}
.find-id .back-link a {color: #333; text-decoration: none;font-size: 14px;}
.find-id .back-link a:hover {text-decoration: underline;}
.find-id .button-group {display: flex;justify-content: center;gap: 20px;}
.find-id .submit-btn {padding: 12px 20px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease;}
.find-id .submit-btn:hover {background-color: #001f47;}
.find-id .button-link {text-decoration: none;}

.reset-password {width: 100%;max-width: 600px;margin: 40px auto;padding: 20px;background-color: #fff;box-sizing: border-box;text-align: center;}
.reset-password p {font-size: 16px;color: #333;margin-bottom: 30px;}
.reset-password .form-group {margin-bottom: 20px;}
.reset-password .form-group label {display: block;font-size: 14px;margin-bottom: 8px;color: #333; text-align: left;}
.reset-password .form-group input {width: 100%;padding: 12px;font-size: 16px;border: 1px solid #ddd;border-radius: 6px;box-sizing: border-box;background-color: #f9f9f9;transition: border-color 0.3s ease;}
.reset-password .form-group input:focus {border-color: #002d6d;background-color: #fff;}
.reset-password .submit-btn {width: 100%;padding: 12px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease;}
.reset-password .submit-btn:hover {background-color: #001f47;}
.reset-password .back-link {margin-top: 20px;}
.reset-password .back-link a {color: #333; text-decoration: none;font-size: 14px;}
.reset-password .back-link a:hover {text-decoration: underline;}

.reset-password .form-group #passwordHelp {text-align: left; margin-top: 10px; font-size: 13px; }


/* 반응형 스타일 */
@media screen and (max-width: 768px) {
    .management h2 {font-size: 20px;}
    .find-id .form-group input {font-size: 14px;padding: 10px;}
    .find-id .submit-btn {font-size: 14px;}
    .find-id .submit-btn {font-size: 14px;}
    .reset-password .form-group input {font-size: 14px;padding: 10px;}
    .reset-password .submit-btn {font-size: 14px;}
}
/* --e--계정관리--e-- */



/* --s-- 마이페이지--s-- */

.mypage h2 {font-size: 24px;color: #333;font-weight: 700;margin-bottom: 20px;}
.mypage .profile-section {border-bottom: 2px solid #ddd;padding-bottom: 20px;margin-bottom: 30px;}
.mypage .profile-info {display: flex;align-items: center;}
.mypage .profile-img {width: 100px;height: 100px;border-radius: 50%;margin-right: 20px;}
.mypage .info-details p {margin: 5px 0;}
.mypage .edit-btn {display: inline-block;padding: 10px 20px;background-color: #002d6d;color: white;text-decoration: none;border-radius: 6px;margin-top: 10px;}
.mypage .edit-btn:hover {background-color: #001f47;}
.mypage .activity-section {margin-bottom: 30px;}
.mypage .post-section {margin-bottom: 30px;}
.mypage .post-section ul {list-style-type: none;padding: 0;}
.mypage .post-section li {margin: 10px 0;}
.mypage .post-section a {color: #002d6d;text-decoration: none;}
.mypage .post-section a:hover {text-decoration: underline;}
.mypage .settings-section ul {list-style-type: none;padding: 0;}
.mypage .settings-section li {margin: 10px 0;}
.mypage .settings-section a {color: #002d6d;text-decoration: none;}
.mypage .settings-section a:hover {text-decoration: underline;}

.mypage .form-group {margin-bottom: 20px;}
.mypage .form-group label {display: block;font-size: 14px;margin-bottom: 8px;color: #333;}
.mypage .form-group input {width: 100%;padding: 12px;font-size: 16px;border: 1px solid #ddd;border-radius: 6px;box-sizing: border-box;background-color: #f9f9f9;transition: border-color 0.3s ease;}
.mypage .form-group input:focus {border-color: #002d6d;background-color: #fff;}
.mypage .form-group small {font-size: 12px;color: #666;}
.mypage .submit-btn {width: 100%;padding: 12px;background-color: #002d6d;color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease;}
.mypage .submit-btn:hover {background-color: #001f47;}

.mypage .delete-account p {font-size: 16px;color: #333;margin-bottom: 30px;text-align: center;}
.mypage .delete-account .form-group {margin-bottom: 20px;}
.mypage .delete-account .form-group label {display: block;font-size: 14px;margin-bottom: 8px;color: #333;}
.mypage .delete-account .form-group input, .mypage .form-group select {width: 100%;padding: 12px;font-size: 16px;border: 1px solid #ddd;border-radius: 6px;box-sizing: border-box;background-color: #f9f9f9;transition: border-color 0.3s ease;}
.mypage .delete-account .form-group input:focus,.mypage .form-group select:focus {border-color: #002d6d;background-color: #fff;}
.mypage .delete-account .submit-btn {max-width: 200px; padding: 12px;background-color: #e74c3c; color: white;border: none;border-radius: 6px;font-size: 16px;cursor: pointer;transition: background-color 0.3s ease; margin: 50px auto 0; display: block;}
.mypage .delete-account .submit-btn:hover {background-color: #c0392b;}
.mypage .delete-account .cancel-link {margin-top: 20px;text-align: center;}
.mypage .delete-account .cancel-link a {color: #333;text-decoration: none;font-size: 14px;}
.mypage .delete-account .cancel-link a:hover {text-decoration: underline;}

@media screen and (max-width: 768px) {
    .mypage .profile-info {flex-direction: column;align-items: flex-start;}
    .mypage .profile-img {margin-bottom: 10px;}
    .mypage .edit-btn {width: 100%;text-align: center;}
    .mypage .form-group input {font-size: 14px;padding: 10px;}
    .mypage .submit-btn {font-size: 14px;}
}
/* --e-- 마이페이지--e-- */


/* --s-- 사이트맵--s-- */
.sitemap-nav > ul {display: flex; flex-wrap: wrap; justify-content: space-between;}
.sitemap-nav > ul > li {width: 32%; margin-bottom: 50px;}
.sitemap-nav > ul > li > a {color: white;text-decoration: none;padding: 10px 20px;display: block;font-size: 16px;background-color: #002d6d;margin: 5px 0;border-radius: 4px;}
.sitemap-nav .depth2 {list-style-type: none;margin-left: 10px;padding: 0;}
.sitemap-nav .depth2 li a {display: block;font-size: 16px;color: #333;padding: 10px 10px; border-bottom: 1px solid #f0f0f0;}
.sitemap-nav li li a:hover {text-decoration: underline;}

/* 반응형 디자인 */
@media screen and (max-width: 768px) {
  .sitemap-nav > ul > li {width: 100%;}
}
/* --e-- 사이트맵--e-- */

/* --s-- 연혁--s-- */
.intro-history{
  --brand-navy:#0b2a57;
  --brand-red:#cc1424;    
  --navy-050:#f3f6fb;    
  --navy-100:#e7eef8;
  --red-050:#fde9ec;
  --ink:#121417;
  --muted:#5a6472;
  --line:#dbe1ea;
  --bg:#f7f9fc;
  --card:#ffffff;
  --focus:#3e8bff;
  color:var(--ink);
  background:transparent;
  font-feature-settings:"kern","liga","ss01";
}

.intro-history .history-timeline{max-width:1200px;margin:0 auto;padding:28px 16px 40px;}
.intro-history .ht-title{
  font-size:clamp(20px,2.4vw,30px);
  font-weight:800; text-align:center; color:var(--brand-navy);
}
.intro-history .ht-intro{
  margin:10px auto 24px; text-align:center; font-size:14px; color:var(--muted);
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--brand-red);
  border-radius:10px; padding:10px 12px; max-width:880px;
}

/* 중앙 세로 라인 */
.intro-history .ht-list{
  position:relative; list-style:none; margin:0; padding:0;
}
.intro-history .ht-list::before{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:3px;
  background:linear-gradient(var(--navy-100), #e6efff);
  transform:translateX(-50%); border-radius:2px;
}

.intro-history .ht-item{
  position:relative;
  display:flex;            
  flex-direction:row;           
  align-items:stretch;
  gap:26px;
  margin:28px 0;
}
.intro-history .ht-item:nth-child(even){flex-direction:row-reverse;  }

.intro-history .ht-pin{
  position:absolute; left:50%; top:22px; transform:translate(-50%,-50%);
  width:14px; height:14px; border-radius:50%;
  background:#fff; border:3px solid var(--brand-red);
  box-shadow:0 0 0 6px rgba(204,20,36,.12);
}

.intro-history .ht-meta,
.intro-history .ht-card{
  flex:1 1 0;
  min-width:0;
}

/* 메타(기간/뱃지) */
.intro-history .ht-meta{
  display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-start;
  padding:8px 8px;
}
.intro-history .ht-item:nth-child(even) .ht-meta{ align-items:flex-start; }
.intro-history .ht-term{
  display:inline-block; max-width:90%;
  color:var(--brand-navy); background:var(--navy-100); border:1px solid var(--line);
  border-radius:9px; padding:8px 12px; line-height:1.35; font-weight:800;
}
.intro-history .ht-badge{
  display:inline-block; margin-top:8px;
  background:var(--brand-red); color:#fff;
  border:1px solid rgba(0,0,0,.05); font-weight:900;
  border-radius: 9px; padding: 3px 12px; letter-spacing:.02em;
}

/* 카드(인물/비고) */
.intro-history .ht-card{
  background:var(--card); border:1px solid var(--line); border-radius:9px;
  padding:16px 16px 12px;
  box-shadow:0 8px 24px rgba(11,42,87,.06);
}
.intro-history .ht-header{display:flex; flex-wrap:wrap; gap:10px 18px; margin-bottom:10px;}
.intro-history .ht-people{display:flex; align-items:center; gap:8px; font-size:16px; color:var(--ink);}
.intro-history .tag.role{
  background:#edf2ff; border:1px solid #cfe0ff; color:#123a8a;
  padding:4px 8px; border-radius:3px; font-weight:800; font-size:12px;
}
.intro-history .tag{
  background:#f2f5fa; border:1px solid var(--line); color:var(--muted);
  padding:2px 8px; border-radius:3px; font-weight:700; font-size:12px;
}
.intro-history .tag.navy{ background:var(--navy-050); border-color:#cfd9ea; color:var(--brand-navy); }
.intro-history .tag.red{  background:var(--red-050);  border-color:#f4c3ca; color:var(--brand-red); }

/* 비고(항상 노출) */
.intro-history .ht-note{ margin-top:6px; border-top:1px dashed var(--line); padding-top:10px; }
.intro-history .note-title{ font-weight:900; color:var(--brand-navy); margin-bottom:6px; }
.intro-history .ht-chiplist{ margin:0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.intro-history .ht-chiplist li{ line-height:1.55; color:var(--ink); }

/*Accessibility*/
.intro-history a:focus, .intro-history button:focus{
  outline:3px solid var(--focus); outline-offset:2px; border-radius:6px;
}

/*Responsive (≤768px)*/
@media (max-width: 768px){
  /* 중앙 라인/핀 좌측으로 */
  .intro-history .ht-list::before{ left:12px; transform:none; }
  .intro-history .ht-item .ht-pin{ left:12px; }

  /* 모든 아이템 세로 스택 */
  .intro-history .ht-item{
    flex-direction:column;    
    gap:10px;
    padding-left:28px;         
    margin:18px 0;
  }
  /* 짝수 반전 제거(모바일에선 동일 흐름 유지) */
  .intro-history .ht-item:nth-child(even){ flex-direction:column; }

  /* 메타 먼저, 카드 다음 */
  .intro-history .ht-meta{ align-items:flex-start; }
  .intro-history .ht-term{ max-width:100%; }
  .intro-history .ht-badge{ margin-top:6px; }
}

/*(≥1201px) - 약간의 여백 보정*/
@media (min-width: 1201px){
  .intro-history .ht-card{ padding:20px 20px 14px; }
}

/* 중앙선과 카드 간 여백 보정 */
@media (min-width: 769px) {
  .intro-history .ht-item:nth-child(odd) .ht-card {margin-left: 50px;}
  .intro-history .ht-item:nth-child(even) .ht-card {margin-right: 50px;}
}

/* --e-- 연혁--e-- */


/* --s-- 조직도 --s-- */
/**********************************
 * Brand & Base
 **********************************/
.intro-org{
  --brand-navy:#0b2a57;   /* 메인 */
  --brand-red:#cc1424;    /* 포인트 */
  --bg:#f7f9fc;           /* 페이지 배경 */
  --card:#ffffff;         /* 카드 */
  --line:#e2e8f0;         /* 라인/보더 */
  --ink:#111827;          /* 본문 */
  --muted:#64748b;        /* 보조 */
  --chip-navy:#eaf1ff;
  --chip-red:#ffe8ec;
  --shadow:0 8px 24px rgba(11,42,87,.06);
}

/* 컨테이너 */
.intro-org .orgchart{max-width:1200px;margin:0 auto;padding:28px 16px; color:var(--ink);}
.intro-org .oc-title{font-size:clamp(22px,3vw,34px);font-weight:800;text-align:center;letter-spacing:-.02em;margin:0;}
.intro-org .oc-date{font-size:14px;color:var(--muted);text-align:center;margin:8px 0 20px}

/**********************************
 * Layout – 트리 축/행
 **********************************/
/* 중앙 세로 축 */
.intro-org .orgchart::before{
  content:"";
  position:relative; display:block; width:2px; height:12px; margin:0 auto 8px; background:var(--line); border-radius:2px;
}
/* 행 공통 */
.intro-org .oc-row{position:relative; display:flex; gap:24px; justify-content:center; align-items:stretch; padding:10px 0;}
/* 행마다 중앙축 연결선 */
.intro-org .oc-row::before{
  content:""; position:absolute; left:50%; top:-10px; width:2px; height:172px; background:var(--line); transform:translateX(-50%); border-radius:2px;
}
.intro-org .oc-row.oc-row-7::before{height: 109px;}

/* 2열(고문/부회장) – 좌우 대칭 */
.intro-org .oc-row-2{padding:0 clamp(40px,7vw,140px);}
.intro-org .oc-row-2 .oc-node{flex:1 1 0; max-width:560px;}
/* 가운데 축과 카드 간 여백 */
@media (min-width: 769px){
  .intro-org .oc-row-2 .oc-node:first-child{margin-right:22px;}
  .intro-org .oc-row-2 .oc-node:last-child{margin-left:22px;}
}

/* 단일 행(감사/전무/부서/이사/지도자) */
.intro-org .oc-row-3,.intro-org .oc-row-4,.intro-org .oc-row-5,.intro-org .oc-row-6,.intro-org .oc-row-7{justify-content:center;}
.intro-org .oc-row-3 .oc-node{width:min(900px,100%);}
.intro-org .oc-row-4 .oc-node{width:min(720px,100%);}
.intro-org .oc-row-5 .oc-node{width:min(1040px,100%);}
.intro-org .oc-row-6 .oc-node,.intro-org .oc-row-7 .oc-node{width:min(1080px,100%);}

/**********************************
 * Node(Card) – 현대 카드 톤
 **********************************/
.intro-org .oc-node{
  position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:14px 16px; box-shadow:var(--shadow); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;text-align: center;
}
.intro-org .oc-node:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(11,42,87,.10); border-color:#d7dee8; }

/* 역할 라벨/칩 */
.intro-org .oc-role{
  display:inline-block; font-weight:800; color:var(--brand-navy);
  background:#eef3ff; border:1px solid #d9e6ff; border-radius:9px; padding:3px 10px; font-size:13px; margin-bottom:8px;
}
.intro-org .oc-role.oc-muted{background:#fafafa;border-style:dashed;color:#6b7280}
.intro-org .oc-role.oc-sub{background:#f6f8fb;border-color:var(--line);color:#334155}
.intro-org .oc-small{font-size:12px;color:#6b7280;margin-left:4px;font-weight:700}

.intro-org .oc-person{font-size:16px;}
.intro-org .oc-person strong{font-weight:900;}
.intro-org .oc-list{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0;padding:0;list-style:none;}
.intro-org .oc-paragraph{margin:0;line-height:1.6}

/* 칩 스타일 */
.intro-org .chip{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#f6f8fb;color:#475569}
.intro-org .chip.navy{background:var(--chip-navy);border-color:#cfe0ff;color:var(--brand-navy)}
.intro-org .chip.red{ background:var(--chip-red); border-color:#ffc9d1; color:var(--brand-red)}

/**********************************
 * Top – 회장 카드(사진 선택)
 **********************************/
.intro-org .oc-top{display:flex;justify-content:center;margin:6px 0 16px;position:relative;}
.intro-org .oc-top::after{content:"";position:absolute;left:50%;bottom:-10px;width:2px;height:10px;background:var(--line);transform:translateX(-50%);}
.intro-org .oc-president{display:flex;align-items:center;gap:12px;justify-content:center;padding:14px 16px;}
.intro-org .oc-president .oc-role{background:#0b2a57;border-color:#0b2a57;color:#fff}
.intro-org .oc-president .oc-person{display:flex;align-items:center;gap:12px;}
.intro-org .oc-president img{width:84px;height:100px;object-fit:cover;border-radius:10px;border:2px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.intro-org .oc-president .oc-person strong{font-size:18px}

/**********************************
 * Grids – 감사/전무/부서
 **********************************/
.intro-org .oc-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.intro-org .oc-cell{padding:10px;border:1px dashed var(--line);border-radius:12px;background:#fff}

.intro-org .oc-dept-grid{
  display:grid; gap:12px;
  grid-template-columns:repeat(3,minmax(220px,1fr));
}
.intro-org .oc-dept{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.intro-org .oc-people{margin-bottom:6px;}
.intro-org .oc-people:last-child{margin-bottom:0}

/* 섹션별 배경톤 – 과하지 않게 */
.intro-org .oc-advisors{background:#fffdf2;border-color:#efe0a6;}
.intro-org .oc-vice{background:#f4f9ff;border-color:#cfe0ff;}
.intro-org .oc-audit{background:#f6faff;border-color:#d9e6ff;}
.intro-org .oc-exec{ background:#fff6f7;border-color:#ffd4db;}
.intro-org .oc-board{background:#e9f3ff;border-color:#cfe0ff;}
.intro-org .oc-coaches{background:#f6f8fb;border-color:#e4ebf3;}

/**********************************
 * Connectors – 2열 행 좌우 가로선
 **********************************/
.intro-org .oc-row-2 .oc-node{position:relative;}
.intro-org .oc-row-2 .oc-node:first-child::before,
.intro-org .oc-row-2 .oc-node:last-child::before{
  content:""; position:absolute; top:76px; width:11%; height:12px; border-top:2px solid var(--line);
}
.intro-org .oc-row-2 .oc-node:first-child::before{ right:-40px;}
.intro-org .oc-row-2 .oc-node:last-child::before{ left:-40px; }

.intro-org a:focus, .intro-org button:focus{
  outline:3px solid #64a2ff; outline-offset:2px; border-radius:8px;
}

/**********************************
 * Responsive (≤768px)
 * - 라인 제거, 카드 한 줄 스택
 **********************************/
@media (max-width: 768px){
  .intro-org .orgchart::before,
  .intro-org .oc-row::before,
  .intro-org .oc-row-2 .oc-node::before,
  .intro-org .oc-top::after{ display:none; }

  .intro-org .oc-date{margin-bottom:10px;}
  .intro-org .oc-row{flex-direction:column;gap:12px;align-items:stretch;}

  .intro-org .oc-president{flex-direction:column;text-align:center;}
  .intro-org .oc-president .oc-person strong{font-size:20px}

  .intro-org .oc-grid2{grid-template-columns:1fr;}
  .intro-org .oc-dept-grid{grid-template-columns:1fr;}

  /* 모바일 카드 강조: 왼쪽 포인트 바 */
  .intro-org .oc-node{border-radius:14px; box-shadow:0 6px 18px rgba(11,42,87,.08); border-left:4px solid var(--brand-navy);}
  .intro-org .oc-vice{border-left-color:var(--brand-red);}
}

/**********************************
 * Wide (≥1201px) – 여백/간격 보정
 **********************************/
@media (min-width: 1201px){
  .intro-org .oc-row-2{gap:32px;padding:0 140px;}
  .intro-org .oc-dept-grid{gap:16px;}
}
/* --e-- 조직도 --e-- */


/* --s-- 임원 및 대의원--s--  */
/* ===== Palette & Base ===== */
.executives{
  --brand-navy:#0b2a57;   /* 협회 네이비 */
  --brand-red:#cc1424;    /* 포인트 레드 */
  --ink:#111827;
  --muted:#64748b;
  --bg:#f7f9fc;
  --card:#ffffff;
  --line:#e2e8f0;
  --amber:#f59e0b;        /* 고문(오렌지) */
  --cyan:#0891b2;         /* 자문위원(청록) */
  --shadow:0 10px 24px rgba(11,42,87,.06);
  color:var(--ink);
  background:transparent;

}

/* 컨테이너 */
.executives {max-width:1200px;margin:0 auto;}
.executives .ex-title{font-size:clamp(20px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;margin:0 0 14px 0;text-align:left;color:var(--brand-navy);}

/* 리스트 그리드 */
.executives .member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0 0 80px;}
@media (max-width: 900px){ .executives .member-list{gap:14px;} }
@media (max-width: 768px){ .executives .member-list{grid-template-columns:1fr;gap:12px;} }

/* 카드 */
.executives .member-card{
  display:grid;
  grid-template-columns:140px 1fr;        /* 사진 | 본문 */
  gap:14px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  box-shadow:var(--shadow);
  min-height: 200px;
}
@media (max-width: 480px){
  .executives .member-card{grid-template-columns:100px 1fr;padding:10px;border-radius:12px;}
}

/* 사진 */
.executives .member-photo{
  width:100%; align-self:flex-start;
  aspect-ratio: 5 / 7;                 
  overflow:hidden; border-radius:10px; border:1px solid var(--line); background:#f1f5f9;
}
.executives .member-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* 본문 */
.executives .member-body{min-width:0;}
.executives .member-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:6px;}
.executives .member-name{font-size:18px;font-weight:900;margin:0;color:#0f172a;}

/* 역할 뱃지 */
.executives .role-badge{
  display:inline-block;padding:2px 10px;border-radius:5px;font-size:12px;font-weight:800;letter-spacing:.02em;
  border:1px solid var(--line);background:#f8fafc;color:#334155;
}
.executives .role--advisor{                      /* 고문 */
  background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.35); color:#9a5a00;
}
.executives .role--advisory{                     /* 자문위원 */
  background:rgba(8,145,178,.10); border-color:rgba(8,145,178,.35); color:#065f73;
}
.executives .role--auditor{   /* 감사(회계/행정 공통) */
  background:rgba(59,130,246,.12); 
  border-color:rgba(59,130,246,.35);
  color:#1e3a8a;                  
}

.executives .role--president{ /* 회장 */
  background:rgba(234,179,8,.16);   
  border-color:rgba(234,179,8,.45);
  color:#7a5800;                  
}

.executives .role--senior-vice,
.executives .role--chief-vice{ /* 수석부회장(별칭 지원) */
  background:rgba(124,58,237,.12);  
  border-color:rgba(124,58,237,.35);
  color:#5b21b6;                   
}

.executives .role--vice{       /* 부회장 */
  background:rgba(79,70,229,.12);
  border-color:rgba(79,70,229,.35);
  color:#3730a3;                 
}

.executives .role--executive{  /* 전무이사 */
  background:rgba(204,20,36,.12); 
  border-color:rgba(204,20,36,.35);
  color:#8a0b18;
}

.executives .role--match{      /* 경기이사 */
  background:rgba(22,163,74,.12);
  border-color:rgba(22,163,74,.35);
  color:#166534;                
}

.executives .role--planning{   /* 기획이사 */
  background:rgba(139,92,246,.12); 
  border-color:rgba(139,92,246,.35);
  color:#5b21b6;
}

.executives .role--general{    /* 총무이사 */
  background:rgba(2,132,199,.12);  
  border-color:rgba(2,132,199,.35);
  color:#075985;                
}

.executives .role--pr{         /* 홍보이사 */
  background:rgba(225,29,72,.12); 
  border-color:rgba(225,29,72,.35);
  color:#9f1239;                  
}

.executives .role--medical{    /* 의무이사 */
  background:rgba(20,184,166,.12); 
  border-color:rgba(20,184,166,.35);
  color:#0f766e;                  
}

.executives .role--board{      /* 이사 */
  background:rgba(11,42,87,.10);    
  border-color:rgba(11,42,87,.30);
  color:#0b2a57;                
}

/* 정보 라인 */
.executives .member-info{margin:0 0 6px 0;}
.executives .info-row{display:grid;grid-template-columns:64px 1fr;gap:8px 10px;align-items:start;}
.executives .info-row + .info-row{margin-top:4px;}
.executives .member-info dt{
  font-weight:800;color:#475569;background:#f1f5f9;border:1px solid var(--line);
  border-radius:5px;text-align:center;display:flex;align-items:center;justify-content:center;
}
.executives .member-info dd{margin:0;color:#0f172a;}

/* 약력 */
.executives .member-bio .bio-title{
  display:inline-block;font-weight:900;color:var(--brand-navy);margin:6px 0 4px;
  border-bottom:2px solid #dbeafe; padding-bottom:2px;
}
.executives .bio-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:2px;color:#111827;font-size: 14px;letter-spacing: -1px;}
.executives .bio-list li{position:relative;padding-left:14px;line-height:1.5;}
.executives .bio-list li::before{
  content:"–"; position:absolute; left:0; top:0; color:#64748b;
}

/* 작은 화면에서 이름/뱃지 크기 보정 */
@media (max-width: 480px){
  .executives .member-name{font-size:16px;}
  .executives .role-badge{font-size:11px;padding:3px 8px;}
  .executives .info-row{grid-template-columns:56px 1fr;}
}

/* --e-- 임원 및 대의원--e--  */


/* --s-- 대회일정--s--  */
/* ===== Palette / Base ===== */
.tour-cal-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3; --ink:#0f172a; --muted:#6b7280;
  --shadow:0 12px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.tour-cal-wrap .tour-cal{max-width:1200px;margin:0 auto;}
.tour-cal-wrap .cal-title{font-size:clamp(22px,3vw,34px);font-weight:900;color:var(--navy);letter-spacing:-.02em;margin:0 0 10px; display: inline-block;}
.tour-cal-wrap .cal-quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tour-cal-wrap .cal-quick a{
  display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;
  background:#fff;border:1px solid var(--line);text-decoration:none;color:#334155;font-weight:900;
}
.tour-cal-wrap .cal-quick a:hover{border-color:#cfd9e8;box-shadow:0 8px 20px rgba(11,42,87,.06)}

/* 활성표시: :target 기반 */
.tour-cal-wrap .tour-cal:has(#M01:target) .cal-quick a[data-m="01"],
.tour-cal-wrap .tour-cal:has(#M02:target) .cal-quick a[data-m="02"],
.tour-cal-wrap .tour-cal:has(#M03:target) .cal-quick a[data-m="03"],
.tour-cal-wrap .tour-cal:has(#M04:target) .cal-quick a[data-m="04"],
.tour-cal-wrap .tour-cal:has(#M05:target) .cal-quick a[data-m="05"],
.tour-cal-wrap .tour-cal:has(#M06:target) .cal-quick a[data-m="06"],
.tour-cal-wrap .tour-cal:has(#M07:target) .cal-quick a[data-m="07"],
.tour-cal-wrap .tour-cal:has(#M08:target) .cal-quick a[data-m="08"],
.tour-cal-wrap .tour-cal:has(#M09:target) .cal-quick a[data-m="09"],
.tour-cal-wrap .tour-cal:has(#M10:target) .cal-quick a[data-m="10"],
.tour-cal-wrap .tour-cal:has(#M11:target) .cal-quick a[data-m="11"],
.tour-cal-wrap .tour-cal:has(#M12:target) .cal-quick a[data-m="12"],
.tour-cal-wrap .tour-cal:not(:has(.bmonth:target)) .cal-quick a[data-m="03"]{
  background:var(--navy); color:#fff; border-color:var(--navy);
}

/* ===== Big Month ===== */
.tour-cal-wrap .big-months{margin-bottom:18px}
.tour-cal-wrap .bmonth{
  background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow);
  padding:12px 12px 16px; display:none;
}
.tour-cal-wrap .big-months:not(:has(.bmonth:target)) #M03{display:block;}     /* 기본 월 노출 */
.tour-cal-wrap .big-months:has(.bmonth:target) .bmonth{display:none;}
.tour-cal-wrap .big-months:has(.bmonth:target) .bmonth:target{display:block;}

.tour-cal-wrap .b-h{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:8px}
.tour-cal-wrap .b-h h3{margin:0;text-align:center;font-weight:900;font-size:22px;color:var(--navy)}
.tour-cal-wrap .b-h h3 b{font-size:28px}
.tour-cal-wrap .b-h .nav{display:inline-flex;width:34px;height:34px;border-radius:50%;background:#f1f5fb;border:1px solid #dbe5f1}
.tour-cal-wrap .b-h .nav::before{content:"";margin:auto;border:solid #334155;border-width:0 2px 2px 0;padding:5px;display:inline-block;transform:rotate(135deg)}
.tour-cal-wrap .b-h .nav.next::before{transform:rotate(-45deg)}
.tour-cal-wrap .b-h .nav:hover{background:#e8f0fe;border-color:#cdddfb}

/* 요일줄 */
.tour-cal-wrap .wdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0 4px 6px 4px;padding:0;list-style:none}
.tour-cal-wrap .wdays li{font-size:12px;font-weight:800;color:#64748b;text-align:center;background:#f3f6fb;border:1px solid var(--line);border-radius:10px;padding:7px 0}

/* 6×7 그리드 (항상 42칸) */
.tour-cal-wrap .grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(110px,1fr);gap:6px;margin:0 4px;padding:0;list-style:none}
@media (max-width: 768px){ .tour-cal-wrap .grid{grid-auto-rows:minmax(88px,1fr);} }

.tour-cal-wrap .grid li{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:6px;position:relative;
}
.tour-cal-wrap .grid .d{font-weight:900;font-size:14px;color:#0f172a}
.tour-cal-wrap .grid li.is-prev .d,
.tour-cal-wrap .grid li.is-next .d{color:#a3aab4}
.tour-cal-wrap .grid li.has .dot{position:absolute;right:8px;top:10px;width:6px;height:6px;border-radius:50%;background:#e31b54}

/* 이벤트 카드(옵션) */
.tour-cal-wrap .elist{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.tour-cal-wrap .evt{border:1px solid #e8edf4;background:#f9fbff;border-radius:12px;padding:8px 10px;font-size:12px;line-height:1.35;color:#0f172a}
.tour-cal-wrap .evt i{font-style:normal;font-size:11px;font-weight:900;border:1px solid #cfe0ff;background:#eef3ff;color:#123a8a;border-radius:999px;padding:2px 8px;margin-right:6px;min-width: 35px;text-align: center;}
.tour-cal-wrap .evt.main i{background:#ffe8ec;border-color:#ffc9d1;color:#8a0b18}
.tour-cal-wrap .evt.qual i{background:#fff3d6;border-color:#ffdfa6;color:#8a5a00}
.tour-cal-wrap .evt.jr i{background:#e9f2ff;border-color:#cfe0ff;color:#0b2a57}

/* ===== Mini Year (4×3) – 점만 표시 ===== */
.tour-cal-wrap .mini-year{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width: 920px){ .tour-cal-wrap .mini-year{grid-template-columns:repeat(3,1fr)} }
@media (max-width: 640px){ .tour-cal-wrap .mini-year{grid-template-columns:repeat(2,1fr)} }

.tour-cal-wrap .mini{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px}
.tour-cal-wrap .m-h{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;margin-bottom:4px}
.tour-cal-wrap .m-title{display:block;text-align:center;font-weight:900;color:var(--navy);text-decoration:none}
.tour-cal-wrap .m-prev,.tour-cal-wrap .m-next{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#f1f5fb;border:1px solid #dbe5f1}
.tour-cal-wrap .m-prev::before,.tour-cal-wrap .m-next::before{content:"";margin:auto;border:solid #334155;border-width:0 2px 2px 0;padding:4px;display:inline-block;transform:rotate(135deg)}
.tour-cal-wrap .m-next::before{transform:rotate(-45deg)}

.tour-cal-wrap .mini .wdays{gap:2px;margin:0 1px 2px 1px}
.tour-cal-wrap .mini .wdays li{font-size:11px;padding:4px 0;border-radius:8px}
.tour-cal-wrap .m-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:34px;gap:2px;margin:0 1px;padding:0;list-style:none}
.tour-cal-wrap .m-grid li{background:#fff;border:1px solid var(--line);border-radius:10px;position:relative}
.tour-cal-wrap .m-grid .md{display:block;font-size:11px;font-weight:800;color:#1f2937;padding:4px 6px}
.tour-cal-wrap .m-grid li.is-prev .md,
.tour-cal-wrap .m-grid li.is-next .md{color:#a3aab4}
.tour-cal-wrap .m-grid li.has .dot{position:absolute;right:6px;bottom:6px;width:6px;height:6px;border-radius:50%;background:#e31b54}


@media (max-width: 760px){

  .tour-cal-wrap .tour-cal{padding:16px 12px;}
  .tour-cal-wrap .cal-title{font-size:22px;margin-bottom:8px;}

  .tour-cal-wrap .cal-quick{
    overflow-x:auto; white-space:nowrap; gap:8px; padding:6px 0;
    scrollbar-width:thin; -webkit-overflow-scrolling:touch;
  }
  .tour-cal-wrap .cal-quick a{
    flex:0 0 auto; width:36px; height:36px; border-radius:12px;
    scroll-snap-align:start;
  }

  /* 큰 달력(선택 월) */
  .tour-cal-wrap .big-months{margin-bottom:12px;}
  .tour-cal-wrap .b-h{grid-template-columns:36px 1fr 36px; margin-bottom:6px;}
  .tour-cal-wrap .b-h h3{font-size:20px;}
  .tour-cal-wrap .b-h h3 b{font-size:24px;}
  .tour-cal-wrap .b-h .nav{width:32px;height:32px;}

  /* 요일줄/그리드 간격 축소 */
  .tour-cal-wrap .wdays{gap:2px; margin:0 2px 4px;}
  .tour-cal-wrap .wdays li{padding:6px 0; font-size:12px; border-radius:8px;}

  /* 달력 셀: 여섯 줄 고정(42칸) 유지하면서 세로 높이만 감축 */
  .tour-cal-wrap .grid{
    gap:4px; grid-auto-rows:minmax(72px,1fr);  
    margin:0 2px;
  }
  .tour-cal-wrap .grid li{padding:6px; border-radius:12px;}
  .tour-cal-wrap .grid .d{font-size:13px;}
  .tour-cal-wrap .grid li.has .dot{right:6px; top:8px;} 

  /* 이벤트 카드도 모바일 크기 */
  .tour-cal-wrap .elist{gap:4px;}
  .tour-cal-wrap .evt{padding:6px 8px; font-size:12px; border-radius:10px;}
  .tour-cal-wrap .evt i{font-size:11px; padding:1px 6px;}

  /* 하단 12개월 달력: 1열로 세로 나열 */
  .tour-cal-wrap .mini-year{grid-template-columns:1fr; gap:12px;}
  .tour-cal-wrap .mini{padding:8px; border-radius:14px;}
  .tour-cal-wrap .m-h{grid-template-columns:26px 1fr 26px;}
  .tour-cal-wrap .mini .wdays li{font-size:11px; padding:4px 0; border-radius:8px;}
  .tour-cal-wrap .m-grid{grid-auto-rows:30px; gap:2px;}
  .tour-cal-wrap .m-grid .md{font-size:12px; padding:4px 6px;}
  .tour-cal-wrap .m-grid li.has .dot{right:6px; bottom:6px;}

  .tour-cal-wrap .tour-cal.mobile-stack-all .big-months .bmonth{display:block; margin-bottom:12px;}
  .tour-cal-wrap .tour-cal.mobile-stack-all .b-h .nav{display:none;}

    /* 큰 달력 1열 리스트형 */
  .tour-cal-wrap .bmonth .wdays{ display:none; }

  .tour-cal-wrap .bmonth .grid{
    display:grid;
    grid-template-columns: 1fr;      
    grid-auto-rows: auto;
    gap: 8px;
    margin: 0 2px;
  }

  .tour-cal-wrap .bmonth .grid .pad,
  .tour-cal-wrap .bmonth .grid li.is-prev,
  .tour-cal-wrap .bmonth .grid li.is-next{
    display:none;
  }


  .tour-cal-wrap .bmonth .grid li{
    min-height: 0;
    padding: 10px;
    border-radius: 12px;
    display: grid;
    grid-template-columns: 44px 1fr;
    align-items: start;
    gap: 10px;
    position: relative;
  }

  .tour-cal-wrap .bmonth .grid .d{
    width: 40px; height: 40px;
    display:flex; align-items:center; justify-content:center;
    font-weight: 900; font-size: 15px;
    background:#f3f6fb; border:1px solid var(--line); color:#0f172a;
    border-radius: 10px;
  }

  .tour-cal-wrap .bmonth .grid li.has .dot{
    position:absolute; right:10px; top:10px;
    width:6px; height:6px; border-radius:50%; background:#e31b54;
  }

  .tour-cal-wrap .bmonth .elist{ gap:6px; }
  .tour-cal-wrap .bmonth .evt{
    padding: 8px 10px; font-size: 12px; border-radius: 10px;
  }
  .tour-cal-wrap .bmonth .evt i{ font-size: 11px; padding: 2px 6px; }
}

/* --e-- 대회일정--e--  */



/* --s-- 참가신청 --s--  */
.apply-wrapBox{--navy:#0b2a57;--red:#cc1424;--ink:#0f172a;--muted:#667085;
  --bg:#f7f9fc;--card:#fff;--line:#e1e6ec;--shadow:0 10px 28px rgba(11,42,87,.08);
  color:var(--ink);}
.apply-wrapBox *, .apply-wrapBox *::before, .apply-wrapBox *::after{box-sizing:border-box}

.apply-wrapBox .apply-wrap{margin:0 auto;}
.apply-wrapBox .ap-title{font-size:clamp(22px,3vw,32px);font-weight:900;letter-spacing:-.02em;color:var(--navy);margin:0 0 12px}

/* 탭 */
.apply-wrapBox .tabs{margin-top:6px;}
.apply-wrapBox .tabs > input{position:absolute;opacity:0;pointer-events:none}
.apply-wrapBox .tab-nav{display:flex;gap:8px;margin-bottom:30px}
.apply-wrapBox .tab-nav label{width: 50%; text-align: center;
  cursor:pointer; user-select:none; padding:10px 0px; border-radius:12px; border:1px solid var(--line);
  background:#fff; font-weight:900; color:#1f2937; box-shadow:0 6px 16px rgba(11,42,87,.06);
}
#tabTeam:checked   ~ .tab-nav label[for="tabTeam"],
#tabSingle:checked ~ .tab-nav label[for="tabSingle"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.apply-wrapBox .tab-panels .tab-panel{display:none}
#tabTeam:checked   ~ .tab-panels .panel-team{display:block}
#tabSingle:checked ~ .tab-panels .panel-single{display:block}

.apply-wrapBox .form-head{margin-bottom:8px}
.apply-wrapBox .form-head h3{margin:0;font-size:20px;font-weight:900;color:var(--navy)}
.apply-wrapBox .form-head .sub{margin:2px 0 0;color:var(--muted);font-size:13px}

.apply-wrapBox .form-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px;align-items:start;
  padding:10px 0;border-top:1px dashed var(--line)}
.apply-wrapBox .form-row:first-of-type{border-top:0}
.apply-wrapBox .label{font-weight:800;color:#334155;padding-top:8px}

.apply-wrapBox .input,.apply-wrapBox .select,.apply-wrapBox .textarea{
  width:100%;min-height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;
  padding:8px 10px;font-size:14px;color:var(--ink)
}
.apply-wrapBox .input:focus,.apply-wrapBox .select:focus,.apply-wrapBox .textarea:focus{outline:3px solid #cfe0ff;outline-offset:1px;border-color:#bcd2fb}
.apply-wrapBox .textarea{min-height:120px;resize:vertical}

/* 폭 조정(오른쪽 영역 튀어나옴 방지) */
.apply-wrapBox .w-wide{max-width:520px}            /* 클럽명/입금자/예정일/비번 */
.apply-wrapBox .w-name{flex:0 0 140px}             /* 이름 필드 */

.apply-wrapBox .stack-inline{display:flex;flex-wrap:wrap;gap:8px 10px}
.apply-wrapBox .stack-inline.stack-2 > *{flex:1 1 200px}

.apply-wrapBox .phone{display:flex;align-items:center;gap:6px}
.apply-wrapBox .phone .input{width:70px;text-align:center}
.apply-wrapBox .phone-narrow .input{width:64px}    /* 단체전 전화번호 더 촘촘히 */
.apply-wrapBox .phone-wide   .input{width:64px}
.apply-wrapBox .dash{color:#98a2b3}

/* 인라인 단위(팀) – 입력 바로 옆 */
.apply-wrapBox .inline-unit{display:inline-flex;align-items:center;gap:6px}
.apply-wrapBox .input-nums{width:110px;text-align:right}
.apply-wrapBox .unit-text{font-weight:800;font-size:12px;color:#475467}

/* 참가자/파트너 한 줄 정렬(데스크탑) */
.apply-wrapBox .person-line{display:flex;gap:10px;align-items:center;flex-wrap:nowrap}
.apply-wrapBox .person-line .fld-name{flex:0 0 140px;min-width:120px}
.apply-wrapBox .person-line .fld-club{flex:1 1 220px;min-width:180px}

/* Captcha / Buttons */
.apply-wrapBox .captcha{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.apply-wrapBox .captcha-img{
  width:140px;height:48px;border-radius:10px;border:1px solid var(--line);
  background:linear-gradient(135deg,#f1f5fb,#e8eef8);display:flex;align-items:center;justify-content:center;
  font-family:monospace;font-size:20px;letter-spacing:2px;color:#0b2a57;font-weight:900
}
.apply-wrapBox .captcha-img.dark{background:linear-gradient(135deg,#1e0b2a,#3c2b50);color:#fff}
.apply-wrapBox .cap-input{width:160px}
.apply-wrapBox .cap-help{flex-basis:100%;color:#667085;font-size:12px;margin:0}

.apply-wrapBox .form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px;border-top:1px dashed var(--line);margin-top:6px}
.apply-wrapBox .btn{display:inline-flex;align-items:center;justify-content:center;min-width:88px;height:40px;padding:0 14px;
  border-radius:10px;border:1px solid var(--line);background:#fff;color:#1f2937;text-decoration:none;font-weight:800}
.apply-wrapBox .btn:hover{box-shadow:0 6px 16px rgba(11,42,87,.08);border-color:#d1dae6}
.apply-wrapBox .btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.apply-wrapBox .btn-ghost{background:#f8fafc}
.apply-wrapBox .btn-outline{background:#fff}

/* ===== Responsive ≤ 768px ===== */
@media (max-width:768px){
  .apply-wrapBox .tab-nav{gap:6px}
  .apply-wrapBox .tab-nav label{flex:1 1 0;text-align:center}
  .apply-wrapBox .form-row{grid-template-columns:1fr}
  .apply-wrapBox .label{padding-top:0}
  .apply-wrapBox .w-wide{max-width:100%}
  .apply-wrapBox .person-line{flex-wrap:wrap}
  .apply-wrapBox .person-line .fld-name{flex:1 1 45%}
  .apply-wrapBox .person-line .fld-club{flex:1 1 55%}
  .apply-wrapBox .phone-wide{flex:1 1 100%}
  .apply-wrapBox .stack-inline.stack-2 > *{flex:1 1 100%}
  .apply-wrapBox .form-actions{justify-content:stretch}
  .apply-wrapBox .btn{flex:1 1 0}
}

/* --e-- 참가신청 --e--  */



/* --s-- 참가신청 비밀번호 입력 --s--  */
/* 컨테이너 */
.secret-gate-wrap .secret-gate { max-width: 560px; margin: 40px auto; color:#111827; }
.secret-gate-wrap .secret-gate .sg-title { margin:0 0 8px; font-size:22px; font-weight:700; }
.secret-gate-wrap .secret-gate .sg-sub { margin:0 0 18px; color:#6b7280; }

/* 폼 행 */
.secret-gate-wrap .secret-gate .sg-form { display:block; }
.secret-gate-wrap .secret-gate .sg-input-row {
  display:grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  align-items: center;
}

/* 입력창 + 토글 */
.secret-gate-wrap .secret-gate .sg-input-wrap {
  position: relative;
  display:flex; align-items:center;
}
.secret-gate-wrap .secret-gate input[type="password"],
.secret-gate-wrap .secret-gate input[type="text"] {
  width:100%;
  border:1px solid #e5e7eb; border-radius:10px; padding:12px 44px 12px 14px; font-size:16px;
}
.secret-gate-wrap .secret-gate input:focus { outline:none; border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.15); }

/* 버튼 (기존 .btn 시스템이 없다면 기본 정의) */
.secret-gate-wrap .secret-gate .btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 16px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; color:#111827;
  text-decoration:none; cursor:pointer; font-size:14px; white-space:nowrap;
}
.secret-gate-wrap .secret-gate .btn.primary { background:#2563eb; color:#fff; border-color:#2563eb; }
.secret-gate-wrap .secret-gate .btn.primary:hover { background:#1e4fd1; }
.secret-gate-wrap .secret-gate .btn.ghost:hover { background:#f9fafb; }

/* 스크린리더 전용 */
.secret-gate-wrap .secret-gate .sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* 반응형 */
@media (max-width: 720px) {
  .secret-gate-wrap .secret-gate .sg-input-row {
    grid-template-columns: 1fr;
  }
  .secret-gate-wrap .secret-gate .sg-submit,
  .secret-gate-wrap .secret-gate .sg-cancel { width:100%; }

  .secret-gate-wrap .secret-gate .btn {
    padding: 10px 0;
  }
}
/* --e-- 참가신청 비밀번호 입력 --e--  */



/* --s-- 참가신청 조회 --s--  */
.apply-check-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --bg:#f7f9fc; --card:#ffffff; --line:#e6ecf3;
  --ink:#0f172a; --muted:#667085; --shadow:0 10px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.apply-check-wrap .apply-check{margin:0 auto;}
.apply-check-wrap .title{margin:0 0 12px;font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy);letter-spacing:-.02em}

/* 탭 */
.apply-check-wrap .tabs{margin-top:6px}
.apply-check-wrap .tabs>input{position:absolute;opacity:0;pointer-events:none}
.apply-check-wrap .tab-nav{display:flex;gap:8px;margin-bottom:30px}
.apply-check-wrap .tab-nav label{width: 50%;text-align: center;
  cursor:pointer;user-select:none;padding:10px 16px;border-radius:12px;border:1px solid var(--line);
  background:#fff;font-weight:900;color:#1f2937;box-shadow:0 6px 16px rgba(11,42,87,.06)
}
#tabTeam:checked~.tab-nav label[for="tabTeam"],
#tabSingle:checked~.tab-nav label[for="tabSingle"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.apply-check-wrap .tab-panels .tab-panel{display:none}
#tabTeam:checked~.tab-panels #panelTeam{display:block}
#tabSingle:checked~.tab-panels #panelSingle{display:block}
/* shh 추가 */
.tab-nav {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}

.tab-nav label {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid #ddd;
  border-radius: 25px;
  cursor: pointer;
  background: #fff;
  color: #333;
  transition: all 0.2s ease;
}

.tab-nav label.active {
  background: #005bac; 
  border-color: #005bac;
  color: #fff;
}

.tab-panels .tab-panel {
  display: none;
}

.tab-panels .tab-panel.active {
  display: block;
}
/* Table */
.apply-check-wrap .board{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden}
.apply-check-wrap .board thead th{
  background:#2f3543;color:#fff;padding:14px 12px;text-align:center;font-weight:800;font-size:14px;
}


.apply-check-wrap .board tbody td{
  padding:14px 12px;border-bottom:1px solid var(--line);text-align:center;font-size:14px;color:#1f2937;
  background:#fff;
}
.apply-check-wrap .board tbody tr:hover td{background:#fafcff}
.apply-check-wrap .board tbody tr:last-child td{border-bottom:0}

.apply-check-wrap .title-link{color:#0b2a57;font-weight:900;text-decoration:none}
.apply-check-wrap .title-link:hover{text-decoration:underline}

/* Empty state */
.apply-check-wrap .board tbody tr.empty td{padding:26px 12px}
.apply-check-wrap .empty-msg{color:#667085;text-align:center}

/* Pay badges */
.apply-check-wrap .pay-badge{
  display:inline-block;padding:2px 8px;border-radius:5px;font-size:12px;font-weight:900;border:1px solid;
}

.apply-check-wrap .pay-badge.done{background:#e6f8eb;border-color:#bfe8ca;color:#166534}
.apply-check-wrap .pay-badge.pending{background:#fff2d9;border-color:#ffd6a3;color:#e44d07}

/* Pager */
.apply-check-wrap .pager{display:flex;gap:6px;justify-content:center;padding:50px 6px 6px}
.apply-check-wrap .pg{
  min-width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;
  display:flex;align-items:center;justify-content:center;text-decoration:none;color:#1f2937;font-weight:800
}
.apply-check-wrap .pg:hover{box-shadow:0 6px 16px rgba(11,42,87,.06);border-color:#d0dae6}
.apply-check-wrap .pg.is-active{background:var(--navy);border-color:var(--navy);color:#fff}



/* ===== Responsive: Mobile (≤ 768px) — 카드형 변환 ===== */
@media (max-width:768px){

  /* 헤더 칩 */
  .apply-check-wrap .tab-nav{gap:6px}
  .apply-check-wrap .tab-nav label{flex:1 1 0;text-align:center}

  .apply-check-wrap .board thead{display:none}
  .apply-check-wrap .board tbody tr{
    display:block;margin:10px 6px;border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 16px rgba(11,42,87,.05);overflow:hidden
  }
  .apply-check-wrap .board tbody td{
    display:flex;justify-content:space-between;gap:12px;text-align:left;border-bottom:1px dashed var(--line);
    padding:12px 14px
  }
  .apply-check-wrap .board tbody tr:last-child td{border-bottom:1px dashed var(--line)}
  .apply-check-wrap .board tbody td:last-child{border-bottom:0}
  .apply-check-wrap .board tbody td::before{
    content:attr(data-label);font-weight:800;color:#64748b;flex:0 0 auto
  }

  /* 제목(클럽명/참가자)은 첫 줄에서 더 두껍게 */
  .apply-check-wrap .board tbody td:nth-child(2) .title-link,
  .apply-check-wrap .board tbody td:nth-child(3) .title-link{font-size:15px}

  .apply-check-wrap .pager{padding-top:6px}
}

/* --e-- 참가신청 조회 --e--  */



/* --s-- 참가신청 조회 상세페이지 --s--  */
.apply-view-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3;
  --ink:#0f172a; --muted:#667085; --shadow:0 12px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.apply-view-wrap *, .apply-view-wrap *::before, .apply-view-wrap *::after{box-sizing:border-box}
.apply-view-wrap .view-wrap{margin:0 auto;}
.apply-view-wrap .vw-title{margin:0 0 12px;font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy);letter-spacing:-.02em}

.apply-view-wrap .vw-head{border-bottom:1px dashed var(--line)}
.apply-view-wrap .crumbs{color:#667085;font-size:13px}
.apply-view-wrap .crumbs a{color:#495a70;text-decoration:none}
.apply-view-wrap .crumbs span{opacity:.5;margin:0 4px}
.apply-view-wrap .vw-h{margin:6px 0 8px;font-size:20px;font-weight:900;color:#0b2a57}
.apply-view-wrap .vw-meta{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;color:#475467;font-size:13px;margin-bottom: 10px;}
.apply-view-wrap .vw-meta .sep{opacity:.45}
.apply-view-wrap .tag{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid var(--line);font-weight:900;font-size:12px;background:#f8fafc;color:#334155}
.apply-view-wrap .tag.type-team{background:rgba(8,145,178,.08);border-color:rgba(8,145,178,.35);color:#065f73}
.apply-view-wrap .tag.type-single{background:rgba(124,58,237,.10);border-color:rgba(124,58,237,.35);color:#5b21b6}

.apply-view-wrap .vw-body{padding:10px 0 16px;display:flex;flex-direction:column;gap:14px}
.apply-view-wrap .blk{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}
.apply-view-wrap .blk-h{margin:0 0 10px;font-size:14px;font-weight:900;color:#334155}

/* Key-Value grid */
.apply-view-wrap .kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}
.apply-view-wrap .kv > div{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}
.apply-view-wrap .kv dt{font-weight:800;color:#64748b}
.apply-view-wrap .kv dd{margin:0;color:#0f172a;word-break:keep-all}

/* People cards */
.apply-view-wrap .cards-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.apply-view-wrap .person{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fdfefe}
.apply-view-wrap .person h5{margin:0 0 6px;font-size:13px;color:#64748b}
.apply-view-wrap .person .name{margin:0 0 2px;font-weight:900}
.apply-view-wrap .person .phone{margin:0;color:#334155}

/* Chips */
.apply-view-wrap .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.apply-view-wrap .chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:#f8fafc;color:#0f172a;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}
.apply-view-wrap .chip b{color:#0b2a57}

/* Memo */
.apply-view-wrap .memo{background:#f7fafc;border:1px dashed var(--line);border-radius:10px;padding:12px;color:#1f2937}

/* Payment badge */
.apply-view-wrap .pay-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:900;border:1px solid}
.apply-view-wrap .pay-badge.done{background:#e6f8eb;border-color:#bfe8ca;color:#166534}
.apply-view-wrap .pay-badge.pending{background:#fff2d9;border-color:#ffd6a3;color:#8a5a00}

/* actions 버튼 */
.apply-view-wrap .vw-actions{display:flex;gap:8px;align-items:center;padding:10px 16px;border-top:1px dashed var(--line)}
.apply-view-wrap .vw-actions .flex{flex:1 1 auto}
.apply-view-wrap .btn{display:inline-flex;align-items:center;justify-content:center;min-width:90px;height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#1f2937;text-decoration:none;font-weight:800}
.apply-view-wrap .btn:hover{box-shadow:0 6px 16px rgba(11,42,87,.08);border-color:#d0dae6}
.apply-view-wrap .btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.apply-view-wrap .btn-outline{background:#fff}
.apply-view-wrap .btn-ghost{background:#f8fafc}
.apply-view-wrap .btn-light{background:#eef2f7}

@media (max-width: 768px){
  .apply-view-wrap .kv{grid-template-columns:1fr}
  .apply-view-wrap .kv > div{grid-template-columns:100px 1fr}
  .apply-view-wrap .cards-3{grid-template-columns:1fr}
  .apply-view-wrap .vw-actions{flex-wrap:wrap;font-size: 12px;}
  .apply-view-wrap .btn{flex:1 1 0;min-width:0}
}

/* ===== Print (선택) ===== */
@media print{
  .apply-view-wrap .view-wrap{background:#fff;padding:0}
  .apply-view-wrap .vw-actions{display:none}
  .apply-view-wrap .view-card{box-shadow:none}
}

/* --e-- 참가신청 조회 상세페이지 --e--  */



/* --s-- 연간사업계획 --s--  */
.year-plan-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3; --ink:#0f172a; --muted:#667085;
  --shadow:0 12px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.year-plan-wrap *, .year-plan-wrap *::before, .year-plan-wrap *::after{box-sizing:border-box}
.year-plan-wrap .year-plan{margin:0 auto;}
.year-plan-wrap .yp-title{margin:0 0 14px;font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy);letter-spacing:-.02em;text-align: center;}

.year-plan-wrap .pc-head{padding: 0 16px 12px;border-bottom:1px dashed var(--line);}
.year-plan-wrap .pc-title{margin:0;font-size:16px;font-weight:900;color:#0b2a57}

/* ===== Table ===== */
.year-plan-wrap .table-wrap{overflow:auto; margin-bottom: 80px;}
.year-plan-wrap .plan-table{width:100%;border-collapse:separate;border-spacing:0}
.year-plan-wrap .plan-table caption{caption-side:top;text-align:left;margin-bottom:8px;color:#667085}
.year-plan-wrap .plan-table thead th{
  position:sticky; top:0; z-index:2;
  background:#2f3543; color:#fff; padding:14px 10px; text-align:center; font-weight:800; font-size:14px;
}

.year-plan-wrap .plan-table tbody td{
  padding:12px 10px; border-bottom:1px solid var(--line); background:#fff; color:#0f172a; font-size:14px; text-align:center;
}
.year-plan-wrap .plan-table tbody tr:nth-child(even) td{background:#fbfdff}
.year-plan-wrap .plan-table tbody tr:hover td{background:#f9fbff}

/* ===== Mobile (card rows) ===== */
.year-plan-wrap .sr-only{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
@media (max-width:768px){
  .year-plan-wrap .plan-table thead{display:none}
  .year-plan-wrap .plan-table tbody tr{
    display:block; margin:10px 6px; border:1px solid var(--line); border-radius:12px; overflow:hidden;
    box-shadow:0 6px 16px rgba(11,42,87,.05);
  }
  .year-plan-wrap .plan-table tbody td{
    display:flex; justify-content:space-between; gap:12px; text-align:left;
    padding:12px 14px; border-bottom:1px dashed var(--line);
  }
  .year-plan-wrap .plan-table tbody td:last-child{border-bottom:0}
  .year-plan-wrap .plan-table tbody td::before{
    content:attr(data-label);
    font-weight:800; color:#64748b; flex:0 0 auto;
  }
  /* 길어진 제목 칸은 줄바꿈 */
  .year-plan-wrap .plan-table tbody td[data-label="대회 명칭"]{white-space:normal}
}

/* --e-- 연간사업계획 --e--  */


/* --s-- 시군협회 --s--  */
.local-assocs-wrap{
  --navy:#0b2a57; --ink:#0f172a; --muted:#667085;
  --bg:#f7f9fc; --card:#ffffff; --line:#e6ecf3;
  --accent:#e9f2ff; --shadow:0 12px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.local-assocs-wrap *, .local-assocs-wrap *::before, .local-assocs-wrap *::after{box-sizing:border-box}

.local-assocs-wrap .local-assocs{margin:0 auto;}
.local-assocs-wrap .la-title{margin:0;font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--navy);letter-spacing:-.02em}
.local-assocs-wrap .la-lead{margin:4px 0 14px;color:var(--muted);font-size:14px}
.local-assocs-wrap .la-sub{margin:16px 0 8px;font-size:16px;color:#334155;font-weight:900}

.local-assocs-wrap .assoc-grid{
  display:grid; gap:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width: 768px){
  .local-assocs-wrap .assoc-grid{grid-template-columns:1fr}
}

.local-assocs-wrap .assoc{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  box-shadow:var(--shadow); overflow:hidden;
}
.local-assocs-wrap .assoc-h{
  background:linear-gradient(180deg,#fbfdff,#f6f9fe);
  border-bottom:1px dashed var(--line); padding:12px 14px;
}
.local-assocs-wrap .assoc-name{margin:0;font-size:18px;font-weight:900;color:#0b2a57}
.local-assocs-wrap .term{font-size:13px;color:#64748b;margin-left:6px}

.local-assocs-wrap .assoc-body{display:grid; gap:12px; padding:12px 14px}
.local-assocs-wrap .assoc-body.with-photo{grid-template-columns:140px 1fr 1fr}
.local-assocs-wrap .assoc.nopic .assoc-body{grid-template-columns:1fr 1fr}

@media (max-width: 1020px){
  .local-assocs-wrap .assoc-body.with-photo{grid-template-columns:1fr}
  .local-assocs-wrap .assoc.nopic .assoc-body{grid-template-columns:1fr}
}

/* Role blocks */
.local-assocs-wrap .role{
  border:1px solid var(--line); border-radius:12px; padding:10px; background:#fff;
  display:flex; flex-direction:column; gap:8px;
}
.local-assocs-wrap .role-badge{
  display:inline-block; padding:4px 10px; border-radius:5px; font-weight:900; font-size:12px;
  background:#eaf2ff; border:1px solid #cfe0ff; color:#123a8a; width:max-content;
}
.local-assocs-wrap .role-badge.pink{background:#ffe7f1; border-color:#ffc9dd; color:#8a0b37}

/* Key-Value (성명/전화번호) */
.local-assocs-wrap .kv{display:grid; gap:8px; margin:0}
.local-assocs-wrap .kv>div{display:grid; grid-template-columns:72px 1fr; gap:10px; align-items:center}
.local-assocs-wrap .kv dt{font-weight:800; color:#061c3c}
.local-assocs-wrap .kv dd{margin:0; color:#0f172a}
.local-assocs-wrap .kv a{text-decoration:none; color:#0b2a57;}
.local-assocs-wrap .kv a:hover{text-decoration:underline}

/* --e-- 시군협회 --e--  */


/* --s-- 시군협회클럽 --s--  */
.region-hubs-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --ink:#0f172a; --muted:#667085;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3;
  --shadow:0 10px 28px rgba(11,42,87,.08);
  color:var(--ink);
}
.region-hubs-wrap .region-hubs{margin:0 auto 80px;}
.region-hubs-wrap .hubs-head .lead{margin:0 0 12px;color:var(--muted);font-size:14px}

/* ===== Grid ===== */
.region-hubs-wrap .hub-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
@media (max-width: 1024px){ .region-hubs-wrap .hub-grid{grid-template-columns:repeat(4,1fr);} }
@media (max-width: 820px){  .region-hubs-wrap .hub-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width: 560px){  .region-hubs-wrap .hub-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 380px){  .region-hubs-wrap .hub-grid{grid-template-columns:1fr;} }

/* ===== Hub Button(Card) ===== */
.region-hubs-wrap .hub{
  position:relative; display:flex; align-items:center; justify-content: space-around;
  min-height:82px;
  border:1px solid var(--line); border-radius:16px; background:var(--card);
  text-decoration:none; color:inherit; box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow:hidden;
}
.region-hubs-wrap .hub:hover{transform:translateY(-2px); box-shadow:0 16px 34px rgba(11,42,87,.12); border-color:#d4deea}
.region-hubs-wrap .hub:focus-visible{outline:3px solid #bfd6ff; outline-offset:2px}

/* 아이콘(테니스볼) */
.region-hubs-wrap .hub-icon{flex:0 0 44px; width:44px; height:44px; display:grid; place-items:center; border-radius:999px;background:linear-gradient(135deg,#f1f6ff,#e8eef9); }
.region-hubs-wrap .ball {width:24px;height:24px;stroke-width:1.6; background: url(../../images/home/ball.png) no-repeat center;}

/* 본문 */
.region-hubs-wrap .hub-body{min-width:0; display:flex; flex-direction:column}
.region-hubs-wrap .hub-title{font-size:16px;font-weight:900;color:#0b2a57;letter-spacing:-.01em}
.region-hubs-wrap .hub-meta{font-size:12px;color:#6b7280}


/* 비활성(준비중) */
.region-hubs-wrap .hub.disabled{pointer-events:none; opacity:.6; filter:saturate(.7)}

/* --e-- 시군협회클럽 --e--  */



/* --s-- 게시글 작성/수정페이지 --s--  */
/* 컨테이너 */
.board-editor-wrap .board-editor { --gap:16px; --bd:#e5e7eb; --fg:#111827; --muted:#6b7280; color:var(--fg); }
.board-editor-wrap .be-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.board-editor-wrap .be-title { margin:0; font-size:22px; font-weight:700; }
.board-editor-wrap .be-actions-top .btn { margin-left:6px; }

/* 그리드 */
.board-editor-wrap .be-grid {
  display:grid; grid-template-columns: 1fr 1fr; gap: var(--gap);
}
.board-editor-wrap .be-field { display:flex; flex-direction:column; gap:8px; margin-bottom: 20px;}
.board-editor-wrap .be-full { grid-column: 1 / -1; }
.board-editor-wrap .be-inline { grid-column: 1 / -1; display:flex; gap:10px;}

.board-editor-wrap label { font-weight:600; font-size:14px; }
.board-editor-wrap input[type="text"], .board-editor-wrap input[type="password"], .board-editor-wrap select, .board-editor-wrap textarea {
  border:1px solid var(--bd); border-radius:8px; padding:10px 12px; font-size:14px;
}
.board-editor-wrap textarea { resize:vertical; }
.board-editor-wrap .help { margin:0; font-size:12px; color:var(--muted); }

.board-editor-wrap .char-count { margin-top:-4px; font-size:12px; color:#9ca3af; text-align:right; }

.board-editor-wrap .chk { display:inline-flex; align-items:center; gap:8px; font-size:14px; }

/* 파일 */
.board-editor-wrap .file-control { display:flex; gap:8px; align-items:center; flex-wrap:wrap; border: 1px solid var(--bd);border-radius:8px; padding:10px 12px;}
.board-editor-wrap .file-list { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.board-editor-wrap .file-list li { display:flex; align-items:center; gap:10px; justify-content:space-between; border:1px dashed #dde3ea; border-radius:8px; padding:8px 10px; }
.board-editor-wrap .file-list a { text-decoration:none; }
.board-editor-wrap .file-list a:hover { text-decoration:underline; }
.board-editor-wrap .file-list.existed li { border-style:solid; }

/* 간단 아이콘(앞서 만든 확장자별 스타일과 호환) */
.board-editor-wrap .file-icon {
  display:inline-block; width:18px; height:22px; border:1px solid #d1d5db; border-radius:3px;
  background:#f6f7f9; position:relative; vertical-align:middle; margin-right:6px;
}
.board-editor-wrap .file-icon::after {
  content:"FILE"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-size:10px; font-weight:700; color:#445;
}

/* 툴바 */
.board-editor-wrap .editor-toolbar { display:flex; gap:6px; }
.board-editor-wrap .editor-toolbar button {
  border:1px solid var(--bd); background:#fff; border-radius:6px; padding:6px 10px; cursor:pointer; font-size:13px;
}
.board-editor-wrap .editor-toolbar button:hover { background:#f9fafb; }

/* 하단 버튼 영역 */
.board-editor-wrap .be-actions-bottom { display:flex; gap:8px; justify-content:flex-end; margin-top:18px; }

/* 버튼 */
.board-editor-wrap .btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 14px; border-radius:8px; border:1px solid var(--bd);
  background:#fff; color:var(--fg); cursor:pointer; text-decoration:none; font-size:14px;
}
.board-editor-wrap .btn.primary { background:#2563eb; color:#fff; border-color:#2563eb; }
.board-editor-wrap .btn.primary:hover { background:#1e4fd1; }
.board-editor-wrap .btn.ghost { background:#fff; }
.board-editor-wrap .btn.danger { background:#ef4444; border-color:#ef4444; color:#fff; }
.board-editor-wrap .btn.danger:hover { background:#dc2626; }
.board-editor-wrap .btn.danger-line { border-color:#ef4444; color:#ef4444; background:#fff; }
.board-editor-wrap .btn.xsm { padding:4px 8px; font-size:12px; border-radius:6px; }

/* 반응형 */
@media (max-width: 900px) {
  .board-editor-wrap .be-grid { grid-template-columns: 1fr; }
  .board-editor-wrap .be-inline { flex-wrap:wrap; }
  .board-editor-wrap .be-head { flex-direction:column; align-items:flex-start; gap:8px; }
  .board-editor-wrap .be-actions-top { align-self:stretch; display:flex; gap:8px; justify-content:flex-end; }
}

/* --e-- 게시글 작성/수정페이지 --e--  */


/* --s-- 정관 --s--  */
.bylaw-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --ink:#0f172a; --muted:#667085;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3;
  --shadow:0 14px 32px rgba(11,42,87,.08);
  color:var(--ink);
}
.bylaw-wrap *{box-sizing:border-box}

.bylaw-wrap .bylaw{margin:0 auto;}
.bylaw-wrap .by-head h1{margin:0;font-size:clamp(22px,3.2vw,34px);font-weight:900;color:var(--navy);letter-spacing:-.02em}
.bylaw-wrap .by-head .by-lead{margin:4px 0 14px;color:#6b7280}

.bylaw-wrap .toc-mobile{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;margin-bottom:12px}
.bylaw-wrap .toc-mobile summary{cursor:pointer;font-weight:900;color:#0b2a57;list-style:none}
.bylaw-wrap .toc-mobile[open] summary{margin-bottom:8px}
.bylaw-wrap .toc-list{display:grid;grid-template-columns:1fr;gap:6px}
.bylaw-wrap .toc-list a{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:#0f172a}
.bylaw-wrap .toc-list a:hover{border-color:#d3deeb;box-shadow:0 8px 20px rgba(11,42,87,.06)}

.bylaw-wrap .by-grid{display:grid;grid-template-columns:240px 1fr;gap:16px}
.bylaw-wrap .by-toc{position:sticky;top:16px;align-self:start;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px;box-shadow:var(--shadow)}
.bylaw-wrap .by-toc .toc-list a{border-radius:8px}

.bylaw-wrap .by-body{min-width:0}
.bylaw-wrap .chapter{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:14px}
.bylaw-wrap .chapter h2{margin:0 0 8px;font-size:20px;font-weight:900;color:#0b2a57}
.bylaw-wrap .art{margin:14px 0 6px;font-size:16px;font-weight:900;color:#0f172a}
.bylaw-wrap .chapter p{margin:6px 0;line-height:1.7}
.bylaw-wrap .chapter .num{margin:6px 0 8px 1.2em}
.bylaw-wrap .chapter .num>li{margin:2px 0}
.chapter { scroll-margin-top: 80px; } 

.bylaw-wrap .rev{display:inline-block;margin-left:6px;padding:.1em .5em;border-radius:999px;border:1px solid #ffd5e4;background:#fff1f6;color:#8a0b37;font-size:12px;font-weight:800}
.bylaw-wrap .note{color:#6b7280}

.bylaw-wrap .to-top{display:flex;justify-content:flex-end;margin-top:10px}
.bylaw-wrap .to-top a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:5px;border:1px solid var(--line);background:#fff;text-decoration:none;color:#0b2a57;font-weight:900}
.bylaw-wrap .to-top a:hover{box-shadow:0 8px 18px rgba(11,42,87,.08)}

@media (max-width: 768px){
  .bylaw-wrap .by-grid{grid-template-columns:1fr}
  .bylaw-wrap .by-toc{display:none}
  .bylaw-wrap .toc-mobile{display:block}
  .bylaw-wrap .chapter{padding:12px 12px}
}

/* --e-- 정관 --e--  */

/* --s-- 법적고지 --s--  */
.bylaw-wrap{
  --navy:#0b2a57; --red:#cc1424;
  --ink:#0f172a; --muted:#667085;
  --bg:#f7f9fc; --card:#fff; --line:#e6ecf3;
  --shadow:0 14px 32px rgba(11,42,87,.08);
  color:var(--ink);
}
.legal-wrap *{box-sizing:border-box}

.legal-wrap .legal{margin:0 auto;}
.legal-wrap .by-head h1{margin:0;font-size:clamp(22px,3.2vw,34px);font-weight:900;color:var(--navy);letter-spacing:-.02em}
.legal-wrap .by-head .by-lead{margin:4px 0 14px;color:#6b7280}

.legal-wrap .toc-mobile{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;margin-bottom:12px}
.legal-wrap .toc-mobile summary{cursor:pointer;font-weight:900;color:#0b2a57;list-style:none}
.legal-wrap .toc-mobile[open] summary{margin-bottom:8px}
.legal-wrap .toc-list{display:grid;grid-template-columns:1fr;gap:6px}
.legal-wrap .toc-list a{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:#0f172a}
.legal-wrap .toc-list a:hover{border-color:#d3deeb;box-shadow:0 8px 20px rgba(11,42,87,.06)}

.legal-wrap .by-grid{display:grid;grid-template-columns:240px 1fr;gap:16px}
.legal-wrap .by-toc{position:sticky;top:16px;align-self:start;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px;box-shadow:var(--shadow)}
.legal-wrap .by-toc .toc-list a{border-radius:8px}

.legal-wrap .by-body{min-width:0}
.legal-wrap .by-body > section {margin-bottom: 50px;}
.legal-wrap .by-body > section > ul > li > ul {padding: 0 20px;}
.legal-wrap {background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:14px}
.legal-wrap h3{margin:0 0 8px;font-size:20px;font-weight:800;color:#333;position: relative; padding-left: 25px;}
.legal-wrap h3::before{position: absolute;display: block;content: "";width: 18px; height: 18px; background-color: #c5dbf1; top: 9px; left: 0;}
.legal-wrap h3::after{position: absolute;display: block;content: "";width: 12px; height: 12px; background-color: #395f95; top: 12px; left: 3px;}
.legal-wrap .art{margin:14px 0 6px;font-size:16px;font-weight:600;color:#444}
.legal-wrap p{margin:6px 0;line-height:1.7}
.legal-wrap .num{margin:6px 0 8px 1.2em}
.legal-wrap .num>li{margin:2px 0}

@media (max-width: 768px){
  .legal-wrap .by-grid{grid-template-columns:1fr}
  .legal-wrap .by-toc{display:none}
  .legal-wrap .toc-mobile{display:block}
}

/* --e-- 법적고지 --e--  */





