/* ==========================================================================
   NobleHR 개편 페이지 공통 스타일 (2026-11 전면 개편, 같은 달 디자인 보강)
   메인(/), 통상임금 진단, AI로 일하기, 업무 흐름, 급여 자문사, 기초설정 컨설팅이 함께 씁니다.

   구성 원칙
   - 구역마다 "가운데 정렬한 머리말(작은 표지 → 큰 제목 → 한두 문장) → 그림이나 카드".
     머리말을 가운데에 두어 왼쪽에만 글이 몰리고 오른쪽이 비는 일을 막습니다.
   - 강조는 세 단계만 씁니다: ① 큰 숫자(.st-result, .st-stat) ② 한 문장 띠(.st-statement) ③ 메모(.st-note).
   - 폭은 세 가지만 씁니다: 글 44rem, 그림·표 960px, 카드 묶음은 컨테이너 전체.
   - 한글은 단어 중간에서 줄이 바뀌지 않게 합니다(word-break: keep-all).
   색: 브랜드 네이비(#0e2044) · 골드(#c8a865) · 스카이(#1f7fb8). 경고는 붉은색, 정상은 초록색.
   클래스는 모두 st- 로 시작합니다. (기존 home.css 와 섞이지 않게)
   ========================================================================== */

:root {
  --st-navy: #0e2044;
  --st-navy-2: #1e3a5f;
  --st-gold: #c8a865;
  --st-gold-ink: #8a6a1f;
  --st-gold-soft: #fbf4e2;
  --st-sky: #1f7fb8;
  --st-sky-soft: #e6f3fb;
  --st-ink: #0e2044;
  --st-text: #3b4656;
  --st-muted: #5b6676;
  --st-line: #dbe2ec;
  --st-bg: #f4f7fb;
  --st-surface: #ffffff;
  --st-danger: #b93323;
  --st-danger-soft: #fdecea;
  --st-ok: #17703f;
  --st-ok-soft: #e5f5eb;
  --st-shadow-sm: 0 1px 2px rgba(14, 32, 68, 0.05), 0 8px 20px -12px rgba(14, 32, 68, 0.18);
  --st-shadow-md: 0 2px 6px rgba(14, 32, 68, 0.06), 0 22px 44px -20px rgba(14, 32, 68, 0.32);
  --st-w-text: 44rem;
  --st-w-figure: 960px;
}

.st-page { color: var(--st-text); font-size: 1.0625rem; line-height: 1.75; background: var(--st-surface);
  word-break: keep-all; overflow-wrap: break-word; }
.st-page h1, .st-page h2, .st-page h3 { color: var(--st-ink); line-height: 1.3; margin: 0; text-wrap: balance; }
.st-page p { margin: 0; }
.st-page .footer { margin-top: 0; }

/* ---------- 구역과 머리말 ---------- */
.st-section { padding: 6rem 0; }
.st-section.st-alt { background: var(--st-bg); }
.st-stack { display: flex; flex-direction: column; gap: 1.25rem; }
.st-narrow { max-width: 880px; margin: 0 auto; }

.st-eyebrow { align-self: flex-start; display: inline-block; font-size: 0.88rem; font-weight: 800; letter-spacing: 0.02em;
  color: var(--st-sky); background: var(--st-sky-soft); padding: 0.3rem 0.9rem; border-radius: 999px; }
.st-h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.28; }
.st-h3 { font-size: 1.2rem; font-weight: 800; letter-spacing: -0.01em; }
.st-lead { font-size: 1.15rem; color: var(--st-muted); max-width: var(--st-w-text); }
.st-prose { max-width: var(--st-w-text); text-wrap: pretty; }
.st-prose strong { color: var(--st-ink); font-weight: 800; background: linear-gradient(transparent 62%, rgba(200, 168, 101, 0.38) 62%); }
.st-small { font-size: 0.95rem; color: var(--st-muted); }
.st-num { font-variant-numeric: tabular-nums; }
/* 제목이나 문장 안에서 한 구절을 짚을 때 */
.st-mark { background: linear-gradient(transparent 60%, rgba(200, 168, 101, 0.45) 60%); }

/* 구역 바로 아래의 글은 가운데에 모읍니다 (카드·그림·표 안의 글은 왼쪽 정렬 그대로) */
.st-section > .container > .st-eyebrow { align-self: center; }
.st-section > .container > .st-h2,
.st-section > .container > .st-h3,
.st-section > .container > .st-prose,
.st-section > .container > .st-lead,
.st-section > .container > .st-small,
.st-section > .container > p { text-align: center; margin-left: auto; margin-right: auto; }
.st-section > .container > .st-h2 { max-width: 24em; }
.st-section > .container > .st-h2 + .st-prose { font-size: 1.15rem; color: var(--st-muted); margin-bottom: 1rem; }
/* 제목 바로 아래에 설명 없이 카드·그림이 올 때도 간격을 맞춥니다 */
.st-section > .container > .st-h2 + :not(.st-prose):not(.st-lead) { margin-top: 1.25rem; }
.st-section > .container > .st-h3 { font-size: 1.4rem; margin-top: 1.75rem; }
/* 구역 끝의 주요 이동 버튼은 가운데에 둡니다 */
.st-section > .container > .st-btn { align-self: center; margin-top: 0.5rem; }
.st-section > .container > .st-small { max-width: var(--st-w-text); }
.st-section > .container > ul.st-list,
.st-section > .container > ol.st-steps { margin-left: auto; margin-right: auto; width: 100%; }

