@import url('board.css');

/* CSS Variables */
:root {
  --primary: #306fb7;
  --primary-dark: #25598f;
  --primary-light: #e8f1fb;
  --accent: #f9a825;
  --dark: #1a1a1a;
  --text: #333;
  --text-light: #666;
  --border: #e3e3e3;
  --bg-light: #f7f7f7;
  --white: #fff;
  --font-en: 'Montserrat', sans-serif;
  --font-ko: 'Noto Sans KR', sans-serif;
  --transition: .3s ease;
  --header-h: 70px;
  --nav-h: 50px;
  --container: 1200px;
  --radius: 8px;
}

/* Reset */
*, *::before, *::after {margin:0;padding:0;box-sizing:border-box;}
html {scroll-behavior:smooth;font-size:16px;scroll-padding-top:calc(var(--header-h) + 16px);}
body {font-family:var(--font-ko);color:var(--text);background:var(--white);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
a {text-decoration:none;color:inherit;transition:color var(--transition);}
ul, ol {list-style:none;}
img {max-width:100%;height:auto;display:block;}
button {cursor:pointer;border:none;background:none;font-family:inherit;}

/* Utility */
.container {max-width:var(--container);margin:0 auto;padding:0 24px;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

/* Top Bar (Header) */
.top-bar {background:var(--white);height:var(--header-h);z-index:300;position:relative;}
.top-bar.is-sticky {position:fixed;top:0;left:0;width:100%;}
.top-bar .container {display:flex;align-items:center;height:100%;position:relative;}
.top-bar h1 {margin:0;padding:0;font-size:inherit;font-weight:inherit;}
.logo {display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.15rem;color:var(--primary-dark);}
.logo img {height:44px;width:auto;}
.logo-text {display:flex;flex-direction:column;line-height:1.3;}
.logo-text .main {font-family:var(--font-ko);font-size:1.1rem;}
.logo-text .sub {font-family:var(--font-en);font-size:.7rem;color:var(--text-light);font-weight:500;letter-spacing:.5px;}

/* Hero Slider */
.hero-wrap {padding:0 24px 24px;background:var(--white);}
.hero {position:relative;height:calc(100vh - var(--header-h) - 32px);overflow:hidden;background:var(--dark);border-radius:16px;}
.hero-track {display:flex;height:100%;transition:transform .6s cubic-bezier(.25,.8,.25,1);will-change:transform;}
.hero-slide {min-width:100%;position:relative;height:100%;}
.hero-slide > img {width:100%;height:100%;object-fit:cover;}
.hero-overlay {position:absolute;inset:0;background:linear-gradient(to right, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 60%, transparent 100%);display:flex;align-items:center;padding-left:6%;}
.hero-split {justify-content:center;padding-left:0;padding-right:0;}
.hero-split-inner {display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1200px;height:100%;padding:0 4%;}
.hero-img {flex-shrink:0;max-width:42%;height:100%;display:flex;align-items:center;justify-content:flex-end;}
.hero-img img {max-height:75%;width:auto;object-fit:contain;filter:drop-shadow(0 8px 24px rgba(0,0,0,.3));}
.hero-text {color:var(--white);max-width:540px;}
.hero-text h2 {font-size:clamp(2.2rem, 2.2vw, 3.6rem);font-weight:800;line-height:1.35;margin-bottom:12px;text-shadow:0 2px 8px rgba(0,0,0,.3);}
.hero-text p {font-size:clamp(1.05rem, 1.05vw, 1.6rem);opacity:.9;line-height:1.6;text-shadow:0 1px 4px rgba(0,0,0,.3);}

/* Hero Tab Bar */
.hero-tab-bar {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 100px;
  padding: 5px;
  gap: 2px;
}

.hero-tab-slider {position:absolute;height:calc(100% - 10px);border-radius:100px;background:var(--white);transition:left .35s cubic-bezier(.4,0,.2,1), width .35s cubic-bezier(.4,0,.2,1);pointer-events:none;}

.hero-tab {
  position: relative;
  z-index: 1;
  padding: 10px 24px;
  font-size: .88rem;
  font-weight: 500;
  color: rgba(255,255,255,.85);
  border-radius: 100px;
  white-space: nowrap;
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--transition), font-weight var(--transition);
}

.hero-tab:hover {color:var(--white);}
.hero-tab.is-active {color:var(--primary);font-weight:700;}

.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(0,0,0,.35);
  color: var(--white);
  font-size: 1.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
}

.hero-arrow:hover {background:rgba(0,0,0,.6);}
.hero-arrow.prev {left:16px;}
.hero-arrow.next {right:16px;}

/* Main Nav (Center Aligned) */
.main-nav {position:absolute;left:50%;top:0;transform:translateX(-50%);display:flex;align-items:center;height:100%;}
.main-nav > .gnb-copyright {display:none;}
.main-nav .gnb-toggle {display:none;}
.main-nav .gnb-sub {display:none;}
.main-nav ul {display:flex;align-items:center;height:100%;gap:0;}
.main-nav li {}

