@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
	margin-top: 130px;
	position: relative;
}
.mainVisual h2 {
	margin: 0 0 111px 104px;
	margin-left: 104px;
	font-size: 7rem;
	letter-spacing: 0.102em;
}
.mainVisual h2 span {
	font-size: 1.6rem;
	letter-spacing: 0.2em;
}
.mainVisual .img01 {
	position: absolute;
	right: 11.8%;
	top: -44px;
	z-index: 2;
}
.mainVisual .img02 img {
	width: 100%;
}
.about {
	padding: 150px 0 0;
}
.about.message,
.about.business {
		padding-top: 0;
}
.about .imgBox {
	margin-bottom: 100px;
	display: flex;
}
.about .imgBox .subTextBox {
	max-width: 620px;
}
.about .imgBox .photoBox {
	margin-right: 62px;
	max-width: 1000px;
}
.about .imgBox .photoBox img {
	width: 100%;
}
.about .imgBox .textBox {
	margin-top: -2px;
}
.about .imgBox.special03 .photoBox {
	order: 1;
	width: calc(50% - 132px);
}
.about .imgBox.special03 .textBox {
	order: 2;
	width: calc(50% - 90px);
}
.about .imgBox .textBox p {
	letter-spacing: 0.1em;
	line-height: 2.125;
}
.about .imgBox.special {
	padding-top: 80px;
	margin-bottom: 17px;
	flex-direction: row-reverse;
}
.about .imgBox.special .photoBox {
	margin: 0 0 0 160px;
	width: calc(50% - 83px);
}
.about .imgBox.special .textBox {
	margin: -2px 0 0 0;
	width: calc(50% - 230px);
	display: flex;
	justify-content: flex-end;
}
.about .imgBox.special .subTextBox {
	max-width: 500px;
}
.about .imgBox.special .headLine01 span {
	margin-bottom: 32px;
}
.about .imgBox.special .headLine01::after {
	top: 143px;
}
.about .imgBox.special .textBox .text {
	margin-top: -17px;
	letter-spacing: 0.15em;
}
.about .imgBox.special .textBox .text span {
	font-size: 4.3rem;
	letter-spacing: 0.15em;
	font-family: 'Jost', sans-serif;
	color: #00349D;
}
.about .imgBox.special .textBox .text span.small {
	font-size: 1.2rem;
}
.about .imgBox.special .textBox .text span  span {
	font-size: 2.8rem;
}
.about .photoList {
	margin-bottom: 99px;
	display: flex;
}
.about .photoList .photo01 {
	width: calc(50% - 62px);
}
.about .photoList .photo01 img {
	width: 100%;
}
.about .photoList .photo02 {
	margin: 84px 0 0 52px;
	width: calc(50% - 90px);
}
.about .photoList .photo02 img {
	width: 100%;
}
.about .imgBox.special02 .photoBox {
	margin: 76px 0 0 0;
	max-width: 474px;
}
.about .imgBox.special02 .textBox {
	margin-right: 0;
	flex: 1;
}
.about .imgBox.special02 .headLine01 {
	margin-bottom: 23px;
	line-height: 1.6875;
	font-size: 3.2rem;
}
.about .imgBox.special02 .headLine01::after {
	left: 138px;
	top: 10px;
	height: 2px;
}
.about .imgBox.special02 .headLine01 span {
	margin-bottom: 26px;
}
.about .imgBox.special02 .textBox p {
	letter-spacing: 0.15em;
}
.about .imgBox.special02 .textBox .text02 {
	margin-bottom: 45px;
	font-size: 1.6rem;
	letter-spacing: 0.2em;
	line-height: 1.666;
}
.about .imgBox.special02 .textBox .text01 {
	margin: 37px 5px 0 0;
	text-align: right;
}
.about .imgBox.special02 .textBox .text01 span {
	margin-left: 38px;
	font-size: 2.4rem;
	letter-spacing: 0.15em;
	vertical-align: 2px;
}
.about .imgBox.special02 {
	padding-top: 80px;
	margin-bottom: 0;
}
.company {
	padding: 173px 0 182px;
}
.company .flexBox {
	margin-bottom: 84px;
	display: flex;
}
.company .flexBox .lBox {
	margin-right: 142px;
}
.company .flexBox .rBox {
	margin-top: -2px;
	flex: 1;
}
.company .flexBox .rBox dl {
	display: flex;
	flex-wrap: wrap;
}
.company .flexBox .rBox dt,
.company .flexBox .rBox dd {
	margin-bottom: 29px;
	font-size: 1.6rem;
	letter-spacing: 0.1em;
}
.company .flexBox .rBox dt {
	padding: 0 10px 29px;
	box-sizing: border-box;
	color: #00349D;
	width: 18.56%;
	border-bottom: 2px solid #00349D;
}
.company .flexBox .rBox dd {
	padding: 0 12px;
	border-bottom: 1px solid #B9CDDD;
	width: calc(100% - 18.56%);
	box-sizing: border-box;
}
.company .flexBox .rBox .text span {
	display: inline-block;
	margin-bottom: 14px;
}
.company .photoList {
	display: flex;
}
.company .photoList li {
	width: 33.333333%;
}
.company .photoList li img {
	width: 100%;
}
.contact {
	padding: 65px 10px 66px;
	background-color: #F4F4F7;
}
.contact .flexBox {
	display: flex;
	width: 1101px;
	margin: 0 auto;
}
.contact .contactBox {
	padding: 6px 30px 5px 0;
	border-right: 1px solid #BFBFBF;
}
.contact .contactBox .headLine01 {
	margin-bottom: 14px;
	font-size: 2.4rem;
}
.contact .contactBox .headLine01::after {
	position: static;
}
.contact .contactBox p {
	font-size: 1.4rem;
	letter-spacing: 0.1em;
}
.contact .contactBox .headLine01 span {
	margin-bottom: 3px;
}
.contact .telBox {
	padding: 16px 30px 0;
	border-right: 1px solid #BFBFBF;
	text-align: center;
}
.contact .telBox a {
	padding-left: 39px;
	display: block;
	color: #00349D;
	background: url("../image/icon01.png") no-repeat left center / 29px auto;
	letter-spacing: 0.065em;
	font-size: 4rem;
	font-weight: 500;
}
.contact .telBox span {
	margin-top: -8px;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	display: block;
}
.contact .btn {
	padding: 21px 0 0 40px;
}
.contact .btn a {
	padding: 10px;
	width: 270px;
	height: 65px;
	border-radius: 8px;
	background-color: #00349d;
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	letter-spacing: 0.1em;
	color: #fff;
}
@media all and (min-width: 897px) {
	.contact .btn a:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 896px) {
	.mainVisual {
		margin-top: 56px;
	}
	.mainVisual h2 {
		margin: 0 0 44px 21px;
	}
	.mainVisual .img01 {
		max-width: 100px;
		right: 5.4%;
		top: 60px;
	}
	.about {
		padding-top: 70px;
	}
	.about .imgBox {
		margin-bottom: 20px;
		padding: 0 20px;
		display: block;
	}
	.about .imgBox .textBox {
		margin-right: 0;
		margin-bottom: 58px;
		width: auto !important;
	}
	.about .imgBox .textBox p {
		line-height: 2.142;
	}
	.about .imgBox .photoBox {
		max-width: inherit;
		margin-right: 0;
		margin: 0 -20px;
		width: auto !important;
	}
	.about .imgBox.special03 .textBox {
		width: auto !important;
	}
	.about .imgBox .subTextBox {
		max-width: inherit !important;
	}
	.about .imgBox.special {
		margin-bottom: 0;
		padding: 80px 0 37px;
		position: relative;
	}
	.about .imgBox.special .textBox {
		margin: 0 20px;
		display: block;
	}
	.about .imgBox.special .photoBox {
		margin: 0 0 44px 167px;
		max-width: inherit;
	}
	.about .imgBox.special .headLine01 {
		margin-top: 19px;
		position: absolute;
		top: 80px;
	}
	.about .imgBox.special .headLine01 span {
		margin-bottom: 12px;
	}
	.about .imgBox.special .headLine01::after {
		top: 85px;
	}
	.about .imgBox.special .textBox .text span {
		font-size: 3.6rem;
	}
	.about .imgBox.special .textBox .text span span {
		font-size: 2rem;
	}
	.about .imgBox.special .textBox .text {
		margin-top: -5px;
		font-size: 1.3rem;
	}
	.about .photoList {
		margin-bottom: 61px;
		display: block;
	}
	.about .photoList .photo01 {
		width: calc(100% - 110px);
	}
	.about .photoList .photo02 {
		margin: 40px 20px 0 auto;
		width: calc(100% - 110px);
	}
	.about .imgBox.special02 .photoBox {
		margin-top: 0;
		max-width: inherit;
	}
	.about .imgBox.special02 {
		padding: 40px 0 0;
	}
	.about .imgBox.special02 .headLine01 {
		margin: 42px 0 25px;
		font-size: 2.2rem;
		line-height: 1.5;
	}
	.about .imgBox.special02 .headLine01 span {
		font-size: 1.2rem;
		letter-spacing: 0.1em;
	}
	.about .imgBox.special02 .headLine01::after {
		left: 114px;
		top: 8px;
	}
	.about .imgBox.special02 .textBox .text02 {
		margin-bottom: 34px;
		font-size: 1.6rem;
		letter-spacing: 0.14em;
	}
	.about .imgBox.special02 .textBox p {
		letter-spacing: 0.1em;
	}
	.about .imgBox.special02 .textBox .text01 {
		margin: 21px 0 0 0;
		font-size: 1.2rem;
		font-size: 1.2rem;
	}
	.about .imgBox.special02 .textBox .text01 span {
		margin-left: 26px;
		font-size: 2rem;
		vertical-align: 0;
	}
	.company {
		padding: 30px 0 100px;
	}
	.company .photoListBox {
		margin: 0 -20px;
	}
	.company .flexBox {
		margin-bottom: 43px;
		display: block;
	}
	.company .flexBox .lBox {
		margin-right: 0;
	}
	.company .headLine01 {
		margin-bottom: 89px;
		text-align: center;
	}
	.company .headLine01::after {
		top: 93px;
		left: 50%;
		transform: translateX(-50%);
	}
	.company .flexBox .rBox dt,
	.company .flexBox .rBox dd {
		margin-bottom: 28px;
		font-size: 1.4rem;
	}
	.company .flexBox .rBox dt {
		width: 23.9%;
		padding: 0 8px 22px;
	}
	.company .flexBox .rBox dd {
		padding: 0 7px 21px;
		width: calc(100% - 23.9%);
	}
	.company .flexBox .rBox .text span {
		margin-bottom: 9px;
	}
	.company .flexBox .rBox .text {
		padding-bottom: 3px;
	}
	.company .flexBox .rBox .text.special {
		padding-bottom: 16px;
	}
	.company .photoList {
		display: block;
	}
	.company .photoList li {
		width: auto;
	}
	.company .photoList li {
		opacity: 1 !important;
		transform: translateY(0) !important;
	}
	.contact {
		padding: 46px 20px 62px;
	}
	.contact .flexBox {
		display: block;
		width: auto;
	}
	.contact .contactBox .headLine01 {
		margin-bottom: 15px;
		font-size: 2.2rem;
	}
	.contact .contactBox .headLine01 span {
		margin-bottom: 8px;
	}
	.contact .contactBox {
		padding: 0 3px 32px;
		border: 0;
		border-bottom: 1px solid #BFBFBF;
	}
	.contact .contactBox .subContactBox {
		width: 340px;
		margin: 0 auto;
	}
	.contact .contactBox p {
		font-size: 1.3rem;
	}
	.contact .telBox {
		padding: 31px 10px 32px;
		border: 0;
		border-bottom: 1px solid #BFBFBF;
	}
	.contact .telBox a {
		padding-left: 32px;
		font-size: 3.3rem;
		display: inline-block;
		background: url("../image/icon02.png") no-repeat left top 11px 	/ 29px auto;
	}
	.contact .telBox span {
		margin-top: -11px;
		font-size: 1.2rem;
	}
	.contact .btn {
		padding: 31px 0 0;
	}
	.contact .btn a {
		margin: 0 auto;
		font-size: 1.5rem;
	}
}
@media all and (max-width: 374px) {
	.company .flexBox .rBox dt {
		padding: 0 2px 22px;
	}
	.about .imgBox.special .textBox {
		margin: 0 10px;
	}
}