/* ==========================================================================
   싸인딜(SignDeal) — 마케팅 사이트 A 스타일시트
   design-system.md v1.1 토큰 그대로 구현. 하드코딩 색·px 최소화(토큰 참조).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 디자인 토큰 (Design Tokens) — §11.1
   -------------------------------------------------------------------------- */
:root {
  /* primitives — Trust Blue */
  --sd-blue-50:#EDF3FF; --sd-blue-100:#D6E4FF; --sd-blue-300:#7FA8F5;
  --sd-blue-500:#3B6FE0; --sd-blue-600:#2456C8; --sd-blue-700:#1B40A0; --sd-blue-900:#102660;
  /* primitives — Friendly Coral */
  --sd-coral-100:#FFE6DD; --sd-coral-400:#FF8A65; --sd-coral-500:#FF6B45; --sd-coral-600:#E8512E;
  /* primitives — Neutral Gray */
  --sd-gray-0:#FFFFFF; --sd-gray-50:#F7F8FA; --sd-gray-100:#EDEFF3; --sd-gray-200:#DDE1E8;
  --sd-gray-400:#9AA1AE; --sd-gray-600:#5B6472; --sd-gray-800:#2B313C; --sd-gray-900:#171A21;
  /* primitives — Status */
  --sd-green-500:#1FA971; --sd-green-50:#E6F7EF; --sd-green-700:#137A50;
  --sd-amber-500:#E5A100; --sd-amber-50:#FDF4DC; --sd-amber-700:#9A6E00;
  --sd-red-500:#E03B3B; --sd-red-50:#FCE9E9;

  /* semantic (light) */
  --sd-bg:var(--sd-gray-0); --sd-bg-subtle:var(--sd-gray-50);
  --sd-surface:var(--sd-gray-0); --sd-surface-raised:var(--sd-gray-0);
  --sd-border:var(--sd-gray-200); --sd-border-subtle:var(--sd-gray-100);
  --sd-text:var(--sd-gray-800); --sd-text-strong:var(--sd-gray-900); --sd-text-muted:var(--sd-gray-600);
  --sd-color-brand:var(--sd-blue-600); --sd-color-action:var(--sd-blue-600);
  --sd-color-action-hover:var(--sd-blue-700);
  --sd-color-accent:var(--sd-coral-500); --sd-color-accent-text:var(--sd-coral-600);
  --sd-color-trust:var(--sd-blue-900);
  --sd-color-success:var(--sd-green-500); --sd-color-success-text:var(--sd-green-700);
  --sd-color-warning:var(--sd-amber-500); --sd-color-warning-text:var(--sd-amber-700);
  --sd-color-danger:var(--sd-red-500);
  --sd-text-on-action:#FFFFFF;

  /* signer roles (면/칩) */
  --sd-signer-1:#2456C8; --sd-signer-1-text:#2456C8;
  --sd-signer-2:#7A3FF2; --sd-signer-2-text:#6A2EE0;
  --sd-signer-3:#1FA971; --sd-signer-3-text:#137A50;
  --sd-signer-4:#E5A100; --sd-signer-4-text:#9A6E00;

  /* spacing */
  --sd-space-1:4px; --sd-space-2:8px; --sd-space-3:12px; --sd-space-4:16px;
  --sd-space-5:20px; --sd-space-6:24px; --sd-space-8:32px; --sd-space-12:48px;
  --sd-space-16:64px; --sd-space-24:96px;

  /* radius */
  --sd-radius-sm:6px; --sd-radius-md:10px; --sd-radius-lg:16px; --sd-radius-xl:24px; --sd-radius-full:9999px;

  /* shadow (블루-틴트, 절제) */
  --sd-shadow-sm:0 1px 2px rgba(16,38,96,.06);
  --sd-shadow-md:0 4px 12px rgba(16,38,96,.08);
  --sd-shadow-lg:0 8px 28px rgba(16,38,96,.12);
  --sd-shadow-focus:0 0 0 3px rgba(36,86,200,.35);

  /* type */
  --sd-font-sans:"Pretendard",-apple-system,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;
  --sd-font-mono:"JetBrains Mono","D2Coding",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* type scale (data-driven via classes below) */
  --sd-text-display:48px; --sd-text-h1:34px; --sd-text-h2:27px; --sd-text-h3:21px;
  --sd-text-body-lg:18px; --sd-text-body:16px; --sd-text-sm:14px;
  --sd-text-caption:13px; --sd-text-legal:13px;

  /* motion */
  --sd-motion-fast:120ms; --sd-motion-base:200ms; --sd-motion-slow:320ms;
  --sd-ease:cubic-bezier(.2,.8,.2,1);

  /* layout */
  --sd-container-max:1120px; --sd-container-reading:720px;
}

[data-theme="dark"] {
  --sd-bg:#0E1320; --sd-bg-subtle:#161D2E;
  --sd-surface:#1B2438; --sd-surface-raised:#222C44;
  --sd-border:#2E3A52; --sd-border-subtle:#232C40;
  --sd-text:#E4E8F0; --sd-text-strong:#F5F7FB; --sd-text-muted:#9AA6BC;
  --sd-color-action:#5B8DEF; --sd-color-action-hover:#7AA5F5;
  --sd-color-accent:#FF8866; --sd-color-accent-text:#FF8866; --sd-color-trust:#A9C2FF;
  --sd-color-success:#3FCB92; --sd-color-success-text:#3FCB92;
  --sd-color-warning:#F0C03A; --sd-color-warning-text:#F0C03A;
  --sd-color-danger:#FF6B6B;
  --sd-text-on-action:#0E1320;
  --sd-green-50:#13251D; --sd-amber-50:#2A2410; --sd-red-50:#2A1515; --sd-blue-50:#16213E;
  --sd-coral-100:#2E1D17;
  --sd-shadow-md:0 4px 12px rgba(0,0,0,.35);
  --sd-shadow-lg:0 8px 28px rgba(0,0,0,.5);
}

