@charset "utf-8";
/*----------------------------------------
nav#gn
-----------------------------------------*/
#gn_ul {
	margin: 0;
}
@media screen and (max-width: 959px) {
	#visualLoader {
		margin: 5%;
		text-align: center;
		width: 90%;
	}
}
@media screen and (min-width: 960px) {
	nav#gn::before {
		content: "";
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 50px;
		background-color: rgba(0, 0, 0, 0.75);
	}
	nav#gn .wfix {
		display: flex;
		flex-direction: row-reverse;
	}
	nav#gn .wfix > * {
		flex-basis: 50%;
		width: 50%;
		flex-grow: 0;
		flex-shrink: 0;
	}
}
#visualLoader .flickity-page-dots .dot {
	background-color: rgba(255, 255, 255, 1.00);
	margin: 0 10px;
}
#visualLoader #captions {
	display: none;
}
#visualLoader .flickity-prev-next-button {
	position: absolute;
	top: inherit;
	z-index: 1;
	bottom: 0;
	width: 18px;
	height: 18px;
	background-color: rgba(0, 0, 0, 0);
	transform: translateY(-18px);
}
#visualLoader .flickity-prev-next-button.previous {
	left: 5px;
}
#visualLoader .flickity-prev-next-button.next {
	right: 5px;
}
.flickity-prev-next-button .arrow {
	fill: #fff;
}
.visual_content {
	width: 100%;
	margin: 0;
	padding-bottom: 50px;
}
.visual_content img {
	display: block;
	aspect-ratio: 2;
	width: 100%;
}
#visualLoader .flickity-page-dots {
	padding: 0;
	margin: auto;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
@media screen and (max-width:959px) {
	#visualLoader .flickity-prev-next-button {
		display: none;
	}
	#visualLoader .flickity-page-dots {
		position: relative;
		padding: 1em 0 0.5em 0;
	}
	#visualLoader .flickity-page-dots .dot {
		background-color: rgba(0, 0, 0, 1.00);
	}
}
@media screen and (min-width: 960px) {
	#visualLoader .flickity-page-dots {
		position: absolute;
		bottom: 0;
		left: 0;
		height: 50px;
		background-color: rgba(0, 0, 0, 0.75);
	}
}
/*----------------------------------------
nav#gn
-----------------------------------------*/
nav#gn .wfix {
	border-top: 10px solid rgba(254, 98, 116, 1.00);
}
ul#gn_ul {
	display: flex;
	margin: 0;
}
#gn_ul li {
	display: block;
	flex-basis: 20%;
	flex-grow: 0;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: top right;
	margin: 0;
}
#gn_ul li:nth-of-type(1) {
	background-image: url("../img/nav_1.jpg");
}
#gn_ul li:nth-of-type(2) {
	background-image: url("../img/nav_2.jpg");
}
#gn_ul li:nth-of-type(3) {
	background-image: url("../img/nav_3.jpg");
}
#gn_ul li:nth-of-type(4) {
	background-image: url("../img/nav_4.jpg");
}
#gn_ul li:nth-of-type(5) {
	background-image: url("../img/nav_5.jpg");
}
#gn_ul li a {
	display: block;
	width: 100%;
	height: 100%;
}
#gn_ul li a span {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	text-align: center;
	background-color: rgba(0, 0, 0, 0.70);
	color: rgba(255, 255, 255, 1.00);
	text-decoration: none;
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: clips;
	transition: all 0.25s;
}
ul#gn_ul li:hover span {
	text-decoration: underline;
	background-color: rgba(0, 0, 0, 0.90);
}
ul#gn_ul li.active {
	background-color: rgba(0, 0, 0, 0.15);
}
ul#gn_ul li.active a {
	color: rgba(30, 30, 30, 1.00);
}
@media screen and (max-width:959px) {
	nav#gn .wfix {
		width: 100%;
	}
	#gn_ul li a span {
		padding: 1.5em 0.5em;
		line-height: 1.2;
	}
}
@media screen and (max-width: 599px) {
	ul#gn_ul {
		height: 40vw;
		margin-bottom: 10px;
	}
	#gn_ul li a {
		font-size: 70%;
	}
}
@media screen and (min-width:600px) and (max-width:959px) {
	ul#gn_ul {
		height: 35vw;
		margin-bottom: 2vw;
	}
	#gn_ul li a {
		font-size: 80%;
	}
}
@media screen and (min-width: 960px) {
	ul#gn_ul li::before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 0%;
		background-color: rgba(0, 0, 0, 0.20);
		transition: all 0.25s;
	}
	ul#gn_ul li:hover::before {
		height: 100%;
	}
	#gn_ul li a span {
		font-size: 90%;
		height: 50px;
		line-height: 50px;
	}
}
/*----------------------------------------
main
-----------------------------------------*/
#main {
	padding-bottom: 10vw;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
