/* pages/home.php 전용 스타일. 공용 컴포넌트는 css/gpc-theme.css 참고.
   전체 화면 스크롤스냅 6섹션 구성 — 각 섹션은 서로 다른 레이아웃 언어를 쓰되
   컬러/타이포 토큰은 gpc-theme.css를 공유한다. */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
body { font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif; -webkit-font-smoothing: antialiased; color: #2b3242; overflow: hidden; }
a { text-decoration: none; color: inherit; }
[data-scroller]::-webkit-scrollbar { width: 0; height: 0; }
[data-scroller] { scrollbar-width: none; }
[data-aos] { opacity: 0; transition-property: opacity, transform; transition-duration: .8s; transition-timing-function: cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
[data-aos].aos-animate { opacity: 1 !important; transform: none !important; }
[data-aos='fade-up']    { transform: translate3d(0, 32px, 0); }
[data-aos='fade-down']  { transform: translate3d(0, -32px, 0); }
[data-aos='fade-right'] { transform: translate3d(-32px, 0, 0); }
[data-aos='fade-left']  { transform: translate3d(32px, 0, 0); }
[data-aos='zoom-in']    { transform: scale(.96); }
@media (prefers-reduced-motion: reduce) {
  [data-aos] { transition: none !important; transform: none !important; opacity: 1 !important; }
}
[data-dot].active { background: rgba(255,255,255,0.85) !important; }

.hm-shell { height: 100vh; position: relative; overflow: hidden; background: #fff; }
.hm-dotnav { position: fixed; right: clamp(16px,2.2vw,34px); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 14px; z-index: 40; }
.hm-dotnav span { cursor: pointer; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.85); background: transparent; transition: all .25s; }
.hm-scroller { height: 100%; overflow-y: auto; scroll-snap-type: y mandatory; scroll-behavior: smooth; position: relative; }
.hm-sec { height: 100vh; min-height: 560px; scroll-snap-align: start; scroll-snap-stop: always; }

/* ── 메인비주얼 슬라이더 ── */
.mv-slider, .mv-slider .slick-list, .mv-slider .slick-track, .mv-slide { height: 100vh; min-height: 560px; }
.mv-slide { position: relative; overflow: hidden; outline: none; }
.mv-slide__bg { position: absolute; inset: 0; overflow: hidden; background-color: #0f1c3a; background-size: cover; background-position: center; transform: scale(1.06); will-change: transform; }
.mv-slider .slick-current .mv-slide__bg { animation: mvKen 7s ease-out forwards; }
@keyframes mvKen { from { transform: scale(1.06); } to { transform: scale(1.16); } }
.mv-slide__video.video-js { position: absolute; inset: 0; width: 100%; height: 100%; }
.mv-slide__video.video-js .vjs-tech { object-fit: cover; }
.mv-slide__overlay { position: absolute; inset: 0; background: linear-gradient(95deg, rgba(9,16,38,0.84) 0%, rgba(9,16,38,0.62) 44%, rgba(9,16,38,0.34) 100%); }
.mv-slide__inner { position: relative; height: 100%; display: flex; align-items: center; padding: 0 clamp(24px,6vw,120px); }
.mv-slide__content { max-width: 720px; }
.mv-eyebrow { margin-bottom: 22px; }
.mv-headline { margin: 0; font-family: 'GmarketSans', sans-serif; font-weight: 500; font-size: clamp(36px,5vw,64px); line-height: 1.2; letter-spacing: -0.02em; color: #fff; text-shadow: 0 2px 30px rgba(8,16,38,.4); }
.mv-sub { margin: 26px 0 0; font-size: clamp(16px,1.4vw,19px); line-height: 1.7; color: rgba(255,255,255,.9); max-width: 560px; }
.mv-cta { display: flex; gap: 14px; margin-top: 38px; flex-wrap: wrap; }
.mv-btn { font-size: 16px; font-weight: 600; padding: 15px 30px; border-radius: 7px; white-space: nowrap; display: inline-block; }
.mv-btn--primary { color: #0d1b52; background: #fff; }
.mv-btn--ghost { color: #fff; border: 1px solid rgba(255,255,255,.7); }
.mv-animate { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.mv-animate.mv-in { opacity: 1; transform: none; }
.mv-headline.mv-in { transition-delay: .12s; }
.mv-sub.mv-in { transition-delay: .26s; }
.mv-cta.mv-in { transition-delay: .4s; }
.mv-slider .slick-dots { position: absolute; bottom: 34px; left: clamp(24px,6vw,120px); width: auto; margin: 0; padding: 0; display: flex; gap: 10px; list-style: none; }
.mv-slider .slick-dots li { width: auto; height: auto; margin: 0; }
.mv-slider .slick-dots li button { width: 34px; height: 3px; padding: 0; border: 0; border-radius: 2px; background: rgba(255,255,255,.35); text-indent: -9999px; cursor: pointer; transition: background .3s; }
.mv-slider .slick-dots li button:before { display: none; }
.mv-slider .slick-dots li.slick-active button { background: #c8932a; }

/* ── SECTION 2 — 인증 통합검색 ──────────────────────────────────
   떠다니는 것은 추상 파티클이 아니라 GPC가 실제로 취급하는 '규격 번호'다.
   입력하면 일치하는 규격만 금색으로 점화되고 나머지는 물러난다 → 배경 자체가 검색 결과.
   (파티클+연결선 = 어디에나 있는 데이터 시각화 클리셰라 의도적으로 배제) */
.hm-sec--search { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 0 clamp(20px,5vw,64px); background: radial-gradient(130% 100% at 50% 40%, #12224f 0%, #0b1436 55%, #070d26 100%); }

.hs-field { position: absolute; inset: 0; pointer-events: none; }
.hs-veil { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(44% 40% at 50% 50%, rgba(7,13,38,.94) 0%, rgba(7,13,38,.78) 48%, rgba(7,13,38,0) 76%); }

.hs-tag {
  position: absolute; left: var(--x); top: var(--y); white-space: nowrap;
  font-family: 'GmarketSans', sans-serif; font-weight: 500; letter-spacing: -.01em;
  color: #8fa3d4; opacity: .3; user-select: none;
  transform: translate(-50%,-50%);
  animation: var(--anim, hsDriftA) var(--dur, 42s) ease-in-out var(--delay, 0s) infinite;
  transition: color .55s cubic-bezier(.4,0,.2,1), opacity .55s cubic-bezier(.4,0,.2,1);
  transition-delay: calc(var(--i, 0) * 16ms);
}
.hs-tag--t3 { font-size: clamp(21px,2.7vw,35px); font-weight: 700; opacity: .34; }
.hs-tag--t2 { font-size: clamp(15px,1.8vw,23px); }
.hs-tag--t1 { font-size: clamp(12px,1.25vw,16px); opacity: .24; }

/* 검색 중 — 비매칭은 물러나고 매칭만 점화(--i 스태거로 잔물결처럼 번진다) */
.hs-field.is-q .hs-tag { opacity: .05; }
.hs-field.is-q .hs-tag.is-hit { opacity: 1; color: var(--gold); }

@keyframes hsDriftA { 0%,100% { transform: translate(-50%,-50%); } 50% { transform: translate(calc(-50% + 16px), calc(-50% - 20px)); } }
@keyframes hsDriftB { 0%,100% { transform: translate(-50%,-50%); } 50% { transform: translate(calc(-50% - 21px), calc(-50% + 15px)); } }
@keyframes hsDriftC { 0%,100% { transform: translate(-50%,-50%); } 50% { transform: translate(calc(-50% + 12px), calc(-50% + 23px)); } }
@keyframes hsDriftD { 0%,100% { transform: translate(-50%,-50%); } 50% { transform: translate(calc(-50% - 15px), calc(-50% - 13px)); } }

.hs-inner { position: relative; z-index: 2; width: 100%; max-width: 660px; text-align: center; }
.hs-inner .gpc-eyebrow { justify-content: center; }
.hs-h2 { font-family: 'GmarketSans', sans-serif; font-weight: 700; font-size: clamp(25px,3.4vw,42px); line-height: 1.3; color: #fff; margin: 16px 0 0; letter-spacing: -.02em; }
.hs-lead { margin: 14px 0 0; font-size: 14.5px; line-height: 1.7; color: #9aa9cf; }
.hs-lead b { color: var(--gold); font-weight: 600; }

/* AI 의미검색 안내 배지 — vs_enabled()일 때만 서버가 렌더링(꺼져 있으면 과장광고라 아예 안 낸다).
   Gemini류가 쓰는 4색(블루·퍼플·핑크·앰버) 그라데이션을 텍스트에 흘려보내 '이 입력창은 AI가 붙어 있다'는
   신호를 준다 — 다른 곳은 전부 네이비/골드 톤으로 절제했으니 이 한 군데는 의도적으로 튀게 둔다. */
.hs-ai { display: inline-flex; align-items: center; gap: 8px; margin: 16px 0 0; padding: 7px 18px 7px 13px; border-radius: 100px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.045); }
.hs-ai__spark { flex: none; display: flex; color: #b48cf0; animation: hsAiTwinkle 2.4s ease-in-out infinite; }
.hs-ai__text {
  font-size: 12.5px; font-weight: 600; letter-spacing: .01em;
  background: linear-gradient(90deg, #4285F4, #9B72CB, #D96570, #F9AB00, #4285F4);
  background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  animation: hsAiSheen 7s linear infinite;
}
@keyframes hsAiSheen { to { background-position: -300% 0; } }
@keyframes hsAiTwinkle { 0%,100% { opacity: .5; transform: scale(.88) rotate(0deg); } 50% { opacity: 1; transform: scale(1.06) rotate(8deg); } }
@media (prefers-reduced-motion: reduce) { .hs-ai__spark, .hs-ai__text { animation: none; } }

/* 입력 — 알약형 대신 '공문서 기입선' 형태. 포커스 시 밑줄이 금색으로 */
.hs-form { position: relative; margin-top: 30px; }
.hs-input {
  width: 100%; height: 62px; padding: 0 56px 0 20px;
  font-family: inherit; font-size: 16.5px; color: #fff;
  background: rgba(255,255,255,.055); border: 0; border-bottom: 2px solid rgba(255,255,255,.22);
  border-radius: 6px 6px 0 0; outline: none;
  transition: background .25s, border-color .25s;
}
.hs-input::placeholder { color: rgba(255,255,255,.38); }
/* 크롬이 type=search에 붙이는 기본 지우기 버튼 제거 — 우측 검색 아이콘과 겹친다(Esc로 초기화) */
.hs-input::-webkit-search-cancel-button, .hs-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.hs-input:focus { background: rgba(255,255,255,.09); border-bottom-color: var(--gold); }
.hs-submit { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; background: none; border: 0; cursor: pointer; color: rgba(255,255,255,.5); transition: color .2s; }
.hs-submit:hover { color: var(--gold); }
.hs-submit:focus-visible, .hs-quick button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 4px; }

/* 자주 찾는 조건 — 알약 버튼 대신 조용한 인라인 링크 */
.hs-quick { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 13px; margin-top: 20px; font-size: 13.5px; }
.hs-quick span { color: rgba(255,255,255,.32); }
.hs-quick button { background: none; border: 0; padding: 3px 1px; font: inherit; color: #a9b8dc; cursor: pointer; border-bottom: 1px solid transparent; transition: color .18s, border-color .18s; }
.hs-quick button:hover { color: var(--gold); border-bottom-color: rgba(200,147,42,.55); }

/* 결과 — 카테고리 목록과 같은 등록부 행 언어(다크 버전) */
.hs-results { position: absolute; top: 100%; left: 0; right: 0; z-index: 3; margin-top: 4px; max-height: min(38vh, 300px); overflow-y: auto; text-align: left; }
.hs-results:empty { display: none; }
/* 점화된 규격이 뒤로 비쳐도 결과가 읽히도록 — 유리효과 없이 잉크 톤만 얹는다 */
.hs-results:not(:empty) { background: rgba(7,13,38,.86); }
.hs-res { display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 4px; border-bottom: 1px solid rgba(255,255,255,.08); transition: background .15s, padding-left .2s; }
.hs-res:hover, .hs-res.is-active { background: rgba(255,255,255,.06); padding-left: 12px; }
.hs-res__cat { flex: none; width: 82px; font-family: ui-monospace,'SFMono-Regular',Menlo,monospace; font-size: 10.5px; letter-spacing: .13em; color: #7f8fbb; }
.hs-res__t { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; color: #edf1fa; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-res__t mark { background: none; color: var(--gold); }
.hs-res__go { flex: none; color: rgba(255,255,255,.28); transition: color .2s, transform .2s; }
.hs-res:hover .hs-res__go, .hs-res.is-active .hs-res__go { color: var(--gold); transform: translateX(3px); }
/* 의미검색으로 추가된 행 — 글자가 겹치지 않아도 뜻이 맞아 찾아진 결과 */
.hs-res--vec .hs-res__cat::after { content: '의미'; display: block; margin-top: 3px; color: var(--gold); letter-spacing: .08em; opacity: .8; }

.hs-empty { padding: 20px 4px; text-align: left; font-size: 14px; line-height: 1.75; color: #93a2c8; border-bottom: 1px solid rgba(255,255,255,.08); }
.hs-empty a { color: var(--gold); border-bottom: 1px solid rgba(200,147,42,.5); }

/* 검색 중에는 추천 조건을 감추되 자리는 남긴다 — 레이아웃이 흔들리면 배경 규격과 겹친다 */
.hs-inner.is-searching .hs-quick { visibility: hidden; }

.gpc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (max-width: 760px) {
  .hs-tag--t1 { display: none; }
  .hs-veil { background: radial-gradient(70% 46% at 50% 50%, rgba(7,13,38,.95) 0%, rgba(7,13,38,.82) 52%, rgba(7,13,38,0) 82%); }
  .hs-res__cat { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hs-tag { animation: none; } }

/* ── 공용 섹션 헤더 조각 ── */
.hm-wrap { max-width: 1280px; width: 100%; margin: 0 auto; }
.hm-h2 { margin: 0; font-family: 'GmarketSans', sans-serif; font-weight: 500; letter-spacing: -.02em; color: #15233f; }
.hm-link { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; color: var(--blue); }
.hm-link--btn { border: 1px solid #cdd5e3; padding: 12px 22px; border-radius: 7px; font-size: 15.5px; }

/* ── SECTION 3 — 소개 + 실적 ── */
.hm-sec--about { display: flex; align-items: center; padding: 0 clamp(24px,6vw,120px); background: #f4f6f9; }
.hm-about { max-width: 1280px; width: 100%; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px,6vw,96px); align-items: center; }
.hm-about h2 { font-size: clamp(30px,3.4vw,46px); line-height: 1.32; margin-top: 22px; }
.hm-about p { margin: 26px 0 0; font-size: 17px; line-height: 1.8; color: #56607a; max-width: 520px; }
.hm-about .hm-link { margin-top: 30px; }
.hm-stats { display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; row-gap: 38px; }
.hm-stat { padding-left: 18px; border-left: 2px solid var(--gold); }
/* 항목이 3개라 2단 그리드에 고아 칸이 남는다 → 첫 항목(경력)이 한 줄을 통째로 차지한다.
   경력이 이 기관의 핵심 근거라 수치를 한 단계 키우고, 비는 오른쪽 절반은 설명 한 줄로 채운다. */
.hm-stat:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0,1fr); column-gap: clamp(20px,3vw,40px); }
.hm-stat:first-child .hm-stat__v { grid-column: 1; grid-row: 1; font-size: clamp(44px,5vw,62px); }
.hm-stat:first-child .hm-stat__l { grid-column: 1; grid-row: 2; }
.hm-stat__note { grid-column: 2; grid-row: 1 / -1; align-self: center; margin: 0; max-width: 320px; font-size: 14.5px; line-height: 1.65; color: #6b7488; }
.hm-stat__v { font-family: 'GmarketSans', sans-serif; font-size: clamp(34px,3.6vw,46px); font-weight: 600; color: #1a2b50; line-height: 1; }
.hm-stat__l { margin-top: 12px; font-size: 14.5px; color: #6b7488; line-height: 1.5; }
/* 모바일 — 2단 그리드를 유지하면 좌측 칼럼이 150px대로 눌려 제목이 한 단어씩 끊긴다.
   단을 풀어 본문이 한 줄에 충분한 글자수를 갖게 하고, 통계는 2단을 유지해(3행이면 100vh를 넘김)
   수치·라벨만 축소한다. */
@media (max-width: 860px) {
  .hm-sec--about { padding: 0 clamp(22px,5.5vw,44px); }
  .hm-about { grid-template-columns: 1fr; gap: clamp(30px,5.5vw,44px); }
  .hm-about h2 { font-size: clamp(25px,6.2vw,34px); line-height: 1.36; margin-top: 16px; }
  .hm-about p { margin-top: 18px; font-size: 15.5px; line-height: 1.75; max-width: none; }
  .hm-about .hm-link { margin-top: 22px; font-size: 15px; }
  .hm-stats { column-gap: 20px; row-gap: 28px; }
  .hm-stat { padding-left: 14px; }
  .hm-stat__v { font-size: clamp(27px,7vw,36px); }
  .hm-stat:first-child { grid-template-columns: 1fr; }
  .hm-stat:first-child .hm-stat__v { font-size: clamp(34px,9vw,46px); }
  .hm-stat__l { margin-top: 8px; font-size: 13px; }
  .hm-stat__note { grid-column: 1; grid-row: auto; margin-top: 7px; max-width: none; font-size: 12.5px; line-height: 1.55; }
}
/* 세로가 짧은 단말(100vh 안에 소개+통계가 다 들어가야 한다) — 여백과 본문을 한 단계 더 조인다 */
@media (max-width: 860px) and (max-height: 740px) {
  .hm-about { gap: 24px; }
  .hm-about p { margin-top: 14px; font-size: 14.5px; line-height: 1.7; }
  .hm-about .hm-link { margin-top: 16px; }
  .hm-stats { row-gap: 20px; }
  .hm-stat__note { margin-top: 5px; line-height: 1.5; }
}

/* ── SECTION 4 — 서비스 3대 분야: 카드 대신 실제 취급 종수를 시그니처로 삼은 헤어라인 컬럼 ── */
.hm-sec--pillars { display: flex; align-items: center; padding: 0 clamp(24px,6vw,120px); }
.hm-sec__head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 20px; margin-bottom: 52px; }
.hm-sec__head h2 { font-size: clamp(28px,3.2vw,42px); line-height: 1.3; margin-top: 18px; }
.hm-pillars { display: grid; grid-template-columns: repeat(3,1fr); }
.hm-pillar { position: relative; display: flex; flex-direction: column; padding: 28px 32px 0 32px; border-left: 1px solid var(--border); transition: padding-top .25s; }
.hm-pillar:first-child { border-left: 0; padding-left: 0; }
.hm-pillar::before { content: ''; position: absolute; top: 0; left: 32px; right: 32px; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.hm-pillar:first-child::before { left: 0; }
.hm-pillar:hover { padding-top: 20px; }
.hm-pillar:hover::before { transform: scaleX(1); }
.hm-pillar__count { display: flex; align-items: baseline; gap: 6px; font-family: 'GmarketSans', sans-serif; font-size: 52px; font-weight: 700; color: var(--navy); line-height: 1; }
.hm-pillar__count span { font-family: var(--sans); font-size: 16px; font-weight: 700; color: var(--gold); }
.hm-pillar__en { margin-top: 18px; font-family: ui-monospace,'SFMono-Regular',Menlo,monospace; font-size: 11px; letter-spacing: .15em; color: #93a0ba; }
.hm-pillar__t { margin: 10px 0 0; font-family: 'GmarketSans', sans-serif; font-size: 22px; font-weight: 600; color: #0d1b52; letter-spacing: -.01em; }
.hm-pillar__d { margin: 14px 0 0; font-size: 14.5px; line-height: 1.7; color: #526080; flex: 1; }
.hm-pillar__go { margin-top: 22px; font-size: 13.5px; font-weight: 600; color: var(--blue); display: inline-flex; align-items: center; gap: 6px; }
.hm-pillar__go svg { transition: transform .2s; }
.hm-pillar:hover .hm-pillar__go svg { transform: translateX(4px); }
@media (max-width: 860px) { .hm-pillars { grid-template-columns: 1fr; } .hm-pillar { border-left: 0; border-top: 1px solid var(--border); padding: 28px 0 0; } .hm-pillar:first-child { border-top: 0; } .hm-pillar::before { left: 0 !important; } }

/* ── SECTION 5 — 인증 프로세스: 4칸 구획이 아니라 연결된 흐름(노드+선)으로 ── */
.hm-sec--process { display: flex; align-items: center; padding: 0 clamp(24px,6vw,120px); background: #15233f; color: #eaf0fb; }
.hm-sec--process h2 { font-size: clamp(28px,3.2vw,42px); line-height: 1.3; color: #fff; margin: 18px 0 64px; }
.hm-flow { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(20px,3vw,32px); }
.hm-flow__step { position: relative; padding-top: 60px; }
.hm-flow__step:not(:last-child)::after { content: ''; position: absolute; top: 19px; left: calc(50% + 30px); right: calc(-50% + 30px); height: 1px; background: linear-gradient(90deg, rgba(200,147,42,.55), rgba(200,147,42,.08)); }
.hm-flow__node { position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--gold); display: flex; align-items: center; justify-content: center; font-family: ui-monospace,monospace; font-weight: 700; font-size: 15px; color: var(--gold); background: #15233f; }
.hm-flow__t { margin: 0; font-size: 20px; font-weight: 700; color: #fff; }
.hm-flow__d { margin: 12px 0 0; font-size: 14.5px; line-height: 1.7; color: #a9b6d4; }
@media (max-width: 860px) { .hm-flow { grid-template-columns: 1fr 1fr; row-gap: 44px; } .hm-flow__step:nth-child(2)::after { display: none; } .hm-flow__step:not(:last-child)::after { display: none; } }

/* ── SECTION 6 — CTA (박스/그리드 배경 패턴 없이) ──
   다른 섹션과 같이 100vh 한 페이지를 온전히 쓴다. 푸터는 이 섹션 밖(.hm-footer).
   위쪽 --hd-h로 고정 헤더가 덮는 만큼을 비워, 헤더 밑 ~ 화면 끝 사이에서 정확히 중앙에 오게 한다
   (아래 패딩이 0이어야 한다). 예전에 푸터와 100vh를 나눠 쓰던 시절 이 여백이 없어
   아이브로우가 헤더 뒤로 숨고 제목 첫 줄이 잘렸다. */
.hm-sec--cta { display: flex; flex-direction: column; }
.hm-cta-outer { flex: 1; display: flex; align-items: center; justify-content: center; padding: var(--hd-h) clamp(24px,6vw,120px) 0; }
.hm-cta { position: relative; max-width: 720px; text-align: center; }
.hm-cta h2 { font-size: clamp(30px,3.6vw,48px); line-height: 1.28; margin-top: 20px; }
.hm-cta p { margin: 20px 0 0; font-size: 17px; line-height: 1.7; color: #56607a; }
.hm-cta .gpc-eyebrow { justify-content: center; }
.hm-cta__btn { margin-top: 30px; }
/* 인장은 문구 위가 아니라 옆에 둔다 — 마지막 화면을 푸터와 나눠 쓰므로 위로 104px을 뺄 여유가 없다.
   본문 칼럼(720px) 바깥 여백에 세로 중앙으로 놓아 세로 공간을 전혀 쓰지 않는다.
   양옆 여백이 부족해지는 폭에서는 감춘다(장식이므로 내용 손실 없음). */
.hm-cta .sub-seal { position: absolute; top: 50%; right: -210px; bottom: auto; transform: translateY(-50%); width: 118px; opacity: .85; animation: none; }
@media (max-width: 1220px) { .hm-cta .sub-seal { display: none; } }

/* ── 푸터 — 섹션이 아닌 독립 영역 (fullPage.js의 fp-auto-height 푸터와 같은 방식) ──
   .hm-sec 는 전부 100vh 1페이지 규칙을 지킨다. 푸터는 그 규칙 밖에 있고 자기 높이만 차지한다.
   스크롤러가 mandatory 스냅이라 스냅 지점이 없으면 도달할 수 없으므로 align:end 로 화면 아래에 붙인다.
   이 정지 상태에서는 위쪽 CTA 섹션의 아랫부분만 보인다 — 참고 페이지와 동일한 동작. */
.hm-footer { scroll-snap-align: end; background: var(--navy); color: #c5cde0; padding: 48px clamp(24px,6vw,120px) 28px; }
/* width:100% 필수 — 푸터가 세로 flex 컨테이너라 margin:0 auto 만 있으면 내용 폭으로 줄어든다 */
.hm-footer__top { width: 100%; max-width: 1280px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 48px; justify-content: space-between; }
.hm-footer__brand { max-width: 320px; }
.hm-footer__brand p { margin: 16px 0 0; font-size: 13.5px; line-height: 1.7; color: #90a1c6; }
.hm-footer__cols { display: flex; gap: clamp(40px,6vw,80px); flex-wrap: wrap; }
.hm-footer__col { display: flex; flex-direction: column; gap: 11px; }
.hm-footer__col-t { font-size: 13px; font-weight: 600; letter-spacing: .08em; color: #6e7fa6; margin-bottom: 4px; }
.hm-footer__col a, .hm-footer__col span { font-size: 14px; color: #c5cde0; }
.hm-footer__bottom { width: 100%; max-width: 1280px; margin: 36px auto 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 13px; color: #7e8db0; }
.hm-footer__bottom a { color: #7e8db0; }
