@charset "UTF-8";
/* ==========================================================================
   세금환급24 랜딩페이지 스타일시트
   디자인 시스템: DESIGN-stripe.md(핀테크/인프라 브랜드의 그라디언트 메시 히어로,
   얇은 디스플레이 타이포, 필 버튼, 다크 인버트 밴드)의 방향성을 독자적으로 재해석.
   원문 색상/폰트를 그대로 복제하지 않고, 세금환급24의 신뢰·전문성 톤에 맞춰
   보라 인디고 액센트 + 딥 잉크 다크 밴드 + 웜 골드(전문가 신뢰 섹션 전용) 조합으로 재구성.
   한글 본문은 얇은(300) 무게에서 가독성이 떨어지므로 디스플레이 대형 헤딩에만 300을 쓰고,
   본문/컴포넌트는 400~700을 사용한다 (원문의 "무조건 300" 원칙을 한글에 맞게 조정).
   ========================================================================== */
:root {
  /* ---- 브랜드 액센트: 인디고 계열 (Stripe 방향성의 독자 재해석, 동일 헥스 아님) ---- */
  --primary: #4B3FE4;
  --primary-deep: #392FBE;
  --primary-press: #2A2390;
  --primary-soft: #7A70F2;
  --primary-subtle: #E9E7FC;
  /* ---- 잉크(본문/다크 서피스) ---- */
  --ink: #10192B;
  --ink-secondary: #33445C;
  --ink-mute: #66748A;
  --ink-900: #0E1130;
  --ink-900-soft: #191c3f;
  /* ---- 서피스 ---- */
  --canvas: #ffffff;
  --canvas-soft: #F5F7FC;
  --canvas-warm: #FBF1E3;
  --hairline: #E3E7F0;
  --hairline-strong: #CBD3E3;
  /* ---- 그라디언트 메시 컬러 스톱 (히어로 전용 대기감 배경, 붉은/노란 톤 없는 쿨톤 조합) ---- */
  --mesh-frost: #F4F6FD;
  --mesh-lavender: #CBC2F7;
  --mesh-sky: #6FA8F5;
  --mesh-indigo: #4B3FE4;
  /* ---- 세무법인 아성 전문성 섹션 전용 웜 골드 (다크 밴드 위 유일한 액센트) ---- */
  --gold: #E4B45E;
  --gold-deep: #C4933C;
  --gold-subtle: rgba(228, 180, 94, 0.16);
  /* ---- 시맨틱 ---- */
  --mint: #14A57A;
  --mint-deep: #0E7F5D;
  --mint-subtle: #E2F6EE;
  --error: #D93A4B;
  --error-subtle: #FCEAEC;
  --on-primary: #ffffff;
  /* ---- 라운드 스케일 ---- */
  --r-xs: 6px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-pill: 999px;
  /* ---- 간격 스케일 (8px 베이스) ---- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-24: 96px;
  /* ---- 그림자 (핀테크 톤: 잉크 컬러 기반 저채도 그림자) ---- */
  --shadow-1: 0 1px 2px rgba(16, 25, 43, 0.05), 0 2px 6px rgba(16, 25, 43, 0.05);
  --shadow-2: 0 8px 24px rgba(16, 25, 43, 0.08), 0 2px 6px rgba(16, 25, 43, 0.04);
  --shadow-3: 0 24px 56px rgba(16, 25, 43, 0.16), 0 4px 12px rgba(16, 25, 43, 0.06);
  --container-width: 1160px;
  --transition-base: 180ms cubic-bezier(0.4, 0, 0.2, 1);
  --header-h: 68px;
  /* 레거시 별칭: 신청 폼(refund-check.html) 등 다른 페이지가 참조하는 기존 토큰명을
     새 시스템 값으로 매핑해 별도 리팩터링 없이도 동일한 룩을 갖게 한다 */
  --color-navy: var(--ink);
  --color-blue: var(--primary);
  --color-blue-light: var(--primary-subtle);
  --color-accent: var(--mint);
  --color-accent-dark: var(--mint-deep);
  --color-accent-soft: var(--mint-subtle);
  --color-text: var(--ink);
  --color-muted: var(--ink-mute);
  --color-bg: var(--canvas);
  --color-bg-alt: var(--canvas-soft);
  --color-border: var(--hairline);
  --color-error: var(--error);
  --color-error-soft: var(--error-subtle);
  --gradient-navy: linear-gradient(135deg, var(--primary) 0%, var(--primary-press) 100%);
  --radius-sm: var(--r-sm);
  --radius-md: var(--r-md);
  --radius-lg: var(--r-lg);
  --radius-full: var(--r-pill);
  --shadow-sm: var(--shadow-1);
  --shadow-md: var(--shadow-2);
  --shadow-lg: var(--shadow-3);
  --surface-gradient: var(--canvas);
  --inset-highlight: none;
  --inset-edge: none;
  --space-section-mobile: var(--sp-16);
  --space-section-desktop: var(--sp-24);
  /* 세무법인 아성 섹션: 골드를 firm-* 별칭으로도 노출 */
  --firm-navy: var(--ink-900);
  --firm-cream: #FBF3E7;
  --firm-gold: var(--gold);
  --firm-gold-dark: var(--gold-deep);
}

@media (min-width: 640px) {
  :root {
    --header-h: 72px;
  }
}
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
}

body {
  margin: 0;
  font-family: "Pretendard Variable", Pretendard, "Inter", -apple-system, BlinkMacSystemFont, "Noto Sans KR", sans-serif;
  font-feature-settings: "tnum" 0;
  color: var(--ink);
  background: var(--canvas);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  color: var(--ink);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 30px;
}

h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.005em;
}

p {
  margin: 0 0 12px;
}

strong {
  font-weight: 700;
}

a {
  color: inherit;
}

img, svg {
  max-width: 100%;
}

.tnum {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

@media (min-width: 1024px) {
  h1 {
    font-size: 52px;
  }
  h2 {
    font-size: 40px;
  }
}
.container {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* ==========================================================================
   헤더
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid var(--hairline);
  z-index: 50;
  padding: 14px 0;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 700;
  font-size: 18px;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.02em;
}

.logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--r-sm);
  background: var(--primary);
  color: #ffffff;
  flex-shrink: 0;
}

.logo-mark svg {
  width: 18px;
  height: 18px;
}

.logo-text {
  white-space: nowrap;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.btn-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: transform var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.btn-nav .icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.btn-nav-label {
  display: none;
}

@media (min-width: 640px) {
  .btn-nav {
    width: auto;
    height: 40px;
    padding: 0 18px;
    font-size: 14px;
  }
  .btn-nav-label {
    display: inline;
  }
}
.btn-nav-kakao {
  background: #FEE500;
  color: #391b1b;
}

.btn-nav-kakao:hover {
  background: #fcda00;
}

.btn-nav-lookup {
  background: var(--primary);
  color: #ffffff;
}

.btn-nav-lookup:hover {
  background: var(--primary-deep);
}

/* ==========================================================================
   공통 레이아웃 — 뷰포트 강제 100vh 대신 콘텐츠 기준의 넉넉한 섹션 패딩으로 전환
   (DESIGN-stripe.md 7장 원칙: 섹션 패딩 64–96px, 콘텐츠 길이에 맞춰 자연스럽게 흐름)
   ========================================================================== */
.section {
  padding: var(--sp-16) 0;
  position: relative;
}

@media (min-width: 1024px) {
  .section {
    padding: var(--sp-24) 0;
  }
}
#hero {
  background: var(--canvas);
}

#quick-flow {
  background: var(--canvas-soft);
}

#eligibility {
  background: var(--canvas);
}

#experts {
  background: var(--canvas-soft);
}

#journey {
  background: var(--canvas);
}

#faq {
  background: var(--canvas-warm);
}

.section-sub {
  color: var(--ink-mute);
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 28px;
  max-width: 640px;
}

