@charset "utf-8";
/* ============================================================
   screen-ui.css — 전국사립대학교 인문대학장 협의회(사인협) 서브페이지 공통 UI
   ------------------------------------------------------------
   작업 규칙
   - 1rem = 10px (html font-size 62.5%)
   - 컨테이너 1400px, 좌우 패딩 없음 (화면이 좁을 때만 안전 여백)
   - 폰트 4단계: 메인타이틀 3.6rem / 서브타이틀 2.4rem / 본문 1.8rem / 부가 1.5rem
   - 국문/영문 Noto Sans
   - PC → 모바일(480px) 반응형
   - 포인트 컬러(초록): #387c2a (원본 실측)
   ------------------------------------------------------------
   목차
   1. reset / base
   2. 공통 변수
   3. 공통 레이아웃 (sub-page / sub-inner / sub-section)
   4. 공통 페이지 헤더 (page-head + chevron 아이콘)
   5. 공통 표 (info-table + table-scroll + link 버튼)
   6. 인사말 (greeting.php)
   7. 연혁 (history.php)
   8. 임원소개 (executives.php)
   9. 협의회 회칙 (bylaws.php)
   10. 회원교 대학 (members.php)
   11. 반응형
   ============================================================ */

/* ---------- 1. reset / base ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 62.5%; }              /* 1rem = 10px */
body {
  font-family: "Noto Sans KR", "Noto Sans", sans-serif;
  font-size: 1.8rem;
  line-height: 1.7;
  color: #444;
  word-break: keep-all;
  -webkit-text-size-adjust: 100%;
}
img { max-width: 100%; height: auto; vertical-align: top; border: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
strong { font-weight: 700; }
table { border-collapse: collapse; border-spacing: 0; }
.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; }

/* ---------- 2. 공통 변수 ---------- */
:root {
  --point: #387c2a;        /* 사인협 초록 */
  --point-dk: #2c631f;
  --tit: #333;
  --txt: #444;
  --txt-sub: #666;
  --line: #dcdcdc;
  --bg-th: #f4f4f4;
}

/* ============================================================
   GNB 헤더 / 브레드크럼 (buddycos 기준 통일 — 고유 색상만 --pink 로 분리)
   ※ 이전엔 include/gnb-header.php 에 인라인이었음 → 여기로 이관
   ============================================================ */
#site-header, .site-nav-overlay, .site-breadcrumb {
  --container: 1200px;
  --pink: #387c2a;            /* ← 사이트 고유 색상 (사인협 초록) */
  --ink: #1c1c1c;
  --text: #333333;
  --muted: #767676;
  --faint: #a5a5a5;
  --line: #e1e1e1;
  --bg-soft: #f7f7f8;
  --fs-body: 1.8rem;
  --fs-small: 1.5rem;
  --shadow-md: 0 .4rem 1.2rem rgba(0,0,0,.10), 0 .2rem .4rem rgba(0,0,0,.06);
  --shadow-lg: 0 1.2rem 2.8rem rgba(0,0,0,.14), 0 .4rem 1rem rgba(0,0,0,.07);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
}

.site-nav-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 90; }
.site-nav-overlay.is-open { display: block; }

#site-header { position: sticky; top: 0; z-index: 100; background: #fff; box-shadow: 0 .1rem 0 rgba(0,0,0,.08); }
.site-header__inner { position: relative; width: var(--container); max-width: 100%; margin: 0 auto; height: 8.4rem; display: flex; align-items: center; justify-content: center; }
.site-logo { position: absolute; left: 0; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; }
.site-logo img { height: 6.2rem; width: auto; }   /* ← 사이트 고유 로고 크기 */

.site-nav { display: flex; height: 8.4rem; list-style: none; margin: 0; padding: 0; }
.site-nav__item { display: flex; align-items: center; }
.site-nav__link { position: relative; display: flex; align-items: center; height: 8.4rem; padding: 0 2.8rem; font-size: var(--fs-body); font-weight: 500; color: var(--ink); letter-spacing: -.02em; white-space: nowrap; transition: color .15s; }
.site-nav__link:hover, .site-nav__link.is-active { font-weight: 700; color: var(--pink); }
.site-nav__link.is-active::after { content: ''; position: absolute; left: 2.8rem; right: 2.8rem; bottom: 2.4rem; height: .2rem; background: var(--pink); }

