/* ==================================================
+ トップページ専用パーツ
-------------------------------------------------- */
/* メインビジュアル
-------------------------------------------------- */
.oTopMv{
	background: linear-gradient(-90deg, var(--color-green-025) 0%, var(--color-green-025) 50%, var(--color-green-050) 50%, var(--color-green-050) 100%) repeat center top / 3.8rem 1px;
	overflow: hidden;
	width: 100%;
}
.oTopMv_inner{
	position: relative;
	width: 100%;
	padding: 0;
}
.oTopMv_content{
	padding: 2.4rem 2rem 0;
}
.oTopMv_hd{
	margin: 0;
	padding: 0;
	width: 100%;
}
.oTopMv_hd > small{
	display: block;
	margin: 0 auto;
	padding: 0.2rem 1.5rem 0.4rem;
	width: 100%;
	max-width: 31.4rem;
	background: var(--color-green-600);
	color: var(--color-white);
	clip-path: polygon(96.25% 49.07%, 100% 100%, 0% 100%, 3.66% 49.07%, 0% 0%, 100% 0%);
	text-align: center;
	font-size: 1.6rem;
	line-height: 1.4;
	font-weight: 700;
}
.oTopMv_hd > span{
	display: block;
	text-align: left;
	font-size: 3.4rem;
	line-height: calc(48 / 36);
	font-weight: 700;
	width: 100%;
	max-width: 30rem;
	margin: 0.4rem auto 0;
}
.oTopMv_hd > span > strong{
	font-weight: 700;
	background: linear-gradient(0deg, var(--color-yellow-500) 0%, var(--color-yellow-500) 100%) repeat-x left bottom / 100% 1.4rem;
	padding: 0 0.8rem;
	margin: 0 -0.8rem;
}
.oTopMv_txt{
	font-size: 1.8rem;
	line-height: calc(28 / 20);
	font-weight: 700;
	width: 100%;
	max-width: 30rem;
	margin: 2rem auto 0;
}
.oTopMv_txt > p{
	margin: 0;
}
.oTopMv_imgs{
	margin: 3rem auto 0;
	width: 100%;
	max-width: 37.5rem;
	position: relative;
}
.oTopMv_imgs_photo{
	margin: 0;
	padding: 0;
	list-style-type: none;
	position: relative;
	width: 100%;
	height: 100%;
}
.oTopMv_imgs_photo > li{
	border: 0.5rem solid var(--color-white);
	box-shadow: 0 0.5rem 0.8rem 0 rgba(0, 0, 0, 0.15);
	border-radius: 0.5rem;
	position: absolute;
	top: 0;
}
.oTopMv_imgs_photo > li:nth-child(1){
	width: calc(125 / 375 * 100%);
	z-index: 20;
	transform-origin: right top;
	transform: rotate(-5.06deg);
	left: calc(16 / 375 * 100%);
	margin-top: calc(-12 / 335 * 100%);
}
.oTopMv_imgs_photo > li:nth-child(2){
	width: calc(128 / 375 * 100%);
	z-index: 10;
	transform-origin: left top;
	transform: rotate(5.63deg);
	left: calc(18 / 375 * 100%);
	margin-top: calc(74 / 375 * 100%);
}
.oTopMv_imgs_img{
	margin: 0 calc(-14 / 375 * 100%) 0 auto;
	width: 100%;
	max-width: calc(290 / 375 * 100%);
}
@media (min-width: 23.4375em) {
	.oTopMv_hd > small{
		font-size: 1.8rem;
	}
	.oTopMv_hd > span{
		font-size: 3.6rem;
	}
	.oTopMv_txt{
		font-size: 2rem;
	}
}
@media (min-width: 48em) {
	.oTopMv{
		background-size: 4rem 1px;
	}
	.oTopMv_inner{
		margin: 0 auto;
		max-width: 128rem;
		display: flex;
		align-items: flex-end;
		flex-wrap: wrap;
		justify-content: center;
		padding-top: 4rem;
	}
	.oTopMv_content{
		padding: 0.3rem 2rem 5rem;
		width: 40rem;
		max-width: 100%;
		align-self: flex-start;
	}
	.oTopMv_hd > small{
		margin: 0;
		padding: 0.4rem 2.5rem 0.7rem;
		max-width: 100%;
		font-size: 2rem;
	}
	.oTopMv_hd > span{
		margin: 1rem 0 0;
		font-size: 4.5rem;
		line-height: calc(80 / 60);
		max-width: 100%;
	}
	.oTopMv_hd > span > strong{
		background-size: 100% 2.2rem;
		padding: 0 1.1rem;
		margin: 0 -1.1rem;
	}
	.oTopMv_txt{
		font-size: 2.3rem;
		line-height: calc(40 / 30);
		max-width: 45rem;
		margin: 1.6rem 0 0;
	}
	.oTopMv_imgs{
		margin: 0;
		width: 100%;
		max-width: 74rem;
		flex: 1;
	}
	.oTopMv_imgs_photo{
		position: absolute;
		left: 0;
		top: 0;
		pointer-events: auto;
	}
	.oTopMv_imgs_photo > li:nth-child(1){
		width: calc(220 / 740 * 100%);
		left: calc(-23 / 740 * 100%);
		top: auto;
		bottom: 5.2rem;
		margin-top: 0;
	}
	.oTopMv_imgs_photo > li:nth-child(2){
		width: calc(220 / 740 * 100%);
		left: calc(30 / 740 * 100%);
		top: 0;
		margin-top: 0;
	}
	.oTopMv_imgs_img{
		margin: 0 calc(-50 / 740 * 100%) 0 auto;
		width: calc(687 / 740 * 100%);
		max-width: 68.7rem;
	}
}
@media (min-width: 67.5em) {
	.oTopMv_content{
		padding: 5.3rem 2rem 10rem;
		width: 54rem;
	}
	.oTopMv_hd > small{
		font-size: 2.8rem;
	}
	.oTopMv_hd > span{
		font-size: 6rem;
	}
	.oTopMv_txt{
		font-size: 3rem;
	}
	.oTopMv_imgs{
		max-width: 74rem;
	}
	.oTopMv_imgs_photo > li:nth-child(1){
		left: calc(-23 / 740 * 100%);
	}
	.oTopMv_imgs_photo > li:nth-child(2){
		left: calc(30 / 740 * 100%);
	}
}

