/*
Theme Name:  KPGM Child
Template:    astra
Version:     0.5.27
Description: KPGM 전용 자식 테마. 디자인 수정은 전부 이 파일 안에서 한다.
*/

/* ══════════════════════════════════════════════════════════════════════
   디자인 토큰 — 색·글꼴을 바꾸려면 여기 값만 고치면 사이트 전체에 적용됩니다
   ══════════════════════════════════════════════════════════════════════ */
/* 글꼴은 「KPGM 글꼴」 플러그인이 사이트 안에서 불러옵니다.
   (예전 kpgm.net 이 쓰던 9종을 파일째 보관 — 구글·CDN에 기대지 않음)
   본문 Pretendard / 제목·인용 Noto Serif KR */

:root{
  --kpgm-ink:#1b2320;
  --kpgm-ink-2:#4a5751;
  --kpgm-ink-3:#8b9691;
  --kpgm-line:#e3e8e5;
  --kpgm-line-2:#eef1ef;
  --kpgm-bg-2:#f7f9f8;
  --kpgm-bg-3:#f0f4f2;
  --kpgm-brand:#1f5c46;
  --kpgm-brand-2:#2f7a5e;
  --kpgm-brand-soft:#e8f2ee;
  --kpgm-side-w:264px;
  --kpgm-font:'Pretendard Variable','Pretendard','Malgun Gothic','맑은 고딕',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --kpgm-font-serif:'Noto Serif KR','IBM Plex Serif',Georgia,serif;
}

/* KPGM_PROTECTED_CONTRACT_FRAME_STABILITY_START
   짧은 화면과 긴 화면을 오갈 때 세로 스크롤바 15px 유무로 본문 전체가
   좌우로 흔들리지 않도록, 모든 공개 언어 화면에 같은 자리를 미리 둔다. */
html{ scrollbar-gutter:stable; }
/* KPGM_PROTECTED_CONTRACT_FRAME_STABILITY_END */

body.kpgm-app{ font-family:var(--kpgm-font); color:var(--kpgm-ink); }

/* 테마 기본 상단 헤더 숨김 (코드에서도 제거하지만 이중 안전장치) */
#masthead, .site-header,
.ast-above-header-wrap, .ast-below-header-wrap{ display:none !important; }