/* --------------------------------------------------------------------------
   2. Reset & 베이스
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--sd-font-sans);
  font-size: var(--sd-text-body);
  line-height: 1.7;
  letter-spacing: -0.01em;
  color: var(--sd-text);
  background: var(--sd-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; display: block; }
a { color: var(--sd-color-action); text-decoration: none; }
a:hover { text-decoration: underline; }
ul { list-style: none; padding: 0; }
button { font-family: inherit; cursor: pointer; }
:where(h1,h2,h3,h4) { color: var(--sd-text-strong); line-height: 1.3; letter-spacing: -0.02em; }
.num { font-variant-numeric: tabular-nums; }

/* 키보드 포커스 링 — 모든 인터랙티브 요소(§5.9) */
a:focus-visible, button:focus-visible, summary:focus-visible,
.btn:focus-visible, [tabindex]:focus-visible {
  outline: none;
  box-shadow: var(--sd-shadow-focus);
  border-radius: var(--sd-radius-sm);
}

/* 스킵 링크(접근성) */
.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 200;
  background: var(--sd-color-action); color: var(--sd-text-on-action);
  padding: var(--sd-space-3) var(--sd-space-5); border-radius: var(--sd-radius-md);
}
.skip-link:focus { left: var(--sd-space-4); top: var(--sd-space-4); }

/* --------------------------------------------------------------------------
   3. 레이아웃 유틸
   -------------------------------------------------------------------------- */
.container { width: 100%; max-width: var(--sd-container-max); margin-inline: auto; padding-inline: var(--sd-space-5); }
.section { padding-block: var(--sd-space-16); }
.section--subtle { background: var(--sd-bg-subtle); }
.section__head { max-width: var(--sd-container-reading); margin-bottom: var(--sd-space-8); }
.section__head--center { margin-inline: auto; text-align: center; }
.eyebrow {
  display: inline-block; font-size: var(--sd-text-sm); font-weight: 700;
  color: var(--sd-color-action); margin-bottom: var(--sd-space-3); letter-spacing: 0;
}
.lede { font-size: var(--sd-text-body-lg); color: var(--sd-text-muted); margin-top: var(--sd-space-3); }

h2.h2 { font-size: var(--sd-text-h2); font-weight: 700; }
h3.h3 { font-size: var(--sd-text-h3); font-weight: 600; }
@media (max-width: 767px) {
  h2.h2 { font-size: 22px; }
  h3.h3 { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   4. 버튼 (§5.1)
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sd-space-2);
  min-height: 44px; padding: 0 var(--sd-space-5); border: 1px solid transparent;
  border-radius: var(--sd-radius-md); font-size: 15px; font-weight: 600;
  transition: background var(--sd-motion-fast) var(--sd-ease), transform var(--sd-motion-fast) var(--sd-ease);
  text-decoration: none; white-space: nowrap;
}
.btn:hover { text-decoration: none; }
.btn:active { transform: scale(0.99); }
.btn--lg { min-height: 52px; padding: 0 var(--sd-space-6); font-size: 16px; font-weight: 700; }
.btn--sm { min-height: 36px; padding: 0 var(--sd-space-4); font-size: 14px; }
.btn--block { width: 100%; }

.btn--primary { background: var(--sd-color-action); color: var(--sd-text-on-action); }
.btn--primary:hover { background: var(--sd-color-action-hover); }

