/* ═══════════════════════════════════════════════════════════
   default 레이아웃 스킨 — 참고 디자인 재현 (헤더·GNB·푸터 크롬).
   - 디자인 토큰(@import) 보존 (기존 그대로)
   - 크롬 전용 수치는 --skin-* 지역 변수로 분리, 전역 토큰 오염 없음
   - 원본 CSS 참조 불가로 디자인 명세 수치를 직접 적용
   ═══════════════════════════════════════════════════════════ */

/* ── 디자인 토큰 (반드시 다른 규칙보다 먼저) ─────────────────── */
@import url("./tokens/colors.css");
@import url("./tokens/typography.css");
@import url("./tokens/spacing.css");
@import url("./tokens/radius.css");
@import url("./tokens/shadows.css");
@import url("./tokens/motion.css");

/*
  ===========================================================
  [디자이너 가이드] nodongtalktalk 레이아웃 스킨 — style.css
  ===========================================================
  이 파일은 헤더·GNB·본문·푸터의 레이아웃 공통 디자인을 담당합니다.
  홈 화면 전용 디자인은 main/nodongtalktalk/css_images/main.css 파일에 있습니다.

  ■ 무엇을 어디서 바꾸나

  · 브랜드 색상 / 헤더·푸터 색:
      바로 아래 :root { ... } 블록의 값을 수정하세요.
      (구체적 안내는 각 변수 옆 한글 설명 참고)

  · 로고 이미지:
      css_images/images/logo.png 를 같은 파일명으로 덮어쓰세요.

  · 헤더 높이:
      --skin-header-h 값을 바꾸세요 (기본 100px).

  · 푸터 배경색·글자색:
      --skin-footer-bg, --skin-footer-text 값을 바꾸세요.

  · 콘텐츠 최대 폭:
      --skin-container 값을 바꾸세요 (기본 1400px).

  · 폰트(글꼴):
      아래 @font-face 블록의 woff2 파일을 교체하거나,
      body { font-family: ... } 부분에서 폰트 이름을 변경하세요.
      폰트 파일은 css_images/fonts/ 폴더에 있습니다.

  ■ 주의

  · 색상 변수 이름(--skin-... 형식)은 바꾸지 마세요.
    값(#224191 같은 색코드)만 수정하세요.
  · 선택자(.site-header, .gnb 등)의 이름은 HTML과 연결되므로 변경 금지.
  ===========================================================
*/
/* ── 크롬 전용 스킨 변수 (전역 토큰 미오염) ─────────────────── */
/* 👉 아래 색상 값(#...)을 수정해 브랜드 색상을 바꿀 수 있습니다. */
:root {
  /* ★★★ 사이트 주색(브랜드) ★★★
     이 한 줄이 헤더·GNB·버튼·강조 전체를 결정합니다.
     디자인 시스템(--ds-primary)도 이 값을 자동으로 따릅니다.
     사이트 브랜드 변경 = 아래 값만 수정. (스킨 구조: 같은 폴더 README.md) */
  --skin-primary:        #15527A;  /* 브랜드 블루(디자인 산출물 content.css --primary, 콘텐츠 페이지용) */
  --skin-header-accent:  #053863;  /* 헤더/GNB/메가메뉴 전용 강조색(디자인 산출물 style.css/main.css --navy 그대로) */
  --skin-accent:         #15527A;  /* 보조 블루 */
  --skin-footer-bg:      #102B3A;  /* 푸터 배경(다크 네이비) */
  --skin-footer-text:    #FFFFFF;  /* 푸터 본문 */
  --skin-footer-strong:  #FFFFFF;  /* 푸터 강조 */
  --skin-footer-privacy: #FFFFFF;  /* 개인정보처리방침 강조 */
  --skin-section-bg:     #f3f3f3;  /* 섹션 배경 */
  --skin-container:      1400px;   /* 최대폭(디자인 산출물 header-bar/page-body max-width) */
  --skin-header-h:       100px;    /* 메인헤더 높이(디자인 산출물 header-bar height) */
  --skin-gnb-fs:         20px;     /* GNB 1차 폰트(디자인 산출물 nav font-size) */
  --skin-gutter:         24px;
}

/* 👉 폰트 교체: 아래 src: url('...') 경로를 바꾸세요. */
/* ── 웹폰트: Pretendard (외부 CDN 우선 로드, 실패 시 로컬 자가호스팅 폰트로 폴백) ──────────
   src에 두 경로를 콤마로 나열하면 브라우저가 순서대로 시도하다가 첫 번째(CDN) 요청이
   실패(네트워크 차단·404 등)할 때만 다음 경로(로컬 woff2)로 자동 폴백한다 — 별도 스크립트 불필요.
   폐쇄망(인터넷 차단) 환경에서도 로컬 폰트로 정상 표시됨. */
@font-face {
  font-family: 'Pretendard';
  font-weight: 400;
  font-style: normal;
  font-display: optional; /* 폰트 로드 후 스왑 금지 → 페이지 전체 리플로우(흔들림) 제거 */
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2') format('woff2'),
       url('./fonts/Pretendard-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard';
  font-weight: 600;
  font-style: normal;
  font-display: optional; /* 폰트 로드 후 스왑 금지 → 페이지 전체 리플로우(흔들림) 제거 */
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2') format('woff2'),
       url('./fonts/Pretendard-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard';
  font-weight: 700;
  font-style: normal;
  font-display: optional; /* 폰트 로드 후 스왑 금지 → 페이지 전체 리플로우(흔들림) 제거 */
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2') format('woff2'),
       url('./fonts/Pretendard-Bold.woff2') format('woff2');
}
/* 인사말(menu-11) 서명 손글씨체(노회찬재단 배포 '노회찬체', 상업적 이용 가능) — 로컬 자가호스팅(폐쇄망 대응).
   font-display:swap이라 폰트 로드 전/실패 시에도 font-family 폴백(Pretendard)으로 즉시 보이고,
   로드되면 자연스럽게 손글씨체로 바뀐다. */
@font-face {
  font-family: 'NohHaeChan';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('./fonts/NohHaeChan.woff') format('woff');
}

/* ── 기본 리셋 ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

/* scrollbar-gutter: 짧은/긴 페이지 이동 시 스크롤바 유무로 폭이 변해
   헤더(가운데 정렬)·GNB가 좌우로 흔들리는 현상 방지 — 스크롤바 공간 항상 예약 */
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; scrollbar-gutter: stable; overflow-x: auto; }

/* PC 화면은 1600px을 기준폭으로 유지 — 그 밑으로 줄어들면(1024px까지) 축소 대신 가로 스크롤.
   1024px 이하는 아래 @media에서 해제(모바일은 완전 반응형). */
body {
  margin: 0;
  min-height: 100vh;
  min-width: 1600px;
  overflow-x: auto;
  display: flex;
  flex-direction: column;
  font-family: var(--font-sans);
  font-size:1.7rem;
  line-height: 1.5;
  letter-spacing: -0.025em;
  color: #111;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  word-break: keep-all;
}

img { max-width: 100%; }

/* button은 브라우저 기본 UI 폰트를 쓰기 때문에 body의 font-family를 상속하지 않음 — 명시적으로 지정 필요 */
button { font-family: var(--font-sans); }

a { color: var(--skin-primary); text-decoration: none; }
a:hover { color: var(--skin-accent); }

/* ── 접근성: 포커스 링(3px 고대비) — 절대 제거 금지 ──────────── */
:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}

