@charset "utf-8";
/*------------------------------------------------------------
	project
------------------------------------------------------------*/
#container {
	padding-top: min(12.6vw,11.0rem);
}
#main {
	margin-bottom: min(6.25vw,8rem);
}
#main .mainImg03 {
	margin-bottom: min(6.4vw,7rem);
	position: relative;
	min-height: 48.44vw;
	background: url(../img/project/main_img01.webp) no-repeat center center / cover;
}
#main .mainImg03 h2 {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 105%;
	max-width: min(105vw,134.4rem);
}
#main .mainImg03 h2 span {
	display: block;
}
#main .mainImg03 > img {
	width: 100%;
}
.content {
	max-width: 114rem;
}
#main .topText {
	margin-bottom: min(5.5vw,5rem);
	text-align: center;
	font-size: 2.8rem;
	color: #004669;
	font-weight: 600;
	line-height: 2.14;
	letter-spacing: 0.28rem;
	font-feature-settings: "palt";
}
#main .projectWrap {
	position: relative;
	background: linear-gradient(90deg,#8CC3E1 0%,#8CC3E1 50%,#006496 50.1%,#006496 100%);
}
#main .projectWrap::before {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 19rem;
	content: '';
	background-color: #FFF;
}
#main .projectItem {
	margin-bottom: min(2.34vw,3rem);
	padding-top: min(4.77vw,6.1rem);
}
#main .proList {
	padding: 0;
	max-width: min(87.5%,112rem);
	display: flex;
	justify-content: space-between;
}
#main .proList li {
	width: calc(50% - 4rem);
	min-width: 46.5%;
	text-align: center;
}
#main .proList p {
	margin-bottom: 1.2rem;
	min-height: min(9.3vw,12rem);
	color: #004669;
	font-size: min(2.5vw,3.2rem);
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
#main .proList small {
	display: block;
	font-size: min(1.875vw,2.4rem);
	font-weight: 400;
}
#main .proList .photo {
	margin-bottom: min(1.02vw,1.3rem);
	position: relative;
}
#main .proList .photo::before {
	position: absolute;
	left: -1px;
	top: -1px;
	height: calc(100% + 2px);
	width: calc(100% + 2px);
	content: '';
	border: 0.2rem solid #FFF;
	box-sizing: border-box;
	border-radius: 2rem;
}
#main .proList .photo img {
	border-radius: 2rem;
	width: 100%;
}
#main .proList h3 {
	color: #FFF;
	font-size: min(3.75vw,4.8rem);
	font-weight: 400;
	letter-spacing: 0.06rem;
}
#main .heading01 {
	margin: 0 -8.4rem;
}
#main .heading01 img {
	height: min(19.375vw,24.8rem);
}
#main .heading01 span {
	padding: min(6.5vw,7.8rem) 0 min(1.4vw,1.8rem) min(12.5vw,15.4rem);
	max-width: min(68.75vw,88rem);
	position: relative;
	display: block;
	color: #FFF;
	font-size: min(4.0625vw,5.2rem);
	font-weight: 700;
	letter-spacing: min(0.4vw,0.5rem);
	font-feature-settings: "palt";
}
#main .heading01 span::after {
	position: absolute;
	right: 0;
	bottom: 0;
	content: '';
	height: 0.2rem;
	width: 999rem;
	background-color: #FFF;	
}
#main .heading02 {
	margin-bottom: 1.2rem;
	width: fit-content;
	color: #004669;
	font-size: 2.4rem;
	font-weight: 300;
}
#main .heading02 .txt {
	display: inline-block;
	background-color: #DCF0F5;
	line-height: 3.6rem;
	vertical-align: top;
}
#main .heading02 .tag {
	margin-bottom: 0.2rem;
	vertical-align: top;
	display: inline-block;
	width: 15.6rem;
	padding: 0 1rem;
	position: relative;
	font-size: 2rem;
	background-color: #FFF;
	z-index: 2;
	line-height: 3.6rem;
}
#main .heading02 .txt:last-child {
	padding-right: 2rem;
}
#main .heading02 .tag + .txt {
	padding-left: 3.2rem;
	margin-left: -1.1rem;
}
#main .heading02 .tag::after {
	position: absolute;
	left: 100%;
	top: 0;
	height: 100%;
	width: 1.1rem;
	background: url(../img/project/arrow02.webp) left center / 100%;
	content: '';
}
#main .heading02 .num {
	position: absolute;	
	font-size: 6rem;
	right: 0.4rem;
	bottom: 1.3rem;
	font-weight: 300;
	z-index: 2;
}
#main .projectItem .inner {
	padding: min(2.97vw,3.8rem) 0 min(9.77vw,12.5rem);
	position: relative;
	z-index: 1;
}
#main .projectItem .inner::before {
	position: absolute;
	left: min(2.27vw,2.9rem);
	top: -4.7rem;
	height: calc(100% + 4.7rem);
	width: 0.2rem;
	content: '';
	background-color: #FFF;
	z-index: -1;
}
#main .projectItem .inner::after {
	position: absolute;
	left: min(1.8vw,2.2rem);
	top: -5.6rem;
	width: min(1.25vw,1.6rem);
	aspect-ratio: 1;
	content: '';
	background-color: #FFF;
	border-radius: 2rem;
}
#main .projectItem .inner .date {
	position: absolute;
	left: min(0.47vw,0.6rem);
	top: min(3.36vw,4.3rem);
	color: #FFF;
	font-style: italic;
	font-weight: 500;
	font-size: min(1.49vw,1.913rem);
	letter-spacing: min(0.32vw,0.42rem);
	transform: rotate(90deg);
	transform-origin: left top;
}
#main .bigText {
	margin: 0 0 min(5.468vw,7rem) min(5.468vw,7rem);
	color: #FFF;
	font-size: min(2.81vw,3.6rem);
	line-height: 1.78;
	font-weight: 600;
	letter-spacing: min(2vw,0.35rem);
	font-feature-settings: "palt";
}
#main .imgBox {
	margin: 0 1rem min(10.5vw,11.8rem);
	position: relative;
}
#main .imgBox01 {
	margin-bottom: 10.5rem;
}
#main .imgBox img {
	border-radius: 2.5rem;
}
#main .imgBox p {
	position: absolute;
}
#main .imgBox .text01 {
	left: min(3.125vw,4rem);
	top: min(4.45vw,5.7rem);
}
#main .imgBox .text02 {
	right: 3.5rem;
	bottom: -3.8rem;
}
#main .imgBox .text03 {
	left: min(4.69vw,6rem);
	top: min(4.45vw,5.7rem);
}
#main .imgBox .text04 {
	right: 3.5rem;
	bottom: -2rem;
}
#main .imgBox .text05 {
	right: -1.5rem;
	top: calc(50% - 0.2rem);
}
#main .imgBox .text07 {
	right: -2.9rem;
	bottom: 2.2rem;
}
#main .imgBox .text06 {
	left: 6rem;
	bottom: -3rem;
}
#main .photoNote {
	margin: -9rem 0.8rem 4.5rem;
	position: static;
	color: #FFF;
	font-size: 2rem;
	text-align: right;
	letter-spacing: 0.12rem;
	font-feature-settings: "palt";
}
#main .bgText {
	line-height: 1.92;
}
#main .bgText span {
	margin-bottom: 1.2rem;
	padding: 0 1rem;
	display: inline-block;
	font-size: min(2.18vw,2.8rem);
	line-height: 1.5;
	letter-spacing: 0.23rem;
	font-feature-settings: "palt";
	background-color: #FFF;
}
#main .bgText span sup {
	font-size: 1.5rem;
}
#main .bgText span:last-child {
	margin-bottom: 0;
}
#main .bgText.blue span {
	color: #FFF;
	font-size: 2.4rem;
	background-color: #004669;
}
#main .head {
	margin-bottom: min(4.3vw,5.5rem);
	color: #FFF;
	text-align: center;
	font-weight: 600;
	font-size: min(3vw,3.8rem);
	letter-spacing: 0.4rem;
	font-feature-settings: "palt";
}
#main .textList {
	margin: 0 -1rem 7.4rem;
	display: flex;
	justify-content: space-between;
	font-feature-settings: "palt";
}
#main .textList > li {
	width: calc(50% - 4rem);
	min-width: 46.5%;
	min-height: 33rem;
	padding: min(2.18vw,2.8rem);
	position: relative;
	color: #FFF;
	line-height: 1.7;
	font-size: 2rem;
	border-radius: 2.5rem;
	border: 0.2rem solid #FFF;
	background-color: #8CC3E1;
}
#main .textList > li:last-child {
	background-color: #006496;
}
#main .textList > li::before {
	position: absolute;
	left: 50%;
	top: -4.2rem;
	width: 6.2rem;
	aspect-ratio: 6/2;
	background: url(../img/project/arrow01.webp) no-repeat center center / 100%;
	content: '';
	transform: translateX(-50%);
}
#main .textList .title {
	margin-bottom: min(0.39vw,0.5rem);
	text-align: center;
	font-size: min(3.2vw,4.1rem);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.2rem;
}
#main .textList .sub li {
	padding-left: 1.2rem;
	text-indent: -1.2rem;
	font-feature-settings: "palt";
	letter-spacing: 0.07rem;
}
#main .initiativesWrap {
	margin: 0 -1rem;
}
#main .initiativesWrap .bgText {
	margin-bottom: min(14vw,12.5rem);
}
#main .personBox {
	margin: 0 0 13.2rem 3rem;
	padding: 7.6rem 5rem 2.6rem;
	position: relative;
	width: 70rem;
	font-feature-settings: "palt";
	background-color: #FFF;
	border-radius: 2rem;
	box-shadow: 0 0 0 4rem #8CC3E1;
}
#main .personBox + .personBox {
	margin-top: 15.4rem;
}
#main .personBox .person {
	position: absolute;
	left: -4rem;
	top: -8.4rem;
	width: 16rem;
	border-radius: 10rem;
	border: 1rem solid #8CC3E1;
}
#main .personBox .enText {
	position: absolute;
	right: 0.3rem;
	top: 2rem;
	width: 2.9rem;
}
#main .personBox .title {
	margin-bottom: 1.2rem;
	color: #000;
	font-size: 3.2rem;
	line-height: 1.43;
	letter-spacing: 0.29rem;
}
#main .personBox .title01 {
	margin-bottom: 0.5rem;
}
#main .personBox .text {
	position: relative;
	font-size: 2rem;
	line-height: 4.6rem;
	letter-spacing: 0.1rem;
	overflow: hidden;
}
#main .personBox .text::after {
	position: absolute;
	left: 0;
	top: 0.2rem;
	width: 100%;
	z-index: -1;
	height: 100%;
	content: '';
	background: url(../img/project/line.webp) repeat left top / auto 4.6rem;
}
#main .personBox.right {
	box-shadow: 0 0 0 4rem #006496;
}
#main .personBox.right .person {
	border-color: #006496;
	left: auto !important;
	right: -4rem;
	top: -8.8rem;
}
#main .personBox.right .enText {
	right: auto;
	left: 0rem;
}
#main .about {
	margin: -2.5rem 0;
}
#main .about .title {
	margin: 0 7.5rem 2.4rem;
}
#main .about .title img {	
	width: 41.8rem;
}
#main .about .textBox {
	padding: 3.8rem 4.4rem;
	font-size: 2.2rem;
	line-height: 2.09;
	font-feature-settings: "palt";
	background-color: rgba(255,255,255,0.8);
	border-radius: 2.5rem;
}
#main .about .textBox p {
	margin-bottom: 4.2rem;
}
#main .about .textBox p:last-child {
	margin-bottom: 0;
}
#main .bigTextBox {
	margin: -3rem 0 3rem;
	padding: 9.5rem 2rem;
	font-size: 3rem;
	line-height: 2.26;
	text-align: center;
	background: url(../img/project/bg.webp) no-repeat center top / cover;
}
#main .btmBox {
	margin: -17.5rem 0 0;
	padding: 13.5rem 2rem 13.5rem;
	position: relative;
	z-index: 10;
	color: #FFF;
	font-size: 8rem;
	line-height: 1.62;
	text-align: center;	background: url(../img/project/bg02.webp) no-repeat center center / cover;
}
@media all and (min-width: 897px) {
	#main .personBox.center {
		margin-left: min(12.2vw,14rem);
	}
	#main .personBox.left1 {
		margin-left: 11rem;
	}
	#main .personBox.center2 {
		margin-left: 24rem;
	}
	#main .personBox.center3 {
		margin-left: min(10.15vw,13rem);
	}
	#main .personBox.center1 {
		margin-left: 18rem;
	}
	#main .personBox.right {
		margin-right: 5rem;
		margin-left: auto;
	}
	#main .personBox.right1 {
		margin-right: 10rem;
	}
	#main .personBox.right2 {
		margin-left: auto;
		margin-right: 14rem;
	}
	#main .personBox.right3 {
		margin-right: 3rem;
	}
}
@media all and (min-width: 897px) and (max-width: 1279px) {
	.content {
		width: 91%;
	}
	#main .proList .photo::before,
	#main .proList .photo img {
		border-radius: 1.5rem;
	}
	#main .heading01 {
		margin: 0 -6.56vw;
	}
	#main .projectItem .inner::before {
		top: -4.1vw;
	}
	#main .projectItem .inner::after {
		top: -4.1vw;
	}
	#main .imgBox img {
		border-radius: 1.5rem;
	}
	#main .imgBox .text02 {
		bottom: -3.5vw;
		right: 5vw;
	}
	#main .textList {
		margin: 0 -0.5vw 8.9vw;
	}
	#main .textList > li {
		border-radius: 1.7rem;
	}
	#main .bgText span {
		margin: 0 -2rem 0.5rem 0;
		letter-spacing: 0.1rem;
	}
	#main .bgText.blue span {
		margin-bottom: 1.1rem;
	}
	#main .personBox + .personBox {
		margin-top: 20rem;
	}
	#main .about {
		margin: 0;
	}
	#main .textList > li::before {
		top: -3.2vw;
		width: 4.8vw;
	}
	#main .photoNote {
		margin: -10vw 0.8rem 3.5vw;
	}
	.onlypc {
		display: none;
	}
	#main .personBox.right2 {
		margin-right: 5vw;
	}
	#main .projectWrap::before {
		height: 15.4vw;
	}
	#main .personBox.left1,
	#main .personBox.right1,
	#main .personBox.right900 {
		margin-left: auto;
		margin-right: 0;
	}
	#main .personBox.right3 {
		margin-right: 0;
	}
	#main .personBox.center1 {
		margin-left: 7vw;
	}
	#main .personBox.center2 {
		margin-left: 7vw;
	}

}
@media all and (min-width: 1280px) {
	.only900 {
		display: none;
	}
}
@media all and (min-width: 897px) {
	.onlySp {
		display: none;
	}
}
@media all and (max-width: 896px) {
	.only900 {
		display: none;
	}
	.onlypc {
		display: none;
	}
}
@media all and (max-width: 896px) {
	#main {
		margin-bottom: 14.25vw;
	}
	#container {
		padding-top: 6.1rem;
	}
	#main .mainImg03 {
		margin-bottom: 3rem;
		min-height: 56vw;
		background-image: url(../img/project/main_img01_sp.webp);
	}
	#main .mainImg03 h2 {
		max-width: 37.5rem;
	}
	#main .topText {
		margin-bottom: 3.6rem;
		font-size: 1.6rem;
		letter-spacing: 0.14rem;
		line-height: 1.875;
	}
	#main .projectWrap::before {
		height: 11.2rem;
	}
	#main .proList {
		padding: 0 0.8rem;
		max-width: inherit;
	}
	#main .proList li {
		width: calc(50% - 0.8rem);
	}
	#main .proList p {
		margin-bottom: 0.8rem;
		min-height: 6.7rem;
		font-size: 1.9rem;
		line-height: 1.16;
	}
	#main .proList small {
		margin-bottom: 0.5rem;
		font-size: 1.4rem;
	}
	#main .proList small.sml {
		margin: 0.3rem 0 0;
		font-size: 1.25rem;
		letter-spacing: -0.15rem;
	}
	#main .proList .photo {
		margin-bottom: 0.4rem;
	}
	#main .proList .photo img,
	#main .proList .photo::before {
		border-radius: 1rem;
	}
	#main .proList .photo::before {
		border-width: 0.1rem;
	}
	#main .proList h3 {
		font-size: 2.2rem;
		letter-spacing: -0.1rem;
	}
	#main .heading01 {
		margin: 0 -2rem;
	}
	#main .heading01 img {
		max-width: 37.5rem;
		height: auto;
	}
	#main .heading01 span {
		padding: 1.5rem 3.5rem 0.7rem;
		font-size: 2.3rem;
		letter-spacing: 0.24rem;
		max-width: 33rem;
		border-width: 0.1rem;
	}
	#main .heading01 span::after {
		height: 0.1rem;
	}
	#main .projectItem {
		padding: 1.5rem 2rem;
	}
	#main .projectItem .inner::before {
		top: -2rem;
		left: 0.2rem;
		width: 0.1rem;
	}
	#main .projectItem .inner::after {
		left: -0.2rem;
		top: -2.4rem;
		width: 0.8rem;
	}
	#main .projectItem .inner {
		margin-bottom: 1.6rem;
		padding: 0.8rem 0 0.8rem;
	}
	#main .bigText {
		margin: 0 1.5rem 1.3rem;
		font-size: 1.6rem;
		letter-spacing: 0.16rem;
	}
	#main .projectItem .inner .date {
		left: 0rem;
		top: 1.7rem;
		font-size: 0.96rem;
		letter-spacing: 0.22rem;
	}
	#main .bgText {
		line-height: 1.7;
	}
	#main .bgText span {
    	margin-bottom: 0rem;
		padding: 0 0.2rem;
		font-size: 1.3rem;
		letter-spacing: 0.05rem;
		line-height: 1.25;
	}
	#main .bgText span sup {
		font-size: 0.8rem;
	}
	#main .imgBox {
		margin: 0 -1rem 2.8rem;
		padding: 5.5rem 0 3rem;
	}
	#main .imgBox img {
		border-radius: 1rem;
	}
	#main .imgBox .text01 {
		left: 2.3rem;
		top: 0;
	}
	#main .imgBox .text02 {
		bottom: 0;
		right: 2.5rem;
	}
	#main .imgBox .text03 {
		left: 2.3rem;
		top: 0.5rem;
	}
	#main .imgBox .text04 {
		right: 2rem;
		bottom: -0.1rem;
	}
	#main .imgBox .text07 {
		right: 2.8rem;
		bottom: 0;
	}
	#main .imgBox01 {
		padding: 4.1rem 0 4.8rem;
	}
	#main .imgBox02 {
		padding-bottom: 7rem;
	}
	#main .imgBox03 {
		padding: 12.5rem 0 2.8rem;
	}
	#main .imgBox .text05 {
		right: 2rem;
 		top: 10rem;
	}
	#main .imgBox .text06 {
		bottom: 0;
	}
	#main .photoNote {
		margin: -2rem 0 2.5rem auto;
		font-size: 1.2rem;
		max-width: 27.5rem;
		text-align: left;
		letter-spacing: 0.1rem;
		line-height: 1.58;
	}
	#main .head {
		margin-bottom: 4rem;
		font-size: 2.1rem;
		line-height: 1.2;
   		letter-spacing: 0.3rem;
	}
	#main .textList {
		margin: 0 -1.3rem 4.2rem;
	}
	#main .textList > li {
		padding: 1.3rem 1rem 1.5rem;
		width: calc(50% - 0.75rem);
		min-height: inherit;
		border-radius: 1.2rem;
		border-width: 0.1rem;
	}
	#main .textList > li::before {
		width: 3.8rem;
    	top: -2.5rem;
	}
	#main .textList .title {
		font-size: 2.01rem;
		letter-spacing: 0.1rem;
	}
	#main .textList .sub li {
    	padding-left: 0.7rem;
		text-indent: -0.7rem;
		font-size: 1.2rem;
		line-height: 1.58;
		letter-spacing: 0;
	}
	#main .textList p {
		font-size: 1.2rem;
		line-height: 1.58;
		letter-spacing: 0;
	}
	#main .heading02 {
		margin: 0 -1rem 0 0.5rem;
		padding-right: 0.7rem;
		font-size: 1.4rem;
	}
	#main .heading02 .tag {
		margin-bottom: 0.5rem;
		padding: 0 0.5rem;
		width: 6.8rem;
		font-size: 1rem;
		line-height: 1.8rem;
	}
	#main .heading02 .txt {
		margin-right: -1rem;
		padding: 0 1rem 0 0.3rem;
		line-height: 1.8rem;
	}
	#main .heading02 .txt:last-child {
		padding-right: 0.7rem;
	}
	#main .heading02 .tag + .txt {
		padding-left: 2.2rem;
	}
	#main .heading02 .num {
		right: -0.4rem;
    	bottom: 0.5rem;
		font-size: 2.6rem;
	}
	#main .bgText.blue {
		margin: 0 0.5rem 7.4rem;
	}
	#main .bgText.blue span {
		margin-bottom: 0.5rem;
		font-size: 1.4rem;
	}
	#main .personBox {
		margin: 0 1.3rem 5rem;
		padding: 4.1rem 1.2rem 1.3rem;
		width: auto;
		box-shadow: 0 0 0 1.2rem #8CC3E1;
		border-radius: 1rem;
	}
	#main .personBox .enText {
		right: 0;
		top: 1rem;
		width: 1.2rem;
	}
	#main .personBox .person {
		left: -1.3rem;
		top: -5rem;
		width: 9rem;
		border-radius: 10rem;
		border-width: 0.5rem;
	}
	#main .personBox .title {
		margin-bottom: 0.5rem;
		font-size: 1.6rem;
  		letter-spacing: 0.15rem;
	}
	#main .personBox .text {
		font-size: 1.2rem;
		line-height: 2.5rem;
		letter-spacing: 0.05rem;		
	}
	#main .personBox .text::after {
		background-size: auto 2.5rem;
	}
	#main .personBox.right {
		box-shadow: 0 0 0 1.2rem #006496;
	}
	#main .personBox + .personBox {
		margin-top: 7.9rem;
	}
	#main .personBox.right .person {
		right: -1.3rem;
		top: -4.5rem;
	}
	#main .about {
		margin: 0;
	}
	#main .about .title {
		margin: 0 2.8rem 1.3rem;
	}
	#main .about .title img {
		width: 22.2rem;
	}
	#main .about .textBox {
		padding: 1rem 1.7rem 1.4rem;
		font-size: 1.2rem;
		line-height: 2;
		border-radius: 1.2rem;
	}
	#main .bigTextBox {
		margin: -1.5rem 0 0.5rem;
		padding: 2.9rem 2rem 2.4rem;
		font-size: 1.6rem;
		line-height: 2;
	}
	#main .btmBox {
		margin: -5.5rem 0 0;
		padding: 4rem 2rem 4rem;
		font-size: 2.8rem;
		line-height: 1.5;
		letter-spacing: 0;
		background-image: url(../img/project/bg02_sp.webp);
	}
	
}