.btn--accent { background: var(--sd-coral-100); color: var(--sd-color-accent-text); border-color: var(--sd-coral-500); }
.btn--accent:hover { background: var(--sd-coral-400); color: #fff; }

.btn--secondary { background: transparent; color: var(--sd-blue-600); border-color: var(--sd-blue-300); }
.btn--secondary:hover { background: var(--sd-blue-50); }

.btn--ghost { background: transparent; color: var(--sd-text); }
.btn--ghost:hover { background: var(--sd-bg-subtle); }

/* --------------------------------------------------------------------------
   5. 배지 / 칩 (§5.7)
   -------------------------------------------------------------------------- */
.badge {
  display: inline-flex; align-items: center; gap: var(--sd-space-1);
  font-size: var(--sd-text-caption); font-weight: 600; line-height: 1;
  padding: 6px 10px; border-radius: var(--sd-radius-full);
}
.badge--mcp {
  background: var(--sd-blue-900); color: #fff; font-family: var(--sd-font-mono);
  letter-spacing: .04em; border-radius: var(--sd-radius-sm); padding: 4px 8px; font-weight: 700;
}
.badge--free { background: var(--sd-coral-100); color: var(--sd-color-accent-text); }
.badge--legal { background: var(--sd-blue-50); color: var(--sd-blue-700); }
.badge--pending { background: var(--sd-gray-100); color: var(--sd-gray-600); }
.badge--soon { background: var(--sd-gray-100); color: var(--sd-gray-600); }
.badge--success { background: var(--sd-green-50); color: var(--sd-green-700); }
.badge--warning { background: var(--sd-amber-50); color: var(--sd-amber-700); }

/* 서명자 역할 칩 — 색 + 번호 + 라벨 3중(색맹 안전 §2.4) */
.signer-chip {
  display: inline-flex; align-items: center; gap: var(--sd-space-1);
  font-size: var(--sd-text-caption); font-weight: 600;
  padding: 4px 10px; border-radius: var(--sd-radius-full);
}
.signer-chip__no {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: var(--sd-radius-full);
  color: #fff; font-size: 11px; font-weight: 700;
}
.signer-chip--1 { background: var(--sd-blue-50); color: var(--sd-signer-1-text); }
.signer-chip--1 .signer-chip__no { background: var(--sd-signer-1); }
.signer-chip--2 { background: #F0EAFE; color: var(--sd-signer-2-text); }
.signer-chip--2 .signer-chip__no { background: var(--sd-signer-2); }

/* --------------------------------------------------------------------------
   6. 카드 (§5.3)
   -------------------------------------------------------------------------- */
.card {
  background: var(--sd-surface); border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-lg); padding: var(--sd-space-6);
}
.card--info { background: var(--sd-blue-50); border: none; border-left: 4px solid var(--sd-blue-500); }
.card--trust { background: var(--sd-bg-subtle); border: 1px solid var(--sd-border); }

/* --------------------------------------------------------------------------
   7. 헤더 / 내비게이션 (§0.1)
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--sd-bg) 92%, transparent);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--sd-border-subtle);
}
.nav { display: flex; align-items: center; gap: var(--sd-space-5); min-height: 64px; }
.brand { display: inline-flex; align-items: center; gap: var(--sd-space-2); font-weight: 800; }
.brand__word { font-size: 20px; color: var(--sd-color-brand); letter-spacing: -0.02em; }
.brand:hover { text-decoration: none; }
.nav__menu { display: none; align-items: center; gap: var(--sd-space-5); margin-left: var(--sd-space-4); }
.nav__menu a { color: var(--sd-text); font-size: var(--sd-text-sm); font-weight: 600; }
.nav__menu a:hover { color: var(--sd-color-action); text-decoration: none; }
.nav__actions { display: none; align-items: center; gap: var(--sd-space-2); margin-left: auto; }
.nav__toggle {
  margin-left: auto; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md);
  background: var(--sd-surface); color: var(--sd-text);
}
.theme-toggle {
  width: 44px; height: 44px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md);
  background: var(--sd-surface); color: var(--sd-text); display: inline-flex;
  align-items: center; justify-content: center;
}
.theme-toggle .icon-moon { display: none; }
[data-theme="dark"] .theme-toggle .icon-sun { display: none; }
[data-theme="dark"] .theme-toggle .icon-moon { display: block; }

/* 전역 신뢰 띠 (§0.2) */
.trust-strip {
  background: var(--sd-bg-subtle); border-bottom: 1px solid var(--sd-border-subtle);
  font-size: var(--sd-text-caption); color: var(--sd-text-muted); text-align: center;
  padding: var(--sd-space-2) var(--sd-space-4);
}

/* 모바일 메뉴 패널 */
.mobile-menu {
  display: none; flex-direction: column; gap: var(--sd-space-1);
  padding: var(--sd-space-4) var(--sd-space-5) var(--sd-space-6);
  border-bottom: 1px solid var(--sd-border-subtle); background: var(--sd-surface);
}
.mobile-menu.is-open { display: flex; }
.mobile-menu a { padding: var(--sd-space-3); color: var(--sd-text); font-weight: 600; border-radius: var(--sd-radius-md); }
.mobile-menu a:hover { background: var(--sd-bg-subtle); text-decoration: none; }
.mobile-menu .btn { margin-top: var(--sd-space-3); }

@media (min-width: 1024px) {
  .nav__menu { display: flex; }
  .nav__actions { display: flex; }
  .nav__toggle { display: none; }
}

/* --------------------------------------------------------------------------
   8. 히어로 (§1)
   -------------------------------------------------------------------------- */
.hero {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, var(--sd-blue-50) 0%, var(--sd-bg) 60%);
  padding-block: var(--sd-space-16);
}
.hero__grid { display: grid; gap: var(--sd-space-12); align-items: center; }
.hero__eyebrow { display: inline-flex; align-items: center; gap: var(--sd-space-2); flex-wrap: wrap; margin-bottom: var(--sd-space-5); }
.hero__eyebrow-text { font-size: var(--sd-text-sm); font-weight: 700; color: var(--sd-color-trust); }
.hero h1 {
  font-size: var(--sd-text-display); font-weight: 800; line-height: 1.2;
  letter-spacing: -0.03em; color: var(--sd-text-strong);
}
.hero__sub { font-size: var(--sd-text-body-lg); color: var(--sd-text-muted); margin-top: var(--sd-space-5); max-width: 36ch; }
.hero__sub strong { color: var(--sd-text-strong); }

.hero__values { display: grid; gap: var(--sd-space-4); margin-top: var(--sd-space-8); }
.value { display: flex; gap: var(--sd-space-3); align-items: flex-start; }
.value__icon { flex: none; width: 36px; height: 36px; border-radius: var(--sd-radius-md);
  display: grid; place-items: center; background: var(--sd-blue-50); color: var(--sd-color-action); }
.value__text strong { display: block; color: var(--sd-text-strong); font-weight: 700; }
.value__text span { font-size: var(--sd-text-sm); color: var(--sd-text-muted); }

.price-line {
  margin-top: var(--sd-space-8); padding: var(--sd-space-5);
  background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg);
}
.price-line__main { font-size: var(--sd-text-body-lg); font-weight: 700; color: var(--sd-text-strong); }
.price-line__main .accent { color: var(--sd-color-accent-text); }
.price-line__sub { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-top: var(--sd-space-2); }
.price-amount { font-weight: 800; }
.price-amount .won { font-weight: 600; font-size: 0.7em; }

