/* KAIA components.css — DS §6 컴포넌트 8종(버튼3·카드3·카운터·탭·아코디언·폼·GNB·푸터).
   재사용: 서브 6p는 이 파일을 그대로 로드해 동일 클래스를 쓴다. 페이지 전용 변형은 각 페이지 CSS에서 확장.
   리터럴 hex/px 스페이싱 금지 — 값은 전부 토큰 참조. */

/* ═══ 6.1 버튼 (3종) ═══════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  min-height: var(--btn-height-md);
  padding-inline: var(--btn-padding-x-md);
  border-radius: var(--btn-radius);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--btn-font-weight);
  line-height: 1;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-standard),
              border-color   var(--duration-fast) var(--ease-standard),
              color          var(--duration-fast) var(--ease-standard),
              transform      var(--duration-fast) var(--ease-standard),
              box-shadow     var(--duration-base) var(--ease-standard);
}
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.btn:disabled, .btn[aria-disabled="true"] { cursor: not-allowed; transform: none; }
@media (hover: hover) and (pointer: fine) {
  .btn:hover:not(:disabled):not([aria-disabled="true"]) { transform: translateY(-1px); }
}
.btn:active:not(:disabled):not([aria-disabled="true"]) { transform: translateY(0) scale(0.985); }

.btn--lg { min-height: var(--btn-height-lg); padding-inline: var(--btn-padding-x-lg); font-size: var(--text-body); }
.btn--sm { min-height: var(--btn-height-sm); padding-inline: var(--btn-padding-x-sm); position: relative; }
/* sm은 히트영역을 44px로 확장 (DS §6.1) */
.btn--sm::after { content: ""; position: absolute; inset: var(--hit-expand); }
.btn--block { width: 100%; }

.btn--primary { background: var(--blue-600); color: var(--ink-000); box-shadow: var(--shadow-sm); }
@media (hover: hover) and (pointer: fine) {
  .btn--primary:hover:not(:disabled) { background: var(--blue-500); box-shadow: var(--shadow-glow); }
}
.btn--primary:active:not(:disabled) { background: var(--blue-700); box-shadow: none; }
.btn--primary:disabled, .btn--primary[aria-disabled="true"] {
  background: var(--ink-700); color: var(--ink-400); border-color: var(--ink-600); box-shadow: none;
}

.btn--accent { background: var(--cyan-400); color: var(--ink-950); }
@media (hover: hover) and (pointer: fine) {
  .btn--accent:hover:not(:disabled) { background: var(--cyan-300); box-shadow: var(--shadow-glow); }
}
.btn--accent:active:not(:disabled) { background: var(--cyan-500); }
.btn--accent:disabled, .btn--accent[aria-disabled="true"] {
  background: var(--ink-700); color: var(--ink-400); border-color: var(--ink-600);
}

.btn--ghost { background: transparent; color: var(--ink-100); border-color: var(--ink-350); }
@media (hover: hover) and (pointer: fine) {
  .btn--ghost:hover:not(:disabled) { background: var(--alpha-white-08); color: var(--ink-000); border-color: var(--ink-200); }
}
.btn--ghost:active:not(:disabled) { background: var(--alpha-white-04); color: var(--ink-100); border-color: var(--ink-350); }
.btn--ghost:disabled, .btn--ghost[aria-disabled="true"] { color: var(--ink-400); border-color: var(--ink-600); }
[data-theme="light"] .btn--ghost { color: var(--ink-850); border-color: var(--ink-500); }
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .btn--ghost:hover:not(:disabled) { background: var(--color-surface-glass); color: var(--ink-950); border-color: var(--ink-500); }
}
/* 브랜드 배경 위 고스트 — 화이트 경계로 3:1 확보 */
.on-brand .btn--ghost { color: var(--ink-000); border-color: var(--ink-000); }

