@charset "UTF-8";

/*
■ 汎用

■ TOPページ
■ 汎用パーツ
■ 汎用ライブラリ1

■ JSライブラリ
*/



/* ■ 汎用 ==================================================================================== */

/*
ニュース
Q&A
*/

html {
  scroll-behavior: smooth;
}

/* ボタン --------------------------------------------------- */


@media only screen and (max-width: 767px) {

	#About,
	#Company,
	#Initiatives,
	#Contact {
	scroll-margin-top: 80px;
	}

}

@media print, screen and (min-width: 768px) {

	#About,
	#Company,
	#Initiatives,
	#Contact {
	scroll-margin-top: 80px;
	}


}


/* ボタン --------------------------------------------------- */


@media only screen and (max-width: 767px) {

	.BtnTo {
	background: var(--color-main);
	color: #fff !important;
	border-radius: 5rem;
	transition: .3s cubic-bezier(0.45, 0, 0.55, 1);
	cursor: pointer;
	}
	

}

@media print, screen and (min-width: 768px) {

	.BtnTo {
	background: var(--color-main);
	color: #fff !important;
	border-radius: 5rem;
	transition: .3s cubic-bezier(0.45, 0, 0.55, 1);
	cursor: pointer;
	}
	
	.BtnTo:hover {
	background: #fff;
	color: var(--color-main) !important;
	border: 2px solid var(--color-main);
	opacity: 1;
	}
	
}


/* 下ページ タイトル --------------------------------------------------- */

.TitleWrap {
display: flex;
align-items: flex-end;
background: #f6f7f8;
}


@media only screen and (max-width: 767px) {

	.Contents {
	padding-top: 4rem;
	}

	.TitleWrap {
	height: 22rem;
	padding-left: 3.3rem;
	padding-bottom: 3rem;
	}

	.TitleWrap .MdsUnit2 {
	margin-top: 1rem;
	font-size: 1.6rem;
	}	

}

@media print, screen and (min-width: 768px) {

	.Contents {
	padding-top: 10rem;
	}

	.TitleWrap {
	height: 39rem;
	padding-left: 6.5rem;
	padding-bottom: 5rem;
	}
	
	.TitleWrap .MdsUnit2 {
	margin-top: 2rem;
	font-size: 2.3rem;
	}
	
}



/* 見出し --------------------------------------------------- */

.MdsUnit1 {
position: relative;
color: var(--color-main);
}



@media only screen and (max-width: 767px) {

	.MdsUnit1 {
	font-size: 4.5rem;
	letter-spacing: 0.04em;
	padding-left: 2rem;
	margin-left: -2rem;
	line-height: 1.2;
	}
	
	.MdsUnit1:before {
	content: '';
	display: inline-block;
	position: absolute;
	left: 0;
	top: 2rem;
	width: 20px;
	height: 20px;
	background-image: url(../img/common/icon/Icon_Thunder.png);
	background-size: 15px 20px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	}

	.InitiativesWrap .MdsUnit1:before {
	position: absolute;
	left: 0;
	top: 1.5rem;
	}

	.InitiativesWrap .MdsUnit1 {
	letter-spacing: normal;
	}

}

@media print, screen and (min-width: 768px) {

	.MdsUnit1 {
	font-size: 6rem;
	letter-spacing: 0.04em;
	}

	.MdsUnit1:before {
	content: '';
	display: inline-block;
	width: 30px;
	height: 50px;
	background-image: url(../img/common/icon/Icon_Thunder.png);
	background-size: 24px 30px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	}

}


@media print, screen and (min-width: 1110px) {

	.MdsUnit1 {
	font-size: 8rem;
	letter-spacing: 0.04em;
	}


}


/* モーダル --------------------------------------------------- */

/* モーダル全体を覆うラッパー */
.modal-wrapper {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 20000;
  /* スクロールを有効にする */
  overflow-y: auto; 
  -webkit-overflow-scrolling: touch;
}

/* モーダルウィンドウの配置 */
.modal-window {
  width: 100%;
  min-height: 100%; /* これにより内容が短くても画面いっぱいの高さを確保 */
  display: flex;
  justify-content: center;
  align-items: flex-start; /* 上から配置 */
  padding: 60px 20px; /* 上下に余裕を持たせる（閉じボタン等が隠れないよう） */
  box-sizing: border-box;
}

/* 背景固定 */
body.is-fixed {
  overflow: hidden;
  height: 100%; /* スクロール禁止を徹底 */
}

/* モーダル全体の表示切り替え */
.modal-wrapper.is-active {
  display: block;
}

/* 各コンテンツの表示切り替え（初期は非表示） */
.modal-content {
  display: none;
  position: relative;
  background: #fff; /* 背景色がないと下が透けます */
  width: 100%;
  max-width: 920px; /* 必要に応じて調整 */
  border-radius: 3rem;
  
}

.modal-content.is-active {
  display: block;
}

