/* legal.css — 사업자 정보 푸터 + 법정 문서(약관/개인정보/환불) 공용 스타일.
   tokens.css 변수 재사용, 값 없으면 안전한 폴백. 종이 위 잉크(라이트) 톤. */

/* 독립 페이지(terms/privacy/refund/payment-result)는 styles.css를 안 실어 body가 무배경이었다.
   tokens.css 만으로 캔버스/텍스트가 안 잡히는 경우를 대비해 종이 캔버스를 여기서 칠한다. */
body {
  margin: 0;
  background: var(--color-bg-canvas, #FBFAF8);
  color: var(--color-text-primary, #1A1830);
  font-family: var(--font-sans, 'Pretendard', -apple-system, sans-serif);
}

.biz-footer {
  max-width: 860px;
  margin: 56px auto 0;
  padding: 28px max(22px, env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
  border-top: 1px solid var(--color-border-default, rgba(26, 24, 48, 0.1));
  font-size: 0.82rem;
  line-height: 1.7;
  color: var(--color-text-secondary, #5B5570);
}
.biz-footer .biz-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-bottom: 16px;
  font-size: 0.86rem;
}
.biz-footer .biz-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px; /* 44px 터치 타깃 */
  color: var(--color-text-secondary, #5B5570);
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color 0.15s;
}
.biz-footer .biz-links a:hover {
  color: var(--color-accent-deep, #6D5AE6);
  text-decoration: underline;
}
.biz-footer .biz-links strong {
  color: var(--color-text-primary, #1A1830);
  font-weight: 800;
}
.biz-footer .biz-cs {
  margin-bottom: 14px;
  font-size: 0.8rem;
  opacity: 0.85;
}
.biz-footer .biz-info a {
  color: var(--color-accent-deep, #6D5AE6);
  text-underline-offset: 3px;
}
.biz-footer .biz-ftc {
  margin-left: 8px;
  font-size: 0.92em;
  white-space: nowrap;
}
.biz-footer .biz-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 24px;
  margin: 0 0 16px;
}
.biz-footer .biz-row {
  display: flex;
  gap: 8px;
  min-width: 0;
}
.biz-footer .biz-row dt {
  flex: 0 0 auto;
  min-width: 92px;
  color: var(--color-text-tertiary, #8C879B);
  font-weight: 700;
}
.biz-footer .biz-row dd {
  margin: 0;
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.biz-footer .biz-missing {
  color: #C0392B;
  font-weight: 700;
}
.biz-footer .biz-copyright {
  margin-top: 8px;
  font-size: 0.78rem;
  opacity: 0.7;
}
@media (max-width: 600px) {
  .biz-footer .biz-info {
    grid-template-columns: 1fr;
  }
}

/* ── 법정 문서 페이지 ── */
.legal-doc {
  max-width: 800px;
  margin: 0 auto;
  padding: 48px max(22px, env(safe-area-inset-right)) 24px max(22px, env(safe-area-inset-left));
  color: var(--color-text-primary, #1A1830);
  line-height: 1.85;
  word-break: keep-all;
}
.legal-doc .legal-back {
  display: inline-flex;
  align-items: center;
  min-height: 44px; /* 44px 터치 타깃 */
  margin-bottom: 20px;
  font-size: 0.86rem;
  color: var(--color-text-secondary, #5B5570);
  text-decoration: none;
}
.legal-doc .legal-back:hover {
  color: var(--color-accent-deep, #6D5AE6);
}
.legal-doc h1 {
  font-family: var(--font-display, 'Poppins', sans-serif);
  font-size: 1.6rem;
  font-weight: 800;
  margin: 0 0 6px;
  color: var(--color-text-primary, #1A1830);
}
.legal-doc .legal-updated {
  font-size: 0.82rem;
  color: var(--color-text-tertiary, #8C879B);
  margin-bottom: 28px;
}
.legal-doc h2 {
  font-size: 1.08rem;
  font-weight: 800;
  margin: 32px 0 10px;
  color: var(--color-accent-deep, #6D5AE6);
}
.legal-doc h3 {
  font-size: 0.98rem;
  font-weight: 700;
  margin: 18px 0 6px;
}
.legal-doc p,
.legal-doc li {
  font-size: 0.92rem;
  color: var(--color-text-secondary, #5B5570);
}
.legal-doc ul,
.legal-doc ol {
  padding-left: 20px;
  margin: 8px 0;
}
.legal-doc li {
  margin: 4px 0;
}
.legal-doc table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
  font-size: 0.86rem;
  display: block;           /* 열 많은 표(국외이전 5열 등)는 페이지 대신 표 자체가 가로 스크롤 */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  /* 스크롤 어포던스: 우측 "더 있음" 힌트(스크롤 끝에선 local 커버가 덮어 사라짐) — 모바일 실측에서 잘림 인지 불가 픽스 */
  background:
    linear-gradient(to left, var(--color-bg-canvas, #FBFAF8), transparent) right center / 22px 100% no-repeat local,
    linear-gradient(to left, rgba(143, 123, 240, 0.22), transparent) right center / 22px 100% no-repeat scroll;
}
/* min-width 560 일괄 적용이 2열표(위탁/보유기간/환불기준)의 첫 열을 과폭으로 만들어 값 열이 rest 에서 통째로 잘리던 것 —
   셀 최소폭으로 다열표 스크롤은 유지하고, 2열 행(td:first-child:nth-last-child(2))만 열 밸런스를 강제 */
.legal-doc table thead,
.legal-doc table tbody { display: table; width: 100%; border-collapse: collapse; }
.legal-doc th, .legal-doc td { min-width: 96px; }
.legal-doc tr > th:first-child:nth-last-child(2),
.legal-doc tr > td:first-child:nth-last-child(2) { width: 44%; }
/* 위에서 thead/tbody 를 별개 테이블로 쪼갠 대가: 열 폭이 두 컨텍스트에서 따로 계산돼 3열 이상 표는
   헤더가 값과 어긋난다(2열 표는 바로 위 44% 규칙이 양쪽에 같이 걸려 우연히 맞았을 뿐).
   .legal-table-fixed 를 단 표만 열 폭을 명시해 두 컨텍스트의 경계를 강제로 일치시킨다 —
   폭을 지정하지 않은 한 열이 남는 폭을 전부 먹는다. 클래스 없는 기존 표 렌더는 불변.
   폭 수치는 각 열 min-content 실측(패딩/보더 포함) 기준이라 390px 에서도 텍스트가 넘치지 않는다. */
.legal-table-fixed thead,
.legal-table-fixed tbody { table-layout: fixed; }
/* 위 96px 최소폭이 고정폭을 되눌러 정렬을 원위치시키는 것 차단 */
.legal-table-fixed th,
.legal-table-fixed td { min-width: 0; }
/* 환불 기준표(구분/환불 가능 여부/기준) — 3열, min-content [82/63/109]. 기준 열이 남는 폭 전부 */
.legal-table-refund th:nth-child(1), .legal-table-refund td:nth-child(1) { width: 96px; }
.legal-table-refund th:nth-child(2), .legal-table-refund td:nth-child(2) { width: 78px; }
/* 수집 항목표(구분/항목/수집 시점) — 3열, min-content [70/82/58]. 항목 열이 남는 폭 전부.
   수집 시점 열 96px 은 "서비스 이용 시"가 한 줄에 들어가는 최소치("시"만 남는 줄 방지) */
.legal-table-collect th:nth-child(1), .legal-table-collect td:nth-child(1) { width: 96px; }
.legal-table-collect th:nth-child(3), .legal-table-collect td:nth-child(3) { width: 96px; }
/* 국외이전표 5열 — min-content [177/46/110/94/63]. 좁은 화면 가로 스크롤은 의도된 동작이라
   thead/tbody 에 같은 min-width 를 걸어 둘이 같은 폭으로 함께 넘치게 두고 정렬만 맞춘다 */
.legal-table-transfer thead,
.legal-table-transfer tbody { min-width: 700px; }
.legal-table-transfer th:nth-child(1), .legal-table-transfer td:nth-child(1) { width: 169px; }
.legal-table-transfer th:nth-child(2), .legal-table-transfer td:nth-child(2) { width: 55px; }
.legal-table-transfer th:nth-child(4), .legal-table-transfer td:nth-child(4) { width: 123px; }
.legal-table-transfer th:nth-child(5), .legal-table-transfer td:nth-child(5) { width: 113px; }
.legal-doc th,
.legal-doc td {
  border: 1px solid var(--color-border-default, rgba(26, 24, 48, 0.12));
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
  color: var(--color-text-secondary, #5B5570);
}
.legal-doc th {
  background: var(--color-sand, rgba(26, 24, 48, 0.04));
  font-weight: 700;
  color: var(--color-text-primary, #1A1830);
}
/* 표 셀 부연(요금표 항목 설명) — 항목명 아래 한 단 낮춰 표 폭을 늘리지 않고 읽히게. */
.legal-doc td small {
  display: block;
  margin-top: 2px;
  font-size: 0.92em;
  line-height: 1.5;
  color: var(--color-text-tertiary, #8C879B);
}
.legal-doc .legal-note {
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--color-sand, rgba(26, 24, 48, 0.04));
  font-size: 0.86rem;
}
.legal-doc strong {
  color: var(--color-text-primary, #1A1830);
  font-weight: 700;
}
