/* 페이지 기본 스타일. 기존 style 위치에서 읽어 우선순위를 유지한다. */
:root {
    --surface-sub:var(--rule);
  --text:var(--ink);
   --action-deep:var(--ink);
   --border-mid:var(--rule); --line-soft:var(--rule);

  --font-sans:var(--font);
  --font-mono:var(--font);
  --font-serif:var(--font);
  --r-sm:var(--r-inset); --r-md:var(--r-panel); --r-lg:var(--r-panel);
  --nav-h:68px;
  --nav-bg:color-mix(in srgb,var(--canvas) 88%,transparent);
}
/* 다크 — 디자인 시스템 다크 램프(홈 index.html 과 같은 계단). 이 페이지들은
   그동안 다크로 렌더된 적이 없어 토큰만 라이트였다.
   주의: --identity 는 텍스트(.accent/.sec-num)와 장식(1px 선·점) 양쪽에 쓰여
   다크에선 밝은 값이어야 한다. --ink 는 흰 글자를 얹는 어두운 패널
   (.job-hero/.job-cta)이라 다크에서도 어둡게 두되 canvas 와는 구분되어야 한다. */
[data-theme="dark"] {
    --identity-deep:var(--rule);
    /* --ink 는 위 주석대로 다크에서도 어두워야 한다. 이 줄이 빠져 있어
       --text-strong(var(--ground-hi))이 그대로 흘러들었고, 흰 글자를 얹은 .job-hero/.job-cta
       패널이 다크에서 흰 판이 돼 제목이 사라졌다. canvas(var(--ink))와는 한 단 띄운다. */

}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--canvas); color:var(--text); font-family:var(--font); line-height:1.7; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }

/* ── NAV ── */
.job-cta .btn-secondary {
  background-color:var(--ground-hi); background-image:none; color:var(--ink);
  border-color:var(--ground-hi);
  -webkit-backdrop-filter:none; backdrop-filter:none;
}

/* ── LAYOUT ── */
.wrap { width:min(var(--page-max), calc(100% - 2 * var(--page-gutter))); margin:0 auto; }

/* ── CLOSED BANNER ── */
.closed-banner {
  margin-top:24px; background:var(--surface-sub); border:0; border-radius:var(--r-md);
  padding:14px 20px; display:flex; align-items:center; gap:12px; font-size:14px; color:var(--ink);
}
.closed-banner strong { color:var(--text); font-weight:600; }
.closed-banner .tag { font-family:var(--font); font-size:13px; font-weight:600; letter-spacing:.06em; color:var(--ink-2); background:var(--ground-hi); border:0; padding:4px 10px; border-radius:var(--r-ctl); flex-shrink:0; }
.closed-banner a { color:var(--identity); font-weight:600; }

/* ── HERO ── */
.job-hero { margin-top:16px; background:var(--surface-inverse); color:var(--ink-inverse); border-radius:var(--r-panel); padding:40px 32px 36px; overflow:hidden; }
.job-hero-eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.job-hero-eyebrow .t { font-family:var(--font); }
.job-hero-eyebrow .status { font-family:var(--font); font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--ink); background:var(--glass); border:0; padding:4px 11px; border-radius:var(--r-ctl); }
.job-hero-title { font-family:var(--font); font-size:clamp(26px,4vw,32px); letter-spacing:-.01em; line-height:1.28; color:var(--ink-inverse); word-break:keep-all; }
.job-hero-sub { font-size:16px; color:var(--ink-inverse-2); margin-top:14px; line-height:1.7; max-width:640px; word-break:keep-all; }

/* ── META STRIP ── */
.job-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px; }
.job-meta-item { background:var(--ground-hi); border:0; border-radius:var(--r-md); padding:16px 20px; }
.job-meta-item .k { font-family:var(--font); font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); margin-bottom:6px; }
.job-meta-item .v { font-size:15px; font-weight:600; color:var(--text); word-break:keep-all; }

/* ── SECTIONS ── */
.sec { padding:44px 0 0; }
.sec-head { display:flex; align-items:baseline; gap:10px; margin-bottom:16px; }
.sec-num { font-family:var(--font); font-size:14px; color:var(--identity); letter-spacing:.10em; }
.sec-name { font-size:22px; color:var(--text); letter-spacing:-.01em; }

.card { padding:0; overflow:hidden; }
.card-row { padding:22px 26px; border-bottom:1px solid var(--rule); }
.card-row:last-child { border-bottom:none; }
.card-eyebrow { font-family:var(--font); margin-bottom:5px; }
.card-title { font-size:17px; font-weight:600; color:var(--text); word-break:keep-all; }
.card-desc { font-size:15px; color:var(--ink); margin-top:6px; line-height:1.8; word-break:keep-all; }
.card-desc .sub { font-size:14px; color:var(--ink-2); }
.accent { color:var(--identity); font-weight:600; }
.mono { font-family:var(--font); }