/* リード
-------------------------------------------------- */
.oTopLead{
	margin: 1.8rem 0 0;
	padding: 2.5rem 2rem 5.5rem;
	background:
		var(--ico_leaf_01) no-repeat 2rem top / 5.3rem auto,
		var(--ico_leaf_02) no-repeat right 0.7rem bottom / 6.2rem auto;
}
.oTopLead_hd{
	margin: 0;
	padding: 3rem 0 0;
	text-align: center;
	font-size: 2.2rem;
	line-height: 1.2;
	font-weight: 700;
	background: transparent;
	color: var(--color-green-700);
}
.oTopLead_txt{
	margin-top: 2rem;
	font-size: 1.8rem;
	line-height: calc(34 / 18);
	text-align: center;
	background: transparent;
	color: var(--color-black);
	letter-spacing: -0.05em;
}
.oTopLead_txt > p{
	margin: 0;
}
@media (min-width: 23.4375em) {
	.oTopLead_hd{
		padding-top: 0;
		font-size: 2.6rem;
	}
	.oTopLead_txt{
		letter-spacing: normal;
	}
}
@media (min-width: 48em) {
	.oTopLead{
		max-width: 128rem;
		margin: 3.9rem auto 0;
		padding: 0 13rem;
		background-size: 
			7.2rem auto,
			9rem auto;
		background-position:
			4.8rem 2.6rem,
			right 3.2rem bottom 1.8rem;
	}
	.oTopLead_hd{
		font-size: 4.2rem;
	}
	.oTopLead_txt{
		margin-top: 1.9rem;
	}
}

