/* 강남 쩜오 공식 사전 jumorun.com
   단일 스타일시트. 외부 의존성 0 — 웹폰트·CDN·스크립트 라이브러리 없음.
   페이지당 네트워크 요청은 HTML 1 + CSS 1이 전부입니다.
   설계: 다크 편집형(editorial dark). 강조색 1종(골드)만 사용하고
   브랜드 컬러(카카오·텔레그램·전화)는 아이콘 안에서만 기능적으로 씁니다. */

:root {
  /* 표면 — 따뜻한 계열의 차콜 스케일 */
  --bg:        #0b0c0e;
  --bg-2:      #101114;
  --surface:   #15171b;
  --surface-2: #1b1e23;
  --surface-3: #22262c;

  /* 경계선 */
  --line:      #2b2f36;
  --line-soft: #1e2228;

  /* 텍스트 */
  --text:   #eeece8;
  --text-2: #b6b2ab;
  --muted:  #8a867f;
  --ink:    #17130b; /* 골드 위에 얹는 글자색 */

  /* 강조색 — 1종 */
  --accent:      #d4af57;
  --accent-hi:   #e6c87d;
  --accent-soft: rgba(212, 175, 87, 0.10);
  --accent-line: rgba(212, 175, 87, 0.30);

  /* 채널 아이콘 전용 */
  --kakao:    #fee500;
  --telegram: #2aabee;
  --call:     var(--ink);

  /* 간격 스케일 */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px;

  /* 형태 */
  --r-sm: 8px;
  --r:    12px;
  --r-lg: 16px;

  /* 레이아웃 */
  --maxw:  780px;
  --shell: 1080px;
  --header: 56px;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header) + 16px);
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo',
    'Malgun Gothic', 'Noto Sans KR', 'Helvetica Neue', sans-serif;
  font-size: 16px;
  line-height: 1.78;
  letter-spacing: -0.008em;
  font-variant-numeric: tabular-nums;
  word-break: keep-all;
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

::selection { background: var(--accent-line); color: #fff; }

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hi); }

/* 본문 안의 링크는 기본 상태에서도 식별 가능하게 */
main :is(p, li, dd, td, caption) > a:not(.card):not(.contact-btn) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--accent-line);
  text-underline-offset: 3px;
}
main :is(p, li, dd, td) > a:not(.card):not(.contact-btn):hover {
  text-decoration-color: var(--accent-hi);
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

.skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--accent); color: var(--ink);
  padding: 10px 16px; border-radius: 0 0 var(--r-sm) 0;
  font-weight: 700; z-index: 100;
}
.skip:focus { left: 0; top: 0; }

/* ── 헤더 ───────────────────────────────────────────── */
.site-header {
  height: var(--header);
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s3);
  padding: 0 var(--s4);
  border-bottom: 1px solid var(--line-soft);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(150%) blur(12px);
  -webkit-backdrop-filter: saturate(150%) blur(12px);
  position: sticky; top: 0; z-index: 40;
}
.brand {
  display: inline-flex; align-items: baseline; gap: var(--s2); flex: none;
  white-space: nowrap;
  color: var(--text); font-weight: 800; font-size: 16.5px; letter-spacing: -0.03em;
}
.brand::before {
  content: ""; align-self: center;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
  margin-right: 2px;
}
.brand:hover { color: var(--text); }
.brand .brand-sub {
  display: none; font-weight: 500; font-size: 11.5px;
  color: var(--muted); letter-spacing: 0;
}

.site-nav {
  display: flex; gap: 2px; min-width: 0;
  overflow-x: auto; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 14px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 14px), transparent 100%);
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a {
  position: relative;
  color: var(--text-2); font-size: 13px; font-weight: 600; letter-spacing: -0.02em;
  padding: 6px 10px; border-radius: var(--r-sm); white-space: nowrap;
  transition: color .15s ease, background .15s ease;
}
.site-nav a:hover { background: var(--surface-2); color: var(--text); }
.site-nav a[aria-current="page"] {
  color: var(--accent);
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 1px var(--accent-line);
}