/* ==========================================================================
   버튼 / 링크 — 타이트한 필(pill) 버튼 시스템
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 14px 30px;
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: -0.005em;
  text-decoration: none;
  text-align: center;
  border: none;
  cursor: pointer;
  transition: transform var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.btn-primary {
  background: var(--primary);
  color: #ffffff;
  box-shadow: 0 1px 2px rgba(16, 25, 43, 0.08), 0 12px 24px -8px rgba(75, 63, 228, 0.45);
}

.btn-primary:hover {
  background: var(--primary-deep);
  transform: translateY(-2px);
  box-shadow: 0 1px 2px rgba(16, 25, 43, 0.08), 0 16px 30px -8px rgba(75, 63, 228, 0.5);
}

.btn-primary:active {
  transform: translateY(0);
  background: var(--primary-press);
}

.btn-primary:focus-visible {
  outline: 3px solid var(--primary-soft);
  outline-offset: 2px;
}

.link-secondary {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
}

.link-secondary:hover {
  color: var(--primary-deep);
}

:focus-visible {
  outline: 3px solid var(--primary-soft);
  outline-offset: 2px;
}

/* 아이콘 공통 */
.icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* 배지/아이콘 컨테이너 — 플랫한 틴트 배경 (기존 3D 글로시 톤에서 절제된 핀테크 톤으로 전환) */
.card-icon,
.status-icon,
.icon-badge,
.refund-mock-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--r-md);
  background: var(--primary-subtle);
  color: var(--primary-deep);
  margin-bottom: 16px;
}

.card-icon svg {
  width: 22px;
  height: 22px;
}

.card-icon.accent {
  background: var(--mint-subtle);
  color: var(--mint-deep);
}

.icon-badge--xs {
  width: 28px;
  height: 28px;
  border-radius: var(--r-sm);
}

.icon-badge--xs svg {
  width: 15px;
  height: 15px;
}

.icon-badge--sm {
  width: 36px;
  height: 36px;
  border-radius: var(--r-sm);
}

.icon-badge--sm svg {
  width: 19px;
  height: 19px;
}

.icon-badge--circle {
  border-radius: 50%;
}

.icon-badge--blue {
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

.icon-badge--green {
  background: var(--mint-subtle);
  color: var(--mint-deep);
}

.icon-badge--navy {
  background: var(--primary);
  color: #ffffff;
}

/* ==========================================================================
   히어로 — 그라디언트 메시 백드롭(DESIGN-stripe.md 시그니처 요소의 독자 재해석)
   ========================================================================== */
.hero {
  overflow: hidden;
  position: relative;
  background: var(--canvas);
  padding: calc(var(--sp-16) + 8px) 0 var(--sp-16);
  min-height: calc(100vh - var(--header-h));
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@supports (height: 100dvh) {
  .hero {
    min-height: calc(100dvh - var(--header-h));
  }
}
/* 프로스트 화이트 → 라벤더 → 스카이블루 → 인디고로 이어지는 흐릿한 블롭 메시(붉은/노란 톤 전부 제거, 쿨톤 전용).
   히어로 상단에만 걸쳐서 브랜드의 "대기감 배경"을 표현하되, 텍스트 가독성을 위해
   낮은 불투명도 + 큰 블러로 은은하게만 깐다. */
.hero-mesh {
  position: absolute;
  inset: -10% -5% auto -5%;
  height: 130%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
  filter: blur(70px);
  background: radial-gradient(40% 48% at 12% 15%, var(--mesh-frost) 0%, transparent 70%), radial-gradient(40% 50% at 42% 10%, var(--mesh-lavender) 0%, transparent 70%), radial-gradient(42% 50% at 46% 34%, var(--mesh-sky) 0%, transparent 72%), radial-gradient(52% 62% at 88% 18%, var(--mesh-indigo) 0%, transparent 72%);
}

@media (min-width: 1024px) {
  .hero-mesh {
    opacity: 0.4;
  }
}
.hero-grid {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

@media (min-width: 1024px) {
  .hero-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    column-gap: 72px;
    row-gap: 8px;
    align-items: center;
    grid-template-areas: "text  image" "cta   image";
  }
  .hero-text-block {
    grid-area: text;
    min-width: 0;
  }
  .hero-cta-block {
    grid-area: cta;
  }
  .hero-visual {
    grid-area: image;
    min-width: 0;
  }
}
.hero-label {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--primary-deep);
  background: var(--primary-subtle);
  padding: 9px 20px;
  border-radius: var(--r-pill);
  margin-bottom: 20px;
}

.hero-heading {
  margin: 0 0 24px;
}

.hero-heading-line1,
.hero-heading-line2 {
  display: block;
  color: var(--ink);
  letter-spacing: -0.015em;
}

.hero-heading-line1 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink-secondary);
}

.hero-heading-line2 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin-top: 4px;
}

@media (min-width: 1024px) {
  .hero-heading-line1 {
    font-size: 28px;
  }
  .hero-heading-line2 {
    font-size: 46px;
  }
}
.subhead {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-mute);
  margin-bottom: 0;
}

.hero-cta-block {
  margin-top: 8px;
}

.hero-cta-note {
  margin: 14px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-mute);
}

.hero-disclaimer {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.6;
  text-align: center;
}

/* 환급 조회 결과 목업(스마트폰 + 카드) — perspective 기반 3D 틸트로 실제 제품 목업에
   가까운 입체감을 낸다(사진/렌더링 이미지가 아닌 순수 CSS 3D 변형). */
.refund-mock {
  position: relative;
  width: 100%;
  max-width: 220px;
  aspect-ratio: 3/4;
  margin: 0 auto;
  perspective: 1400px;
}

@media (min-width: 640px) {
  .refund-mock {
    max-width: 260px;
  }
}
@media (min-width: 1024px) {
  .refund-mock {
    max-width: 320px;
  }
}
.refund-mock-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(24px);
  pointer-events: none;
}

.refund-mock-blob-1 {
  width: 46%;
  height: 32%;
  top: -6%;
  right: -10%;
  background: radial-gradient(circle, rgba(75, 63, 228, 0.22) 0%, rgba(75, 63, 228, 0) 70%);
}

.refund-mock-blob-2 {
  width: 38%;
  height: 26%;
  bottom: -4%;
  left: -12%;
  background: radial-gradient(circle, rgba(20, 165, 122, 0.16) 0%, rgba(20, 165, 122, 0) 70%);
}

/* 바닥에 깔리는 접지 그림자 — 두 오브젝트가 실제로 표면 위에 떠 있는 듯한 착시를 만든다 */
.refund-mock::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 6%;
  bottom: 2%;
  height: 14%;
  background: radial-gradient(ellipse, rgba(16, 25, 43, 0.28) 0%, rgba(16, 25, 43, 0) 72%);
  filter: blur(6px);
  transform: rotateX(70deg);
  pointer-events: none;
}

.refund-mock-card {
  position: absolute;
  left: 6%;
  top: 14%;
  width: 78%;
  height: 60%;
  border-radius: var(--r-xl);
  background: linear-gradient(150deg, var(--primary-soft) 0%, var(--primary) 45%, var(--primary-press) 100%);
  transform: rotate3d(0.3, 1, -0.15, 26deg) translateZ(-30px);
  transform-style: preserve-3d;
  box-shadow: 24px 30px 50px -20px rgba(16, 25, 43, 0.45);
  overflow: hidden;
}

.refund-mock-card-sheen {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0) 32%, rgba(255, 255, 255, 0) 68%, rgba(255, 255, 255, 0.12) 100%);
  pointer-events: none;
}

.refund-mock-phone {
  position: absolute;
  inset: 3% 13%;
  border-radius: 34px;
  background: linear-gradient(155deg, #f4f7fb 0%, #dfe6f0 100%);
  padding: 9px;
  box-shadow: 0 2px 0 rgba(255, 255, 255, 0.6) inset, 0 -2px 6px rgba(16, 25, 43, 0.12) inset, 30px 40px 60px -22px rgba(16, 25, 43, 0.5), 0 4px 10px -2px rgba(16, 25, 43, 0.18);
  transform: rotate3d(0.2, 1, 0.08, -20deg) translateZ(10px);
  transform-style: preserve-3d;
}

.refund-mock-notch {
  position: absolute;
  top: 9px;
  left: 50%;
  transform: translateX(-50%);
  width: 34%;
  height: 18px;
  background: #111726;
  border-radius: var(--r-pill);
  z-index: 2;
}

.refund-mock-buttons {
  position: absolute;
  top: 22%;
  right: -2px;
  width: 3px;
  height: 13%;
  background: linear-gradient(90deg, #c3cbda 0%, #9aa5ba 100%);
  border-radius: 2px 0 0 2px;
}

.refund-mock-home {
  position: absolute;
  bottom: 9px;
  left: 50%;
  transform: translateX(-50%);
  width: 30%;
  height: 4px;
  background: #111726;
  border-radius: var(--r-pill);
  opacity: 0.5;
  z-index: 2;
}

.refund-mock-screen {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 26px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 14%;
}

.refund-mock-sheen {
  position: absolute;
  inset: -30% -40%;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0) 72%, rgba(75, 63, 228, 0.06) 100%);
  pointer-events: none;
}