/* 로딩 상태: 라벨 유지 + 스피너, 너비 고정 */
.btn[aria-busy="true"] { pointer-events: none; }
.btn__spinner { width: 1rem; height: 1rem; border-radius: var(--radius-full);
  border: 2px solid currentColor; border-right-color: transparent;
  animation: spin 700ms linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ═══ 칩 (업종·관심분야) ═══════════════════════════════════════ */
.chip {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--btn-height-md);
  padding-inline: var(--space-4);
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border-strong);
  background: transparent;
  color: var(--color-text-primary);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard);
}
@media (hover: hover) and (pointer: fine) {
  .chip:hover { border-color: var(--color-border-brand); background: var(--color-surface-glass); }
}
/* sm 변형(뉴스레터·인기검색어 칩 36px)에서도 히트영역 44px 확보 — DS §6 공통 규칙 */
.chip { position: relative; }
.chip::after { content: ""; position: absolute; inset: var(--hit-expand); }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip:has(input:checked) { background: var(--color-brand); border-color: var(--color-brand); color: var(--color-text-on-brand); }
.chip:has(input:focus-visible) { box-shadow: var(--focus-ring); }

/* ═══ 6.2 카드 (3종) ═══════════════════════════════════════════ */
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--card-bg);
  border: var(--card-border);
  border-radius: var(--card-radius);
  padding: var(--card-padding);
  box-shadow: var(--card-shadow);
  color: inherit;
  text-decoration: none;
  transition: transform var(--duration-slow) var(--ease-out),
              box-shadow var(--duration-slow) var(--ease-out),
              border-color var(--duration-slow) var(--ease-out),
              background-color var(--duration-slow) var(--ease-out);
}
.card--compact { padding: var(--card-padding-compact); }
.card--flush { padding: 0; overflow: hidden; }
.card:focus-visible { outline: none; box-shadow: var(--focus-ring); }
/* 호버 리프트는 카드 전체가 링크(a.card)일 때만 (DS §6.2) */
@media (hover: hover) and (pointer: fine) {
  a.card:hover {
    transform: translateY(var(--card-lift));
    box-shadow: var(--card-shadow-hover);
    border-color: var(--color-border-brand);
  }
  a.card:hover .card__thumb img { transform: scale(1.04); }
  a.card:hover .card__arrow { transform: translateX(var(--shift-xs)); }
}

.card__thumb { overflow: hidden; background: var(--color-bg-sunken); aspect-ratio: 16 / 9; }
.card__thumb img { width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--duration-slow) var(--ease-out); }
.card__body { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--card-padding-compact); flex: 1; }
.card--flush > .card__body { padding: var(--card-padding-compact); }
.card__title { font-size: var(--text-h4); font-weight: var(--weight-semibold); }
.card__desc { color: var(--color-text-secondary); font-size: var(--text-sm); }
.card__meta { color: var(--color-text-secondary); font-size: var(--text-xs); }
.card__arrow { transition: transform var(--duration-base) var(--ease-out); }
.card__foot { margin-block-start: auto; padding-top: var(--space-3); }

/* 사업 카드 */
.card--biz .card__icon { color: var(--color-accent); width: 2.5rem; height: 2.5rem; }
.card--biz[aria-disabled="true"] { opacity: 0.55; pointer-events: none; }

/* 회원사 카드 / 로고 타일 */
.logo-tile {
  display: grid; place-items: center;
  min-height: 64px;
  padding: var(--space-3) var(--space-4);
  background: var(--ink-100);
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
}
.logo-tile img {
  height: 32px; width: auto;
  filter: grayscale(100%);
  opacity: 0.72;
  transition: filter var(--duration-base) var(--ease-standard),
              opacity var(--duration-base) var(--ease-standard),
              transform var(--duration-base) var(--ease-standard);
}
@media (hover: hover) and (pointer: fine) {
  .logo-tile:hover img { filter: grayscale(0); opacity: 1; transform: scale(1.06); }
  .logo-tile:hover { border-color: var(--color-border-brand); }
}

/* 스켈레톤 */
.skeleton { background: linear-gradient(90deg, var(--ink-800), var(--ink-700), var(--ink-800));
  background-size: 200% 100%; animation: shimmer 1.4s linear infinite; border-radius: var(--radius-sm); }
@keyframes shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .skeleton { animation: none; background: var(--ink-800); } }

