/* legal.css — 약관·개인정보 처리방침 화면 (frontend/js/legal-ui.js, legal-page.js)
 *
 * 원칙: 휴대폰에서 읽혀야 한다. 본문 16px 이상, 글자색은 짙게(대비 7:1 이상), 연한 회색
 * 작은 글씨를 쓰지 않는다. 표는 휴대폰에서 가로로 밀어 읽게 하지 않고 행마다 카드로 쌓는다.
 */

:root {
  --legal-ink: #17342d;      /* 본문 (흰 바탕 대비 약 12:1) */
  --legal-sub: #3d5149;      /* 보조 문구 (약 8:1) — 이보다 연한 색은 쓰지 않는다 */
  --legal-link: #0d6b53;     /* 링크 (약 6:1) */
  --legal-line: #cdd9d3;
}

/* ---------- 문안 본문 (페이지·모달 공통) ---------- */

.legal-text {
  color: var(--legal-ink);
  font-size: 16px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.legal-text p { margin: 0 0 12px; }
.legal-text .legal-h {
  margin: 26px 0 8px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.5;
}
.legal-text .legal-note { color: var(--legal-sub); }
/* base.css 가 목록 기호를 지워 두어서(list-style: none) 번호·글머리가 안 보였다 — 법 문안은 번호가 있어야 한다 */
.legal-text ol,
.legal-text ul { margin: 0 0 12px; padding-left: 1.6em; }
.legal-text ol { list-style: decimal outside; }
.legal-text ul { list-style: disc outside; }
.legal-text li { display: list-item; }
.legal-text li { margin: 0 0 6px; }
.legal-text li > ul { margin-top: 6px; }
.legal-text strong { font-weight: 800; }

/* 표 — 넓은 화면은 표, 좁은 화면은 행마다 카드 */
.legal-table { margin: 0 0 16px; }
.legal-table table { border-collapse: collapse; width: 100%; font-size: 15px; line-height: 1.65; }
.legal-table th,
.legal-table td {
  border: 1px solid var(--legal-line);
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
}
.legal-table th { background: #eef4f0; font-weight: 800; }

@media (max-width: 640px) {
  .legal-table table,
  .legal-table tbody,
  .legal-table tr,
  .legal-table td { display: block; width: 100%; box-sizing: border-box; }
  .legal-table thead { display: none; }
  .legal-table tr {
    border: 1px solid var(--legal-line);
    border-radius: 12px;
    margin: 0 0 12px;
    background: #fff;
    overflow: hidden;
  }
  .legal-table td { border: 0; border-bottom: 1px solid #e6eee9; padding: 10px 14px; }
  .legal-table td:last-child { border-bottom: 0; }
  .legal-table td::before {
    content: attr(data-label);
    display: block;
    color: var(--legal-sub);
    font-size: 14px;
    font-weight: 800;
    margin-bottom: 2px;
  }
  .legal-table td[data-label=""]::before { display: none; }
}

/* ---------- 독립 페이지 (/privacy, /terms) ---------- */

.legal-body { background: #fff; }
.legal-page {
  box-sizing: border-box;
  max-width: 780px;
  margin: 0 auto;
  padding: 20px 16px 48px;
}
.legal-home {
  display: inline-block;
  margin: 0 0 18px;
  padding: 8px 0;
  color: var(--legal-link);
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}
.legal-title {
  margin: 0 0 8px;
  font-size: 30px;               /* 처리방침 이름이 본문보다 확실히 크게(시행령 제31조) */
  line-height: 1.3;
  font-weight: 900;
  color: var(--legal-ink);
}
.legal-meta { margin: 0 0 22px; color: var(--legal-sub); font-size: 16px; }
.legal-loading { font-size: 16px; color: var(--legal-sub); }
.legal-other { margin: 28px 0 0; font-size: 16px; }
.legal-other a { color: var(--legal-link); font-weight: 700; }

@media (min-width: 641px) {
  .legal-page { padding: 36px 24px 72px; }
  .legal-title { font-size: 34px; }
}

/* ---------- 하단 링크·사업자 정보 ---------- */

.legal-footer {
  margin: 32px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--legal-line);
  color: var(--legal-sub);
  font-size: 15px;
  line-height: 1.7;
}
.legal-links { margin: 0 0 8px; font-size: 16px; }
.legal-links a { color: var(--legal-link); padding: 6px 2px; display: inline-block; }
.legal-links strong a { font-weight: 900; }
.legal-company p { margin: 0 0 2px; }

/* 신청 마법사 하단 */
.wizard .legal-links {
  margin: 0;
  padding: 0 20px 22px;
  text-align: center;
}

/* 첫 화면 하단 */
.landing-page .legal-footer { margin: 28px 0 0; padding: 18px 0 24px; }

/* ---------- 로그인 안내 ---------- */

.legal-login-note {
  margin: 18px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--legal-line);
  border-radius: 12px;
  background: #f4f8f5;
  color: var(--legal-ink);
  font-size: 15px;
  line-height: 1.7;
}
.legal-login-note p { margin: 0 0 6px; }
.legal-login-note p:last-child { margin-bottom: 0; }
.legal-login-note a { color: var(--legal-link); font-weight: 800; }

/* ---------- 신청 화면 동의 영역 ---------- */

.terms-list .check-line small { color: var(--legal-sub); font-size: 14px; }
.terms-list .check-line b { font-size: 16px; line-height: 1.5; }
.terms-list .check-line .wizard-link { font-size: 15px; padding: 10px 12px; white-space: nowrap; }

/* 읽고 확인하는 고지 블록 (체크 없음) */
.legal-notice {
  margin: 14px 0 4px;
  padding: 14px 16px;
  border: 1px solid var(--legal-line);
  border-left: 5px solid #17a980;
  border-radius: 12px;
  background: #fff;
  color: var(--legal-ink);
  font-size: 15px;
  line-height: 1.7;
}
.legal-notice b { display: block; margin: 0 0 6px; font-size: 16px; }
.legal-notice p { margin: 0 0 8px; }
.legal-notice .legal-notice-actions { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.legal-notice a { color: var(--legal-link); font-weight: 800; }

/* 모달 안 본문도 같은 크기로 */
.terms-body { font-size: 16px; max-height: 60vh; }
.terms-body .legal-text p { font-size: 16px; }