.hero__cta { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); margin-top: var(--sd-space-8); }
.hero__cta-note { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-top: var(--sd-space-3); }
.hero__speed { margin-top: var(--sd-space-5); font-size: var(--sd-text-sm); color: var(--sd-text-muted); display: inline-flex; align-items: center; gap: var(--sd-space-2); }
.hero__minibadges { margin-top: var(--sd-space-6); font-size: var(--sd-text-caption); color: var(--sd-text-muted); }

/* 히어로 제품 목업 */
.mockup { display: grid; gap: var(--sd-space-4); }
.mockup__chat {
  background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg);
  padding: var(--sd-space-4); box-shadow: var(--sd-shadow-md);
}
.mockup__chat-label { font-size: var(--sd-text-caption); color: var(--sd-text-muted); margin-bottom: var(--sd-space-2); }
.mockup__chat-input {
  display: flex; align-items: center; gap: var(--sd-space-3);
  border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md); padding: var(--sd-space-3) var(--sd-space-4);
}
.mockup__chat-input span { color: var(--sd-text); font-size: var(--sd-text-sm); }
.mockup__chat-send {
  flex: none; width: 32px; height: 32px; border-radius: var(--sd-radius-md);
  background: var(--sd-color-action); color: #fff; display: grid; place-items: center; margin-left: auto;
}

/* 미리보기 카드(시그니처 §5.4) */
.preview-card {
  background: var(--sd-surface-raised); border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-lg); box-shadow: var(--sd-shadow-lg); overflow: hidden;
}
.preview-card__strip {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--sd-space-3) var(--sd-space-5); background: var(--sd-blue-50);
  font-size: var(--sd-text-caption); color: var(--sd-blue-700); font-weight: 600;
}
.preview-card__body { padding: var(--sd-space-5); display: grid; gap: var(--sd-space-3); }
.preview-card__doc { font-weight: 700; color: var(--sd-text-strong); display: flex; align-items: center; gap: var(--sd-space-2); }
.preview-card__row { font-size: var(--sd-text-sm); color: var(--sd-text); display: flex; gap: var(--sd-space-2); }
.preview-card__row dt { color: var(--sd-text-muted); flex: none; min-width: 84px; }
.preview-card__row--label { margin: 0; color: var(--sd-text-muted); }
.preview-card__divider { height: 1px; background: var(--sd-border-subtle); }
.preview-card__fields { display: grid; gap: var(--sd-space-2); }
.preview-card__field { display: flex; align-items: center; justify-content: space-between; gap: var(--sd-space-2); font-size: var(--sd-text-sm); }
.preview-card__actions { display: flex; gap: var(--sd-space-2); padding: var(--sd-space-4) var(--sd-space-5); border-top: 1px solid var(--sd-border-subtle); }
.preview-card__actions .btn { flex: 1; }

/* 카톡 말풍선 목업 */
.kakao-bubble {
  background: #FEE500; color: #3C1E1E; border-radius: var(--sd-radius-md);
  padding: var(--sd-space-3) var(--sd-space-4); font-size: var(--sd-text-sm); max-width: 280px;
  box-shadow: var(--sd-shadow-sm); position: relative;
}
.kakao-bubble strong { display: block; }
.kakao-bubble__sender { font-size: var(--sd-text-caption); color: var(--sd-text-muted); margin-bottom: 4px; padding-left: var(--sd-space-2); }

@media (min-width: 1024px) {
  .hero__grid { grid-template-columns: 1.05fr 0.95fr; }
}

/* --------------------------------------------------------------------------
   9. 작동 방식 — 스텝 (§2)
   -------------------------------------------------------------------------- */
.steps { display: grid; gap: var(--sd-space-5); }
.step { background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg); padding: var(--sd-space-6); }
.step__no {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border-radius: var(--sd-radius-full); background: var(--sd-blue-600); color: #fff;
  font-weight: 800; margin-bottom: var(--sd-space-4); font-variant-numeric: tabular-nums;
}
.step h3 { margin-bottom: var(--sd-space-2); }
.step p { color: var(--sd-text); font-size: var(--sd-text-sm); }
.step .diff-note { display: inline-block; margin-top: var(--sd-space-3); font-size: var(--sd-text-caption); color: var(--sd-color-action); font-weight: 600; }
.step .quote { color: var(--sd-text-strong); font-style: normal; background: var(--sd-bg-subtle); padding: 2px 6px; border-radius: var(--sd-radius-sm); }
@media (min-width: 768px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .steps { grid-template-columns: repeat(4, 1fr); } }

/* --------------------------------------------------------------------------
   10. 기능 (§3)
   -------------------------------------------------------------------------- */
.diff-cards { display: grid; gap: var(--sd-space-5); margin-bottom: var(--sd-space-12); }
.diff-card { background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg); padding: var(--sd-space-6); }
.diff-card__no { font-size: var(--sd-text-h3); font-weight: 800; color: var(--sd-color-action); font-variant-numeric: tabular-nums; }
.diff-card h3 { margin: var(--sd-space-2) 0; }
.diff-card p { font-size: var(--sd-text-sm); color: var(--sd-text); }
.diff-card .vs { display: block; margin-top: var(--sd-space-3); font-size: var(--sd-text-caption); color: var(--sd-text-muted); }
@media (min-width: 768px) { .diff-cards { grid-template-columns: repeat(3, 1fr); } }