/* ═══ 6.3 통계 카운터 ══════════════════════════════════════════ */
.counter { display: flex; flex-direction: column; gap: var(--space-2); }
.counter__value {
  display: flex; align-items: baseline; gap: var(--space-2);
  font-size: var(--text-counter);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  font-variant-numeric: tabular-nums;
  /* CLS 0 — 최종값 폭 선지정 (--counter-ch는 인스턴스별 지정) */
  min-width: calc(var(--counter-ch, 5) * 1ch);
}
.counter__unit { font-size: var(--text-h4); font-weight: var(--weight-semibold); color: var(--color-accent); letter-spacing: var(--tracking-normal); }
.counter__label { font-size: var(--text-sm); color: var(--color-text-secondary); }

/* ═══ 6.4 탭 ═══════════════════════════════════════════════════ */
.tabs__list {
  display: flex; gap: var(--space-2);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  border-bottom: 1px solid var(--color-border-subtle);
}
.tabs__list::-webkit-scrollbar { display: none; }
.tab {
  position: relative;
  flex: none;
  scroll-snap-align: center;
  min-height: var(--btn-height-md);
  padding: var(--space-3) var(--space-4);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--duration-fast) var(--ease-standard);
}
.tab::after {
  content: ""; position: absolute; inset-inline: 0; bottom: -1px; height: 2px;
  background: var(--color-accent);
  transform: scaleX(0); transform-origin: left center;
  transition: transform var(--duration-base) var(--ease-inout);
}
@media (hover: hover) and (pointer: fine) {
  .tab:hover { color: var(--color-text-primary); }
  .tab:hover::after { transform: scaleX(1); opacity: 0.2; }
}
.tab[aria-selected="true"] { color: var(--color-text-primary); font-weight: var(--weight-semibold); }
.tab[aria-selected="true"]::after { transform: scaleX(1); opacity: 1; }
.tab:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.tab[aria-disabled="true"] { color: var(--color-text-disabled); pointer-events: none; }
.tabpanel:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.tabpanel[hidden] { display: none; }

/* ═══ 6.5 아코디언 (details 기반 — JS 없이 동작) ═══════════════ */
.accordion { border-bottom: 1px solid var(--color-border-subtle); }
.accordion__summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  min-height: var(--btn-height-lg);
  padding: var(--space-4) var(--space-2);
  font-size: var(--text-h4);
  color: var(--color-text-primary);
  list-style: none;
  transition: background-color var(--duration-fast) var(--ease-standard);
}
.accordion__summary:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-xs); }
@media (hover: hover) and (pointer: fine) {
  .accordion__summary:hover { background: var(--alpha-white-04); }
  .accordion__summary:hover .accordion__icon { color: var(--color-accent); }
}
.accordion__icon { color: var(--color-text-secondary); transition: transform var(--duration-slow) var(--ease-standard); }
.accordion[open] > .accordion__summary { font-weight: var(--weight-semibold); }
.accordion[open] > .accordion__summary .accordion__icon { transform: rotate(180deg); }
/* height:auto 금지 → grid 트릭 (DS §6.5) */
.accordion__body {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows var(--duration-slow) var(--ease-standard);
}
.accordion[open] .accordion__body { grid-template-rows: 1fr; }
.accordion__body > div { overflow: hidden; }
.accordion__body p, .accordion__body ul { padding: 0 var(--space-2) var(--space-5); color: var(--color-text-secondary); }

/* ═══ 6.6 폼 필드 ══════════════════════════════════════════════ */
.field { display: flex; flex-direction: column; gap: var(--space-2); }
.field__label { font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--color-text-primary); }
.field__req { color: var(--color-danger); margin-inline-start: var(--space-1); }
.field__hint { font-size: var(--text-xs); color: var(--color-text-secondary); }

.input, .select {
  min-height: var(--field-height);
  padding-inline: var(--field-padding-x);
  background: var(--field-bg);
  border: var(--field-border);
  border-radius: var(--field-radius);
  color: var(--color-text-primary);
  font-size: var(--text-sm);
  width: 100%;
  transition: border-color var(--duration-fast) var(--ease-standard);
}
.input::placeholder { color: var(--color-text-placeholder); }
@media (hover: hover) and (pointer: fine) { .input:hover, .select:hover { border-color: var(--color-border-strong); } }
.input:focus-visible, .select:focus-visible { outline: none; border: var(--field-border-focus); box-shadow: var(--focus-ring); }
.input[aria-invalid="true"] { border-color: var(--color-danger); }
.input:disabled, .select:disabled { background: var(--color-surface); border-color: var(--ink-600); color: var(--color-text-disabled); }