.refund-mock-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--mint-deep);
  background: var(--mint-subtle);
  padding: 5px 11px;
  border-radius: var(--r-pill);
  white-space: nowrap;
}

.refund-mock-status .icon {
  width: 13px;
  height: 13px;
}

.refund-mock-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-mute);
  margin: 6px 0 0;
}

.refund-mock-amount {
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.refund-mock-amount .refund-mock-unit {
  font-size: 0.55em;
  font-weight: 600;
  margin-left: 2px;
}

@media (min-width: 640px) {
  .refund-mock-amount {
    font-size: 26px;
  }
}
@media (min-width: 1024px) {
  .refund-mock-amount {
    font-size: 30px;
  }
}
.refund-mock-badge {
  position: absolute;
  width: 15%;
  height: 15%;
  min-width: 32px;
  min-height: 32px;
  border-radius: 50%;
  z-index: 3;
  border: 3px solid var(--canvas);
}

.refund-mock-badge .icon {
  width: 45%;
  height: 45%;
}

.refund-mock-badge--check {
  top: -4%;
  right: 2%;
  background: var(--mint);
  color: #ffffff;
  box-shadow: 10px 14px 22px -8px rgba(20, 165, 122, 0.55);
  transform: rotate3d(0.4, 1, 0, 22deg);
}

.refund-mock-badge--doc {
  bottom: 8%;
  left: -10%;
  background: var(--primary-subtle);
  color: var(--primary-deep);
  box-shadow: 8px 12px 20px -8px rgba(16, 25, 43, 0.3);
  transform: rotate3d(0.3, -1, 0, 18deg);
}

.refund-mock-badge--shield {
  top: 40%;
  left: -14%;
  width: 13%;
  height: 13%;
  min-width: 28px;
  min-height: 28px;
  background: var(--primary);
  color: #ffffff;
  box-shadow: 8px 10px 18px -6px rgba(75, 63, 228, 0.5);
  transform: rotate3d(0.2, -1, 0.1, 20deg);
}

/* ==========================================================================
   2번째 섹션: 원클릭 조회 과정
   ========================================================================== */
.quick-flow-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.quick-flow-head {
  max-width: 640px;
}

.quick-flow-heading {
  margin: 0 0 16px;
  font-size: 26px;
  font-weight: 700;
}

@media (min-width: 1024px) {
  .quick-flow-heading {
    font-size: 34px;
  }
}
.quick-flow-line {
  display: block;
}

.quick-flow-highlight {
  color: var(--primary);
  font-weight: 600;
}

.quick-flow-inner .section-sub {
  margin: 0 auto;
}

.quick-flow-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 48px 0 40px;
  width: 100%;
  max-width: 1100px;
}

@media (min-width: 768px) {
  .quick-flow-steps {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
}
.quick-flow-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  padding: 48px 32px;
  min-height: 300px;
  justify-content: center;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-1);
}

.quick-flow-number {
  font-size: 40px;
  font-weight: 300;
  font-variant-numeric: tabular-nums;
  color: var(--hairline-strong);
  line-height: 1;
  margin-bottom: 8px;
}

.quick-flow-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}

.quick-flow-desc {
  font-size: 15px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0;
  max-width: 240px;
}

/* 카드 안의 3D 아이콘 배지 — 그라디언트 + 글로시 하이라이트 + perspective 틸트로
   평면 색상 사각형이 아니라 살짝 떠 있는 입체 오브젝트처럼 보이게 한다. */
.quick-flow-step .card-icon {
  position: relative;
  width: 76px;
  height: 76px;
  border-radius: 22px;
  margin-bottom: 22px;
  background: linear-gradient(150deg, var(--primary-soft) 0%, var(--primary) 55%, var(--primary-press) 100%);
  color: #ffffff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 -10px 16px rgba(0, 0, 0, 0.14) inset, 14px 20px 32px -14px rgba(75, 63, 228, 0.55), 0 4px 10px -2px rgba(16, 25, 43, 0.12);
  transform: perspective(600px) rotate3d(1, -1, 0, 10deg);
  overflow: hidden;
}

.quick-flow-step .card-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 42%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0.12) 100%);
  pointer-events: none;
}

.quick-flow-step .card-icon svg {
  position: relative;
  width: 34px;
  height: 34px;
  filter: drop-shadow(0 2px 3px rgba(16, 25, 43, 0.25));
}

.quick-flow-step .card-icon.accent {
  background: linear-gradient(150deg, #35c793 0%, var(--mint) 55%, var(--mint-deep) 100%);
  color: #ffffff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 -10px 16px rgba(0, 0, 0, 0.14) inset, 14px 20px 32px -14px rgba(20, 165, 122, 0.55), 0 4px 10px -2px rgba(16, 25, 43, 0.12);
}

.quick-flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hairline-strong);
  width: 16px;
  height: 40px;
  margin: 0 auto;
  flex-shrink: 0;
}

.quick-flow-arrow svg {
  width: 100%;
  height: 100%;
  display: block;
  transform: rotate(90deg);
}

@media (min-width: 768px) {
  .quick-flow-arrow {
    width: 28px;
    height: 16px;
    align-self: center;
  }
  .quick-flow-arrow svg {
    transform: none;
  }
}
.quick-flow-cta-note {
  margin: 14px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-mute);
}

/* ==========================================================================
   3번째 섹션: 환급 대상 자가진단
   ========================================================================== */
.eligibility-head {
  max-width: 620px;
  margin-bottom: 40px;
}

.eligibility-head h2 {
  font-size: 28px;
  font-weight: 700;
}

@media (min-width: 1024px) {
  .eligibility-head h2 {
    font-size: 38px;
  }
}
.eligibility-grid {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 768px) {
  .eligibility-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.eligibility-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  font-weight: 500;
  color: var(--ink);
  transition: border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}

.eligibility-card:hover {
  border-color: var(--primary-soft);
  box-shadow: var(--shadow-1);
  transform: translateY(-2px);
}

.eligibility-banner {
  background: var(--ink-900);
  border-radius: var(--r-lg);
  padding: 44px 32px;
  text-align: center;
}

.eligibility-banner-text {
  margin: 0 0 24px;
}

.eligibility-banner-line {
  display: block;
  color: #ffffff;
}

.eligibility-banner-line:not(.eligibility-banner-emphasis) {
  font-size: 16px;
  font-weight: 500;
  opacity: 0.7;
  margin-bottom: 8px;
}

.eligibility-banner-emphasis {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

@media (min-width: 1024px) {
  .eligibility-banner-emphasis {
    font-size: 30px;
  }
}
.eligibility-banner-note {
  margin: 14px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
}

/* ==========================================================================
   4번째 섹션: 세무법인 아성 전문성·신뢰 강조 — 다크 인버트 밴드
   (DESIGN-stripe.md의 featured/dark 서피스 패턴을 이 섹션의 "권위·신뢰" 역할에 매칭)
   ========================================================================== */
#firm-trust.firm-trust {
  background: var(--ink-900);
  position: relative;
  overflow: hidden;
}

.firm-trust::before {
  content: "";
  position: absolute;
  top: -15%;
  right: -8%;
  width: 55%;
  height: 55%;
  background: radial-gradient(circle, var(--gold-subtle) 0%, rgba(228, 180, 94, 0) 70%);
  pointer-events: none;
}