/* ══════════════════════════════════════════════════════════════════════
   좌측 카페형 메뉴
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-side{
  position:fixed; top:0; bottom:0; left:0; width:var(--kpgm-side-w);
  background:#fff; border-right:1px solid var(--kpgm-line);
  overflow-y:auto; z-index:55; padding:0 0 60px;
}
.admin-bar .kpgm-side{ top:32px; }
@media(max-width:782px){ .admin-bar .kpgm-side{ top:46px; } }

.kpgm-side::-webkit-scrollbar{ width:6px; }
.kpgm-side::-webkit-scrollbar-thumb{ background:#d7ded9; border-radius:3px; }

.kpgm-side__brand{
  display:block; padding:20px; border-bottom:1px solid var(--kpgm-line-2); text-decoration:none;
}
.kpgm-side__brand b{ font-size:21px; font-weight:800; color:var(--kpgm-brand); letter-spacing:-.4px; display:block; }
.kpgm-side__brand span{ display:block; font-size:11.5px; color:var(--kpgm-ink-3); margin-top:2px; }

/* 언어 전환 */
.kpgm-langs{
  display:flex; gap:4px; padding:12px 16px;
  border-bottom:1px solid var(--kpgm-line-2); background:var(--kpgm-bg-2);
}
.kpgm-langs__i{
  flex:1; text-align:center; padding:6px 0; border-radius:6px;
  font-size:11.5px; font-weight:700; letter-spacing:.02em;
  color:var(--kpgm-ink-3); background:#fff; border:1px solid var(--kpgm-line);
  text-decoration:none;
}
.kpgm-langs__i:hover{ color:var(--kpgm-brand); border-color:var(--kpgm-brand); }
.kpgm-langs__i.is-on{ background:var(--kpgm-brand); color:#fff; border-color:var(--kpgm-brand); }

/* 로그인·로그아웃은 어떤 화면에서도 바로 보이게 둔다. */
.kpgm-account{
  padding:10px 14px 12px; border-bottom:1px solid var(--kpgm-line-2);
  background:#fff;
}
.kpgm-account__who{
  display:block; margin:0 2px 7px; overflow:hidden; text-overflow:ellipsis;
  color:var(--kpgm-ink-2); font-size:11.5px; white-space:nowrap;
}
.kpgm-account__actions{ display:flex; gap:6px; }
.kpgm-account__btn{
  display:flex; align-items:center; justify-content:center; min-height:38px; flex:1;
  padding:7px 10px; border:1px solid var(--kpgm-line); border-radius:7px;
  color:var(--kpgm-brand); background:var(--kpgm-brand-soft);
  font-size:12.5px; font-weight:700; line-height:1.25; text-align:center; text-decoration:none;
}
.kpgm-account__btn:hover,
.kpgm-account__btn:focus-visible{ color:#fff; background:var(--kpgm-brand); border-color:var(--kpgm-brand); }
.kpgm-account__btn--out{ color:#9b2c2c; background:#fff7f7; border-color:#ead3d3; }
.kpgm-account__help{
  display:block; margin-top:7px; color:var(--kpgm-ink-3); font-size:10.5px;
  line-height:1.45; text-align:center;
}

/* 대분류 / 하위 */
.kpgm-grp{ border-bottom:1px solid var(--kpgm-line-2); }
.kpgm-grp__btn{
  width:100%; display:flex; align-items:center; gap:10px;
  padding:12px 18px; font-size:14.5px; font-weight:600;
  color:var(--kpgm-ink); background:none; border:0; text-align:left; cursor:pointer;
  font-family:inherit;
}
.kpgm-grp__btn:hover{ background:var(--kpgm-bg-2); }
.kpgm-sub{ background:var(--kpgm-bg-2); margin:0; list-style:none; }
.kpgm-sub li{ margin:0; }
.kpgm-sub a{
  display:block; padding:9px 18px 9px 40px; font-size:13.5px;
  color:var(--kpgm-ink-2); border-left:3px solid transparent; text-decoration:none;
}
.kpgm-sub a:hover{ background:#eaf0ed; color:var(--kpgm-brand); }
.kpgm-sub li.current-menu-item > a{
  background:var(--kpgm-brand-soft); color:var(--kpgm-brand);
  font-weight:600; border-left-color:var(--kpgm-brand);
}

/* 본문을 사이드바만큼 밀어줌 — 랜딩 포함 모든 화면 */
body.kpgm-app #page{ margin-left:var(--kpgm-side-w); }
body.kpgm-app #content{ padding-top:24px; }
body.kpgm-app .ast-container{ max-width:1040px; }

/* 페이지 제목 */
body.kpgm-app .entry-title{
  font-size:26px; font-weight:800; letter-spacing:-.6px;
  padding-bottom:18px; border-bottom:2px solid var(--kpgm-ink); margin-bottom:22px;
}
/* 랜딩에서는 페이지 제목 숨김 */
body.kpgm-front .entry-title{ display:none; }

/* ══════════════════════════════════════════════════════════════════════
   랜딩 페이지
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-lp{ font-family:var(--kpgm-font); color:var(--kpgm-ink); }

.kpgm-lp__hero{
  display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;
  padding:20px 0 56px; border-bottom:1px solid var(--kpgm-line-2); margin-bottom:48px;
}
.kpgm-lp__eyebrow{
  display:inline-block; padding:5px 12px; border-radius:20px;
  background:var(--kpgm-brand-soft); color:var(--kpgm-brand);
  font-size:12px; font-weight:700; margin-bottom:18px;
}
.kpgm-lp h1{ font-size:36px; line-height:1.3; font-weight:800; letter-spacing:-1px; margin:0 0 18px; }
.kpgm-lp h1 em{ font-style:normal; color:var(--kpgm-brand); }
.kpgm-lp__lead{ font-size:15.5px; color:var(--kpgm-ink-2); line-height:1.85; margin-bottom:26px; }
.kpgm-lp__cta{ display:flex; gap:10px; flex-wrap:wrap; }
.kpgm-lp__btn{
  display:inline-block; padding:12px 24px; border-radius:8px;
  background:var(--kpgm-brand); color:#fff !important; font-weight:700; font-size:14px; text-decoration:none !important;
}
.kpgm-lp__btn:hover{ background:var(--kpgm-brand-2); }
.kpgm-lp__btn--ghost{ background:transparent; color:var(--kpgm-ink-2) !important; border:1px solid var(--kpgm-line); }
.kpgm-lp__btn--ghost:hover{ border-color:var(--kpgm-brand); color:var(--kpgm-brand) !important; background:transparent; }

.kpgm-lp__art{
  aspect-ratio:1/1; border-radius:16px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:28px;
  background:
    radial-gradient(circle at 68% 26%, rgba(255,255,255,.5) 0%, transparent 42%),
    linear-gradient(155deg,#2f7a5e 0%,#1f5c46 48%,#163f31 100%);
}
.kpgm-lp__art:after{
  content:''; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg,transparent 0 27px,rgba(255,255,255,.07) 27px 28px),
    repeating-linear-gradient(90deg,transparent 0 27px,rgba(255,255,255,.07) 27px 28px);
}
.kpgm-lp__quote{ position:relative; z-index:1; color:rgba(255,255,255,.94); font-size:14.5px; line-height:1.85; margin:0; border:0; padding:0; }
.kpgm-lp__quote cite{ display:block; margin-top:12px; font-style:normal; font-size:12px; color:rgba(255,255,255,.6); }

/* 소개글 */
.kpgm-lp__intro{ max-width:760px; margin:0 0 52px; }
.kpgm-lp__intro h2{
  font-size:21px; font-weight:800; letter-spacing:-.5px; margin:0 0 18px;
  padding-left:12px; border-left:4px solid var(--kpgm-brand);
}
.kpgm-lp__intro p{ font-size:15px; line-height:1.95; color:var(--kpgm-ink-2); margin:0 0 18px; }
.kpgm-lp__intro strong{ color:var(--kpgm-ink); font-weight:700; }
.kpgm-lp__verse{
  margin:28px 0; padding:20px 24px; border-radius:10px;
  background:var(--kpgm-bg-2); border-left:4px solid var(--kpgm-brand-2);
  font-size:14.5px; line-height:1.9; color:var(--kpgm-ink-2);
}
.kpgm-lp__verse b{ display:block; margin-top:8px; font-size:12.5px; color:var(--kpgm-ink-3); font-weight:600; }

/* 사역 카드 */
.kpgm-lp__cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:0 0 60px; }
.kpgm-lp__card{ padding:24px 22px; border:1px solid var(--kpgm-line); border-radius:12px; transition:.18s; }
.kpgm-lp__card:hover{ border-color:var(--kpgm-brand); background:var(--kpgm-bg-2); transform:translateY(-2px); }
.kpgm-lp__card h3{ font-size:15.5px; font-weight:700; margin:0 0 7px; }
.kpgm-lp__card p{ font-size:13.5px; color:var(--kpgm-ink-3); line-height:1.7; margin:0; }
.kpgm-lp__ic{ font-size:22px; display:block; margin-bottom:12px; }

/* ══════════════════════════════════════════════════════════════════════
   게시판 목록 표
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-board thead th{
  padding:11px 10px; font-size:12.5px; font-weight:600; color:var(--kpgm-ink-3);
  border-top:1px solid var(--kpgm-ink); border-bottom:1px solid var(--kpgm-line); text-align:left;
}
.kpgm-board tbody td{ padding:13px 10px; font-size:14px; border-bottom:1px solid var(--kpgm-line-2); }
.kpgm-board tbody tr:hover{ background:var(--kpgm-bg-2); }

/* ══════════════════════════════════════════════════════════════════════
   모바일
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-burger{ display:none; }
@media(max-width:900px){
  .kpgm-side{ transform:translateX(-100%); transition:transform .25s; box-shadow:2px 0 16px rgba(0,0,0,.12); }
  .kpgm-side.is-open{ transform:translateX(0); }
  body.kpgm-app #page{ margin-left:0; }
  .kpgm-burger{
    display:block; position:fixed; top:10px; left:10px; z-index:60;
    background:#fff; border:1px solid var(--kpgm-line); border-radius:8px;
    width:40px; height:40px; font-size:18px; cursor:pointer;
  }
  .admin-bar .kpgm-burger{ top:52px; }
  .kpgm-lp__hero{ grid-template-columns:1fr; gap:28px; padding-top:44px; }
  .kpgm-lp h1{ font-size:27px; }
  .kpgm-lp__art{ aspect-ratio:16/10; }
  .kpgm-lp__cards{ grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════════════════════
   메뉴 기본 배치 — 하위 목록은 문서 흐름 안에 둔다
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-side{ overflow-y:auto; overflow-x:visible; }
.kpgm-grp{ position:relative; }
.kpgm-grp__btn{ padding:8px 16px; font-size:14px; }   /* 2026-08-11 줄 간격 좁힘 (11→8) */
.kpgm-sub a{ padding:9px 16px 9px 26px; }

/* 단독 항목(하위 없음)도 같은 높이로 */
.kpgm-side .kpgm-grp__btn span:first-child{ flex:1; }

/* ══════════════════════════════════════════════════════════════════════
   게시판 화면
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-board-wrap{ max-width:1000px; margin:0 auto; padding:8px 0 60px; }
.kpgm-board-head{ display:flex; align-items:flex-end; gap:14px; padding-bottom:16px; border-bottom:2px solid var(--kpgm-ink); }
.kpgm-board-head h1{ font-size:25px; font-weight:800; letter-spacing:-.6px; margin:0; }
.kpgm-board-count{ margin-left:auto; font-size:13px; color:var(--kpgm-ink-3); padding-bottom:3px; }
.kpgm-board-desc{ padding:16px 0; font-size:14.5px; color:var(--kpgm-ink-2); line-height:1.8; margin:0; border-bottom:1px solid var(--kpgm-line-2); }

.kpgm-tabs{ display:flex; flex-wrap:wrap; gap:2px; margin-top:18px; border-bottom:1px solid var(--kpgm-line); }
.kpgm-tabs a{
  padding:9px 16px; font-size:13.5px; color:var(--kpgm-ink-3);
  border-bottom:2px solid transparent; margin-bottom:-1px; text-decoration:none;
}
.kpgm-tabs a:hover{ color:var(--kpgm-brand); border-bottom-color:var(--kpgm-brand); }

table.kpgm-board{ width:100%; border-collapse:collapse; margin-top:16px; }
table.kpgm-board thead th{
  padding:11px 10px; font-size:12.5px; font-weight:600; color:var(--kpgm-ink-3);
  border-top:1px solid var(--kpgm-ink); border-bottom:1px solid var(--kpgm-line); text-align:left;
}
table.kpgm-board tbody td{ padding:13px 10px; font-size:14px; border-bottom:1px solid var(--kpgm-line-2); color:var(--kpgm-ink-2); }
table.kpgm-board tbody tr:hover{ background:var(--kpgm-bg-2); }
table.kpgm-board .c-t a{ color:var(--kpgm-ink); font-weight:500; text-decoration:none; }
table.kpgm-board tbody tr:hover .c-t a{ color:var(--kpgm-brand); }
.c-n,th.c-n{ width:56px; font-size:13px; color:var(--kpgm-ink-3); }
.c-w,th.c-w{ width:110px; font-size:13px; }
.c-d,th.c-d{ width:88px; font-size:13px; color:var(--kpgm-ink-3); }
.c-v,th.c-v{ width:56px; font-size:13px; color:var(--kpgm-ink-3); text-align:right; }
.kpgm-empty{ text-align:center; padding:56px 0 !important; color:var(--kpgm-ink-3); }
.kpgm-pin{ display:inline-block; padding:1px 7px; border-radius:4px; background:var(--kpgm-brand-soft); color:var(--kpgm-brand); font-size:11px; font-weight:700; margin-right:6px; }
.kpgm-new{ display:inline-block; margin-left:6px; padding:1px 5px; border-radius:3px; background:#c0392b; color:#fff; font-size:10px; font-weight:700; vertical-align:1px; }
.kpgm-att{ margin-left:6px; font-size:12px; opacity:.7; }
.kpgm-board-bar{ display:flex; justify-content:flex-end; margin-top:18px; }
.kpgm-write{ padding:9px 18px; border-radius:7px; background:var(--kpgm-brand); color:#fff !important; font-size:13.5px; font-weight:600; text-decoration:none; }
.kpgm-pager{ display:flex; justify-content:center; gap:5px; margin-top:26px; }
.kpgm-pager .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:6px; font-size:13px;
  color:var(--kpgm-ink-2); text-decoration:none;
}
.kpgm-pager .page-numbers.current{ background:var(--kpgm-brand); color:#fff; font-weight:700; }
.kpgm-pager .page-numbers:hover:not(.current){ background:var(--kpgm-bg-3); }

/* 글 본문에 첨부된 미디어 */
.entry-content img,
.entry-content video,
.entry-content iframe{ max-width:100%; height:auto; border-radius:8px; }
.entry-content audio{ width:100%; margin:12px 0; }

@media(max-width:900px){
  .c-w,th.c-w,.c-v,th.c-v{ display:none; }
  .kpgm-sub{ position:static; box-shadow:none; border:0; }
}

/* 번역 준비 중 안내 */
.kpgm-notrans{
  margin-left:var(--kpgm-side-w);
  padding:10px 20px; background:#fdf7ec; border-bottom:1px solid #f0e0c0;
  font-size:12.5px; color:#7a5f28;
}
@media(max-width:900px){ .kpgm-notrans{ margin-left:0; padding-left:60px; } }

/* ── 고침: 메뉴에 마우스 올렸을 때 글씨가 하얘지던 문제 ── */
.kpgm-grp__btn,
.kpgm-grp__btn:hover,
.kpgm-grp__btn:focus,
.kpgm-grp__btn:active{
  color:var(--kpgm-ink) !important;
  background:transparent !important;
  border:0 !important; box-shadow:none !important;
}
.kpgm-grp__btn:hover{ background:var(--kpgm-bg-2) !important; }
.kpgm-grp.current-menu-item > .kpgm-grp__btn,
.kpgm-grp.current-menu-ancestor > .kpgm-grp__btn{ color:var(--kpgm-brand) !important; }
.kpgm-side a:hover{ color:var(--kpgm-brand); }

/* ── 고침: 드롭다운을 열면 아래가 잘려 스크롤이 안 되던 문제 ── */
.kpgm-side{ padding-bottom:0; transition:padding-bottom .2s; }

/* KBoard 게시판이 본문 폭을 꽉 쓰도록 */
body.kpgm-app .kboard-default-list,
body.kpgm-app .kboard-document,
body.kpgm-app .kboard-editor{ max-width:100%; }
body.kpgm-app #content .ast-container{ max-width:1060px; }

/* ══════════════════════════════════════════════════════════════════════
   v0.4.0 (2026-08-10)
   1) 좌측 메뉴를 네이버·다음 카페식 아코디언으로
   2) 예전 kpgm.net과 글꼴 통일
   3) 예전 랜딩 선언문을 축소해서 얹기
   ══════════════════════════════════════════════════════════════════════ */

/* ── 1. 좌측 메뉴 ────────────────────────────────────────────────────
   문제: 위쪽 "7단계" 블록이 하위 메뉴를 position:absolute 로 띄워 놓았다.
        그래서 펼치면 아래 대메뉴들을 덮어 가렸고, 스크롤해도 안 나왔다.
   해결: 흐름(static) 안으로 되돌려 아래 항목들을 밀어내게 한다.
        메뉴판 자체가 위아래로 스크롤되므로 모든 항목에 닿을 수 있다. */
.kpgm-side{
  overflow-y:auto; overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:24px;
}
.kpgm-grp{ position:static; }
.kpgm-sub{
  position:static; inset:auto;
  background:var(--kpgm-bg-2);
  border:0; box-shadow:none;
  max-height:none; overflow:visible;
  transition:none;
}
.kpgm-sub a{ padding:9px 16px 9px 32px; }

/* ── 2. 글꼴 (예전 kpgm.net 규칙 그대로) ────────────────────────────
   본문·버튼·메뉴 = Pretendard / 큰 제목·인용 = Noto Serif KR */
body.kpgm-app,
body.kpgm-app button,
body.kpgm-app input,
body.kpgm-app select,
body.kpgm-app textarea{ font-family:var(--kpgm-font); }

body.kpgm-app .entry-title,
body.kpgm-app .kpgm-board-head h1,
.kpgm-lp h1,
.kpgm-decl__lead{ font-family:var(--kpgm-font-serif); font-weight:600; }

.kpgm-lp__quote,
body.kpgm-app blockquote{ font-family:var(--kpgm-font-serif); font-weight:400; }

/* 로고 — kpgm.net 이 곧 주소이자 이름 */
.kpgm-side__brand b{
  font-family:var(--kpgm-font-serif); font-weight:900; letter-spacing:.02em;
}
.kpgm-side__brand span{
  font-family:var(--kpgm-font); letter-spacing:.06em; font-weight:500;
}

/* ── 3. 랜딩: 예전 선언문을 줄여서 ──────────────────────────────────
   예전 사이트는 h1 이 2.75rem(44px)이었다. 여기서는 좌측 메뉴가 있어
   본문 폭이 좁으므로 한 단계씩 줄인다. */
.kpgm-lp h1{ font-size:31px; line-height:1.38; letter-spacing:-.5px; }

.kpgm-decl{
  margin:0 0 46px; padding:34px 34px 30px;
  border:1px solid var(--kpgm-line);
  border-top:3px solid var(--kpgm-brand);
  border-radius:12px; background:var(--kpgm-bg-2);
}
.kpgm-decl__lead{
  margin:0; font-size:17px; line-height:1.95; color:var(--kpgm-ink);
  text-align:center; word-break:keep-all;
}
.kpgm-decl__lead b{ color:var(--kpgm-brand); font-weight:700; }
.kpgm-decl__refs{
  margin:20px auto 0; max-width:660px; padding-top:16px;
  border-top:1px dashed var(--kpgm-line);
  font-size:11.5px; line-height:1.9; color:var(--kpgm-ink-3);
  text-align:center; word-break:keep-all;
}
.kpgm-decl__body{
  margin:26px auto 0; max-width:700px;
  font-size:14.5px; line-height:1.95; color:var(--kpgm-ink-2);
  text-align:center; word-break:keep-all;
}
.kpgm-decl__body b{ color:var(--kpgm-ink); font-weight:600; }

/* 통시적 역사관 구절 묶음 */
.kpgm-refs{
  margin:0 0 56px; padding:24px 26px;
  border:1px solid var(--kpgm-line); border-radius:12px;
}
.kpgm-refs h2{
  margin:0 0 14px; font-size:15px; font-weight:700; color:var(--kpgm-ink);
  letter-spacing:-.3px; line-height:1.6; word-break:keep-all;
}
.kpgm-refs p{
  margin:0; font-size:11.5px; line-height:2; color:var(--kpgm-ink-3);
  word-break:keep-all;
}

@media(max-width:900px){
  .kpgm-lp h1{ font-size:24px; }
  .kpgm-decl{ padding:24px 20px 22px; }
  .kpgm-decl__lead{ font-size:15px; }
}

/* ══════════════════════════════════════════════════════════════════════
   v0.4.1 (2026-08-10)
   1) 로고 kpgm.net 을 원본 서체·크기로
   2) 랜딩을 예전 kpgm.net 원본 내용 구조에 맞춤
   ══════════════════════════════════════════════════════════════════════ */

/* 원본은 브랜드에 JejuHallasan(제주한라산체)을 먼저 두고, 없으면
   명조로 떨어지게 해 두었다. 그 글꼴 파일은 원본 서버에도 없어서
   실제 화면에는 Noto Serif KR 로 나온다. 같은 순서로 두어 결과를 맞춘다. */
.kpgm-side__brand{ padding:18px 20px 16px; }
.kpgm-side__brand b{
  display:block; margin-bottom:3px;
  font-family:'JejuHallasan',var(--kpgm-font-serif);
  font-size:13px; font-weight:400; letter-spacing:.04em;
  color:var(--kpgm-ink-3);
}
.kpgm-side__brand span{
  display:block; margin-top:0;
  font-family:'JejuHallasan',var(--kpgm-font-serif);
  font-size:23px; font-weight:400; letter-spacing:0; line-height:1.05;
  color:var(--kpgm-brand);
}

/* 랜딩 — 원본 선언문이 첫 화면의 주인공 */
.kpgm-decl--hero{ margin-top:6px; padding:44px 40px 34px; background:#fff; }
.kpgm-decl--hero .kpgm-decl__lead{ font-size:19px; line-height:2.05; }

.kpgm-lp__foot{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px;
  padding:26px 0 44px; border-top:1px solid var(--kpgm-line-2);
}
.kpgm-lp__foot .kpgm-lp__btn{ margin-right:auto; }
.kpgm-lp__flink{ font-size:12.5px; color:var(--kpgm-ink-3); text-decoration:none; }
.kpgm-lp__flink:hover{ color:var(--kpgm-brand); }

@media(max-width:900px){
  .kpgm-decl--hero{ padding:26px 20px 22px; }
  .kpgm-decl--hero .kpgm-decl__lead{ font-size:16px; line-height:1.95; }
  .kpgm-lp__foot .kpgm-lp__btn{ margin-right:0; }
}

/* ══════════════════════════════════════════════════════════════════════
   v0.4.2 (2026-08-10) — 예전 kpgm.net 의 노란 손글씨 로고 이미지
   원본 파일을 「도구 → KPGM 예전자료」로 가져와 사이트 안에 두었다.
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-side__brand{
  display:flex; align-items:center; justify-content:center;
  min-height:78px; padding:16px;
  background:#1b2320 url('/wp-content/uploads/2026/08/kpgm-logo.png') no-repeat center center;
  background-size:auto 40px;
}
/* 글자는 화면에서만 감추고 읽기 도구에는 남긴다 */
.kpgm-side__brand b,
.kpgm-side__brand span{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}

/* ══════════════════════════════════════════════════════════════════════
   v0.4.3 (2026-08-10) — 랜딩의 원형 로고 두 개 · 인용문 · 검수 안내
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-circles{
  display:flex; justify-content:center; align-items:center;
  gap:40px; flex-wrap:wrap; padding:10px 0 34px;
}
.kpgm-circle{
  width:200px; height:200px; border-radius:50%;
  object-fit:contain; background:transparent;
}

/* 첫 로그인 비밀번호 변경은 워드프레스 뒷화면 대신 사이트 안에서 한다. */
.kpgm-password-page{
  width:min(620px,calc(100% - 32px)); margin:56px auto; padding:32px;
  background:#fff; border:1px solid var(--kpgm-line); border-radius:14px;
  box-shadow:0 10px 30px rgba(27,35,32,.08);
}
.kpgm-password-page h1{ margin:0 0 12px; font-size:24px; line-height:1.35; text-align:left; }
.kpgm-password-page p{ margin:0 0 18px; color:var(--kpgm-ink-2); font-size:14px; line-height:1.7; }
.kpgm-password-page label{ display:block; margin:14px 0 6px; font-weight:700; }
.kpgm-password-page input[type=password]{ width:100%; min-height:46px; }
.kpgm-password-page__error{
  padding:10px 12px; border-left:4px solid #b32d2e; background:#fff3f3; color:#8a2424 !important;
}
.kpgm-password-page__submit{
  min-height:46px; margin-top:20px; padding:10px 18px; border:0; border-radius:7px;
  color:#fff; background:var(--kpgm-brand); font:700 14px/1.2 var(--kpgm-font); cursor:pointer;
}
.kpgm-password-page__submit:hover{ background:var(--kpgm-brand-2); }

/* 워드프레스 핵심 로그인 기능은 그대로 쓰고 겉모양만 KPGM에 맞춘다. */
body.login{ background:#eef3f1; font-family:var(--kpgm-font); }
body.login #login{ width:min(390px,calc(100% - 32px)); padding-top:6vh; }
body.login h1 a{
  width:100%; height:84px; margin-bottom:18px;
  background:#1b2320 url('/wp-content/uploads/2026/08/kpgm-logo.png') no-repeat center;
  background-size:auto 42px; border-radius:10px;
}
body.login .message,
body.login #login_error{ border-radius:7px; box-shadow:none; }
body.login form{
  border:1px solid var(--kpgm-line); border-radius:12px;
  box-shadow:0 10px 30px rgba(27,35,32,.09);
}
body.login .button-primary{
  min-height:40px; padding:0 20px; border-color:var(--kpgm-brand); background:var(--kpgm-brand);
}
body.login .button-primary:hover{ border-color:var(--kpgm-brand-2); background:var(--kpgm-brand-2); }
body.login #nav,
body.login #backtoblog{ text-align:center; }
body.login .kpgm-login-note{ margin-bottom:16px; line-height:1.65; }

@media(max-width:640px){
  .kpgm-password-page{ margin:28px auto; padding:22px 18px; }
  .kpgm-password-page h1{ font-size:21px; }
}

/* 원본 랜딩에 있던 문장 */
.kpgm-quote{
  margin:0 auto 46px; max-width:620px; padding:0;
  border:0; text-align:center; word-break:keep-all;
  font-family:var(--kpgm-font-serif); font-weight:400;
  font-size:16px; line-height:2; color:var(--kpgm-ink-2);
}

/* 아직 검수 안 된 번역이라는 표시 */
.kpgm-notice-draft{
  margin:0 0 24px; padding:12px 16px; border-radius:8px;
  background:#fdf7ec; border-left:4px solid #dba617;
  font-size:12.5px; line-height:1.8; color:#7a5f28; word-break:keep-all;
}

@media(max-width:900px){
  .kpgm-circles{ gap:22px; padding-bottom:24px; }
  .kpgm-circle{ width:130px; height:130px; }
  .kpgm-quote{ font-size:14.5px; margin-bottom:34px; }
}


/* ── 고정 페이지 (인사말·비전·사역 단계·섬기는 이들) v0.4.4 ── */
.kpgm-pg{ max-width:760px; margin:0 auto; padding:8px 0 40px; }
.kpgm-pg__eyebrow{ font-family:var(--kpgm-font-serif); font-style:italic; font-size:14px;
  letter-spacing:.06em; color:#8a8172; margin:0 0 10px; }
.kpgm-pg__title{ font-family:var(--kpgm-font-serif); font-size:34px; line-height:1.25;
  font-weight:700; margin:0 0 6px; }
.kpgm-pg__sub{ font-size:17px; color:#5f5a52; margin:0 0 34px; }
.kpgm-pg__h2{ font-family:var(--kpgm-font-serif); font-size:24px; font-weight:700;
  margin:34px 0 12px; }
.kpgm-pg p{ line-height:1.9; }
.kpgm-pg__list{ margin:0 0 8px; padding-left:20px; }
.kpgm-pg__list li{ line-height:2; margin-bottom:6px; }
.kpgm-pg__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px; margin:22px 0 8px; }
.kpgm-pg__card{ background:#faf8f2; border:1px solid #e7e1d5; border-radius:8px;
  padding:18px 20px; }
.kpgm-pg__card p{ margin:0 0 8px; font-size:15px; }
.kpgm-pg__card p:last-child{ margin-bottom:0; }
.kpgm-pg__quote{ border-left:2px solid #a8875c; margin:30px 0 0; padding:2px 0 2px 18px;
  font-family:var(--kpgm-font-serif); font-style:italic; font-size:17px; color:#5f5a52; }
.kpgm-pg__quote p{ margin:0; }
.kpgm-pg__quote cite{ display:block; margin-top:8px; font-size:13px; font-style:normal; }
.kpgm-pg__phase{ border-left:2px solid #e7e1d5; padding:4px 0 4px 18px; margin:0 0 22px; }
.kpgm-pg__no{ font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
  color:#a8875c; margin:0 0 4px; }
.kpgm-pg__pt{ font-size:19px; font-weight:700; margin:0 0 6px; }
@media (max-width:640px){ .kpgm-pg__title{ font-size:27px; } }

/* ══════════════════════════════════════════════════════════════════════
   v0.5.0 (2026-08-17) — 상위·하위 메뉴 시각 계층

   큰 메뉴는 아이콘과 그룹 제목, 하위 메뉴는 들여쓰기와 번호로 구분한다.
   2026-08-30: 상시 펼침으로 통일하고 접기·펼치기 화살표를 제거했다.
   외부 아이콘 파일이나 글꼴을 쓰지 않아 느려지거나 깨질 부분이 없다.
   ══════════════════════════════════════════════════════════════════════ */
.kpgm-grp{
  position:relative;
  border-bottom:1px solid #edf1ef;
  background:#fff;
}

.kpgm-grp__btn,
.kpgm-grp__btn:hover,
.kpgm-grp__btn:focus,
.kpgm-grp__btn:active{
  min-height:var(--kpgm-menu-group-height);
  padding:var(--kpgm-menu-group-padding);
  gap:8px;
  font-size:14px;
  line-height:1.35;
  font-weight:400;
  font-synthesis:none;
  letter-spacing:normal;
  color:#25302b !important;
  background:#fff !important;
  border:0 !important;
  border-left:3px solid transparent !important;
  box-shadow:none !important;
  text-decoration:none;
  transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}

/* 상위 메뉴 공통 아이콘: 큰 타일 대신 여백이 적은 선형 표식 */
.kpgm-grp__btn::before{
  content:"";
  flex:0 0 24px;
  width:24px;
  height:24px;
  border:0;
  border-radius:6px;
  background-color:#edf6f2;
  background-position:center;
  background-repeat:no-repeat;
  background-size:16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%231f5c46' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 2.75h5.1l3.15 3.15v9.35H5z'/%3E%3Cpath d='M10 2.75V6h3.25M7.2 9h3.9M7.2 11.8h3.9'/%3E%3C/svg%3E");
}
.kpgm-grp.has-sub > .kpgm-grp__btn::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%231f5c46' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.4 4.1c2.45-.55 4.45.05 6.6 1.5v9.1c-2.15-1.45-4.15-2.05-6.6-1.5z'/%3E%3Cpath d='M15.6 4.1c-2.45-.55-4.45.05-6.6 1.5v9.1c2.15-1.45 4.15-2.05 6.6-1.5zM9 5.6v9.1'/%3E%3C/svg%3E");
}

.kpgm-grp__btn:hover{
  color:var(--kpgm-brand) !important;
  background:#f5f9f7 !important;
}
.kpgm-grp__btn:hover::before{
  background-color:#e2f0ea;
  border-color:#c7dfd4;
}

/* 펼침 상태와 무관하게 현재 위치만 강조한다. */
.kpgm-grp.current-menu-item > .kpgm-grp__btn,
.kpgm-grp.current-menu-ancestor > .kpgm-grp__btn{
  color:var(--kpgm-brand) !important;
  background:linear-gradient(90deg,#e8f3ee 0%,#f7fbf9 100%) !important;
  border-left-color:var(--kpgm-brand) !important;
}

/* 하위 메뉴: 작은 원·세로선 대신 각 묶음마다 1부터 시작하는 번호 */
/* KPGM_PROTECTED_CONTRACT_MENU_EXPANDED_START */
:root{
  --kpgm-menu-group-height:36px;
  --kpgm-menu-group-padding:6px 12px;
  --kpgm-menu-row-height:28px;
  --kpgm-menu-row-padding:4px 8px;
}
.kpgm-sub{
  position:relative;
  max-height:none;
  overflow:visible;
  margin:0 8px 6px;
  padding:2px 0;
  border:1px solid #e5ece8;
  border-radius:6px;
  background:#f5f8f6;
  opacity:1;
  pointer-events:auto;
  transition:none;
}
/* KPGM_PROTECTED_CONTRACT_MENU_EXPANDED_END */
.kpgm-sub li{ position:relative; }
/* 공통 메뉴 규칙이 kpgm-layout의 범용 링크 여백보다 우선한다. */
.kpgm-side .kpgm-sub a{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:7px;
  box-sizing:border-box;
  min-height:var(--kpgm-menu-row-height);
  margin:0 3px;
  padding:var(--kpgm-menu-row-padding) !important;
  border:0 !important;
  border-radius:7px;
  font-size:13px;
  line-height:1.45;
  font-weight:500;
  color:#53615b;
  background:transparent;
  text-decoration:none;
}
.kpgm-sub__no{
  flex:0 0 18px;
  width:18px;
  padding-top:1px;
  color:#809087;
  font-size:11px;
  line-height:1.55;
  font-weight:750;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.kpgm-sub__label{
  min-width:0;
  flex:1 1 auto;
}
.kpgm-sub a:hover{
  color:var(--kpgm-brand);
  background:#e8f1ed;
}
.kpgm-sub a:hover .kpgm-sub__no{ color:var(--kpgm-brand); }
.kpgm-sub li.current-menu-item > a{
  color:var(--kpgm-brand);
  background:#dfeee7;
  font-weight:700;
}
.kpgm-sub li.current-menu-item > a .kpgm-sub__no{ color:var(--kpgm-brand); }

/* 키보드 이용자에게도 현재 초점이 또렷하게 보이게 */
.kpgm-grp__btn:focus-visible,
.kpgm-sub a:focus-visible{
  outline:3px solid rgba(31,92,70,.28);
  outline-offset:-3px;
}
.kpgm-burger:focus-visible{
  outline:3px solid rgba(31,92,70,.32);
  outline-offset:2px;
}

@media(max-width:900px){
  :root{
    --kpgm-menu-group-height:40px;
    --kpgm-menu-group-padding:8px 12px;
    --kpgm-menu-row-height:38px;
    --kpgm-menu-row-padding:8px;
  }
}

@media(prefers-reduced-motion:reduce){
  .kpgm-grp__btn,
  .kpgm-sub{ transition:none !important; }
}

/* ══════════════════════════════════════════════════════════════════════
   버튼 시인성 공통 보정 (2026-08-23)
   일반·호버·키보드 포커스에서 글자/아이콘이 배경에 묻히지 않게 한다.
   ══════════════════════════════════════════════════════════════════════ */
body.kpgm-app:not(.kpgm-ui-v2) :is(
  button:not(.kpgm-grp__btn):not(.kpgm-lang-btn),
  input[type="submit"], input[type="button"], input[type="reset"],
  a.button, a.btn, .kpgm-button, .kpgmb-board__write,
  [class$="__button"]:not(.kpgm-grp__btn),
  [class$="__btn"]:not(.kpgm-grp__btn)
):not(.mce-btn):not(.tox-tbtn){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#1f664e !important;
  border-color:#174b3a !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
  filter:none !important;
}

body.kpgm-app:not(.kpgm-ui-v2) :is(
  button:not(.kpgm-grp__btn):not(.kpgm-lang-btn),
  input[type="submit"], input[type="button"], input[type="reset"],
  a.button, a.btn, .kpgm-button, .kpgmb-board__write,
  [class$="__button"]:not(.kpgm-grp__btn),
  [class$="__btn"]:not(.kpgm-grp__btn)
):not(.mce-btn):not(.tox-tbtn):hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#153f32 !important;
  border-color:#0f3026 !important;
  opacity:1 !important;
}

body.kpgm-app:not(.kpgm-ui-v2) :is(
  button, input[type="submit"], input[type="button"], input[type="reset"],
  a.button, a.btn, .kpgm-button, .kpgmb-board__write,
  [class$="__button"], [class$="__btn"]
):focus-visible{
  outline:3px solid #f0b429 !important;
  outline-offset:2px !important;
  opacity:1 !important;
}

body.kpgm-app:not(.kpgm-ui-v2) :is(button, input[type="submit"], input[type="button"], input[type="reset"]):disabled,
body.kpgm-app:not(.kpgm-ui-v2) :is(button, input[type="submit"], input[type="button"], input[type="reset"])[aria-disabled="true"]{
  color:#42564d !important;
  -webkit-text-fill-color:#42564d !important;
  background-color:#e1e9e5 !important;
  border-color:#a8bbb2 !important;
  opacity:1 !important;
}

/* 밝은 배경의 메뉴·언어·편집기 도구는 진한 글자로 유지한다. */
body.kpgm-app:not(.kpgm-ui-v2) :is(.kpgm-grp__btn,.kpgm-lang-btn,.mce-btn button,.tox-tbtn,.wp-switch-editor){
  color:#174b3a !important;
  -webkit-text-fill-color:#174b3a !important;
  opacity:1 !important;
}
body.kpgm-app:not(.kpgm-ui-v2) :is(.kpgm-grp__btn,.kpgm-lang-btn,.wp-switch-editor):hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#1f664e !important;
  opacity:1 !important;
}


/* 활성 언어·페이지 버튼 글자 대비 보정 (2026-08-23) */
body.kpgm-app:not(.kpgm-ui-v2) .kpgm-langs__i{
  color:#174b3a !important;
  -webkit-text-fill-color:#174b3a !important;
  opacity:1 !important;
}
body.kpgm-app:not(.kpgm-ui-v2) .kpgm-langs__i.is-on,
body.kpgm-app:not(.kpgm-ui-v2) .kpgm-langs__i.is-on:hover,
body.kpgm-app:not(.kpgm-ui-v2) .page-numbers.current,
body.kpgm-app:not(.kpgm-ui-v2) .page-numbers.current:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#1f664e !important;
  border-color:#174b3a !important;
  opacity:1 !important;
}
body.kpgm-app:not(.kpgm-ui-v2) a.page-numbers{
  color:#174b3a !important;
  -webkit-text-fill-color:#174b3a !important;
  opacity:1 !important;
}
body.kpgm-app:not(.kpgm-ui-v2) a.page-numbers:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#1f664e !important;
}


/* 새 글 제목도 일반 글과 같은 형식으로 표시 (2026-08-23) */
body.kpgm-app .kpgmb-row.is-new .kpgmb-row__title{
  font-weight:400 !important;
}
body.kpgm-app .kpgmb-row.is-new .kpgmb-row__title::before{
  content:none !important;
  display:none !important;
}


/* 왼쪽 큰 메뉴 글자 대비 최종 보정 (2026-08-23) */
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn{
  color:#174b3a !important;
  -webkit-text-fill-color:#174b3a !important;
  background:#fff !important;
  border-color:transparent !important;
  opacity:1 !important;
}
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn:hover,
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp.current-menu-item > .kpgm-grp__btn{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#1f664e !important;
  border-color:#174b3a !important;
  opacity:1 !important;
}


/* 왼쪽 큰 메뉴 배경 통일 (2026-08-23) */
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp,
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp.kpgmb-un,
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp.kpgmb-un-2{
  background:#fff !important;
}
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn{
  color:#174b3a !important;
  -webkit-text-fill-color:#174b3a !important;
  background:#fff !important;
}
html body.kpgm-app:not(.kpgm-ui-v2) #kpgm-side-nav .kpgm-sub{
  background:#fff !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-grp.current-menu-ancestor{
  background:#f3f8f5 !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-grp.current-menu-ancestor > .kpgm-sub{
  background:#f3f8f5 !important;
}


/* 제목 전용 화면에서도 하위 메뉴 링크가 항상 클릭되도록 한다. */
html body.kpgm-app #kpgm-side-nav{
  position:fixed !important;
  z-index:10050 !important;
  pointer-events:auto !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-sub,
html body.kpgm-app #kpgm-side-nav .kpgm-sub li,
html body.kpgm-app #kpgm-side-nav .kpgm-sub a{
  position:relative !important;
  z-index:10051 !important;
  pointer-events:auto !important;
}


/* 시스템 언어 번역 제목을 먼저, 원문 제목을 함께 표시한다. */
body.kpgm-app .kpgmb-title-pair{
  display:flex !important;
  flex-direction:column !important;
  gap:2px !important;
}
body.kpgm-app .kpgmb-title-pair__translation{
  order:-1 !important;
  font-weight:600 !important;
  color:#174b3a !important;
}
body.kpgm-app .kpgmb-title-pair__source{
  order:0 !important;
}
body.kpgm-app .kpgmb-title-pair:has(.kpgmb-title-pair__translation) .kpgmb-title-pair__source{
  font-size:.88em !important;
  font-weight:400 !important;
  opacity:.78 !important;
}


/* 원작 제목을 첫 줄에 굵게, 시스템 언어 번역을 둘째 줄에 작게 표시한다. */
html body.kpgm-app .kpgmb-title-pair__source{
  order:0 !important;
  font-size:1em !important;
  font-weight:600 !important;
  color:#174b3a !important;0.5.11
	0.5.12
  opacity:1 !important;
}
html body.kpgm-app .kpgmb-title-pair__translation{
  order:1 !important;
  font-size:.88em !important;
  font-weight:400 !important;
  color:#416b5c !important;
  opacity:.82 !important;
}
html body.kpgm-app .kpgmb-title-pair:has(.kpgmb-title-pair__translation) .kpgmb-title-pair__source{
  font-size:1em !important;
  font-weight:600 !important;
  opacity:1 !important;
}

/* 개별 게시글에서도 번역 제목은 원작보다 작고 얇게 표시한다. */
html body.kpgm-app .kpgmb-title-pair--single .kpgmb-title-pair__translation{
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.35 !important;
}

html body.kpgm-app .kpgmb-title-pair--detail .kpgmb-title-pair__translation{font-size:14px !important;font-weight:400 !important;line-height:1.35 !important;}

/* 돌아가기 버튼은 마우스를 올려도 글자가 선명하게 보이도록 한다. */
html body.kpgm-app main article.kpgm_post .kpgmb-top-back a.kpgmb-foot__back:hover,
html body.kpgm-app main article.kpgm_post .kpgmb-top-back a.kpgmb-foot__back:focus,
html body.kpgm-app main article.kpgm_post .kpgmb-foot__go a.kpgmb-foot__back:hover,
html body.kpgm-app main article.kpgm_post .kpgmb-foot__go a.kpgmb-foot__back:focus{
 background:#1f654f !important;
 color:#ffffff !important;
 -webkit-text-fill-color:#ffffff !important;
 opacity:1 !important;
 text-shadow:none !important;
}

/* 게시글 본문은 색상을 따로 지정하지 않으면 검정색으로 표시한다. */
html body.kpgm-app main article.kpgm_post .kpgmb-reader__body,
html body.kpgm-app main article.kpgm_post .kpgm-post-html,
html body.kpgm-app main article.kpgm_post .entry-content .kpgmb-reader__body{
 color:#000000 !important;
 -webkit-text-fill-color:#000000;
}
html body.kpgm-app main article.kpgm_post .kpgmb-reader__body :where(p,div,h1,h2,h3,h4,h5,h6,li,blockquote,span,strong,em,b,i,u):not([style*="color"]),
html body.kpgm-app main article.kpgm_post .kpgm-post-html :where(p,div,h1,h2,h3,h4,h5,h6,li,blockquote,span,strong,em,b,i,u):not([style*="color"]){
 color:inherit !important;
 -webkit-text-fill-color:currentColor;
}

/* 게시된 본문의 최종 기본 글자색은 검정색으로 통일한다. */
html body.kpgm-app #content main article.kpgm_post .entry-content .kpgmb-reader__body,
html body.kpgm-app #content main article.kpgm_post .entry-content .kpgmb-reader__body *,
html body.kpgm-app #content main article.kpgm_post .entry-content .kpgm-post-html,
html body.kpgm-app #content main article.kpgm_post .entry-content .kpgm-post-html *{
 color:#000000 !important;
 -webkit-text-fill-color:#000000 !important;
}

/* 게시글 2277의 1번 문장을 나머지 문장과 같은 서체·굵기로 표시한다. */
html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type,
html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type strong,
html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type span{
 font-family:var(--kpgm-font-sans) !important;
 font-weight:600 !important;
 font-synthesis:none !important;
}

html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type,
html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type strong,
html body.kpgm-app main article.post-2277 .kpgmb-reader__body > div > h3:first-of-type span{font-weight:700 !important;}


/* 상위 메뉴 폴더 제목 화면: 빈 화면의 중앙에 균형 있게 배치 */
html body.kpgm-app .kpgm-menu-title-panel {
  box-sizing: border-box;
  width: 100%;
  min-height: clamp(360px, calc(100vh - 150px), 720px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 40px;
  text-align: center;
}
html body.kpgm-app .kpgm-menu-title-panel > h1 {
  width: 100%;
  max-width: 1100px;
  margin: 0 !important;
  text-align: center !important;
  line-height: 1.25;
}
@media (max-width: 700px) {
  html body.kpgm-app .kpgm-menu-title-panel {
    min-height: 360px;
    padding: 44px 22px;
  }
}


/* KPGM button hover visibility */
html body.kpgm-app:not(.kpgm-ui-v2) :is(button,.button,.ast-button,.wp-element-button,.kpgm-account__btn,.kpgmb-btn,.kpgmb-button,.kpgmb-translation-back a,.kpgmb-translation-edit a,input[type="button"],input[type="submit"],input[type="reset"]):is(:hover,:focus,:focus-visible),
html body.kpgm-app:not(.kpgm-ui-v2) :is(button,.button,.ast-button,.wp-element-button,.kpgm-account__btn,.kpgmb-btn,.kpgmb-button,.kpgmb-translation-back a,.kpgmb-translation-edit a,input[type="button"],input[type="submit"],input[type="reset"]):is(:hover,:focus,:focus-visible) * {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background-color:#1f684f!important;
  border-color:#1f684f!important;
  opacity:1!important;
  visibility:visible!important;
}


/* ══════════════════════════════════════════════════════════════════════
   v0.5.12 (2026-08-26) — 색상·대비만 보정
   글꼴·크기·굵기·자간·행간·여백·배치는 변경하지 않는다.
   ══════════════════════════════════════════════════════════════════════ */

/* 공통 보조 버튼: 흰 바탕과 진한 글자, hover는 옅은 중립 회색. */
html body.kpgm-app:not(.kpgm-ui-v2) #page :is(
  button:not(.kpgm-grp__btn):not(.kpgm-lang-btn):not(.kpgmb-reader__language),
  input[type="submit"], input[type="button"], input[type="reset"],
  a.button, a.btn, .kpgm-button,
  [class$="__button"]:not(.kpgm-grp__btn),
  [class$="__btn"]:not(.kpgm-grp__btn)
):not(.mce-btn):not(.tox-tbtn):not(.wp-switch-editor){
  color:#25312c !important;
  -webkit-text-fill-color:#25312c !important;
  background-color:#fff !important;
  border-color:#aeb9b4 !important;
}
html body.kpgm-app:not(.kpgm-ui-v2) #page :is(
  button:not(.kpgm-grp__btn):not(.kpgm-lang-btn):not(.kpgmb-reader__language),
  input[type="submit"], input[type="button"], input[type="reset"],
  a.button, a.btn, .kpgm-button,
  [class$="__button"]:not(.kpgm-grp__btn),
  [class$="__btn"]:not(.kpgm-grp__btn)
):not(.mce-btn):not(.tox-tbtn):not(.wp-switch-editor):hover{
  color:#18201d !important;
  -webkit-text-fill-color:#18201d !important;
  background-color:#eef2f0 !important;
  border-color:#7f8d86 !important;
}

/* 게시·저장처럼 결과를 확정하는 주 실행만 브랜드 초록을 유지한다. */
html body.kpgm-app:not(.kpgm-ui-v2) #page :is(
  .kpgmb-board__write,
  .kpgmb-write__save,
  .button-primary,
  .kpgm-lp__btn:not(.kpgm-lp__btn--ghost)
){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#1f5c46 !important;
  border-color:#174b3a !important;
}
html body.kpgm-app:not(.kpgm-ui-v2) #page :is(
  .kpgmb-board__write,
  .kpgmb-write__save,
  .button-primary,
  .kpgm-lp__btn:not(.kpgm-lp__btn--ghost)
):hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#174b3a !important;
  border-color:#123a2d !important;
}