.field__error {
  display: none;
  align-items: center; gap: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-danger);
}
.field__error.is-visible { display: flex; }

/* 체크박스 — 시각 20px, 히트영역 44px */
.checkbox { display: flex; align-items: flex-start; gap: var(--space-3); position: relative;
  min-height: var(--btn-height-md); padding-block: var(--space-3); cursor: pointer;
  font-size: var(--text-sm); color: var(--color-text-secondary); }
.checkbox input { width: 20px; height: 20px; flex: none; margin: var(--space-1) 0 0; accent-color: var(--color-accent); cursor: pointer; }
.checkbox input:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-xs); }
.checkbox a { color: var(--color-text-link); }

.form-status { font-size: var(--text-sm); }
.form-status--ok { color: var(--color-success); }
.form-status--err { color: var(--color-danger); }

/* 허니팟 (CAPTCHA 대체 — WCAG 3.3.8) */
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ═══ 6.7 GNB ══════════════════════════════════════════════════ */
.gnb-sentinel { position: absolute; top: 0; left: 0; width: 1px; height: 24px; pointer-events: none; }

.gnb {
  position: fixed; inset-inline: 0; top: 0;
  z-index: var(--z-gnb);
  color: var(--ink-000);
  transition: background-color var(--duration-base) var(--ease-standard),
              transform var(--duration-slow) var(--ease-out),
              border-color var(--duration-base) var(--ease-standard);
  border-bottom: 1px solid transparent;
}
.gnb[data-state="solid"], .gnb.is-menu-open {
  background: var(--gnb-bg-solid);
  backdrop-filter: blur(var(--gnb-blur));
  border-bottom-color: var(--color-border-subtle);
  color: var(--ink-100);
}
@supports not (backdrop-filter: blur(1px)) {
  .gnb[data-state="solid"] { background: var(--ink-900); }
}

/* 유틸바 — solid에서 슬라이드 아웃.
   height 애니메이션은 DS §8 반려 조건이므로 grid-template-rows 트릭(§6.5와 동일)을 쓴다. */
.gnb__util {
  display: grid;
  grid-template-rows: 1fr;
  border-bottom: 1px solid var(--alpha-white-08);
  transition: grid-template-rows var(--duration-base) var(--ease-standard),
              opacity var(--duration-base) var(--ease-standard);
}
.gnb__util > * { overflow: hidden; min-height: 0; }
.gnb[data-state="solid"] .gnb__util { grid-template-rows: 0fr; opacity: 0; border-bottom-width: 0; }
.gnb__util-inner { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-5); }
/* 유틸바는 데스크톱(≥1024px) 전용이라 44px 확보가 불가 — 36×≥24px로 WCAG 2.5.8 최소치 충족 */
.gnb__util a, .gnb__util button {
  display: inline-flex; align-items: center;
  min-height: var(--util-height); min-width: var(--space-5);
  padding-inline: var(--space-1);
  color: inherit; font-size: var(--text-xs); text-decoration: none; opacity: 0.86;
}
.gnb__util .icon-btn { width: var(--util-height); height: var(--util-height); }
.gnb__util .is-current { font-weight: var(--weight-bold); opacity: 1; }
.gnb__lang { display: flex; align-items: center; gap: var(--space-2); }
.gnb__lang span[aria-hidden] { opacity: 0.72; }   /* 0.4 는 GNB 배경 대비 2.5:1 미달 */

/* 높이는 상태별로 즉시 전환(애니메이션 금지 — DS §8). 슬라이드 감은 유틸바 축소가 만든다. */
.gnb__bar { display: flex; align-items: center; gap: var(--space-5); height: var(--gnb-height); }
.gnb[data-state="solid"] .gnb__bar { height: 4rem; }

.gnb__logo { display: inline-flex; align-items: center; min-height: var(--btn-height-md); color: inherit; }
.gnb__logo img { width: 148px; height: 32px; }
.gnb__logo--symbol { display: none; }
.gnb__logo--symbol img { width: 32px; height: 32px; }