/* ── 히어로 ─────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: calc(100svh - var(--header));
  display: flex; flex-direction: column; justify-content: center;
  padding: var(--s7) var(--s4) var(--s6);
  overflow: hidden;
  border-bottom: 1px solid var(--line-soft);
}
/* 단일 톤(골드) 광원 + 하단 비네트 */
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background:
    /* 우상단 주광 */
    radial-gradient(88% 54% at 85% -8%, rgba(212, 175, 87, 0.175), transparent 60%),
    /* 헤드라인 뒤 확산광 */
    radial-gradient(52% 38% at 26% 32%, rgba(212, 175, 87, 0.055), transparent 72%),
    /* 좌하단 반사광 */
    radial-gradient(72% 46% at 0% 106%, rgba(212, 175, 87, 0.04), transparent 64%),
    /* 우측 광원에서 떨어지는 빛의 기둥 */
    linear-gradient(102deg, transparent 58%, rgba(212, 175, 87, 0.035) 74%, transparent 88%),
    linear-gradient(180deg, #101114 0%, var(--bg) 56%, #090a0c 100%);
}
/* 얇은 수직 괘선 — 아래로 갈수록 사라짐 */
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: repeating-linear-gradient(90deg,
    rgba(255,255,255,0.026) 0 1px, transparent 1px 72px);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.35) 55%, transparent 92%);
          mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.35) 55%, transparent 92%);
}
.hero > * { position: relative; z-index: 1; }
.hero-inner { width: 100%; max-width: var(--shell); margin: 0 auto; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.01em;
  color: var(--accent);
  border: 1px solid var(--accent-line); background: var(--accent-soft);
  padding: 5px 12px 5px 10px; border-radius: 999px; margin: 0 0 var(--s5);
}
.eyebrow::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: currentColor; flex: none;
}

.hero h1 {
  margin: 0 0 var(--s4);
  max-width: none;
  font-size: clamp(26px, 7.6vw, 46px);
  line-height: 1.22; font-weight: 800; letter-spacing: -0.032em;
  text-wrap: balance;
}
.hero h1 .hl { color: var(--accent); }
.hero p.lede {
  margin: 0 0 var(--s5); max-width: 44em;
  font-size: clamp(14.5px, 3.6vw, 17px);
  color: var(--text-2); line-height: 1.75; text-wrap: pretty;
}

/* 상담 채널 — 전화(1차) / 카카오·텔레그램(2차) */
.contact-bar { display: flex; gap: var(--s2); width: 100%; max-width: 580px; }
.contact-btn {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; min-height: 60px; padding: 10px 6px;
  border-radius: var(--r);
  border: 1px solid var(--line);
  background: var(--surface-2);
  color: var(--text); font-weight: 700; font-size: 13.5px; letter-spacing: -0.02em;
  font-family: inherit; cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .12s ease, color .16s ease;
}
.contact-btn:hover {
  border-color: var(--accent-line);
  background: var(--surface-3);
  color: var(--text);
}
.contact-btn:active { transform: translateY(1px); }
.contact-btn svg { width: 20px; height: 20px; flex: none; }
.contact-btn--kakao svg { color: var(--kakao); }
.contact-btn--telegram svg { color: var(--telegram); }

/* 1차 액션 */
.contact-btn--call {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--ink);
  font-weight: 800;
}
.contact-btn--call svg { color: currentColor; }
.contact-btn--call:hover {
  background: var(--accent-hi);
  border-color: var(--accent-hi);
  color: var(--ink);
}

.contact-note {
  margin: var(--s3) 0 0; max-width: 46em;
  font-size: 12.5px; line-height: 1.65; color: var(--muted);
}
.contact-note strong { color: var(--text-2); }
.copy-toast {
  margin: var(--s2) 0 0; font-size: 12.5px; font-weight: 600;
  color: var(--accent); min-height: 19px;
}