/*----------------------------------------
#index_poricy
-----------------------------------------*/
#index_poricy {
	background-color: rgba(242, 242, 242, 1.00);
	border-bottom: 1px solid rgba(200, 200, 200, 1.00);
}
#index_poricy .unit {
	line-height: 1.6;
}
#index_poricy h1 {
	font-weight: normal;
	font-size: 100%;
	text-align: center;
}
#index_poricy h1 span {
	display: inline-block;
}
#index_poricy .detail {
	flex-basis: 50%;
	margin: 0;
	font-size: 90%;
}
#index_poricyLink {
	margin-top: 1.5em;
	margin-left: 0;
	display: flex;
	text-align: left;
	align-items: center;
}
#index_poricyLink > * {
	display: inline-block;
	white-space: nowrap;
	margin: 0;
}
#twLink {
	max-width: 200px;
}
#aiLink a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	text-align: center;
}
#aiLink img {
	max-width: 160px;
}
#aiLink span {
	font-size: 75%;
	line-height: 1.2;
	margin: 1em 1em 0 1em;
	flex-grow: 1;
}
@media screen and (max-width:959px) {
	#index_poricy .unit {
		background-size: auto 80%;
		padding: 2em 0;
	}
	#index_poricy h1 {
		margin: 0 0 1em 0;
	}
	#index_poricyLink {
		justify-content: center;
	}
	#index_poricyLink > * {
		flex-basis: 50%;
		max-width: 200px;
	}
}
@media screen and (min-width: 960px) {
	#index_poricy .unit {
		display: flex;
		align-items: center;
		justify-content: space-between;
		background-size: auto 120%;
		padding: 2.5em 0;
	}
	#index_poricy .headline {
		flex-basis: 50%;
		margin: 0;
	}
	#twLink {
		min-width: 180px;
		margin-right: 1em;
	}
}
/*----------------------------------------
#kinkyu
-----------------------------------------*/
#kinkyu {
	display: block;
	clear: both;
	color: rgba(255, 255, 255, 1.00);
	text-align: left;
	font-size: 90%;
}
#kinkyu::after {
	content: "";
	display: block;
	clear: both;
}
#kinkyu .unit {
	background-color: rgba(185, 30, 48, 1.00);
	border-bottom-right-radius: 6px;
	border-bottom-left-radius: 6px;
}
#kinkyu .headline {
	padding: 0.75em 0;
	white-space: nowrap;
	flex-grow: 0;
	background-color: rgba(0, 0, 0, 0.25);
	border-bottom-left-radius: 6px;
	display: block;
	align-items: start;
}
#kinkyu h1 {
	padding: 0 2em;
	font-size: 100%;
	font-weight: normal;
	display: block;
}
#kinkyu .headline h1::before {
	display: none;
}
#kinkyuTime {
	display: inline-block;
	font-size: 90%;
	margin-left: 1em;
}
#kinkyu .detail {
	flex-grow: 1;
	border-bottom-right-radius: 6px;
	display: block;
	align-items: stretch;
}
ul.kinkyuList {
	flex-grow: 1;
	margin: 0;
	display: block;
	align-items: center;
}
.kinkyuList li {
	margin: 0;
	padding: 0.75em 1em;
	display: block;
	list-style-type: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
.kinkyuTime {
	font-size: 90%;
	margin-bottom: 0.5em;
}
.kinkyuList li.first .kinkyuText {
	font-weight: bold;
}
.kinkyuList li:last-child {
	border-bottom: none;
}
.kinkyuList li > * {
	display: block;
}
#kinkyuList_def {
	line-height: 1.8;
	padding-left: 1.5em;
}
#kinkyu a {
	color: inherit;
	display: inline-block;
	text-decoration: none;
}
#kinkyu li a {
	text-decoration: underline;
	;
}
#kinkyu a:hover {
	text-decoration: underline;
	opacity: 0.75;
}
@media screen and (max-width:959px) {
	#kinkyu .unit {
		width: 100%;
		max-width: 100%;
	}
	#kinkyu h1, .kinkyuList li {
		padding-left: 0.75em;
		padding-right: 0.75em;
	}
}
@media screen and (min-width: 960px) {
	#kinkyu .unit {
		display: flex;
		align-items: stretch;
	}
	#kinkyuTime {
		text-align: right;
	}
	#kinkyu li:last-child {
		border-bottom: none;
	}
}
/*----------------------------------------
#indexSection
-----------------------------------------*/
#indexSection {
	padding: 3em 0;
}
#indexSection section {
	padding: 3em 0;
}
#indexSection section::after {
	content: "";
	display: block;
	clear: both;
}
#indexSection article {
	margin-bottom: 6em;
}
#indexSection div > article:last-child {
	margin-bottom: 0;
}
#indexSection .headline h1 {
	background-image: url("../img/stripe.png");
	background-size: auto 20px;
	padding: 0.75em 0.75em 0.75em 3em;
	font-weight: normal;
	font-size: 135%;
	margin-bottom: 1.5em;
	line-height: 1.3;
	border-bottom: 1px solid rgba(200, 200, 200, 1.00);
}
#indexSection .headline h1::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	width: 2.5em;
	height: 100%;
	background-image: url(../img/index/mark_index.png);
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
}
.headline p {
	margin-bottom: 0.5em;
}
.block {
	margin-bottom: 2em;
}
.headline h1 {
	font-size: 2.6rem;
}
.link {
	margin-top: 3em;
	text-align: center;
}
.link p {
	display: inline-block;
}
.link a {
	background-color: rgba(80, 80, 80, 1.00);
	padding: 0.5em 1.5em;
	border-radius: 2em;
	color: rgba(255, 255, 255, 1.00);
	text-decoration: none;
	font-size: 90%;
}
.link a::before {
	content: "▲";
	display: inline-block;
	transform: rotate(90deg);
	margin-right: 0.5em;
	font-size: 90%;
}
main .link a:visited, main .link a:visited:hover {
	color: rgba(255, 255, 255, 1.00);
}
.link a:hover {
	background-color: rgba(0, 0, 0, 1.00);
	text-decoration: underline;
}
/*----------------------------------------
#indexContent_project
-----------------------------------------*/
#indexContent_project .block:nth-of-type(1) p:nth-of-type(1) a {
	margin-right: 0;
	padding-right: 0;
	background-image: none;
}
#indexContent_project table {
	width: 100%;
}
#indexContent_project table, #indexContent_project table th, #indexContent_project table td {
	border: none;
}
#indexContent_project table thead th {
	padding: 0.5em 1em;
	background-color: rgba(0, 0, 0, 0.15);
	border-bottom: 2px solid rgba(255, 255, 255, 0.00);
}
#indexContent_project table tbody tr {
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
#indexContent_project tbody th {
	background-repeat: no-repeat;
	background-position: right center;
	background-size: auto 38px;
	color: rgba(255, 255, 255, 1.00);
	background-color: inherit;
	padding: 0.25em 1.5em 0.25em 1em;
	white-space: nowrap;
	width: 30%;
}
#indexContent_project tbody tr:nth-of-type(1) th {
	background-image: url(../img/index/th_bg1.svg);
}
#indexContent_project tbody tr:nth-of-type(2) th {
	background-image: url(../img/index/th_bg2.svg);
}
#indexContent_project tbody tr:nth-of-type(3) th {
	background-image: url(../img/index/th_bg3.svg);
}
#indexContent_project tbody tr:nth-of-type(4) th {
	background-image: url(../img/index/th_bg4.svg);
}
/*----------------------------------------
#indexContent_teami
-----------------------------------------*/
.team_i {
	float: left;
	width: 4em;
	margin-right: 0.5em;
}
/*----------------------------------------
#indexContent_effect
-----------------------------------------*/
#indexContent_effect .pamphletImg {
	flex-basis: 35%;
}
#indexContent_effect .pamphletCap {
	flex-basis: 60%;
}
#indexContent_effect .pamphletCap a {
	text-align: left;
}
/*----------------------------------------
aside
-----------------------------------------*/
aside {
	text-align: center;
}
aside section {
	padding: 2em 0;
}
#contactInfo article {
	background-color: rgba(163, 113, 189, 1.00);
	color: rgba(255, 255, 255, 1.00);
	display: inline-block;
	margin: auto;
	padding: 5px;
	line-height: 1.3;
	border-radius: 4px;
}
#contactInfo article a {
	color: inherit;
}
#contactInfo article div {
	border: 2px solid rgba(255, 255, 255, 0.65);
	padding: 1em 2em;
	border-radius: 3px;
}
#contactInfo article h1 {
	font-size: 140%;
	font-weight: normal;
	margin: auto;
}
#linkBanners ul {
	margin: auto;
	padding: 0;
	list-style-type: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
#linkBanners li {
	flex-grow: 1;
	margin: 5px;
	max-width: 150px;
}
#linkBanners li img {
	width: 100%;
}
@media screen and (max-width:599px) {
	#linkBanners li:not(.dot) {
		width: 50%;
	}
}
@media screen and (min-width:600px) and (max-width:959px) {
	#linkBanners li:not(.dot) {
		width: 25%;
	}
}
@media screen and (min-width:960px) {
	#linkBanners li:not(.dot) {
		width: 20%;
	}
}