.gnb__nav { display: none; margin-inline-start: var(--space-6); }
.gnb__list { display: flex; align-items: center; gap: var(--space-2); }
.gnb__link {
  position: relative;
  display: inline-flex; align-items: center;
  min-height: var(--btn-height-md);
  padding-inline: var(--space-4);
  color: inherit;
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  text-decoration: none;
  border-radius: var(--radius-xs);
}
.gnb__link::after {
  content: ""; position: absolute; inset-inline: var(--space-4); bottom: var(--space-2); height: 2px;
  background: var(--color-accent);
  transform: scaleX(0); transform-origin: left center;
  transition: transform var(--duration-base) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) { .gnb__link:hover::after { transform: scaleX(1); } }
.gnb__item[data-open="true"] .gnb__link::after { transform: scaleX(1); }
.gnb__actions { margin-inline-start: auto; display: flex; align-items: center; gap: var(--space-2); }

/* 메가메뉴 */
.megamenu {
  position: absolute; inset-inline: 0; top: 100%;
  z-index: var(--z-dropdown);
  background: var(--ink-900);
  border-block: 1px solid var(--color-border-subtle);
  box-shadow: var(--shadow-xl);
  padding-block: var(--space-7);
}
.megamenu[hidden] { display: none; }
.megamenu__grid { display: grid; gap: var(--space-6); grid-template-columns: 2fr 1fr; }
.megamenu__cols { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.megamenu__col h3 { font-size: var(--text-sm); color: var(--color-text-accent); margin-block-end: var(--space-3); }
.megamenu__col a {
  display: block; min-height: var(--btn-height-md); display: flex; align-items: center;
  color: var(--ink-100); font-size: var(--text-sm); text-decoration: none; border-radius: var(--radius-xs);
  padding-inline: var(--space-2);
}
@media (hover: hover) and (pointer: fine) { .megamenu__col a:hover { background: var(--alpha-white-08); } }
.megamenu__card { color: var(--ink-100); text-decoration: none; }
.megamenu__card img { border-radius: var(--radius-md); aspect-ratio: 16 / 9; object-fit: cover; }
.megamenu__card p { margin-block-start: var(--space-3); font-size: var(--text-sm); }

/* 아이콘 버튼 (검색·햄버거·닫기) — 44×44 터치 타깃 */
.icon-btn {
  display: grid; place-items: center;
  width: var(--btn-height-md); height: var(--btn-height-md);
  border-radius: var(--radius-sm);
  color: inherit; cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-standard);
}
@media (hover: hover) and (pointer: fine) { .icon-btn:hover { background: var(--alpha-white-08); } }

/* 검색 오버레이 */
.search-panel {
  position: absolute; inset-inline: 0; top: 100%;
  z-index: var(--z-dropdown);
  background: var(--ink-900);
  border-block: 1px solid var(--color-border-subtle);
  box-shadow: var(--shadow-xl);
  padding-block: var(--space-6);
  color: var(--ink-100);
}
.search-panel[hidden] { display: none; }
.search-panel form { display: flex; gap: var(--space-3); }
.search-panel__hot { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-4); }
.search-panel__hot .chip { min-height: var(--btn-height-sm); font-size: var(--text-xs); padding-inline: var(--space-3); }

/* 모바일 풀스크린 드로어 */
.drawer {
  position: fixed; inset: 0;
  z-index: var(--z-modal);
  background: var(--ink-900);
  overflow-y: auto;
  padding: var(--space-4) 0 var(--space-10);
  color: var(--ink-100);
}
.drawer[hidden] { display: none; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; min-height: var(--gnb-height-mobile); }
.drawer__nav { margin-block-start: var(--space-5); }
.drawer__foot { margin-block-start: var(--space-7); display: flex; flex-direction: column; gap: var(--space-4); }
.drawer .accordion__summary { font-size: var(--text-h4); }
.drawer .accordion__body a {
  display: flex; align-items: center; min-height: var(--btn-height-md);
  padding-inline: var(--space-4); color: var(--color-text-secondary); text-decoration: none; font-size: var(--text-sm);
}
body.is-locked { overflow: hidden; }