/* お知らせ
-------------------------------------------------- */
.oTopNews{
	margin: 1.7rem auto 0;
	padding: 1.7rem 2rem 3rem;
	width: calc(100% - 4rem);
	background: var(--color-green-005);
	color: inherit;
	border-radius: 2rem;
}
.oTopNews_hd{
	margin: 0;
	text-align: center;
}
.oTopNews_hd > small{
	display: block;
	background: transparent;
	color: var(--color-green-700);
	font-size: 3.2rem;
	font-weight: 700;
}
.oTopNews_hd > span{
	margin-top: -1.1rem;
	display: block;
	font-size: 1.6rem;
	font-weight: 400;
	background: transparent;
	color: var(--color-green-900);
}
.oTopNews_list{
	margin: 1.3rem 0 0;
	padding: 0;
	list-style-type: none;
}
.oTopNews_list > li{
	padding: 1.7rem 0 1.6rem;
	border-bottom: 1px solid var(--color-gray-400);
}
.oTopNews_list > li{
	text-decoration: none;
	display: flex;
	flex-wrap: wrap;
	padding: 0 0.8rem;
	gap: 0 3rem;
}
.oTopNews_list > li > time{
	background: transparent;
	color: var(--color-green-800);
	font-size: 1.4rem;
	font-weight: 400;
}
.oTopNews_list > li > span{
	display: block;
	max-width: 100%;
	flex: 1;
	background: transparent;
	color: var(--color-black);
	font-size: 1.6rem;
	line-height: calc(26 / 16);
}
@media (min-width: 48em) {
	.oTopNews{
		margin-top: 2.9rem;
		padding: 2.6rem 4rem 4rem 4rem;
		max-width: 124rem;
		display: flex;
		gap: 2rem 5rem;
		border-radius: 3rem;
	}
	.oTopNews_hd > small{
		font-size: 4.6rem;
	}
	.oTopNews_hd > span{
		margin-top: -1.4rem;
		font-size: 2rem;
	}
	.oTopNews_list{
		margin: 0;
		padding-top: 0.7rem;
		flex: 1;
	}
	.oTopNews_list > li{
		padding: 1rem 0 1.1rem;
	}
	.oTopNews_list > li > a{
		padding: 0 0.8rem;
		gap: 0 3rem;
	}
	.oTopNews_list > li > a > time{
		font-size: 1.6rem;
	}
}
@media (min-width: 67.5em) {
	.oTopNews{
		padding: 2.6rem 10rem 4rem 6.6rem;
		gap: 2rem 7.8rem;
	}
	.oTopNews_list > li > a{
		gap: 0 5.5rem;
	}
}

/* 事業内容セクション
-------------------------------------------------- */
.oSct#about{
	margin-top: 3.6rem;
	padding: 1.7rem 0 2.4rem;
	background: var(--color-green-100);
	color: inherit;
}
@media (min-width: 48em) {
	.oSct#about{
		margin-top: 6rem;
		padding: 3rem 0 9.6rem;
	}
}

/* 事業内容セット
-------------------------------------------------- */
.oTopAbout{
	margin-top: 3.5rem;
	padding: 0 2rem;
}
.oTopAbout_hd{
	margin: 0;
	font-size: 2.4rem;
	line-height: calc(34 / 24);
	font-weight: 700;
	background: transparent;
	color: var(--color-black);
	text-align: center;
}
.oTopAbout_txt{
	margin-top: 2rem;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
}
.oTopAbout_txt > p{
	margin: 0;
}
.oTopAbout_txt > p:nth-child(n+2){
	margin-top: 3rem;
}
.oTopAbout_img{
	margin: 2rem auto 0;
	width: 14.6rem;
	max-width: 100%;
}
.oTopAbout + .oBtns{
	margin-top: 2.4rem;
}
@media (min-width: 48em) {
	.oTopAbout{
		margin: 7.6rem auto 0;
		padding: 0 2rem;
		display: flex;
		max-width: 124rem;
		gap: 2rem 2rem;
		align-items: flex-end;
	}
	.oTopAbout_content{
		flex: 1;
	}
	.oTopAbout_hd{
		font-size: 3.2rem;
		text-align: left;
	}
	.oTopAbout_txt{
		margin-top: 2.2rem;
		font-size: 1.8rem;
		line-height: calc(34 / 18);
	}
	.oTopAbout_txt > p:nth-child(n+2){
		margin-top: 3.5rem;
	}
	.oTopAbout_img{
		margin: 0;
		width: 18.4rem;
	}
	.oTopAbout + .oBtns{
		margin-top: 6rem;
	}
}
@media (min-width: 67.5em) {
	.oTopAbout{
		padding-left: 5.5rem;
		gap: 2rem 4.2rem;
	}
}