.main-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--header-h);
  padding: 0 16px;
  white-space: nowrap;
  color: var(--text);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .3px;
  transition: color var(--transition);
  position: relative;
}

.main-nav a::after {content:'';position:absolute;bottom:0;left:50%;width:0;height:3px;background:var(--primary);transition:width var(--transition), left var(--transition);}
.main-nav a:hover {color:var(--primary);}
.main-nav a.active {color:#e85d04;}
.main-nav a.active::after {display:none;}

/* Mega Menu */
.mega-menu {display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);background:var(--white);box-shadow:0 4px 20px rgba(0,0,0,.1);border-top:2px solid var(--primary);z-index:200;padding:24px 32px;min-width:600px;}
.main-nav:hover .mega-menu {display:flex;}
.mega-menu-inner {display:flex;gap:32px;width:100%;}
.mega-col {min-width:120px;}
.mega-col h4 {font-size:.85rem;font-weight:700;color:var(--dark);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.mega-col h4 a {height:auto;padding:0;font-size:inherit;font-weight:inherit;}
.mega-col a {display:block;padding:4px 0;font-size:.82rem;color:var(--text-light);height:auto;font-weight:400;}
.mega-col a:hover {color:var(--primary);}
.mega-col a::after {display:none;}

/* Placeholder For Sticky Offset */
.nav-placeholder {height:0;}
.nav-placeholder.is-active {height:var(--header-h);}

/* Profile */
.profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 50%;
  transition: background 0.2s;
}

.profile svg {stroke:var(--dark);transition:stroke 0.2s;}
.profile:hover {background:rgba(0,0,0,0.05);}
.profile:hover svg {stroke:var(--primary);}

/* Header Right */
.header-right {display:flex;align-items:center;gap:4px;margin-left:auto;}

/* Hamburger Menu Toggle — Mobile Only */
.menu-toggle {display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer;margin-left:4px;}
.menu-toggle span {display:block;width:24px;height:2px;background:var(--dark);transition:transform var(--transition), opacity var(--transition);}

/* Fullscreen Menu Overlay */
.fullmenu-overlay {position:fixed;inset:0;z-index:300;background:rgba(48, 111, 183, .97);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .35s ease, visibility .35s ease;}
.fullmenu-overlay.is-open {opacity:1;visibility:visible;}

.fullmenu-close {
  position: absolute;
  top: 24px;
  right: 32px;
  width: 48px;
  height: 48px;
  background: none;
  border: none;
  color: rgba(255,255,255,.7);
  font-size: 2.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--transition);
}

.fullmenu-close:hover {color:var(--white);}
.fullmenu-inner {width:100%;max-width:1100px;padding:0 40px;}
.fullmenu-row {display:flex;align-items:baseline;gap:48px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.15);}
.fullmenu-row:last-child {border-bottom:none;}
.fullmenu-title {flex-shrink:0;width:160px;font-size:1.25rem;font-weight:800;margin:0;}
.fullmenu-title a {color:var(--white);transition:opacity var(--transition);}
.fullmenu-title a:hover {opacity:.7;}
.fullmenu-subs {display:flex;flex-wrap:wrap;gap:12px 40px;}
.fullmenu-subs a {color:rgba(255,255,255,.7);font-size:.92rem;font-weight:500;padding:4px 0;transition:color var(--transition);}
.fullmenu-subs a:hover {color:var(--white);}

/* Sections (Common) */
.op-section {padding:80px 0;}
.op-section:nth-child(even) {background:var(--bg-light);}
.op-section-title {text-align:center;font-size:1.85rem;font-weight:800;color:var(--dark);margin-bottom:8px;position:relative;display:inline-block;width:100%;}
.op-section-title::after {content:'';display:block;width:50px;height:3px;background:var(--primary);margin:12px auto 0;border-radius:2px;}
.op-section-desc {text-align:center;color:var(--text-light);font-size:.95rem;margin-top:8px;margin-bottom:48px;}

/* Reveal Animation */
[data-reveal] {opacity:0;transform:translateY(30px);transition:opacity .7s cubic-bezier(.23,1,.32,1), transform .7s cubic-bezier(.23,1,.32,1);}
[data-reveal].is-visible {opacity:1;transform:translateY(0);}

/* #Intro — 기관소개 (탭) */
/* 탭 버튼 */
.op-tabs {display:flex;justify-content:center;gap:4px;margin-bottom:36px;border-bottom:2px solid var(--border);padding-bottom:0;}
.op-tab-btn {padding:12px 28px;font-size:.92rem;font-weight:600;color:var(--text-light);background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color var(--transition), border-color var(--transition);}
.op-tab-btn:hover {color:var(--primary);}
.op-tab-btn.on {color:var(--primary);border-bottom-color:var(--primary);}

/* 탭 패널 */
.op-tab-content {display:none;animation:tabFadeIn .4s ease;}
.op-tab-content.on {display:block;}

@keyframes tabFadeIn {
  from {opacity:0;transform:translateY(12px);}
  to {opacity:1;transform:translateY(0);}
}