.site-dropdown { display: none; position: fixed; top: 8.4rem; left: 0; right: 0; background: #fff; box-shadow: var(--shadow-md); border-top: .2rem solid var(--pink); white-space: nowrap; z-index: 200; flex-wrap: wrap; }
.site-nav__item:hover .site-dropdown { display: flex; justify-content: center; align-items: stretch; }
.site-dropdown a { display: flex; align-items: center; justify-content: center; height: 5.6rem; padding: 0 2.8rem; font-size: var(--fs-small); color: var(--text); transition: color .15s, background .15s; }
.site-dropdown a:hover { color: var(--pink); background: var(--bg-soft); }
.site-dropdown a.is-active { color: var(--pink); font-weight: 700; }

.site-hamburger { display: none; flex-direction: column; justify-content: center; align-items: center; width: 4.4rem; height: 4.4rem; margin-left: auto; background: none; border: none; padding: .4rem; gap: .5rem; }
.site-hamburger__bar { display: block; width: 2.4rem; height: .2rem; background: var(--ink); border-radius: .2rem; transition: transform .3s var(--ease-out), opacity .2s, width .2s; transform-origin: center; }
.site-hamburger.is-open .site-hamburger__bar:nth-child(1) { transform: translateY(.7rem) rotate(45deg); }
.site-hamburger.is-open .site-hamburger__bar:nth-child(2) { opacity: 0; width: 0; }
.site-hamburger.is-open .site-hamburger__bar:nth-child(3) { transform: translateY(-.7rem) rotate(-45deg); }
.site-drawer-close { display: none; position: absolute; top: 1.4rem; right: 1.6rem; width: 3.6rem; height: 3.6rem; background: none; border: none; font-size: 2rem; color: var(--muted); line-height: 1; z-index: 1; }

.site-breadcrumb { border-bottom: .1rem solid var(--line); }
.site-breadcrumb__inner { width: var(--container); max-width: 100%; margin: 0 auto; padding: 1.4rem 0; display: flex; justify-content: flex-end; align-items: center; gap: .8rem; font-size: var(--fs-small); color: var(--muted); }
.site-breadcrumb__sep { color: var(--faint); }
.site-breadcrumb__current { color: var(--text); }

@media (max-width: 1240px) {
  .site-header__inner, .site-breadcrumb__inner { width: 100%; padding-left: 2rem; padding-right: 2rem; }
  .site-logo { left: 2rem; }
  .site-nav__link.is-active::after { left: 1.6rem; right: 1.6rem; }
}

@media (max-width: 960px) {
  .site-breadcrumb { display: none; }
  .site-header__inner { height: 6rem; justify-content: flex-start; }
  .site-logo { position: static; transform: none; }
  .site-logo img { height: 4.5rem; }   /* ← 사이트 고유 로고 크기(모바일) */
  .site-hamburger { display: flex; }
  .site-drawer-close { display: flex; align-items: center; justify-content: center; }
  #siteNav { position: fixed; top: 0; right: -100%; width: 28rem; height: 100vh; background: #fff; box-shadow: var(--shadow-lg); z-index: 110; overflow-y: auto; transition: right .3s var(--ease-out); }
  #siteNav.is-open { right: 0; }
  .site-nav { flex-direction: column; height: auto; padding: 2rem 0 4rem; }
  .site-nav::before { content: ''; display: block; height: 6rem; }
  .site-nav__item { display: block; border-bottom: .1rem solid var(--line); }
  .site-nav__link { display: flex; justify-content: space-between; height: auto; padding: 1.6rem 2.4rem; font-size: var(--fs-body); font-weight: 600; }
  .site-nav__link::after { display: none !important; }
  .site-dropdown { display: block; position: static; box-shadow: none; border-top: none; border-left: .3rem solid var(--pink); padding: 0; margin: 0 2.4rem .8rem; background: var(--bg-soft); max-height: 0; overflow: hidden; transition: max-height .3s var(--ease-out), padding .2s; }
  .site-nav__item.is-open .site-dropdown { max-height: 60rem; padding: .8rem 0; }
  .site-nav__item:hover .site-dropdown { display: block; max-height: 0; padding: 0; }
  .site-nav__item.is-open:hover .site-dropdown { max-height: 60rem; padding: .8rem 0; }
  .site-dropdown a { display: block; height: auto; padding: 1rem 2rem; font-size: var(--fs-small); }
}

/* ---------- 3. 공통 레이아웃 ---------- */
.sub-page { overflow: hidden; }
.sub-inner {
  width: 1200px;
  max-width: 100%;
  margin: 0 auto;
}
.sub-section { padding: 7rem 0 11rem; }

/* ---------- 4. 공통 페이지 헤더 ---------- */
.page-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1.6rem;
  margin-bottom: 5rem;
  border-bottom: 1px solid var(--line);
}
.page-head__ico { flex: 0 0 auto; line-height: 0; }
.page-head__ico svg { display: block; }
.page-head__title {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--tit);
  letter-spacing: -0.02em;
}