/* 事例紹介セクション
-------------------------------------------------- */
.oSct#case{
	margin-top: 1rem;
	background: var(--color-white);
	color: inherit;
}
@media (min-width: 48em) {
	.oSct#case{
		margin-top: 5rem;
	}
}

/* 事例紹介セット
-------------------------------------------------- */
.oTopCase{
	margin: 3rem 0 0;
	padding: 0 2rem;
	list-style-type: none;
	display: grid;
	gap: 5.2rem 0;
}
.oTopCase > li > a{
	display: block;
	text-decoration: none;
	background: transparent;
	color: var(--color-black);
}
.oTopCase_img{
	width: 100%;
	border-radius: 2rem;
	overflow: hidden;
}
.oTopCase_content{
	margin-top: 1.8rem;
}
.oTopCase_hd{
	margin: 0;
	border-bottom: 0.4rem solid var(--color-green-700);
	padding: 0 0 1.1rem;
	background: transparent;
	color: var(--color-green-700);
	font-size: 1.8rem;
	line-height: calc(24 / 18);
}
.oTopCase_logo{
	margin-top: 2rem;
	width: 100%;
	max-width: 20rem;
}
.oTopCase_data{
	margin-top: 1.2rem;
}
.oTopCase_data_row{
	border-bottom: 1px dashed var(--color-gray-400);
	margin-top: 1.2rem;
	padding-bottom: 1.2rem;
}
.oTopCase_data_row > dt,
.oTopCase_data_row > dd{
	display: inline;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
	background: transparent;
	color: var(--color-black);
	margin: 0;
	padding: 0;
}
.oTopCase_data_row > dt{
	background: transparent;
	color: var(--color-red-700);
	font-weight: 700;
	margin-right: 1em;
}
.oTopCase_btn{
	margin-top: 2.5rem;
}
.oTopCase_btn .oBtnA{
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}
.oTopCase_btn .oBtnA::before,
.oTopCase_btn .oBtnA::after{
	right: 1.6rem;
}
@media (min-width: 48em) {
	.oTopCase{
		margin: 7rem auto 0;
		width: 100%;
		max-width: 117rem;
		gap: 7rem 0;
	}
	.oTopCase_set{
		display: grid;
		grid-template-columns: calc(450 / 1130 * 100%) 1fr;
		gap: 0 calc(57 / 1130 * 100%);
		align-items: start; 
	}
	.oTopCase_content{
		margin-top: 0;
		padding-top: 0.7rem;
	}
	.oTopCase_hd{
		margin-top: -1.3rem;
		border-bottom: 0.4rem solid var(--color-green-700);
		padding: 0 0 1.1rem;
		background: transparent;
		color: var(--color-green-700);
		font-size: 2.2rem;
	}
	.oTopCase_logo{
		max-width: 22.5rem;
	}
	.oTopCase_name{
		margin-top: 0.9rem;
		font-size: 2.4rem;
	}
	.oTopCase_data{
		margin-top: 1.2rem;
	}
	.oTopCase_data_row:nth-child(n+2){
		padding-top: 0;
	}
	.oTopCase_btn{
		margin-top: 2.5rem;
		display: flex;
		justify-content: flex-end;
	}
	.oTopCase_btn .oBtnA{
		max-width: 28rem;
	}
}

/* 関連事業紹介セクション
-------------------------------------------------- */
.oSct#related{
	margin: 7.5rem 0 0;
	background: var(--color-green-010);
	color: inherit;
	padding: 0 0 4.4rem;
}
@media (min-width: 48em) {
	.oSct#related{
		margin: 11rem 0 0;
		padding: 4.3rem 0 6.4rem;
	}
}

/* 女性活躍の輪ロゴ
-------------------------------------------------- */
.oTopLogo{
	margin: 0 auto;
	padding: 4rem 2rem 2rem;
	max-width: 26rem;
	width:100%;
}
.oTopLogo + .oGotop{
	margin-top: 0;
}
@media (min-width: 48em) {
	.oTopLogo{
		padding: 4rem 2rem 1rem;
		max-width: 30rem;
	}
}