/* 연혁 (좌우 분할) */
.history-grid {display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.history-col-title {font-size:1.1rem;font-weight:800;color:var(--primary);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--primary);}
.history-col {max-height:600px;overflow-y:auto;padding-right:8px;}
.history-col::-webkit-scrollbar {width:4px;}
.history-col::-webkit-scrollbar-thumb {background:var(--border);border-radius:2px;}
.history-list {}
.history-item {display:flex;gap:24px;padding:20px 0;border-bottom:1px solid var(--border);}
.history-item:last-child {border-bottom:none;}
.history-year {flex-shrink:0;width:70px;font-family:var(--font-en);font-size:.88rem;font-weight:800;color:var(--primary);}
.history-content p {font-size:.9rem;color:var(--text);line-height:1.8;}

/* 조직도 (좌우 분할 테이블) */
.org-grid {display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.org-title {font-size:1.1rem;font-weight:800;color:var(--primary);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--primary);}
.org-table {width:100%;border-collapse:collapse;}
.org-table thead th {background:var(--bg-light);padding:10px 16px;font-size:.82rem;font-weight:700;color:var(--text-light);text-align:left;border-bottom:2px solid var(--border);}
.org-table tbody td {padding:12px 16px;font-size:.88rem;color:var(--text);border-bottom:1px solid var(--border);}
.org-table tbody td:first-child {font-weight:600;color:var(--dark);white-space:nowrap;}

/* 오시는 길 */
.location-grid {display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;}
.location-map {min-height:380px;border-radius:var(--radius);overflow:hidden;}
.location-map .root_daum_roughmap {width:100%;height:100%;min-height:380px;}
.location-info h3 {font-size:1.2rem;font-weight:700;color:var(--primary-dark);margin-bottom:20px;}
.location-detail {display:flex;flex-direction:column;gap:14px;}
.location-row strong {display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--primary);margin-bottom:6px;}
.loc-icon {width:18px;height:18px;flex-shrink:0;stroke:var(--primary);}
.loc-list {list-style:none;padding:0;}
.loc-list li {position:relative;padding-left:14px;font-size:.9rem;color:var(--text);line-height:1.7;margin-bottom:2px;}
.loc-list li::before {content:'';position:absolute;left:0;top:.65em;width:5px;height:5px;background:var(--primary);border-radius:50%;}

/* 인사말 */
.greeting-grid {display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.greeting-left p,
.greeting-right p {font-size:.95rem;line-height:1.9;color:var(--text);margin-bottom:14px;}
.greeting-headline {font-size:1.3rem;font-weight:800;color:var(--dark);line-height:1.5;margin:0 0 20px;padding-bottom:14px;border-bottom:2px solid var(--primary);}
.greeting-sign {margin-top:24px;text-align:right;font-size:.9rem;color:var(--text-light);}
.greeting-sign strong {color:var(--dark);font-size:1rem;}

/* 인사말 우측 이사장 이미지 */
.greeting-right-img {border-radius:var(--radius);overflow:hidden;margin-bottom:20px;}
.greeting-right-img img {width:100%;height:auto;display:block;}

/* 인사말 단일 이미지 */
.greeting-img-single {margin-top:24px;}

/* 모바일 슬라이더 — 데스크톱에서 숨김 */
.greeting-mobile-slider {display:none;}
.greeting-img {border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;}
.greeting-img img {width:100%;height:100%;object-fit:cover;}

/* #Business — 사업소개 (탭) */
/* 사업 상단 히어로 (이미지+슬로건) */
.biz-hero {display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin-bottom:36px;}
.biz-hero-img {border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;}
.biz-hero-text h3 {font-size:1.25rem;font-weight:800;color:var(--primary);margin-bottom:14px;}
.biz-hero-text p {font-size:.92rem;line-height:1.8;color:var(--text);}
.biz-hero-text strong {color:var(--dark);}

/* 사업 프로그램 목록 */
.biz-programs {display:flex;flex-direction:column;gap:0;}
.biz-program {padding:20px 0;border-bottom:1px solid var(--border);}
.biz-program:first-child {border-top:2px solid var(--dark);}
.biz-program h4 {font-size:1rem;font-weight:800;color:var(--primary);margin-bottom:8px;}
.biz-program p {font-size:.9rem;line-height:1.7;color:var(--text-light);}

/* #News — 소식마당 (게시판) */
/* 게시판 테이블 */
.board-table {width:100%;border-collapse:collapse;}
.board-table thead th {padding:12px 14px;font-size:.82rem;font-weight:700;color:var(--text-light);text-align:center;background:var(--bg-light);border-top:2px solid var(--dark);border-bottom:1px solid var(--border);}
.board-table thead th.col-title {text-align:left;}
.board-table tbody td {padding:14px 14px;font-size:.9rem;color:var(--text);border-bottom:1px solid var(--border);text-align:center;}
.board-table tbody td.col-title {text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:0;}
.board-table .col-no {width:70px;}
.board-table .col-date {width:120px;font-family:var(--font-en);font-size:.82rem;color:var(--text-light);}
.board-row {cursor:pointer;transition:background var(--transition);}
.board-row:hover {background:var(--primary-light);}
.board-row:hover td.col-title {color:var(--primary);}

/* 게시판 하단 (글쓰기 버튼) */
.board-footer {display:flex;justify-content:flex-end;margin-top:20px;}
.btn-write {padding:10px 28px;background:var(--primary);color:var(--white);font-size:.88rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:background var(--transition);}
.btn-write:hover {background:var(--primary-dark);}

/* 갤러리 */
.gallery-grid {display:grid;grid-template-columns:repeat(3, 1fr);gap:24px;}
.gallery-item {border-radius:var(--radius);overflow:hidden;background:var(--white);border:1px solid var(--border);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition);}
.gallery-item:hover {border-color:var(--primary);box-shadow:0 6px 20px rgba(48,111,183,.1);}
.gallery-thumb {aspect-ratio:4/3;overflow:hidden;background:var(--bg-light);}
.gallery-thumb img {width:100%;height:100%;object-fit:cover;}
.gallery-placeholder {width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:.85rem;background:var(--bg-light);}
.gallery-caption {padding:14px 16px;}
.gallery-title {font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gallery-date {font-family:var(--font-en);font-size:.78rem;color:var(--text-light);}

/* 게시판 모달 */
.board-modal-overlay {position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:24px;animation:modalFadeIn .25s ease;}
.board-modal-overlay.is-open {display:flex;}

@keyframes modalFadeIn {
  from {opacity:0;}
  to {opacity:1;}
}
.board-modal {background:var(--white);border-radius:12px;width:100%;max-width:680px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,.2);animation:modalSlideUp .3s ease;}