/* GNB 반응형 */
@media (min-width: 1024px) {
  .gnb__nav { display: block; }
  .gnb__burger { display: none; }
}
@media (max-width: 1023px) {
  .gnb__util { display: none; }
  .gnb__bar, .gnb[data-state="solid"] .gnb__bar { height: var(--gnb-height-mobile); }
  .gnb__logo { display: none; }
  .gnb__logo--symbol { display: inline-flex; }
  .megamenu { display: none !important; }
}

/* ═══ 6.8 푸터 ═════════════════════════════════════════════════ */
.footer { position: relative; background: var(--ink-950); color: var(--ink-100);
  border-top: 1px solid var(--color-border-subtle); }
/* --footer-veil: 메인 C12만 스크럽. 기본 0이므로 서브 페이지엔 영향 없음 */
.footer::before {
  content: ""; position: absolute; inset-inline: 0; top: 0; height: 180px;
  pointer-events: none; z-index: var(--z-raised);
  background: var(--gradient-fade-bottom); transform: scaleY(-1);
  opacity: var(--footer-veil, 0);
}

.footer__cta {
  background: var(--gradient-brand-deep);
  padding-block: calc(var(--section-py) / 2);
  text-align: center;
  color: var(--ink-000);
}
.footer__cta h2 { font-size: var(--text-h2); }
.footer__cta .cluster { justify-content: center; margin-block-start: var(--space-5); }

.footer__main { padding-block: var(--space-10); display: grid; gap: var(--space-8); }
.footer__brand { display: flex; flex-direction: column; gap: var(--space-4); }
.footer__brand img { width: 148px; height: 32px; }
.footer__sitemap { display: grid; gap: var(--space-6); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.footer__sitemap h3 { font-size: var(--text-sm); color: var(--ink-000); margin-block-end: var(--space-2); }
.footer__sitemap a {
  display: flex; align-items: center; min-height: var(--btn-height-md);
  color: var(--ink-300); font-size: var(--text-sm); text-decoration: none;
}
@media (hover: hover) and (pointer: fine) {
  .footer__sitemap a:hover { color: var(--ink-100); text-decoration: underline; }
}
.footer__sns { display: flex; gap: var(--space-2); }
.footer__sns a { display: grid; place-items: center; width: var(--btn-height-md); height: var(--btn-height-md);
  color: var(--ink-300); border-radius: var(--radius-sm); }
@media (hover: hover) and (pointer: fine) { .footer__sns a:hover { color: var(--ink-100); background: var(--alpha-white-08); } }

.footer__org { padding-block: var(--space-6); border-top: 1px solid var(--color-border-subtle);
  font-size: var(--text-xs); color: var(--ink-300); }
.footer__org strong { color: var(--ink-100); font-weight: var(--weight-semibold); }
.footer__org p + p { margin-block-start: var(--space-2); }
.footer__org a { color: inherit; }

.footer__legal {
  padding-block: var(--space-5);
  border-top: 1px solid var(--color-border-subtle);
  display: flex; flex-wrap: wrap; gap: var(--space-4);
  align-items: center; justify-content: space-between;
  font-size: var(--text-xs); color: var(--ink-300);
}
.footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.footer__legal-links a { color: inherit; text-decoration: none; min-height: var(--btn-height-md); display: inline-flex; align-items: center; }
.footer__legal-links a.is-strong { font-weight: var(--weight-semibold); color: var(--ink-100); }
@media (hover: hover) and (pointer: fine) { .footer__legal-links a:hover { text-decoration: underline; } }
.footer__notice { padding-block: var(--space-5); font-size: var(--text-xs); color: var(--ink-400); border-top: 1px solid var(--color-border-subtle); }

/* 모션 토글 스위치 (IA 2-6) */
.motion-toggle { display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--btn-height-md); font-size: var(--text-xs); color: var(--ink-300); cursor: pointer; }
.motion-toggle input { width: 20px; height: 20px; accent-color: var(--color-accent); }

@media (min-width: 768px) {
  .footer__sitemap { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .footer__main { grid-template-columns: 3fr 9fr; }
  .footer__sitemap { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