/* 좌측 KO·EN·TL과 계정 버튼. */
html body.kpgm-app #kpgm-side-nav .kpgm-langs__i{
  color:#46524d !important;
  -webkit-text-fill-color:#46524d !important;
  background-color:#fff !important;
  border-color:#cbd3cf !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-langs__i:hover{
  color:#202925 !important;
  -webkit-text-fill-color:#202925 !important;
  background-color:#eef1f0 !important;
  border-color:#89968f !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-langs__i.is-on,
html body.kpgm-app #kpgm-side-nav .kpgm-langs__i.is-on:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#2d3632 !important;
  border-color:#2d3632 !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-account__btn--out,
html body.kpgm-app #kpgm-side-nav .kpgm-account__btn--out:visited{
  color:#8b2f2f !important;
  -webkit-text-fill-color:#8b2f2f !important;
  background-color:#fffafa !important;
  border-color:#d9baba !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-account__btn--out:hover{
  color:#6d1f1f !important;
  -webkit-text-fill-color:#6d1f1f !important;
  background-color:#fbeeee !important;
  border-color:#bd8585 !important;
}

/* 상위·하위 메뉴는 흰 글자 반전 대신 진한 글자와 옅은 중립 배경. */
html body.kpgm-app #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn{
  color:#25312c !important;
  -webkit-text-fill-color:#25312c !important;
  background-color:#fff !important;
  border-color:transparent !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn:hover{
  color:#18201d !important;
  -webkit-text-fill-color:#18201d !important;
  background-color:#eef2f0 !important;
  border-left-color:#87948e !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-grp.current-menu-item > .kpgm-grp__btn,
html body.kpgm-app #kpgm-side-nav .kpgm-grp.current-menu-ancestor > .kpgm-grp__btn{
  color:#1f2925 !important;
  -webkit-text-fill-color:#1f2925 !important;
  background-color:#e7ece9 !important;
  border-left-color:#60716a !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-sub a:hover{
  color:#202a25 !important;
  -webkit-text-fill-color:#202a25 !important;
  background-color:#e7ece9 !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-sub li.current-menu-item > a{
  color:#17201c !important;
  -webkit-text-fill-color:#17201c !important;
  background-color:#dfe6e2 !important;
  border-left-color:#60716a !important;
}

