/* =====================================================================
   DEBC 포털 리뉴얼 디자인 시스템 (2026-08-07)
   근거: Docs/260806_장기종 리뉴얼 최종 시안 (PC/MO) 분석 — DESIGN.md 참조
   원칙: KRDS 준수 · 화이트+로열블루 모노톤 플랫 · 전 자산 로컬(폐쇄망)
   ===================================================================== */
:root {
  --debc-primary: #4A75E5;      /* 로열블루 — 서브 전 화면 실측(2026-08-07 정정, 구 #2E5BE0) */
  --debc-primary-deep: #1D50C8;
  --debc-navy: #16337E;         /* 진남색 — 메가메뉴 pill·신고 버튼·TOP */
  --debc-bg: #F1F4F9;           /* 섹션 연회청 배경 */
  --debc-bg-2: #EAEEF5;
  --debc-line: #DDE3EC;
  --debc-text: #1A1A1A;
  --debc-text-sub: #666F7B;
  --debc-muted: #B0B6C0;        /* 페이지네이션 비활성 숫자 */
  --debc-green: #3FA45B;
  --debc-orange: #F05A22;
  --debc-radius: 10px;          /* 카드 라운드 8~12px */
}

body.egov-body { color: var(--debc-text); background: #fff; }
/* 시안 실측 그리드: 캔버스 1920 · 콘텐츠 컨테이너 1600(좌우 여백 160) */
@media (min-width: 1400px) { .container { max-width: 1600px; } }
/* 레이아웃 main 의 기본 여백을 없앴으므로(풀블리드 요소 허용), 여백 없는 페이지에 상단 간격을 준다 */
.egov-content > .container:first-child { padding-top: 1.6rem; }
.egov-content > .rnw-crumbbar:first-child,
.egov-content > .rnw-hero:first-child { padding-top: 0; }

/* ---------- 헤더/유틸 ---------- */
.rnw-utilbar { background: #fff; border-bottom: 1px solid var(--debc-line); font-size: .85rem; }
.rnw-utilbar > .container { min-height: 42px; }
.rnw-utilbar a { color: var(--debc-text-sub); text-decoration: none; }
.rnw-utilbar a:hover { color: var(--debc-primary); }

.rnw-fontsize { display: inline-flex; align-items: center; gap: .2rem; }
.rnw-fontsize .btn {
  width: 22px; height: 22px; padding: 0; line-height: 1;
  border: 1px solid var(--debc-line); border-radius: 4px;
  background: #fff; color: var(--debc-text-sub); font-size: .8rem;
}
.rnw-fontsize .btn:hover { border-color: var(--debc-primary); color: var(--debc-primary); }

.rnw-header { background: #fff; }
.rnw-logo img { height: 52px; }

/* 헤드바 1단: 로고 + GNB + 유틸 아이콘 (시안) */
.rnw-headbar { background: #fff; border-bottom: 1px solid var(--debc-line); position: relative; }
.rnw-headbar-inner { display: flex; align-items: stretch; gap: 2rem; padding: 0 12px; min-height: 116px; }
.rnw-headbar-inner > .rnw-logo,
.rnw-headbar-inner > .rnw-head-util { display: flex; align-items: center; }
.rnw-headbar-inner > .rnw-gnb { flex: 1; display: flex; align-items: stretch; }
.rnw-head-util { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.rnw-icon-btn {
  width: 44px; height: 44px; border: 0; border-radius: 8px; background: #fff;
  color: var(--debc-primary); font-size: 1.15rem; display: inline-flex;
  align-items: center; justify-content: center;
}
.rnw-icon-btn:hover { background: var(--debc-bg); }
.rnw-icon-btn-primary { background: var(--debc-primary); color: #fff; }
.rnw-icon-btn-primary:hover { background: var(--debc-primary-deep); color: #fff; }

/* 검색 확장 패널 */
.rnw-search-panel { border-top: 1px solid var(--debc-line); background: var(--debc-bg); padding: 1rem 0; }
.rnw-search-form { display: flex; align-items: center; gap: .5rem; }
.rnw-search-form .form-control {
  flex: 1; border: 2px solid var(--debc-primary); border-radius: 24px; padding: .5rem 1.1rem;
}
.rnw-search-form .btn { border: 0; background: transparent; color: var(--debc-primary); font-size: 1.05rem; }

/* 헤더 검색 */
.rnw-search { max-width: 360px; }
.rnw-search .form-control {
  border: 2px solid var(--debc-primary); border-right: 0;
  border-radius: 24px 0 0 24px; padding-left: 1rem;
}
.rnw-search .btn {
  border: 2px solid var(--debc-primary); border-left: 0;
  border-radius: 0 24px 24px 0; background: #fff; color: var(--debc-primary);
}

/* ---------- GNB (메뉴별 개별 드롭다운) ---------- */
.rnw-gnb { background: transparent; }
.rnw-gnb .rnw-gnb-list {
  flex: 1; display: flex; justify-content: space-evenly; align-items: stretch;
  margin: 0; padding: 0; list-style: none;
}
.rnw-gnb .rnw-gnb-item { display: flex; align-items: stretch; }
/* 드롭다운은 개별 메뉴가 아니라 GNB 바 전체를 기준으로 펼친다(시안: 화면 폭 전체) */
.rnw-gnb .rnw-gnb-item { position: static; }
.rnw-gnb .rnw-gnb-link {
  display: flex; align-items: center;
  padding: 0 1.2rem; font-size: 1.12rem; font-weight: 700; white-space: nowrap;
  color: var(--debc-text); text-decoration: none; border-bottom: 3px solid transparent;
}
.rnw-gnb .rnw-gnb-item:hover > .rnw-gnb-link,
.rnw-gnb .rnw-gnb-item:focus-within > .rnw-gnb-link {
  color: var(--debc-primary); border-bottom-color: var(--debc-primary);
}
/* 드롭다운 패널: 좌측 파란 블록(1뎁스명) + 우측 2뎁스 pill/3뎁스 불릿 */
.rnw-gnb .rnw-dropdown {
  display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 1030;
  /* 기준: .rnw-headbar (position:relative) — 화면 전체 폭으로 펼침 */
  width: 100%; background: #fff; border-top: 1px solid var(--debc-line);
  border-bottom: 1px solid var(--debc-line);
  box-shadow: 0 10px 24px rgba(22, 51, 126, .12);
  overflow: hidden;              /* 좌측 파란 배경 확장이 뷰포트를 넘지 않도록 */
}
/* 내용은 본문 컨테이너 폭에 맞춰 정렬(고해상도에서 좌우 쏠림 방지) */
.rnw-gnb .rnw-dd-inner {
  max-width: 1600px; margin: 0 auto; padding: 0 12px;
  display: flex; align-items: stretch;
}
.rnw-gnb .rnw-gnb-item.open > .rnw-dropdown { display: block; }
.rnw-gnb .rnw-gnb-item.open > .rnw-gnb-link { color: var(--debc-primary); border-bottom-color: var(--debc-primary); }
/* 메뉴 항목 ↔ 드롭다운 사이 미세 간격에서도 hover 가 끊기지 않도록 투명 브릿지 */
.rnw-gnb .rnw-dropdown::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 14px;
}

.rnw-dropdown .rnw-dd-title {
  position: relative; flex: 0 0 200px; background: var(--debc-primary); color: #fff;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 1.6rem 1rem; font-size: 1.2rem; font-weight: 700;
}
/* 파란 블록을 화면 왼쪽 끝까지 잇는다(시안) — 컨테이너 정렬은 유지 */
.rnw-dropdown .rnw-dd-title::before {
  content: ""; position: absolute; top: 0; bottom: 0; right: 100%;
  width: 100vw; background: var(--debc-primary);
}
.rnw-dropdown .rnw-dd-body {
  flex: 1; padding: 1.5rem 2rem 1.8rem;
  /* 시안: 4열 고정 그리드(5번째부터 다음 줄로 줄바꿈) */
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.4rem 1.8rem; align-content: start;
}
@media (max-width: 1199.98px) {
  .rnw-dropdown .rnw-dd-body { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.rnw-dd-group { min-width: 0; }
.rnw-dd-group > a.rnw-dd-pill {
  display: inline-block; max-width: 100%; background: var(--debc-navy); color: #fff;
  border-radius: 18px; padding: .34rem 1rem; font-size: .9rem; font-weight: 600;
  line-height: 1.35; text-decoration: none; margin-bottom: .55rem;
  word-break: keep-all;          /* 어절 단위 줄바꿈(시안) */
}
.rnw-dd-group > a.rnw-dd-pill:hover { background: var(--debc-primary); }
.rnw-dd-group ul { list-style: none; margin: 0; padding: 0; }
.rnw-dd-group ul li a {
  display: block; padding: .18rem 0 .18rem .8rem; font-size: .88rem;
  color: var(--debc-text-sub); text-decoration: none; position: relative;
}
.rnw-dd-group ul li a::before {
  content: ""; position: absolute; left: 0; top: .72em;
  width: 4px; height: 4px; border-radius: 50%; background: var(--debc-muted);
}
.rnw-dd-group ul li a:hover { color: var(--debc-primary); }

/* ---------- 모바일 전체메뉴 (풀스크린 2단 분할) ---------- */
.rnw-mmenu { position: fixed; inset: 0; z-index: 2000; background: #fff; display: none; flex-direction: column; }
.rnw-mmenu.open { display: flex; }
.rnw-mmenu-head { display: flex; align-items: center; justify-content: space-between; padding: .8rem 1rem; border-bottom: 1px solid var(--debc-line); }
.rnw-mmenu-body { flex: 1; display: flex; overflow: hidden; }
.rnw-mmenu-depth1 { flex: 0 0 38%; background: var(--debc-bg); overflow-y: auto; }
.rnw-mmenu-depth1 button {
  display: block; width: 100%; text-align: left; border: 0; background: transparent;
  padding: .95rem 1rem; font-size: 1rem; font-weight: 700; color: var(--debc-text-sub);
}
.rnw-mmenu-depth1 button.active { background: #fff; color: var(--debc-primary); border-left: 3px solid var(--debc-primary); }
.rnw-mmenu-depth2 { flex: 1; overflow-y: auto; padding: .6rem 1rem; }
.rnw-mmenu-depth2 .pane { display: none; }
.rnw-mmenu-depth2 .pane.active { display: block; }
.rnw-mmenu-depth2 a.d2 { display: block; padding: .7rem 0; font-weight: 600; color: var(--debc-text); text-decoration: none; border-bottom: 1px solid var(--debc-line); }
.rnw-mmenu-depth2 details { border-bottom: 1px solid var(--debc-line); }
.rnw-mmenu-depth2 details summary { padding: .7rem 0; font-weight: 600; cursor: pointer; list-style: none; position: relative; }
.rnw-mmenu-depth2 details summary::after { content: "+"; position: absolute; right: .2rem; color: var(--debc-muted); }
.rnw-mmenu-depth2 details[open] summary::after { content: "−"; }
.rnw-mmenu-depth2 details ul { list-style: none; padding: 0 0 .6rem .5rem; margin: 0; }
.rnw-mmenu-depth2 details ul a { display: block; padding: .35rem 0 .35rem .8rem; font-size: .92rem; color: var(--debc-text-sub); text-decoration: none; position: relative; }
.rnw-mmenu-depth2 details ul a::before { content: ""; position: absolute; left: 0; top: .85em; width: 4px; height: 4px; border-radius: 50%; background: var(--debc-muted); }

/* ---------- 전체 사이트맵 모달(데스크톱 햄버거) ---------- */
.rnw-mmenu { overflow-y: auto; }
.rnw-sitemap { padding: 2rem 0 3rem; }
.rnw-sitemap-title { font-size: 1.5rem; font-weight: 800; color: var(--debc-navy); margin-bottom: 1.5rem; }
.rnw-sitemap-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.6rem; }
.rnw-sitemap-col .col-head {
  display: block; background: var(--debc-primary); color: #fff; border-radius: 8px;
  padding: .6rem .8rem; font-weight: 700; text-align: center; text-decoration: none; margin-bottom: .8rem;
}
.rnw-sitemap-col ul { list-style: none; margin: 0; padding: 0; }
.rnw-sitemap-col > ul > li { margin-bottom: .55rem; }
.rnw-sitemap-col a.d2 {
  display: block; font-weight: 600; color: var(--debc-text); text-decoration: none;
  font-size: .93rem; padding: .15rem 0; word-break: keep-all;
}
.rnw-sitemap-col a.d2:hover { color: var(--debc-primary); }
.rnw-sitemap-col ul ul { padding: .2rem 0 .3rem .6rem; }
.rnw-sitemap-col ul ul a {
  display: block; font-size: .85rem; color: var(--debc-text-sub); text-decoration: none;
  padding: .12rem 0 .12rem .7rem; position: relative; word-break: keep-all;
}
.rnw-sitemap-col ul ul a::before {
  content: ""; position: absolute; left: 0; top: .68em; width: 3px; height: 3px;
  border-radius: 50%; background: var(--debc-muted);
}
.rnw-sitemap-col ul ul a:hover { color: var(--debc-primary); }
@media (max-width: 1399.98px) {
  .rnw-sitemap-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem; }
}

/* ---------- 서브 공통: 브레드크럼 바 + 타이틀 + 균등분할 탭 (시안 정밀분석 2026-08-07) ---------- */
/* 브레드크럼: 화면 전체 폭 74px 바, 내용은 컨테이너 정렬 */
.rnw-crumbbar {
  border-top: 1px solid #E2E6E9; border-bottom: 1px solid #E2E6E9; background: #fff;
}
.rnw-crumbbar-inner { display: flex; align-items: stretch; height: 74px; }
.rnw-crumbbar .home {
  width: 74px; flex: 0 0 74px; display: flex; align-items: center; justify-content: center;
  border-left: 1px solid #E2E6E9; border-right: 1px solid #E2E6E9;
  color: var(--debc-text-sub); font-size: 1.05rem; text-decoration: none;
}
.rnw-crumbbar .home:hover { color: var(--debc-primary); }
.rnw-crumbbar .sep { display: flex; align-items: center; color: var(--debc-muted); font-size: .75rem; padding: 0 .5rem; }
.rnw-crumbbar .crumb { position: relative; display: flex; align-items: center; gap: .35rem; padding: 0 .9rem; }
.rnw-crumbbar .crumb > a { color: var(--debc-text); text-decoration: none; font-size: .95rem; white-space: nowrap; }
.rnw-crumbbar .crumb > a:hover { color: var(--debc-primary); }
.rnw-crumbbar .caret { font-size: .6rem; color: var(--debc-text-sub); }
/* 항목별 형제 선택 드롭다운 */
.rnw-crumbbar .crumb-menu {
  display: none; position: absolute; left: 0; top: 100%; z-index: 1020; min-width: 200px;
  margin: 0; padding: .4rem 0; list-style: none; background: #fff;
  border: 1px solid var(--debc-line); border-radius: 0 0 8px 8px;
  box-shadow: 0 8px 18px rgba(22, 51, 126, .10);
}
.rnw-crumbbar .crumb.has-sub:hover .crumb-menu,
.rnw-crumbbar .crumb.has-sub:focus-within .crumb-menu { display: block; }
.rnw-crumbbar .crumb-menu a {
  display: block; padding: .45rem 1rem; font-size: .9rem; color: var(--debc-text-sub); text-decoration: none;
  white-space: nowrap;
}
.rnw-crumbbar .crumb-menu a:hover { background: var(--debc-bg); color: var(--debc-primary); }

/* 타이틀 행 */
.rnw-sub { padding: 2.2rem 0 3.5rem; }
.rnw-title-row {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 121px; padding: 2rem 0 1.4rem; border-bottom: 1px solid #555354; margin-bottom: 1.6rem;
}
.rnw-title-row.no-rule { border-bottom: 0; margin-bottom: .8rem; }
/* 탭이 뒤따르면 타이틀 하단선을 생략한다 — 탭의 상단선과 겹쳐 2줄로 보이던 문제 */
.rnw-title-row.has-tabs { border-bottom: 0; margin-bottom: 0; }
.rnw-page-title { font-size: 2.5rem; font-weight: 800; margin: 0; line-height: 1.25; }
.rnw-title-util { display: flex; gap: .5rem; flex-shrink: 0; }
.rnw-title-util .util-ico {
  width: 36px; height: 36px; border: 0; border-radius: 50%; background: #EBEBEB;
  color: var(--debc-text-sub); display: inline-flex; align-items: center; justify-content: center;
}
.rnw-title-util .util-ico:hover { background: var(--debc-primary); color: #fff; }
.rnw-title-util .util-ico.copied { background: var(--debc-green); color: #fff; }

/* 탭: 컨테이너 폭 균등 분할 + 가운데 정렬 + 칸 전체폭 6px 하단바 */
.rnw-tabs {
  display: flex; margin: 0 0 2rem; border-top: 1px solid #555354; border-bottom: 1px solid #A8A8A8;
  overflow-x: auto; overflow-y: hidden;
  scrollbar-width: none; -ms-overflow-style: none;
}
.rnw-tabs::-webkit-scrollbar { display: none; }
.rnw-tabs a {
  flex: 1 1 0; min-width: 120px; display: flex; align-items: center; justify-content: center;
  height: 92px; padding: 0 .6rem; text-align: center; white-space: normal; word-break: keep-all;
  font-size: 1rem; font-weight: 600; color: var(--debc-text-sub); text-decoration: none;
  border-bottom: 6px solid transparent; margin-bottom: -1px;
}
.rnw-tabs a:hover { color: var(--debc-primary); }
.rnw-tabs a.active { color: var(--debc-primary); font-weight: 700; border-bottom-color: var(--debc-primary); }

/* 본문: 감싸는 카드 없음(시안). 강조는 연블루 풀폭 박스로만 */
.rnw-sub-body { line-height: 1.8; }
.rnw-sub-body h2 { font-size: 1.5rem; font-weight: 800; margin: 0 0 1.1rem; }
.rnw-sub-body h3 {
  font-size: 1.15rem; font-weight: 700; color: var(--debc-navy);
  margin: 2rem 0 .8rem; padding-left: .7rem; border-left: 4px solid var(--debc-primary);
}
.rnw-sub-body p { margin: 0 0 .9rem; }
.rnw-sub-body ul { padding-left: 1.2rem; }
.rnw-sub-body li { margin-bottom: .4rem; }
.rnw-sub-body img { max-width: 100%; height: auto; }
.rnw-sub-box { background: #F3F6FD; border-radius: 8px; padding: 1.6rem 1.8rem; margin: 1.4rem 0; }
.rnw-sub-empty { text-align: center; color: var(--debc-text-sub); padding: 4rem 1rem; }
@media print { .rnw-title-util, .rnw-crumbbar, .rnw-gnb, .rnw-utilbar, .rnw-tabs, .rnw-top-btn { display: none !important; } }
@media (max-width: 575.98px) {
  .rnw-crumbbar-inner { height: 56px; }
  .rnw-crumbbar .home { width: 56px; flex: 0 0 56px; }
  .rnw-sub { padding: 1.2rem 0 2.4rem; }
  .rnw-page-title { font-size: 1.6rem; }
  .rnw-tabs a { height: 64px; min-width: 100px; font-size: .9rem; }
}

/* ---------- 페이지네이션 (시안: 순수 텍스트형) ---------- */
.rnw-paging { display: flex; align-items: center; justify-content: center; gap: .35rem; flex-wrap: wrap; margin: 1.6rem 0 .4rem; }
.rnw-paging a, .rnw-paging span { text-decoration: none; font-size: .95rem; padding: .2rem .5rem; }
.rnw-paging .num { color: var(--debc-muted); }
.rnw-paging .num.current { color: var(--debc-primary); font-weight: 700; }
.rnw-paging .nav-word { color: var(--debc-text-sub); display: inline-flex; align-items: center; gap: .2rem; }
.rnw-paging .nav-word.disabled { color: var(--debc-muted); pointer-events: none; }
@media (max-width: 575.98px) {
  /* MO 시안: 이전/다음 행과 숫자 행 2행 분리 */
  .rnw-paging { flex-direction: column; gap: .5rem; }
  .rnw-paging .rnw-paging-words, .rnw-paging .rnw-paging-nums { display: flex; gap: .35rem; justify-content: center; width: 100%; }
}

/* ---------- 메인 ---------- */
.rnw-hero { background: var(--debc-bg); padding: 2rem 0; }
.rnw-hero .rnw-banner {
  background: #fff; border: 1px solid var(--debc-line); border-radius: var(--debc-radius);
  min-height: 300px; overflow: hidden; position: relative;
}
.rnw-hero .rnw-banner img { width: 100%; height: 100%; object-fit: cover; }
.rnw-quick { background: #fff; border: 1px solid var(--debc-line); border-radius: var(--debc-radius); padding: 1.2rem; height: 100%; }
.rnw-quick h2 { font-size: 1.05rem; font-weight: 700; margin-bottom: 1rem; }
.rnw-quick .grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem .4rem; }
.rnw-quick a { display: flex; flex-direction: column; align-items: center; gap: .4rem; font-size: .8rem; color: var(--debc-text); text-decoration: none; text-align: center; }
.rnw-quick a .ico {
  width: 52px; height: 52px; border-radius: 50%; background: var(--debc-bg);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.35rem; color: var(--debc-primary);
}
.rnw-quick a:hover .ico { background: var(--debc-primary); color: #fff; }

.rnw-section { padding: 2.6rem 0; }
.rnw-section.tint { background: var(--debc-bg); }
.rnw-section h2.sec-title { font-size: 1.5rem; font-weight: 800; margin-bottom: 1.3rem; }

/* 재단소식 pill 탭 + 카드 */
.rnw-pills { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.rnw-pills a { border: 1px solid var(--debc-line); border-radius: 20px; padding: .35rem 1.05rem; font-size: .92rem; font-weight: 600; color: var(--debc-text-sub); text-decoration: none; }
.rnw-pills a.active { background: var(--debc-primary); border-color: var(--debc-primary); color: #fff; }
.rnw-news-card { border: 1px solid var(--debc-line); border-radius: var(--debc-radius); background: #fff; padding: 1.1rem 1.2rem; height: 100%; display: block; text-decoration: none; color: inherit; }
.rnw-news-card:hover { border-color: var(--debc-primary); }
.rnw-news-card .cat { font-size: .78rem; color: var(--debc-primary); font-weight: 700; }
.rnw-news-card .tit { font-weight: 600; margin: .35rem 0 .6rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.9em; }
.rnw-news-card .date { font-size: .8rem; color: var(--debc-muted); }

/* 주요사업 */
.rnw-biz-menu { list-style: none; margin: 0; padding: 0; }
.rnw-biz-menu a { display: block; padding: .8rem 1rem; border-left: 3px solid transparent; font-weight: 600; color: var(--debc-text-sub); text-decoration: none; }
.rnw-biz-menu a:hover, .rnw-biz-menu a.active { color: var(--debc-primary); border-left-color: var(--debc-primary); background: #fff; }
.rnw-biz-visual { background: #fff; border: 1px solid var(--debc-line); border-radius: var(--debc-radius); min-height: 260px; padding: 2rem; }

/* ---------- 게시판 목록/상세 (시안 §2-3, §2-4 실측) ---------- */
/* 검색바: 회색 풀폭 박스 — 목록 테이블 "위" */
.rnw-board-search {
  display: flex; gap: .6rem; align-items: center;
  background: #F8F8F8; padding: 1.1rem 1.2rem; margin-bottom: 1.6rem;
}
.rnw-board-search .form-select { flex: 0 0 220px; border: 1px solid #D5D5D5; border-radius: 4px; background-color: #fff; }
.rnw-board-search .form-control { flex: 1; border: 1px solid #D5D5D5; border-radius: 4px; }
.rnw-btn-search {
  flex: 0 0 auto; background: var(--debc-primary); color: #fff; border: 0; border-radius: 4px;
  padding: .5rem 1.5rem; font-weight: 600;
}
.rnw-btn-search:hover { background: var(--debc-primary-deep); color: #fff; }

/* Total 표기 — 숫자만 파란색 */
.rnw-total { margin: 0 0 .7rem; font-size: .95rem; color: var(--debc-text); }
.rnw-total strong { color: var(--debc-primary); }

/* 목록 테이블 */
table.rnw-board { width: 100%; border-collapse: collapse; border-top: 1px solid #555354; }
table.rnw-board th {
  background: #F3F6FD; font-weight: 700; text-align: center; padding: 1rem .6rem;
  border-bottom: 1px solid #E0E0E0; border-left: 1px solid #E8ECF3;
}
table.rnw-board th:first-child { border-left: 0; }
table.rnw-board td {
  text-align: center; padding: 1.1rem .6rem; border-bottom: 1px solid #E0E0E0;
  border-left: 1px solid #EFEFEF; color: var(--debc-text-sub); font-size: .95rem;
}
table.rnw-board td:first-child { border-left: 0; }
table.rnw-board td.tit { text-align: left; padding-left: 1.8rem; }
table.rnw-board td.tit a { color: var(--debc-text); text-decoration: none; }
table.rnw-board td.tit a:hover { color: var(--debc-primary); text-decoration: underline; }
table.rnw-board td.empty { padding: 3rem 1rem; color: var(--debc-muted); }

/* 게시글 상세 — 헤더 테이블 */
table.rnw-view { width: 100%; border-collapse: collapse; border-top: 1px solid var(--debc-primary); }
table.rnw-view .view-tit {
  background: #F3F6FD; text-align: center; font-weight: 700; font-size: 1.1rem;
  padding: 1.4rem 1rem; border-bottom: 1px solid #E0E0E0;
}
table.rnw-view th {
  background: #F3F6FB; width: 160px; font-weight: 600; text-align: center;
  padding: .85rem 1rem; border-bottom: 1px solid #E0E0E0; border-right: 1px solid #E8ECF3;
  font-size: .92rem;
}
table.rnw-view td {
  padding: .85rem 1.2rem; border-bottom: 1px solid #E0E0E0; font-size: .92rem;
  color: var(--debc-text-sub); text-align: left;
}
table.rnw-view td a { color: var(--debc-text); text-decoration: underline; }
table.rnw-view td a:hover { color: var(--debc-primary); }

/* 상세 본문 — 감싸는 카드 없음 */
.rnw-view-body { padding: 2.2rem .4rem 2.6rem; line-height: 1.85; }
.rnw-view-body img { max-width: 100%; height: auto; }

/* 하단 목록 버튼 — 가운데, 흰 배경 + 파란 테두리 */
.rnw-view-foot { display: flex; justify-content: center; gap: .6rem; margin-top: 1rem; }
.rnw-btn-list {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 200px; height: 60px; padding: 0 1.4rem; border-radius: 3px;
  background: #fff; border: 1px solid var(--debc-primary); color: var(--debc-primary);
  font-weight: 600; text-decoration: none;
}
.rnw-btn-list:hover { background: var(--debc-primary); color: #fff; }

/* 섹션 제목 장식(가운데 H2 + 짧은 파란 바) — 시안 §2-5 */
.rnw-sec-title { text-align: center; font-size: 1.6rem; font-weight: 800; margin: 2.4rem 0 .6rem; }
.rnw-sec-title::after {
  content: ""; display: block; width: 28px; height: 6px; margin: .8rem auto 0;
  background: var(--debc-primary);
}

@media (max-width: 767.98px) {
  .rnw-board-search { flex-wrap: wrap; }
  .rnw-board-search .form-select { flex: 1 1 100%; }
  table.rnw-board th:nth-child(3), table.rnw-board td:nth-child(3) { display: none; }  /* 파일첨부 열 생략(MO 시안) */
  table.rnw-board td.tit { padding-left: .8rem; }
  .rnw-btn-list { min-width: 140px; height: 48px; }
}

/* ---------- 푸터 ---------- */
.rnw-footer { background: #fff; border-top: 1px solid var(--debc-line); padding: 2rem 0 2.4rem; font-size: .87rem; color: var(--debc-text-sub); }
.rnw-footer .policy a { font-weight: 600; color: var(--debc-text); text-decoration: none; margin-right: 1.1rem; }
.rnw-footer .policy a.privacy { color: var(--debc-orange); }
.rnw-top-btn {
  position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 1500;
  width: 46px; height: 46px; border-radius: 50%; border: 0;
  background: var(--debc-navy); color: #fff; font-weight: 700;
}

/* ---------- 반응형 ---------- */
@media (max-width: 991.98px) {
  .rnw-gnb { display: none !important; } /* 데스크톱 GNB 숨김 → 햄버거 */
  .rnw-quick .grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
  .rnw-mmenu-toggle { display: none; }   /* 데스크톱에선 햄버거 숨김 */
}


/* ---------- 통합검색 결과 (시안 0.검색결과) ---------- */
.rnw-search-box { background: var(--debc-bg); border-radius: var(--debc-radius); padding: 1.4rem 1.6rem; margin-bottom: 1.8rem; }
.rnw-search-box .rnw-search-row { display: flex; gap: .8rem; margin-bottom: .8rem; }
.rnw-search-box .rnw-search-row:last-child { margin-bottom: 0; }
.rnw-search-box .form-select { max-width: 220px; border-radius: 6px; }
.rnw-search-box .form-control { flex: 1; border: 2px solid var(--debc-primary); border-radius: 6px; }
.rnw-search-box .btn-primary { background: var(--debc-primary); border-color: var(--debc-primary); border-radius: 6px; padding: .4rem 1.4rem; }

.rnw-search-summary {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem;
  padding: .6rem 0 1rem; font-size: 1.05rem;
}
.rnw-search-summary .kw { color: var(--debc-primary); }
.rnw-search-summary .chip {
  display: inline-block; margin-left: .5rem; background: var(--debc-bg);
  border-radius: 14px; padding: .15rem .7rem; font-size: .85rem; color: var(--debc-text-sub);
}
.rnw-search-summary .chip b { color: var(--debc-primary); }
.rnw-search-summary .page-note { font-size: .85rem; color: var(--debc-primary); }

.rnw-pills .cnt {
  display: inline-block; margin-left: .35rem; background: var(--debc-muted); color: #fff;
  border-radius: 10px; padding: 0 .45rem; font-size: .78rem;
}
.rnw-pills a.active .cnt { background: rgba(255,255,255,.35); }

.rnw-search-group-title { font-size: 1rem; font-weight: 700; color: var(--debc-primary); margin: 1.6rem 0 .8rem; }
.rnw-search-group-title b { color: var(--debc-text); }
.rnw-search-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.rnw-search-list li { margin-bottom: .8rem; }
.rnw-search-item {
  display: block; border: 1px solid var(--debc-line); border-radius: var(--debc-radius);
  padding: 1.1rem 1.3rem; text-decoration: none; color: inherit; background: #fff;
}
.rnw-search-item:hover { border-color: var(--debc-primary); }
.rnw-search-item .tag {
  display: inline-block; background: var(--debc-navy); color: #fff; border-radius: 4px;
  padding: .12rem .55rem; font-size: .78rem; font-weight: 600; margin-right: .5rem;
}
.rnw-search-item .tit { font-weight: 700; }
.rnw-search-item .desc {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  margin: .5rem 0 .6rem; font-size: .88rem; color: var(--debc-text-sub); line-height: 1.6;
}
.rnw-search-item .meta { font-size: .8rem; color: var(--debc-muted); display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.rnw-search-item .meta .bar { color: var(--debc-line); }
@media (max-width: 575.98px) {
  .rnw-search-box .rnw-search-row { flex-direction: column; }
  .rnw-search-box .form-select { max-width: none; }
}

/* ---------- 오류 페이지(404/403/5xx/전역 폴백) — 2026-08-07 신설 ---------- */
.rnw-errpage {
  display: flex; align-items: center; justify-content: center;
  min-height: 100vh; padding: 2rem 1rem; background: #fff;
  font-family: 'Pretendard', 'Malgun Gothic', sans-serif; color: var(--debc-text);
}
.rnw-errpage-inner { max-width: 640px; text-align: center; }
.rnw-errpage-code {
  margin: 0 0 .6rem; font-size: 4rem; font-weight: 800; line-height: 1;
  color: var(--debc-primary); letter-spacing: -.02em;
}
.rnw-errpage-title { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 700; }
.rnw-errpage-desc { margin: 0 0 2rem; font-size: 1rem; line-height: 1.8; color: var(--debc-text-sub); }
.rnw-errpage-actions { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; }
.rnw-errpage-btn {
  display: inline-block; min-width: 140px; padding: .8rem 1.6rem;
  font-family: inherit; font-size: 1rem; line-height: 1.4; cursor: pointer;
  border: 1px solid var(--debc-line); border-radius: var(--debc-radius);
  background: #fff; color: var(--debc-text); text-decoration: none; font-weight: 600;
}
.rnw-errpage-btn:hover { border-color: var(--debc-primary); color: var(--debc-primary); }
.rnw-errpage-btn.primary { background: var(--debc-primary); border-color: var(--debc-primary); color: #fff; }
.rnw-errpage-btn.primary:hover { background: var(--debc-primary-deep); border-color: var(--debc-primary-deep); color: #fff; }
@media (max-width: 575.98px) {
  .rnw-errpage-code { font-size: 3rem; }
  .rnw-errpage-title { font-size: 1.25rem; }
}

/* 관리자 레이아웃·로그인 스타일은 static/css/admin.css 로 분리했다 (R5-2, 2026-08-08). */

/* =====================================================================
   R2-1 특수 컴포넌트 (2026-08-08) — KRDS 단독, Bootstrap 미사용
   FAQ 아코디언 · 연혁 타임라인 · 조직도 · 절차 플로차트 · 신고창구 카드 · 오시는 길
   ===================================================================== */

/* ---------- 아코디언 (FAQ/Q&A) ---------- */
.rnw-acc { border-top: 2px solid var(--debc-text); }
.rnw-acc-item { border-bottom: 1px solid var(--debc-line); }
.rnw-acc-btn {
  width: 100%; display: flex; align-items: flex-start; gap: .9rem; text-align: left;
  padding: 1.15rem 3rem 1.15rem 1rem; background: #fff; border: 0; cursor: pointer;
  font-size: 1.02rem; font-weight: 600; color: var(--debc-text); position: relative;
  font-family: inherit; line-height: 1.5;
}
.rnw-acc-btn:hover { background: var(--debc-bg); }
.rnw-acc-btn:focus-visible { outline: 3px solid var(--debc-primary); outline-offset: -3px; }
.rnw-acc-btn .qmark {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%;
  background: var(--debc-primary); color: #fff; font-weight: 700; font-size: .9rem;
  display: inline-flex; align-items: center; justify-content: center;
}
.rnw-acc-btn .cate { font-size: .82rem; font-weight: 600; color: var(--debc-primary); margin-right: .4rem; }
.rnw-acc-btn::after {
  content: ""; position: absolute; right: 1.2rem; top: 50%; width: 10px; height: 10px;
  border-right: 2px solid var(--debc-text-sub); border-bottom: 2px solid var(--debc-text-sub);
  transform: translateY(-70%) rotate(45deg); transition: transform .2s;
}
.rnw-acc-btn[aria-expanded="true"] { color: var(--debc-primary); }
.rnw-acc-btn[aria-expanded="true"]::after { transform: translateY(-20%) rotate(-135deg); border-color: var(--debc-primary); }
.rnw-acc-panel { display: none; padding: 1.2rem 1.4rem 1.5rem 3.6rem; background: var(--debc-bg); }
.rnw-acc-panel.open { display: block; }
.rnw-acc-panel .amark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; background: var(--debc-navy); color: #fff;
  font-weight: 700; font-size: .9rem; margin-right: .6rem; vertical-align: top;
}
.rnw-acc-panel .acontent { display: inline-block; width: calc(100% - 40px); line-height: 1.75; color: var(--debc-text-sub); }
.rnw-acc-empty { padding: 3rem 1rem; text-align: center; color: var(--debc-text-sub); }

/* ---------- 연혁 타임라인 ---------- */
.rnw-timeline { position: relative; padding: 1rem 0 0 0; }
.rnw-timeline::before {
  content: ""; position: absolute; left: 118px; top: 0; bottom: 0; width: 2px; background: var(--debc-line);
}
.rnw-tl-item { position: relative; display: flex; gap: 2rem; padding-bottom: 2.2rem; }
.rnw-tl-year {
  flex: 0 0 100px; text-align: right; font-size: 1.35rem; font-weight: 800; color: var(--debc-primary);
  line-height: 1.2; padding-top: .1rem;
}
.rnw-tl-item::before {
  content: ""; position: absolute; left: 112px; top: .45rem; width: 14px; height: 14px;
  border-radius: 50%; background: var(--debc-primary); border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--debc-primary);
}
.rnw-tl-body { flex: 1; padding-left: 1.4rem; }
.rnw-tl-body dl { margin: 0; display: grid; grid-template-columns: 62px 1fr; gap: .35rem .8rem; }
.rnw-tl-body dt { font-weight: 700; color: var(--debc-text-sub); font-size: .9rem; }
.rnw-tl-body dd { margin: 0; color: var(--debc-text); line-height: 1.6; }
@media (max-width: 767.98px) {
  .rnw-timeline::before { left: 7px; }
  .rnw-tl-item { flex-direction: column; gap: .4rem; padding-left: 2rem; }
  .rnw-tl-item::before { left: 0; }
  .rnw-tl-year { text-align: left; flex: none; }
  .rnw-tl-body { padding-left: 0; }
}

/* ---------- 조직도 ---------- */
.rnw-org { text-align: center; padding: 1rem 0 2rem; }
.rnw-org-top { display: inline-block; }
.rnw-org-box {
  display: inline-block; min-width: 190px; padding: .85rem 1.4rem; border-radius: var(--debc-radius);
  background: var(--debc-navy); color: #fff; font-weight: 700; font-size: 1.05rem;
}
.rnw-org-box.sub { background: var(--debc-primary); font-size: .98rem; min-width: 160px; }
.rnw-org-box.dept {
  background: #fff; color: var(--debc-text); border: 1px solid var(--debc-line);
  font-weight: 600; font-size: .92rem; min-width: 140px; padding: .7rem 1rem;
}
.rnw-org-line { width: 2px; height: 26px; background: var(--debc-line); margin: 0 auto; }
.rnw-org-row { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; position: relative; }
.rnw-org-row::before {
  content: ""; position: absolute; top: -14px; left: 15%; right: 15%; height: 2px; background: var(--debc-line);
}
.rnw-org-col { display: flex; flex-direction: column; align-items: center; }
.rnw-org-col .rnw-org-line { height: 14px; }
.rnw-org-aside { display: flex; justify-content: center; gap: 1rem; margin-bottom: .2rem; }
/* 모바일: 부서가 줄바꿈되면 가로 연결선이 어긋나므로 세로 스택으로 전환한다. (QA R2-1 지적 2) */
@media (max-width: 767.98px) {
  .rnw-org-row { flex-direction: column; align-items: center; gap: .5rem; }
  .rnw-org-row::before { display: none; }
  .rnw-org-col .rnw-org-line { height: 10px; }
  .rnw-org-box, .rnw-org-box.sub, .rnw-org-box.dept { min-width: 200px; }
}

/* ---------- 절차 플로차트 ---------- */
.rnw-flow { display: flex; align-items: stretch; gap: 0; flex-wrap: wrap; padding: 1rem 0; }
.rnw-flow-step {
  flex: 1 1 160px; min-width: 150px; position: relative;
  background: #fff; border: 1px solid var(--debc-line); border-radius: var(--debc-radius);
  padding: 1.3rem 1rem; text-align: center; margin-right: 26px;
}
.rnw-flow-step:last-child { margin-right: 0; }
.rnw-flow-step::after {
  content: ""; position: absolute; right: -20px; top: 50%; width: 10px; height: 10px;
  border-top: 2px solid var(--debc-primary); border-right: 2px solid var(--debc-primary);
  transform: translateY(-50%) rotate(45deg);
}
.rnw-flow-step:last-child::after { display: none; }
.rnw-flow-no {
  display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px;
  border-radius: 50%; background: var(--debc-primary); color: #fff; font-weight: 700; font-size: .9rem;
  margin-bottom: .6rem;
}
.rnw-flow-tit { font-weight: 700; margin-bottom: .3rem; }
.rnw-flow-desc { font-size: .86rem; color: var(--debc-text-sub); line-height: 1.55; }
@media (max-width: 767.98px) {
  .rnw-flow { flex-direction: column; }
  .rnw-flow-step { margin: 0 0 26px; }
  .rnw-flow-step::after { right: 50%; top: auto; bottom: -20px; transform: translateX(50%) rotate(135deg); }
}

/* ---------- 신고창구 카드 ---------- */
.rnw-report-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.1rem; padding: 1rem 0; }
.rnw-report-card {
  display: block; border: 1px solid var(--debc-line); border-radius: var(--debc-radius);
  padding: 1.4rem 1.5rem; background: #fff; text-decoration: none; color: inherit;
}
.rnw-report-card:hover { border-color: var(--debc-primary); box-shadow: 0 4px 14px rgba(22,51,126,.08); }
.rnw-report-card .tit { display: block; font-size: 1.05rem; font-weight: 700; margin-bottom: .5rem; color: var(--debc-navy); }
.rnw-report-card .desc { display: block; font-size: .88rem; color: var(--debc-text-sub); line-height: 1.65; }
.rnw-report-card .go { display: inline-block; margin-top: .9rem; font-size: .85rem; font-weight: 600; color: var(--debc-primary); }
.rnw-report-card .go::after { content: " ›"; }
.rnw-report-card .how {
  display: block; margin-top: .7rem; padding-top: .7rem; border-top: 1px dashed var(--debc-line);
  font-size: .82rem; color: var(--debc-text-sub); line-height: 1.6;
}
.rnw-report-card .how b { color: var(--debc-navy); }

/* ---------- 오시는 길 ---------- */
.rnw-map-wrap { border: 1px solid var(--debc-line); border-radius: var(--debc-radius); overflow: hidden; background: var(--debc-bg); }
.rnw-map-wrap img { display: block; width: 100%; height: auto; }
.rnw-map-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-top: 1.2rem; }
.rnw-map-box { border: 1px solid var(--debc-line); border-radius: var(--debc-radius); padding: 1.1rem 1.3rem; background: #fff; }
.rnw-map-box h3 { font-size: 1rem; font-weight: 700; margin: 0 0 .5rem; color: var(--debc-primary); }
.rnw-map-box p, .rnw-map-box li { font-size: .9rem; color: var(--debc-text-sub); line-height: 1.7; margin: 0; }
.rnw-map-box ul { margin: 0; padding-left: 1.1rem; }

/* 관리자 대시보드 스타일은 static/css/admin.css 로 분리했다 (R5-2, 2026-08-08). */

/* ---------- 안내 박스 (2026-08-08 QA R22-2) ----------
   제한 게시판 목록 상단의 "온라인 접수 준비 중" 안내. 신고창구 카드(menuNo 420)의 인라인 박스와
   같은 모양이되, 여기서는 클래스로 둔다(콘텐츠가 아니라 템플릿이 그리는 요소이므로). */
.rnw-notice-box {
  border: 1px solid var(--debc-line); border-left: 4px solid var(--debc-primary);
  border-radius: 10px; padding: 1rem 1.2rem; margin: 0 0 1.4rem; background: #F7F9FD;
}
.rnw-notice-box strong { display: block; margin-bottom: .4rem; color: var(--debc-text); }
.rnw-notice-box p { margin: 0; font-size: .9rem; color: var(--debc-text-sub); line-height: 1.7; }
.rnw-notice-box p + p { margin-top: .5rem; }
.rnw-notice-box a { color: var(--debc-primary); font-weight: 600; }