@keyframes modalSlideUp {
  from {opacity:0;transform:translateY(24px);}
  to {opacity:1;transform:translateY(0);}
}
.board-modal-header {padding:24px 28px 16px;border-bottom:1px solid var(--border);}
.board-modal-title {font-size:1.15rem;font-weight:700;color:var(--dark);margin-bottom:6px;line-height:1.5;}
.board-modal-date {font-family:var(--font-en);font-size:.82rem;color:var(--text-light);}
.board-modal-body {padding:24px 28px;overflow-y:auto;flex:1;font-size:.92rem;color:var(--text);line-height:1.9;white-space:pre-line;}
.board-modal-footer {display:flex;justify-content:space-between;align-items:center;padding:16px 28px;border-top:1px solid var(--border);}
.board-modal-left {display:flex;gap:8px;}
.btn-modal {padding:9px 22px;font-size:.85rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:background var(--transition);}
.btn-edit {background:var(--bg-light);color:var(--text);}
.btn-edit:hover {background:var(--border);}
.btn-delete {background:#fee;color:#d32f2f;}
.btn-delete:hover {background:#fdd;}
.btn-close {background:var(--primary);color:var(--white);}
.btn-close:hover {background:var(--primary-dark);}

/* 글쓰기 모달 폼 */
.write-modal {max-width:640px;}
.write-modal-body {padding:24px 28px;}
.form-group {margin-bottom:20px;}
.form-group:last-child {margin-bottom:0;}
.form-label {display:block;font-size:.88rem;font-weight:700;color:var(--dark);margin-bottom:8px;}
.form-hint {font-weight:400;color:var(--text-light);font-size:.78rem;}
.form-input {width:100%;padding:10px 14px;font-size:.9rem;font-family:var(--font-ko);border:1px solid var(--border);border-radius:6px;outline:none;transition:border-color var(--transition);}
.form-input:focus {border-color:var(--primary);}
.form-textarea {width:100%;padding:12px 14px;font-size:.9rem;font-family:var(--font-ko);border:1px solid var(--border);border-radius:6px;outline:none;resize:vertical;line-height:1.7;transition:border-color var(--transition);}
.form-textarea:focus {border-color:var(--primary);}

/* 파일 첨부 */
.form-file-wrap {}
.form-file-input {display:none;}

.form-file-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  font-size: .85rem;
  font-weight: 600;
  color: var(--text);
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
}

.form-file-btn:hover {background:var(--primary-light);border-color:var(--primary);color:var(--primary);}
.form-file-list {margin-top:10px;display:flex;flex-direction:column;gap:6px;}

.form-file-remove {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  color: var(--text-light);
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 50%;
  transition: background var(--transition), color var(--transition);
}

.form-file-remove:hover {background:#fee;color:#d32f2f;}

/* 갤러리 이미지 미리보기 */
.gallery-preview-grid {display:grid;grid-template-columns:repeat(4, 1fr);gap:10px;margin-top:12px;}
.gallery-preview-item img {width:100%;height:100%;object-fit:cover;}

.gallery-preview-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  background: rgba(0,0,0,.6);
  color: var(--white);
  border: none;
  border-radius: 50%;
  font-size: .75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--transition);
}