/* ---------- 5. 공통 표 ---------- */
.table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.info-table {
  width: 100%;
  border-top: 2px solid var(--point);
  text-align: center;
}
.info-table th,
.info-table td {
  padding: 1.4rem 1rem;
  border: 1px solid var(--line);
  font-size: 1.8rem;
  line-height: 1.5;
}
.info-table thead th {
  background: var(--bg-th);
  color: var(--point);
  font-weight: 500;
}
.info-table tbody th {
  background: #fafafa;
  font-weight: 500;
  color: var(--tit);
}
.info-table .col-txt { text-align: left; }
.info-table .cell-em { font-weight: 500; color: var(--tit); }

/* 바로가기 링크 버튼 */
.link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7rem;
  height: 3.2rem;
  padding: 0 1.2rem;
  background: #333;
  color: #fff;
  border-radius: 0.5rem;
  font-size: 1.5rem;
  white-space: nowrap;
}
.link-btn:hover { background: var(--point); }
.link-btn.is-none { background: #eee; color: #888; pointer-events: none; }

/* ---------- 6. 인사말 (greeting.php) ---------- */
.greeting__lead { margin-bottom: 3.6rem; }
.greeting__lead .greeting__hi {
  display: block;
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--tit);
  margin-bottom: 1.2rem;
}
.greeting__lead .greeting__intro {
  display: block;
  font-size: 1.8rem;
  color: var(--txt);
}
.greeting__body p {
  font-size: 1.8rem;
  line-height: 1.9;
  color: var(--txt);
}
.greeting__body p + p { margin-top: 3rem; }
.greeting__sign {
  margin-top: 5rem;
  text-align: right;
  line-height: 1.9;
}
.greeting__sign .greeting__date { display: block; font-size: 1.5rem; color: var(--txt-sub); }
.greeting__sign .greeting__ceo { display: block; font-size: 1.8rem; color: var(--tit); font-weight: 500; }
.greeting__sign .greeting__ceo em { font-style: normal; letter-spacing: 0.6rem; margin-left: 0.6rem; }

/* ---------- 7. 연혁 (history.php) ---------- */
.history { display: flex; flex-direction: column; gap: 5rem; }
.history__year { display: grid; grid-template-columns: 12rem 1fr; gap: 2rem; }
.history__y { font-size: 3.6rem; font-weight: 700; color: var(--point); line-height: 1; }
.history__list { display: flex; flex-direction: column; gap: 2.4rem; }
.history__item {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 2rem;
  align-items: baseline;
}
.history__date {
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--point-dk);
  position: relative;
  padding-left: 1.8rem;
}
.history__date::before {
  content: "";
  position: absolute;
  left: 0; top: 0.9rem;
  width: 0.8rem; height: 0.8rem;
  border-radius: 50%;
  background: var(--point);
}
.history__desc { font-size: 1.8rem; color: var(--txt); line-height: 1.6; }

/* ---------- 8. 임원소개 (executives.php) ---------- */
.exec-table th, .exec-table td { padding: 1.2rem 1rem; }
.exec-table tbody th { color: var(--tit); }
.exec-table th, .exec-table td, .exec-table .col-txt { text-align: center; }   /* 전 셀 가운데 정렬 */

