@charset "utf-8";

/* =========================================================
   GEO page (page-geo) — 픽셀 충실 버전
   - 본문 레이아웃은 원본(Figma export) 인라인 스타일이 담당
   - 여기서는 원본 <style>의 토큰/폼 유틸리티만 사이트 스코프로 이관
   - 폰트: --font-base → 공통 Pretendard, --font-en → Silka(.silka)
   ========================================================= */

.page-geo {
  /* 색상 토큰 */
  --color-bg-dark: #1d1f27;
  --color-bg-dark2: #26272b;
  --color-primary: #2851ff;
  --color-accent: #fa5a00;
  --color-text-white: #ffffff;
  --color-text-gray: #aaaaaa;
  --color-text-sub: #999999;
  --color-text-caption: #777777;
  --color-text-input: #333333;
  --color-input-bg: #f5f5f5;
  --color-bg-light: #edf0f8;
  --color-row: #313439;
  --color-text-heading: #333333;
  --color-navy: #0c111d;
  /* 그라디언트 토큰 */
  --grad-heading: linear-gradient(114deg, #80e1b0 1%, #2851ff 98%);
  --grad-cta: linear-gradient(139deg, #80d8e1 8%, #2851ff 91%);
  /* 폰트 토큰 (사이트 폰트에 매핑) */
  --font-base: 'Pretendard', '맑은 고딕', sans-serif;
  --font-en: 'Silka', '맑은 고딕', sans-serif;

  font-family: var(--font-base);
  color: var(--color-text-heading);
  word-break: keep-all;
}
.page-geo p { margin: 0; }
/* p→h 시맨틱 전환(SEO/GEO)용: default.css 전역 리셋(* { margin:0; font:inherit ... })과 동일 내용의
   명시적 방어. 전역 리셋이 변경·제거되어도 헤딩 승격 요소의 픽셀이 변하지 않도록 보장한다.
   명시도 (0,1,1)이므로 기존 클래스 스타일(.kv-title 등, 0,2,0)이 항상 우선한다 */
.page-geo h1, .page-geo h2, .page-geo h3, .page-geo h4 { margin: 0; padding: 0; border: 0; font: inherit; color: inherit; }
/* default.css 전역 리셋(flex-shrink:0)을 원본 샘플의 브라우저 기본값(1)으로 복원.
   샘플이 명시적으로 flex-shrink:0을 준 곳은 각 클래스(.ico-* 등, 특이성 높음)와
   인라인 스타일이 그대로 유지되므로 영향 없음 */
.page-geo *, .page-geo *::before, .page-geo *::after { flex-shrink: 1; }

/* 원본 .page 컨테이너: 고정 1920 → 사이트에선 100% */
.page-geo .page { width: 100%; margin: 0 auto; }

/* =========================================================
   폼 유틸리티 (원본 <style>에서 이관)
   ========================================================= */
.page-geo .geo-input-box { display: flex; align-items: center; gap: 10px; width: 100%; padding: 16px 20px; border-radius: 8px; border: 1px solid transparent; box-sizing: border-box; background: var(--color-input-bg); }
.page-geo .geo-input-box.select { justify-content: space-between; }
.page-geo .geo-input-box.alt { background: #f1f1f1; }

/* 커스텀 셀렉트 드롭다운 (native select를 감싸 디자인 적용, JS 강화 시) */
.page-geo .geo-input-box.select { position: relative; cursor: pointer; }
.page-geo .geo-input-box.select.geo-enhanced select { display: none; }
.page-geo .geo-select-label { flex: 1 1 0%; min-width: 1px; font-size: 16px; letter-spacing: -0.32px; line-height: 1.4; color: var(--color-text-input); }
.page-geo .geo-select-label.is-placeholder { color: var(--color-text-sub); }
.page-geo .geo-select-caret { transition: transform .2s ease; }
.page-geo .geo-input-box.select.open .geo-select-caret { transform: rotate(180deg); }
.page-geo .geo-select-list { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; margin: 0; padding: 6px; list-style: none; background: #ffffff; border: 1px solid #e5e5e5; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.10); box-sizing: border-box; }
.page-geo .geo-input-box.select.open .geo-select-list { display: block; }
.page-geo .geo-select-list li { padding: 12px 14px; border-radius: 6px; font-size: 16px; letter-spacing: -0.32px; line-height: 1.4; color: var(--color-text-input); cursor: pointer; transition: background .15s ease; }
.page-geo .geo-select-list li:hover { background: var(--color-input-bg); }
.page-geo .geo-select-list li.sel { color: var(--color-primary); font-weight: 700; background: var(--color-input-bg); }
.page-geo .geo-input-box:focus-within { border-color: var(--color-text-input); }
.page-geo .geo-field { flex: 1 1 0%; min-width: 1px; width: 100%; border: 0; outline: none; background: transparent; font-family: var(--font-base); font-weight: 400; font-size: 16px; letter-spacing: -0.32px; line-height: 1.4; color: var(--color-text-input); padding: 0; }
.page-geo .geo-field::placeholder { color: var(--color-text-sub); }
/* 기능정의서 v0.2: 포커스 시점부터 Placeholder·입력 텍스트를 #333333으로 변경 (시각적 인지 강화) */
.page-geo .geo-field:focus { color: var(--color-text-input); }
.page-geo .geo-field:focus::placeholder { color: var(--color-text-input); }
/* 커스텀 셀렉트 열림 = 포커스 상태와 동일 취급: #333 보더 + 라벨 텍스트 #333 */
.page-geo .geo-input-box.select.open { border-color: var(--color-text-input); }
.page-geo .geo-input-box.select.open .geo-select-label { color: var(--color-text-input); }
.page-geo select.geo-field { appearance: none; -webkit-appearance: none; cursor: pointer; }
.page-geo select.geo-field:invalid { color: var(--color-text-sub); }
.page-geo select.geo-field option { color: var(--color-text-input); }
.page-geo .geo-check { width: 22px; height: 22px; margin: 0; flex-shrink: 0; accent-color: var(--color-primary); cursor: pointer; }

/* =========================================================
   공용 유틸리티 (여러 섹션 재사용)
   ========================================================= */
/* 아이콘 이미지 — 부모 박스를 꽉 채움 (파일 내 최다 반복) */
.page-geo .geo-ico-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.page-geo .geo-ico-img.cover { object-fit: cover; pointer-events: none; }
/* 부모 중앙 정렬 박스 (서브픽셀 보정/크기는 인라인 유지) */
.page-geo .geo-ico-center { position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); }
/* flex 채움 조각 */
.page-geo .geo-flex1 { flex: 1 0 0%; min-width: 1px; }
/* 아이콘 박스 크기 */
.page-geo .ico-22 { position: relative; flex-shrink: 0; width: 22px; height: 22px; }
.page-geo .ico-24 { position: relative; flex-shrink: 0; width: 24px; height: 24px; }
.page-geo .ico-32 { position: relative; flex-shrink: 0; width: 32px; height: 32px; }
.page-geo .ico-48 { position: relative; flex-shrink: 0; width: 48px; height: 48px; }
.page-geo .ico-7-8 { position: relative; flex-shrink: 0; width: 7px; height: 8px; }
.page-geo .ico-8-13 { position: relative; flex-shrink: 0; width: 8px; height: 13px; }
/* 그라디언트 텍스트 */
.page-geo .txt-grad-cta { background-clip: text; -webkit-background-clip: text; color: transparent; background-image: var(--grad-cta); }
.page-geo .txt-grad-heading { background-clip: text; -webkit-background-clip: text; color: transparent; background-image: var(--grad-heading); }
/* CTA 알약 버튼 */
.page-geo .geo-btn { display: flex; align-items: center; border-radius: 100px; cursor: pointer; }
.page-geo .geo-btn-label { font-size: 20px; font-weight: 700; color: #ffffff; letter-spacing: -0.4px; line-height: 1.4; white-space: nowrap; }
.page-geo .geo-btn-arrow { position: relative; display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; transform: rotate(-90deg); }
/* 개인정보 동의 라인 */
.page-geo .geo-agree { display: flex; align-items: center; gap: 6px; }
.page-geo .geo-agree-label { cursor: pointer; margin: 0; font-size: 16px; letter-spacing: -0.32px; line-height: 1.4; white-space: nowrap; color: var(--color-text-sub); }

/* =========================================================
   01 KV
   ========================================================= */
.page-geo .geo-kv { position: relative; width: 100%; height: 960px; overflow: hidden; background: var(--color-bg-dark); }
.page-geo .kv-tabs { position: absolute; left: 50%; top: 104px; display: flex; align-items: center; justify-content: center; gap: 30px; height: 56px; padding-left: 32px; padding-right: 32px; border-radius: 100px; font-size: 18px; font-weight: 700; letter-spacing: -0.54px; line-height: 1.2; text-align: center; white-space: nowrap; transform: translateX(-50%); background: var(--color-accent); }
.page-geo .kv-tab { flex-shrink: 0; color: #ffffff; }
.page-geo .kv-tab.off { color: rgba(255,255,255,0.3); }
.page-geo .kv-inner { position: absolute; left: 50%; top: 214px; display: flex; align-items: center; gap: 211px; transform: translateX(-50%); }
.page-geo .kv-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 30px; flex-shrink: 0; }
.page-geo .kv-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; white-space: nowrap; }
.page-geo .kv-heading-top { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; font-weight: 700; }
.page-geo .kv-eyebrow { font-size: 22px; color: #ffffff; letter-spacing: -0.44px; line-height: 1.5; }
.page-geo .kv-title { font-size: 64px; letter-spacing: -1.28px; line-height: 1.3; }
.page-geo .kv-desc { font-weight: 400; font-size: 28px; letter-spacing: -0.84px; line-height: 1.4; color: var(--color-text-gray); }
.page-geo .kv-cta-outline { gap: 12px; padding: 20px 42px; border: 2px solid rgba(255,255,255,0.2); background-color: transparent; }
.page-geo .kv-form-card { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; width: 480px; padding: 28px 30px; border-radius: 16px; background-color: #ffffff; flex-shrink: 0; }
.page-geo .kv-form-title { display: flex; flex-direction: column; align-items: flex-start; width: 100%; font-weight: 700; white-space: nowrap; }
.page-geo .kv-form-title .sm { font-size: 20px; letter-spacing: -0.4px; line-height: 1.4; color: var(--color-bg-dark); }
.page-geo .kv-form-title .lg { font-size: 28px; letter-spacing: -0.56px; line-height: 1.4; color: var(--color-primary); }
.page-geo .kv-form-body { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; width: 100%; }
.page-geo .kv-form-fields { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; width: 100%; }
.page-geo .kv-form-inputs { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; width: 100%; }
.page-geo .kv-agree { display: flex; align-items: center; width: 100%; }
.page-geo .kv-form-cta { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; }
.page-geo .kv-cta-submit { justify-content: center; gap: 4px; width: 100%; padding: 16px 20px; border: 0; background-image: var(--grad-cta); }
.page-geo .kv-form-note { font-size: 14px; letter-spacing: -0.28px; line-height: 1.4; white-space: nowrap; color: var(--color-text-caption); }

/* =========================================================
   02 로고 스트립
   ========================================================= */
.page-geo .geo-logos { position: relative; width: 100%; height: 146px; overflow: hidden; background-color: #ffffff; }
.page-geo .geo-logos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; max-width: none; }

/* =========================================================
   공용: 섹션 셸 (03~11)
   ========================================================= */
.page-geo .geo-section { display: flex; flex-direction: column; align-items: center; padding-top: 80px; padding-bottom: 80px; width: 100%; }
.page-geo .geo-section.pad-70 { padding-top: 70px; padding-bottom: 70px; }
.page-geo .geo-section.bg-light { background: var(--color-bg-light); }
.page-geo .geo-section.bg-dark { background: var(--color-bg-dark); }
.page-geo .geo-section.bg-dark2 { background: var(--color-bg-dark2); }
.page-geo .geo-section.bg-white { background-color: #ffffff; }
.page-geo .geo-section.bg-primary { background: var(--color-primary); }
.page-geo .geo-section.is-relative { position: relative; overflow: hidden; }
.page-geo .geo-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 40px; width: 1120px; }
.page-geo .geo-inner.w-1140 { width: 1140px; }
.page-geo .geo-inner.is-relative { position: relative; }
/* 아이브로 + 50px 타이틀 */
.page-geo .geo-title-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; }
.page-geo .geo-eyebrow { width: 100%; font-weight: 700; font-size: 20px; letter-spacing: -0.4px; line-height: 1.2; color: var(--color-text-gray); font-family: var(--font-en); }
.page-geo .geo-eyebrow.upper { text-transform: uppercase; }
.page-geo .geo-title { display: flex; flex-direction: column; align-items: flex-start; width: 100%; font-weight: 700; font-size: 50px; letter-spacing: -1px; line-height: 1.3; }
.page-geo .geo-title.nowrap { white-space: nowrap; }
/* .page-geo .geo-title.gap-10 { gap: 10px; } */
.page-geo .geo-title-row { display: flex; align-items: flex-start; width: 100%; }
.page-geo .geo-title-row.gap-10 { gap: 10px; }

/* =========================================================
   공용: 텍스트 유틸리티
   ========================================================= */
.page-geo .geo-t14 { font-size: 14px; letter-spacing: -0.42px; line-height: 1.4; }
.page-geo .geo-t14.w400 { font-weight: 400; }
.page-geo .geo-t14.gray { color: var(--color-text-gray); }
.page-geo .geo-t14.caption { color: var(--color-text-caption); }
.page-geo .geo-t14.bold-primary { font-weight: 700; color: var(--color-primary); }
.page-geo .geo-h28 { font-weight: 700; font-size: 28px; letter-spacing: -0.56px; line-height: 1.4; }
.page-geo .geo-pill-num { font-weight: 700; font-size: 16px; color: #ffffff; letter-spacing: -0.32px; line-height: 1.4; white-space: nowrap; }
.page-geo .geo-pill-num.on-light { color: var(--color-primary); }
.page-geo .ico-48.click { cursor: pointer; }

/* =========================================================
   03 THE PROBLEM
   ========================================================= */
.page-geo .stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; height: 248px; width: 100%; }
.page-geo .stat-card { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 30px; border-radius: 16px; background-color: #ffffff; overflow: hidden; }
.page-geo .stat-card.is-primary { background: var(--color-primary); }
.page-geo .stat-head { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.page-geo .stat-head.bold { font-weight: 700; }
.page-geo .stat-head.white { color: #ffffff; }
.page-geo .stat-label { width: 100%; font-size: 18px; letter-spacing: -0.54px; line-height: 1.4; color: var(--color-text-caption); }
.page-geo .geo-stat-num { letter-spacing: -1.44px; line-height: 1.3; }
.page-geo .geo-stat-num.navy { width: 100%; color: var(--color-navy); }
.page-geo .geo-stat-num .lg { font-size: 48px; }
.page-geo .geo-stat-num .sm { font-size: 32px; }
.page-geo .stat-src { width: 100%; text-align: right; font-weight: 400; font-size: 14px; letter-spacing: -0.42px; line-height: 1.4; color: var(--color-text-gray); }
/* =========================================================
   04 SEO vs GEO — 비교 테이블
   ========================================================= */
.page-geo .geo-col-16 { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
.page-geo .cmp-thead { display: flex; align-items: flex-start; justify-content: center; gap: 20px; height: 58px; width: 100%; border-radius: 10px; }
.page-geo .cmp-tr { display: flex; align-items: flex-start; justify-content: center; gap: 20px; height: 56px; width: 100%; }
.page-geo .cmp-label { display: flex; align-items: center; justify-content: center; height: 100%; border-radius: 8px; flex-shrink: 0; }
.page-geo .cmp-label.filled { background: var(--color-row); }
.page-geo .cmp-label p { width: 220px; font-weight: 700; font-size: 18px; text-align: center; letter-spacing: -0.36px; line-height: 1.4; color: var(--color-text-gray); }
.page-geo .cmp-seo { display: flex; flex: 1 0 0%; min-width: 1px; align-items: center; justify-content: center; height: 100%; border-radius: 8px; border-width: 1px; border-style: dashed; box-sizing: border-box; border-color: var(--color-text-gray); }
.page-geo .cmp-seo p { flex: 1 0 0%; min-width: 1px; font-weight: 400; font-size: 18px; text-align: center; letter-spacing: -0.36px; line-height: 1.4; color: var(--color-text-gray); }
.page-geo .cmp-geo { display: flex; flex: 1 0 0%; min-width: 1px; align-items: center; justify-content: center; height: 100%; border-radius: 8px; border-width: 2px; border-style: solid; box-sizing: border-box; border-color: var(--color-primary); }
.page-geo .cmp-geo p { flex: 1 0 0%; min-width: 1px; font-weight: 700; font-size: 18px; text-align: center; color: #ffffff; letter-spacing: -0.36px; line-height: 1.4; }
/* thead 변형: 20px 텍스트, GEO칸 1px 테두리 + 그라디언트 배경 */
.page-geo .cmp-thead .cmp-seo p, .page-geo .cmp-thead .cmp-geo p { font-size: 20px; letter-spacing: -0.4px; }
.page-geo .cmp-thead .cmp-geo { border-width: 1px; background-image: var(--grad-cta); }

/* 다크 그래프 패널 — 바 3개 반복부 */
.page-geo .graph-bar { position: relative; width: 124px; border-top-left-radius: 16px; border-top-right-radius: 16px; flex-shrink: 0; }
.page-geo .graph-cap { position: absolute; left: 50%; top: 25px; display: flex; flex-direction: column; align-items: center; color: #ffffff; transform: translateX(-50%); }
.page-geo .graph-cap .t { width: 100%; font-weight: 400; font-size: 16px; letter-spacing: -0.48px; line-height: 1.4; }
.page-geo .graph-cap .v { width: 100%; font-weight: 700; text-align: center; letter-spacing: -0.6px; line-height: 1.4; }

/* =========================================================
   05 CORE VALUE
   ========================================================= */
.page-geo .core-cards { display: flex; align-items: center; gap: 30px; width: 100%; }
.page-geo .core-card { position: relative; flex: 1 0 0%; min-width: 1px; height: 440px; border-radius: 16px; background-color: #ffffff; overflow: hidden; }
.page-geo .core-card.blue { background: var(--color-primary); }
.page-geo .core-txt { position: absolute; left: 40px; top: 40px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; width: 345px; }
.page-geo .core-mockup { position: absolute; right: 32px; top: 172px; z-index: 0; width: 200px; height: 236px; }
.page-geo .core-mockup img { display: block; width: 100%; height: 100%; }

/* =========================================================
   06 FULL FUNNEL
   ========================================================= */
.page-geo .funnel-card { box-sizing: border-box; display: flex; flex: 1 0 0%; min-width: 1px; flex-direction: column; align-items: center; justify-content: space-between; height: 300px; padding: 32px; border-radius: 16px; background-color: #ffffff; overflow: hidden; }
.page-geo .funnel-card.blue { background: var(--color-primary); }
.page-geo .funnel-card.dark { background: var(--color-bg-dark); }
.page-geo .funnel-top { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.page-geo .funnel-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; padding-left: 12px; padding-right: 12px; padding-top: 4px; padding-bottom: 4px; border-radius: 100px; background: var(--color-text-gray); }
.page-geo .funnel-badge.wh { background-color: #ffffff; }
.page-geo .funnel-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; text-align: center; }
.page-geo .funnel-cat { width: 100%; font-size: 14px; letter-spacing: -0.28px; line-height: 1.4; }
.page-geo .funnel-cat.gray { font-weight: 400; color: var(--color-text-caption); }
.page-geo .funnel-cat.lt { font-weight: 400; color: #eeeeee; }
.page-geo .funnel-name { width: 100%; font-size: 20px; letter-spacing: -0.4px; line-height: 1.4; }
.page-geo .funnel-name.hd { font-weight: 700; color: var(--color-text-heading); }
.page-geo .funnel-name.wh { font-weight: 700; color: #ffffff; }
/* h4 승격으로 내부 p→span 전환 시에도 기존 p의 블록 적층(2줄)을 유지하기 위한 규칙 */
.page-geo .funnel-name span { display: block; }
.page-geo .funnel-ico { position: relative; width: 96px; height: 96px; border-radius: 16px; overflow: hidden; }
.page-geo .funnel-ico.has-bg { background: #f1f1f1; }
/* 하단 구간 브래킷 */
.page-geo .funnel-seg { width: 399px; box-sizing: border-box; border-width: 0; display: flex; align-items: center; justify-content: center; padding-top: 18px; border-top-width: 2px; border-style: solid; overflow: hidden; flex-shrink: 0; }
.page-geo .funnel-seg p { font-size: 20px; text-align: center; letter-spacing: -0.4px; line-height: 1.4; white-space: nowrap; }
.page-geo .funnel-seg.gray { border-color: var(--color-text-gray); }
.page-geo .funnel-seg.gray p { color: var(--color-text-gray); }
.page-geo .funnel-seg.blue { border-color: var(--color-primary); }
.page-geo .funnel-seg.blue p { color: var(--color-primary); }
/* 로우형 타이틀 (06/07/09) */
.page-geo .geo-title.row { flex-direction: row; }

/* =========================================================
   07 PROCESS (캐러셀)
   ========================================================= */
.page-geo .proc-arrow { position: relative; width: 56px; height: 56px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.page-geo .proc-card { position: relative; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; width: 356.8px; flex-shrink: 0; height: 340px; padding: 32px; border-radius: 16px; background-color: #ffffff; overflow: hidden; box-sizing: border-box; transition: opacity .3s; }
.page-geo .proc-body { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; }
.page-geo .proc-badge { display: flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: 100px; background-color: var(--color-primary); }
.page-geo .proc-name { white-space: nowrap; color: var(--color-bg-dark); }
.page-geo .proc-desc { font-weight: 400; font-size: 18px; letter-spacing: -0.36px; line-height: 1.4; white-space: nowrap; color: var(--color-text-caption); }
/* 아이콘 프레임: 피그마 디자인 기준 카드 우하단 고정
   (+버튼 유무와 무관하게 5개 카드의 아이콘 베이스라인 동일) */
.page-geo .proc-ico { position: absolute; right: 32px; bottom: 32px; width: 128px; height: 128px; border-radius: 16px; overflow: hidden; }

/* =========================================================
   08 PROOF, NOT PROMISES
   ========================================================= */
.page-geo .proof-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 24px; width: 100%; padding: 30px; border-radius: 16px; box-sizing: border-box; background: #f1f1f1; }
.page-geo .proof-banner { grid-column: span 2 / span 2; display: flex; flex-direction: column; align-items: flex-start; padding-top: 22px; padding-bottom: 22px; border-radius: 16px; overflow: hidden; }
.page-geo .proof-banner.dashed { background-color: #ffffff; border-width: 1px; border-style: dashed; box-sizing: border-box; border-color: var(--color-text-gray); }
.page-geo .proof-banner.teal { background: #80d8e1; }
.page-geo .proof-banner-txt { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; line-height: 1.4; white-space: nowrap; }
.page-geo .proof-b-tit { font-weight: 700; font-size: 29px; letter-spacing: -0.58px; color: var(--color-bg-dark); }
.page-geo .proof-b-sub { font-size: 20px; letter-spacing: -0.6px; }
.page-geo .proof-chart { position: relative; height: 530px; border-radius: 16px; overflow: hidden; }
.page-geo .proof-chart.dark { background: var(--color-bg-dark); }
.page-geo .proof-chart.blue { background: var(--color-primary); }
.page-geo .proof-chart-txt { z-index: 1; position: absolute; left: 40px; top: 40px; display: flex; flex-direction: column; align-items: flex-start; font-weight: 700; }
.page-geo .geo-chart-num { width: 202px; letter-spacing: -0.96px; line-height: 1.2; }
.page-geo .geo-chart-num .lg { font-size: 48px; }
.page-geo .geo-chart-num .sm { font-size: 32px; }
.page-geo .proof-chart-img { z-index: 0; position: absolute; left: 40px; }
.page-geo .proof-chart-img img { display: block; width: 100%; height: 100%; }

/* =========================================================
   09 PACKAGE (요금제 3종)
   ========================================================= */
.page-geo .pkg-card { display: flex; flex: 1 0 0%; min-width: 1px; flex-direction: column; align-items: flex-start; justify-content: center; padding-left: 32px; padding-right: 32px; padding-top: 40px; padding-bottom: 40px; border-radius: 16px; border-width: 1px; border-style: solid; overflow: hidden; box-sizing: border-box; background: var(--color-bg-dark); border-color: #4f525d; }
.page-geo .pkg-card.hot { border-width: 2px; border-color: var(--color-primary); }
.page-geo .pkg-col { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; }
.page-geo .pkg-head { border-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; padding-bottom: 14px; border-bottom-width: 1px; border-bottom-style: solid; border-style: solid; white-space: nowrap; border-color: rgba(255,255,255,0.2); }
.page-geo .pkg-cat { font-weight: 400; font-size: 14px; line-height: 1.4; color: var(--color-text-sub); font-family: var(--font-en); }
.page-geo .pkg-tier { font-weight: 700; font-size: 32px; color: #ffffff; letter-spacing: -0.64px; line-height: 1.3; }
.page-geo .pkg-list { padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; margin: 0; list-style: none; }
.page-geo .pkg-li { display: flex; align-items: flex-start; gap: 6px; }
.page-geo .pkg-li.tight { align-items: center; gap: 2px; }
.page-geo .pkg-li-txt { font-size: 18px; letter-spacing: -0.54px; line-height: 1.4; white-space: nowrap; }
.page-geo .pkg-li-txt.on { font-weight: 700; color: #ffffff; }
.page-geo .pkg-li-txt.off { font-weight: 400; color: var(--color-text-gray); }
.page-geo .pkg-cta { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding-top: 16px; padding-bottom: 16px; border-radius: 100px; border: 0; cursor: pointer; background: #2d313d; }
.page-geo .pkg-cta.blue { background: var(--color-primary); }

/* =========================================================
   10 FAQ (아코디언)
   ========================================================= */
.page-geo .faq-item { display: flex; flex-direction: column; align-items: stretch; width: 100%; border-radius: 8px; border: 1px solid #dddddd; box-sizing: border-box; overflow: hidden; }
.page-geo .faq-item.on { border: 2px solid var(--color-primary); }
.page-geo .faq-q { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 22px 20px; cursor: pointer; }
.page-geo .faq-item.on .faq-q { padding: 22px 24px; }
.page-geo .faq-q-left { display: flex; align-items: center; gap: 12px; }
.page-geo .faq-badge { position: relative; flex-shrink: 0; width: 40px; height: 40px; border-radius: 100px; background: #cccccc; }
.page-geo .faq-badge.a { background-image: linear-gradient(103deg, #80d8e1 0%, #2851ff 97%); }
.page-geo .faq-badge-letter { position: absolute; left: 50%; top: calc(50% - 12px); width: 20px; font-weight: 700; font-size: 18px; text-align: center; color: #ffffff; letter-spacing: -0.36px; line-height: 1.4; transform: translateX(-50%); font-family: var(--font-en); }
.page-geo .faq-q-txt { font-weight: 700; font-size: 22px; letter-spacing: -0.44px; line-height: 1.4; white-space: nowrap; color: #222222; }
/* 토글 아이콘 (닫힘=회색 ∨ / 열림=파랑 ∧, 두 SVG 스왑) */
.page-geo .faq-toggle { position: relative; flex-shrink: 0; width: 32px; height: 32px; }
.page-geo .faq-toggle .ic-open { display: none; }
.page-geo .faq-item.on .faq-toggle .ic-closed { display: none; }
.page-geo .faq-item.on .faq-toggle .ic-open { display: block; }
/* 답변 영역 (jQuery slideToggle 대상 — 기본 닫힘) */
.page-geo .faq-a { display: none; padding: 0 24px 22px; box-sizing: border-box; }
.page-geo .faq-a-inner { display: flex; align-items: flex-start; gap: 10px; }
.page-geo .faq-a-txt { flex: 1 0 0%; min-width: 1px; font-weight: 400; font-size: 16px; letter-spacing: -0.32px; line-height: 1.4; color: var(--color-text-caption); }

/* =========================================================
   11 SECURE YOUR SPOT (하단 CTA)
   ========================================================= */
.page-geo .secure-inner { display: flex; align-items: flex-start; justify-content: center; gap: 32px; width: 1120px; }
.page-geo .secure-li { display: flex; align-items: flex-start; justify-content: center; gap: 6px; border-radius: 8px; }
.page-geo .secure-li p { font-weight: 400; font-size: 18px; color: #ffffff; letter-spacing: -0.36px; line-height: 1.4; white-space: nowrap; }
.page-geo .secure-form { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; width: 560px; padding: 24px; border-radius: 16px; background-color: #ffffff; flex-shrink: 0; box-sizing: border-box; }

/* =========================================================
   공용: 16px 텍스트 (모달 스텝 설명 등)
   ========================================================= */
.page-geo .geo-t16 { font-size: 16px; letter-spacing: -0.48px; line-height: 1.4; white-space: nowrap; }
.page-geo .geo-t16.w400 { font-weight: 400; }
.page-geo .geo-t16.gray { color: var(--color-text-gray); }
.page-geo .geo-t16.heading { color: var(--color-text-heading); }
.page-geo .geo-t14.sub { font-weight: 700; color: var(--color-text-sub); }

/* =========================================================
   모달 공통 (display 토글은 기존 JS의 인라인 style이 담당)
   ========================================================= */
.page-geo .geo-modal { display: none; position: fixed; inset: 0; z-index: 1000; align-items: center; justify-content: center; background: rgba(0,0,0,0.6); }
.page-geo .geo-modal-popup { position: relative; display: flex; flex-direction: column; align-items: center; gap: 32px; padding: 40px 32px; border-radius: 24px; background-color: #ffffff; box-sizing: border-box; }
.page-geo .geo-modal-head { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding-bottom: 24px; border-bottom: 1px solid #dddddd; }
.page-geo .geo-modal-title { flex: 1 0 0%; min-width: 1px; font-weight: 700; font-size: 30px; letter-spacing: -0.6px; line-height: 1.4; color: #000000; }
.page-geo .geo-modal-close { position: absolute; right: 0; top: 0; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.page-geo .geo-modal-body { display: flex; flex-direction: column; align-items: center; gap: 16px; }
/* 스텝 셀 (schema/capsule/funnel) */
.page-geo .geo-step { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 24px 0; border-radius: 12px; background-color: var(--color-bg-light); }
.page-geo .geo-step-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 640px; text-align: center; }
/* 탭 (schema/capsule) */
.page-geo .geo-modal-tab { display: flex; flex: 1 0 0%; min-width: 1px; align-items: center; justify-content: center; height: 100%; border-radius: 12px; }
.page-geo .geo-modal-tab p { font-size: 18px; text-align: center; letter-spacing: -0.36px; white-space: nowrap; }
.page-geo .geo-modal-tab.active { background-color: var(--color-primary); }
.page-geo .geo-modal-tab.active p { font-weight: 700; color: #ffffff; }
.page-geo .geo-modal-tab.idle { cursor: pointer; border: 1px solid var(--color-text-gray); background-color: #ffffff; box-sizing: border-box; }
.page-geo .geo-modal-tab.idle p { font-weight: 400; color: var(--color-text-gray); }
/* 리드 텍스트 (schema/capsule) */
.page-geo .geo-modal-lead { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; letter-spacing: -0.48px; }
/* 저니 행 (journey) */
.page-geo .jn-row { display: flex; align-items: center; gap: 16px; width: 100%; }
.page-geo .jn-label { display: flex; align-items: center; justify-content: center; height: 100%; border-radius: 12px; flex-shrink: 0; }
.page-geo .jn-label-txt { display: flex; flex-direction: column; justify-content: center; height: 100%; width: 116px; font-size: 18px; text-align: center; color: #ffffff; letter-spacing: -0.36px; }
.page-geo .jn-steps { display: flex; align-items: center; gap: 12px; width: 720px; text-align: center; }
.page-geo .jn-old { display: flex; flex: 1 0 0%; min-width: 1px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; height: 100%; padding: 24px 0; border-radius: 20px; border: 1px dashed #dddddd; background-color: #f1f1f1; box-sizing: border-box; }
.page-geo .jn-new { display: flex; flex: 1 0 0%; min-width: 1px; flex-direction: column; align-items: center; gap: 5px; padding: 24px 0; border-radius: 12px; border: 1px solid var(--color-primary); font-weight: 700; color: var(--color-primary); box-sizing: border-box; }
/* funnel 모달 지표 라벨 */
.page-geo .fn-label { display: flex; flex-direction: column; align-items: flex-start; width: 100%; font-weight: 700; color: var(--color-primary); }

/* =========================================================
   커스텀 알럿 모달 (폼 검증 / 제출 안내 — 디자인 제공)
   ========================================================= */
/* 수정 요청: 중앙 출력 → 상단 출력. 가상 키패드가 최대로 올라와도 얼럿이 온전히 보이도록
   화면 최상단과 정중앙 사이(상단에서 약 15vh)에 배치 */
.geo-alert { display: none; position: fixed; inset: 0; z-index: 1100; align-items: flex-start; justify-content: center; padding: 20px; background: rgba(0,0,0,0.6); word-break: keep-all; }
.geo-alert.on { display: flex; }
.geo-alert .alert-box { position: relative; width: 100%; max-width: 380px; margin-top: 15vh; padding: 48px 28px 28px; border-radius: 16px; background: #ffffff; box-sizing: border-box; text-align: center; }
.geo-alert .alert-close { position: absolute; right: 18px; top: 16px; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; font-size: 20px; line-height: 1; color: #999999; }
.geo-alert .alert-msg { text-align: left; font-family: 'Pretendard', '맑은 고딕', sans-serif; font-size: 15px; line-height: 1.6; letter-spacing: -0.3px; color: #555555; white-space: pre-line; word-break: keep-all; }
.geo-alert .alert-ok { display: inline-block; margin-top: 26px; min-width: 130px; padding: 13px 24px; border-radius: 100px; border: 1px solid #cccccc; background: #ffffff; cursor: pointer; font-family: 'Pretendard', '맑은 고딕', sans-serif; font-size: 15px; font-weight: 700; letter-spacing: -0.3px; color: #333333; }

/* =========================================================
   반응형 — 모바일 (디자인 원본: geo/sample/mobile.html, 360px 기준)
   원칙
   - 미디어 밖 추가 규칙은 PC에서 아무것도 그리지 않는 것만 둔다(.mob-br 숨김)
   - 콘텐츠 컬럼은 360px 중앙 고정, 섹션 배경 밴드는 100% 풀폭
   - 태블릿(720~1023)은 common.css의 전역 web/mob 토글을 되돌려 PC 레이아웃 유지
   - 기존 인라인 스타일은 수정하지 않고 모바일에서만 !important로 덮는다
   ========================================================= */
/* 모바일 전용 줄바꿈: PC/태블릿에서는 숨김 */
.page-geo .mob-br { display: none; }

/* --- 태블릿 복원 (720~1023): common.css 전역 web/mob 토글 상쇄
     (그래프·비교표·퍼널·캐러셀·모달은 파일 말미 '태블릿 보정' 블록이
      다시 모바일 컴포넌트로 스왑한다) --- */
@media (min-width: 720px) and (max-width: 1023px) {
	.page-geo .mob-view { display: none !important; }
	.page-geo .web-view { display: block !important; }
}

/* --- 모바일 (max-width:719) --- */
@media (max-width: 719px) {
	.page-geo .web-view { display: none !important; }
	.page-geo .mob-view { display: block !important; }
	.page-geo .mob-br { display: inline; }

	/* ---- 공용 셸: 배경 밴드 100% + 콘텐츠 컬럼 360 중앙(좌우 28 → 내용 304) ---- */
	.page-geo .geo-inner,
	.page-geo .geo-inner.w-1140 { width: 360px; max-width: 100%; padding: 0 28px; box-sizing: border-box; gap: 32px; }
	.page-geo .geo-eyebrow { font-size: 18px; letter-spacing: -0.36px; }
	.page-geo .geo-title { font-size: 32px; letter-spacing: -0.64px; }

	/* ---- 01 KV (샘플 1266 중 내장 GNB 72 제외 → 공통 헤더가 그 역할) ---- */
	.page-geo .geo-kv { height: 1194px; }
	.page-geo .kv-tabs { top: 0; width: 100%; height: 56px; gap: 28px; padding-left: 24px; padding-right: 24px; border-radius: 0; font-size: 16px; letter-spacing: -0.48px; box-sizing: border-box; }
	.page-geo .kv-inner { top: 136px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 48px; width: 304px; }
	.page-geo .kv-txt { width: 100%; }
	.page-geo .kv-eyebrow { font-size: 20px; letter-spacing: -0.4px; }
	.page-geo .kv-title { font-size: 40px; letter-spacing: -0.8px; }
	.page-geo .kv-desc { font-size: 18px; letter-spacing: -0.54px; }
	/* 샘플의 3줄 배치를 위해 두 p를 인라인 병합 + mob-br로 재줄바꿈 */
	.page-geo .kv-desc p { display: inline; }
	.page-geo .kv-desc p + p::before { content: ' '; }
	.page-geo .kv-cta-outline .geo-btn-label { font-size: 18px; letter-spacing: -0.36px; }
	.page-geo .kv-form-card { width: 100%; padding: 24px 20px; }
	.page-geo .kv-form-title { white-space: normal; }
	.page-geo .kv-form-title .sm { font-size: 18px; letter-spacing: -0.36px; white-space: nowrap; }
	.page-geo .kv-form-title .lg { font-size: 22px; letter-spacing: -0.44px; }
	.page-geo .geo-input-box { padding: 14px 16px; }
	.page-geo .geo-field { font-size: 14px; letter-spacing: -0.28px; }
	.page-geo .geo-select-label { font-size: 14px; letter-spacing: -0.28px; }
	.page-geo .geo-select-list li { font-size: 14px; letter-spacing: -0.28px; }
	.page-geo .geo-agree-label { font-size: 14px; letter-spacing: -0.28px; white-space: normal; }
	.page-geo .kv-cta-submit .geo-btn-label { font-size: 18px; letter-spacing: -0.36px; }
	.page-geo .kv-form-note { white-space: normal; text-align: center; width: 100%; }

	/* ---- 02 로고 스트립 (모바일 전용 통이미지 360x106) ---- */
	.page-geo .geo-logos { height: 106px; }
	.page-geo .geo-logos .mob-view { position: static; display: block !important; width: 360px; max-width: 100%; height: 100%; margin: 0 auto; object-fit: cover; }
}

/* --- 모바일·태블릿 공용: 03 THE PROBLEM / 04 SEO vs GEO
       (태블릿에서 되돌릴 항목은 파일 말미 '태블릿 보정' 블록이 재정의) --- */
@media (max-width: 1023px) {
	/* PC 전용 조각(선행 &nbsp; 등) 숨김 유틸 */
	.page-geo .mob-hide { display: none; }

	/* ---- 03 타이틀: 2행(각 2조각) → 4행 세로 나열 ---- */
	.page-geo .geo-title.nowrap:not(.row) .geo-title-row { flex-direction: column; gap: 0; }

	/* ---- 03 통계 카드: 4열 → 1열 (샘플 722px 그리드) ---- */
	.page-geo .stat-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(4, minmax(0, 1fr)); height: 722px; }
	.page-geo .stat-card { padding: 24px; }
	/* 라벨 2줄(p 2개) → 1줄 병합 */
	.page-geo .stat-head div p { display: inline; }
	.page-geo .stat-head div p + p::before { content: ' '; }
	.page-geo .geo-stat-num .lg { font-size: 40px; }
	.page-geo .stat-src { font-size: 12px; letter-spacing: -0.36px; }
	.page-geo .stat-card.is-primary .geo-t14 { font-size: 12px; letter-spacing: -0.36px; }
	/* 샘플의 음수 마진 보존 — 아이콘 줄을 출처 옆으로 끌어올림 */
	.page-geo .stat-card.is-primary .stat-head.white { margin-bottom: -24.5px; }

	/* ---- 03 전환율 비교 패널 (mob-view 전용, 샘플 31:15215) ---- */
	.page-geo .geo-convpanel { position: relative; width: 100%; height: 490px; border-radius: 16px; overflow: hidden; background-color: var(--color-navy); }
	.page-geo .geo-convpanel-text { position: absolute; left: 24px; top: 32px; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
	.page-geo .geo-convpanel-title { font-weight: 700; font-size: 22px; line-height: 1.4; letter-spacing: -0.44px; white-space: nowrap; color: #ffffff; }
	.page-geo .geo-convpanel-desc { font-weight: 400; font-size: 18px; line-height: 1.4; letter-spacing: -0.54px; color: var(--color-text-gray); }
	.page-geo .geo-convpanel-src { font-weight: 300; font-size: 14px; line-height: 1.4; letter-spacing: -0.42px; white-space: nowrap; color: var(--color-text-gray); }
	.page-geo .geo-bars { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 0; display: flex; align-items: flex-end; gap: 12px; width: 256px; margin: 0; padding: 0; list-style: none; }
	.page-geo .geo-bar { position: relative; flex: 1 0 0%; min-width: 1px; border-top-left-radius: 16px; border-top-right-radius: 16px; }
	.page-geo .geo-bar--organic { height: 140px; background-image: linear-gradient(to bottom, #333333, rgba(51,51,51,0) 88%); }
	.page-geo .geo-bar--paid    { height: 185px; background-image: linear-gradient(to bottom, #555555, rgba(85,85,85,0) 84%); }
	.page-geo .geo-bar--ai      { height: 251px; background-image: linear-gradient(to bottom, #2851ff, rgba(40,81,255,0) 93%); }
	.page-geo .geo-bar-cap { position: absolute; left: 50%; top: 20px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; text-align: center; color: #ffffff; }
	.page-geo .geo-bar-name { width: 100%; font-weight: 400; font-size: 16px; line-height: 1.4; letter-spacing: -0.48px; white-space: nowrap; }
	.page-geo .geo-bar-val { width: 100%; font-weight: 700; line-height: 1.4; letter-spacing: -0.6px; }
	.page-geo .geo-bar-val .geo-num { font-size: 24px; }
	.page-geo .geo-bar-val .geo-unit { font-size: 14px; }

	/* ---- 04 타이틀/주석 (인라인 스타일 상쇄) ---- */
	/* 타이틀 행간: 피그마 MO 실측 0px (PC는 10px 유지 — 43:24186 Strong h126 = 84+42) */
	.page-geo .geo-title.gap-10 { gap: 0; }
	.page-geo .vs-eyebrow { font-size: 18px !important; letter-spacing: -0.36px !important; }
	.page-geo .vs-note { font-size: 14px !important; letter-spacing: -0.28px !important; }

	/* ---- 04 비교표 (mob-view table, 샘플 31:15242) ---- */
	.page-geo .geo-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; }
	.page-geo .geo-cmp.mob-view { display: flex !important; }
	.page-geo .geo-cmp { flex-direction: column; gap: 12px; width: 100%; border-collapse: separate; border-spacing: 0; }
	.page-geo .geo-cmp thead { display: block; width: 100%; }
	.page-geo .geo-cmp tbody { display: flex; flex-direction: column; gap: 16px; height: 643px; width: 100%; }
	.page-geo .geo-cmp tr { display: flex; align-items: stretch; justify-content: center; gap: 8px; width: 100%; }
	.page-geo .geo-cmp .geo-cmp-hrow { height: 58px; }
	.page-geo .geo-cmp tbody tr { flex: 1 0 0%; min-height: 1px; }
	.page-geo .geo-cmp th, .page-geo .geo-cmp td { display: flex; align-items: center; justify-content: center; text-align: center; border-radius: 8px; padding: 0; }
	.page-geo .geo-cmp-c1, .page-geo .geo-cmp-rh { width: 64px; flex-shrink: 0; font-weight: 700; font-size: 18px; line-height: 1.4; letter-spacing: -0.36px; color: var(--color-text-gray); }
	.page-geo .geo-cmp-rh { background-color: var(--color-row); }
	.page-geo .geo-cmp-h, .page-geo .geo-cmp-td { flex: 1 0 0%; min-width: 1px; border-width: 1px; border-style: solid; border-color: transparent; }
	.page-geo .geo-cmp-h { font-size: 18px; line-height: 1.4; letter-spacing: -0.36px; }
	.page-geo .geo-cmp-h--seo { font-weight: 400; border-style: dashed; border-color: var(--color-text-gray); color: var(--color-text-gray); }
	.page-geo .geo-cmp-h--geo { font-weight: 700; border-color: var(--color-primary); background-image: linear-gradient(108deg, #80d8e1 8%, #2851ff 91%); color: #ffffff; }
	.page-geo .geo-cmp-td { font-size: 16px; line-height: 1.4; letter-spacing: -0.32px; }
	.page-geo .geo-cmp-td--seo { font-weight: 400; border-style: dashed; border-color: var(--color-text-gray); color: var(--color-text-gray); }
	.page-geo .geo-cmp-td--geo { font-weight: 700; border-width: 2px; border-color: var(--color-primary); color: #ffffff; }
}

/* --- 모바일·태블릿 공용: 05 CORE VALUE / 06 FULL FUNNEL / 07 PROCESS --- */
@media (max-width: 1023px) {
	/* ---- 05 CORE: 가로 2카드 → 세로, 절대배치 텍스트 → 일반 흐름 ---- */
	.page-geo .core-cards { flex-direction: column; gap: 24px; }
	.page-geo .core-card { flex: none; width: 100%; height: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 32px; padding: 32px 24px; }
	.page-geo .core-txt { position: static; width: 100%; gap: 8px; }
	.page-geo .core-card .geo-h28 { font-size: 22px; letter-spacing: -0.44px; }
	.page-geo .core-desc { font-size: 18px !important; letter-spacing: -0.54px !important; }
	.page-geo .core-desc2 { font-size: 18px !important; letter-spacing: -0.54px !important; white-space: normal !important; }
	.page-geo .core-desc2 p { display: inline; }
	.page-geo .core-desc2 p + p::before { content: ' '; }
	.page-geo .core-mockup { position: static; width: 150px; height: 177px; flex-shrink: 0; }
	.page-geo .core-more { right: auto !important; left: 24px !important; top: 166px !important; }

	/* ---- 06 FUNNEL 타이틀: flex 조각 → 인라인 흐름(샘플 2줄 재현) ---- */
	.page-geo h2.funnel-title { display: block; white-space: normal; }
	.page-geo h2.funnel-title > span,
	.page-geo h2.funnel-title > span > span { display: inline !important; }

	/* ---- 06 FUNNEL 세로 리스트 (mob-view 전용, 샘플 31:15369) ---- */
	.page-geo .geo-funnel-body { display: flex !important; flex-direction: column; align-items: center; gap: 16px; width: 100%; border-radius: 16px; overflow: hidden; }
	.page-geo .geo-funnel-lead { width: 100%; font-weight: 700; font-size: 20px; line-height: 1.4; letter-spacing: -0.4px; text-align: center; color: var(--color-text-heading); background-color: #ffffff; }
	.page-geo .geo-funnel-list { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; margin: 0; padding: 0; list-style: none; }
	.page-geo .geo-funnel-stage { display: flex; align-items: center; justify-content: center; width: 100%; padding-top: 18px; overflow: hidden; border-width: 0; border-top-width: 2px; border-top-style: solid; border-top-color: var(--color-text-gray); box-sizing: border-box; }
	.page-geo .geo-funnel-stage p { font-size: 20px; line-height: 1.4; letter-spacing: -0.4px; text-align: center; white-space: nowrap; color: var(--color-text-gray); font-weight: 400; margin: 0; }
	.page-geo .geo-funnel-stage strong { font-weight: 700; }
	.page-geo .geo-funnel-stage--conv { padding-left: 101px; padding-right: 101px; border-top-color: var(--color-primary); }
	.page-geo .geo-funnel-stage--conv p { color: var(--color-primary); }
	.page-geo .geo-funnel-card { display: flex; align-items: flex-end; justify-content: center; gap: 18px; width: 100%; height: 143px; padding: 20px; border-radius: 16px; overflow: hidden; background-color: var(--color-input-bg); box-sizing: border-box; }
	.page-geo .geo-funnel-card--blue { background-color: var(--color-primary); }
	.page-geo .geo-funnel-card--dark { background-color: var(--color-bg-dark); }
	.page-geo .geo-funnel-title { display: flex; flex: 1 0 0%; min-width: 1px; flex-direction: column; align-items: flex-start; gap: 8px; }
	.page-geo .geo-funnel-num { display: flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: 100px; background-color: var(--color-text-gray); font-weight: 700; font-size: 12px; line-height: 1.4; letter-spacing: -0.24px; white-space: nowrap; color: #ffffff; }
	.page-geo .geo-funnel-num--w { background-color: #ffffff; color: var(--color-primary); }
	.page-geo .geo-funnel-txt { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
	.page-geo .geo-funnel-eng { width: 100%; font-weight: 400; font-size: 14px; line-height: 1.4; letter-spacing: -0.28px; color: var(--color-text-caption); margin: 0; }
	.page-geo .geo-funnel-name { width: 100%; font-weight: 700; font-size: 18px; line-height: 1.4; letter-spacing: -0.36px; color: var(--color-text-heading); margin: 0; }
	.page-geo .geo-funnel-card--blue .geo-funnel-eng,
	.page-geo .geo-funnel-card--dark .geo-funnel-eng { color: #eeeeee; }
	.page-geo .geo-funnel-card--blue .geo-funnel-name,
	.page-geo .geo-funnel-card--dark .geo-funnel-name { color: #ffffff; }
	.page-geo .geo-funnel-ico { position: relative; width: 72px; height: 72px; flex-shrink: 0; border-radius: 16px; overflow: hidden; }
	.page-geo .geo-funnel-ico--gray { background-color: #f1f1f1; }
	.page-geo .geo-funnel-ico img { position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); max-width: none; object-fit: cover; pointer-events: none; }
	.page-geo .geo-ico-90 { width: 90px; height: 90px; }
	.page-geo .geo-ico-84 { width: 84px; height: 84px; }
	.page-geo .geo-ico-83 { width: 83px; height: 83px; object-fit: contain; }
	.page-geo .geo-ico-61 { width: 61px; height: 48px; }
	.page-geo .geo-ico-y3 { top: calc(50% + 3px); }
	.page-geo .geo-ico-y2 { top: calc(50% + 2px); }
	.page-geo .geo-ico-c1 { left: calc(50% + 0.5px); top: calc(50% + 2.5px); }
	.page-geo .geo-ico-c2 { left: calc(50% + 0.5px); }

	/* ---- 07 PROCESS: 캐러셀 → 세로 리스트, 화살표 숨김 ---- */
	.page-geo .proc-arrows { display: none !important; }
	.page-geo .geo-title.row.nowrap.gap-10 { flex-direction: column; gap: 0; }
	.page-geo .geo-proc-list { display: flex !important; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; margin: 0; padding: 0; list-style: none; }
	.page-geo .geo-proc-card { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; width: 100%; height: 340px; padding: 32px; border-radius: 16px; overflow: hidden; background-color: #ffffff; box-sizing: border-box; }
	.page-geo .geo-proc-title { display: flex; flex: 1 0 0%; min-height: 1px; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; }
	.page-geo .geo-proc-num { display: flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: 100px; background-color: var(--color-primary); font-weight: 700; font-size: 16px; line-height: 1.4; letter-spacing: -0.32px; white-space: nowrap; color: #ffffff; }
	.page-geo .geo-proc-name { font-weight: 700; font-size: 22px; line-height: 1.4; letter-spacing: -0.44px; white-space: nowrap; color: var(--color-bg-dark); margin: 0; }
	.page-geo .geo-proc-name--lg { font-size: 29px; letter-spacing: -0.58px; }
	.page-geo .geo-proc-desc { font-weight: 400; font-size: 18px; line-height: 1.4; letter-spacing: -0.36px; color: var(--color-text-caption); margin: 0; }
	.page-geo .geo-proc-ico { position: relative; width: 128px; height: 128px; flex-shrink: 0; border-radius: 16px; overflow: hidden; }
	.page-geo .geo-proc-ico--white { background-color: #ffffff; }
	.page-geo .geo-proc-ico--gray { background-color: #f1f1f1; }
	.page-geo .geo-proc-ico img { position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); max-width: none; object-fit: cover; pointer-events: none; }
	.page-geo .geo-pico-107 { width: 107px; height: 96px;  left: calc(50% - 0.3px); }
	.page-geo .geo-pico-83  { width: 83px;  height: 100px; left: calc(50% - 0.1px); }
	.page-geo .geo-pico-87  { width: 87px;  height: 74px;  left: calc(50% + 0.1px); }
	.page-geo .geo-pico-96  { width: 96px;  height: 93px;  left: calc(50% - 0.2px); top: calc(50% + 0.5px); }
	.page-geo .geo-pico-128 { width: 128px; height: 128px; }
	.page-geo .geo-pico-95  { width: 95px;  height: 96px;  left: calc(50% + 0.5px); }
	/* 카드 04(Measure): 더보기 버튼 포함 구조 (샘플 31:15464 — 원본 음수 마진 보존) */
	.page-geo .geo-proc-title--tight { gap: 16px; margin-bottom: -45px; }
	.page-geo .geo-proc-title-in { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; }
	.page-geo .geo-proc-more { position: relative; width: 48px; height: 48px; flex-shrink: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
	.page-geo .geo-proc-more img { width: 100%; height: 100%; }
}

/* --- 모바일·태블릿 공용: 08 PROOF / 09 PACKAGE --- */
@media (max-width: 1023px) {
	/* ---- 08 PROOF: 2열 그리드 → 세로, 회색 래퍼 제거(샘플은 흰 배경 직배치) ---- */
	.page-geo .proof-grid { display: flex; flex-direction: column; gap: 24px; padding: 0; background: transparent; }
	.page-geo .proof-banner { padding: 22px 24px; box-sizing: border-box; }
	.page-geo .proof-banner-txt { white-space: normal; text-align: center; letter-spacing: -0.48px; }
	.page-geo .proof-banner.dashed .proof-b-tit { font-size: 24px; letter-spacing: -0.48px; }
	.page-geo .proof-banner.dashed .proof-b-sub { font-size: 16px; letter-spacing: -0.48px; }
	.page-geo .proof-banner.teal .proof-b-tit { font-size: 28px; letter-spacing: -0.56px; }
	.page-geo .proof-banner.teal .proof-b-sub { font-size: 18px; letter-spacing: -0.54px; }
	.page-geo .proof-chart { height: 360px; }
	.page-geo .proof-chart-txt { left: 24px; top: 24px; }
	.page-geo .proof-chart .geo-h28 { font-size: 24px; letter-spacing: -0.48px; }
	.page-geo .geo-chart-num .lg { font-size: 40px; }
	.page-geo .cpa-note { left: 24px !important; top: 106px !important; width: 151px; font-size: 16px !important; letter-spacing: -0.32px !important; white-space: normal !important; }
	.page-geo .proof-chart-img { left: 24px; }
	.page-geo [data-chart="conversion-rate-chart"] { top: 124px !important; width: 256px !important; height: 212px !important; }
	.page-geo [data-chart="cpa-chart"] { top: 171px !important; width: 256px !important; height: 165px !important; }

	/* ---- 09 PACKAGE: 가로 3카드 → 세로 ---- */
	.page-geo .pkg-row { flex-direction: column !important; }
	.page-geo .pkg-card { flex: none; width: 100%; padding: 32px 24px; }
	.page-geo .pkg-col { gap: 20px; }
	.page-geo .pkg-tier { font-size: 30px; letter-spacing: -0.6px; }
	.page-geo .pkg-list { gap: 8px; }
	.page-geo .pkg-li-txt { font-size: 16px; letter-spacing: -0.48px; }
	/* 타이틀: flex 조각 → 인라인 흐름(샘플 2줄, 36px) */
	.page-geo h2.pkg-title { display: block; white-space: normal; font-size: 36px; letter-spacing: -0.72px; }
	.page-geo h2.pkg-title > span { display: inline !important; }
	/* '가장 인기' 배지: 고정 좌표(top:562) 방식은 콘텐츠 높이에 따라 어긋남 →
	   PC 배지는 숨기고, 핫 카드 내부의 모바일 전용 배지를 카드 기준으로 배치
	   (피그마 반응형 기준 43:24640: 카드 상단 -10px 걸침, 우측 20px, 패딩 8x16, 폰트 14) */
	.page-geo .pkg-badge { display: none !important; }
	.page-geo .pkg-card.hot { position: relative; overflow: visible; }
	/* top: 배지 높이 36px의 절반(-18px) — 카드 상단 테두리 라인에 세로 정중앙으로 걸침 (사용자 수정 요청) */
	.page-geo .pkg-badge-mo { display: flex !important; position: absolute; right: 20px; top: -18px; align-items: center; justify-content: center; padding: 8px 16px; border-radius: 100px; background-image: var(--grad-heading); }
	.page-geo .pkg-badge-mo .geo-pill-num { font-size: 14px; letter-spacing: -0.28px; }
}

/* --- 모바일·태블릿 공용: 10 FAQ / 11 SECURE(하단 CTA 폼) --- */
@media (max-width: 1023px) {
	/* FAQ·CTA 섹션 패딩 70 → 48 (샘플 값. 06 FUNNEL은 pad-70 미보유라 영향 없음) */
	.page-geo .geo-section.pad-70.bg-white,
	.page-geo .geo-section.pad-70.bg-primary { padding-top: 48px; padding-bottom: 48px; }

	/* ---- 10 FAQ ---- */
	.page-geo .faq-title { font-size: 36px !important; letter-spacing: -0.72px !important; }
	.page-geo .faq-q-left { gap: 8px; }
	.page-geo .faq-badge { width: 32px; height: 32px; }
	.page-geo .faq-badge-letter { font-size: 14px; letter-spacing: -0.28px; width: 16px; top: calc(50% - 10px); }
	.page-geo .faq-q-txt { font-size: 16px; letter-spacing: -0.32px; }
	.page-geo .faq-a { padding: 10px 20px 22px; }
	.page-geo .faq-a-inner { gap: 8px; }
	.page-geo .faq-a-txt { font-size: 14px; letter-spacing: -0.28px; }
	/* 답변 2줄(p 2개) → 자연 줄바꿈 한 문단으로 병합 */
	.page-geo .faq-a-txt p { display: inline; }
	.page-geo .faq-a-txt p + p::before { content: ' '; }

	/* ---- 11 SECURE: 좌텍스트+우폼 가로 → 세로 ---- */
	.page-geo .secure-inner { flex-direction: column; align-items: center; width: 360px; max-width: 100%; padding: 0 28px; box-sizing: border-box; gap: 32px; }
	.page-geo .secure-left { gap: 16px !important; width: 100%; }
	.page-geo .secure-eyebrow { font-size: 18px !important; letter-spacing: -0.36px !important; }
	.page-geo .secure-title { font-size: 36px !important; letter-spacing: -1.08px !important; }
	.page-geo .secure-form { width: 100%; padding: 24px 16px; }
	.page-geo .secure-form-sub { font-size: 18px !important; letter-spacing: -0.36px !important; }
	.page-geo .secure-form-tit { font-size: 22px !important; letter-spacing: -0.44px !important; }
	/* 2열 폼 그리드 → 1열 (span2 셀도 단일 컬럼으로) */
	.page-geo .secure-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.page-geo .secure-grid > .geo-input-box { grid-column: auto !important; }
	/* CTA 폼 입력은 샘플 --lg 규격(16x20) 유지 — KV용 14x16 공통 축소를 되돌림 */
	.page-geo .secure-form .geo-input-box { padding: 16px 20px; }
	.page-geo .secure-form .geo-btn-label { font-size: 18px; letter-spacing: -0.36px; }
}

/* --- 모바일·태블릿 공용: 팝업(모달) 3종 — mob-view 전용 mo-* 클래스 (샘플 31:16050/15823/15898) --- */
@media (max-width: 1023px) {
	.page-geo .geo-modal { padding: 16px; box-sizing: border-box; }
	/* 패딩을 박스가 아닌 헤더/바디에 분배 — 헤더를 sticky로 띄워 스크롤 중에도 닫기 버튼 사용 가능 */
	.page-geo .mo-modal-box { display: flex !important; flex-direction: column; align-items: center; gap: 24px; width: 328px; max-width: 100%; max-height: 85vh; overflow-y: auto; padding: 0; border-radius: 24px; background-color: #ffffff; box-sizing: border-box; }
	.page-geo .mo-modal-head { position: sticky; top: 0; z-index: 3; background-color: #ffffff; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 24px 24px 16px; box-sizing: border-box; border-width: 0; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #dddddd; }
	.page-geo .mo-modal-head--top { align-items: flex-start; justify-content: flex-end; }
	.page-geo .mo-modal-title { flex: 1 0 0%; min-width: 1px; font-weight: 700; font-size: 24px; line-height: 1.4; letter-spacing: -0.48px; color: #000000; margin: 0; }
	.page-geo .mo-accent { color: var(--color-primary); }
	.page-geo .mo-modal-close { position: absolute; right: 24px; top: 24px; width: 48px; height: 48px; flex-shrink: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
	.page-geo .mo-modal-close--inline { position: relative; right: auto; top: auto; }
	.page-geo .mo-modal-close img { width: 100%; height: 100%; }
	.page-geo .mo-modal-body { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; padding: 0 24px 24px; box-sizing: border-box; }
	.page-geo .mo-steps-group { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; width: 100%; }
	.page-geo .mo-steps-group--narrow { width: 280px; }
	.page-geo .mo-steps-head { display: flex; align-items: center; justify-content: center; width: 100%; padding-top: 12px; padding-bottom: 12px; border-radius: 8px; font-size: 18px; text-align: center; letter-spacing: -0.36px; color: #ffffff; margin: 0; }
	.page-geo .mo-steps-head--gray { background-color: var(--color-text-gray); font-weight: 400; }
	.page-geo .mo-steps-head--grad { font-weight: 700; background-image: linear-gradient(175deg, #80d8e1 1%, #2851ff 98%); }
	.page-geo .mo-steps-arrow { display: flex; align-items: center; justify-content: center; width: 100%; }
	.page-geo .mo-steps-arrow img { width: 32px; height: 32px; }
	.page-geo .mo-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; text-align: center; letter-spacing: -0.42px; margin: 0; padding: 0; list-style: none; }
	.page-geo .mo-step { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; align-self: stretch; padding-top: 24px; padding-bottom: 24px; border-radius: 12px; font-size: 14px; line-height: 1.4; }
	.page-geo .mo-step--old { padding-top: 28px; padding-bottom: 28px; border-radius: 20px; background-color: #f1f1f1; border-width: 1px; border-style: dashed; border-color: #dddddd; }
	.page-geo .mo-step--old .mo-step-label { color: var(--color-text-sub); }
	.page-geo .mo-step--old .mo-step-desc { color: var(--color-text-gray); }
	.page-geo .mo-step--new { border-width: 1px; border-style: solid; border-color: var(--color-primary); color: var(--color-primary); }
	.page-geo .mo-step--new .mo-step-label, .page-geo .mo-step--new .mo-step-desc { font-weight: 700; color: var(--color-primary); }
	.page-geo .mo-step--info { background-color: var(--color-bg-light); }
	.page-geo .mo-step--info .mo-step-label { color: var(--color-primary); }
	.page-geo .mo-step--info .mo-step-desc { color: var(--color-text-heading); }
	.page-geo .mo-step-label { width: 100%; font-weight: 700; margin: 0; }
	/* funnel 팝업(피그마 v0.3 38:21629): 지표명은 16px, 카드 상하 패딩 32px */
	.page-geo .mo-step-name { font-size: 16px; letter-spacing: -0.48px; }
	.page-geo .mo-steps--funnel .mo-step { padding-top: 32px; padding-bottom: 32px; }
	.page-geo .mo-step-desc { font-weight: 400; white-space: nowrap; }
	.page-geo .mo-step-desc p { margin: 0; }
	.page-geo .mo-step-desc strong { font-weight: 700; }
	.page-geo .mo-tabs2 { display: flex; align-items: center; gap: 10px; height: 56px; width: 100%; }
	.page-geo .mo-tab2 { display: flex; flex: 1 0 0%; min-width: 1px; align-items: center; justify-content: center; height: 100%; border-radius: 12px; background-color: #ffffff; border: 1px solid var(--color-text-gray); font-weight: 400; font-size: 18px; line-height: normal; letter-spacing: -0.36px; text-align: center; white-space: nowrap; color: var(--color-text-gray); cursor: pointer; padding: 0; }
	.page-geo .mo-tab2.is-on { background-color: var(--color-primary); border-color: var(--color-primary); color: #ffffff; }
	.page-geo .mo-modal-lead { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; letter-spacing: -0.48px; }
	.page-geo .mo-modal-lead-t { width: 100%; font-weight: 700; font-size: 24px; line-height: 1.4; color: #000000; margin: 0; }
	.page-geo .mo-modal-lead-d { width: 100%; font-weight: 400; font-size: 16px; line-height: 1.4; color: var(--color-text-caption); margin: 0; }
}

/* --- 모바일: 아이브로 대형 변형 (샘플 --lg: CORE VALUE/PROCESS/PACKAGE는 20px 유지) --- */
@media (max-width: 719px) {
	/* 1. 전체를 감싸는 부모 영역: 뷰포트 높이 고정 및 Flex 컬럼 설정 */
    header .header-gnb-wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;

        /* 높이 보정 (기존 100vh + 동적 높이 대응) */
        height: 100vh;
        height: calc(var(--vh, 1vh) * 100);
        height: 100dvh;

        /* 아이폰 하단 홈바 / 모바일 브라우저 하단 툴바 간격 보정 */
        padding-bottom: env(safe-area-inset-bottom, 0px);
        box-sizing: border-box;
    }

  /* 2. 상단 메뉴 영역: height: 100vh 제거 후 flex: 1 적용 */
    header .header-gnb-wrap .gnb-menu {
        flex: 1;                  /* 부모 높이 안에서 gnb-info를 뺀 나머지 전체를 차지 */
        height: auto;             /* ★ 기존 height: 100vh 제거 필수 ★ */

        align-items: flex-start;
        flex-direction: column;
        width: 100%;
        padding: 23px 0 0;

        /* 화면 높이가 매우 작을 경우 메뉴 내부 스크롤 허용 */
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* 3. 하단 채용공고 영역: 높이 유지 */
    header .header-gnb-wrap .gnb-info {
        flex-shrink: 0;           /* 화면이 줄어들어도 하단 영역이 찌그러지지 않게 고정 */
        width: 100%;
    }

}

/* =========================================================
   태블릿 보정 (720~1023) — adtech식 소폭 보정
   위 '모바일·태블릿 공용' 블록들이 먼저 적용된 뒤, 여기서
   태블릿에 맞지 않는 항목만 재정의한다(파일 말미 = 최종 승자).
   ========================================================= */
@media (min-width: 720px) and (max-width: 1023px) {
	/* 셸: 1120 고정 → 유동 */
	.page-geo .geo-inner, .page-geo .geo-inner.w-1140 { width: 100%; padding: 0 40px; box-sizing: border-box; }
	.page-geo .secure-inner { width: 100%; max-width: none; padding: 0 40px; box-sizing: border-box; }
	.page-geo .secure-form { width: 560px; max-width: 100%; }

	/* KV: 좌텍스트+우폼 가로 배치가 태블릿 폭에 안 맞음 → 세로 중앙 배치 */
	.page-geo .geo-kv { height: auto; }
	.page-geo .kv-inner { position: static; transform: none; flex-direction: column; align-items: center; gap: 48px; width: 100%; padding: 200px 40px 80px; box-sizing: border-box; }
	.page-geo .kv-form-card { width: 480px; max-width: 100%; }

	/* 03: 통계는 1열(모바일) 대신 2x2 */
	.page-geo .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; height: auto; }
	.page-geo .stat-card { min-height: 248px; }
	/* 03: 타이틀은 PC처럼 2행으로 복원 */
	.page-geo .geo-title.nowrap:not(.row) .geo-title-row { flex-direction: row; gap: 0; }
	.page-geo .geo-title.nowrap:not(.row) .geo-title-row.gap-10 { gap: 10px; }
	.page-geo .mob-hide { display: inline; }
	/* 03: PC 그래프 패널(절대좌표 — 태블릿 폭에서 텍스트·막대 겹침) → 모바일 convpanel 스왑 */
	.page-geo .graph-panel.web-view { display: none !important; }
	.page-geo .geo-convpanel.mob-view { display: block !important; }

	/* 04: PC div 비교표(라벨 220px 고정) → 모바일 table 스왑 */
	.page-geo .geo-col-16.web-view { display: none !important; }

	/* 04: 타이틀 행간은 PC 기준(10px)으로 복원 — MO 전용 0px 규칙 상쇄 */
	/* .page-geo .geo-title.gap-10 { gap: 10px; } */
	/* 07: 타이틀은 PC처럼 1행으로 복원 */
	.page-geo .geo-title.row.nowrap.gap-10 { flex-direction: row; gap: 10px; }

	/* 06/07: PC 가로 5카드 패널·1880px 캐러셀은 태블릿 수용 불가 → 모바일 세로 리스트 사용
	   (세로 리스트는 공용 블록의 display:flex !important 로 표시됨) */
	.page-geo .funnel-panel.web-view { display: none !important; }
	.page-geo .proc-slider.web-view { display: none !important; }

	/* 모달: PC 팝업(916/704px)이 좁은 태블릿에서 넘침 → 모바일 팝업 사용 */
	.page-geo .geo-modal-popup.web-view { display: none !important; }
}