.gallery-preview-remove:hover {background:#d32f2f;}

/* 모달 버튼 추가 */
.btn-cancel {background:var(--bg-light);color:var(--text);}
.btn-cancel:hover {background:var(--border);}
.btn-submit {background:var(--primary);color:var(--white);}
.btn-submit:hover {background:var(--primary-dark);}

/* #Partners — 협력마당 */
.partner-cards {display:grid;grid-template-columns:repeat(3, 1fr);gap:28px;}
.partner-card {background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color var(--transition), box-shadow var(--transition);}
.partner-card:hover {border-color:var(--primary);box-shadow:0 6px 24px rgba(48,111,183,.12);}
.partner-card-img {height:180px;overflow:hidden;background:var(--bg-light);}
.partner-card-img img {width:100%;height:100%;object-fit:cover;}
.partner-card-body {padding:24px;}
.partner-info {width:100%;border-collapse:collapse;margin-bottom:14px;}
.partner-info th {text-align:left;font-size:.82rem;font-weight:700;color:var(--text-light);padding:6px 12px 6px 0;white-space:nowrap;vertical-align:top;width:70px;}
.partner-info td {font-size:.88rem;color:var(--dark);font-weight:600;padding:6px 0;}
.partner-info td a {color:var(--primary);font-weight:500;font-size:.82rem;word-break:break-all;}
.partner-info td a:hover {text-decoration:underline;}
.partner-card-body > p {font-size:.88rem;color:var(--text-light);line-height:1.7;border-top:1px solid var(--border);padding-top:14px;}

/* #Support — 후원/참여 */
/* 후원 방법 3가지 */
.donate-methods {display:grid;grid-template-columns:repeat(3, 1fr);gap:24px;margin-bottom:48px;}
.donate-method {display:flex;align-items:flex-start;gap:16px;background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:0 2px 12px rgba(0,0,0,.05);border:1px solid var(--border);transition:border-color var(--transition), box-shadow var(--transition);}
.donate-method:hover {border-color:var(--primary);box-shadow:0 4px 20px rgba(48,111,183,.1);}
.donate-method-icon {flex-shrink:0;width:44px;height:44px;background:var(--primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary);}
.donate-method-icon svg {width:22px;height:22px;}
.donate-method-body strong {display:block;font-size:.92rem;font-weight:700;color:var(--dark);margin-bottom:6px;}
.donate-method-body p {font-size:.85rem;color:var(--text-light);line-height:1.6;margin:0;}

/* 후원안내 / 자원봉사 안내 블록 */
.support-block {background:var(--white);border-radius:var(--radius);padding:36px 32px;box-shadow:0 2px 12px rgba(0,0,0,.05);border:1px solid var(--border);margin-bottom:28px;}
.support-block:last-child {margin-bottom:0;}
.support-block-title {display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;color:var(--primary);margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid var(--primary);}
.support-title-icon {width:24px;height:24px;flex-shrink:0;}
.support-content {}
.support-item {margin-bottom:24px;}
.support-item:last-child {margin-bottom:0;}
.support-item h4 {font-size:1rem;font-weight:700;color:var(--dark);margin-bottom:10px;}
.support-num {font-family:var(--font-en);color:var(--primary);font-weight:800;margin-right:6px;}
.support-desc {list-style:none;padding:0;}
.support-desc li {position:relative;padding-left:16px;font-size:.9rem;color:var(--text);line-height:1.8;margin-bottom:6px;}
.support-desc li::before {content:'-';position:absolute;left:0;color:var(--text-light);font-weight:700;}
.support-desc li strong {color:var(--dark);}
.support-note {margin-top:20px;font-size:.88rem;font-weight:700;color:var(--primary);padding:12px 16px;background:var(--primary-light);border-radius:6px;}

/* 자원봉사 활동과정 스텝 */
.volunteer-steps {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;}
.vol-step {display:flex;align-items:center;gap:8px;background:var(--bg-light);border-radius:6px;padding:14px 18px;font-size:.88rem;color:var(--text);line-height:1.5;}
.vol-step-num {font-weight:800;color:var(--primary);font-size:1rem;}
.vol-step small {font-size:.8rem;color:var(--text-light);}
.vol-arrow {font-size:1.1rem;color:var(--primary);font-weight:700;}

/* 후원 명단 — 연도 탭 */
.donor-year-tabs {display:grid;grid-template-columns:repeat(6, 1fr);gap:6px;margin-bottom:28px;}
.donor-year-tab {padding:10px 0;font-family:var(--font-en);font-size:.88rem;font-weight:700;color:var(--text-light);background:var(--bg-light);border:none;border-radius:4px;cursor:pointer;transition:background var(--transition), color var(--transition);}
.donor-year-tab:hover {background:var(--primary-light);color:var(--primary);}
.donor-year-tab.active {background:#a8d8ea;color:var(--dark);}

/* 후원 명단 — 연도 패널 */
.donor-year-panel {display:none;animation:tabFadeIn .4s ease;}
.donor-year-panel.active {display:block;}

/* 후원 명단 — 월별 행 */
.donor-month-row {display:grid;grid-template-columns:120px 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--border);}
.donor-month-row:first-child {border-top:none;padding-top:0;}
.donor-month-label {font-family:var(--font-en);font-size:1rem;font-weight:800;color:var(--dark);padding-top:4px;}
.donor-month-title {font-size:.95rem;font-weight:700;color:var(--dark);margin-bottom:16px;}

/* 후원 명단 — 뱃지 */
.donor-badges {display:flex;flex-wrap:wrap;gap:10px;}

.donor-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 calc(33.333% - 10px);
  min-width: 80px;
  padding: 8px 16px;
  font-size: .85rem;
  color: var(--text);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 4px;
  transition: border-color var(--transition);
}

