ol.org-chart {
  text-align: center;
}
ol.org-chart,
ol.org-chart ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
ol.org-chart ol {
  padding-top: 1em;
}
ol.org-chart li,
ol.org-chart li > div,
ol.org-chart ol {
  position: relative;
}
ol.org-chart li::after,
ol.org-chart li > div::after,
ol.org-chart ol::after,
ol.org-chart li::before,
ol.org-chart li > div::before,
ol.org-chart ol::before {
  background-color: #ccc;
  content: '';
  position: absolute;
}
ol.org-chart ol > li {
  padding: 1em 0 0 1em;
}
ol.org-chart > li ol::before {
  height: 1em;
  left: 50%;
  top: 0;
  width: 2px;
}
ol.org-chart > li ol::after {
  height: 2px;
  left: 2px;
  top: 1em;
  width: 50%;
}
ol.org-chart > li ol > li:not(:last-of-type)::before {
  height: 2px;
  left: 0;
  top: 2em;
  width: 1em;
}
ol.org-chart > li ol > li:not(:last-of-type)::after {
  height: 100%;
  left: 0;
  top: 0;
  width: 2px;
}
ol.org-chart > li ol > li:last-of-type::before {
  height: 2px;
  left: 0;
  top: 2em;
  width: 1em;
}
ol.org-chart > li ol > li:last-of-type::after {
  height: 2em;
  left: 0;
  top: 0;
  width: 2px;
}
ol.org-chart li > div {
  border: 2px solid #ccc;
  border-radius: 2px;
  min-height: 2em;
}
ol.org-chart li > div div {
  padding: 0.5em;
}
ol.org-chart li > div a {
  display: block;
  color: inherit;
  text-decoration: none;
}
ol.org-chart li > div a:hover div {
  background-color: #f1f1f1;
}
ol.org-chart > li > div {
  margin-right: 1em;
}
ol.org-chart > li > div::before {
  bottom: 2em;
  height: 2px;
  right: -1em;
  width: 1em;
}
ol.org-chart > li > div:first-of-type:after {
  bottom: 0;
  height: calc(2em + 2px);
  right: calc(-1em - 2px);
  width: 2px;
}
ol.org-chart > li > div + div {
  margin-top: 1em;
}
ol.org-chart > li > div + div::after {
  height: calc(100% + 1em + 6px);
  right: calc(-1em - 2px);
  top: calc(-1em - 4px);
  width: 2px;
}
ol.org-chart > li > ol::before {
  left: inherit;
  right: 0;
}
ol.org-chart > li > ol::after {
  left: 0;
  width: 100%;
}
@media only screen and (min-width: 992px) {
  ol.org-chart > li > div {
    display: inline-block;
    float: none;
    margin: 0 1em 1em;
    vertical-align: bottom;
  }
  ol.org-chart > li > div:only-of-type {
    margin-bottom: 0;
    width: calc((100% / 1) - 2em - 4px);
  }
  ol.org-chart > li > div:first-of-type:nth-last-of-type(2),
  ol.org-chart > li > div:first-of-type:nth-last-of-type(2) ~ div {
    width: calc((100% / 2) - 2em - 4px);
  }
  ol.org-chart > li > div:first-of-type:nth-last-of-type(3),
  ol.org-chart > li > div:first-of-type:nth-last-of-type(3) ~ div {
    width: calc((100% / 3) - 2em - 4px);
  }
  ol.org-chart > li > div:first-of-type:nth-last-of-type(4),
  ol.org-chart > li > div:first-of-type:nth-last-of-type(4) ~ div {
    width: calc((100% / 4) - 2em - 4px);
  }
  ol.org-chart > li > div:first-of-type:nth-last-of-type(5),
  ol.org-chart > li > div:first-of-type:nth-last-of-type(5) ~ div {
    width: calc((100% / 5) - 2em - 4px);
  }
  ol.org-chart > li > div::after,
  ol.org-chart > li > div::before {
    bottom: -1em !important;
    top: inherit !important;
  }
  ol.org-chart > li > div::before {
    height: 1em !important;
    left: 50% !important;
    width: 2px !important;
  }
  ol.org-chart > li > div:only-of-type::after {
    display: none;
  }
  ol.org-chart > li > div:first-of-type:not(:only-of-type)::after,
  ol.org-chart > li > div:last-of-type:not(:only-of-type):after {
    bottom: -1em;
    height: 2px;
    width: calc(50% + 1em + 2px);
  }
  ol.org-chart > li > div:first-of-type:not(:only-of-type):after {
    left: calc(50% + 2px);
  }
  ol.org-chart > li > div:last-of-type:not(:only-of-type):after {
    left: calc(-1em - 2px);
  }
  ol.org-chart > li > div + div:not(:last-of-type):after {
    height: 2px;
    left: -2em;
    width: calc(100% + 4em);
  }
  ol.org-chart > li > ol {
    display: flex;
    flex-wrap: nowrap;
  }
  ol.org-chart > li > ol > li::before,
  ol.org-chart > li > ol::before {
    height: 1em !important;
    left: 50% !important;
    top: 0 !important;
    width: 2px !important;
  }
  ol.org-chart > li > ol::after {
    display: none;
  }
  ol.org-chart > li > ol > li {
    flex-grow: 1;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: 1em;
  }
  ol.org-chart > li > ol > li:only-of-type {
    padding-top: 0;
  }
  ol.org-chart > li > ol > li:only-of-type::after,
  ol.org-chart > li > ol > li:only-of-type::before {
    display: none;
  }
  ol.org-chart > li > ol > li:first-of-type:not(:only-of-type)::after,
  ol.org-chart > li > ol > li:last-of-type:not(:only-of-type)::after {
    height: 2px;
    top: 0;
    width: 50%;
  }
  ol.org-chart > li > ol > li:first-of-type:not(:only-of-type)::after {
    left: 50%;
  }
  ol.org-chart > li > ol > li:last-of-type:not(:only-of-type)::after {
    left: 0;
  }
  ol.org-chart > li > ol > li + li:not(:last-of-type):after {
    height: 2px;
    left: 0;
    top: 0;
    width: 100%;
  }
}