.feature-groups { display: grid; gap: var(--sd-space-8); }
.feature-group h3 { margin-bottom: var(--sd-space-4); }
.feature-list { display: grid; gap: var(--sd-space-3); }
.feature-list li { display: flex; gap: var(--sd-space-3); align-items: flex-start; font-size: var(--sd-text-sm); color: var(--sd-text); }
.feature-list .check { flex: none; width: 20px; height: 20px; color: var(--sd-color-action); margin-top: 2px; }
.feature-list strong { color: var(--sd-text-strong); }
.feature-group--roadmap { background: var(--sd-bg-subtle); border-radius: var(--sd-radius-lg); padding: var(--sd-space-6); }
.feature-group--roadmap .feature-list .check { color: var(--sd-gray-400); }
.feature-group__note { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-bottom: var(--sd-space-4); }
@media (min-width: 768px) { .feature-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sd-space-8); } }

/* --------------------------------------------------------------------------
   11. 안전·법적효력 — 신뢰 모드(코랄 0) (§4)
   -------------------------------------------------------------------------- */
.trust-mode { /* 신뢰 모드: 코랄 토큰을 블루/뉴트럴로 오버라이드 (§7.3) */
  --sd-color-accent: var(--sd-blue-600);
  --sd-color-accent-text: var(--sd-blue-700);
}
.trust-block { display: grid; gap: var(--sd-space-6); }
.trust-sub { background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg); padding: var(--sd-space-6); }
.trust-sub > h3 { display: flex; align-items: center; gap: var(--sd-space-2); margin-bottom: var(--sd-space-4); }
.trust-sub .ico { color: var(--sd-color-trust); }
.legal-list { display: grid; gap: var(--sd-space-3); }
.legal-list li { font-size: var(--sd-text-sm); padding-left: var(--sd-space-5); position: relative; }
.legal-list li::before { content: "§"; position: absolute; left: 0; color: var(--sd-blue-500); font-weight: 700; }
.legal-list strong { color: var(--sd-text-strong); }
.legal-list .cite { color: var(--sd-text-muted); font-size: var(--sd-text-caption); }
.honest-note { font-size: var(--sd-text-caption); color: var(--sd-text-muted); margin-top: var(--sd-space-4); padding-top: var(--sd-space-3); border-top: 1px dashed var(--sd-border); }

/* 감사추적 5요소 표 */
.audit-table { width: 100%; border-collapse: collapse; margin-block: var(--sd-space-4); font-size: var(--sd-text-sm); }
.audit-table th, .audit-table td { text-align: left; padding: var(--sd-space-3) var(--sd-space-4); border-bottom: 1px solid var(--sd-border-subtle); }
.audit-table th { color: var(--sd-text-strong); font-weight: 700; white-space: nowrap; width: 38%; vertical-align: top; }
.audit-table td { color: var(--sd-text); }
.mono { font-family: var(--sd-font-mono); font-size: var(--sd-text-caption); font-variant-numeric: tabular-nums; }
.cert-list { display: flex; flex-wrap: wrap; gap: var(--sd-space-2); margin-top: var(--sd-space-3); }

@media (min-width: 768px) { .trust-block { grid-template-columns: repeat(2, 1fr); } .trust-block .trust-sub--wide { grid-column: 1 / -1; } }

/* --------------------------------------------------------------------------
   12. 가격 (§5) — 신뢰 모드(코랄은 무료/990 강조 1곳만)
   -------------------------------------------------------------------------- */
.pricing-cards { display: grid; gap: var(--sd-space-5); margin-bottom: var(--sd-space-8); }
.price-card { background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg); padding: var(--sd-space-6); display: flex; flex-direction: column; }
.price-card--featured { border: 2px solid var(--sd-color-action); }
.price-card__name { font-weight: 700; color: var(--sd-text-strong); font-size: var(--sd-text-h3); }
.price-card__tag { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-top: var(--sd-space-1); }
.price-card__hero { margin: var(--sd-space-5) 0; }
.price-card__hero .big { font-size: 32px; font-weight: 800; color: var(--sd-color-accent-text); }
.price-card__hero .big .won { font-size: 0.6em; font-weight: 600; }
.price-card__hero .vat { font-size: var(--sd-text-caption); color: var(--sd-text-muted); }
.price-card__features { display: grid; gap: var(--sd-space-2); margin-bottom: var(--sd-space-6); }
.price-card__features li { font-size: var(--sd-text-sm); display: flex; gap: var(--sd-space-2); align-items: flex-start; }
.price-card__features .check { flex: none; color: var(--sd-color-action); width: 18px; height: 18px; margin-top: 3px; }
.price-card__features strong { color: var(--sd-text-strong); }
.price-card .btn { margin-top: auto; }
@media (min-width: 768px) { .pricing-cards { grid-template-columns: repeat(3, 1fr); } }

/* 비교표(담백) */
.compare-table { width: 100%; border-collapse: collapse; font-size: var(--sd-text-sm); margin-top: var(--sd-space-5); }
.compare-table caption { text-align: left; color: var(--sd-text-muted); font-size: var(--sd-text-sm); margin-bottom: var(--sd-space-3); }
.compare-table th, .compare-table td { padding: var(--sd-space-3) var(--sd-space-4); border-bottom: 1px solid var(--sd-border-subtle); text-align: left; }
.compare-table thead th { color: var(--sd-text-strong); font-weight: 700; }
.compare-table .col-us { background: var(--sd-blue-50); }
.compare-table td.col-us, .compare-table th.col-us { color: var(--sd-blue-700); font-weight: 700; }
.compare-table .strike { text-decoration: line-through; color: var(--sd-text-muted); }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.high-id-note { margin-top: var(--sd-space-5); font-size: var(--sd-text-sm); color: var(--sd-text-muted); background: var(--sd-bg-subtle); padding: var(--sd-space-4); border-radius: var(--sd-radius-md); }

/* --------------------------------------------------------------------------
   13. 경쟁사 대비 (§6)
   -------------------------------------------------------------------------- */