/* ---------- 히어로 ---------- */
.st-hero { position: relative; color: #fff; padding: 5.5rem 0 6rem;
  background:
    radial-gradient(900px 420px at 88% -8%, rgba(93, 173, 226, 0.28), transparent 62%),
    radial-gradient(700px 380px at 0% 110%, rgba(200, 168, 101, 0.16), transparent 60%),
    linear-gradient(135deg, var(--st-navy) 0%, var(--st-navy-2) 100%); }
.st-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 3.5rem; align-items: center; }
.st-hero .st-eyebrow { color: var(--st-gold); background: rgba(200, 168, 101, 0.14); border: 1px solid rgba(200, 168, 101, 0.45); }
.st-hero h1 { color: #fff; font-size: clamp(2.5rem, 5.6vw, 4rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1.16; }
.st-hero-em { align-self: flex-start; color: var(--st-gold); font-size: clamp(1.2rem, 2.2vw, 1.45rem); font-weight: 800; letter-spacing: -0.01em;
  padding-bottom: 0.2rem; border-bottom: 3px solid rgba(200, 168, 101, 0.6); }
.st-hero-sub { font-size: 1.15rem; color: rgba(255, 255, 255, 0.88); max-width: 34em; }
.st-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.75rem; }
.st-hero-notes { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: 0.9rem; color: rgba(255, 255, 255, 0.9); }
.st-hero-notes span { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 999px; padding: 0.2rem 0.8rem; }

/* 하위 페이지의 히어로: 글만 있으므로 가운데 정렬 */
.st-hero.st-hero-sm { padding: 4.5rem 0 4.75rem; text-align: center; }
.st-hero.st-hero-sm .st-stack { align-items: center; }
.st-hero.st-hero-sm .st-eyebrow { align-self: center; }
.st-hero.st-hero-sm h1 { font-size: clamp(2rem, 4.4vw, 3rem); max-width: 20em; }
.st-hero.st-hero-sm .st-hero-sub { max-width: 40em; }
.st-hero.st-hero-sm .st-hero-notes, .st-hero.st-hero-sm .st-hero-actions { justify-content: center; }
.st-hero.st-hero-sm .st-hero-em { align-self: center; }

/* 히어로의 금액 비교 그림 (대표가 생각한 금액 / 법이 계산하는 금액) */
.st-gap { margin: 0; background: #fff; color: var(--st-ink); border-radius: 22px; padding: 1.75rem 1.75rem 1.4rem;
  box-shadow: 0 30px 70px -20px rgba(0, 0, 0, 0.55); display: flex; flex-direction: column; gap: 1rem; }