.hero-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  margin: var(--s6) 0 0; max-width: 580px;
  border-top: 1px solid var(--line); padding-top: var(--s4);
}
.hero-stats div { min-width: 0; padding-left: var(--s3); border-left: 1px solid var(--line-soft); }
.hero-stats div:first-child { padding-left: 0; border-left: 0; }
.hero-stats dt {
  font-size: 11.5px; color: var(--muted); margin: 0 0 3px;
  line-height: 1.4; letter-spacing: 0;
}
.hero-stats dd {
  margin: 0; font-size: clamp(12.5px, 3.3vw, 16px); font-weight: 700;
  letter-spacing: -0.03em; line-height: 1.35; color: var(--text);
}

/* ── 본문 ───────────────────────────────────────────── */
main { display: block; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--s4); }

.page-head { padding: var(--s6) 0 var(--s2); }
.crumb { font-size: 12.5px; color: var(--muted); margin: 0 0 var(--s3); }
.crumb a { color: var(--text-2); text-decoration: none; }
.crumb a:hover { color: var(--accent); }
.page-head h1 {
  margin: 0 0 var(--s3); font-size: clamp(25px, 6.2vw, 38px);
  line-height: 1.26; font-weight: 800; letter-spacing: -0.035em;
  text-wrap: balance;
}
.page-head .lede {
  margin: 0; color: var(--text-2); font-size: clamp(15px, 3.6vw, 16.5px);
  line-height: 1.75; text-wrap: pretty;
}

.meta-line {
  display: flex; flex-wrap: wrap; gap: 6px;
  font-size: 12px; color: var(--muted);
  padding: var(--s4) 0 0; margin: 0;
}
.meta-line .badge {
  border: 1px solid var(--line-soft); background: var(--bg-2);
  border-radius: 999px; padding: 2px 10px;
  color: var(--text-2); letter-spacing: -0.01em;
}

section { padding: var(--s6) 0; border-top: 1px solid var(--line-soft); }
section:first-of-type { border-top: 0; }

h2 {
  margin: 0 0 var(--s4); font-size: clamp(20px, 4.7vw, 27px);
  line-height: 1.34; font-weight: 800; letter-spacing: -0.028em;
  text-wrap: balance;
}
h3 {
  margin: var(--s6) 0 var(--s3); font-size: clamp(16.5px, 3.9vw, 19px);
  font-weight: 700; letter-spacing: -0.025em; line-height: 1.45;
  text-wrap: balance;
}
h4 { margin: var(--s5) 0 var(--s2); font-size: 15.5px; font-weight: 700; letter-spacing: -0.02em; }

p { margin: 0 0 var(--s4); text-wrap: pretty; }

/* 핵심 답변 — 중립 패널 */
p.answer {
  margin: 0 0 var(--s5);
  padding: var(--s4) var(--s4) calc(var(--s4) - 2px);
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  font-size: clamp(15.5px, 3.9vw, 17px);
  line-height: 1.72; color: var(--text);
}

