/* DOHA consulting v4 — 흰 바탕 · 검정 · 골드. 편집(editorial) 디자인: 선과 여백, 큰 글자.
   글꼴: Pretendard Variable(한글·본문), Jost(영문 큰 글자·숫자·로고 근처). 둘 다 /assets/fonts/fonts.css 에서 자체 호스팅. */

:root {
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-sunken: #f6f6f5;
  --surface-inverse: #100f0e;
  --ink: #111111;
  --ink-muted: #3d3d3d;
  --ink-subtle: #5f5f5f;
  --ink-inverse: #f5f2ec;
  --ink-inverse-muted: #bdbdbd;
  --line: #e2e2e0;
  --line-control: #8c8c8c;
  --gold: #b08f60;
  --gold-light: #e3cca0;
  --gold-text: #85652f;
  --gold-on-dark: #d9bd8a;
  --accent: var(--ink);
  --accent-hover: #3d3d3d;
  --on-accent: #ffffff;
  --accent-ink: var(--gold-text);
  --focus: #111111;
  --success: #1d6b50;
  --danger: #b3261e;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px;
  --space-6: 32px; --space-7: 48px; --space-8: 72px; --space-9: 112px; --space-10: 144px;
  --radius-sm: 2px; --radius-md: 3px; --radius-lg: 4px;
  --content-max: 1200px; --prose-max: 680px; --form-max: 640px;
  --gutter: 32px; --gutter-mobile: 20px;
  --header-h: 72px; --touch-min: 48px;
  --font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
  --font-latin: "Jost", "Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--surface); color: var(--ink);
  font-family: var(--font-sans); font-size: 17px; line-height: 1.75; font-weight: 400;
  word-break: keep-all; overflow-wrap: anywhere; -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img, svg { display: block; }
img { max-width: 100%; height: auto; }
::selection { background: var(--gold-light); color: var(--ink); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
[hidden] { display: none !important; }
.dh-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nw { white-space: nowrap; }

/* ---------- layout ---------- */
.dh-container { max-width: calc(var(--content-max) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.dh-narrow { max-width: calc(var(--form-max) + 2 * var(--gutter)); }
.dh-section { padding: var(--space-9) 0; border-top: 1px solid var(--line); }
.dh-section--tight { padding: var(--space-8) 0; }
.dh-section--sunken { background: var(--surface-sunken); }
.dh-row { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-5); align-items: center; }

/* ---------- type ---------- */
.dh-display-xl, .dh-display-lg, .dh-display-md, .dh-display-sm { margin: 0; color: var(--ink); font-weight: 300; text-wrap: balance; }
.dh-display-xl { font-size: clamp(38px, 5.6vw, 76px); line-height: 1.22; letter-spacing: -0.035em; }
.dh-display-lg { font-size: clamp(29px, 3.5vw, 46px); line-height: 1.3; letter-spacing: -0.03em; }
.dh-display-md { font-size: 32px; line-height: 1.4; letter-spacing: -0.02em; }
.dh-display-sm { font-size: 30px; line-height: 1.35; letter-spacing: -0.02em; font-weight: 400; }
.dh-title { font-size: 22px; line-height: 1.5; font-weight: 600; margin: 0; letter-spacing: -0.01em; }
.dh-subtitle { font-size: 19px; line-height: 1.6; font-weight: 600; margin: 0; letter-spacing: -0.01em; }
.dh-lead { font-size: 19px; line-height: 1.75; color: var(--ink-muted); margin: 0; text-wrap: pretty; }
.dh-body { font-size: 17px; line-height: 1.75; margin: 0; }
.dh-muted { color: var(--ink-subtle); }
.dh-small { font-size: 15px; line-height: 1.7; color: var(--ink-subtle); margin: 0; }
.dh-caption { font-size: 14px; line-height: 1.5; font-weight: 500; color: var(--ink-subtle); margin: 0; }
.dh-eyebrow {
  display: flex; align-items: center; gap: 12px; margin: 0;
  font-size: 13px; line-height: 1.5; font-weight: 600; letter-spacing: 0.1em; color: var(--gold-text);
}
.dh-eyebrow::before { content: ""; flex: none; width: 28px; height: 1px; background: var(--gold); }
.dh-num { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--gold-text); }
.dh-underline { -webkit-box-decoration-break: clone; box-decoration-break: clone; background-image: linear-gradient(var(--gold), var(--gold)); background-repeat: no-repeat; background-size: 100% 1px; background-position: 0 96%; padding-bottom: 0.08em; }
.dh-link, .dh-dest__go, .dh-prose a, .dh-btn--text { background-color: transparent; color: var(--ink); padding: 0 var(--space-2) 1px; border-radius: 0; min-height: 40px; }
.dh-link { color: var(--ink); font-weight: 500; }
@media (hover: hover) { .dh-link:hover, .dh-dest__go:hover, .dh-prose a:hover, .dh-btn--text:hover { background-size: 100% 1px, 100% 1px; } }

/* ---------- icon ---------- */
.dh-icon { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.dh-icon--sm { width: 18px; height: 18px; }

/* ---------- logo (헤더: 글자로 그린 로고) ---------- */
.dh-logo { display: inline-flex; flex-direction: column; align-items: flex-start; text-decoration: none; line-height: 1; color: var(--ink); }
.dh-logo__mark { display: inline-block; font-family: var(--font-latin); font-weight: 300; font-size: 28px; line-height: 1; letter-spacing: 0.28em; margin-right: -0.28em; color: var(--ink); white-space: nowrap; }
.dh-logo__a { display: inline-block; vertical-align: baseline; width: 0.62em; height: 0.7em; margin-left: 0.04em; fill: var(--ink); }
.dh-logo__sub { margin-top: 6px; font-family: var(--font-latin); font-weight: 400; font-size: 9px; letter-spacing: 0.6em; color: var(--gold-text); }

/* ---------- button ---------- */
.dh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: 52px; padding: 0 var(--space-6); border-radius: var(--radius-sm); border: 1px solid transparent;
  font: inherit; font-size: 16px; font-weight: 500; letter-spacing: 0.01em; line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s var(--ease-out);
}
.dh-btn:active { transform: scale(0.97); }
.dh-btn--primary { background: var(--ink); color: #fff; border-color: var(--ink); }
.dh-btn--secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.dh-btn--text { background: transparent; color: var(--ink); padding: 0 var(--space-2); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 6px; }
.dh-btn--lg { min-height: 60px; padding: 0 var(--space-7); font-size: 17px; }
.dh-btn--sm { min-height: 40px; padding: 0 var(--space-5); font-size: 14px; }
.dh-btn--block { width: 100%; }
.dh-btn:disabled, .dh-btn[aria-disabled="true"] { background: var(--surface-sunken); color: var(--ink-subtle); border-color: var(--line); cursor: not-allowed; }
@media (hover: hover) {
  .dh-btn--primary:hover { background: var(--gold-text); border-color: var(--gold-text); }
  .dh-btn--secondary:hover { background: var(--ink); color: #fff; }
}

/* ---------- badge (상태 글자) ---------- */
.dh-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; white-space: nowrap; color: var(--gold-text); }
.dh-badge--success { color: var(--success); }
.dh-badge--warning { color: var(--gold-text); }
.dh-badge--neutral { color: var(--ink-subtle); }
.dh-badge--dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* ---------- header ---------- */

/* ---------- section head: 왼쪽 머리표, 오른쪽 큰 제목 ---------- */
.dh-section-head { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--space-3) var(--space-7); margin-bottom: var(--space-8); align-items: start; }
.dh-section-head .dh-eyebrow { padding-top: 14px; grid-column: 1; }
.dh-section-head > :not(.dh-eyebrow) { grid-column: 2; }
.dh-section-head .dh-lead { margin-top: var(--space-2); max-width: 640px; }

/* ---------- 홈: 첫 화면 (글 + 사진 한 덩어리) ---------- */
.dh-hero { padding: var(--space-9) 0 var(--space-9); }
.dh-hero__title { max-width: none; margin: var(--space-5) 0 var(--space-7); }
.keep { white-space: nowrap; }
.dh-hero__body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); align-items: stretch; }
.dh-hero__copy { display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-7); }
.dh-hero .dh-lead { font-size: 21px; max-width: 24em; }
.dh-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); }
.dh-hero__photo { margin: 0; overflow: hidden; background: var(--surface-sunken); min-height: 380px; }
.dh-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.dh-chips { display: grid; grid-template-columns: 1fr 1fr; padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.dh-chip { padding: var(--space-3) var(--space-4); font-size: 16px; font-weight: 500; color: var(--ink); border-bottom: 1px solid var(--line); }
.dh-chip:nth-child(odd) { padding-left: 0; }
.dh-chip:nth-child(even) { border-left: 1px solid var(--line); }
.dh-chip b { font-family: var(--font-latin); font-weight: 400; font-size: 1.15em; color: var(--gold-text); }

/* ---------- 이런 분께: 카드 없이 세로선으로 나눈 두 단 ---------- */
.dh-audience { display: grid; grid-template-columns: 1fr 1fr; }
.dh-audience__card { padding: 0 var(--space-7) 0 0; }
.dh-audience__card + .dh-audience__card { padding: 0 0 0 var(--space-7); border-left: 1px solid var(--line); }
.dh-audience__tag { margin-bottom: var(--space-4); }
.dh-audience .dh-title { font-family: var(--font-latin); font-weight: 300; font-size: clamp(28px, 3vw, 40px); line-height: 1.25; letter-spacing: 0.01em; }
.dh-checklist { list-style: none; padding: 0; margin: var(--space-6) 0 0; display: grid; gap: 0; }
.dh-checklist li { display: block; padding: var(--space-3) 0; border-top: 1px solid var(--line); font-size: 18px; }
.dh-checklist .dh-icon { display: none; }

/* ---------- 진행 방식: 큰 숫자 줄 ---------- */
.dh-course { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.dh-prog { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.dh-prog__item { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: var(--space-4); padding: var(--space-5) 0; border-bottom: 1px solid var(--line); }
.dh-prog__dot { font-family: var(--font-latin); font-weight: 200; font-size: 64px; line-height: 1; color: var(--gold); letter-spacing: 0; }
.dh-prog__card h3 { margin: 4px 0 0; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.35; font-weight: 400; letter-spacing: -0.02em; }
.dh-timeline__week { display: block; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; color: var(--gold-text); }
.dh-note { display: flex; gap: var(--space-3); align-items: baseline; margin: var(--space-6) 0 0; color: var(--ink-muted); font-size: 16px; }
.dh-note .dh-icon { display: none; }
.dh-ledger { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.dh-ledger li { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); padding: var(--space-5) 0; border-bottom: 1px solid var(--line); }
.dh-numeral { font-family: var(--font-latin); font-weight: 200; font-size: clamp(64px, 8vw, 104px); line-height: 1; color: var(--ink); letter-spacing: 0; }
.dh-numeral small { font-family: var(--font-sans); font-weight: 400; font-size: 17px; letter-spacing: 0; margin-left: 8px; color: var(--ink-muted); }
.dh-ledger .dh-small { text-align: right; max-width: 10em; }

/* ---------- 피드백 예시: 카드 없이 글과 표 ---------- */
.dh-fb { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); align-items: start; }
.dh-fb__head { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1px solid var(--ink); }
.dh-fb__task { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
.dh-fb__task strong { font-size: 19px; font-weight: 600; }
.dh-fb__quote { margin: 0; padding: 0 0 0 var(--space-5); border-left: 1px solid var(--gold); font-size: 22px; line-height: 1.7; font-weight: 300; color: var(--ink); }
.dh-fb__quote-label { display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.06em; color: var(--ink-subtle); margin-bottom: var(--space-2); }
.dh-err { text-decoration: underline wavy var(--danger); text-decoration-thickness: 1px; text-underline-offset: 6px; }
.dh-fb__items { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.dh-fb__item { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.dh-fb__crit { font-family: var(--font-latin); font-size: 16px; font-weight: 500; letter-spacing: 0.03em; color: var(--gold-text); padding-top: 3px; }
.dh-fb__text { margin: 0; font-size: 17px; line-height: 1.75; }
.dh-fix { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; font-size: 17px; font-weight: 500; }
.dh-fix s { color: var(--danger); text-decoration-thickness: 1px; }
.dh-fix .dh-icon { width: 18px; height: 18px; color: var(--ink-subtle); }
.dh-fix ins { text-decoration: none; color: var(--success); }
.dh-fb__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2); font-size: 14px; color: var(--ink-subtle); }

/* ---------- 유학·어학연수 사진 두 장 (큰 사진, 서로 다른 폭) ---------- */
.dh-dest { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: start; }
.dh-dest__card { display: block; text-decoration: none; color: inherit; }
.dh-dest__card:nth-child(2) { margin-top: var(--space-9); }
.dh-dest__img { overflow: hidden; background: var(--surface-sunken); }
.dh-dest__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dh-dest__card:nth-child(2) .dh-dest__img img { aspect-ratio: 4 / 5; }
.dh-dest__body { padding-top: var(--space-5); display: grid; gap: var(--space-3); justify-items: start; }
.dh-dest__stat { display: flex; align-items: baseline; gap: var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid var(--line); width: 100%; }
.dh-dest__stat .dh-numeral { font-size: 72px; }
.dh-dest__body h3 { margin: 0; font-size: 26px; line-height: 1.4; font-weight: 400; letter-spacing: -0.02em; }
.dh-dest__body p { margin: 0; color: var(--ink-muted); max-width: 26em; }
.dh-dest__go { font-weight: 500; }
@media (hover: hover) { .dh-dest__card:hover .dh-dest__go { background-size: 100% 1px, 100% 1px; } }

.dh-dest__img { display: block; }
.dh-clist { list-style: none; margin: var(--space-2) 0 0; padding: 0; width: 100%; border-top: 1px solid var(--ink); }
.dh-clist a { display: grid; grid-template-columns: minmax(0, 1fr) auto 24px; align-items: center; gap: var(--space-4); padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding-left .25s var(--ease-out), background-color .2s ease; }
.dh-clist__n { font-size: 20px; letter-spacing: -0.01em; }
.dh-clist a > span[aria-hidden] { color: var(--gold-text); text-align: right; }
@media (hover: hover) { .dh-clist a:hover { padding-left: 10px; } }
@media (prefers-reduced-motion: reduce) { .dh-clist a { transition: none; } }

/* ---------- 약속: 글줄 ---------- */
.dh-promises { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-8); counter-reset: pr; border-bottom: 1px solid var(--line); }
.dh-promise { display: flex; gap: var(--space-5); align-items: baseline; padding: var(--space-5) 0; border-top: 1px solid var(--line); counter-increment: pr; }
.dh-promise::before { content: counter(pr, decimal-leading-zero); flex: none; font-family: var(--font-latin); font-weight: 300; font-size: 15px; letter-spacing: 0.1em; color: var(--gold-text); }
.dh-promise__icon { display: none; }
.dh-promise p { margin: 0; font-size: 21px; line-height: 1.5; font-weight: 400; letter-spacing: -0.015em; }
.dh-section--sunken .dh-promises { border-bottom-color: var(--line); }

/* ---------- 검정 띠: 신청 유도 + 푸터 ---------- */
.dark { background: var(--surface-inverse); color: var(--ink-inverse); }
.dh-cta { padding-top: var(--space-9); padding-bottom: var(--space-9); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; }
.dh-cta .dh-eyebrow { color: var(--gold-on-dark); margin-bottom: var(--space-4); }
.dh-cta .dh-eyebrow::before { background: var(--gold-on-dark); }
.dh-cta .dh-display-lg { color: var(--ink-inverse); font-size: clamp(32px, 4.2vw, 56px); }
.dh-cta :focus-visible, .dark :focus-visible { outline-color: var(--gold-on-dark); }
.dh-cta .dh-btn--primary { background: var(--gold-light); border-color: var(--gold-light); color: #111; margin-top: var(--space-7); }
@media (hover: hover) { .dh-cta .dh-btn--primary:hover { background: #fff; border-color: #fff; } }
.dh-facts { display: grid; gap: 0; margin: var(--space-6) 0 0; max-width: 460px; border-top: 1px solid rgba(255,255,255,.22); }
.dh-facts > div { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.dh-facts dt { font-size: 14px; color: var(--ink-inverse-muted); }
.dh-facts dd { margin: 0; font-size: 18px; font-weight: 500; text-align: right; }
.dh-facts dd b { font-weight: 600; color: var(--gold-on-dark); }

/* ---------- footer ---------- */

@media (max-width: 1000px) { main:has(> .dark:last-child) + .dh-footer .dh-footer__top { grid-template-columns: 1fr; } }

/* ---------- forms ---------- */
.dh-form-section { display: grid; gap: var(--space-4); padding: var(--space-6) 0; border: 0; border-top: 1px solid var(--line); margin: 0; min-width: 0; }
.dh-form-section__head { display: flex; gap: var(--space-4); align-items: baseline; }
.dh-form-section__n { font-family: var(--font-latin); font-size: 15px; font-weight: 400; letter-spacing: 0.1em; color: var(--gold-text); font-variant-numeric: tabular-nums; }
.dh-field { display: grid; gap: var(--space-2); }
.dh-label { font-size: 15px; line-height: 1.5; font-weight: 600; color: var(--ink); }
.dh-req { margin-left: 8px; font-size: 13px; font-weight: 600; color: var(--gold-text); }
.dh-opt { margin-left: 8px; font-size: 13px; font-weight: 500; color: var(--ink-subtle); }
.dh-help { font-size: 14px; line-height: 1.65; color: var(--ink-subtle); margin: 0; }
.dh-input, .dh-select, .dh-textarea {
  width: 100%; min-height: 52px; padding: 12px 14px; font: inherit; font-size: 17px; line-height: 1.5; color: var(--ink);
  background: #fff; border: 1px solid var(--line-control); border-radius: var(--radius-sm); -webkit-appearance: none; appearance: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.dh-input::placeholder, .dh-textarea::placeholder { color: var(--ink-subtle); }
.dh-input:focus, .dh-select:focus, .dh-textarea:focus { outline: 0; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.dh-input[aria-invalid="true"] { border-color: var(--danger); box-shadow: inset 0 0 0 1px var(--danger); }
.dh-error { display: flex; gap: 6px; align-items: center; margin: 0; font-size: 15px; font-weight: 500; color: var(--danger); }
.dh-choices { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.dh-choice { position: relative; display: block; cursor: pointer; }
.dh-choice input { position: absolute; opacity: 0; pointer-events: none; }
.dh-choice__box { display: grid; gap: 2px; height: 100%; padding: 16px 18px; border: 1px solid var(--line-control); border-radius: var(--radius-sm); background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.dh-choice__title { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 17px; font-weight: 600; }
.dh-choice__title::after { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line-control); background: #fff; }
.dh-choice__desc { font-size: 14px; color: var(--ink-subtle); }
.dh-choice input:checked + .dh-choice__box { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.dh-choice input:checked + .dh-choice__box .dh-choice__title::after { border: 5px solid var(--ink); }
.dh-choice input:focus-visible + .dh-choice__box { outline: 2px solid var(--focus); outline-offset: 3px; }
.dh-check { display: flex; gap: var(--space-3); align-items: flex-start; font-size: 17px; line-height: 1.6; cursor: pointer; }
.dh-check input { flex: none; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--ink); cursor: pointer; }
.dh-check-all { padding: var(--space-4) 0; border-top: 1px solid var(--ink); font-weight: 600; }
.dh-box { padding: var(--space-4) var(--space-5); border-left: 1px solid var(--gold); background: var(--surface-sunken); margin: 0 0 var(--space-4); }
.dh-msg { min-height: 1.7em; margin: var(--space-3) 0 0; text-align: center; font-size: 15px; font-weight: 500; }
.dh-msg.err { color: var(--danger); }
.dh-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.done { display: grid; gap: 12px; padding: var(--space-6) 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.done strong { font-size: 26px; font-weight: 300; letter-spacing: -0.02em; }
.dh-meta-list { display: grid; gap: 0; margin: var(--space-5) 0 0; padding: 0; }
.dh-meta-list div { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.dh-meta-list dt { color: var(--ink-subtle); flex: none; }
.dh-meta-list dd { margin: 0; font-weight: 500; }
.dh-consent { border-top: 1px solid var(--line); }
.dh-apply-aside { position: sticky; top: 104px; padding-top: 14px; border-top: 1px solid var(--ink); }

/* ---------- participant code ---------- */
.dh-code { display: grid; grid-template-columns: repeat(4, 1fr) 12px repeat(4, 1fr); gap: 8px; align-items: center; }
.dh-code__slot { height: 68px; display: grid; place-items: center; font-family: var(--font-latin); font-size: 28px; font-weight: 400; letter-spacing: .04em; color: var(--ink); background: #fff; border: 0; border-bottom: 1px solid var(--line-control); border-radius: 0; transition: border-color .15s ease; }
.dh-code__slot.is-next { border-bottom: 2px solid var(--gold); }
.dh-code__dash { height: 1px; background: var(--line-control); }
.dh-code-live { position: relative; }
.dh-code-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; font-size: 16px; cursor: text; }

/* ---------- 학습실(my) ---------- */
.dh-paths { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); }
.dh-paths--three { grid-template-columns: repeat(3, 1fr); }
.dh-path { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6) var(--space-5) var(--space-6) 0; text-decoration: none; color: inherit; border-bottom: 1px solid var(--line); }
.dh-path + .dh-path { padding-left: var(--space-5); border-left: 1px solid var(--line); }
.dh-path .dh-eyebrow { font-size: 13px; }
.dh-path__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: var(--space-3); font-weight: 500; transition: gap .2s var(--ease-out); }
@media (hover: hover) { .dh-path:hover .dh-path__go { gap: 14px; } }
.my-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-8); align-items: stretch; }
#choose { grid-column: 1 / -1; }
.my-grid:has(#choose:not([hidden])) .my-photo { display: none; }
.my-photo { margin: 0; overflow: hidden; background: var(--surface-sunken); min-height: 360px; }
.my-photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- accordion ---------- */
.dh-accordion { border-top: 1px solid var(--ink); }
.dh-acc { border-bottom: 1px solid var(--line); }
.dh-acc summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); min-height: 72px; padding: var(--space-4) 0; font-size: 20px; line-height: 1.5; font-weight: 400; letter-spacing: -0.01em; cursor: pointer; }
.dh-acc summary::-webkit-details-marker { display: none; }
.dh-acc summary .dh-icon { color: var(--gold-text); transition: transform .2s var(--ease-out); }
.dh-acc[open] summary .dh-icon { transform: rotate(45deg); }
.dh-acc__body { padding: 0 0 var(--space-5); max-width: var(--prose-max); color: var(--ink-muted); }
.dh-acc__body p { margin: 0; }
.dh-fulltext { margin-top: var(--space-3); }
.dh-fulltext ul { margin: var(--space-2) 0 0; padding-left: 1.2em; font-size: 15px; line-height: 1.7; color: var(--ink-muted); }
.dh-fulltext li { margin: 4px 0; }

/* ---------- 문서(처리방침) ---------- */
.dh-page-head { padding: var(--space-9) 0 var(--space-8); }
.dh-page-head .dh-badge { margin-bottom: var(--space-4); }
.dh-page-head .dh-lead { margin-top: var(--space-5); max-width: 640px; }
.dh-page-head .dh-row { margin-top: var(--space-6); }
.dh-doc { display: grid; grid-template-columns: 240px minmax(0, 880px); gap: var(--space-8); padding: var(--space-6) 0 var(--space-9); }
.dh-toc { position: sticky; top: 104px; align-self: start; }
.dh-toc ol { list-style: none; margin: var(--space-3) 0 0; padding: 0; }
.dh-toc a { display: flex; align-items: baseline; gap: 8px; padding: 7px 0 7px 14px; border-left: 1px solid var(--line); font-size: 15px; line-height: 1.5; color: var(--ink-subtle); text-decoration: none; transition: color .15s ease; }
.dh-toc a:hover { color: var(--ink); }
.dh-toc a[aria-current="true"] { border-left-color: var(--gold); color: var(--ink); font-weight: 600; }
.dh-toc-mobile { display: none; }
.dh-prose { min-width: 0; font-size: 17px; line-height: 1.85; }
.dh-prose h2 { font-size: 24px; line-height: 1.5; font-weight: 400; letter-spacing: -0.015em; margin: var(--space-8) 0 var(--space-3); padding-top: var(--space-5); border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.dh-prose h2:first-child { margin-top: 0; }
.dh-prose h2 span { font-family: var(--font-latin); color: var(--gold-text); margin-right: 8px; font-variant-numeric: tabular-nums; }
.dh-prose p { margin: 0 0 var(--space-4); }
.dh-prose ul, .dh-prose ol { margin: 0 0 var(--space-4); padding-left: 1.3em; }
.dh-prose li { margin: 6px 0; }
.dh-prose a { color: var(--ink); text-decoration-color: var(--gold); text-underline-offset: 4px; }
.dh-prose td p, .dh-prose td ul { margin: 0; }
.dh-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 var(--space-7); border-top: 1px solid var(--ink); }
.dh-summary div { padding: var(--space-4) var(--space-4) var(--space-4) 0; border-bottom: 1px solid var(--line); }
.dh-summary div + div { padding-left: var(--space-4); border-left: 1px solid var(--line); }
.dh-summary dt { font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--ink-subtle); }
.dh-summary dd { margin: 4px 0 0; font-size: 16px; line-height: 1.55; font-weight: 500; }
.dh-table-wrap { overflow-x: auto; margin: 0 0 var(--space-4); border-top: 1px solid var(--ink); }
.dh-table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.65; }
.dh-table th, .dh-table td { padding: 12px 16px 12px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); min-width: 96px; }
.dh-table th { font-weight: 600; white-space: nowrap; font-size: 13px; letter-spacing: .04em; color: var(--ink-subtle); }
.dh-table tr:last-child td { border-bottom: 0; }

/* ---------- 상담 페이지(유학·어학연수) ---------- */
.sa-hero { padding: var(--space-9) 0 var(--space-9); }
.sa-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--space-8); align-items: stretch; }
.sa-hero__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.sa-hero .dh-display-lg { font-size: clamp(32px, 3.8vw, 54px); line-height: 1.25; letter-spacing: -0.035em; max-width: 14em; margin-top: var(--space-5) !important; }
.sa-hero .dh-badge { margin: 0 0 var(--space-4); }
.sa-hero .dh-lead { max-width: 34em; margin-top: var(--space-5); }
.sa-hero .dh-row { margin-top: var(--space-6); }
.sa-hero__bg { margin: 0; overflow: hidden; background: var(--surface-sunken); min-height: 360px; }
.sa-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.sa-controls { display: none; }
.js .sa-controls { display: flex; flex-direction: column; }
.sa-photo { order: 1; position: relative; aspect-ratio: 21 / 8; background: var(--surface-sunken); overflow: hidden; margin-bottom: 0; }
.sa-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .45s ease; }
.sa-photo img.is-on { opacity: 1; z-index: 1; }
.sa-photo__cap { position: absolute; z-index: 2; left: 20px; bottom: 16px; margin: 0; padding: 5px 12px; background: rgba(16,15,14,.78); color: #fff; font-size: 13px; font-weight: 500; letter-spacing: .06em; }
.sa-tabs-wrap { order: 2; margin-top: var(--space-5); min-width: 0; border-bottom: 1px solid var(--line); }
.sa-tabs { display: flex; gap: var(--space-6); overflow-x: auto; max-width: 100%; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sa-tabs::-webkit-scrollbar { display: none; }
.sa-tab { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 2px; border: 0; border-bottom: 2px solid transparent; background: transparent; font: inherit; font-size: 18px; font-weight: 400; color: var(--ink-subtle); cursor: pointer; transition: color .15s ease, border-color .15s ease; margin-bottom: -1px; }
.sa-tab small { font-size: 12px; font-weight: 500; letter-spacing: .04em; color: var(--ink-subtle); }
@media (hover: hover) { .sa-tab:hover { color: var(--ink); } }
.sa-tab[aria-selected="true"] { color: var(--ink); font-weight: 600; border-bottom-color: var(--gold); }
.sa-panels { margin-top: var(--space-8); min-width: 0; }
.sa-panel { min-width: 0; }
.sa-panel + .sa-panel { margin-top: var(--space-8); padding-top: var(--space-8); border-top: 1px solid var(--line); }
.sa-panel[hidden] { display: none; }
.sa-panel.is-active { animation: sa-fade .3s var(--ease-out) both; }
@keyframes sa-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.sa-panel__head { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-6); }
.sa-panel__head .dh-badge { margin-left: 0; }
.sa-panel__head .dh-display-sm { font-size: clamp(30px, 3.4vw, 44px); font-weight: 300; }
.sa-code { flex: none; font-family: var(--font-latin); font-weight: 200; font-size: 64px; line-height: 1; letter-spacing: .04em; color: var(--gold); }
.sa-h { margin: 0 0 var(--space-4); font-size: 17px; line-height: 1.5; font-weight: 600; color: var(--ink); }
.sa-h__sub { margin-left: 8px; font-size: 13px; font-weight: 500; color: var(--ink-subtle); }
.sa-panel p, .sa-panel li, .sa-panel b { word-break: keep-all; overflow-wrap: break-word; }
.sa-panel p, .sa-panel li { text-wrap: pretty; }
.sa-panel h3, .sa-panel h4, .sa-feat b, .sa-do b { text-wrap: balance; }
/* DOHA가 해 드리는 일: 번호 네 줄 */
.sa-do { margin: 0 0 var(--space-8); }
.sa-do__h { margin: 0 0 var(--space-5); font-size: clamp(24px, 2.6vw, 32px); line-height: 1.4; font-weight: 300; letter-spacing: -0.025em; color: var(--ink); }
.sa-do__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); counter-reset: sado; border-top: 1px solid var(--ink); }
.sa-do__list li { counter-increment: sado; padding: var(--space-5) 0 0; }
.sa-do__n { display: block; margin-bottom: var(--space-3); font-family: var(--font-latin); font-weight: 200; font-size: 48px; line-height: 1; color: var(--gold); }
.sa-do__n::before { content: counter(sado); }
.sa-do__list b { display: block; font-size: 18px; line-height: 1.5; font-weight: 600; margin-bottom: var(--space-2); letter-spacing: -0.01em; }
.sa-do__list p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--ink-muted); }
.sa-do__note { margin: var(--space-4) 0 0; font-size: 14px; color: var(--ink-subtle); }
/* 이 나라의 특이점: 선으로 나눈 칸 */
.sa-feats { list-style: none; margin: 0 0 var(--space-8); padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-6) var(--space-7); }
.sa-feat { padding: var(--space-4) 0 0; border-top: 1px solid var(--line); }
.sa-feat b { display: block; font-size: 17px; margin-bottom: var(--space-2); font-weight: 600; }
.sa-feat p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--ink-muted); }
.sa-feat--blank { border-top-style: dashed; }
.sa-feat--svc { border-top-color: var(--gold); }
.sa-feats:not(:has(.sa-feat--wide)):has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sa-feats:has(.sa-feat--wide) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sa-feat--wide { grid-column: 1 / -1; }
.sa-feat__foot { margin-top: var(--space-3) !important; font-size: 15px !important; }
.sa-cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--space-8); align-items: start; }
.sa-stepper { list-style: none; margin: 0; padding: 0; counter-reset: sa; border-top: 1px solid var(--line); }
.sa-stepper li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); counter-increment: sa; }
.sa-stepper__n { font-family: var(--font-latin); font-weight: 300; font-size: 24px; line-height: 1.5; color: var(--gold-text); }
.sa-stepper__n::before { content: counter(sa); }
.sa-stepper p { margin: 3px 0 0; min-width: 0; }
.sa-side { display: grid; gap: var(--space-6); min-width: 0; }
.sa-box { padding: var(--space-4) 0 0; border-top: 1px solid var(--ink); }
.sa-box p { margin: 0; color: var(--ink-muted); }
.sa-box .sa-h { margin-bottom: var(--space-3); }
.sa-box--visa { padding: var(--space-5); border-top: 0; border-left: 1px solid var(--gold); background: var(--surface-sunken); }
.sa-visa, .sa-links { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.sa-visa a, .sa-links a { display: inline; }
.sa-visa .dh-icon, .sa-links .dh-icon { display: inline-block; vertical-align: -3px; margin-left: 4px; }
.sa-visa__lead { margin: 0 0 var(--space-3) !important; color: var(--ink) !important; }
.sa-visa__lead b { font-weight: 600; }
.sa-visa__note { margin-top: var(--space-3) !important; font-weight: 500; color: var(--ink) !important; }
.sa-date { margin: var(--space-7) 0 0; padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-subtle); }
.sa-tbl { width: 100%; border-collapse: collapse; font-size: 16px; margin-top: var(--space-2); }
.sa-tbl th, .sa-tbl td { padding: 10px 12px 10px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); line-height: 1.55; }
.sa-tbl thead th { font-size: 13px; color: var(--ink-subtle); font-weight: 600; letter-spacing: .04em; }
.sa-tbl tbody th { width: 11.5em; font-weight: 600; color: var(--ink); }
.sa-tbl tbody td { color: var(--ink-muted); }
.sa-mini { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: grid; gap: var(--space-2); }
.sa-mini li { font-size: 16px; line-height: 1.6; color: var(--ink-muted); }
.sa-mini li b { display: inline; font-size: inherit; margin: 0 6px 0 0; color: var(--ink); }
.sa-terms { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); margin-top: var(--space-7); }
.sa-terms .dh-card, .dh-card { padding: var(--space-4) 0 0; border-top: 1px solid var(--ink); }
.dh-section[style*="padding-top:0"] { padding-top: var(--space-8) !important; }
@media (min-width: 1001px) { .dh-section-head + .dh-accordion { margin-left: calc(220px + var(--space-7)); } }
/* 하지 않는 일 */
.dh-dont { padding: 0; }
.dh-dont__head { display: flex; gap: var(--space-3); align-items: baseline; padding-bottom: var(--space-4); border-bottom: 1px solid var(--ink); }
.dh-dont__head .dh-icon { display: none; }
.dh-dont__head .dh-title { font-size: clamp(24px, 2.6vw, 32px); font-weight: 300; letter-spacing: -0.025em; }
.dh-dont ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); column-gap: var(--space-8); }
.dh-dont li { display: flex; gap: var(--space-3); align-items: baseline; padding: var(--space-4) 0; border-bottom: 1px solid var(--line); font-size: 18px; }
.dh-dont li .dh-icon { width: 14px; height: 14px; color: var(--gold-text); transform: translateY(2px); }
/* 진행 방식 4단계 */
.dh-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); border-top: 1px solid var(--ink); }
.dh-steps li { display: grid; gap: var(--space-2); align-content: start; padding: var(--space-5) 0 0; }
.dh-steps__n { font-family: var(--font-latin); font-size: 56px; line-height: 1; font-weight: 200; color: var(--gold); letter-spacing: 0; }

