/* 全体のリセット */
.tree-horizontal ul {
  padding-left: 10px; /* 階層間の横幅 */
  position: relative;
  list-style: none;
}

.tree-horizontal .vertical1 {
  padding-bottom: 100px;
  padding-left: 50px;
  position: absolute;
  list-style: none;
}

.tree-horizontal .vertical2 {
  padding-left: 40px; /* 階層間の横幅 */
  position: relative;
  list-style: none;
}

.tree-horizontal .horizon1_under {
  padding-top: 910px;
  padding-left: 45px;
  position: absolute;
  list-style: none;
}

.tree-horizontal .horizon1_over {
  padding-bottom: 320px;
  padding-left: 283px;
  position: absolute;
  list-style: none;
}

.tree-horizontal .horizon2 {
  padding-top: 840px;
  padding-left: 136px;
  position: absolute;
  list-style: none;
}

/* 階層を横に並べる */
.tree-horizontal li {
  display: flex;
  align-items: center; /* 縦方向の中央揃え */
  position: relative;
  padding: 10px 0;
}

/* 縦線の描画（ノードを繋ぐ） */
.tree-horizontal li::before {
  content: "";
  position: absolute;
  left: -20px;
  top: 0;
  bottom: 0;
  border-left: 2px solid #ccc;
}

.tree-horizontal .horizon2 .horizon_line li::before {
  border-left: none;
}

/* 最初と最後の線の長さを調整 */
.tree-horizontal li:first-child::before { top: 50%; }
.tree-horizontal li:last-child::before { bottom: 50%; }
.tree-horizontal .horizon2 li:first-child::before { top: -115%; }
.tree-horizontal .horizon1_under li:first-child::before { top: -456%; }
.tree-horizontal .horizon1_under li:last-child::before { bottom: 18%; }
.tree-horizontal .horizon1_under li:last-child::after {
    content: "";
    position: absolute;
    left: -20px;
    top: 82%;
    width: 20px;
    border-top: 2px solid #ccc;
}

.tree-horizontal .horizon1_over li:first-child::before { top: 50%; }
.tree-horizontal .horizon1_over li:last-child::before { bottom: -135%; }
.tree-horizontal .horizon1_over li::after {
    content: "";
    position: absolute;
    left: -258px;
    top: 50%;
    width: 258px;
    border-top: 2px solid #ccc;
}
.tree-horizontal .horizon1_over li::before {
    content: "";
    position: absolute;
    left: -258px;
    top: 0;
    bottom: 0;
    border-left: 2px solid #ccc;
}
.tree-horizontal .vertical1 li::after {
    border-top: none;
}
.tree-horizontal .vertical1 li::before {
    content: "";
    position: absolute;
    left: 43px;
    top: 49px;
    bottom: -22px;
    border-left: 2px solid #ccc;
}

/* 横線の描画 */
.tree-horizontal li::after {
  content: "";
  position: absolute;
  left: -20px;
  top: 50%;
  width: 20px;
  border-top: 2px solid #ccc;
}

.tree-horizontal .noline::after {
  border-top: none;
}

/* 横線の描画 */
.tree-horizontal .horizon2 .horizon_line li::after {
  content: "";
  position: absolute;
  left: -40px;
  top: 50%;
  width: 43px;
  border-top: 2px solid #ccc;
}

.tree-horizontal .vertical2 .horizon_line::after {
  content: "";
  position: absolute;
  left: -40px;
  top: 50%;
  width: 43px;
  border-top: 2px solid #ccc;
}



/* ボックス（ノード）の装飾 */
.tree-horizontal .node {
  border: 2px solid #ccc;
  padding: 8px 10px;
  border-radius: 4px;
  background: #fff;
  min-width: 120px;
  text-align: center;
  z-index: 1;
}


.tree-horizontal .horizon_line_long::after {
    content: "";
    position: absolute;
    left: -10px;
    top: 50%;
    width: 175px;
    border-top: 2px solid #ccc;
}

.tree-horizontal .horizon_line_middle::after {
    content: "";
    position: absolute;
    left: -10px;
    top: 50%;
    width: 30px;
    border-top: 2px solid #ccc;
}


.tree-horizontal .w91{
  min-width: 91px;
  width: 91px;
}
.tree-horizontal .w65{
  min-width: 65px;
  width: 65px;
}
.w135{
  width: 135px;
}
.mt170{
	margin-top: 170px;
}