@keyframes button-anime {
	0%   { width: 0; }
	100% { width: 100%; }
}
.p-project {
/*	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;*/
}
.p-project .en {
	font-family: "EB Garamond", serif;
}
.p-project img {
	max-width: 100%;
}
.p-project-mv {
	position: relative;
	background-color: #000000;
	height: 520px;
}
.p-project-mv__video {
	opacity: 0.6;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.p-project-mv__logo {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: calc(300 / 1400 * 100%);
	max-width: 300px;
	margin: calc(35 / 1400 * 100%) 0 0 calc(52 / 1400 * 100%);
}
.p-project-mv__wrap {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	color: #FFFFFF;
	text-align: right;
}
.p-project-mv__inner {
	flex-basis: 100%;
	padding: 0 44px 24px 0;
	box-sizing: border-box;
}
.p-project-mv__title {
	display: block;
	padding: calc(59 / 1400 * 100%) 0 calc(20 / 1400 * 100%) 0;
}
.p-project-mv__title .ja {
	display: block;
	font-size: 36px;
	line-height: 1.5;
	font-weight: 500;
}
.p-project-mv__title .en {
	display: block;
	font-size: 24px;
	line-height: 1;
	font-weight: 500;
}
.p-project-mv__more {
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 133px;
	height: 24px;
	color: #FFFFFF;
	font-size: 14px;
	font-weight: 500;
	margin: 0 0 0 auto;
	padding: 0.2em 0 0 0.2em;
	border: 1px solid #FFFFFF;
	border-radius: 12px;
	box-sizing: border-box;
}
.p-project-mv__more:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 11px;
	z-index: 10;
	width: 6px;
	height: 6px;
	background-color: #FFFFFF;
	margin: auto;
	border-radius: 50%;
	transition: all 0.2s ease-out;
}
.p-project-mv__more:after {
	content: "";
	opacity: 0;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	background-color: #FFFFFF;
	margin: auto;
	transition: all 0.6s ease-out;
}
.p-project-mv__more .text {
	position: relative;
	z-index: 10;
	transition: all 0.2s ease-out;
}
.p-project-mv__more:hover:before {
	background-color: #000000;
}
.p-project-mv__more:hover:after {
	opacity: 1;
	animation: 0.4s ease-out forwards button-anime;
}
.p-project-mv__more:hover .text {
	color: #000000;
}
.p-project-intro {
	max-width: 1220px;
	text-align: center;
	margin: auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.p-project-intro__title {
	font-size: 30px;
	font-weight: 500;
	padding: 49px 0 14px 0;
}
.p-project-intro__text {
	font-size: 16px;
	line-height: 1.5;
	margin: 0 0 44px 0;
}
.p-project-section {
	max-width: 1220px;
	margin: auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.p-project-section__title {
	font-size: 24px;
	line-height: 1;
	font-weight: 500;
	text-align: center;
	margin: 0 0 50px 0;
	padding: 26px 0 25px 0;
	border-top: 2px solid #000000;
	border-bottom: 1px solid #000000;
}
.p-project-section__wrap {
	margin: 0 0 90px 0;
}
.p-project-section__wrap .list_more {
	display: none;
}
.p-project-section__list {
	display: flex;
	flex-wrap: wrap;
}
.p-project-section__item {
	flex-basis: calc(378 / 1180 * 100%);
	margin: 0 0 calc(30 / 1180 * 100%) calc(23 / 1180 * 100%);
}
.p-project-section__item:nth-child(3n+1) {
	margin-left: 0;
}
.p-project-section__caption {
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: -0.01em;
	font-weight: 500;
	padding: 13px 0 11px 0;
}
.p-project-section__caption .icon {
	display: inline-block;
	width: 11px;
	height: 11px;
	vertical-align: middle;
	background-image: url(/assets/images/common/icon_blank.svg);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	margin: 0 0 0 10px;
}
.p-project-section__more {
	padding: 31px 0 0 0;
}
.p-project-section__more-button {
	cursor: pointer;
	color: inherit;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-sizing: border-box;

	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 165px;
	height: 42px;
	font-size: 18px;
	line-height: 1;
	font-weight: 500;
	text-align: center;
	margin: auto;
	border: 1px solid #000000;
	border-radius: 21px;
}
.p-project-section__more-button:after {
	content: "";
	opacity: 0;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	background-color: #000000;
	margin: auto;
	transition: all 0.6s ease-out;
}
.p-project-section__more-button .text {
	display: inline-block;
	position: relative;
	z-index: 10;
	padding: 0 10px 0 22px;
}
.p-project-section__more-button .text:before,
.p-project-section__more-button .text:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 11px;
	height: 2px;
	background-color: #000000;
	margin: auto;
}
.p-project-section__more-button .text:after {
	transform: rotate(90deg);
}
.p-project-section__more-button:hover:after {
	opacity: 1;
	animation: 0.4s ease-out forwards button-anime;
}
.p-project-section__more-button:hover .text {
	color: #FFFFFF;
}
.p-project-section__more-button:hover .text:before,
.p-project-section__more-button:hover .text:after {
	background-color: #FFFFFF;
}
@media screen and (max-width: 768px) {
	.l-content {
		padding: 0;
	}
	.p-project-mv {
		height: auto;
		aspect-ratio: 400 / 300;
/*		aspect-ratio: 402 / 520;*/
	}
	.p-project-mv__logo {
		width: calc(183 / 402 * 100%);
		max-width: 100%;
		margin: calc(18 / 402 * 100%) 0 0 calc(18 / 402 * 100%);
	}
	.p-project-mv__inner {
		padding: 0 14px 23px 0;
	}
	.p-project-mv__title {
		padding: calc(58 / 402 * 100%) 0 calc(15 / 402 * 100%) 0;
	}
	.p-project-mv__title .ja {
		font-size: 30px;
	}
	.p-project-mv__title .en {
		font-size: 18px;
	}
	.p-project-mv__more {
		padding: 0 0 0 0.2em;
	}
	.p-project-intro {
		width: calc(364 / 402 * 100%);
		padding: 0;
	}
	.p-project-intro__title {
		padding: 24px 0 14px 0;
	}
	.p-project-intro__text {
		font-size: 16px;
		line-height: 1.75;
		margin: 0 0 41px 0;
	}
	.p-project-section {
		width: calc(364 / 402 * 100%);
		padding: 0;
	}
	.p-project-section__title {
		margin: 0 0 29px 0;
	}
	.p-project-section__wrap {
		margin: 0 0 76px 0;
	}
	.p-project-section__item {
		flex-basis: calc(168 / 364 * 100%);
		margin: 0 0 calc(23 / 364 * 100%) calc(28 / 364 * 100%);
	}
	.p-project-section__item:nth-child(3n+1) {
		margin-left: calc(28 / 364 * 100%);
	}
	.p-project-section__item:nth-child(2n+1) {
		margin-left: 0;
	}
	.p-project-section__item img {
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}
	.p-project-section__caption {
		padding: 8px 0 8px 0;
	}
	.p-project-section__caption .icon {
		width: 10px;
		height: 10px;
		margin: 0 0 0 8px;
	}
	.p-project-section__more {
		padding: 11px 0 0 0;
	}
	.p-project-section__more-button:hover:after {
		animation: none;
	}
}

br.mode_sp{display: none;}
@media screen and (max-width: 768px) {
	br.mode_sp{display: block;}
}

/* -------- modal -------- */
/* modalContentWrap */
.modalContentWrap {
	opacity: 0;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 100000;
	transform: translateY(100vh);
	transition: opacity 0.2s ease-out;
}
.modalContentWrap.open {
	opacity: 1;
	transform: translateY(0);
}
.modalContentWrap .bg {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: rgba(0, 0, 0, 0.8);
}
.modalContentWrap .modalContent {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 2;
	height: 100%;
}
.modalContentWrap .modalContent .inner {
	overflow: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	max-width: 750px;
	height: 100%;
	text-align: center;
	margin: auto;
}
.modalContentWrap .modalContent .closeButtonArea {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
}
.modalContentWrap .modalContent .closeButton {
	color: inherit;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-sizing: border-box;

	cursor: pointer;
	position: absolute;
	height: 0;
	top: 10px;
	right: 10px;
	width: calc(60 / 696 * 100%);
	max-width: 60px;
	text-indent: -9999em;
	padding: calc(40 / 696 * 100%) 0 0 0;
}
.modalContentWrap .modalContent .closeButton:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 1px;
	background-color: #FFFFFF;
	margin: auto;
	transform: rotate(45deg);
}
.modalContentWrap .modalContent .closeButton:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 1px;
	background-color: #FFFFFF;
	margin: auto;
	transform: rotate(-45deg);
}
.modalContentWrap .modalContent .wrap {
	position: relative;
	width: calc(696 / 750 * 100%);
	margin: auto;
}
.modalContentWrap .modalContent .wrap iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 560 / 315;
}
@media screen and (min-width: 769px) {
	.modalContentWrap .modalContent .closeButton {
		width: 40px;
		height: 40px;
		padding: 0;
	}
}
/* ----------------------- */