ul, ol { margin: 0 0 var(--s4); padding-left: 22px; }
li { margin: 0 0 var(--s2); }
li::marker { color: var(--accent-line); }
ol li::marker { color: var(--muted); font-variant-numeric: tabular-nums; }
strong { font-weight: 700; color: #f7f5f2; }

/* 보조 안내 — 골드 톤 패널 */
.note {
  background: linear-gradient(180deg, var(--accent-soft), rgba(212,175,87,0.03));
  border: 1px solid var(--accent-line);
  border-radius: var(--r);
  padding: var(--s4) var(--s4) calc(var(--s4) - 2px);
  margin: 0 0 var(--s5);
  font-size: 14.5px; line-height: 1.72; color: var(--text-2);
}
.note strong { color: var(--accent-hi); }
.note ul, .note ol { margin-bottom: 0; }
.note > :last-child { margin-bottom: 0; }

/* ── 표 ─────────────────────────────────────────────── */
.table-scroll {
  overflow-x: auto; margin: 0 0 var(--s5);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.table-scroll::-webkit-scrollbar { height: 6px; }
.table-scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
.table-scroll::-webkit-scrollbar-track { background: transparent; }

table {
  width: 100%; border-collapse: collapse;
  font-size: 14px; line-height: 1.6;
  min-width: 480px;
}
caption {
  caption-side: bottom; text-align: left;
  font-size: 12.5px; line-height: 1.6; color: var(--muted);
  padding-top: var(--s3);
}
th, td {
  padding: 11px 14px; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--line-soft);
}
thead th {
  background: var(--surface); color: var(--text-2);
  font-weight: 700; font-size: 12.5px; letter-spacing: 0;
  white-space: nowrap;
  border-bottom: 1px solid var(--line);
}
thead th:first-child { border-top-left-radius: var(--r-sm); }
thead th:last-child { border-top-right-radius: var(--r-sm); }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 1px solid var(--line); }
tbody tr { transition: background .12s ease; }
tbody tr:hover { background: rgba(255, 255, 255, 0.022); }
tbody th {
  font-weight: 700; white-space: nowrap; color: var(--text);
  position: sticky; left: 0;
  background: var(--bg);
  box-shadow: 1px 0 0 var(--line-soft);
}
tbody tr:hover th { background: #101114; }
tfoot td, tfoot th {
  font-weight: 700; background: var(--surface); color: var(--text);
  border-bottom: 0;
}
tfoot td:first-child { border-bottom-left-radius: var(--r-sm); }
tfoot td:last-child { border-bottom-right-radius: var(--r-sm); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td small { color: var(--muted); font-size: 12px; font-weight: 500; }

/* ── 계산식 ─────────────────────────────────────────── */
.calc {
  background: var(--bg-2); border: 1px solid var(--line);
  border-radius: var(--r); padding: var(--s4) var(--s4);
  margin: 0 0 var(--s5);
  font-size: 15px; line-height: 1.95;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.015em; color: var(--text);
}
.calc .op { color: var(--accent); font-weight: 700; padding: 0 2px; }
.calc strong { color: var(--accent-hi); font-weight: 800; }

/* ── 체크리스트 ─────────────────────────────────────── */
.checklist { list-style: none; padding: 0; margin: 0 0 var(--s5); }
.checklist li {
  position: relative; padding-left: 30px; margin-bottom: var(--s3);
}
.checklist li::before {
  content: ""; position: absolute; left: 0; top: 0.5em;
  width: 16px; height: 16px;
  border: 1.5px solid var(--accent-line);
  border-radius: 4px; background: var(--accent-soft);
}

/* ── 단계 ───────────────────────────────────────────── */
.steps { list-style: none; counter-reset: s; padding: 0; margin: 0 0 var(--s5); }
.steps > li {
  counter-increment: s; position: relative;
  margin: 0 0 0 14px; padding: 0 0 var(--s5) 34px;
  border-left: 1px solid var(--line);
}
.steps > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.steps > li::before {
  content: counter(s); position: absolute; left: -14px; top: 0;
  width: 27px; height: 27px; border-radius: 50%;
  background: var(--bg); border: 1px solid var(--accent-line);
  color: var(--accent); font-size: 12.5px; font-weight: 800;
  font-variant-numeric: tabular-nums;
  display: flex; align-items: center; justify-content: center;
}
.steps > li > h3 { margin-top: 1px; margin-bottom: var(--s2); }
.steps > li > :last-child { margin-bottom: 0; }

/* ── 문답 ───────────────────────────────────────────── */
.qa { border-top: 1px solid var(--line-soft); padding: var(--s5) 0; }
.qa:first-of-type { border-top: 0; padding-top: 0; }
.qa h3 {
  margin: 0 0 var(--s2); display: flex; gap: 9px; align-items: baseline;
  font-size: clamp(16px, 3.9vw, 17.5px); letter-spacing: -0.028em;
}
.qa h3 .q {
  color: var(--accent); font-weight: 800; flex: none;
  font-variant-numeric: tabular-nums;
}
.qa p { color: var(--text-2); }
.qa p:last-child { margin-bottom: 0; }

/* ── 카드 ───────────────────────────────────────────── */
.cards {
  display: grid; gap: var(--s3); grid-template-columns: 1fr;
  margin: 0 0 var(--s5); padding: 0; list-style: none;
}
.card {
  position: relative; display: block;
  padding: var(--s4) 42px var(--s4) var(--s4);
  background: var(--surface); border: 1px solid var(--line-soft);
  border-radius: var(--r); color: var(--text);
  transition: border-color .16s ease, background .16s ease;
}
.card:hover { border-color: var(--accent-line); background: var(--surface-2); color: var(--text); }
.card strong {
  display: block; margin-bottom: 3px;
  font-size: 15.5px; letter-spacing: -0.025em; color: var(--text);
}
.card span { display: block; font-size: 13.5px; line-height: 1.65; color: var(--text-2); }
.card::after {
  content: "→"; position: absolute; right: var(--s4); top: var(--s4);
  color: var(--accent); font-weight: 700; line-height: 1;
  transition: transform .16s ease;
}
.card:hover::after { transform: translateX(3px); }

/* ── 하단 CTA ───────────────────────────────────────── */
.cta-block {
  margin: var(--s6) 0 0; padding: var(--s5) var(--s4) var(--s5);
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent);
  border-radius: 3px 3px var(--r-lg) var(--r-lg);
}
.cta-block h2 { margin-bottom: var(--s2); font-size: clamp(19px, 4.4vw, 22px); }
.cta-block p { color: var(--text-2); font-size: 14.5px; margin-bottom: var(--s4); }
.cta-block .contact-bar { max-width: none; }

/* ── 푸터 ───────────────────────────────────────────── */
.site-footer {
  margin-top: var(--s8); border-top: 1px solid var(--line-soft);
  background: var(--bg-2); padding: var(--s6) var(--s4) var(--s7);
}
.site-footer .wrap { padding: 0; }
.footer-nav {
  display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5);
  margin: 0 0 var(--s5); padding: 0 0 var(--s5); list-style: none;
  border-bottom: 1px solid var(--line-soft);
}
.footer-nav a {
  color: var(--text-2); font-size: 13.5px; font-weight: 600; letter-spacing: -0.02em;
}
.footer-nav a:hover { color: var(--accent); }
.legal { font-size: 12.5px; color: var(--muted); line-height: 1.75; margin: 0 0 var(--s3); max-width: 62em; }
.legal:last-child { margin-bottom: 0; }
.legal strong { color: var(--text-2); font-weight: 600; }