.firm-trust-layout {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

@media (min-width: 1024px) {
  .firm-trust-layout {
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    column-gap: 56px;
    row-gap: 48px;
    align-items: start;
    grid-template-areas: "text   visual" "cta    visual" "cards  cards" "brand  brand";
  }
  .firm-trust-text {
    grid-area: text;
    min-width: 0;
  }
  .firm-trust-cta {
    grid-area: cta;
  }
  .firm-trust-visual {
    grid-area: visual;
    min-width: 0;
    align-self: center;
  }
  .firm-trust-cards {
    grid-area: cards;
  }
  .firm-trust-brandline {
    grid-area: brand;
  }
}
.firm-trust-label {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gold);
  background: var(--gold-subtle);
  padding: 9px 20px;
  border-radius: var(--r-pill);
  margin-bottom: 24px;
}

.firm-trust-heading {
  margin: 0 0 22px;
}

.firm-trust-line {
  display: block;
  color: var(--firm-cream);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

@media (min-width: 1024px) {
  .firm-trust-line {
    font-size: 40px;
  }
}
.firm-trust-desc {
  color: rgba(251, 243, 231, 0.68);
  font-size: 17px;
  line-height: 1.7;
  max-width: 580px;
}

.firm-trust-kw {
  color: var(--gold);
  font-weight: 700;
  font-size: 1.05em;
  letter-spacing: -0.01em;
}

.firm-trust-visual {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .firm-trust-visual {
    max-width: 100%;
  }
}
/* 세무 신고서 검토 3D 목업 — 히어로 폰 목업과 같은 perspective/rotate3d 기법을 재사용해
   손으로 좌표를 계산하는 SVG 다각형보다 훨씬 안정적으로 깔끔한 입체감을 낸다. */
.firm-doc-scene {
  position: relative;
  width: 100%;
  max-width: 300px;
  aspect-ratio: 3/4;
  margin: 0 auto;
  perspective: 1400px;
}

@media (min-width: 1024px) {
  .firm-doc-scene {
    max-width: 340px;
  }
}
.firm-doc-scene::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 14%;
  bottom: 4%;
  height: 10%;
  background: radial-gradient(ellipse, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 72%);
  filter: blur(10px);
  transform: rotateX(70deg);
  pointer-events: none;
}

.firm-doc-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(30px);
  pointer-events: none;
}

.firm-doc-blob-1 {
  width: 48%;
  height: 34%;
  top: -6%;
  right: -8%;
  background: radial-gradient(circle, var(--gold-subtle) 0%, rgba(228, 180, 94, 0) 72%);
}

.firm-doc-blob-2 {
  width: 40%;
  height: 28%;
  bottom: 2%;
  left: -10%;
  background: radial-gradient(circle, rgba(75, 63, 228, 0.18) 0%, rgba(75, 63, 228, 0) 72%);
}

.firm-doc-card {
  position: absolute;
  left: 8%;
  top: 12%;
  width: 74%;
  height: 62%;
  border-radius: 22px;
  background: linear-gradient(160deg, #fffdf9 0%, #f2e9d4 100%);
  box-shadow: 0 2px 0 rgba(255, 255, 255, 0.7) inset, 0 -14px 22px rgba(20, 15, 5, 0.06) inset, 22px 30px 46px -18px rgba(30, 22, 6, 0.4), 0 4px 12px -2px rgba(20, 15, 5, 0.16);
  transform: rotate3d(0.3, -1, 0, 18deg) rotate(-3deg);
  overflow: hidden;
  padding: 13% 10%;
  display: flex;
  flex-direction: column;
  gap: 11%;
  z-index: 1;
}

.firm-doc-sheen {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0.14) 100%);
  pointer-events: none;
}

.firm-doc-header {
  display: block;
  width: 68%;
  height: 11px;
  border-radius: 6px;
  background: linear-gradient(90deg, #f0d49c, #c79a53);
}

.firm-doc-subline {
  display: block;
  width: 46%;
  height: 6px;
  border-radius: 4px;
  background: #d8c9a8;
  margin-top: -6%;
}

.firm-doc-row {
  display: flex;
  align-items: center;
  gap: 10%;
}

.firm-doc-check {
  position: relative;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.firm-doc-check--done {
  background: linear-gradient(150deg, #f0d49c 0%, #c79a53 100%);
  box-shadow: 0 3px 6px -1px rgba(199, 154, 83, 0.55);
}

.firm-doc-check--done svg {
  width: 13px;
  height: 13px;
  color: #fffdf6;
}

.firm-doc-check--pending {
  background: #fffdf9;
  border: 2px solid #c79a53;
}

.firm-doc-line {
  display: block;
  height: 8px;
  border-radius: 5px;
  background: #a8b2c4;
  flex: 1;
}

.firm-doc-line--lg {
  max-width: 82%;
}

.firm-doc-line--md {
  max-width: 62%;
}

.firm-doc-line--sm {
  max-width: 44%;
  background: #d8c9a8;
}

.firm-doc-glass {
  position: absolute;
  top: 4%;
  right: 4%;
  width: 30%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(150deg, #f6dfab 0%, #c79a53 100%);
  box-shadow: 12px 18px 28px -10px rgba(20, 15, 5, 0.5);
  transform: rotate3d(0.2, 1, 0, -18deg) rotate(6deg);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

.firm-doc-glass-inner {
  position: relative;
  width: 78%;
  height: 78%;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.95) 0%, rgba(220, 232, 247, 0.55) 55%, rgba(169, 195, 232, 0.4) 100%);
  overflow: hidden;
}

.firm-doc-glass-shine {
  position: absolute;
  top: 14%;
  left: 18%;
  width: 46%;
  height: 26%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.75);
  filter: blur(2px);
  transform: rotate(-25deg);
}

.firm-doc-glass-handle {
  position: absolute;
  top: 23.9%;
  left: 68.7%;
  width: 5.3%;
  height: 15%;
  min-width: 12px;
  border-radius: 8px;
  background: linear-gradient(160deg, #f0d49c 0%, #c79a53 100%);
  transform-origin: top center;
  transform: rotate(40deg);
  box-shadow: 3px 5px 8px -3px rgba(20, 15, 5, 0.45);
  z-index: 2;
}

.firm-doc-trail {
  position: absolute;
  top: 58%;
  left: 40%;
  width: 30%;
  height: 24%;
  border-left: 2px dashed rgba(199, 154, 83, 0.6);
  border-bottom: 2px dashed rgba(199, 154, 83, 0.6);
  border-radius: 0 0 0 32px;
  pointer-events: none;
}

.firm-doc-result {
  position: absolute;
  bottom: 6%;
  right: 6%;
  width: 22%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(150deg, #24345a 0%, #0e1a30 100%);
  border: 3px solid var(--gold);
  box-shadow: 0 14px 26px -8px rgba(14, 26, 48, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4;
}

.firm-doc-result svg {
  width: 46%;
  height: 46%;
  color: #f7f2e9;
}

.firm-trust-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 8px;
}

@media (min-width: 768px) {
  .firm-trust-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}
.firm-trust-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--r-lg);
  padding: 26px 24px;
}

.firm-trust-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-sm);
  background: var(--gold-subtle);
  color: var(--gold);
  margin-bottom: 16px;
}

.firm-trust-icon svg {
  width: 22px;
  height: 22px;
}

.firm-trust-card-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--firm-cream);
  margin: 0 0 10px;
}

.firm-trust-card p {
  font-size: 15px;
  color: rgba(251, 243, 231, 0.66);
  line-height: 1.6;
}

.firm-trust-card .firm-trust-kw {
  font-size: 1em;
}