/* ---------- 9. 협의회 회칙 (bylaws.php) ---------- */
.bylaws__head { text-align: center; margin-bottom: 5rem; }
.bylaws__head .bylaws__name { display: block; font-size: 2.4rem; font-weight: 700; color: var(--tit); }
.bylaws__head .bylaws__revise {
  display: block;
  font-size: 1.5rem;
  color: var(--txt-sub);
  margin-top: 1.2rem;
  line-height: 1.7;
}
.bylaws__toolbar { text-align: right; margin-bottom: 1.6rem; }
.bylaws__pdf {
  display: inline-flex; align-items: center; gap: 0.8rem;
  padding: 1.1rem 2.4rem;
  border: 1px solid var(--point); border-radius: 3rem;
  font-size: 1.5rem; color: var(--point); background: #fff;
  transition: background .2s, color .2s;
}
.bylaws__pdf:hover { background: var(--point); color: #fff; }
.bylaws__pdf svg { display: block; }
.bylaws__article { margin-bottom: 3.2rem; }
.bylaws__article > h3 {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--point);
  margin-bottom: 1rem;
}
.bylaws__article p { font-size: 1.8rem; color: var(--txt); line-height: 1.8; }
.bylaws__article p + p { margin-top: 0.6rem; }
.bylaws__article ol, .bylaws__article ul { margin-top: 0.4rem; }
.bylaws__article li { font-size: 1.8rem; color: var(--txt); line-height: 1.8; padding-left: 1.6rem; text-indent: -1.6rem; }
.bylaws__sub { margin: 0.6rem 0 0 1.6rem; }
.bylaws__sub li { font-size: 1.8rem; color: var(--txt-sub); }
.bylaws__addendum { margin-top: 3.6rem; padding-top: 2.4rem; border-top: 1px dashed var(--line); }
.bylaws__addendum h3 { font-size: 1.8rem; font-weight: 700; color: var(--tit); margin-bottom: 0.6rem; letter-spacing: 0.8rem; }
.bylaws__addendum p { font-size: 1.8rem; color: var(--txt); }
.bylaws__addendum p + h3 { margin-top: 2.4rem; }

/* ---------- 10. 회원교 대학 (members.php) ---------- */
.members-table th, .members-table td { padding: 1.1rem 0.8rem; font-size: 1.8rem; }
.members-table th, .members-table td, .members-table .col-txt { text-align: center; }   /* 전 셀 가운데 정렬 */
.members-table thead th { font-size: 1.8rem; }
.members-table .col-no { width: 6rem; }
.members-table .col-link { width: 11rem; }
.members__caption { font-size: 1.5rem; color: var(--txt-sub); text-align: right; margin-bottom: 1.2rem; }