/* ── REQUIREMENTS ── */
.req-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.req-block { padding:24px 26px; }
.req-block h3 { font-size:16px; font-weight:600; color:var(--text); margin-bottom:14px; }
.req-list { list-style:none; display:flex; flex-direction:column; gap:11px; }
.req-list li { font-size:15px; color:var(--ink); line-height:1.6; padding-left:24px; position:relative; word-break:keep-all; }
.req-list li::before { content:'✓'; position:absolute; left:0; top:0; font-size:13px; font-weight:600; }
.req-must li::before { color:var(--identity); }
.req-plus li::before { color:var(--ink-2); }

/* ── CONDITIONS TABLE ── */
.cond { overflow:hidden; }
.cond-row { display:grid; grid-template-columns:150px 1fr; border-bottom:1px solid var(--rule); }
.cond-row:last-child { border-bottom:none; }
.cond-k { padding:18px 24px; font-size:14px; font-weight:600; color:var(--ink-2); background:color-mix(in srgb, var(--surface-sub) 40%, transparent); }
.cond-v { padding:18px 24px; font-size:15px; color:var(--text); line-height:1.7; word-break:keep-all; }
.cond-v .note { display:block; margin-top:4px; font-size:14px; color:var(--ink-2); }

/* ── STEPS ── */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; align-items:stretch; }
.step { background:color-mix(in srgb, var(--surface-sub) 55%, transparent); border-radius:var(--r-md); padding:16px 12px; text-align:center; }
.step .s { font-family:var(--font); font-size:13px; font-weight:600; color:var(--identity); }
.step .t { font-size:14px; font-weight:600; color:var(--text); margin-top:5px; word-break:keep-all; }
.step .t small { display:block; font-weight:400; color:var(--ink-2); font-size:13px; margin-top:2px; }

.apply-box { background:color-mix(in srgb, var(--surface-sub) 55%, transparent); border:0; border-radius:var(--r-md); padding:20px 24px; margin-top:6px; }
.apply-box .lead { font-size:15px; font-weight:600; color:var(--text); }
.apply-box ul { list-style:none; margin:10px 0 0; padding:0; }
.apply-box li { font-size:15px; color:var(--ink); line-height:1.9; }
.apply-box .memo { font-size:14px; color:var(--ink-2); margin-top:8px; }

/* ── NOTICE ── */
.notice { list-style:none; display:flex; flex-direction:column; gap:12px; }
.notice li { font-size:14.5px; color:var(--ink-2); line-height:1.85; padding-left:16px; position:relative; word-break:keep-all; }
.notice li::before { content:'·'; position:absolute; left:4px; top:-1px; font-weight:600; }

/* ── CTA ── */
.job-cta { margin:52px 0 24px; background:var(--surface-inverse); border-radius:var(--r-panel); padding:40px 28px; text-align:center; }
.job-cta h2 { font-family:var(--font); font-size:clamp(22px,4vw,28px); font-weight:600; color:var(--ink-inverse); line-height:1.4; word-break:keep-all; }
.job-cta p { font-size:15px; color:var(--ink-inverse-2); margin-top:10px; }
.job-cta .btn { margin-top:26px; }
.job-cta .foot { font-family:var(--font); font-size:13px; letter-spacing:.22em; color:var(--ink-inverse-2); margin-top:28px; }

/* ── FOOTER ── */
footer { background:var(--surface-inverse); padding:48px 0; margin-top:20px; }
.foot-inner { width:min(var(--page-max), calc(100% - 2 * var(--page-gutter))); margin:0 auto; display:flex; flex-direction:column; gap:22px; }
.foot-top { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:18px; }
.foot-tag { color:var(--ink-inverse-2); font-size:13px; margin-top:10px; }
.foot-links { display:flex; gap:22px; flex-wrap:wrap; }
.foot-links a { color:var(--ink-inverse); font-size:13px; transition:color var(--t-hover) var(--ease-out); }
.foot-links a:hover { color:var(--ink-inverse); }
.foot-bottom { border-top:1px solid var(--rule-inverse); padding-top:18px; }
.foot-bottom p { color:var(--ink-inverse-2); font-size:13px; line-height:1.8; }
.foot-bottom .copy { color:var(--ink-inverse-2); margin-top:4px; }

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(20px); transition:opacity var(--t-state) ease, transform var(--t-state) ease; }
.reveal.visible { opacity:1; transform:none; }

/* ── RESPONSIVE ── */
@media (max-width:720px) {
  .nav-back span { display:none; }
  .job-hero { padding:40px 26px 36px; }
  .job-meta { grid-template-columns:1fr; }
  .req-grid { grid-template-columns:1fr; }
  .cond-row { grid-template-columns:1fr; }
  .cond-k { padding-bottom:4px; background:transparent; }
  .cond-v { padding-top:6px; }
  .steps { grid-template-columns:1fr; }
}
