/* ============================================================
   KOGNEV — legal pages (privacy policy, LT / EN / JA)
   Scoped to body.kg2, loaded alongside home.css.

   A legal page is read in fragments, not top to bottom, so the
   table of contents sits in the same narrow left rail every other
   sub-page uses for its section heading and stays with the reader
   as the article scrolls past it.
   ============================================================ */

.kg2 .kg-legal__meta {
  margin-top: var(--s-4);
  font-size: var(--t-micro);
  color: var(--slate);
}

/* ---------- Table of contents (left rail) ---------- */
.kg2 .kg-toc { position: sticky; top: 96px; }
.kg2 .kg-toc__label {
  display: block;
  font-size: var(--t-micro);
  font-weight: 600;
  color: var(--ink);
  padding-bottom: var(--s-2);
  border-bottom: 1px solid var(--rule);
}
.kg2 .kg-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.kg2 .kg-toc li { counter-increment: toc; border-bottom: 1px solid var(--rule); }
.kg2 .kg-toc a {
  display: block;
  padding: 9px 0;
  font-size: var(--t-micro);
  line-height: 1.4;
  color: var(--slate);
  text-decoration: none;
}
.kg2 .kg-toc a::before { content: counter(toc) ". "; color: var(--slate-quiet); }
.kg2 .kg-toc a:hover { color: var(--signal-ink); }
.kg2 .kg-toc a:focus-visible { outline: 2px solid var(--signal-ink); outline-offset: 2px; }

/* ---------- Article ---------- */
.kg2 .kg-legal { max-width: 68ch; }
.kg2 .kg-legal h2 {
  margin: var(--s-6) 0 var(--s-3);
  font-size: var(--t-h3);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.3;
  color: var(--ink);
  scroll-margin-top: 96px;
}
.kg2 .kg-legal h2:first-child { margin-top: 0; }
.kg2 .kg-legal h3 {
  margin: var(--s-4) 0 var(--s-2);
  font-size: var(--t-body);
  font-weight: 600;
  color: var(--ink);
}
.kg2 .kg-legal p,
.kg2 .kg-legal li { font-size: var(--t-body); line-height: 1.62; color: var(--slate); }
.kg2 .kg-legal p { margin: 0 0 var(--s-3); }
.kg2 .kg-legal ul { margin: 0 0 var(--s-3); padding-left: 1.15rem; }
.kg2 .kg-legal li { margin-bottom: var(--s-1); }
.kg2 .kg-legal strong { color: var(--ink); font-weight: 600; }
.kg2 .kg-legal a { color: var(--signal-ink); text-decoration: underline; text-underline-offset: 3px; }
.kg2 .kg-legal a:focus-visible { outline: 2px solid var(--signal-ink); outline-offset: 2px; }
.kg2 .kg-legal table { width: 100%; border-collapse: collapse; margin: 0 0 var(--s-3); }
.kg2 .kg-legal th,
.kg2 .kg-legal td {
  text-align: left;
  padding: var(--s-2) var(--s-3) var(--s-2) 0;
  border-bottom: 1px solid var(--rule);
  font-size: var(--t-micro);
  line-height: 1.5;
  color: var(--slate);
}
.kg2 .kg-legal th { color: var(--ink); font-weight: 600; }

@media (max-width: 1023px) {
  .kg2 .kg-toc { position: static; margin-bottom: var(--s-5); }
}