/* 새 글 수: 원형을 투명하게 만들어 검은 숫자만 남긴다. */
html body.kpgm-app #kpgm-side-nav .kpgmb-un > a::after,
html body.kpgm-app #kpgm-side-nav .kpgmb-un > .kpgm-grp__btn::after{
  color:#111 !important;
  -webkit-text-fill-color:#111 !important;
  background-color:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}

/* 번역 언어: 표시 중은 파랑, 번역 만들기는 호박색, 나머지는 중립. */
html body.kpgm-app #page .kpgmb-reader__language{
  color:#26322d !important;
  -webkit-text-fill-color:#26322d !important;
  background-color:#fff !important;
  border-color:#aeb9b4 !important;
}
html body.kpgm-app #page .kpgmb-reader__language:hover:not(:disabled){
  color:#1d2923 !important;
  -webkit-text-fill-color:#1d2923 !important;
  background-color:#f0f3f2 !important;
  border-color:#74827b !important;
}
html body.kpgm-app #page .kpgmb-reader__language.is-selected,
html body.kpgm-app #page .kpgmb-reader__language.is-selected:hover{
  color:#203a55 !important;
  -webkit-text-fill-color:#203a55 !important;
  background-color:#eaf2fb !important;
  border-color:#5b7fa6 !important;
}
html body.kpgm-app #page .kpgmb-reader__language.is-creatable,
html body.kpgm-app #page .kpgmb-reader__language.is-creatable:hover{
  color:#65480e !important;
  -webkit-text-fill-color:#65480e !important;
  background-color:#fff9eb !important;
  border-color:#c79635 !important;
}
html body.kpgm-app #page .kpgmb-reader__language.is-creatable:hover{
  background-color:#fff2d2 !important;
  border-color:#9e6d0e !important;
}
html body.kpgm-app #page .kpgmb-reader__language .kpgmb-reader__lamp{
  color:#315f8f !important;
  background-color:#315f8f !important;
  border-color:#315f8f !important;
}
html body.kpgm-app #page .kpgmb-reader__language.is-creatable .kpgmb-reader__lamp{
  color:#9e6d0e !important;
  background-color:#e5a62c !important;
  border-color:#9e6d0e !important;
}
html body.kpgm-app #page .kpgmb-reader__language .kpgmb-reader__origin{
  color:#30445a !important;
  -webkit-text-fill-color:#30445a !important;
  background-color:rgba(255,255,255,.72) !important;
}