.st-gap-chart { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; align-items: end; border-bottom: 2px solid var(--st-line); padding: 0 0.5rem; }
.st-gap-col { display: flex; flex-direction: column; align-items: center; }
.st-gap-amount { font-size: clamp(1.5rem, 2.8vw, 2.1rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; margin-bottom: 0.5rem; }
.st-gap-law .st-gap-amount { color: var(--st-danger); }
.st-gap-bar { width: min(150px, 72%); height: 180px; background: linear-gradient(180deg, var(--st-navy-2), var(--st-navy)); border-radius: 10px 10px 0 0; }
.st-gap-law .st-gap-bar { border-radius: 0; }
/* 43만 ÷ 300만 × 180px ≒ 26px */
.st-gap-extra { width: min(150px, 72%); height: 26px; background: var(--st-danger); border-radius: 10px 10px 0 0;
  color: #fff; font-size: 0.8rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.st-gap-labels { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; text-align: center; padding: 0 0.5rem; }
.st-gap-labels b { display: block; font-size: 1rem; }
.st-gap-labels small { font-size: 0.85rem; color: var(--st-muted); }
.st-gap-diff { background: var(--st-danger-soft); color: var(--st-danger); border-radius: 12px; padding: 0.75rem 1rem; text-align: center; font-weight: 700; }
.st-gap-diff strong { font-size: 1.3rem; font-weight: 800; margin: 0 0.15rem; }
.st-gap figcaption { font-size: 0.88rem; color: var(--st-muted); text-align: center; }

/* ---------- 버튼 ---------- */
.st-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.95rem 1.7rem; border-radius: 12px;
  font-size: 1.05rem; font-weight: 800; text-decoration: none; border: 2px solid transparent;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease; }
.st-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -8px rgba(14, 32, 68, 0.35); }
.st-btn:focus-visible { outline: 3px solid var(--st-sky); outline-offset: 2px; }
.st-btn-gold { background: var(--st-gold); color: var(--st-navy); box-shadow: 0 12px 26px -12px rgba(200, 168, 101, 0.9); }
.st-btn-navy { background: var(--st-navy); color: #fff; }
.st-btn-line { background: transparent; color: var(--st-navy); border-color: var(--st-navy); }
.st-hero .st-btn-line, .st-cta .st-btn-line { color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.st-hero .st-btn-line:hover, .st-cta .st-btn-line:hover { background: rgba(255, 255, 255, 0.1); }
.st-link { color: var(--st-sky); font-weight: 800; text-decoration: none; }
.st-link:hover { text-decoration: underline; }
/* 본문 속 링크도 같은 색으로 (브라우저 기본 보라·파랑이 섞이지 않게) */
.st-section a:not(.st-btn):not(.st-card):not(.st-link) { color: var(--st-sky); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 그림 ---------- */
.st-figure { margin: 0 auto; width: 100%; max-width: var(--st-w-figure); background: var(--st-surface); border: 1px solid var(--st-line);
  border-radius: 18px; padding: 2rem 2rem 1.5rem; box-shadow: var(--st-shadow-sm); }
.st-figure-scroll { overflow-x: auto; }
.st-figure svg { display: block; width: 100%; height: auto; min-width: 520px; font-family: var(--font-primary, 'Pretendard', 'Noto Sans KR', sans-serif); }
.st-figure figcaption { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--st-line); font-size: 0.95rem; color: var(--st-muted); text-align: center; }
.s-box { fill: var(--st-surface); stroke: #c3cddb; stroke-width: 1.5; }
.s-navy { fill: var(--st-navy); }
.s-sky { fill: var(--st-sky-soft); stroke: var(--st-sky); stroke-width: 2; }
.s-gold { fill: var(--st-gold-soft); stroke: var(--st-gold); stroke-width: 2; }
.s-danger { fill: var(--st-danger-soft); stroke: var(--st-danger); stroke-width: 2; }
.s-dash { fill: none; stroke: var(--st-muted); stroke-width: 1.5; stroke-dasharray: 6 5; }
.s-line { stroke: var(--st-muted); stroke-width: 1.5; fill: none; }
.s-arrow { fill: var(--st-muted); }
.s-x { stroke: var(--st-danger); stroke-width: 2; }
.t { fill: var(--st-ink); font-size: 14px; font-weight: 800; }
.t-s { fill: var(--st-muted); font-size: 12.5px; font-weight: 500; }
.t-w { fill: #fff; font-size: 14px; font-weight: 800; }
.t-d { fill: var(--st-danger); font-size: 14px; font-weight: 800; }
.t-c { fill: var(--st-sky); font-size: 13px; font-weight: 800; }
.t-big { fill: var(--st-ink); font-size: 20px; font-weight: 800; }

/* ---------- 카드 ---------- */
.st-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }
.st-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
.st-card { background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 16px; padding: 1.75rem; display: flex; flex-direction: column;
  gap: 0.7rem; min-width: 0; box-shadow: var(--st-shadow-sm); }
.st-card .st-small { font-size: 0.98rem; color: var(--st-text); }
a.st-card { text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
a.st-card:hover { transform: translateY(-4px); box-shadow: var(--st-shadow-md); border-color: var(--st-sky); }
.st-card .st-link { margin-top: auto; padding-top: 0.4rem; }

/* 좋고 나쁨을 견주는 카드: 위쪽 색 띠와 옅은 바탕으로 한눈에 구분 */
.st-card.st-bad { border: 1.5px solid #e6b1a9; border-top: 6px solid var(--st-danger); background: linear-gradient(180deg, #fff5f3 0, #fff 150px); }
.st-card.st-good { border: 1.5px solid #a9d6bb; border-top: 6px solid var(--st-ok); background: linear-gradient(180deg, #f1faf4 0, #fff 150px); }

/* 번호가 붙는 카드 묶음 (.st-numbered 를 묶음에 붙입니다) */
.st-numbered { counter-reset: stcard; }
.st-numbered > .st-card { counter-increment: stcard; }
.st-numbered > .st-card::before { content: counter(stcard); width: 2.4rem; height: 2.4rem; border-radius: 12px; background: var(--st-navy); color: var(--st-gold);
  font-weight: 800; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; margin-bottom: 0.25rem; }

/* 돋보이게 할 카드 한 장 (추천 요금제 등) */
.st-card.st-card-hl { border: 2px solid var(--st-navy); box-shadow: var(--st-shadow-md); position: relative; }
.st-ribbon { position: absolute; top: -0.85rem; right: 1.25rem; background: var(--st-gold); color: var(--st-navy); font-size: 0.8rem; font-weight: 800;
  padding: 0.2rem 0.8rem; border-radius: 999px; box-shadow: 0 6px 14px -6px rgba(200, 168, 101, 0.9); }

.st-tag { align-self: flex-start; font-size: 0.82rem; font-weight: 800; padding: 0.22rem 0.8rem; border-radius: 999px; white-space: nowrap; }
.st-tag-bad { background: var(--st-danger); color: #fff; }
.st-tag-good { background: var(--st-ok); color: #fff; }
.st-tag-info { background: var(--st-sky-soft); color: var(--st-sky); }
.st-tag-gold { background: var(--st-gold-soft); color: var(--st-gold-ink); border: 1px solid rgba(200, 168, 101, 0.6); }
.st-tag-plain { background: var(--st-bg); color: var(--st-muted); border: 1px solid var(--st-line); }

/* 계약서 한 대목을 보여 주는 칸 */
.st-doc { font-size: 1rem; font-weight: 600; background: #fff; border: 1px solid var(--st-line); border-left: 4px solid var(--st-navy); border-radius: 8px;
  padding: 0.85rem 1rem; color: var(--st-ink); box-shadow: 0 1px 2px rgba(14, 32, 68, 0.05); }
.st-doc::before { content: "근로계약서"; display: block; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; color: var(--st-muted); margin-bottom: 0.25rem; }

/* 강조 ①: 결과 숫자 */
.st-result { margin-top: auto; padding-top: 1rem; border-top: 1px dashed var(--st-line); display: flex; flex-direction: column; gap: 0.1rem; }
.st-result span { font-size: 0.92rem; font-weight: 800; color: var(--st-muted); }
.st-result strong { font-size: clamp(1.75rem, 3.2vw, 2.3rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.st-result em { font-style: normal; font-size: 0.98rem; font-weight: 700; }
.st-result-bad strong, .st-result-bad em { color: var(--st-danger); }
.st-result-good strong, .st-result-good em { color: var(--st-ok); }
.st-sum { font-size: 1.45rem; font-weight: 800; letter-spacing: -0.02em; }
.st-sum-bad { color: var(--st-danger); }
.st-sum-good { color: var(--st-ok); }

/* 강조 ①: 숫자 카드 묶음 */
.st-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; width: 100%; max-width: var(--st-w-figure); margin: 0 auto; }
.st-stat { background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 16px; padding: 1.6rem 1.25rem; text-align: center;
  display: flex; flex-direction: column; gap: 0.2rem; box-shadow: var(--st-shadow-sm); }
.st-stat-label { font-size: 0.98rem; font-weight: 800; color: var(--st-muted); }
.st-stat-value { font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 800; color: var(--st-ink); letter-spacing: -0.03em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.st-stat-value small { font-size: 1rem; font-weight: 700; color: var(--st-muted); letter-spacing: 0; }
.st-stat-sub { font-size: 0.98rem; font-weight: 800; color: var(--st-sky); }
/* 숫자 카드가 한 장뿐일 때는 폭을 줄여 가운데에 둡니다 */
.st-stats > .st-stat:only-child { width: 100%; max-width: 560px; margin: 0 auto; }
.st-stat.st-stat-hl { background: var(--st-navy); border-color: var(--st-navy); box-shadow: var(--st-shadow-md); }
.st-stat-hl .st-stat-label { color: rgba(255, 255, 255, 0.75); }
.st-stat-hl .st-stat-value { color: var(--st-gold); }
.st-stat-hl .st-stat-value small { color: rgba(255, 255, 255, 0.75); }
.st-stat-hl .st-stat-sub { color: #fff; }

/* 강조 ②: 한 문장 띠 */
.st-statement { width: 100%; margin: 0.5rem auto 0; background: var(--st-navy); color: #fff; border-radius: 18px;
  padding: 1.9rem 2.25rem; text-align: center; font-size: clamp(1.1rem, 2.1vw, 1.4rem); font-weight: 700; line-height: 1.6; text-wrap: balance;
  box-shadow: var(--st-shadow-md); border-bottom: 5px solid var(--st-gold); }
.st-statement strong { color: var(--st-gold); font-weight: 800; }

/* 강조 ③: 메모 */
.st-note { width: 100%; max-width: 52rem; margin-left: auto; margin-right: auto; border-left: 5px solid var(--st-gold); background: var(--st-gold-soft);
  border-radius: 4px 12px 12px 4px; padding: 1.1rem 1.4rem; font-size: 1.02rem; font-weight: 600; color: var(--st-ink); }

/* ---------- 계산기 ---------- */
.st-calc { width: 100%; max-width: var(--st-w-figure); margin: 1rem auto 0; background: var(--st-surface); border: 1px solid var(--st-line); border-top: 6px solid var(--st-navy);
  border-radius: 18px; padding: 2rem; display: flex; flex-direction: column; gap: 1.1rem; box-shadow: var(--st-shadow-md); }
.st-calc-inputs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.st-field { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.95rem; font-weight: 800; color: var(--st-ink); }
.st-field input { height: 54px; padding: 0 1rem; border: 2px solid var(--st-line); border-radius: 12px; font-size: 1.3rem; font-weight: 800; color: var(--st-ink);
  font-variant-numeric: tabular-nums; background: var(--st-bg); width: 100%; }
.st-field input:focus-visible { outline: 3px solid var(--st-sky); outline-offset: 1px; border-color: var(--st-sky); background: #fff; }
.st-dl { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.st-dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.st-dl dt { font-size: 0.95rem; color: var(--st-muted); }
.st-dl dd { margin: 0; font-weight: 800; color: var(--st-ink); text-align: right; font-variant-numeric: tabular-nums; }
.st-dl .st-dl-total { border-top: 1px dashed var(--st-line); padding-top: 0.7rem; margin-top: 0.25rem; }
.st-dl .st-dl-total dt { color: var(--st-ink); font-weight: 800; }
.st-dl .st-dl-total dd { font-size: clamp(1.5rem, 2.8vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; }
.st-dl dd.st-sum-bad { color: var(--st-danger); }
.st-dl dd.st-sum-good { color: var(--st-ok); }
.st-calc-summary { background: var(--st-navy); color: #fff; border-radius: 12px; padding: 1rem 1.25rem; font-weight: 700; text-align: center; }
.st-calc-warning { background: var(--st-danger-soft); color: var(--st-danger); border-radius: 12px; padding: 0.8rem 1rem; font-size: 0.98rem; font-weight: 800; }

/* ---------- 표 ---------- */
.st-tablewrap { width: 100%; max-width: var(--st-w-figure); margin: 0 auto; overflow-x: auto; background: var(--st-surface); border: 1px solid var(--st-line);
  border-radius: 16px; box-shadow: var(--st-shadow-sm); }
.st-table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 1rem; }
.st-table th, .st-table td { text-align: left; vertical-align: top; padding: 1rem 1.25rem; border-bottom: 1px solid var(--st-line); }
.st-table tr:last-child td { border-bottom: 0; }
.st-table thead th { font-size: 0.95rem; color: #fff; font-weight: 800; background: var(--st-navy); border-bottom: 0; }
.st-table tbody td:first-child { color: var(--st-ink); font-weight: 700; background: #f9fafc; }
.st-table .st-hl { background: var(--st-sky-soft); color: var(--st-ink); font-weight: 700; }
.st-table thead .st-hl { background: var(--st-sky); color: #fff; }

/* ---------- 순서 흐름 ---------- */
.st-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.8rem; counter-reset: stflow; width: 100%; }
.st-step { counter-increment: stflow; position: relative; background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 14px;
  padding: 1.1rem 0.9rem 1rem; min-width: 0; text-align: center; box-shadow: var(--st-shadow-sm); }
.st-step::before { content: counter(stflow); width: 2rem; height: 2rem; margin: 0 auto 0.55rem; border-radius: 50%; background: var(--st-sky-soft); color: var(--st-sky);
  font-weight: 800; font-size: 0.95rem; display: flex; align-items: center; justify-content: center; }
.st-step b { display: block; color: var(--st-ink); font-size: 1.05rem; }
.st-step span { font-size: 0.9rem; color: var(--st-muted); }
.st-step.st-now { background: var(--st-navy); border-color: var(--st-navy); box-shadow: var(--st-shadow-md); transform: translateY(-6px); }
.st-step.st-now::before { background: var(--st-gold); color: var(--st-navy); }
.st-step.st-now b { color: #fff; }
.st-step.st-now span { color: var(--st-gold); font-weight: 800; }

ol.st-steps { margin: 0; padding: 0; list-style: none; counter-reset: st; display: flex; flex-direction: column; gap: 1.1rem; max-width: 46rem; }
ol.st-steps > li { counter-increment: st; position: relative; padding-left: 3.25rem; }
ol.st-steps > li::before { content: counter(st); position: absolute; left: 0; top: 0; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--st-navy);
  color: var(--st-gold); font-weight: 800; display: flex; align-items: center; justify-content: center; font-size: 1rem; }
ol.st-steps b { color: var(--st-ink); font-weight: 800; }

/* 화면별 연결 안내 (AI로 일하기): 왼쪽 단계, 오른쪽 실제 화면 */
.st-guide { width: 100%; max-width: var(--st-w-figure); margin: 0 auto; background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 18px; padding: 2rem;
  display: flex; flex-direction: column; gap: 1.25rem; scroll-margin-top: 6rem; box-shadow: var(--st-shadow-sm); }
.st-guide ol.st-steps { max-width: none; }
.st-guide > .st-h3 { font-size: 1.4rem; padding-bottom: 0.9rem; border-bottom: 2px solid var(--st-navy); }
.st-guide-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 2rem; align-items: start; }
.st-guide-body.st-guide-one { grid-template-columns: minmax(0, 1fr); }
.st-guide .st-tablewrap { max-width: none; box-shadow: none; }
.st-shot { margin: 0; }
.st-shot img { display: block; width: 100%; height: auto; border: 1px solid var(--st-line); border-radius: 12px; box-shadow: var(--st-shadow-sm); }
.st-shot-inline { display: block; max-width: min(100%, 300px); height: auto; margin-top: 0.6rem; border: 1px solid var(--st-line); border-radius: 12px; box-shadow: var(--st-shadow-sm); }
.st-shot figcaption { margin-top: 0.6rem; font-size: 0.88rem; color: var(--st-muted); text-align: center; }
.st-kv { margin: 0.6rem 0 0; display: flex; flex-direction: column; border: 1px solid var(--st-line); border-radius: 12px; overflow: hidden; }
.st-kv > div { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--st-line); align-items: baseline; }
.st-kv > div:last-child { border-bottom: 0; }
.st-kv dt { font-size: 0.9rem; color: var(--st-muted); font-weight: 800; }
.st-kv dd { margin: 0; color: var(--st-ink); font-weight: 700; min-width: 0; }
.st-code { display: inline-block; font-family: var(--font-mono, 'Roboto Mono', monospace); font-size: 0.95rem; background: var(--st-navy); color: #fff; border-radius: 8px;
  padding: 0.4rem 0.8rem; word-break: break-all; }
ul.st-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.7rem; max-width: 46rem; }
ul.st-list > li { position: relative; padding: 0.85rem 1.1rem 0.85rem 2.6rem; background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 12px;
  box-shadow: 0 1px 2px rgba(14, 32, 68, 0.04); }
/* 좋은 점·문제점 어느 쪽 목록에도 쓰이므로 표식은 뜻이 없는 점으로 둡니다 */
ul.st-list > li::before { content: ""; position: absolute; left: 1.1rem; top: 1.45rem; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--st-gold); }
ul.st-list > li strong { color: var(--st-ink); font-weight: 800; margin-right: 0.4rem; }

/* ---------- 대화 예시 ---------- */
.st-chat { display: flex; flex-direction: column; gap: 0.7rem; }
.st-bubble { max-width: 88%; padding: 0.8rem 1.05rem; border-radius: 16px; font-size: 1rem; }
.st-bubble-me { align-self: flex-end; background: var(--st-navy); color: #fff; border-bottom-right-radius: 4px; }
.st-bubble-ai { align-self: flex-start; background: var(--st-bg); color: var(--st-ink); border: 1px solid var(--st-line); border-bottom-left-radius: 4px; }
.st-bubble-ai em { font-style: normal; font-weight: 800; color: var(--st-sky); }

/* ---------- 대상 ---------- */
.st-who { display: flex; flex-direction: column; gap: 0.8rem; }
.st-who-row { display: flex; gap: 1rem; align-items: flex-start; background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 14px; padding: 1.1rem 1.25rem; }
.st-who-rank { flex: none; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--st-navy); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.st-who-body { min-width: 0; display: flex; flex-direction: column; gap: 0.25rem; }

/* ---------- 요금 요약 ---------- */
.st-price { font-size: 2.1rem; font-weight: 800; color: var(--st-ink); letter-spacing: -0.03em; line-height: 1.2; }
.st-price small { font-size: 0.95rem; font-weight: 600; color: var(--st-muted); letter-spacing: 0; }

/* ---------- 업무 흐름 목록 ---------- */
.st-wf-group { display: flex; flex-direction: column; gap: 0.9rem; }
.st-wf-group > .st-h3 { font-size: 1.3rem; padding-left: 0.9rem; border-left: 5px solid var(--st-gold); }
.st-wf-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 0.9rem; }
.st-wf-item { background: var(--st-surface); border: 1px solid var(--st-line); border-radius: 12px; padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: 0.3rem; min-width: 0;
  box-shadow: 0 1px 2px rgba(14, 32, 68, 0.04); }
.st-wf-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.st-wf-head b { color: var(--st-ink); font-weight: 800; }

/* ---------- 마지막 안내 ---------- */
.st-cta { color: #fff; padding: 5.5rem 0; text-align: center;
  background:
    radial-gradient(700px 320px at 50% -20%, rgba(200, 168, 101, 0.28), transparent 65%),
    linear-gradient(135deg, var(--st-navy) 0%, var(--st-navy-2) 100%); }
.st-cta h2 { color: #fff; font-size: clamp(1.8rem, 3.8vw, 2.7rem); }
.st-cta p { color: rgba(255, 255, 255, 0.88); font-size: 1.15rem; }
.st-cta .st-stack { align-items: center; }
.st-cta-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 0.75rem; }
.st-cta .st-hero-notes { justify-content: center; }
.st-cta .st-hero-notes span { color: rgba(255, 255, 255, 0.9); }

/* ---------- 반응형 ---------- */
@media (max-width: 900px) {
  .st-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .st-hero { padding: 4rem 0 4.5rem; }
  .st-section { padding: 4.25rem 0; }
  .st-guide-body { grid-template-columns: minmax(0, 1fr); }
  .st-shot { max-width: 360px; }
  .st-step.st-now { transform: none; }
}
@media (max-width: 480px) {
  .st-page { font-size: 1rem; }
  .st-hero { padding: 3.25rem 0 3.5rem; }
  .st-hero.st-hero-sm { padding: 3.25rem 0; }
  .st-section { padding: 3.5rem 0; }
  .st-btn { width: 100%; }
  .st-bubble { max-width: 100%; }
  .st-card { padding: 1.35rem; }
  .st-figure { padding: 1.1rem 1.1rem 1rem; }
  .st-guide, .st-calc { padding: 1.25rem; }
  .st-statement { padding: 1.4rem 1.2rem; }
  .st-kv > div { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; }
  .st-gap { padding: 1.25rem 1.1rem 1.1rem; }
  .st-gap-bar { height: 140px; }
  .st-gap-extra { height: 20px; }
  .st-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .st-btn, a.st-card { transition: none; }
  .st-btn:hover, a.st-card:hover { transform: none; }
}

/* 2026-11 marketing refinement: main-page styles are scoped to nh-home. */
.nh-home { --nh-paper: #faf9f6; }
.nh-home main { display: block; }
.nh-home [id], .st-calc[id] { scroll-margin-top: 7rem; }
.nh-skip { position: fixed; top: -100px; left: 1rem; z-index: 10000; padding: 1rem; background: #fff; color: #0e2044; }
.nh-skip:focus { top: 1rem; }
.nh-home a:focus-visible { outline: 3px solid #1688bf; outline-offset: 5px; }
.nh-home .nh-hero { padding: 6.5rem 0 5.5rem; background: radial-gradient(ellipse at 90% 0, #264e68 0, transparent 55%), #0e2044; }
.nh-home .st-hero-grid { grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 4rem; }
.nh-home .nh-hero h1 { font-size: clamp(2.3rem, 4.3vw, 4rem); line-height: 1.23; letter-spacing: -.045em; }
.nh-home .nh-gold { color: #e4c88d; }
.nh-home .st-hero-sub { font-size: 1.08rem; line-height: 1.9; color: #d0dbe7; }
.nh-home .st-hero-actions { gap: .7rem; margin-top: .5rem; }
.nh-home .st-btn { min-height: 50px; font-size: .97rem; border-radius: 10px; padding: .85rem 1.1rem; }
.nh-home .st-btn-gold { background: #e4c88d; color: #112340; box-shadow: none; }
.nh-home .st-btn-gold:hover { background: #f2dba9; }
.nh-home .nh-hero-contact { color: #d0dbe7; font-size: .88rem; text-underline-offset: 5px; }
.nh-home .st-hero-notes { gap: .5rem 1.1rem; }
.nh-home .st-hero-notes span { font-size: .8rem; }
.nh-workspace { margin: 0; background: #fff; color: #0e2044; border: 1px solid #ffffff50; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 80px #0004; transform: rotate(1deg); }
.nh-workspace-top { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: 1.1rem 1.4rem; border-bottom: 1px solid #e5eaf0; }
.nh-wordmark { font-size: 1.3rem; font-weight: 800; letter-spacing: -.04em; }
.nh-wordmark > span { color: #9b752e; }
.nh-demo-label { color: #53647a; font-size: .72rem; background: #f0f3f7; border-radius: 5px; padding: .3rem .5rem; }
.nh-workspace-body { padding: 1.8rem 1.5rem 1.2rem; }
.nh-overline { color: #8a6a1f; font-size: .73rem; font-weight: 800; letter-spacing: .1em; display: block; margin-bottom: .8rem; }
.nh-workspace-heading h2 { font-size: 1.6rem; letter-spacing: -.04em; line-height: 1.45; }
.nh-timeline { padding: 0; margin: 1.5rem 0; list-style: none; }
.nh-timeline li { display: flex; align-items: center; gap: .8rem; position: relative; padding: 1rem 0; border-bottom: 1px solid #e8edf3; }
.nh-timeline li:last-child { border-bottom: 0; }
.nh-timeline-number { flex: none; width: 2.3rem; height: 2.3rem; border-radius: 9px; display: grid; place-items: center; background: #edf3f9; color: #365776; font-size: .8rem; font-weight: 800; }
.nh-timeline strong { font-size: .98rem; }
.nh-timeline p { font-size: .76rem; color: #657186; margin-top: .15rem; }
.nh-status { margin-left: auto; white-space: nowrap; color: #286349; background: #edf6f0; font-size: .65rem; border-radius: 5px; padding: .2rem .4rem; }
.nh-assistant { display: flex; gap: .7rem; align-items: center; background: #f7f3e9; border: 1px solid #eee1c5; border-radius: 10px; padding: .9rem; }
.nh-ai-icon { font-size: 1.7rem; color: #8a6a1f; }
.nh-assistant strong { font-size: .82rem; }
.nh-assistant p { color: #677080; font-size: .73rem; margin-top: .1rem; }
.nh-workspace figcaption { text-align: center; color: #657186; font-size: .69rem; padding: 0 1rem .9rem; }
.nh-jumpbar { background: var(--nh-paper); border-bottom: 1px solid #e7e8eb; }
.nh-jumpbar > div { display: flex; gap: 2.5rem; align-items: center; min-height: 76px; }
.nh-jumpbar span { margin-right: auto; font-size: .85rem; color: #667085; }
.nh-jumpbar a { color: #243955; font-weight: 700; font-size: .9rem; padding: .7rem 0; }
.nh-home .st-section { padding: 5rem 0; }
.nh-home .st-section.st-alt { background: var(--nh-paper); }
.nh-section-head { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-end; margin-bottom: 2.5rem; }
.nh-section-head > p { max-width: 27rem; font-size: .95rem; color: #637084; }
.nh-benefits { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem; }
.nh-benefit { display: flex; flex-direction: column; padding: 2rem; border: 1px solid #e0e5eb; border-radius: 16px; background: #f7f9fc; text-decoration: none; color: #3b4656; transition: transform .2s, box-shadow .2s; }
.nh-benefit:hover { transform: translateY(-4px); box-shadow: 0 16px 35px #10274412; }
.nh-feature-symbol { color: #8a6a1f; font-family: monospace; font-size: 1.1rem; margin-bottom: 2rem; }
.nh-benefit h3 { font-size: 1.22rem; margin-bottom: .8rem; }
.nh-benefit p { font-size: .93rem; line-height: 1.8; margin-bottom: 1.7rem; }
.nh-card-link { margin-top: auto; color: #254c75; font-size: .85rem; font-weight: 700; }
.nh-benefit-dark { background: #142b48; border-color: #142b48; color: #d4deea; }
.nh-benefit-dark h3 { color: #fff; }
.nh-benefit-dark .nh-feature-symbol, .nh-benefit-dark .nh-card-link { color: #e4c88d; }
.nh-home .st-card { box-shadow: none; border-radius: 16px; }
.nh-home .st-h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.04em; }
.nh-home .st-tag { font-size: .8rem; }
.nh-home .nh-case-note { max-width: 48rem; color: #637084; font-size: .86rem; text-align: center; margin: 0 auto; }
.nh-result-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; align-items: center; margin-top: .5rem; }
.nh-price-example { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; gap: .7rem 1.5rem; padding: 1.25rem; background: #f3f6fa; border-radius: 12px; font-size: .9rem; }
.nh-price-example > span { color: #53647a; }
.nh-price-example b { color: #0e2044; margin-left: .3rem; }
.nh-price-example small { color: #657186; }
.nh-home .st-card-hl { border-color: #9b752e; box-shadow: 0 8px 30px #9b752e12; }
@media(max-width:1100px) { .nh-home .st-hero-grid { gap: 2rem; } .nh-home .st-hero-actions { flex-direction: column; align-items: stretch; } .nh-home .st-hero-actions a { text-align: center; justify-content: center; } }
@media(max-width:900px) { .nh-home .st-hero-grid { grid-template-columns: minmax(0,1fr); gap: 3rem; } .nh-home .nh-hero { padding: 4rem 0; } .nh-workspace { transform: none; max-width: 580px; width: 100%; justify-self: center; } .nh-home .st-hero-actions { flex-direction: row; } .nh-section-head { align-items: flex-start; flex-direction: column; } .nh-benefits { grid-template-columns: minmax(0,1fr); } .nh-benefit { padding: 1.5rem; } .nh-feature-symbol { margin-bottom: 1rem; } .nh-jumpbar > div { gap: 1.5rem; justify-content: center; } .nh-jumpbar span { display: none; } }
@media(max-width:480px) { .nh-home .nh-hero h1 { font-size: 2.25rem; } .nh-home .st-hero-actions { flex-direction: column; width: 100%; } .nh-home .st-section { padding: 3.5rem 0; } .nh-workspace-body { padding: 1.3rem 1rem 1rem; } .nh-workspace-top { padding: 1rem; } .nh-status { display: none; } .nh-workspace-heading h2 { font-size: 1.45rem; } .nh-jumpbar > div { gap: 1.25rem; min-height: 64px; } .nh-jumpbar a { font-size: .8rem; } .nh-result-actions { gap: 1rem; } .nh-price-example { align-items: flex-start; flex-direction: column; } }
@media(prefers-reduced-motion:reduce) { .nh-benefit { transition: none; } .nh-benefit:hover { transform: none; } }
.nh-faq-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; }
.nh-faq-grid > div > .st-link { display: inline-block; margin-top: 1.5rem; font-size: .9rem; }
.nh-faq-list { border-top: 1px solid #dbe2ec; }
.nh-faq-list details { border-bottom: 1px solid #dbe2ec; }
.nh-faq-list summary { cursor: pointer; padding: 1.4rem 2rem 1.4rem 0; font-weight: 700; color: #142b48; position: relative; list-style: none; }
.nh-faq-list summary::-webkit-details-marker { display: none; }
.nh-faq-list summary::after { content: '+'; position: absolute; right: .3rem; color: #8a6a1f; font-size: 1.3rem; top: 1.05rem; }
.nh-faq-list details[open] summary::after { content: '−'; }
.nh-faq-list details p { padding: 0 1.5rem 1.4rem 0; color: #637084; font-size: .93rem; line-height: 1.9; }
.nh-faq-list details a { color: #254c75; text-decoration: underline; text-underline-offset: 3px; }
.nh-faq-list summary:focus-visible { outline: 3px solid #1688bf; outline-offset: 3px; }
@media(max-width:900px) { .nh-faq-grid { grid-template-columns: minmax(0,1fr); gap: 2rem; } }
.nh-home .nh-hero-principle { color:#e4c88d; font-size:clamp(1rem,1.5vw,1.2rem); line-height:1.75; border-left:3px solid #e4c88d; padding-left:1rem; }
.nh-home .nh-hero-principle strong { color:#fff; font-weight:700; }
.nh-home .nh-pay-principle { text-align:center; font-size:clamp(1rem,1.8vw,1.3rem); line-height:1.85; }