.why-conclusion {
  margin-top: var(--sd-space-8); text-align: center; font-size: var(--sd-text-body-lg);
  font-weight: 700; color: var(--sd-text-strong);
}
.why-conclusion .accent { color: var(--sd-color-accent-text); }
.why-pricenote { margin-top: var(--sd-space-5); font-size: var(--sd-text-sm); color: var(--sd-text-muted); }

/* --------------------------------------------------------------------------
   14. 계약 종류 (§7)
   -------------------------------------------------------------------------- */
.types-grid { display: grid; gap: var(--sd-space-4); }
.type-card { background: var(--sd-surface); border: 1px solid var(--sd-border); border-radius: var(--sd-radius-lg); padding: var(--sd-space-5); display: flex; flex-direction: column; gap: var(--sd-space-2); }
.type-card--featured { border: 2px solid var(--sd-color-action); }
.type-card__icon { font-size: 28px; line-height: 1; }
.type-card h3 { font-size: var(--sd-text-h3); }
.type-card p { font-size: var(--sd-text-sm); color: var(--sd-text-muted); flex: 1; }
.type-card a.type-link { font-size: var(--sd-text-sm); font-weight: 700; color: var(--sd-color-action); margin-top: var(--sd-space-2); }
.type-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sd-space-2); }
.exclusion-note { margin-top: var(--sd-space-8); }
@media (min-width: 600px) { .types-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .types-grid { grid-template-columns: repeat(3, 1fr); } }

/* --------------------------------------------------------------------------
   15. MCP 연결 가이드 (§8) — 다크 블루 패널
   -------------------------------------------------------------------------- */