.firm-trust-brandline {
  text-align: center;
  max-width: 640px;
  margin: 8px auto 0;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.firm-trust-brandline span {
  display: block;
  color: var(--firm-cream);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

@media (min-width: 1024px) {
  .firm-trust-brandline span {
    font-size: 25px;
  }
}
.firm-trust-cta {
  text-align: center;
}

@media (min-width: 1024px) {
  .firm-trust-cta {
    text-align: left;
  }
}
.btn-firm {
  background: var(--gold);
  color: var(--ink-900);
  font-weight: 700;
  border: none;
}

.btn-firm:hover {
  background: #edc271;
  transform: translateY(-2px);
}

.btn-firm:focus-visible {
  outline: 3px solid var(--firm-cream);
  outline-offset: 2px;
}

.firm-trust-cta-note {
  margin: 16px 0 0;
  font-size: 15px;
  font-weight: 500;
  color: rgba(251, 243, 231, 0.55);
}

/* ==========================================================================
   5번째 섹션: 전문가 신뢰 소개
   ========================================================================== */
.experts-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 40px;
}

.experts-heading {
  margin: 0 0 20px;
}

.experts-line {
  display: block;
}

.experts-heading .experts-line {
  font-size: clamp(20px, 4.6vw, 28px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink);
  letter-spacing: -0.01em;
}

@media (min-width: 1024px) {
  .experts-heading .experts-line {
    font-size: 38px;
  }
}
.experts-emphasis {
  font-weight: 700;
  color: var(--ink);
}

.experts-heading .experts-line.experts-emphasis {
  font-size: clamp(20.4px, 4.9vw, 29.5px);
}

@media (min-width: 1024px) {
  .experts-heading .experts-line.experts-emphasis {
    font-size: 40.5px;
  }
}
.experts-head .section-sub {
  font-size: 17px;
  max-width: none;
  line-height: 1.7;
}

.experts-scroller {
  display: flex;
  justify-content: center;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
}

.experts-track {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 4px 0 28px;
  width: max-content;
  animation: experts-marquee 32s linear infinite;
}

.experts-scroller:hover .experts-track,
.experts-scroller:focus-within .experts-track {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .experts-track {
    animation: none;
  }
}
@keyframes experts-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.expert-card {
  flex: 0 0 auto;
  width: 200px;
  margin-right: 20px;
  text-align: center;
}

.expert-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4;
  border-radius: var(--r-lg);
  background: var(--primary-subtle);
  border: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-soft);
  margin-bottom: 14px;
  overflow: hidden;
}

.expert-photo svg {
  width: 46%;
  height: 46%;
}

.expert-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.expert-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mint);
  color: #ffffff;
  box-shadow: var(--shadow-1);
}

.expert-badge svg {
  width: 15px;
  height: 15px;
}

.expert-name {
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 2px;
}

.expert-role-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
  color: var(--ink-mute);
  line-height: 1.6;
}

.experts-strengths {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 48px;
}

@media (min-width: 768px) {
  .experts-strengths {
    grid-template-columns: repeat(3, 1fr);
  }
}
.strength-card {
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  padding: 24px;
  background: var(--canvas);
  box-shadow: var(--shadow-1);
}

.strength-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 10px;
}

.strength-desc {
  font-size: 15px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0;
}

.experts-closing {
  text-align: center;
  max-width: 620px;
  margin: 64px auto 0;
  font-size: 18px;
  color: var(--ink-mute);
  line-height: 1.5;
}

.experts-closing .experts-emphasis {
  font-size: 1.25em;
  color: var(--ink);
}

.legal-notice {
  font-size: 13px;
  color: var(--ink-mute);
  line-height: 1.8;
  margin: 0 0 8px;
}

.legal-copyright {
  font-size: 12px;
  color: var(--ink-mute);
  opacity: 0.75;
  margin: 0;
}

/* ==========================================================================
   6번째 섹션: 조회부터 환급까지 여정 타임라인
   ========================================================================== */
.journey-grid {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

@media (min-width: 1024px) {
  .journey-grid {
    flex-direction: row;
    align-items: center;
    gap: 56px;
  }
  .journey-intro {
    flex: 1;
    min-width: 0;
  }
  .journey-timeline-wrap {
    flex: 1;
    min-width: 0;
  }
}
.journey-heading {
  margin: 0 0 16px;
  font-size: 26px;
  font-weight: 700;
}

@media (min-width: 1024px) {
  .journey-heading {
    font-size: 36px;
  }
}
.journey-line {
  display: block;
}

.journey-emphasis {
  font-size: 1.1em;
  font-weight: 700;
  color: var(--ink);
}

.journey-badge {
  display: inline-block;
  margin: 20px 0 0;
  padding: 9px 18px;
  background: var(--primary-subtle);
  color: var(--primary-deep);
  font-weight: 600;
  font-size: 13px;
  border-radius: var(--r-pill);
}

/* 타임라인을 하나의 떠 있는 3D 패널(대시보드 목업 톤)로 감싸고, 배경에 흐린 컬러 블롭을
   깔아 히어로/원클릭 카드와 같은 입체 어휘를 쓰되 "카드 패널"이라는 다른 느낌으로 재해석 */
.journey-timeline-wrap {
  position: relative;
  isolation: isolate;
}

.journey-timeline-wrap::before,
.journey-timeline-wrap::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(36px);
  pointer-events: none;
}

.journey-timeline-wrap::before {
  width: 46%;
  height: 30%;
  top: -8%;
  right: -6%;
  background: radial-gradient(circle, rgba(75, 63, 228, 0.22) 0%, rgba(75, 63, 228, 0) 72%);
}

.journey-timeline-wrap::after {
  width: 38%;
  height: 26%;
  bottom: -6%;
  left: -8%;
  background: radial-gradient(circle, rgba(20, 165, 122, 0.16) 0%, rgba(20, 165, 122, 0) 72%);
}

.journey-timeline {
  list-style: none;
  margin: 0;
  padding: 40px 32px 32px;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 30px 40px 60px -30px rgba(16, 25, 43, 0.28), 0 4px 16px -4px rgba(16, 25, 43, 0.1);
  transform: perspective(1600px) rotate3d(0, 1, 0, -2deg);
}

.journey-step {
  position: relative;
  display: grid;
  grid-template-columns: 40px 1fr;
  grid-template-areas: "marker content" "marker status";
  column-gap: 18px;
  row-gap: 10px;
  padding-bottom: 32px;
}

.journey-step:last-child {
  padding-bottom: 0;
}

.journey-marker {
  grid-area: marker;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.journey-number {
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink-mute);
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}

/* 타임라인 마커 아이콘 — 원클릭 섹션과 같은 글로시 3D 배지 어휘를 더 작은 스케일로 재사용 */
.journey-marker .icon-badge {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 13px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 -6px 10px rgba(0, 0, 0, 0.12) inset, 6px 10px 16px -8px rgba(16, 25, 43, 0.35);
  transform: perspective(400px) rotate3d(1, -1, 0, 8deg);
  overflow: hidden;
}

.journey-marker .icon-badge::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.38) 0%, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0.1) 100%);
  pointer-events: none;
}

.journey-marker .icon-badge svg {
  position: relative;
  filter: drop-shadow(0 1px 2px rgba(16, 25, 43, 0.2));
}

.journey-marker .icon-badge.icon-badge--blue {
  background: linear-gradient(150deg, var(--primary-soft) 0%, var(--primary) 100%);
  color: #fff;
}

.journey-marker .icon-badge.icon-badge--navy {
  background: linear-gradient(150deg, var(--primary) 0%, var(--primary-press) 100%);
  color: #fff;
}

.journey-marker .icon-badge.icon-badge--green {
  background: linear-gradient(150deg, #35c793 0%, var(--mint-deep) 100%);
  color: #fff;
}

.journey-step:not(:last-child) .journey-marker::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 2px;
  height: 28px;
  background: linear-gradient(180deg, var(--hairline-strong) 0%, var(--hairline) 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}

.journey-content {
  grid-area: content;
  padding-top: 4px;
}

.journey-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 4px;
}

.journey-desc {
  font-size: 14px;
  color: var(--ink-mute);
  line-height: 1.5;
  margin: 0;
}

.journey-status {
  grid-area: status;
  justify-self: start;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--r-pill);
  white-space: nowrap;
}

@media (min-width: 900px) {
  .journey-step {
    grid-template-columns: 36px 1fr auto;
    grid-template-areas: "marker content status";
    align-items: center;
  }
  .journey-status {
    justify-self: end;
  }
}
.journey-step--blue .journey-status {
  color: var(--primary-deep);
  background: var(--primary-subtle);
}

.journey-step--navy .journey-status {
  color: #ffffff;
  background: var(--ink-900);
}

.journey-step--green .journey-status {
  color: var(--mint-deep);
  background: var(--mint-subtle);
}

.journey-disclaimer {
  margin-top: 32px;
  font-size: 13px;
  color: var(--ink-mute);
  text-align: center;
}

/* ==========================================================================
   7번째 섹션: FAQ
   ========================================================================== */
.faq-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 48px;
}

@media (min-width: 640px) {
  .faq-stats {
    grid-template-columns: repeat(3, 1fr);
  }
}
.faq-stat {
  text-align: center;
  padding: 32px 20px;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-1);
}