/* 背景オーバーレイの設定（背景を暗くする場合） */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4); /* 暗くする */
  z-index: -1;
}


.modal-content .Mds1 {
position: absolute;
top: 0;
left: 0;
right: 0;
display: block;
background: var(--color-main);
border-radius: 0 0 1rem 1rem;
text-align: center;
}

.modal-content .Mds1_1 {
color: #0c3351;
font-weight: 600;
}

@media only screen and (max-width: 767px) {

	.modal-content {
	padding: 2.5rem 2.5rem 3rem 2.5rem;
	}

	.modal-content .Mds1 {
	width: 10rem;
	margin: auto;
	padding: 2rem 0 2rem 0;
	}
	
	.modal-content .Mds1_1 {
	display: block;
	font-size: 1.4rem;
	letter-spacing: 0.05em;
	}
	
	.modal-content .Mds1_2 {
	display: block;
	margin-top: 1rem;
	color: #fff;
	font-weight: 900;
	font-size: 6rem;
	}
	
	.modal-content .Mds2 {
	margin-top: 12rem;
	font-size: 1.9rem;
	color: #0c3351;
	font-weight: 600;
	line-height: 1.6;
	}
	
	.modal-content .Lead1 {
	margin-top: 2rem;
	font-size: 1.3rem;
	line-height: 1.8;
	letter-spacing: 0.05em;
	}
	
	.modal-content .Mds3 {
	display: inline-block;
	margin-top: 2.5rem;
	border: 1px solid #0c3351;
	border-radius: 3px;
	padding: 0.6rem 1.2rem 0.4rem 1.2rem;
	color: #0c3351;
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	}

	.modal-content .ListDisc {
	margin-top: 1.2rem;
	}

	.modal-content .ListDisc li {
	color: #0c3351;
	margin-top: 0;
	letter-spacing: 0.05em;
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	}
	
	.modal-content .ListDisc li::before {
	left: 0;
	top: 0.5rem;
	width: 1rem;
	height: 1rem;
	background-color: var(--color-main);
	}
	
	.close-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 3rem auto 0 auto;
	width: 16rem;
	height: 4rem;
	border-radius: 5rem;
	color: #fff;
	letter-spacing: 0.08em;
	background-color: var(--color-main);
	font-size: 1.4rem;
	font-weight: 500;
	}


}

@media print, screen and (min-width: 768px) {

	.modal-content {
	padding: 8rem 8rem 4rem 8rem;
	}

	.modal-content .Mds1 {
	width: 13rem;
	margin: auto;
	padding: 2.5rem 0 2rem 0;
	}
	
	.modal-content .Mds1_1 {
	display: block;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	}
	
	.modal-content .Mds1_2 {
	display: block;
	margin-top: 1.2rem;
	color: #fff;
	font-weight: 900;
	font-size: 8rem;
	}
	
	.modal-content .Mds2 {
	margin-top: 10rem;
	font-size: 2.6rem;
	color: #0c3351;
	font-weight: 600;
	text-align: center;
	line-height: 1.8;
	}
	
	.modal-content .Lead1 {
	margin-top: 3rem;
	font-size: 1.6rem;
	line-height: 1.8;
	letter-spacing: 0.05em;
	}
	
	.modal-content .Mds3 {
	display: inline-block;
	margin-top: 2.5rem;
	border: 1px solid #0c3351;
	border-radius: 3px;
	padding: 0.6rem 1.2rem 0.4rem 1.2rem;
	color: #0c3351;
	font-weight: 500;
	letter-spacing: 0.1em;
	}

	.modal-content .ListDisc {
	margin-top: 1.2rem;
	}

	.modal-content .ListDisc li {
	color: #0c3351;
	margin-top: 0;
	letter-spacing: 0.05em;
	}
	
	.modal-content .ListDisc li::before {
	left: 0;
	top: 0.7rem;
	width: 1.4rem;
	height: 1.4rem;
	background-color: var(--color-main);
	}
	
	.close-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 6rem auto 0 auto;
	width: 16rem;
	height: 4rem;
	border-radius: 5rem;
	color: #fff;
	letter-spacing: 0.08em;
	background-color: var(--color-main);
	font-size: 1.4rem;
	font-weight: 500;
	}
	

}

/* ニュース --------------------------------------------------- */

.NewsUnit dl {

}

.NewsUnit dt {
display: flex;
align-items: center;
}

.NewsUnitWrap .MdsUnit {
color: var(--color-main);
}

.NewsUnit dd a {
color: #333;
}