/* ── 태블릿·데스크톱 ───────────────────────────────── */
@media (min-width: 720px) {
  :root { --header: 64px; }
  body { font-size: 16.5px; }
  .site-header { padding: 0 var(--s5); }
  .brand { font-size: 17.5px; }
  .brand .brand-sub { display: inline; }
  .site-nav { gap: 4px; -webkit-mask-image: none; mask-image: none; }
  .site-nav a { font-size: 14px; padding: 7px 12px; }

  .hero { padding: var(--s8) var(--s5); }
  .hero h1 { max-width: 15.5em; }
  .contact-btn {
    flex-direction: row; gap: 10px; min-height: 58px; font-size: 15px;
  }
  .contact-btn svg { width: 21px; height: 21px; }
  .hero-stats { padding-top: var(--s5); }
  .hero-stats div { padding-left: var(--s5); }
  .hero-stats dt { font-size: 12px; }
  .hero-stats dd { font-size: 17px; }

  .wrap { padding: 0 var(--s5); }
  .page-head { padding: var(--s7) 0 var(--s2); }
  section { padding: var(--s7) 0; }
  .cards { grid-template-columns: 1fr 1fr; gap: var(--s4); }
  table { min-width: 0; font-size: 14.5px; }
  th, td { padding: 12px 16px; }
  p.answer { padding: var(--s5); }
  .note, .calc { padding: var(--s5); }
  .cta-block { padding: var(--s6); }
  .site-footer { padding: var(--s7) var(--s5) var(--s8); }
}

