#toc-box{
  border:1px solid #e2e2e2;
  border-radius:10px;
  margin: 0rem 0 5rem 0;
  background:#fafafa;
  font-family:inherit;
}
.toc-header{
  cursor:pointer;
  padding:14px 20px;
  font-weight:700;
  font-size:1.05rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  user-select:none;
  color:#222;
}
.toc-arrow{
  transition:transform .25s ease;
  font-size:.85rem;
  color:#888;
}
#toc-box.collapsed .toc-arrow{
  transform:rotate(-90deg);
}
.toc-body{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:6px 28px;
  padding:0 20px 18px;
  overflow:hidden;
  /* max-height:3000px; */
  transition:max-height .3s ease, padding .3s ease;
}
#toc-box.collapsed .toc-body{
  max-height:0;
  padding-top:0;
  padding-bottom:0;
}
.toc-major{
  margin-bottom:1px;
}
.toc-major > a{
  display:block;
  font-weight:700;
  font-size:.95rem;
  color:#333;
  text-decoration:none;
  padding:1em 0;
  border-bottom:1px solid #eaeaea;
}
.toc-major > a:hover{ color:#0d6efd; }
.toc-minor{
  list-style:none;
  margin:4px 0 0;
  padding:0;
}
.toc-minor li a{
  display:block;
  position:relative;
  padding:3px 0 3px 12px;
  font-size:.85rem;
  color:#777;
  text-decoration:none;
}
.toc-minor li a::before{
  content:'–';
  position:absolute;
  left:0;
  color:#bbb;
}
.toc-minor li a:hover{ color:#0d6efd; }

/* 스크롤 시 상단 여백 (고정 헤더 있을 경우 값 조정) */
#bo_v_con h3, #bo_v_con li[id]{
  scroll-margin-top:100px;
}

@media (max-width:768px){
  .toc-body{
    grid-template-columns:1fr;
  }
}