@media only screen and (max-width: 767px) {

	.NewsUnitWrap {
	padding-top: 4rem;
	padding-bottom: 4rem;
	}

	.NewsUnit dd {
	margin-top: 0.25rem;
	font-size: 1.3rem;
	}

	.NewsUnitWrap .MdsUnit {
	padding-bottom: 2rem;
	margin-bottom: 2rem;
	font-size: 4rem;
	border-bottom: 1px solid #0c314e;
	}

	.NewsUnit_Date {
	color: #0c314e;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	}

}

@media print, screen and (min-width: 768px) {

	.NewsUnit dl {
	padding: 0 0;
	}

	.NewsUnit dt {
	display: flex;
	align-items: center;
	}

	.NewsUnit dd {
	margin-left: 2.5rem;
	}

	.NewsUnit .Icon {
	min-width: 8rem;
	margin-left: 1rem;
	padding: 0.3rem 1rem;
	font-size: 1.3rem;
	}
	
	.NewsUnitWrapIn {
	display: flex;
	align-items: center;
	}
	
	.NewsUnitWrap .MdsUnit {
	display: flex;
	align-items: center;
	padding-right: 5rem;
	margin-right: 3rem;
	font-size: 4rem;
	border-right: 1px solid #0c314e;
	height: 6rem;
	}
	
	.NewsUnit_Date {
	color: #0c314e;
	font-size: 1.5rem;
	letter-spacing: 0.1em;
	}

}



/* Swiftfabとは --------------------------------------------------- */


@media only screen and (max-width: 767px) {

	.AboutWrap {

	margin-top: 10rem;
	}
	
	.AboutUnit1 {

	}

	.AboutUnit2 {

	}
	
	.MdsUnit2 {
	margin-top: 2rem;
	font-size: 1.4rem;
	color: #0c314e;
	font-weight: 600;
	letter-spacing: 0.05em;
	}
	
	.AboutUnit2 .Mds1 {
	margin-top: 4rem;
	font-size: 2.2rem;
	line-height: 1.6;
	color: #0c314e;
	font-weight: 600;
	}
	
	.AboutUnit2 .Lead1 {
	margin-top: 2rem;
	font-size: 1.4rem;

	line-height: 1.8;
	letter-spacing: 0.05em;
	}

	.Photo {
	margin-top: 4rem;
	margin-left: 4rem;
	max-height: 44rem;
	}
	
	.Photo img {
	border-radius: 1rem 0 0 1rem;
	}

	.CompanyWrap {
	margin-top: 10rem;	
	}


}

@media print, screen and (min-width: 768px) {

	.AboutWrap {
	display: flex;
	margin-top: 20rem;
	}
	
	.AboutUnit1 {
	width: 50%;
	}

	.AboutUnit2 {
	width: 50%;
	}
	
	.MdsUnit2 {
	margin-top: 4rem;
	padding-left: 4rem;
	font-size: 2rem;
	color: #0c314e;
	font-weight: 600;
	letter-spacing: 0.05em;
	}
	
	.AboutUnit2 .Mds1 {
	font-size: 3.4rem;
	line-height: 1.6;
	color: #0c314e;
	font-weight: 600;
	}
	
	.AboutUnit2 .Lead1 {
	margin-top: 5rem;
	font-size: 1.7rem;
	font-weight: 600;
	line-height: 2.5;
	letter-spacing: 0.08em;
	}

	.Photo {
	margin-top: 8rem;
	margin-left: 4rem;
	max-height: 44rem;
	}
	
	.Photo img {
	border-radius: 3rem 0 0 3rem;
	}

	.CompanyWrap {
	margin-top: 20rem;	
	}

	.CompanyWrapIn {
	display: flex;
	}
	
	.CompanyUnit1 {
	width: 40%;
	}

	.CompanyUnit2 {
	width: 60%;

	}

}


/* 会社概要 --------------------------------------------------- */



@media only screen and (max-width: 767px) {

	.CompanyWrap {
	margin-top: 10rem;	
	}

	.CompanyWrapIn {
	display: flex;
	flex-flow: column;
	}

	.CompanyUnit1 {
	order: 2;
	margin-top: 6rem;
	padding-right: 12rem;
	}
	
	.CompanyUnit1 img {
	border-radius: 0 3rem  3rem 0;
	}
	
	.CompanyUnit2 {
	order: 1;
	margin-top: 3.5rem;
    padding: 0 3rem;
	}

	.CompanyWrap .DLHori {
	border-top: 1px solid #0c314e;	
	}

	.CompanyWrap .DLHori dl {
	border-bottom: 1px solid #0c314e;
	}

	.CompanyWrap .DLHori dt {
	width: 8rem;
	color: #0c314e;
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	padding: 0.8rem 0 0.8rem 0.5rem;
	}

	.CompanyWrap .DLHori dd {
	padding: 0.8rem 0;
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	line-height: 1.8;
	}


}

@media print, screen and (min-width: 768px) {

	.CompanyWrap {
	margin-top: 20rem;	
	}

	.CompanyWrapIn.Width1_PC {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-right: 6rem;
	}

	.CompanyWrapIn {
	display: flex;
	align-items: center;
	}
	
	.CompanyUnit1 img {
	border-radius: 0 3rem  3rem 0;
	}
	
	.CompanyUnit2 {
	padding-left: 7.5rem;
	padding-bottom: 10rem;
	}

	.CompanyWrap .DLHori {
	border-top: 1px solid #0c314e;	
	}

	.CompanyWrap .DLHori dl {
	border-bottom: 1px solid #0c314e;
	}

	.CompanyWrap .DLHori dt {
	width: 17.5rem;
	color: #0c314e;
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	padding: 1.5rem 0 1.5rem 2rem;
	}

	.CompanyWrap .DLHori dd {
	padding: 1.5rem 0;
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	line-height: 1.8;
	}

}


@media print, screen and (min-width: 1110px) {

	.CompanyWrapIn {
	display: flex;
	align-items: flex-end;
	}


}




/* 環境への取り組み --------------------------------------------------- */

@media only screen and (max-width: 767px) {

	.InitiativesWrap {
	background: #0c314e;
	margin-top: 9rem;
	padding-top: 3.5rem;
	padding-bottom: 3.5rem;
	}

	.InitiativesWrap .MdsUnit2 {
	margin-top: 2.5rem;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	}
	
	.InitiativesWrap .Lead1 {
	margin-top: 3.5rem;
	font-size: 1.3rem;
	color: #fff;
	line-height: 1.8;
	letter-spacing: 0.03em;
	}
	
	.InitiativesList {
	margin-top: 4rem;
	position: relative;
	}

	.InitiativesList li {
	position: relative;
	margin-bottom: 1.5rem;
	background: #fff;
	border-radius: 1rem;
	height: 11.5rem;
	}

	.InitiativesList li:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	background: #f6f7f8;
	width: 10.5rem;
	height: 11.5rem;
	border-radius: 1rem;
	border-radius: 1rem 0 0 1rem;
	}

	.InitiativesList li:after {
	content: '';
	position: absolute;
	right: 0;
	top: 0;
	background: var(--color-main);
	width: 3rem;
	height: 11.5rem;
	border-radius: 1rem;
	border-radius: 0 1rem 1rem 0;
	}

	.InitiativesList li a {
	position: relative;
	display: block;
	padding: 1rem;
	border-radius: 1rem;
	color: #0c314e;
	}

	.InitiativesList li a:after {
	content: '';
	display: inline-block;
	width: 17px;
	height: 17px;
	position: absolute;
	top: 5rem;
	right: 0.7rem;
	margin: auto;
	background-image: url(../img/common/icon/Icon_Allow.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	z-index: 1;
	}

	.InitiativesLead {
	position: relative;
	}

	.InitiativesList .Initiatives1 a:before {
	content: '';
	display: inline-block;
	width: 80px;
	height: 60px;
	position: absolute;
	top: 3rem;
	left: 3rem;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives1.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives2 a:before {
	content: '';
	display: inline-block;
	width: 85px;
	height: 65px;
	position: absolute;
	top: 2.5rem;
	left: 2.5rem;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives2.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives3 a:before {
	content: '';
	display: inline-block;
	width: 90px;
	height: 90px;
	position: absolute;
	top: 1.5rem;
	left: 1rem;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives3.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}
	
	.InitiativesList .Initiatives4 a:before {
	content: '';
	display: inline-block;
	width: 90px;
	height: 90px;
	position: absolute;
	top: 1.5rem;
	left: 1rem;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives4.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives5 a:before {
	content: '';
	display: inline-block;
	width: 90px;
	height: 90px;
	position: absolute;
	top: 1.5rem;
	left: 1rem;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives5.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}
		
	.InitiativesMds {
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	font-weight: 600;
	padding-left: 10.5rem;
	}
	
	.InitiativesMds .Number {
	margin-left: 0.6rem;
	font-size: 4rem;
	font-weight: 700;
	color: var(--color-main);
	}

	.InitiativesLead {
	margin-top: 0.5rem;
	padding-left: 10.5rem;
	font-size: 1.5rem;

	font-weight: 600;
	line-height: 1.6;	
	}
	
	.InitiativesList .ViewMore {
	display: none;
	}

}

@media print, screen and (min-width: 768px) {

	.InitiativesWrap {
	margin-top: 20rem;
	background: #0c314e;
	margin-left: 4rem;
	margin-bottom: 10rem;
	padding: 7.5rem 5rem 7.5rem 5rem;
	border-radius: 3rem 0 0 3rem;
	}
	
	.InitiativesWrap .MdsUnit2 {
	margin-top: 4rem;
	color: #fff;
	font-size: 2rem;
	font-weight: 500;
	}
	
	.InitiativesWrap .Lead1 {
	width: 70%;
	margin-top: 5rem;
	margin-left: 4rem;
	font-size: 1.6rem;
	color: #fff;
	line-height: 1.8;
	letter-spacing: 0.03em;
	}
	
	.InitiativesList {
	display: flex;
	justify-content: space-between;
	margin-top: 8rem;
	position: relative;
	margin-bottom: -23%;
	}

	.InitiativesList li {
	display: flex;
	width: calc((100% / 5) - 1.5rem);
	}

	.InitiativesList li a {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 17rem 2rem 2rem 2rem;
	background: rgba( 255, 255, 255, 0.95 );
	border-radius: 2rem;
	text-align: center;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.1);
	color: #0c314e;
	}

	.InitiativesList li a:hover {
	opacity: 1;
	}

	.InitiativesList .Initiatives1 a:before {
	content: '';
	display: inline-block;
	width: 80px;
	height: 64px;
	position: absolute;
	top: 4rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives1.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives2 a:before {
	content: '';
	display: inline-block;
	width: 80px;
	height: 79px;
	position: absolute;
	top: 3rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives2.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives3 a:before {
	content: '';
	display: inline-block;
	width: 100px;
	height: 100px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives3.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives4 a:before {
	content: '';
	display: inline-block;
	width: 100px;
	height: 100px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives4.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives5 a:before {
	content: '';
	display: inline-block;
	width: 100px;
	height: 100px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives5.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesMds {
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	font-weight: 600;

	}
	
	.InitiativesMds .Number {
	display: block;
	font-size: 8rem;
	font-weight: 700;
	color: var(--color-main);
	}

	.InitiativesLead {
	margin-top: 2rem;
	margin-bottom: 2rem;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	font-weight: 600;
	line-height: 1.6;	
	}
	
	.InitiativesList .ViewMore {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	width: 100%;
	height: 5rem;
	border-radius: 5rem;

	text-align: center;
	font-size: 1.5rem;
	letter-spacing: 0.08em;
	}
	
	.InitiativesList.Width1 {
	padding: 0;
	}

}

@media print, screen and (min-width: 1110px) {

	.InitiativesList.Width1 {
	padding: 0 3rem;
	}

	.InitiativesList .Initiatives1 a:before {
	content: '';
	display: inline-block;
	width: 104px;
	height: 83px;
	position: absolute;
	top: 4rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives1.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives2 a:before {
	content: '';
	display: inline-block;
	width: 102px;
	height: 101px;
	position: absolute;
	top: 3rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives2.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives3 a:before {
	content: '';
	display: inline-block;
	width: 140px;
	height: 140px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives3.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives4 a:before {
	content: '';
	display: inline-block;
	width: 140px;
	height: 140px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives4.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

	.InitiativesList .Initiatives5 a:before {
	content: '';
	display: inline-block;
	width: 140px;
	height: 140px;
	position: absolute;
	top: 2rem;
	left: 0;
	right: 0;
	margin: auto;
	background-image: url(../img/home/Icon_initiatives5.png);
	background-size: contain;
	vertical-align: middle;
	background-repeat: no-repeat;
	}

}




/* お問い合わせ --------------------------------------------------- */



@media only screen and (max-width: 767px) {

	.ContactWrapIn {
	padding-top: 3.5rem;
	padding-bottom: 5rem;
	}
	

}

@media print, screen and (min-width: 768px) {

	.ContactWrap {
	margin-top: 36rem;
	margin-right: 4rem;
	padding: 7rem 0;
    border-radius: 0 3rem 3rem 0;
	}
	
	.ContactWrapIn {
	display: flex;	
	}
	
	.ContactUnit1 {
	width: 40%;
	}

	.ContactUnit2 {
	width: 60%;
	}

}




@media only screen and (max-width: 767px) {

	.Contents .LeadMain {
	margin-bottom: 6rem;
	font-weight: 500;
	line-height: 2;
	}

	.LeadUnit {
	margin-bottom: 4rem;
	}
	
	.LeadUnit .LeadMds {
	font-size: 1.5rem;
	letter-spacing: 0.05em;
	background: #0c3351;
	color: #fff;
	font-weight: 500;
	border-radius: 1rem;
	margin-bottom: 2rem;
	padding: 1.5rem 2rem 1rem 2rem;
	line-height: 1;
	}

	.LeadUnit .Lead1 {
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	line-height: 1.6;
	}

	.LeadUnitIn {
	margin-bottom: 3rem;
	}
	
	.LeadUnitIn .Mds1 {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	color: #0c3351; 
	border-bottom: 1px solid #0c3351;
	line-height: 1.6;
	}

	.LeadUnitIn .Mds2 {
	margin-top: 3rem;
	line-height: 1.6;
	color: #0c3351; 
	}
	
	.BtnHome {
	margin-bottom: 5rem;
	}
	
	.ConfirmUnit {
	padding-bottom: 5rem;
	}
	
	.ConfirmUnit .FormList {
	margin-top: 0;
	}
	
	.ConfirmUnit .LeadMain {
	margin-bottom: 4rem;
	}
	
	.Form_Confirm .AllowBtn:after {
	top: 16px;
	}

	.Form_Confirm .BtnLeft {
	order: 2;	
	margin-top: 2rem;
	}
	
	.Form_Confirm .BtnLeft button {
	width: 100%;
	}

	.Form_Confirm .BtnRight {
	order: 1;
	}
	
	.Form_Confirm .BtnRight input {
	width: 100%;
	font-size: 1.3rem;
	}

}

@media print, screen and (min-width: 768px) {

	.Contents .LeadMain {
	margin-bottom: 6rem;
	font-weight: 500;
	line-height: 2;
	}

	.LeadUnit {
	margin-bottom: 6rem;
	}
	
	.LeadUnit .LeadMds {
	font-size: 2rem;
	letter-spacing: 0.08em;
	background: #0c3351;
	color: #fff;
	font-weight: 500;
	border-radius: 1rem;
	margin-bottom: 3rem;
	padding: 1.5rem 2rem 1rem 2rem;
	line-height: 1;
	}
	
	.LeadUnit .Lead1 {
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	line-height: 2;
	}

	.LeadUnitIn {
	margin-bottom: 5rem;
	}
	
	.LeadUnitIn .Mds1 {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	color: #0c3351; 
	border-bottom: 1px solid #0c3351;
	}

	.LeadUnitIn .Mds2 {
	margin-top: 3rem;
	color: #0c3351; 
	}
	
	.ListNumber2 {
	padding-left: 2rem;
	}
	
	.ListNum .ListNum {
	padding-left: 2rem;
	}
	
	.NoNum li:before {
	counter-increment: none !important;
    content: none !important;
	}
	
	.BtnHome .BtnL {
	padding: 1.8rem 6rem;
	border: 2px solid var(--color-main);
	}

	.ConfirmUnit dl {
	align-items: center;
	}
	
}





/* ■ TOPページ ==================================================================================== */

/*
KVスライド
*/


/* KVスライド --------------------------------------------------- */

.KeyVisual img {
width: 100%;
}

@media only screen and (max-width: 767px) {

	.KeyVisualWrap {
	position: relative;

	}
	
	.KeyVisual {

	}
	
	.KeyVisualLead {
	position: absolute;
	right: 5%;
	bottom: -7%;
	z-index: 1;
	text-align: right;
	}
	
	.KeyVisualWrap .MainLead1 {
	color: var(--color-main);
	font-size: 2.3rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.05em;
	}

	.KeyVisualWrap .MainLead2 {
	margin-top: 1rem;
	font-size: 6.4rem;
	color: var(--color-sub1);
	font-weight: 600;
	line-height: 1.2;
	font-feature-settings: "palt";
	mix-blend-mode: color-burn; /* 「焼き込み」効果 */
	}

	.KeyVisualWrap .MainLead2 span {
	letter-spacing: -0.5em;	
	}

}

@media print, screen and (min-width: 768px) {

	.KeyVisualWrap {
	position: relative;

	}
	
	.KeyVisual {
	max-height: 80rem;
	overflow: hidden;
	}
	
	.KeyVisualLead {
	position: absolute;
	right: 5%;
	bottom: -5%;
	z-index: 1;
	text-align: right;
	}
	
	.KeyVisualWrap .MainLead1 {
	color: var(--color-main);
	font-size: 4.6rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.05em;
	}

	.KeyVisualWrap .MainLead2 {
	margin-top: 5rem;
	font-size: 8rem;
	color: var(--color-sub1);
	font-weight: 600;
	font-feature-settings: "palt";
	mix-blend-mode: color-burn; /* 「焼き込み」効果 */
	}

	.KeyVisualWrap .MainLead2 span {
	letter-spacing: -0.5em;	
	}

}


@media screen and (min-width: 768px) and (max-height: 750px) {

.KeyVisual {
    /* 1. 画面の高さ(100vh)から、文字がはみ出すスペース（例:120px）を引く */
    max-height: 100vh; 
}

	.KeyVisualLead {
	bottom: 10%;
	}
}

@media print, screen and (min-width: 900px) {

	.KeyVisualWrap .MainLead2 {
	margin-top: 5rem;
	font-size: 10rem;
font-feature-settings: "palt";
	}

}

@media print, screen and (min-width: 1300px) {

	.KeyVisualLead {
	right: 70px;
	}

	.KeyVisualWrap .MainLead2 {
	font-size: 12rem;
	font-feature-settings: "palt";
	}


}



/* ### --------------------------------------------------- */

.TopContentsWrap {
position: relative;
z-index: 10;
background-color: #fff;
}

@media only screen and (max-width: 767px) {

	#ContentsTop {
    margin-top: -5.5rem;
	}

}

@media print, screen and (min-width: 768px) {

	#ContentsTop {
	padding-bottom: 8rem;
	}

}



/* ■ 汎用パーツ ==================================================================================== */

/*
カラム
記述リスト
ボタン
検索窓
*/


/* カラム --------------------------------------------------- */

#col1 .ColItem,
#col2 .ColItem {
padding: 2rem;
border: 1px solid var(--color-sub4);
line-height: 1.8;
}


/* 記述リスト --------------------------------------------------- */

#dlh .DLHori dl {
border-bottom: 1px solid var(--color-sub5);
}

#dlh .DLHori dt {
width: 13rem;
}

#dlv .DLVert dl {
border-bottom: 1px solid var(--color-sub5);
}

@media only screen and (max-width: 767px) {

	#dlh .DLHori dl {
	padding: 1rem 0;
	}

	#dlv .DLVert dl {
	padding: 1rem 0;
	}

}

@media print, screen and (min-width: 768px) {

	#dlh .DLHori dl {
	padding: 2rem 0;
	}

	#dlv .DLVert dl {
	padding: 2rem 0;
	}

}


/* ボタン --------------------------------------------------- */

@media only screen and (max-width: 767px) {

	#btn .Note {
	display: block;
	font-size: 1.4rem;
	}

}

@media print, screen and (min-width: 768px) {

}


/* 検索窓 --------------------------------------------------- */

@media only screen and (max-width: 767px) {

	.SearchBox {
	margin-top: var(--gap-int);
	}

}

@media print, screen and (min-width: 768px) {

	.SearchBox {
	margin-top: var(--gap-int);
	}

}



/* ■ 汎用ライブラリ1 ==================================================================================== */

/*
モーダル1
タブメニュー
ソートメニュー
*/


/* モーダル1 --------------------------------------------------- */

.SampleFullScreen {
display: none;
}

.SampleFullScreen_In {
padding-top: 3rem;
padding-bottom: 3rem;
}


/* タブメニュー --------------------------------------------------- */

.TabContent {
display: none;
}

.TabContent.Current {
display: block;
}

/* タブ */
.TabMenuList {
display: flex;
margin-top: var(--gap-int);
border-bottom: 1px solid var(--color-sub4);
}

.TabMenuList li {
margin-right: 0.2rem;
}

.TabMenuList a {
display: block;
border: 1px solid var(--color-sub4);
border-bottom: none;
border-radius: 0.5rem 0.5rem 0 0;
color: #000;
}

.TabMenuList a.Current {
background-color: var(--color-sub5);
}

/* コンテンツ */
.TabContentsList {
margin-top: var(--gap-int);
}

@media only screen and (max-width: 767px) {

	/* タブ */
	.TabMenuList a {
	padding: 1.25rem 1rem;
	}

}

@media print, screen and (min-width: 768px) {

	/* タブ */
	.TabMenuList a {
	padding: 1rem 1rem;
	}

}


/* ソートメニュー --------------------------------------------------- */

/* タグ */
.SortMenuList {
display: flex;
flex-wrap: wrap;
margin-top: var(--gap-int);
}

.SortMenuList li {
margin-right: 0.5rem;
margin-bottom: 0.5rem;
}

.SortMenuList a {
display: block;
border: 1px solid var(--color-sub4);
border-radius: 100vh;
color: #000;
}

.SortMenuList a.Current {
background-color: var(--color-sub5);
}

/* コンテンツ */
.SortContentsList {
margin-top: var(--gap-int);
}

.SortContentsList li {
border: 1px solid var(--color-sub4);
}

@media only screen and (max-width: 767px) {

	/* タブ */
	.SortMenuList a {
	padding: 1rem 2rem;
	}

	/* コンテンツ */
	.SortContentsList li {
	padding: 1.5rem 1.5rem;
	line-height: 1.6;
	}

}

@media print, screen and (min-width: 768px) {

	/* タブ */
	.SortMenuList a {
	padding: 1rem 2rem;
	}

	/* コンテンツ */
	.SortContentsList li {
	padding: 2rem 2rem;
	line-height: 1.8;
	}

}



/* ■ JSライブラリ ==================================================================================== */

/*
slick
Modaal
*/


/* slick カスタマイズ --------------------------------------------------- */

/* 読み込み時のレイアウトずれ対策 */
.Slider > li:not(:first-child) {
display: none;
}

/* 前後ボタン */
.slick-prev,
.slick-next {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
z-index: 10;
border-radius: 100vh;
text-indent: -9999px;
background-color: rgba(0,0,0,0.5);
cursor: pointer;
}

.slick-prev-arrow,
.slick-next-arrow {
display: block;
border-color: #fff;
border-top-style: solid;
border-right-style: solid;
}

.slick-prev-arrow {
transform: rotate(225deg);
}

.slick-next-arrow {
transform: rotate(45deg);
}

.slick-disabled {
opacity: 0.2;
cursor: default;
}

/* ページネーション */
.slick-dots {
display: block;
position: absolute;
width: 100%;
text-align: center;
}

.slick-dots li {
display: inline-block;
position: relative;
border: 1px solid #c7c7c7;
border-radius: 100vh;
text-indent: -9999px;
cursor: pointer;
}

@media only screen and (max-width: 767px) {

	.Slider {
	margin-top: var(--gap-int);
	margin-bottom: 6rem;
	}

	/* スライド間の余白：centerModeを使用する場合 */
	.Slider .slick-slide {
	margin: 0 0.2rem;
	}

	/* 前後ボタン */
	.slick-prev,
	.slick-next {
	bottom: -4rem;
	width: 3rem;
	height: 3rem;
	margin-top: -1.5rem;
	}

	.slick-prev {
	left: 0;
	padding-left: 0.5rem;
	}

	.slick-next {
	right: 0;
	padding-right: 0.5rem;
	}

	.slick-prev-arrow,
	.slick-next-arrow {
	width: 1rem;
	height: 1rem;
	border-top-width: 1px;
	border-right-width: 1px;
	}

	/* ページネーション */
	.slick-dots {
	bottom: -3.75rem;
	}

	.slick-dots li {
	width: 1rem;
	height: 1rem;
	margin: 0 0.5rem;
	}

	.slick-dots .slick-active {
	background-color: #c7c7c7;
	}

}

@media print, screen and (min-width: 768px) {

	.Slider {
	margin-top: var(--gap-int);
	}

	/* 前後ボタン */
	.slick-prev,
	.slick-next {
	top: 50%;
	width: 6rem;
	height: 6rem;
	margin-top: -3rem;
	}

	.slick-prev {
	left: 2rem;
	padding-left: 1rem;
	}

	.slick-next {
	right: 2rem;
	padding-right: 1rem;
	}

	.slick-prev-arrow,
	.slick-next-arrow {
	width: 2rem;
	height: 2rem;
	border-top-width: 2px;
	border-right-width: 2px;
	}

	/* ページネーション */
	.slick-dots {
	bottom: 2rem;
	}

	.slick-dots li {
	width: 1rem;
	height: 1rem;
	margin: 0 0.5rem;
	}

	.slick-dots .slick-active {
	background-color: #fff;
	}

}


/* Modaal カスタマイズ --------------------------------------------------- */

/*
種類別class名
modaal-inline, modaal-image, modaal-video, modaal-ajax, modaal-confirm, modaal-iframe
modaal-fullscreen
*/

/* オーバーレイ */
.modaal-overlay {
z-index: 10000;
background-color: rgba(0,0,0,0.6) !important;
}

/* モーダル全体の囲み */
.modaal-wrapper {
z-index: 10001;
}

/* 画像：横幅 */
.modaal-image .modaal-container,
.modaal-image .modaal-container img {
max-width: 100rem !important;
}

/* 動画：横幅 */
.modaal-video-wrap {
max-width: 100rem;
margin: 0 auto;
}

/* 動画：調整（display: tableによる不要な上下の余白を解消） */
.modaal-video .modaal-outer-wrapper {
display: flex;
align-items: center;
}

.modaal-video .modaal-inner-wrapper {
height: auto;
}

/* 動画：調整（左右の背景を押しても閉じないバグを解消） */
.modaal-video-container {
max-width: 100%;
padding-top: 56.25%;
padding-bottom: 0;
}

/* 閉じるボタン */
.modaal-close {
background-color: #fff !important;
}

.modaal-fullscreen .modaal-close {
background-color: #000 !important;
}

.modaal-close::before,
.modaal-close::after,
.modaal-close:focus::before,
.modaal-close:focus::after,
.modaal-close:hover::before,
.modaal-close:hover::after {
background-color: #000 !important;
}

.modaal-fullscreen .modaal-close::before,
.modaal-fullscreen .modaal-close::after,
.modaal-fullscreen .modaal-close:focus::before,
.modaal-fullscreen .modaal-close:focus::after,
.modaal-fullscreen .modaal-close:hover::before,
.modaal-fullscreen .modaal-close:hover::after {
background-color: #fff !important;
}

@media only screen and (max-width: 767px) {

	/* コンテンツ領域のpadding */
	.modaal-content-container {
	padding: 2rem;
	}

	/* inlineとAjaxの高さ */
	.modaal-inline:not(.modaal-fullscreen) .modaal-content-container,
	.modaal-ajax .modaal-content-container {
	height: 50rem;
	overflow: scroll;
	}

}

@media print, screen and (min-width: 768px) {

	/* inlineとAjaxの横幅と高さ */
	.modaal-inline:not(.modaal-fullscreen) .modaal-content-container,
	.modaal-ajax:not(.modaal-fullscreen) .modaal-content-container {
	max-width: 100rem;
	height: 60rem;
	overflow: scroll;
	}

}

@media print, screen and (max-height: 700px) {

	/* inlineとAjaxの横幅と高さ */
	.modaal-inline:not(.modaal-fullscreen) .modaal-content-container,
	.modaal-ajax:not(.modaal-fullscreen) .modaal-content-container {
	height: 50rem;
	}

}
