/* ==========================================================
   Summits · ui.css  (모든 페이지 공통 부품 · 2026-09-28 정리본)
   원칙: 왼쪽 정렬 하나 · 카드 대신 여백과 가는 선 · 문장은 짧게 · 움직임은 여정 지도 하나
   ========================================================== */

/* ---------- 브라우저 기본 면 ---------- */
::selection { background: var(--brand-tint); color: var(--ink); }
html { caret-color: var(--brand); }
* { scrollbar-width: thin; scrollbar-color: #C9CFD8 transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #C9CFD8; border-radius: 10px; border: 3px solid #fff; }

/* 스크롤 등장 효과는 쓰지 않습니다 (움직임은 여정 지도 하나) */
.reveal { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ---------- 섹션 틀 ---------- */
.band { padding: 128px 0; }
.band.tint { background: var(--surface-2); }
.band.tight { padding: 96px 0; }

.head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 64px; }
.head h2 { font-size: 44px; line-height: 1.22; font-weight: 700; letter-spacing: -0.03em; color: var(--ink); text-wrap: balance; }
.head p { font-size: 17px; line-height: 1.7; color: var(--muted); max-width: 32em; }
.head .more { justify-self: end; }
.more { display: inline-flex; align-items: center; gap: 10px; font-size: 15.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.more::after { content: ""; width: 7px; height: 7px; border-top: 1.6px solid currentColor; border-right: 1.6px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--ease); }
.more:hover { color: var(--brand); }
.more:hover::after { transform: translateX(3px) rotate(45deg); }
.note { margin-top: 20px; font-size: 13px; color: var(--caption); }

/* ---------- Home 히어로 ---------- */
.hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; isolation: isolate; }
.hero-media { position: absolute; inset: 0; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(6, 10, 20, 0.55) 0%, rgba(6, 10, 20, 0.15) 60%, rgba(6, 10, 20, 0) 100%), linear-gradient(0deg, rgba(6, 10, 20, 0.8) 0%, rgba(6, 10, 20, 0.35) 50%, rgba(6, 10, 20, 0.25) 100%); }
.hero-copy { padding-bottom: 72px; }
.hero h1 { font-size: 72px; line-height: 1.14; font-weight: 700; letter-spacing: -0.035em; max-width: 12em; text-wrap: balance; }
.hero .lede { margin-top: 24px; max-width: 30em; font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.88); }
.hero .btn-row { margin-top: 36px; }
.hero-stats { border-top: 1px solid rgba(255,255,255,0.22); }
.hero-stats dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hero-stats dl > div { padding: 26px 24px 30px 0; }
.hero-stats dl > div + div { padding-left: 24px; border-left: 1px solid rgba(255,255,255,0.22); }
.hero-stats dd { margin: 0; font-size: 34px; line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hero-stats dd small { font-size: 0.55em; font-weight: 600; margin-left: 3px; }
.hero-stats dt { margin-top: 6px; font-size: 14px; color: rgba(255,255,255,0.72); }

/* ---------- 선언 + 원칙 ---------- */
.intro { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 80px; align-items: start; }
.statement { font-size: 38px; line-height: 1.42; font-weight: 700; letter-spacing: -0.03em; color: var(--ink); text-wrap: balance; }
.statement span { color: var(--muted); }
.plist li { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); }
.plist li:last-child { border-bottom: 1px solid var(--line); }
.plist h3 { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
.plist p { font-size: 15.5px; line-height: 1.6; color: var(--muted); }

/* ---------- 사업 카드 ---------- */
.units { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.unit-card figure { aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: #ECEEF2; }
.unit-card figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.unit-card:hover figure img { transform: scale(1.03); }
.unit-card h3 { margin-top: 24px; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.unit-card .meta { margin-top: 4px; font-size: 14px; color: var(--caption); }
.unit-card p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--muted); }
.unit-card .links { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 18px; }
.ext { display: inline-flex; align-items: center; gap: 8px; font-size: 15.5px; font-weight: 600; color: var(--brand); }
.ext::after { content: ""; width: 9px; height: 9px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 8 8 2M3.5 2H8v4.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 8 8 2M3.5 2H8v4.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.ext:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- 증거 숫자 ---------- */
.proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.proof div { padding: 28px 28px 0 0; }
.proof div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.proof dd { margin: 0; font-size: 60px; line-height: 1.05; font-weight: 700; letter-spacing: -0.035em; color: #06121F; font-variant-numeric: tabular-nums; white-space: nowrap; }
.proof dd small { font-size: 0.42em; font-weight: 600; margin-left: 4px; letter-spacing: -0.01em; }
.proof dt { margin-top: 12px; font-size: 16px; font-weight: 600; color: var(--ink-2); }
.proof p { margin-top: 6px; font-size: 14.5px; line-height: 1.55; color: var(--caption); }
.logos { margin-top: 64px; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: center; }
.logos > p { font-size: 14.5px; font-weight: 600; color: var(--ink-2); }
.logos ul { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 32px; }
.logos img { height: 36px; width: auto; filter: grayscale(1); opacity: .8; transition: opacity .3s var(--ease), filter .3s var(--ease); }
.logos img:hover { opacity: 1; filter: none; }

/* ---------- 목록형 소식 ---------- */
.press-list { border-top: 1px solid var(--ink); }
.press-row { display: grid; grid-template-columns: 130px 140px minmax(0, 1fr) 20px; gap: 20px; align-items: center; padding: 22px 4px; border-bottom: 1px solid var(--line); transition: background-color .2s var(--ease); }
.press-row:hover { background: var(--surface-2); }
.press-row time { font-size: 15px; color: var(--caption); font-variant-numeric: tabular-nums; }
.press-row .src { font-size: 15px; font-weight: 600; color: var(--ink-2); }
.press-row h3 { font-size: 18px; line-height: 1.45; font-weight: 600; letter-spacing: -0.02em; }
.press-row:hover h3 { color: var(--brand); }
.press-row .go { width: 9px; height: 9px; border-top: 1.6px solid var(--caption); border-right: 1.6px solid var(--caption); transform: rotate(45deg); justify-self: center; }

/* ---------- 마무리(채용) ---------- */
.closing { padding: 32px 0 40px; }
.closing-card { background: var(--surface-2); border-radius: 32px; padding: 104px 56px 0; }
.closing-inner { max-width: 1040px; margin: 0 auto; }
.closing-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; padding-bottom: 88px; border-bottom: 1px solid var(--line); }
.closing-title { font-size: 44px; line-height: 1.22; font-weight: 700; letter-spacing: -0.03em; text-wrap: balance; }
.closing-cta p { margin-top: 16px; font-size: 17px; line-height: 1.65; color: var(--muted); }
.closing-cta .btn-row { justify-content: flex-end; }
.closing .site-footer { margin-top: 56px; }
.closing.footer-only .closing-card { padding-top: 16px; }
.closing.footer-only .site-footer { margin-top: 40px; }

/* ---------- 서브페이지 머리 ---------- */
.page-hero { padding: calc(var(--header-h) + 112px) 0 72px; }
.page-hero h1 { font-size: 60px; line-height: 1.16; font-weight: 700; letter-spacing: -0.035em; max-width: 15em; text-wrap: balance; }
.page-hero .lead { margin-top: 22px; max-width: 34em; font-size: 19px; line-height: 1.6; color: var(--muted); }
.page-hero .btn-row { margin-top: 32px; }
.page-hero.compact { padding-bottom: 40px; }
.page-hero.compact h1 { font-size: 48px; }
.jump { margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.jump a { padding: 20px 24px 22px 0; display: flex; flex-direction: column; gap: 4px; }
.jump a + a { padding-left: 24px; border-left: 1px solid var(--line); }
.jump b { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.jump span { font-size: 14.5px; color: var(--muted); }
.jump a:hover b { color: var(--brand); }

.wide-photo { border-radius: 28px; overflow: hidden; aspect-ratio: 21 / 9; background: #ECEEF2; }
.wide-photo img { width: 100%; height: 100%; object-fit: cover; }
.photo-caption { margin-top: 12px; font-size: 13.5px; color: var(--caption); }

/* ---------- 사실 한 줄 ---------- */
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.facts div { padding: 24px 24px 0 0; }
.facts div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.facts dd { margin: 0; font-size: 32px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; font-variant-numeric: tabular-nums; white-space: nowrap; }
.facts dd small { font-size: 0.55em; font-weight: 600; margin-left: 3px; }
.facts dt { margin-top: 6px; font-size: 14.5px; color: var(--muted); }

/* ---------- 미션·비전 ---------- */
.mv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; }
.mv h3 { font-size: 15px; font-weight: 700; color: var(--brand); }
.mv p.big { margin-top: 14px; font-size: 26px; line-height: 1.5; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); text-wrap: pretty; }

/* ---------- 연혁 ---------- */
.timeline { border-top: 1px solid var(--ink); }
.tl-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 32px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.tl-year { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; font-variant-numeric: tabular-nums; }
.tl-row li { font-size: 17px; line-height: 1.75; color: var(--ink-2); }

/* ---------- 사람 ---------- */
.people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.people > div { padding: 28px 28px 0 0; }
.people > div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.people .role { font-size: 14px; color: var(--caption); }
.people h3 { margin-top: 6px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.people p { margin-top: 12px; font-size: 15.5px; line-height: 1.65; color: var(--muted); }

.backers { margin-top: 56px; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: baseline; }
.backers > p { font-size: 14.5px; font-weight: 600; color: var(--ink-2); }
.backers ul { display: flex; flex-wrap: wrap; gap: 10px 36px; }
.backers li { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.backers li span { margin-left: 8px; font-size: 13px; font-weight: 500; color: var(--caption); }

/* ---------- 사업 상세 ---------- */
.chapter-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 48px; }
.chapter-head h2 { font-size: 48px; line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; }
.chapter-head .meta { margin-top: 10px; font-size: 15px; color: var(--caption); }
.chapter-head .lead { font-size: 24px; line-height: 1.5; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); text-wrap: balance; }
.chapter-foot { margin-top: 56px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.howto { border-top: 1px solid var(--ink); }
.howto li { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.howto b { font-size: 16.5px; font-weight: 700; letter-spacing: -0.02em; }
.howto span { font-size: 15.5px; line-height: 1.6; color: var(--muted); }
.nums { display: grid; gap: 0; border-top: 1px solid var(--ink); }
.nums div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.nums dt { font-size: 15px; color: var(--muted); }
.nums dd { margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; font-variant-numeric: tabular-nums; white-space: nowrap; }
.go-row { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.go-row .btn { height: 52px; font-size: 16px; }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: var(--brand); }
.btn-dark::after { content: ""; width: 9px; height: 9px; margin-left: 10px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 8 8 2M3.5 2H8v4.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 8 8 2M3.5 2H8v4.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.shot-wide { margin: 0; }

/* ---------- 채용 ---------- */
.reasons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.reasons li { padding: 26px 24px 0 0; }
.reasons li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.reasons h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.reasons p { margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--muted); }
.values { border-top: 1px solid var(--ink); }
.values li { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.values h3 { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.values p { font-size: 16px; line-height: 1.6; color: var(--muted); }
.cities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.cities li { padding: 24px 24px 0 0; }
.cities li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.cities .top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.cities h3 { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.cities time { font-size: 14px; font-weight: 600; color: var(--brand); font-variant-numeric: tabular-nums; }
.cities p { margin-top: 8px; font-size: 15px; line-height: 1.55; color: var(--muted); }


/* ==========================================================
   04 구조 · 국경을 넘었다 돌아오는 한 줄
   ========================================================== */

/* 조직 구조 */
.org { margin: 52px auto 0; max-width: 1040px; display: flex; flex-direction: column; align-items: center; }
.org-root { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 30px 15px; border-radius: 16px; background: #0B1220; color: #fff; }
.org-root b { font-size: 18px; font-weight: 700; letter-spacing: 0.02em; }
.org-root span { font-size: 12.5px; color: rgba(255,255,255,0.68); }
.org-branches { position: relative; width: 100%; margin-top: 40px; display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.org-branches::before { content: ""; position: absolute; left: 50%; top: -40px; height: 20px; width: 1px; background: #C9D0DA; }
.org-branches::after { content: ""; position: absolute; top: -20px; height: 1px; background: #C9D0DA;
  left: calc((100% - 16px) * 2 / 3 / 2); right: calc((100% - 16px) / 3 / 2); }
.org-group { position: relative; border: 1px solid var(--line); border-radius: 20px; padding: 16px; background: #fff; }
.org-group::before { content: ""; position: absolute; left: 50%; top: -21px; height: 20px; width: 1px; background: #C9D0DA; }
.org-group.is-brand { background: var(--surface-2); }
.org-label { display: flex; align-items: baseline; gap: 10px; padding: 2px 4px 12px; }
.org-label b { font-size: 15px; font-weight: 700; color: var(--ink); }
.org-label span { font-size: 12.5px; color: var(--caption); }
.org-units { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 10px; }
.org-unit { text-align: left; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--line);
  transition: border-color .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease); }
.org-unit b { font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); transition: color .25s var(--ease); }
.org-unit span { font-size: 13px; color: var(--muted); }
.org-unit:hover { border-color: #AEB7C4; }
.org-unit.is-owner { border-color: color-mix(in srgb, var(--brand) 45%, var(--line)); }
.org-unit.is-owner b { color: var(--brand); }
.org-unit[aria-pressed="true"] { border-color: var(--brand); background: var(--brand-tint); box-shadow: 0 6px 18px color-mix(in srgb, var(--brand) 14%, transparent); }
.org-unit[aria-pressed="true"] b { color: var(--brand); }

/* 여정 지도 */
.loop { position: relative; margin-top: 44px; aspect-ratio: 1200 / 500; }
.zone { position: absolute; top: 2%; height: 96%; border-radius: 28px; padding: 18px 24px; display: flex; flex-direction: column; gap: 2px; }
.zone b { font-size: 15px; font-weight: 700; color: var(--ink); }
.zone span { font-size: 12.5px; color: var(--caption); }
.zone-id { left: 1.5%; width: 56%; background: #F6F7F9; }
.zone-kr { left: 61%; width: 37.5%; background: #F1F4FA; }
.loop-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.loop-svg path, .loop-svg line { fill: none; vector-effect: non-scaling-stroke; }
.loop-svg .border { stroke: #BFC7D2; stroke-width: 1; stroke-dasharray: 4 6; }
.loop-svg .track { stroke: #CBD2DC; stroke-width: 2; }
.loop-svg .seg { stroke: transparent; stroke-width: 3.5; stroke-linecap: round; transition: stroke .35s var(--ease); }
.loop-svg .seg.return { stroke: #CBD2DC; stroke-width: 2; stroke-dasharray: 2 7; }
.loop-svg .seg.local { stroke: #CBD2DC; stroke-width: 2; stroke-dasharray: 2 7; }
.loop-svg .seg.is-on { stroke: var(--brand); stroke-dasharray: none; stroke-width: 3.5; }
.loop-svg .seg.is-trail { stroke: color-mix(in srgb, var(--brand) 55%, #fff); stroke-dasharray: none; stroke-width: 2.5; }
.loop-svg .ghost { stroke: none; }

.patient { position: absolute; left: 16.67%; top: 26%; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--brand);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--brand) 16%, transparent), 0 4px 12px color-mix(in srgb, var(--brand) 35%, transparent); z-index: 3; pointer-events: none; }

.cross { position: absolute; transform: translate(-50%, -50%); z-index: 2; white-space: nowrap; font-size: 12px; font-weight: 600; color: var(--slate);
  background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 11px; }
.local-note { position: absolute; transform: translate(0, -50%); font-size: 12px; line-height: 1.45; color: var(--caption); }
.loop-back { position: absolute; transform: translate(-50%, -50%); font-size: 12px; line-height: 1.4; color: var(--caption); text-align: center; }
.place { position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1px; }
.place b { font-size: 13px; font-weight: 700; color: var(--ink-2); }
.place b + span + b { margin-top: 10px; }
.place span { font-size: 12px; color: var(--caption); }

.stop { position: absolute; transform: translate(-50%, -50%); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; z-index: 2; }
.stop i { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid #AEB7C4; transition: background-color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease); }
.stop span { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 14px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink-2); text-align: center; transition: color .3s var(--ease); }
.stop span em { display: block; font-style: normal; font-size: 11.5px; font-weight: 600; color: var(--caption); margin-bottom: 1px; }
.stop.top span { bottom: calc(100% + 2px); }
.stop.bottom span { top: calc(100% + 2px); }
.stop.bottom span em { margin: 0 0 1px; }
.stop.side span { left: auto; right: calc(100% + 4px); transform: none; text-align: right; top: 50%; translate: 0 -50%; }
.stop:hover i { border-color: var(--ink-2); }
.stop.is-owned i { border-color: var(--brand); }
.stop.is-on i { background: var(--brand); border-color: var(--brand); transform: scale(1.15); box-shadow: 0 0 0 7px color-mix(in srgb, var(--brand) 14%, transparent); }
.stop.is-on span, .stop.is-owned span { color: var(--brand); }
.stop.is-on span em { color: var(--brand); }

/* 선택 설명 */
.loop-panel { margin-top: 24px; min-height: 118px; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 24px 28px;
  display: grid; grid-template-columns: 150px 1fr auto; grid-template-areas: "head title owners" "head desc owners"; column-gap: 28px; row-gap: 6px; align-items: center; }
.lp-head { grid-area: head; display: flex; flex-direction: column; gap: 4px; align-self: start; }
.lp-idx { font-size: 32px; line-height: 1; font-weight: 700; color: var(--brand); letter-spacing: -0.02em; }
.lp-zone { font-size: 12.5px; color: var(--caption); }
.lp-title { grid-area: title; font-size: 20px; font-weight: 700; letter-spacing: -0.02em; align-self: end; }
.lp-desc { grid-area: desc; font-size: 16px; line-height: 1.5; color: var(--muted); align-self: start; }
.lp-owners { grid-area: owners; display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.lp-owners span { font-size: 12.5px; font-weight: 600; padding: 5px 11px; border-radius: 999px; background: var(--brand-tint); color: var(--brand); white-space: nowrap; }

/* 모바일 목록 (데스크톱에서는 숨김) */
.jlist { display: none; }

@media (max-width: 1100px) {
  .stop span { font-size: 12.5px; }
  .stop span em { font-size: 10.5px; }
  .place b { font-size: 12px; } .place span { font-size: 11px; }
  .zone { padding: 14px 18px; }
  .cross { font-size: 11px; padding: 4px 9px; }
  .local-note, .loop-back { font-size: 11px; }
  .loop-panel { grid-template-columns: 110px 1fr auto; }
}

@media (max-width: 809px) {
  .org { margin-top: 36px; }
  .org-branches { grid-template-columns: 1fr; gap: 12px; margin-top: 28px; }
  .org-branches::before { top: -28px; height: 14px; }
  .org-branches::after { display: none; }
  .org-group::before { display: none; }
  .org-group:first-child::before { display: block; top: -15px; height: 14px; }
  .org-group { padding: 12px; }
  .org-label { flex-direction: column; gap: 0; padding-bottom: 10px; }
  .org-unit { padding: 13px 14px; }
  .org-unit b { font-size: 15px; }
  .org-unit span { font-size: 12px; }

  .loop, .loop-panel { display: none; }
  .jlist { display: block; position: relative; margin-top: 36px; padding-left: 30px; }
  .jlist::before { content: ""; position: absolute; left: 7px; top: 14px; bottom: 30px; width: 2px; background: #CBD2DC; }
  .jlist li { position: relative; padding: 12px 0 18px; transition: opacity .3s var(--ease); }
  .jlist li::before { content: ""; position: absolute; left: -29px; top: 15px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid #AEB7C4; }
  .jlist li.is-owned::before { background: var(--brand); border-color: var(--brand); }
  .jlist li.is-dim { opacity: .38; }
  .j-idx { font-size: 12px; font-weight: 700; color: var(--brand); }
  .j-zone { margin-left: 8px; font-size: 12px; color: var(--caption); }
  .j-title { margin-top: 2px; font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
  .j-desc { margin-top: 6px; font-size: 14.5px; line-height: 1.55; color: var(--muted); }
  .j-owners { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 5px; }
  .j-owners span { font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: var(--surface-3); color: var(--slate); }
  .jlist li.is-owned .j-owners span { background: var(--brand-tint); color: var(--brand); }
  .jlist li.j-cross { padding: 4px 0 10px; }
  .jlist li.j-cross::before { display: none; }
  .jlist li.j-cross span { display: inline-block; margin-left: -34px; font-size: 11.5px; font-weight: 600; color: var(--slate); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; }
}



/* ---------- 칩(필터·탭·선택) ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 14.5px; font-weight: 500; color: var(--ink-2);
  display: inline-flex; align-items: center; justify-content: center; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.chip:hover { border-color: #AEB7C4; }
.chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- 채용 목록 ---------- */
.jobs { margin-top: 24px; border-top: 1px solid var(--ink); }
.job { display: grid; grid-template-columns: minmax(0, 1fr) 180px 150px 110px 28px; gap: 16px; align-items: center; padding: 22px 4px; border-bottom: 1px solid var(--line); transition: background-color .2s var(--ease); }
.job:hover { background: var(--surface-2); }
.job h3 { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.job h3 .sample { margin-left: 8px; font-size: 11px; font-weight: 700; color: #7A4B00; background: #FFF1CC; padding: 2px 7px; border-radius: 6px; vertical-align: 3px; }
.job span { font-size: 14.5px; color: var(--muted); }
.job .go { width: 10px; height: 10px; border-top: 1.6px solid var(--caption); border-right: 1.6px solid var(--caption); transform: rotate(45deg); justify-self: center; }
.job:hover .go { border-color: var(--brand); }
.empty-state { margin-top: 24px; background: var(--surface-2); border-radius: 20px; padding: 40px 32px; text-align: center; }
.empty-state h3 { font-size: 20px; font-weight: 700; }
.empty-state p { margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--muted); }
.empty-state .btn-row { justify-content: center; margin-top: 22px; }

/* ---------- 전형 ---------- */
.process { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; counter-reset: step; }
.process li { position: relative; padding: 0 16px 0 0; }
.process li::before { content: ""; position: absolute; top: 19px; left: 40px; right: 0; height: 1px; background: var(--line); }
.process li:last-child::before { display: none; }
.process .n { position: relative; z-index: 1; width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1.5px solid var(--ink); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.process li:last-child .n { background: var(--brand); border-color: var(--brand); color: #fff; }
.process h3 { margin-top: 16px; font-size: 17px; font-weight: 700; }
.process p { margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--muted); }
.process-note { margin-top: 24px; font-size: 14px; color: var(--caption); }

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 44px 24px 4px; position: relative; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 12px; top: 50%; width: 10px; height: 10px; margin-top: -7px; border-right: 1.6px solid var(--ink-2); border-bottom: 1.6px solid var(--ink-2); transform: rotate(45deg); transition: transform .3s var(--ease); }
.faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.faq .a { padding: 0 4px 26px; font-size: 16px; line-height: 1.7; color: var(--muted); max-width: 52em; }

/* ---------- 폼 ---------- */
.form-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 36px; }
.form-card h2 { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.form-card .hint { margin-top: 6px; font-size: 14.5px; color: var(--caption); }
.fields { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field.full { grid-column: 1 / -1; }
.field > label, .field > .label { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.field .req { color: var(--brand); margin-left: 2px; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="url"], .field select, .field textarea {
  width: 100%; font: inherit; font-size: 16px; color: var(--ink); background: #fff; border: 1px solid #D7DCE3; border-radius: 12px; padding: 13px 14px; letter-spacing: -0.01em;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
.field select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, #6E737C 50%), linear-gradient(135deg, #6E737C 50%, transparent 50%);
  background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.field textarea { min-height: 150px; resize: vertical; line-height: 1.6; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: #E5484D; }
.field .help { font-size: 13px; color: var(--caption); }
.file { display: flex; align-items: center; gap: 12px; border: 1px dashed #C9D0DA; border-radius: 12px; padding: 12px 14px; }
.file label { flex: none; height: 38px; padding: 0 14px; border-radius: 10px; background: var(--surface-3); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; cursor: pointer; }
.file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file input:focus-visible + label { outline: 2px solid var(--brand); outline-offset: 2px; }
.file [data-file-name] { font-size: 14px; color: var(--caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.consent { grid-column: 1 / -1; background: var(--surface-2); border-radius: 14px; padding: 16px 18px; }
.consent label { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; cursor: pointer; }
.consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--brand); flex: none; }
.consent details { margin-top: 8px; font-size: 13.5px; color: var(--muted); }
.consent summary { cursor: pointer; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.consent details p { margin-top: 8px; line-height: 1.6; }
.consent.is-invalid { outline: 1.5px solid #E5484D; }
.form-actions { margin-top: 28px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.form-status { margin-top: 18px; padding: 14px 16px; border-radius: 12px; font-size: 14.5px; line-height: 1.55; }
.form-status.is-info { background: #FFF6DE; color: #6B4700; }
.form-status.is-error { background: #FDECEC; color: #A1161B; }
.form-status.is-success { background: #E6F6EE; color: #0A6B4A; }
.side-info { display: grid; gap: 14px; }
.info-card { background: var(--surface-2); border-radius: 20px; padding: 26px 24px; }
.info-card .cc { font-size: 12px; font-weight: 700; color: var(--caption); letter-spacing: 0.04em; }
.info-card h3 { margin-top: 6px; font-size: 20px; font-weight: 700; }
.info-card p { margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--muted); }
.info-card a.link { display: inline-block; margin-top: 12px; font-size: 14.5px; font-weight: 600; color: var(--brand); }
.info-card a.link:hover { text-decoration: underline; text-underline-offset: 3px; }
.job-summary { background: var(--surface-2); border-radius: 20px; padding: 26px 24px; }
.job-summary dl { display: grid; grid-template-columns: 90px 1fr; gap: 10px 12px; margin-top: 14px; font-size: 15px; }
.job-summary dt { color: var(--caption); }
.job-summary dd { margin: 0; color: var(--ink-2); }

/* ---------- 뉴스룸 ---------- */
.news-tabs { margin-bottom: 28px; }

/* ---------- 약관 ---------- */
.prose { max-width: 780px; }
.prose h2 { margin-top: 48px; font-size: 21px; font-weight: 700; letter-spacing: -0.02em; }
.prose h2:first-child { margin-top: 0; }
.prose p, .prose li { font-size: 16px; line-height: 1.8; color: var(--ink-2); }
.prose p { margin-top: 12px; }
.prose ul, .prose ol { margin-top: 10px; padding-left: 20px; }
.prose ul { list-style: disc; } .prose ol { list-style: decimal; }
.prose li + li { margin-top: 4px; }
.prose table { margin-top: 14px; width: 100%; border-collapse: collapse; font-size: 15px; }
.prose th, .prose td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; line-height: 1.6; }
.prose th { background: var(--surface-2); font-weight: 600; }
.draft-banner { margin-bottom: 40px; background: #FFF6DE; color: #6B4700; border-radius: 14px; padding: 16px 18px; font-size: 14.5px; line-height: 1.6; }
.fill { background: #FFF1CC; border-radius: 4px; padding: 0 4px; color: #6B4700; }

/* ---------- 완료 ---------- */
.done { padding: calc(var(--header-h) + 120px) 0 120px; text-align: center; }
.done .mark { width: 64px; height: 64px; margin: 0 auto; border-radius: 50%; background: var(--brand-tint); display: flex; align-items: center; justify-content: center; }
.done .mark::after { content: ""; width: 22px; height: 12px; border-left: 3px solid var(--brand); border-bottom: 3px solid var(--brand); transform: translateY(-3px) rotate(-45deg); }
.done h1 { margin-top: 28px; font-size: 40px; font-weight: 700; letter-spacing: -0.025em; }
.done p { margin: 16px auto 0; max-width: 32em; font-size: 17px; line-height: 1.65; color: var(--muted); }
.done .btn-row { justify-content: center; margin-top: 36px; }


/* MyVenus 실물 접점 띠 */
.touch-list { margin: 0; }
.touch-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: end; margin-bottom: 24px; }
.touch-quote { font-size: 26px; line-height: 1.35; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.touch-sub { font-size: 16px; line-height: 1.65; color: var(--muted); }
.touch-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.touch-list figure { border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 5; background: #F2EFEA; }
.touch-list img { width: 100%; height: 100%; object-fit: cover; }
.touch-list figure.phone { background: #EDE9E3; }
.touch-list figure.phone img { object-position: 50% 30%; }
.touch-list p { margin-top: 10px; font-size: 14.5px; font-weight: 600; color: var(--ink-2); line-height: 1.35; }
.touch-list p em { display: block; font-style: normal; font-size: 12px; font-weight: 700; color: var(--brand); margin-bottom: 2px; }

.reels { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.reels figure, .photos figure { position: relative; border-radius: 20px; overflow: hidden; background: #E9ECF1; }
.reels figure { aspect-ratio: 9 / 13; }
.reels img, .photos img { width: 100%; height: 100%; object-fit: cover; }
.reels figcaption, .photos figcaption { position: absolute; left: 12px; bottom: 12px; font-size: 12.5px; font-weight: 600; color: #fff; background: rgba(8, 12, 22, 0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 5px 10px; border-radius: 999px; }
.quotes { margin-top: 12px; display: grid; gap: 12px; }
.quotes blockquote { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 20px 22px; }
.quotes p[lang] { font-size: 15px; line-height: 1.55; color: var(--ink-2); font-weight: 500; }
.quotes .ko { margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--muted); }
.quotes cite { display: block; margin-top: 10px; font-style: normal; font-size: 12.5px; color: var(--caption); }

.photos { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 12px; }
.photos .p-main { grid-column: 1 / -1; aspect-ratio: 4 / 3; }
.photos figure:not(.p-main) { aspect-ratio: 4 / 3; }
.shot { margin: 0; }


.browser { border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(5,17,45,.05), 0 18px 40px rgba(5,17,45,.10); }
.browser .bar { display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; background: #F3F4F6; border-bottom: 1px solid var(--line); }
.browser .bar i { width: 9px; height: 9px; border-radius: 50%; background: #D5D9E0; }
.browser .bar em { margin-left: 10px; font-style: normal; font-size: 12px; color: var(--caption); background: #fff; border-radius: 6px; padding: 3px 10px; }
.browser > img { width: 100%; height: auto; display: block; }
.browser.dark .bar { background: #1B1F27; border-color: #1B1F27; }
.browser.dark .bar i { background: #3A404B; }
.browser.dark .bar em { background: #2A2F38; color: #C3C8D1; }
.bnb-cover { position: relative; aspect-ratio: 16 / 10; }
.bnb-cover > img:first-child { width: 100%; height: 100%; object-fit: cover; }
.bnb-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,18,.15), rgba(10,12,18,.55)); }
.bnb-word { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; color: #fff; font-size: 34px; font-weight: 300; letter-spacing: 0.32em; padding-left: 0.32em; white-space: nowrap; }
.bnb-word small { font-size: 12px; font-weight: 500; letter-spacing: 0.3em; opacity: .85; text-transform: uppercase; }



/* ---------- 보조 부품 ---------- */
.hiring { display: inline-block; margin-left: 6px; padding: 2px 7px; border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.02em; background: var(--brand); color: #fff; vertical-align: 2px; }
.mobile-menu .hiring { vertical-align: 4px; }
.org-wordmark { height: 18px; width: auto; align-self: center; }
.unit-card h3 a:hover { color: var(--brand); }
.go-note { font-size: 14px; color: var(--caption); }
.aside-line { margin-top: 40px; font-size: 15px; color: var(--muted); }
.aside-line a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.aside-line a:hover { color: var(--brand); }
.news-tabs { margin-bottom: 28px; }
.head .chips { justify-self: end; }

.shots { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.shots .browser { margin: 0; }
.photos { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: 16px; }
.photos .p-main { grid-column: 1; grid-row: 1 / 3; aspect-ratio: auto; }
.photos figure:not(.p-main) { aspect-ratio: 4 / 3; }
.touch-list p em { font-variant-numeric: tabular-nums; }

.howto { counter-reset: how; }
.howto li { counter-increment: how; grid-template-columns: 36px 170px minmax(0, 1fr); align-items: baseline; }
.howto li::before { content: counter(how, decimal-leading-zero); font-size: 13px; font-weight: 700; color: var(--brand); font-variant-numeric: tabular-nums; }

.faq { margin-top: 96px; border-top: 0; }
.faq-title { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; padding-bottom: 20px; border-bottom: 1px solid var(--ink); }

.form-card { padding: 40px; }
.form-card .hint { margin-top: 0; }
.fields { margin-top: 22px; }
.contact-list { border-top: 1px solid var(--ink); }
.contact-list > div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.contact-list h3 { font-size: 16px; font-weight: 700; }
.contact-list p { margin-top: 6px; font-size: 15.5px; line-height: 1.6; color: var(--muted); }
.contact-list p a { color: var(--ink); }
.contact-list p a:hover { color: var(--brand); }
.contact-list .ext, .contact-list .more { margin-top: 10px; font-size: 14.5px; }

.done { padding: calc(var(--header-h) + 140px) 0 140px; text-align: left; }
.done .container > * { max-width: 34em; }
.done .mark { margin: 0; }
.done h1 { font-size: 44px; }
.done p { margin: 16px 0 0; }
.done .btn-row { justify-content: flex-start; }

.job { grid-template-columns: minmax(0, 1fr) 160px 120px 90px 20px; }

/* ==========================================================
   반응형
   ========================================================== */
@media (max-width: 1100px) {
  .band { padding: 104px 0; }
  .band.tight { padding: 80px 0; }
  .head h2, .closing-title { font-size: 38px; }
  .hero h1 { font-size: 56px; }
  .hero-stats dd { font-size: 28px; }
  .intro { gap: 56px; }
  .statement { font-size: 32px; }
  .units { gap: 20px; }
  .unit-card h3 { font-size: 21px; }
  .proof dd { font-size: 48px; }
  .page-hero h1 { font-size: 50px; }
  .chapter-head h2 { font-size: 40px; }
  .chapter-head .lead { font-size: 21px; }
  .chapter-foot { gap: 40px; }
  .touch-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reasons, .cities { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
  .reasons li:nth-child(3), .cities li:nth-child(3) { padding-left: 0; border-left: 0; }
  .facts dd { font-size: 28px; }
  .form-grid { grid-template-columns: 1fr; }
  .job { grid-template-columns: minmax(0, 1fr) 140px 100px 20px; }
  .job span:nth-of-type(3) { display: none; }
  .press-row { grid-template-columns: 120px 120px minmax(0, 1fr) 20px; }
}

@media (max-width: 809px) {
  .band { padding: 80px 0; }
  .band.tight { padding: 56px 0; }
  .head { grid-template-columns: 1fr; gap: 14px; margin-bottom: 36px; }
  .head h2, .closing-title { font-size: 29px; }
  .head p { font-size: 15.5px; }
  .head .more, .head .chips { justify-self: start; }
  .head .more { margin-top: 4px; }

  .hero-copy { padding-bottom: 40px; }
  .hero h1 { font-size: 36px; }
  .hero .lede { font-size: 16px; margin-top: 16px; }
  .hero .btn-row { margin-top: 26px; }
  .hero-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-stats dl > div, .hero-stats dl > div + div { padding: 16px 12px 18px 0; border-left: 0; }
  .hero-stats dl > div:nth-child(even) { padding-left: 16px; border-left: 1px solid rgba(255,255,255,0.22); }
  .hero-stats dl > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,0.22); }
  .hero-stats dd { font-size: 24px; }
  .hero-stats dt { font-size: 12.5px; }

  .intro { grid-template-columns: 1fr; gap: 36px; }
  .statement { font-size: 25px; }
  .plist li { grid-template-columns: 1fr; gap: 4px; padding: 18px 0; }

  .units { grid-template-columns: 1fr; gap: 48px; }
  .unit-card figure { border-radius: 16px; }

  .proof { grid-template-columns: 1fr; }
  .proof div, .proof div + div { padding: 22px 0; border-left: 0; }
  .proof div + div { border-top: 1px solid var(--line); }
  .proof dd { font-size: 44px; }
  .logos { grid-template-columns: 1fr; margin-top: 40px; }
  .logos ul { justify-content: flex-start; gap: 18px 26px; }
  .logos img { height: 24px; }

  .press-row { grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; padding: 18px 0; }
  .press-row time, .press-row .src { font-size: 13.5px; }
  .press-row h3 { grid-column: 1 / -1; font-size: 16.5px; }
  .press-row .go { display: none; }

  .closing { padding: 16px 0 16px; }
  .closing-card { border-radius: 24px; padding: 64px 20px 0; }
  .closing-cta { grid-template-columns: 1fr; gap: 28px; padding-bottom: 56px; }
  .closing-cta p { font-size: 15.5px; }
  .closing-cta .btn-row { justify-content: flex-start; }

  .page-hero { padding: calc(var(--header-h) + 56px) 0 48px; }
  .page-hero h1, .page-hero.compact h1 { font-size: 34px; }
  .page-hero .lead { font-size: 16px; }
  .jump { grid-template-columns: 1fr; margin-top: 36px; }
  .jump a, .jump a + a { padding: 16px 0; border-left: 0; }
  .jump a + a { border-top: 1px solid var(--line); }
  .wide-photo { aspect-ratio: 4 / 3; border-radius: 20px; }

  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
  .facts div:nth-child(3) { padding-left: 0; border-left: 0; }
  .facts dd { font-size: 24px; }
  .mv { grid-template-columns: 1fr; gap: 36px; }
  .mv p.big { font-size: 20px; }
  .tl-row { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
  .tl-year { font-size: 18px; }
  .tl-row li { font-size: 15.5px; }
  .people { grid-template-columns: 1fr; }
  .people > div, .people > div + div { padding: 22px 0; border-left: 0; }
  .people > div + div { border-top: 1px solid var(--line); }
  .backers { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }
  .backers ul { flex-direction: column; gap: 8px; }

  .chapter-head { grid-template-columns: 1fr; gap: 14px; margin-bottom: 32px; }
  .chapter-head h2 { font-size: 32px; }
  .chapter-head .lead { font-size: 18px; }
  .chapter-foot { grid-template-columns: 1fr; gap: 36px; margin-top: 36px; }
  .howto li { grid-template-columns: 30px minmax(0, 1fr); gap: 4px 8px; }
  .howto span { grid-column: 2; }
  .nums dd { font-size: 22px; }
  .touch-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .touch-list p { font-size: 12.5px; }
  .shots { grid-template-columns: 1fr; gap: 12px; }
  .photos { grid-template-columns: 1fr 1fr; gap: 10px; }
  .photos .p-main { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 3; }

  .reasons, .cities { grid-template-columns: 1fr; row-gap: 0; }
  .reasons li, .reasons li + li, .cities li, .cities li + li { padding: 20px 0; border-left: 0; }
  .reasons li + li, .cities li + li { border-top: 1px solid var(--line); }
  .values li { grid-template-columns: 1fr; gap: 4px; }
  .process { grid-template-columns: 1fr; gap: 18px; }
  .process li { padding: 0 0 0 56px; }
  .process li::before { top: 40px; bottom: -18px; left: 19px; right: auto; width: 1px; height: auto; }
  .process .n { position: absolute; left: 0; top: 0; }
  .process h3 { margin-top: 8px; }
  .faq { margin-top: 64px; }
  .faq summary { font-size: 16.5px; padding: 20px 40px 20px 2px; }
  .job { grid-template-columns: minmax(0, 1fr) 20px; gap: 4px 12px; padding: 18px 2px; }
  .job span { grid-column: 1; font-size: 13.5px; }
  .job span:nth-of-type(3) { display: block; }
  .job .go { grid-row: 1 / span 4; grid-column: 2; }

  .form-card { padding: 24px 18px; border-radius: 20px; }
  .fields { grid-template-columns: 1fr; }
  .done { padding: calc(var(--header-h) + 72px) 0 88px; }
  .done h1 { font-size: 30px; }
}

.empty-state { text-align: left; padding: 36px 32px; }
.empty-state .btn-row { justify-content: flex-start; }
.nw { white-space: nowrap; }

/* ==========================================================
   기술 레이어 (2026-09-28): 지도 히어로 · 병원 로고 띠 · 운영 시스템 화면
   ========================================================== */
:root { --night: #07090F; --night-2: #0E121C; --night-line: rgba(255,255,255,0.12); --glow: #7C8BFF; }

/* 지도 히어로 */
.hero-map { background: var(--night); justify-content: space-between; }
.hero-map::before { background: radial-gradient(60% 55% at 72% 62%, rgba(60, 76, 255, 0.16), transparent 70%); }
.hero-grid { flex: 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; align-items: center; padding-top: calc(var(--header-h) + 40px); }
.hero-map .hero-copy { padding-bottom: 0; position: relative; z-index: 2; }
.hero-map h1 { font-size: 56px; max-width: none; }
.hero-map .lede { color: rgba(255,255,255,0.68); max-width: 26em; }
.hero-map .hero-stats { border-top-color: var(--night-line); margin-top: 24px; }
.hero-map .hero-stats dl > div + div { border-left-color: var(--night-line); }
.hero-map .hero-stats dt { color: rgba(255,255,255,0.55); }

.geo { position: relative; margin: 0; width: 100%; max-width: 720px; justify-self: end; aspect-ratio: 1200 / 1040; }
.geo svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.geo .land { stroke: #2C3345; stroke-width: 5; stroke-linecap: round; fill: none; }
.geo .route { fill: none; stroke: url(#rg); stroke-width: 1.6; }
.geo .flow { fill: none; stroke: #C9CFFF; stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 2 26; animation: geo-flow 2.8s linear infinite; }
@keyframes geo-flow { to { stroke-dashoffset: -112; } }

.pin { position: absolute; width: 0; height: 0; z-index: 2; }
.pin i { position: absolute; left: -5px; top: -5px; width: 10px; height: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(124,139,255,.35), 0 0 18px 4px rgba(124,139,255,.55); }
.pin i::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid rgba(124,139,255,.7); animation: geo-ping 2.8s var(--ease) infinite; }
@keyframes geo-ping { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }
.pin p { position: absolute; white-space: nowrap; display: flex; flex-direction: column; gap: 1px; color: #fff; }
.pin b { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; }
.pin span { font-size: 12px; color: rgba(255,255,255,.55); }
.pin time { font-size: 12px; font-weight: 600; color: var(--glow); font-variant-numeric: tabular-nums; }
.pin.r p { left: 16px; top: -12px; }
.pin.r2 p { left: 14px; top: 4px; }
.pin.l p { right: 16px; top: -46px; text-align: right; align-items: flex-end; }
.pin.b p { right: 10px; top: 10px; text-align: right; align-items: flex-end; }

.geo-card { position: absolute; right: 2%; top: 40%; z-index: 2; padding: 16px 18px; border-radius: 16px; background: rgba(18, 22, 34, .72); border: 1px solid var(--night-line); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; min-width: 210px; }
.geo-card .k { font-size: 12.5px; color: rgba(255,255,255,.6); }
.geo-card .v { margin-top: 6px; font-size: 30px; font-weight: 700; letter-spacing: -0.02em; display: flex; align-items: baseline; gap: 8px; }
.geo-card .v small { font-size: .5em; font-weight: 600; margin-left: -4px; }
.geo-card .v em { font-style: normal; font-size: 13px; font-weight: 700; color: #8EF0B4; background: rgba(62, 207, 142, .14); padding: 3px 8px; border-radius: 999px; }
.geo-card .s { margin-top: 6px; font-size: 11.5px; color: rgba(255,255,255,.45); }

/* 병원 로고 띠 */
.logo-strip { padding: 40px 0; border-bottom: 1px solid var(--line); }
.logo-strip .container { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: center; }
.logo-strip p { font-size: 14.5px; font-weight: 600; color: var(--ink-2); }
.logo-strip ul { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 28px; }
.logo-strip img { height: 38px; width: auto; filter: grayscale(1); opacity: .75; transition: opacity .3s var(--ease), filter .3s var(--ease); }
.logo-strip img:hover { opacity: 1; filter: none; }

/* 운영 시스템 */
.pf { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px; align-items: start; }
.pf-tabs { display: flex; flex-direction: column; border-top: 1px solid var(--ink); }
.pf-tabs button { text-align: left; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 8px; padding: 20px 4px; border-bottom: 1px solid var(--line); position: relative; transition: background-color .25s var(--ease); }
.pf-tabs .n { grid-row: 1 / 3; font-size: 13px; font-weight: 700; color: var(--caption); font-variant-numeric: tabular-nums; padding-top: 3px; }
.pf-tabs b { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; color: var(--muted); transition: color .25s var(--ease); }
.pf-tabs .d { grid-column: 2; font-size: 14.5px; line-height: 1.55; color: var(--caption); display: none; }
.pf-tabs button:hover b { color: var(--ink); }
.pf-tabs button[aria-selected="true"] b { color: var(--ink); }
.pf-tabs button[aria-selected="true"] .n { color: var(--brand); }
.pf-tabs button[aria-selected="true"] .d { display: block; }
.pf-tabs button[aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: -1px; width: 100%; height: 2px; background: var(--brand); }

.pf-stage { position: relative; }
.pf-note { margin-top: 14px; font-size: 12.5px; color: var(--caption); }
.win { background: #fff; border: 1px solid #E3E6EC; border-radius: 16px; overflow: hidden; box-shadow: 0 1px 2px rgba(5,17,45,.04), 0 24px 48px -12px rgba(5,17,45,.14); font-size: 13px; letter-spacing: -0.01em; min-height: 420px; }
.win[hidden] { display: none; }
.wbar { display: flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border-bottom: 1px solid #EEF0F4; background: #FBFBFC; }
.wbar i { width: 10px; height: 10px; border-radius: 50%; background: #E1E4EA; }
.wbar span { margin-left: 10px; font-size: 12px; font-weight: 600; color: var(--slate); }
.wtool { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #EEF0F4; }
.wtool span { padding: 6px 10px; border-radius: 8px; font-size: 12.5px; color: var(--slate); }
.wtool .on { background: var(--ink); color: #fff; font-weight: 600; }
.wtool .sp { flex: 1; padding: 0; }
.wtool .search { border: 1px solid #E3E6EC; min-width: 140px; color: #9AA3B2; }
.wtool .pri { background: var(--brand); color: #fff; font-weight: 600; }

.board { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding: 14px; background: #F6F7FA; min-height: 364px; }
.bcol { display: flex; flex-direction: column; gap: 8px; }
.bh { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--ink-2); padding: 2px 2px 4px; white-space: nowrap; }
.bh i { width: 7px; height: 7px; border-radius: 50%; background: #AEB7C4; }
.bcol:nth-child(3) .bh i { background: var(--brand); }
.bcol:last-child .bh i { background: #22B573; }
.bc { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 2px 8px; align-items: center; background: #fff; border: 1px solid #E8EBF0; border-radius: 10px; padding: 10px; }
.bc .av { grid-row: 1 / 3; width: 26px; height: 26px; border-radius: 50%; background: #EEF0FF; color: var(--brand); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.bc b { font-size: 12.5px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bc .tg { font-size: 11.5px; color: var(--caption); }
.bc em { position: absolute; right: 8px; top: 8px; font-style: normal; font-size: 10px; font-weight: 700; color: #fff; background: #FF5A5F; border-radius: 6px; padding: 1px 5px; }
.bc em.live { background: #E6F7EE; color: #11905A; }
.bc.hot { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent); }

.inbox { display: grid; grid-template-columns: 124px 220px minmax(0, 1fr); min-height: 420px; }
.inbox .ch { border-right: 1px solid #EEF0F4; padding: 12px 8px; display: flex; flex-direction: column; gap: 2px; background: #FBFBFC; }
.inbox .ch li { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--slate); font-size: 12.5px; }
.inbox .ch li.on { background: #fff; box-shadow: 0 1px 2px rgba(5,17,45,.06); color: var(--ink); }
.dot { width: 8px; height: 8px; border-radius: 50%; }
.dot.ig, .tag.ig { background: #E1306C; } .dot.wa, .tag.wa { background: #25D366; } .dot.ml, .tag.ml { background: #3B82F6; } .dot.sv, .tag.sv { background: #F59E0B; }
.threads { border-right: 1px solid #EEF0F4; }
.threads li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 12px; border-bottom: 1px solid #F1F3F6; }
.threads li.on { background: #F4F5FF; }
.tag { width: 28px; height: 28px; border-radius: 8px; color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.threads p { display: flex; flex-direction: column; min-width: 0; }
.threads b { font-size: 12.5px; }
.threads p span { font-size: 11.5px; color: var(--caption); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.threads time { font-size: 11px; color: #9AA3B2; align-self: start; }
.conv { padding: 16px; display: flex; flex-direction: column; gap: 10px; background: #FBFBFD; }
.ch-h { display: flex; align-items: baseline; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid #EEF0F4; }
.ch-h span { font-size: 11.5px; color: var(--caption); }
.bub { max-width: 78%; padding: 10px 12px; border-radius: 12px 12px 12px 4px; background: #fff; border: 1px solid #E8EBF0; line-height: 1.5; }
.bub.me { align-self: flex-end; border-radius: 12px 12px 4px 12px; background: #EEF0FF; border-color: #DADFFF; }
.bub.me.ok { background: var(--brand); border-color: var(--brand); color: #fff; }
.bub .lb { display: block; font-size: 10.5px; font-weight: 700; color: var(--brand); margin-bottom: 3px; }
.bub.me.ok .lb { color: rgba(255,255,255,.75); }

.stay { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 0; min-height: 420px; }
.stay-main { padding: 18px; border-right: 1px solid #EEF0F4; }
.chips-row { display: flex; gap: 8px; }
.chips-row span { font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 999px; }
.chips-row .c1 { background: #EEF0FF; color: var(--brand); }
.chips-row .c2 { background: #FFF1E6; color: #C2570C; }
.io { margin: 18px 0 8px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; text-align: center; }
.io p { display: flex; flex-direction: column; gap: 2px; }
.io span { font-size: 11.5px; color: var(--caption); }
.io b { font-size: 18px; font-weight: 700; }
.io i { width: 40px; height: 1px; background: #D5DAE2; }
.legs li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px 4px; border-top: 1px solid #F1F3F6; }
.legs b { font-size: 13px; }
.legs .st { justify-self: start; font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.legs .st.ok { background: #E6F7EE; color: #11905A; }
.legs .st.wait { background: #FFF1E6; color: #C2570C; }
.legs time { font-size: 12px; color: var(--slate); font-variant-numeric: tabular-nums; }
.rem { padding: 18px; display: flex; flex-direction: column; gap: 6px; background: #FBFBFD; }
.rem li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid #E8EBF0; font-weight: 600; }
.rem li span { font-size: 11px; font-weight: 700; color: var(--caption); font-variant-numeric: tabular-nums; }
.rem li em { font-style: normal; font-size: 11px; font-weight: 600; color: #11905A; }
.rem li.next { border-color: var(--brand); }
.rem li.next em { color: var(--brand); }

.report { padding: 20px; min-height: 420px; }
.rp-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rp-h .bot { width: 28px; height: 28px; border-radius: 8px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.rp-h b { font-size: 14px; }
.rp-h > span:last-child { font-size: 12px; color: var(--caption); }
.kpis { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kpis div { border: 1px solid #E8EBF0; border-radius: 12px; padding: 14px; }
.kpis span { font-size: 12px; font-weight: 600; color: var(--slate); }
.kpis svg { margin-top: 10px; width: 100%; height: 64px; overflow: visible; }
.kpis polyline { fill: none; stroke: var(--brand); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.rp-lines { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.rp-lines li { font-size: 13px; color: var(--ink-2); padding-left: 14px; position: relative; }
.rp-lines li::before { content: ""; position: absolute; left: 0; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: var(--brand); }

@media (max-width: 1100px) {
  .hero-map h1 { font-size: 48px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .geo-card { top: 30%; right: 0; min-width: 0; }
  .geo-card .v { font-size: 24px; }
  .pf { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .pf-tabs { flex-direction: row; overflow-x: auto; border-top: 0; border-bottom: 1px solid var(--line); scrollbar-width: none; }
  .pf-tabs button { flex: none; grid-template-columns: auto; padding: 14px 16px 14px 0; margin-right: 12px; border-bottom: 0; }
  .pf-tabs .n { grid-row: auto; padding: 0; }
  .pf-tabs .d { display: none !important; }
  .pf-tabs b { font-size: 16px; white-space: nowrap; }
  .pf-tabs button[aria-selected="true"]::before { top: auto; bottom: -1px; }
  .logo-strip .container { grid-template-columns: 1fr; gap: 16px; }
  .logo-strip ul { justify-content: flex-start; }
}
@media (max-width: 809px) {
  .hero-map { min-height: 0; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-top: calc(var(--header-h) + 40px); }
  .hero-map h1 { font-size: 34px; }
  .geo { max-width: none; justify-self: stretch; margin-top: 8px; }
  .geo-card { display: none; }
  .pin b { font-size: 12px; } .pin span { display: none; } .pin time { font-size: 11px; }
  .pin.l p { top: -30px; }
  .logo-strip { padding: 28px 0; }
  .logo-strip img { height: 28px; }
  .logo-strip ul { gap: 16px 22px; }
  .win { min-height: 0; border-radius: 12px; }
  .wtool .search, .wtool span:nth-child(2) { display: none; }
  .board { grid-template-columns: repeat(5, 150px); overflow-x: auto; min-height: 0; }
  .inbox { grid-template-columns: 1fr; min-height: 0; }
  .inbox .ch { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid #EEF0F4; }
  .inbox .ch li { flex: none; }
  .threads { border-right: 0; }
  .threads li:nth-child(n+3) { display: none; }
  .stay { grid-template-columns: 1fr; min-height: 0; }
  .stay-main { border-right: 0; border-bottom: 1px solid #EEF0F4; }
  .report { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .geo .flow, .pin i::after { animation: none; }
  .geo .flow { stroke-dasharray: none; opacity: .5; }
}

/* 지구본 히어로 (인도네시아 중심) */
.geo .land.hi { stroke: #5B6793; }
.geo .inbound { fill: none; stroke: rgba(124,139,255,.28); stroke-width: 1.2; stroke-dasharray: 3 6; }
.geo .flow.in { stroke: rgba(201,207,255,.7); stroke-width: 2; }
.pin.partner i { background: var(--night); border: 2px solid #fff; }
.geo-region { position: absolute; z-index: 1; display: flex; flex-direction: column; gap: 4px; color: #fff; pointer-events: none; }
.geo-region b { font-size: 13px; font-weight: 700; letter-spacing: 0.32em; color: #AEB8E8; }
.geo-region span { font-size: 12px; color: rgba(255,255,255,.55); }
.geo-card { top: 30%; }
.geo-legend { position: absolute; right: 2%; bottom: 1%; z-index: 2; display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: rgba(255,255,255,.6); }
.geo-legend li { display: flex; align-items: center; gap: 8px; }
.geo-legend i { width: 22px; height: 0; border-top: 2px solid #7C8BFF; }
.geo-legend .lg-in { border-top: 2px dashed rgba(124,139,255,.55); }
.geo-legend .lg-part { width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; margin: 0 6px; }
@media (max-width: 1100px) { .geo-legend { display: none; } }
@media (max-width: 809px) { .geo-region span { display: none; } .geo-region b { font-size: 11px; } }
.geo svg { -webkit-mask-image: radial-gradient(ellipse 72% 68% at 58% 56%, #000 58%, transparent 100%); mask-image: radial-gradient(ellipse 72% 68% at 58% 56%, #000 58%, transparent 100%); }

/* ==========================================================
   3차 디벨롭 (2026-09-28): 명암 리듬 · 다크 여정 지도 · 다크 마무리 · 서브 히어로 · 유리 헤더
   ========================================================== */

/* 유리 헤더 */
.site-header { background: rgba(255,255,255,0.78); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom-color: rgba(15,23,42,0.08); }
.site-header.is-over-hero { backdrop-filter: none; -webkit-backdrop-filter: none; }

/* 어두운 띠 공통 */
.band.night { background: var(--night); color: #fff; }
.band.night .head h2 { color: #fff; }
.band.night .head p { color: rgba(255,255,255,0.62); }
.band.night .more { color: #fff; }
.band.night .more:hover { color: var(--glow); }

/* 여정 지도: 어두운 버전 */
.night .org-root { background: #fff; color: var(--ink); }
.night .org-root span { color: var(--muted); }
.night .org-branches::before, .night .org-branches::after, .night .org-group::before { background: rgba(255,255,255,0.22); }
.night .org-group { background: rgba(255,255,255,0.025); border-color: var(--night-line); }
.night .org-group.is-brand { background: rgba(255,255,255,0.045); }
.night .org-label b { color: #fff; }
.night .org-label span { color: rgba(255,255,255,0.5); }
.night .org-unit { background: rgba(255,255,255,0.04); border-color: var(--night-line); }
.night .org-unit b { color: #fff; }
.night .org-unit span { color: rgba(255,255,255,0.55); }
.night .org-unit:hover { border-color: rgba(255,255,255,0.35); }
.night .org-unit.is-owner { border-color: rgba(124,139,255,0.55); }
.night .org-unit.is-owner b, .night .org-unit[aria-pressed="true"] b { color: #C9CFFF; }
.night .org-unit[aria-pressed="true"] { background: rgba(124,139,255,0.14); border-color: var(--glow); box-shadow: 0 0 0 4px rgba(124,139,255,0.12), 0 10px 30px rgba(60,76,255,0.25); }
.night .zone-id { background: rgba(255,255,255,0.03); }
.night .zone-kr { background: rgba(124,139,255,0.07); }
.night .zone b { color: #fff; }
.night .zone span { color: rgba(255,255,255,0.5); }
.night .loop-svg .border { stroke: rgba(255,255,255,0.18); }
.night .loop-svg .track, .night .loop-svg .seg.return, .night .loop-svg .seg.local { stroke: rgba(255,255,255,0.16); }
.night .loop-svg .seg.is-on { stroke: var(--glow); }
.night .loop-svg .seg.is-trail { stroke: rgba(124,139,255,0.55); }
.night .patient { background: #fff; box-shadow: 0 0 0 6px rgba(124,139,255,0.3), 0 0 22px 6px rgba(124,139,255,0.55); }
.night .cross { background: var(--night-2); border-color: var(--night-line); color: rgba(255,255,255,0.78); }
.night .local-note, .night .loop-back, .night .place span { color: rgba(255,255,255,0.45); }
.night .place b { color: rgba(255,255,255,0.9); }
.night .stop i { background: var(--night); border-color: rgba(255,255,255,0.35); }
.night .stop span { color: rgba(255,255,255,0.85); }
.night .stop span em { color: rgba(255,255,255,0.45); }
.night .stop:hover i { border-color: #fff; }
.night .stop.is-owned i { border-color: var(--glow); }
.night .stop.is-on i { background: var(--glow); border-color: var(--glow); box-shadow: 0 0 0 7px rgba(124,139,255,0.2), 0 0 18px 4px rgba(124,139,255,0.5); }
.night .stop.is-on span, .night .stop.is-owned span, .night .stop.is-on span em { color: #C9CFFF; }
.night .loop-panel { background: rgba(255,255,255,0.04); border-color: var(--night-line); }
.night .lp-idx { color: var(--glow); }
.night .lp-zone { color: rgba(255,255,255,0.5); }
.night .lp-title { color: #fff; }
.night .lp-desc { color: rgba(255,255,255,0.65); }
.night .lp-owners span { background: rgba(124,139,255,0.15); color: #C9CFFF; }
@media (max-width: 809px) {
  .night .jlist::before { background: rgba(255,255,255,0.18); }
  .night .jlist li::before { background: var(--night); border-color: rgba(255,255,255,0.35); }
  .night .jlist li.is-owned::before { background: var(--glow); border-color: var(--glow); }
  .night .j-idx { color: var(--glow); }
  .night .j-zone { color: rgba(255,255,255,0.45); }
  .night .j-title { color: #fff; }
  .night .j-desc { color: rgba(255,255,255,0.62); }
  .night .j-owners span { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.7); }
  .night .jlist li.is-owned .j-owners span { background: rgba(124,139,255,0.15); color: #C9CFFF; }
  .night .jlist li.j-cross span { background: var(--night-2); border-color: var(--night-line); color: rgba(255,255,255,0.75); }
}

/* 마무리 카드 + 푸터: 어두운 버전 (모든 페이지) */
.closing-card { position: relative; overflow: hidden; background: var(--night); color: #fff; isolation: isolate; }
.closing-card::before { content: ""; position: absolute; z-index: -1; right: -8%; top: -30%; width: 62%; aspect-ratio: 1200 / 1040; background: url("../graphic/globe-dots.svg") center / contain no-repeat; opacity: .55;
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent 100%); mask-image: radial-gradient(closest-side, #000 40%, transparent 100%); }
.closing-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(50% 60% at 80% 10%, rgba(60,76,255,0.18), transparent 70%); }
.closing-title { color: #fff; }
.closing-cta { border-bottom-color: var(--night-line); }
.closing-cta p { color: rgba(255,255,255,0.62); }
.closing .btn-quiet { background: transparent; color: #fff; border-color: rgba(255,255,255,0.35); }
.closing .btn-quiet:hover { border-color: #fff; }
.site-footer h2 { color: #fff; }
.site-footer .info li { color: rgba(255,255,255,0.78); }
.site-footer .info a:hover, .site-footer .menu a:hover, .site-footer .bottom nav a:hover { color: var(--glow); }
.site-footer .menu a { color: rgba(255,255,255,0.55); }
.site-footer .bottom { color: rgba(255,255,255,0.45); }
.site-footer .bottom nav a:first-child { color: #fff; }

/* 서브페이지 히어로: 어두운 지구본 */
.page-hero.night { position: relative; overflow: hidden; background: var(--night); color: #fff; isolation: isolate; padding-bottom: 96px; }
.page-hero.night::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(50% 60% at 78% 55%, rgba(60,76,255,0.16), transparent 70%); }
.page-hero.night h1 { color: #fff; }
.page-hero.night .lead { color: rgba(255,255,255,0.65); }
.page-hero.night .btn-quiet { background: transparent; color: #fff; border-color: rgba(255,255,255,0.35); }
.page-hero.night .btn-quiet:hover { border-color: #fff; }
.page-hero.night .container { position: relative; z-index: 1; }
.ph-geo { position: absolute; z-index: 0; right: max(-4%, calc(50% - 780px)); top: 50%; width: min(58%, 780px); aspect-ratio: 1200 / 1040; transform: translateY(-46%); margin: 0; pointer-events: none; }
.ph-geo > img { width: 100%; height: 100%; -webkit-mask-image: radial-gradient(ellipse 70% 66% at 58% 56%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 70% 66% at 58% 56%, #000 55%, transparent 100%); }
.ph-geo .pin p { display: flex; }
.ph-note { position: absolute; right: 4%; bottom: 4%; font-size: 12px; color: rgba(255,255,255,0.45); }
.page-hero.night .jump { border-top-color: rgba(255,255,255,0.35); position: relative; z-index: 1; }
.page-hero.night .jump a + a { border-left-color: var(--night-line); }
.page-hero.night .jump b { color: #fff; }
.page-hero.night .jump span { color: rgba(255,255,255,0.55); }
.page-hero.night .jump a:hover b { color: var(--glow); }
.page-hero.night .jump a { background: linear-gradient(180deg, rgba(7,9,15,0.0), rgba(7,9,15,0.55)); }
@media (max-width: 1100px) {
  .ph-geo { width: 70%; right: -14%; opacity: .7; }
}
@media (max-width: 809px) {
  .page-hero.night { padding-bottom: 56px; }
  .ph-geo { width: 120%; right: -46%; top: 42%; opacity: .45; }
  .ph-geo .pin, .ph-note { display: none; }
  .page-hero.night .jump a + a { border-top-color: var(--night-line); }
}

/* 운영 시스템 탭: 자동 넘김 진행 막대 */
.pf-tabs button[aria-selected="true"]::before { transform-origin: left; }
.pf.is-playing .pf-tabs button[aria-selected="true"]::before { animation: pf-progress var(--pf-dur, 7s) linear forwards; }
@keyframes pf-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.win:not([hidden]) { animation: pf-in .45s var(--ease); }
@keyframes pf-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .win:not([hidden]) { animation: none; } }
/* 서브 히어로 지구본: 섹션 높이에 맞춤 */
.page-hero.night { min-height: 660px; display: flex; flex-direction: column; justify-content: center; }
.ph-geo { top: calc(var(--header-h) + 12px); bottom: 12px; height: auto; width: auto; transform: none; right: max(0px, calc(50% - 740px)); }
@media (max-width: 1100px) { .ph-geo { width: auto; right: -12%; opacity: .75; } }
@media (max-width: 809px) { .page-hero.night { min-height: 0; } .ph-geo { top: 30%; bottom: -10%; right: -40%; width: auto; opacity: .4; } }
@media (min-width: 1101px) { .page-hero.night .jump { max-width: 60%; } }
.page-hero.night .jump a { background: none; }
@media (max-width: 1100px) { .ph-geo .pin { display: none; } }

/* ==========================================================
   스크롤 여정 (2026-09-28, 자동 순환 여정 지도 대체)
   ========================================================== */
.story .org { margin-top: 8px; }
.story a.org-unit { cursor: pointer; }
.story-grid { margin-top: 96px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 72px; align-items: start; }
.story-stick { position: sticky; top: calc(var(--header-h) + 24px); height: calc(100vh - var(--header-h) - 48px); min-height: 520px; display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.story-map { position: relative; width: min(100%, calc((100vh - var(--header-h) - 170px) * 1.1538)); aspect-ratio: 1200 / 1040; margin: 0 auto; }
.story-map > img, .story-map > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.story-map > img { -webkit-mask-image: radial-gradient(ellipse 72% 68% at 58% 56%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 72% 68% at 58% 56%, #000 55%, transparent 100%); }
.story-map svg { overflow: visible; }
.sr-base { fill: none; stroke: rgba(255,255,255,0.12); stroke-width: 1.4; stroke-dasharray: 3 7; }
.sr-draw { fill: none; stroke: var(--glow); stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 6px rgba(124,139,255,.6)); }
.story-map .pin i { transition: transform .4s var(--ease), opacity .4s var(--ease); opacity: .45; transform: scale(.8); }
.story-map .pin i::after { animation: none; opacity: 0; }
.story-map .pin p { opacity: .45; transition: opacity .4s var(--ease); }
.story-map .pin.is-on i { opacity: 1; transform: scale(1); }
.story-map .pin.is-on i::after { animation: geo-ping 2.4s var(--ease) infinite; }
.story-map .pin.is-on p { opacity: 1; }
.traveler { position: absolute; z-index: 3; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; background: #fff;
  box-shadow: 0 0 0 6px rgba(124,139,255,0.35), 0 0 28px 8px rgba(124,139,255,0.6); pointer-events: none; }
.story-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; border-top: 1px solid var(--night-line); }
.story-count { font-size: 14px; color: rgba(255,255,255,0.45); }
.story-count b { font-size: 22px; font-weight: 700; color: #fff; margin-right: 2px; }
.story-own { display: flex; flex-wrap: wrap; gap: 6px; }
.story-own i { font-style: normal; font-size: 12.5px; font-weight: 600; padding: 6px 11px; border-radius: 999px; border: 1px solid var(--night-line); color: rgba(255,255,255,0.4); transition: all .35s var(--ease); }
.story-own i.is-on { color: #fff; border-color: var(--glow); background: rgba(124,139,255,0.18); box-shadow: 0 0 18px rgba(124,139,255,0.25); }

.story-steps { padding: 18vh 0 24vh; }
.story-steps > li { min-height: 62vh; display: flex; flex-direction: column; justify-content: center; opacity: .22; transition: opacity .5s var(--ease); }
.story-steps > li.is-on { opacity: 1; }
.st-meta { display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: rgba(255,255,255,0.5); }
.st-idx { font-size: 13px; font-weight: 700; color: var(--glow); padding: 4px 9px; border-radius: 8px; background: rgba(124,139,255,0.14); }
.story-steps h3 { margin-top: 18px; font-size: 36px; line-height: 1.25; font-weight: 700; letter-spacing: -0.03em; color: #fff; }
.story-steps h3 small { display: block; margin-top: 6px; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: rgba(255,255,255,0.45); }
.st-desc { margin-top: 18px; font-size: 17px; line-height: 1.7; color: rgba(255,255,255,0.68); max-width: 30em; }
.st-own { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 6px; }
.st-own span { font-size: 12.5px; font-weight: 600; padding: 5px 11px; border-radius: 999px; background: rgba(124,139,255,0.15); color: #C9CFFF; }

@media (max-width: 1100px) {
  .story-grid { gap: 40px; }
  .story-steps h3 { font-size: 30px; }
  .story-map .pin span { display: none; }
}
@media (max-width: 809px) {
  .story-grid { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 56px; }
  .story-stick { top: var(--header-h); height: auto; min-height: 0; z-index: 2; padding: 12px 0 14px; gap: 10px; background: linear-gradient(180deg, var(--night) 82%, rgba(7,9,15,0)); }
  .story-map { width: min(100%, 42vh * 1.1538); }
  .story-bar { padding-top: 10px; }
  .story-count b { font-size: 17px; }
  .story-own i { font-size: 11px; padding: 4px 8px; }
  .story-steps { padding: 4vh 0 20vh; }
  .story-steps > li { min-height: 52vh; justify-content: flex-start; padding-top: 6vh; }
  .story-steps h3 { font-size: 24px; margin-top: 12px; }
  .st-desc { font-size: 15.5px; margin-top: 12px; }
  .story-map .pin p { display: none; }
}
@media (prefers-reduced-motion: reduce) { .story-steps > li { transition: none; } }

/* ==========================================================
   움직임 (motion.js가 html.motion을 붙였을 때만. 동작 줄이기면 전부 꺼짐)
   ========================================================== */
.split .ln { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.split .ln > span { display: inline-block; }
.motion .split .ln > span { transform: translateY(108%); transition: transform 1.2s var(--ease) calc(var(--i, 0) * 110ms + 120ms); }
.motion.is-ready .split .ln > span { transform: none; }

.motion .hero .lede, .motion .hero .btn-row, .motion .page-hero .lead, .motion .page-hero .btn-row, .motion .page-hero .jump {
  opacity: 0; transform: translateY(16px); transition: opacity 1s var(--ease) .5s, transform 1s var(--ease) .5s; }
.motion .hero .btn-row, .motion .page-hero .btn-row, .motion .page-hero .jump { transition-delay: .65s; }
.motion.is-ready .hero .lede, .motion.is-ready .hero .btn-row, .motion.is-ready .page-hero .lead, .motion.is-ready .page-hero .btn-row, .motion.is-ready .page-hero .jump { opacity: 1; transform: none; }

/* 히어로 지도 등장: 점 → 노선 → 도시 → 카드 */
.motion .geo .land { opacity: 0; transition: opacity 1.8s ease .15s; }
.motion .geo .route { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s var(--ease) .9s; }
.motion .geo .flow, .motion .geo .inbound { opacity: 0; transition: opacity 1s ease 2s; }
.motion .geo .pin, .motion .ph-geo .pin { opacity: 0; transform: scale(.4); transition: opacity .6s var(--ease) calc(1.2s + var(--pi, 0) * 140ms), transform .8s var(--ease) calc(1.2s + var(--pi, 0) * 140ms); }
.motion .geo .geo-card, .motion .geo .geo-legend, .motion .geo .geo-region { opacity: 0; transform: translateY(12px); transition: opacity .9s var(--ease) 1.9s, transform .9s var(--ease) 1.9s; }
.motion .ph-geo > img { opacity: 0; transform: scale(.97); transition: opacity 1.6s ease .15s, transform 2s var(--ease) .15s; }
.motion.is-ready .geo .land, .motion.is-ready .geo .flow, .motion.is-ready .geo .inbound, .motion.is-ready .geo .pin, .motion.is-ready .ph-geo .pin,
.motion.is-ready .geo .geo-card, .motion.is-ready .geo .geo-legend, .motion.is-ready .geo .geo-region, .motion.is-ready .ph-geo > img { opacity: 1; transform: none; }
.motion.is-ready .geo .route { stroke-dashoffset: 0; }
.motion .ph-geo .pin { transition-delay: calc(.9s + var(--pi, 0) * 140ms); }

/* 마우스 시차 */

/* 스크롤 등장 */
.motion .rv { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease) var(--d, 0ms), transform 1.1s var(--ease) var(--d, 0ms); }
.motion .rv.in { opacity: 1; transform: none; }

/* 상시 움직임: 마무리 카드 지구본이 천천히 떠다님 */
@keyframes globe-drift { from { transform: translate(0, 0); } to { transform: translate(-28px, 18px); } }

/* 손끝 반응 */
.btn-primary { transition: background-color .25s var(--ease), box-shadow .35s var(--ease), transform .25s var(--ease); }
.btn-primary:hover { box-shadow: 0 10px 28px -8px rgba(20, 0, 255, .6); transform: translateY(-1px); }
.unit-card figure { transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.unit-card:hover figure { transform: translateY(-4px); box-shadow: 0 24px 40px -20px rgba(5, 17, 45, .35); }
.win { transition: box-shadow .5s var(--ease); }
.pf:hover .win { box-shadow: 0 1px 2px rgba(5,17,45,.04), 0 32px 60px -14px rgba(5,17,45,.2); }
.site-header.is-dark { background: rgba(7, 9, 15, 0.72); color: #fff; border-bottom-color: rgba(255,255,255,0.08); }
.story-steps { padding: 14vh 0 10vh; }
.story-steps > li { min-height: 54vh; }
.story-count { white-space: nowrap; }
@media (max-width: 809px) {
  .story-own i:not(.is-on) { display: none; }
  .story-steps > li { min-height: 46vh; }
  .story-steps { padding: 2vh 0 8vh; }
}

/* 세 사업 스크롤 이야기 */
.s3 .story-map svg g { transition: opacity .6s var(--ease); }
.s3 .l-co ellipse { transition: opacity .8s var(--ease); }
.s3-in { fill: none; stroke: var(--glow); stroke-width: 1.8; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .8; }
.s3-ring { fill: none; stroke: rgba(124,139,255,.5); stroke-width: 1.2; opacity: 0; transition: opacity .6s var(--ease); }
.s3 .traveler { transition: opacity .4s var(--ease); }
/* 지금 장의 층만 밝게, 지난 장은 흐리게, 04에서는 전부 밝게 */
.s3 [data-ch="1"] .l-co, .s3 [data-ch="2"] .l-co, .s3 [data-ch="2"] .l-mt { opacity: .4; }
.s3 [data-ch="2"] .s3-ring, .s3 [data-ch="3"] .s3-ring { opacity: 1; }
.s3 .story-map .pin i, .s3 .story-map .pin p { opacity: .5; }
.s3 [data-ch="0"] .pin[data-layer="co"] i, .s3 [data-ch="0"] .pin[data-layer="co"] p,
.s3 [data-ch="1"] .pin i, .s3 [data-ch="1"] .pin p,
.s3 [data-ch="2"] .pin[data-layer="sel"] i, .s3 [data-ch="2"] .pin[data-layer="sel"] p,
.s3 [data-ch="3"] .pin i, .s3 [data-ch="3"] .pin p { opacity: 1; transform: none; }
.s3 [data-ch="0"] .pin[data-layer="co"] i::after, .s3 [data-ch="2"] .pin[data-layer="sel"] i::after, .s3 [data-ch="3"] .pin i::after { animation: geo-ping 2.4s var(--ease) infinite; }

.st-meta b { font-weight: 700; color: #fff; margin-right: 2px; }
.st-facts { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--night-line); }
.st-facts div { padding: 16px 16px 0 0; }
.st-facts div + div { padding-left: 16px; border-left: 1px solid var(--night-line); }
.st-facts dd { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -0.02em; color: #fff; white-space: nowrap; }
.st-facts dt { margin-top: 4px; font-size: 13px; color: rgba(255,255,255,0.5); }
.st-foot { margin-top: 24px; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 18px; align-items: center; }
.st-foot figure { margin: 0; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--night-2); border: 1px solid var(--night-line); }
.st-foot img { width: 100%; height: 100%; object-fit: cover; }
.st-links { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.story .st-links .more { color: #fff; }
.story .st-links .more:hover { color: var(--glow); }
.story .st-links .ext { color: #AEB8FF; }
.story-steps > li > .st-links { margin-top: 24px; }
.st-loop { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: lp; }
.st-loop li { counter-increment: lp; font-size: 14px; font-weight: 600; color: #fff; padding: 8px 14px 8px 10px; border-radius: 999px; border: 1px solid var(--night-line); background: rgba(255,255,255,0.04); display: inline-flex; align-items: center; gap: 8px; }
.st-loop li::before { content: counter(lp); width: 20px; height: 20px; border-radius: 50%; background: rgba(124,139,255,0.2); color: #C9CFFF; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 809px) {
  .st-facts dd { font-size: 22px; }
  .st-foot { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .s3 .story-steps h3 br { display: none; }
}

/* ==========================================================
   인터랙티브 고객 여정 (2026-09-28)
   ========================================================== */
.journey .org { margin-top: 8px; }
.jgrid { margin-top: 88px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 64px; align-items: start; }
.jstick { position: sticky; top: calc(var(--header-h) + 20px); height: calc(100vh - var(--header-h) - 40px); min-height: 560px; display: flex; flex-direction: column; gap: 18px; }
.jsteps { padding: 12vh 0 16vh; }
.jsteps > li { min-height: 78vh; display: flex; flex-direction: column; justify-content: center; opacity: .22; transition: opacity .5s var(--ease); }
.jsteps > li.is-on { opacity: 1; }
.jsteps h3 { margin-top: 16px; font-size: 36px; line-height: 1.25; font-weight: 700; letter-spacing: -0.03em; color: #fff; }
.jsteps h3 small { display: block; margin-top: 6px; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: rgba(255,255,255,.45); }
.jsteps .st-links { margin-top: 20px; }
.jscene.is-inline { display: none; }
.jnote { font-size: 12px; color: rgba(255,255,255,.4); }

/* 경로 막대 */
.jrail { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 14px 18px; border: 1px solid var(--night-line); border-radius: 16px; background: rgba(255,255,255,.03); }
.jr-end { display: flex; flex-direction: column; gap: 1px; }
.jr-end.r { text-align: right; }
.jr-end b { font-size: 14px; color: #fff; }
.jr-end small { font-size: 11.5px; color: rgba(255,255,255,.45); }
.jr-track { position: relative; height: 34px; }
.jr-line { position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.3) 0 4px, transparent 4px 9px); }
.jr-traveler { position: absolute; top: 50%; left: 0; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px rgba(124,139,255,.35), 0 0 20px 6px rgba(124,139,255,.55); z-index: 2; transition: left .25s linear; }
.jr-dots { position: absolute; inset: auto 0 -22px; display: flex; justify-content: space-between; }
.jr-dot { width: 26px; height: 22px; display: flex; align-items: center; justify-content: center; border-radius: 6px; }
.jr-dot span { font-size: 10.5px; font-weight: 700; color: rgba(255,255,255,.35); font-variant-numeric: tabular-nums; transition: color .3s var(--ease); }
.jr-dot:hover span, .jr-dot.is-past span { color: rgba(255,255,255,.7); }
.jr-dot.is-on span { color: #fff; }
.jr-dot.is-on { background: rgba(124,139,255,.25); }
.jrail { padding-bottom: 30px; }

/* 무대 */
.jstage { position: relative; flex: 1; min-height: 0; }
.jstage .jscene { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateY(14px) scale(.985); transition: opacity .5s var(--ease), transform .6s var(--ease), visibility 0s linear .5s; }
.jstage .jscene.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .5s var(--ease), transform .6s var(--ease); }
.scene { position: relative; width: 100%; height: 100%; }
.js-journey .scene [data-at] { opacity: 0; transform: translateY(10px); transition: opacity .45s var(--ease), transform .5s var(--ease); }
.js-journey .scene [data-at].on { opacity: 1; transform: none; }
.jw { min-height: 0; height: 100%; display: flex; flex-direction: column; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); border-color: rgba(255,255,255,.1); }
.jw > .inbox, .jw > .crm, .jw > .report { flex: 1; min-height: 0; }
.jw .wbar { background: #F6F7FA; }

/* 01 관심 */
.sc-gm .reels { position: absolute; inset: 4% 0 26% 0; display: flex; gap: 2.2%; align-items: center; justify-content: center; }
.reel { position: relative; width: 17%; aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; background: var(--night-2); border: 1px solid rgba(255,255,255,.12); opacity: .25; transform: translateY(16px); transition: opacity .6s var(--ease), transform .7s var(--ease), box-shadow .4s var(--ease); }
.reel:nth-child(odd) { margin-top: 8%; }
.reel.on { opacity: 1; transform: none; }
.reel:hover { transform: translateY(-8px) scale(1.04); box-shadow: 0 18px 40px rgba(0,0,0,.5); z-index: 2; }
.reel img { width: 100%; height: 100%; object-fit: cover; }
.reel .bar { position: absolute; left: 8px; right: 8px; top: 8px; height: 2px; border-radius: 2px; background: rgba(255,255,255,.35); overflow: hidden; }
.reel .bar i { position: absolute; inset: 0; background: #fff; transform-origin: left; transform: scaleX(0); }
.reel.on .bar i { animation: reel-play 5s linear infinite; }
.reel:nth-child(2) .bar i { animation-delay: -1.2s; } .reel:nth-child(3) .bar i { animation-delay: -2.6s; } .reel:nth-child(4) .bar i { animation-delay: -3.3s; }
@keyframes reel-play { to { transform: scaleX(1); } }
.kpi { position: absolute; border-radius: 14px; background: rgba(16, 20, 32, .86); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 14px 16px; color: #fff; }
.kpi > span { display: block; font-size: 12px; color: rgba(255,255,255,.55); }
.kpi > b { display: block; margin-top: 4px; font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.kpi.k1 { left: 0; bottom: 0; width: 46%; }
.kpi.k2 { right: 0; bottom: 12%; width: 40%; }
.kpi.k3 { right: 4%; top: 0; display: flex; align-items: center; gap: 10px; }
.kpi.k3 .bot { width: 30px; height: 30px; border-radius: 8px; background: var(--brand); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #fff; }
.kpi.k3 p { display: flex; flex-direction: column; }
.kpi.k3 b { font-size: 13px; }
.kpi.k3 em { font-style: normal; font-size: 11px; color: rgba(255,255,255,.5); }
.spark { display: block; margin-top: 8px; width: 100%; height: 40px; }
.spark polyline, .jscene [data-draw] { fill: none; stroke: var(--glow); stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; vector-effect: non-scaling-stroke; }

/* 02 상담 */
.sc-inbox .inbox { grid-template-columns: 104px 190px minmax(0, 1fr); min-height: 0; }
.sc-inbox .threads li.new { position: relative; }
.sc-inbox .threads li.new.on::after { content: ""; position: absolute; right: 10px; top: 12px; width: 7px; height: 7px; border-radius: 50%; background: #FF5A5F; }
.conv { overflow: hidden; }
.typing { align-self: flex-end; display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--caption); }
.typing i { width: 5px; height: 5px; border-radius: 50%; background: #AEB7C4; animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; } .typing i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 50% { opacity: .2; } }
.bub.draft { display: flex; flex-direction: column; gap: 8px; }
.bub .send { align-self: flex-end; font-size: 12px; font-weight: 700; color: #fff; background: var(--brand); padding: 7px 12px; border-radius: 999px; box-shadow: 0 0 0 0 rgba(20,0,255,.5); animation: pulse 1.8s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(20,0,255,0); } 100% { box-shadow: 0 0 0 0 rgba(20,0,255,0); } }
.sent .bub.draft { display: none; }
.js-journey .sent .bub.ok[data-sent] { opacity: 1; transform: none; }
.js-journey .scene .bub.ok[data-sent].on ~ .bub.draft, .js-journey .scene .bub.draft.on:has(~ .bub.ok.on) { display: none; }

/* 03 매칭 */
.crm { padding: 16px; display: flex; flex-direction: column; gap: 16px; background: #F6F7FA; }
.pipe { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; --col: 0; }
.pc { background: #fff; border: 1px solid #E8EBF0; border-radius: 10px; height: 92px; padding: 8px; }
.pc p { font-size: 11px; font-weight: 700; color: var(--slate); }
.mover { position: absolute; top: 34px; left: calc((100% - 32px) / 5 * var(--col) + 8px * var(--col) + 6px); width: calc((100% - 32px) / 5 - 12px); display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 0 6px; align-items: center; background: #fff; border: 1.5px solid var(--brand); border-radius: 9px; padding: 7px; box-shadow: 0 8px 18px -6px rgba(20,0,255,.35); transition: left .6s var(--ease); }
.mover .av { grid-row: 1 / 3; width: 22px; height: 22px; border-radius: 50%; background: #EEF0FF; color: var(--brand); font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.mover b { font-size: 11.5px; } .mover em { font-style: normal; font-size: 10.5px; color: var(--caption); }
.cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cc { text-align: left; display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1.5px solid #E3E6EC; border-radius: 12px; padding: 14px; transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .2s var(--ease); }
.cc:hover { transform: translateY(-2px); }
.cn { display: flex; justify-content: space-between; align-items: center; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.cn i { font-style: normal; font-size: 10.5px; font-weight: 700; color: #fff; background: var(--brand); padding: 3px 8px; border-radius: 999px; opacity: 0; transition: opacity .3s var(--ease); }
.cl { font-size: 12px; color: var(--slate); padding-left: 12px; position: relative; }
.cl::before { content: ""; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: #C9CFD8; }
.cc.is-pick { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(20,0,255,.1); }
.cc.is-pick .cn i { opacity: 1; }
.cc.is-pick .cl::before { background: var(--brand); }
.crm-note { font-size: 12px; color: var(--caption); }

/* 04 한국 */
.sc-kr .ph { position: absolute; margin: 0; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 24px 60px -20px rgba(0,0,0,.7); }
.sc-kr .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.sc-kr .ph:hover img { transform: scale(1.05); }
.sc-kr figcaption { position: absolute; left: 10px; bottom: 10px; font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(8,12,22,.6); backdrop-filter: blur(6px); padding: 5px 10px; border-radius: 999px; }
.ph-car { left: 0; top: 0; width: 64%; height: 58%; }
.ph-kit { right: 0; top: 8%; width: 32%; height: 44%; }
.ph-book { left: 0; bottom: 0; width: 40%; height: 36%; }
.stay-card { position: absolute; right: 0; bottom: 0; width: 56%; background: #fff; border-radius: 16px; padding: 16px; color: var(--ink); box-shadow: 0 24px 60px -20px rgba(0,0,0,.7); }
.sc-h { display: flex; justify-content: space-between; align-items: baseline; }
.sc-h b { font-size: 14px; } .sc-h span { font-size: 11.5px; color: var(--caption); }
.stay-card ol { margin-top: 10px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.stay-card li { border-radius: 10px; background: #F4F5F8; padding: 10px 8px; display: flex; flex-direction: column; gap: 2px; position: relative; }
.js-journey .stay-card li[data-at] { opacity: .35; transform: none; }
.js-journey .stay-card li[data-at].on { opacity: 1; background: #E9FBF1; }
.stay-card li b { font-size: 12.5px; } .stay-card li span { font-size: 10.5px; color: var(--caption); }
.stay-card li.on::after { content: "✓"; position: absolute; right: 8px; top: 8px; font-size: 11px; font-weight: 700; color: #11905A; }

/* 05 회복 */
.sc-rec { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 24px; align-items: center; }
.phone { justify-self: center; width: min(100%, 300px); height: 100%; max-height: 560px; border-radius: 36px; background: #ECE5DD; border: 8px solid #1A1D26; box-shadow: 0 30px 80px -20px rgba(0,0,0,.7); display: flex; flex-direction: column; overflow: hidden; }
.ph-top { display: flex; align-items: baseline; gap: 8px; padding: 18px 16px 10px; background: #075E54; color: #fff; }
.ph-top b { font-size: 14px; } .ph-top span { font-size: 11px; opacity: .7; }
.msgs { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 12px; }
.msg { align-self: flex-start; max-width: 88%; background: #fff; border-radius: 4px 12px 12px 12px; padding: 8px 10px; font-size: 12px; line-height: 1.45; color: #111; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.msg em { display: block; font-style: normal; font-size: 10.5px; font-weight: 700; color: #075E54; margin-bottom: 2px; }
.msg.img { padding: 4px; } .msg.img img { border-radius: 8px; width: 100%; } .msg.img em { padding: 4px 6px 2px; margin: 0; }
.js-journey .msg[data-at] { display: none; }
.js-journey .msg[data-at].on { display: block; animation: msg-in .45s var(--ease); }
@keyframes msg-in { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.msg.home { background: #DCF8C6; }
.rem-list { display: flex; flex-direction: column; gap: 8px; }
.rem-list li { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.35); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--night-line); }
.js-journey .rem-list li[data-at] { opacity: 1; transform: none; }
.js-journey .rem-list li[data-at].on { color: #fff; border-color: rgba(124,139,255,.6); background: rgba(124,139,255,.12); }
.js-journey .rem-list li.on::before { content: "✓ "; color: #8EF0B4; }

/* 06 현지 클리닉 */
.sc-clinic { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; }
.cl-photos { position: relative; border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
.cl-ph { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .6s var(--ease); }
.cl-ph.is-on { opacity: 1; }
.cl-ph img { width: 100%; height: 100%; object-fit: cover; }
.cl-tabs { position: absolute; left: 12px; right: 12px; bottom: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cl-tabs button { text-align: left; padding: 12px 14px; border-radius: 12px; background: rgba(8,12,22,.62); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.16); color: #fff; display: flex; flex-direction: column; gap: 2px; transition: background-color .3s var(--ease), border-color .3s var(--ease); }
.cl-tabs b { font-size: 15px; } .cl-tabs span { font-size: 11.5px; color: rgba(255,255,255,.65); }
.cl-tabs button.is-on { background: rgba(20,0,255,.72); border-color: rgba(255,255,255,.4); }
.cl-map { position: relative; border-radius: 18px; border: 1px solid var(--night-line); background: rgba(255,255,255,.02); overflow: hidden; }
.cl-map svg { width: 100%; height: 100%; }
.cl-route { fill: none; stroke: var(--glow); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.cl-pin { fill: #fff; stroke: rgba(124,139,255,.6); stroke-width: 8; transform-box: fill-box; transform-origin: center; }
.cl-pin.p { fill: var(--night); stroke: #fff; stroke-width: 3; }
.js-journey .cl-pin[data-at] { opacity: 0; transform: scale(.3); transition: opacity .4s var(--ease), transform .6s cubic-bezier(.34,1.56,.64,1); }
.js-journey .cl-pin[data-at].on { opacity: 1; transform: scale(1); }
.cl-seoul { fill: rgba(255,255,255,.5); }
.cl-badge { position: absolute; left: 12px; right: 12px; bottom: 12px; text-align: center; font-size: 12.5px; font-weight: 600; color: #fff; background: rgba(124,139,255,.2); border: 1px solid rgba(124,139,255,.5); border-radius: 10px; padding: 8px; }

/* 07 재방문 */
.sc-loop { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 16px; }
.sc-loop .report { padding: 16px; }
.sc-loop .kpis svg { height: 70px; }
.loop-ring { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; position: relative; }
.loop-ring button { width: 100%; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--night-line); background: rgba(255,255,255,.04); color: #fff; font-size: 15px; font-weight: 700; display: flex; flex-direction: column; gap: 2px; transition: background-color .3s var(--ease), border-color .3s var(--ease), transform .2s var(--ease); }
.loop-ring button span { font-size: 11px; font-weight: 600; color: rgba(255,255,255,.5); }
.loop-ring button:hover { background: rgba(124,139,255,.18); border-color: var(--glow); transform: translateY(-2px); }
.loop-ring li { position: relative; }
.loop-ring li + li::before { content: "→"; position: absolute; left: -8px; top: 50%; transform: translate(-50%, -50%); color: rgba(255,255,255,.35); font-size: 11px; }

/* 모바일: 장면을 각 구간 안에 세로로 */
@media (max-width: 1100px) {
  .jgrid { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 56px; }
  .jstick { position: sticky; top: var(--header-h); height: auto; min-height: 0; z-index: 3; padding: 10px 0; background: linear-gradient(180deg, var(--night) 80%, rgba(7,9,15,0)); }
  .jstage, .jnote { display: none; }
  .jscene.is-inline { display: block; position: relative; height: 440px; margin-bottom: 28px; }
  .jsteps { padding: 24px 0 8vh; }
  .jsteps > li { min-height: 0; padding: 48px 0; opacity: .4; }
  .jsteps h3 { font-size: 26px; }
}
@media (max-width: 809px) {
  .jrail { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 10px 12px 28px; }
  .jr-end { display: none; }
  .jscene.is-inline { height: 380px; }
  .sc-inbox .inbox { grid-template-columns: minmax(0, 1fr); }
  .sc-inbox .inbox .ch, .sc-inbox .threads { display: none; }
  .pc { height: 76px; } .pc p { font-size: 9.5px; }
  .mover { top: 30px; padding: 5px; } .mover b { font-size: 10px; } .mover em { display: none; }
  .cmp { grid-template-columns: 1fr; }
  .cc { padding: 10px 12px; gap: 3px; } .cl:nth-child(4) { display: none; }
  .kpi > b { font-size: 22px; } .kpi.k3 em { display: none; }
  .sc-rec { grid-template-columns: minmax(0, 1fr); }
  .rem-list { display: none; }
  .sc-clinic { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); }
  .loop-ring { grid-template-columns: 1fr 1fr; }
  .loop-ring li + li::before { display: none; }
  .stay-card { width: 78%; } .stay-card li span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .reel .bar i, .typing i, .bub .send { animation: none !important; }
  .mover, .jr-traveler { transition: none; }
}
.win { color: var(--ink); }
.sc-clinic { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1.35fr) minmax(0, 1fr); gap: 12px; }
.cl-map svg { display: block; }
.sc-loop { grid-template-rows: auto auto; align-content: center; }
.sc-loop .jw { height: auto; }
.sc-loop .kpis svg { height: 90px; }
.journey .ext { color: #AEB8FF; }
.journey .ext:hover { color: #fff; }
@media (max-width: 809px) {
  .mover { grid-template-columns: 22px; width: auto; padding: 4px; left: calc((100% - 32px) / 5 * var(--col) + 8px * var(--col) + (100% - 32px) / 10 - 15px); }
  .mover b, .mover em { display: none; }
  .pc { height: 64px; }
}
/* 여정 속도: 구간을 길게, 글은 구간 안에서 머무름 */
@media (min-width: 1101px) {
  .jsteps { padding: 0 0 30vh; }
  .jsteps > li { min-height: 150vh; display: block; }
  .jsteps .st-body { position: sticky; top: calc(50vh - 150px); padding-top: 18vh; }
  .jsteps > li:first-child .st-body { padding-top: 22vh; }
}

/* Business 사진 격자 */
.bento { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 230px 230px; gap: 12px; }
.bt { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: #E9ECF1; }
.bt.big { grid-row: 1 / 3; }
.bt.wide { grid-column: span 2; }
.bt img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.bt:hover img { transform: scale(1.04); }
.bt figcaption { position: absolute; left: 12px; bottom: 12px; font-size: 12.5px; font-weight: 600; color: #fff; background: rgba(8,12,22,.58); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 6px 11px; border-radius: 999px; }
@media (max-width: 1100px) { .bento { grid-template-rows: 190px 190px; } }
@media (max-width: 809px) {
  .bento { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 150px 150px; gap: 8px; }
  .bt.big { grid-column: 1 / -1; grid-row: auto; }
  .bt.wide { grid-column: 1 / -1; }
  .bt figcaption { font-size: 11px; left: 8px; bottom: 8px; }
}
.msg { flex-shrink: 0; }
.msg.img img { width: 100%; height: auto; aspect-ratio: 1400 / 787; object-fit: cover; }
.cl-badge { top: 12px; bottom: auto; left: auto; right: 12px; text-align: left; padding: 7px 12px; }

/* 카피 정리 (2026-09-28): 한국어 제목 + 작은 영문 라벨 */
.plist h3 small, .values h3 small { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 600; letter-spacing: 0; color: var(--caption); }
.cities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) { .cities { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cities li:nth-child(3) { padding-left: 24px; border-left: 1px solid var(--line); } }
@media (max-width: 809px) { .cities { grid-template-columns: 1fr; } .cities li:nth-child(3) { padding-left: 0; border-left: 0; } }
/* 공개 화면에서는 초안 표시를 숨기고, 검수 모드에서만 노랗게 */
.fill { background: none; color: inherit; padding: 0; }
.review-on .fill { background: #FFF1CC; color: #6B4700; padding: 0 4px; border-radius: 4px; }
.draft-banner { display: none; }
.review-on .draft-banner { display: block; }

/* 리포트 차트 (선 끊김 수정: 굵기 고정 설정 없이 비율 유지) */
.spark polyline, .spark path, .jscene [data-draw] { vector-effect: none; }
.spark { height: auto; aspect-ratio: 4 / 1; }
.spark path { fill: none; stroke: var(--glow); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.sc-loop .report { padding: 18px; }
.rp-legend { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; font-size: 11.5px; color: var(--slate); margin-bottom: 12px; }
.rp-legend span { display: inline-flex; align-items: center; gap: 6px; }
.rp-legend .lg-a::before { content: ""; width: 16px; height: 2px; border-radius: 2px; background: var(--brand); }
.rp-legend .lg-m::before { content: ""; width: 16px; border-top: 2px dashed #AEB7C4; }
.rp-legend .lg-s { margin-left: auto; color: var(--caption); }
.rgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rc { border: 1px solid #E8EBF0; border-radius: 12px; padding: 12px 14px 8px; background: #fff; }
.rc-h { display: flex; justify-content: space-between; align-items: baseline; }
.rc-h span { font-size: 12.5px; font-weight: 700; color: var(--ink-2); }
.rc-h em { font-style: normal; font-size: 10.5px; color: var(--caption); }
.rc-svg { display: block; width: 100%; height: auto; margin-top: 6px; overflow: visible; }
.rc-grid line { stroke: #EEF0F4; stroke-width: 1; stroke-dasharray: 3 4; }
.rc-line { fill: none; stroke: var(--brand); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.rc-ma { fill: none; stroke: #AEB7C4; stroke-width: 1.6; stroke-dasharray: 4 4; }
.rc-end { fill: #fff; stroke: var(--brand); stroke-width: 2.5; }
.js-journey .scene .rc-area[data-at], .js-journey .scene .rc-end[data-at] { transform: none; }
.rc-x { display: flex; justify-content: space-between; margin-top: 4px; font-size: 9.5px; color: #9AA3B2; font-variant-numeric: tabular-nums; }
.sc-loop .kpis { display: none; }
@media (max-width: 809px) { .rgrid { gap: 6px; } .rc { padding: 8px 10px 6px; } .rc-x { display: none; } .rp-legend .lg-s { display: none; } }
@media (max-width: 1100px) {
  .jscene.is-inline:has(.sc-loop), .jscene.is-inline:has(.sc-crm) { height: auto; }
  .jscene.is-inline .sc-loop, .jscene.is-inline .sc-crm { height: auto; }
  .jscene.is-inline .sc-loop .jw, .jscene.is-inline .sc-crm .jw { height: auto; }
}

/* ==========================================================
   여정 v2 (2026-09-29): 화면 고정 + 제자리 전환, 정렬된 장면
   ========================================================== */
.jgrid { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: 72px; gap: 0; }
.jstick, .jsteps { grid-area: 1 / 1; }
.jstick { position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h)); min-height: 600px; align-self: start; z-index: 2;
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); gap: 72px; align-items: center; padding: 32px 0; flex-direction: initial; }
.jstage { position: relative; height: min(100%, 620px); min-height: 0; }
.jsteps { padding: 0; }
.jsteps > li { min-height: 0; height: 115vh; display: block; opacity: 0; visibility: hidden; pointer-events: none; }
.jsteps .st-body { position: static; padding: 0; }

/* 설명: 가운데 고정, 제자리 전환 */
.jtexts { display: flex; flex-direction: column; gap: 28px; }
.jprog { display: flex; align-items: center; gap: 16px; }
.jp-n { font-size: 14px; color: rgba(255,255,255,.45); white-space: nowrap; }
.jp-n b { font-size: 20px; font-weight: 700; color: #fff; }
.jp-bar { position: relative; flex: 1; height: 2px; border-radius: 2px; background: rgba(255,255,255,.12); overflow: hidden; }
.jp-bar i { position: absolute; inset: 0; background: var(--glow); transform-origin: left; transform: scaleX(0); transition: transform .25s linear; }
.jt-wrap { position: relative; min-height: 330px; }
.jt { position: absolute; inset: 0 0 auto 0; opacity: 0; transform: translateY(18px); transition: opacity .5s var(--ease), transform .6s var(--ease); pointer-events: none; }
.jt.is-on { opacity: 1; transform: none; pointer-events: auto; transition-delay: .08s; }
.jt h3 { margin-top: 16px; font-size: 38px; line-height: 1.22; font-weight: 700; letter-spacing: -0.03em; color: #fff; }
.jt h3 small { display: block; margin-top: 6px; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: rgba(255,255,255,.45); }
.jt .st-desc { margin-top: 18px; }
.jt .st-own { margin-top: 20px; }
.jt .st-links { margin-top: 18px; }

/* 장면: 모두 무대 가운데 정렬, 빈 공간 없이 */
.jstage .jscene { display: flex; align-items: center; }
.jstage .jscene > .scene { height: auto; width: 100%; }
.jstage .sc-inbox .jw, .jstage .sc-crm .jw, .jstage .sc-loop .jw { height: auto; }
.sc-inbox .inbox { min-height: 400px; }
.sc-loop { display: flex; flex-direction: column; gap: 14px; }

/* 01 관심 */
.sc-gm { display: flex; flex-direction: column; gap: 16px; }
.sc-gm .reels { position: static; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; inset: auto; }
.sc-gm .reel { width: auto; margin-top: 0 !important; }
.kpi-row { display: grid; grid-template-columns: 1.15fr 1fr 1.1fr; gap: 12px; }
.kpi-row .kpi { position: static; width: auto; }
.kpi-row .kpi > b { font-size: 26px; }
.kpi-row .kpi > em { display: block; margin-top: 2px; font-style: normal; font-size: 11.5px; color: rgba(255,255,255,.45); }
.kpi.rep { display: flex; align-items: center; gap: 12px; }
.kpi.rep .bot { flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--brand); display: inline-flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; color: #fff; }
.kpi.rep p { display: flex; flex-direction: column; gap: 2px; }
.kpi.rep b { font-size: 14px; } .kpi.rep em { font-style: normal; font-size: 11.5px; color: rgba(255,255,255,.5); }

/* 04 한국 */
.sc-kr { display: flex; flex-direction: column; gap: 12px; }
.kr-grid { display: grid; grid-template-columns: 1.6fr 1fr; grid-template-rows: 190px 190px; gap: 12px; }
.sc-kr .ph { position: relative; inset: auto; width: auto; height: auto; }
.sc-kr .ph-car { grid-row: 1 / 3; }
.sc-kr .stay-card { position: static; width: auto; }

/* 05 회복 */
.sc-rec .phone { height: 560px; max-height: none; }

/* 06 클리닉: 3곳 자동 전환 */
.sc-clinic { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); grid-template-rows: none; gap: 14px; height: 520px; }
.cl-main { position: relative; border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: var(--night-2); }
.cl-main .cl-ph { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .9s var(--ease); }
.cl-main .cl-ph.is-on { opacity: 1; }
.cl-main .cl-ph img { width: 100%; height: 100%; object-fit: cover; }
.cl-main figcaption { position: absolute; left: 16px; right: 16px; bottom: 20px; display: flex; flex-direction: column; gap: 3px; color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.45); }
.cl-main .cl-ph::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(0deg, rgba(7,9,15,.75), transparent); }
.cl-main figcaption { z-index: 1; }
.cl-main figcaption b { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.cl-main figcaption span { font-size: 13px; color: rgba(255,255,255,.8); }
.cl-bar { position: absolute; left: 16px; right: 16px; bottom: 10px; height: 2px; border-radius: 2px; background: rgba(255,255,255,.25); overflow: hidden; z-index: 2; }
.cl-bar i { position: absolute; inset: 0; background: #fff; transform-origin: left; animation: cl-prog 3.2s linear; }
@keyframes cl-prog { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.cl-side { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.cl-count { display: flex; align-items: baseline; gap: 8px; padding: 4px 2px 0; }
.cl-count b { font-size: 44px; line-height: 1; font-weight: 700; color: #fff; }
.cl-count span { font-size: 14px; color: rgba(255,255,255,.6); }
.cl-list { display: flex; flex-direction: column; gap: 6px; }
.cl-list button { width: 100%; text-align: left; display: flex; justify-content: space-between; align-items: baseline; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--night-line); background: rgba(255,255,255,.03); color: rgba(255,255,255,.55); transition: all .35s var(--ease); }
.cl-list b { font-size: 15px; font-weight: 700; }
.cl-list span { font-size: 12px; }
.cl-list li.is-on button { color: #fff; border-color: rgba(124,139,255,.7); background: rgba(124,139,255,.14); }
.cl-mini { flex: 1; min-height: 0; border-radius: 14px; border: 1px solid var(--night-line); background: rgba(255,255,255,.02); overflow: hidden; }
.cl-mini svg { width: 100%; height: 100%; display: block; }
.cm-pin circle { fill: rgba(255,255,255,.35); transition: fill .35s var(--ease), r .35s var(--ease); }
.cm-pin text { fill: rgba(255,255,255,.5); font-size: 22px; font-weight: 700; text-anchor: middle; font-family: var(--font); transition: fill .35s var(--ease); }
.cm-pin.is-on circle { fill: #fff; stroke: rgba(124,139,255,.7); stroke-width: 10; }
.cm-pin.is-on text { fill: #fff; }

/* 태블릿·모바일: 기존처럼 구간마다 장면을 세로로 */
@media (max-width: 1100px) {
  .jstick { display: none; }
  .jsteps > li { height: auto; opacity: 1; visibility: visible; pointer-events: auto; padding: 44px 0; }
  .jsteps > li + li { border-top: 1px solid var(--night-line); }
  .jscene.is-inline { height: auto !important; margin-bottom: 24px; }
  .jscene.is-inline .scene { height: auto; }
  .jscene.is-inline .jw { height: auto; }
  .jsteps h3 { font-size: 26px; }
  .sc-clinic { height: auto; grid-template-columns: minmax(0, 1fr); }
  .cl-main { aspect-ratio: 4 / 3; }
  .cl-mini { height: 150px; flex: none; }
  .sc-rec .phone { height: 440px; }
}
@media (max-width: 809px) {
  .sc-gm .reels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sc-gm .reel:nth-child(n+4) { display: none; }
  .kpi-row { grid-template-columns: 1fr 1fr; }
  .kpi-row .kpi.rep { grid-column: 1 / -1; }
  .kr-grid { grid-template-rows: 150px 150px; }
  .cl-count b { font-size: 34px; }
}
@media (prefers-reduced-motion: reduce) { .cl-bar i { animation: none; transform: scaleX(1); } .cl-main .cl-ph, .jt { transition: none; } }

/* 사업 지도 */
.ud { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: none; }
.u-gm { background: #1400FF; } .u-mt { background: #7C2629; } .u-co { background: #0F9D7A; }
.um-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.um-card { position: relative; display: flex; flex-direction: column; padding: 28px 26px 24px; border-radius: 20px; background: #fff; border: 1px solid var(--line); transition: border-color .3s var(--ease), box-shadow .3s var(--ease), opacity .3s var(--ease), transform .3s var(--ease); outline: none; }
.um-card:hover, .um-card:focus-visible { border-color: #C9CFD8; box-shadow: 0 20px 40px -20px rgba(5,17,45,.25); transform: translateY(-3px); }
.um-tag { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--caption); }
.um-card h3 { margin-top: 14px; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; }
.um-card h3 small { display: block; margin-top: 4px; font-size: 15px; font-weight: 600; color: var(--muted); letter-spacing: -0.01em; }
.um-facts { margin-top: 20px; border-top: 1px solid var(--line); }
.um-facts div { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.um-facts dt { font-size: 13px; color: var(--caption); }
.um-facts dd { font-size: 14.5px; font-weight: 600; color: var(--ink-2); }
.um-desc { margin-top: 16px; font-size: 15px; line-height: 1.65; color: var(--muted); flex: 1; }
.um-num { margin-top: 18px; display: flex; align-items: baseline; gap: 10px; }
.um-num b { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; white-space: nowrap; }
.um-num span { font-size: 13px; color: var(--caption); }
.um-card .more { margin-top: 16px; align-self: flex-start; }
.um-links { margin-top: 28px; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; padding-top: 24px; border-top: 1px solid var(--ink); }
.um-lh { font-size: 14.5px; font-weight: 700; color: var(--ink-2); padding-top: 12px; }
.um-links ul { display: grid; gap: 8px; }
.um-links li { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 12px; background: var(--surface-2); transition: background-color .3s var(--ease), opacity .3s var(--ease); }
.um-links li .arr { font-size: 12px; color: var(--caption); }
.um-links li p { margin-left: 8px; font-size: 15px; color: var(--ink-2); }
/* 연결 강조: 카드에 올리면 관련 연결만 밝게 */
.um-grid:has(.um-card:hover) .um-card:not(:hover) { opacity: .55; }
.unitmap:has(.um-card[data-u="gm"]:hover) .um-links li:not([data-a="gm"]):not([data-b="gm"]),
.unitmap:has(.um-card[data-u="mt"]:hover) .um-links li:not([data-a="mt"]):not([data-b="mt"]),
.unitmap:has(.um-card[data-u="co"]:hover) .um-links li:not([data-a="co"]):not([data-b="co"]) { opacity: .3; }
.unitmap:has(.um-card:hover) .um-links li { background: #EEF0FF; }
@media (max-width: 1100px) { .um-grid { grid-template-columns: minmax(0, 1fr); } .um-links { grid-template-columns: minmax(0, 1fr); gap: 8px; } }
@media (max-width: 809px) { .um-card { padding: 22px 18px; } .um-card h3 { font-size: 22px; } .um-links li { align-items: flex-start; } .um-links li p { font-size: 14px; } }

/* 히어로 지도: 사업별 색 (사업 지도 카드와 같은 색) */
:root { --c-gm: #8F9BFF; --c-mt: #F07E8C; --c-co: #3DD6A8; }
.geo .route.mt { stroke: var(--c-mt); stroke-width: 2.2; stroke-dasharray: 1; }
.motion .geo .route.mt { stroke-dashoffset: 1; }
.motion.is-ready .geo .route.mt { stroke-dashoffset: 0; }
.geo .flow.mt { stroke: #FFD3D9; }
.geo .mt-src { fill: var(--c-mt); stroke: rgba(240,126,140,.35); stroke-width: 10; }
.geo .inbound { stroke: rgba(143,155,255,.45); }
.geo .flow.in { stroke: #C9CFFF; }
.pin.clinic i { background: var(--c-co); box-shadow: 0 0 0 4px rgba(61,214,168,.3), 0 0 18px 4px rgba(61,214,168,.5); }
.pin.clinic i::after { border-color: rgba(61,214,168,.8); }
.pin.clinic time { color: var(--c-co); }
.geo-region b { color: #FFC4CC; }
.geo-legend { gap: 8px; }
.geo-legend b { font-weight: 700; color: #fff; margin-right: 4px; }
.geo-legend i { width: 20px; }
.geo-legend .lg-co { width: 10px; height: 10px; border: 0; border-radius: 50%; background: var(--c-co); margin: 0 5px; }
.geo-legend .lg-mt { border-top: 2px solid var(--c-mt); }
.geo-legend .lg-gm { border-top: 2px dashed var(--c-gm); }

/* 히어로 지도 단순화 (2026-09-29): 위치만, 라벨은 반투명 배경 */
.hero-map .pin p { background: rgba(7, 9, 15, 0.72); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 6px 10px 7px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.hero-map .pin b { font-size: 14px; }
.hero-map .pin span { color: rgba(255,255,255,0.62); }
.hero-map .pin.r p { left: 18px; top: -22px; }
.hero-map .pin.l p { right: 18px; top: -58px; }
.hero-map .pin.b p { right: auto; left: -40px; top: 18px; text-align: left; align-items: flex-start; }
.hero-map .pin.r2 p { left: 18px; top: 8px; }
.hero-map .geo-card { top: 26%; }

/* 사업 카드 v2: 사진 + 이름 + 누가→어디로 */
.um-card { padding: 0; overflow: hidden; border-radius: 20px; background: #fff; }
.um-card figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: #ECEEF2; }
.um-card figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform .8s var(--ease); }
.um-card:hover figure img { transform: scale(1.04); }
.um-card .um-tag { padding: 22px 24px 0; }
.um-card h3 { margin-top: 8px; padding: 0 24px; font-size: 26px; }
.um-flow { margin: 18px 24px 24px; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 14px; background: var(--surface-2); }
.um-flow span { font-size: 16px; font-weight: 700; color: var(--ink); letter-spacing: -0.02em; white-space: nowrap; }
.um-flow i { flex: 1; height: 2px; min-width: 24px; position: relative; background: currentColor; }
.um-flow i::after { content: ""; position: absolute; right: -1px; top: -4px; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.um-card[data-u="gm"] .um-flow { color: #1400FF; } .um-card[data-u="mt"] .um-flow { color: #7C2629; } .um-card[data-u="co"] .um-flow { color: #0F9D7A; }
.um-grid:has(.um-card:hover) .um-card:not(:hover) { opacity: 1; }
@media (max-width: 1100px) and (min-width: 810px) { .um-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .um-flow { flex-direction: column; align-items: flex-start; gap: 6px; } .um-flow i { width: 2px; height: 16px; min-width: 0; flex: none; margin-left: 8px; } .um-flow i::after { right: -4px; top: auto; bottom: -1px; transform: rotate(135deg); } }

/* 상담 장면 v2: AI 상담 → 가능성 판단 → 담당자 연결 */
.threads p > span.st-ai, .threads p > span.st-hot, .threads p > span.st-done { align-self: flex-start; margin-top: 3px; font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px; }
.st-ai { background: #EEF0FF; color: var(--brand) !important; }
.st-hot { background: #FFF1E6; color: #C2570C !important; }
.st-done { background: #F1F3F6; color: var(--slate) !important; }
.js-journey .threads [data-at] { opacity: 1; transform: none; }
.js-journey .threads [data-at]:not(.on) { display: none; }
.bub.me.ai { background: #EEF0FF; border-color: #DADFFF; }
.handoff { align-self: stretch; border: 1.5px solid #F5B98B; background: #FFF8F2; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.ho-h { display: flex; align-items: center; gap: 8px; }
.ho-score { font-size: 11px; font-weight: 700; color: #fff; background: #E8772E; padding: 3px 8px; border-radius: 999px; }
.ho-h b { font-size: 13.5px; }
.ho-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ho-tags span { font-size: 11.5px; font-weight: 600; color: var(--ink-2); background: #fff; border: 1px solid #F1D9C6; padding: 3px 8px; border-radius: 999px; }
.handoff .send { align-self: flex-end; }
.sent .handoff .send { display: none; }
.sent .handoff { border-color: #BFE8D4; background: #F2FBF7; }

/* 릴스 영상 */
.reel video { width: 100%; height: 100%; object-fit: cover; display: block; }
.handoff .send { font-size: 12px; font-weight: 700; color: #fff; background: #E8772E; padding: 7px 14px; border-radius: 999px; box-shadow: 0 0 0 0 rgba(232,119,46,.5); animation: pulse-o 1.8s infinite; }
@keyframes pulse-o { 70% { box-shadow: 0 0 0 10px rgba(232,119,46,0); } 100% { box-shadow: 0 0 0 0 rgba(232,119,46,0); } }
@media (prefers-reduced-motion: reduce) { .handoff .send { animation: none; } }
.um-card[data-u="gm"] figure img { object-position: 50% 45%; }

/* 히어로 지도 v3: 메시지 하나 = 두 나라에서 직접 운영 */
.hero-map .pin p { background: none; border: 0; padding: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
.hero-map .pin span:empty { display: none; }
.hero-map .pin b { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85); }
.hero-map .pin.r p { left: 14px; top: -9px; }
.hero-map .pin.l p { right: 14px; top: -24px; }
.hero-map .pin.b p { left: -30px; top: 12px; }
.hero-map .pin.r2 p { left: 14px; top: 2px; }
.cc-card { position: absolute; z-index: 2; min-width: 230px; padding: 18px 20px; border-radius: 16px; background: rgba(14, 18, 30, .78); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; }
.cc-n { font-size: 12px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--glow); }
.cc-v { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.cc-v b { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.cc-v span { font-size: 13px; color: rgba(255,255,255,.62); }
.motion .geo .cc-card { opacity: 0; transform: translateY(12px); transition: opacity .9s var(--ease) 1.5s, transform .9s var(--ease) 1.5s; }
.motion.is-ready .geo .cc-card { opacity: 1; transform: none; }
.motion .geo .cc-card.id { transition-delay: 1.75s; }
@media (max-width: 1100px) { .cc-card { min-width: 0; padding: 12px 14px; } .cc-v b { font-size: 18px; } }
@media (max-width: 809px) { .cc-card { padding: 10px 12px; } .cc-v span { display: none; } .cc-v b { font-size: 16px; } .hero-map .pin b { font-size: 11px; } }

/* ==========================================================
   Home v5 (2026-09-29): 인도네시아 중심 히어로
   ========================================================== */
.hero-id { background: var(--night); color: #fff; min-height: 100svh; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; isolation: isolate; }
.hero-id::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(55% 60% at 68% 55%, rgba(60,76,255,.16), transparent 70%); }
.hero-id-grid { position: relative; z-index: 3; flex: 1; display: flex; align-items: center; padding-top: calc(var(--header-h) + 40px); padding-bottom: 32px; pointer-events: none; }
.hero-id-grid .hero-copy { max-width: 470px; pointer-events: auto; }
.hero-kicker { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--glow); }
.hero-id h1 { margin-top: 18px; font-size: 58px; line-height: 1.14; font-weight: 700; letter-spacing: -0.035em; }
.hero-id .lede { margin-top: 22px; font-size: 17px; line-height: 1.65; color: rgba(255,255,255,.66); }
.hero-id .btn-row { margin-top: 32px; }
.idmap { position: absolute; z-index: 1; margin: 0; right: -2%; top: calc(var(--header-h) + 10px); width: 70%; aspect-ratio: 1400 / 760; }
.idmap > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 92%, transparent 100%); }
.im-base { stroke: #1C2231; stroke-width: 4.2; stroke-linecap: round; fill: none; }
.im-hi { stroke: #5D6CC4; stroke-width: 4.2; stroke-linecap: round; fill: none; }
.im-kr { fill: none; stroke: var(--glow); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0; }
.im-gl { fill: none; stroke: rgba(143,155,255,.6); stroke-width: 1.6; stroke-dasharray: 5 7; }
.im-hub { fill: #fff; stroke: rgba(124,139,255,.5); stroke-width: 10; }
.im-label { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 3px; pointer-events: none; }
.im-label b { font-size: 13px; font-weight: 700; letter-spacing: .3em; color: #C9CFFF; }
.im-label span { font-size: 12.5px; color: rgba(255,255,255,.6); }
.ip { position: absolute; z-index: 2; width: 0; height: 0; }
.ip > i { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px rgba(124,139,255,.3), 0 0 20px 6px rgba(124,139,255,.55); }
.ip > i::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid rgba(124,139,255,.7); animation: geo-ping 2.8s var(--ease) infinite; }
.ip-n { position: absolute; left: -40px; top: 14px; width: 80px; text-align: center; font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,.8); }
.ip[data-i="1"] .ip-n { left: -64px; } .ip[data-i="2"] .ip-n { left: -8px; top: 12px; }
.ip-ph { position: absolute; left: 50%; bottom: 20px; width: 170px; margin: 0 0 0 -85px; border-radius: 12px; overflow: hidden; background: var(--night-2); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 18px 40px -10px rgba(0,0,0,.7);
  opacity: 0; transform: translateY(8px) scale(.94); transform-origin: bottom center; transition: opacity .6s var(--ease), transform .7s var(--ease); pointer-events: none; }
.ip-ph img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ip-ph figcaption { display: flex; justify-content: space-between; align-items: baseline; padding: 7px 10px 8px; }
.ip-ph b { font-size: 12.5px; } .ip-ph span { font-size: 11px; color: rgba(255,255,255,.55); }
.ip.is-on .ip-ph { opacity: 1; transform: none; }
.ip.is-on { z-index: 4; }
.kr-inset { position: absolute; z-index: 2; right: 5%; top: -2%; width: 21%; padding: 10px 12px 12px; border-radius: 16px; border: 1px solid rgba(255,255,255,.12); background: rgba(10,13,22,.7); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.kr-inset svg { display: block; width: 100%; height: auto; }
.kr-inset .im-base, .kr-inset .im-hi { stroke-width: 3.2; }
.im-seoul { fill: #fff; stroke: rgba(124,139,255,.55); stroke-width: 9; }
.kr-inset p { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.kr-inset b { font-size: 14px; } .kr-inset span { font-size: 11.5px; color: rgba(255,255,255,.6); }
.gl-label { position: absolute; z-index: 2; right: 2%; top: 44%; display: flex; flex-direction: column; gap: 2px; text-align: right; }
.gl-label b { font-size: 14px; } .gl-label span { font-size: 11.5px; color: rgba(255,255,255,.6); }
.hero-id .hero-stats { position: relative; z-index: 3; border-top: 1px solid var(--night-line); background: linear-gradient(0deg, var(--night) 60%, rgba(7,9,15,0)); }
.hero-id .hero-stats dl { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hero-id .hero-stats dl > div + div { border-left-color: var(--night-line); }
.hero-id .hero-stats dd { font-size: 30px; }
.hero-id .hero-stats dt { color: rgba(255,255,255,.55); }
/* 등장 */
.motion .idmap .im-base, .motion .idmap .im-hi { opacity: 0; transition: opacity 1.6s ease .1s; }
.motion .idmap .im-kr { stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s var(--ease) 1s; }
.motion .idmap .im-gl, .motion .idmap .im-label, .motion .kr-inset, .motion .gl-label, .motion .ip { opacity: 0; transition: opacity .9s var(--ease) 1.4s; }
.motion.is-ready .idmap .im-base, .motion.is-ready .idmap .im-hi, .motion.is-ready .idmap .im-gl, .motion.is-ready .idmap .im-label, .motion.is-ready .kr-inset, .motion.is-ready .gl-label, .motion.is-ready .ip { opacity: 1; }
.motion.is-ready .idmap .im-kr { stroke-dashoffset: 0; }
@media (max-width: 1100px) {
  .hero-id h1 { font-size: 46px; }
  .idmap { width: 92%; right: -18%; top: auto; bottom: 120px; opacity: .9; }
  .hero-id-grid { align-items: flex-start; padding-top: calc(var(--header-h) + 56px); }
  .hero-id .hero-stats dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-id .hero-stats dl > div:nth-child(n+4) { display: none; }
}
@media (max-width: 809px) {
  .hero-id { min-height: 0; }
  .hero-id h1 { font-size: 34px; }
  .hero-id .lede { font-size: 15.5px; }
  .hero-kicker { font-size: 11px; }
  .idmap { position: relative; right: auto; bottom: auto; top: auto; width: 150%; margin: 16px 0 0 -30%; }
  .kr-inset { width: 30%; right: 18%; top: -10%; } .kr-inset span, .gl-label span, .im-label span { display: none; }
  .ip-ph { width: 120px; margin-left: -60px; } .ip-n { display: none; }
  .gl-label { right: 22%; }
  .hero-id .hero-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-id .hero-stats dl > div:nth-child(n+4) { display: none; }
}

/* 플랫폼 구조도 */
.pf2 { position: relative; display: flex; flex-direction: column; gap: 14px; padding-right: 72px; }
.pf2-row { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 20px; align-items: stretch; }
.pf2-l { display: flex; flex-direction: column; justify-content: center; gap: 4px; font-size: 17px; font-weight: 700; color: var(--ink); }
.pf2-l span { font-size: 12px; font-weight: 700; color: var(--brand); font-variant-numeric: tabular-nums; }
.pf2-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pf2-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "where num" "name num" "what num"; gap: 4px 24px; align-items: center; padding: 24px 26px; border-radius: 18px; background: #fff; border: 1px solid var(--line); transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease); }
a.pf2-card:hover { border-color: #C9CFD8; box-shadow: 0 20px 40px -22px rgba(5,17,45,.3); transform: translateY(-2px); }
.pf2-where { grid-area: where; font-size: 12.5px; font-weight: 700; color: var(--brand); }
.pf2-name { grid-area: name; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.pf2-what { grid-area: what; font-size: 14.5px; line-height: 1.6; color: var(--muted); }
.pf2-num { grid-area: num; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; }
.pf2-num b { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; white-space: nowrap; }
.pf2-num span { font-size: 12px; color: var(--caption); white-space: nowrap; }
.pf2-pair .pf2-card { grid-template-columns: minmax(0, 1fr); grid-template-areas: "where" "name" "what" "num"; }
.pf2-pair .pf2-num { align-items: flex-start; text-align: left; margin-top: 12px; }
.pf2-card.data { background: var(--night); border-color: var(--night); color: #fff; }
.pf2-card.data .pf2-what { color: rgba(255,255,255,.62); } .pf2-card.data .pf2-num b { color: #fff; } .pf2-card.data .pf2-num span { color: rgba(255,255,255,.5); }
.pf2-loop { position: absolute; right: 0; top: 40px; bottom: 40px; width: 56px; }
.pf2-loop i { position: absolute; inset: 0 auto 0 0; width: 28px; border: 2px solid var(--brand); border-left: 0; border-radius: 0 18px 18px 0; }
.pf2-loop i::after { content: ""; position: absolute; left: -2px; top: -6px; width: 10px; height: 10px; border-left: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(45deg); }
.pf2-loop span { position: absolute; left: 38px; top: 50%; width: 180px; transform: translateY(-50%) rotate(90deg); transform-origin: left center; font-size: 12.5px; font-weight: 600; color: var(--brand); white-space: nowrap; margin-left: -90px; margin-top: -90px; }
@media (max-width: 1100px) { .pf2 { padding-right: 0; } .pf2-loop { display: none; } }
@media (max-width: 809px) {
  .pf2-row { grid-template-columns: 1fr; gap: 8px; }
  .pf2-l { flex-direction: row; align-items: baseline; gap: 8px; font-size: 15px; }
  .pf2-pair { grid-template-columns: 1fr; }
  .pf2-card { grid-template-columns: 1fr; grid-template-areas: "where" "name" "what" "num"; padding: 20px; }
  .pf2-num { align-items: flex-start; text-align: left; margin-top: 10px; }
}

/* 여정 04: 컨시어지 */
.sc-kr2 { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 20px; align-items: center; }
.cg-video { position: relative; margin: 0; aspect-ratio: 9 / 16; max-height: 580px; border-radius: 20px; overflow: hidden; background: var(--night-2); border: 1px solid rgba(255,255,255,.12); }
.cg-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.cg-video figcaption { position: absolute; left: 12px; top: 12px; font-size: 12px; font-weight: 600; color: #fff; background: rgba(8,12,22,.6); backdrop-filter: blur(6px); padding: 5px 10px; border-radius: 999px; }
.cg-side { display: flex; flex-direction: column; gap: 14px; }
.cg-h { display: flex; justify-content: space-between; align-items: baseline; }
.cg-h b { font-size: 16px; color: #fff; } .cg-h span { font-size: 12.5px; color: rgba(255,255,255,.5); }
.cg-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cg-list li { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--night-line); background: rgba(255,255,255,.03); }
.js-journey .cg-list li[data-at] { opacity: .35; transform: none; }
.js-journey .cg-list li[data-at].on { opacity: 1; border-color: rgba(124,139,255,.55); background: rgba(124,139,255,.1); }
.cg-list b { font-size: 14px; color: #fff; } .cg-list span { font-size: 12px; color: rgba(255,255,255,.58); }
.cg-list li.on b::after { content: " ✓"; color: #8EF0B4; }
.cg-thumbs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cg-thumbs figure { margin: 0; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; }
.cg-thumbs img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1100px) { .sc-kr2 { grid-template-columns: minmax(0, 1fr); } .cg-video { max-height: 460px; aspect-ratio: 3 / 4; } }
@media (max-width: 809px) { .cg-list { grid-template-columns: 1fr; } .cg-thumbs { display: none; } }

/* ==========================================================
   B안 (2026-09-29): 한 화면 한 메시지
   ========================================================== */
.hb-hero { background: var(--night); min-height: 100svh; justify-content: flex-end; }
.hb-hero::before { z-index: 1; background: linear-gradient(0deg, rgba(7,9,15,.96) 0%, rgba(7,9,15,.55) 45%, rgba(7,9,15,.35) 100%); }
.hb-wall { position: absolute; inset: 0; z-index: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.hb-wall video { width: 100%; height: 100%; object-fit: cover; display: block; }
.hb-hero-copy { position: relative; z-index: 2; padding-bottom: 120px; }
.hb-hero h1 { margin-top: 20px; font-size: 64px; line-height: 1.2; letter-spacing: -0.035em; max-width: none; }
.hb-cue { position: absolute; z-index: 2; left: 50%; bottom: 32px; transform: translateX(-50%); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.hb-cue::after { content: ""; display: block; width: 1px; height: 36px; margin: 10px auto 0; background: linear-gradient(rgba(255,255,255,.6), transparent); }
.hb-state { padding: 200px 0; }
.hb-state h2 { font-size: 64px; line-height: 1.22; font-weight: 700; letter-spacing: -0.035em; }
.hb-state h2 em { font-style: normal; color: var(--brand); }
.hb-state p { margin-top: 28px; max-width: 34em; font-size: 20px; line-height: 1.6; color: var(--muted); }
.hb-nums { padding: 150px 0; }
.hb-nums dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hb-nums dl > div { padding: 0 32px; border-left: 1px solid var(--night-line); }
.hb-nums dl > div:first-child { padding-left: 0; border-left: 0; }
.hb-nums dd { margin: 0; font-size: 96px; line-height: 1; font-weight: 700; letter-spacing: -0.045em; color: #fff; white-space: nowrap; }
.hb-nums dd small { font-size: .32em; font-weight: 600; margin-left: 6px; letter-spacing: -0.01em; }
.hb-nums dt { margin-top: 20px; font-size: 18px; font-weight: 700; color: #fff; }
.hb-nums p { margin-top: 6px; font-size: 14.5px; color: rgba(255,255,255,.5); }
.hb-units-sec .pf2 { margin-bottom: 120px; }
.hb-units { display: flex; flex-direction: column; gap: 120px; }
.hbu { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 72px; align-items: center; }
.hbu.rev .hbu-media { order: 2; }
.hbu-media { border-radius: 24px; overflow: hidden; background: var(--night); aspect-ratio: 4 / 3; }
.hbu-img, .hbu-img img, .hbu-vid { width: 100%; height: 100%; }
.hbu-img img { object-fit: cover; }
.hbu-reels { width: 100%; height: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 24px; }
.hbu-reels video { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; }
.hbu-vid { display: flex; justify-content: center; background: #0E121C; }
.hbu-vid video { height: 100%; aspect-ratio: 9 / 16; object-fit: cover; }
.hbu-tag { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; color: var(--caption); }
.hbu-tag .num { color: var(--brand); font-weight: 700; }
.hbu h3 { margin-top: 16px; font-size: 40px; line-height: 1.25; font-weight: 700; letter-spacing: -0.035em; text-wrap: balance; }
.hbu-desc { margin-top: 18px; font-size: 17px; line-height: 1.7; color: var(--muted); }
.hbu-facts { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); }
.hbu-facts div { padding: 18px 16px 0 0; }
.hbu-facts div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.hbu-facts dd { margin: 0; font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; white-space: nowrap; }
.hbu-facts dt { margin-top: 4px; font-size: 13px; color: var(--caption); }
.hbu .more { margin-top: 26px; }
.hb-tl { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.hb-tl li { position: relative; padding: 28px 16px 0 0; display: flex; flex-direction: column; gap: 6px; }
.hb-tl li::before { content: ""; position: absolute; left: 0; top: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--ink); }
.hb-tl li:last-child::before { background: var(--brand); box-shadow: 0 0 0 5px rgba(20,0,255,.15); }
.hb-tl .y { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; }
.hb-tl b { margin-top: 8px; font-size: 15.5px; line-height: 1.45; }
.hb-tl .d { font-size: 13.5px; color: var(--caption); }
.hb-global .idmap { position: relative; right: auto; top: auto; width: 100%; margin: 0; }
.hb-global .idmap > svg { -webkit-mask-image: none; mask-image: none; }
.hb-global .ip.is-on .ip-ph { opacity: 1; transform: none; }
@media (max-width: 1100px) {
  .hb-hero h1, .hb-state h2 { font-size: 46px; }
  .hb-nums dd { font-size: 64px; }
  .hbu { gap: 40px; } .hbu h3 { font-size: 32px; }
  .hb-tl { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 32px; }
  .hb-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hb-wall video:nth-child(n+4) { display: none; }
}
@media (max-width: 809px) {
  .hb-hero h1, .hb-state h2 { font-size: 30px; }
  .hb-hero-copy { padding-bottom: 96px; }
  .hb-state { padding: 110px 0; } .hb-state p { font-size: 16px; }
  .hb-nums { padding: 90px 0; }
  .hb-nums dl { grid-template-columns: 1fr; gap: 36px; }
  .hb-nums dl > div { padding: 0; border-left: 0; }
  .hb-nums dd { font-size: 60px; }
  .hbu, .hbu.rev { grid-template-columns: 1fr; gap: 24px; } .hbu.rev .hbu-media { order: 0; }
  .hb-units { gap: 72px; } .hb-units-sec .pf2 { margin-bottom: 72px; }
  .hbu h3 { font-size: 26px; }
  .hb-tl { grid-template-columns: 1fr 1fr; }
  .hb-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hb-wall video:nth-child(n+3) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hb-wall video, .hbu video { display: none; } .hb-wall { background: url("../video/reel1.jpg") center / cover; } }
.logo { display: inline-flex; align-items: center; }
.logo-svg { height: 20px; width: auto; display: block; }
@media (max-width: 809px) { .logo-svg { height: 17px; } }
/* 자동 재생이 막혔을 때 재생 버튼 */
.reel.needs-tap::after, .cg-video.needs-tap::after { content: ""; position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: rgba(8,12,22,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='white'/%3E%3C/svg%3E") 55% 50% / 22px no-repeat; backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.35); cursor: pointer; z-index: 2; }
.reel { position: relative; }

/* 히어로 지도 정돈: 사진은 호버에만 은은하게, 인셋은 화면 안에 */
.idmap { right: 0; width: 64%; }
.kr-inset { right: 2%; top: 0; width: 20%; }
.gl-label { right: 1.5%; top: 47%; }
.ip { cursor: default; outline: none; }
.ip > i { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.ip:hover > i, .ip:focus-visible > i { transform: scale(1.25); }
.ip-ph { width: 150px; margin-left: -75px; bottom: 22px; border-radius: 10px; border-color: rgba(255,255,255,.12); background: rgba(10,13,22,.8); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 12px 30px -12px rgba(0,0,0,.6); opacity: 0; transform: translateY(6px); transition: opacity .6s ease, transform .8s var(--ease); }
.ip-ph img { opacity: .92; }
.ip.is-on .ip-ph { opacity: 0; transform: translateY(6px); }
.ip:hover .ip-ph, .ip:focus-visible .ip-ph { opacity: 1; transform: none; }
.ip:hover, .ip:focus-visible { z-index: 5; }
.ip-n { text-shadow: 0 1px 8px rgba(7,9,15,.9), 0 0 2px rgba(7,9,15,.9); }
@media (hover: none) { .ip-ph { display: none; } }
@media (min-width: 1101px) { .idmap { top: 50%; transform: translateY(-56%); width: 66%; } }
.gl-label, .kr-inset p { text-shadow: 0 1px 8px rgba(7,9,15,.95); }
.gl-label { background: rgba(7,9,15,.55); padding: 6px 10px; border-radius: 8px; }
.ip::before { content: ""; position: absolute; left: -22px; top: -22px; width: 44px; height: 44px; border-radius: 50%; }
.ip-n { pointer-events: auto; }

/* C안: 운영 콘솔 히어로 */
.hc-hero { background: var(--night); min-height: 0; display: block; padding-bottom: 96px; }
.hc-hero::before { background: radial-gradient(60% 50% at 50% 30%, rgba(60,76,255,.22), transparent 70%); z-index: 0; }
.hc-top { position: relative; z-index: 1; padding-top: calc(var(--header-h) + 88px); text-align: center; display: flex; flex-direction: column; align-items: center; }
.hc-top h1 { margin-top: 18px; font-size: 60px; line-height: 1.18; letter-spacing: -0.035em; max-width: none; }
.hc-top .lede { margin-top: 20px; font-size: 18px; color: rgba(255,255,255,.66); max-width: 32em; }
.hc-top .btn-row { margin-top: 30px; justify-content: center; }
.hc-console { position: relative; z-index: 1; margin-top: 64px; }
.hc-tabs { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.hc-tabs button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 16px; border-radius: 12px; border: 1px solid var(--night-line); color: rgba(255,255,255,.55); background: rgba(255,255,255,.03); transition: all .3s var(--ease); position: relative; overflow: hidden; }
.hc-tabs b { font-size: 14.5px; } .hc-tabs span { font-size: 11px; opacity: .7; }
.hc-tabs button[aria-selected="true"] { color: #fff; border-color: rgba(124,139,255,.6); background: rgba(124,139,255,.14); }
.hc-tabs button::before { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--glow); transform: scaleX(0); transform-origin: left; }
[data-tabs].is-playing .hc-tabs button[aria-selected="true"]::before { animation: pf-progress var(--pf-dur, 7s) linear forwards; }
.hc-stage { max-width: 1120px; margin: 0 auto; border-radius: 24px; padding: 28px; background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); border: 1px solid var(--night-line); box-shadow: 0 40px 120px -30px rgba(40,50,200,.35); min-height: 560px; }
.cpanel { animation: pf-in .45s var(--ease); }
.cpanel .scene { height: auto; }
.cpanel .jw { height: auto; }
.cpanel .sc-clinic { height: 500px; }
.hc-units { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cu { display: flex; flex-direction: column; padding: 28px; border-radius: 20px; border: 1px solid var(--line); background: #fff; transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease); }
.cu:hover { border-color: #C9CFD8; box-shadow: 0 20px 40px -22px rgba(5,17,45,.3); transform: translateY(-2px); }
.cu-tag { font-size: 12.5px; font-weight: 700; color: var(--brand); }
.cu h3 { margin-top: 10px; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.cu-d { margin-top: 8px; font-size: 15px; color: var(--muted); line-height: 1.6; flex: 1; }
.cu-n { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; align-items: baseline; gap: 10px; }
.cu-n b { font-size: 32px; font-weight: 700; letter-spacing: -0.02em; }
.cu-n span { font-size: 13px; color: var(--caption); }
@media (max-width: 1100px) { .hc-top h1 { font-size: 44px; } .hc-units { grid-template-columns: 1fr; } }
@media (max-width: 809px) { .hc-top h1 { font-size: 30px; } .hc-top { padding-top: calc(var(--header-h) + 48px); } .hc-stage { padding: 12px; min-height: 0; } .hc-tabs { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; } .hc-tabs button { flex: none; } }

/* 시안 비교 페이지 */
.cmp-page { padding: calc(var(--header-h) + 64px) 0 80px; }
.cmp-page h1 { font-size: 40px; font-weight: 700; letter-spacing: -0.03em; }
.cmp-grid { margin-top: 36px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cmp-item { display: flex; flex-direction: column; gap: 6px; }
.cmp-frame { position: relative; aspect-ratio: 1440 / 900; overflow: hidden; border-radius: 14px; border: 1px solid var(--line); background: #000; }
.cmp-frame iframe { position: absolute; left: 0; top: 0; width: 1440px; height: 900px; border: 0; transform-origin: 0 0; pointer-events: none; }
.cmp-item b { margin-top: 8px; font-size: 16px; } .cmp-item span { font-size: 13.5px; color: var(--muted); line-height: 1.5; }
.cmp-item:hover b { color: var(--brand); }
@media (max-width: 1100px) { .cmp-grid { grid-template-columns: 1fr; } }
.cpanel .reel { opacity: 1; transform: none; }
.cpanel .reel .bar i { animation: reel-play 5s linear infinite; }
.cpanel .spark path, .cpanel [data-draw] { stroke-dashoffset: 0; }
.cpanel .pipe { --col: 2; }
.cpanel .bub.draft, .cpanel .typing { display: none; }

/* 구조도 v3: 얇은 상자 + 화살표 + 순환선 */
.pd { display: grid; grid-template-columns: 80px minmax(0, 1fr) 120px minmax(0, 1fr) 130px; grid-template-rows: auto 56px auto 56px auto; align-items: center; column-gap: 0; }
.pd-l { font-size: 14px; font-weight: 600; color: var(--caption); letter-spacing: .02em; }
.pd-l.r1 { grid-area: 1 / 1; } .pd-l.r2 { grid-area: 3 / 1; } .pd-l.r3 { grid-area: 5 / 1; }
.pd-n { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "sm num" "b num" "sp num"; column-gap: 20px; row-gap: 2px; align-items: center; padding: 20px 24px; border-radius: 14px; border: 1px solid #D5DAE2; background: #fff; transition: border-color .3s var(--ease), box-shadow .3s var(--ease); }
a.pd-n:hover { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(20,0,255,.06); }
.pd-n small { grid-area: sm; font-size: 12px; font-weight: 700; color: var(--brand); }
.pd-n b { grid-area: b; font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.pd-n span { grid-area: sp; font-size: 14px; color: var(--muted); line-height: 1.5; }
.pd-n em { grid-area: num; font-style: normal; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; color: #06121F; white-space: nowrap; }
.n-gm { grid-area: 1 / 2 / 2 / 5; }
.n-mt { grid-area: 3 / 2; } .n-co { grid-area: 3 / 4; }
.n-crm { grid-area: 5 / 2 / 6 / 5; background: var(--night); border-color: var(--night); color: #fff; }
.n-crm span { color: rgba(255,255,255,.6); } .n-crm em { color: #fff; }
.pd-a { position: relative; height: 100%; justify-self: center; width: 2px; background: #AEB7C4; }
.pd-a::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 8px; height: 8px; margin-left: -4px; border-right: 2px solid #AEB7C4; border-bottom: 2px solid #AEB7C4; transform: rotate(45deg); }
.pd-a.a1 { grid-area: 2 / 2; } .pd-a.a2 { grid-area: 2 / 4; } .pd-a.a3 { grid-area: 4 / 2; } .pd-a.a4 { grid-area: 4 / 4; }
.pd-side { grid-area: 3 / 3; position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pd-side i { position: relative; width: calc(100% - 16px); height: 0; border-top: 2px dashed var(--brand); }
.pd-side i::after { content: ""; position: absolute; right: -1px; top: -6px; width: 8px; height: 8px; border-top: 2px solid var(--brand); border-right: 2px solid var(--brand); transform: rotate(45deg); }
.pd-side span { margin-top: 8px; font-size: 12px; font-weight: 600; color: var(--brand); text-align: center; line-height: 1.35; }
.pd-loop { grid-area: 1 / 5 / 6 / 6; position: relative; height: 100%; display: flex; align-items: center; }
.pd-loop i { position: absolute; left: 0; top: 44px; bottom: 44px; width: 32px; border: 2px solid var(--brand); border-left: 0; border-radius: 0 16px 16px 0; }
.pd-loop i::after { content: ""; position: absolute; left: -2px; top: -6px; width: 9px; height: 9px; border-left: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(45deg); }
.pd-loop span { margin-left: 46px; font-size: 13px; font-weight: 600; color: var(--brand); line-height: 1.4; }
@media (max-width: 1100px) {
  .pd { grid-template-columns: 60px minmax(0, 1fr) 90px minmax(0, 1fr) 0; }
  .pd-loop { display: none; }
  .pd-n { grid-template-columns: 1fr; grid-template-areas: "sm" "b" "sp" "num"; } .pd-n em { margin-top: 8px; font-size: 20px; }
  .n-gm, .n-crm { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "sm num" "b num" "sp num"; } .n-gm em, .n-crm em { margin-top: 0; }
}
@media (max-width: 809px) {
  .pd { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 10px; }
  .pd-l { grid-area: auto !important; margin-top: 14px; }
  .pd-n, .n-gm, .n-mt, .n-co, .n-crm { grid-area: auto !important; }
  .pd-a, .pd-side { display: none; }
  .n-gm, .n-crm { grid-template-columns: 1fr; grid-template-areas: "sm" "b" "sp" "num"; } .n-gm em, .n-crm em { margin-top: 8px; }
}

/* 여정 속도: 구간마다 길이 다르게 */
@media (min-width: 1101px) { .jsteps > li { height: var(--len, 115vh); } }
/* CRM: 단계별 하단 내용 */
.pc { position: relative; transition: border-color .4s var(--ease), background-color .4s var(--ease); }
.pc.is-now { border-color: var(--brand); background: #F4F5FF; }
.pc.is-now p { color: var(--brand); }
.pc.is-done p::after { content: " ✓"; color: #11905A; }
.crm-detail { position: relative; min-height: 190px; border: 1px solid #E8EBF0; border-radius: 12px; background: #fff; }
.cd { position: absolute; inset: 0; padding: 16px 18px; opacity: 0; transform: translateY(8px); transition: opacity .5s var(--ease), transform .6s var(--ease); pointer-events: none; }
.cd.is-on { opacity: 1; transform: none; pointer-events: auto; }
.cd-h { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }
.cd-h .num { font-size: 11px; font-weight: 700; color: var(--brand); background: #EEF0FF; padding: 2px 7px; border-radius: 999px; }
.cd-kv { margin-top: 12px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cd-kv li { display: flex; flex-direction: column; gap: 3px; padding: 12px; border-radius: 10px; background: #F6F7FA; }
.cd-kv span, .cd-pay span { font-size: 11.5px; color: var(--caption); }
.cd-kv b, .cd-pay b { font-size: 14px; }
.cd-docs { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cd-docs div { display: flex; flex-direction: column; gap: 3px; padding: 14px; border-radius: 10px; border: 1.5px solid #E3E6EC; }
.cd-docs div.is-pick { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(20,0,255,.08); }
.cd-docs b { font-size: 15px; } .cd-docs span { font-size: 12px; color: var(--slate); }
.cd-event { margin-top: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "b em" "s em"; gap: 2px 16px; align-items: center; padding: 16px; border-radius: 10px; background: #FFF8F2; border: 1px solid #F1D9C6; }
.cd-event b { grid-area: b; font-size: 15px; } .cd-event span { grid-area: s; font-size: 12.5px; color: var(--slate); } .cd-event em { grid-area: em; font-style: normal; font-size: 12.5px; font-weight: 700; color: #11905A; }
.cd-pay { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cd-pay div { display: flex; flex-direction: column; gap: 3px; padding: 12px; border-radius: 10px; background: #F6F7FA; }
.cd-pay b.ok { color: #11905A; }
@media (max-width: 809px) { .cd-kv { grid-template-columns: 1fr 1fr; } .crm-detail { min-height: 230px; } }

/* CRM v3: 실제 칸반 구성 */
.pipe.kb { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.pipe.kb .pc { height: auto; min-height: 150px; padding: 8px; display: flex; flex-direction: column; gap: 6px; background: #F6F7FA; }
.pipe.kb .pc > p { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: var(--ink-2); white-space: nowrap; overflow: hidden; }
.pipe.kb .pc > p i { width: 6px; height: 6px; border-radius: 50%; background: #AEB7C4; flex: none; }
.pipe.kb .pc.is-now > p i { background: var(--brand); }
.kc { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 0 6px; align-items: center; background: #fff; border: 1px solid #E8EBF0; border-radius: 8px; padding: 6px 7px; }
.kc .av { grid-row: 1 / 3; width: 20px; height: 20px; border-radius: 50%; background: #EEF0FF; color: var(--brand); font-size: 9.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.kc b { font-size: 11px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kc time { font-size: 10px; color: #9AA3B2; }
.kc em { position: absolute; right: 5px; top: 5px; font-style: normal; font-size: 9px; font-weight: 700; padding: 1px 4px; border-radius: 4px; }
.kc em.nb { background: #FF5A5F; color: #fff; } .kc em.dd { background: #FFF1E6; color: #C2570C; }
.kc.rina { display: none; border: 1.5px solid var(--brand); box-shadow: 0 6px 14px -6px rgba(20,0,255,.4); }
.kc.rina time { color: var(--brand); font-weight: 600; }
.pc.is-now .kc.rina { display: grid; animation: pf-in .5s var(--ease); }
.pipe.kb .mover { display: none; }
.crm-detail { min-height: 210px; }
.cd-rec { margin-top: 12px; display: grid; gap: 0; border-top: 1px solid #EEF0F4; }
.cd-rec div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; padding: 10px 2px; border-bottom: 1px solid #F1F3F6; }
.cd-rec dt { font-size: 12px; color: var(--caption); } .cd-rec dd { margin: 0; font-size: 13.5px; font-weight: 600; }
.cd-rec dd.em { color: var(--brand); } .cd-rec dd.ok { color: #11905A; }
.cd-stay { margin-top: 10px; }
.cs-top { display: flex; gap: 6px; } .cs-top span { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px; }
.cs-top .c1 { background: #EEF0FF; color: var(--brand); } .cs-top .c2 { background: #FFF1E6; color: #C2570C; }
.cs-io { margin: 8px 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; text-align: center; }
.cs-io p { display: flex; flex-direction: column; } .cs-io span { font-size: 10.5px; color: var(--caption); } .cs-io b { font-size: 14px; } .cs-io i { width: 30px; height: 1px; background: #D5DAE2; }
.cd-stay ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.cd-stay li { display: flex; flex-direction: column; gap: 2px; padding: 8px; border-radius: 8px; background: #F6F7FA; }
.cd-stay li b { font-size: 12px; } .cd-stay li time { font-size: 10.5px; color: var(--slate); }
.cd-stay li em { font-style: normal; font-size: 10px; font-weight: 700; color: #C2570C; min-height: 0; }
@media (max-width: 809px) { .pipe.kb { grid-template-columns: repeat(6, 110px); overflow-x: auto; } .cd-stay ul { grid-template-columns: 1fr 1fr; } .crm-detail { min-height: 260px; } }

/* CRM: 한 장의 카드가 칸을 건너 이동 */
.pipe.kb { position: relative; --col: 0; }
.pipe.kb .pc { position: relative; z-index: 1; background: rgba(246,247,250,.9); }
.pipe.kb::before, .pipe.kb::after { content: ""; position: absolute; z-index: 0; top: 48px; height: 2px; left: calc((100% - 40px) / 12); }
.pipe.kb::before { right: calc((100% - 40px) / 12); background: repeating-linear-gradient(90deg, #C9CFD8 0 5px, transparent 5px 10px); }
.pipe.kb::after { width: calc(((100% - 40px) / 6 + 8px) * var(--col)); background: var(--brand); transition: width .9s var(--ease); }
.slot { height: 38px; border-radius: 8px; border: 1.5px dashed #C9CFD8; display: flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 600; color: #9AA3B2; background: #fff; }
.slot .s-done { display: none; color: #11905A; }
.pc.is-done .slot { border-style: solid; border-color: #CDEBDD; background: #F2FBF7; }
.pc.is-done .slot .s-wait { display: none; } .pc.is-done .slot .s-done { display: inline; }
.pc.is-now .slot { border-color: transparent; background: transparent; } .pc.is-now .slot span { visibility: hidden; }
.kc.trav { position: absolute; z-index: 3; top: 30px; height: 38px; display: grid; width: calc((100% - 40px) / 6 - 16px);
  left: calc(((100% - 40px) / 6 + 8px) * var(--col) + 8px); border: 1.5px solid var(--brand); box-shadow: 0 6px 14px -6px rgba(20,0,255,.4);
  transition: left .9s cubic-bezier(.65, 0, .35, 1), transform .45s var(--ease), box-shadow .45s var(--ease); }
.kc.trav time { color: var(--brand); font-weight: 600; }
.kc.trav.moving { transform: translateY(-6px) rotate(-1.5deg); box-shadow: 0 16px 28px -10px rgba(20,0,255,.5); }
.pc.is-now .kc.rina, .kc.rina { display: none; }
@media (max-width: 809px) { .kc.trav { width: 94px; left: calc(118px * var(--col) + 8px); } .pipe.kb::before, .pipe.kb::after { display: none; } }
@media (prefers-reduced-motion: reduce) { .kc.trav, .pipe.kb::after { transition: none; } }
/* 히어로 지도: 인도네시아와 클리닉 3곳만 */
@media (min-width: 1101px) { .idmap { width: 62%; right: 0; transform: translateY(-50%); } }
.idmap > svg { -webkit-mask-image: radial-gradient(ellipse 60% 62% at 45% 58%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 60% 62% at 45% 58%, #000 55%, transparent 100%); }

/* CRM 이동 차분하게: 기울기·들림 없음, 부드러운 이동만 */
.kc.trav { transition: left 1.1s cubic-bezier(.4, 0, .2, 1); box-shadow: none; }
.kc.trav.moving { transform: none; box-shadow: none; }
.pc.is-now .kc.rina { animation: none; }
.slot { border: 1px dashed #DDE1E7; background: transparent; }
.slot span { display: none !important; }
.pc.is-done .slot { border-color: transparent; background: transparent; }
.pipe.kb::after { transition: width 1.1s cubic-bezier(.4, 0, .2, 1); }
.pc.is-now { background: #F4F5FF; }
.cd { transition: opacity .6s ease, transform .7s cubic-bezier(.4, 0, .2, 1); transform: translateY(4px); }

/* ==========================================================
   히어로 v6: 지도 세 장면
   ========================================================== */
.hero-s3 { background: var(--night); color: #fff; min-height: 100svh; display: flex; flex-direction: column; justify-content: space-between; }
.hero-s3::before { background: none; }
.h3-grid { flex: 1; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px; align-items: center; padding-top: calc(var(--header-h) + 32px); padding-bottom: 28px; }
.hero-s3 h1 { margin-top: 16px; font-size: 56px; line-height: 1.16; letter-spacing: -0.035em; max-width: none; }
.h3-rows { margin-top: 40px; border-top: 1px solid var(--night-line); }
.h3r { border-bottom: 1px solid var(--night-line); }
.h3r > button { position: relative; width: 100%; text-align: left; display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 16px 0; color: rgba(255,255,255,.45); transition: color .4s ease; }
.h3-w { font-size: 14px; font-weight: 700; }
.h3-t { font-size: 16px; }
.h3r.is-on > button, .h3r > button:hover { color: #fff; }
.h3r.is-on .h3-w { color: var(--glow); }
.h3-bar { position: absolute; left: 0; bottom: -1px; height: 1px; width: 100%; background: var(--glow); transform: scaleX(0); transform-origin: left; }
.h3r.is-on .h3-bar { animation: pf-progress var(--s3-dur, 8s) linear forwards; }
.hero-s3.is-paused .h3r.is-on .h3-bar { animation-play-state: paused; }
.h3-more { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 14px; align-items: center; max-height: 0; overflow: hidden; opacity: 0; transition: max-height .6s ease, opacity .5s ease, padding .6s ease; }
.h3r.is-on .h3-more { max-height: 90px; opacity: 1; padding-bottom: 16px; }
.h3-more img { width: 76px; height: 54px; object-fit: cover; border-radius: 6px; }
.h3-more p { display: flex; flex-direction: column; gap: 2px; }
.h3-more b { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.h3-more span { font-size: 12.5px; color: rgba(255,255,255,.55); }
.h3-link { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.8); white-space: nowrap; }
.h3-link::after { content: " →"; }
.h3-link:hover { color: #fff; }
.h3-map { position: relative; margin: 0; height: min(62vh, 620px); }
.h3-map svg { width: 100%; height: 100%; display: block; overflow: hidden; --k: 1; }
.h3-map .ld { fill: none; stroke: #1F2533; stroke-width: 3.6; stroke-linecap: round; transition: stroke .8s ease; }
.hero-s3[data-s="co"] .ld-id, .hero-s3[data-s="mt"] .ld-id { stroke: #4C5A9E; }
.hero-s3[data-s="mt"] .ld-kr, .hero-s3[data-s="gm"] .ld-kr { stroke: #4C5A9E; }
.h3-map .sc { opacity: 0; transition: opacity .6s ease; }
.hero-s3[data-s="co"] .sc-co, .hero-s3[data-s="mt"] .sc-mt, .hero-s3[data-s="gm"] .sc-gm { opacity: 1; transition-delay: .9s; }
.h3-map .mk { fill: none; stroke: #fff; stroke-width: 9px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.h3-map .arc { fill: none; stroke: var(--glow); stroke-width: 1.6px; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.h3-map .arc.dash { stroke: rgba(143,155,255,.75); }
.hero-s3[data-s="mt"] .sc-mt .arc, .hero-s3[data-s="gm"] .sc-gm .arc { stroke-dashoffset: 0; transition: stroke-dashoffset 1.6s cubic-bezier(.4, 0, .2, 1) 1s; }
.h3-map .lb { fill: #fff; font-size: 13px; font-weight: 600; transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) scale(var(--k)) translate(calc(var(--dx) * 1px), calc(var(--dy) * 1px)); }
.h3-map .lb .lb-s { font-size: 11.5px; font-weight: 400; fill: rgba(255,255,255,.6); }
.h3-map .lb-cap { font-size: 12px; letter-spacing: .3em; fill: #AEB8E8; }
.hero-s3 .hero-stats { border-top: 1px solid var(--night-line); }
.hero-s3 .hero-stats dl { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hero-s3 .hero-stats dl > div + div { border-left-color: var(--night-line); }
.hero-s3 .hero-stats dd { font-size: 28px; } .hero-s3 .hero-stats dt { color: rgba(255,255,255,.55); }
@media (max-width: 1100px) {
  .h3-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .h3-map { height: 44vh; order: -1; }
  .hero-s3 h1 { font-size: 42px; }
  .hero-s3 .hero-stats dl { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hero-s3 .hero-stats dl > div:nth-child(n+4) { display: none; }
}
@media (max-width: 809px) {
  .hero-s3 h1 { font-size: 32px; }
  .h3r > button { grid-template-columns: 1fr; gap: 2px; }
  .h3-t { font-size: 15px; }
  .h3-more { grid-template-columns: 64px minmax(0, 1fr); } .h3-link { display: none; }
  .hero-s3 .hero-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero-s3 .hero-stats dl > div:nth-child(n+3) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .h3-map .arc { transition: none !important; } .h3r.is-on .h3-bar { animation: none; transform: scaleX(1); } }
.h3-map svg { -webkit-mask-image: radial-gradient(ellipse 62% 60% at 50% 50%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 62% 60% at 50% 50%, #000 55%, transparent 100%); }
.h3-map .arc.dash { stroke: rgba(143,155,255,.55); stroke-width: 1.2px; }

/* ==========================================================
   히어로 v7: 전면 해안선 지도
   ========================================================== */
.hero-at { position: relative; background: #08090C; color: #fff; min-height: 100svh; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; isolation: isolate; }
.hero-at::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(8,9,12,.92) 0%, rgba(8,9,12,.55) 34%, rgba(8,9,12,0) 60%), linear-gradient(0deg, rgba(8,9,12,.95) 0%, rgba(8,9,12,0) 30%); }
.at-map { position: absolute; inset: 0; margin: 0; z-index: 0; }
.at-map svg { width: 100%; height: 100%; display: block; --k: 1; }
.at-map .gr { fill: none; stroke: rgba(255,255,255,.045); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.at-map .lnd { fill: #111319; stroke: rgba(255,255,255,.16); stroke-width: .7px; vector-effect: non-scaling-stroke; stroke-linejoin: round; transition: fill 1s ease, stroke 1s ease; }
.hero-at[data-s="co"] .lnd.id, .hero-at[data-s="mt"] .lnd.id { fill: #1A1F2E; stroke: rgba(170,182,255,.55); }
.hero-at[data-s="mt"] .lnd.kr, .hero-at[data-s="gm"] .lnd.kr { fill: #1A1F2E; stroke: rgba(170,182,255,.55); }
.at-map .sc { opacity: 0; transition: opacity .7s ease; }
.hero-at[data-s="co"] .sc-co, .hero-at[data-s="mt"] .sc-mt, .hero-at[data-s="gm"] .sc-gm { opacity: 1; transition-delay: 1.1s; }
.at-map .mk { fill: none; stroke: #fff; stroke-width: 6px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.at-map .mk-r { fill: none; stroke: rgba(255,255,255,.18); stroke-width: 18px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.at-map .arc { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 1px; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.hero-at[data-s="mt"] .sc-mt .arc, .hero-at[data-s="gm"] .sc-gm .arc { stroke-dashoffset: 0; transition: stroke-dashoffset 1.8s cubic-bezier(.4, 0, .2, 1) 1.2s; }
.at-map .lb { fill: rgba(255,255,255,.88); font-size: 12px; font-weight: 500; letter-spacing: .04em;
  transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) scale(var(--k)) translate(calc(var(--dx) * 1px), calc(var(--dy) * 1px)); }
.at-map .lb.cap { font-size: 11px; letter-spacing: .34em; fill: rgba(190,200,255,.8); }
.at-top { position: relative; z-index: 2; padding-top: calc(var(--header-h) + 13vh); }
.hero-at h1 { margin-top: 18px; font-size: 76px; line-height: 1.1; font-weight: 700; letter-spacing: -0.04em; max-width: none; }
.hero-at .lede { margin-top: 24px; font-size: 18px; line-height: 1.65; color: rgba(255,255,255,.62); }
.at-bottom { position: relative; z-index: 2; padding-bottom: 40px; }
.h4-ch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.h4c { position: relative; }
.h4c > button { width: 100%; text-align: left; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 6px; padding-top: 20px; color: rgba(255,255,255,.4); transition: color .5s ease; }
.h4-bar { grid-column: 1 / -1; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255,255,255,.18); overflow: hidden; }
.h4-bar::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.h4c.is-on .h4-bar::after { animation: pf-progress var(--s3-dur, 8s) linear forwards; }
.hero-at.is-paused .h4c.is-on .h4-bar::after { animation-play-state: paused; }
.h4c.is-done .h4-bar::after { transform: scaleX(1); }
.h4-n { font-size: 13px; font-weight: 600; padding-top: 3px; }
.h4-w { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; }
.h4-t { grid-column: 2; font-size: 14.5px; }
.h4c.is-on > button, .h4c > button:hover { color: #fff; }
.h4c.is-on .h4-t { color: rgba(255,255,255,.66); }
.h4-link { display: inline-block; margin: 10px 0 0 calc(13px + 12px + 8px); font-size: 13px; font-weight: 600; color: rgba(255,255,255,.55); opacity: 0; transition: opacity .5s ease; }
.h4-link::after { content: " →"; }
.h4c.is-on .h4-link { opacity: 1; } .h4-link:hover { color: #fff; }
.at-stats { background: #08090C; color: #fff; border-top: 1px solid rgba(255,255,255,.08); }
.at-stats dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.at-stats dl > div { padding: 30px 20px 34px 0; }
.at-stats dl > div + div { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.08); }
.at-stats dd { margin: 0; font-size: 32px; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; }
.at-stats dd small { font-size: .5em; font-weight: 600; margin-left: 3px; }
.at-stats dt { margin-top: 6px; font-size: 13.5px; color: rgba(255,255,255,.5); }
@media (max-width: 1100px) {
  .hero-at h1 { font-size: 56px; }
  .at-stats dl { grid-template-columns: repeat(3, minmax(0, 1fr)); } .at-stats dl > div:nth-child(n+4) { display: none; }
}
@media (max-width: 809px) {
  .hero-at::before { background: linear-gradient(0deg, rgba(8,9,12,.96) 0%, rgba(8,9,12,.4) 45%, rgba(8,9,12,.75) 100%); }
  .at-top { padding-top: calc(var(--header-h) + 36px); }
  .hero-at h1 { font-size: 36px; } .hero-at .lede { font-size: 15.5px; } .hero-at .lede br { display: none; }
  .h4-ch { grid-template-columns: 1fr; gap: 14px; }
  .h4c > button { padding-top: 12px; } .h4-w { font-size: 17px; } .h4-t { font-size: 13.5px; }
  .h4-link { display: none; }
  .at-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .at-stats dl > div:nth-child(n+3) { display: none; } .at-stats dd { font-size: 26px; }
  .at-stats dl > div:nth-child(2) { padding-left: 16px; }
}
@media (prefers-reduced-motion: reduce) { .at-map .arc { transition: none !important; } }

/* ==========================================================
   타이포 기준 재정의 (2026-09-29, Recatch 실측 기준)
   제목: 굵기 700·줄간격 1.4·자간 -0.03em / 부제·본문: 굵기 500~600·줄간격 1.5
   ========================================================== */
body { letter-spacing: -0.015em; }
.head h2, .closing-title, .chapter-head h2 { font-size: 44px; line-height: 1.4; letter-spacing: -0.03em; }
.head p, .closing-cta p { font-size: 19px; line-height: 1.6; font-weight: 500; }
.page-hero h1 { font-size: 52px; line-height: 1.38; letter-spacing: -0.03em; }
.page-hero .lead { font-size: 20px; line-height: 1.55; font-weight: 500; }
.jt h3 { font-size: 34px; line-height: 1.4; letter-spacing: -0.03em; }
.jt .st-desc, .st-desc { font-size: 18px; line-height: 1.65; font-weight: 500; }
.hero-kicker { letter-spacing: .1em; }

/* 히어로 v7 레이아웃: 문구는 가운데 위, 지도는 아래를 채움 */
.hero-at::before { background: linear-gradient(180deg, rgba(8,9,12,.96) 0%, rgba(8,9,12,.88) 30%, rgba(8,9,12,.2) 58%, rgba(8,9,12,0) 75%, rgba(8,9,12,.6) 100%); }
.at-top { padding-top: calc(var(--header-h) + 72px); text-align: center; display: flex; flex-direction: column; align-items: center; }
.hero-at h1 { margin-top: 0; font-size: 52px; line-height: 1.38; font-weight: 700; letter-spacing: -0.03em; }
.hero-at .lede { margin-top: 16px; font-size: 20px; line-height: 1.55; font-weight: 500; color: rgba(255,255,255,.7); }
.h4-ch { margin-top: 36px; display: inline-grid; grid-template-columns: repeat(3, auto); gap: 32px; }
.h4c > button { display: flex; align-items: baseline; gap: 8px; padding: 0 0 10px; color: rgba(255,255,255,.42); grid-template-columns: none; }
.h4-bar { top: auto; bottom: 0; }
.h4-n { font-size: 13px; font-weight: 600; padding: 0; }
.h4-w { font-size: 17px; font-weight: 600; letter-spacing: -0.02em; }
.h4-d { position: absolute; left: 50%; top: calc(100% + 16px); width: 440px; margin-left: -220px; display: flex; justify-content: center; gap: 12px; font-size: 15px; font-weight: 500; color: rgba(255,255,255,.62); opacity: 0; transition: opacity .5s ease; pointer-events: none; white-space: nowrap; }
.h4c.is-on .h4-d { opacity: 1; pointer-events: auto; }
.h4-ch { position: relative; }
.h4c { position: static; }
.h4c:nth-child(1) .h4-d, .h4c:nth-child(2) .h4-d, .h4c:nth-child(3) .h4-d { left: 50%; }
.h4-link { margin: 0; opacity: 1; color: rgba(255,255,255,.85); }
.at-bottom { display: none; }
@media (max-width: 1100px) { .hero-at h1 { font-size: 44px; } .head h2, .closing-title { font-size: 36px; } .page-hero h1 { font-size: 42px; } }
@media (max-width: 809px) {
  .hero-at h1 { font-size: 30px; } .hero-at .lede { font-size: 16px; }
  .at-top { padding-top: calc(var(--header-h) + 40px); }
  .h4-ch { gap: 16px; } .h4-w { font-size: 14.5px; } .h4-n { display: none; }
  .h4-d { width: 300px; margin-left: -150px; white-space: normal; flex-direction: column; align-items: center; gap: 4px; font-size: 14px; }
  .head h2, .closing-title { font-size: 28px; } .head p { font-size: 16px; } .page-hero h1 { font-size: 32px; } .jt h3, .jsteps h3 { font-size: 24px; }
}

/* 사업부 약식 소개 */
.bz-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.bz { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); background: #fff; transition: border-color .3s ease, transform .4s ease; }
.bz:hover { border-color: #C9CFD8; transform: translateY(-3px); }
.bz figure { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: #ECEEF2; }
.bz figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.bz:hover figure img { transform: scale(1.03); }
.bz-b { display: flex; flex-direction: column; flex: 1; padding: 24px 24px 22px; }
.bz-tag { font-size: 13px; font-weight: 600; color: var(--brand); }
.bz h3 { margin-top: 6px; font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: -0.03em; }
.bz-d { margin-top: 8px; font-size: 16px; line-height: 1.6; font-weight: 500; color: var(--muted); flex: 1; }
.bz-f { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 10px; }
.bz-f span { font-size: 14px; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.bz-f i { flex: 1; height: 1px; min-width: 16px; position: relative; background: #AEB7C4; }
.bz-f i::after { content: ""; position: absolute; right: 0; top: -3px; width: 6px; height: 6px; border-top: 1px solid #AEB7C4; border-right: 1px solid #AEB7C4; transform: rotate(45deg); }
@media (max-width: 1100px) { .bz-grid { grid-template-columns: minmax(0, 1fr); } .bz { flex-direction: row; } .bz figure { width: 40%; aspect-ratio: auto; flex: none; } }
@media (max-width: 809px) { .bz { flex-direction: column; } .bz figure { width: 100%; aspect-ratio: 16 / 10; } .bz-b { padding: 18px; } .bz h3 { font-size: 21px; } .bz-f span { font-size: 13px; white-space: normal; } }
.at-map { -webkit-mask-image: radial-gradient(ellipse 58% 70% at 50% 62%, #000 60%, transparent 100%); mask-image: radial-gradient(ellipse 58% 70% at 50% 62%, #000 60%, transparent 100%); }
@media (max-width: 809px) { .at-map { -webkit-mask-image: radial-gradient(ellipse 90% 60% at 50% 70%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 90% 60% at 50% 70%, #000 55%, transparent 100%); } }

/* ==========================================================
   여정: 설명 위 · 시각 자료 아래 (Recatch Step 구성)
   ========================================================== */
@media (min-width: 1101px) {
  .jstick { display: flex; flex-direction: column; justify-content: flex-start; gap: 28px; padding: 40px 0 32px; height: calc(100vh - var(--header-h)); }
  .jtexts { order: 1; gap: 0; }
  .jstage { order: 2; flex: 1; min-height: 0; width: 100%; max-width: 1120px; height: auto; }
  .jprog { max-width: 1120px; }
  .jp-n { font-size: 14px; font-weight: 600; color: rgba(255,255,255,.5); }
  .jp-n b { font-size: 14px; }
  .jt-wrap { min-height: 132px; margin-top: 14px; }
  .jt .st-meta, .jt .st-own { display: none; }
  .jt h3 { margin-top: 0; font-size: 34px; }
  .jt h3 small { display: none; }
  .jt .st-desc { margin-top: 12px; max-width: 46em; font-size: 18px; color: rgba(255,255,255,.62); }
  .jt .st-links { margin-top: 10px; }
  .jnote { position: absolute; right: 0; bottom: 8px; }
  .jstage .jscene { align-items: flex-start; }
  .jstage .jscene > .scene { max-height: 100%; }
  .sc-gm .reel { aspect-ratio: 3 / 4; }
  .sc-rec .phone { height: min(100%, 460px); }
  .cg-video { max-height: 100%; }
  .sc-clinic { height: 100%; max-height: 460px; }
  .sc-kr2 { height: 100%; }
}
@media (min-width: 1101px) {
  .jstick { align-items: stretch; }
  .jtexts, .jstage { width: 100%; max-width: 1120px; margin-left: auto; margin-right: auto; }
  .jt-wrap { width: 100%; }
  .jnote { right: max(0px, calc(50% - 560px)); }
}
@media (min-width: 1101px) {
  .sc-kr2 { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 28px; }
  .sc-kr2 .cg-video { height: min(52vh, 460px); width: auto; aspect-ratio: 9 / 16; max-height: none; }
  .sc-kr2 .cg-thumbs figure { aspect-ratio: 16 / 8; }
  .sc-rec { grid-template-columns: auto 180px; justify-content: center; }
  .sc-rec .phone { width: 260px; height: min(52vh, 480px); }
}

/* ==========================================================
   히어로 v8: Recatch 구조 (바뀌는 칩 + 지평선)
   ========================================================== */
.hero-hz { position: relative; background: #111214; color: #fff; min-height: 100svh; display: flex; flex-direction: column; overflow: hidden; }
.hero-hz::before { display: none; }
.hz-top { position: relative; z-index: 2; padding-top: calc(var(--header-h) + 9vh); text-align: center; display: flex; flex-direction: column; align-items: center; }
.hero-hz h1 { font-size: 52px; line-height: 1.4; font-weight: 700; letter-spacing: -0.03em; max-width: none; }
.chip-slot { position: relative; display: inline-block; vertical-align: middle; height: 1.3em; min-width: 5.4em; margin: -.1em .15em 0 0; padding: 0; }
.chip-w { position: absolute; left: 0; top: 0; height: 100%; display: inline-flex; align-items: center; gap: .3em; padding: 0 .45em; border-radius: .32em; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); white-space: nowrap; opacity: 0; transform: translateY(40%); transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.chip-w i { font-style: normal; font-size: .72em; }
.chip-w.is-on { opacity: 1; transform: none; }
.chip-w.is-out { opacity: 0; transform: translateY(-40%); }
.hz-de { vertical-align: middle; }
.hero-hz .lede { margin-top: 18px; font-size: 19px; line-height: 1.55; font-weight: 500; color: rgba(255,255,255,.62); }
.hero-hz .btn-row { margin-top: 30px; justify-content: center; }
.hz-btn-w { background: #fff; color: #111214; font-weight: 600; }
.hz-btn-w:hover { background: #E9ECF2; }
.hz-btn-d { background: rgba(255,255,255,.08); color: #fff; font-weight: 600; border: 1px solid rgba(255,255,255,.1); }
.hz-btn-d:hover { background: rgba(255,255,255,.14); }
.hz-stage { position: relative; flex: 1; min-height: 360px; margin-top: -40px; }
.hz-stage svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.hz-planet { opacity: .95; }
.hz-rim { stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.hz-arc { fill: none; stroke: rgba(255,255,255,.75); stroke-width: 1.2px; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; animation: hz-draw 2.2s cubic-bezier(.4,0,.2,1) forwards; }
.hz-arc.gm { stroke: rgba(255,255,255,.35); }
.hz-arc:nth-of-type(2) { animation-delay: .15s; } .hz-arc:nth-of-type(3) { animation-delay: .3s; } .hz-arc:nth-of-type(4) { animation-delay: .6s; } .hz-arc:nth-of-type(5) { animation-delay: .75s; } .hz-arc:nth-of-type(6) { animation-delay: .9s; }
@keyframes hz-draw { to { stroke-dashoffset: 0; } }
.hz-n circle { fill: #fff; stroke: rgba(255,255,255,.3); stroke-width: 6px; }
.hz-n.hub circle { stroke: rgba(157,176,255,.45); stroke-width: 10px; }
.hz-n text { fill: #fff; font-size: 13px; font-weight: 600; font-family: var(--font); }
.hz-n text .s { fill: rgba(255,255,255,.55); font-size: 11px; font-weight: 500; }
.hz-av { position: absolute; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(255,255,255,.85); box-shadow: 0 8px 20px rgba(0,0,0,.35); opacity: 0; animation: hz-in .8s ease forwards 1.4s; }
.hz-av:nth-of-type(2) { animation-delay: 1.6s; } .hz-av:nth-of-type(3) { animation-delay: 1.8s; } .hz-av:nth-of-type(4) { animation-delay: 2s; }
.hz-av img { width: 100%; height: 100%; object-fit: cover; }
@keyframes hz-in { to { opacity: 1; } }
.hero-hz ~ .at-stats { background: #111214; }
@media (max-width: 1100px) { .hero-hz h1 { font-size: 44px; } }
@media (max-width: 809px) {
  .hz-top { padding-top: calc(var(--header-h) + 40px); }
  .hero-hz h1 { font-size: 30px; } .hero-hz .lede { font-size: 15.5px; } .hero-hz .lede br { display: none; }
  .hz-stage { min-height: 300px; } .hz-av { width: 40px; height: 40px; margin: -20px 0 0 -20px; }
}
@media (prefers-reduced-motion: reduce) { .hz-arc { animation: none; stroke-dashoffset: 0; } .hz-av { animation: none; opacity: 1; } .chip-w { transition: none; } }

/* ==========================================================
   히어로 v9: 실제 지도 지구 지평선
   ========================================================== */
.hero-gl { position: relative; background: #0E0F13; color: #fff; min-height: 100svh; display: flex; flex-direction: column; overflow: hidden;
  --gl-a: #5B6CFF; --gl-b: #2A2F9E; --gl-c: #10123A; --gl-land: rgba(255,255,255,.14); --gl-hi: rgba(255,255,255,.72); --gl-line: #fff; }
.hero-gl .hz-top { padding-top: calc(var(--header-h) + 7vh); }
.gl-stage { position: absolute; left: 0; right: 0; bottom: 0; height: 60%; z-index: 0;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%); mask-image: linear-gradient(180deg, transparent 0%, #000 14%); }
.gl-stage svg { width: 100%; height: 100%; display: block; }
.hero-gl .hz-top { position: relative; z-index: 2; }
.g-land { fill: var(--gl-land); stroke: rgba(255,255,255,.18); stroke-width: .6px; vector-effect: non-scaling-stroke; }
.g-land.hi { fill: var(--gl-hi); stroke: none; }
.g-rim { stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.g-arc { fill: none; stroke: var(--gl-line); stroke-width: 1.1px; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; animation: hz-draw 2.4s cubic-bezier(.4,0,.2,1) forwards; animation-delay: calc(var(--d) + .4s); opacity: .8; }
.g-arc.gm { stroke-dasharray: .012 .012; stroke-dashoffset: 0; animation: gl-fade 1.2s ease forwards; animation-delay: calc(var(--d) + .4s); opacity: 0; }
@keyframes gl-fade { to { opacity: .55; } }
.g-o { fill: #fff; opacity: .7; } .g-w { fill: #fff; opacity: .55; }
.g-n circle { fill: #fff; stroke: rgba(255,255,255,.35); stroke-width: 7px; }
.g-n.hub circle { stroke-width: 11px; }
.g-n text { fill: #fff; font-size: 14px; font-weight: 700; font-family: var(--font); paint-order: stroke; stroke: rgba(14,15,19,.55); stroke-width: 3px; }
.g-n text .s { fill: rgba(255,255,255,.72); font-size: 11.5px; font-weight: 500; }
.gl-legend { position: absolute; z-index: 2; right: 32px; bottom: 26px; display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: rgba(255,255,255,.75); }
.gl-legend li { display: flex; align-items: center; gap: 8px; }
.gl-legend i { width: 20px; height: 0; border-top: 1.5px solid #fff; }
.gl-legend .l-gm { border-top-style: dashed; opacity: .7; }
.gl-legend .l-co { width: 9px; height: 9px; border: 0; border-radius: 50%; background: #fff; margin: 0 5px; box-shadow: 0 0 0 4px rgba(255,255,255,.3); }
.hero-gl ~ .at-stats { background: #0E0F13; }
@media (max-width: 809px) {
  .gl-stage { height: 46%; }
  .gl-legend { display: none; }
  .g-n text { font-size: 18px; } .g-n text .s { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .g-arc { animation: none; stroke-dashoffset: 0; opacity: .7; } }
.hero-gl { justify-content: flex-start; }
.gl-stage { height: 50%; }
.hero-gl { --gl-a: #4A58E8; --gl-b: #23288A; --gl-c: #0E1030; }
@media (max-width: 809px) { .gl-stage { height: 42%; } }
@media (min-width: 810px) { .gl-stage { height: 58%; } .hero-gl .hz-top { padding-top: calc(var(--header-h) + 4vh); } .hero-gl h1 { font-size: 48px; } }
.chip-slot { margin-right: .25em; }
@media (min-width: 810px) {
  .g-n text { font-size: 21px; stroke-width: 4px; } .g-n text .s { font-size: 16px; }
  .gl-stage { height: 54%; }
}
.g-arc.gm { stroke-dasharray: .008 .01; }
@keyframes gl-fade { to { opacity: .75; } }

/* ==========================================================
   라임 v2 + 평면 지도 히어로 (2026-09-29)
   검정: 따뜻한 검정 + 크림 글자 + 라임 강조 / 흰색: 잉크 글자 + 올리브 강조 + 라임 버튼
   ========================================================== */
:root { --lime: #DDF763; --cream: #F3FFC9; --brand: #4F5E00; --brand-hover: #3D4900; --brand-tint: #F2FAD2; --glow: #DDF763; --night: #0B0C09; --night-2: #14160F; --night-line: rgba(243,255,201,.1); }
.btn-primary { background: var(--lime); color: #0B0C09; font-weight: 600; }
.btn-primary:hover { background: #CFEA4E; }
.btn-ghost-light { border-color: rgba(243,255,201,.35); color: var(--cream); background: transparent; }
.btn-dark { background: #0B0C09; color: var(--lime); }
.band.night, .at-stats, .closing-card, .hero-at { background: var(--night); }
.band.night .head h2, .closing-title, .jt h3, .at-stats dd, .site-footer h2 { color: var(--cream); }
.band.night .head p, .jt .st-desc { color: rgba(243,255,201,.62); }
.jp-n b, .hero-kicker { color: var(--lime); }
.jp-bar i { background: var(--lime); }
.journey .ext { color: var(--lime); }
.site-header.is-over-hero, .site-header.is-dark { color: var(--cream); }
.site-header.is-dark { background: rgba(11,12,9,.8); }
.closing-card::after { background: radial-gradient(50% 60% at 80% 10%, rgba(221,247,99,.08), transparent 70%); }

/* 히어로: 글 위 · 지도 아래 (상자 없음, 화면 전체 너비) */
.hero-at { justify-content: flex-start; min-height: 100svh; padding-bottom: 0; }
.hero-at::before { display: none; }
.hero-at .at-top { order: 1; position: relative; z-index: 2; padding-top: calc(var(--header-h) + 64px); text-align: center; display: flex; flex-direction: column; align-items: center; }
.hero-at h1 { color: var(--cream); font-size: 52px; line-height: 1.38; font-weight: 600; letter-spacing: -0.03em; }
.hero-at .lede { color: rgba(243,255,201,.62); }
.hero-at .at-panel-wrap { order: 2; flex: 1; position: relative; max-width: none; padding: 0; margin-top: -20px; min-height: 440px; }
.at-panel { position: absolute; inset: 0; background: none; border-radius: 0; height: auto; min-height: 0; overflow: visible; }
.at-panel .at-map { position: absolute; inset: 0; -webkit-mask-image: radial-gradient(ellipse 62% 78% at 50% 58%, #000 45%, transparent 100%); mask-image: radial-gradient(ellipse 62% 78% at 50% 58%, #000 45%, transparent 100%); }
.at-map .gr { display: none; }
.at-map .lnd { fill: rgba(243,255,201,.05); stroke: rgba(243,255,201,.2); }
.hero-at[data-s="co"] .lnd.id, .hero-at[data-s="mt"] .lnd.id, .hero-at[data-s="gm"] .lnd.id, .hero-at[data-s="mt"] .lnd.kr, .hero-at[data-s="gm"] .lnd.kr { fill: rgba(221,247,99,.12); stroke: rgba(221,247,99,.6); }
.at-map .mk { stroke: var(--lime); stroke-width: 7px; }
.at-map .mk-r { stroke: rgba(221,247,99,.2); stroke-width: 20px; }
.at-map .od, .at-map .wd { fill: none; stroke: var(--cream); stroke-width: 4px; stroke-linecap: round; vector-effect: non-scaling-stroke; opacity: .7; }
.at-map .arc { stroke: var(--lime); stroke-width: 1.2px; opacity: .85; stroke-dashoffset: 1; transition: none; }
.at-map .arc.gm { stroke: var(--cream); opacity: .6; }
.hero-at[data-s="mt"] .sc-mt .arc, .hero-at[data-s="gm"] .sc-gm .arc { animation: hz-draw 1.8s cubic-bezier(.4,0,.2,1) forwards; animation-delay: calc(var(--d, 0s) + 1.1s); }
.at-map .lb { fill: var(--cream); font-size: 13px; font-weight: 600; }
.h4c > button { color: rgba(243,255,201,.4); }
.h4c.is-on > button, .h4c > button:hover { color: var(--cream); }
.h4-bar { background: rgba(243,255,201,.15); }
.h4-bar::after { background: var(--lime); }
.at-scene-d { color: rgba(243,255,201,.66); }
.at-scene-d a { color: var(--lime); }
.at-stats dt { color: rgba(243,255,201,.5); }
@media (max-width: 809px) {
  .hero-at h1 { font-size: 30px; }
  .hero-at .at-top { padding-top: calc(var(--header-h) + 36px); }
  .hero-at .at-panel-wrap { min-height: 360px; }
  .at-panel .at-map { -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 55%, #000 50%, transparent 100%); mask-image: radial-gradient(ellipse 80% 70% at 50% 55%, #000 50%, transparent 100%); }
}
@media (prefers-reduced-motion: reduce) { .hero-at .arc { animation: none !important; stroke-dashoffset: 0; } }
.h4-d { display: none !important; }
.hero-at .at-panel-wrap { margin-top: 28px; }
.at-scene-d { margin-top: 16px; min-height: 24px; font-size: 15px; font-weight: 500; display: flex; gap: 12px; justify-content: center; }
.at-scene-d a { font-weight: 600; } .at-scene-d a::after { content: " →"; }
@media (max-width: 809px) { .at-scene-d { flex-direction: column; align-items: center; gap: 2px; font-size: 14px; } }

/* 히어로 밝은 지도 (2026-09-29) — --acc / --acc-tint 두 값만 바꾸면 색 교체 */
.hero-at.light { --acc: #2F5BFF; --acc-tint: #E3E9FF; background: #FFFFFF; color: var(--ink); }
.hero-at.light h1 { color: #0B0C0F; }
.hero-at.light .lede, .hero-at.light .at-scene-d { color: #4A5160; }
.hero-at.light .at-scene-d a { color: var(--acc); }
.hero-at.light .h4c > button { color: #9AA1AD; }
.hero-at.light .h4c.is-on > button, .hero-at.light .h4c > button:hover { color: #0B0C0F; }
.hero-at.light .h4-bar { background: #E4E7EC; } .hero-at.light .h4-bar::after { background: var(--acc); }
.hero-at.light .at-map .lnd { fill: #EEF0F3; stroke: #DDE1E7; }
.hero-at.light[data-s] .lnd.id, .hero-at.light[data-s="mt"] .lnd.kr, .hero-at.light[data-s="gm"] .lnd.kr { fill: var(--acc-tint); stroke: color-mix(in srgb, var(--acc) 35%, #fff); }
.hero-at.light .at-map .mk { stroke: var(--acc); } .hero-at.light .at-map .mk-r { stroke: color-mix(in srgb, var(--acc) 22%, transparent); }
.hero-at.light .at-map .arc, .hero-at.light .at-map .arc.gm { stroke: var(--acc); opacity: .75; stroke-width: 1.4px; }
.hero-at.light .at-map .arc.gm { opacity: .45; }
.hero-at.light .at-map .od, .hero-at.light .at-map .wd { stroke: var(--acc); opacity: .6; }
.hero-at.light .at-map .lb { fill: #0B0C0F; paint-order: stroke; stroke: #fff; stroke-width: 4px; }
.hero-at.light ~ .at-stats { background: #fff; color: var(--ink); border-top: 1px solid #EDEFF2; }
.hero-at.light ~ .at-stats dd { color: #0B0C0F; } .hero-at.light ~ .at-stats dt { color: #7A8190; }
.hero-at.light ~ .at-stats dl > div + div { border-left-color: #EDEFF2; }
.hero-at.light .btn-primary { background: var(--acc); color: #fff; }
body:has(.hero-at.light) .site-header.is-over-hero { color: #0B0C0F; background: rgba(255,255,255,.85); border-bottom-color: transparent; }

/* ==========================================================
   코발트 (2026-09-29 확정: 주황·보라·라임 제외)
   ========================================================== */
:root { --brand: #2F5BFF; --brand-hover: #1F47E6; --brand-tint: #E3E9FF; --glow: #8FA6FF; --lime: #2F5BFF; --cream: #FFFFFF; --night: #0C0D10; --night-2: #15171C; --night-line: rgba(255,255,255,.1); }
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-hover); }
.btn-ghost-light { border-color: rgba(255,255,255,.35); color: #fff; }
.btn-dark { background: #0C0D10; color: #fff; }
.band.night .head p, .jt .st-desc { color: rgba(255,255,255,.62); }
.jp-n b, .hero-kicker, .journey .ext, .at-scene-d a { color: var(--glow); }
.jp-bar i { background: var(--glow); }
.site-header.is-dark { background: rgba(12,13,16,.8); }
.at-stats dt { color: rgba(255,255,255,.5); }
.closing-card::after { background: radial-gradient(50% 60% at 80% 10%, rgba(47,91,255,.14), transparent 70%); }
.hero-at.light { --acc: #2F5BFF; --acc-tint: #E3E9FF; }
.hero-at.light .at-scene-d a { color: var(--acc); }
/* 선: 가는 점선, 적게 */
.hero-at.light .at-map .arc, .hero-at.light .at-map .arc.gm { stroke-width: 1.6px; stroke-linecap: round; opacity: .8; stroke-dasharray: .006 .014; stroke-dashoffset: 0; animation: gl-fade 1.2s ease forwards; animation-delay: calc(var(--d, 0s) + 1.1s); }
.hero-at.light .at-map .arc { opacity: 0; }
@keyframes gl-fade { to { opacity: .8; } }
.hero-at.light[data-s="mt"] .sc-mt .arc, .hero-at.light[data-s="gm"] .sc-gm .arc { animation: gl-fade 1.2s ease forwards; animation-delay: calc(var(--d, 0s) + 1.1s); }
.hero-at.light .at-map .od, .hero-at.light .at-map .wd { stroke-width: 6px; opacity: .85; }

/* ==========================================================
   히어로 v10: 제목 첫 줄 세 구절 = 세 장면
   ========================================================== */
.hero-at.v10 { min-height: 0; padding-bottom: 0; }
.v10 .at-top { padding-top: calc(var(--header-h) + 56px); }
.v10 h1 { font-size: 56px; line-height: 1.3; font-weight: 700; letter-spacing: -0.035em; color: #0B0C0F; }
.ph-row { display: block; }
.ph-end { display: block; color: #0B0C0F; }
.ph { position: relative; font: inherit; letter-spacing: inherit; color: #C4C9D2; padding: 0 .06em; transition: color .6s ease; cursor: pointer; }
.ph:hover { color: #8E95A3; }
.ph.is-on { color: var(--acc); }
.ph i { position: absolute; left: .06em; right: .06em; bottom: -.02em; height: 3px; border-radius: 2px; background: color-mix(in srgb, var(--acc) 18%, transparent); overflow: hidden; }
.ph i::after { content: ""; position: absolute; inset: 0; background: var(--acc); transform: scaleX(0); transform-origin: left; }
.ph.is-on i::after { animation: pf-progress var(--s3-dur, 8s) linear forwards; }
.hero-at.is-paused .ph.is-on i::after { animation-play-state: paused; }
.v10 .at-scene-d { margin-top: 22px; font-size: 18px; }
.v10 .at-panel-wrap { margin-top: 36px; }
.v10 .at-panel { position: relative; height: min(56vh, 540px); min-height: 400px; }
.v10 .at-panel .at-map { -webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 50%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 70% 80% at 50% 50%, #000 55%, transparent 100%); }
.v10 .at-map .arc { fill: none; stroke: var(--acc); stroke-width: 1.6px; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-dasharray: 2 6; opacity: 0; animation: none; }
.v10 .at-map .arc.main { stroke-width: 2.6px; stroke-dasharray: none; }
.v10[data-s="mt"] .sc-mt .arc, .v10[data-s="gm"] .sc-gm .arc { animation: gl-fade 1s ease forwards; animation-delay: calc(var(--d, 0s) + 1.1s); }
.v10 .at-map .mk.org { stroke: #0B0C0F; stroke-width: 6px; }
.v10 .at-map .lb.org { fill: #4A5160; font-weight: 600; }
.v10 .at-map .lb { font-size: 14px; }
.cc3-layer { position: absolute; inset: 0; pointer-events: none; }
.cc3 { position: absolute; width: 210px; transform: translate(-50%, calc(-100% - 18px)); display: flex; flex-direction: column; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 2px rgba(5,17,45,.06), 0 16px 32px -12px rgba(5,17,45,.22); opacity: 0; transition: opacity .6s ease; }
.v10[data-s="co"] .cc3 { opacity: 1; transition-delay: 1.2s; }
.cc3 img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cc3 p { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; }
.cc3 b { font-size: 15px; font-weight: 700; } .cc3 span { font-size: 12px; color: #7A8190; } .cc3 em { margin-top: 4px; font-style: normal; font-size: 12.5px; font-weight: 600; color: var(--acc); }
.cc3::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; margin-left: -6px; background: #fff; transform: rotate(45deg); }
.cc3 { overflow: visible; } .cc3 img { border-radius: 12px 12px 0 0; }
.cc3[data-k="surabaya"] { transform: translate(-50%, 22px); } .cc3[data-k="surabaya"]::after { top: -6px; bottom: auto; }
.mt-stat { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); padding: 8px 16px; border-radius: 999px; background: #fff; box-shadow: 0 8px 24px -10px rgba(5,17,45,.25); font-size: 14px; color: #4A5160; opacity: 0; transition: opacity .6s ease; white-space: nowrap; }
.mt-stat b { margin-left: 6px; font-size: 18px; color: var(--acc); }
.v10[data-s="mt"] .mt-stat { opacity: 1; transition-delay: 1.4s; }
@media (max-width: 1100px) { .v10 h1 { font-size: 42px; } .cc3 { width: 170px; } }
@media (max-width: 809px) {
  .v10 h1 { font-size: 28px; } .ph-row .ph { display: inline; }
  .v10 .at-scene-d { font-size: 14.5px; }
  .v10 .at-panel { height: 58vh; min-height: 360px; }
  .cc3 { width: 120px; } .cc3 em, .cc3 span { display: none; } .cc3 p { padding: 6px 8px; } .cc3 b { font-size: 12px; }
}
/* 성능: 움직이는 지도 위 마스크·흐림 제거, 가장자리는 덧씌운 그라데이션으로 */
.v10 .at-panel .at-map { -webkit-mask-image: none; mask-image: none; }
.v10 .at-panel::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0) 12%, rgba(255,255,255,0) 88%, #fff 100%), linear-gradient(180deg, #fff 0%, rgba(255,255,255,0) 10%, rgba(255,255,255,0) 90%, #fff 100%); }
.v10 .cc3-layer, .v10 .mt-stat { z-index: 2; }
.v10 .at-map svg { will-change: contents; }
body:has(.hero-at.light) .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(255,255,255,.96); }
.v10 .at-map .mk.ctry { stroke: #0B0C0F; stroke-width: 6px; }
.v10 .at-map .lb.ctry { fill: #4A5160; font-weight: 600; }
/* v10 정리: 카드 한 줄 · 번호 · 잘림 방지 */
.v10 .at-map .lb.end { text-anchor: end; }
.v10 .at-map .lb.num-b { fill: var(--acc); font-size: 13px; font-weight: 700; }
.cc3-row { position: absolute; z-index: 2; left: 50%; top: 20px; transform: translateX(-50%); display: grid; grid-template-columns: repeat(3, 220px); gap: 14px; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.v10[data-s="co"] .cc3-row { opacity: 1; transition-delay: 1s; pointer-events: auto; }
.cc3r { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 2px rgba(5,17,45,.06), 0 16px 32px -14px rgba(5,17,45,.22); }
.cc3r img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.cc3r p { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 8px; row-gap: 2px; align-items: baseline; padding: 10px 12px 12px; }
.cc3r i { grid-row: 1; font-style: normal; font-size: 12px; font-weight: 700; color: #fff; background: var(--acc); width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; align-self: center; }
.cc3r b { font-size: 15px; font-weight: 700; } .cc3r span { grid-column: 2; font-size: 12px; color: #7A8190; } .cc3r em { grid-column: 2; margin-top: 2px; font-style: normal; font-size: 12.5px; font-weight: 600; color: var(--acc); }
.us-edge { position: absolute; z-index: 2; right: 16px; top: 42%; font-size: 13px; font-weight: 600; color: #4A5160; background: rgba(255,255,255,.9); padding: 4px 10px; border-radius: 999px; opacity: 0; transition: opacity .6s ease; }
.v10[data-s="gm"] .us-edge { opacity: 1; transition-delay: 1.2s; }
@media (max-width: 1100px) { .cc3-row { grid-template-columns: repeat(3, 180px); } }
@media (max-width: 809px) {
  .cc3-row { top: 10px; left: 12px; right: 12px; transform: none; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .cc3r p { padding: 6px 7px 8px; column-gap: 5px; } .cc3r b { font-size: 12px; } .cc3r span { display: none; } .cc3r em { grid-column: 1 / -1; font-size: 10.5px; line-height: 1.35; }
  .cc3r i { width: 15px; height: 15px; font-size: 10px; }
  .us-edge { font-size: 11px; right: 8px; }
}

/* ==========================================================
   히어로 v11: 겹쳐 전환하는 가벼운 지도
   ========================================================== */
.hero-v11 { --acc: #2F5BFF; --acc-tint: #E3E9FF; position: relative; background: #fff; color: #0B0C0F; padding-bottom: 8px; }
.v11-top { padding-top: calc(var(--header-h) + 56px); text-align: center; }
.hero-v11 h1 { font-size: 54px; line-height: 1.32; font-weight: 700; letter-spacing: -0.035em; color: #0B0C0F; max-width: none; }
.hero-v11 .ph.is-on { color: var(--acc); }
.hero-v11.is-paused .ph.is-on i::after { animation-play-state: paused; }
.sd-wrap { position: relative; height: 30px; margin-top: 20px; }
.sd { position: absolute; left: 0; right: 0; display: flex; justify-content: center; gap: 12px; font-size: 18px; font-weight: 500; color: #4A5160; opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.sd.is-on { opacity: 1; pointer-events: auto; }
.sd a { color: var(--acc); font-weight: 600; } .sd a::after { content: " →"; }
.v11-panel { position: relative; margin-top: 32px; height: min(56vh, 560px); min-height: 420px; overflow: hidden; border-radius: 0; }
.v11-panel::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0) 10%, rgba(255,255,255,0) 90%, #fff 100%), linear-gradient(180deg, #fff 0%, rgba(255,255,255,0) 8%, rgba(255,255,255,0) 90%, #fff 100%); }
.vw { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; opacity: 0; transition: opacity .9s ease; --k: 1; }
.vw.is-on { opacity: 1; }
.vw .lnd { fill: #EEF0F3; stroke: #DDE1E7; stroke-width: .6px; vector-effect: non-scaling-stroke; }
.vw .lnd.id { fill: var(--acc-tint); stroke: #B9C6FF; }
.vw[data-v="mt"] .lnd.kr, .vw[data-v="gm"] .lnd.kr { fill: var(--acc-tint); stroke: #B9C6FF; }
.vw .mk { fill: none; stroke: var(--acc); stroke-width: 9px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.vw .mk.ctry { stroke: #0B0C0F; stroke-width: 6px; }
.vw .arc { fill: none; stroke: var(--acc); stroke-width: 1.6px; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-dasharray: 2 6; opacity: 0; }
.vw .arc.main { stroke-width: 2.6px; stroke-dasharray: none; }
.vw.is-on .arc { animation: gl-fade 1s ease forwards; animation-delay: calc(var(--d, 0s) + .5s); }
.vw .lb { fill: #0B0C0F; font-size: 14px; font-weight: 600; font-family: var(--font); paint-order: stroke; stroke: #fff; stroke-width: 4px;
  transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) scale(var(--k)) translate(calc(var(--dx) * 1px), calc(var(--dy) * 1px)); }
.vw .lb.end { text-anchor: end; }
.vw .lb.ctry { fill: #4A5160; }
.vw .lb.num-b { fill: var(--acc); font-size: 13px; font-weight: 700; }
.hero-v11 .cc3-row, .hero-v11 .mt-stat { z-index: 2; }
.hero-v11[data-s="co"] .cc3-row { opacity: 1; transition-delay: .5s; pointer-events: auto; }
.hero-v11[data-s="mt"] .mt-stat { opacity: 1; transition-delay: .7s; }
.hero-v11 ~ .at-stats { background: #fff; color: #0B0C0F; border-top: 1px solid #EDEFF2; }
.hero-v11 ~ .at-stats dd { color: #0B0C0F; } .hero-v11 ~ .at-stats dt { color: #7A8190; } .hero-v11 ~ .at-stats dl > div + div { border-left-color: #EDEFF2; }
body:has(.hero-v11) .site-header, body:has(.hero-v11) .site-header.is-over-hero { color: #0B0C0F; background: rgba(255,255,255,.96); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom-color: transparent; }
@media (max-width: 1100px) { .hero-v11 h1 { font-size: 40px; } }
@media (max-width: 809px) {
  .v11-top { padding-top: calc(var(--header-h) + 36px); }
  .hero-v11 h1 { font-size: 27px; } .sd { font-size: 14px; flex-direction: column; align-items: center; gap: 2px; } .sd-wrap { height: 44px; }
  .v11-panel { height: 60vh; min-height: 380px; margin-top: 20px; padding: 0; }
  .vw .lb { font-size: 12px; }
}
.hero-v11 { display: block; min-height: 0; justify-content: initial; overflow: hidden; }
.hero-v11::before { display: none; }
.vw use { stroke-width: .6px; }
.vw .ul { fill: #EEF0F3; stroke: #DDE1E7; }
.vw .ui { fill: var(--acc-tint); stroke: #B9C6FF; }
.vw .uk { fill: #EEF0F3; stroke: #DDE1E7; }
.vw[data-v="mt"] .uk, .vw[data-v="gm"] .uk { fill: var(--acc-tint); stroke: #B9C6FF; }
.vw .lb.m { display: none; }
@media (max-width: 809px) { .vw .lb.d { display: none; } .vw .lb.m { display: inline; } }
/* v11: 근거 한 줄 · 글로벌 범례 · 줌 전환 */
.proof-row { margin-top: 18px; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.proof-row li { font-size: 14px; color: #4A5160; padding: 6px 12px; border-radius: 999px; background: #F3F5F8; }
.proof-row b { color: #0B0C0F; font-weight: 700; margin-right: 4px; }
.v11-top .sd-wrap { margin-top: 22px; }
.gm-leg { position: absolute; z-index: 2; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; background: #fff; box-shadow: 0 8px 24px -10px rgba(5,17,45,.25); font-size: 14px; font-weight: 600; color: #0B0C0F; white-space: nowrap; opacity: 0; transition: opacity .6s ease; }
.gm-leg i { width: 8px; height: 8px; border-radius: 50%; background: #0B0C0F; }
.gm-leg span { font-weight: 500; color: #4A5160; }
.hero-v11[data-s="gm"] .gm-leg { opacity: 1; transition-delay: .9s; }
.vw { transform-origin: 50% 50%; transition: opacity .9s ease; }
.vw.zooming { transition: opacity .7s ease, transform 1.6s cubic-bezier(.22, .8, .24, 1); will-change: transform, opacity; }
@media (max-width: 809px) { .proof-row li { font-size: 12px; padding: 4px 9px; } .gm-leg { font-size: 12px; } .gm-leg span { display: none; } }
/* v11 클리닉: 카드 ↔ 지점 연결선 */
.hero-v11 .lead { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; overflow: visible; opacity: 0; transition: opacity .6s ease; }
.hero-v11[data-s="co"] .lead { opacity: 1; transition-delay: .9s; }
.hero-v11 .lead path { fill: none; stroke: var(--acc); stroke-width: 1.4; stroke-dasharray: 3 4; }
.hero-v11 .lead circle { fill: var(--acc); }
.vw .mk.ring { stroke: color-mix(in srgb, var(--acc) 18%, transparent); stroke-width: 26px; }
.vw .lb.rg { fill: #9AA6C8; font-size: 12px; letter-spacing: .3em; font-weight: 700; stroke: none; }
.cc3r i { display: none; }
.cc3r p { grid-template-columns: minmax(0, 1fr); }
.cc3r b { font-size: 16px; } .cc3r span { grid-column: 1; } .cc3r em { grid-column: 1; }
@media (max-width: 809px) { .cc3r b { font-size: 12px; } .cc3r span { display: block; font-size: 10.5px; } }

/* myvenus.io 로고 띠 */
.mvl { background: #F7F6F2; padding: 44px 0; overflow: hidden; }
.mvl-track { display: flex; width: max-content; animation: mvl-run 48s linear infinite; }
.mvl ul { display: flex; align-items: center; gap: 72px; padding-right: 72px; }
.mvl img { height: 44px; width: auto; display: block; filter: brightness(.82); }
@keyframes mvl-run { to { transform: translateX(-50%); } }
.mvl:hover .mvl-track { animation-play-state: paused; }
@media (max-width: 809px) { .mvl { padding: 28px 0; } .mvl img { height: 32px; } .mvl ul { gap: 44px; padding-right: 44px; } }
@media (prefers-reduced-motion: reduce) { .mvl-track { animation: none; flex-wrap: wrap; width: auto; } }

/* 여정 05: 리마인드 (myvenus.io 구조) */
.sc-rem { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: stretch; }
.rem-steps { display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.rem-steps li { position: relative; padding: 12px 0 12px 20px; border-left: 2px solid rgba(255,255,255,.12); }
.js-journey .rem-steps li[data-at] { opacity: .4; transform: none; transition: opacity .4s ease, border-color .4s ease; }
.js-journey .rem-steps li[data-at].on { opacity: 1; }
.rem-steps li b { display: flex; gap: 10px; align-items: baseline; font-size: 17px; color: #fff; font-weight: 600; }
.rem-steps li b .num { font-size: 13px; color: var(--glow); }
.rem-steps li p { margin-top: 4px; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.55); }
.wa { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #F4EFE8; box-shadow: 0 30px 70px -24px rgba(0,0,0,.6); max-height: 520px; }
.wa-h { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: #F4EFE8; border-bottom: 1px solid #E6DED3; color: #1A1A1A; }
.wa-av { width: 34px; height: 34px; border-radius: 50%; background: #7C2629; color: #fff; font-size: 7px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.wa-h b { font-size: 15px; } .wa-h i { font-style: normal; font-size: 11px; color: #fff; background: #1D9BF0; border-radius: 50%; width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; }
.wa-body { position: relative; flex: 1; min-height: 360px; background: #F4EFE8 radial-gradient(circle, rgba(0,0,0,.06) 1px, transparent 1.4px) 0 0 / 22px 22px; }
.wa-m { position: absolute; left: 14px; right: 14px; top: 14px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.js-journey .wa-m[data-at] { opacity: 0; transform: translateY(10px); transition: opacity .45s ease, transform .5s ease; }
.js-journey .wa-m[data-at].on { opacity: 1; transform: none; }
.wa-chip { font-size: 12px; color: #6B5A48; background: #fff; padding: 4px 12px; border-radius: 999px; }
.wa-b { align-self: stretch; background: #fff; border-radius: 12px; overflow: hidden; color: #1A1A1A; box-shadow: 0 1px 1px rgba(0,0,0,.06); }
.wa-b img { width: 100%; display: block; }
.wa-b p { padding: 10px 12px 4px; font-size: 13px; line-height: 1.5; }
.wa-b time { display: block; text-align: right; padding: 0 12px 8px; font-size: 10.5px; color: #9A8F82; }
.wa-in { margin: 10px 12px 12px; padding: 9px 14px; border-radius: 999px; background: #fff; font-size: 13px; color: #A99E91; }
@media (max-width: 1100px) { .sc-rem { grid-template-columns: minmax(0, 1fr); gap: 16px; } .wa { max-width: 340px; width: 100%; margin: 0 auto; } }
@media (max-width: 809px) { .rem-steps li p { display: none; } .rem-steps li { padding: 7px 0 7px 14px; } .rem-steps li b { font-size: 14px; } }
/* v11 카메라: 지도 한 장 + 확대·축소 이동 */
.vw1 { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; transform-origin: 0 0; --k: 1; }
.vw1.cam { transition: transform 2.2s cubic-bezier(.45, 0, .2, 1); will-change: transform; }
.vw1.fade { transition: opacity .5s ease; opacity: 0; }
.vw1 use { stroke-width: .6px; }
.vw1 .ul { fill: #EEF0F3; stroke: #DDE1E7; } .vw1 .ui { fill: var(--acc-tint); stroke: #B9C6FF; } .vw1 .uk { fill: #EEF0F3; stroke: #DDE1E7; }
.hero-v11[data-s="mt"] .vw1 .uk, .hero-v11[data-s="gm"] .vw1 .uk { fill: var(--acc-tint); stroke: #B9C6FF; }
.vw1 .sc { opacity: 0; transition: opacity .5s ease; }
.vw1 .sc.is-on { opacity: 1; transition-delay: 1.9s; }
.vw1 .mk { fill: none; stroke: var(--acc); stroke-width: 9px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.vw1 .mk.ctry { stroke: #0B0C0F; stroke-width: 6px; }
.vw1 .mk.ring { stroke: color-mix(in srgb, var(--acc) 18%, transparent); stroke-width: 26px; }
.vw1 .arc { fill: none; stroke: var(--acc); stroke-width: 1.6px; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-dasharray: 2 6; opacity: 0; }
.vw1 .arc.main { stroke-width: 2.6px; stroke-dasharray: none; }
.vw1 .sc.is-on .arc { animation: gl-fade 1s ease forwards; animation-delay: calc(var(--d, 0s) + 2.1s); }
.vw1 .lb { fill: #0B0C0F; font-size: 14px; font-weight: 600; font-family: var(--font); paint-order: stroke; stroke: #fff; stroke-width: 4px;
  transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) scale(var(--k)) translate(calc(var(--dx) * 1px), calc(var(--dy) * 1px)); }
.vw1 .lb.end { text-anchor: end; } .vw1 .lb.ctry { fill: #4A5160; } .vw1 .lb.rg { fill: #9AA6C8; font-size: 12px; letter-spacing: .3em; font-weight: 700; stroke: none; }
.vw1 .lb.m { display: none; }
@media (max-width: 809px) { .vw1 .lb.d { display: none; } .vw1 .lb.m { display: inline; } .vw1 .lb { font-size: 12px; } }
.hero-v11[data-s="co"] .cc3-row, .hero-v11[data-s="co"] .lead { transition-delay: 1.9s; }
.hero-v11[data-s="mt"] .mt-stat, .hero-v11[data-s="gm"] .gm-leg { transition-delay: 2.1s; }

/* ==========================================================
   히어로 v12: 지도 위 4막 이야기
   ========================================================== */
.hero-st { --acc: #2F5BFF; --acc-tint: #E3E9FF; position: relative; display: block; min-height: max(100svh, 760px); background: #fff; color: #0B0C0F; overflow: hidden; justify-content: initial; transition: background-color 1.4s ease; }
.hero-st::before { display: none; }
.st-map { position: absolute; left: 0; right: 0; top: calc(var(--header-h) + 250px); bottom: 64px; transition: opacity 1.4s ease, filter 1.4s ease; }
.st-map::after { content: ""; position: absolute; inset: -2px; pointer-events: none; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0) 8%, rgba(255,255,255,0) 92%, #fff 100%), linear-gradient(180deg, #fff 0%, rgba(255,255,255,0) 10%, rgba(255,255,255,0) 88%, #fff 100%); transition: opacity 1.4s ease; }
.st-top { position: relative; z-index: 3; padding-top: calc(var(--header-h) + 52px); text-align: center; transition: opacity .8s ease, transform .8s ease; }
.st-h { font-size: 56px; line-height: 1.28; font-weight: 700; letter-spacing: -0.035em; max-width: none; }
.hv-wrap { position: relative; display: block; height: 1.28em; overflow: hidden; }
.hv { position: absolute; left: 0; right: 0; color: var(--acc); opacity: 0; transform: translateY(70%); transition: opacity .6s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.hv.is-on { opacity: 1; transform: none; }
.hv.is-out { opacity: 0; transform: translateY(-70%); }
.st-fix { display: block; }
.hsub-wrap { position: relative; height: 60px; margin-top: 18px; }
.hsub { position: absolute; left: 0; right: 0; font-size: 18px; line-height: 1.6; font-weight: 500; color: #4A5160; opacity: 0; transition: opacity .6s ease .15s; }
.hsub.is-on { opacity: 1; }
/* 지점 핀 */
.hpin-layer { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.hpin { position: absolute; display: flex; align-items: center; gap: 10px; padding: 6px 12px 6px 6px; background: #fff; border-radius: 12px; box-shadow: 0 1px 2px rgba(5,17,45,.06), 0 14px 30px -12px rgba(5,17,45,.3);
  opacity: 0; transform: translate(var(--tx), var(--ty)) scale(.9); transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1); white-space: nowrap; }
.hpin img { width: 64px; height: 48px; object-fit: cover; border-radius: 8px; }
.hpin p { display: flex; flex-direction: column; gap: 1px; }
.hpin em { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--acc); }
.hpin b { font-size: 16px; font-weight: 700; }
.hpin span { font-size: 12px; color: #7A8190; }
.hpin::after { content: ""; position: absolute; width: 1px; background: var(--acc); }
.hpin.l { --tx: calc(-100% - 22px); --ty: -110%; } .hpin.t { --tx: -50%; --ty: calc(-100% - 70px); } .hpin.r { --tx: 22px; --ty: 20%; }
.hero-st[data-s="co"] .hpin.show { opacity: 1; transform: translate(var(--tx), var(--ty)) scale(1); }
.vw1 .mk.cl { opacity: 0; transition: opacity .4s ease; }
.vw1 .mk.cl.show { opacity: 1; }
.hero-st[data-s="co"] .vw1 .sc[data-v="co"] { opacity: 1; transition-delay: 0s; }
.vw1 .mk.hub { stroke: var(--acc); stroke-width: 12px; }
/* 단계 점 */
.st-steps { position: absolute; z-index: 5; left: 50%; bottom: 22px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; }
.stp { width: 34px; height: 20px; display: flex; align-items: center; }
.stp i { display: block; width: 100%; height: 3px; border-radius: 3px; background: #D5DAE2; overflow: hidden; position: relative; }
.stp i::after { content: ""; position: absolute; inset: 0; background: var(--acc); transform: scaleX(0); transform-origin: left; }
.stp.done i::after { transform: scaleX(1); }
.stp.is-on i::after { animation: pf-progress var(--st-dur, 7s) linear forwards; }
.st-replay { margin-left: 10px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.75); }
.st-replay:hover { color: #fff; }
/* 마무리: 어두워지며 스포트라이트 */
.st-fin { position: absolute; inset: 0; z-index: 4; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 24px; opacity: 0; pointer-events: none; transition: opacity 1.2s ease .6s; }
.st-fin::before { content: ""; position: absolute; left: 50%; top: 48%; width: 1100px; height: 1100px; margin: -550px 0 0 -550px; border-radius: 50%; background: radial-gradient(circle, rgba(88,120,255,.42) 0%, rgba(47,91,255,.14) 34%, rgba(8,9,12,0) 66%); transform: scale(.4); opacity: 0; transition: transform 2.4s cubic-bezier(.2,.7,.2,1) .4s, opacity 1.6s ease .4s; z-index: -1; }
.fin-k { font-size: 14px; font-weight: 700; letter-spacing: .5em; color: rgba(255,255,255,.6); transform: translateY(12px); opacity: 0; transition: all 1s ease 1.2s; }
.fin-h { margin-top: 18px; font-size: 60px; line-height: 1.3; font-weight: 700; letter-spacing: -0.035em; color: #fff; transform: translateY(24px) scale(.97); opacity: 0; transition: all 1.4s cubic-bezier(.2,.7,.2,1) 1.5s; }
.st-fin .btn-row { margin-top: 36px; justify-content: center; opacity: 0; transition: opacity 1s ease 2.4s; }
.fin-ghost { border: 1px solid rgba(255,255,255,.35); color: #fff; }
.hero-st.is-fin { background: #07080B; }
.hero-st.is-fin .st-map { opacity: .28; filter: grayscale(1) brightness(.5); }
.hero-st.is-fin .st-map::after { opacity: 0; }
.hero-st.is-fin .st-top { opacity: 0; transform: translateY(-20px); pointer-events: none; }
.hero-st.is-fin .st-fin { opacity: 1; pointer-events: auto; }
.hero-st.is-fin .st-fin::before { transform: scale(1); opacity: 1; }
.hero-st.is-fin .fin-k, .hero-st.is-fin .fin-h, .hero-st.is-fin .st-fin .btn-row { opacity: 1; transform: none; }
.hero-st.is-fin .stp i { background: rgba(255,255,255,.2); }
body:has(.hero-st) .site-header { color: #0B0C0F; background: rgba(255,255,255,.96); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom-color: transparent; transition: background-color 1.4s ease, color 1.4s ease; }
body:has(.hero-st.is-fin) .site-header.is-over-hero { background: rgba(7,8,11,.9); color: #fff; }
.hero-st ~ .at-stats { background: #fff; color: #0B0C0F; border-top: 1px solid #EDEFF2; }
.hero-st ~ .at-stats dd { color: #0B0C0F; } .hero-st ~ .at-stats dt { color: #7A8190; } .hero-st ~ .at-stats dl > div + div { border-left-color: #EDEFF2; }
@media (max-width: 1100px) { .st-h { font-size: 42px; } .fin-h { font-size: 44px; } .st-map { top: calc(var(--header-h) + 230px); } }
@media (max-width: 809px) {
  .hero-st { min-height: max(100svh, 680px); }
  .st-top { padding-top: calc(var(--header-h) + 32px); }
  .st-h { font-size: 27px; } .hv-wrap { height: 2.5em; } .hsub { font-size: 14px; } .hsub br { display: none; } .hsub-wrap { height: 70px; }
  .st-map { top: calc(var(--header-h) + 230px); bottom: 56px; }
  .hpin { padding: 4px 8px 4px 4px; gap: 6px; } .hpin img { width: 40px; height: 32px; } .hpin b { font-size: 12.5px; } .hpin span { display: none; } .hpin em { font-size: 10px; }
  .hpin.l { --tx: -60%; --ty: calc(-100% - 16px); } .hpin.t { --tx: -40%; --ty: 18px; } .hpin.r { --tx: -70%; --ty: 58px; }
  .fin-h { font-size: 28px; } .fin-h br { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hv, .hpin, .st-fin, .st-fin *, .st-fin::before { transition: none !important; } }
/* 로고 띠: 사이트 톤에 맞춤 (흰 바탕 · 작고 옅게 · 양끝 페이드) */
.mvl { background: #fff; padding: 36px 0 40px; border-top: 1px solid #EDEFF2; border-bottom: 1px solid #EDEFF2; position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); }
.mvl img { height: 30px; filter: grayscale(1) brightness(.55); opacity: .45; transition: opacity .3s ease; }
.mvl img:hover { opacity: .8; }
.mvl ul { gap: 64px; padding-right: 64px; }
@media (max-width: 809px) { .mvl img { height: 22px; } .mvl ul { gap: 40px; padding-right: 40px; } }
/* v12 보정 */
.hero-st .st-h { font-size: 56px; line-height: 1.28; max-width: none; margin: 0 auto; }
.hero-st .hv-wrap { height: 1.3em; }
.hero-st .hv { white-space: nowrap; }
.hero-st .st-steps { position: static; transform: none; justify-content: center; margin-top: 18px; }
.hero-st .st-map { top: calc(var(--header-h) + 290px); }
.st-replay { margin-top: 22px; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.6); text-decoration: underline; text-underline-offset: 4px; }
.st-replay:hover { color: #fff; }
@media (max-width: 1100px) { .hero-st .st-h { font-size: 42px; } }
@media (max-width: 809px) { .hero-st .st-h { font-size: 26px; } .hero-st .hv { white-space: normal; } .hero-st .hv-wrap { height: 2.6em; } .hero-st .st-map { top: calc(var(--header-h) + 270px); } }
/* 07 리포트: 한 줄 4칸, 잘림 없이 */
.sc-loop .rgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sc-loop .rc-svg { height: 120px; }
@media (max-width: 1100px) { .sc-loop .rgrid { grid-template-columns: 1fr 1fr; } }
/* v12: 지도 틀 안으로 · 부드러운 가장자리 · 투명 네비 */
.hero-st .st-map { overflow: hidden; top: calc(var(--header-h) + 250px); bottom: 0; }
.hero-st .st-map::after { background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0) 14%, rgba(255,255,255,0) 86%, #fff 100%), linear-gradient(180deg, #fff 0%, rgba(255,255,255,0) 22%, rgba(255,255,255,0) 84%, #fff 100%); }
.hero-st.is-fin .st-map::after { opacity: 0; }
body:has(.hero-st) .site-header.is-over-hero { background: transparent; }
body:has(.hero-st.is-fin) .site-header.is-over-hero { background: transparent; color: #fff; }
.hero-st .st-top { padding-top: calc(var(--header-h) + 64px); }
/* 07 리포트 v2 */
.rp2 { display: grid; grid-template-columns: minmax(0, 1fr) 320px; min-height: 0; }
.rp2-main { padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.rp2-big .rc { border: 0; padding: 0; }
.rp2-big .rc-h span { font-size: 15px; }
.rp2-big .rc-svg { height: 190px; }
.rp2-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.rp2-tiles .rc-svg { height: 64px; } .rp2-tiles .rc-x { display: none; }
.rp2-ai { border-left: 1px solid #EEF0F4; background: #FAFBFC; padding: 18px; display: flex; flex-direction: column; gap: 10px; color: var(--ink); }
.ai-h { display: flex; align-items: center; gap: 8px; }
.ai-h .bot { width: 28px; height: 28px; border-radius: 8px; background: var(--acc, #2F5BFF); color: #fff; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.ai-h b { font-size: 13.5px; } .ai-h time { margin-left: auto; font-size: 11.5px; color: #9AA3B2; }
.ai-t { font-size: 15px; font-weight: 700; }
.rp2-ai ul { display: flex; flex-direction: column; gap: 10px; }
.rp2-ai li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 6px; font-size: 13px; line-height: 1.55; color: #3A4150; }
.rp2-ai li i { width: 18px; height: 18px; border-radius: 6px; margin-top: 1px; }
.rp2-ai i.up { background: #E3E9FF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 8l3-4 3 4' fill='none' stroke='%232F5BFF' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.rp2-ai i.ok { background: #E6F7EE url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.5l2 2 4-5' fill='none' stroke='%2311905A' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.rp2-ai i.todo { background: #FFF1E6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='2' fill='%23C2570C'/%3E%3C/svg%3E") center/12px no-repeat; }
.ai-f { margin-top: auto; font-size: 11.5px; color: #9AA3B2; }
.sc-loop .jw { width: 100%; }
@media (max-width: 1100px) { .rp2 { grid-template-columns: minmax(0, 1fr); } .rp2-ai { border-left: 0; border-top: 1px solid #EEF0F4; } }
@media (max-width: 809px) { .rp2-tiles { grid-template-columns: 1fr 1fr 1fr; gap: 6px; } .rp2-big .rc-svg { height: 130px; } }
.rp2-big .rc-svg { height: auto; width: 100%; }
.rp2-big .rc-x { margin-top: 2px; }

/* 마무리: 어두운 흐림 가장자리, 경계 없음 */
.hero-st.is-fin .st-map::after { opacity: 1; background: linear-gradient(90deg, #07080B 0%, rgba(7,8,11,0) 14%, rgba(7,8,11,0) 86%, #07080B 100%), linear-gradient(180deg, #07080B 0%, rgba(7,8,11,0) 30%, rgba(7,8,11,0) 80%, #07080B 100%); }
.hero-st .st-map::after { transition: none; }

/* 지도 가장자리: 필터 밖 별도 레이어, 배경색과 같은 속도로 전환 */
@property --edge { syntax: '<color>'; inherits: true; initial-value: #fff; }
.hero-st { --edge: #fff; transition: background-color 1.4s ease, --edge 1.4s ease; }
.hero-st.is-fin { --edge: #07080B; }
.hero-st .st-map::after, .hero-st.is-fin .st-map::after { content: none; }
.hero-st .st-veil { position: absolute; left: -2px; right: -2px; top: calc(var(--header-h) + 248px); bottom: -2px; pointer-events: none; z-index: 1;
  background: linear-gradient(90deg, var(--edge) 0%, transparent 14%, transparent 86%, var(--edge) 100%), linear-gradient(180deg, var(--edge) 0%, transparent 24%, transparent 80%, var(--edge) 100%); }
@media (max-width: 809px) {
  .hero-st .st-h { font-size: min(26px, 6.3vw); }
  .hero-st .hv { white-space: nowrap; }
  .hero-st .hv-wrap { height: 1.3em; }
  .hero-st .hv { transform: translateY(100%); }
  .hero-st .hv.is-on { transform: none; }
  .hero-st .hv.is-out { transform: translateY(-100%); }
}

/* 마무리 v3: 반전 없이 지도가 끝까지 주인공. 세계 전체로 천천히 물러나며 모든 연결이 켜지고, 문장은 흰 빛 위에 */
.vw1.cam.slow { transition: transform 5.4s cubic-bezier(.22, .61, .2, 1); }
.hero-st.is-fin { background: #fff; --edge: #fff; }
.hero-st.is-fin .st-map { opacity: 1; filter: none; }
.st-fin { justify-content: flex-start; padding-top: calc(var(--header-h) + 13vh); }
.st-fin::before { left: 50%; top: calc(var(--header-h) + 13vh + 110px); width: 1400px; height: 620px; margin: -310px 0 0 -700px; border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 38%, rgba(255,255,255,.55) 56%, rgba(255,255,255,0) 72%); }
.fin-k { letter-spacing: 0; font-size: 17px; font-weight: 700; color: var(--brand); }
.fin-h { font-size: 64px; line-height: 1.28; color: #0B0C0F; text-shadow: none; }
.fin-ghost { border: 1px solid #D5DAE2; color: #0B0C0F; background: #fff; }
.fin-ghost:hover { border-color: #0B0C0F; }
.hero-st.is-fin .vw1 .mk.hub { stroke-width: 16px; }
body:has(.hero-st.is-fin) .site-header.is-over-hero { background: transparent; color: var(--ink); }
@media (max-width: 1100px) { .fin-h { font-size: 46px; } .st-fin::before { width: 1000px; margin-left: -500px; } }
@media (max-width: 809px) { .fin-h { font-size: 28px; } .fin-k { font-size: 14px; } .st-fin { padding-top: calc(var(--header-h) + 9vh); } .st-fin::before { top: calc(var(--header-h) + 9vh + 70px); width: 640px; height: 420px; margin: -210px 0 0 -320px; } }

/* ================= 홈 개편 2026-09-29: 섹션 머리 공통 + 성장·연혁 + 소식 ================= */
.head .hd-l { min-width: 0; }
.head .eb { font-size: 14px; line-height: 1; font-weight: 700; letter-spacing: .02em; color: var(--brand); margin: 0 0 16px; max-width: none; }
.band.night .head .eb { color: var(--glow); }
.mvl { padding: 30px 0 38px; }
.mvl-cap { text-align: center; font-size: 14px; font-weight: 600; color: #6B7480; margin: 0 0 22px; letter-spacing: -0.01em; }

.gr-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; }
.gr-cards > div { background: #fff; border-radius: 20px; padding: 36px 32px 34px; display: flex; flex-direction: column; min-height: 280px; }
.gr-cards dd { order: 0; margin: 0; font-size: 72px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: var(--ink); }
.gr-cards dd small { font-size: .42em; font-weight: 700; margin-left: 4px; letter-spacing: -0.02em; }
.gr-cards dt { order: 1; margin-top: auto; padding-top: 40px; font-size: 18px; font-weight: 700; color: var(--ink); }
.gr-cards p { order: 2; margin-top: 8px; font-size: 15.5px; line-height: 1.6; color: #5B6572; }

.gr-hist { margin-top: 72px; }
.gr-hist-h { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding-bottom: 20px; border-bottom: 1px solid #DCDFE4; }
.gr-hist-h h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.hist-row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.hist-row li { position: relative; padding: 28px 20px 0 0; }
.hist-row li::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: #fff; border: 2px solid #B9C0CB; }
.hist-row li.now::before { background: var(--brand); border-color: var(--brand); }
.hist-row .num { display: block; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 12px; }
.hist-row li.now .num { color: var(--brand); }
.hist-row p { font-size: 15px; line-height: 1.55; color: #3D4652; }
.hist-row p + p { margin-top: 4px; color: #6B7480; }

.lt-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: stretch; }
.lt-feat { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: var(--surface-2, #F6F7F9); color: var(--ink); }
.lt-feat figure { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.lt-feat img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease, ease); }
.lt-feat:hover img { transform: scale(1.03); }
.lt-feat > div { padding: 26px 30px 30px; }
.lt-feat h3 { margin-top: 10px; font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.lt-meta { display: flex; gap: 10px; font-size: 14px; color: #6B7480; }
.lt-meta span { font-weight: 600; color: #3D4652; }
.lt-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.lt-list li { flex: 1; border-top: 1px solid #E4E7EB; }
.lt-list li:last-child { border-bottom: 1px solid #E4E7EB; }
.lt-list a { display: flex; flex-direction: column; justify-content: center; height: 100%; padding: 24px 40px 24px 0; position: relative; color: var(--ink); }
.lt-list a::after { content: ""; position: absolute; right: 6px; top: 50%; width: 8px; height: 8px; border-top: 1.6px solid currentColor; border-right: 1.6px solid currentColor; transform: translateY(-50%) rotate(45deg); opacity: .4; transition: transform .25s ease, opacity .25s ease; }
.lt-list a:hover::after { opacity: 1; transform: translate(3px, -50%) rotate(45deg); }
.lt-list a:hover h3, .lt-feat:hover h3 { color: var(--brand); }
.lt-list h3 { margin-top: 8px; font-size: 19px; line-height: 1.45; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; transition: color .2s ease; }

@media (max-width: 1100px) {
  .gr-cards dd { font-size: 56px; }
  .hist-row { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 36px; }
  .lt-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 809px) {
  .head .eb { font-size: 13px; margin-bottom: 12px; }
  .mvl-cap { font-size: 13px; margin-bottom: 18px; }
  .gr-cards { grid-template-columns: 1fr; gap: 12px; }
  .gr-cards > div { min-height: 0; padding: 28px 24px; }
  .gr-cards dd { font-size: 48px; }
  .gr-cards dt { padding-top: 22px; font-size: 17px; }
  .gr-cards p br { display: none; }
  .gr-hist { margin-top: 52px; }
  .hist-row { grid-template-columns: 1fr; row-gap: 0; border-left: 1px solid #DCDFE4; margin-left: 4px; }
  .hist-row li { padding: 0 0 26px 22px; }
  .hist-row li::before { top: 6px; left: -5px; }
  .hist-row .num { font-size: 20px; margin-bottom: 6px; }
  .lt-feat h3 { font-size: 20px; }
  .lt-feat > div { padding: 20px 20px 24px; }
  .lt-list h3 { font-size: 17px; }
  .lt-list a { padding: 20px 32px 20px 0; }
}

/* 로고 띠 머리: 두 줄 선언형 */
.mvl { padding: 64px 0 56px; }
.mvl-cap { text-align: center; font-size: 26px; line-height: 1.5; font-weight: 700; letter-spacing: -0.025em; color: var(--ink); margin: 0 auto 40px; padding: 0 20px; }
@media (max-width: 809px) { .mvl { padding: 44px 0 40px; } .mvl-cap { font-size: 19px; margin-bottom: 28px; } }
/* 마무리 v3 보정: 문장은 위, 지도는 아래로. 빛은 글자 뒤에만 */
.st-fin { padding-top: calc(var(--header-h) + 8vh); }
.st-fin::before { top: calc(var(--header-h) + 8vh + 100px); width: 1100px; height: 380px; margin: -190px 0 0 -550px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.95) 0%, rgba(255,255,255,.8) 45%, rgba(255,255,255,0) 72%); }
.hero-st.is-fin .vw1 .ul, .hero-st.is-fin .vw1 .uk { fill: #E8EBF1; transition: fill 1.4s ease; }
.hero-st.is-fin .vw1 .mk.ctry { stroke: var(--acc); }
.hero-st.is-fin .vw1 .arc { stroke-dasharray: 2 5; }
@media (max-width: 1100px) { .st-fin::before { width: 900px; margin-left: -450px; } }
@media (max-width: 809px) { .st-fin { padding-top: calc(var(--header-h) + 6vh); } .st-fin::before { top: calc(var(--header-h) + 6vh + 70px); width: 600px; height: 300px; margin: -150px 0 0 -300px; } }
/* 마무리 → 첫 장면: 마무리 문장이 먼저 빠지고, 첫 장면 문장은 그다음에 */
.st-fin { transition: opacity .45s ease; }
.hero-st.is-fin .st-fin { transition: opacity 1.2s ease .6s; }
.hero-st:not(.is-fin) .st-top { transition-delay: .5s; }
/* 한국·세계 장면 카드 */
.hero-st .hpin.show { opacity: 1; transform: translate(var(--tx), var(--ty)) scale(1); }
.hpin.stat, .hpin.txt { padding: 12px 16px; }
.hpin.stat b { font-size: 30px; line-height: 1.05; letter-spacing: -0.03em; color: var(--acc); font-variant-numeric: tabular-nums; }
.hpin.stat em { color: #0B0C0F; font-size: 12px; }
.hpin.txt b { font-size: 16px; }
@media (max-width: 809px) {
  .hpin.stat, .hpin.txt { padding: 8px 10px; }
  .hpin.stat b { font-size: 20px; }
  .hero-st .hpin[data-s="gm"]:not(.txt) span, .hero-st .hpin[data-s="mt"] span { display: none; }
}
/* 릴스·계정 세로 타일 */
.hpin.c { --tx: -50%; --ty: 0px; }
.hpin.media { flex-direction: column; align-items: stretch; gap: 0; padding: 6px; border-radius: 16px; width: 164px; }
.hpin.media figure { margin: 0; aspect-ratio: 9 / 16; border-radius: 11px; overflow: hidden; background: #EEF0F3; }
.hpin.media video, .hpin.media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.hpin.media p { padding: 9px 6px 5px; }
.hpin.media b { font-size: 14px; line-height: 1.35; }
.hpin.media::after { display: none; }
@media (max-width: 1100px) { .hpin.media { width: 128px; } }
@media (max-width: 809px) {
  .hpin.media { width: 92px; padding: 4px; border-radius: 12px; }
  .hpin.media figure { border-radius: 9px; }
  .hpin.media p { padding: 6px 3px 3px; }
  .hpin.media b { font-size: 11px; } .hpin.media em { font-size: 9.5px; }
  .hpin.l.stat { --tx: -30%; --ty: calc(-100% - 18px); }
}
/* 릴스 줄: 장면마다 한 줄로 가지런히 */
.hrow { position: absolute; top: calc(var(--header-h) + 330px); display: flex; gap: 16px; align-items: flex-start; pointer-events: none; }
.hrow[data-s="mt"] { left: 55%; }
.hrow[data-s="gm"] { left: 50%; transform: translateX(-10%); }
.htile { width: 168px; padding: 6px; background: #fff; border-radius: 16px; box-shadow: 0 1px 2px rgba(5,17,45,.06), 0 18px 36px -14px rgba(5,17,45,.32);
  opacity: 0; transform: translateY(18px) scale(.97); transition: opacity .6s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.htile:nth-child(2) { margin-top: 44px; }
.htile.show { opacity: 1; transform: none; }
.htile figure { margin: 0; aspect-ratio: 9 / 16; border-radius: 11px; overflow: hidden; background: #EEF0F3; }
.htile video, .htile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.htile p { display: flex; flex-direction: column; gap: 1px; padding: 9px 6px 5px; }
.htile em { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--acc); }
.htile b { font-size: 14px; line-height: 1.35; font-weight: 700; }
@media (max-width: 1100px) { .htile { width: 136px; } .hrow { top: calc(var(--header-h) + 300px); } }
@media (max-width: 809px) {
  .hrow, .hrow[data-s="mt"], .hrow[data-s="gm"] { left: 50%; transform: translateX(-50%); top: auto; bottom: 56px; gap: 8px; }
  .htile { width: 104px; padding: 4px; border-radius: 12px; }
  .htile:nth-child(2) { margin-top: 24px; }
  .htile figure { border-radius: 9px; }
  .htile p { padding: 6px 3px 3px; } .htile b { font-size: 11px; } .htile em { font-size: 9.5px; }
  .hpin.l.stat { --tx: -20%; --ty: calc(-100% - 260px); }
}
@media (prefers-reduced-motion: reduce) { .htile { transition: none; } }
/* 릴스 줄: 지도 영역 아래 기준 → 절대 안 잘림 */
.hrow { top: auto; bottom: 64px; }
@media (max-height: 820px) and (min-width: 810px) { .htile { width: 140px; } }
@media (max-width: 1100px) { .hrow { top: auto; bottom: 64px; } }
@media (max-width: 809px) { .hrow, .hrow[data-s="mt"], .hrow[data-s="gm"] { bottom: 72px; } }
/* 이전·다음 */
.st-nav { position: absolute; right: 40px; bottom: 22px; z-index: 6; display: flex; align-items: center; gap: 10px; }
.st-arrow { width: 38px; height: 38px; border-radius: 50%; border: 1px solid #D5DAE2; background: rgba(255,255,255,.9); display: grid; place-items: center; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.st-arrow:hover { border-color: #0B0C0F; background: #fff; }
.st-arrow i { width: 8px; height: 8px; border-left: 1.6px solid #0B0C0F; border-bottom: 1.6px solid #0B0C0F; transform: translateX(1.5px) rotate(45deg); }
.st-arrow.nx i { transform: translateX(-1.5px) rotate(-135deg); }
.st-cnt { min-width: 44px; text-align: center; font-size: 13px; color: #7A8190; }
.st-cnt b { color: #0B0C0F; font-weight: 700; }
@media (max-width: 809px) { .st-nav { right: 50%; transform: translateX(50%); bottom: 16px; } .st-arrow { width: 34px; height: 34px; } }
@media (min-width: 810px) { .hero-st { min-height: max(100svh, 680px); } }

/* ================= 여정 장면 규칙 (2026-09-29): 설명은 위 한 자리, 아래는 그림 한 덩어리 =================
   갤러리형(01·04·05·06)과 화면형(02·03·07) 두 가지뿐. 장면 안에 별도 설명 칸 없음, 사진 위 짧은 라벨만 */
.sc-gal { width: 100%; height: 100%; max-height: 460px; }
.sc-gal .gal, .sc-rem.sc-gal { display: flex; gap: 14px; height: 100%; }
.gi { position: relative; margin: 0; height: 100%; flex: 1 1 0; min-width: 0; border-radius: 16px; overflow: hidden; background: #1B1D22; }
.gi.v { flex: 0 0 auto; aspect-ratio: 9 / 16; }
.gi img, .gi video { width: 100%; height: 100%; object-fit: cover; display: block; }
.gi figcaption { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); width: fit-content; padding: 7px 12px; border-radius: 999px; background: rgba(12,13,16,.74); color: #fff; font-size: 13.5px; font-weight: 500; line-height: 1.35; }
.gi figcaption b { font-weight: 700; margin-right: 4px; }
.sc-rem.sc-gal { display: flex; grid-template-columns: none; }
.sc-rem.sc-gal .wa { flex: 0 0 330px; height: 100%; max-width: none; margin: 0; }
.jstage .jscene > .scene.sc-gal { height: 100%; }
@media (max-width: 1100px) {
  .sc-gal, .jstage .jscene > .scene.sc-gal { height: auto; max-height: none; }
  .sc-gal .gal, .sc-rem.sc-gal { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; height: auto; }
  .gi, .gi.v { height: auto; aspect-ratio: 4 / 5; }
  .sc-gal .gal .gi:nth-child(3):last-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .sc-rem.sc-gal .wa { grid-column: 1 / -1; flex: none; width: 100%; max-width: 360px; margin: 0 auto; height: 420px; }
  .gi figcaption { left: 8px; bottom: 8px; max-width: calc(100% - 16px); font-size: 12px; padding: 5px 9px; }
}
@media (max-width: 809px) { .jt .st-desc br, .jsteps .st-desc br { display: none; } }
@media (min-width: 1101px) {
  .jstage .jscene > .scene.sc-gm { height: 100%; max-height: 460px; }
  .sc-gm .reels { height: 100%; display: flex; gap: 14px; }
  .sc-gm .reel, .sc-gm .reel.r1, .sc-gm .reel.r2, .sc-gm .reel.r3, .sc-gm .reel.r4, .sc-gm .reel.r5 { flex: 1 1 0; height: 100%; width: auto; aspect-ratio: auto; margin: 0; transform: none; }
  .sc-gm .reel video { width: 100%; height: 100%; object-fit: cover; }
}
@media (max-width: 1100px) { .jsteps > li > .jscene.is-inline { margin-top: 24px; } }
/* 문의: 고객 시술 상담 안내 */
.cust-note { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 28px 32px; margin-bottom: 40px; border-radius: 20px; background: var(--brand-tint); }
.cust-note .eb { font-size: 14px; font-weight: 700; color: var(--brand); margin-bottom: 8px; }
.cust-note h2 { font-size: 22px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.cust-note p[lang] { margin-top: 6px; font-size: 14px; color: #5B6572; }
.cust-note ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cust-note a { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border-radius: 14px; background: #fff; color: var(--ink); }
.cust-note a b { font-size: 16px; } .cust-note a span { font-size: 13.5px; color: #6B7480; }
.cust-note a:hover b { color: var(--brand); }
@media (max-width: 809px) { .cust-note { grid-template-columns: 1fr; gap: 18px; padding: 22px 20px; } .cust-note h2 { font-size: 19px; } }
.backers > p span { display: block; margin-top: 4px; font-size: 14px; font-weight: 400; color: #6B7480; }
@media (max-width: 809px) { .head p br, .mv .big br, .people p br { display: none; } }

/* ================= 2026-09-29 레이아웃 정리 ================= */
/* 네비: 필요할 때만. 내려가면 숨고 올리면 나옴 */
.site-header { transition: transform .35s cubic-bezier(.2,.7,.2,1), background-color .3s ease, color .3s ease; }
.site-header.is-hidden { transform: translateY(-100%); }
/* 헤더가 숨으므로 고정 장면은 화면 맨 위부터 */
@media (min-width: 1101px) {
  .jstick { top: 0; height: 100vh; padding-top: 40px; }
}
@media (max-width: 1100px) { .jstick { top: 0; } }
/* 좌우 여백: 모든 섹션을 컨테이너(세 개의 사업) 기준선에 */
@media (min-width: 1101px) {
  .jtexts, .jstage, .jprog { max-width: none; }
  .jnote { right: 0; }
}
.closing { padding: 0; }
.closing > .container { max-width: none; padding-inline: 0; }
.closing-card { border-radius: 0; padding: 112px 0 0; }
.closing-inner { max-width: calc(var(--container) + var(--gutter) * 2); padding-inline: var(--gutter); margin: 0 auto; }
@media (max-width: 809px) { .closing-card { padding-top: 64px; } }
.gi.ph { background: #EDEBE6; }
.gi.ph img { object-fit: contain; }
.gi figcaption b.num { margin-right: 6px; color: #9DB0FF; }
@media (min-width: 1101px) { .sc-rem.sc-gal .wa { height: 100%; } }

/* ================= 여정: 넓은 좌우 여백 + 고정 크기 무대 (2026-09-29) ================= */
@media (min-width: 1101px) {
  .journey .head, .journey .jgrid { max-width: 1120px; margin-left: auto; margin-right: auto; }
  .jtexts, .jstage, .jprog { max-width: none; width: 100%; }
  .jstage { flex: none; height: clamp(420px, calc(100vh - 330px), 540px); }
  .jstage .jscene > .scene, .jstage .jscene > .scene.sc-gal, .jstage .jscene > .scene.sc-gm { height: 100%; max-height: none; }
  .jstage .scene > .win { height: 100%; display: flex; flex-direction: column; }
  .jstage .scene > .win > :last-child { flex: 1; min-height: 0; overflow: hidden; }
  .jstage .sc-rem { height: 100%; grid-template-columns: minmax(0, 1fr) 320px; }
  .jstage .sc-rem .wa { height: 100%; }
}
/* 인박스: 채널 아이콘, 말풍선 폭 제한, 주황 대신 코발트 */
.ch .chi { width: 16px; height: 16px; flex: none; }
.ch li { display: flex; align-items: center; gap: 8px; }
.ch li.c-ig { color: #C13584; } .ch li.c-wa { color: #1FA855; } .ch li.c-ml { color: #2F5BFF; } .ch li.c-sv { color: #4A5160; }
.ch li.c-ig, .ch li.c-wa, .ch li.c-ml, .ch li.c-sv { font-weight: 500; }
.ch li .chi + * { color: #0B0C0F; }
.tag .chi { width: 16px; height: 16px; color: #fff; }
.dot.sv, .tag.sv { background: #4A5160; } .tag.ig { background: #C13584; }
.conv .bub { max-width: 74%; }
.handoff { border-color: #C9D5FF; background: #F4F7FF; }
.ho-score, .handoff .send { background: var(--brand); box-shadow: none; animation: none; }
.kc em.dd { background: #E8EEFF; color: #1F47E6; }
/* 04 회복 사진은 오른쪽 장면만 */
.gi.rc img { object-position: 85% 50%; }
/* 네비: 이동 애니메이션을 덮어쓰던 규칙보다 우선 */
.site-header, body:has(.hero-st) .site-header { transition: transform .45s cubic-bezier(.22,.61,.36,1), background-color .5s ease, color .4s ease; will-change: transform; }
.site-header.is-hidden, body:has(.hero-st) .site-header.is-hidden { transform: translateY(-100%); }

/* ================= 리캐치 기준 여백·글자 체계 (2026-09-29 실측: 1440에서 좌우 120 · 제목 48 · 설명 20) ================= */
:root { --container: 1200px; --gutter: 40px; }
@media (max-width: 1100px) { :root { --gutter: 32px; } }
@media (max-width: 809px) { :root { --gutter: 20px; } }
/* 섹션 머리 */
.head h2, .closing-title, .chapter-head h2 { font-size: 48px; line-height: 1.25; font-weight: 700; letter-spacing: -0.025em; }
.head p, .closing-cta p { font-size: 20px; line-height: 1.5; font-weight: 500; }
.head .eb { font-size: 16px; margin-bottom: 18px; }
.page-hero h1 { font-size: 48px; line-height: 1.25; }
.page-hero .lead { font-size: 20px; line-height: 1.5; }
/* 항목 제목 24 · 본문 18 */
.bz h3, .gr-cards dt, .lt-feat h3, .reasons h3, .values h3, .people h3, .cities h3 { font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.bz-d, .gr-cards p, .reasons p, .values p, .people p, .cities p, .hist-row p { font-size: 18px; line-height: 1.55; }
.lt-list h3 { font-size: 20px; }
.gr-cards dd { font-size: 64px; }
/* 히어로 */
.hero-st .st-h { font-size: 48px; line-height: 1.3; }
.hsub { font-size: 20px; line-height: 1.5; }
.hsub-wrap { height: 64px; }
.fin-h { font-size: 52px; line-height: 1.3; }
.mvl-cap { font-size: 25px; line-height: 1.5; font-weight: 600; }
/* 여정: 한 단계 더 안쪽으로 (새 챕터) · 단계 제목 28 · 설명 20 · Step 16 */
@media (min-width: 1101px) {
  .journey .head, .journey .jgrid { max-width: 1040px; }
  .jp-n, .jp-n b { font-size: 16px; }
  .jt h3 { font-size: 30px; line-height: 1.25; }
  .jt .st-desc { font-size: 20px; line-height: 1.5; font-weight: 500; max-width: none; }
  .jt-wrap { min-height: 150px; }
}
@media (max-width: 1100px) {
  .head h2, .closing-title, .chapter-head h2, .page-hero h1 { font-size: 38px; }
  .hero-st .st-h { font-size: 40px; } .fin-h { font-size: 42px; }
}
@media (max-width: 809px) {
  .head h2, .closing-title, .chapter-head h2, .page-hero h1 { font-size: 28px; line-height: 1.35; }
  .head p, .closing-cta p, .page-hero .lead { font-size: 16px; }
  .head .eb { font-size: 13px; margin-bottom: 10px; }
  .bz h3, .gr-cards dt, .lt-feat h3, .reasons h3, .values h3, .people h3, .cities h3 { font-size: 19px; }
  .bz-d, .gr-cards p, .reasons p, .values p, .people p, .cities p, .hist-row p { font-size: 15.5px; }
  .lt-list h3 { font-size: 17px; }
  .gr-cards dd { font-size: 44px; }
  .hero-st .st-h { font-size: min(26px, 6.3vw); }
  .hsub { font-size: 15px; } .hsub-wrap { height: 72px; }
  .fin-h { font-size: 26px; }
  .mvl-cap { font-size: 18px; }
  .jsteps h3 { font-size: 22px; } .jsteps .st-desc { font-size: 16px; }
}
/* 히어로 순서: 문장 → 카메라·선 → 사진·릴스 (더 짧게) */
.vw1.cam { transition-duration: 1.6s; }
.vw1 .sc.is-on { transition-delay: 1.1s; }
.vw1 .sc.is-on .arc { animation-duration: .8s; animation-delay: calc(var(--d, 0s) * .6 + 1.2s); }
.hero-st[data-s="co"] .vw1 .sc[data-v="co"] { transition-delay: 0s; }
/* 여정 01 릴스: 9:16 원래 비율 그대로 */
@media (min-width: 1101px) {
  .sc-gm .reels { height: 100%; display: flex; gap: 16px; justify-content: flex-start; }
  .sc-gm .reel, .sc-gm .reel.r1, .sc-gm .reel.r2, .sc-gm .reel.r3, .sc-gm .reel.r4, .sc-gm .reel.r5 { flex: 0 0 auto; height: 100%; width: auto; aspect-ratio: 9 / 16; }
}
@media (min-width: 1101px) {
  .jstage .sc-rem { grid-template-columns: minmax(0, 540px) 340px; justify-content: center; gap: 88px; align-items: center; }
  .jstage .sc-rem .rem-steps { align-self: center; }
}
/* Proof of Growth: 라벨 → 숫자 → 한 줄 근거, 연혁은 해마다 한 줄 */
.gr-cards > div { min-height: 0; padding: 32px 32px 30px; gap: 0; }
.gr-cards dt { order: 0; margin: 0; padding: 0; font-size: 17px; line-height: 1.4; font-weight: 600; color: #3D4652; letter-spacing: -0.01em; }
.gr-cards dd { order: 1; margin-top: 18px; font-size: 72px; line-height: 1; }
.gr-cards dd small { font-size: .36em; margin-left: 6px; color: #3D4652; }
.gr-cards p { order: 2; margin-top: 20px; padding-top: 16px; border-top: 1px solid #EEF0F3; font-size: 16px; line-height: 1.5; color: #6B7480; }
.gr-hist { margin-top: 80px; }
.hist-row li { padding: 26px 16px 0 0; }
.hist-row .num { font-size: 22px; margin-bottom: 8px; }
.hist-row p { font-size: 16px; line-height: 1.5; color: #3D4652; }
@media (max-width: 809px) {
  .gr-cards > div { padding: 24px 22px; }
  .gr-cards dd { font-size: 52px; margin-top: 12px; }
  .gr-cards p { margin-top: 14px; padding-top: 12px; font-size: 15px; }
  .gr-cards dt { font-size: 15px; }
  .hist-row li { padding: 0 0 20px 22px; }
  .hist-row .num { font-size: 18px; margin-bottom: 2px; }
  .hist-row p { font-size: 15px; }
}
/* 맨 위로 가기 */
.to-top { position: fixed; right: 28px; bottom: 28px; z-index: 90; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #0B0C0F; color: #fff; display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 10px 24px -8px rgba(5,17,45,.45); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .35s ease, transform .35s ease, background .2s ease; }
.to-top svg { width: 20px; height: 20px; }
.to-top.show { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--brand); }
@media (max-width: 809px) { .to-top { right: 16px; bottom: 16px; width: 44px; height: 44px; } }
.review-on .to-top { bottom: 72px; }
/* 한국 장면 비행기 */
.vw1 .plane { opacity: 0; transition: opacity .4s ease; }
.vw1 .plane .pl-s { transform: scale(calc(var(--k) * 1.15)); }
.vw1 .plane path { fill: var(--acc); stroke: #fff; stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.hero-st[data-s="mt"] .vw1 .plane.fly { opacity: 1; }

/* ================= About · Careers 개편 (2026-09-29) ================= */
.page-hero .eb { font-size: 16px; font-weight: 700; color: var(--glow); margin-bottom: 18px; }
/* About 히어로 숫자 */
.ab-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 64px 0 0; border-top: 1px solid rgba(255,255,255,.14); max-width: 880px; }
.ab-facts > div { padding: 22px 24px 0 0; }
.ab-facts dt { font-size: 15px; color: rgba(255,255,255,.6); }
.ab-facts dd { margin: 8px 0 0; font-size: 40px; line-height: 1; font-weight: 700; color: #fff; letter-spacing: -0.03em; }
.ab-facts dd small { font-size: .45em; margin-left: 3px; font-weight: 600; }
/* 고객의 세 가지 고민 */
.why3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.why3 figure { margin: 0 0 24px; aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: #EEF0F3; }
.why3 img { width: 100%; height: 100%; object-fit: cover; }
.why3 .q { font-size: 15px; font-weight: 700; color: var(--brand); }
.why3 h3 { margin-top: 8px; font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.why3 h3 + p { margin-top: 10px; font-size: 18px; line-height: 1.6; color: #4A5160; }
/* 미션·비전 */
.mv2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.mv2 > div { background: #fff; border-radius: 20px; padding: 40px 40px 44px; }
.mv-k { font-size: 16px; font-weight: 700; color: var(--brand); }
.mv-s { margin-top: 18px; font-size: 28px; line-height: 1.5; font-weight: 700; letter-spacing: -0.025em; color: var(--ink); }
/* 연혁 */
.hist2 { list-style: none; margin: 0; padding: 0; border-top: 1px solid #E4E7EB; }
.hist2 > li { display: grid; grid-template-columns: 180px minmax(0, 1fr) 300px; gap: 32px; align-items: start; padding: 32px 0; border-bottom: 1px solid #E4E7EB; }
.hist2 .y { font-size: 32px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.hist2 > li:first-child .y { color: var(--brand); }
.hist2 ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hist2 ul li { font-size: 18px; line-height: 1.55; color: #252A31; }
.hist2 ul em { font-style: normal; margin-left: 6px; font-size: 15px; color: #7A8190; }
.hist2 figure { margin: 0; grid-column: 3; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #EEF0F3; }
.hist2 figure img { width: 100%; height: 100%; object-fit: cover; }
/* 지금 있는 곳 */
.where4 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.where4 figure, .where4 .wbox { margin: 0 0 18px; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; background: #EEF0F3; }
.where4 img { width: 100%; height: 100%; object-fit: cover; }
.where4 .wbox { background: var(--night, #0C0D10); color: #fff; padding: 28px 26px; display: flex; flex-direction: column; justify-content: flex-end; }
.where4 .wbox .w-city { color: #fff; } .where4 .wbox .w-t { color: var(--glow); } .where4 .wbox .w-d { margin-top: 14px; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.7); }
.w-city { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.w-t { margin-top: 4px; font-size: 16px; font-weight: 600; color: #3D4652; }
.w-a { margin-top: 6px; font-size: 15px; color: #7A8190; }
.where4 .hq > .w-a { margin-top: 0; }
/* 팀 */
.team3 { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 20px; }
.team3 > div { border-radius: 20px; padding: 32px; background: var(--surface-2, #F6F7F9); }
.team3 .t-ceo { background: var(--night, #0C0D10); color: #fff; }
.t-role { font-size: 15px; font-weight: 600; color: #6B7480; }
.t-ceo .t-role { color: var(--glow); }
.team3 h3 { margin-top: 10px; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; }
.team3 h3 + p { margin-top: 14px; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.75); }
.chips-s { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips-s li { padding: 7px 12px; border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; color: #252A31; border: 1px solid #E4E7EB; }
/* 투자·파트너 */
.backers2 { list-style: none; margin: 0 0 48px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.backers2 li { background: #fff; border-radius: 16px; padding: 24px 24px 22px; display: flex; flex-direction: column; gap: 6px; }
.backers2 b { font-size: 19px; font-weight: 700; letter-spacing: -0.01em; }
.backers2 span { font-size: 14px; color: #7A8190; }
.ab-backers .logos { background: #fff; border-radius: 20px; padding: 28px 32px; }
/* Careers: 합류 이유 */
.why4 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.why4 li { border-top: 2px solid #0B0C0F; padding-top: 22px; }
.w-n { font-size: 15px; font-weight: 700; color: var(--brand); }
.why4 h3 { margin-top: 14px; font-size: 22px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.why4 p { margin-top: 10px; font-size: 17px; line-height: 1.6; color: #4A5160; }
/* 팀 6 */
.teams6 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.teams6 li { background: #fff; border-radius: 20px; padding: 10px 10px 26px; }
.teams6 figure { margin: 0 0 20px; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #EEF0F3; }
.teams6 img { width: 100%; height: 100%; object-fit: cover; }
.tm-loc, .teams6 h3, .teams6 h3 + p { padding: 0 14px; }
.tm-loc { font-size: 14px; font-weight: 600; color: var(--brand); }
.teams6 h3 { margin-top: 6px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.teams6 h3 + p { margin-top: 8px; font-size: 16.5px; line-height: 1.6; color: #4A5160; }
/* 일하는 방식: 왼쪽 제목 고정, 오른쪽 목록 */
.cr-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.cr-split .head { display: block; margin: 0; position: sticky; top: 40px; }
.cr-split .head p { margin-top: 20px; }
.values2 { list-style: none; margin: 0; padding: 0; border-top: 1px solid #E4E7EB; }
.values2 li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 26px 0; border-bottom: 1px solid #E4E7EB; }
.values2 .num { font-size: 16px; font-weight: 700; color: var(--brand); padding-top: 4px; }
.values2 h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.values2 p { margin-top: 6px; font-size: 17px; line-height: 1.6; color: #4A5160; }
/* 세 도시 */
.cities2 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cities2 li { background: #fff; border-radius: 20px; padding: 10px 10px 24px; display: flex; flex-direction: column; }
.cities2 li:first-child { background: var(--night, #0C0D10); color: #fff; padding: 28px 24px 24px; justify-content: flex-end; min-height: 100%; }
.cities2 figure { margin: 0 0 18px; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; }
.cities2 img { width: 100%; height: 100%; object-fit: cover; }
.cities2 li > p { padding: 0 14px; }
.cities2 li:first-child > p { padding: 0; }
.c-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.c-top b { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.c-top time { font-size: 15px; font-variant-numeric: tabular-nums; color: #7A8190; }
.cities2 li:first-child time { color: rgba(255,255,255,.6); }
.c-t { margin-top: 4px; font-size: 16px; font-weight: 600; color: var(--brand); }
.cities2 li:first-child .c-t { color: var(--glow); }
.c-d { margin-top: 10px; font-size: 16px; line-height: 1.6; color: #4A5160; }
.cities2 li:first-child .c-d { color: rgba(255,255,255,.7); }
@media (max-width: 1100px) {
  .why3, .where4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why3 li:last-child { grid-column: 1 / -1; }
  .why4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .teams6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team3 { grid-template-columns: 1fr 1fr; } .team3 .t-ceo { grid-column: 1 / -1; }
  .hist2 > li { grid-template-columns: 120px minmax(0, 1fr) 220px; }
  .backers2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cr-split { grid-template-columns: 1fr; gap: 32px; } .cr-split .head { position: static; }
}
@media (max-width: 809px) {
  .ab-facts { grid-template-columns: 1fr 1fr; margin-top: 40px; } .ab-facts > div { padding-top: 16px; } .ab-facts dd { font-size: 30px; }
  .why3, .where4, .teams6, .mv2, .team3, .why4, .cities2 { grid-template-columns: 1fr; }
  .why3 li:last-child, .team3 .t-ceo { grid-column: auto; }
  .why3 h3, .teams6 h3, .why4 h3, .values2 h3 { font-size: 19px; }
  .why3 h3 + p, .why4 p, .values2 p, .teams6 h3 + p, .c-d { font-size: 15.5px; }
  .mv2 > div { padding: 28px 24px; } .mv-s { font-size: 21px; } .mv-s br { display: none; }
  .hist2 > li { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; }
  .hist2 .y { font-size: 24px; } .hist2 ul li { font-size: 16px; }
  .hist2 figure { grid-column: auto; margin-top: 6px; }
  .where4 figure, .where4 .wbox { aspect-ratio: 16 / 10; }
  .team3 > div { padding: 24px; } .team3 h3 { font-size: 22px; } .team3 h3 + p { font-size: 16px; } .team3 br { display: none; }
  .backers2 { grid-template-columns: 1fr 1fr; gap: 10px; } .backers2 li { padding: 18px; } .backers2 b { font-size: 16px; }
  .ab-backers .logos { padding: 20px; }
  .values2 li { grid-template-columns: 40px minmax(0, 1fr); padding: 20px 0; }
  .cities2 li:first-child { min-height: 0; }
}
/* ================= Proof of Growth: 성장 차트 (연혁 + 매출 한 그림) ================= */
.gchart { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; background: #fff; border-radius: 24px; padding: 40px 32px 28px; }
.gc-legend { position: absolute; right: 32px; top: 28px; display: flex; align-items: center; gap: 8px; font-size: 14px; color: #7A8190; }
.gc-legend i { width: 12px; height: 12px; border-radius: 3px; background: #D9DEE7; }
.gc-col { display: flex; flex-direction: column; padding: 0 10px; position: relative; }
.gc-col + .gc-col::before { content: ""; position: absolute; left: 0; top: 0; bottom: 44px; border-left: 1px dashed #E4E7EB; }
.gc-ms { min-height: 150px; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; padding-bottom: 20px; }
.gc-ms img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 12px; margin-bottom: 10px; }
.gc-ms b { font-size: 17px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
.gc-ms span { font-size: 15px; color: #6B7480; }
.gc-plot { position: relative; height: 300px; display: flex; flex-direction: column; justify-content: flex-end; border-bottom: 1.5px solid #0B0C0F; }
.gc-bar { position: relative; height: calc(var(--h) * 100%); border-radius: 12px 12px 0 0; background: #DDE2EA; transform-origin: bottom; transform: scaleY(0); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.gc-col:nth-child(3) .gc-bar { transition-delay: .1s; } .gc-col:nth-child(4) .gc-bar { transition-delay: .25s; } .gc-col:nth-child(5) .gc-bar { transition-delay: .4s; } .gc-col:nth-child(6) .gc-bar { transition-delay: .55s; }
.gc-bar.none { height: 0; }
.gc-bar em { position: absolute; left: 0; right: 0; top: -30px; text-align: center; font-style: normal; font-size: 18px; font-weight: 700; color: #3D4652; opacity: 0; transition: opacity .5s ease 1s; }
.gc-col.now .gc-bar { background: var(--brand); }
.gc-col.now .gc-bar em { color: var(--brand); font-size: 22px; }
.gc-call { position: absolute; left: 10px; right: 10px; top: 0; opacity: 0; transform: translateY(8px); transition: opacity .6s ease 1.2s, transform .6s ease 1.2s; }
.gc-call b { display: block; font-size: 56px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: var(--brand); }
.gc-call b small { font-size: .4em; margin-left: 4px; }
.gc-call span { display: block; margin-top: 6px; font-size: 15px; font-weight: 600; color: #3D4652; }
.gc-col.now .gc-plot { justify-content: flex-end; }
.gc-y { margin-top: 12px; font-size: 20px; font-weight: 700; color: #3D4652; }
.gc-col.now .gc-y { color: var(--brand); }
.gc-col.next .gc-y::after { content: " 진행 중"; font-size: 13px; font-weight: 600; color: #7A8190; }
.gchart.in .gc-bar, .gchart.in .gc-call { transform: none; }
.gchart.in .gc-bar em, .gchart.in .gc-call { opacity: 1; }
.gc-more { margin-top: 20px; text-align: right; }
@media (prefers-reduced-motion: reduce) { .gc-bar, .gc-bar em, .gc-call { transition: none; transform: none; opacity: 1; } }
@media (max-width: 1100px) { .gchart { padding: 32px 16px 24px; } .gc-ms b { font-size: 15px; } .gc-ms span { font-size: 13px; } .gc-call b { font-size: 40px; } .gc-plot { height: 260px; } }
/* 모바일: 해마다 한 줄, 막대는 가로로 */
@media (max-width: 809px) {
  .gchart { grid-template-columns: 1fr; padding: 24px 20px; gap: 0; }
  .gc-legend { position: static; margin-bottom: 8px; }
  .gc-col { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "y ms" "y plot"; column-gap: 12px; padding: 16px 0; border-top: 1px solid #EEF0F3; }
  .gc-col + .gc-col::before { display: none; }
  .gc-y { grid-area: y; margin: 0; font-size: 17px; }
  .gc-col.next .gc-y::after { display: block; }
  .gc-ms { grid-area: ms; min-height: 0; padding: 0; }
  .gc-ms img { display: none; }
  .gc-plot { grid-area: plot; height: auto; border: 0; flex-direction: row; justify-content: flex-start; align-items: center; margin-top: 8px; }
  .gc-bar { height: 22px; width: calc(var(--h) * 100%); border-radius: 0 8px 8px 0; transform: scaleX(0); transform-origin: left; }
  .gc-bar.none { display: none; }
  .gc-bar em { top: 0; left: auto; right: auto; position: absolute; left: calc(100% + 8px); white-space: nowrap; font-size: 15px; line-height: 22px; text-align: left; }
  .gc-col.now .gc-bar em { font-size: 16px; }
  .gc-call { position: static; order: 2; margin-left: 64px; opacity: 1; transform: none; }
  .gc-call b { font-size: 26px; } .gc-call span { display: none; }
  .gc-col.now .gc-plot { flex-wrap: nowrap; }
}
@media (min-width: 810px) {
  .gc-ms { height: 176px; min-height: 0; }
  .gc-ms img { height: 84px; aspect-ratio: auto; }
  .gc-bar { height: calc(var(--h) * 82%); }
  .gc-col.now .gc-call { top: auto; bottom: 18px; z-index: 2; color: #fff; padding: 0 14px; left: 10px; right: 10px; }
  .gc-col.now .gc-call b, .gc-col.now .gc-call span { color: #fff; }
  .gc-col.now .gc-call span { opacity: .85; }
  .gc-legend { top: auto; right: auto; left: 0; bottom: -40px; }
}
@media (min-width: 810px) {
  .gc-ms { justify-content: flex-start; }
  .gc-ms:not(:has(img))::before { content: ""; display: block; height: 94px; flex: none; }
}
/* 미션·비전·코어밸류 */
.mv-en { margin-top: 14px; font-size: 15px; color: #7A8190; font-style: italic; }
.vals4 { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.vals4 li { background: #fff; border-radius: 20px; padding: 28px 26px 30px; display: flex; flex-direction: column; }
.v-k { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: var(--brand); }
.v-k .num { font-size: 13px; color: #9AA3AF; }
.vals4 h3 { margin-top: 14px; font-size: 21px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.v-en { margin-top: 6px; font-size: 13.5px; color: #9AA3AF; font-style: italic; }
.v-d { margin-top: 14px; font-size: 16px; line-height: 1.6; color: #4A5160; }
.v-k2 { font-size: 14px; font-weight: 700; color: var(--brand); margin-bottom: 4px; }
.v-q { margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: var(--brand-tint, #E3E9FF); font-size: 15.5px; font-weight: 600; color: #1B34B5; }
.v-q span { display: block; font-size: 12.5px; font-weight: 600; color: #5B6FC8; margin-bottom: 2px; }
@media (max-width: 1100px) { .vals4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 809px) { .vals4 { grid-template-columns: 1fr; } .vals4 li { padding: 22px 20px; } .vals4 h3 { font-size: 19px; } .mv-en { font-size: 13.5px; } }
/* Newsroom */
.nr-feat { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 16px; border-radius: 24px; background: var(--surface-2, #F6F7F9); color: var(--ink); margin-bottom: 48px; }
.nr-feat figure { margin: 0; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; }
.nr-feat img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.nr-feat:hover img { transform: scale(1.03); }
.nr-feat > div { padding: 8px 24px 8px 0; }
.nr-tag { font-size: 14px; font-weight: 700; color: var(--brand); margin-bottom: 14px; }
.nr-feat h2 { margin: 12px 0 24px; font-size: 32px; line-height: 1.35; font-weight: 700; letter-spacing: -0.025em; text-wrap: balance; }
.nr-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
.nc { display: flex; flex-direction: column; color: var(--ink); }
.nc figure { margin: 0 0 18px; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: #EEF0F3; }
.nc img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.nc:hover img { transform: scale(1.03); }
.nc-type { display: flex; flex-direction: column; justify-content: space-between; padding: 22px 24px; background: #0C0D10 !important; color: #fff; }
.nc-type b { font-size: 44px; font-weight: 700; letter-spacing: -0.03em; }
.nc-type span { font-size: 15px; color: rgba(255,255,255,.65); }
.nc h3 { margin-top: 8px; font-size: 19px; line-height: 1.45; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; transition: color .2s ease; }
.nc:hover h3, .nr-feat:hover h2 { color: var(--brand); }
.nr .aside-line { margin-top: 48px; }
@media (max-width: 1100px) { .nr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nr-feat h2 { font-size: 26px; } }
@media (max-width: 809px) {
  .nr-feat { grid-template-columns: 1fr; gap: 16px; padding: 10px; margin-bottom: 32px; } .nr-feat > div { padding: 4px 10px 12px; } .nr-feat h2 { font-size: 21px; margin-bottom: 14px; }
  .nr-grid { grid-template-columns: 1fr; gap: 28px; } .nc h3 { font-size: 17px; } .nc-type b { font-size: 34px; }
}
/* Why Summits (히어로 다음) */
.ws-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 56px; border-top: 1.5px solid #0B0C0F; }
.ws-stats > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 28px 24px 0 0; }
.ws-stats > div + div { padding-left: 24px; border-left: 1px solid #E4E7EB; }
.ws-stats dd { margin: 10px 0 0; font-size: 56px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: var(--ink); }
.ws-stats dd small { font-size: .38em; margin-left: 4px; font-weight: 700; color: #3D4652; letter-spacing: -0.01em; }
.ws-stats dt { font-size: 16px; font-weight: 600; color: #6B7480; }
.ws-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ws-cards li { background: var(--surface-2, #F6F7F9); border-radius: 20px; padding: 28px 26px 30px; }
.ws-cards img { width: 84px; height: 84px; display: block; margin-bottom: 22px; }
.ws-cards h3 { font-size: 21px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; }
.ws-cards p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: #4A5160; }
[id="medical-tourism"], [id="global-marketing"], [id="clinic-operations"], #history, #teams, #open-positions { scroll-margin-top: 24px; }
html { scroll-behavior: smooth; }
@media (max-width: 1100px) { .ws-stats, .ws-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ws-stats > div:nth-child(3) { padding-left: 0; border-left: 0; } .ws-stats > div:nth-child(n+3) { border-top: 1px solid #E4E7EB; margin-top: 24px; } .ws-stats dd { font-size: 44px; } }
@media (max-width: 809px) { .ws-stats dd { font-size: 34px; } .ws-stats > div { padding: 18px 12px 0 0; } .ws-stats > div + div { padding-left: 14px; } .ws-stats dt { font-size: 13.5px; } .ws-cards { grid-template-columns: 1fr; } .ws-cards li { display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; padding: 20px; } .ws-cards img { width: 64px; height: 64px; margin: 0; grid-row: span 2; } .ws-cards h3 { font-size: 18px; } .ws-cards p { font-size: 15px; margin-top: 4px; } }
.nc-type { background: var(--brand-tint, #E3E9FF) !important; color: var(--ink); padding: 24px 26px; }
.nc-type span { font-size: 16px; font-weight: 700; color: var(--brand); }
.nc-type b { font-size: 30px; line-height: 1.3; font-weight: 700; letter-spacing: -0.03em; color: #1B34B5; }
.nc img[src*="reel1"] { object-position: 50% 30%; }
@media (max-width: 809px) { .nc-type b { font-size: 24px; } }
/* 서울 카드도 사진 카드로 통일 */
.cities2 li:first-child { background: #fff; color: var(--ink); padding: 10px 10px 24px; justify-content: flex-start; }
.cities2 li:first-child > p { padding: 0 14px; }
.cities2 li:first-child time { color: #7A8190; } .cities2 li:first-child .c-t { color: var(--brand); } .cities2 li:first-child .c-d { color: #4A5160; }
/* 여정: 스크롤 안내 (데스크톱 고정 화면에서만) */
.jhint { display: none; }
@media (min-width: 1101px) {
  .jhint { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 5; display: flex; align-items: center; gap: 12px; padding: 9px 18px 9px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14); background: rgba(20,22,28,.78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; cursor: pointer; transition: opacity .4s ease, transform .4s ease, border-color .2s ease; }
  .jhint:hover { border-color: rgba(255,255,255,.4); }
  .jhint.is-end { opacity: 0; pointer-events: none; transform: translate(-50%, 8px); }
  .jh-mouse { position: relative; width: 20px; height: 30px; border: 1.6px solid rgba(255,255,255,.8); border-radius: 11px; flex: none; }
  .jh-mouse i { position: absolute; left: 50%; top: 6px; width: 3px; height: 6px; margin-left: -1.5px; border-radius: 2px; background: var(--glow); animation: jh-wheel 1.6s cubic-bezier(.4,0,.2,1) infinite; }
  .jh-t { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.3; text-align: left; }
  .jh-t b { font-size: 14px; font-weight: 700; }
  .jh-t em { font-style: normal; font-size: 12.5px; color: rgba(255,255,255,.6); }
  .jnote { bottom: 22px; }
}
@keyframes jh-wheel { 0% { transform: translateY(0); opacity: 0; } 25% { opacity: 1; } 70% { transform: translateY(9px); opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .jh-mouse i { animation: none; } }

/* ================= Business 개편 (2026-09-29) ================= */
.jump2 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 48px; max-width: 980px; }
.jump2 a { display: flex; align-items: center; gap: 14px; padding: 10px 16px 10px 10px; border-radius: 16px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff; transition: background .2s ease, border-color .2s ease; }
.jump2 a:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); }
.jump2 img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; flex: none; }
.jump2 b { display: block; font-size: 17px; font-weight: 700; }
.jump2 em { display: block; margin-top: 2px; font-style: normal; font-size: 14px; color: rgba(255,255,255,.62); }
/* 세 사업 연결 */
.link3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: l; }
.link3 li { position: relative; }
.link3 li + li::before { content: ""; position: absolute; left: -16px; top: 50%; width: 16px; border-top: 1.5px dashed #B9C6FF; }
.link3 a { display: flex; flex-direction: column; height: 100%; padding: 26px 26px 28px; border-radius: 20px; background: var(--surface-2, #F6F7F9); color: var(--ink); transition: background .2s ease; }
.link3 a:hover { background: var(--brand-tint, #E3E9FF); }
.link3 .num { font-size: 14px; font-weight: 700; color: var(--brand); }
.l-k { margin-top: 18px; font-size: 16px; font-weight: 600; color: #6B7480; }
.link3 b { margin-top: 4px; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.link3 em { margin-top: 8px; font-style: normal; font-size: 15.5px; color: #4A5160; }
/* 챕터 */
.c2 .head h2 .c2-en { display: block; font-size: 18px; font-weight: 700; letter-spacing: -0.01em; color: #6B7480; margin-bottom: 10px; }
.c2-side p { font-size: 20px; line-height: 1.5; font-weight: 500; color: var(--muted); }
.c2-flow { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 15px !important; font-weight: 600 !important; color: var(--ink) !important; }
.c2-flow span { padding: 7px 12px; border-radius: 999px; background: #fff; border: 1px solid #E4E7EB; }
.band:not(.tint) .c2-flow span { background: var(--surface-2, #F6F7F9); }
.c2-flow i { flex: none; width: 36px; height: 1.5px; background: #9AA3AF; position: relative; }
.c2-flow i::after { content: ""; position: absolute; right: 0; top: -3.5px; width: 7px; height: 7px; border-top: 1.5px solid #9AA3AF; border-right: 1.5px solid #9AA3AF; transform: rotate(45deg); }
.grid5 { display: grid; grid-template-columns: 1.5fr 0.62fr 1fr 1fr; grid-template-rows: 250px 250px; gap: 12px; }
.grid5.gm { grid-template-columns: 1.5fr 0.62fr 1fr; }
.g2 { position: relative; margin: 0; border-radius: 18px; overflow: hidden; background: #E9ECF1; }
.g2.big { grid-row: span 2; }
.g2.v { grid-row: span 2; }
.g2.wide { grid-column: span 1; }
.grid5 > .g2:nth-child(n+3) { }
.g2 img, .g2 video { width: 100%; height: 100%; object-fit: cover; display: block; }
.g2 figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 11px; border-radius: 999px; background: rgba(12,13,16,.72); color: #fff; font-size: 13px; font-weight: 500; }
.c2-steps { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.c2-steps li { border-top: 2px solid #0B0C0F; padding-top: 18px; }
.c2-steps .num { font-size: 14px; font-weight: 700; color: var(--brand); }
.c2-steps h3 { margin-top: 10px; font-size: 21px; font-weight: 700; letter-spacing: -0.02em; }
.c2-steps p { margin-top: 8px; font-size: 16px; line-height: 1.6; color: #4A5160; }
.c2-foot { margin-top: 48px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-top: 32px; border-top: 1px solid #E4E7EB; }
.c2-nums { display: flex; flex-wrap: wrap; gap: 20px 48px; margin: 0; }
.c2-nums > div { display: flex; flex-direction: column; }
.c2-nums dd { margin: 0; font-size: 40px; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; }
.c2-nums dt { order: 2; margin-top: 6px; font-size: 14.5px; color: #6B7480; }
.c2-foot .btn-row { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.c2-foot .go-note { font-size: 14px; color: #7A8190; max-width: 26em; }
/* GM 차별점 */
.c2-diff { margin-top: 56px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 40px; border-radius: 24px; background: #0C0D10; color: #fff; }
.c2-diff .eb { color: var(--glow); font-size: 15px; font-weight: 700; margin-bottom: 14px; }
.c2-diff h3 { font-size: 30px; line-height: 1.35; font-weight: 700; letter-spacing: -0.025em; }
.c2-diff h3 + p { margin-top: 16px; font-size: 16.5px; line-height: 1.7; color: rgba(255,255,255,.7); }
.funnel { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.funnel li { display: flex; align-items: baseline; justify-content: space-between; padding: 16px 20px; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); }
.funnel li:nth-child(2) { margin-left: 24px; } .funnel li:nth-child(3) { margin-left: 48px; } .funnel li:nth-child(4) { margin-left: 72px; background: var(--brand); border-color: var(--brand); }
.funnel b { font-size: 18px; font-weight: 700; } .funnel span { font-size: 14px; color: rgba(255,255,255,.65); }
.funnel li:nth-child(4) span { color: rgba(255,255,255,.85); }
/* CO 클리닉 3 */
.clinic3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.clinic3 li { background: #fff; border-radius: 20px; padding: 10px 10px 26px; }
.clinic3 figure { margin: 0 0 20px; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; }
.clinic3 img { width: 100%; height: 100%; object-fit: cover; }
.clinic3 .cl-n, .clinic3 h3, .clinic3 h3 + p { padding: 0 14px; }
.clinic3 .cl-n { font-size: 14px; font-weight: 700; color: var(--brand); }
.clinic3 h3 { margin-top: 4px; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.clinic3 h3 + p { margin-top: 8px; font-size: 16px; line-height: 1.6; color: #4A5160; }
@media (max-width: 1100px) {
  .jump2 { grid-template-columns: 1fr; max-width: 460px; }
  .grid5, .grid5.gm { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .g2 { aspect-ratio: 4 / 3; } .g2.big { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; } .g2.v { grid-row: span 2; aspect-ratio: auto; }
  .c2-steps { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .c2-diff { grid-template-columns: 1fr; padding: 32px; }
  .c2-foot { flex-direction: column; align-items: flex-start; } .c2-foot .btn-row { justify-content: flex-start; }
}
@media (max-width: 809px) {
  .link3, .clinic3 { grid-template-columns: 1fr; gap: 12px; } .link3 li + li::before { display: none; }
  .link3 a { padding: 20px; } .link3 b { font-size: 20px; }
  .c2 .head h2 .c2-en { font-size: 15px; } .c2-side p { font-size: 16px; } .c2-side br { display: none; }
  .c2-flow { flex-wrap: wrap; gap: 8px; font-size: 13.5px !important; } .c2-flow i { width: 20px; }
  .grid5, .grid5.gm { gap: 8px; } .g2 figcaption { font-size: 12px; left: 8px; bottom: 8px; padding: 5px 9px; }
  .c2-steps { grid-template-columns: 1fr; gap: 20px; margin-top: 32px; } .c2-steps h3 { font-size: 19px; } .c2-steps p { font-size: 15px; }
  .c2-nums { gap: 16px 28px; } .c2-nums dd { font-size: 30px; } .c2-nums dt { font-size: 13.5px; }
  .c2-diff { padding: 24px 20px; margin-top: 36px; } .c2-diff h3 { font-size: 22px; } .c2-diff br { display: none; } .c2-diff h3 + p { font-size: 15px; }
  .funnel li:nth-child(n) { margin-left: 0; } .funnel li { padding: 13px 16px; }
  .clinic3 h3 { font-size: 20px; } .jump2 img { width: 52px; height: 52px; }
}
/* 섹션 머리: 제목 바로 아래에 설명 (좌우로 벌리지 않음) */
.head { display: block; margin-bottom: 56px; }
.head > p, .head .c2-side { margin-top: 20px; max-width: 40em; }
.head:has(> .more), .head:has(> .chips) { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.head:has(> .more) > p, .head:has(> .chips) > p { margin-top: 0; }
.cr-split .head { display: block; }
.head p br { display: inline; }
@media (max-width: 809px) { .head { margin-bottom: 32px; } .head > p { margin-top: 14px; } .head:has(> .more), .head:has(> .chips) { flex-direction: column; align-items: flex-start; gap: 12px; } .head p br { display: none; } }
/* 스크롤 안내: 아이콘 + 한 단어 */
@media (min-width: 1101px) {
  .jhint { gap: 10px; padding: 8px 16px 8px 10px; }
  .jh-mouse { width: 18px; height: 27px; }
  .jh-t b { font-size: 13.5px; font-weight: 600; }
  .jh-t em { display: none; }
}
.jump2 { position: relative; z-index: 3; }
.jump2 a { background: rgba(12,13,16,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
@media (min-width: 1101px) { .grid5 { grid-template-columns: 1.5fr 0.62fr 1fr 1fr; } }
/* Proof of Growth v3: 매출 막대(2023~2025) + 연혁 목록 분리 */
.gp { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; }
.gp-chart, .gp-side { background: #fff; border-radius: 24px; padding: 36px 36px 30px; }
.gp-k { font-size: 16px; font-weight: 700; color: #3D4652; }
.gp-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.gp-x { text-align: right; }
.gp-x b { display: block; font-size: 64px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: var(--brand); }
.gp-x b small { font-size: .4em; margin-left: 4px; }
.gp-x span { display: block; margin-top: 6px; font-size: 14.5px; color: #6B7480; }
.gp-bars { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gp-plot { height: 280px; display: flex; flex-direction: column; justify-content: flex-end; border-bottom: 1.5px solid #0B0C0F; }
.gp-bar { position: relative; height: calc(var(--h) * 86%); border-radius: 12px 12px 0 0; background: #DDE2EA; transform-origin: bottom; transform: scaleY(0); transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.gp-col:nth-child(2) .gp-bar { transition-delay: .15s; } .gp-col:nth-child(3) .gp-bar { transition-delay: .3s; }
.gp-col.now .gp-bar { background: var(--brand); }
.gp-bar em { position: absolute; left: 0; right: 0; top: -32px; text-align: center; font-style: normal; font-size: 20px; font-weight: 700; color: #3D4652; opacity: 0; transition: opacity .5s ease .9s; }
.gp-col.now .gp-bar em { color: var(--brand); font-size: 24px; top: -36px; }
.gp-col > p { margin-top: 12px; font-size: 18px; font-weight: 700; color: #3D4652; text-align: center; }
.gp-col.now > p { color: var(--brand); }
.gchart.in .gp-bar, [data-gchart].in .gp-bar { transform: none; }
[data-gchart].in .gp-bar em { opacity: 1; }
.gp-side { display: flex; flex-direction: column; }
.gp-hist { list-style: none; margin: 20px 0 24px; padding: 0; flex: 1; }
.gp-hist li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 13px 0; border-top: 1px solid #EEF0F3; }
.gp-hist li:last-child { border-bottom: 1px solid #EEF0F3; }
.gp-hist .num { font-size: 17px; font-weight: 700; color: var(--ink); }
.gp-hist li:last-child .num { color: var(--brand); }
.gp-hist p { font-size: 16px; line-height: 1.5; color: #3D4652; }
.gp-side .more { align-self: flex-start; }
@media (prefers-reduced-motion: reduce) { .gp-bar { transform: none; transition: none; } .gp-bar em { opacity: 1; transition: none; } }
@media (max-width: 1100px) { .gp { grid-template-columns: 1fr; } }
@media (max-width: 809px) {
  .gp-chart, .gp-side { padding: 24px 20px; }
  .gp-x b { font-size: 44px; } .gp-plot { height: 200px; } .gp-bars { gap: 12px; }
  .gp-bar em { font-size: 15px; top: -26px; } .gp-col.now .gp-bar em { font-size: 18px; top: -28px; }
  .gp-col > p { font-size: 15px; } .gp-hist li { grid-template-columns: 52px 1fr; } .gp-hist p { font-size: 15px; }
}
@media (max-width: 1100px) {
  .grid5, .grid5.gm { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; grid-template-rows: none; }
  .grid5 .g2 { aspect-ratio: 1 / 1; height: auto; }
  .grid5 .g2.big { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .grid5 .g2.v { grid-row: span 2; aspect-ratio: auto; }
  .grid5 .g2.wide { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
}
@media (max-width: 1100px) {
  .grid5.gm .g2.wide { order: 5; }
  .grid5.gm .g2:not(.big):not(.wide):not(.v) { grid-row: span 2; aspect-ratio: auto; }
}
/* 성장 화살표 */
.gp-chart { position: relative; }
.gp-arrow { position: absolute; left: 36px; right: 36px; top: 30px; bottom: 60px; width: calc(100% - 72px); height: calc(100% - 90px); pointer-events: none; z-index: 2; overflow: visible; }
.gp-arrow path { fill: none; stroke: var(--brand); stroke-width: 2.5px; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.gp-arrow .ga-l { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1) .5s; }
.gp-arrow .ga-h { opacity: 0; transition: opacity .3s ease 1.6s; }
[data-gchart].in .gp-arrow .ga-l { stroke-dashoffset: 0; }
[data-gchart].in .gp-arrow .ga-h { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .gp-arrow .ga-l { stroke-dashoffset: 0; transition: none; } .gp-arrow .ga-h { opacity: 1; transition: none; } }
@media (max-width: 809px) { .gp-arrow { left: 20px; right: 20px; width: calc(100% - 40px); top: 24px; height: calc(100% - 80px); } }
/* Why Summits 카드: 영문 키워드 + 한 줄, 가운데 정렬 */
.ws-cards li { text-align: center; padding: 40px 24px 36px; background: #fff; border: 1px solid #ECEEF2; }
.why-s { background: var(--surface-2, #F6F7F9); }
.ws-cards img { width: 120px; height: 120px; margin: 0 auto 26px; }
.ws-cards h3 { font-size: 21px; letter-spacing: -0.015em; }
.ws-cards p { margin-top: 12px; font-size: 16px; color: #5B6572; }
@media (max-width: 809px) { .ws-cards li { display: block; text-align: center; padding: 28px 20px; } .ws-cards img { width: 96px; height: 96px; margin: 0 auto 18px; } .ws-cards p br { display: inline; } }
/* 지점 점: 작게, 흰 테두리 */
.hero-st .vw1 .mk.cl { stroke-width: 9px !important; filter: drop-shadow(0 0 0 #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 0 1px #fff); }
/* 지점 카드 연결선 */
.hpin-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; z-index: 1; }
.hpin-lines line { stroke: var(--acc); stroke-width: 1.5px; stroke-linecap: round; opacity: 0; transition: opacity .4s ease; }
.hpin-lines line.on { opacity: 1; }
.hpin { z-index: 2; }
.hpin::after { display: none; }
@media (max-width: 809px) {
  .hero-st .hpin.t { --tx: -40%; --ty: calc(-100% - 92px); }
  .hero-st .hpin.r { --tx: -35%; --ty: 34px; }
}
.gp-arrow polygon.ga-h { fill: var(--brand); stroke: var(--brand); stroke-width: 2px; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.hpin-lines line { stroke-width: 1.6px; stroke-dasharray: 2 4; }
.gp-arrow .ga-h { transition-delay: 1.4s; }
/* 헤더 로고 작게 */
.logo-svg { height: 16px; }
@media (max-width: 809px) { .logo-svg { height: 14px; } }
/* 히어로 세계 장면: 숫자 카드 · 병원 로고 카드 */
.htile.k-stat figure { background: #0C0D10; display: flex; }
.ht-stat { display: flex; flex-direction: column; justify-content: space-between; padding: 18px 16px; width: 100%; color: #fff; }
.ht-stat b { font-size: 44px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: #fff; }
.ht-stat b small { font-size: .38em; margin-left: 3px; }
.ht-stat span { font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.7); }
.htile.k-logos figure { background: #fff; border: 1px solid #ECEEF2; display: flex; }
.ht-logos { display: grid; grid-template-columns: 1fr 1fr; align-content: center; gap: 18px 10px; padding: 14px; width: 100%; }
.ht-logos img { width: 100%; height: 26px; object-fit: contain; filter: grayscale(1); opacity: .7; }
@media (max-width: 809px) { .ht-stat { padding: 10px 9px; } .ht-stat b { font-size: 26px; } .ht-stat span { font-size: 10.5px; } .ht-logos { gap: 10px 6px; padding: 8px; } .ht-logos img { height: 16px; } }
/* CRM 체류 일정: 날짜 트랙 */
.cd-stay2 { display: flex; flex-direction: column; gap: 14px; }
.s2-top { display: flex; align-items: baseline; gap: 10px; font-size: 13px; }
.s2-top b { font-size: 15px; } .s2-top span { color: #6B7480; }
.s2-top em { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-tint, #E3E9FF); padding: 4px 10px; border-radius: 999px; }
.s2-track { position: relative; height: 62px; margin: 0 26px; }
.s2-line { position: absolute; left: 0; right: 0; top: 11px; height: 6px; border-radius: 3px; background: #E9EDF5; }
.s2-line i { position: absolute; inset: 0; border-radius: 3px; background: linear-gradient(90deg, var(--brand), #8FA6FF); }
.s2-pt { position: absolute; left: var(--x); top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.s2-pt::before { content: ""; width: 14px; height: 14px; margin-top: 7px; border-radius: 50%; background: #fff; border: 3px solid var(--brand); box-sizing: border-box; }
.s2-pt b { margin-top: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.s2-pt time { font-size: 11px; color: #7A8190; }
.s2-pt.p2::before { border-color: #8FA6FF; }
.s2-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.s2-list li { background: #F6F8FC; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.s2-list b { font-size: 13px; } .s2-list span { font-size: 11.5px; color: #6B7480; }
@media (max-width: 809px) { .s2-list { grid-template-columns: 1fr 1fr; } .s2-track { margin: 0 18px; } .s2-pt.p1 b { display: none; } }

/* ================= 홈 v4 (2026-09-29 저녁) ================= */
/* 영문 대제목 + 한 줄 (가운데) */
.head.center { display: block; text-align: center; margin-bottom: 56px; }
.head.center h2 { font-size: 56px; line-height: 1.12; letter-spacing: -0.03em; }
.head.center > p { margin: 16px auto 0; max-width: 36em; font-size: 20px; }
.band.night .head.center h2 { color: #fff; }
.lt2-more { margin-top: 32px; text-align: center; }
@media (max-width: 1100px) { .head.center h2 { font-size: 44px; } }
@media (max-width: 809px) { .head.center { margin-bottom: 32px; } .head.center h2 { font-size: 32px; } .head.center > p { font-size: 15.5px; } }
/* Systems + People */
.sys-grid { display: grid; grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1fr); align-items: stretch; }
.sys-col { border-radius: 24px; padding: 36px 34px; background: var(--surface-2, #F6F7F9); }
.sys-col.dark { background: #0C0D10; color: #fff; }
.sys-k { font-size: 15px; font-weight: 700; color: var(--brand); margin-bottom: 18px; }
.sys-col.dark .sys-k { color: var(--glow); }
.sys-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sys-col li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 16px 0; border-top: 1px solid rgba(12,13,16,.08); }
.sys-col.dark li { border-top-color: rgba(255,255,255,.1); }
.sys-ic { font-size: 13px; font-weight: 700; color: #9AA3AF; padding-top: 3px; }
.sys-col b { font-size: 19px; font-weight: 700; letter-spacing: -0.015em; }
.sys-col li p { margin-top: 4px; font-size: 15.5px; line-height: 1.55; color: #5B6572; }
.sys-col.dark li p { color: rgba(255,255,255,.62); }
.sys-mid { position: relative; display: flex; align-items: center; justify-content: center; }
.sys-mid::before { content: ""; position: absolute; left: 12px; right: 12px; top: 50%; border-top: 1.6px dashed #9DB0FF; }
.sys-mid span { position: relative; z-index: 1; padding: 8px 10px; border-radius: 12px; background: #fff; border: 1px solid #DCE3FF; font-size: 12.5px; line-height: 1.4; font-weight: 600; color: var(--brand); text-align: center; }
@media (max-width: 1100px) { .sys-grid { grid-template-columns: 1fr; gap: 0; } .sys-mid { height: 64px; } .sys-mid::before { left: 50%; right: auto; top: 0; bottom: 0; border-top: 0; border-left: 1.6px dashed #9DB0FF; } }
@media (max-width: 809px) { .sys-col { padding: 24px 20px; } .sys-col b { font-size: 17px; } .sys-col li p { font-size: 14.5px; } .sys-mid span br { display: none; } }
/* 소식: 큰 카드 + 썸네일 목록 */
.lt2 { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.lt2-feat { display: block; padding: 16px 16px 24px; border-radius: 24px; background: var(--surface-2, #F6F7F9); color: var(--ink); }
.lt2-feat figure { margin: 0 0 20px; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; }
.lt2-feat img, .lt2-list img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.lt2-feat:hover img, .lt2-list a:hover img { transform: scale(1.04); }
.lt2-feat h3 { padding: 0 8px; font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.lt2-feat .lt-meta, .lt2-list .lt-meta { margin-top: 10px; }
.lt2-feat .lt-meta { padding: 0 8px; }
.lt2-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.lt2-list a { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 20px; align-items: center; color: var(--ink); }
.lt2-list figure { margin: 0; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; }
.lt2-list h3 { font-size: 18.5px; line-height: 1.45; font-weight: 700; letter-spacing: -0.015em; text-wrap: balance; transition: color .2s ease; }
.lt2-list a:hover h3, .lt2-feat:hover h3 { color: var(--brand); }
@media (max-width: 1100px) { .lt2 { grid-template-columns: 1fr; } }
@media (max-width: 809px) { .lt2-feat h3 { font-size: 19px; } .lt2-list a { grid-template-columns: 112px 1fr; gap: 14px; } .lt2-list h3 { font-size: 15.5px; } }
/* 기사 상세 */
.art { padding: calc(var(--header-h) + 56px) 0 88px; }
.art-wrap { max-width: calc(820px + var(--gutter) * 2); }
.art-back { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: #6B7480; }
.art-back::before { content: ""; width: 7px; height: 7px; border-left: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); }
.art-back:hover { color: var(--brand); }
.art-meta { margin-top: 28px; }
.art-meta span:first-child { color: var(--brand); font-weight: 700; }
.art h1 { margin-top: 14px; font-size: 40px; line-height: 1.35; font-weight: 700; letter-spacing: -0.03em; text-wrap: balance; }
.art-lead { margin-top: 18px; font-size: 20px; line-height: 1.55; color: #4A5160; }
.art-fig { margin: 40px 0; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; background: #EEF0F3; }
.art-fig img { width: 100%; height: 100%; object-fit: cover; }
.art-body p { font-size: 18px; line-height: 1.85; color: #252A31; }
.art-body p + p { margin-top: 18px; }
.art-pts { margin-top: 36px; padding: 24px 28px; border-radius: 16px; background: var(--surface-2, #F6F7F9); }
.art-pts p { font-size: 14px; font-weight: 700; color: var(--brand); }
.art-pts ul { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 6px; font-size: 16.5px; line-height: 1.55; }
.art-src { margin-top: 40px; padding-top: 28px; border-top: 1px solid #E4E7EB; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.art-src .k { font-size: 13px; font-weight: 700; color: #9AA3AF; }
.art-src b { display: block; margin-top: 4px; font-size: 18px; } .art-src span { font-size: 14px; color: #7A8190; }
.nr-lead { margin: -8px 0 22px; font-size: 16.5px; line-height: 1.55; color: #4A5160; }
@media (max-width: 809px) { .art { padding-top: calc(var(--header-h) + 32px); } .art h1 { font-size: 26px; } .art-lead { font-size: 16.5px; } .art-body p { font-size: 16px; } .art-fig { margin: 28px 0; border-radius: 14px; } .art-pts { padding: 20px; } }
/* 서브페이지 히어로: 실사 배경 */
.page-hero.ph-img { position: relative; overflow: hidden; background: #0C0D10; min-height: 620px; display: flex; align-items: flex-end; }
.page-hero.ph-img > .container { position: relative; z-index: 2; width: 100%; }
.ph-photo { position: absolute; inset: 0; margin: 0; z-index: 0; }
.ph-photo img { width: 100%; height: 100%; object-fit: cover; }
.ph-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,11,14,.9) 0%, rgba(10,11,14,.72) 42%, rgba(10,11,14,.28) 100%), linear-gradient(0deg, rgba(10,11,14,.55) 0%, rgba(10,11,14,0) 45%); }
.page-hero.ph-img h1 { color: #fff; }
.page-hero.ph-img .lead { color: rgba(255,255,255,.78); }
@media (max-width: 809px) { .page-hero.ph-img { min-height: 520px; } .ph-photo::after { background: linear-gradient(0deg, rgba(10,11,14,.92) 0%, rgba(10,11,14,.6) 55%, rgba(10,11,14,.35) 100%); } }
/* About 간결판 */
.why3 h3 { font-size: 22px; }
.vals4.slim li { padding: 26px 24px 28px; }
.vals4.slim h3 { margin-top: 12px; font-size: 20px; line-height: 1.45; }
.ab-more { margin-top: 28px; }
.mv-s { font-size: 26px; }
.team2 { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr); gap: 16px; }
.t2-num { border-radius: 24px; padding: 36px; background: #0C0D10; color: #fff; display: flex; flex-direction: column; }
.t2-num .k { font-size: 15px; color: rgba(255,255,255,.62); }
.t2-num > b { margin-top: 14px; font-size: 72px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; }
.t2-num > b small { font-size: .36em; margin-left: 4px; }
.t2-num .ceo { margin-top: auto; padding-top: 40px; font-size: 15px; color: rgba(255,255,255,.62); }
.t2-num .ceo b { color: #fff; margin-left: 6px; font-size: 17px; }
.t2-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.t2-rows li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: center; padding: 30px 32px; border-radius: 20px; background: var(--surface-2, #F6F7F9); }
.t2-city { font-size: 14px; font-weight: 600; color: var(--brand); }
.t2-rows h3 { margin-top: 4px; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.t2-rows li > p { font-size: 17px; line-height: 1.7; color: #3D4652; }
.backers2 { margin-bottom: 0; }
@media (max-width: 1100px) { .team2 { grid-template-columns: 1fr; } .t2-num .ceo { padding-top: 20px; } }
@media (max-width: 809px) { .t2-num { padding: 26px 22px; } .t2-num > b { font-size: 52px; } .t2-rows li { grid-template-columns: 1fr; gap: 10px; padding: 22px 20px; } .t2-rows h3 { font-size: 20px; } .t2-rows li > p { font-size: 15.5px; } .mv-s { font-size: 20px; } .why3 h3 { font-size: 19px; } }
.mvl-cap { margin-bottom: 8px; }
.mvl-sub { text-align: center; font-size: 15px; color: #7A8190; margin: 0 0 32px; }
.art-fig { position: relative; }
.art-fig figcaption { position: absolute; right: 12px; bottom: 10px; font-size: 12px; color: #fff; background: rgba(0,0,0,.5); padding: 3px 8px; border-radius: 6px; }
.lt2-list .nc-type, .lt2-feat .nc-type { aspect-ratio: 4 / 3; }
/* 히어로 지점 점: 더 작게 */
.hero-st .vw1 .mk.cl { stroke-width: 6px !important; }
/* About 팀: 성격 3 */
.pers3 { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pers3 li { border-radius: 22px; padding: 34px 32px 36px; background: #0C0D10; color: #fff; }
.pers3 li:nth-child(1) { background: var(--brand); }
.p-ko { font-size: 34px; font-weight: 700; letter-spacing: -0.03em; }
.p-id { margin-top: 2px; font-size: 14px; font-style: italic; color: rgba(255,255,255,.6); }
.p-d { margin-top: 28px; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.85); }
.t2-rows.compact li { padding: 22px 28px; }
.t2-rows.compact h3 { font-size: 20px; }
.t2-rows.compact li > p { font-size: 16px; }
.ab-team .ab-more { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ceo-line { font-size: 15px; color: #6B7480; }
.v-k { letter-spacing: .01em; }
@media (max-width: 809px) { .pers3 { grid-template-columns: 1fr; gap: 10px; } .pers3 li { padding: 24px 22px; } .p-ko { font-size: 26px; } .p-d { margin-top: 14px; font-size: 15.5px; } .t2-rows.compact li { padding: 18px 20px; } }

/* ================= 마무리 + 푸터 v2 (2026-09-29) ================= */
.closing { padding: 0; background: #F4F5F7; }
.closing > .container { max-width: calc(var(--container) + var(--gutter) * 2); padding-inline: var(--gutter); }
.closing-card, .closing-inner { all: unset; }
.cta2-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 96px; }
.cta2 { position: relative; display: flex; flex-direction: column; min-height: 260px; padding: 40px 40px 36px; border-radius: 24px; color: #fff; overflow: hidden; transition: transform .3s ease; }
.cta2:hover { transform: translateY(-3px); }
.cta2.join { background: var(--brand); }
.cta2.partner { background: #0C0D10; }
.c2-k { font-size: 36px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
.c2-s { margin-top: 14px; font-size: 18px; line-height: 1.55; color: rgba(255,255,255,.8); }
.c2-b { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 999px; background: #fff; color: #0B0C0F; font-size: 15px; font-weight: 700; }
.c2-b::after { content: ""; width: 7px; height: 7px; border-top: 1.8px solid currentColor; border-right: 1.8px solid currentColor; transform: rotate(45deg); }
.closing .site-footer { margin: 0; padding: 72px 0 36px; color: #3D4652; background: none; }
.closing.footer-only .site-footer { padding-top: 64px; }
.site-footer .cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; }
.site-footer .f-logo { font-size: 20px; font-weight: 700; letter-spacing: .12em; color: #0B0C0F; }
.site-footer .f-desc { margin-top: 10px; font-size: 15px; color: #6B7480; }
.site-footer .f-addr { margin: 28px 0 0; display: grid; gap: 10px; }
.site-footer .f-addr div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; font-size: 14px; line-height: 1.55; }
.site-footer .f-addr dt { font-weight: 700; color: #0B0C0F; }
.site-footer .f-addr dd { margin: 0; color: #5B6572; }
.site-footer .f-addr a { color: #5B6572; } .site-footer .f-addr a:hover { color: var(--brand); }
.site-footer .menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.site-footer .menu h2, .site-footer h2 { font-size: 13px; font-weight: 700; letter-spacing: .04em; color: #9AA3AF; margin: 0 0 14px; }
.site-footer .menu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer .menu a { font-size: 15px; color: #252A31; }
.site-footer .menu a:hover { color: var(--brand); }
.site-footer .bottom { margin-top: 56px; padding-top: 24px; border-top: 1px solid #E1E4E9; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #7A8190; }
.site-footer .bottom nav { display: flex; gap: 18px; }
.site-footer .bottom nav a { color: #7A8190; } .site-footer .bottom nav a:first-child { color: #252A31; font-weight: 700; }
.closing-card::before, .closing-card::after { display: none !important; }
@media (max-width: 1100px) { .site-footer .cols { grid-template-columns: 1fr; } }
@media (max-width: 809px) {
  .cta2-row { grid-template-columns: 1fr; gap: 10px; padding-top: 56px; }
  .cta2 { min-height: 200px; padding: 28px 24px; } .c2-k { font-size: 28px; } .c2-s { font-size: 15.5px; }
  .site-footer .menu { grid-template-columns: 1fr 1fr; } .site-footer .f-addr div { grid-template-columns: 1fr; gap: 2px; }
}
.art-q { margin: 36px 0 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--brand); }
.art-q p { font-size: 22px; line-height: 1.5; font-weight: 700; letter-spacing: -0.02em; color: #0B0C0F; }
.art-q cite { display: block; margin-top: 8px; font-style: normal; font-size: 14px; color: #7A8190; }
@media (max-width: 809px) { .art-q p { font-size: 18px; } }
/* 성장 차트 v4: 화살표가 배지로 */
.gp-top { display: flex; align-items: baseline; justify-content: space-between; }
.gp-sub { font-size: 14px; color: #7A8190; }
.gp-stage { position: relative; padding-top: 96px; }
.gp-bars { margin-top: 0; }
.gp-badge { position: absolute; right: 0; top: 0; z-index: 3; text-align: right; }
.gp-badge b { display: block; font-size: 60px; line-height: 1; font-weight: 700; letter-spacing: -0.04em; color: var(--brand); }
.gp-badge b small { font-size: .4em; margin-left: 4px; }
.gp-badge span { display: block; margin-top: 4px; font-size: 14px; font-weight: 600; color: #3D4652; }
.gp-stage .gp-arrow { position: absolute; left: 0; top: 0; width: 100%; height: 100%; right: auto; bottom: auto; overflow: visible; pointer-events: none; z-index: 2; }
.gp-stage .gp-arrow path { fill: none; stroke: var(--brand); stroke-width: 3px; stroke-linecap: round; stroke-linejoin: round; vector-effect: none; }
.gp-stage .ga-l { transition: stroke-dashoffset 1.3s cubic-bezier(.4,0,.2,1) .5s; }
.gp-stage .ga-h { opacity: 0; transition: opacity .3s ease 1.7s; }
[data-gchart].in .gp-stage .ga-h { opacity: 1; }
.gp-plot { height: 260px; }
@media (max-width: 809px) { .gp-stage { padding-top: 76px; } .gp-badge b { font-size: 40px; } .gp-plot { height: 190px; } }
/* Why Summits v3: 회색 패널 + 큰 일러스트 */
.why-s { background: #fff; }
.ws-panel { border-radius: 32px; background: #F4F5F7; padding: 80px 56px 64px; }
.ws-panel .head.center { margin-bottom: 48px; }
.ws-panel .ws-cards { gap: 20px; }
.ws-panel .ws-cards li { background: #fff; border: 0; border-radius: 24px; padding: 44px 24px 40px; box-shadow: 0 1px 2px rgba(5,17,45,.04); }
.ws-panel .ws-cards img { width: 168px; height: 168px; margin: 0 auto 28px; }
.ws-panel .ws-cards h3 { font-size: 24px; line-height: 1.3; letter-spacing: -0.02em; }
.ws-panel .ws-cards p { margin-top: 14px; font-size: 16px; color: #5B6572; }
.ws-panel .ws-stats { margin: 48px 0 0; border-top: 0; }
.ws-panel .ws-stats > div { align-items: center; text-align: center; padding: 0; }
.ws-panel .ws-stats > div + div { border-left: 1px solid #DDE1E7; }
.ws-panel .ws-stats dd { font-size: 48px; color: var(--ink); }
@media (max-width: 1100px) { .ws-panel { padding: 56px 28px 44px; } .ws-panel .ws-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 809px) {
  .ws-panel { padding: 40px 16px 32px; border-radius: 22px; }
  .ws-panel .ws-cards { gap: 10px; } .ws-panel .ws-cards li { display: block; padding: 22px 12px 20px; }
  .ws-panel .ws-cards img { width: 88px; height: 88px; margin: 0 auto 12px; }
  .ws-panel .ws-cards h3 { font-size: 16px; } .ws-panel .ws-cards p { font-size: 13px; margin-top: 6px; }
  .ws-panel .ws-stats { grid-template-columns: 1fr 1fr; row-gap: 20px; } .ws-panel .ws-stats dd { font-size: 32px; }
  .ws-panel .ws-stats > div:nth-child(3) { border-left: 0; }
}
.gp-badge { right: 0; top: 4px; }
@media (min-width: 810px) { .gp-stage { padding-top: 110px; } }

/* 2026-09-29 정리: Why Summits 박스 겹 줄이기 · 성장 차트 화살표 제거 */
.ws-panel { background: none; padding: 0; border-radius: 0; }
.ws-panel .head.center { margin-bottom: 56px; }
.ws-panel .ws-cards li { background: #fff; border: 1px solid #E6E9EE; box-shadow: none; border-radius: 24px; padding: 40px 28px 36px; }
.ws-panel .ws-cards img { width: 112px; height: 112px; margin: 0 auto 24px; }
.ws-panel .ws-cards h3 { font-size: 22px; }
.ws-panel .ws-stats { margin-top: 72px; padding-top: 48px; border-top: 1px solid #E4E7EB; }
.gp-stage .gp-arrow { visibility: hidden; }
.gp-stage, .gp-stage[class] { padding-top: 0; }
.gp-badge { position: static; text-align: left; display: flex; align-items: baseline; gap: 12px; margin: 20px 0 44px; }
.gp-badge b { font-size: 56px; }
.gp-badge span { margin: 0; font-size: 15px; color: #5B6572; }
.gp-col.now .gp-bar em { color: var(--ink); }
.gp-plot { border-bottom: 1px solid #D5DAE1; }
.gp-col > p { font-weight: 600; color: #6B7480; }
.gp-col.now > p { color: var(--ink); }
@media (min-width: 810px) { .gp-stage { padding-top: 0; } }
@media (max-width: 809px) {
  .ws-panel .ws-cards li { padding: 24px 14px 22px; } .ws-panel .ws-cards img { width: 80px; height: 80px; margin-bottom: 14px; }
  .ws-panel .ws-stats { margin-top: 44px; padding-top: 32px; }
  .gp-badge b { font-size: 40px; } .gp-badge { margin: 14px 0 32px; }
}
/* 2026-09-29 히어로 3번(Global Marketing) 타일 정리 */
.htile.k-stat figure { background: #0C0D10; align-items: center; }
.ht-stat { justify-content: center; gap: 14px; padding: 20px 18px; }
.ht-stat span { font-size: 13.5px; color: rgba(255,255,255,.62); }
.htile.k-logos figure { background: #F5F6F8; border: 0; }
.ht-logos { gap: 22px 12px; padding: 18px 14px; }
.ht-logos img { filter: grayscale(1) brightness(.45); opacity: .9; }
@media (max-width: 809px) { .ht-stat { gap: 6px; padding: 10px 9px; } .ht-stat span { font-size: 10px; } .ht-logos { gap: 10px 6px; padding: 8px; } }
.logo-svg { overflow: visible; }
.site-footer .f-logo { display: inline-block; color: #0B0C0F; }
.site-footer .f-svg { height: 18px; width: auto; display: block; }
.cust-note a { display: grid; grid-template-columns: 1fr auto; column-gap: 12px; align-items: center; text-align: left; }
.cust-note a b { grid-column: 1; } .cust-note a span { grid-column: 1; }
.cust-note a::after { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
/* 회사 정의 */
.define { padding-top: 120px; padding-bottom: 40px; background: #fff; }
.def-k { font-size: 15px; font-weight: 700; letter-spacing: .02em; color: var(--brand); }
.def-s { margin-top: 20px; font-size: 40px; line-height: 1.45; font-weight: 700; letter-spacing: -0.03em; color: #0B0C0F; text-wrap: balance; }
.def-s em { font-style: normal; color: var(--brand); }
.def-u { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1.5px solid #0B0C0F; }
.def-u a { display: flex; flex-direction: column; gap: 4px; padding: 20px 24px 4px 0; color: var(--ink); }
.def-u li + li a { padding-left: 24px; border-left: 1px solid #E4E7EB; }
.def-u b { font-size: 19px; font-weight: 700; }
.def-u span { font-size: 15px; color: #6B7480; }
.def-u a:hover b { color: var(--brand); }
.define + .why-s { padding-top: 64px; }
@media (max-width: 1100px) { .def-s { font-size: 32px; } }
@media (max-width: 809px) { .define { padding-top: 72px; padding-bottom: 16px; } .def-s { font-size: 23px; } .def-s br { display: none; } .def-u { grid-template-columns: 1fr; margin-top: 28px; } .def-u li + li a { padding-left: 0; border-left: 0; border-top: 1px solid #E4E7EB; } .def-u a { padding: 14px 0; } }
/* 모바일 CRM: 가로 스크롤 대신 단계 6칸 격자 + 현재 단계 강조 */
@media (max-width: 809px) {
  .sc-crm .pipe.kb { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px; overflow: visible !important; padding-bottom: 0; }
  .sc-crm .pipe.kb .pc { min-width: 0; padding: 10px 8px; border-radius: 10px; }
  .sc-crm .pipe.kb .pc > p { font-size: 11.5px; line-height: 1.3; white-space: normal; }
  .sc-crm .pipe.kb .pc .kc, .sc-crm .pipe.kb .slot, .sc-crm .kc.trav { display: none !important; }
  .sc-crm .pipe.kb .pc.is-now { background: var(--brand-tint, #E3E9FF); border-color: var(--brand); }
  .sc-crm .pipe.kb .pc.is-now > p { color: var(--brand); font-weight: 700; }
  .sc-crm .pipe.kb .pc.is-done > p { color: #3D4652; }
  .sc-crm .crm-top .filter, .sc-crm .crm-top input { display: none; }
}
/* 모바일 회복 장면: WhatsApp 화면을 위로, 단계 목록은 아래로 */
@media (max-width: 1100px) {
  .sc-rem { display: flex !important; flex-direction: column; }
  .sc-rem .wa { order: -1; }
  .sc-rem .rem-steps { margin-top: 16px; }
}
@media (max-width: 809px) {
  .sc-crm .pipe.kb .pc { height: auto !important; min-height: 0 !important; }
  .sc-crm .pipe.kb::before, .sc-crm .pipe.kb::after { display: none; }
  .sc-crm .crm-detail { min-height: 0 !important; }
  .sc-crm .cd { position: relative; inset: auto; display: none; transform: none; }
  .sc-crm .cd.is-on { display: block; }
}
@media (max-width: 809px) { .s2-pt.p1 time { display: none; } }
/* 회사 정의 v2: 영문 디스크립터가 제목, 한국어는 설명 */
.define .container { text-align: center; }
.def-t { font-size: 56px; line-height: 1.12; font-weight: 700; letter-spacing: -0.03em; color: #0B0C0F; }
.define .def-s { margin: 20px auto 0; max-width: 34em; font-size: 20px; line-height: 1.55; font-weight: 500; letter-spacing: -0.01em; color: var(--muted); }
.def-u { text-align: left; }
@media (max-width: 1100px) { .def-t { font-size: 44px; } }
@media (max-width: 809px) { .def-t { font-size: 32px; } .define .def-s { font-size: 15.5px; } .def-t br { display: inline; } }
/* 여정 01: MyVenus TV 배지 */
.reel { position: relative; }
.yt-badge { position: absolute; left: 10px; right: 10px; bottom: 16px; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; background: rgba(12,13,16,.78); color: #fff; }
.yt-badge svg { width: 26px; height: 26px; flex: none; }
.yt-badge b { display: block; font-size: 13px; } .yt-badge em { display: block; font-style: normal; font-size: 11.5px; color: rgba(255,255,255,.7); }
.yt-badge:hover { background: rgba(12,13,16,.92); }
/* CRM 체류 일정 v3: 현재 상태가 보이게, 아이콘, 한 줄 다음 일정 */
.st3 { display: flex; flex-direction: column; gap: 16px; }
.st3-top { display: flex; align-items: center; gap: 10px; }
.st3-top .av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-tint, #E3E9FF); color: var(--brand); font-weight: 700; font-size: 13px; flex: none; }
.st3-top b { display: block; font-size: 15px; } .st3-top div span { font-size: 12.5px; color: #6B7480; }
.st3-now { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-style: normal; font-size: 12.5px; font-weight: 700; color: #0E8A4A; background: #E6F7EE; padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.st3-now i { width: 7px; height: 7px; border-radius: 50%; background: #16A35A; box-shadow: 0 0 0 3px rgba(22,163,90,.2); }
.st3-track { position: relative; height: 74px; margin: 0 30px; }
.st3-line { position: absolute; left: 0; right: 0; top: 15px; height: 4px; border-radius: 2px; background: repeating-linear-gradient(90deg, #D5DBE6 0 6px, transparent 6px 11px); }
.st3-line i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 2px; background: var(--brand); }
.st3-pt { position: absolute; left: var(--x); top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 1px; }
.st3-pt > i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid #C9D1DE; color: #9AA3AF; }
.st3-pt > i svg { width: 17px; height: 17px; }
.st3-pt.ok > i { border-color: var(--brand); background: var(--brand); color: #fff; }
.st3-pt.now > i { border-color: #16A35A; background: #16A35A; color: #fff; box-shadow: 0 0 0 5px rgba(22,163,90,.16); }
.st3-pt b { margin-top: 5px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.st3-pt time { font-size: 11px; color: #7A8190; white-space: nowrap; }
.st3-pt.now b, .st3-pt.now time { color: #0E8A4A; }
.st3-next { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px; background: #F6F8FC; font-size: 13px; }
.st3-next span { font-size: 11.5px; font-weight: 700; color: #9AA3AF; } .st3-next em { margin-left: auto; font-style: normal; font-size: 12px; color: #6B7480; }
@media (max-width: 809px) { .st3-track { margin: 0 20px; } .st3-pt:nth-child(3) b, .st3-pt:nth-child(3) time { display: none; } .st3-now { font-size: 11px; padding: 5px 9px; } }
/* Systems + People v2: 같은 순간을 좌(시스템) · 가운데(순간) · 우(사람)로 */
.sp-list { list-style: none; margin: 0; padding: 0; position: relative; }
.sp-list::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1.5px dashed #C9D3F5; }
.sp-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr); gap: 24px; align-items: center; padding: 28px 0; opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.sp-row.in { opacity: 1; transform: none; }
.sp-lab { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9AA3AF; margin-bottom: 10px; }
.sp-sys { background: #0C0D10; color: #fff; border-radius: 22px; padding: 24px; }
.sp-sys .sp-lab { color: var(--glow); }
.sp-ui { background: #fff; color: #0B0C0F; border-radius: 14px; padding: 14px; display: grid; gap: 8px; }
.ui-h { font-size: 12px; font-weight: 700; color: #7A8190; }
.ui-bub { justify-self: start; max-width: 90%; padding: 8px 12px; border-radius: 12px 12px 12px 4px; background: #F1F3F7; font-size: 13px; line-height: 1.45; }
.ui-bub.me { justify-self: end; border-radius: 12px 12px 4px 12px; background: var(--brand-tint, #E3E9FF); color: #1B34B5; }
.ui-tag { justify-self: start; font-size: 12px; font-weight: 700; color: var(--brand); background: #EEF2FF; padding: 5px 10px; border-radius: 999px; }
.ui-row { display: flex; justify-content: space-between; padding: 8px 10px; border-radius: 8px; background: #F6F8FC; font-size: 13px; }
.ui-row b { color: #0E8A4A; } .ui-row.on { background: var(--brand-tint, #E3E9FF); } .ui-row.on b { color: var(--brand); }
.sp-sys .sp-d { margin-top: 14px; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.75); }
.sp-mid { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 8px; border-radius: 16px; background: #fff; border: 1.5px solid #C9D3F5; text-align: center; }
.sp-mid .num { font-size: 13px; font-weight: 700; color: var(--brand); }
.sp-mid b { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.sp-ppl { background: var(--surface-2, #F6F7F9); border-radius: 22px; padding: 24px; display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 18px; align-items: center; }
.sp-ppl .sp-lab { grid-column: 1 / -1; color: var(--brand); }
.sp-ppl figure { margin: 0; grid-row: span 2; aspect-ratio: 1; border-radius: 14px; overflow: hidden; }
.sp-ppl img { width: 100%; height: 100%; object-fit: cover; }
.sp-ppl h3 { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; align-self: end; }
.sp-ppl .sp-d { margin-top: 6px; font-size: 15px; line-height: 1.55; color: #4A5160; align-self: start; }
@media (prefers-reduced-motion: reduce) { .sp-row { opacity: 1; transform: none; transition: none; } }
@media (max-width: 1100px) {
  .sp-list::before { left: 20px; }
  .sp-row { grid-template-columns: 1fr; gap: 12px; padding: 24px 0 24px 44px; }
  .sp-mid { order: -1; flex-direction: row; justify-self: start; margin-left: -44px; padding: 8px 14px; }
}
@media (max-width: 809px) { .sp-ppl { grid-template-columns: 88px 1fr; padding: 18px; } .sp-sys { padding: 18px; } .sp-ppl h3 { font-size: 17px; } }

/* ================= 여정: 데스크톱 탭 방식 (스크롤 고정 없음) ================= */
@media (min-width: 1101px) {
  .j-tabs .jsteps { display: none; }
  .j-tabs .jgrid { display: block; }
  .j-tabs .jstick { position: relative; top: auto; height: auto; min-height: 0; padding: 0 0 72px; }
  .j-tabs .jprog { display: none; }
  .jtabs { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 32px; }
  .jtabs button { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px 12px 12px; border: 0; border-radius: 12px; background: rgba(255,255,255,.05); color: rgba(255,255,255,.55); text-align: left; cursor: pointer; transition: background .2s ease, color .2s ease; }
  .jtabs button::after { content: ""; position: absolute; left: 12px; right: 12px; top: 0; height: 2px; border-radius: 2px; background: rgba(255,255,255,.12); }
  .jtabs button.done::after { background: rgba(143,166,255,.5); }
  .jtabs button.is-on { background: #fff; color: #0B0C0F; }
  .jtabs button.is-on::after { background: var(--brand); }
  .jtabs button:hover:not(.is-on) { background: rgba(255,255,255,.1); color: #fff; }
  .jtabs .num { font-size: 12px; font-weight: 700; color: var(--glow); }
  .jtabs button.is-on .num { color: var(--brand); }
  .jtabs b { font-size: 14.5px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.3; }
  .j-tabs .jstage { height: 520px; }
  .j-tabs .jhint { bottom: 10px; padding: 10px 18px; }
  .j-tabs .jh-mouse { display: none; }
  .j-tabs .jh-t b::after { content: " →"; }
  .j-tabs .jnote { bottom: 22px; }
  /* CRM 상세가 잘리지 않게 */
  .j-tabs .sc-crm .crm-detail { min-height: 0; }
  .j-tabs .sc-crm .cd { position: relative; inset: auto; display: none; transform: none; }
  .j-tabs .sc-crm .cd.is-on { display: block; }
  .j-tabs .jstage .sc-crm, .j-tabs .jstage .sc-crm > .win { height: auto; }
  .j-tabs .jstage .sc-crm > .win > :last-child { overflow: visible; }
  .j-tabs .jstage:has(.jscene.is-on .sc-crm) { height: auto; min-height: 520px; }
}
/* 맨 위로 버튼: 어두운 배경 위에서는 흰 버튼 */
.to-top.on-dark { background: #fff; color: #0B0C0F; box-shadow: 0 10px 24px -8px rgba(0,0,0,.6); }
.to-top.on-dark:hover { background: var(--brand); color: #fff; }

/* ================= 타이포 v3: 리캐치 실측값 (Pretendard · 제목 48/700/1.5 · 자간 normal · 설명 20/500/1.5 중립 회색) ================= */
:root { --muted: #6B7280; }
.head h2, .head.center h2, .def-t, .closing-title, .chapter-head h2 { font-size: 48px; line-height: 1.4; font-weight: 700; letter-spacing: normal; color: #111318; }
.head.center h2, .def-t { line-height: 1.3; }
.head p, .head > p, .head.center > p, .define .def-s, .closing-cta p, .c2-side p { font-size: 20px; line-height: 1.5; font-weight: 500; letter-spacing: normal; color: #6B7280; }
.head.center > p { margin-top: 12px; }
.define .def-s { margin-top: 16px; }
.page-hero h1, .hero-st .st-h, .fin-h { letter-spacing: -0.02em; }
.page-hero h1 { font-size: 45px; line-height: 1.4; }
.page-hero .lead { font-size: 20px; line-height: 1.5; font-weight: 500; letter-spacing: normal; }
.band.night .head h2, .band.night .head.center h2 { color: #fff; }
.band.night .head p { color: rgba(255,255,255,.6); }
.ws-panel .ws-cards h3, .why3 h3, .c2-steps h3, .teams6 h3, .values2 h3, .vals4 h3, .lt2-list h3, .lt2-feat h3, .nc h3 { letter-spacing: -0.01em; }
.jt h3 { font-size: 28px; line-height: 1.4; letter-spacing: normal; }
.jt .st-desc { font-size: 20px; line-height: 1.5; font-weight: 500; letter-spacing: normal; color: rgba(255,255,255,.6); }
@media (max-width: 1100px) { .head h2, .head.center h2, .def-t, .closing-title, .chapter-head h2 { font-size: 38px; } .page-hero h1 { font-size: 36px; } }
@media (max-width: 809px) {
  .head h2, .head.center h2, .def-t, .closing-title, .chapter-head h2 { font-size: 28px; line-height: 1.4; }
  .head p, .head > p, .head.center > p, .define .def-s, .c2-side p, .page-hero .lead { font-size: 16px; }
  .page-hero h1 { font-size: 26px; } .jt .st-desc { font-size: 16px; }
}
/* 사업 카드: 흐름 줄 제거 후 여백 */
.bz-b { padding-bottom: 28px; }
/* 인박스 채널 목록 여백 */
.sc-inbox .inbox { grid-template-columns: 148px 200px minmax(0, 1fr); }
.inbox .ch { padding: 14px 12px; gap: 4px; }
.inbox .ch li { padding: 9px 10px; border-radius: 8px; }
/* CRM 체류 일정 v4: 트랙은 입국~출국 전체, 아래 체크리스트로 완료/진행/예정 */
.st3-track { height: 64px; }
.st3-pt { z-index: 1; }
.st3-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.st3-list li { display: grid; grid-template-columns: 20px auto 1fr auto; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 9px; background: #F6F8FC; font-size: 12.5px; }
.st3-list i { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; border: 1.6px dashed #B9C0CB; }
.st3-list i svg { width: 11px; height: 11px; }
.st3-list li.ok i { border: 0; background: var(--brand); color: #fff; }
.st3-list li.now { background: #E6F7EE; } .st3-list li.now i { border: 0; background: #16A35A; box-shadow: 0 0 0 3px rgba(22,163,90,.2); }
.st3-list time { font-size: 11.5px; color: #7A8190; font-variant-numeric: tabular-nums; }
.st3-list b { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st3-list em { font-style: normal; font-size: 11px; font-weight: 700; color: #9AA3AF; }
.st3-list li.ok em { color: var(--brand); } .st3-list li.now em { color: #0E8A4A; }
.st3 { gap: 12px; }
@media (max-width: 809px) { .st3-list { grid-template-columns: 1fr; } }
/* CRM 전체가 무대 안에 들어오도록: 카드 영역 압축 */
@media (min-width: 1101px) {
  .jstage .sc-crm .pipe.kb .pc { padding-bottom: 8px; }
  .jstage .sc-crm .kc { padding-top: 6px; padding-bottom: 6px; }
  .jstage .sc-crm .crm-detail { min-height: 0; }
  .jstage .sc-crm .cd { position: relative; inset: auto; display: none; transform: none; padding-top: 12px; padding-bottom: 12px; }
  .jstage .sc-crm .cd.is-on { display: block; }
}
/* 피날레 순서: 머리말 → 제목 → 버튼 */
.hero-st.is-fin .fin-k { transition-delay: .5s; }
.hero-st.is-fin .fin-h { transition-delay: .9s; }
.hero-st.is-fin .st-fin .btn-row { transition: opacity .8s ease 2s, transform .8s ease 2s; }
.st-fin .btn-row { transform: translateY(10px); }
.hero-st.is-fin .st-fin .btn-row { transform: none; }
/* 여정 01: 릴스 2 + 콘텐츠 성과 리포트 */
.yt-badge.ig { background: rgba(255,255,255,.94); color: #0B0C0F; }
.yt-badge.ig em { color: #6B7480; }
.yt-badge.ig:hover { background: #fff; }
.gm-rep { flex: 1 1 0; min-width: 0; height: 100%; border-radius: 18px; background: #fff; color: #0B0C0F; padding: 22px 24px; display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
.gr-h { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; }
.gr-h em { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 600; color: #9AA3AF; }
.gr-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
.gr-kpi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.gr-kpi > div { background: #F6F8FC; border-radius: 12px; padding: 12px; }
.gr-kpi span { display: block; font-size: 12px; color: #6B7480; }
.gr-kpi b { display: block; margin-top: 4px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.gr-kpi i { font-style: normal; font-size: 11.5px; font-weight: 700; color: #0E8A4A; }
.gr-sub { font-size: 12px; font-weight: 700; color: #9AA3AF; }
.gr-bars { list-style: none; margin: -6px 0 0; padding: 0; display: grid; gap: 8px; }
.gr-bars li { display: grid; grid-template-columns: 76px 1fr 52px; align-items: center; gap: 10px; font-size: 13px; }
.gr-bars i { height: 10px; border-radius: 5px; background: #EEF1F6; overflow: hidden; }
.gr-bars i b { display: block; height: 100%; border-radius: 5px; background: var(--brand); }
.gr-bars em { font-style: normal; font-weight: 700; text-align: right; }
.gr-top { display: grid; gap: 6px; }
.gr-item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; border: 1px solid #ECEEF2; }
.gr-item img { width: 44px; height: 56px; object-fit: cover; border-radius: 8px; }
.gr-item b { display: block; font-size: 14px; } .gr-item span { font-size: 12px; color: #6B7480; }
.gr-bot { margin-top: auto; display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #6B7480; }
.gr-bot .bot { font-size: 11px; font-weight: 700; color: #fff; background: var(--brand); padding: 2px 7px; border-radius: 6px; }
@media (max-width: 1100px) { .gm-rep { flex-basis: 100%; height: auto; } .sc-gm .reels { flex-wrap: wrap; } }
/* CRM: 카드 한 줄로 줄여 상세가 여유 있게 들어오도록 */
@media (min-width: 1101px) {
  .jstage .sc-crm .pc .kc + .kc:not(.trav) { display: none; }
  .jstage .sc-crm .cd { padding-bottom: 16px; }
}

/* ================= 서브페이지 타이포 정리 (2026-09-29): 리캐치 기준 위계 3단 ================= */
/* 섹션 머리 */
.head .eb { font-size: 15px; font-weight: 600; letter-spacing: 0; margin-bottom: 14px; }
.head.center .eb { margin-bottom: 12px; }
/* 카드 제목 = 22 / 600, 본문 = 17 / 1.6 / #4A5160, 라벨 = 14 / 600 */
.why3 h3, .teams6 h3, .c2-steps h3, .values2 h3, .vals4 h3, .t2-rows h3, .clinic3 h3, .cities2 .c-top b, .w-city, .link3 b, .why4 h3, .backers2 b, .team3 h3, .process h3, .jobs h3 { font-weight: 600; letter-spacing: -0.01em; }
.why3 h3, .teams6 h3, .c2-steps h3, .values2 h3, .why4 h3, .clinic3 h3, .link3 b { font-size: 22px; line-height: 1.4; }
.vals4 h3 { font-size: 20px; line-height: 1.45; }
.why3 h3 + p, .teams6 h3 + p, .c2-steps p, .values2 p, .why4 p, .clinic3 h3 + p, .cities2 .c-d, .t2-rows li > p, .v-d, .link3 em, .process p, .hist2 ul li, .gp-hist p { font-size: 17px; line-height: 1.6; color: #4A5160; letter-spacing: normal; }
.why3 .q, .tm-loc, .t2-city, .cl-n, .c-t, .w-t, .l-k, .v-k, .v-k2, .w-n, .c2-steps .num, .values2 .num, .mv-k, .sp-lab { font-size: 14px; font-weight: 600; letter-spacing: 0; }
.w-t, .l-k { color: #6B7480; }
.mv-s { font-size: 26px; line-height: 1.5; font-weight: 600; letter-spacing: -0.01em; }
.mv-en, .v-en { font-size: 14px; }
.hist2 .y { font-size: 28px; font-weight: 700; }
.hist2 > li { padding: 28px 0; }
/* 카드 간격·여백 넉넉하게 */
.why3, .where4, .teams6, .clinic3, .cities2, .link3, .c2-steps, .why4, .vals4 { gap: 24px; }
.teams6 li, .clinic3 li, .cities2 li { padding-bottom: 28px; }
.teams6 figure, .clinic3 figure, .cities2 figure { margin-bottom: 22px; }
.values2 li { padding: 28px 0; }
.v-q { font-size: 16px; padding: 14px 16px; }
.band { padding-top: 120px; padding-bottom: 120px; }
.band.tight { padding-top: 72px; padding-bottom: 72px; }
.head { margin-bottom: 48px; }
/* 히어로 위 숫자 */
.ab-facts dt { font-size: 14px; } .ab-facts dd { font-size: 36px; }
@media (max-width: 809px) {
  .why3 h3, .teams6 h3, .c2-steps h3, .values2 h3, .why4 h3, .clinic3 h3, .link3 b { font-size: 19px; }
  .why3 h3 + p, .teams6 h3 + p, .c2-steps p, .values2 p, .why4 p, .clinic3 h3 + p, .cities2 .c-d, .t2-rows li > p, .v-d, .link3 em, .process p, .hist2 ul li, .gp-hist p { font-size: 15.5px; }
  .mv-s { font-size: 20px; } .hist2 .y { font-size: 22px; }
  .band { padding-top: 72px; padding-bottom: 72px; } .head { margin-bottom: 28px; }
}
/* CRM 마지막 단계: 칸반을 단계 줄로 접고, 체류 일정을 넉넉하게 */
.sc-crm .pipe.kb .pc { transition: padding .4s ease; }
.crm-end .sc-crm .pipe.kb .kc, .crm-end .sc-crm .pipe.kb .slot { display: none !important; }
.crm-end .sc-crm .pipe.kb .pc { padding-bottom: 10px; min-height: 0 !important; height: auto !important; }
.crm-end .sc-crm .pipe.kb::before, .crm-end .sc-crm .pipe.kb::after { display: none; }
.sc-crm .st3-track { margin: 6px 34px 4px; }
.sc-crm .st3-list { row-gap: 8px; }
.sc-crm .st3-list li { padding: 10px 12px; }
.sc-crm .cd { padding: 18px 22px 22px; }
/* 여정 06: 지점별 사진 3장, 스크롤에 따라 교체 */
.gi-rot { position: relative; }
.gi-rot img.rot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .7s ease, transform 1.2s ease; }
.gi-rot img.rot.on { opacity: 1; transform: none; }
.gi-rot img.rot:first-child { opacity: 1; }
.gi-rot img.rot:first-child:not(.on) ~ img.rot.on, .gi-rot img.rot.on ~ img.rot.on { opacity: 1; }
.rot-dots { position: absolute; top: 14px; left: 14px; right: 14px; z-index: 2; display: flex; gap: 5px; }
.rot-dots i { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,.35); }
.rot-dots i.on { background: #fff; }
.gi-rot figcaption { z-index: 2; }
/* What We Do 카드: 영상·사진 크게 */
.bz figure { aspect-ratio: 4 / 5; }
.bz figure video, .bz figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mvl-cap { font-size: 24px; line-height: 1.5; font-weight: 600; margin-bottom: 36px; }
/* 모바일 여정 01: 릴스 2개 나란히, 리포트는 아래 전체 폭 */
@media (max-width: 1100px) {
  .sc-gm .reels { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; overflow: visible !important; }
  .sc-gm .reel { width: auto !important; min-width: 0; aspect-ratio: 9 / 16; }
  .sc-gm .gm-rep { grid-column: 1 / -1; height: auto; }
  .gr-kpi b { font-size: 18px; }
  .gr-bars li { grid-template-columns: 68px 1fr 44px; font-size: 12px; }
  .sc-inbox .inbox { grid-template-columns: 1fr !important; }
  .sc-inbox .threads { display: none; }
  .sc-inbox .conv .bub { max-width: 88%; }
}
@media (max-width: 809px) { .mvl-cap { font-size: 18px; } .mvl-cap br { display: none; } }

/* ================= About 개요 · Business 비교표 · Careers 조직/성장/인재풀 (2026-09-29) ================= */
.ov-table { margin: 0; border-top: 1.5px solid #111318; }
.ov-table > div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid #E4E7EB; }
.ov-table dt { font-size: 16px; font-weight: 600; color: #6B7280; }
.ov-table dd { margin: 0; font-size: 18px; line-height: 1.55; color: #111318; }
.ov-table dd span { margin-left: 8px; font-size: 15px; color: #6B7280; }
.ov-table a { color: var(--brand); }
.cmp-wrap { overflow-x: auto; }
.bzt { display: table; width: 100%; border-collapse: collapse; min-width: 760px; }
.bzt th, .bzt td { text-align: left; vertical-align: top; padding: 18px 20px; border-bottom: 1px solid #E4E7EB; font-size: 16.5px; line-height: 1.55; }
.bzt thead th { font-size: 18px; font-weight: 700; border-bottom: 1.5px solid #111318; padding-top: 0; }
.bzt thead th a { color: #111318; } .bzt thead th a:hover { color: var(--brand); }
.bzt tbody th { width: 120px; font-size: 15px; font-weight: 600; color: #6B7280; }
.bzt td { color: #252A31; }
.org2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.org2-u { border-radius: 20px; background: var(--surface-2, #F6F7F9); padding: 28px 28px 20px; }
.org2-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #E1E4E9; }
.org2-h h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
.org2-h span { font-size: 14px; font-weight: 600; color: var(--brand); }
.org2 ul { list-style: none; margin: 0; padding: 0; }
.org2 li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 14px 0; border-bottom: 1px solid #ECEEF2; }
.org2 li:last-child { border-bottom: 0; }
.org2 li b { font-size: 17px; font-weight: 600; }
.org2 li em { font-style: normal; font-size: 13.5px; color: #6B7280; }
.org2 li p { grid-column: 1 / -1; font-size: 15.5px; line-height: 1.55; color: #4A5160; }
.grow6 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.grow6 li { background: #fff; border-radius: 20px; padding: 28px; }
.grow6 .num { font-size: 14px; font-weight: 700; color: var(--brand); }
.grow6 h3 { margin-top: 12px; font-size: 21px; font-weight: 600; letter-spacing: -0.01em; }
.grow6 p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: #4A5160; }
.empty-state { text-align: left; }
.pool-status { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #6B7280; padding: 6px 12px; border-radius: 999px; background: #F1F3F7; }
.pool-status i { width: 7px; height: 7px; border-radius: 50%; background: #9AA3AF; }
.empty-state h3 { margin-top: 18px; font-size: 28px; font-weight: 700; }
.pool-steps { list-style: none; margin: 24px 0 28px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pool-steps li { display: flex; gap: 14px; align-items: flex-start; padding: 20px; border-radius: 16px; background: #fff; border: 1px solid #E4E7EB; }
.pool-steps b { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; font-size: 14px; }
.pool-steps span { font-size: 16.5px; font-weight: 600; line-height: 1.5; }
.pool-steps em { display: block; margin-top: 4px; font-style: normal; font-size: 14.5px; font-weight: 400; color: #6B7280; }
@media (max-width: 1100px) { .org2, .grow6 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 809px) {
  .ov-table > div { grid-template-columns: 1fr; gap: 4px; padding: 14px 0; } .ov-table dd { font-size: 16px; }
  .org2, .grow6, .pool-steps { grid-template-columns: 1fr; } .org2-u { padding: 22px 20px 12px; } .grow6 li { padding: 22px; }
  .empty-state h3 { font-size: 22px; }
}
/* 릴스 상단 진행 바 제거 (기능 없음) */
.reel .bar { display: none !important; }

/* 성장 차트 v5: 연도마다 땅 · 땅 · 땅 (한 막대씩 튀어 오르고, 숫자가 올라가고, 마지막에 4.7배) */
.gp-bar { transform: scaleY(0); transition: none; }
.gp-bar em { opacity: 0; transform: translateY(8px); transition: none; }
.gp-col > p { transition: color .3s ease; }
.gp-badge { opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.gp-col.pop .gp-bar { animation: gp-pop .75s cubic-bezier(.3, 1.45, .55, 1) forwards; }
.gp-col.pop .gp-bar em { opacity: 1; transform: none; transition: opacity .3s ease .35s, transform .4s ease .35s; }
.gp-col.pop > p { color: var(--ink); }
.gp-col:not(.now).pop > p { color: #6B7480; }
.gchart-done .gp-badge, [data-gchart].gdone .gp-badge { opacity: 1; transform: none; }
@keyframes gp-pop { 0% { transform: scaleY(0); } 70% { transform: scaleY(1.06); } 100% { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .gp-bar { transform: none; } .gp-bar em, .gp-badge { opacity: 1; transform: none; } }

/* 푸터: 어둡게 (페이지 끝이 분명하게) */
.closing { background: #0C0D10; }
.cta2-row { padding-top: 96px; }
.cta2.partner { background: #1A1C22; border: 1px solid rgba(255,255,255,.08); }
.closing .site-footer { color: rgba(255,255,255,.7); }
.site-footer .f-logo { color: #fff; }
.site-footer .f-desc { color: rgba(255,255,255,.55); }
.site-footer .f-addr dt { color: #fff; }
.site-footer .f-addr dd, .site-footer .f-addr a { color: rgba(255,255,255,.6); }
.site-footer .f-addr a:hover, .site-footer .menu a:hover { color: #fff; }
.site-footer .menu h2, .site-footer h2 { color: rgba(255,255,255,.4); }
.site-footer .menu a { color: rgba(255,255,255,.8); }
.site-footer .bottom { border-top-color: rgba(255,255,255,.12); color: rgba(255,255,255,.45); }
.site-footer .bottom nav a { color: rgba(255,255,255,.55); }
.site-footer .bottom nav a:first-child { color: #fff; }
.closing.footer-only { padding-top: 8px; }
.gp-chart .gp-col:not(.pop) .gp-bar { transform: scaleY(0) !important; }
.gp-chart .gp-col:not(.pop) .gp-bar em { opacity: 0 !important; }
.gp-chart .gp-col.pop .gp-bar { transform: none; transition: none !important; }
.gp-chart:not(.gdone) .gp-badge { opacity: 0 !important; transform: translateY(10px); }
@media (prefers-reduced-motion: reduce) { .gp-chart .gp-col:not(.pop) .gp-bar { transform: none !important; } }
.site-footer .menu li { margin: 0; }
.site-footer .menu ul { gap: 12px; }
.site-footer .menu h2 { margin-bottom: 16px; }
.site-footer .menu a { font-size: 15px; line-height: 1.4; }
.to-top.on-dark { background: #fff; color: #0B0C0F; }

/* 헤더 Business 드롭다운 */
.nav-list .has-sub { position: relative; }
.nav-list .sub { position: absolute; left: 50%; top: 100%; transform: translate(-50%, 8px); min-width: 300px; padding: 8px; border-radius: 16px; background: #fff; box-shadow: 0 18px 40px -12px rgba(5,17,45,.25), 0 0 0 1px rgba(5,17,45,.06); opacity: 0; visibility: hidden; transition: opacity .2s ease, transform .2s ease, visibility .2s; z-index: 120; }
.nav-list .has-sub::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
.nav-list .has-sub:hover .sub, .nav-list .has-sub:focus-within .sub { opacity: 1; visibility: visible; transform: translate(-50%, 4px); }
.nav-list .sub a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 10px; color: #111318 !important; }
.nav-list .sub a:hover { background: #F4F6FA; }
.nav-list .sub b { font-size: 15px; font-weight: 700; } .nav-list .sub span { font-size: 13px; color: #6B7280; }
.mobile-menu .m-sub a { font-size: 17px; padding-left: 18px; color: #4A5160; }
/* 사업 카드 */
.bx-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.bx-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bx-card { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid #ECEEF2; color: #111318; transition: transform .3s ease, box-shadow .3s ease; }
.bx-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -20px rgba(5,17,45,.25); }
.bx-card figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; } .bx-grid.two .bx-card figure { aspect-ratio: 16 / 9; }
.bx-card img { width: 100%; height: 100%; object-fit: cover; }
.bx-card > div { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.bx-tag { font-size: 14px; font-weight: 600; color: var(--brand); }
.bx-card h3 { font-size: 24px; font-weight: 700; }
.bx-card > div > p:not(.bx-tag) { font-size: 17px; line-height: 1.55; color: #4A5160; }
.bx-card .more { margin-top: auto; padding-top: 10px; }
.bx-more .head { margin-bottom: 36px; }
.crumb { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.35); }
/* 단계 카드 */
.bsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.bsteps li { border-top: 2px solid #111318; padding-top: 20px; }
.bsteps.pic li { border-top: 0; padding-top: 0; }
.bsteps figure { margin: 0 0 18px; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: #EEF0F3; }
.bsteps figure img { width: 100%; height: 100%; object-fit: cover; }
.bsteps .num { font-size: 14px; font-weight: 700; color: var(--brand); }
.bsteps h3 { margin-top: 10px; font-size: 22px; font-weight: 600; }
.bsteps p { margin-top: 8px; font-size: 17px; line-height: 1.6; color: #4A5160; }
/* 숫자 띠 */
.bnums-sec { padding-top: 72px; padding-bottom: 72px; }
.bnums { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1.5px solid #111318; }
.bnums > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 24px 20px 0 0; }
.bnums > div + div { padding-left: 20px; border-left: 1px solid #E4E7EB; }
.bnums dd { margin: 8px 0 0; font-size: 44px; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; }
.bnums dt { font-size: 15px; color: #6B7280; }
/* 제휴 흐름 */
.flow5 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.flow5 li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 20px; border-radius: 16px; background: var(--surface-2, #F6F7F9); }
.flow5 li:last-child { background: var(--brand); color: #fff; } .flow5 li:last-child b { color: rgba(255,255,255,.75); }
.flow5 b { font-size: 14px; color: var(--brand); } .flow5 span { font-size: 17px; font-weight: 600; line-height: 1.4; }
/* 지점 */
.branches { display: grid; gap: 48px; }
.branch { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 32px; align-items: end; }
.br-ph { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; gap: 10px; height: 440px; }
.br-ph figure { margin: 0; border-radius: 16px; overflow: hidden; } .br-ph figure:first-child { grid-row: span 2; }
.br-ph img { width: 100%; height: 100%; object-fit: cover; }
.br-tx h3 { margin-top: 6px; font-size: 32px; font-weight: 700; } .br-tx p:last-child { margin-top: 10px; font-size: 17px; line-height: 1.6; color: #4A5160; }
@media (max-width: 1100px) { .bx-grid { grid-template-columns: 1fr 1fr; } .bnums { grid-template-columns: 1fr 1fr; } .bnums > div:nth-child(3) { padding-left: 0; border-left: 0; } .flow5 { grid-template-columns: 1fr 1fr; } .branch { grid-template-columns: 1fr; } }
@media (max-width: 809px) {
  .bx-grid, .bx-grid.two, .flow5 { grid-template-columns: 1fr; }
  .bnums dd { font-size: 30px; } .bnums > div { padding: 16px 12px 0 0; } .bnums > div + div { padding-left: 12px; }
  .br-ph { height: 300px; } .br-tx h3 { font-size: 24px; }
  .bsteps h3 { font-size: 19px; } .bsteps p, .bx-card > div > p:not(.bx-tag) { font-size: 15.5px; }
}

/* ===== 2026-09-29 연혁 v3 (타임라인 + 연도별 사진) ===== */
.hist3 { list-style: none; margin: 0; padding: 0; position: relative; }
.hist3::before { content: ""; position: absolute; left: 44px; top: 24px; bottom: 24px; width: 1px; background: #E4E7EB; }
.hist3 > li { display: grid; grid-template-columns: 88px 240px minmax(0, 1fr); gap: 40px; align-items: center; padding: 16px 0; }
.hist3 .y { position: relative; z-index: 1; justify-self: center; display: inline-flex; align-items: center; justify-content: center; min-width: 76px; height: 38px; padding: 0 14px; border-radius: 999px; background: #F2F4F7; color: #6B7280; font-size: 15px; font-weight: 600; }
.hist3 > li:first-child .y { background: var(--brand); color: #fff; }
.hist3 figure { margin: 0; aspect-ratio: 3 / 2; border-radius: 16px; overflow: hidden; background: #EEF0F3; }
.hist3 figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hist3 .h-est { display: flex; flex-direction: column; justify-content: flex-end; padding: 20px 22px; background: var(--night); color: #fff; }
.hist3 .h-est span { font-size: 14px; color: rgba(255,255,255,.6); }
.hist3 .h-est b { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.hist3 ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hist3 ul li { font-size: 18px; line-height: 1.5; color: #252A31; }
.hist3 ul em { font-style: normal; margin-left: 6px; font-size: 15px; color: #7A8190; }
@media (max-width: 809px) {
  .hist3::before { left: 17px; }
  .hist3 > li { grid-template-columns: 36px minmax(0, 1fr); gap: 8px 16px; align-items: start; padding: 14px 0 22px; }
  .hist3 .y { min-width: 0; width: 36px; height: 36px; padding: 0; font-size: 0; justify-self: start; }
  .hist3 .y::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
  .hist3 > li:first-child .y { color: #fff; }
  .hist3 figure { grid-column: 2; grid-row: 2; }
  .hist3 ul { grid-column: 2; grid-row: 3; }
  .hist3 > li::before { content: attr(data-y); }
  .hist3 ul li { font-size: 16px; }
}

/* ===== 코어밸류 v3 (질문 박스 제거) ===== */
.values3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.values3 li { background: #F7F8FA; border-radius: 20px; padding: 32px 28px 36px; display: flex; flex-direction: column; gap: 14px; }
.values3 .v-k { margin: 0; display: flex; gap: 10px; align-items: baseline; font-size: 14px; font-weight: 600; color: var(--brand); }
.values3 .v-k .num { color: #9AA1AD; }
.values3 h3 { margin: 0; font-size: 22px; line-height: 1.4; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
.values3 li > p:last-child { margin: 0; font-size: 16px; line-height: 1.6; color: #4A5160; }
@media (max-width: 1100px) { .values3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 809px) { .values3 { grid-template-columns: 1fr; } .values3 li { padding: 26px 22px; } .values3 h3 br { display: none; } }

/* 로고 띠: 처음부터 꽉 찬 상태로 순환 */
.mvl-track { animation-duration: 140s; }

/* ===== 사업 페이지 테마 ===== */
body.th-mv { --brand: #7C2629; --brand-hover: #621D20; --brand-tint: #EEF3FB; --glow: #98B6E4; --night: #232527; --night-2: #2C2F31; --ink: #232527; }
body.th-mv .band.tint { background: #F6F8FC; }
body.th-bano { --brand: #B4605A; --brand-hover: #9A4E49; --brand-tint: #FBEFEE; --glow: #E2A19C; --night: #231C1C; --night-2: #2D2525; }
body.th-bano .band.tint { background: #FDF6F5; }
body.th-mv .page-hero.night::after { background: radial-gradient(50% 60% at 78% 55%, rgba(152,182,228,.18), transparent 70%); }
body.th-bano .page-hero.night::after { background: radial-gradient(50% 60% at 78% 55%, rgba(226,161,156,.22), transparent 70%); }
body.th-mv .band.night .eb, body.th-mv .page-hero.night .eb { color: #98B6E4; }
body.th-bano .band.night .eb, body.th-bano .page-hero.night .eb { color: #E2A19C; }
body.th-mv .site-header, body.th-bano .site-header, body.th-mv .site-footer, body.th-bano .site-footer { --brand: #2F5BFF; --brand-hover: #1F47E6; --brand-tint: #E3E9FF; --glow: #8FA6FF; --night: #0C0D10; --ink: #0B0C0F; }

/* ===== Global Marketing (summits.kr 제안서 이식) ===== */
.th-mv .page-hero.night.gmh { padding-bottom: 104px; }
.gmh-tag { display: inline-block; margin: 0 0 18px; padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(152,182,228,.45); color: #C9D8F1; font-size: 14px; font-weight: 600; }
.gmh h1 em { font-style: normal; color: #98B6E4; }
.gmh-num { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin: 28px 0 8px; color: rgba(255,255,255,.75); font-size: 17px; }
.gmh-num b { font-size: 56px; line-height: 1; font-weight: 700; color: #fff; letter-spacing: -0.03em; }
.gmh-num b small { font-size: 26px; margin-left: 2px; }
.gmh-num em { font-style: normal; font-size: 14px; color: rgba(255,255,255,.5); }
.th-mv .src { margin: 16px 0 0; font-size: 13px; color: #8A909A; }
.th-mv .night .src { color: rgba(255,255,255,.45); }
.gm-split .head { margin-bottom: 40px; }
.mkt-bars { background: #fff; border: 1px solid #E8EAEE; border-radius: 24px; padding: 36px 40px; }
.mkt-bars ul { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 18px; }
.mkt-bars li { display: grid; grid-template-columns: 120px minmax(0, 1fr) 96px; gap: 20px; align-items: center; font-size: 16px; color: #4A5160; }
.mkt-bars li i { display: block; height: 40px; background: #F2F3F5; border-radius: 10px; overflow: hidden; }
.mkt-bars li b { display: block; height: 100%; width: var(--w); background: #D7DBE2; border-radius: 10px; transform-origin: left; transform: scaleX(0); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.mkt-bars.in li b { transform: none; }
.mkt-bars li.on { color: var(--ink); font-weight: 700; }
.mkt-bars li.on b { background: var(--brand); }
.mkt-bars li em { font-style: normal; text-align: right; font-size: 20px; font-weight: 700; color: var(--ink); }
.eco3, .trk3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.eco3 li { background: #fff; border-radius: 20px; overflow: hidden; padding: 0 0 28px; }
.eco3 figure, .trk3 figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: #EEF0F3; }
.eco3 img, .trk3 img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco3 .num { margin: 22px 24px 6px; font-size: 14px; font-weight: 600; color: var(--brand); }
.eco3 h3 { margin: 0 24px 8px; font-size: 22px; font-weight: 700; }
.eco3 li > p:last-child { margin: 0 24px; font-size: 16px; line-height: 1.6; color: #4A5160; }
.gm-track .gp-k { margin: 0 0 16px; }
.trk3 { margin-bottom: 56px; }
.trk3 figure { border-radius: 18px; }
.trk3 span { display: block; margin-top: 12px; font-size: 16px; font-weight: 600; color: var(--ink); }
.gm-logos { list-style: none; margin: 0 0 56px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.gm-logos li { height: 88px; display: flex; align-items: center; justify-content: center; background: #F7F8FA; border-radius: 14px; padding: 0 22px; }
.gm-logos img { max-width: 100%; max-height: 36px; width: auto; filter: grayscale(1); opacity: .7; }
.gm-logos .more { font-size: 15px; font-weight: 600; color: #8A909A; }
.mvtv { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; background: #F6F8FC; border-radius: 24px; padding: 32px; }
.mvtv figure { margin: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 16 / 9; }
.mvtv img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mvtv h3 { margin: 8px 0 12px; font-size: 26px; line-height: 1.4; }
.mvtv p { color: #4A5160; font-size: 17px; line-height: 1.6; }
.res4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 0 40px; border-top: 1px solid var(--night-line); border-bottom: 1px solid var(--night-line); }
.res4 > div { padding: 28px 24px; border-left: 1px solid var(--night-line); display: flex; flex-direction: column-reverse; gap: 8px; }
.res4 > div:first-child { border-left: 0; padding-left: 0; }
.res4 dd { margin: 0; font-size: 44px; font-weight: 700; letter-spacing: -0.03em; color: #fff; line-height: 1.1; }
.res4 dd small, .rm-big b small, .rm-side b small, .c-chart b small, .c-stats b small, .rep4 dd small, .d1 b small { font-size: .5em; margin-left: 3px; font-weight: 600; }
.res4 dt { font-size: 15px; color: rgba(255,255,255,.6); }
.res-main { display: grid; grid-template-columns: 1.6fr 1fr; gap: 20px; }
.res-main > div { background: var(--night-2); border-radius: 22px; padding: 32px; }
.res-main .gp-k { color: rgba(255,255,255,.65); margin: 0 0 12px; }
.rm-big b { display: block; font-size: 64px; line-height: 1; font-weight: 700; letter-spacing: -0.03em; color: #98B6E4; }
.rm-big > span { display: block; margin-top: 10px; color: rgba(255,255,255,.75); font-size: 16px; }
.qbars { display: flex; align-items: flex-end; gap: 10px; height: 160px; margin-top: 28px; }
.qbars i { flex: 1; height: calc(var(--h) * 100%); background: rgba(152,182,228,.28); border-radius: 8px 8px 3px 3px; position: relative; }
.qbars i:nth-child(n+5) { background: #98B6E4; }
.qbars em { position: absolute; bottom: -24px; left: 0; right: 0; text-align: center; font-style: normal; font-size: 11px; color: rgba(255,255,255,.5); white-space: nowrap; }
.rm-big .src { margin-top: 36px; }
.rm-side { display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.rm-side > div { border-bottom: 1px solid var(--night-line); padding-bottom: 22px; }
.rm-side b { display: block; font-size: 44px; font-weight: 700; color: #fff; letter-spacing: -0.03em; }
.rm-side span { color: rgba(255,255,255,.65); font-size: 15px; }
.case2 { display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px; }
.c-chart { background: #F6F8FC; border-radius: 22px; padding: 32px 36px; }
.c-chart b { font-size: 56px; font-weight: 700; letter-spacing: -0.03em; color: var(--ink); }
.c-chart > em { margin-left: 12px; font-style: normal; font-weight: 700; color: var(--brand); font-size: 18px; }
.mbars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; height: 220px; margin-top: 24px; align-items: end; }
.mbars > div { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; text-align: center; }
.mbars i { display: block; height: calc(var(--h) * 150px + 6px); background: #C9D8F1; border-radius: 10px 10px 4px 4px; }
.mbars > div:last-child i { background: var(--brand); }
.mbars span { font-size: 13px; color: #7A8190; order: 2; }
.mbars em { font-style: normal; font-size: 15px; font-weight: 700; color: var(--ink); order: -1; }
.c-stats { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.c-stats li { background: #fff; border: 1px solid #E8EAEE; border-radius: 18px; padding: 22px 26px; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: baseline; }
.c-stats span { grid-column: 1 / -1; font-size: 15px; color: #6B7280; }
.c-stats b { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.c-stats em { font-style: normal; font-weight: 700; color: var(--brand); font-size: 15px; }
.why6 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.why6 li { background: #fff; border-radius: 20px; padding: 30px 28px 34px; }
.why6 .num { font-size: 14px; font-weight: 600; color: var(--brand); }
.why6 h3 { margin: 12px 0 10px; font-size: 21px; line-height: 1.4; font-weight: 700; }
.why6 p { margin: 0; font-size: 16px; line-height: 1.6; color: #4A5160; }
.d1 { display: grid; grid-template-columns: 1.2fr 1fr; grid-template-rows: auto auto; gap: 20px; }
.d1 > div { border-radius: 22px; padding: 32px; background: #F6F8FC; }
.d1 .gp-k { margin: 0 0 12px; color: #6B7280; font-size: 14px; }
.d1 b { display: block; font-size: 52px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; color: var(--ink); }
.d1 > div > span { display: block; margin-top: 8px; color: #4A5160; font-size: 16px; }
.d1-a { grid-row: span 2; background: var(--night) !important; color: #fff; }
.d1-a b { color: #fff !important; } .d1-a .gp-k { color: #98B6E4 !important; } .d1-a > span { color: rgba(255,255,255,.7) !important; }
.d1-a ul { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 10px; }
.d1-a li { display: grid; grid-template-columns: 96px 1fr auto; gap: 12px; align-items: center; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.06); font-size: 16px; }
.d1-a li em { font-style: normal; font-size: 13px; color: rgba(255,255,255,.55); }
.d1-a li b { font-size: 20px !important; }
.d1-b { display: grid; grid-template-columns: 1fr 160px; gap: 0 20px; }
.d1-b > * { grid-column: 1; } .d1-b figure { grid-column: 2; grid-row: 1 / span 3; margin: 0; border-radius: 12px; overflow: hidden; }
.d1-b figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.team5 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.team5 li { background: #fff; border-radius: 18px; padding: 26px 22px 30px; border-top: 3px solid var(--brand); }
.team5 h3 { margin: 0 0 10px; font-size: 19px; font-weight: 700; }
.team5 p { margin: 0; font-size: 15px; line-height: 1.55; color: #4A5160; }
.df { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.df article { background: #F7F8FA; border-radius: 22px; padding: 34px 32px 36px; }
.df article.wide { grid-column: 1 / -1; }
.df .num { margin: 0; font-size: 14px; font-weight: 600; color: var(--brand); }
.df h3 { margin: 10px 0 12px; font-size: 24px; line-height: 1.4; font-weight: 700; }
.df article > p:not(.num) { margin: 0 0 20px; color: #4A5160; font-size: 16px; line-height: 1.65; }
.df-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.df-l li { position: relative; padding-left: 18px; font-size: 15px; color: #252A31; }
.df-l li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
.df-flow { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; counter-reset: f; }
.df-flow li { counter-increment: f; flex: 1 1 140px; background: #fff; border-radius: 12px; padding: 14px 16px; font-size: 15px; font-weight: 600; }
.df-flow li::before { content: "0" counter(f); display: block; font-size: 12px; color: var(--brand); margin-bottom: 4px; }
.df-t { width: 100%; background: #fff; border-radius: 14px; }
.df-t td:last-child { color: var(--brand); font-weight: 600; }
.rep4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; }
.rep4 > div { background: var(--night-2); border-radius: 20px; padding: 26px 24px; }
.rep4 dt { font-size: 14px; color: rgba(255,255,255,.6); }
.rep4 dd { margin: 10px 0 6px; font-size: 36px; font-weight: 700; color: #fff; letter-spacing: -0.02em; }
.rep4 em { font-style: normal; font-size: 14px; color: #98B6E4; }
.rings { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rings li { display: grid; grid-template-columns: 72px 1fr; grid-template-rows: auto auto auto; column-gap: 20px; align-items: center; background: var(--night-2); border-radius: 20px; padding: 22px 24px; position: relative; }
.rings svg { grid-row: 1 / span 3; width: 72px; height: 72px; transform: rotate(-90deg); }
.rings circle { fill: none; stroke-width: 3.2; }
.rings .bg { stroke: rgba(255,255,255,.1); }
.rings .fg { stroke: #98B6E4; stroke-linecap: round; stroke-dasharray: var(--p) 100; }
.rings b { font-size: 24px; color: #fff; }
.rings span { font-size: 15px; color: #fff; font-weight: 600; }
.rings em { font-style: normal; font-size: 13px; color: rgba(255,255,255,.55); }
.plan6 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.plan6 li { background: #F7F8FA; border-radius: 18px; padding: 24px 24px 26px; display: flex; flex-direction: column; gap: 8px; }
.plan6 li.h { background: #F6F8FC; box-shadow: inset 0 0 0 1px #DCE5F4; }
.plan6 .st { font-size: 13px; font-weight: 600; color: #7A8190; }
.plan6 b { font-size: 18px; line-height: 1.45; }
.plan6 em { align-self: flex-start; margin-top: 6px; font-style: normal; font-size: 13px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: var(--brand); color: #fff; }
.plan6 li.h em { background: #232527; }
.gmf { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; }
.gmf-l h2 { color: #fff; }
.gmf-l > p:not(.eb) { color: rgba(255,255,255,.7); font-size: 18px; line-height: 1.6; }
.gmf-c { margin: 40px 0 0; display: grid; gap: 14px; }
.gmf-c > div { display: flex; gap: 20px; padding-top: 14px; border-top: 1px solid var(--night-line); }
.gmf-c dt { width: 64px; color: rgba(255,255,255,.5); font-size: 15px; }
.gmf-c dd { margin: 0; color: #fff; font-size: 16px; }
.gmf-c a { color: #fff; }
.gmf-form { color: var(--ink); }
.gmf-form h3 { margin: 0 0 6px; font-size: 22px; }
@media (max-width: 1100px) {
  .team5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gm-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gmf { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 809px) {
  .gmh-num b { font-size: 44px; }
  .mkt-bars { padding: 24px 20px; }
  .mkt-bars li { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .mkt-bars li i { grid-column: 1 / -1; grid-row: 2; height: 28px; }
  .eco3, .trk3, .why6, .res-main, .case2, .d1, .df, .rings, .plan6, .mvtv { grid-template-columns: 1fr; }
  .d1-a { grid-row: auto; }
  .d1-b { grid-template-columns: 1fr; } .d1-b figure { grid-column: 1; grid-row: auto; margin-top: 16px; aspect-ratio: 16 / 9; }
  .res4, .rep4 { grid-template-columns: 1fr 1fr; }
  .res4 > div { padding: 20px 14px; } .res4 > div:nth-child(3) { border-left: 0; padding-left: 0; } .res4 dd { font-size: 34px; }
  .rep4 dd { font-size: 28px; }
  .team5 { grid-template-columns: 1fr 1fr; }
  .gm-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gm-logos li { height: 64px; padding: 0 12px; }
  .rm-big b { font-size: 48px; } .c-chart b { font-size: 44px; } .d1 b { font-size: 42px; }
  .mvtv { padding: 20px; gap: 20px; }
  .df article { padding: 26px 20px; }
  .df-t { font-size: 14px; }
  .qbars em { font-size: 9px; }
}
/* 코어밸류 v3: 제목 아래 전체 폭 */
.cr-culture .container { display: block !important; }
.cr-culture .head { margin-bottom: 40px; }
.cr-culture .values3 { width: 100%; }
/* 모바일 연혁: 연도 표시 */
@media (max-width: 809px) {
  .hist3::before { display: none; }
  .hist3 > li { grid-template-columns: 1fr; gap: 12px; padding: 0 0 36px; }
  .hist3 .y { width: auto; min-width: 0; height: 32px; padding: 0 14px; font-size: 15px; justify-self: start; }
  .hist3 .y::after { content: none; }
  .hist3 figure, .hist3 ul { grid-column: 1; grid-row: auto; }
}
/* GM 페이지: 하단 공통 블록도 코랄 액센트 */
body.th-skr .bx-more .eb, body.th-skr .bx-more .bx-tag { color: #E25156; }
body.th-skr .bx-more .bx-card:hover h3 { color: #E25156; }
/* 히어로 릴스 캡션: 한 줄 */
.htile b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-height: 820px) and (min-width: 810px) { .htile b { font-size: 13px; } }

/* =====================================================================
   2026-09-29 전체 다듬기 (서브페이지 완성도)
   ===================================================================== */

/* ---- 공통: 서브페이지 첫 화면 ---- */
.page-hero.ph-img { min-height: 580px; padding-bottom: 88px; }
.ph-photo::after { background: linear-gradient(90deg, rgba(10,11,14,.78) 0%, rgba(10,11,14,.52) 40%, rgba(10,11,14,.08) 78%), linear-gradient(0deg, rgba(10,11,14,.45) 0%, rgba(10,11,14,0) 45%); }
.page-hero.ph-img h1 { font-size: 52px; line-height: 1.3; letter-spacing: -0.03em; }
.page-hero.ph-img .lead { margin-top: 20px; font-size: 19px; line-height: 1.6; color: rgba(255,255,255,.84); }
.page-hero.ph-img .eb { color: rgba(255,255,255,.72); }
.page-hero.ph-img .btn-row { margin-top: 32px; }
@media (max-width: 1100px) { .page-hero.ph-img h1 { font-size: 40px; } }
@media (max-width: 809px) {
  .page-hero.ph-img { min-height: 520px; padding-bottom: 56px; }
  .page-hero.ph-img h1 { font-size: 30px; line-height: 1.35; }
  .page-hero.ph-img .lead { font-size: 16px; }
  .ph-photo::after { background: linear-gradient(0deg, rgba(10,11,14,.88) 0%, rgba(10,11,14,.5) 55%, rgba(10,11,14,.2) 100%); }
}

/* ---- 공통: 섹션 머리 ---- */
.head { margin-bottom: 56px; }
.head .hd-l + p { max-width: 36em; }
@media (max-width: 809px) { .head { margin-bottom: 32px; } }

/* ---- About: 회사 개요 2단 ---- */
.ab-ov .container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 64px; align-items: start; }
.ab-ov .head { margin-bottom: 0; position: sticky; top: calc(var(--header-h, 72px) + 32px); }
.ov-table { border-top: 1.5px solid #111318; }
.ov-table > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid #ECEEF2; align-items: baseline; }
.ov-table dt { font-size: 15px; font-weight: 600; color: #6B7280; }
.ov-table dd { font-size: 17px; }
.ov-table dd .more { margin-left: 14px; font-size: 15px; }
@media (max-width: 1100px) { .ab-ov .container { grid-template-columns: 1fr; gap: 0; } .ab-ov .head { position: static; margin-bottom: 32px; } }
@media (max-width: 809px) { .ov-table > div { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; } }

/* ---- About: 미션·비전은 큰 문장, 가치는 선 목록 ---- */
.mv2 { gap: 0; border-top: 1.5px solid #111318; border-bottom: 1px solid #E1E4E9; }
.mv2 > div { background: none; border-radius: 0; padding: 44px 48px 48px 0; }
.mv2 > div + div { padding-left: 48px; border-left: 1px solid #E1E4E9; }
.mv2 .mv-k { color: var(--brand); }
.mv2 .mv-s { margin-top: 18px; font-size: 30px; line-height: 1.45; font-weight: 700; letter-spacing: -0.025em; color: #111318; }
.mv2 .mv-en { margin-top: 18px; font-size: 15px; font-style: normal; color: #8A909A; }
.vals4.slim { margin-top: 0; gap: 0; }
.vals4.slim li { background: none; border-radius: 0; padding: 32px 28px 8px 0; box-shadow: none; }
.vals4.slim li + li { padding-left: 28px; border-left: 1px solid #E1E4E9; }
.vals4.slim .v-k { display: flex; gap: 10px; align-items: baseline; color: var(--brand); }
.vals4.slim .v-k .num { color: #9AA1AD; }
.vals4.slim h3 { margin-top: 12px; font-size: 20px; line-height: 1.45; font-weight: 600; }
.ab-more { margin-top: 40px; }
@media (max-width: 1100px) { .vals4.slim { grid-template-columns: 1fr 1fr; } .vals4.slim li:nth-child(3) { padding-left: 0; border-left: 0; } }
@media (max-width: 809px) {
  .mv2 > div { padding: 32px 0; } .mv2 > div + div { padding-left: 0; border-left: 0; border-top: 1px solid #E1E4E9; }
  .mv2 .mv-s { font-size: 22px; }
  .vals4.slim { grid-template-columns: 1fr; } .vals4.slim li, .vals4.slim li + li { padding: 20px 0; border-left: 0; border-top: 1px solid #E1E4E9; }
}

/* ---- About: 거점 ---- */
.where4 figure { border-radius: 16px; overflow: hidden; }
.where4 figure img { transition: transform .6s var(--ease, ease); }
.where4 li:hover figure img { transform: scale(1.03); }
.where4 .w-city { margin-top: 18px; font-size: 22px; font-weight: 700; }
.where4 .w-t { margin-top: 6px; font-size: 15px; font-weight: 500; line-height: 1.5; color: #6B7280; }

/* ---- Business: 카드와 비교표 ---- */
.bx-more + .bz-cmp, .bz-cmp { padding-top: 40px; }
.bx-card { transition: transform .3s var(--ease, ease), box-shadow .3s var(--ease, ease); }
.bx-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(5,17,45,.22); }
.bx-card h3 { font-size: 24px; }
.bzt { font-size: 16px; }
.bzt thead th { font-size: 19px; padding-bottom: 18px; }
.bzt thead th a::after { content: " →"; color: #9AA1AD; font-weight: 500; }
.bzt tbody th { width: 140px; font-size: 15px; color: #6B7280; }
.bzt th, .bzt td { padding: 20px 16px; vertical-align: top; }
.bzt tbody tr { border-bottom: 1px solid #ECEEF2; }
.bzt tbody tr:last-child td { font-weight: 600; color: #111318; }

/* ---- Careers: 팀·성장·가치 ---- */
.org2-u { padding: 32px 32px 20px; }
.org2 li b { font-size: 17px; font-weight: 600; }
.org2 li em { font-style: normal; font-size: 13.5px; color: #8A909A; }
.org2 li p { font-size: 15px; color: #4A5160; }
.cr-grow { background: #fff; }
.grow6 { gap: 0 40px; }
.grow6 li { background: none; border-radius: 0; padding: 28px 0 32px; border-top: 1px solid #E1E4E9; }
.grow6 li:nth-child(-n+3) { border-top: 1.5px solid #111318; }
.grow6 .num { color: var(--brand); font-size: 14px; font-weight: 600; }
.grow6 h3 { font-size: 21px; font-weight: 700; }
.grow6 p { font-size: 16px; }
@media (max-width: 1100px) { .grow6 li:nth-child(3) { border-top: 1px solid #E1E4E9; } }
@media (max-width: 809px) { .grow6 li { padding: 22px 0; border-top: 1px solid #E1E4E9 !important; } .grow6 li:first-child { border-top: 1.5px solid #111318 !important; } }
.cr-culture { background: var(--surface-2, #FAFAFA); }
.values3 li { background: #fff; }
.pool-status { font-size: 14px; }
.process h3 { font-size: 19px; }
.process p { font-size: 15.5px; }

/* ---- Contact: 안내 박스·폼 ---- */
.cust-note { background: #fff; border: 1px solid #E1E4E9; padding: 28px 32px; }
.cust-note .eb { color: var(--brand); }
.cust-note a { background: #F6F7F9; border: 0; border-radius: 14px; padding: 16px 18px; transition: background .2s var(--ease, ease); }
.cust-note a:hover { background: #EEF1F5; }
.form-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 56px; }
.form-card { padding: 40px; border-color: #E1E4E9; }
.fields .field > label, .field > label { display: block; margin-bottom: 8px; font-size: 14.5px; font-weight: 600; color: #252A31; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="url"], .field select, .field textarea { padding: 14px 16px; font-size: 16px; border-color: #D7DCE3; }
.field input::placeholder, .field textarea::placeholder { color: #A0A6B0; }
.form-actions .btn { min-width: 160px; height: 52px; font-size: 16px; }
.contact-list { border-top: 1.5px solid #111318; }
.contact-list h3, .contact-list b { font-size: 17px; font-weight: 700; }
.contact-list p { font-size: 15.5px; }
@media (max-width: 1100px) { .form-grid { grid-template-columns: 1fr; } }
@media (max-width: 809px) { .form-card { padding: 24px 18px; } .cust-note { padding: 22px 18px; } }

/* ---- Clinic Operations: 지점 ---- */
.branch { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.br-tx .bx-tag { font-size: 14px; }
.br-tx h3 { margin-top: 8px; font-size: 36px; letter-spacing: -0.02em; }
.br-tx .br-info { margin-top: 12px; font-size: 17px; line-height: 1.6; color: #4A5160; }
.br-facts { margin: 24px 0 0; border-top: 1px solid #E1E4E9; }
.br-facts > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid #ECEEF2; }
.br-facts dt { font-size: 14px; font-weight: 600; color: #8A909A; }
.br-facts dd { margin: 0; font-size: 15.5px; color: #252A31; }
@media (max-width: 1100px) { .branch { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 809px) { .br-tx h3 { font-size: 26px; } }
/* 첫 화면 사진 위 메뉴가 밝은 사진에서도 읽히게 */
.ph-photo::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 180px; z-index: 1; background: linear-gradient(180deg, rgba(10,11,14,.5) 0%, rgba(10,11,14,0) 100%); pointer-events: none; }
/* 채용 인재풀 안내 */
.empty-state { margin-top: 8px; padding: 40px; border-radius: 20px; background: #fff; border: 1px solid #E1E4E9; }
.empty-state h3 { margin-top: 12px; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; }
.empty-state .pool-steps { margin-top: 24px; }
.empty-state .btn-row { margin-top: 28px; }
@media (max-width: 809px) { .empty-state { padding: 24px 18px; } .empty-state h3 { font-size: 21px; } }

.ab-hist .container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 64px; align-items: start; }
.ab-hist .head { margin-bottom: 0; position: sticky; top: calc(var(--header-h, 72px) + 32px); }
.hist3 > li { grid-template-columns: 88px 200px minmax(0, 1fr); gap: 28px; }
.hist3 ul li { font-size: 17px; }
@media (max-width: 1100px) { .ab-hist .container { grid-template-columns: 1fr; gap: 0; } .ab-hist .head { position: static; margin-bottom: 32px; } }
@media (max-width: 809px) { .hist3 > li { grid-template-columns: 1fr; gap: 12px; } }
#job-list:has(+ .empty-state:not([hidden])) { border: 0; margin: 0; }
/* 성장 막대: 튀지 않게, 아래에서 부드럽게 자라남 */
.gp-chart .gp-col .gp-bar { transform-origin: bottom; }
.gp-chart .gp-col.pop .gp-bar { animation: gp-grow 1.1s cubic-bezier(.22, .61, .36, 1) both !important; transition: none !important; }
@keyframes gp-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.gp-chart .gp-col.pop .gp-bar em { transition: opacity .5s ease .6s, transform .5s ease .6s !important; }
.gp-chart .gp-badge { transition: opacity .6s ease, transform .6s ease; }

/* ===== About v3: 이야기 · 가치 · 지도 · 회사 정보 ===== */
.ab-story { padding-bottom: 96px; }
.story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px 80px; align-items: start; }
.story .eb { grid-column: 1 / -1; }
.story h2 { font-size: 44px; line-height: 1.36; font-weight: 700; letter-spacing: -0.03em; }
.story-body p { font-size: 19px; line-height: 1.75; color: #3D4652; }
.story-body p + p { margin-top: 18px; }
.mv3 { margin-top: 72px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.mv3 > div { border-radius: 24px; padding: 40px 44px 44px; background: #F6F7F9; }
.mv3 > div:first-child { background: var(--brand); }
.mv3 > div:first-child .mv-k { color: rgba(255,255,255,.72); }
.mv3 > div:first-child .mv-s { color: #fff; }
.mv3 .mv-k { font-size: 14px; font-weight: 600; color: var(--brand); }
.mv3 .mv-s { margin-top: 16px; font-size: 30px; line-height: 1.42; font-weight: 700; letter-spacing: -0.025em; color: #111318; }
@media (max-width: 1100px) { .story { grid-template-columns: 1fr; } .story h2 { font-size: 36px; } }
@media (max-width: 809px) {
  .ab-story { padding-bottom: 64px; }
  .story h2 { font-size: 28px; } .story-body p { font-size: 16.5px; }
  .mv3 { margin-top: 40px; grid-template-columns: 1fr; } .mv3 > div { padding: 28px 24px; } .mv3 .mv-s { font-size: 23px; }
}

.vstory { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.vstory > li { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 48px; align-items: center; background: #fff; border-radius: 24px; padding: 20px 48px 20px 20px; }
.vstory figure { margin: 0; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: #EEF0F3; }
.vstory figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vstory .v-k { display: flex; gap: 10px; align-items: baseline; font-size: 14px; font-weight: 600; color: var(--brand); }
.vstory .v-k .num { color: #9AA1AD; }
.vstory h3 { margin-top: 10px; font-size: 28px; line-height: 1.38; font-weight: 700; letter-spacing: -0.02em; }
.vstory h3 br { display: none; }
.vstory dl { margin: 22px 0 0; display: grid; gap: 14px; }
.vstory dl > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; }
.vstory dt { font-size: 14px; font-weight: 600; color: #8A909A; padding-top: 3px; }
.vstory dd { margin: 0; font-size: 17px; line-height: 1.65; color: #252A31; }
.vstory dl > div + div dt { color: var(--brand); }
@media (max-width: 1100px) { .vstory > li { grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding-right: 32px; } }
@media (max-width: 809px) {
  .vstory > li { grid-template-columns: 1fr; gap: 18px; padding: 14px 14px 24px; }
  .vstory > li > div { padding: 0 8px; } .vstory h3 { font-size: 22px; }
  .vstory dl > div { grid-template-columns: 1fr; gap: 4px; } .vstory dd { font-size: 15.5px; }
}

.ab-where2 { background: #0C0D10; color: #fff; overflow: hidden; }
.wm { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.wm-map { position: relative; aspect-ratio: 400 / 590; max-height: 760px; }
.wm-map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.wm-land { fill: rgba(255,255,255,.08); stroke: rgba(255,255,255,.14); stroke-width: .6; vector-effect: non-scaling-stroke; }
.wm-land.hi { fill: rgba(143,166,255,.26); stroke: rgba(143,166,255,.4); }
.wm-arc { fill: none; stroke: #8FA6FF; stroke-width: 1.6; stroke-dasharray: 4 5; vector-effect: non-scaling-stroke; opacity: .9; }
.wm-dot { fill: #fff; stroke: #2F5BFF; stroke-width: 3; vector-effect: non-scaling-stroke; }
.wm-dot.hq { fill: #2F5BFF; stroke: rgba(47,91,255,.35); stroke-width: 12; }
.wm-lb { position: absolute; margin: 0; transform: translate(14px, -50%); display: flex; flex-direction: column; gap: 2px; white-space: nowrap; pointer-events: none; }
.wm-lb.l { transform: translate(calc(-100% - 14px), -50%); text-align: right; }
.wm-lb.t { transform: translate(-50%, calc(-100% - 14px)); text-align: center; }
.wm-lb b { font-size: 16px; font-weight: 700; color: #fff; }
.wm-lb span { font-size: 12.5px; color: rgba(255,255,255,.6); }
.wm-tx .eb { color: #8FA6FF; }
.wm-tx h2 { margin-top: 14px; color: #fff; font-size: 44px; line-height: 1.36; font-weight: 700; letter-spacing: -0.03em; }
.wm-lead { margin-top: 20px; font-size: 18px; line-height: 1.7; color: rgba(255,255,255,.72); }
.wm-stats { margin: 36px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.wm-stats > div { padding: 18px 0; display: flex; flex-direction: column-reverse; gap: 4px; }
.wm-stats > div + div { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.14); }
.wm-stats dd { margin: 0; font-size: 36px; font-weight: 700; color: #fff; line-height: 1.1; }
.wm-stats dd small { font-size: 16px; margin-left: 2px; }
.wm-stats dt { font-size: 13px; color: rgba(255,255,255,.55); }
.wm-cities { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wm-cities li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px; border-radius: 14px; background: rgba(255,255,255,.05); }
.wm-cities img { width: 72px; height: 56px; object-fit: cover; border-radius: 10px; display: block; }
.wm-cities b { display: block; font-size: 16px; color: #fff; }
.wm-cities span { display: block; margin-top: 2px; font-size: 13px; line-height: 1.45; color: rgba(255,255,255,.6); }
@media (max-width: 1100px) { .wm { grid-template-columns: 1fr; gap: 40px; } .wm-map { max-width: 520px; width: 100%; margin: 0 auto; } }
@media (max-width: 809px) {
  .wm-tx h2 { font-size: 28px; } .wm-lead { font-size: 16px; }
  .wm-stats { grid-template-columns: 1fr 1fr; } .wm-stats > div:nth-child(3) { padding-left: 0; border-left: 0; } .wm-stats > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.14); }
  .wm-stats dd { font-size: 28px; } .wm-cities { grid-template-columns: 1fr; }
  .wm-lb b { font-size: 13px; } .wm-lb span { font-size: 11px; }
}

.ab-info { background: #fff; }
.info-t { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; padding-bottom: 18px; border-bottom: 1.5px solid #111318; }
.info-grid { margin: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px; }
.info-grid > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid #ECEEF2; }
.info-grid dt { font-size: 14.5px; font-weight: 600; color: #8A909A; }
.info-grid dd { margin: 0; font-size: 15.5px; line-height: 1.55; color: #252A31; }
@media (max-width: 809px) { .info-grid { grid-template-columns: 1fr; } .info-grid > div { grid-template-columns: 84px minmax(0, 1fr); } }
.vstory figure.contain { background: #F1EEEA; } .vstory figure.contain img { object-fit: contain; padding: 12px; }
.wm-map { max-height: 680px; -webkit-mask-image: radial-gradient(120% 90% at 55% 55%, #000 62%, transparent 100%); mask-image: radial-gradient(120% 90% at 55% 55%, #000 62%, transparent 100%); }
.wm-land { fill: rgba(255,255,255,.06); stroke: rgba(255,255,255,.1); }
@media (min-width: 1101px) { .wm-map { height: 680px; aspect-ratio: auto; } }
.wm-map { -webkit-mask-image: radial-gradient(72% 66% at 50% 52%, #000 58%, transparent 100%); mask-image: radial-gradient(72% 66% at 50% 52%, #000 58%, transparent 100%); }
.wm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } @media (max-width: 809px) { .wm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } .wm-stats > div:nth-child(3) { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.14); } .wm-stats > div:nth-child(n+3) { border-top: 0; } }

/* ===== Business v3: 사업별 소개 ===== */
.bz-intro { max-width: 760px; font-size: 20px; line-height: 1.7; color: #3D4652; margin-bottom: 64px; }
.bzr-list { display: grid; gap: 28px; }
.bzr { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; padding: 28px; border-radius: 28px; background: #F7F8FA; }
.bzr:nth-child(even) .bzr-ph { order: 2; }
.bzr-ph { display: block; aspect-ratio: 16 / 11; border-radius: 18px; overflow: hidden; background: #EEF0F3; }
.bzr-ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease, ease); }
.bzr-ph:hover img { transform: scale(1.03); }
.bzr-tx { padding: 12px 16px 12px 0; }
.bzr:nth-child(even) .bzr-tx { padding: 12px 0 12px 16px; }
.bzr-tx h3 { margin-top: 8px; font-size: 36px; font-weight: 700; letter-spacing: -0.02em; }
.bzr-tx h3 a { color: inherit; }
.bzr-d { margin-top: 14px; font-size: 17.5px; line-height: 1.7; color: #3D4652; }
.bzr-who { margin-top: 18px; display: flex; gap: 12px; font-size: 15.5px; color: #252A31; }
.bzr-who span { flex: none; font-weight: 600; color: var(--brand); }
.bzr-f { margin: 24px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #E1E4E9; }
.bzr-f > div { padding: 16px 12px 0 0; display: flex; flex-direction: column-reverse; gap: 4px; }
.bzr-f dd { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; color: #111318; }
.bzr-f dt { font-size: 13px; color: #6B7280; line-height: 1.4; }
.bzr-go { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.btn-dark { background: #111318; color: #fff; border-color: #111318; }
.btn-dark:hover { background: #2B2F36; }
@media (max-width: 1100px) { .bzr { grid-template-columns: 1fr; gap: 24px; } .bzr:nth-child(even) .bzr-ph { order: 0; } .bzr-tx, .bzr:nth-child(even) .bzr-tx { padding: 0 8px 8px; } }
@media (max-width: 809px) { .bz-intro { font-size: 17px; margin-bottom: 36px; } .bzr { padding: 14px; border-radius: 20px; } .bzr-tx h3 { font-size: 26px; } .bzr-f dd { font-size: 17px; } }

/* ===== MT v3 ===== */
.mva { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 64px; align-items: center; }
.mva-logo { margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 15 / 8; }
.mva-logo img { width: 100%; height: 100%; object-fit: cover; }
.mva-tx h2 { margin-top: 12px; font-size: 38px; line-height: 1.4; font-weight: 700; letter-spacing: -0.025em; }
.mva-d { margin-top: 18px; font-size: 17.5px; line-height: 1.75; color: #3D4652; }
.mva-tag { margin-top: 20px; font-family: "Forum", Georgia, serif; font-size: 26px; color: #7C2629; }
.mvl2-row { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.mvl2 { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 14px; border: 1px solid #E1E4E9; transition: border-color .2s, background .2s; }
.mvl2:hover { border-color: #7C2629; background: #FDF3F3; }
.mvl2 span { font-size: 12.5px; color: #8A909A; }
.mvl2 b { font-size: 15px; color: #111318; }
.mvl2 b::after { content: " ↗"; color: #9AA1AD; font-weight: 500; }
.dest2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.dest2 article { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.dest2 figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.dest2 figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dest2 .dest-gal { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 4px; }
.dest2 .dest-gal img:first-child { grid-row: span 2; }
.dest2 article > div { padding: 28px 32px 32px; display: flex; flex-direction: column; flex: 1; }
.dest2 h3 { margin-top: 8px; font-size: 26px; font-weight: 700; }
.dest2 article > div > p:not(.bx-tag) { margin-top: 12px; font-size: 16.5px; line-height: 1.7; color: #3D4652; }
.dest2 ul { list-style: none; margin: 18px 0 24px; padding: 0; display: grid; gap: 8px; }
.dest2 li { position: relative; padding-left: 16px; font-size: 15.5px; color: #252A31; }
.dest2 li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
.dest2 .ext { margin-top: auto; }
.mva4 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.mva4 li { background: #fff; border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; }
.mva4 figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: #F1EEEA; }
.mva4 figure img { width: 100%; height: 100%; object-fit: cover; }
.mva4 figure.contain img { object-fit: contain; padding: 10px; }
.mva4 li > div { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.mva4 h3 { margin-top: 6px; font-size: 19px; font-weight: 700; line-height: 1.4; }
.mva4 li > div > p:not(.bx-tag) { margin-top: 8px; font-size: 15px; line-height: 1.65; color: #4A5160; }
.mva4 .more { margin-top: auto; padding-top: 14px; }
.amdoc { margin-top: 16px; border-radius: 20px; padding: 28px 32px; background: #D1E3F4; }
.amdoc .bx-tag { color: #3E62AB; }
.amdoc h3 { margin-top: 6px; font-family: "Bodoni Moda", "Bodoni 72", Georgia, serif; font-size: 30px; font-weight: 600; color: #3E62AB; }
.amdoc p:not(.bx-tag) { margin-top: 10px; max-width: 760px; font-size: 16px; line-height: 1.7; color: #253A66; }
@media (max-width: 1100px) { .mva { grid-template-columns: 1fr; gap: 32px; } .mva4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 809px) { .mva-tx h2 { font-size: 26px; } .dest2, .mva4 { grid-template-columns: 1fr; } .dest2 article > div { padding: 22px 20px 24px; } }

/* ===== CO v3 ===== */
.cob { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.cob h2 { margin-top: 12px; font-size: 38px; line-height: 1.4; font-weight: 700; letter-spacing: -0.025em; }
.cob-d { margin-top: 18px; font-size: 17.5px; line-height: 1.75; color: #3D4652; }
.cob-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cob-links li > a, .cob-links li:not(:has(a)) { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; border-radius: 14px; border: 1px solid #E1E4E9; }
.cob-links li > a:hover { border-color: var(--brand); background: var(--brand-tint); }
.cob-links span { font-size: 14px; color: #8A909A; }
.cob-links b { font-size: 16px; color: #111318; }
.cob-links li > a b::after { content: " ↗"; color: #9AA1AD; font-weight: 500; }
.cob-links li:not(:has(a)) b { color: #8A909A; font-weight: 500; }
.br-links { margin-top: 20px; display: flex; gap: 18px; }
.sanur-gal { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; gap: 10px; }
.sanur-gal figure { margin: 0; border-radius: 16px; overflow: hidden; }
.sanur-gal figure:first-child { grid-row: span 2; }
.sanur-gal img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sanur-pts { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1.5px solid #111318; }
.sanur-pts li { padding: 20px 20px 0 0; display: flex; flex-direction: column; gap: 6px; }
.sanur-pts b { font-size: 17px; font-weight: 700; }
.sanur-pts span { font-size: 15px; line-height: 1.6; color: #4A5160; }
.co-sanur .btn-row { margin-top: 32px; }
@media (max-width: 1100px) { .cob { grid-template-columns: 1fr; gap: 28px; } .sanur-pts { grid-template-columns: 1fr 1fr; gap: 0 20px; } }
@media (max-width: 809px) { .cob h2 { font-size: 26px; } .sanur-gal { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 120px 120px; } .sanur-gal figure:first-child { grid-column: span 2; grid-row: auto; } .sanur-gal figure:nth-child(n+6) { display: none; } .sanur-pts { grid-template-columns: 1fr; } }
/* About 첫 화면: 둥근 사진 카드 위 가운데 제목 */
.ab-hero2 { padding: calc(var(--header-h, 72px) + 16px) 0 0; background: #fff; }
.ah-card { position: relative; margin: 0 24px; border-radius: 28px; overflow: hidden; min-height: 640px; display: grid; place-items: center; text-align: center; isolation: isolate; }
.ah-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.ah-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20,24,30,.28), rgba(20,24,30,.42)); }
.ah-tx { padding: 0 24px; color: #fff; }
.ah-tx .eb { color: rgba(255,255,255,.8); }
.ah-tx h1 { margin: 14px auto 0; max-width: none; font-size: 64px; line-height: 1.15; letter-spacing: -0.035em; color: #fff; }
.ah-tx .lead { margin: 22px auto 0; max-width: 680px; font-size: 18px; line-height: 1.65; color: rgba(255,255,255,.88); }
.ab-facts2 { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid #ECEEF2; }
.ab-facts2 > div { padding: 36px 0 32px; display: flex; flex-direction: column-reverse; gap: 6px; }
.ab-facts2 > div + div { padding-left: 32px; border-left: 1px solid #ECEEF2; }
.ab-facts2 dd { margin: 0; font-size: 40px; font-weight: 700; letter-spacing: -0.02em; color: #111318; line-height: 1.1; }
.ab-facts2 dd small { font-size: 18px; margin-left: 3px; }
.ab-facts2 dt { font-size: 14.5px; color: #6B7280; }
@media (max-width: 809px) {
  .ah-card { margin: 0 12px; min-height: 480px; border-radius: 20px; }
  .ah-tx h1 { font-size: 34px; } .ah-tx .lead { font-size: 15.5px; } .ah-tx .lead br { display: none; }
  .ab-facts2 { grid-template-columns: 1fr 1fr; } .ab-facts2 > div { padding: 22px 0; } .ab-facts2 > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .ab-facts2 > div:nth-child(n+3) { border-top: 1px solid #ECEEF2; } .ab-facts2 dd { font-size: 30px; }
}
/* 미션·비전: 일러스트 카드 */
.mv3 > div, .mv3 > div:first-child { background: #fff; border: 1px solid #E6E8EC; text-align: center; padding: 48px 44px 52px; }
.mv3 > div > img { width: 150px; height: 150px; margin: 0 auto 24px; display: block; }
.mv3 > div:first-child .mv-k, .mv3 .mv-k { color: var(--brand); }
.mv3 > div:first-child .mv-s, .mv3 .mv-s { color: #111318; font-size: 28px; }
.mv3 .mv-d { margin: 14px auto 0; max-width: 440px; font-size: 16.5px; line-height: 1.7; color: #4A5160; }
@media (max-width: 809px) { .mv3 > div, .mv3 > div:first-child { padding: 32px 22px 36px; } .mv3 > div > img { width: 110px; height: 110px; } .mv3 .mv-s { font-size: 22px !important; } }
/* 뉴스룸 탭·공지 */
.nr-tabs { margin-top: 36px; display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: #F2F4F7; }
.nr-tabs a { padding: 10px 20px; border-radius: 999px; font-size: 15px; font-weight: 600; color: #6B7280; }
.nr-tabs a[aria-selected="true"] { background: #fff; color: #111318; box-shadow: 0 1px 3px rgba(5,17,45,.12); }
.nt-desc { font-size: 17px; color: #4A5160; margin-bottom: 28px; }
.nt-head, .nt-list li > * { display: grid; grid-template-columns: 120px minmax(0, 1fr) 140px; gap: 16px; align-items: center; }
.nt-head { padding: 0 8px 14px; border-bottom: 1.5px solid #111318; font-size: 14px; font-weight: 600; color: #6B7280; }
.nt-head span:last-child, .nt-list time { text-align: right; }
.nt-list { list-style: none; margin: 0; padding: 0; }
.nt-list li > * { padding: 22px 8px; border-bottom: 1px solid #ECEEF2; }
.nt-list a:hover b { color: var(--brand); }
.nt-c { justify-self: start; font-size: 13px; font-weight: 600; padding: 5px 10px; border-radius: 999px; background: #F2F4F7; color: #4A5160; }
.nt-list b { font-size: 17px; font-weight: 600; color: #111318; }
.nt-list time { font-size: 15px; color: #8A909A; }
@media (max-width: 809px) { .nt-head { display: none; } .nt-list li > * { grid-template-columns: 1fr; gap: 6px; } .nt-list time { text-align: left; } }
/* MyVenus 채널: 아이콘 링크 */
.mvi-row { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 20px 22px; }
.mvi { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 72px; }
.mvi-ic { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #F4EAEA; color: #7C2629; transition: background .2s, color .2s, transform .2s; }
.mvi-ic svg { width: 22px; height: 22px; }
.mvi:hover .mvi-ic { background: #7C2629; color: #fff; transform: translateY(-2px); }
.mvi-t { font-size: 12.5px; font-weight: 500; color: #4A5160; text-align: center; white-space: nowrap; }
@media (max-width: 809px) { .mvi-row { gap: 16px 12px; } .mvi { width: 60px; } .mvi-ic { width: 46px; height: 46px; } .mvi-t { font-size: 11.5px; } }
/* 오픈 예정 링크: 누르면 안내 팝업 */
.cob-links .soon { position: relative; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; border-radius: 14px; border: 1px dashed #D7DCE3; background: #FAFAFB; font: inherit; text-align: left; cursor: help; }
.cob-links .soon b { color: #8A909A; font-weight: 500; }
.soon-tip { position: absolute; right: 0; bottom: calc(100% + 10px); z-index: 5; width: max-content; max-width: 280px; padding: 12px 14px; border-radius: 12px; background: #111318; color: #fff; font-style: normal; font-size: 14px; line-height: 1.55; box-shadow: 0 12px 28px -12px rgba(5,17,45,.45); opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity .2s, transform .2s; }
.soon-tip::after { content: ""; position: absolute; right: 28px; top: 100%; border: 6px solid transparent; border-top-color: #111318; }
.soon:hover .soon-tip, .soon:focus-visible .soon-tip, .soon.is-open .soon-tip { opacity: 1; transform: none; }
.cob-links li:has(.soon) { padding: 0; border: 0; display: block; }
/* MT: 섹션 배경 중립, 사진 자동 전환 */
body.th-mv .band.tint { background: #F5F6F6; }
.fslides { position: relative; }
.fslides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1s ease; }
.fslides img.on { opacity: 1; }
.fs-dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 6px; z-index: 1; }
.fs-dots i { width: 6px; height: 6px; border-radius: 999px; background: rgba(255,255,255,.55); transition: width .3s, background .3s; }
.fs-dots i.on { width: 18px; background: #fff; }
.amdoc .more { margin-top: 14px; display: inline-flex; color: #3E62AB; }

/* ===== 서브페이지 첫 화면 v4: 흰 바탕 제목 + 아래 넓은 사진 (모든 사진형 히어로 공통) ===== */
.page-hero.ph-img { display: flex; flex-direction: column; min-height: 0; align-items: stretch; background: #fff; color: var(--ink); padding: calc(var(--header-h, 72px) + 72px) 0 0; }
.page-hero.ph-img > .container { order: 1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 64px; align-items: end; }
.page-hero.ph-img > .container > .eb { grid-column: 1 / -1; color: var(--brand); margin-bottom: 18px; }
.page-hero.ph-img > .container > h1 { grid-column: 1; grid-row: 2 / span 2; margin: 0; color: #111318; font-size: 52px; line-height: 1.3; letter-spacing: -0.03em; }
.page-hero.ph-img > .container > .lead { grid-column: 2; grid-row: 2; margin: 0; color: #4A5160; font-size: 18px; line-height: 1.7; }
.page-hero.ph-img > .container > .btn-row { grid-column: 2; grid-row: 3; margin-top: 24px; }
.page-hero.ph-img .btn-quiet { background: #fff; color: #111318; border-color: #D7DCE3; }
.page-hero.ph-img .eb .crumb { color: inherit; }
.page-hero.ph-img .ph-photo { order: 2; position: relative; inset: auto; margin: 56px 24px 0; height: clamp(360px, 40vw, 600px); border-radius: 28px; overflow: hidden; }
.page-hero.ph-img .ph-photo::before, .page-hero.ph-img .ph-photo::after { content: none; }
.page-hero.ph-img .ph-photo img { width: 100%; height: 100%; object-fit: cover; }
.page-hero.ph-img::after { content: none; }
.ab-factband .ab-facts2 { border-bottom: 0; }
@media (max-width: 1100px) {
  .page-hero.ph-img > .container { grid-template-columns: 1fr; }
  .page-hero.ph-img > .container > h1, .page-hero.ph-img > .container > .lead, .page-hero.ph-img > .container > .btn-row { grid-column: 1; grid-row: auto; }
  .page-hero.ph-img > .container > .lead { margin-top: 20px; }
  .page-hero.ph-img > .container > h1 { font-size: 42px; }
}
@media (max-width: 809px) {
  .page-hero.ph-img { padding-top: calc(var(--header-h, 64px) + 40px); }
  .page-hero.ph-img > .container > h1 { font-size: 30px; line-height: 1.35; }
  .page-hero.ph-img > .container > .lead { font-size: 16px; } .page-hero.ph-img .lead br { display: none; }
  .page-hero.ph-img .ph-photo { margin: 32px 12px 0; height: 280px; border-radius: 20px; }
}
/* 원문 기사로 새 창 이동 표시 */
a[target="_blank"] > .lt-meta span:last-child::after, a.nc[target="_blank"] .lt-meta span:last-child::after { content: " ↗"; color: #9AA1AD; }

/* ===== 서브페이지 첫 화면 확정안(A): 전면 사진, 제목은 왼쪽 아래 ===== */
.page-hero.ph-img { position: relative; display: block; min-height: 88svh; padding: 0; background: #0C0D10; }
.page-hero.ph-img .ph-photo { position: absolute; inset: 0; margin: 0; height: auto; border-radius: 0; }
.page-hero.ph-img .ph-photo::before { content: none; }
.page-hero.ph-img .ph-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,9,12,.72) 0%, rgba(8,9,12,.25) 45%, rgba(8,9,12,.05) 70%, rgba(8,9,12,.35) 100%); }
.page-hero.ph-img > .container { position: absolute; left: 0; right: 0; bottom: 72px; display: block; margin: 0 auto; }
.page-hero.ph-img > .container > .eb { color: rgba(255,255,255,.75); margin-bottom: 14px; }
.page-hero.ph-img > .container > h1 { color: #fff; font-size: 64px; line-height: 1.22; max-width: 14em; }
.page-hero.ph-img > .container > .lead { margin-top: 20px; max-width: 620px; color: rgba(255,255,255,.85); }
.page-hero.ph-img > .container > .btn-row { margin-top: 28px; }
.page-hero.ph-img .btn-quiet { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.page-hero.ph-img .btn-quiet:hover { border-color: #fff; }
.page-hero.night.ph-img::after { content: none; }
@media (max-width: 1100px) { .page-hero.ph-img > .container > h1 { font-size: 48px; } }
@media (max-width: 809px) {
  .page-hero.ph-img { min-height: 82svh; }
  .page-hero.ph-img > .container { bottom: 44px; }
  .page-hero.ph-img > .container > h1 { font-size: 32px; line-height: 1.3; }
  .page-hero.ph-img > .container > .lead { font-size: 15.5px; }
}
/* CO: 운영하는 클리닉 2곳 */
.cob2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cob2 article { border: 1px solid #E6E8EC; border-radius: 24px; padding: 32px; display: flex; flex-direction: column; }
.cob2 h3 { margin-top: 8px; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; }
.cob2 article > p:not(.bx-tag) { margin-top: 10px; font-size: 16.5px; line-height: 1.7; color: #4A5160; }
.cob2 .cob-links { margin-top: 22px; }
@media (max-width: 1100px) { .cob2 { grid-template-columns: 1fr; } }
@media (max-width: 809px) { .cob2 article { padding: 22px 18px; } .cob2 h3 { font-size: 22px; } }
.story-body p + p { margin-top: 22px; }
.mv3 .mv-d { max-width: none; }
@media (max-width: 809px) { .story-body br, .mv3 .mv-d br { display: none; } }
@media (max-width: 809px) { .vstory dd br { display: none; } }
/* Business 드롭다운: Business 메뉴 왼쪽 끝에 맞춰 열림 */
.nav-list .sub { left: -14px; transform: translate(0, 8px); }
.nav-list .has-sub:hover .sub, .nav-list .has-sub:focus-within .sub { transform: translate(0, 4px); }
/* MT: MyVenus 채널 하나씩 */
.mvrows { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.mvrows > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 56px; align-items: center; background: #fff; border-radius: 24px; padding: 20px 48px 20px 20px; }
.mvrows > li:nth-child(even) { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); padding: 20px 20px 20px 48px; }
.mvrows > li:nth-child(even) figure { order: 2; }
.mvrows figure { margin: 0; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: #F1EEEA; }
.mvrows figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mvrows figure.contain img { object-fit: contain; padding: 18px; }
.mvrows h3 { margin-top: 8px; font-size: 28px; line-height: 1.35; font-weight: 700; letter-spacing: -0.02em; }
.mvr-d { margin-top: 14px; font-size: 17px; line-height: 1.75; color: #3D4652; }
.mvr-f { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 0; border-top: 1px solid #E6E8EC; }
.mvr-f > div { padding: 14px 28px 0 0; display: flex; flex-direction: column-reverse; gap: 2px; }
.mvr-f dd { margin: 0; font-size: 17px; font-weight: 700; color: #111318; }
.mvr-f dt { font-size: 13px; color: #6B7280; }
.mvrows .more { display: inline-flex; margin-top: 22px; }
@media (max-width: 1100px) { .mvrows > li, .mvrows > li:nth-child(even) { grid-template-columns: 1fr; gap: 24px; padding: 16px 16px 28px; } .mvrows > li:nth-child(even) figure { order: 0; } .mvrows > li > div { padding: 0 12px; } }
@media (max-width: 809px) { .mvrows h3 { font-size: 22px; } .mvr-d { font-size: 15.5px; } .mvr-d br { display: none; } }

/* ===== 문의 폼 v2: 유형 먼저 고르고, 유형에 맞는 항목만 ===== */
.cform .tp-set { border: 0; margin: 0; padding: 0; }
.cform legend { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 16px; }
.tp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tp { position: relative; cursor: pointer; }
.tp input { position: absolute; opacity: 0; pointer-events: none; }
.tp-b { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px 18px; border: 1.5px solid #E1E4E9; border-radius: 14px; background: #fff; transition: border-color .2s, background .2s; }
.tp-b b { font-size: 16px; font-weight: 700; color: #111318; }
.tp-b em { font-style: normal; font-size: 13.5px; color: #6B7280; line-height: 1.45; }
.tp:hover .tp-b { border-color: #C3C8D0; }
.tp input:checked + .tp-b { border-color: var(--brand); background: var(--brand-tint); }
.tp input:focus-visible + .tp-b { outline: 2px solid var(--brand); outline-offset: 2px; }
.tp-set.is-invalid .tp-b { border-color: #E5484D; }
.cf-body { margin-top: 32px; padding-top: 28px; border-top: 1px solid #ECEEF2; }
.cf-note { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 24px; padding: 16px 18px; border-radius: 12px; background: #F6F7F9; font-size: 15px; color: #3D4652; }
.cf-note p { margin: 0; }
.cform .chk { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.cform .chk label { cursor: pointer; }
.cform .chk input { position: absolute; opacity: 0; }
.cform .chk span { display: inline-flex; padding: 9px 14px; border-radius: 999px; border: 1px solid #D7DCE3; font-size: 14.5px; color: #3D4652; transition: all .2s; }
.cform .chk input:checked + span { border-color: var(--brand); background: var(--brand-tint); color: #111318; font-weight: 600; }
.cform .chk input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.cform .form-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cf-eta { margin: 0; font-size: 14px; color: #6B7280; }
.cform .fields .field[hidden], .cform [data-show][hidden] { display: none !important; }
@media (max-width: 809px) { .tp-grid { grid-template-columns: 1fr 1fr; } .tp-b { padding: 14px; } .tp-b em { display: none; } .cf-note { flex-direction: column; align-items: flex-start; } }
/* Business v4: 회색 상자 없이, 글 줄이고 선으로만 구분 */
.bz-list .bzr-list { gap: 0; }
.bzr, .bzr:nth-child(even) { background: none; border-radius: 0; padding: 56px 0; border-top: 1px solid #E6E8EC; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 72px; }
.bzr:first-child { border-top: 0; padding-top: 0; }
.bzr:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.bzr-ph { border-radius: 20px; aspect-ratio: 16 / 10; }
.bzr-tx, .bzr:nth-child(even) .bzr-tx { padding: 0; }
.bzr-tx h3 { font-size: 40px; margin-top: 10px; }
.bzr-d { margin-top: 16px; font-size: 19px; line-height: 1.65; color: #3D4652; }
.bzr-stat { margin: 32px 0 0; display: flex; flex-direction: column; gap: 4px; }
.bzr-stat b { font-size: 36px; font-weight: 700; letter-spacing: -0.02em; color: #111318; line-height: 1.1; }
.bzr-stat span { font-size: 14.5px; color: #6B7280; }
.bzr-go { margin-top: 32px; gap: 22px; }
@media (max-width: 1100px) { .bzr, .bzr:nth-child(even) { grid-template-columns: 1fr; gap: 24px; padding: 40px 0; } .bzr-tx h3 { font-size: 32px; } }
@media (max-width: 809px) { .bzr-tx h3 { font-size: 26px; } .bzr-d { font-size: 16px; } .bzr-d br { display: none; } .bzr-stat b { font-size: 28px; } }
/* 사람 사진: 얼굴이 잘리지 않게 위쪽 기준으로 자르기 */
img[src*="bg/concierge-uniform"], img[src*="bg/coordinator-uniform"], img[src*="bg/people-"], img[src*="real/mv-uniform"] { object-position: 50% 12% !important; }
/* MyVenus 채널 사진: 자르지 않고 원본 비율 그대로 */
.mvrows figure, .mvrows figure.contain { aspect-ratio: auto; background: none; border-radius: 0; overflow: visible; display: flex; justify-content: center; align-items: center; }
.mvrows figure img, .mvrows figure.contain img { width: auto; height: auto; max-width: 100%; max-height: 520px; object-fit: contain; padding: 0; border-radius: 16px; }
.mvrows > li { align-items: center; }
@media (max-width: 809px) { .mvrows figure img { max-height: 420px; } }
/* MT 갤러리: 자르지 않고 원본 비율로 쌓기 (영상도 세로 원본 비율) */
.mvgal { columns: 3; column-gap: 16px; }
.mvgal .g2 { break-inside: avoid; margin: 0 0 16px; position: relative; border-radius: 18px; overflow: hidden; height: auto !important; aspect-ratio: auto !important; }
.mvgal .g2 img, .mvgal .g2 video { width: 100%; height: auto !important; display: block; object-fit: contain !important; position: static !important; }
.mvgal .g2 figcaption { position: absolute; left: 14px; bottom: 14px; padding: 7px 14px; border-radius: 999px; background: rgba(17,19,24,.72); color: #fff; font-size: 14px; }
@media (max-width: 1100px) { .mvgal { columns: 2; } }
@media (max-width: 809px) { .mvgal { columns: 1; } }
/* 뉴스룸 첫 화면: 가운데 정렬 */
.nr-hero { text-align: center; }
.nr-hero .container { display: flex; flex-direction: column; align-items: center; }
.nr-hero .eb { color: #6B7280; font-size: 18px; font-weight: 500; }
.nr-hero h1 { margin: 10px auto 0; font-size: 64px; line-height: 1.15; letter-spacing: -0.03em; max-width: none; }
.nr-hero .lead { margin: 20px auto 0; max-width: 640px; }
.nr-hero .nr-tabs { margin-top: 36px; padding: 6px; background: #fff; border: 1px solid #E6E8EC; }
.nr-hero .nr-tabs a { padding: 12px 26px; font-size: 16px; color: #4A5160; }
.nr-hero .nr-tabs a[aria-selected="true"] { background: #F4F5F7; box-shadow: none; color: #111318; }
@media (max-width: 809px) { .nr-hero h1 { font-size: 40px; } .nr-hero .lead br { display: none; } }
/* MyVenus 채널: 모든 사진을 같은 크기의 틀에, 자르지 않고 가운데 */
@media (min-width: 1101px) { .mvrows > li, .mvrows > li:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.mvrows figure, .mvrows figure.contain { aspect-ratio: 4 / 3; width: 100%; background: #F4F1EC; border-radius: 18px; padding: 32px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.mvrows figure img, .mvrows figure.contain img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 10px; box-shadow: 0 10px 28px -14px rgba(35,37,39,.35); }
@media (max-width: 809px) { .mvrows figure, .mvrows figure.contain { padding: 20px; } .mvrows figure img { max-height: 100%; } }
/* MT 접점: 같은 높이 슬라이드 (자르지 않고 가로로 넘김) */
.tcar-wrap { position: relative; }
.tcar { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
.tcar::-webkit-scrollbar { display: none; }
.tcar .g2 { flex: 0 0 auto; height: 520px; width: auto !important; aspect-ratio: auto !important; margin: 0; position: relative; border-radius: 18px; overflow: hidden; scroll-snap-align: start; background: #F4F1EC; }
.tcar .g2 img, .tcar .g2 video { height: 100% !important; width: auto !important; max-width: none; display: block; object-fit: contain !important; position: static !important; }
.tcar .g2 figcaption { position: absolute; left: 14px; bottom: 14px; padding: 7px 14px; border-radius: 999px; background: rgba(17,19,24,.72); color: #fff; font-size: 14px; white-space: nowrap; }
.tcar-nav { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.tcar-b { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #D7DCE3; background: #fff; font-size: 24px; line-height: 1; color: #111318; cursor: pointer; transition: background .2s, border-color .2s; }
.tcar-b:hover { background: #111318; color: #fff; border-color: #111318; }
@media (max-width: 809px) { .tcar .g2 { height: 380px; } }
/* 사진 첫 화면의 작은 라벨(Business · …): 어떤 테마에서도 흰색으로 잘 보이게 */
.page-hero.ph-img > .container > .eb, .page-hero.ph-img > .container > .eb a, .page-hero.ph-img .eb .crumb,
body.th-mv .page-hero.ph-img .eb, body.th-bano .page-hero.ph-img .eb { color: rgba(255,255,255,.9) !important; font-weight: 600; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.cob2 .cob-ph { margin: -32px -32px 24px; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 24px 24px 0 0; }
.cob2 .cob-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cob2 article { overflow: hidden; }
@media (max-width: 809px) { .cob2 .cob-ph { margin: -22px -18px 18px; } }
/* 홈 What We Do: 짧은 가로 줄 3개 */
.hbz-list { border-top: 1.5px solid #111318; }
.hbz { display: grid; grid-template-columns: 240px minmax(0, 1fr) 220px 48px; gap: 40px; align-items: center; padding: 28px 0; border-bottom: 1px solid #E6E8EC; color: inherit; transition: background .2s; }
.hbz figure { margin: 0; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #EEF0F3; }
.hbz figure img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.hbz:hover figure img { transform: scale(1.04); }
.hbz-t h3 { margin-top: 6px; font-size: 28px; font-weight: 700; letter-spacing: -0.02em; }
.hbz-t p:not(.bx-tag) { margin-top: 8px; font-size: 16.5px; line-height: 1.6; color: #4A5160; }
.hbz-s { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.hbz-s b { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: #111318; line-height: 1.1; }
.hbz-s span { font-size: 13.5px; color: #6B7280; }
.hbz-go { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #D7DCE3; display: grid; place-items: center; transition: all .2s; }
.hbz-go::before { content: "→"; font-size: 18px; color: #111318; }
.hbz:hover .hbz-go { background: #111318; border-color: #111318; } .hbz:hover .hbz-go::before { color: #fff; }
@media (max-width: 1100px) { .hbz { grid-template-columns: 180px minmax(0, 1fr) 48px; } .hbz-s { display: none; } }
@media (max-width: 809px) { .hbz { grid-template-columns: 110px minmax(0, 1fr); gap: 16px; padding: 20px 0; } .hbz-go { display: none; } .hbz-t h3 { font-size: 20px; } .hbz-t p:not(.bx-tag) { font-size: 14.5px; } .hbz-t br { display: none; } }
.cust-wrap { margin-top: 56px; } .cust-wrap .cust-note { margin-bottom: 0; }
/* 채널 사진: 모두 16:9 원본으로 통일, 틀 없이 꽉 채움 */
.mvrows figure, .mvrows figure.contain { aspect-ratio: 16 / 9; padding: 0; background: #F4F1EC; }
.mvrows figure img, .mvrows figure.contain img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; border-radius: 0; box-shadow: none; }
/* 언어 전환 */
.lang-sw { display: flex; align-items: center; gap: 2px; margin-left: 20px; font-size: 13px; font-weight: 600; }
.lang-sw a { padding: 6px 7px; border-radius: 8px; color: inherit; opacity: .55; transition: opacity .2s; }
.lang-sw a:hover, .lang-sw a[aria-current="true"] { opacity: 1; }
.site-header .lang-sw { color: inherit; }
.mobile-menu .lang-sw { margin: 20px 0 16px; font-size: 15px; }
@media (max-width: 1100px) { .site-header .bar > .lang-sw { display: none; } }
/* 사진 줄: 부드럽게 계속 흐르는 방식 */
.tcar { overflow: hidden; scroll-snap-type: none; padding-bottom: 0; }
.tcar-track { display: flex; gap: 16px; width: max-content; padding-right: 16px; animation: tcar-run var(--tcar-dur, 60s) linear infinite; will-change: transform; }
.tcar:hover .tcar-track { animation-play-state: paused; }
@keyframes tcar-run { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .tcar { overflow-x: auto; } .tcar-track { animation: none; } }
.vstory .v-d2 { margin-top: 18px; max-width: 34em; font-size: 17px; line-height: 1.75; color: #3D4652; }
@media (max-width: 809px) { .vstory .v-d2 { font-size: 15.5px; } }

/* ===== QA 2차 ===== */
/* 섹션 끝 링크·인재풀 버튼: 오른쪽 정렬 */
.ab-more, .lt2-more { display: flex; justify-content: flex-end; }
.empty-state .btn-row { justify-content: flex-end; }
/* 폼 오류 표시 */
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: #E5484D !important; box-shadow: 0 0 0 3px rgba(229,72,77,.12) !important; }
.field .f-err { display: block; margin-top: 6px; font-size: 13.5px; color: #D93036; }
.tp-hint { margin: -6px 0 14px; font-size: 14px; color: #6B7280; }
.contact-list a.mail { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
/* 체크박스 */
.consent input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--brand); vertical-align: -3px; margin-right: 6px; }
/* 채용 절차: 모든 단계 같은 모양 */
.process li .n { background: #fff !important; color: #111318 !important; border: 1.5px solid #D7DCE3 !important; }
/* 모바일 유형 카드 설명 유지 */
@media (max-width: 809px) { .tp-b em { display: block !important; font-size: 12.5px; } }
/* 지도 라벨 가독성 */
.wm-lb b { font-size: 16px; } .wm-lb span { font-size: 13px; color: rgba(255,255,255,.85); }
.wm-lb { background: rgba(12,13,16,.55); padding: 4px 8px; border-radius: 8px; }
@media (max-width: 809px) { .wm-lb.l { transform: translate(14px, -50%); text-align: left; } .wm-lb b { font-size: 13px; } .wm-lb span { font-size: 11.5px; } }
/* 모바일 탭 영역 */
@media (max-width: 809px) { .site-footer .menu a, .more { display: inline-flex; min-height: 40px; align-items: center; } }
/* 한국어 줄바꿈 */
h1, h2, h3, .lead, .head p, p { word-break: keep-all; }
/* 파트너 로고 띠 제목: 왼쪽 정렬 */
.mvl-cap { text-align: left !important; max-width: var(--container, 1200px); margin-left: auto !important; margin-right: auto !important; padding: 0 24px; }
.mvl .container .mvl-cap { padding: 0; max-width: none; }

/* QA 3차 */
.tcar { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%); }
.mv-eb { color: #7C2629; }
@media (max-width: 809px) { #co-br br, .mt-intro h2 br, .th-mv h2 br, .th-bano h2 br { display: none; } }

/* 모바일: 상단 네비 항상 고정 */
@media (max-width: 1100px) { .site-header, .site-header.is-hidden, body:has(.hero-st) .site-header.is-hidden { transform: none !important; } }

/* 섹션 제목: 전 페이지 가운데 정렬 */
.head { display: flex !important; flex-direction: column; align-items: center; text-align: center; gap: 16px; }
.head .hd-l { display: flex; flex-direction: column; align-items: center; }
.head h2, .head p { margin-left: auto; margin-right: auto; }
.head p { max-width: 36em; }
.head .more, .head .chips { justify-self: auto; align-self: center; margin-top: 4px; }
.mvl-cap { text-align: center !important; }

/* 모바일 QA: 플로팅 버튼은 홈 인디케이터 위로, 콘텐츠를 덜 가리게 */
@media (max-width: 809px) {
  .to-top { right: 14px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); width: 42px; height: 42px; box-shadow: 0 6px 16px -6px rgba(0,0,0,.35); }
  .review-on .to-top { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}
/* 모바일 첫 화면: 369건 카드는 릴스 줄 바로 위, 한 줄로 */
@media (max-width: 809px) {
  .hpin.l.stat { left: 50% !important; top: auto !important; bottom: 298px; --tx: -50%; --ty: 0px; padding: 7px 12px; }
  .hpin.stat p { flex-direction: row; align-items: baseline; gap: 8px; white-space: nowrap; }
  .hpin.stat em { font-size: 11px; } .hpin.stat b { font-size: 18px; } .hpin.stat span { display: none; }
  .hpin.stat::after { display: none; }
}
/* 모바일 줄바꿈: 데스크톱용 강제 줄바꿈을 풀고 줄 길이를 고르게 */
.mo-br { display: none; }
@media (max-width: 809px) {
  h1, h2, h3, .fin-h, .hs-h { text-wrap: balance; }
  p, .lead, li { text-wrap: pretty; }
  .head h2 br, .head p br, .page-hero .lead br, .hero-st .lead br, .ab-story p br { display: none; }
  .mo-br { display: inline; }
}

/* 영어·인니어: 한국어 기준 강제 줄바꿈을 풀고 제목은 줄 길이를 고르게, 본문은 자연스럽게 */
html[lang="en"] main br, html[lang="id"] main br,
html[lang="en"] .site-footer br, html[lang="id"] .site-footer br { display: none; }
html[lang="en"] :is(h1, h2, h3, .fin-h, .fin-k, .lead, .head p, .mvl-cap, figcaption),
html[lang="id"] :is(h1, h2, h3, .fin-h, .fin-k, .lead, .head p, .mvl-cap, figcaption) { text-wrap: balance; }
html[lang="en"] :is(p, li, dd), html[lang="id"] :is(p, li, dd) { text-wrap: pretty; }
html[lang="en"] :is(p, li, h1, h2, h3), html[lang="id"] :is(p, li, h1, h2, h3) { word-break: normal; overflow-wrap: break-word; hyphens: manual; }
/* 홈 고객 여정 제목만 왼쪽 정렬 */
.journey .head { align-items: flex-start; text-align: left; }
.journey .head h2, .journey .head p { margin-left: 0; margin-right: 0; }

/* 모바일 여정 장면: 긴 영어·인니어 라벨이 겹치지 않게 */
@media (max-width: 809px) {
  .st3-pt:nth-child(3) { display: none; }
  .st3-pt:nth-child(2) { align-items: flex-start; transform: translateX(-17px); }
  .st3-pt:last-child { align-items: flex-end; transform: translateX(calc(-100% + 17px)); }
  .st3-pt b { font-size: 11px; white-space: normal; text-align: center; max-width: 72px; line-height: 1.2; }
  .st3-pt:nth-child(2) b { text-align: left; } .st3-pt:last-child b { text-align: right; }
  .st3-top { flex-wrap: wrap; row-gap: 8px; }
  .st3-top > div { flex: 1 1 0; min-width: 0; }
  .st3-now { margin-left: 42px; }
  .rc-h { flex-direction: column; align-items: flex-start; gap: 2px; }
}
.nw { white-space: nowrap; }
@media (max-width: 809px) { .st3-top > div { flex: 1 1 180px; } .st3-now { margin-left: 42px; } }
/* 영어·인니어 모바일: 히어로 첫 줄이 길면 두 줄로 (아래 줄에 붙여서) */
@media (max-width: 809px) {
  html[lang="en"] .hero-st .hv, html[lang="id"] .hero-st .hv { white-space: normal; top: auto; bottom: 0; text-wrap: balance; }
  html[lang="en"] .hero-st .hv-wrap, html[lang="id"] .hero-st .hv-wrap { height: 2.6em; }
  html[lang="en"] .hero-st .st-h, html[lang="id"] .hero-st .st-h { font-size: 24px; }
}
/* 접근성: 사진 링크 이름, 문의 페이지 작은 링크 누르기 쉽게 */
main a.ext:not(.cust-note a) { display: inline-flex; align-items: center; min-height: 36px; padding: 0 4px; }
html[lang="en"] .pc > p, html[lang="id"] .pc > p { white-space: normal; line-height: 1.3; }
@media (max-width: 1100px) { html[lang="id"] .pc > p, html[lang="en"] .pc > p { font-size: 9.5px; letter-spacing: -0.01em; } }

/* 태블릿(640~1100): 휴대폰 한 줄 배치를 두 칸으로 */
@media (min-width: 640px) and (max-width: 1100px) {
  .bx-grid, .bx-grid.two { grid-template-columns: 1fr 1fr !important; }
  .cta2-row { grid-template-columns: 1fr 1fr !important; }
  .cob2 { grid-template-columns: 1fr 1fr; }
  .cob2 article { padding: 24px 20px; }
}
/* 약관 표: 휴대폰에서는 표 안에서만 가로로 밀어 보기 */
@media (max-width: 809px) {
  .prose table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .prose table th, .prose table td { min-width: 110px; }
}

/* ===== 휴대폰 여유 정리 (9/30): 상자 안의 상자 없애기, 2칸을 1칸으로, 간격 넓히기 ===== */
@media (max-width: 809px) {
  /* Why Summits: 2x2 카드 → 한 줄씩, 아이콘 왼쪽 */
  .ws-cards { grid-template-columns: 1fr !important; gap: 0 !important; }
  .ws-cards > li { display: grid !important; grid-template-columns: 72px 1fr; column-gap: 18px; align-items: center; text-align: left !important; padding: 22px 0 !important; background: none !important; border: 0 !important; border-top: 1px solid #E3E6EB !important; border-radius: 0 !important; box-shadow: none !important; min-height: 0 !important; }
  .ws-cards > li:last-child { border-bottom: 1px solid #E3E6EB !important; }
  .ws-cards > li > img { width: 72px !important; height: 72px !important; margin: 0 !important; grid-row: span 2; }
  .ws-cards > li h3 { font-size: 19px !important; line-height: 1.35 !important; margin: 0 !important; }
  .ws-cards > li h3 br, .ws-cards > li p br { display: none; }
  .ws-cards > li p { margin: 4px 0 0 !important; font-size: 15px !important; }

  /* 채용 팀 소개: 회색 상자 → 구분선 */
  .org2-u { background: none !important; border: 0 !important; border-top: 2px solid #111318 !important; border-radius: 0 !important; padding: 22px 0 10px !important; box-shadow: none !important; }
  .org2-u + .org2-u { margin-top: 28px; }
  .org2-u li { padding: 16px 0 !important; }
  .org2-u li em { display: block; margin-top: 2px; }

  /* 클리닉 소개 카드: 카드 겉옷 벗기고, 안쪽 링크 상자는 줄 목록으로 */
  .cob2 { gap: 44px !important; }
  .cob2 article { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
  .cob2 .cob-ph { margin: 0 0 20px !important; border-radius: 16px !important; overflow: hidden; }
  .cob2 .cob-links { gap: 0 !important; margin-top: 18px !important; border-top: 1px solid #E3E6EB; }
  .cob2 .cob-links > li > a, .cob2 .cob-links > li > .soon { background: none !important; border: 0 !important; border-bottom: 1px solid #E3E6EB !important; border-radius: 0 !important; padding: 15px 2px !important; box-shadow: none !important; }

  /* About 미션·비전 */
  .mv3 { gap: 16px !important; }
  .mv3 > div, .mv3 > div:first-child { padding: 36px 24px 40px !important; }

  /* 인재풀 단계 */
  .pool-steps > li { padding: 18px 0 !important; background: none !important; border: 0 !important; border-top: 1px solid #E3E6EB !important; border-radius: 0 !important; box-shadow: none !important; }

  /* 문단·목록 간격 여유 */
  main .head { margin-bottom: 36px; }
  main p { line-height: 1.72; }
}
html[lang="id"] .pc > p, html[lang="en"] .pc > p { overflow-wrap: anywhere; hyphens: auto; }

/* 휴대폰 여정 CRM: 단계 카드를 한 칸에 겹쳐 가장 긴 카드 높이로 고정 (스크롤 중 화면 출렁임 방지) */
@media (max-width: 809px) {
  .sc-crm .crm-detail { display: grid !important; }
  .sc-crm .cd { display: block !important; grid-area: 1 / 1; position: relative !important; inset: auto !important; visibility: hidden; opacity: 0; transform: none !important; transition: opacity .35s ease; }
  .sc-crm .cd.is-on { visibility: visible; opacity: 1; }
}

/* 휴대폰 푸터: 링크 사이 빈틈 줄이고, Careers를 Company 아래로 붙여 빈 칸 없애기 */
@media (max-width: 809px) {
  .site-footer .menu { grid-template-columns: 1fr 1fr !important; column-gap: 20px; row-gap: 28px !important; margin-top: 36px; }
  .site-footer .menu > div:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
  .site-footer .menu > div:nth-child(3) { grid-column: 1; grid-row: 2; }
  .site-footer .menu h2 { margin-bottom: 8px !important; }
  .site-footer .menu ul { gap: 0 !important; }
  .site-footer .menu a { min-height: 36px !important; font-size: 15px; }
  .site-footer .f-addr { gap: 12px !important; }
  .site-footer .f-addr div { gap: 2px !important; }
  .site-footer .bottom { margin-top: 36px !important; gap: 10px !important; }
}
/* 인니어 CRM 칩: 긴 단어 줄바꿈 */
@media (max-width: 1100px) { html[lang="id"] .pc > p { word-break: break-word; font-size: 9px; } }
.ta-count { margin-top: 6px; text-align: right; font-size: 12.5px; color: #8A919E; font-variant-numeric: tabular-nums; } .ta-count.is-near { color: #C8322B; }
/* 홈 What We Do 제목도 왼쪽 정렬 */
.bz-sec .head { align-items: flex-start; text-align: left; }
.bz-sec .head h2, .bz-sec .head p, .bz-sec .head .hd-l { margin-left: 0; margin-right: 0; align-items: flex-start; }
/* About 지도 라벨: 휴대폰에서 자카르타는 점 아래, 수라바야는 위, 발리는 오른쪽으로 나눠 겹치지 않게 */
@media (max-width: 809px) { .ab-where2 .wm-lb.l { transform: translate(-50%, 14px) !important; text-align: center; } }
/* 섹션 제목과 설명 사이 간격: 두 겹 여백 → 한 겹 */
.head { row-gap: 0 !important; }
.head h2 { line-height: 1.25 !important; }
.head > p, .head .hd-l + p, .head .hd-l > p:not(.eb) { margin-top: 14px !important; }
.head .more, .head .chips { margin-top: 20px !important; }
@media (max-width: 809px) { .head > p, .head .hd-l + p, .head .hd-l > p:not(.eb) { margin-top: 10px !important; } }

/* 여정 건너뛰기 */
.skip-sec { display: inline-flex; align-items: center; gap: 6px; margin-top: 20px; padding: 8px 16px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; font-size: 14px; font-weight: 600; color: rgba(255,255,255,.82); text-decoration: none; transition: background .2s, color .2s; }
.skip-sec::after { content: "↓"; font-size: 13px; }
.skip-sec:hover { background: rgba(255,255,255,.1); color: #fff; }
.head .skip-sec { align-self: flex-start; }
/* 언어 안내 한 줄 (헤더 바로 아래) */
.lang-hint { position: fixed; left: 0; right: 0; top: var(--header-h, 72px); z-index: 60; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 44px 10px 16px; background: #0B0C0F; color: rgba(255,255,255,.8); font-size: 14px; line-height: 1.4; flex-wrap: wrap; }
.lang-hint a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.lang-hint button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: none; color: rgba(255,255,255,.7); font-size: 20px; cursor: pointer; }
@media (max-width: 809px) { .lang-hint { font-size: 13px; gap: 4px 10px; justify-content: flex-start; } }

/* 언어 안내: 버튼 모양 */
.lang-hint a { text-decoration: none !important; background: #fff; color: #0B0C0F !important; padding: 6px 14px; border-radius: 999px; font-size: 13.5px; }
.lang-hint a:hover { background: #E8EBF0; }
/* 여정 건너뛰기: 떠 있는 버튼 */
.skip-float { position: fixed; left: 50%; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); z-index: 55; margin: 0 !important; transform: translate(-50%, 16px); opacity: 0; pointer-events: none; background: rgba(12,13,16,.86); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-color: rgba(255,255,255,.22); box-shadow: 0 10px 28px -10px rgba(0,0,0,.5); transition: opacity .25s ease, transform .25s ease; }
.skip-float.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { .skip-float { transition: none; } }

/* 언어 안내 v2: 말풍선·작은 카드 */
.lang-hint { position: fixed; left: auto; right: auto; top: auto; bottom: auto; z-index: 60; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 10px; padding: 8px 8px 8px 16px; background: #fff; color: #3B4250; font-size: 13.5px; font-weight: 500; line-height: 1.3; border-radius: 14px; box-shadow: 0 14px 36px -14px rgba(11,12,15,.35), 0 0 0 1px rgba(11,12,15,.07); opacity: 0; transition: opacity .3s ease, transform .3s ease; }
.lang-hint.is-in { opacity: 1; }
.lang-hint span { white-space: nowrap; }
.lang-hint a { flex: none; background: #0B0C0F !important; color: #fff !important; padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.lang-hint a:hover { background: #2A2D33 !important; }
.lang-hint button { position: static; transform: none; flex: none; width: 28px; height: 28px; border: 0; background: none; color: #9AA0AB; font-size: 18px; line-height: 1; cursor: pointer; border-radius: 50%; }
.lang-hint button:hover { background: #F1F3F6; color: #3B4250; }
.lang-hint.as-tip { transform: translateY(-4px); }
.lang-hint.as-tip.is-in { transform: none; }
.lang-hint.as-tip::before { content: ""; position: absolute; top: -6px; right: 22px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg); box-shadow: -1px -1px 0 rgba(11,12,15,.07); }
.lang-hint.as-toast { left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); transform: translate(-50%, 12px); max-width: calc(100% - 32px); }
.lang-hint.as-toast.is-in { transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .lang-hint { transition: none; } }
.lang-hint.as-tip::before { right: var(--cx, 22px); }
.lang-hint.as-toast { bottom: auto; top: calc(var(--header-h, 64px) + 10px); transform: translate(-50%, -8px); }
.lang-hint.as-toast.is-in { transform: translate(-50%, 0); }
/* 여정 건너뛰기 + 스크롤 안내 나란히 */
.jhint { transform: translateX(calc(-50% - var(--jshift, 0px))) !important; }
.jhint.is-end { transform: translate(calc(-50% - var(--jshift, 0px)), 8px) !important; }
.skip-float.is-pair { bottom: auto; transform: translateY(16px); }
.skip-float.is-pair.is-on { transform: none; }
/* 여정 4단계 릴스: 데스크톱에서 6단계처럼 가로를 꽉 채움(영상은 위아래만 살짝 잘림) */
@media (min-width: 1101px) { .sc-gal .gal .gi.v { flex: 1 1 0; aspect-ratio: auto; } .sc-gal .gal .gi.v video { object-position: 50% 42%; } }
/* Careers Core Values: 제목이 카드 위로 올라왔으니 따라다니지 않게 */
.cr-split .head { position: static; margin-bottom: 56px; }
@media (max-width: 809px) { .cr-split .head { margin-bottom: 32px; } }
/* 같은 바탕 섹션이 이어질 때 위아래 여백이 겹쳐 240px로 벌어지던 것 정리 */
.cr-grow + .cr-culture, .cr-culture + .band.tint, .band.tint + .band.tint.bx-more { padding-top: 0 !important; }
/* Careers: How we work · Core Values 제목은 좌측 정렬 */
.cr-grow .head, .cr-culture .head { align-items: flex-start; text-align: left; }
.cr-grow .head h2, .cr-grow .head p, .cr-grow .head .hd-l, .cr-culture .head h2, .cr-culture .head p, .cr-culture .head .hd-l { margin-left: 0; margin-right: 0; align-items: flex-start; text-align: left; }
/* 히어로 일시정지 버튼 (화살표와 같은 원형) */
.st-pause { width: 38px; height: 38px; border-radius: 50%; border: 1px solid #D5DAE2; background: rgba(255,255,255,.9); display: grid; place-items: center; cursor: pointer; transition: border-color .2s ease, background .2s ease; margin-left: 2px; }
.st-pause:hover { border-color: #0B0C0F; background: #fff; }
.st-pause i { position: relative; width: 10px; height: 11px; border-left: 3px solid #0B0C0F; border-right: 3px solid #0B0C0F; box-sizing: border-box; }
.hero-st.is-paused .st-pause i { width: 0; height: 0; border-left: 10px solid #0B0C0F; border-right: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transform: translateX(2px); }
.hero-st.is-paused .st-veil, .hero-st.is-paused .stp::after { animation-play-state: paused !important; }
@media (max-width: 809px) { .st-pause { width: 34px; height: 34px; } }
/* 히어로: 첫 장면(세계로)에서 나갈 때는 문구를 먼저 빠르게 걷어내고 지도가 다가가게 */
.hero-st:not(.is-fin) .st-fin { transition: opacity .45s ease 0s; }
.hero-st:not(.is-fin) .st-fin::before { transition-delay: 0s !important; }
/* WhatsApp 프로필: 실제 MyVenus 로고 이미지 */
img.wa-av { display: block; flex: none; width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: #7C2629; font-size: 0; }
/* 공지: 행을 누르면 공고 전문이 펼쳐짐 */
.nt-d summary { display: grid; grid-template-columns: 120px minmax(0, 1fr) 140px 20px; gap: 16px; align-items: center; padding: 22px 8px; border-bottom: 1px solid #ECEEF2; cursor: pointer; list-style: none; }
.nt-d summary::-webkit-details-marker { display: none; }
.nt-d summary::after { content: ""; width: 8px; height: 8px; border-right: 1.6px solid #8A909A; border-bottom: 1.6px solid #8A909A; transform: rotate(45deg); justify-self: end; transition: transform .2s ease; }
.nt-d[open] summary::after { transform: rotate(-135deg); }
.nt-d summary:hover b { color: var(--brand); }
.nt-list li > .nt-d { display: block; padding: 0; border: 0; }
.nt-list li > a { grid-template-columns: 120px minmax(0, 1fr) 140px 20px; }
.nt-body { padding: 28px 8px 36px 144px; border-bottom: 1px solid #ECEEF2; font-size: 15.5px; line-height: 1.8; color: #3B4250; background: #FAFBFC; }
.nt-body p + p, .nt-body .nt-items { margin-top: 12px; }
.nt-body .nt-mid { text-align: center; font-weight: 600; color: #111318; margin: 18px 0 6px; }
.nt-body .nt-items { padding-left: 20px; }
.nt-body .nt-items > li { margin-top: 8px; }
.nt-body .nt-items b { font-weight: 600; color: #111318; margin-right: 6px; }
.nt-body ul { padding-left: 18px; list-style: disc; margin-top: 4px; }
.nt-body .nt-note { font-size: 14.5px; color: #6B7280; }
.nt-body .nt-sign { margin-top: 22px; font-weight: 600; color: #111318; }
@media (max-width: 809px) { .nt-d summary, .nt-list li > a { grid-template-columns: 1fr 16px; gap: 6px; } .nt-d summary .nt-c, .nt-d summary b, .nt-d summary time { grid-column: 1; } .nt-d summary::after { grid-column: 2; grid-row: 1 / span 3; } .nt-body { padding: 20px 8px 28px; font-size: 14.5px; } }
.nt-body li > * { display: inline; padding: 0; border: 0; grid-template-columns: none; }
.nt-body .nt-items > li > ul { display: block; margin-top: 4px; }
.nt-body .nt-items > li { list-style: decimal; }
.nt-body ul > li { list-style: disc; }
@media (max-width: 809px) { .nt-list li > a .nt-c, .nt-list li > a b, .nt-list li > a time { grid-column: 1; } }
/* 상단 메뉴: 로고 왼쪽, 메뉴 오른쪽, 언어는 맨 끝 지구본 버튼(누르면 펼침) */
@media (min-width: 1101px) {
  .site-header .bar { justify-content: flex-start; }
  .site-header .bar > .logo { margin-right: auto; }
  .site-header .bar > nav { order: 2; }
  .site-header .bar > .lang-sw { order: 3; margin-left: 32px; position: relative; }
  .site-header .bar > .menu-toggle { order: 4; }
}
.site-header .lang-sw.is-dd > .lang-btn { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px 0 11px; border: 1px solid color-mix(in srgb, currentColor 32%, transparent); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .02em; cursor: pointer; transition: border-color .2s, background-color .2s; }
.site-header .lang-sw.is-dd > .lang-btn:hover, .site-header .lang-sw.is-open > .lang-btn { border-color: color-mix(in srgb, currentColor 70%, transparent); }
.site-header .lang-sw.is-dd > .lang-btn i { width: 6px; height: 6px; margin-left: 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); opacity: .7; transition: transform .2s; }
.site-header .lang-sw.is-open > .lang-btn i { transform: translateY(1px) rotate(-135deg); }
.site-header .lang-sw.is-dd > .lang-menu { position: absolute; right: 0; top: calc(100% + 10px); min-width: 200px; padding: 6px; border-radius: 14px; background: #fff; box-shadow: 0 18px 40px -12px rgba(11,12,15,.28), 0 0 0 1px rgba(11,12,15,.06); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 70; }
.site-header .lang-sw.is-open > .lang-menu { opacity: 1; visibility: visible; transform: none; }
.site-header .lang-sw.is-dd .lang-menu a { display: flex; align-items: baseline; gap: 10px; padding: 10px 12px; border-radius: 9px; opacity: 1; color: #3B4250 !important; font-size: 14px; font-weight: 500; }
.site-header .lang-sw.is-dd .lang-menu a b { width: 22px; font-size: 12.5px; font-weight: 700; color: #8A909A; }
.site-header .lang-sw.is-dd .lang-menu a:hover { background: #F4F6FA; color: #0B0C0F !important; }
.site-header .lang-sw.is-dd .lang-menu a[aria-current="true"] { color: #0B0C0F !important; font-weight: 600; }
.site-header .lang-sw.is-dd .lang-menu a[aria-current="true"] b { color: var(--brand, #2F5BFF); }
/* 첫 장면 큰 문구: 영어·인니어도 두 줄로 균형 있게 (한 줄로 화면 끝까지 늘어지지 않게) */
.st-fin .fin-h { max-width: 1040px; margin-left: auto; margin-right: auto; text-wrap: balance; }
html[lang="en"] .st-fin .fin-h, html[lang="id"] .st-fin .fin-h { max-width: 900px; }
@media (max-width: 1100px) { html[lang="en"] .st-fin .fin-h, html[lang="id"] .st-fin .fin-h { max-width: 680px; } }
/* Contact 주소 목록: '지도'는 제목 바로 옆, 이메일은 'Email' 바로 옆 한 줄 */
.contact-list > div { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 14px; }
.contact-list > div > h3 { order: 1; }
.contact-list > div > .ext { order: 2; margin-top: 0 !important; }
.contact-list > div > p { order: 3; flex-basis: 100%; }
.contact-list > div:has(.mail) > p { flex-basis: auto; margin-top: 0; }
/* Contact: 문의 유형을 고르기 전에는 오른쪽 주소 목록 아래선을 폼 카드 아래선과 맞춤 */
@media (min-width: 1101px) {
  .form-grid:not(:has(.tp-set input:checked)) { align-items: stretch; }
  .form-grid:not(:has(.tp-set input:checked)) > .contact-list { display: flex; flex-direction: column; }
  .form-grid:not(:has(.tp-set input:checked)) > .contact-list > div { flex: 1 1 auto; align-content: center; }
}
/* About 지도: 지점 라벨은 모두 왼쪽 정렬·같은 모양, 점선은 서울에서 각 도시로 천천히 흐름 */
.ab-where2 .wm-lb { background: none; padding: 0; text-align: left; gap: 3px; }
.ab-where2 .wm-lb b { font-size: 16px; font-weight: 700; color: #fff; }
.ab-where2 .wm-lb span { font-size: 13px; color: rgba(255,255,255,.62); }
.ab-where2 .wm-lb.l { transform: translate(calc(-100% - 16px), -50%); text-align: left; }
.ab-where2 .wm-lb.t { transform: translate(-8px, calc(-100% - 16px)); text-align: left; }
.ab-where2 .wm-lb.r { transform: translate(16px, -50%); text-align: left; }
@keyframes wm-flow { to { stroke-dashoffset: -18; } }
.ab-where2 .wm-arc { animation: wm-flow 1.8s linear infinite; }
@media (prefers-reduced-motion: reduce) { .ab-where2 .wm-arc { animation: none; } }
@media (max-width: 809px) {
  .ab-where2 .wm-lb b { font-size: 13px; } .ab-where2 .wm-lb span { font-size: 11.5px; }
  .ab-where2 .wm-lb.l { transform: translate(calc(-100% - 12px), -50%) !important; text-align: left; }
  .ab-where2 .wm-lb.t { transform: translate(-6px, calc(-100% - 12px)); }
  .ab-where2 .wm-lb.r { transform: translate(12px, -50%); }
}
.ab-where2 .wm-lb b, .ab-where2 .wm-lb span { text-shadow: 0 1px 2px rgba(7,9,15,.9), 0 0 10px rgba(7,9,15,.85); }
.ab-where2 .wm-lb { z-index: 3; }
/* 가장자리 페이드는 지도 그림에만, 라벨은 흐려지지 않게 */
.ab-where2 .wm-map { -webkit-mask-image: none; mask-image: none; }
.ab-where2 .wm-map > svg { -webkit-mask-image: radial-gradient(72% 66% at 50% 52%, #000 58%, transparent 100%); mask-image: radial-gradient(72% 66% at 50% 52%, #000 58%, transparent 100%); }

/* 지점 사진이 2장일 때: 두 번째도 세로로 꽉 */
.br-ph figure:nth-child(2):last-child { grid-row: span 2; }

/* 화면이 아주 클 때(브라우저 축소·큰 모니터): 여정 장면을 위에 붙이지 않고 세로 가운데로 */
@media (min-width: 1101px) and (min-height: 1000px) {
  .jstick { height: 920px !important; min-height: 0 !important; top: calc(var(--header-h) + (100vh - var(--header-h) - 920px) / 2) !important; }
}