/* 게시판 목록과 보조 이동·편집·쪽 번호. */
html body.kpgm-app #page .kpgmb-row:hover,
html body.kpgm-app #page .kpgmb-row.is-top:hover{
  background-color:#f2f4f3 !important;
}
html body.kpgm-app #page .kpgmb-row:hover .kpgmb-row__title{
  color:#18201d !important;
  -webkit-text-fill-color:#18201d !important;
}
html body.kpgm-app #page a.page-numbers:hover{
  color:#1e2823 !important;
  -webkit-text-fill-color:#1e2823 !important;
  background-color:#e9edeb !important;
  border-color:#aeb9b4 !important;
}
html body.kpgm-app #page .page-numbers.current,
html body.kpgm-app #page .page-numbers.current:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:#2d3632 !important;
  border-color:#2d3632 !important;
}
html body.kpgm-app #page main article.kpgm_post :is(.kpgmb-top-back,.kpgmb-topback,.kpgmb-foot__go) a.kpgmb-foot__back,
html body.kpgm-app #page main article.kpgm_post :is(.kpgmb-top-back,.kpgmb-topback,.kpgmb-foot__go) a.kpgmb-foot__back:hover,
html body.kpgm-app #page main article.kpgm_post :is(.kpgmb-top-back,.kpgmb-topback,.kpgmb-foot__go) a.kpgmb-foot__back:focus{
  color:#25312c !important;
  -webkit-text-fill-color:#25312c !important;
  background-color:#fff !important;
  border-color:#98a49e !important;
}
html body.kpgm-app #page main article.kpgm_post :is(.kpgmb-top-back,.kpgmb-topback,.kpgmb-foot__go) a.kpgmb-foot__back:hover{
  background-color:#edf1ef !important;
  border-color:#697871 !important;
}
html body.kpgm-app #page .kpgmb-foot__edit,
html body.kpgm-app #page .kpgmb-foot__edit:hover{
  color:#26322d !important;
  -webkit-text-fill-color:#26322d !important;
  background-color:#f7f8f7 !important;
  border-color:#aeb9b4 !important;
}
html body.kpgm-app #page .kpgmb-foot__edit:hover{
  background-color:#e9edeb !important;
  border-color:#74827b !important;
}