/* ── 접근성: 본문 바로가기 ──────────────────────────────────── */
.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -64px;
  z-index: 200;
  padding: var(--space-2) var(--space-4);
  background: var(--skin-primary);
  color: #ffffff;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size:1.5rem;
  text-decoration: none;
  transition: top 0.15s ease;
}
.skip-link:focus { top: var(--space-3); color: #ffffff; }


/* 👉 헤더 디자인 구역입니다. 디자인 산출물 index.html의 header#header를 그대로 이식(유틸바 없음, sticky 아님). */
/* ════════════════════════════════════════════════════════════
   HEADER — 로고 + GNB(가운데) + 아이콘형 유틸(우측)
   ════════════════════════════════════════════════════════════ */
.site-header {
  position: relative;
  background: #ffffff;
  border-bottom: 1px solid #eee;
}
.site-header__inner {
  max-width: var(--skin-container);
  margin: 0 auto;
  padding: 0;
  height: var(--skin-header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

/* 로고 */
/* display:flex로 감싸 inline-block 기본 baseline strut(줄높이 기반 여백)을 제거 —
   그렇지 않으면 로고 이미지 아래 보이지 않는 여백이 생겨 헤더 중앙보다 위로 치우쳐 보인다. */
.site-brand-wrap { flex-shrink: 0; display: flex; align-items: center; }
.site-brand { display: inline-block; line-height: 0; }
.site-brand__logo-dynamic,
.site-brand__logo-static { height: 45px; width: auto; display: block; }

/* 우측 아이콘 유틸(로그인/검색/전체메뉴) */
.site-header__actions { display: flex; align-items: center; gap: 20px; flex: none; }
.site-header__action {
  display: flex; align-items: center; justify-content: center;
  color: #000; border: 0; background: none; padding: 0; cursor: pointer;
  transition: color .15s;
}
.site-header__action:hover { color: var(--skin-header-accent); }
.site-header__hamburger {
  display: flex; flex-direction: column; justify-content: space-between;
  width: 28px; height: 21px;
}
.site-header__hamburger span { display: block; height: 2px; background: #000; }

/* 인증 후 사람 아이콘: 신청내역/로그아웃 드롭다운(.page-breadcrumb__dropdown과 동일한 톤) */
.site-header__account { position: relative; }
/* 버튼과 드롭다운 사이 margin-top(10px) 간격은 :hover 판정에는 포함되지 않는 "빈 공간"이라
   마우스가 버튼→드롭다운으로 이동하는 도중 그 틈을 지나는 순간 hover가 끊겨 메뉴가 먼저 사라진다 —
   .site-header__account에 그 틈만큼 투명한 ::after를 깔아 hover 영역을 이어준다(요청사항). */
.site-header__account::after {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 10px;
}
.site-header__account-menu {
  display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  margin: 10px 0 0; padding: 6px; flex-direction: column; gap: 2px;
  background: #fff; border: 1px solid #e7edf7; border-radius: 10px;
  box-shadow: 0 14px 32px rgba(16,42,99,.14); z-index: 10; min-width: 96px; text-align: center;
}
/* 클릭(기존, 키보드·터치 접근성 유지) + 마우스오버 둘 다 열림 — 데스크톱은 호버로 바로 확인 가능 */
.site-header__account.is-open .site-header__account-menu,
.site-header__account:hover .site-header__account-menu { display: flex; }
.site-header__account-menu a {
  display: block; padding: 7px 10px; border-radius: 8px; font-size:1.4rem; font-weight: 600;
  color: #444; text-decoration: none; white-space: nowrap;
}
.site-header__account-menu a:hover { background: #f5f8fc; color: var(--skin-primary); }
/* 마이페이지 드롭다운 인사말("OOO님 반갑습니다.") — 링크가 아닌 안내 텍스트라 클릭 불가 표시(hover 배경 없음),
   기본 드롭다운(min-width:96px)보다 문장이 길어 이 드롭다운만 폭을 넓히고, 마이페이지 링크와 동일하게 중앙 정렬 */
.site-header__account-menu--mypage { min-width: 170px; text-align: center; }
/* 인사말은 안내 전용이라 아래 "마이페이지" 링크와 구분되도록 배경을 깔아 카드 형태로 분리(border-radius는
   상위 드롭다운(10px)에서 padding(6px)만큼 안쪽으로 맞춘 8px) */
.site-header__account-greeting {
  margin: -6px -6px 6px; padding: 15px; background: #f5f8fc; border-radius: 8px 8px 0 0;
  font-size:1.5rem; font-weight: 600; color: #444; white-space: nowrap;
}

/* 👉 GNB(상단 내비게이션) — 디자인 산출물의 nav(5열 grid, 가운데)+메가메뉴를 이식.
   메뉴 항목 자체(문구·개수)는 CMS 메뉴관리(menus.json)에서 변경합니다. */
/* ════════════════════════════════════════════════════════════
   GNB — 5열 그리드 내비 + 전체컬럼 동시노출 메가패널
   마크업(공유 프래그먼트, 고정): nav.gnb > ul > li > (a|span) + ul(2차) > li > (a|span)

   디자인 산출물은 <nav>(1차메뉴)와 형제 .mega-panel(전체 5컬럼 동시노출)이 분리되어 있으나,
   GNB는 공유 프래그먼트라 구조를 바꿀 수 없다. 대신 각 li의 2차 ul을 "그 컬럼"으로 삼고,
   JS로 최상위 li 중 하나라도 hover/focus 되면 .gnb에 gnb--open을 부여해 모든 컬럼(모든 li>ul)을
   동시에 노출한다 — 디자인의 "전체 컬럼 동시노출" 동작을 그대로 재현.
   ════════════════════════════════════════════════════════════ */
.gnb { position: relative; height: 100%; }
.gnb ul { list-style: none; margin: 0; padding: 0; }

/* 1차 메뉴: 5열 그리드, 가운데 정렬(디자인 산출물 nav style 그대로) */
.gnb > ul {
  display: flex;
  align-items: center;
  margin-right: auto;
  width: 910px;
  height: 100%;
  font-weight: 700;
  font-size:var(--skin-gnb-fs);
  color: #000;
}
.gnb > ul > li { position: relative; height: 100%; flex: 1 1 0; min-width: 0; display: flex; align-items: stretch; justify-content: center; }

.gnb > ul > li > a,
.gnb > ul > li > span {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  color: inherit;
  text-decoration: none;
}
.gnb > ul > li:hover > a,
.gnb > ul > li:hover > span,
.gnb > ul > li.active > a,
.gnb > ul > li.active > span {
  color: var(--skin-header-accent) !important;
  border-bottom-color: var(--skin-header-accent);
}

/* 메가패널 배경(전체 폭, 헤더 바로 아래 엣지투엣지 — 디자인의 .mega-panel)
   .gnb는 로고·우측 아이콘과 나란한 flex 레이아웃 안에 있어 뷰포트 정중앙이 아니므로
   .gnb 기준으로 만들지 않는다 — .site-header는 헤더 전체 폭(엣지투엣지)을 그대로 차지하므로
   여기 붙이면 별도 100vw 트릭 없이 left:0/right:0로 정확히 맞는다.
   position은 fixed가 아니라 absolute — fixed였을 때는 뷰포트 기준으로 붙박이여서 헤더가
   있는 .site-header(position:relative, 스크롤에 따라 페이지와 함께 흘러감)를 스크롤해서
   지나가도 이 배경만 화면에 그대로 남아 떠다니는 문제가 있었다. absolute + .site-header를
   기준 삼으면 헤더와 함께 정상적으로 스크롤되어 사라진다. */
.site-header::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: var(--mega-h, 236px);
  background: #ffffff;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
  box-shadow: 0 24px 48px rgba(16,42,99,.1);
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease;
  z-index: 54;
}
.site-header:has(.gnb.gnb--open)::after {
  opacity: 1;
}

/* 2차 메뉴(컬럼): 각 li 기준으로 절대배치 → 5열 그리드 자리에 그대로 정렬됨 */
.gnb > ul > li > ul {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 182px; /* 910px / 5열 */
  padding: 50px 14px 68px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .15s ease, background .15s ease;
  z-index: 55;
}
.gnb.gnb--open > ul > li > ul { opacity: 1; visibility: visible; }

/* 컬럼 선택 표시(하이라이트): 각 컬럼(li)의 실제 항목 수와 무관하게
   메가패널 흰 배경 전체 높이(--mega-h)를 덮도록 li 기준 별도 박스로 렌더링.
   ul(li의 자식) 배경으로는 그 컬럼 내용의 자연 높이만큼만 칠해져
   컬럼마다 항목 개수가 다르면 흰 여백이 남는 문제가 있었음. */
.gnb > ul > li::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 182px; /* 910px / 5열 — 2차 ul과 동일 폭 */
  height: var(--mega-h, 236px);
  background: transparent;
  pointer-events: none;
  z-index: 55; /* 2차 ul과 동일 — 생성 순서상 ul보다 먼저 그려져 텍스트 아래에 위치 */
}
/* gnb--open 스코프 필수: 스크롤 시 JS가 gnb--open만 즉시 제거해도(closeMenu) 마우스는
   물리적으로 움직이지 않아 :hover는 그대로 남는 경우가 있다(스크롤은 hover 재계산을 보장하지 않음).
   순수 :hover에만 걸면 메뉴 텍스트(visibility)는 사라졌는데 이 강조 배경만 남아 뜨는 버그가 생긴다. */
.gnb.gnb--open > ul > li:hover::before,
.gnb.gnb--open > ul > li:focus-within::before {
  background: color-mix(in srgb, var(--skin-header-accent) 4%, #fff);
}

.gnb > ul > li > ul > li > a,
.gnb > ul > li > ul > li > span {
  display: block;
  width: 100%;
  font-size:1.7rem;
  font-weight: 500;
  color: #000;
  text-align: center;
  text-decoration: none;
}
.gnb > ul > li > ul > li > a:hover,
.gnb > ul > li > ul > li > span:hover { color: var(--skin-primary); }

/* 메가패널 오픈 시 배경 딤(디자인의 .mega-overlay) */
.mega-overlay {
  position: fixed; left: 0; right: 0; top: var(--skin-header-h); bottom: 0;
  background: rgba(0,0,0,.55); opacity: 0; pointer-events: none;
  transition: opacity .2s ease; z-index: 40;
}
.site-header:has(.gnb.gnb--open) + .mega-overlay { opacity: 1; }

/* ════════════════════════════════════════════════════════════
   검색 오버레이(디자인 산출물 .search-backdrop/.search-panel 그대로)
   ════════════════════════════════════════════════════════════ */
.search-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 150; }
.search-backdrop.open { display: block; }
.search-panel {
  display: none; position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: #fff; padding: 24px 24px 60px; box-shadow: 0 10px 30px rgba(0,0,0,.15);
}
.search-panel.open { display: block; }
.search-panel__close { position: absolute; top: 24px; right: 24px; border: 0; background: none; cursor: pointer; padding: 8px; color: #000; }
.search-panel__form { max-width: 1100px; margin: 56px auto 0; position: relative; }
.search-panel__form input {
  width: 100%; height: 64px; padding: 0 60px 0 24px; border: 1.5px solid #ddd; border-radius: 12px;
  font-size:2rem; box-sizing: border-box; font-family: inherit;
}
.search-panel__form input::placeholder { color: #999; }
.search-panel__form button[type="submit"] {
  position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
  border: 0; background: none; cursor: pointer; color: #000; padding: 0; display: flex;
}

/* ════════════════════════════════════════════════════════════
   모바일 전체메뉴 드로어(디자인 산출물 .drawer-backdrop/.mega-panel.drawer-open 이식)
   ════════════════════════════════════════════════════════════ */
.drawer-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 250; }
.drawer-backdrop.open { display: block; }
.nav-drawer {
  display: none; position: fixed; top: 0; right: 0; bottom: 0; width: auto; min-width: 320px; max-width: 88vw;
  height: 100vh; background: #fff; box-shadow: -10px 0 30px rgba(0,0,0,.18);
  z-index: 260; overflow-y: auto;
}
/* flex-direction:column — 메뉴 항목이 적어 박스 높이를 다 못 채워도 .nav-drawer__foot(마이페이지·로그아웃)이
   "알림" 바로 아래가 아니라 박스 구조 맨 밑에 고정되도록(요청사항). 내용이 넘칠 땐 기존처럼 overflow-y:auto로 스크롤. */
.nav-drawer.is-open { display: flex; flex-direction: column; }
.nav-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--skin-header-accent); padding: 20px 24px;
}
.nav-drawer__head span { color: #fff; font-weight: 700; font-size:1.8rem; }
.nav-drawer__auth-links { display: flex; align-items: center; gap: 20px; }
.nav-drawer__head .nav-drawer__login { color: #fff; font-weight: 700; font-size:1.8rem; text-decoration: none; }
/* 로그인 상태: 헤드(원래 로그아웃 자리)에는 "OOO님"만 노출 — 실제 로그아웃·마이페이지 링크는
   .nav-drawer__foot(맨 아래)로 이동(요청사항) */
.nav-drawer__greeting { color: #fff; font-weight: 700; font-size:1.8rem; }
.nav-drawer__head button { border: 0; background: none; color: #fff; cursor: pointer; padding: 4px; display: flex; }
.nav-drawer__cat-btn {
  display: flex; width: 100%; align-items: center; justify-content: space-between;
  padding: 18px 24px; border: 0; border-bottom: 1px solid #eee; background: none; cursor: pointer;
  font-size:1.8rem; font-weight: 700; color: #000; font-family: inherit; text-align: left;
}
/* 위치 내비게이션 .page-breadcrumb__cur-btn과 동일한 셰브런 svg — 열림 상태에서 180도 회전 */
.nav-drawer__cat-btn .sign { flex: none; width: 18px; height: 18px; display: flex; }
.nav-drawer__cat-btn .sign svg { color: #999; transition: transform .15s ease; }
.nav-drawer__section.is-open .nav-drawer__cat-btn .sign svg { transform: rotate(180deg); }
.nav-drawer__list { display: none; list-style: none; margin: 0; padding: 0 0 10px; background: #f5f5f5; white-space: nowrap; }
.nav-drawer__section.is-open .nav-drawer__list { display: block; }
.nav-drawer__list li a, .nav-drawer__list li span {
  display: flex; align-items: center; gap: 8px; text-align: left; padding: 8px 24px; font-size:1.6rem; color: #444; text-decoration: none;
}
.nav-drawer__list li a::before, .nav-drawer__list li span::before {
  content: ''; display: block; flex: none; width: 8px; height: 2px; background: currentColor;
}
/* 마이페이지·로그아웃 — 드로어 맨 아래 구획(요청사항: 원래 헤드에 있던 링크를 여기로 이동).
   위치 내비게이션의 1024px 이하 풀폭 등분 바(조상>현재, 진한 배경 반반 분할)와 동일한 배경색·구조로
   디자인(요청사항: 텍스트는 그대로, 배경색+반반 분할 구조만 재사용) — 링크 개수(2개)만큼 flex:1로 등분. */
.nav-drawer__foot { display: flex; flex: none; margin-top: auto; }
.nav-drawer__foot .nav-drawer__login {
  flex: 1 1 0; display: flex; align-items: center; justify-content: center; text-align: center;
  padding: 18px 12px; font-size:1.6rem; font-weight: 700; color: #fff; text-decoration: none;
  background: var(--skin-header-accent);
}
.nav-drawer__foot .nav-drawer__login + .nav-drawer__login { border-left: 1px solid rgba(255,255,255,.3); }

/* ════════════════════════════════════════════════════════════
   데스크톱 전체메뉴(전체화면 메가메뉴) — 1025px 이상 전용(요청사항).
   "전체메뉴" 버튼 클릭 시 /sitemap 페이지로 이동하던 것을, 상단에서 내려와 화면 전체를 덮는
   오버레이로 GNB 전체 카테고리를 한 번에 보여주는 것으로 교체. 1024px 이하는 기존 .nav-drawer
   (우측 슬라이드 드로어)가 그대로 담당 — 아래 미디어쿼리로 이 컴포넌트 자체를 잠가 겹치지 않게 한다.
   ════════════════════════════════════════════════════════════ */
/* display:none 대신 visibility+pointer-events로 열림/닫힘을 제어 — display를 토글하면 첫 페인트가
   그 상태로 굳어버려 transform 트랜지션(상단에서 내려오는 애니메이션)이 생략된다. */
.mega-full {
  position: fixed; inset: 0; z-index: 270;
  background: radial-gradient(120% 100% at 85% 0%, color-mix(in srgb, var(--skin-accent) 22%, var(--skin-header-accent)) 0%, var(--skin-header-accent) 55%);
  color: #fff;
  transform: translateY(-100%); transition: transform .35s ease, visibility .35s;
  visibility: hidden; pointer-events: none;
}
.mega-full.is-open { visibility: visible; pointer-events: auto; transform: translateY(0); }
/* 배경 이미지 레이어 — .mega-full__scroll(overflow-y:auto) 밖, .mega-full 바로 아래 형제로 분리.
   블러(::before, inset을 화면보다 넉넉히 키워 가장자리 투명 번짐 방지)가 이 레이어 안에서만
   퍼지고, 이 레이어 자체는 overflow:hidden으로 정확히 화면 크기만큼만 클리핑되므로 바깥의
   overflow-y:auto 스크롤 컨테이너(.mega-full__scroll)의 스크롤 가능 영역 계산과 완전히 무관해진다
   (블러를 overflow-y:auto 자손에 직접 걸면 크로미움이 번진 영역까지 스크롤 가능 영역에 포함시켜
   스크롤바가 생기던 문제 — 레이어 분리로 근본 해결. 이미지 자체엔 블러를 굽지 않고 CSS로만 처리). */
.mega-full__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
/* 이미지 자체가 흰색 계열 밝은 텍스처라 어두운 남색 그라디언트 위에 opacity(단순 불투명도)만
   얹으면 거의 안 보였다(버그 리포트: "배경이미지가 안나와") — mix-blend-mode:screen으로 바꿔
   이미지의 밝은 결(흰색 웨이브)만 배경 위로 빛나듯 드러나게 하고, 불투명도도 눈에 띄는 수준으로 올린다. */
.mega-full__bg::before {
  content: ''; position: absolute; inset: -4vmax;
  background: url('./images/mega-full-bg.jpg') center/cover no-repeat;
  filter: blur(8px); opacity: .2; mix-blend-mode: screen;
}
/* 헤드+컬럼+하단 스크롤 컨테이너 — 화면 상하 중앙 배치(요청사항) 유지, 내용이 길어지면 스크롤 */
.mega-full__scroll {
  position: relative; width: 100%; height: 100%; overflow-y: auto;
  display: flex; flex-direction: column; justify-content: center;
}
.mega-full__head {
  /* width:100% 필수 — .mega-full이 flex column이 되면서(위, 중앙정렬용) 자식의 margin:auto가
     기본 stretch를 밀어내고 content-width로 줄어들어(플렉스 아이템의 auto 마진 동작) 아래 .mega-full__cols의
     flex-wrap 계산에 쓸 폭이 좁아져 컬럼이 의도치 않게 줄바꿈되는 문제가 있었다. */
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  max-width: var(--skin-container); margin: 0 auto; padding: 32px 0; box-sizing: border-box;
}
.mega-full__brand {
  font-size: 3rem; font-weight: 500; letter-spacing: 8px; text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.mega-full__head button {
  border: 0; background: none; color: #fff; cursor: pointer; padding: 8px; display: flex;
}
/* X 아이콘 — 전체메뉴(햄버거) 버튼과 같은 크기로(요청사항, 햄버거 아이콘 width:28px 기준) */
.mega-full__head button svg { width: 28px; height: 28px; }
.mega-full__cols {
  width: 100%; display: flex; flex-wrap: wrap;
  max-width: var(--skin-container); margin: 0 auto; padding: 40px var(--skin-gutter) 60px; box-sizing: border-box;
  border-top: 1px solid rgba(255,255,255,.2);
}
/* 컬럼 사이 세로 라인(요청사항) — gap 대신 컬럼 좌우 padding + border-left로 구현해야 라인이
   정확히 두 컬럼 사이 중간에 오면서도 첫/마지막 컬럼은 좌우 바깥 여백 없이 정렬된다. */
.mega-full__col { flex: 1 1 160px; min-width: 0; padding: 0 40px; }
.mega-full__col:first-child { padding-left: 0; }
.mega-full__col:last-child { padding-right: 0; }
.mega-full__col + .mega-full__col { border-left: 1px solid rgba(255,255,255,.2); }
.mega-full__col-title { margin: 0 0 24px; font-size: 2.2rem; font-weight: 700; color: #fff; }
.mega-full__col-title a, .mega-full__col-title span { color: inherit; text-decoration: none; }
.mega-full__col-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; }
.mega-full__col-list > li > a, .mega-full__col-list > li > span {
  color: rgba(255,255,255,.7); text-decoration: none; font-size: 1.8rem;
}
.mega-full__col-list > li > a:hover { color: #fff; }
/* 3뎁스(요청사항) — 부모 메뉴 바로 아래, 박스 형태로 감싸서 항상 펼쳐 표시(아코디언 없음) */
.mega-full__sub-list {
  list-style: none; margin: 12px 0 0; padding: 12px 14px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 10px;
  display: flex; flex-direction: column; gap: 10px;
}
.mega-full__sub-list a, .mega-full__sub-list span { color: rgba(255,255,255,.55); text-decoration: none; font-size: 1.5rem; }
.mega-full__sub-list a:hover { color: #fff; }
.mega-full__foot {
  /* SNS는 좌측 끝, 전화번호는 우측 끝(요청사항) */
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 28px;
  max-width: var(--skin-container); margin: 0 auto; padding: 24px var(--skin-gutter) 60px; box-sizing: border-box;
  border-top: 1px solid rgba(255,255,255,.2);
}
.mega-full__foot a svg { width: 30px; height: 30px; flex: none; }
.mega-full__foot a {
  display: flex; align-items: center; gap: 12px;
  color: #fff; font-weight: 700; font-size: 3rem; text-decoration: none;
}
/* 전화번호 좌측의 SNS 링크(요청사항) — footer-bottom__sns와 동일한 원형 배지 스타일 재사용 */
.mega-full__sns { display: flex; gap: 8px; flex: none; list-style: none; margin: 0; padding: 0; }
.mega-full__sns-link {
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.mega-full__sns-link img { width: 18px; height: 18px; display: block; }
.mega-full__sns-link--kakao { background: #FEE500; }
.mega-full__sns-link--blog { background: #03C75A; }
.mega-full__sns-link--facebook { background: #1877F2; }
.mega-full__sns-link--instagram { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
/* 1024px 이하는 .nav-drawer 전용 — 혹시 리사이즈 도중 is-open이 남아있어도 화면에 나타나지 않게 잠금 */
@media (max-width: 1024px) {
  .mega-full { display: none !important; }
}


/* 👉 본문 영역 컨테이너입니다. 좌우 여백은 --skin-gutter 변수에서 조절하세요. */
/* ════════════════════════════════════════════════════════════
   MAIN — 본문 영역 컨테이너
   ════════════════════════════════════════════════════════════ */
.site-main {
  flex: 1 0 auto;
  width: 100%;
  max-width: var(--skin-container);
  margin: 0 auto;
}
/* 메뉴 콘텐츠 페이지(page-title-wrap 보유)는 타이틀 영역을 화면 양끝까지 채워야 해서
   site-main 자체의 1400px 제약을 해제 — 실제 1400px 정렬은 .page-title-inner/.page-body가 각자 담당.
   ⚠ site-main 자체에는 min-width가 없어(1600px은 body 것) width:100vw가 그대로 적용되면
   1600px 밑에서 뷰포트를 따라 줄어드는 문제 — home-wrap 규칙(main.css)과 동일하게
   min-width:1600px을 직접 걸어 1024px(아래 @media에서 해제)까지 고정폭을 유지한다. */
.site-main:has(.page-title-wrap) { width: 100vw; min-width: 1600px; max-width: none; margin: 0; }
.site-main .content-page { width: auto; margin: 0 0 100px 0; }

/* 메뉴 콘텐츠 (HTML 직접 주입) */
/* 디자인 산출물(content.css)의 :root 토큰을 .menu-content 스코프로 재현 —
   콘텐츠 페이지 원문이 var(--primary)/var(--radius) 등을 그대로 참조하므로 이름을 그대로 유지 */
.menu-content {
  --primary: var(--skin-primary);
  --primary-dark: color-mix(in srgb, var(--skin-primary) 80%, #000);
  --soft: color-mix(in srgb, var(--skin-primary) 8%, #fff);
  --soft-border: color-mix(in srgb, var(--skin-primary) 20%, #fff);
  --mega-active: color-mix(in srgb, var(--skin-primary) 4%, #fff);
  --ink: #000000;
  --muted: #5a606b;
  --border: #e7edf7;
  --bg: #ffffff;
  --surface: #f4f7fd;
  --radius: 20px;
  --btn-radius: 12px;
}
.menu-content { font-size:1.7rem; line-height: 1.5; color: #111; }
.menu-content h1 { font-size:3rem; font-weight: 700; color: #111; margin: 0 0 var(--space-4); }
.menu-content h2 { font-size:2.4rem; font-weight: 600; color: #111; margin: var(--space-8) 0 var(--space-3); }
.menu-content h3 { font-size:2rem; font-weight: 600; color: #111; margin: var(--space-6) 0 var(--space-2); }
.menu-content p  { margin: 0; margin-bottom: 10px; }
/* 빈 문단(<p></p>)도 한 줄을 차지하게 — 에디터의 여러 줄바꿈이 접히지 않도록 */
.menu-content p:empty::after { content: "\00a0"; }
.menu-content ul, .menu-content ol { margin: 0 0 var(--space-4); padding-left: var(--space-6); }
.menu-content li { margin: 0; }
.menu-content a  { color: var(--skin-primary); }
.menu-content a:hover { color: var(--skin-accent); }
.menu-content img { height: auto; border-radius: var(--radius-md); }
.menu-content table { width: 100%; border-collapse: collapse; margin: 0 0 var(--space-4); }
.menu-content th,
.menu-content td  { padding: var(--space-3); border: 1px solid #e0e0e0; text-align: left; }
.menu-content th  { background: #f3f3f3; color: #111; font-weight: 600; }

/* 서브 콘텐츠 페이지 정보/비교형 표(.mc-table) — 사업 상세 안내 등 사전식(label:value)·비교형 표 공통 컴포넌트.
   이전에는 sites/{site}/content/menu-*.html 파일마다 .info_table/.key-func-table을 각자 <style>에
   복붙해 미세하게 다른 값(테두리 유무·min-width 등)으로 들고 있었음 — 여기 하나로 통일해 모든 콘텐츠
   서브페이지가 동일한 표 스타일을 받는다. 게시판 목록 표(.ds-table, ds/components.css)는 별개 컴포넌트로
   이 규칙의 영향을 받지 않는다. */
.menu-content .mc-table {
  width: 100%; table-layout: fixed; border-collapse: collapse;
  border-top: 2px solid var(--primary);
}
.menu-content .mc-table th,
.menu-content .mc-table td {
  padding: 18px 20px; font-size:1.7rem; line-height: 1.7; text-align: left;
  /* 위쪽 셀 전용 일반 표 규칙(.menu-content th/td, 위쪽)이 border:1px solid #e0e0e0(4방향)를 걸어놔서
     border-bottom만 재정의하면 top/left/right가 그 규칙에서 그대로 새어들어와 표 좌우에 원치 않는
     테두리가 생기던 문제 — mc-table은 상단(표 자체의 border-top 악센트)·행 구분선(border-bottom)만
     쓰는 컴포넌트라 나머지 3방향은 명시적으로 0으로 초기화한다. */
  border-top: 0; border-left: 0; border-right: 0;
  border-bottom: 1px solid var(--border); vertical-align: top;
}
.menu-content .mc-table tbody th { width: 11.43%; background: var(--surface); font-weight: 700; color: var(--ink); }
.menu-content .mc-table td { color: #333; }
.menu-content .mc-table td ul { margin: 0; padding: 0; list-style: none; }
.menu-content .mc-table td li { position: relative; padding-left: 14px; margin-bottom: 6px; }
.menu-content .mc-table td li::before {
  content: ""; position: absolute; left: 0; top: .7em; width: 4px; height: 4px;
  border-radius: 50%; background: var(--primary);
}
.menu-content .mc-table td li:last-child { margin-bottom: 0; }
/* 상단 헤더 행 — thead가 있는 비교형 표에서만 적용(없으면 무관) */
.menu-content .mc-table thead th { background: var(--surface); font-weight: 700; color: var(--ink); text-align: center; }
/* 칸 구분(비교형 표 전용) — 열 사이 세로 구분선이 필요한 다열 비교표에 추가(표 좌우 테두리는 없음) */
.menu-content .mc-table--boxed th,
.menu-content .mc-table--boxed td { border-right: 1px solid var(--border); }
.menu-content .mc-table--boxed th:last-child,
.menu-content .mc-table--boxed td:last-child { border-right: none; }
/* 셀 정렬/강조 유틸 — style="text-align:center" 등 인라인 대신 사용 */
.menu-content td.mc-cell-center,
.menu-content th.mc-cell-center { text-align: center; vertical-align: middle; }
.menu-content .mc-cell-strong { font-weight: 700; color: var(--ink); }
/* 표 가로 스크롤 래퍼 — style="overflow-x:auto" 대신 사용. 컬럼이 많은 표(.mc-table--boxed)만 감싸면 됨 */
.menu-content .mc-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 767px) {
  .menu-content .mc-table th,
  .menu-content .mc-table td { font-size:1.5rem; }
  /* 다열 비교표만 모바일에서 가로 스크롤 필요 — 단순 2열 표(라벨:설명)는 그대로 폭에 맞춰 줄바꿈 */
  .menu-content .mc-table-scroll .mc-table { width: auto; min-width: 700px; }
}

/* 표 가로 스크롤 안내 — .mc-table-scroll 바로 위에 붙여 쓰는 안내 문구. 기본은 항상 숨김이며,
   layout.html의 스크립트가 해당 .mc-table-scroll에 실제로 가로 스크롤이 생겼을 때(scrollWidth >
   clientWidth)만 .is-visible을 붙인다 — 767px 이하라도 폭이 좁은 2열 표처럼 스크롤이 필요 없는
   표에서는 노출되지 않는다. 767px 초과 폭에서는 스크롤이 발생하지 않으므로 미디어쿼리로 한 번 더 막는다. */
.menu-content .mc-scroll-hint { display: none; }
@media (max-width: 767px) {
  .menu-content .mc-scroll-hint.is-visible {
    display: flex; align-items: center; gap: 12px;
    margin: 0 0 12px; padding: 14px 18px;
    border: 1px dashed var(--border); border-radius: 8px;
    background: #fff; font-size: 1.4rem; line-height: 1.6;
  }
  .menu-content .mc-scroll-hint svg,
  .menu-content .mc-scroll-hint img { flex: none; width: auto; height: 36px; }
  .menu-content .mc-scroll-hint p { margin: 0; color: var(--muted); }
  .menu-content .mc-scroll-hint p b { font-weight: 700; color: var(--ink); }
}

/* 서브 콘텐츠 페이지 공통 본문 문단(.mc-content) — 여러 menu-*.html이 공유하는 기본 타이포그래피.
   페이지별로 색상·줄간격이 달라야 하면 새 클래스를 만들지 말고 컨텍스트 선택자로 재정의한다
   (예: .info-card .mc-content, .target-row .mc-content). */
.menu-content .mc-content { margin: 0; font-size:1.7rem; line-height: 1.9; color: #333; word-break: keep-all; }
@media (max-width: 767px) {
  .menu-content .mc-content { font-size:1.5rem; }
}

/* 서브 콘텐츠 페이지 최상위 wrapper(.mc-page-wrap) — 여러 menu-*.html이 공유하는 공통 폭 제한
   (구 .about-wrap/.org-wrap/.loc-wrap/.info-wrap/.calc-wrap/.relief-wrap/.edu-wrap/.injury-wrap/.wf-wrap를
   통합, 페이지 하단 margin-bottom은 제거 — 레이아웃 하단 여백은 .content-page가 별도로 관리). 페이지별로
   달랐던 min-height/text-align만 modifier로 유지(.mc-greet-wrap은 폭 제한 자체가 없는 별도 패턴이라
   통합 대상에서 제외). */
.menu-content .mc-page-wrap { max-width: 1400px; margin: 0 auto; }
.menu-content .mc-page-wrap--min460 { min-height: 460px; }
.menu-content .mc-page-wrap--min420 { min-height: 420px; }
.menu-content .mc-page-wrap--center { text-align: center; }

/* 인사말 레이아웃(.mc-greet-*) — 인용구만 카드로 구분하고 본문·사진은 감싸지 않는다(menu-11 전용,
   sites/main/content/menu-11.html에서 클래스만 사용 — 인라인 style 금지, 값 수정은 여기서). */
.menu-content .mc-greet-wrap { margin-bottom: 60px; }
/* .page-body가 --skin-container(1400px)로 폭을 제한하므로, 1580px까지 넓어지려면 컨테이너를
   벗어나 뷰포트 기준으로 다시 중앙 정렬해야 한다(히어로 섹션과 같은 breakout 기법).
   width는 반응형으로 줄어들지 않는 고정값(1580px) — 화면이 좁아져도 배경 크기가 그대로 유지되고,
   뷰포트가 1580px보다 좁으면 가로 스크롤이 생긴다(홈 화면 .home-wrap의 min-width 고정 폭 방식과 동일).
   실제 텍스트(내용)는 안쪽 .mc-greet-quote-inner가 1400px로 다시 중앙 정렬해 담는다 — 배경(1580)만
   더 넓고 내용 폭은 본문 컨테이너와 동일한 1400을 유지. */
.menu-content .mc-greet-quote-card {
  background: color-mix(in srgb, var(--primary) 6%, #fff) url('./images/greet_quote_bg.jpg') center / cover no-repeat;
  border-radius: 20px; margin-bottom: 80px; box-sizing: border-box;
  width: 1580px; margin-left: 50%; transform: translateX(-50%);
}
.menu-content .mc-greet-quote-inner { max-width: 1400px; margin: 0 auto; padding: 40px 0; box-sizing: border-box; text-align: center; }
.menu-content .mc-greet-quote { margin: 0; font-size:3rem; line-height: 1.6; font-weight: 700; color: var(--primary); letter-spacing: -.02em; }
.menu-content .mc-greet-main { display: flex; gap: 80px; align-items: flex-start; }
.menu-content .mc-greet-body-card { flex: 1; min-width: 0; }
.menu-content .mc-greet-body { font-size:1.9rem; line-height: 1.6; color: #333; word-break: keep-all; }
.menu-content .mc-greet-body p { margin: 0 0 20px; }
.menu-content .mc-greet-body p:last-child { margin-bottom: 0; }
.menu-content .mc-greet-subhead { margin: 32px 0 15px !important; font-size:2rem; font-weight: 700; color: #15527A; }
.menu-content .mc-greet-sign { margin: 32px 0 0; text-align: right; }
.menu-content .mc-greet-sign-title {
  font-size:2.2rem; display: flex; justify-content: flex-end; align-items: center; gap: 0 20px; color: var(--ink);
}
.menu-content .mc-greet-sign-name { font-family: 'NohHaeChan', 'Pretendard', sans-serif; font-size:4.5rem; font-weight: 500; }
.menu-content .mc-greet-photo-card { flex: 0 0 400px; }
.menu-content .mc-greet-photo-card .mc-greet-photo-frame { border-radius: var(--radius); overflow: hidden; box-shadow: 0 24px 50px rgba(16,42,99,.16); }
.menu-content .mc-greet-photo-card img { display: block; width: 100%; height: auto; }
.menu-content .mc-greet-photo-caption { margin: 14px 0 0; text-align: center; font-size:1.7rem; color: #888; }
@media (max-width: 1024px) {
  /* 좌우 배치(row)는 유지하고, 좁아진 폭에 맞춰 간격·사진 폭만 줄인다 */
  .menu-content .mc-greet-main { gap: 40px; }
  .menu-content .mc-greet-photo-card { flex: 0 0 340px; width: 280px; }
  /* 인용구 카드 배경 — 1580px 고정폭 브레이크아웃을 해제하고 컨테이너 폭에 맞춘다 */
  .menu-content .mc-greet-quote-card { width: 100%; margin-left: 0; transform: none; }
  .menu-content .mc-greet-sign-title { font-size:1.7rem; }
  .menu-content .mc-greet-sign-name { font-size:3.5rem; }
  .menu-content .mc-greet-body { font-size:1.7rem; }
}
@media (max-width: 767px) {
  .menu-content .mc-greet-main { flex-direction: column; }
  .menu-content .mc-greet-photo-card { flex: none; width: 100%; max-width: 420px; margin: 0 auto; order: -1; }
  .menu-content .mc-greet-body { font-size:1.6rem; }
  .menu-content .mc-greet-subhead { font-size:1.7rem; }
  .menu-content .mc-greet-sign-title { font-size:1.8rem; }
  .menu-content .mc-greet-sign-name { font-size:3.2rem; }
  .menu-content .mc-greet-quote-inner { padding: 30px 20px; }
  .menu-content .mc-greet-quote { font-size:2rem; }
  .menu-content .mc-greet-quote-card { margin-bottom: 30px; }
}
@media (max-width: 480px) {
  .menu-content .mc-greet-body { font-size:1.5rem; }
  .menu-content .mc-greet-subhead { font-size:1.6rem; }
  /* 좁은 폭에서도 "센터장 ○○○" 서명이 줄바꿈 없이 한 줄로 유지되도록 강제 */
  .menu-content .mc-greet-sign-title { font-size:1.7rem; flex-wrap: nowrap; white-space: nowrap; }
  .menu-content .mc-greet-sign-name { font-size:2.8rem; }
}

/* 센터소개(.about-*) — 전용, sites/main/content/menu-12.html에서 클래스만 사용 — 인라인 style 금지, 값 수정은 여기서.
   단, .about-section-title은 서브페이지 공용 섹션 타이틀(원래 loc/calc/relief/wf-h3--section 등 페이지마다
   따로 있던 동일 디자인을 통일)이라 menu-13·14·23·24·25·41·42·43.html에서도 함께 쓴다. 여백이 필요한
   페이지는 .about-section-title--mb20을 같이 붙인다(제목 바로 아래에 감싸는 head 요소의 gap이 없는 경우). */

/* 상단 소개 박스(.mc-intro) — 여러 menu-*.html이 공유하는 공통 컴포넌트(구 .about-intro/.calc-intro/
   .relief-intro/.wf-intro를 통합, 완전히 동일한 박스 스타일이라 중복 정의 대신 여기 하나로 합침).
   본문이 아이콘 + 한 줄 안내문이면 .mc-intro--icon 수식자 + .mc-intro-icon/.mc-intro-text,
   굵은 리드 + 설명 두 단으로 나뉘면 .mc-intro-lead/.mc-intro-desc, 아이콘 없는 한 줄이면
   .mc-intro-text만 사용(부모에 --icon 수식자 없이). */
.menu-content .mc-intro { padding: 40px; border: 2px dashed #15527A; border-radius: var(--radius); background: #ecf2f9; }
.menu-content .mc-intro--icon { display: flex; align-items: center; gap: 16px; }
.menu-content .mc-intro-icon { flex: none; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--soft); color: var(--primary); }
.menu-content .mc-intro-text { margin: 0; font-size:1.9rem; font-weight: 600; color: var(--ink); line-height: 1.6; }
.menu-content .mc-intro-lead { margin: 0 0 14px; font-size:2.4rem; line-height: 1.6; font-weight: 500; color: var(--ink); letter-spacing: -.02em; word-break: keep-all; }
.menu-content .mc-intro-lead strong { font-weight: 700; color: #1845cb; }
.menu-content .mc-intro-desc { margin: 0; font-size:1.8rem; line-height: 1.7; color: var(--muted); word-break: keep-all; }

/* 주요 사업 — 좌측 정렬 섹션 헤드 + 3개 카드 좌우 한 줄 배치 */
.menu-content .about-services { margin-top: 80px; }
.menu-content .about-services-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 32px; }
.menu-content .about-section-title { margin: 0; font-size:3rem; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.menu-content .about-section-title--mb20 { margin-bottom: 20px; }
.menu-content .about-services-desc { margin: 0; font-size:1.8rem; color: var(--muted); }

.menu-content .about-services-grid { display: flex; align-items: stretch; gap: 24px; }
.menu-content .about-service-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 16px;
  flex: 1 1 0; min-width: 0;
  padding: 30px; border: 1px solid transparent; border-radius: var(--radius); box-sizing: border-box;
}
.menu-content .about-service-card--legal { background: #DDEEF5; border-color: #b9d9ea; }
.menu-content .about-service-card--edu { background: #E2F1ED; border-color: #bfe0d3; }
.menu-content .about-service-card--welfare { background: #F6E8C9; border-color: #ecd7a0; }
.menu-content .about-service-head {
  display: flex; align-items: center; gap: 16px; width: 100%;
  padding-bottom: 16px; border-bottom: 1px dashed rgba(0,0,0,.22);
}
.menu-content .about-service-icon {
  flex: none; width: 64px; height: 64px; border-radius: 50%; background: #fff;
  display: flex; align-items: center; justify-content: center;
}
.menu-content .about-service-card--legal .about-service-icon { color: var(--primary); }
.menu-content .about-service-card--edu .about-service-icon { color: #17a589; }
.menu-content .about-service-card--welfare .about-service-icon { color: #e88219; }
.menu-content .about-service-title {
  flex: 1 1 auto; min-width: 0; margin: 0; font-size:2.2rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em;
}
.menu-content .about-service-list { flex: none; width: 100%; min-width: 0; margin: 0; padding: 0; list-style: none; }
.menu-content .about-service-list li {
  position: relative; padding-left: 18px; font-size:1.7rem; line-height: 1.4; color: #333;
}
.menu-content .about-service-list li:nth-child(n+2) { margin-top: 5px; }
.menu-content .about-service-list li::before {
  content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%;
}
.menu-content .about-service-card--legal .about-service-list li::before { background: var(--primary); }
.menu-content .about-service-card--edu .about-service-list li::before { background: #17a589; }
.menu-content .about-service-card--welfare .about-service-list li::before { background: #e88219; }

/* 하단 CTA 배너 — 우측에 사진이 그대로 드러나고, 좌측은 짙은 남색 그라디언트로 자연스럽게
   섞여 텍스트 가독성을 확보한다(사진 박스를 따로 나누지 않고 하나의 배경에 그라디언트를 겹침). */
.menu-content .about-cta {
  position: relative; box-sizing: border-box; overflow: hidden;
  margin-top: 50px; display: flex; align-items: center;
  padding: 40px 50px; border-radius: var(--radius); background-color: #0f2d5a;
  background-image: linear-gradient(100deg, rgba(15,45,90,.97) 0%, rgba(15,45,90,.94) 38%, rgba(15,45,90,.55) 60%, rgba(15,45,90,.05) 82%, rgba(15,45,90,0) 100%), url('./images/about_cta_bg.jpg');
  background-repeat: no-repeat, no-repeat;
  background-position: center, right bottom;
  background-size: cover, cover;
}
.menu-content .about-cta-text { display: flex; align-items: center; gap: 40px; width: 100%; }
.menu-content .about-cta-copy { flex: 1; min-width: 0; }
.menu-content .about-cta-eyebrow { margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.35); display: inline-block; font-size:1.6rem; font-weight: 600; color: #fff; }
.menu-content .about-cta-title { margin: 0 0 15px; font-size:3.2rem; font-weight: 700; color: #fff; letter-spacing: -.02em; line-height: 1.3; }
.menu-content .about-cta-desc { margin: 0; font-size:1.7rem; line-height: 1.6; color: rgba(255,255,255,.8); }
.menu-content .about-cta-actions { flex: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 14px; }
.menu-content .about-cta-qr { flex: none; width: 130px; height: 130px; border: 5px solid #fff; border-radius: 10px; }
.menu-content .about-cta-copy .about-cta-btn { margin-top: 20px; }
/* 버튼 2개 이상을 한 줄로 묶을 때(예: 문의 + 신청서 다운로드) 사용 — 조식지원(menu-41) 등 */
.menu-content .about-cta-btnrow { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 20px; }
.menu-content .about-cta-btnrow .about-cta-btn { margin-top: 0; }
.menu-content .about-cta-btn {
  display: inline-flex; align-items: center; gap: 10px; flex: none;
  padding: 13px 30px; border-radius: 999px; background: #fff; border: 1px solid #fff;
  font-weight: 700; font-size:1.6rem; color: #142B3A; white-space: nowrap;
  transition: background .15s, color .15s, border-color .15s;
}
.menu-content .about-cta-btn:hover { padding: 12px 29px; border-width: 2px; border-color: var(--primary); }
.menu-content .about-cta-btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.menu-content .about-cta-btn--outline:hover { background: #fff; color: #142B3A; border-color: #fff; padding: 13px 30px; border-width: 1px; }

@media (max-width: 1024px) {
  .menu-content .mc-intro { padding: 32px 28px; }
  .menu-content .about-services { margin-top: 60px; }
  .menu-content .about-services-grid { flex-wrap: wrap; gap: 20px; }
  .menu-content .about-service-card { flex: 1 1 100%; padding: 32px 28px; }
  .menu-content .about-cta { margin-top: 60px; min-height: 0; padding: 36px 32px; }
  .menu-content .about-cta-title { font-size:2.6rem; }
  .menu-content .about-cta-actions { max-width: 260px; }
  .menu-content .about-cta-actions > .about-cta-btn { flex: none; width: 100%; justify-content: center; }
  /* outline 버튼과 함께 쓰는 CTA(권리구제지원·영세사업주컨설팅 등)는 문구가 길어 줄바꿈 없이
     한 줄로 유지하고, 버튼 폭은 글자 길이에 맞춘다(고정폭 강제 금지). 신청서 다운로드 버튼
     다음 버튼은 항상 그 아래로 배치. */
  .menu-content .about-cta:has(.about-cta-btn--outline) .about-cta-actions { max-width: none; flex-direction: column; align-items: flex-end; }
  .menu-content .about-cta:has(.about-cta-btn--outline) .about-cta-actions > .about-cta-btn { width: auto; }
}
@media (max-width: 767px) {
  .menu-content .mc-intro { padding: 28px 22px; }
  .menu-content .mc-intro--icon { flex-direction: column; align-items: flex-start; gap: 12px; }
  .menu-content .mc-intro-icon { width: 40px; height: 40px; }
  .menu-content .mc-intro-text { font-size:1.7rem; }
  .menu-content .mc-intro-lead { font-size:2rem; }
  .menu-content .mc-intro-desc { font-size:1.6rem; }
  .menu-content .about-section-title { font-size:2.4rem; }
  .menu-content .about-cta-title { margin: 0; }
  .menu-content .about-service-card { padding: 26px 22px; }
  .menu-content .about-services { margin-top: 40px; }
  .menu-content .about-cta {
    margin-top: 40px; min-height: 0; padding: 32px 24px;
    background-image: linear-gradient(180deg, rgba(15,45,90,.98) 0%, rgba(15,45,90,.95) 45%, rgba(15,45,90,.75) 75%, rgba(15,45,90,.35) 100%), url('./images/about_cta_bg.jpg');
    background-position: center, center;
  }
  .menu-content .about-cta-text { flex-direction: column; align-items: flex-start; gap: 24px; }
  .menu-content .about-cta-actions { width: 100%; max-width: none; }
  .menu-content .about-cta-actions > .about-cta-btn { flex: 1 1 auto; justify-content: center; width: auto; }

  /* outline 버튼 CTA(권리구제지원·영세사업주컨설팅 등): 1024px 전용 세로 스택(flex-direction:column)을
     767px에서는 해제 — 한 줄에 다 들어가는 동안은 좌우 끝까지 채우다가, 폭이 부족해지면
     자연스럽게 다음 줄로 떨어진다(위 기본 규칙과 동일한 row + wrap 동작). */
  .menu-content .about-cta:has(.about-cta-btn--outline) .about-cta-actions { flex-direction: row; align-items: center; }
  .menu-content .about-cta:has(.about-cta-btn--outline) .about-cta-actions > .about-cta-btn { flex: 1 1 auto; width: auto; }

  /* 문의 전화버튼 + QR 조합(조식지원·산재보험료지원): 제목·설명은 상단, 버튼(좌)·QR(우)은 같은 줄 */
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-text {
    display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px 20px;
  }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy { display: contents; }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-title,
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-desc { grid-column: 1 / -1; }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btn,
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btnrow {
    grid-column: 1; justify-self: start; align-self: center; width: auto; margin-top: 0;
  }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btnrow { gap: 15px; }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-actions {
    grid-column: 2; justify-self: end; width: auto; max-width: none;
  }
}
@media (max-width: 480px) {
  .menu-content .about-service-icon { width: 56px; height: 56px; }
  .menu-content .about-service-title { font-size:1.9rem; }
  .menu-content .about-cta-title { font-size:2.3rem; }
  .menu-content .about-cta-btn { padding: 10px 20px; }
  .menu-content .about-cta:has(.about-cta-btn--outline) .about-cta-btn { font-size:1.35rem; padding: 10px 18px; }
  .menu-content .about-cta-qr { width: 96px; height: 96px; border-width: 4px; }

  .menu-content .about-cta:has(.about-cta-qr) .about-cta-text { grid-template-columns: 1fr; }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btn {
    grid-column: 1; justify-self: stretch; width: 100%; justify-content: center;
  }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btnrow {
    grid-column: 1; justify-self: stretch; width: 100%; flex-direction: column; align-items: stretch; gap: 10px;
  }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-copy .about-cta-btnrow .about-cta-btn {
    width: 100%; justify-content: center;
  }
  .menu-content .about-cta:has(.about-cta-qr) .about-cta-actions {
    grid-column: 1; justify-self: center;
  }
}

/* 조직도(.org-*) — 전용, sites/main/content/menu-13.html에서 클래스만 사용 — 인라인 style 금지, 값 수정은 여기서 */
.menu-content .org-highlight { max-width: 1400px; margin: 0 auto 56px; padding: 48px 44px; border-radius: var(--radius); background: color-mix(in srgb, var(--primary) 6%, #fff); text-align: center; }
.menu-content .org-highlight-lead { margin: 0 0 15px; font-size:2.5rem; line-height: 1.6; font-weight: 700; color: var(--primary); letter-spacing: -.02em; word-break: keep-all; }
.menu-content .orgchart-scroll { max-width: 100%; }
.menu-content .org-chart { position: relative; width: 1400px; height: 760px; margin: 0 auto; }
.menu-content .org-box { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 12px; box-sizing: border-box; text-align: center; padding: 0 14px; line-height: 1.3; box-shadow: 0 2px 10px rgba(29,47,155,.08); }
.menu-content .org-line { position: absolute; background: #ddd; border-radius: 2px; }
/* 운영위원회 — 센터장 직속 자문기구임을 나타내는 점선 연결(다른 라인은 실선 유지) */
/* border-style:dashed는 2~3px 두께에서 브라우저가 실선처럼 뭉개 그리는 경우가 있어,
   반복 그라디언트로 점선 패턴을 직접 그린다(두께와 무관하게 항상 또렷하게 보임). */
.menu-content .org-line.org-line-dashed {
  height: 1px !important; border-radius: 0;
  background-color: transparent;
  background-image: repeating-linear-gradient(to right,
    #ddd 0, #ddd 8px,
    transparent 8px, transparent 16px);
}
.menu-content .org-box.lv1 { border-radius: 50%; background: linear-gradient(135deg,#14b8a6 0%,var(--primary) 100%); color: #fff; font-weight: 700; font-size:2.2rem; letter-spacing: -.02em; box-shadow: 0 0 0 8px color-mix(in srgb,var(--primary) 5%,#fff), 0 0 0 16px color-mix(in srgb,var(--primary) 3%,#fff), 0 14px 28px rgba(29,47,155,.3); }
.menu-content .org-box.lv2 { background: var(--primary); color: #fff; font-weight: 700; font-size:1.9rem; box-shadow: 0 4px 14px rgba(29,47,155,.22); }
.menu-content .org-box.lv3 { background: #fff; border: 1.5px solid var(--soft-border); color: var(--primary); font-weight: 700; font-size:1.7rem; }
.menu-content .org-box.lv3.strong { border-width: 2px; font-weight: 700; }
.menu-content .org-box-title-box { background: linear-gradient(135deg,#3f7be0,#2952c7); color: #fff; font-weight: 700; font-size:1.9rem; box-shadow: 0 4px 14px rgba(41,82,199,.25); }
.menu-content .org-box-desc-box { background: #fff; border: 1.5px solid var(--soft-border); color: #333; font-weight: 400; font-size:1.7rem; line-height: 1.6; }
.menu-content .org-node-ceo { left: 615px; top: 14px; width: 170px; height: 170px; }
.menu-content .org-line-ceo-manager { left: 699px; top: 184px; width: 1px; height: 161px; }
/* 운영위원회 — 센터장→실장 라인 중간 지점에서 점선으로 오른쪽으로 분기(실장 산하가 아닌 센터장 직속 자문기구) */
.menu-content .org-line-committee-h { left: 699px; top: 262px; width: 309.5px; }
.menu-content .org-node-committee { left: 1008.5px; top: 235px; width: 300px; height: 55px; }
.menu-content .org-node-manager { left: 549px; top: 345px; width: 300px; height: 55px; }
.menu-content .org-line-manager-trunk { left: 699px; top: 401px; width: 1px; height: 88px; }
.menu-content .org-line-branch-h { left: 241.5px; top: 489px; width: 917px; height: 1px; }
.menu-content .org-line-branch-v-legal { left: 241.5px; top: 490px; width: 1px; height: 70px; }
.menu-content .org-line-branch-v-edu { left: 699px; top: 490px; width: 1px; height: 70px; }
.menu-content .org-line-branch-v-welfare { left: 1158.5px; top: 490px; width: 1px; height: 70px; }
.menu-content .org-node-legal { left: 91.5px; width: 300px; }
.menu-content .org-node-edu { left: 549px; width: 300px; }
.menu-content .org-node-welfare { left: 1008.5px; width: 300px; }
.menu-content .org-box-title-box { top: 560px; height: 55px; }
.menu-content .org-box-desc-box { top: 630px; height: 92.4px; }
.menu-content .orgchart-mobile { display: none; max-width: 520px; margin: 0 auto; text-align: center; }
.menu-content .om-box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 18px; border-radius: 10px; font-weight: 700; font-size:1.7rem; line-height: 1.3; }
.menu-content .om-lv1 { background: linear-gradient(135deg,#14b8a6,var(--primary)); color: #fff; box-shadow: 0 10px 22px rgba(29,47,155,.22); }
.menu-content .om-lv2 { margin-top: 20px; background: var(--primary); color: #fff; box-shadow: 0 10px 22px rgba(29,47,155,.22); }
.menu-content .om-lv3 { margin-top: 20px; border: 2px dashed var(--soft-border); color: var(--primary); background: #fff; }
.menu-content .om-connector { width: 2px; height: 20px; background: #ddd; margin: 0 auto; }
/* 센터장~운영위원회~실장 구간도 3팀 구간과 동일하게, 박스 뒤로 하나의 라인이 전체 높이만큼
   길게 이어지게 한다 — .om-trunk를 relative 컨테이너로 두고 그 안에서 라인을 top:0~bottom:0로
   꽉 채운 뒤, 박스들은 z-index로 라인 위에 그려지게 한다 */
.menu-content .om-trunk { position: relative; }
.menu-content .om-trunk .om-box { position: relative; z-index: 1; }
/* 운영위원회 아래 3팀 박스 구간은 연결 라인 없이 박스만 표시 */
.menu-content .om-branch { margin-top: 20px; }
.menu-content .om-connector--long { position: absolute; left: 50%; top: 0; bottom: 0; height: auto; transform: translateX(-50%); margin: 0; z-index: 0; }
.menu-content .om-row { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 20px; }
.menu-content .om-team { display: flex; flex-direction: column; gap: 8px; }
.menu-content .om-team .om-box { background: linear-gradient(135deg,#3f7be0,#2952c7); color: #fff; box-shadow: 0 4px 14px rgba(41,82,199,.25); }
.menu-content .om-team .om-box-desc-box { background: #fff; border: 1.5px solid var(--soft-border); color: #333; box-shadow: none; }
/* .org-chart는 1400px 고정폭 — 1024px 구간은 가로 스크롤 대신 화면 폭에 맞춰 통째로 축소(scale)해서
   다이어그램 형태를 그대로 유지하고, 767px 이하부터는 모바일(.orgchart-mobile) 버전으로 전환한다.
   96vw = content-page 좌우 여백(2vw씩)을 제외한 실제 표시 가능 폭 근사치. */
@media (max-width: 1024px) {
  .menu-content .orgchart-scroll {
    overflow: hidden; display: flex; justify-content: center;
    height: calc(760px * calc(96vw / 1300px));
  }
  .menu-content .org-chart { transform: scale(calc(96vw / 1300px)); transform-origin: top center; flex: none; }
}
@media (max-width: 767px) {
  .menu-content .org-highlight { padding: 32px 24px; }
  .menu-content .org-highlight-lead { font-size:2rem; }
  .menu-content .orgchart-scroll { display: none; }
  .menu-content .orgchart-mobile { display: block; }
  .menu-content .om-box { padding: 15px 10px; }
}
@media (max-width: 480px) {
  .menu-content .org-highlight { padding: 25px 20px; margin-bottom: 40px; }
  .menu-content .org-highlight-lead { font-size:1.8rem; }
}

/* 부서별 연락처 카드 — 조직도 하단, 팀별 대표번호 안내 전용 */
.menu-content .org-contact-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.menu-content .org-contact-cell {
  box-sizing: border-box; border-radius: var(--radius);
  padding: 32px 24px; text-align: center; background: var(--surface);
  transition: box-shadow .15s, transform .15s;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  column-gap: 5px; row-gap: 10px;
}
.menu-content .org-contact-cell:hover { box-shadow: 0 10px 24px rgba(29,47,155,.12); transform: translateY(-3px); }
.menu-content .org-contact-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3.2rem; height: 3.2rem; color: var(--primary);
}
.menu-content .org-contact-icon svg { width: 65%; height: 65%; }
.menu-content .org-contact-name { flex: 1 1 100%; margin: 0; font-size:1.8rem; font-weight: 700; color: var(--ink); }
.menu-content .org-contact-num { margin: 0; font-size:2.1rem; font-weight: 700; color: var(--primary); letter-spacing: -.01em; }
@media (max-width: 767px) {
  .menu-content .org-contact-grid { grid-template-columns: 1fr; gap: 14px; }
  .menu-content .org-contact-cell { padding: 18px 16px; }
}

/* 오시는 길(.loc-*) — 전용, sites/main/content/menu-14.html에서 클래스만 사용 — 인라인 style 금지, 값 수정은 여기서 */
.menu-content .loc-map-wrap { position: relative; }
.menu-content .loc-map { height: 550px; border: 1px solid #ddd; border-radius: 5px; overflow: hidden; }
/* 다음(카카오) 지도 위젯이 렌더링 시 동적으로 삽입하는 컨트롤·안내 영역 — 지도만 남기고 정리 */
.menu-content .wrap_controllers { display: none !important; }
.menu-content .root_daum_roughmap .cont { display: none !important; }
/* 지도 위젯이 삽입하는 테두리 장식 4개(요청사항으로 제거) */
.menu-content .map_border.border1, .menu-content .map_border.border2, .menu-content .map_border.border3, .menu-content .map_border.border4 { display: none !important; }
/* 지도 위젯은 스크립트가 mapWidth:1600/mapHeight:550로 고정 픽셀 삽입 — .loc-map(래퍼)의 반응형
   높이(1024/767/480 각 구간)만 따라가고 위젯 자체는 안 줄어들어 잘려 보이던 문제 수정.
   위젯이 실제로 그리는 요소(컨테이너·iframe)를 전부 100%로 강제해 래퍼 크기에 맞춰 다시 반응형이 되게 한다. */
#daumRoughmapContainer1784104173026 { width: 100% !important; height: 100% !important; }
#daumRoughmapContainer1784104173026 .root_daum_roughmap { width: 100% !important; height: 100% !important; }
#daumRoughmapContainer1784104173026 iframe { width: 100% !important; height: 100% !important; }
/* 네이버/카카오 지도 바로가기 — 지도 바깥, 지도 위쪽에 배치(지도를 덮지 않음) */
.menu-content .loc-map-actions { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 12px; }
.menu-content .loc-map-action-btn {
  display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size:1.4rem;
  width: 128px; box-sizing: border-box; padding: 9px 16px; border-radius: 999px; background: #fff; color: var(--ink);
  transition: background .15s, color .15s;
}
/* 카카오맵 — 기본 흰 배경+카카오 옐로우 테두리, 호버 시 카카오 옐로우로 배경 채움(글자는 어둡게) */
.menu-content .loc-map-action-btn--kakao { border: 1.5px solid #FEE500; }
.menu-content .loc-map-action-btn--kakao:hover { background: #FEE500; color: #191919; }
/* 네이버지도 — 기본 흰 배경+네이버 그린 테두리, 호버 시 네이버 그린으로 배경 채움(글자는 흰색) */
.menu-content .loc-map-action-btn--naver { border: 1.5px solid #03C75A; }
.menu-content .loc-map-action-btn--naver:hover { background: #03C75A; color: #fff; }
/* 주소·운영시간·대표전화·팩스 4항목 — 각각 개별 테두리 카드로 분리하고, 라벨 배지·값 모두 가운데 정렬 */
.menu-content .loc-info-grid { margin-top: 40px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.menu-content .loc-info-cell { box-sizing: border-box; border: 1px solid #eee; border-radius: 14px; padding: 24px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.menu-content .loc-label-badge { display: block; width: 100%; box-sizing: border-box; background: #f5f5f5; color: var(--primary); font-weight: 700; font-size:1.6rem; padding: 10px 20px; border-radius: 8px; margin-bottom: 15px; }
/* 타이틀 밑 내용(값)을 카드 남은 높이 안에서 위아래 auto 여백으로 세로 중앙 정렬 */
.menu-content .loc-label-badge + * { margin-top: auto; }
.menu-content .loc-info-cell > :last-child { margin-bottom: auto; }
.menu-content .loc-big-num { font-size:1.8rem; font-weight: 700; color: var(--ink); word-break: keep-all; }
.menu-content .loc-detail { margin-top: 14px; font-size:1.5rem; color: var(--muted); }
.menu-content .loc-detail b { color: var(--ink); }
.menu-content .loc-bus-section { margin-top: 56px; }
.menu-content .loc-bus-head { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.menu-content .loc-bus-panel { background: var(--surface); border-radius: var(--radius); padding: 44px 48px; overflow: hidden; }
.menu-content .loc-bus-title { margin: 0 0 32px; font-size:2.3rem; font-weight: 700; color: var(--ink); text-align: center; }
.menu-content .loc-bus-row { display: flex; align-items: flex-end; gap: 40px; }
/* width만 지정하고 height는 auto로 둬 viewBox 원본 비율 그대로 스케일(찌그러짐·잘림 방지) */
.menu-content .loc-bus-decor { flex: none; width: 260px; height: auto; align-self: flex-end; margin: 0 0 -65px -90px; opacity: .3; }
.menu-content .loc-bus-content { flex: 1; min-width: 0; }
.menu-content .loc-bus-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.menu-content .loc-bus-card { background: #fff; border-radius: 12px; padding: 30px 25px; }
.menu-content .loc-bus-name { font-size:2rem; font-weight: 700; color: var(--ink); text-align: center; margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px dashed #ddd; }
.menu-content .loc-bus-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.menu-content .loc-bus-badge { display: inline-flex; align-items: center; justify-content: center; font-size:1.7rem; color: var(--primary); font-weight: 500; padding: 4px 16px; background: var(--soft); border-radius: 999px; }
.menu-content .loc-bus-btn { display: flex; align-items: center; justify-content: center; gap: 6px; background: var(--primary); color: #fff; font-weight: 700; font-size:1.7rem; padding: 15px 10px; border-radius: 8px; transition: background .15s; }
/* .menu-content a:hover(전역, color:var(--skin-accent))가 이 버튼보다 specificity가 높아 hover 시
   글자색이 바뀌던 문제 — hover 전용 색을 명시해 전역 규칙을 덮어써야 함(.edu-cta와 동일 패턴). */
.menu-content .loc-bus-btn:hover { background: var(--primary-dark); color: #fff; }
@media (max-width: 1024px) {
  .menu-content .loc-info-grid { grid-template-columns: repeat(2, 1fr); }
  /* 버스 아이콘을 줄여 카드 2개(부광상가/순천향병원건너)에 더 넓은 폭을 확보 — 배지·버튼이 좁아져 깨지는 것 방지 */
  .menu-content .loc-bus-row { gap: 24px; }
  .menu-content .loc-bus-decor { display: none; }
  .menu-content .loc-bus-panel { padding: 36px 32px; }
  .menu-content .loc-bus-card { padding: 26px 20px; }
}
@media (max-width: 767px) {
  .menu-content .loc-map { height: 340px; }
  .menu-content .wrap_map { height: 340px !important; }
  .menu-content .loc-label-badge { font-size:1.5rem; }
  .menu-content .loc-big-num { font-size:1.5rem; }
  .menu-content .loc-detail { font-size:1.5rem; }
  .menu-content .loc-map-actions { justify-content: stretch; }
  .menu-content .loc-map-action-btn { flex: 1 1 0; width: auto; font-size:1.3rem; padding: 7px 12px; }
  .menu-content .loc-bus-panel { padding: 28px 22px; }
  .menu-content .loc-bus-decor { display: none; }
  .menu-content .loc-bus-title { font-size:1.8rem; }
  .menu-content .loc-bus-grid { grid-template-columns: 1fr; }
  .menu-content .loc-bus-name { font-size:1.6rem; }
  .menu-content .loc-bus-badge { font-size:1.5rem; }
  .menu-content .loc-bus-btn { font-size:1.5rem; }
}
@media (max-width: 480px) {
  .menu-content .loc-map { height: 240px; }
  .menu-content .loc-bus-panel { padding: 22px 16px; }
  .menu-content .loc-info-grid { grid-template-columns: 1fr; }
}

/* 안내형 정보 페이지 공통(.info-*, .cta-*, .calc-*) — 전용, sites/main/content/menu-21·23·24·25.html에서
   클래스만 사용 — 인라인 style 금지, 값 수정은 여기서. 여러 메뉴가 공유하므로 페이지별로 값이 다른
   부분은 컨텍스트 선택자(.info-card .mc-content 등)로 재정의한다. */
.menu-content .subtab-panel { display: block; }
.menu-content .info-box { max-width: 1400px; margin: 0 auto 56px; padding: 48px 44px; border-radius: var(--radius); background: var(--surface); text-align: center; }
.menu-content .info-box-tit { margin: 0 0 15px; font-size:2.5rem; line-height: 1.6; font-weight: 700; color: var(--primary); letter-spacing: -.02em; word-break: keep-all; }
.menu-content .info-h3 { margin: 0 0 20px; font-size:2.8rem; font-weight: 700; }
.menu-content .info-h3--sp { margin-top: 50px; }
.menu-content .link-btn { display: inline-flex; align-items: center; gap: 4px; background: var(--primary); color: #fff !important; font-weight: 700; font-size:1.6rem; padding: 7px 14px; border-radius: 6px; text-decoration: none; }
.menu-content .link-btn:hover { background: var(--primary-dark); }
.menu-content .legal-cta-wrap { text-align: center; margin-top: 32px; }
.menu-content .legal-intro { margin: 0 0 32px; font-size:2rem; font-weight: 600; color: var(--ink); text-align: left; }
/* 상담 이용안내(menu-21) 카드형 레이아웃 — 노동법률상담/일반법률상담 2장, 항목별 아이콘+라벨 행 */
.menu-content .legal-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }
.menu-content .legal-card { border: 2px dashed var(--accent); border-radius: 20px; padding: 32px; background: #fff; }
.menu-content .legal-card--labor {
  --accent: var(--primary); --accent-soft: var(--soft);
  --accent-tint: color-mix(in srgb, var(--primary) 6%, #fff); --accent-border: color-mix(in srgb, var(--primary) 16%, #fff);
}
.menu-content .legal-card--general {
  --accent: #17a589; --accent-soft: color-mix(in srgb, #17a589 10%, #fff);
  --accent-tint: color-mix(in srgb, #17a589 6%, #fff); --accent-border: color-mix(in srgb, #17a589 16%, #fff);
}
.menu-content .legal-card-head {
  display: flex; align-items: center; gap: 14px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px dashed var(--accent);
}
.menu-content .legal-card-icon {
  flex: none; width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: #f7f7f7; color: var(--accent);
}
.menu-content .legal-card-icon svg { width: 30px; height: 30px; }
.menu-content .legal-card-title { margin: 0; padding: 0; font-size:2.3rem; font-weight: 700; color: var(--accent); }
.menu-content .legal-card-row { display: flex; flex-direction: column; gap: 10px; padding: 18px 0; }
.menu-content .legal-card-row-label-line { display: flex; align-items: center; gap: 8px; }
.menu-content .legal-card-row-icon { flex: none; display: flex; color: var(--accent); }
.menu-content .legal-card-row-icon svg { width: 22px; height: 22px; }
.menu-content .legal-card-row-label { font-size:1.7rem; font-weight: 700; color: var(--ink); }
.menu-content .legal-card-row-content { padding: 20px 15px; border-radius: 12px; background: #f5f5f5; }
.menu-content .legal-card-row-text { margin: 0; font-size:1.7rem; color: var(--ink); }
.menu-content .legal-card-row-text strong { color: var(--accent); }
.menu-content .legal-card-list { margin: 0; padding: 0; list-style: none; font-size:1.7rem; color: var(--ink); line-height: 1.7; }
.menu-content .legal-chip-list { display: flex; flex-wrap: wrap; gap: 8px; }
.menu-content .legal-chip { display: inline-flex; align-items: center; font-size:1.7rem; font-weight: 500; color: #000; background: #fff; border: 1px solid #ddd; padding: 6px 14px; border-radius: 999px; }
.menu-content .legal-btn-group { display: flex; gap: 8px; }
.menu-content .legal-btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; font-size:1.7rem; font-weight: 700; color: #fff; background: #000; border: 1.5px solid #000; padding: 13px 15px; border-radius: 8px; transition: background .15s, color .15s; }
.menu-content .legal-btn:hover { background: #fff; border-color: #000; color: #000; }
.menu-content .legal-btn--primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.menu-content .legal-btn--primary:hover { background: #fff; border-color: var(--accent); color: var(--accent); }
.menu-content .legal-notice {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 50px; padding: 25px 20px; border-radius: 10px;
  background: color-mix(in srgb, #e0932a 10%, #fff); color: #a15c0e; font-size:1.7rem; font-weight: 600;
}
.menu-content .legal-notice-icon { flex: none; display: flex; align-items: center; }
.menu-content .twocol-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
.menu-content .info-card { padding: 36px 32px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; }
.menu-content .info-card .mc-content { line-height: 1.8; color: var(--muted); }
.menu-content .info-card-head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.menu-content .info-card-num { display: block; font-size:1.7rem; font-weight: 700; color: var(--primary); letter-spacing: .08em; }
.menu-content .info-card-title { margin: 2px 0 0; font-size:1.9rem; font-weight: 700; }
.menu-content .icon-circle { width: 56px; height: 56px; border-radius: 50%; background: var(--soft); color: var(--primary); display: flex; align-items: center; justify-content: center; flex: none; }
.menu-content .icon-circle img { width: 28px; height: 28px; }
.menu-content .target-row { display: flex; align-items: center; gap: 20px; padding: 30px 25px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; margin-bottom: 15px; }
.menu-content .target-row .mc-content { line-height: 1.7; }
.menu-content .info-warning { display: flex; align-items: flex-start; gap: 8px; line-height: 1.6; color: var(--muted); }
.menu-content .info-warning b { color: var(--ink); }
.menu-content .info-warning-em { color: #e0392a; }
.menu-content .info-warning-icon { flex: none; margin-top: 2px; }
.menu-content .cta-row { margin-top: 32px; }
.menu-content .cta-row:not(.cta-row--single) { display: flex; align-items: center; justify-content: center; gap: 12px; }
.menu-content .cta-row--single { text-align: center; }
.menu-content .cta-btn { display: inline-flex; align-items: center; gap: 14px; padding: 15px 34px; border-radius: 10px; background: var(--primary); color: #fff; font-size:1.7rem; font-weight: 700; }
.menu-content .cta-btn--outline { gap: 10px; border: 2px solid var(--primary); background: #fff; color: var(--primary); }
.menu-content .calc-grid { display: flex; gap: 20px; margin-bottom: 16px; }
.menu-content .calc-card {
  flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-size:2.1rem; font-weight: 700;
  color: var(--calc-color, var(--primary));
  background: color-mix(in srgb, var(--calc-color, var(--primary)) 8%, #fff);
  border: 1.5px solid var(--calc-color, var(--primary));
  padding: 34px 34px; border-radius: 16px; transition: background .15s, color .15s, border-color .15s;
}
.menu-content .calc-card:hover { background: var(--calc-color, var(--primary)); color: #fff; }
.menu-content .calc-card:hover .calc-card-ext { background: rgba(255,255,255,.22); color: #fff; }
.menu-content .calc-card-num { display: none; }
.menu-content .calc-card-label { flex: 1; min-width: 0; }
.menu-content .calc-card-ext {
  flex: none; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--calc-color, var(--primary)) 14%, #fff); color: var(--calc-color, var(--primary)); transition: background .15s, color .15s;
}
.menu-content .calc-card--retire  { --calc-color: #15527A; }
.menu-content .calc-card--annual  { --calc-color: #17a589; }
.menu-content .calc-card--wage    { --calc-color: #b7791f; }
.menu-content .calc-card--insure  { --calc-color: #6c5ce7; }
/* 안내 문구 박스(.mc-notice) — 여러 menu-*.html이 공유하는 공통 컴포넌트(구 .calc-note/.relief-notice를
   통합, 완전히 동일한 스타일이라 중복 정의 대신 여기 하나로 합침). */
.menu-content .mc-notice {
  display: flex; align-items: flex-start; gap: 10px; margin: 0; line-height: 1.6; font-size:1.6rem; font-weight: 600;
  border-radius: 10px; color: #000;
}
.menu-content .mc-notice-icon { flex: none; margin-top: 3px; }

@media (max-width: 1024px) {
  .menu-content .calc-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
  .menu-content .twocol-grid { gap: 18px; }
  .menu-content .legal-cards { gap: 18px; }
  .menu-content .legal-card { padding: 26px 22px; }
  .menu-content .legal-intro { font-size:1.8rem; }
  .menu-content .legal-card-icon { width: 48px; height: 48px; }
  .menu-content .legal-card-icon svg { width: 26px; height: 26px; }
  .menu-content .legal-card-title { font-size:2rem; }
  .menu-content .legal-card-row-icon svg { width: 20px; height: 20px; }
  .menu-content .legal-card-row-label { font-size:1.6rem; }
  .menu-content .legal-card-row-content { padding: 16px 14px; }
  .menu-content .legal-card-row-text, .menu-content .legal-card-list, .menu-content .legal-chip { font-size:1.6rem; }
  .menu-content .legal-btn { font-size:1.5rem; padding: 11px 12px; }
  .menu-content .legal-notice { font-size:1.5rem; padding: 18px 16px; margin-top: 36px; }
}
@media (max-width: 767px) {
  .menu-content .info-box { padding: 28px 24px; margin-bottom: 32px; }
  .menu-content .info-box-tit { font-size:2rem; }
  .menu-content .cta-btn { padding: 13px 24px; gap: 10px; }
  .menu-content .twocol-grid { grid-template-columns: 1fr; }
  .menu-content .info-card { padding: 26px 22px; }
  .menu-content .target-row { padding: 22px 18px; }
  .menu-content .cta-row:not(.cta-row--single) { flex-direction: column; align-items: stretch; }
  .menu-content .cta-row .cta-btn { justify-content: center; padding: 13px 20px; }
  .menu-content .calc-grid { grid-template-columns: 1fr; }
  .menu-content .calc-card { font-size:1.6rem; padding: 20px 22px; }
  .menu-content .calc-card-ext { width: 36px; height: 36px; }
  .menu-content .mc-notice { font-size:1.5rem; padding: 14px 16px; }
  .menu-content .legal-cards { grid-template-columns: 1fr; }
  .menu-content .legal-card { padding: 24px 20px; }
  .menu-content .legal-card-icon { width: 44px; height: 44px; }
  .menu-content .legal-card-icon svg { width: 24px; height: 24px; }
  .menu-content .legal-card-title { font-size:1.9rem; }
  .menu-content .legal-card-row-icon svg { width: 18px; height: 18px; }
  .menu-content .legal-card-row-label { font-size:1.5rem; }
  .menu-content .legal-card-row-content { padding: 14px 12px; }
  .menu-content .legal-card-row-text, .menu-content .legal-card-list, .menu-content .legal-chip { font-size:1.5rem; }
  .menu-content .legal-btn { font-size:1.4rem; padding: 10px 10px; }
  .menu-content .legal-notice { font-size:1.4rem; padding: 16px 14px; margin-top: 28px; }
}
@media (max-width: 480px) {
  .menu-content .info-box { padding: 22px 18px; margin-bottom: 24px; }
  .menu-content .info-box-tit { font-size:1.8rem; }
  .menu-content .info-card { padding: 22px 18px; }
  .menu-content .icon-circle { width: 44px; height: 44px; }
  .menu-content .icon-circle img { width: 22px; height: 22px; }
  .menu-content .target-row { flex-direction: column; align-items: flex-start; gap: 14px; padding: 20px 16px; }
  .menu-content .cta-row .cta-btn { padding: 12px 16px; font-size:1.6rem; }
  .menu-content .cta-row--single .cta-btn { width: 100%; box-sizing: border-box; }
  .menu-content .calc-card { font-size:1.5rem; padding: 18px 18px; }
  .menu-content .calc-card-ext { width: 32px; height: 32px; }
  .menu-content .legal-card { padding: 20px 16px; }
  .menu-content .legal-intro { font-size:1.7rem; margin-bottom: 24px; }
  .menu-content .legal-card-icon { width: 40px; height: 40px; }
  .menu-content .legal-card-icon svg { width: 22px; height: 22px; }
  .menu-content .legal-card-title { font-size:1.8rem; }
  .menu-content .legal-card-row-content { padding: 12px 10px; }
  .menu-content .legal-btn-group { flex-direction: column; align-items: stretch; }
  .menu-content .legal-btn { justify-content: center; font-size:1.4rem; padding: 10px; }
  .menu-content .legal-notice { flex-direction: column; text-align: center; padding: 16px; margin-top: 24px; }
}

/* 권리구제지원(.relief-*) — 전용, sites/main/content/menu-23.html에서 클래스만 사용 — 인라인 style
   금지, 값 수정은 여기서. 같은 그룹의 다른 메뉴(.info-* 등)와 공유하지 않는 이 페이지 전용 디자인. */
.menu-content .relief-section + .relief-section { margin-top: 56px; }

.menu-content .relief-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.menu-content .relief-cards--single { grid-template-columns: 1fr; }
.menu-content .relief-cards--single .relief-card { padding: 48px 48px; }
.menu-content .relief-cards--single .relief-card-head {
  flex-direction: row; align-items: center; gap: 18px; margin-bottom: 20px;
}
.menu-content .relief-cards--single .relief-card-icon { width: 64px; height: 64px; }
.menu-content .relief-cards--single .relief-card-icon img { width: 30px; height: 30px; }
.menu-content .relief-cards--single .relief-card-title { font-size:2.2rem; }
.menu-content .relief-cards--single .relief-card-desc { font-size:1.8rem; margin-bottom: 20px; }
.menu-content .relief-card { padding: 36px 32px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; }
.menu-content .relief-card-head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.menu-content .relief-card-icon { flex: none; width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.menu-content .relief-card-icon img { width: 26px; height: 26px; }
.menu-content .relief-card-icon--legal, .menu-content .relief-card-icon--edu { background: var(--soft); color: var(--primary); }
.menu-content .relief-card-title { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; margin: 0; font-size:2rem; font-weight: 700; color: var(--ink); }
.menu-content .relief-card-num { font-size:1.6rem; font-weight: 700; color: var(--primary); letter-spacing: .06em; }
.menu-content .relief-card-desc { margin: 0 0 20px; font-size:1.7rem; line-height: 1.7; color: var(--muted); }
.menu-content .relief-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.menu-content .relief-tag { display: inline-flex; align-items: center; font-size:1.5rem; font-weight: 600; color: var(--primary); background: var(--soft); padding: 7px 16px; border-radius: 999px; }

.menu-content .relief-target-grid { display: flex; align-items: stretch; gap: 24px; margin-bottom: 16px; }
.menu-content .relief-target-card {
  display: flex; align-items: center; gap: 16px;
  flex: 1 1 0; min-width: 0;
  padding: 24px 28px; border-radius: var(--radius); box-sizing: border-box;
  background: color-mix(in srgb, #DDEEF5 45%, #fff);
}
.menu-content .relief-target-card-icon { flex: none; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #fff; color: var(--primary); }
.menu-content .relief-target-card-text { margin: 0; font-size:1.7rem; font-weight: 700; color: var(--ink); }

.menu-content .relief-steps { display: flex; align-items: center; }
.menu-content .relief-step { flex: 1; min-width: 0; position: relative; padding-top: 40px; text-align: center; }
.menu-content .relief-step-icon {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 1; width: 64px; height: 64px; border-radius: 50%;
  background: var(--primary); color: #fff; box-shadow: 0 6px 14px rgba(16,42,99,.2);
  display: flex; align-items: center; justify-content: center;
}
.menu-content .relief-step-icon svg { width: 28px; height: 28px; }
.menu-content .relief-step-card {
  width: 100%; box-sizing: border-box; padding: 34px 16px 18px; border: 1px solid #ddd; border-radius: 14px; background: #fff;
}
.menu-content .relief-step-title { display: block; font-size:1.7rem; font-weight: 700; color: var(--ink); }
.menu-content .relief-step-desc { margin: 4px 0 0; font-size:1.4rem; color: var(--muted); }
.menu-content .relief-chevron { flex: none; display: flex; align-items: center; justify-content: center; width: 28px; margin-top: 20px; color: #ccc; }


@media (max-width: 1024px) {
  .menu-content .relief-cards { gap: 18px; }
  .menu-content .relief-card { padding: 28px 24px; }
  .menu-content .relief-card-icon { width: 46px; height: 46px; }
  .menu-content .relief-card-icon img { width: 24px; height: 24px; }
  .menu-content .relief-target-grid { flex-wrap: wrap; gap: 20px; }
  .menu-content .relief-target-card { flex: 1 1 100%; padding: 22px 26px; }
  .menu-content .relief-step-icon { width: 56px; height: 56px; }
  .menu-content .relief-step-icon svg { width: 24px; height: 24px; }
}
@media (max-width: 767px) {
  .menu-content .relief-cards { grid-template-columns: 1fr; }
  .menu-content .relief-cards--single .relief-card { padding: 28px 24px; }
  .menu-content .relief-cards--single .relief-card-head { gap: 16px; margin-bottom: 18px; }
  .menu-content .relief-card-title { font-size:1.8rem; }
  .menu-content .relief-card-num { font-size:1.4rem; }
  .menu-content .relief-card-desc { font-size:1.6rem; }
  .menu-content .relief-tag { font-size:1.4rem; padding: 6px 14px; }
  .menu-content .relief-target-card { padding: 20px 22px; }
  .menu-content .relief-target-card-icon { width: 44px; height: 44px; }
  .menu-content .relief-target-card-text { font-size:1.6rem; }
  .menu-content .relief-steps { flex-direction: column; align-items: stretch; gap: 8px; }
  .menu-content .relief-step { position: static; padding-top: 0; display: flex; flex-direction: row; align-items: center; text-align: left; gap: 16px; }
  .menu-content .relief-step-icon { position: static; top: auto; left: auto; transform: none; flex: none; width: 48px; height: 48px; }
  .menu-content .relief-step-icon svg { width: 22px; height: 22px; }
  .menu-content .relief-step-card { padding: 16px 18px; }
  .menu-content .relief-step-title { font-size:1.6rem; }
  .menu-content .relief-step-desc { font-size:1.3rem; }
  .menu-content .relief-chevron { width: 48px; align-self: flex-start; margin: 0; transform: rotate(90deg); }
}
@media (max-width: 480px) {
  .menu-content .relief-card { padding: 24px 20px; }
  .menu-content .relief-card-icon { width: 42px; height: 42px; }
  .menu-content .relief-card-icon img { width: 22px; height: 22px; }
  .menu-content .relief-card-title { font-size:1.7rem; }
  .menu-content .relief-card-desc { font-size:1.5rem; }
  .menu-content .relief-target-grid { gap: 14px; }
  .menu-content .relief-target-card { padding: 18px 18px; gap: 12px; }
  .menu-content .relief-target-card-icon { width: 40px; height: 40px; }
  .menu-content .relief-target-card-text { font-size:1.5rem; }
  .menu-content .relief-step-icon { width: 44px; height: 44px; }
  .menu-content .relief-step-icon svg { width: 20px; height: 20px; }
}

/* 교육사업 안내(.edu-*) — 전용, sites/main/content/menu-31·32.html에서 클래스만 사용 — 인라인 style
   금지, 값 수정은 여기서. menu-31(노동교육/기획·테마특강)은 별도 페이지로 나누지 않고 .edu-section을
   반복해 한 페이지에 순서대로 쌓는다(탭 전환 아님). */
.menu-content .edu-section + .edu-section { margin-top: 100px; }
.menu-content .edu-hero-photo { width: 100%; height: 430px; margin-bottom: 60px; border-radius: var(--radius); overflow: hidden; }
.menu-content .edu-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.menu-content .edu-two-col { max-width: 1400px; margin: 0 auto; display: flex; gap: 80px; align-items: flex-start; }
.menu-content .edu-col-intro { flex: none; width: 40%; }
.menu-content .edu-headline { margin: 0 0 24px; font-size:5rem; font-weight: 700; line-height: 1.35; color: var(--ink); letter-spacing: -.02em; }
.menu-content .edu-intro { margin: 0; font-size:1.7rem; font-weight: 500; line-height: 1.6; color: #666; }
.menu-content .edu-lead { margin: 0; font-size:1.7rem; line-height: 1.8; color: #666; }
.menu-content .edu-subtitle { margin: 0 0 20px; font-size:2.4rem; font-weight: 700; line-height: 1.5; color: var(--primary); }
.menu-content .edu-subtitle2 { margin: 0 0 14px; font-size:2rem; font-weight: 700; line-height: 1.6; color: var(--ink); }
.menu-content .edu-cta { margin-top: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 28px; border-radius: var(--btn-radius); background: var(--primary); color: #fff; font-weight: 700; font-size:1.7rem; }
/* .menu-content a:hover(전역, color:var(--skin-accent))가 --skin-accent==--skin-primary라 이 버튼의
   배경색과 같아져 hover 시 글자가 안 보이던 문제 — hover 전용 색을 명시해 전역 규칙을 덮어써야 함. */
.menu-content .edu-cta:hover { background: var(--primary-dark); color: #fff; }
.menu-content .edu-cta-group { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; }
.menu-content .edu-cta-group .edu-cta { margin-top: 0; }
.menu-content .edu-cta--outline { background: transparent; border: 2px solid var(--primary); color: var(--primary); }
.menu-content .edu-cta--outline:hover { background: var(--soft); color: var(--primary); }
.menu-content .edu-col-detail { flex: 1; min-width: 0; }
.menu-content .edu-detail-heading { margin: 0 0 20px; font-size:2.8rem; font-weight: 700; color: var(--ink); }
.menu-content .edu-detail-list { border-top: 1px solid var(--border); }
.menu-content .edu-detail-row { display: flex; align-items: flex-start; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--border); }
.menu-content .edu-detail-icon { flex: none; width: 24px; color: var(--primary); display: flex; align-items: center; }
.menu-content .edu-detail-label { flex: none; width: 140px; font-size:1.8rem; font-weight: 700; color: var(--ink); }
.menu-content .edu-detail-value { flex: 1; font-size:1.7rem; line-height: 1.7; color: #666; }
.menu-content .edu-detail-list-value { margin: 0; padding: 0; list-style: none; }
.menu-content .edu-detail-list-value li { position: relative; padding-left: 14px; }
.menu-content .edu-detail-list-value li + li { margin-top: 6px; }
.menu-content .edu-detail-list-value li::before { content: '-'; position: absolute; left: 0; top: 0; color: #999; }
@media (max-width: 1024px) {
  .menu-content .edu-two-col { flex-direction: column; gap: 40px; }
  .menu-content .edu-col-intro { width: 100%; }
  .menu-content .edu-col-detail { width: 100%; }
  .menu-content .edu-headline { font-size:3.8rem; }
}
@media (max-width: 767px) {
  .menu-content .edu-detail-value { font-size:1.5rem; }
  .menu-content .edu-hero-photo { height: 220px; margin-bottom: 32px; }
  .menu-content .edu-headline { font-size:3rem; }
  .menu-content .edu-detail-row { flex-direction: column; gap: 8px; padding: 20px 0; }
  .menu-content .edu-detail-icon { display: none; }
  .menu-content .edu-detail-label { width: auto; }
  .menu-content .edu-section + .edu-section { margin-top: 50px; }
  /* 온라인 신청/교육신청서 다운로드 버튼 — 좁은 폭에서도 줄바꿈 없이 한 줄 유지(요청사항).
     모든 edu-cta 버튼(노동자교육·청소년교육 등)을 edu-cta-group으로 감싸 동일한 마크업을 쓰므로,
     여기서 그룹 폭에 꽉 차게(flex:1) + 크기 축소가 페이지마다 다르지 않고 항상 함께 적용된다. */
  .menu-content .edu-cta-group { flex-wrap: nowrap; gap: 8px; }
  .menu-content .edu-cta-group .edu-cta { flex: 1; min-width: 0; padding: 12px 10px; gap: 6px; font-size:1.4rem; white-space: nowrap; }
  .menu-content .edu-cta-group .edu-cta svg { flex: none; width: 14px; height: 14px; }
}
@media (max-width: 480px) {
  .menu-content .edu-hero-photo { height: 180px; margin-bottom: 24px; }
  .menu-content .edu-headline { font-size:2.4rem; }
  .menu-content .edu-detail-row { padding: 16px 0; }
}

/* 이동노동자 산재보험료지원(.injury-*) — 전용, sites/main/content/menu-42.html에서 클래스만 사용 — 인라인
   style 금지, 값 수정은 여기서. 상단 소개 박스가 필요하면 다른 서브페이지와 공유하는 .mc-intro(위)를 쓴다. */

.menu-content .injury-section + .injury-section { margin-top: 56px; }

.menu-content .injury-eligibility { display: flex; align-items: stretch; gap: 20px; }
.menu-content .injury-eligibility-list { flex: 1; min-width: 0; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.menu-content .injury-eligibility-list li {
  display: flex; align-items: flex-start; gap: 10px; padding: 18px 20px; border-radius: 12px;
  background: var(--soft); font-size:1.7rem; font-weight: 700; color: var(--ink); line-height: 1.6;
}
.menu-content .injury-eligibility-list li svg { flex: none; margin-top: 2px; color: #000; }
.menu-content .injury-eligibility-side {
  flex: 0 0 340px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  padding: 20px; border: 1.5px dashed var(--primary); border-radius: 12px; text-align: center;
}
.menu-content .injury-eligibility-side-label { font-size:1.7rem; font-weight: 700; color: var(--primary); }
.menu-content .injury-eligibility-side-value { font-size:1.8rem; font-weight: 700; color: var(--ink); }

.menu-content .injury-apply-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.menu-content .injury-apply-card {
  position: relative; box-sizing: border-box; min-height: 220px; padding: 32px 30px;
  border: 1px solid #ddd; border-radius: 14px; background: #fff;
}
.menu-content .injury-apply-name { margin: 0 0 16px; font-size:2.2rem; font-weight: 700; color: var(--ink); }
.menu-content .injury-apply-desc { margin: 0; padding-right: 40px; font-size:1.7rem; line-height: 1.7; color: var(--muted); word-break: break-all; }
.menu-content .injury-apply-desc a { color: var(--primary); font-weight: 700; }
.menu-content .injury-apply-icon { position: absolute; right: 26px; bottom: 26px; display: flex; color: var(--primary); }
.menu-content .injury-apply-icon svg { width: 32px; height: 32px; }

.menu-content .injury-doc-panel { padding: 28px 32px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; }
.menu-content .injury-doc-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.menu-content .injury-doc-list { flex: 1; min-width: 260px; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 20px; }
.menu-content .injury-doc-list li {
  position: relative; padding-left: 26px; font-size:1.7rem; color: var(--ink); line-height: 1.5;
}
.menu-content .injury-doc-list li::before {
  content: ''; position: absolute; left: 0; top: 2px; width: 16px; height: 16px; box-sizing: border-box;
  border: 1.5px solid var(--primary); border-radius: 4px;
}
.menu-content .injury-doc-download {
  flex: none; display: inline-flex; align-items: center; gap: 10px; align-self: center;
  padding: 15px 24px; border-radius: 10px; background: var(--primary); color: #fff;
  font-size:1.7rem; font-weight: 700; white-space: nowrap;
}
.menu-content .injury-doc-download:hover { color: #fff; }
.menu-content .injury-doc-proxy-note { margin: 16px 0 0; font-size:1.7rem; color: var(--muted); }
.menu-content .injury-doc-proxy-note a { color: var(--primary); font-weight: 700; }

.menu-content .injury-notice { margin-top: 20px; padding: 28px 32px; border-radius: var(--radius); background: color-mix(in srgb, #e0932a 10%, #fff); }
.menu-content .injury-notice-title { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font-size:1.8rem; font-weight: 700; color: #a15c0e; }
.menu-content .injury-notice-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.menu-content .injury-notice-list li { position: relative; padding-left: 16px; font-size:1.7rem; line-height: 1.6; color: #8a5209; }
.menu-content .injury-notice-list li::before { content: '·'; position: absolute; left: 0; font-weight: 900; }
.menu-content .injury-notice-list li a { color: inherit; font-weight: 700; text-decoration: underline; }

@media (max-width: 1024px) {
  .menu-content .injury-apply-grid { grid-template-columns: 1fr; gap: 14px; }
  .menu-content .injury-eligibility { flex-direction: column; }
  .menu-content .injury-eligibility-side { flex: none; }
  .menu-content .injury-doc-list { grid-template-columns: 1fr; }
  .menu-content .injury-doc-row { flex-direction: column; align-items: flex-start; }
  .menu-content .injury-doc-download { align-self: flex-end; }
  .menu-content .injury-apply-card { padding: 26px 24px; }
}
@media (max-width: 767px) {
  .menu-content .injury-doc-panel { padding: 22px 20px; }
  .menu-content .injury-doc-row { flex-direction: column; align-items: stretch; }
  .menu-content .injury-doc-download { align-self: stretch; width: 100%; box-sizing: border-box; justify-content: center; }
  .menu-content .injury-section + .injury-section { margin-top: 40px; }
  .menu-content .injury-notice { margin-top: 16px; }
  .menu-content .injury-eligibility-list li { padding: 14px 16px; font-size:1.6rem; }
  .menu-content .injury-eligibility-side { padding: 16px; }
  .menu-content .injury-eligibility-side-label { font-size:1.6rem; }
  .menu-content .injury-eligibility-side-value { font-size:1.7rem; }
  .menu-content .injury-apply-card { padding: 22px 20px; min-height: 0; }
  .menu-content .injury-apply-name { font-size:2rem; margin-bottom: 12px; }
  .menu-content .injury-apply-desc { font-size:1.6rem; padding-right: 0; }
  .menu-content .injury-apply-icon { position: static; display: flex; width: fit-content; margin-top: 14px; margin-left: auto; }
  .menu-content .injury-doc-list li { font-size:1.6rem; }
  .menu-content .injury-doc-download { font-size:1.6rem; padding: 13px 20px; }
  .menu-content .injury-notice-title { font-size:1.7rem; }
  .menu-content .injury-notice-list li { font-size:1.6rem; }
}
@media (max-width: 480px) {
  .menu-content .injury-notice { padding: 22px 20px; margin-top: 14px; }
  .menu-content .injury-apply-card { padding: 20px 18px; }
  .menu-content .injury-apply-name { font-size:1.9rem; }
  .menu-content .injury-apply-desc { font-size:1.5rem; }
  .menu-content .injury-eligibility-list li { font-size:1.5rem; padding: 12px 14px; }
  .menu-content .injury-doc-list li { font-size:1.5rem; }
  .menu-content .injury-notice-list li { font-size:1.5rem; }
}

/* 노동복지 사업 안내(.wf-*) — 전용, sites/main/content/menu-41·42·43.html에서 클래스만 사용(menu-42는
   지원 안내 섹션에서 .wf-info-row/.wf-info-item/.wf-dist-note/.wf-method-badge만 재사용) — 인라인
   style 금지, 값 수정은 여기서. */
.menu-content .wf-box { max-width: 1400px; margin: 0 auto 48px; padding: 40px 44px; border-radius: var(--radius); background: var(--surface); text-align: center; }
.menu-content .wf-box--mb32 { margin-bottom: 32px; }
.menu-content .wf-box--card { max-width: none; margin: 0; padding: 40px 44px; border: 1px solid var(--border); background: #fff; text-align: left; }
.menu-content .wf-lead { margin: 0 0 16px; font-size:2.4rem; font-weight: 700; color: var(--primary); letter-spacing: -.02em; }
.menu-content .wf-lead--lg { font-size:2.5rem; line-height: 1.6; }
.menu-content .wf-lead--sub { margin: 0 0 12px; font-size:2.2rem; color: var(--ink); letter-spacing: normal; }
.menu-content .wf-h3 { font-size:2.4rem; font-weight: 700; margin: 0 0 20px; }
.menu-content .wf-h3--mt56 { margin-top: 56px; }
.menu-content .wf-h3--mt64 { margin-top: 64px; }
.menu-content .wf-h3--mb12 { margin-bottom: 12px; }
.menu-content .wf-h3--left { text-align: left; }
.menu-content .wf-dist-note { margin-bottom: 15px; font-size:1.8rem; color: var(--muted); }
.menu-content .wf-2col { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
.menu-content .wf-photo-card { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fff; }
.menu-content .wf-photo-card-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.menu-content .wf-cardpad { padding: 28px; }
.menu-content .wf-card-title { margin: 0 0 10px; font-size:1.9rem; font-weight: 700; color: var(--primary); }
.menu-content .wf-card-title-sub { font-weight: 500; font-size:1.5rem; color: var(--muted); }
.menu-content .wf-card-body { margin: 0 0 16px; font-size:1.6rem; line-height: 1.7; color: #333; }
.menu-content .wf-card-address { margin: 0 0 20px; font-size:1.7rem; line-height: 1.7; color: #333; }
.menu-content .wf-card-list { margin: 0; padding: 0; list-style: none; font-size:1.5rem; color: var(--muted); line-height: 1.9; }
.menu-content .wf-card-list--mb { margin-bottom: 20px; }
.menu-content .wf-inline-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--primary); }
.menu-content .wf-cta-wrap { text-align: center; margin-top: 40px; }
.menu-content .wf-ctabtn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 26px; border-radius: 10px; background: var(--primary); color: #fff !important; font-size:1.7rem; font-weight: 700; text-decoration: none; }
.menu-content .wf-ctabtn:hover { color: #fff !important; }
.menu-content .wf-ctabtn--wide { padding: 15px 34px; font-size:1.8rem; }
.menu-content .wf-ctabtn--gap14 { gap: 14px; }
.menu-content .wf-classify-head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.menu-content .wf-classify-icon { flex: none; width: 34px; height: 34px; border-radius: 8px; background: #e8792b; display: flex; align-items: center; justify-content: center; }
.menu-content .wf-subhead { margin: 0; font-size:2.6rem; font-weight: 700; color: #e8792b; }
.menu-content .wf-classify-note { margin: 0 0 28px; font-size:1.8rem; font-weight: 700; color: var(--ink); }
.menu-content .wf-badge-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.menu-content .wf-badgecard { padding: 20px 22px; border: 1px solid var(--soft-border); border-radius: 12px; background: var(--surface); }
.menu-content .wf-badgepill { display: inline-block; padding: 9px 20px; border-radius: 999px; background: #332f66; color: #fff; font-size:1.8rem; font-weight: 700; }
.menu-content .wf-badgecard-body { margin: 10px 0 0; padding-left: 4px; font-size:1.6rem; color: #333; }
.menu-content .wf-notebox { padding: 24px 28px; border-radius: var(--radius); background: var(--surface); margin-top: 40px; }
.menu-content .wf-notebox--center { text-align: center; }
.menu-content .wf-notebox--mt56 { margin-top: 56px; }
.menu-content .wf-notebox--warn { background: #fff7e6; border: 1px solid #ffe1a8; }
.menu-content .wf-notebox-text { margin: 0; font-size:1.6rem; color: #333; }
.menu-content .wf-notebox-link { font-weight: 700; }
.menu-content .wf-table-note { display: block; margin-bottom: 8px; color: var(--muted); }
.menu-content .wf-table-subnote { margin-top: 10px; font-size:1.5rem; color: #888; }
.menu-content .wf-table-th-sub { font-weight: 500; font-size:1.5rem; color: var(--muted); }
.menu-content .wf-table-link { font-weight: 700; }
.menu-content .wf-doc-intro { margin: 0 0 24px; font-size:1.6rem; line-height: 1.8; color: var(--muted); }
.menu-content .wf-doctabs { display: flex; gap: 10px; margin-bottom: 20px; }
.menu-content .doc-tab { flex: 1; padding: 16px 20px; border: 1px solid var(--border); border-radius: 12px; background: #fff; color: var(--muted); font-size:1.6rem; font-weight: 700; cursor: pointer; }
.menu-content .doc-tab.on { border-color: var(--primary); background: var(--primary); color: #fff; }
.menu-content .doc-panel { display: none; padding: 32px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.menu-content .doc-panel.on { display: block; }
.menu-content .wf-doc-title { margin: 0 0 16px; font-size:1.7rem; font-weight: 700; }
.menu-content .wf-doc-sublabel { margin: 0 0 10px; font-size:1.6rem; font-weight: 700; color: var(--primary); }
.menu-content .checklist { margin: 0; padding: 0; list-style: none; font-size:1.6rem; line-height: 2; color: #333; }
.menu-content .checklist--mb { margin-bottom: 20px; }
.menu-content .checklist li { position: relative; padding-left: 28px; }
.menu-content .checklist li::before { content: ''; position: absolute; left: 0; top: .35em; width: 16px; height: 16px; border: 2px solid var(--soft-border); border-radius: 4px; }
.menu-content .wf-warn-title { margin: 0 0 10px; font-size:1.7rem; font-weight: 700; color: #7a5b00; }
.menu-content .wf-warn-list { margin: 0; padding: 0; list-style: none; font-size:1.5rem; line-height: 1.9; color: #7a5b00; }
.menu-content .wf-info-row { display: flex; gap: 24px; flex-wrap: wrap; }
.menu-content .wf-info-item { flex: 1 1 260px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 28px 24px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; }
.menu-content .wf-info-icon { flex: none; width: 56px; height: 56px; border-radius: 50%; background: var(--soft); display: flex; align-items: center; justify-content: center; }
.menu-content .wf-info-icon img { width: 28px; height: 28px; }
.menu-content .wf-info-text { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.menu-content .wf-info-label { font-size:1.7rem; font-weight: 700; color: var(--muted); }
.menu-content .wf-info-value { font-size:1.7rem; font-weight: 600; color: var(--ink); }
.menu-content .wf-method-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
.menu-content .wf-method-card { padding: 32px; border: 1px solid #ddd; border-radius: var(--radius); background: #fff; }
.menu-content .wf-method-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.menu-content .wf-method-num { flex: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--primary); color: #fff; font-size:1.7rem; font-weight: 700; }
.menu-content .wf-method-title { flex: 1; min-width: 0; font-size:1.9rem; font-weight: 700; color: var(--ink); }
.menu-content .wf-method-badge {
  flex: none;
  padding: 5px 14px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--primary);
  font-size: 1.7rem;
  font-weight: 700;
  margin-top: 10px;
  display: inline-block;
}
.menu-content .wf-method-desc { margin: 0 0 16px; font-size:1.7rem; line-height: 1.7; color: #333; }
.menu-content .wf-method-list { margin: 0 0 14px; padding: 0; list-style: none; font-size:1.7rem; color: var(--muted); line-height: 1.9; }
.menu-content .wf-method-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size:1.7rem; color: var(--primary); }
.menu-content .wf-classify2-box { padding: 40px 44px; border-radius: var(--radius); background: var(--surface); }
.menu-content .wf-classify2-head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.menu-content .wf-classify2-check { flex: none; width: 26px; height: 26px; border-radius: 50%; background: #1a9c6b; display: flex; align-items: center; justify-content: center; }
.menu-content .wf-classify2-title { margin: 0; font-size:2.1rem; font-weight: 700; color: var(--ink); }
.menu-content .wf-classify2-note { margin: 0 0 24px; font-size:1.7rem; color: var(--muted); }
.menu-content .wf-classify2-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.menu-content .wf-classify2-card { position: relative; padding: 26px 24px; border: 1px solid #ddd; border-radius: 14px; background: #fff; }
.menu-content .wf-classify2-card-icon { display: flex; margin-bottom: 22px; color: var(--primary); }
.menu-content .wf-classify2-card-num { position: absolute; top: 22px; right: 22px; font-size:2.6rem; font-weight: 700; color: color-mix(in srgb, var(--primary) 16%, #fff); }
.menu-content .wf-classify2-card-name { display: block; margin-bottom: 8px; font-size:1.8rem; font-weight: 700; color: var(--ink); }
.menu-content .wf-classify2-card-desc { margin: 0; font-size:1.6rem; line-height: 1.6; color: var(--muted); }
/* 이동노동자 쉼터안내(menu-43) 전용 — 이용안내·하단 안내문구만 새 컴포넌트로 교체(상단 소개는
   .mc-intro 공용 컴포넌트 사용). 쉼터 위치 사진 카드(.wf-2col/.wf-photo-card 등)는 그대로 유지. */
.menu-content .wf-use-row { display: flex; gap: 24px; flex-wrap: wrap; }
.menu-content .wf-use-item { flex: 1 1 260px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 28px 24px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.menu-content .wf-use-icon { flex: none; width: 56px; height: 56px; border-radius: 50%; background: var(--soft); display: flex; align-items: center; justify-content: center; }
.menu-content .wf-use-text { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.menu-content .wf-use-title { font-size:1.7rem; font-weight: 700; color: var(--muted); }
.menu-content .wf-use-desc { font-size:1.7rem; font-weight: 600; color: var(--ink); line-height: 1.6; }
.menu-content .wf-shelter-note { margin: 0 0 24px; font-size:1.7rem; line-height: 1.4; }
/* 이동노동자 쉼터 이미지 슬라이드(송정·산동 공통) — 버튼 없이 자동 전환(3장, 12초 주기).
   이전 이미지는 사라지지 않고 그대로 뒤에 깔린 채로, 다음 이미지가 옆에서
   살짝 밀려 들어오며(slide) 겹쳐 페이드인 — z-index로 "현재 장"만 위로 올린다. */
.menu-content .wf-slide { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; }
.menu-content .wf-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; z-index: 1; animation: wfSlideFade 12s infinite; }
.menu-content .wf-slide img:nth-child(1) { animation-delay: 0s; }
.menu-content .wf-slide img:nth-child(2) { animation-delay: 4s; }
.menu-content .wf-slide img:nth-child(3) { animation-delay: 8s; }
@keyframes wfSlideFade {
  0% { opacity: 0; transform: translateX(4%); z-index: 2; }
  10% { opacity: 1; transform: translateX(0); z-index: 2; }
  33% { opacity: 1; transform: translateX(0); z-index: 2; }
  33.01% { opacity: 1; transform: translateX(0); z-index: 1; }
  100% { opacity: 1; transform: translateX(0); z-index: 1; }
}
@media (max-width: 1024px) {
  .menu-content .wf-classify2-cards { grid-template-columns: repeat(2,1fr); }
  .menu-content .wf-info-item { padding: 24px 22px; }
  .menu-content .wf-method-card { padding: 26px 24px; }
  .menu-content .wf-classify2-card { padding: 22px 20px; }
  .menu-content .wf-use-item { padding: 24px 22px; }
}
@media (max-width: 767px) {
  .menu-content .wf-method-grid { grid-template-columns: 1fr; }
  .menu-content .wf-box { padding: 28px 22px; }
  .menu-content .wf-lead { font-size:1.9rem; }
  .menu-content .wf-h3 { font-size:2rem; }
  .menu-content .wf-subhead { font-size:2.2rem; }
  .menu-content .wf-2col { grid-template-columns: 1fr; gap: 20px; }
  .menu-content .wf-cardpad { padding: 20px; }
  .menu-content .wf-badgecard { padding: 16px 18px; }
  .menu-content .wf-badgepill { font-size:1.6rem; }
  .menu-content .wf-ctabtn { padding: 10px 15px; font-size:1.5rem; gap: 8px; width: 100%; box-sizing: border-box; justify-content: center; flex-wrap: wrap; text-align: center; }
  .menu-content .wf-notebox { padding: 20px 18px; }
  .menu-content .wf-doctabs { flex-direction: column; }
  .menu-content .doc-tab { width: 100%; box-sizing: border-box; }
  .menu-content .wf-use-row { gap: 14px; }
  .menu-content .wf-classify2-box { padding: 28px 22px; }
  .menu-content .wf-classify2-cards { grid-template-columns: 1fr; }
  .menu-content .wf-box { margin-bottom: 32px; }
  .menu-content .wf-cta-wrap { margin-top: 28px; }
  .menu-content .wf-notebox { margin-top: 28px; }
  .menu-content .wf-notebox--mt56 { margin-top: 36px; }
  .menu-content .wf-h3--mt56 { margin-top: 40px; }
  .menu-content .wf-h3--mt64 { margin-top: 48px; }
  .menu-content .wf-dist-note { font-size:1.6rem; margin-bottom: 12px; }
  .menu-content .wf-info-item { padding: 22px 20px; }
  .menu-content .wf-info-icon { width: 48px; height: 48px; }
  .menu-content .wf-info-icon img { width: 24px; height: 24px; }
  .menu-content .wf-info-label, .menu-content .wf-info-value { font-size:1.6rem; }
  .menu-content .wf-method-card { padding: 24px 22px; }
  .menu-content .wf-method-title { font-size:1.7rem; }
  .menu-content .wf-method-badge { font-size:1.5rem; }
  .menu-content .wf-method-desc, .menu-content .wf-method-list, .menu-content .wf-method-link { font-size:1.6rem; }
  .menu-content .wf-classify2-title { font-size:1.9rem; }
  .menu-content .wf-classify2-note { font-size:1.6rem; }
  .menu-content .wf-classify2-card { padding: 22px 20px; }
  .menu-content .wf-classify2-card-icon svg { width: 24px; height: 24px; }
  .menu-content .wf-classify2-card-num { font-size:2.2rem; top: 18px; right: 18px; }
  .menu-content .wf-classify2-card-name { font-size:1.7rem; }
  .menu-content .wf-use-item { padding: 22px 20px; }
  .menu-content .wf-use-icon { width: 48px; height: 48px; }
  .menu-content .wf-use-icon svg { width: 24px; height: 24px; }
  .menu-content .wf-use-title, .menu-content .wf-use-desc { font-size:1.6rem; }
  .menu-content .wf-shelter-note { font-size:1.6rem; }
  .menu-content .wf-card-title { font-size:1.8rem; }
  .menu-content .wf-card-address { font-size:1.6rem; }
}
@media (max-width: 480px) {
  .menu-content .wf-box { padding: 22px 16px; }
  .menu-content .wf-lead { font-size:1.7rem; }
  .menu-content .wf-h3 { font-size:1.9rem; }
  .menu-content .wf-subhead { font-size:2rem; }
  .menu-content .wf-2col { gap: 16px; }
  .menu-content .wf-cardpad { padding: 16px; }
  .menu-content .wf-badgecard { padding: 14px 16px; }
  .menu-content .wf-badgepill { font-size:1.5rem; }
  .menu-content .wf-ctabtn { padding: 13px 18px; font-size:1.7rem; gap: 6px; }
  .menu-content .wf-notebox { padding: 16px 14px; }
  .menu-content .wf-box { margin-bottom: 24px; }
  .menu-content .wf-cta-wrap { margin-top: 22px; }
  .menu-content .wf-notebox { margin-top: 22px; }
  .menu-content .wf-notebox--mt56 { margin-top: 28px; }
  .menu-content .wf-h3--mt56 { margin-top: 32px; }
  .menu-content .wf-h3--mt64 { margin-top: 36px; }
  .menu-content .wf-info-item { padding: 18px 16px; }
  .menu-content .wf-info-icon { width: 44px; height: 44px; }
  .menu-content .wf-info-icon img { width: 22px; height: 22px; }
  .menu-content .wf-info-label, .menu-content .wf-info-value { font-size:1.5rem; }
  .menu-content .wf-method-card { padding: 20px 18px; }
  .menu-content .wf-method-title { font-size:1.6rem; }
  .menu-content .wf-method-desc, .menu-content .wf-method-list, .menu-content .wf-method-link { font-size:1.5rem; }
  .menu-content .wf-classify2-card { padding: 18px 16px; }
  .menu-content .wf-classify2-card-num { font-size:2rem; }
  .menu-content .wf-classify2-card-name { font-size:1.6rem; }
  .menu-content .wf-classify2-card-desc { font-size:1.4rem; }
  .menu-content .wf-use-item { padding: 18px 16px; }
  .menu-content .wf-use-icon { width: 44px; height: 44px; }
  .menu-content .wf-use-icon svg { width: 22px; height: 22px; }
  .menu-content .wf-use-title, .menu-content .wf-use-desc { font-size:1.5rem; }
  .menu-content .wf-card-title { font-size:1.7rem; }
  .menu-content .wf-card-address { font-size:1.5rem; }
}

/* 👉 서브페이지(메뉴 클릭 후 나오는 콘텐츠 페이지) 디자인입니다. 디자인 산출물의
   page-title-wrap(가운데 정렬 breadcrumb 드롭다운 + 큰 타이틀, 좌측메뉴 없음) 그대로 이식. */
/* ════════════════════════════════════════════════════════════
   CONTENT PAGE — 메뉴 콘텐츠 페이지(타이틀+드롭다운 내비 + 본문)
   ════════════════════════════════════════════════════════════ */
.content-page { width: 100%; }
.page-body { width: 100%; max-width: var(--skin-container); margin: 0 auto; box-sizing: border-box; }

/* 위치 내비게이션(제목 아래 좌측 정렬, 현재 페이지는 형제 메뉴 드롭다운) —
   제목(h1.page-title)을 먼저 노출하고 breadcrumb을 그 아래 작게 배치, 전체 블록 하단에 얇은 구분선.
   page-title-wrap 자체는 화면 양끝까지 배경/구분선을 채우고(위 .site-main:has(.page-title-wrap)),
   실제 텍스트 정렬은 안쪽 .page-title-inner가 .page-body와 같은 1400px 기준으로 맞춘다. */
.page-title-wrap { width: 100%; margin-bottom: 80px; }
.page-title-inner {
  max-width: var(--skin-container); margin: 0 auto; padding-top: 60px; text-align: left; box-sizing: border-box;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
}
.page-breadcrumb {
  display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: flex-start;
  font-size:1.7rem; color: rgba(0,0,0,.45); padding: 12px 0 0;
}
.page-breadcrumb__home { display: flex; align-items: center; color: rgba(0,0,0,.45); }
/* display:contents — 1뎁스 항목(dot+링크)을 감싸는 용도로만 존재, 레이아웃 박스 트리에서는 제외되어
   아래 모든 .page-breadcrumb 관련 규칙(데스크톱/1024px 이하)이 감싸기 전과 동일하게 그대로 적용된다.
   1024px 이하에서 뎁스가 3 이상일 때만 1뎁스를 통째로 숨기기 위한 훅(hook)이다. */
.page-breadcrumb__item { display: contents; }
.page-breadcrumb a { color: rgba(0,0,0,.45); text-decoration: none; }
.page-breadcrumb a:hover { color: var(--skin-primary); }
.page-breadcrumb__dot { width: 3px; height: 3px; margin: 0 12px; border-radius: 50%; background: rgba(0,0,0,.35); flex: none; }
.page-breadcrumb__cur { position: relative; display: inline-flex; align-items: center; }
.page-breadcrumb__cur--plain { color: #000; font-weight: 700; }
.page-breadcrumb__cur-btn {
  display: flex; align-items: center; gap: 6px; background: none; border: none; padding: 0;
  cursor: pointer; font: inherit; color: #000; font-weight: 700; font-family: inherit; text-align: left;
}
.page-breadcrumb__cur-btn svg { transition: transform .15s ease; }
.page-breadcrumb__cur.is-open .page-breadcrumb__cur-btn svg { transform: rotate(180deg); }
/* 조상 드롭다운(형제 이동)은 1024px 이하 풀폭 탭바 전용 — 데스크톱은 GNB 메가메뉴가 이미
   형제 이동을 제공하므로 기존처럼 단순 링크(.page-breadcrumb__item-plain)만 노출한다.
   두 표현을 항상 같이 렌더링해두고 display만 breakpoint별로 전환(아래 1024 CSS에서 뒤집음). */
.page-breadcrumb__item-plain { display: contents; }
.page-breadcrumb__item-menu { display: none; }
/* curNav 없는 최상위/제목전용 페이지(로그인·통합검색 등)의 현재 페이지 드롭다운(--toplevel-menu)은
   화면 폭과 무관하게 항상 노출 — 제목 텍스트 버전(--toplevel-plain)은 항상 숨긴다(아래 1024 CSS에서도 동일하게 유지). */
.page-breadcrumb__cur--toplevel-plain { display: none; }
/* 조상 항목(하위 메뉴가 있을 때만) — .page-breadcrumb__cur와 같은 자리(anchor)를 만들어
   같은 .page-breadcrumb__dropdown을 그대로 재사용. 1024px 이하에서만 활성화(위 규칙 참고). */
.page-breadcrumb__item-btn {
  display: inline-flex; align-items: center; background: none; border: none; padding: 0;
  cursor: pointer; font: inherit; color: rgba(0,0,0,.45); font-family: inherit;
}
.page-breadcrumb__item-btn:hover { color: var(--skin-primary); }
.page-breadcrumb__dropdown {
  display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  margin: 10px 0 0; padding: 10px; list-style: none; flex-direction: column; gap: 2px;
  background: #fff; border: 1px solid #e7edf7; border-radius: 10px;
  box-shadow: 0 14px 32px rgba(16,42,99,.14); z-index: 10; min-width: 160px; text-align: left;
}
.page-breadcrumb__cur.is-open .page-breadcrumb__dropdown,
.page-breadcrumb__item-menu.is-open .page-breadcrumb__dropdown { display: flex; }
.page-breadcrumb__dropdown a,
.page-breadcrumb__dropdown span {
  display: block; padding: 9px 14px; border-radius: 8px; font-size:1.7rem; font-weight: 600; color: #444;
}
.page-breadcrumb__dropdown a:hover { background: #f5f8fc; color: var(--skin-primary); }
.page-breadcrumb__dropdown li.is-active a { background: #f5f8fc; color: var(--skin-primary); }
/* 3단계(자식의 자식) 메뉴 — 상위 항목 아래 들여쓴 서브 목록으로 항상 펼쳐 표시 */
.page-breadcrumb__dropdown-sub {
  list-style: none; margin: 2px 0 4px; padding: 0 0 0 12px; border-left: 2px solid #e7edf7;
}
.page-breadcrumb__dropdown-sub a,
.page-breadcrumb__dropdown-sub span { font-size: 1.5rem; font-weight: 500; padding: 7px 12px; }

.page-title { margin: 0; font-size:5.6rem; font-weight: 700; color: #000; letter-spacing: -.03em; line-height: 1; }

/* ════════════════════════════════════════════════════════════
   탭메뉴 — 상위 GROUP(tabYn=Y)의 하위 메뉴를 메뉴 타이틀 아래 가로 탭바로 표시
   위치 컨테이너 .con_tab, 형태 .content-tabs__list
   트랙 배경(--surface) 안에 알약형 버튼, 활성만 --primary 채움.
   ════════════════════════════════════════════════════════════ */
.con_tab { margin-bottom: 32px; }
.content-tabs__list {
  list-style: none;
  margin: 0 auto;
  padding: 6px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  width: fit-content;
  background: #f4f7fd;
  border-radius: 999px;
}
.content-tabs__item { margin-bottom: 0; }
.content-tabs__link {
  display: block;
  padding: 12px 28px;
  font-size:2rem;
  font-weight: 700;
  color: #5a606b;
  text-decoration: none;
  border: 0;
  border-radius: 999px;
  background: none;
  transition: background 0.15s, color 0.15s;
}
.content-tabs__link:hover { color: var(--skin-primary); }
.content-tabs__item.is-active .content-tabs__link {
  color: #fff;
  background: var(--skin-primary);
}
.content-tabs__link--plain { color: #999; background: #f0f0f0; cursor: default; }
.content-tabs__link--plain:hover { color: #999; background: #f0f0f0; }
.content-tabs__count { margin-left: 4px; font-size: 1.6rem; opacity: .75; }


/* 👉 푸터(하단 영역) — 디자인 산출물 index.html footer#footer를 그대로 이식. */
/* ════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════ */
.site-footer { flex-shrink: 0; background: var(--skin-footer-bg); padding-bottom: 60px; }
.site-footer__inner { max-width: var(--skin-container); margin: 0 auto; padding: 0 4px; }

/* 상단: 정책 링크 + 관련단체/유관기관 아코디언 */
.footer-top { display: flex; align-items: center; justify-content: space-between; padding: 34px 0; flex-wrap: wrap; gap: 16px; }
.footer-top__nav { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.footer-top__nav a { font-size:1.7rem; color: var(--skin-footer-text); }
.footer-top__nav-strong { color: var(--skin-footer-privacy) !important; font-weight: 700; }
.footer-top__accs { display: flex; gap: 10px; flex-wrap: wrap; }

.ft-acc { position: relative; }
.ft-acc__btn {
  display: flex; align-items: center; gap: 30px;
  border: 1px solid rgba(255,255,255,.35); border-radius: 999px;
  background: none; padding: 15px 35px; cursor: pointer;
  font-size:1.7rem; font-weight: 700; color: var(--skin-footer-text); font-family: inherit;
}
.ft-acc__sign { color: var(--skin-footer-text); font-size:1.7rem; }
.ft-acc__list {
  display: none;
  position: absolute; bottom: 100%; right: 0; margin: 0 0 12px; padding: 16px 20px;
  list-style: none; flex-direction: column; gap: 14px;
  background: #fff; border: 1px solid #eee; border-radius: 14px;
  box-shadow: 0 20px 40px rgba(0,0,0,.1); z-index: 5; min-width: 220px;
}
.ft-acc__list--cols { flex-direction: row; flex-wrap: wrap; gap: 14px 28px; min-width: 320px; }
.ft-acc__list--cols li { flex: 0 0 calc(50% - 14px); min-width: 0; }
.ft-acc.is-open .ft-acc__list { display: flex; }
.ft-acc.is-open .ft-acc__sign { transform: rotate(180deg); display: inline-block; }
.ft-acc__list a { font-size:1.7rem; color: #666; white-space: nowrap; }
.ft-acc__list a:hover { color: var(--skin-header-accent); }

.footer-hr { margin: 0; border: none; border-top: 1px solid rgba(255,255,255,.15); }

/* 하단: 기관정보 + SNS */
.footer-bottom { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-top: 34px; }
.footer-bottom__info { font-size:1.7rem; color: var(--skin-footer-text); }
.footer-bottom__info div + div { margin-top: 10px; }
.footer-bottom__tel, .footer-bottom__tel:hover { color: var(--skin-footer-privacy); font-weight: 700; }

.footer-bottom__sns { display: flex; gap: 8px; flex: none; list-style: none; margin: 0; padding: 0; }
.footer-bottom__sns-link {
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.footer-bottom__sns-link img { width: 18px; height: 18px; display: block; }
.footer-bottom__sns-link--kakao { background: #FEE500; }
.footer-bottom__sns-link--blog { background: #03C75A; }
.footer-bottom__sns-link--facebook { background: #1877F2; }
.footer-bottom__sns-link--instagram { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }

.footer-copyright { margin-top: 26px; font-size:1.7rem; color: rgba(255,255,255,.45); }


/* ════════════════════════════════════════════════════════════
   반응형 — 브레이크포인트별로 전체 규칙을 한 블록에 모음(1400/1024/767/480).
   같은 breakpoint를 여러 곳에 나눠 적지 말 것 — 여기 해당 블록에 이어서 추가.
   ════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
  body { min-width: 0; overflow-x: hidden; }

  /* 헤더 — 데스크톱 GNB·메가패널 숨김, 모바일은 전체메뉴 드로어(.nav-drawer)가 대체 */
  .site-header__inner { padding: 0 24px; height: 84px; }
  .site-brand__logo-dynamic, .site-brand__logo-static { height: 38px; }
  .site-header__actions { gap: 28px; }
  .site-header__actions a[aria-label="로그인"],
  .site-header__actions [data-account-toggle],
  .site-header__actions a[aria-label="마이페이지"] { display: none; }
  .gnb, .mega-overlay { display: none !important; }

  /* 본문 */
  .site-main { min-width: 0; }
  .site-main:has(.page-title-wrap) { min-width: 0; }
  .site-main .content-page { margin: 0 2vw 50px 2vw; }
  .page-title-inner { padding: 0; display: flex; flex-direction: column; gap: 0; }
  .page-title-wrap { margin-bottom: 48px; }
  .page-title { order: 2; width: 100%; font-size:3.8rem; margin-top: 40px; text-align: center; }
  .con_tab { margin-bottom: 24px; }
  .content-tabs__link { font-size:1.8rem; padding: 11px 24px; }
  .search-panel { padding: 20px 20px 48px; }
  .search-panel__form { margin-top: 40px; }

  /* 위치 내비게이션: 홈 버튼 제거, 사이트 메인컬러 풀폭 바(구간별 등분) 형태로 전환 */
  .page-breadcrumb__home { display: none; }
  /* 조상 드롭다운(형제 이동)은 1024px 이하 전용 — 데스크톱용 단순 링크(item-plain)는 숨기고
     모바일용 드롭다운 토글(item-menu)로 전환. item-menu 자체 레이아웃(flex/padding/화살표)은
     아래 :is(...) 공용 규칙이 이미 처리한다. */
  .page-breadcrumb__item-plain { display: none; }
  /* curNav 없는 최상위/제목전용 페이지(로그인·통합검색 등)의 현재 페이지 드롭다운(--toplevel-menu)은
     1024px 이하에서도 그대로 노출 — 제목 텍스트 버전(--toplevel-plain)을 대신 숨긴다.
     !important 필요: 아래 ".page-breadcrumb > span.page-breadcrumb__cur { display:flex; ... }"가
     특이도가 더 높아(클래스+태그+클래스) 이 규칙보다 뒤에 나오면 display:none을 덮어써 버린다
     (바로 아래 뎁스 3+ 규칙과 동일한 이유 — 그 주석 참고). */
  .page-breadcrumb__cur--toplevel-plain { display: none !important; }
  /* 뎁스가 3(1뎁스>2뎁스>현재) 이상이면 1024px 이하(1024/767 포함)에서는 1뎁스는 유지하고
     3뎁스(현재 페이지 구간)를 제거 — 바로 아래 page-title에 동일한 현재 페이지명이 큰 글씨로
     이미 나오므로 중복이라 생략. 풀폭 등분 바 특성상 뎁스가 늘수록 구간이 좁아져 가독성이
     떨어지는 문제도 함께 해결됨.
     !important 필요: 아래 ".page-breadcrumb > span.page-breadcrumb__cur { display:flex; ... }"
     (클래스+태그+클래스 = 우선순위 더 높음)가 이 규칙보다 뒤에 나와 display:none을 덮어써 버려
     뎁스 3+에서도 현재 페이지 구간이 계속 보이던 버그가 있었다. */
  .page-breadcrumb--deep .page-breadcrumb__cur { display: none !important; }
  .page-breadcrumb {
    order: 1; display: flex; padding: 0;
    background: var(--skin-primary); font-size:1.6rem;
    /* 좌우 뷰포트 끝까지: 상위 컨테이너들의 padding/margin 체인을 무시하고 풀블리드 */
    width: 100vw; margin: 0 calc(50% - 50vw);
    text-align: left;
  }
  .page-breadcrumb__dot { display: none; }
  /* .page-breadcrumb__item(1뎁스 숨김용 래퍼, display:contents)로 감싸진 조상 a/span도 같은 규칙을
     받도록 :is()로 ".page-breadcrumb >" 와 ".page-breadcrumb__item >" 를 함께 매칭 —
     display:contents는 flex 아이템 승격만 해줄 뿐 CSS 선택자는 실제 DOM 부모 기준이라 별도 명시 필요.
     래퍼 자신도 ".page-breadcrumb > span:not(.dot):not(.cur)"에 걸려(같은 조건을 만족) 안쪽 라벨과
     이중으로 박스·화살표가 생기던 버그 — :not(.page-breadcrumb__item)으로 래퍼 자신은 제외. */
  :is(.page-breadcrumb, .page-breadcrumb__item) > a:not(.page-breadcrumb__home),
  .page-breadcrumb > span.page-breadcrumb__cur,
  :is(.page-breadcrumb, .page-breadcrumb__item) > span:not(.page-breadcrumb__item):not(.page-breadcrumb__item-plain):not(.page-breadcrumb__dot):not(.page-breadcrumb__cur) {
    position: relative;
    flex: 1 1 0; display: flex; align-items: center;
    padding: 16px 44px 16px 20px; color: #fff; font-weight: 700;
  }
  :is(.page-breadcrumb, .page-breadcrumb__item) > a:not(.page-breadcrumb__home),
  :is(.page-breadcrumb, .page-breadcrumb__item) > span:not(.page-breadcrumb__item):not(.page-breadcrumb__item-plain):not(.page-breadcrumb__dot):not(.page-breadcrumb__cur) {
    border-right: 1px solid rgba(255,255,255,.35);
  }
  /* 조상 <a>·item-btn 모두 hover 시에도 흰색 유지 — 데스크톱 hover색(var(--skin-primary))이
     그대로 새면 이 구간 배경(var(--skin-primary))과 같은 색이 되어 글자가 사라져 보인다. */
  :is(.page-breadcrumb, .page-breadcrumb__item) > a:not(.page-breadcrumb__home):hover,
  .page-breadcrumb__item-btn:hover { color: #fff; }
  /* 화살표는 flex 정렬(텍스트 line-height에 따라 흔들림) 대신 절대좌표로 세로 중앙 고정 —
     부모(위 규칙)가 position:relative + 16px 위아래 패딩으로 박스 높이를 만들어주므로
     top:50%/translateY(-50%)가 항상 텍스트 줄과 무관하게 박스 정중앙을 잡는다. */
  :is(.page-breadcrumb, .page-breadcrumb__item) > a:not(.page-breadcrumb__home)::after,
  :is(.page-breadcrumb, .page-breadcrumb__item) > span:not(.page-breadcrumb__item):not(.page-breadcrumb__item-plain):not(.page-breadcrumb__dot):not(.page-breadcrumb__cur)::after,
  .page-breadcrumb__cur--plain::after {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    position: absolute; top: 50%; right: 20px; transform: translateY(-50%);
    height: 18px;
  }
  .page-breadcrumb__cur { width: 100%; }
  .page-breadcrumb__cur--plain { color: #fff; }
  .page-breadcrumb__cur-btn,
  .page-breadcrumb__item-btn { width: 100%; color: #fff; }
  /* 조상 항목의 화살표는 .page-breadcrumb__item-menu 자신이 위(공용 규칙)에서 이미 갖고 있다
     (일반 조상 span과 동일 조건으로 매칭) — 열림 상태 회전만 별도로 지정. */
  .page-breadcrumb__item-menu.is-open::after { transform: translateY(-50%) rotate(180deg); }
  /* 드롭다운 폭을 부모(.page-breadcrumb__cur/.page-breadcrumb__item-menu, 풀폭 세그먼트)와 동일하게 —
     가운데 정렬용 left/transform 해제 */
  .page-breadcrumb__dropdown { left: 0; transform: none; width: 100%; min-width: 0; }
  /* 상위 항목과 동일한 svg 셰브런으로 통일 — 데스크톱 아이콘(흰색 고정)을 ::after로 재사용.
     위치 기준은 버튼이 아니라 가장 가까운 position:relative 조상인 .page-breadcrumb__cur(위 규칙) —
     다른 세그먼트 화살표와 동일한 top:50%/right:20px 기준으로 정렬을 맞춘다. */
  .page-breadcrumb__cur-btn svg { display: none; }
  .page-breadcrumb__cur-btn::after {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    position: absolute; top: 50%; right: 20px; transform: translateY(-50%);
    height: 18px;
    transition: transform .15s ease;
  }
  .page-breadcrumb__cur.is-open .page-breadcrumb__cur-btn::after { transform: translateY(-50%) rotate(180deg); }

  /* 푸터 */
  .footer-top { padding: 24px 20px; }
  .ft-acc__btn { padding: 10px 20px; gap: 14px; }
  .footer-bottom { padding: 24px 20px 0; }
  .footer-copyright { margin-top: 20px; }

  /* 모바일 전체메뉴 드로어(1024px 이하에서만 사용) */
  .nav-drawer__head { padding: 18px 20px; }
  .nav-drawer__cat-btn { padding: 16px 20px; }
  .nav-drawer__list li a, .nav-drawer__list li span { padding: 8px 20px; }
  .nav-drawer__foot .nav-drawer__login { padding: 14px 20px; }
}

@media (max-width: 767px) {
  /* 본문 컨테이너 */
  .site-main .content-page { margin: 0 20px 50px 20px; }

  /* 헤더 */
  .site-header__inner { height: 60px; padding: 0 16px; }
  .site-brand__logo-dynamic, .site-brand__logo-static { height: 32px; }
  .site-header__actions { gap: 28px; }
  .site-header__actions svg { width: 24px; height: 24px; }

  /* 본문 — 상단 패딩 0 유지(1024px에서 정한 대로 위치 내비게이션 바가 헤더에 바로 붙는 형태) */
  /* 타이틀-내용 간격 — 1024px(48+24=72px)에서 480px(32+16=48px)로 줄어드는 중간 단계인데도 767px만
     40+20=60px로 상대적으로 넓게 느껴져(요청사항) 480px에 더 가깝게 좁힘. */
  .page-title-wrap { margin-bottom: 28px; }
  .page-breadcrumb { text-align: left; }
  .page-title { font-size:3rem; margin-top: 40px; }
  .con_tab { margin-bottom: 16px; }
  /* 서브페이지 탭(.content-tabs__list) — 767px: 알약 트랙 대신 2열 그리드 박스형으로 전환(요청사항).
     항목 개수가 홀수면 마지막 칸만 혼자 남아 그리드가 자동으로 채운다. */
  .content-tabs__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 100%;
    border-radius: 10px;
  }
  .content-tabs__link { font-size:1.6rem; padding: 10px 20px; border-radius: 10px; text-align: center; }
  .search-panel { padding: 16px 16px 36px; }
  .search-panel__form { margin-top: 32px; }
  .search-panel__form input { height: 54px; }
  .nav-drawer__head { padding: 16px; }
  .nav-drawer__cat-btn { padding: 14px 16px; }
  .nav-drawer__list li a, .nav-drawer__list li span { padding: 8px 16px; }
  .nav-drawer__foot .nav-drawer__login { padding: 12px 16px; }
  /* 서브페이지(메뉴 콘텐츠) 안의 표는 767px에서 셀을 더 욱여넣어 줄이지 않고(가독성 저하),
     표 자체 경계 안에서만 가로 스크롤되게 한다(요청사항: "더 안줄어들고 스크롤생겨서 들어가게").
     overflow-x:auto를 table에 직접 걸어 열 너비는 원래 콘텐츠 기준(table-layout:auto)으로 유지하고,
     그 렌더 폭이 컨테이너보다 넓을 때만 스크롤된다(페이지 전체가 옆으로 밀리지 않음).
     display:block은 쓰지 않는다 — display:table이 아니게 되면 border-collapse:collapse가 무효화돼
     인접 셀 테두리가 겹치지 않고 각자 렌더링되면서 표 좌측·하단에 불필요한 테두리 선이 겹쳐 보였다.
     이전에는 width:100%!important + min-width:0 + table-layout:fixed로 강제 축소했으나,
     열이 너무 좁아져 셀 내용이 뭉개지는 문제가 있어 스크롤 방식으로 전환. */
  .menu-content table { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .menu-content th, .menu-content td { overflow-wrap: break-word; }

  /* 푸터 — 디자인 산출물 style.css @media 767px #footer 규칙 이식 */
  /* site-footer/site-footer__inner의 상하·좌우 패딩을 없애 완전 엣지투엣지로 전환(요청사항) —
     내부 각 요소가 자체 padding으로 좌우 여백(20px)을 맞춘다 */
  .site-footer { padding-bottom: 0; }
  .site-footer__inner { padding: 0; }
  .footer-top { flex-direction: column; align-items: stretch; gap: 20px 0; padding: 0; }
  .footer-top__nav { display: flex; flex-wrap: wrap; width: 100%; gap: 0; }
  .footer-top__nav a { flex: 0 0 50%; box-sizing: border-box; padding: 16px; margin: 0; border-bottom: 1px solid rgba(255,255,255,.15); color: var(--skin-footer-text); font-weight: 500; text-align: center; font-size:1.4rem; }
  /* 개인정보처리방침은 단독 한 줄, 센터소개·오시는 길 2개가 다음 줄에 나란히(요청사항).
     .footer-top__nav a(클래스+태그)보다 낮은 명시도라 안 먹혔던 걸 태그 셀렉터 추가로 수정 */
  .footer-top__nav a.footer-top__nav-strong { flex: 0 0 100%; border-right: none; border-top: 1px solid rgba(255,255,255,.15); }
  .footer-top__nav a:nth-child(2) { border-right: 1px solid rgba(255,255,255,.15); }
  /* 관련단체·유관기관 버튼을 전체 폭 바 형태로 전환, 좌우 여백 20px(요청사항).
     글자·화살표를 양끝으로 정렬(space-between)하고 두 버튼 사이 위아래 간격 확보(요청사항) */
  .footer-top__accs { width: 100%; padding: 0 20px; gap: 5px; }
  .ft-acc { width: 100%; }
  .ft-acc__btn { width: 100%; box-sizing: border-box; justify-content: space-between; padding: 15px 20px; font-size:1.4rem; }
  .ft-acc__sign { font-size:1.4rem; }
  .ft-acc__list { width: 100%; text-align: center; }
  .ft-acc__list a { font-size:1.4rem; }
  /* 유관기관(.ft-acc__list--cols)의 2열·320px 박스를 관련단체와 같은 1열·220px 크기로 통일(요청사항) */
  .ft-acc__list--cols { flex-direction: column; flex-wrap: nowrap; gap: 14px; min-width: 220px; }
  .ft-acc__list--cols li { flex: none; width: auto; }
  .footer-hr { display: none; }
  .footer-bottom { padding-top: 0; padding-left: 20px; padding-right: 20px; margin-top: 20px; justify-content: center; text-align: center; }
  .footer-bottom__info { font-size:1.4rem; }
  .footer-bottom__info div:nth-child(3) { display: none; } /* 운영시간 줄은 모바일에서 숨김(디자인 원본과 동일) */
  .footer-bottom__fax { display: block; white-space: nowrap; margin-top: 2px; } /* FAX는 주소 줄바꿈(요청사항) */
  .footer-bottom__sns { display: flex; width: 100%; justify-content: center; margin-top: 14px; }
  .footer-copyright { margin: 20px 0 0; padding: 16px 20px; background: rgba(255,255,255,.06); text-align: center; font-size:1.3rem; }
}

@media (max-width: 480px) {
  /* 헤더 */
  .site-header__inner { padding: 0 12px; }
  .site-header__actions { gap: 20px; }

  /* 본문 — 상단 패딩 0 유지(1024px에서 정한 대로 위치 내비게이션 바가 헤더에 바로 붙는 형태) */
  .page-title-wrap { margin-bottom: 32px; }
  .page-breadcrumb { text-align: left; }
  .page-title { font-size:2.4rem; margin-top: 30px; }
  .con_tab { margin-bottom: 16px; }
  .search-panel { padding: 14px 14px 28px; }
  .search-panel__form { margin-top: 24px; }

  /* 푸터 */
  .footer-top, .footer-bottom { padding-left: 0; padding-right: 0; }
}