.faq-stat .card-icon {
  margin: 0 auto 16px;
}

.faq-stat-value {
  font-size: 26px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}

@media (min-width: 1024px) {
  .faq-stat-value {
    font-size: 30px;
  }
}
.faq-stat-label {
  font-size: 14px;
  color: var(--ink-mute);
  margin: 0;
}

.faq-head {
  max-width: 640px;
  margin-bottom: 40px;
}

.faq-heading {
  margin: 0 0 16px;
  font-size: 26px;
  font-weight: 700;
}

@media (min-width: 1024px) {
  .faq-heading {
    font-size: 34px;
  }
}
.faq-heading-line {
  display: block;
}

.faq-heading-emphasis {
  font-size: 1.05em;
  font-weight: 700;
  color: var(--ink);
}

.faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 1024px) {
  .faq-grid {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}
.faq-item {
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  padding: 4px 24px;
  background: var(--canvas);
  box-shadow: var(--shadow-1);
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.faq-item[open] {
  border-color: var(--primary);
  box-shadow: var(--shadow-2);
}

.faq-item summary {
  list-style: none;
  min-height: 60px;
  display: flex;
  align-items: center;
  gap: 20px;
  cursor: pointer;
  font-weight: 600;
  color: var(--ink);
  font-size: 16px;
  padding: 18px 0;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-question {
  flex: 1;
}

.faq-plus {
  width: 28px;
  height: 28px;
  color: var(--primary);
  flex-shrink: 0;
  transition: transform var(--transition-base), color var(--transition-base);
}

.faq-plus svg {
  width: 100%;
  height: 100%;
}

.faq-item[open] .faq-plus {
  transform: rotate(45deg);
}

.faq-item p {
  margin: 0 0 24px;
  color: var(--ink-secondary);
  font-size: 15px;
  line-height: 1.7;
}

.faq-contact-card {
  margin-top: 48px;
  padding: 48px 32px;
  text-align: center;
  background: var(--ink-900);
  border-radius: var(--r-lg);
}

.faq-contact-card h3 {
  margin: 0 0 12px;
  color: #ffffff;
  font-weight: 700;
  font-size: 24px;
}

.faq-contact-card p {
  max-width: 520px;
  margin: 0 auto 24px;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.6;
}

.faq-contact-card .btn-primary {
  background: #ffffff;
  color: var(--ink-900);
}

.faq-contact-card .btn-primary:hover {
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

/* ==========================================================================
   환급 시작 화면 (refund-check.html) — 사업자 유형 선택 → 카카오 로그인 흐름
   ========================================================================== */
.apply-container {
  max-width: 720px;
}

.apply-intro {
  text-align: center;
  max-width: 480px;
  margin: 0 auto 40px;
}

.apply-title {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.35;
  margin: 16px 0 14px;
  letter-spacing: -0.01em;
}

@media (min-width: 768px) {
  .apply-title {
    font-size: 36px;
  }
}
.apply-subcopy {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-mute);
}

.apply-select-heading {
  text-align: center;
  font-size: 19px;
  font-weight: 700;
  margin: 0 0 20px;
}

.apply-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 48px;
}

@media (min-width: 640px) {
  .apply-cards {
    grid-template-columns: 1fr 1fr;
  }
}
.apply-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  padding: 32px 28px;
  box-shadow: var(--shadow-1);
}

.apply-card-title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 8px;
}

.apply-card-desc {
  font-size: 14px;
  color: var(--ink-mute);
  line-height: 1.5;
  margin: 0 0 24px;
}

.btn-kakao {
  width: 100%;
  background: #FEE500;
  color: #391b1b;
  box-shadow: var(--shadow-1);
}

.btn-kakao:hover {
  background: #fcda00;
}

.btn-kakao .icon {
  width: 20px;
  height: 20px;
}

.apply-trust {
  text-align: center;
  background: var(--canvas-soft);
  border-radius: var(--r-xl);
  padding: 40px 28px;
  margin-bottom: 24px;
}

.apply-trust-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--gold-subtle);
  color: var(--gold-deep);
  margin-bottom: 16px;
}

.apply-trust-icon svg {
  width: 24px;
  height: 24px;
}

.apply-trust-title {
  font-size: 19px;
  font-weight: 700;
  margin: 0 0 12px;
}

.apply-trust-desc {
  font-size: 15px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0 0 18px;
}

.apply-trust-badge {
  display: inline-block;
  padding: 8px 18px;
  background: var(--primary-subtle);
  color: var(--primary-deep);
  font-weight: 600;
  font-size: 13px;
  border-radius: var(--r-pill);
  margin: 0;
}

.apply-disclaimer {
  text-align: center;
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0;
}

/* ==========================================================================
   간편인증 정보 입력 화면 (auth-individual.html) — 최소 상단바 + 단일 선택 카드 + 폼
   ========================================================================== */
.flow-topbar {
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid var(--hairline);
  z-index: 50;
  padding: 14px 0;
}

.flow-topbar-inner {
  display: flex;
  align-items: center;
  gap: 14px;
}

.flow-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--ink);
  flex-shrink: 0;
  transition: background var(--transition-base);
}

.flow-back:hover {
  background: var(--canvas-soft);
}

.flow-back svg {
  width: 20px;
  height: 20px;
}

.flow-step-label {
  font-weight: 600;
  font-size: 15px;
  color: var(--ink);
}

.auth-container {
  max-width: 480px;
}

.auth-intro {
  text-align: center;
  margin: 8px 0 40px;
}

.auth-title {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 12px;
}

@media (min-width: 768px) {
  .auth-title {
    font-size: 28px;
  }
}
.auth-subcopy {
  font-size: 15px;
  color: var(--ink-mute);
  line-height: 1.6;
}

.auth-block {
  margin-bottom: 32px;
}

.form-section-heading {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 16px;
}

.auth-method-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.auth-method-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1.5px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--canvas);
  cursor: pointer;
  transition: border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
}

.auth-method-card input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.auth-method-card:has(input:checked) {
  border-color: var(--primary);
  background: var(--primary-subtle);
  box-shadow: var(--shadow-1);
}

.auth-method-card:has(input:focus-visible) {
  outline: 3px solid var(--primary-soft);
  outline-offset: 2px;
}

.auth-method-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--r-md);
  flex-shrink: 0;
  font-weight: 800;
  font-size: 17px;
}

.auth-method-icon svg {
  width: 22px;
  height: 22px;
}

.auth-method-icon--kakao {
  background: #FEE500;
  color: #391b1b;
}

.auth-method-icon--naver {
  background: #03C75A;
  color: #ffffff;
}

.auth-method-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  text-align: left;
}

.auth-method-text strong {
  font-size: 15px;
  color: var(--ink);
}

.auth-method-text span {
  font-size: 13px;
  color: var(--ink-mute);
}

.auth-method-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--primary);
  color: #ffffff;
  flex-shrink: 0;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.auth-method-check svg {
  width: 13px;
  height: 13px;
}

.auth-method-card:has(input:checked) .auth-method-check {
  opacity: 1;
  transform: scale(1);
}

.form-field {
  margin-bottom: 18px;
}

.form-field label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: var(--ink);
  font-size: 14px;
}

.field-required {
  color: var(--error);
}

.form-field input[type=text],
.form-field input[type=tel],
.form-field input[type=password] {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1.5px solid var(--hairline-strong);
  border-radius: var(--r-sm);
  font-size: 16px;
  font-family: inherit;
  background: var(--canvas-soft);
  transition: border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.form-field input[type=text]:focus,
.form-field input[type=tel]:focus,
.form-field input[type=password]:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-subtle);
  background: #ffffff;
}

.field-error {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--error);
  line-height: 1.4;
}

.btn-block {
  width: 100%;
}

.btn:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

.auth-disclaimer {
  margin: 20px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.6;
}

/* ==========================================================================
   간편인증 요청 완료 대기 화면 (auth-pending-kakao.html / auth-pending-naver.html)
   ========================================================================== */
.pending-container {
  max-width: 440px;
  text-align: center;
}

.pending-status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  margin: 8px 0 28px;
  font-weight: 800;
  font-size: 30px;
  box-shadow: var(--shadow-2);
}

.pending-status-icon svg {
  width: 38px;
  height: 38px;
}