/* 표는 본문 폭보다 넓게 숨 쉬게 */
@media (min-width: 1120px) {
  .table-scroll { margin-inline: -56px; }
  .calc { margin-inline: -8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* ── 인쇄 ───────────────────────────────────────────── */
@media print {
  .site-header, .contact-bar, .cta-block, .copy-toast, .hero::before, .hero::after { display: none; }
  body { background: #fff; color: #111; font-size: 11pt; }
  .hero { min-height: 0; padding: 0 0 12pt; border-bottom: 1px solid #ccc; }
  a { color: #111; text-decoration: underline; }
  .hero h1 .hl, .qa h3 .q, .calc .op { color: #111; }
  p.answer, .note, .calc, .card { background: #fff; border: 1px solid #bbb; }
  thead th, tfoot td { background: #f3f3f3; color: #111; }
  th, td { border-bottom: 1px solid #ddd; }
  tbody th { background: #fff; box-shadow: none; }
  strong { color: #000; }
  .legal, caption, .muted { color: #444; }
  section { break-inside: avoid; }
}


/* ── 모바일 고정 상담바 ─────────────────────────────── */
.mobile-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: flex; gap: var(--s2);
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: saturate(150%) blur(14px);
  -webkit-backdrop-filter: saturate(150%) blur(14px);
  border-top: 1px solid var(--line);
}
.mcta {
  flex: 1 1 0; min-width: 0; min-height: 46px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 10px; border: 1px solid var(--line);
  background: var(--surface-2); color: var(--text);
  font-family: inherit; font-size: 13.5px; font-weight: 700; letter-spacing: -0.025em;
  cursor: pointer; white-space: nowrap;
  transition: border-color .15s ease, background .15s ease;
}
.mcta:hover { border-color: var(--accent-line); background: var(--surface-3); color: var(--text); }
.mcta:active { transform: translateY(1px); }
.mcta--call {
  background: var(--accent); border-color: var(--accent);
  color: var(--ink); font-weight: 800;
}
.mcta--call:hover { background: var(--accent-hi); border-color: var(--accent-hi); color: var(--ink); }
.mcta-toast {
  position: absolute; left: 12px; right: 12px; bottom: 100%; margin-bottom: 10px;
  font-size: 12px; font-weight: 600; line-height: 1.5; color: var(--accent);
  background: var(--bg-2); border: 1px solid var(--accent-line);
  border-radius: var(--r-sm); padding: 8px 11px;
}
.mcta-toast:empty { display: none; }

@media (max-width: 719px) {
  body { padding-bottom: 76px; }
  .hero { min-height: calc(100svh - var(--header) - 76px); }
}
@media (min-width: 720px) {
  .mobile-cta { display: none; }
}
@media print {
  .mobile-cta { display: none; }
  body { padding-bottom: 0; }
}


/* ── 용어 정의 목록 ─────────────────────────────────── */
.terms { margin: 0 0 var(--s5); }
.terms > div { padding: var(--s4) 0; border-top: 1px solid var(--line-soft); }
.terms > div:first-child { border-top: 0; padding-top: 0; }
.terms > div:last-child { padding-bottom: 0; }
.terms dt {
  margin: 0 0 5px; font-size: 16.5px; font-weight: 700;
  letter-spacing: -0.028em; color: var(--text);
}
.terms dt .en {
  margin-left: 7px; font-size: 12.5px; font-weight: 500;
  letter-spacing: 0; color: var(--muted);
}
.terms dd { margin: 0; font-size: 15px; line-height: 1.72; color: var(--text-2); }
.terms dd .also {
  display: block; margin-top: 7px;
  font-size: 13px; font-weight: 600; letter-spacing: -0.01em; color: var(--accent);
  font-variant-numeric: tabular-nums;
}

/* ── 섹션 점프 칩 ───────────────────────────────────── */
.jump {
  display: flex; flex-wrap: wrap; gap: var(--s2);
  margin: var(--s5) 0; padding: 0; list-style: none;
}
.jump a {
  display: inline-block; padding: 8px 14px;
  border: 1px solid var(--line); border-radius: var(--r-sm);
  background: var(--surface); color: var(--text-2);
  font-size: 13.5px; font-weight: 600; letter-spacing: -0.02em;
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.jump a:hover { border-color: var(--accent-line); background: var(--surface-2); color: var(--accent); }

@media (min-width: 720px) {
  .terms dt { font-size: 17px; }
  .terms dd { font-size: 15.5px; }
}
@media print {
  .jump { display: none; }
  .terms dd .also { color: #444; }
}


/* ── 모바일 최적화 (단일 레이아웃) ─────────────────── */
@media (max-width: 719px) {
  /* 히어로: 위쪽 여백을 줄여 제목을 화면 위로 */
  .hero { padding: var(--s6) var(--s4) var(--s5); }
  .eyebrow { margin-bottom: var(--s4); font-size: 11.5px; padding: 4px 11px 4px 9px; }
  .hero h1 { font-size: clamp(26px, 8vw, 38px); line-height: 1.24; }
  .hero p.lede { margin-bottom: var(--s4); font-size: 14.5px; line-height: 1.72; }
  .hero-stats { margin-top: var(--s5); padding-top: var(--s3); }
  .hero-stats dd { font-size: 13.5px; }

  /* 탭 타깃 확보 */
  .site-nav a { min-height: 38px; display: flex; align-items: center; }
  .footer-nav { gap: 2px var(--s5); }
  .footer-nav a { display: inline-block; padding: 7px 0; }
  .jump a { padding: 10px 14px; }
  .crumb a { display: inline-block; padding: 4px 0; }

  /* 세로 스크롤 총량 줄이기 */
  section { padding: var(--s5) 0; }
  h3 { margin-top: var(--s5); }
  .qa { padding: var(--s4) 0; }
  .page-head { padding: var(--s5) 0 var(--s2); }

  /* 표: 좁은 화면에서 한 화면에 더 많이 */
  table { min-width: 440px; font-size: 13.5px; }
  th, td { padding: 9px 11px; }
  thead th { font-size: 12px; }
  .table-scroll::-webkit-scrollbar { height: 5px; }
}

@media (max-width: 380px) {
  .contact-btn { font-size: 12.5px; min-height: 58px; }
  .contact-btn svg { width: 19px; height: 19px; }
  .mcta { font-size: 12.5px; }
  .hero-stats dt { font-size: 11px; }
  .hero-stats div { padding-left: var(--s2); }
}


/* ── 성능: 저사양 기기 스크롤 ───────────────────────── */
@media (max-width: 719px) {
  .site-header { background: #0b0c0e; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .mobile-cta { background: #0b0c0e; backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* ── 히어로 사진(선택) ─────────────────────────────────
   assets/hero.webp 파일을 넣은 뒤 아래 두 규칙의 주석을 풀면
   히어로에 사진 한 장이 깔리고 아주 느린 확대가 걸립니다.
   이미지는 사이트 전체에서 이 한 장만 씁니다(홈 전용).

.hero > .hero-inner { position: relative; z-index: 2; }
.hero::before {
  background-image:
    linear-gradient(180deg, rgba(11,12,14,0.62) 0%, rgba(11,12,14,0.86) 62%, #0b0c0e 100%),
    url("hero.webp");
  background-size: cover, cover;
  background-position: center, center;
  animation: heroDrift 40s ease-in-out infinite alternate;
}
@keyframes heroDrift { from { transform: scale(1); } to { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .hero::before { animation: none; } }
─────────────────────────────────────────────────────── */


/* ── 이미지 ──────────────────────────────────────────
   전부 자체 호스팅 WebP. 외부 요청 0을 유지합니다.
   비율은 CSS에서 고정해 레이아웃 시프트(CLS)를 0으로 둡니다. */

/* 히어로 사진 — 기존 그라디언트 위에 얹고 자체 스크림으로 가독성 확보 */
.hero > .hero-media {
  position: absolute; inset: 0; z-index: 0; overflow: hidden;
  pointer-events: none;
}
.hero-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: 64% 58%;
  opacity: .92;
}
/* 모바일 — 글자가 사진 위에 바로 얹히므로 수직 스크림을 두껍게 */
.hero-media::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(120% 80% at 84% 4%, rgba(212, 175, 87, 0.14), transparent 58%),
    linear-gradient(180deg,
      rgba(11, 12, 14, 0.62) 0%,
      rgba(11, 12, 14, 0.86) 34%,
      rgba(11, 12, 14, 0.90) 72%,
      rgba(9, 10, 12, 0.96) 100%);
}
/* 데스크톱 — 좌측(글자)은 덮고 우측(사진)은 살립니다 */
@media (min-width: 760px) {
  .hero-media::after {
    background:
      radial-gradient(88% 78% at 86% 8%, rgba(212, 175, 87, 0.14), transparent 56%),
      linear-gradient(90deg,
        rgba(11, 12, 14, 0.95) 0%,
        rgba(11, 12, 14, 0.90) 28%,
        rgba(11, 12, 14, 0.34) 56%,
        rgba(11, 12, 14, 0.12) 82%,
        rgba(11, 12, 14, 0.30) 100%),
      linear-gradient(180deg, transparent 48%, rgba(9, 10, 12, 0.70) 100%);
  }
}
/* 사진 위 텍스트 — 밝은 광원과 겹쳐도 읽히게 */
.hero h1, .hero p.lede, .hero .eyebrow, .hero .contact-note, .hero .hero-stats {
  text-shadow: 0 1px 2px rgba(9, 10, 12, 0.72), 0 2px 20px rgba(9, 10, 12, 0.86);
}

/* 페이지 상단 배너 */
.page-media { margin: 0 0 var(--s2); }
.page-media img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: var(--r-lg);
  border: 1px solid var(--line-soft);
}

/* 본문 삽입 이미지 */
.inline-media { margin: var(--s6) 0 var(--s5); }
.inline-media img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: var(--r);
  border: 1px solid var(--line-soft);
}

/* 세로(4:5) 컷 — 16:9 본문 리듬을 깨지 않게 카드 안에 눕혀 씁니다.
   플로트를 쓰지 않으므로 표·리스트 폭을 잠식하지 않습니다. */
.media-note {
  display: grid; grid-template-columns: 172px 1fr;
  gap: var(--s5); align-items: center;
  margin: var(--s6) 0 var(--s5); padding: var(--s4);
  background: var(--surface);
  border: 1px solid var(--line-soft); border-radius: var(--r-lg);
}
.media-note img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: var(--r-sm);
}
.media-note figcaption {
  margin: 0; display: flex; flex-direction: column; gap: var(--s2);
}
.media-note figcaption strong {
  color: var(--text); font-size: clamp(14.5px, 3.4vw, 16px); font-weight: 700;
  letter-spacing: -0.022em; line-height: 1.6; text-wrap: pretty;
}
.media-note figcaption span {
  font-size: 12.5px; line-height: 1.6; color: var(--muted); text-wrap: pretty;
}
@media (max-width: 540px) {
  .media-note { grid-template-columns: 124px 1fr; gap: var(--s4); padding: var(--s3); }
}

/* 캡션 공통 */
.page-media figcaption,
.inline-media figcaption {
  margin-top: var(--s2);
  font-size: 12.5px; line-height: 1.6; color: var(--muted);
  text-wrap: pretty;
}
figure { margin-inline: 0; }
