/* ============================================================
   말고리즘 v3 — 법적 문서 페이지 (개인정보처리방침 / 이용약관)
   styles.css의 토큰·폰트·테마를 그대로 상속하고,
   기존 privacy.html / terms.html의 .privacy-* 클래스 이름만 재정의한다.
   → 법적 본문 마크업을 한 글자도 건드리지 않고 디자인만 통일한다.
   3D 캔버스는 싣지 않는다 (긴 본문 가독성 우선).
   ============================================================ */

/* ---------- 문서 셸 ---------- */
.docPage{max-width:100%;overflow-x:clip}
.docPage main,.docTop,.docBody,.docTop__inner,.docBody__inner,.privacy-content,.privacy-section{min-width:0;max-width:100%}
.privacy-section,.privacy-subsection,.highlight-box{overflow-wrap:anywhere}
.docTop{
  position:relative;padding:clamp(56px,8vw,104px) 0 clamp(30px,4vw,46px);
  border-bottom:1px solid var(--ln-0);
  background:
    radial-gradient(62% 78% at 18% 0%,color-mix(in srgb,var(--peri) 12%,transparent) 0%,transparent 68%),
    radial-gradient(52% 62% at 88% 8%,color-mix(in srgb,var(--amber) 9%,transparent) 0%,transparent 66%);
}
.docTop__inner{max-width:860px;margin:0 auto;padding:0 40px}
.docTop h1{
  font-size:clamp(1.9rem,4.6vw,2.9rem);font-weight:800;line-height:1.14;letter-spacing:-.035em;
  margin:6px 0 14px;
}
.docTop__sub{font-size:clamp(.95rem,1.6vw,1.08rem);color:var(--tx-7);line-height:1.7;max-width:56ch}
.docDates{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
.docDate{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 15px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--amber) 34%,transparent);
  background:color-mix(in srgb,var(--amber) 9%,transparent);
  font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.05em;
  color:var(--amber-tx);
}
.docDate::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
/* 공고일은 보조 정보 — 페리윙클로 위계를 낮춘다 */
.docDate--notice{
  border-color:color-mix(in srgb,var(--peri) 32%,transparent);
  background:color-mix(in srgb,var(--peri) 9%,transparent);
  color:var(--peri);
}

/* 변경 안내 — 법정 유예기간 고지 */
.docNotice{
  padding:20px 22px;margin-bottom:32px;
  background:color-mix(in srgb,var(--peri) 8%,var(--bg-5));
  border:1px solid color-mix(in srgb,var(--peri) 26%,transparent);
  border-radius:14px;display:grid;gap:9px;
}
.docNotice p{font-size:14px;line-height:1.78;color:var(--tx-7)}
.docNotice strong{
  display:inline-block;margin-right:6px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;
  color:var(--peri);text-transform:uppercase;
}
.docNotice b{color:var(--tx-9);font-weight:700}

/* 개정 이력 */
.docHistory ul{display:grid;gap:9px;margin:0}
.docHistory li{
  padding-left:16px;font-size:14px;line-height:1.75;color:var(--tx-7);position:relative;
}
.docHistory li::before{
  content:'';position:absolute;left:0;top:.68em;
  width:5px;height:5px;border-radius:50%;background:var(--peri);opacity:.8;
}
.docHistory b{
  font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--tx-9);font-weight:700;
  margin-right:4px;
}

/* 하단 링크 */
.docLinks{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.docLinks__alt{
  font-size:13.5px;color:var(--peri);
  text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;
}
.docLinks__alt:hover{opacity:.72}

.docBody{padding:clamp(44px,6vw,76px) 0 clamp(60px,8vw,100px)}
.docBody__inner{max-width:860px;margin:0 auto;padding:0 40px}

/* 인트로 */
.privacy-intro{
  padding:22px 24px;margin-bottom:36px;
  background:var(--bg-4);border:1px solid var(--ln-1);border-left:3px solid var(--peri);
  border-radius:0 14px 14px 0;
  font-size:15px;line-height:1.78;color:var(--tx-7);
}
.privacy-intro strong{color:var(--tx-9);font-weight:700}

/* ---------- 본문 섹션 ---------- */
.privacy-content{display:grid;gap:14px;counter-reset:sec}
.privacy-section{
  counter-increment:sec;
  padding:24px 26px;background:var(--bg-4);
  border:1px solid var(--ln-0);border-radius:16px;
  position:relative;
}
.privacy-section h2{
  display:flex;align-items:baseline;gap:11px;
  font-size:clamp(1.05rem,2vw,1.22rem);font-weight:800;letter-spacing:-.02em;line-height:1.4;
  margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--ln-0);
}
/* 기존 마크업의 h2 안 번호 span을 모노 배지로 */
.privacy-section h2 > span:first-child,
.privacy-section h2 .section-number{
  flex:0 0 auto;display:inline-grid;place-items:center;
  min-width:26px;height:26px;padding:0 7px;border-radius:8px;
  background:color-mix(in srgb,var(--peri) 16%,transparent);
  color:var(--peri);
  font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;letter-spacing:0;
}
.privacy-section h3{
  font-size:15px;font-weight:700;letter-spacing:-.01em;
  margin:22px 0 10px;color:var(--tx-9);
}
.privacy-section p{font-size:14.5px;line-height:1.82;color:var(--tx-7);margin-bottom:11px}
.privacy-section p:last-child{margin-bottom:0}
.privacy-section strong{color:var(--tx-9);font-weight:700}
.privacy-section a{color:var(--peri);text-decoration:underline;text-underline-offset:3px}
.privacy-section a:hover{opacity:.75}