.donor-badge:hover {border-color:var(--primary);}

/* Donor Register */
.support-block-header {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.donor-register-btn {padding:6px 16px;font-size:.82rem;font-weight:600;color:var(--white);background:var(--primary);border:none;border-radius:6px;cursor:pointer;white-space:nowrap;}
.donor-register-btn:hover {opacity:.85;}
.donor-modal-overlay {display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.5);align-items:center;justify-content:center;}
.donor-modal-overlay.open {display:flex;}
.donor-modal {background:var(--white);border-radius:12px;width:480px;max-width:92vw;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.2);}
.donor-modal-header {display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);}
.donor-modal-header h4 {font-size:1.1rem;font-weight:700;margin:0;}
.donor-modal-close {font-size:1.5rem;color:var(--text-light);cursor:pointer;background:none;border:none;line-height:1;}
.donor-modal-body {padding:24px;}
.donor-modal-selects {display:flex;gap:12px;}
.donor-modal-selects select {flex:1;padding:10px 12px;font-size:.9rem;border:1px solid var(--border);border-radius:6px;background:var(--white);}
.donor-modal-input {margin-top:20px;}
.donor-modal-input label {display:block;font-size:.9rem;font-weight:600;margin-bottom:8px;}
.donor-modal-input textarea {width:100%;padding:12px;font-size:.9rem;border:1px solid var(--border);border-radius:6px;resize:vertical;font-family:inherit;}
.donor-modal-hint {margin-top:8px;font-size:.78rem;color:var(--text-light);}
.donor-modal-footer {display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
.donor-modal-cancel {padding:8px 20px;font-size:.9rem;border:1px solid var(--border);border-radius:6px;background:var(--white);cursor:pointer;}
.donor-modal-submit {padding:8px 20px;font-size:.9rem;font-weight:600;color:var(--white);background:var(--primary);border:none;border-radius:6px;cursor:pointer;}
.donor-modal-submit:hover {opacity:.85;}

/* Sub Page */
.sub-hero {position:relative;width:100%;height:75px;background:linear-gradient(to right, rgba(48,111,183,1), rgba(48,111,183,.5));display:flex;align-items:center;justify-content:flex-start;overflow:hidden;}
.sub-hero-inner {position:relative;z-index:2;max-width:var(--container);width:100%;height:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.sub-hero-left {display:flex;flex-direction:column;gap:2px;}
.sub-hero-summary {font-size:.92rem;font-weight:500;color:rgba(255,255,255,.8);margin:0;text-align:right;line-height:1.4;flex-shrink:0;}
.sub-hero-title {font-family:var(--font-en);font-size:1.3rem;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1;margin-bottom:0;}
.sub-hero-desc {font-size:.9rem;font-weight:400;color:rgba(255,255,255,.6);}
.sub-page-content {padding:40px 0 0;min-height:60vh;overflow-x:hidden;}
.sub-title-bar {display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:2px solid var(--text);margin-bottom:33px;}
.sub-title-bar h2 {font-size:1.3rem;font-weight:700;color:var(--text);margin:0;}
.sub-location {display:flex;align-items:center;gap:6px;font-size:.82rem;color:#888;}
.sub-location a {color:#888;text-decoration:none;transition:color .2s;}
.sub-location a:hover {color:var(--primary);}
.sub-location .loc-current {color:var(--text);font-weight:600;}
.sub-location svg {width:12px;height:12px;stroke:#bbb;flex-shrink:0;}
.sub-location .loc-home {width:15px;height:15px;stroke:#888;}
.sub-content-wrap {display:flex;gap:40px;padding-top:0;}
.lnb-menu {width:200px;flex-shrink:0;padding-top:20px;}
.lnb-menu:empty {display:none;}
.lnb-menu ul {list-style:none;padding:0;margin:0;border-right:1px solid #e5e7eb;}
.lnb-menu ul li {margin-bottom:2px;}
.lnb-menu ul li a {display:block;padding:10px 16px;font-size:.88rem;color:var(--text-light);text-decoration:none;border-radius:6px 0 0 6px;transition:all .2s;}
.lnb-menu ul li a:hover {background:#f5f6f8;color:var(--dark);}
.lnb-menu ul li a.on {background:var(--primary);color:#fff;font-weight:600;}
.sub-content-wrap .sub-page-body {flex:1;min-width:0;}
.sub-page-body {padding:0 0 80px;min-height:30vh;font-size:.95rem;color:var(--text-light);line-height:1.8;overflow-x:hidden;}
.side-nav {position:fixed;right:calc((100vw - var(--container)) / 2 - 160px);top:50%;transform:translateY(-50%);z-index:100;padding:0 0 0 18px;border-left:2px solid var(--primary);}
.side-nav a {display:block;padding:8px 0;font-size:.88rem;font-weight:500;color:var(--text-light);white-space:normal;max-width:140px;transition:all .2s;position:relative;}
.side-nav a:hover {color:var(--primary);padding-left:4px;}
.side-nav a::before {content:'';position:absolute;left:-22px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;border:2px solid #ccc;background:#fff;transition:all .2s;}
.side-nav a:hover::before {border-color:var(--primary);}
.side-nav a.is-current {color:var(--primary);font-weight:700;}
.side-nav a.is-current::before {border-color:var(--primary);background:var(--primary);}
.side-nav:empty {display:none;}

/* Footer */
.footer {background:var(--dark);color:rgba(255,255,255,.7);padding:48px 0 32px;font-size:.85rem;}
.footer-inner {display:flex;justify-content:space-between;align-items:flex-start;gap:40px;}
.footer-info h3 {color:var(--white);font-size:1.05rem;font-weight:700;margin-bottom:14px;}
.footer-info p {margin-bottom:4px;line-height:1.7;}
.footer-links {display:flex;gap:20px;margin-top:16px;}
.footer-links a {color:rgba(255,255,255,.5);font-size:.8rem;transition:color var(--transition);}
.footer-links a:hover {color:var(--white);}
.footer-copyright {margin-top:4px;font-size:.78rem;color:rgba(255,255,255,.4);}
.footer-copy {text-align:center;margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;color:rgba(255,255,255,.4);letter-spacing:.5px;}
.footer-copy .dibud-link {color:#fff;text-decoration:none;font-weight:700;}
.footer-copy .dibud-link:hover {text-decoration:underline;}

/* Quick Menu (우측 고정, 노란 세로바) */
.quick-menu {
  position: fixed;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 200;
  display: flex;
  flex-direction: column;
  background: #4ca8e3;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: -2px 2px 12px rgba(0,0,0,.1);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition);
}

.quick-menu.is-visible {opacity:1;pointer-events:auto;}

.quick-menu a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 76px;
  padding: 14px 6px;
  color: var(--white);
  font-size: .68rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.35;
  transition: background var(--transition);
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.quick-menu a:last-child {border-bottom:none;}
.quick-menu a:hover {background:rgba(255,255,255,.2);}
.quick-menu a .qm-icon {width:24px;height:24px;margin-bottom:4px;stroke:var(--white);}

/* Top Button (퀵메뉴 아래 고정) */
.top-btn {
  position: fixed;
  right: 16px;
  bottom: 24px;
  z-index: 200;
  width: 76px;
  padding: 14px 6px;
  border-radius: 12px;
  background: var(--dark);
  color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  box-shadow: -2px 2px 12px rgba(0,0,0,.15);
  transition: opacity var(--transition), background var(--transition);
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
}

.top-btn.is-visible {opacity:1;pointer-events:auto;}
.top-btn .top-arrow {font-size:1.1rem;line-height:1;}
.top-btn .top-label {font-size:.6rem;font-weight:800;font-family:var(--font-en);letter-spacing:.5px;}
.top-btn:hover {background:#333;}

/* Responsive */
/* -- 1024px -- */
@media (max-width: 1024px) {
  .greeting-grid {grid-template-columns:1fr;gap:32px;}
  .greeting-images {gap:16px;}
  .history-grid {grid-template-columns:1fr;gap:32px;}
  .org-grid {grid-template-columns:1fr;gap:32px;}
  .intro-grid {grid-template-columns:1fr;gap:32px;}
  .location-grid {grid-template-columns:1fr;}
  .intro-tab {padding:10px 20px;font-size:.85rem;}
  .biz-hero {grid-template-columns:1fr;}
  .biz-detail {grid-template-columns:1fr;gap:28px;}
  .biz-cards {grid-template-columns:repeat(2, 1fr);}
  .partner-cards {grid-template-columns:repeat(2, 1fr);}
  .donate-methods {grid-template-columns:repeat(2, 1fr);}
  .donor-month-row {grid-template-columns:100px 1fr;gap:16px;}
  .hero-text h2 {font-size:1.8rem;}
  .quick-menu {display:none;}
  .main-nav a {padding:0 14px;font-size:.85rem;}
}

/* -- 768px -- */
@media (max-width: 768px) {
  :root {--header-h:60px;--nav-h:46px;}
  .hero-wrap {padding:0 16px 16px;}
  .top-bar .container {padding:0 16px;}
  .hero {height:70vh;min-height:400px;border-radius:12px;}
  .hero-split-inner {flex-direction:column;justify-content:center;align-items:center;padding:0 5%;}
  .hero-text {text-align:center;max-width:100%;}
  .hero-text h2 {font-size:1.45rem;}
  .hero-text p {font-size:.9rem;}
  .hero-img {max-width:50%;margin-top:20px;height:auto;}
  .hero-img img {max-height:none;max-width:100%;}
  .hero-slide:nth-child(2) .hero-img {max-width:45%;margin-top:8px;}
  .hero-tab-bar {bottom:20px;}
  .hero-tab {padding:8px 16px;font-size:.8rem;}
  .hero-arrow {width:36px;height:36px;font-size:1rem;}
  .op-section {padding:56px 0;}
  .op-section-title {font-size:1.5rem;}
  .op-section-desc {margin-bottom:32px;}
  .op-tabs {gap:0;}
  .op-tab-btn {padding:10px 16px;font-size:.82rem;}
  .intro-grid {grid-template-columns:1fr;gap:28px;}
  .location-grid {grid-template-columns:1fr;}
  .org-grid {grid-template-columns:1fr;gap:28px;}
  .history-grid {grid-template-columns:1fr;gap:28px;}
  .biz-cards {grid-template-columns:1fr;}
  .partner-cards {grid-template-columns:1fr;}
  .donate-methods {grid-template-columns:1fr;}
  .support-block {padding:28px 24px;}
  .donor-year-tabs {grid-template-columns:repeat(4, 1fr);}
  .donor-month-row {grid-template-columns:1fr;gap:12px;}
  .donor-month-label {font-size:.9rem;}
  .greeting-desktop-only {display:none;}
  .greeting-mobile-slider {display:block;position:relative;overflow:hidden;border-radius:var(--radius);margin-top:24px;}
  .greeting-slider-track {display:flex;transition:transform .5s ease;}
  .greeting-slider-slide {min-width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);}
  .greeting-slider-slide img,
  .greeting-slider-slide .greeting-img-placeholder {width:100%;height:100%;object-fit:cover;}
  .greeting-slider-slide .greeting-img-placeholder {display:flex;align-items:center;justify-content:center;background:var(--bg-light);border:1px dashed var(--border);color:var(--text-light);font-size:.85rem;}
  .greeting-slider-dots {display:flex;justify-content:center;gap:8px;margin-top:12px;}
  .greeting-slider-dot {width:10px;height:10px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:background var(--transition);}
  .greeting-slider-dot.active {background:var(--primary);}
  .gallery-grid {grid-template-columns:repeat(2, 1fr);gap:16px;}
  .board-table .col-no {display:none;}
  .board-table thead th.col-no {display:none;}
  .board-modal {max-width:95vw;}
  .board-modal-header {padding:20px 22px 14px;}
  .board-modal-body {padding:20px 22px;}
  .board-modal-footer {padding:14px 22px;}
  .footer-inner {flex-direction:column;gap:24px;}
  .sub-hero {height:65px;}
  .sub-hero-title {font-size:1.1rem;}
  .sub-hero-desc {font-size:.75rem;}
  .lnb-menu {display:none;}
  .sub-content-wrap {flex-direction:column;gap:0;}
  .sub-page-content {padding-top:20px;}
  .sub-title-bar {padding:10px 0;margin-bottom:16px;}
  .sub-location {display:none;}
  .side-nav {display:none !important;}

  /* Mobile Nav — Fullscreen 메뉴 사용하므로 드롭다운 제거 */
  .main-nav {position:static;transform:none;left:auto;display:none;}
  .menu-toggle {display:flex;}
  .fullmenu-inner {padding:0 24px;}
  .fullmenu-row {flex-direction:column;gap:12px;padding:22px 0;}
  .fullmenu-title {width:auto;font-size:1.1rem;}
  .fullmenu-subs {gap:8px 28px;}
  .fullmenu-subs a {font-size:.85rem;}
}

/* -- 480px -- */
@media (max-width: 480px) {
  .container {padding:0 16px;}
  .hero {border-radius:10px;}
  .hero {height:60vh;min-height:360px;}
  .hero-text h2 {font-size:1.2rem;}
  .hero-text p {font-size:.82rem;}
  .hero-img {max-width:60%;}
  .hero-tab-bar {bottom:14px;}
  .hero-tab {padding:7px 12px;font-size:.75rem;}
  .op-section {padding:44px 0;}
  .op-section-title {font-size:1.3rem;}
  .intro-values {flex-direction:column;}
  .partner-cards {grid-template-columns:1fr;gap:20px;}
  .partner-card-img {height:150px;}
  .support-block {padding:24px 18px;}
  .donate-method {flex-direction:column;gap:10px;padding:18px;}
  .volunteer-steps {flex-direction:column;align-items:stretch;}
  .vol-arrow {text-align:center;transform:rotate(90deg);}
  .donor-year-tabs {grid-template-columns:repeat(3, 1fr);}
  .donor-badge {min-width:76px;padding:7px 12px;font-size:.8rem;}
  .logo-text .main {font-size:.95rem;}
  .gallery-grid {grid-template-columns:1fr 1fr;gap:12px;}
  .gallery-caption {padding:10px 12px;}
  .gallery-title {font-size:.82rem;}
  .board-table tbody td {padding:10px 8px;font-size:.82rem;}
  .board-table thead th {padding:10px 8px;font-size:.78rem;}
  .board-table .col-date {width:80px;}
  .board-modal-title {font-size:1rem;}
  .board-modal-body {font-size:.85rem;}
  .btn-modal {padding:8px 16px;font-size:.8rem;}
  .gallery-preview-grid {grid-template-columns:repeat(3, 1fr);}
  .top-btn {width:42px;height:42px;right:16px;bottom:16px;font-size:1rem;}
}
