/* ===================================================================
   legal.css — 이용약관 / 개인정보처리방침 문서 스타일
   -------------------------------------------------------------------
   사용법: 문서 본문 전체를 <div class="legal-doc"> 로 감싸기만 하면 됨.
   관리자가 저장한 raw HTML(h2/h3/p/ul/ol/table 등)에 클래스를 일일이
   안 붙여도, 이 래퍼 하위 선택자가 자동으로 타이포·간격을 적용한다.
   색·값은 setting.css 토큰(var(--...)) 재사용. 하드코딩 없음.
   =================================================================== */

/* ── 래퍼: 문서 가독 폭·기본 본문 타이포 ── */
.legal-doc{
  max-width: 860px;
  margin: 0 auto;
  color: var(--gray-800);
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: -0.01em;
  word-break: keep-all;
}

/* ── 문서 헤더(제목 + 시행일) ── */
.legal-doc .legal-head{
  padding-bottom: 24px;
  margin-bottom: 40px;
  border-bottom: 2px solid var(--main-color);
}
.legal-doc .legal-title{
  font-size: 30px;
  font-weight: 800;
  color: var(--main-color);
  line-height: 1.3;
  margin: 0 0 10px;
}
.legal-doc .legal-date{
  font-size: 14px;
  color: var(--gray-500);
  margin: 0;
}

/* ── 대제목 h2: 조항 구분 ── */
.legal-doc h2{
  position: relative;
  font-size: 21px;
  font-weight: 800;
  color: var(--main-color);
  line-height: 1.4;
  margin: 48px 0 18px;
  padding-left: 16px;
}
.legal-doc h2::before{
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 5px;
  border-radius: 3px;
  background: var(--point);
}
.legal-doc h2:first-child{ margin-top: 0; }

/* ── 중제목 h3 ── */
.legal-doc h3{
  font-size: 17px;
  font-weight: 700;
  color: var(--gray-900);
  line-height: 1.5;
  margin: 32px 0 12px;
}

/* ── 본문 문단 ── */
.legal-doc p{
  margin: 0 0 16px;
}
.legal-doc strong,
.legal-doc b{
  font-weight: 700;
  color: var(--gray-900);
}

/* ── 목록 ── */
.legal-doc ul,
.legal-doc ol{
  margin: 0 0 20px;
  padding-left: 4px;
  list-style: none;
}
.legal-doc ul > li,
.legal-doc ol > li{
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px;
  line-height: 1.75;
}
/* 순서 없는 목록: 포인트 컬러 점 */
.legal-doc ul > li::before{
  content: "";
  position: absolute;
  left: 4px; top: 12px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sub-color);
}
/* 순서 있는 목록: 카운터 번호 */
.legal-doc ol{ counter-reset: legal-ol; }
.legal-doc ol > li{ counter-increment: legal-ol; padding-left: 26px; }
.legal-doc ol > li::before{
  content: counter(legal-ol);
  position: absolute;
  left: 0; top: 2px;
  min-width: 18px; height: 18px;
  padding: 0 4px;
  border-radius: 5px;
  background: var(--main-color);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}
/* 중첩 목록 */
.legal-doc li ul,
.legal-doc li ol{
  margin: 10px 0 0;
}

/* ── 강조 박스: 관리자가 <blockquote>로 감싼 중요 고지 ── */
.legal-doc blockquote{
  margin: 0 0 20px;
  padding: 16px 20px;
  background: var(--light);
  border-left: 4px solid var(--sub-color);
  border-radius: 8px;
  color: var(--gray-700);
  font-size: 15px;
}
.legal-doc blockquote p:last-child{ margin-bottom: 0; }

/* ── 표: 개인정보 수집항목·보유기간 등 ── */
.legal-doc table{
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 24px;
  font-size: 14px;
}
.legal-doc thead th{
  background: var(--main-color);
  color: var(--white);
  font-weight: 700;
  padding: 12px 14px;
  text-align: left;
  border: 1px solid var(--main-color);
}
.legal-doc tbody td,
.legal-doc tbody th{
  padding: 11px 14px;
  border: 1px solid var(--gray-300);
  line-height: 1.6;
  vertical-align: top;
}
.legal-doc tbody tr:nth-child(even){ background: var(--light2); }

/* ── 링크 ── */
.legal-doc a{
  color: var(--main-color);
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-all;
}
.legal-doc a:hover{ color: var(--point); }

/* ── 구분선 ── */
.legal-doc hr{
  border: 0;
  border-top: 1px solid var(--gray-200);
  margin: 40px 0;
}

/* ── 모바일 ── */
@media (max-width: 768px){
  .legal-doc{ font-size: 15px; line-height: 1.75; }
  .legal-doc .legal-title{ font-size: 24px; }
  .legal-doc h2{ font-size: 18px; margin: 36px 0 14px; }
  .legal-doc h3{ font-size: 16px; margin: 26px 0 10px; }
  .legal-doc table{ font-size: 13px; }
  .legal-doc thead th,
  .legal-doc tbody td,
  .legal-doc tbody th{ padding: 9px 10px; }
}

/* ===================================================================
   모달 안에서 쓸 때 (tail.php 약관/개인정보 모달)
   모달 본문 div에 legal-doc 을 추가로 걸면 적용된다.
   =================================================================== */
.modal-body.legal-doc{
  max-width: none;      /* 모달 폭에 꽉 차게 */
  font-size: 15px;
}
.modal-body.legal-doc > :first-child{ margin-top: 0; }
.modal-body.legal-doc h2{ font-size: 18px; margin: 32px 0 14px; }
.modal-body.legal-doc h2:first-child{ margin-top: 0; }
.modal-body.legal-doc h3{ font-size: 16px; }

/* 순수 텍스트(HTML 태그 없이 nl2br)로 저장된 약관용:
   .legal-plain 을 함께 걸면 <br> 기반 텍스트의 줄간격만 확보 */
.legal-plain{ line-height: 1.9; color: var(--gray-800); word-break: keep-all; }