/* ---------- 11. 게시판 목록 공통 (notice/press/library/minutes.php) ---------- */
.board-list { border-top: 2px solid var(--point); }
.board-list__row {
  display: grid;
  grid-template-columns: 9rem 1fr 16rem 14rem;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.board-list__row--head {
  background: var(--bg-th);
  border-bottom: 1px solid var(--line);
}
.board-list__row--head .board-list__cell { color: var(--point); font-weight: 500; text-align: center; }
.board-list__cell { padding: 1.6rem 1rem; font-size: 1.5rem; color: var(--txt-sub); text-align: center; }
.board-list__cell--tit { text-align: left; }
.board-list__row a.board-list__cell--tit { color: var(--tit); display: block; }
.board-list__row a.board-list__cell--tit:hover { color: var(--point); text-decoration: underline; }
.board-list__notice {
  display: inline-block;
  min-width: 4.4rem;
  padding: 0.2rem 0.8rem;
  background: var(--point);
  color: #fff;
  border-radius: 0.4rem;
  font-size: 1.5rem;
}
.board-list__tit-inner { display: inline-flex; align-items: center; gap: 0.8rem; }
.board-empty {
  padding: 8rem 0;
  text-align: center;
  border-bottom: 1px solid var(--line);
}
.board-empty p { font-size: 1.8rem; color: var(--txt-sub); }
.board-empty .board-empty__sub { font-size: 1.5rem; margin-top: 0.8rem; }

/* 페이징 */
.board-page { display: flex; justify-content: center; gap: 0.6rem; margin-top: 4rem; }
.board-page a,
.board-page span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 4rem; height: 4rem; padding: 0 1.2rem;
  border: 1px solid var(--line); border-radius: 0.4rem;
  font-size: 1.5rem; color: var(--txt-sub);
  transition: border-color .2s, color .2s, background .2s;
}
.board-page a:hover { border-color: var(--point); color: var(--point); }
.board-page a.is-active { background: var(--point); border-color: var(--point); color: #fff; }
.board-page .is-disabled { color: #ccc; cursor: default; }

/* 게시물 상세(읽기) */
.board-view { border-top: 2px solid var(--point); }
.board-view__head { padding: 3rem 1rem; border-bottom: 1px solid var(--line); background: #fafafa; }
.board-view__title { font-size: 2.4rem; font-weight: 500; color: var(--tit); line-height: 1.5; }
.board-view__meta { display: flex; flex-wrap: wrap; gap: 2.4rem; margin-top: 1.6rem; }
.board-view__meta li { font-size: 1.5rem; color: var(--txt-sub); }
.board-view__meta-k { color: #999; margin-right: 0.4rem; }
.board-view__files { padding: 2rem 1rem; border-bottom: 1px solid var(--line); background: #fff; }
.board-view__files-tit { font-size: 1.5rem; font-weight: 500; color: var(--point); margin-bottom: 1rem; }
.board-view__files li + li { margin-top: 0.8rem; }
.board-view__files a { display: inline-flex; align-items: center; gap: 0.8rem; font-size: 1.8rem; color: var(--txt); }
.board-view__files a:hover { color: var(--point); text-decoration: underline; }
.board-view__files-size { font-style: normal; font-size: 1.5rem; color: #999; }
.board-view__body { padding: 4rem 1rem; min-height: 20rem; border-bottom: 1px solid var(--line); }
.board-view__body p { font-size: 1.8rem; line-height: 1.9; color: var(--txt); }
.board-view__body p + p { margin-top: 2rem; }
.board-view__img { text-align: center; margin: 2.4rem 0; }
.board-view__img img { max-width: 100%; height: auto; }
/* 이전글/다음글 */
.board-view__nav-row { display: flex; align-items: center; gap: 1.6rem; padding: 1.6rem 1rem; border-bottom: 1px solid var(--line); }
.board-view__nav-k { flex: none; width: 6rem; font-size: 1.5rem; color: var(--tit); font-weight: 500; }
.board-view__nav-link { min-width: 0; font-size: 1.5rem; color: var(--txt); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board-view__nav-link:hover { color: var(--point); }
.board-view__nav-none { font-size: 1.5rem; color: var(--txt-sub); }
.board-view__foot { margin-top: 3rem; text-align: right; }
.board-view__list { min-width: 10rem; height: 4.2rem; font-size: 1.8rem; }

/* ---------- 12. 메인 (index.php) ---------- */
/* 12-1. 히어로 슬라이더 (JS 페이드 + 화살표 + 점 네비) */
.main-hero {
  position: relative; width: 100%;
  aspect-ratio: 2000 / 608;   /* 배너 원본 비율 그대로 노출(잘림 없음) */
  overflow: hidden; background: #1b1b26;
}
.main-hero__slide {
  position: absolute; inset: 0;
  background-size: contain; background-repeat: no-repeat; background-position: center;
  opacity: 0; transition: opacity 1s ease;
}
.main-hero__slide.is-active { opacity: 1; }
.main-hero__slide--1 { background-image: url("/resources/images/main/main_01.jpg"); }
.main-hero__slide--2 { background-image: url("/resources/images/main/main_02.jpg"); }
/* 좌우 화살표 (원본 skdslider 이미지 그대로 사용) */
.main-hero__arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 3;
  width: 3.5rem; height: 4.5rem;
  border: 0; padding: 0; cursor: pointer;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 2.3rem 4rem;
  opacity: 0.85;
  transition: opacity .2s;
}
.main-hero__arrow:hover { opacity: 1; }
.main-hero__arrow--prev { left: 3.5rem; background-image: url("/resources/images/main/main_arrow_left.png"); }
.main-hero__arrow--next { right: 3.5rem; background-image: url("/resources/images/main/main_arrow_right.png"); }
/* 하단 점 네비 (원본 이미지: 비활성 회색 / 활성 빨강) */
.main-hero__dots {
  position: absolute; left: 50%; bottom: 2rem; transform: translateX(-50%);
  z-index: 3;
  display: flex; gap: 0.4rem;
}
.main-hero__dot {
  width: 1.2rem; height: 1.2rem;
  border: 0; padding: 0; cursor: pointer;
  background: url("/resources/images/main/main_dot.png") no-repeat center / 1.2rem 1.2rem transparent;
}
.main-hero__dot.is-active { background-image: url("/resources/images/main/main_dot_on.png"); }
.main-hero__caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* 12-2. 공통 섹션 타이틀 */
.main-sec { padding: 8rem 0; }
.main-sec--gray { background: #f7f8f7; }
.main-sec__head { text-align: center; margin-bottom: 4.5rem; }
.main-sec__title { font-size: 3.6rem; font-weight: 700; color: var(--tit); }
.main-sec__title em { font-style: normal; color: var(--point); }
.main-sec__sub { font-size: 1.8rem; color: var(--txt-sub); margin-top: 1.4rem; }

/* 12-3. 소개 인용 */
.main-intro { text-align: center; }
.main-intro__quote { font-size: 2.4rem; font-weight: 500; color: var(--tit); line-height: 1.7; }
.main-intro__quote em { font-style: normal; color: var(--point); }
.main-intro__more {
  display: inline-flex; align-items: center; gap: 0.6rem;
  margin-top: 3rem; padding: 1.2rem 3rem;
  border: 1px solid var(--point); color: var(--point);
  font-size: 1.8rem; border-radius: 3rem;
}
.main-intro__more:hover { background: var(--point); color: #fff; }

/* 12-4. 퀵메뉴 바 (원본 5칸 가로 바 형태, 배너 아래 배치) */
.main-quick {
  position: relative; z-index: 4;
  margin: 4rem 0;    /* 배너와 겹치지 않고 아래에 배치 */
}
.quick-bar {
  display: flex;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0.6rem;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.quick-bar__item { flex: 1 1 0; }
.quick-bar__item + .quick-bar__item { border-left: 1px solid var(--line); }
.quick-bar__link {
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
  height: 9rem; padding: 0 1rem;
  transition: background .2s, color .2s;
}
.quick-bar__link:hover { background: #f4f8f2; }
.quick-bar__ico { flex: 0 0 auto; width: 3.6rem; height: 3.6rem; line-height: 0; color: var(--tit); }
.quick-bar__ico svg { width: 100%; height: 100%; }
.quick-bar__link:hover .quick-bar__ico { color: var(--point); }
.quick-bar__name { font-size: 1.8rem; font-weight: 500; color: var(--tit); }
.quick-bar__link:hover .quick-bar__name { color: var(--point); }

/* 12-5. 최근 소식 (공지사항 · 보도자료) */
.main-news { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.main-news__col { min-width: 0; }   /* grid 항목이 콘텐츠 폭으로 넘치지 않도록 */
.main-news__top { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 1.6rem; border-bottom: 2px solid var(--point); }
.main-news__cat { font-size: 2.4rem; font-weight: 500; color: var(--tit); }
.main-news__more { font-size: 1.5rem; color: var(--txt-sub); }
.main-news__more:hover { color: var(--point); }
.main-news__list { margin-top: 1rem; }
.main-news__item { display: flex; align-items: center; gap: 1.6rem; padding: 1.4rem 0.4rem; border-bottom: 1px solid var(--line); }
.main-news__link { flex: 1 1 auto; min-width: 0; font-size: 1.8rem; color: var(--txt); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main-news__link:hover { color: var(--point); }
.main-news__date { flex: 0 0 auto; font-size: 1.5rem; color: #999; }

/* 12-6. 하단 회원교 로고 띠 배너 (자동 롤링) */
.logo-band { width: 100%; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.logo-band__viewport { width: 1200px; max-width: 100%; margin: 0 auto; overflow: hidden; }
.logo-band__track {
  display: flex; align-items: center;
  width: max-content;
  animation: logoRoll 40s linear infinite;
}
.logo-band:hover .logo-band__track { animation-play-state: paused; }
.logo-band__item {
  flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  width: 20rem; height: 9rem;
  border-left: 1px solid var(--line);
}
.logo-band__item:last-child { border-right: 1px solid var(--line); }
.logo-band__item img { max-width: 14rem; height: auto; }
@keyframes logoRoll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* 로고 세트 2회 반복 → 절반 이동 시 seamless */
}

/* ---------- 13. 반응형 ---------- */
@media (max-width: 1240px) {
  .sub-inner { padding: 0 3rem; }   /* 화면이 컨테이너보다 좁을 때만 안전 여백 */
}
@media (max-width: 1024px) {
  .sub-section { padding: 5rem 0 8rem; }
  .page-head { margin-bottom: 4rem; }
  .history__year { grid-template-columns: 9rem 1fr; gap: 1.4rem; }
  .history__y { font-size: 3rem; }
  .history__item { grid-template-columns: 9rem 1fr; gap: 1.4rem; }
}
@media (max-width: 768px) {
  body { font-size: 1.6rem; }
  .page-head__title { font-size: 2.2rem; }
  .greeting__lead .greeting__hi { font-size: 2.2rem; }
  .bylaws__head .bylaws__name { font-size: 2.2rem; }
  .info-table th, .info-table td { font-size: 1.6rem; }
  .members-table th, .members-table td { font-size: 1.8rem; }
  /* 표는 반응형에서 가로 스크롤 (최소 폭 유지) */
  .exec-table { min-width: 64rem; }
  .members-table { min-width: 78rem; }
}
@media (max-width: 480px) {
  .sub-inner { padding: 0 2rem; }
  .sub-section { padding: 4rem 0 6rem; }
  .history__year { grid-template-columns: 1fr; gap: 1.4rem; }
  .history__item { grid-template-columns: 1fr; gap: 0.6rem; }
  .history__y { font-size: 2.8rem; }
  .greeting__body p { line-height: 1.8; }
}

/* 신규 컴포넌트(게시판/메인) 반응형 */
@media (max-width: 1024px) {
  .main-sec { padding: 6rem 0; }
  .main-hero__arrow { width: 4.4rem; height: 4.4rem; }
  .main-hero__arrow--prev { left: 1.5rem; }
  .main-hero__arrow--next { right: 1.5rem; }
  .quick-bar__link { flex-direction: column; gap: 0.8rem; height: 10rem; }
  .quick-bar__ico { width: 3.2rem; height: 3.2rem; }
  .main-news { gap: 3rem; }
}
@media (max-width: 768px) {
  .main-sec__title, .main-intro__quote { font-size: 2.4rem; }
  .main-news { grid-template-columns: 1fr; gap: 3rem; }
  .main-quick { margin: 3rem 0; }
  .quick-bar__name { font-size: 1.5rem; }
  .logo-band__item { width: 15rem; height: 7.5rem; }
  .logo-band__item img { max-width: 11rem; }
  /* 게시판 목록: 작성자·조회 열 숨기고 제목/날짜 위주 */
  .board-list__row { grid-template-columns: 6rem 1fr 9rem; }
  .board-list__cell--writer, .board-list__cell--hit { display: none; }
  /* 반응형: 제목이 길면 한 줄 말줄임(…) 처리 */
  .board-list__cell--tit,
  .board-list__row a.board-list__cell--tit {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .board-list__tit-inner { display: inline; }
}
@media (max-width: 480px) {
  .main-hero__arrow { width: 3.8rem; height: 3.8rem; }
  .main-hero__dots { bottom: 1.6rem; }
  /* 퀵메뉴: 5칸 → 3+2 배치 */
  .quick-bar { flex-wrap: wrap; }
  .quick-bar__item { flex: 1 1 33.333%; }
  .quick-bar__item:nth-child(1), .quick-bar__item:nth-child(2), .quick-bar__item:nth-child(3) { border-bottom: 1px solid var(--line); }
  .quick-bar__item:nth-child(4) { border-left: 0; }
  .quick-bar__link { height: 8.4rem; }
  /* 게시판 목록: 번호+제목만, 가로 스크롤 없이 제목 말줄임 */
  .board-scroll { overflow-x: visible; }
  .board-list__row { grid-template-columns: 6rem 1fr; }
  .board-list__cell--date { display: none; }
  .board-list__cell { padding: 1.3rem 0.6rem; }
  .board-list__notice { min-width: auto; padding: 0.2rem 0.7rem; }
}
