:root {
  --corp-ink: #14171c;
  --corp-ink-soft: #545b66;
  --corp-ink-faint: #8991a0;
  --corp-line: #e7e9ed;
  --corp-bg-alt: #f6f7f9;
  --corp-accent: #c8963e;
  --corp-accent-soft: #fdf3e2;
  --corp-dark: #0f1319;
  --corp-dark-soft: #1c2330;
}

* { box-sizing: border-box; }
/* 콘텐츠가 짧아도 푸터가 항상 브라우저 창 맨 아래에 붙도록(하단에 빈 공간이 남지 않게). */
.corp-body { display: flex; flex-direction: column; min-height: 100vh; background: #fff; color: var(--corp-ink); font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Malgun Gothic", sans-serif; -webkit-font-smoothing: antialiased; line-height: 1.5; }
.corp-body main { flex: 1 0 auto; }
.corp-body a { color: inherit; text-decoration: none; }
.corp-body .btn { cursor: pointer; border: none; font-family: inherit; }
/* app.css의 관리자패널용 <main> 규칙(max-width/padding)이 이 페이지에도 적용되는 것을 해제 —
   헤더 바로 아래 히어로가 전체폭으로 붙어야 하는데(item 4) 그 규칙 때문에 32px 여백이 생기고
   히어로 자체도 1160px로 눌려 있었다. */
.corp-body main { max-width: none; margin: 0; padding: 0; }

/* --- Header --- */
.corp-header { position: sticky; top: 0; z-index: 100; background: rgba(15,19,25,.92); backdrop-filter: saturate(180%) blur(14px); transition: background .2s; overflow: hidden; margin: 0; }
.corp-header .wrap { position: relative; z-index: 1; max-width: 1600px; margin: 0 auto; padding: 0 24px; height: 80px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.corp-brand { font-size: 19px; font-weight: 800; color: #fff; letter-spacing: -.02em; display: flex; align-items: center; }
.corp-brand-logo { height: 45px; display: block; }
.corp-header nav { display: flex; align-items: center; gap: 4px; }
.corp-header nav a { padding: 8px 14px; border-radius: 999px; color: rgba(255,255,255,.78); font-size: 13.5px; font-weight: 600; transition: background .15s, color .15s; }
.corp-header nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
/* 헤더 배경은 관리자가 이미지/색상/투명 중 무엇을 골랐는지에 따라 밝을 수도 어두울 수도
   있다(회사 홈페이지 관리에서 완전히 자유롭게 설정 가능) — 언어전환 링크가 nav의 다른
   글자색(어두운 배경 전제의 흰 글자, 관리자가 밝은 배경용으로 덮어쓴 색 등)을 물려받으면
   특정 배경에서 글자가 안 보일 수 있다(실사용 확인: 밝은 헤더에서 글자 사라짐). 그래서
   언어전환 링크만은 상속에 기대지 않고 자체적으로 배경-글자 대비를 갖는 알약(pill) 모양으로
   분리해 어떤 헤더 배경이든 항상 읽을 수 있게 한다. */
.corp-lang-switch { display: flex; align-items: center; gap: 4px; margin-inline-start: 6px; padding-inline-start: 10px; border-inline-start: 1px solid rgba(128,128,128,.3); }
/* 언어명 텍스트 대신 국기 이모지로 표시해 헤더 공간을 아낀다 — 이모지는 CSS color를 안 타므로
   활성 상태는 배경 대비로만 구분한다(관리자 화면 등 텍스트가 필요한 곳은 여전히 언어명을 쓴다). */
.corp-lang-switch a { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; font-size: 15px; line-height: 1; border-radius: 999px; background: rgba(255,255,255,.92); border: 1px solid rgba(0,0,0,.08); transition: background .15s, border-color .15s; }
.corp-lang-switch a:hover { background: #ffffff; }
/* 선택된 언어는 테두리 강조 대신 원 바탕색 자체를 언어별 지정색(--lang-accent, 각 링크에
   인라인으로 지정됨)으로 채운다 — 국기 고유색과는 다른 색으로 골라 "선택됨" 표시가
   국기 색상과 혼동되지 않게 한다. */
.corp-lang-switch a.active { background: var(--lang-accent, #1a1d24); border-color: var(--lang-accent, #1a1d24); }
/* 다국어관리에서 "국기 이미지" 표시를 고르면 이모지/문자 대신 실제 국기 그림(SVG)을 쓴다 —
   국기 자체가 이미 색을 가진 그림이라, 선택 표시는 배경을 통째로 칠하는 대신(그림을 가려버림)
   지정색(--lang-accent) 테두리 링으로만 표시한다. */
.corp-lang-switch-image a img { width: 20px; height: 14px; border-radius: 2px; display: block; object-fit: cover; }
.corp-lang-switch-image a.active { background: rgba(255,255,255,.92); box-shadow: 0 0 0 2px var(--lang-accent, #1a1d24); border-color: var(--lang-accent, #1a1d24); }

/* 아랍어 등 오른쪽에서 왼쪽으로 읽는 언어 대응 — <html dir="rtl">로 페이지 전체를 뒤집으면
   메뉴·카드 순서까지 반대로 바뀌어 버리고, 특히 번역이 아직 없어 한글 원문이 그대로 나오는
   구간(현재는 필드 단위로 번역하므로 항상 있을 수 있음)에서는 문장부호 위치가 뒤집혀 보여
   더 깨져 보인다(실사용 확인). 그래서 페이지 구조(그리드/nav)는 항상 왼쪽→오른쪽으로 고정해
   두고, 텍스트 블록 하나하나가 자기 내용(아랍어 vs 한글/영문)에 맞춰 자동으로 읽기 방향을
   정하도록 unicode-bidi: plaintext만 적용한다 — 실제 아랍어 번역이 들어간 문단만 오른쪽
   정렬·RTL로 보이고, 아직 미번역이라 한글이 남아있는 문단은 평소처럼 왼쪽→오른쪽 그대로다. */
.corp-body h1, .corp-body h2, .corp-body h3, .corp-body h4,
.corp-body p, .corp-body li, .corp-body span, .corp-body a, .corp-body button {
  unicode-bidi: plaintext;
}
.corp-header-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.corp-body-bg { position: fixed; inset: 0; width: 100vw; height: 100vh; object-fit: cover; z-index: -1; pointer-events: none; }

/* --- 헤더/본문 웨이브 계열 구분선 (일사이트/개인사이트와 동일 패턴) --- */
.hh-wave-divider { width: 100%; line-height: 0; margin-top: -1px; }
.hh-wave-divider svg { display: block; width: 100%; height: 32px; }
.hh-wave-divider-shadow svg { filter: drop-shadow(0 3px 6px rgba(0,0,0,.18)); }

/* --- Hero --- */
.corp-hero { position: relative; overflow: hidden; margin: 0; background: radial-gradient(ellipse 900px 520px at 50% -10%, #263049, transparent), linear-gradient(160deg, var(--corp-dark), var(--corp-dark-soft)); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: 24px 24px 110px; text-align: center; }
.corp-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
/* 예전엔 이미지 위에 고정 어두운 오버레이(.corp-hero-veil)를 깔았지만, 관리자가 올린
   이미지가 원본보다 항상 어둡게 보인다는 지적으로 제거했다 — 아래 텍스트들의 text-shadow만
   으로 가독성을 확보한다(이미지 자체는 밝기/투명도 설정값 그대로 원본처럼 노출). */
.corp-hero .wrap { position: relative; z-index: 1; max-width: 800px; margin: 0 auto; }
/* pnjhr.co.kr 실제 사이트의 header-separator-bottom(대각선 컷) 그대로 이식 — 히어로 하단을 본문 배경색으로 대각선으로 자연스럽게 잘라낸다. */
.corp-hero-cut { position: absolute; left: 0; right: 0; bottom: -1px; height: 90px; z-index: 2; pointer-events: none; line-height: 0; }
.corp-hero-cut svg { display: block; width: 100%; height: 100%; }
.corp-hero .corp-eyebrow { color: var(--corp-accent); justify-content: center; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.corp-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -.03em; line-height: 1.32; margin: 0 0 18px; text-shadow: 0 2px 24px rgba(0,0,0,.4); }
.corp-hero-sub { font-size: 17px; color: rgba(255,255,255,.82); margin: 0 0 36px; line-height: 1.7; text-shadow: 0 2px 16px rgba(0,0,0,.45); }
.corp-hero-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.corp-hero-cta .btn { display: inline-block; min-width: 176px; text-align: center; background: var(--corp-accent); color: #1a1408; font-weight: 700; padding: 14px 28px; border-radius: 999px; font-size: 14.5px; transition: background .18s, transform .18s, box-shadow .18s; box-shadow: 0 8px 24px rgba(200,150,62,.25); }
.corp-hero-cta .btn:hover { background: #dba94e; transform: translateY(-2px); box-shadow: 0 12px 32px rgba(200,150,62,.35); }
.corp-btn-outline { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,.5); box-shadow: none !important; }
.corp-btn-outline:hover { border-color: #fff; background: rgba(255,255,255,.08) !important; transform: translateY(-2px); }
.corp-hero-scroll { position: absolute; left: 50%; bottom: 28px; width: 22px; height: 36px; border: 2px solid rgba(255,255,255,.4); border-radius: 999px; transform: translateX(-50%); }
.corp-hero-scroll::before { content: ''; position: absolute; top: 7px; left: 50%; width: 4px; height: 8px; border-radius: 2px; background: rgba(255,255,255,.7); transform: translateX(-50%); animation: corp-scroll-cue 1.8s ease-in-out infinite; }
@keyframes corp-scroll-cue { 0%,100% { opacity: 1; transform: translate(-50%,0); } 50% { opacity: .3; transform: translate(-50%,8px); } }

/* --- Middle banner (image or solid color, brightness adjustable) — 업무영역 섹션 바로 다음에
   렌더되며(home.php), 그 간격은 업무영역의 margin-bottom(관리자 설정 services_bottom_gap)
   하나로만 정해진다 — 여기서 별도 margin-top을 더하면 이중으로 벌어지므로 주지 않는다. --- */
.corp-middle-banner { position: relative; overflow: hidden; min-height: 220px; background: var(--corp-bg-alt); display: flex; align-items: center; justify-content: center; }
.corp-middle-banner-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.corp-middle-banner-text { position: relative; z-index: 1; max-width: 900px; margin: 0; padding: 0 24px; text-align: center; font-weight: 800; letter-spacing: -.01em; line-height: 1.4; text-shadow: 0 2px 16px rgba(0,0,0,.35); }

/* --- Sections --- */
.corp-section { padding: 88px 24px; }
/* 업무영역 섹션 — 제목 없이 카드만 노출되고, 히어로 이미지 바로 아래(또는 겹치게) 배치되도록
   위쪽 간격은 인라인 margin-top(관리자 설정, 음수 허용)으로 준다. 다른 섹션보다 폭이 좁다
   (FHD 1920px의 80%) — `.corp-section .wrap`(1920px)보다 특이도를 맞춰 확실히 덮어쓴다. */
/* z-index:3 — corp-hero-cut(히어로 하단 곡선 장식, z-index:2)보다 높여, 업무영역이 음수
   간격으로 그 곡선 대역까지 올라와 겹칠 때 곡선이 카드 위를 덮어 잘라내지 않고 카드가
   항상 그 위에 그대로 보이도록 한다. */
.corp-services-section { position: relative; z-index: 3; }
.corp-section-alt { background: var(--corp-bg-alt); }
/* 모든 섹션(업무영역 포함)의 콘텐츠 폭을 1535px로 통일한다. */
.corp-section .wrap { max-width: 1535px; margin: 0 auto; }
.corp-section .section-header { text-align: center; margin-bottom: 48px; display: block; }
.corp-section .section-header h2 { font-size: 28px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.corp-eyebrow { display: flex; align-items: center; gap: 8px; color: var(--corp-accent); font-weight: 700; font-size: 12.5px; letter-spacing: .08em; margin: 0 0 12px; text-transform: uppercase; }
.corp-section .section-header .corp-eyebrow { justify-content: center; }

/* --- Value cards --- */
.corp-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 380px)); gap: 20px; justify-content: center; }
.corp-card { background: #fff; border: 1px solid var(--corp-line); border-radius: 18px; padding: 30px 26px; box-shadow: 0 1px 2px rgba(16,24,40,.05); transition: box-shadow .2s, transform .2s, border-color .2s; }
.corp-card:hover { box-shadow: 0 16px 32px rgba(16,24,40,.1); transform: translateY(-4px); border-color: transparent; }
.corp-card-icon { width: 52px; height: 52px; border-radius: 14px; background: var(--corp-accent-soft); color: var(--corp-accent); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.corp-card-icon svg { width: 28px; height: 28px; }
.corp-card h3 { font-size: 16.5px; font-weight: 700; margin: 0 0 10px; letter-spacing: -.01em; }
.corp-card p { color: var(--corp-ink-soft); font-size: 13.5px; line-height: 1.75; margin: 0; }

/* --- Service area cards (업무영역) --- */
.corp-service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 360px)); gap: 20px; justify-content: center; }
.corp-service-card { background: var(--corp-dark); border-radius: 18px; padding: 32px 26px; transition: transform .2s, box-shadow .2s; }
.corp-service-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(15,19,25,.18); }
.corp-service-icon { width: 50px; height: 50px; border-radius: 13px; background: rgba(200,150,62,.14); color: var(--corp-accent); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.corp-service-icon svg { width: 26px; height: 26px; }
.corp-service-card h3 { color: var(--corp-service-text, #fff); font-size: 15px; font-weight: 800; letter-spacing: .04em; margin: 0 0 16px; }
.corp-service-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.corp-service-list li { color: var(--corp-service-text-soft, rgba(255,255,255,.68)); font-size: 13px; line-height: 1.6; padding-left: 16px; position: relative; }
.corp-service-list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--corp-accent); }

/* --- 업무영역/가치카드 이미지 배치형태(관리자가 카드마다 선택) ---
   icon(기본, 위 규칙 그대로) 외에 image-top(카드 상단 이미지 배너)/image-bg(카드 전체를
   이미지 배경으로) 두 형태를 추가한다. 두 클래스 조합(.corp-card.corp-card-layout-*)으로
   써서 위 기본 규칙보다 특이도를 확실히 높였다(이 세션에서 반복된 CSS 특이도 버그 재발 방지). */
.corp-card.corp-card-layout-image-top .corp-card-top-image,
.corp-service-card.corp-card-layout-image-top .corp-card-top-image {
  width: 100%; height: 140px; object-fit: cover; border-radius: 12px; margin-bottom: 18px; display: block;
}
.corp-card.corp-card-layout-image-bg,
.corp-service-card.corp-card-layout-image-bg {
  position: relative; overflow: hidden; padding: 0; min-height: 220px; display: flex; align-items: flex-end;
}
.corp-card-layout-image-bg .corp-card-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.corp-card-layout-image-bg .corp-card-bg-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,20,0) 30%, rgba(10,14,20,.82) 100%); z-index: 0; pointer-events: none; }
.corp-card-layout-image-bg .corp-card-body,
.corp-card-layout-image-bg .corp-service-card-body {
  position: relative; z-index: 1; padding: 20px 22px; width: 100%; box-sizing: border-box;
}
/* 가치카드(.corp-card)는 기본이 흰 배경+어두운 글자라 image-bg일 때만 흰 글자로 뒤집는다 —
   업무영역(.corp-service-card)은 원래도 어두운 배경+흰 글자라 그대로 둬도 된다. */
.corp-card.corp-card-layout-image-bg h3 { color: #fff; }
.corp-card.corp-card-layout-image-bg p { color: rgba(255,255,255,.9); }

/* --- 회사 가치 카드 섹션 좌측 미션 문구 + 배경이미지 (2단 배치: 왼쪽 문구, 오른쪽 카드그리드) --- */
.corp-values-section { position: relative; overflow: hidden; }
.corp-values-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: .15; }
.corp-values-columns { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 50px; align-items: start; }
.corp-values-intro { text-align: right; }
.corp-values-intro-quote { font-size: 14.5px; font-weight: 700; color: var(--corp-accent); margin: 0 0 10px; }
.corp-values-intro h2 { font-size: 32px; font-weight: 800; line-height: 1.28; letter-spacing: -.02em; margin: 0 0 20px; }
.corp-values-intro-body { font-size: 14px; line-height: 1.9; color: var(--corp-ink-soft); margin: 0 0 22px; }
.corp-values-intro-since { font-size: 13px; color: var(--corp-ink-faint); margin: 0; }
/* 회사 가치 카드는 항상 2×2로 고정 배치(카드 개수가 늘어도 폭 안에서 줄바꿈만 됨). */
.corp-values-columns .corp-card-grid { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px) { .corp-values-columns { grid-template-columns: 1fr; } .corp-values-intro { text-align: left; } .corp-values-columns .corp-card-grid { grid-template-columns: 1fr; } }

/* --- 계열사/브랜드 3분할 소개 행 (가치카드~연혁 사이) --- */
.corp-brand-row { padding: 36px 24px; }
.corp-brand-row-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; }
.corp-brand-row-grid p { text-align: center; font-weight: 700; line-height: 1.5; margin: 0; padding: 0 16px; }
.corp-brand-row-grid p:not(:first-child) { border-left: 1px solid rgba(255,255,255,.25); }

/* --- 연혁(History) — 기간별 박스, 이미지가 있으면 좌측에 노출 --- */
/* 카드 전체 폭(그리드 max-width)을 100px 늘려(2열 기준 카드 1개당 +50px) 그만큼을 이미지
   쪽에 그대로 얹어준다 — 글자(본문)는 flex:1이라 카드가 넓어진 만큼만 자동으로 따라 커지고,
   이미지가 늘어난 폭은 본문에서 빼앗지 않아 본문 자체 폭은 이전과 동일하게 유지된다. */
.corp-history-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 24px; max-width: 1100px; margin: 0 auto; }
.corp-history-card { border: 1px solid var(--corp-line); border-radius: 14px; overflow: hidden; background: #fff; }
.corp-history-card:not(.corp-history-card-has-image) { padding: 28px; }
.corp-history-card-has-image { display: flex; }
.corp-history-card-image { width: calc(42% - 72px); flex-shrink: 0; object-fit: cover; }
.corp-history-card-body { padding: 24px; flex: 1; min-width: 0; }
.corp-history-card-body h3 { font-size: 16px; font-weight: 800; margin: 0 0 12px; letter-spacing: -.01em; }
.corp-history-card-body ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.corp-history-card-body li { font-size: 13.5px; color: var(--corp-ink-soft); line-height: 1.65; }
@media (max-width: 600px) {
  .corp-history-card-has-image { flex-direction: column; }
  .corp-history-card-image { width: 100%; height: 160px; }
}

/* --- 사업분야 소개 (헤드헌팅/공공기관 등 좌우 교차 배치, 이미지 최대 3장 콜라주) ---
   가로 배치비율: 이미지 65% / 글 35%. 트랙 자체를 비대칭(35fr/65fr)으로 두고, 좌우가
   뒤집히는 reverse 상태에서는 트랙 순서도 함께 뒤집어(65fr/35fr) 이미지 쪽이 항상 65%를
   차지하도록 한다(순서만 바뀌는 항목(order)과 달리 트랙 크기는 위치 그대로라 별도 처리 필요). */
.corp-division { padding-top: 168px; padding-bottom: 168px; }
.corp-division-grid { display: grid; grid-template-columns: 35fr 65fr; gap: 60px; align-items: center; }
.corp-division-reverse .corp-division-grid { grid-template-columns: 65fr 35fr; }
.corp-division-grid-text-only { grid-template-columns: 1fr; max-width: 720px; }
.corp-division-reverse .corp-division-body { order: 2; }
.corp-division-reverse .corp-division-images { order: 1; }
.corp-division-body h2 { font-size: 28px; font-weight: 800; letter-spacing: -.02em; line-height: 1.32; margin: 12px 0 20px; }
/* .corp-eyebrow는 기본 display:flex(block-level)라 부모의 text-align이 안 먹는다 — 이미지가
   왼쪽일 때 글자 정렬(좌/우/중간)을 고르면 이 줄도 같이 따라가도록 inline-flex로 바꾼다. */
.corp-division-body .corp-eyebrow { display: inline-flex; }
.corp-division-text { font-size: 14px; line-height: 1.6; color: var(--corp-ink-soft); margin: 0 0 24px; }
.corp-division-contact { font-size: 13px; color: var(--corp-ink-faint); line-height: 1.6; margin: 0; }
/* 이미지 2~3장 콜라주 — 예전엔 height를 컨테이너의 %(고정 min-height 340px 기준)로 줘서
   와이드-숏 비율(가로로 넓고 세로로 짧은) 박스에 사진이 크게 잘려 들어가 "원본보다 세로가
   짧아 보인다"는 문제가 있었다 — height 대신 aspect-ratio를 써서 각 사진이 항상 실제
   사진에 가까운 비율(4:3)로 온전히 보이도록 하고, 컨테이너 높이도 그만큼 늘렸다. */
.corp-division-images { position: relative; min-height: 470px; }
.corp-division-image { position: absolute; border-radius: 14px; object-fit: cover; box-shadow: 0 16px 40px rgba(16,24,40,.16); }
.corp-division-images-3 .corp-division-image-1 { top: 0; right: 0; width: 78%; aspect-ratio: 4 / 3; height: auto; z-index: 1; }
.corp-division-images-3 .corp-division-image-2 { bottom: 0; left: 0; width: 55%; aspect-ratio: 4 / 3; height: auto; z-index: 2; border: 5px solid #fff; }
.corp-division-images-3 .corp-division-image-3 { top: 8%; left: 0; width: 38%; aspect-ratio: 4 / 3; height: auto; z-index: 0; opacity: .85; }
.corp-division-images-2 .corp-division-image-1 { top: 0; right: 0; width: 75%; aspect-ratio: 4 / 3; height: auto; z-index: 1; }
.corp-division-images-2 .corp-division-image-2 { bottom: 0; left: 0; width: 50%; aspect-ratio: 4 / 3; height: auto; z-index: 2; border: 5px solid #fff; }
.corp-division-images-1 { min-height: auto; }
.corp-division-images-1 .corp-division-image-1 { position: static; width: 100%; height: auto; aspect-ratio: 16 / 10; box-shadow: 0 16px 40px rgba(16,24,40,.12); }
@media (max-width: 900px) {
  .corp-division-grid { grid-template-columns: 1fr; }
  .corp-division-reverse .corp-division-body, .corp-division-reverse .corp-division-images { order: initial; }
  /* 데스크톱은 이미지 2~3장을 절대좌표로 겹쳐 콜라주처럼 보여주는데, 좁은 모바일 폭에서는 이
     절대좌표 배치가 본문 텍스트와 겹쳐 보이는 문제가 있었다 — 이미지 1장(.corp-division-images-1)이
     이미 쓰고 있는 것과 동일하게, 모바일에서는 2~3장도 겹침 없이 세로로 순서대로 쌓는다. */
  .corp-division-images { min-height: auto; }
  .corp-division-image { position: static !important; width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; box-shadow: 0 12px 28px rgba(16,24,40,.14); border: none !important; margin-bottom: 12px; }
  .corp-division-image:last-child { margin-bottom: 0; }
}

/* --- HR EVENT 소개 (사업분야 소개 바로 아래) --- */
.corp-hrevent-section { color: #fff; }
.corp-hrevent-grid { display: grid; grid-template-columns: 35fr 65fr; gap: 48px; align-items: center; }
.corp-hrevent-text { text-align: center; } /* 관리자 설정(text_align)이 있으면 인라인 style로 덮어씀 */
.corp-hrevent-text.has-bg { padding: 32px 28px; border-radius: 14px; }
.corp-hrevent-text .corp-eyebrow { display: inline-flex; color: var(--corp-hrevent-fg, var(--corp-accent)); }
.corp-hrevent-text h2 { font-size: 26px; font-weight: 800; letter-spacing: -.02em; line-height: 1.4; margin: 12px 0 20px; color: var(--corp-hrevent-fg, #fff); }
.corp-hrevent-body { font-size: 14px; line-height: 1.6; color: var(--corp-hrevent-fg-soft, rgba(255,255,255,.8)); margin: 0 0 22px; }
.corp-hrevent-contact { font-size: 13px; line-height: 1.6; color: var(--corp-hrevent-fg-soft, rgba(255,255,255,.9)); margin: 0 0 22px; }
.corp-hrevent-footnote { font-size: 12px; line-height: 1.6; color: var(--corp-hrevent-fg-soft, rgba(255,255,255,.55)); margin: 0; }
.corp-hrevent-cells { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; }
.corp-hrevent-cell { border-radius: 14px; overflow: hidden; min-height: 180px; }
.corp-hrevent-cell-image { background: rgba(255,255,255,.08); }
.corp-hrevent-cell-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.corp-hrevent-cell-text { background: var(--corp-hrevent-cell-bg, rgba(255,255,255,.08)); padding: 22px; display: flex; flex-direction: column; justify-content: center; }
.corp-hrevent-cell-text h3 { margin: 0 0 10px; font-size: 16px; font-weight: 700; color: var(--corp-hrevent-cell-fg, #fff); }
.corp-hrevent-cell-text p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--corp-hrevent-cell-fg-soft, rgba(255,255,255,.75)); }
@media (max-width: 900px) {
  .corp-hrevent-grid { grid-template-columns: 1fr; }
  .corp-hrevent-cells { grid-template-columns: 1fr 1fr; }
}

/* --- Photo gallery --- */
.corp-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.corp-photo-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 14px; transition: transform .3s; }
.corp-photo-grid img:hover { transform: scale(1.02); }

/* --- Process flow (헤드헌팅/공공채용 업무순서) --- */
.corp-process-section .section-header h2 { line-height: 1.3; }
.corp-process-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; align-items: stretch; }
.corp-process-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 16px; }
.corp-process-step:not(:last-child)::after { content: ''; position: absolute; top: 34px; left: calc(50% + 50px); width: calc(100% - 100px); height: 2px; background: repeating-linear-gradient(90deg, var(--corp-accent) 0 6px, transparent 6px 12px); }
.corp-process-step-badge { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; margin-bottom: 16px; flex-shrink: 0; }
.corp-process-step-badge-num { display: flex; align-items: center; justify-content: center; background: var(--corp-accent-soft); color: var(--corp-accent); font-size: 22px; font-weight: 800; }
.corp-process-step h3 { font-size: 15px; font-weight: 800; margin: 0 0 8px; }
.corp-process-step p { font-size: 12.5px; color: var(--corp-ink-soft); line-height: 1.6; margin: 0; flex: 1; }
.corp-process-contact { text-align: center; margin: 40px 0 0; font-size: 13px; color: var(--corp-ink-faint); line-height: 1.6; }
@media (max-width: 900px) {
  .corp-process-flow { grid-template-columns: 1fr; gap: 28px; }
  .corp-process-step:not(:last-child)::after { display: none; }
}

/* --- 기업현황 --- */
.corp-company-info-section .section-header h2 { color: #fff; }
.corp-company-info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; }
.corp-company-info-card { background: rgba(255,255,255,.06); border-radius: 16px; padding: 28px 22px; text-align: center; }
.corp-company-info-icon { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; margin: 0 auto 16px; }
.corp-company-info-icon-default { display: flex; align-items: center; justify-content: center; background: rgba(200,150,62,.16); color: var(--corp-accent); }
.corp-company-info-icon-default svg { width: 26px; height: 26px; }
.corp-company-info-card h3 { color: var(--corp-company-info-text, #fff); font-size: 14.5px; font-weight: 800; margin: 0 0 10px; }
.corp-company-info-card p { color: var(--corp-company-info-text-soft, rgba(255,255,255,.6)); font-size: 12.5px; line-height: 1.7; margin: 0 0 4px; }
.corp-company-info-card p a { color: inherit; text-decoration: none; }
.corp-company-info-card p a:hover { color: var(--corp-accent); text-decoration: underline; }

/* --- CTA cards --- */
.corp-cta-section { background: linear-gradient(160deg, var(--corp-dark), var(--corp-dark-soft)); }
.corp-cta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.corp-cta-card { background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; padding: 30px 26px; transition: background .2s, transform .2s; }
.corp-cta-card:hover { background: rgba(255,255,255,.07); transform: translateY(-3px); }
.corp-cta-card h3 { color: var(--corp-cta-fg, #fff); font-size: 17.5px; font-weight: 700; margin: 0 0 10px; letter-spacing: -.01em; }
.corp-cta-card p { color: var(--corp-cta-fg-soft, rgba(255,255,255,.62)); font-size: 13.5px; line-height: 1.75; margin: 0 0 20px; }
.corp-cta-card .btn { display: inline-block; padding: 11px 22px; border-radius: 999px; font-size: 13.5px; font-weight: 700; transition: background .18s, transform .18s; }

/* --- Footer --- */
.corp-footer { position: relative; overflow: hidden; background: var(--corp-dark); border-top: 1px solid rgba(255,255,255,.08); padding: 48px 24px 30px; color: rgba(255,255,255,.55); font-size: 12.5px; }
.corp-footer .wrap { position: relative; z-index: 1; max-width: 1600px; margin: 0 auto; }
.corp-footer-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.corp-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; padding-left: 20px; text-align: center; }
@media (min-width: 900px) {
  .corp-footer-grid > div:not(:first-child) { border-left: var(--corp-footer-divider-size, 1px) solid var(--corp-footer-divider-color, rgba(255,255,255,.14)); margin-left: -11px; padding-left: 11px; }
}
.corp-footer-grid p { margin: 0 0 6px; }
.corp-footer-grid a { color: rgba(255,255,255,.7); }
.corp-footer-grid a:hover { color: var(--corp-accent); }
.corp-footer-unit-header { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0 0 10px; font-weight: 700; font-size: 13px; color: rgba(255,255,255,.85); }
.corp-footer-unit-header svg { width: 16px; height: 16px; flex: none; }
.corp-footer-sns { display: flex; justify-content: center; gap: 12px; margin-top: 4px; }
.corp-footer-sns-icon { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.08); color: inherit; transition: background .15s, color .15s; }
.corp-footer-sns-icon:hover { background: var(--corp-accent); color: #fff; }
.corp-footer-sns-icon svg { width: 17px; height: 17px; }

@media (max-width: 640px) {
  .corp-header .wrap { height: auto !important; min-height: 60px; flex-wrap: wrap; gap: 8px; padding: 12px 20px; }
  .corp-header nav { flex-wrap: wrap; justify-content: center; }
  .corp-hero { padding: 24px 20px 72px; }
  .corp-hero h1 { font-size: 28px; }
  .corp-hero-sub { font-size: 15px; }
  .corp-hero-scroll { display: none; }
  .corp-section { padding: 56px 20px; }
  .corp-division { padding-top: 136px; padding-bottom: 136px; }
  .corp-section .section-header h2 { font-size: 22px; }
  .corp-timeline::before { left: 7px; }
}