/* ---------- 움직임 (JS가 html에 .mo를 붙였을 때만. 모션 줄이기면 .mo 없음) ---------- */
.mo .rv { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); transition-delay: var(--d, 0ms); }
.mo .rv.in { opacity: 1; transform: none; }
/* 골드 선 그어짐 */
.mo .dh-eyebrow::before { transform: scaleX(0); transform-origin: left center; transition: transform .7s var(--ease-out) .1s; }
.mo .dh-eyebrow.line-in::before { transform: scaleX(1); }
.mo .dh-underline { background-size: 0 1px; transition: background-size .8s var(--ease-out) .5s; }
.mo .dh-underline.line-in { background-size: 100% 1px; }
.mo .dh-fix s { background-size: 0 1px; transition: background-size .4s var(--ease-out) .6s; }
.mo .dh-fb.in .dh-fix s { background-size: 100% 1px; }
/* 사진: 1.06 에서 1.0 으로, 올리면 아주 약하게 */
.mo .ph img { transform: scale(1.06); transition: transform 1.2s var(--ease-out); }
.mo .ph.ph-in img { transform: scale(1); }
@media (hover: hover) { .mo .ph.ph-in:hover img { transform: scale(1.02); transition-duration: .6s; } }
/* 4주 과정: 지금 보이는 회차 강조 */
.dh-prog__item { position: relative; }
.mo .dh-prog__item::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left center; transition: transform .6s var(--ease-out); }
.mo .dh-prog__item.is-cur::after { transform: scaleX(1); }
.mo .dh-prog__dot { color: var(--gold-light); transition: color .3s ease; }
.mo .is-cur .dh-prog__dot { color: var(--gold); }
@media (prefers-reduced-motion: reduce) {
  .sa-panel.is-active { animation: none; }
  .sa-photo img, .dh-btn, .dh-path__go, .dh-header, .dh-header__inner, .dh-link, .dh-dest__go, .dh-prose a, .dh-btn--text { transition: none !important; }
  .dh-btn:active { transform: none; }
}