.pending-status-icon--kakao {
  background: #FEE500;
  color: #391b1b;
}

.pending-status-icon--naver {
  background: #03C75A;
  color: #ffffff;
}

.pending-status-icon--cert {
  background: var(--primary-subtle);
  color: var(--primary-deep);
  box-shadow: none;
}

.pending-note {
  font-size: 14px;
  color: var(--ink-mute);
  text-align: center;
  line-height: 1.6;
  margin: 28px 0 16px;
}

.pending-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 14px;
}

@media (min-width: 768px) {
  .pending-title {
    font-size: 28px;
  }
}
.pending-subcopy {
  font-size: 15px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0 0 36px;
}

.pending-steps {
  list-style: none;
  margin: 0 0 32px;
  padding: 24px;
  background: var(--canvas-soft);
  border-radius: var(--r-lg);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.pending-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.pending-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--primary);
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}

.pending-step-text {
  font-size: 15px;
  color: var(--ink);
  line-height: 1.5;
  padding-top: 2px;
}

.pending-notice {
  margin: 0 0 20px;
  padding: 14px 16px;
  background: var(--error-subtle);
  color: var(--error);
  border-radius: var(--r-md);
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.pending-divider {
  border: none;
  border-top: 1px solid var(--hairline);
  margin: 40px 0 28px;
}

.pending-help-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 10px;
}

.pending-help-desc {
  font-size: 14px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0 0 20px;
}

.btn-outline {
  background: var(--canvas);
  color: var(--primary);
  border: 1.5px solid var(--primary);
}

.btn-outline:hover {
  background: var(--primary-subtle);
}

/* ==========================================================================
   간편인증 확인 중 로딩 화면 (auth-loading.html)
   ========================================================================== */
.loading-container {
  max-width: 400px;
  text-align: center;
}

.loading-spinner {
  width: 60px;
  height: 60px;
  margin: 0 auto 36px;
  border-radius: 50%;
  border: 5px solid var(--hairline);
  border-top-color: var(--primary);
  animation: auth-spin 0.85s linear infinite;
}

@keyframes auth-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   로그인 이후 앱 화면 공통 헤더/탭바 (result-individual.html 등)
   ========================================================================== */
.app-header {
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid var(--hairline);
  z-index: 50;
  padding: 14px 0;
}

.app-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.app-header-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}

.app-header-actions a {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-mute);
  text-decoration: none;
  transition: color var(--transition-base);
}

.app-header-actions a:hover {
  color: var(--ink);
}

.app-header-actions a[aria-disabled=true] {
  opacity: 0.5;
  cursor: default;
}

.app-tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  background: var(--canvas);
  border-top: 1px solid var(--hairline);
  box-shadow: 0 -6px 20px rgba(16, 25, 43, 0.06);
  z-index: 60;
  padding: 6px 0 max(6px, env(safe-area-inset-bottom));
}

.app-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 8px 4px;
  text-decoration: none;
  color: var(--ink-mute);
  font-size: 11px;
  font-weight: 600;
}

.app-tab svg {
  width: 22px;
  height: 22px;
}

.app-tab.is-active {
  color: var(--primary);
}

.app-tab[aria-disabled=true] {
  opacity: 0.5;
}

/* ==========================================================================
   개인사업자 환급 결과 화면 (result-individual.html)
   ========================================================================== */
.result-container {
  max-width: 520px;
  padding-bottom: 96px;
}

.result-intro {
  text-align: center;
  margin: 28px 0 28px;
}

.result-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 8px;
}

@media (min-width: 768px) {
  .result-title {
    font-size: 26px;
  }
}
.result-date {
  font-size: 13px;
  color: var(--ink-mute);
  margin: 0;
}

.result-total-card {
  background: linear-gradient(150deg, var(--primary-soft) 0%, var(--primary) 55%, var(--primary-press) 100%);
  color: #ffffff;
  border-radius: var(--r-xl);
  padding: 32px 28px;
  text-align: center;
  margin-bottom: 32px;
  box-shadow: var(--shadow-2);
}

.result-total-label {
  font-size: 14px;
  font-weight: 500;
  opacity: 0.82;
  margin: 0 0 10px;
}

.result-total-amount {
  font-size: 38px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  line-height: 1.1;
}

@media (min-width: 768px) {
  .result-total-amount {
    font-size: 44px;
  }
}
.result-total-unit {
  font-size: 0.5em;
  font-weight: 600;
  margin-left: 2px;
}

.result-total-summary {
  font-size: 13px;
  opacity: 0.85;
  margin: 0;
}

.progress-stepper {
  display: flex;
  align-items: flex-start;
  list-style: none;
  margin: 0 0 40px;
  padding: 0 6px;
}

.progress-step {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.progress-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--hairline-strong);
}

.progress-step.is-done:not(:last-child)::after {
  background: var(--primary);
}

.progress-dot {
  position: relative;
  z-index: 1;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--canvas);
  border: 2px solid var(--hairline-strong);
  margin-bottom: 8px;
}

.progress-step.is-done .progress-dot {
  background: var(--primary);
  border-color: var(--primary);
}

.progress-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-mute);
}

.progress-step.is-done .progress-label {
  color: var(--ink);
}

.result-section-heading {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 16px;
}

.result-tax-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 36px;
}

.result-tax-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  text-decoration: none;
  color: inherit;
  transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.result-tax-card:hover {
  border-color: var(--primary-soft);
  box-shadow: var(--shadow-1);
  transform: translateY(-1px);
}

.result-tax-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}

.result-tax-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.result-tax-amount {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.result-tax-chevron {
  width: 18px;
  height: 18px;
  color: var(--ink-mute);
  flex-shrink: 0;
}

.result-cta {
  margin-bottom: 16px;
}

.result-disclaimer {
  text-align: center;
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.6;
  margin: 0 0 40px;
}

.result-contact {
  text-align: center;
  background: var(--canvas-soft);
  border-radius: var(--r-xl);
  padding: 32px 24px;
}

.result-contact-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 6px;
}

.result-contact-desc {
  font-size: 14px;
  color: var(--ink-mute);
  margin: 0 0 20px;
}

/* ==========================================================================
   환급 신청 내역 목록 (history-individual.html)
   ========================================================================== */
.history-container {
  max-width: 520px;
  padding-bottom: 96px;
}

.history-title {
  font-size: 22px;
  font-weight: 700;
  margin: 28px 0 8px;
}

.history-subcopy {
  font-size: 14px;
  color: var(--ink-mute);
  margin: 0 0 28px;
}

.history-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.history-card {
  display: block;
  padding: 22px 22px;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: inherit;
  box-shadow: var(--shadow-1);
  transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.history-card:hover {
  border-color: var(--primary-soft);
  box-shadow: var(--shadow-2);
  transform: translateY(-1px);
}

.history-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.history-card-date {
  font-size: 13px;
  color: var(--ink-mute);
  font-weight: 600;
}

.history-status {
  display: inline-block;
  padding: 5px 12px;
  border-radius: var(--r-pill);
  font-size: 12px;
  font-weight: 700;
}

.history-status--pending {
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

.history-status--done {
  background: var(--mint-subtle);
  color: var(--mint-deep);
}

.history-card-amount {
  font-size: 24px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  margin: 0 0 4px;
  color: var(--ink);
}

.history-card-unit {
  font-size: 0.55em;
  font-weight: 600;
  margin-left: 2px;
}

.history-card-meta {
  font-size: 13px;
  color: var(--ink-mute);
  margin: 0;
}

/* ==========================================================================
   법인사업자 인증수단 선택 화면 (auth-corporate.html)
   ========================================================================== */
.corp-method-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 28px;
}

.corp-method-card {
  position: relative;
  display: block;
  padding: 22px 52px 22px 22px;
  border: 1.5px solid var(--hairline);
  border-radius: var(--r-lg);
  background: var(--canvas);
  cursor: pointer;
  transition: border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
}

.corp-method-card input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.corp-method-card:has(input:checked) {
  border-color: var(--primary);
  background: var(--primary-subtle);
  box-shadow: var(--shadow-1);
}

.corp-method-card.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  background: #f5f6f8;
}

.corp-method-card.is-disabled strong {
  color: #9aa2af;
}