.privacy-section ul,
.privacy-section ol{display:grid;gap:8px;margin:4px 0 14px}
.privacy-section li{
  position:relative;padding-left:16px;
  font-size:14.5px;line-height:1.78;color:var(--tx-7);
}
.privacy-section ul > li::before{
  content:'';position:absolute;left:0;top:.68em;
  width:5px;height:5px;border-radius:50%;background:var(--amber);opacity:.75;
}
.privacy-section ol{counter-reset:li}
.privacy-section ol > li{counter-increment:li;padding-left:24px}
.privacy-section ol > li::before{
  content:counter(li) '.';position:absolute;left:0;top:0;
  font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--amber-tx);
}
.privacy-section li strong{color:var(--tx-9)}

.privacy-subsection{
  margin:16px 0;padding:18px 20px;
  background:var(--bg-5);border:1px solid var(--ln-0);border-radius:12px;
}
.privacy-subsection h3{margin-top:0}

/* 표 */
.privacy-section table{
  width:100%;border-collapse:collapse;margin:12px 0 16px;
  font-size:13.5px;
}
.privacy-section th,
.privacy-section td{
  padding:10px 12px;text-align:left;
  border-bottom:1px solid var(--ln-0);vertical-align:top;line-height:1.7;
}
.privacy-section th{
  background:var(--bg-6);color:var(--tx-9);font-weight:700;font-size:12.5px;
  letter-spacing:.02em;
}
.privacy-section td{color:var(--tx-7)}
.privacy-section tr:last-child td{border-bottom:0}

/* 강조 박스 */
.highlight-box{
  padding:20px 22px;margin:18px 0;
  background:color-mix(in srgb,var(--amber) 8%,var(--bg-5));
  border:1px solid color-mix(in srgb,var(--amber) 28%,transparent);
  border-radius:14px;
}
.highlight-box h3{margin-top:0;color:var(--amber-tx)}
.highlight-box p{color:var(--tx-7)}
.highlight-box p:last-child{margin-bottom:0}

/* 연락처 */
.contact-item{
  display:grid;grid-template-columns:110px 1fr;gap:8px 16px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--ln-0);
  font-size:14.5px;
}
.contact-item:last-child{border-bottom:0}
.contact-item strong{color:var(--tx-9);font-weight:600;font-size:13px}
.contact-item span,
.contact-item a{color:var(--tx-7)}

/* ---------- 문서 하단 ---------- */
.privacy-footer{
  margin-top:44px;padding-top:30px;border-top:1px solid var(--ln-0);
  display:grid;gap:8px;justify-items:start;
}
.privacy-footer p{font-size:13px;color:var(--tx-6);line-height:1.7}
.privacy-footer .company-name{font-size:15px;font-weight:700;color:var(--tx-9)}
.back-button{
  display:inline-flex;align-items:center;gap:9px;margin-top:16px;
  padding:11px 20px;border-radius:999px;
  background:var(--amber);color:var(--on-amber);
  font-size:14px;font-weight:700;
  transition:transform .2s,box-shadow .2s,filter .2s;
}
.back-button:hover{
  transform:translateY(-2px);filter:brightness(1.06);
  box-shadow:0 12px 28px -10px color-mix(in srgb,var(--amber) 70%,transparent);
}
.back-button svg{width:17px;height:17px}

/* 목차 */
.docToc{
  padding:20px 22px;margin-bottom:32px;
  background:var(--bg-5);border:1px solid var(--ln-0);border-radius:14px;
}
.docToc__ttl{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;
  color:var(--peri);text-transform:uppercase;margin-bottom:14px;
}
.docToc ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 20px;counter-reset:toc}
.docToc li{counter-increment:toc}
.docToc a{
  display:flex;gap:9px;padding:5px 0;font-size:13.5px;color:var(--tx-6);
  transition:color .18s;
}
.docToc a::before{
  content:counter(toc);flex:0 0 20px;
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--tx-4);
}
.docToc a:hover{color:var(--amber-tx)}
.docToc a:hover::before{color:var(--amber-tx)}

/* 기존 페이지에만 있던 래퍼는 v3 셸이 대신하므로 무력화 */
.privacy-page,.privacy-container{all:unset;display:block}
.privacy-header,.privacy-logo{display:none}

/* ---------- 반응형 ---------- */
@media (max-width:720px){
  .docTop__inner,.docBody__inner{padding:0 22px}
  .privacy-section{padding:20px 18px}
  .contact-item{grid-template-columns:1fr;gap:2px}
  .docToc ol{grid-template-columns:1fr}
  .privacy-section table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .docPage .navPanel{position:fixed;inset:0;width:100%;max-width:none;margin:0;padding:92px 24px 28px;transform:none!important;overflow-y:auto;overflow-x:hidden;align-items:stretch;justify-content:flex-start}
  .docPage .navPanel a{display:block;width:100%;min-width:0;margin:0;padding:13px 4px;overflow:visible;white-space:normal}
}