/* ---------- 반응형 ---------- */
@media (max-width: 1000px) {
  .dh-section-head { grid-template-columns: 1fr; margin-bottom: var(--space-7); }
  .dh-section-head .dh-eyebrow, .dh-section-head > :not(.dh-eyebrow) { grid-column: 1; }
  .dh-section-head .dh-eyebrow { padding-top: 0; }
  .dh-course { grid-template-columns: 1fr; gap: var(--space-7); }
  .dh-hero__body { grid-template-columns: 1fr; gap: var(--space-7); }
  .dh-hero__photo { order: -1; min-height: 0; aspect-ratio: 16 / 9; }
  .sa-hero__grid { grid-template-columns: 1fr; }
  .sa-hero__bg { order: -1; }
  .my-grid { grid-template-columns: 1fr; }
  .my-photo { order: -1; }
  .dh-fb { grid-template-columns: 1fr; gap: var(--space-6); }
  .dh-dest { grid-template-columns: 1fr; }
  .dh-dest__card:nth-child(2) { margin-top: 0; }
  .dh-dest__card:nth-child(2) .dh-dest__img img { aspect-ratio: 4 / 3; }
  .dh-cta { grid-template-columns: 1fr; gap: var(--space-7); }
  .dh-steps { grid-template-columns: 1fr 1fr; }
  .dh-doc { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .dh-toc { display: none; }
  .dh-toc-mobile { display: block; margin-bottom: var(--space-6); }
  .sa-cols { grid-template-columns: 1fr; gap: var(--space-7); }
  .sa-do__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sa-feats:has(.sa-feat--wide) { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .dh-paths--three { grid-template-columns: 1fr; }
  .dh-paths--three .dh-path + .dh-path { padding-left: 0; border-left: 0; }
  .dh-apply-grid { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-6) !important; }
  .dh-apply-grid aside { position: static !important; order: -1; }
}
@media (max-width: 640px) {
  body { font-size: 17px; }
  .dh-container { padding: 0 var(--gutter-mobile); }
  .dh-section { padding: var(--space-8) 0; }
  .dh-section--tight { padding: var(--space-7) 0; }
  .dh-logo__mark { font-size: 23px; }
  .dh-logo__sub { font-size: 7.5px; }
  .dh-hero { padding: var(--space-7) 0 var(--space-8); }
  .dh-hero__title { margin-bottom: var(--space-6); }
  .dh-hero .dh-lead { font-size: 18px; }
  .dh-hero__body { grid-template-columns: 1fr; gap: var(--space-6); }
  .dh-hero__photo { order: -1; min-height: 0; aspect-ratio: 4 / 3; }
  .dh-hero__copy { gap: var(--space-6); }
  .dh-hero__actions { flex-direction: column; align-items: stretch; }
  .keep { white-space: normal; }
  .dh-hero__actions .dh-btn { width: 100%; }
  .dh-hero__actions .dh-btn--text { justify-content: flex-start; }
  .dh-lead { font-size: 18px; }
  .dh-audience { grid-template-columns: 1fr; gap: var(--space-7); }
  .dh-audience__card, .dh-audience__card + .dh-audience__card { padding: 0; border-left: 0; }
  .dh-audience__card + .dh-audience__card { padding-top: var(--space-6); border-top: 1px solid var(--ink); }
  .dh-prog__item { grid-template-columns: 56px minmax(0, 1fr); }
  .dh-prog__dot { font-size: 44px; }
  .dh-fb__item { grid-template-columns: 1fr; gap: 4px; }
  .dh-fb__quote { font-size: 19px; }
  .dh-promises { grid-template-columns: 1fr; }
  .dh-promise p { font-size: 19px; }
  .dh-cta { padding-top: var(--space-8); padding-bottom: var(--space-8); }
  .dh-cta .dh-btn { width: 100%; }
  .dh-facts dd { font-size: 16px; }
  .dh-page-head { padding: var(--space-7) 0 var(--space-6); }
  .sa-hero { padding: var(--space-7) 0 var(--space-7); }
  .sa-hero__bg { min-height: 0; aspect-ratio: 4 / 3; }
  .sa-hero__grid { gap: var(--space-6); }
  .sa-photo { aspect-ratio: 4 / 3; }
  .sa-tabs { gap: var(--space-5); }
  .sa-panels { margin-top: var(--space-7); }
  .sa-panel__head { flex-wrap: wrap; gap: var(--space-3); }
  .sa-panel__head .dh-badge { margin-left: 0; }
  .sa-code { font-size: 48px; }
  .sa-do__list { grid-template-columns: 1fr; gap: 0; }
  .sa-do__list li { padding-bottom: var(--space-5); border-bottom: 1px solid var(--line); }
  .sa-do__list li:last-child { border-bottom: 0; }
  .sa-feats, .sa-feats:not(:has(.sa-feat--wide)):has(> :nth-child(4):last-child) { grid-template-columns: 1fr; }
  .sa-terms { grid-template-columns: 1fr; gap: var(--space-6); }
  .sa-box--visa { padding: var(--space-4); }
  .sa-tbl thead { display: none; }
  .sa-tbl, .sa-tbl tbody, .sa-tbl tr, .sa-tbl tbody th, .sa-tbl td { display: block; width: auto; }
  .sa-tbl tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  .sa-tbl th, .sa-tbl td { padding: 0; border: 0; }
  .sa-tbl tbody th { margin-bottom: 2px; }
  .dh-steps { grid-template-columns: 1fr; gap: var(--space-5); }
  .dh-summary { grid-template-columns: 1fr; }
  .dh-summary div + div { padding-left: 0; border-left: 0; }
  .dh-choices { grid-template-columns: 1fr; }
  .dh-code { gap: 5px; grid-template-columns: repeat(4, 1fr) 8px repeat(4, 1fr); }
  .dh-code__slot { height: 56px; font-size: 22px; }
  .dh-consent div { flex-direction: column; gap: 2px; }
  .dh-consent dd { text-align: left !important; }
  .dh-dont ul { grid-template-columns: 1fr; }
  .dh-dest__stat .dh-numeral { font-size: 56px; }
}


/* ---------- 2026-10-12 대표 피드백: 아래쪽 검정 구간 → 밝게 (머리 에이전트) ---------- */
.dark {
  --surface-inverse: var(--surface-sunken);
  --ink-inverse: var(--ink);
  --ink-inverse-muted: var(--ink-muted);
  --gold-on-dark: var(--gold-text);
}
.dh-cta .dh-btn--primary { background: var(--ink); border-color: var(--ink); color: #fff; }
.dh-cta .dh-btn--primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
/* 글자로 그린 큰 로고 (검정 바탕 이미지 brand-dark.png 대신) */
.dark { --surface-inverse: var(--surface); border-top: 1px solid var(--line); }


/* 글자로 그린 큰 로고 */
.dh-logo--lg { align-items: center; text-align: center; }
.dh-logo--lg .dh-logo__mark { font-size: clamp(48px, 6.4vw, 92px); letter-spacing: 0.24em; margin-right: -0.24em; }
.dh-logo--lg .dh-logo__sub { margin-top: 0.9em; font-size: clamp(11px, 1.1vw, 15px); letter-spacing: 0.62em; margin-right: -0.62em; }
.dh-logo__ko { margin-top: 0.7em; font-family: var(--font-sans); font-size: clamp(12px, 1.1vw, 15px); letter-spacing: 0.3em; margin-right: -0.3em; color: var(--gold-text); }
.dh-cta__logo { width: auto; max-width: none; margin: 0; justify-self: end; }
@media (max-width: 1000px) { .dh-cta__logo { justify-self: start; align-items: flex-start; text-align: left; margin: 0; } }

/* ================= 반려 2회차: 헤더·푸터 다시 설계 (모든 페이지 공통) ================= */
.dh-topbar { background: var(--surface); border-bottom: 1px solid var(--line); font-size: 11.5px; letter-spacing: 0.14em; color: var(--ink-subtle); }
.dh-topbar__inner { display: flex; justify-content: space-between; align-items: center; height: 32px; }
.dh-topbar a { text-decoration: none; color: var(--ink-subtle); letter-spacing: 0.08em; transition: color .15s ease; }
@media (hover: hover) { .dh-topbar a:hover { color: var(--ink); } }

.dh-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); }
.dh-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 76px; transition: height .25s var(--ease-out); }
.dh-header.is-scrolled .dh-header__inner { height: 60px; }
.dh-header .dh-logo { justify-self: start; }
.dh-nav { display: flex; align-items: center; gap: 44px; margin: 0; padding: 0; list-style: none; }
.dh-nav a { position: relative; display: inline-block; padding: 8px 0; font-size: 13.5px; font-weight: 500; letter-spacing: 0.1em; color: #3d3d3d; text-decoration: none; transition: color .2s ease; }
.dh-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left center; transition: transform .35s var(--ease-out); }
.dh-nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }
.dh-nav a[aria-current="page"]::after { transform: scaleX(1); }
@media (hover: hover) { .dh-nav a:hover { color: var(--ink); } .dh-nav a:hover::after { transform: scaleX(1); } }
.dh-header__actions { justify-self: end; display: flex; align-items: center; gap: var(--space-3); }
.dh-hbtn { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 18px; border: 1px solid var(--ink); border-radius: var(--radius-sm); background: transparent; color: var(--ink); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-decoration: none; white-space: nowrap; transition: background-color .2s ease, color .2s ease, transform .16s var(--ease-out); }
.dh-hbtn .dh-icon--arw { width: 14px; height: 14px; transition: transform .25s var(--ease-out); }
.dh-hbtn:active { transform: scale(0.97); }
.dh-hbtn--lg { height: 52px; padding: 0 26px; font-size: 14px; }
@media (hover: hover) { .dh-hbtn:hover { background: var(--ink); color: #fff; } .dh-hbtn:hover .dh-icon--arw { transform: translateX(3px); } }

/* 폰 메뉴: 가는 두 줄 → 눌리면 가위표, 전체 화면 메뉴 */
.dh-menu-btn { display: none; position: relative; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; color: var(--ink); }
.dh-menu-btn__l { position: absolute; left: 11px; width: 22px; height: 1.5px; background: currentColor; transition: transform .3s var(--ease-out); }
.dh-menu-btn__l:nth-child(1) { top: 17px; }
.dh-menu-btn__l:nth-child(2) { top: 26px; }
.dh-menu-btn[aria-expanded="true"] .dh-menu-btn__l:nth-child(1) { transform: translateY(4.5px) rotate(45deg); }
.dh-menu-btn[aria-expanded="true"] .dh-menu-btn__l:nth-child(2) { transform: translateY(-4.5px) rotate(-45deg); }
.dh-drawer { position: fixed; inset: 0; z-index: 25; background: #fff; overflow-y: auto; padding-top: calc(env(safe-area-inset-top, 0px) + 60px); opacity: 0; transform: translateY(-8px); transition: opacity .3s var(--ease-out), transform .3s var(--ease-out); }
.dh-drawer.is-open { opacity: 1; transform: none; }
.dh-drawer__in { display: flex; flex-direction: column; min-height: 100%; padding-top: var(--space-6); padding-bottom: var(--space-7); }
.dh-drawer a.dh-drawer__link, .dh-drawer__in > a { display: flex; align-items: baseline; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.dh-drawer__n { font-family: var(--font-latin); font-weight: 300; font-size: 15px; letter-spacing: 0.12em; color: var(--gold); min-width: 28px; }
.dh-drawer__t { font-size: 30px; font-weight: 300; letter-spacing: -0.02em; line-height: 1.3; }
.dh-drawer__in > a[aria-current="page"] .dh-drawer__t { font-weight: 500; }
.dh-drawer__foot { margin-top: auto; padding-top: var(--space-7); display: grid; gap: var(--space-4); justify-items: start; }
.dh-drawer__foot .dh-hbtn { width: 100%; justify-content: space-between; }
.dh-drawer__mail { font-size: 14px; letter-spacing: 0.06em; color: var(--ink-subtle); text-decoration: none; }
.dh-drawer__in > a { opacity: 0; transform: translateY(8px); transition: opacity .3s var(--ease-out), transform .3s var(--ease-out); }
.dh-drawer.is-open .dh-drawer__in > a, .dh-drawer.is-open .dh-drawer__foot > a { opacity: 1; transform: none; }
.dh-drawer__foot > a { opacity: 0; transition: opacity .3s var(--ease-out); }
.dh-drawer.is-open .dh-drawer__in > a:nth-child(2) { transition-delay: 40ms; }
.dh-drawer.is-open .dh-drawer__in > a:nth-child(3) { transition-delay: 80ms; }
.dh-drawer.is-open .dh-drawer__in > a:nth-child(4) { transition-delay: 120ms; }
html.menu-open { overflow: hidden; }

/* 푸터 */
.dh-footer { background: var(--surface); border-top: 1px solid var(--line); padding: var(--space-9) 0 var(--space-6); }
.dh-footer__top { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); align-items: start; }
.dh-footer__logo { align-items: flex-start; text-align: left; width: max-content; }
.dh-footer__logo .dh-logo__mark { font-size: clamp(44px, 5vw, 64px); }
.dh-footer__logo .dh-logo__sub { font-size: 11px; margin-top: 0.9em; }
.dh-footer__logo .dh-logo__ko { font-size: 12px; margin-top: 0.8em; }
.dh-footer__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.dh-footer__col { border-top: 1px solid var(--ink); padding-top: var(--space-4); }
.dh-footer__h { margin: 0 0 var(--space-4); font-family: var(--font-sans); font-size: 11.5px; font-weight: 600; letter-spacing: 0.22em; color: var(--gold-text); }
.dh-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; color: var(--ink-muted); }
.dh-footer__col a { color: var(--ink); text-decoration: none; background-image: linear-gradient(var(--gold), var(--gold)); background-repeat: no-repeat; background-position: 0 100%; background-size: 0 1px; padding-bottom: 2px; transition: background-size .3s var(--ease-out); }
@media (hover: hover) { .dh-footer__col a:hover { background-size: 100% 1px; } }
.dh-footer__bottom { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-6); margin-top: var(--space-9); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.dh-footer__legal { margin: 0; max-width: 760px; font-size: 12.5px; line-height: 1.8; color: var(--ink-subtle); }
.dh-footer__copy { margin: 0; flex: none; font-size: 12px; letter-spacing: 0.1em; color: var(--ink-subtle); white-space: nowrap; }

@media (max-width: 1000px) {
  .dh-topbar { display: none; }
  .dh-header nav[aria-label="주 메뉴"], .dh-header__actions .dh-hbtn { display: none; }
  .dh-menu-btn { display: block; margin-right: -11px; }
  .dh-header__inner { grid-template-columns: 1fr auto; height: 60px; }
  .dh-footer { padding-top: var(--space-8); }
  .dh-footer__top { grid-template-columns: 1fr; gap: var(--space-7); }
  .dh-footer__bottom { margin-top: var(--space-7); }
}
@media (max-width: 640px) {
  .dh-footer__cols { grid-template-columns: 1fr 1fr; gap: var(--space-6) var(--space-5); }
  .dh-footer__col:last-child { grid-column: 1 / -1; }
  .dh-footer__bottom { flex-direction: column; gap: var(--space-4); }
}
@media (min-width: 1001px) { .dh-drawer { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  .dh-drawer, .dh-drawer__in > a, .dh-drawer__foot > a, .dh-menu-btn__l, .dh-nav a::after, .dh-hbtn, .dh-hbtn .dh-icon--arw, .dh-footer__col a { transition: none !important; }
}
/* 상담 문의 구간: 큰 로고는 바로 아래 푸터에만 (두 번 겹치지 않게, 머리 에이전트 2026-10-12) */
.dh-cta { grid-template-columns: minmax(0, 1fr); }