.corp-method-card:has(input:focus-visible) {
  outline: 3px solid var(--primary-soft);
  outline-offset: 2px;
}

.corp-method-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-md);
  background: var(--primary-subtle);
  color: var(--primary-deep);
  margin-bottom: 14px;
}

.corp-method-card:has(input:checked) .corp-method-icon {
  background: var(--canvas);
}

.corp-method-icon svg {
  width: 22px;
  height: 22px;
}

.corp-method-body {
  display: block;
}

.corp-method-body strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}

.corp-method-body span {
  display: block;
  font-size: 13px;
  color: var(--ink-mute);
  line-height: 1.5;
}

.corp-method-radio {
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--hairline-strong);
  background: var(--canvas);
}

.corp-method-card:has(input:checked) .corp-method-radio {
  border-color: var(--primary);
  background: var(--primary);
  box-shadow: inset 0 0 0 4px var(--canvas);
}

/* ==========================================================================
   법인사업자 홈택스 인증 정보 입력 화면 (auth-corporate-hometax.html)
   ========================================================================== */
.password-field-wrap {
  position: relative;
}

.password-field-wrap input {
  padding-right: 44px;
}

.password-toggle-btn {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: var(--ink-mute);
  cursor: pointer;
  border-radius: var(--r-sm);
}

.password-toggle-btn:hover {
  color: var(--ink);
  background: var(--canvas-soft);
}

.password-toggle-btn svg {
  width: 20px;
  height: 20px;
}

.password-toggle-btn .icon-hide {
  display: none;
}

.password-toggle-btn.is-visible .icon-show {
  display: none;
}

.password-toggle-btn.is-visible .icon-hide {
  display: inline-flex;
}

.ssn-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ssn-row input {
  flex: 1;
  min-width: 0;
  text-align: center;
  letter-spacing: 0.08em;
}

.ssn-dash {
  color: var(--ink-mute);
  font-weight: 600;
  flex-shrink: 0;
}

/* ==========================================================================
   상태 화면 (완료/오류/결과없음)
   ========================================================================== */
.status-container {
  text-align: center;
  max-width: 520px;
  margin: 0 auto;
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  padding: 48px 32px;
  box-shadow: var(--shadow-2);
}

.status-icon {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  margin: 0 auto 24px;
}

.status-icon svg {
  width: 32px;
  height: 32px;
}

.status-icon.success {
  background: var(--mint-subtle);
  color: var(--mint-deep);
}

.status-icon.error {
  background: var(--error-subtle);
  color: var(--error);
}

.status-icon.neutral {
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

.status-container p {
  color: var(--ink-mute);
  line-height: 1.6;
}

.status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

/* ==========================================================================
   모바일 하단 고정 CTA
   ========================================================================== */
.mobile-cta-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--ink-900);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  z-index: 60;
  box-shadow: var(--shadow-3);
}

.mobile-cta-bar span {
  font-weight: 600;
  font-size: 15px;
}

.mobile-cta-bar .btn-primary {
  min-height: 44px;
  padding: 10px 22px;
  box-shadow: none;
}

@media (min-width: 1024px) {
  .mobile-cta-bar {
    display: none;
  }
}
.mobile-cta-bar.is-hidden {
  display: none;
}

/* ==========================================================================
   푸터
   ========================================================================== */
.site-footer {
  padding: var(--sp-8) 0 96px;
  background: var(--canvas);
  border-top: 1px solid var(--hairline);
}

@media (min-width: 1024px) {
  .site-footer {
    padding-bottom: 32px;
  }
}
/* ==========================================================================
   접근성: 모션 축소 환경
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
/* ===== 법인 결과/인증서 업로드 화면 보강 (기능 연동으로 추가) ===== */
.corp-info-list {
  text-align: left;
  margin-top: 0.85rem;
}

.corp-info-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0;
  border-top: 1px solid rgba(17, 24, 39, 0.07);
  font-size: 0.92rem;
}

.corp-info-row:first-child {
  border-top: 0;
}

.corp-info-row > span:first-child {
  color: #6b7280;
  flex: 0 0 auto;
}

.corp-info-row > span:last-child {
  text-align: right;
  font-weight: 600;
  color: #1f2633;
}

.corp-tax-sub {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8rem;
  color: #8a93a3;
  font-weight: 400;
}

.corp-empty {
  text-align: center;
  color: #8a93a3;
  font-size: 0.9rem;
  padding: 1rem 0;
}

.field-hint {
  margin: 0.4rem 0 0;
  font-size: 0.8rem;
  color: #8a93a3;
}

.ssn-back-hint {
  color: #c2c8d2;
  letter-spacing: 0.12em;
  font-size: 0.95rem;
  user-select: none;
}

/* 인증서 파일 선택 — 디자인 입력 필드에 맞춰 정돈(기본 브라우저 버튼이 튀지 않게) */
.form-field input[type=file] {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 7px 10px;
  border: 1.5px solid var(--hairline-strong);
  border-radius: var(--r-sm);
  font-size: 14px;
  font-family: inherit;
  color: #6b7280;
  background: var(--canvas-soft);
  cursor: pointer;
  transition: border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.form-field input[type=file]:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-subtle);
  background: #ffffff;
}

.form-field input[type=file]::file-selector-button {
  margin-right: 12px;
  padding: 9px 16px;
  border: none;
  border-radius: 9px;
  background: var(--primary-subtle);
  color: var(--primary);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: filter var(--transition-base);
}

.form-field input[type=file]::file-selector-button:hover {
  filter: brightness(0.96);
}

/* 사업자등록증명 정보 카드 — 흰색/가독성 위주(그라디언트 금액카드와 분리) */
.corp-info-card {
  background: #ffffff;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--r-md);
  padding: 20px 22px;
  box-shadow: 0 10px 28px rgba(17, 24, 39, 0.06);
  text-align: left;
}

.corp-card-title {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: -0.01em;
}

/* 법인세 연도별 세액 카드 */
.corp-fy-card {
  background: #ffffff;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--r-md);
  padding: 16px 18px;
  margin-bottom: 10px;
}

.corp-fy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.corp-fy-title {
  font-size: 15px;
  font-weight: 700;
  color: #1f2633;
}

.corp-fy-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

.corp-fy-sub {
  margin: 2px 0 10px;
  font-size: 12px;
  color: #8a93a3;
}

.corp-fig-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.corp-fig-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 5px 0;
  font-size: 0.9rem;
  border-top: 1px solid rgba(17, 24, 39, 0.06);
}

.corp-fig-row:first-child {
  border-top: 0;
}

.corp-fig-row > span:first-child {
  color: #6b7280;
}

.corp-fig-row > span:last-child {
  font-weight: 600;
  color: #1f2633;
  font-variant-numeric: tabular-nums;
}

.corp-fig-row.is-strong > span:last-child {
  color: var(--primary-deep);
  font-weight: 700;
}

.corp-forms-btn {
  margin-top: 12px;
  width: 100%;
  padding: 9px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--primary-deep);
  background: var(--primary-subtle);
  border: 0;
  border-radius: var(--r-sm);
  cursor: pointer;
}

.corp-forms-btn:hover {
  background: #ddd9fa;
}

.corp-forms-btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.corp-forms-box {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.corp-form-link {
  font-size: 13px;
  color: var(--primary-deep);
  text-decoration: none;
  padding: 7px 10px;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--r-sm);
}

.corp-form-link:hover {
  background: var(--primary-subtle);
}

.corp-forms-msg {
  font-size: 12px;
  color: #8a93a3;
  padding: 6px 0;
}

/* 건강보험 직장가입자 명부 */
.corp-roster-summary {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  color: #4b5563;
}

.corp-roster-summary strong {
  color: var(--primary);
  font-weight: 700;
}

.corp-roster-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.corp-roster-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--r-md);
}

.corp-roster-name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #1f2633;
}

.corp-roster-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  background: #eef0f4;
  color: #6b7280;
}

.corp-roster-badge.is-active {
  background: var(--primary-subtle);
  color: var(--primary-deep);
}

.corp-roster-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}

.corp-roster-jumin {
  font-size: 12px;
  color: #8a93a3;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.corp-roster-period {
  font-size: 12px;
  color: #4b5563;
  font-variant-numeric: tabular-nums;
}

/*# sourceMappingURL=style.css.map */
