@charset "utf-8";

.org-chart {
	display: flex;
	width: 100%;
	max-width: 1440px;
	margin: auto;
	box-sizing: border-box;
	overflow: auto;
	font-size: 1.2rem;
	-webkit-overflow-scrolling: touch;
	        overflow-scrolling: touch;
}

.org-chart * {
	box-sizing: border-box;
}

.org-chart-inner {
	flex-grow: 1;
	padding: 20px;
}

.org-chart p {
	margin-bottom: 0;
}

.org-chart ul {
	position: relative;
	list-style: none;
	padding: 0 0.5em 0.5em 3.25em;
	border-radius: 0 5px 5px 5px;
}

.org-chart ul:last-child {
	padding-bottom: 0;
}

.org-chart li {
	position: relative;
	padding: 0.5em 0;
	white-space: nowrap;
}

.org-chart li:before,
.org-chart li:after {
	position: absolute;
	content: "";
	bottom: auto;
	display: block;
	margin: auto;
}

.org-chart li:before {
	top: 1.8em;
	left: -24px;
	width: 21px;
	height: 1px;
	background: rgb(147, 146, 141);
	border-radius: 2px;
}

.org-chart li:after {
	top: 0;
	left: -25px;
	width: 1px;
	height: calc(100% + 4px);
	background: rgb(147, 146, 141);
	border-radius: 2px;
}

.org-chart li li:first-child {
	padding-top: 10px;
}

.org-chart li li:first-child:before {
	top: 26px;
}

.org-chart li:last-child {
	padding-bottom: 0;
}

.org-chart li:last-child:after {
	height: calc(1.75em + 2px);
}


.org-chart-inner div {
	position: relative;
	background-color: rgba(230,230,230,1);
	padding: 5px 20px;
	border-radius: 5px;
	box-sizing: border-box;
	display: inline-block;
}

.org-chart-inner ul div {
	border-radius: 5px;
}



.section-root {
	
}

.section-root__ttl {
	position: relative;
	width: 100%;
	text-align: center;
	padding: 10px !important;
}



.section-top {
	
}

.section-top__ttl {
	
}

.section-top > .--a > ul {
	
}

.section-top > .--b > ul {
	
}

.section-top > .--c > ul {
	
}

.section-top div:before {
	position: absolute;
	top: 14px;
	bottom: auto;
	left: -3px;
	right: auto;
	margin: auto;
	display: block;
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: currentColor;
}

.org-chart-inner .--a div {
	color: #fff;
	background-color: var(--ob-color--a);
}
.org-chart-inner .--a div:before {
	background-color: var(--ob-color--a);
}
.org-chart-inner .--a li:before,
.org-chart-inner .--a li:after {
	background-color: var(--ob-color--a);
}
.org-chart-inner .--a .section-top__ttl {
	background-color: var(--ob-color--a);
}

.org-chart-inner .--b div {
	color: #fff;
	background-color: var(--ob-color--b);
}
.org-chart-inner .--b div:before {
	background-color: var(--ob-color--b);
}
.org-chart-inner .--b li:before,
.org-chart-inner .--b li:after {
	background-color: var(--ob-color--b);
}
.org-chart-inner .--b .section-top__ttl {
	background-color: var(--ob-color--b);
}

.org-chart-inner .--c div {
	color: #fff;
	background-color: var(--ob-color--c);
}
.org-chart-inner .--c div:before {
	background-color: var(--ob-color--c);
}
.org-chart-inner .--c li:before,
.org-chart-inner .--c li:after {
	background-color: var(--ob-color--c);
}
.org-chart-inner .--c .section-top__ttl {
	background-color: var(--ob-color--c);
}



@media screen and (min-width: 768px) {
	
	.org-chart {
		width: 100%;
	}
	
	.org-chart-inner {
		padding: 40px;
	}
	
	.org-chart-inner div {
		min-width: 160px;
	}
	
	.org-chart ul {
		padding-left: 7em;
	}
}

@media screen and (min-width: 1280px) {
	
	.org-chart {
		border-radius: 5px;
	}
	
	.org-chart-inner {
		padding: 0 90px;
	}
	
	.org-chart ul {
		padding-left: 4em;
	}
	
	.org-chart li:hover {
		position: relative;
		z-index: 2;
	}
	.org-chart li:before {
		width: 22px;
		left: -24px;
	}
	
	.org-chart-inner div {
		min-width: none;
		min-width: initial;
		padding-right: 10px;
		padding-left: 12px;
	}
	
	.section-root__ttl {
		margin-bottom: 50px;
	}
	
	.section-root__ttl:before,
	.section-root__ttl:after {
		position: absolute;
		display: block;
		content: "";
		margin: auto;
		left: 0;
		right: 0;
	}
	
	.section-root__ttl:before {
		bottom: -30px;
		width: calc(75% + 21px);
		height: 1px;
		background: rgba(0,0,0,0.4);
	}
	
	.section-root__ttl:after {
		top: 100%;
		width: 1px;
		height: 30px;
		background: rgba(0,0,0,0.4);
	}
	
	.section-top {
		display: flex;
		justify-content: space-between;
		padding: 0.5em 0 !important;
	}
	
	.section-top__ttl {
		width: 100%;
		padding: 10px !important;
		text-align: center;
	}
	
	.section-top__ttl:before {
		top: -4px !important;
		left: 0 !important;
		right: 0 !important;
		bottom: auto !important;
	}
	
	.section-top > li {
		width: calc(25% - 20px);
	}
	
	.section-top > li:before {
		display: none;
	}
	
	.section-top > li:after {
		top: -26px;
		left: 0;
		right: 0;
		height: 28px !important;
	}
	.section-top > li > ul {
		border: none !important;
	}
}