.mcp-panel {
  background: var(--sd-blue-900); color: #E4E8F0; border-radius: var(--sd-radius-xl);
  padding: var(--sd-space-12) var(--sd-space-8);
}
.mcp-panel h2 { color: #fff; }
.mcp-panel .lede { color: #B8C6E8; }
.mcp-steps { display: grid; gap: var(--sd-space-6); margin-top: var(--sd-space-8); }
.mcp-step h3 { color: #fff; display: flex; align-items: center; gap: var(--sd-space-2); margin-bottom: var(--sd-space-3); }
.mcp-step .mcp-step__no { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: var(--sd-radius-full); background: var(--sd-blue-500); color: #fff; font-weight: 700; font-size: 14px; }
.mcp-step p { color: #B8C6E8; font-size: var(--sd-text-sm); }
.code-block {
  background: #0A1A40; border: 1px solid #21366B; border-radius: var(--sd-radius-md);
  padding: var(--sd-space-4); margin-top: var(--sd-space-3); overflow-x: auto;
}
.code-block pre { margin: 0; font-family: var(--sd-font-mono); font-size: var(--sd-text-caption); color: #C8D6F5; line-height: 1.6; }
.code-block .tok-key { color: #8FB4FF; }
.code-block .tok-str { color: #7BD8A8; }
.mcp-info { margin-top: var(--sd-space-8); padding: var(--sd-space-5); background: rgba(255,255,255,.05); border: 1px solid #21366B; border-radius: var(--sd-radius-md); }
.mcp-info ul { display: grid; gap: var(--sd-space-2); }
.mcp-info li { font-size: var(--sd-text-sm); color: #C8D6F5; display: flex; gap: var(--sd-space-2); align-items: flex-start; }
.mcp-info li::before { content: "›"; color: var(--sd-blue-300); font-weight: 700; }
.mcp-cta { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); margin-top: var(--sd-space-8); }
.mcp-cta .btn--secondary { color: #fff; border-color: var(--sd-blue-300); }
.mcp-cta .btn--secondary:hover { background: rgba(255,255,255,.08); }
@media (min-width: 768px) { .mcp-steps { grid-template-columns: repeat(3, 1fr); } }

/* --------------------------------------------------------------------------
   16. FAQ (§9) — 아코디언
   -------------------------------------------------------------------------- */
.faq-groups { display: grid; gap: var(--sd-space-8); max-width: var(--sd-container-reading); margin-inline: auto; }
.faq-group h3 { margin-bottom: var(--sd-space-4); color: var(--sd-text-muted); font-size: var(--sd-text-sm); text-transform: none; letter-spacing: 0; font-weight: 700; }
.faq-item { border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md); margin-bottom: var(--sd-space-3); background: var(--sd-surface); }
.faq-item summary {
  list-style: none; cursor: pointer; padding: var(--sd-space-4) var(--sd-space-5);
  font-weight: 600; color: var(--sd-text-strong); display: flex; align-items: center;
  justify-content: space-between; gap: var(--sd-space-3); min-height: 44px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 20px; color: var(--sd-text-muted); flex: none; }
.faq-item[open] summary::after { content: "−"; }
.faq-item__answer { padding: 0 var(--sd-space-5) var(--sd-space-5); color: var(--sd-text); font-size: var(--sd-text-sm); }

/* --------------------------------------------------------------------------
   16-B. 문서 진위 검증 센터 (B13) — 신뢰 모드
   -------------------------------------------------------------------------- */
.verify-grid { display: grid; gap: var(--sd-space-6); align-items: start; }
.verify-panel { display: grid; gap: var(--sd-space-3); }
.verify-panel__hint { font-size: var(--sd-text-sm); color: var(--sd-text-muted); }
.verify-form { display: grid; gap: var(--sd-space-3); margin-top: var(--sd-space-2); }
.verify-form__label, .start-form__label {
  font-size: var(--sd-text-sm); font-weight: 600; color: var(--sd-text-strong);
}
.verify-form__row { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); }
.verify-form__input {
  flex: 1 1 220px; min-height: 44px; padding: 0 var(--sd-space-4);
  border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md);
  background: var(--sd-surface); color: var(--sd-text); font-size: var(--sd-text-sm);
}
.verify-form__input::placeholder { color: var(--sd-gray-400); }
.verify-form__input:focus-visible { outline: none; box-shadow: var(--sd-shadow-focus); border-color: var(--sd-color-action); }
.verify-form__row .btn { flex: none; }
.verify-form__help, .start-form__help { font-size: var(--sd-text-caption); color: var(--sd-text-muted); }
.verify-points { display: grid; gap: var(--sd-space-3); align-content: start; }
.verify-points li { display: flex; gap: var(--sd-space-3); align-items: flex-start; font-size: var(--sd-text-sm); color: var(--sd-text); }
.verify-points .check { flex: none; width: 20px; height: 20px; color: var(--sd-color-action); margin-top: 2px; }
.verify-points strong { color: var(--sd-text-strong); }
@media (min-width: 768px) { .verify-grid { grid-template-columns: 1.1fr 0.9fr; gap: var(--sd-space-8); } }

/* --------------------------------------------------------------------------
   16-C. 시작하기 섹션 (#start) — CTA 목적지
   -------------------------------------------------------------------------- */
.start-grid { display: grid; gap: var(--sd-space-5); max-width: 840px; margin-inline: auto; }
.start-card { display: grid; gap: var(--sd-space-3); align-content: start; }
.start-card .badge { justify-self: start; }
.start-card > p { font-size: var(--sd-text-sm); color: var(--sd-text-muted); }
.start-form { display: grid; gap: var(--sd-space-3); margin-top: var(--sd-space-2); }
.start-form__input {
  min-height: 48px; padding: 0 var(--sd-space-4);
  border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md);
  background: var(--sd-surface); color: var(--sd-text); font-size: var(--sd-text-body);
}
.start-form__input::placeholder { color: var(--sd-gray-400); }
.start-form__input:focus-visible { outline: none; box-shadow: var(--sd-shadow-focus); border-color: var(--sd-color-action); }
.start-card__actions { display: grid; gap: var(--sd-space-2); margin-top: var(--sd-space-2); }
@media (min-width: 768px) { .start-grid { grid-template-columns: repeat(2, 1fr); } }

/* --------------------------------------------------------------------------
   17. CTA 공통 / 섹션 푸터 CTA
   -------------------------------------------------------------------------- */
.section-cta { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); margin-top: var(--sd-space-8); }
.section-cta--center { justify-content: center; }

.final-cta { background: var(--sd-blue-50); }
.final-cta .container { text-align: center; }
.final-cta h2 { font-size: var(--sd-text-h2); }
.final-cta p { color: var(--sd-text-muted); margin-top: var(--sd-space-3); font-size: var(--sd-text-body-lg); }

/* --------------------------------------------------------------------------
   18. 푸터 (§10)
   -------------------------------------------------------------------------- */
.site-footer { background: var(--sd-bg-subtle); border-top: 1px solid var(--sd-border); padding-block: var(--sd-space-12) var(--sd-space-8); margin-top: var(--sd-space-16); }
.footer-cols { display: grid; gap: var(--sd-space-8); }
.footer-col h4 { font-size: var(--sd-text-sm); color: var(--sd-text-strong); margin-bottom: var(--sd-space-4); }
.footer-col ul { display: grid; gap: var(--sd-space-2); }
.footer-col a { font-size: var(--sd-text-sm); color: var(--sd-text-muted); }
.footer-col a:hover { color: var(--sd-color-action); }
.footer-legal { margin-top: var(--sd-space-12); padding-top: var(--sd-space-8); border-top: 1px solid var(--sd-border); display: grid; gap: var(--sd-space-4); }
.footer-legal p { font-size: var(--sd-text-legal); line-height: 1.65; color: var(--sd-text); }
.footer-legal strong { color: var(--sd-text-strong); }
.footer-meta { margin-top: var(--sd-space-8); display: flex; flex-wrap: wrap; gap: var(--sd-space-3); align-items: center; justify-content: space-between; }
.footer-meta__biz { font-size: var(--sd-text-caption); color: var(--sd-text-muted); }
.footer-meta__biz-pending {
  display: inline-block; margin-right: var(--sd-space-2);
  font-size: var(--sd-text-caption); font-weight: 700; line-height: 1;
  padding: 4px 8px; border-radius: var(--sd-radius-full);
  background: var(--sd-gray-100); color: var(--sd-gray-600);
}
.footer-meta__tbd { color: var(--sd-text-muted); opacity: .8; }
.footer-meta__certs { display: flex; flex-wrap: wrap; gap: var(--sd-space-2); align-items: center; }
@media (min-width: 600px) { .footer-cols { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-cols { grid-template-columns: repeat(4, 1fr); } }

/* --------------------------------------------------------------------------
   19. 모바일 sticky CTA (§0.1) — safe-area
   -------------------------------------------------------------------------- */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  padding: var(--sd-space-3) var(--sd-space-4);
  padding-bottom: calc(var(--sd-space-3) + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--sd-bg) 94%, transparent);
  backdrop-filter: blur(8px); border-top: 1px solid var(--sd-border);
}
@media (min-width: 1024px) { .sticky-cta { display: none; } }
@media (max-width: 1023px) { body { padding-bottom: 84px; } }

/* --------------------------------------------------------------------------
   20. 접근성 — reduced motion (§9.3) + 보조
   -------------------------------------------------------------------------- */
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* 데스크탑 타이포 미세 조정(모바일 우선 → 확대) */
@media (max-width: 767px) {
  .hero h1 { font-size: 32px; }
  .section { padding-block: var(--sd-space-12); }
  .mcp-panel { padding: var(--sd-space-8) var(--sd-space-5); }
}

/* --------------------------------------------------------------------------
   21. 서브페이지 공통 (정책·소개·가이드·지원·개발자) — 신규 페이지에서 재사용
   -------------------------------------------------------------------------- */
/* 읽기 폭 제한 컨테이너 */
.container--reading { max-width: var(--sd-container-reading); }

/* 빵부스러기(breadcrumb) */
.breadcrumb { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-bottom: var(--sd-space-5); }
.breadcrumb a { color: var(--sd-text-muted); }
.breadcrumb a:hover { color: var(--sd-color-action); }
.breadcrumb span[aria-hidden] { margin-inline: var(--sd-space-1); color: var(--sd-gray-400); }

/* 법적 문서 상단 고지 배너(초안 — 법무 검토 전) */
.legal-banner {
  margin-top: var(--sd-space-4); padding: var(--sd-space-3) var(--sd-space-5);
  background: var(--sd-amber-50); color: var(--sd-amber-700);
  border: 1px solid var(--sd-amber-500); border-left-width: 4px;
  border-radius: var(--sd-radius-md); font-size: var(--sd-text-sm);
}
.legal-banner strong { color: var(--sd-amber-700); }

/* 문서 본문(약관·정책·소개) */
.doc > h2 { margin-top: var(--sd-space-8); margin-bottom: var(--sd-space-3); }
.doc > h2:first-child { margin-top: 0; }
.doc > p { margin-bottom: var(--sd-space-4); color: var(--sd-text); }
.doc__meta { font-size: var(--sd-text-caption); color: var(--sd-text-muted); margin-bottom: var(--sd-space-6); }
.doc .mission-statement {
  padding: var(--sd-space-5); background: var(--sd-blue-50);
  border-left: 4px solid var(--sd-blue-500); border-radius: var(--sd-radius-md);
  color: var(--sd-text);
}
.doc-list { display: grid; gap: var(--sd-space-3); margin: var(--sd-space-3) 0 var(--sd-space-5); }
.doc-list li { font-size: var(--sd-text-sm); color: var(--sd-text); padding-left: var(--sd-space-5); position: relative; }
.doc-list li::before { content: "·"; position: absolute; left: var(--sd-space-2); color: var(--sd-blue-500); font-weight: 700; }
.doc-list strong { color: var(--sd-text-strong); }
.doc-list--num { counter-reset: doc-step; }
.doc-list--num li::before { content: counter(doc-step); counter-increment: doc-step; left: 0;
  font-size: var(--sd-text-caption); font-weight: 700; color: var(--sd-blue-600); }

/* 가이드용 스텝(5단계 — 세로 흐름) */
.steps--guide { grid-template-columns: 1fr; }
@media (min-width: 768px) { .steps--guide { grid-template-columns: 1fr; } }
@media (min-width: 1024px) { .steps--guide { grid-template-columns: 1fr; max-width: var(--sd-container-reading); } }

/* 공지 목록 */
.notice-list { display: grid; gap: var(--sd-space-3); }
.notice-item {
  display: flex; gap: var(--sd-space-4); align-items: flex-start;
  background: var(--sd-surface); border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md); padding: var(--sd-space-4) var(--sd-space-5);
}
.notice-item__badge { flex: none; padding-top: 2px; }
.notice-item__title { font-weight: 700; color: var(--sd-text-strong); }
.notice-item__desc { font-size: var(--sd-text-sm); color: var(--sd-text-muted); margin-top: var(--sd-space-1); }

/* 인라인 코드(라이트 배경) — mcp-panel 안에서는 어두운 토큰을 별도 지정 */
.code-inline {
  font-family: var(--sd-font-mono); font-size: 0.88em;
  background: var(--sd-bg-subtle); color: var(--sd-blue-700);
  padding: 2px 6px; border-radius: var(--sd-radius-sm);
  border: 1px solid var(--sd-border-subtle);
}
.mcp-panel .code-inline {
  background: rgba(255,255,255,.08); color: #C8D6F5; border-color: #21366B;
}

/* tool 레퍼런스 표 — 좌측 tool 컬럼 강조 */
.tool-table th[scope="row"] { white-space: nowrap; vertical-align: top; }
.tool-table th[scope="row"] .code-inline { font-weight: 600; }
.tool-table td .mono { color: var(--sd-text-muted); font-size: var(--sd-text-caption); }

/* --------------------------------------------------------------------------
   22. 다크 모드 컴포넌트 대비 보정 (WCAG AA) — light 프리미티브 토큰이
       다크에서 재정의되지 않아 저대비가 되는 컴포넌트만 개별 보정한다.
   -------------------------------------------------------------------------- */
[data-theme="dark"] { --sd-shadow-focus: 0 0 0 3px rgba(127,168,245,.5); }
[data-theme="dark"] .btn--secondary { color: var(--sd-blue-300); border-color: var(--sd-blue-500); }
[data-theme="dark"] .btn--secondary:hover { background: rgba(127,168,245,.12); }
[data-theme="dark"] .badge--legal { color: #A9C2FF; }
[data-theme="dark"] .badge--pending,
[data-theme="dark"] .badge--soon { background: var(--sd-bg-subtle); color: var(--sd-text-muted); }
[data-theme="dark"] .badge--success { color: var(--sd-color-success); }
[data-theme="dark"] .badge--warning { color: var(--sd-color-warning); }
[data-theme="dark"] .footer-meta__biz-pending { background: var(--sd-bg-subtle); color: var(--sd-text-muted); }