html body.kpgm-app :is(
  button, a.button, a.btn, .kpgm-button, .kpgmb-board__write,
  input[type="submit"], input[type="button"], input[type="reset"],
  .kpgm-langs__i, .kpgm-account__btn, .kpgm-grp__btn, .kpgm-sub a,
  .kpgmb-reader__language, .kpgmb-foot__back, .kpgmb-foot__edit, .page-numbers
):focus-visible{
  outline-color:#2463a6 !important;
}


/* ══════════════════════════════════════════════════════════════════════
   v0.5.13 (2026-08-26) — 좌측 메뉴 타이포그래피 단일 규칙

   기존/최근/향후 메뉴를 나누지 않는다. 모든 상위 메뉴는 한 규칙,
   모든 하위 메뉴는 한 규칙을 상속한다. 메뉴 ID·slug·개별 클래스 예외 금지.
   ══════════════════════════════════════════════════════════════════════ */
html body.kpgm-app #kpgm-side-nav .kpgm-grp > .kpgm-grp__btn{
  font-family:'고양덕양 B',sans-serif !important;
  font-size:14px !important;
  font-weight:400 !important;
  font-synthesis:none !important;
  line-height:1.4 !important;
  letter-spacing:normal !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-sub a,
html body.kpgm-app #kpgm-side-nav .kpgm-sub__label{
  font-family:'고양덕양 B',sans-serif !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:1.45 !important;
  letter-spacing:normal !important;
}
html body.kpgm-app #kpgm-side-nav .kpgm-sub__no{
  font-family:'고양덕양 B',sans-serif !important;
}
