@charset "utf-8";
/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
}
html {
	font-size: 62.5%;
}
body, table, input, textarea, select, option {
	font-family: 'Noto Sans JP', sans-serif;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
:focus {
	outline: 0;
}
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
img {
	vertical-align: top;
	max-width: 100%;
    height: auto;
}
a,
a:link {
	color: #3c3c3c;
	text-decoration: none;
	transition: .3s;
}
a:visited {
	color: #3c3c3c;
}
a:hover {
	color: #3c3c3c;
}
a:active {
	color: #3c3c3c;
}
/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
body {
	min-width: 800px;
	color: #3c3c3c;
	font-size: 1.3rem;
	line-height: 1.5;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
	background-color: #FFF;
}
body.fixed {
	position: fixed;
	width: 100%;
	height: 100%;
}
#container {
	text-align: left;
}
a[href^="tel:"] {
	cursor: default;
	pointer-events: none;
}
@media all and (min-width: 897px) {
	.sp {
		display: none !important;
	}
}
@media all and (max-width: 896px) {
	body {
		min-width: inherit;
		font-size: 1.2rem;
	}
	.pc {
		display: none !important;
	}
	a[href^="tel:"] {
		cursor: pointer;
		pointer-events: auto;
	}
}
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* clearfix */	
.clearfix:after {content: "";display: block;clear: both;}
/* flex */	
.flex,.flexA,.flexB,.flexC {display: flex;flex-wrap: wrap;}
.flexA {justify-content: space-around;}
.flexB {justify-content: space-between;}
.flexC {justify-content: center;}
/*------------------------------------------------------------
	path
------------------------------------------------------------*/
#path {
	position: fixed;
	top: 31px;
	right: 44px;
	border: 1px solid #BEBEBE;
	z-index: 990;
	font-size: 0;
}
#path .arrow {
	position: absolute;
	bottom: 100%;
	left: 0;
	padding-bottom: 3px;
	transform: translateX(-50%);
	width: 8px;
}
#path .line {
	position: relative;
	display: inline-block;
	border-right: 1px solid #BEBEBE;
}
#path .line:last-child {
	border-right: none;
}
#path .line > span {
	width: 66px;
	height: 4px;
	display: inline-block;
	border-right: 1px solid #BEBEBE;
	box-sizing: border-box;
}
#path .line > span:last-child {
	border-right: none;
}
#path .line .txt {
	padding: 7px 0 0 3px;
	position: absolute;
	left: -1px;
	top: 100%;
	border-left: 1px solid #BEBEBE;
}
#path .line .txt img {
	width: auto;
	height: 10px;
}
#path .style {
	background-color: #E6FFE6;
}
#path .vision {
	background-color: #FFF0FF;
}
#path .mission {
	background-color: #D2FFFF;
}
#path .top {
	background-color: #fff;
}
@media all and (min-width: 897px) {
	#path .line a:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 896px) {
	body.fixed #path {
		display: none;
	}
	#path {
		top: 11px;
		right: 4vw;
		display: flex;
	}
	#path .arrow {
		padding-bottom: 3px;
		width: 4px;
	}
	#path .line {
		flex-shrink: 0;
	}
	#path .line > span {
		width: 10.1vw;
		height: 3px;
		flex-shrink: 0;
	}
	#path .line .txt {
		padding: 3px 0 0 1px;
	}
	#path .line .txt img {
		height: 5px;
	}
}
#btmBtn {
	position: fixed;
	bottom: 24px;
	right: 45px;
	z-index: 995;
	display: none;
}
#btmBtn img {
	width: 130px;
	transition: .3s;
	opacity: 0;
}
#btmBtn a {
	display: block;
	position: relative;
}
#btmBtn .white {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	opacity: 1;
}
#btmBtn.black img {
	opacity: 1;
}
#btmBtn.black .white {
	opacity: 0;
}
@media all and (min-width: 897px) {
	#btmBtn a:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 896px) {
	body.fixed #btmBtn {
		display: none;
	}
	#btmBtn {
		bottom: 15px;
		right: 15px;
	}
}
#menu {
	position: fixed;
	z-index: 999;
	right: 17px;
	top: 25px;
	width: 25px;
	height: 25px;
	display: none;
}
#menu span {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 20px;
	height: 3px;
	background-color: #3c3c3c;
	margin: -2px 0 0 -10px;
	transform: skewY(-20deg) translate(0);
	transition: .6s;
}
#menu span:first-child {
	transform: skewY(-20deg) translateY(-7px);
}
#menu span:last-child {
	transform: skewY(-20deg) translateY(7px);
}
#menu.on span {
	transform: skewY(40deg) translate(0) scaleY(1.2);
}
#menu.on span:first-child {
	transform: skewY(40deg) translate(0) scaleY(1.2);
}
#menu.on span:last-child {
	transform: skewY(-40deg) translate(0) scaleY(1.2);
}
#menuBox {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 998;
	background-color: #fff;
	box-sizing: border-box;
	overflow: auto;
	padding: 90px 0;
	display: none;
}
#menuBox .btn {
	max-width: 325px;
	width: 90%;
	margin: 0 auto 33px;
}
#menuBox .btn a {
	display: flex;
	justify-content: center;
	height: 41px;
	text-align: center;
	align-items: center;
	border: 1px solid #3c3c3c;
	font-size: 2.6rem;
	background: url(../img/icon01.png) no-repeat right 17px center / 10px auto;
}
#menuBox .menuList {
	margin: 0 auto;
	width: 90%;
	max-width: 325px;
}
#menuBox .menuList > li:not(:last-child) {
	margin-bottom: 23px;
}
#menuBox .menuList p {
	padding-bottom: 3px;
	font-size: 2.3rem;
	border-bottom: 1px solid #3c3c3c;
	line-height: 1;
	cursor: pointer;
}
#menuBox .menuList .slide {
	padding-top: 20px;
}
#menuBox .menuList .slide li:not(:last-child) {
	margin-bottom: 7px;
}
#menuBox .menuList .slide a {
	font-size: 1.5rem;
	line-height: 1.6;
	padding-left: 20px;
	display: block;
	background: url(../img/icon03.png) no-repeat left center / 10px auto;
}
@media all and (min-width: 897px) {
	#menu {
		right: 44px;
		top: 55px;
		width: 24px;
		height: 30px;
	}
	#menu span {
		width: 22px;
		height: 4px;
		margin: -2px 0 0 -11px;
	}
	#menu span:first-child {
		transform: skewY(-20deg) translateY(-8px);
	}
	#menu span:last-child {
		transform: skewY(-20deg) translateY(8px);
	}
	#menu.on span {
		transform: skewY(40deg) translate(0) scaleY(1.2);
	}
	#menu.on span:first-child {
		transform: skewY(40deg) translate(0) scaleY(1.2);
	}
	#menu.on span:last-child {
		transform: skewY(-40deg) translate(0) scaleY(1.2);
	}
	#menuBox {
		padding: 130px 0 100px;
	}
	#menuBox .menuInner {
		display: flex;
		justify-content: center;
	}
	#menuBox .btn {
		width: 300px;
		margin: 0 90px 0 0;
	}
	#menuBox .btn a {
		height: 60px;
		font-size: 4rem;
		background: url(../img/icon01.png) no-repeat right 17px center / 12px auto;
	}
	#menuBox .menuList {
		margin: 6px 0 0;
		width: 630px;
		max-width: inherit;
	}
	#menuBox .menuList > li:not(:last-child) {
		margin-bottom: 38px;
	}
	#menuBox .menuList p {
		font-size: 3.2rem;
	}
	#menuBox .menuList .slide {
		padding-top: 24px;
	}
	#menuBox .menuList .slide li:not(:last-child) {
		margin-bottom: 13px;
	}
	#menuBox .menuList .slide a {
		font-size: 2rem;
		background: url(../img/icon03.png) no-repeat left center / 15px auto;
	}
}
.mCSB_horizontal.mCSB_inside > .mCSB_container {
	margin-bottom: 0;
}
.mCSB_scrollTools .mCSB_draggerContainer { 
	display: none;
}
.comTtl {
	background-color: #fff;
	height: 100%;
	min-width: 1280px;
	flex-shrink: 0;
	box-sizing: border-box;
	position: relative;
	z-index: 10;
}
.whiteBox {
	background-color: #fff;
	height: 100%;
	min-width: 1280px;
	flex-shrink: 0;
	box-sizing: border-box;
	position: relative;
	z-index: 10;
}
.comTtl .enTtl {
	position: absolute;
	left: 111px;
	top: 120px;
}
.comTtl .enTtl img {
	width: auto;
	height: 92px;
	max-width: inherit;
}
.comTtl .num {
	position: absolute;
	left: 115px;
	bottom: 78px;
}
.comTtl .num img {
	width: auto;
	height: 275px;
	max-width: inherit;
}
.comTtl:after {
	position: absolute;
	left: 100%;
	top: 0;
	height: 100%;
	width: 400px;
	background : -moz-linear-gradient(0% 50% 0deg,rgba(255, 255, 255, 1) 0%,rgba(253, 254, 254, 0) 100%);
	background : -webkit-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : -webkit-gradient(linear,0% 50% ,100% 50% ,color-stop(0,rgba(255, 255, 255, 1) ),color-stop(1,rgba(253, 254, 254, 0) ));
	background : -o-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : -ms-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	content: " ";
}
@media all and (max-width: 896px) {
	.whiteBox {
		min-width: 375px;
	}
	.comTtl {
		min-width: 375px;
	}
	.comTtl .enTtl {
		left: 0;
		top: 70px;
	}
	.comTtl .enTtl img {
		height: 60px;
	}
	.comTtl .num {
		left: 35px;
		bottom: 43px;
	}
	.comTtl .num img {
		height: 137px;
	}
	.comTtl:after {
		width: 200px;
	}
}
.innerBox {
	display: flex;
	height: 100%;
	min-width: 1280px;
	flex-shrink: 0;
	box-sizing: border-box;
	position: relative;
}
@media all and (max-width: 896px) {
	.innerBox {
		height: 100%;
		min-width: 375px;
	}
}
.headLine01 {
	margin-bottom: 27px;
	font-size: 2.3rem;
	letter-spacing: 1px;
	font-weight: normal;
	padding-left: 128px;
	position: relative;
}
.headLine01::before {
	margin-top: 3px;
	position: absolute;
	left: 0;
	top: 50%;
	width: 100px;
	border-top: 1px solid #3c3c3c;
	content: "";
}
@media all and (max-width: 896px) {
	.headLine01 {
		margin-bottom: 20px;
		font-size: 1.7rem;
		letter-spacing: 0;
		padding-left: 64px;
	}
	.headLine01::before {
		margin-top: 3px;
		width: 50px;
	}
}
.lastInner {
	position: relative;
}
.lastInner:after {
	position: absolute;
	right: 0;
	top: 0;
	width: 400px;
	height: 100%;
	background : -moz-linear-gradient(605.34% 94.94% 0deg,rgba(255, 255, 255, 1) 0%,rgba(253, 254, 254, 0) 100%);
	background : -webkit-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : -webkit-gradient(linear,605.34% 94.94% ,705.34% 94.94% ,color-stop(0,rgba(255, 255, 255, 1) ),color-stop(1,rgba(253, 254, 254, 0) ));
	background : -o-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : -ms-linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	background : linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(253, 254, 254, 0) 100%);
	content: "";
	z-index: 100;
	transform: rotate(180deg);
}
@media all and (max-width: 896px) {
	.lastInner:after {
		width: 200px;
	}
}
.fadeIn {
	opacity: 0;
	transition: 1s;
}
.fadeIn.show {
	opacity: 1;
}
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main {
	display: flex;
}
#main section {
	height: 100vh;
	overflow-y: hidden;
	flex-shrink: 0;
	position: relative;
	z-index: 100;
}
#main .sec01 {
	position: relative;
}
#main .sec01.blur {
	overflow: hidden;
}
#main .sec01 .inner {
	transition: filter .3s;
	position: relative;
	width: 100vw;
	height: 100vh;
	background: url(../img/sec01-bg.jpg) no-repeat center / cover;
}
#main .sec01 .bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: url(../img/sec01-bg-blur.jpg) no-repeat center / cover;
}
#main .sec01 .popTxt {
	position: absolute;
	padding: 60px;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-45%);
	z-index: 3;
	font-size: 2.6rem;
	line-height: 2.23;
	letter-spacing: 2.05px;
	font-weight: 500;
	width: 1100px;
	background-color: rgba(255,255,255,0.8);
	box-sizing: border-box;
}
#main .sec01 .link {
	position: absolute;
}
#main .sec01 .link a {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: url(../img/shadow01.png) no-repeat center / 100% 100%;
	opacity: 0;
	transition: .3s;
	font-size: 1.2rem;
	line-height: 1.83;
	color: #fff;
	box-sizing: border-box;
	padding-bottom: 30px;
}
#main .sec01.height .link {
	left: calc(50% - 40.4vh);
	top: calc(50% - 13vh);
	width: 25.23vh;
	height: 41.9vh;
}
#main .sec01.long .link {
	left: calc(50% - 26.6vw);
	top: calc(50% - 8.7vw);
	width: 16.56vw;
	height: 27.5vw;
}
#main .sec01.height .link02 {
	left: calc(50% - 5.6vh);
	top: calc(50% - 12.5vh);
	width: 23.23vh;
	height: 38.1vh;
}
#main .sec01.long .link02 {
	left: calc(50% - 3.6vw);
	top: calc(50% - 8.1vw);
	width: 15.26vw;
	height: 24.9vw;
}
#main .sec01 .link02 a {
	background-image: url(../img/shadow02.png);
}
#main .sec01.height .link03 {
	left: calc(50% + 25.7vh);
	top: calc(50% - 13vh);
	width: 21.53vh;
	height: 35.4vh;
}
#main .sec01.long .link03 {
	left: calc(50% + 17vw);
	top: calc(50% - 8.1vw);
	width: 14.06vw;
	height: 22.9vw;
}
#main .sec01.long .link li {
	margin-bottom: 5px;
	padding-left: 1em;
	text-indent: -1em;
}
#main .sec01.long .link li:last-child {
	margin-bottom: 0;
}
#main .sec01 .link03 a {
	padding-bottom: 20px;
	padding-right: 20px;
	background-image: url(../img/shadow02.png);
	font-size: 1rem;
	line-height: 1.4rem;
}
#main .sec01.long .link04 {
	left: calc(50% - 37.9vw);
	top: calc(50% - 0.7vw);
	width: 7.81vw;
	height: 4.84vw;
}
#main .sec01.height .link04 {
	left: calc(50% - 57.8vh);
	top: calc(50% - 1vh);
	width: 11.9vh;
	height: 7.38vh;
}
#main .sec01.long .link04 a {
	padding: 0;
	background-image: url(../img/shadow04.png);
}
#main .sec01 .popTxt .btn {
	margin: 37px auto 0;
	width: 60px;
	border-radius: 50%;
	overflow: hidden;
	cursor: pointer;
}
@media all and (min-width: 897px) {
	#main .sec01 .link a:hover {
		opacity: 1;
	}
}
@media all and (max-width: 896px) {
	#main .sec01 {
		z-index: 101;
	}
	#main .sec01 .inner {
		width: 142vh;
		background-image: url(../img/sp_sec01-bg.jpg);
	}
	#main .sec01.blur .inner {
		filter: blur(5px);
	}
	#main .sec01 .bg {
		display: none;
	}
	#main .sec01 .popTxt {
		padding: 6vh 30px;
		left: 0;
		top: 0;
		transform: none;
		font-size: 1.5rem;
		line-height: 2.08;
		letter-spacing: 0;
		width: 100vw;
		height: 100%;
		overflow: auto;
		text-align: center;
	}
	#main .sec01 .popTxt p {
		margin: 0 auto;
		max-width: 315px;
	}
	#main .sec01 .popTxt .btn {
		margin: 23px auto 0;
		width: 41px;
		border-radius: 50%;
		overflow: hidden;
		cursor: pointer;
	}
	#main .sec01 .link {
		position: absolute;
		overflow: hidden;
	}
	#main .sec01 .link a {
		opacity: 0 !important;
	}
	#main .sec01 .link {
		left: calc(50% - 40.8vh);
		top: calc(50% - 13vh);
		width: 25.23vh;
		height: 41.9vh;
	}
	#main .sec01 .link02 {
		left: calc(50% - 6.6vh);
		top: calc(50% - 12.5vh);
		width: 23.23vh;
		height: 38.1vh;
	}
	#main .sec01 .link03 {
		left: calc(50% + 25vh);
		top: calc(50% - 13vh);
		width: 21.53vh;
		height: 35.4vh;
	}
	#main .sec01 .link04 {
		left: calc(50% - 58.3vh);
		top: calc(50% - 3vh);
		width: 11.9vh;
		height: 11.28vh;
	}
}
#mission {
	display: flex;
	overflow: hidden;
	background: url(../img/mission_bg.jpg) repeat-x left top / auto 100%;
}
#mission .mission01 {
	justify-content: center;
	align-items: center;
	padding: 0 0 120px 80px;
}
#mission .h3Ttl {
	font-size: 10rem;
	line-height: 1.8;
	font-weight: 500;
	letter-spacing: 20px;
	font-family: 'Noto Serif JP', serif;
}
#mission .mission02 {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 14vh;
	padding-left: 80px;
}
#mission .mission02 p {
	margin-bottom: 2.2em;
	font-size: 2.6rem;
	line-height: 2.23;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	letter-spacing: 3px;
}
#mission .mission02 p:last-child {
	margin-bottom: 0;
}
#mission .mission03 {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 13.8vh;
	padding-left: 140px;
}
#mission .mission03 .txtBox {
	max-width: 625px;
}
#mission .mission03 p {
	font-size: 1.6rem;
	letter-spacing: 1.8px;
	line-height: 2.4375;
}
#mission .mission01 .bg01 {
	position: absolute;
	bottom: 16vh;
	right: -334px;
	width: 836px;
}
#mission .mission01 .bg02 {
	position: absolute;
	bottom: 13.2vh;
	left: 55.5%;
	width: 85px;
}
#mission .mission01 .bg03 {
	position: absolute;
	bottom: 7vh;
	left: 0;
	width: 240px;
}
#mission .mission01 .bg04 {
	position: absolute;
	bottom: 5.5vh;
	left: 24.8%;
	width: 221px;
}
#mission .mission01 .bg05 {
	position: absolute;
	top: 18.3vh;
	right: 8.1%;
	width: 154px;
}
#mission .mission02 .bg01 {
	position: absolute;
	bottom: 12.5vh;
	left: 36.5%;
	width: 172px;
}
#mission .mission02 .bg02 {
	position: absolute;
	bottom: 9.3vh;
	left: 5%;
	width: 611px;
}
#mission .mission02 .bg03 {
	position: absolute;
	bottom: 7.6vh;
	right: 7.1%;
	width: 323px;
}
#mission .mission02 .bg04 {
	position: absolute;
	bottom: -66px;
	right: -31.2%;
	width: 431px;
}
#mission .mission03 .bg01 {
	position: absolute;
	top: 10.8vh;
	left: 9.9%;
	width: 86px;
}
#mission .mission03 .bg02 {
	position: absolute;
	bottom: 10.9vh;
	left: 17.3%;
	width: 1456px;
}
#mission .mission03 .bg03 {
	position: absolute;
	bottom: 2.5vh;
	right: -14.1%;
	width: 580px;
}
#mission .mission04 .bg01 {
	position: absolute;
	bottom: 9.3vh;
	right: 8.5%;
	width: 116px;
}
#mission .mission04 .bg02 {
	position: absolute;
	bottom: 5.7vh;
	left: 35%;
	width: 145px;
}
#mission .mission04 .bg03 {
	position: absolute;
	bottom: -84px;
	right: 4.3%;
	width: 669px;
}
@media all and (max-width: 896px) {
	#mission {
		background-image: url(../img/sp_mission_bg.jpg);
		overflow: hidden;
	}
	#mission .mission01 {
		padding: 0;
		min-width: 750px;
	}
	#mission .h3Ttl {
		margin: 0 0 110px 0;
		font-size: 5rem;
		letter-spacing: 10px;
	}
	#mission .mission02 {
		padding-top: 10vh;
		padding-left: 25px;
		width: 375px;
	}
	#mission .mission02 .txtBox {
		width: 375px;
	}
	#mission .mission02 p {
		margin-bottom: 2.2em;
		font-size: 1.7rem;
		line-height: 2.05;
		letter-spacing: 2px;
	}
	#mission .mission02 p:last-child {
		margin-bottom: 0;
	}
	#mission .mission03 {
		padding-top: 0;
		padding-left: 0;
		min-width: 750px;
	}
	#mission .mission03 .txtBox {
		width: 375px;
		padding: 11vh 25px 0;
		box-sizing: border-box;
	}
	#mission .mission03 .txtBox .headLine01 {
		margin-left: -25px;
	}
	#mission .mission03 p {
		font-size: 1.4rem;
		letter-spacing: 0;
		line-height: 2.07;
	}
	#mission .mission01 .bg01 {
		bottom: 21.5%;
		right: -300px;
		width: 641px;
	}
	#mission .mission01 .bg02 {
		bottom: 17.6%;
		left: 56.7%;
		width: 87px;
	}
	#mission .mission01 .bg03 {
		position: absolute;
		bottom: 0.6%;
		left: -9px;
		width: 219px;
	}
	#mission .mission01 .bg04 {
		bottom: 7.4%;
		left: 22.8%;
		width: 192px;
	}
	#mission .mission01 .bg05 {
		top: 14%;
		right: 26.4%;
		width: 95px;
	}
	#mission .mission02 .bg01 {
		bottom: 17.5%;
		left: auto;
		right: -36px;
		width: 130px;
	}
	#mission .mission02 .bg02 {
		bottom: 13.2%;
		left: auto;
		right: 8%;
		width: 464px;
	}
	#mission .mission02 .bg04 {
		bottom: -28px;
		right: -67.2%;
		width: 289px;
	}
	#mission .mission03 .bg01 {
		top: 12.7%;
		left: auto;
		right: 14.3%;
		width: 77px;
	}
	#mission .mission03 .bg02 {
		bottom: 20.2%;
		left: 77%;
		width: 854px;
	}
	#mission .mission03 .bg03 {
		bottom: 2.45%;
		right: -14.1%;
		width: 412px;
	}
	#mission .mission04 .bg01 {
		bottom: 9.3%;
		right: 8.5%;
		width: 116px;
	}
	#mission .mission04 .bg02 {
		position: absolute;
		bottom: 13.5%;
		left: 39%;
		width: 75px;
	}
	#mission .mission04 .bg03 {
		bottom: -22px;
		right: -262px;
		width: 467px;
	}
}
#vision {
	display: flex;
	overflow: hidden;
	background: url(../img/vision_bg.png) repeat-x left top / auto 100%;
}
#vision02,
#vision01 {
	display: flex;
}
#vision .vision01-01 {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
#vision .vision01-01 .h3Ttl {
	margin-right: 30px;
	font-size: 7.5rem;
	line-height: 1.8;
	font-weight: 500;
	font-family: 'Noto Serif JP', serif;
	letter-spacing: 17px;
}
#vision .vision01-02 {
	display: flex;
	justify-content: center;
	position: relative;
}
#vision .vision01-02 .txtBox {
	padding-top: 22.5vh;
	width: 840px;
}
#vision .vision01-02 p {
	font-size: 2.6rem;
	line-height: 2.23;
	font-weight: 500;
	letter-spacing: 2px;
	font-family: 'Noto Serif JP', serif;
}
#vision .vision02-01 {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
#vision .vision02-01 .h3Ttl {
	padding-bottom: 40vh;
	width: 940px;
	font-size: 7.5rem;
	line-height: 1.8;
	font-weight: 500;
	font-family: 'Noto Serif JP', serif;
	letter-spacing: 17px;
}
#vision .vision02-02 {
	display: flex;
	align-items: center;
	min-width: inherit;
	padding-right: 242px;
}
#vision .vision02-02 .txtBox {
	padding: 0 50px 14.6vh;
}
#vision .vision02-02 p {
	font-size: 2.6rem;
	line-height: 2.23;
	font-weight: 500;
	letter-spacing: 3px;
	font-family: 'Noto Serif JP', serif;
}
#vision .vision02-03 {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 13.8vh;
	padding-left: 140px;
}
#vision .vision02-03 .txtBox {
	max-width: 625px;
}
#vision .vision02-03 p {
	font-size: 1.6rem;
	letter-spacing: 1.8px;
	line-height: 2.4375;
}
#vision .vision02-04 {
	min-width: 1150px;
}
#vision .vision01-01 .bg01 {
	position: absolute;
	left: 160px;
	top: 0;
	mix-blend-mode: multiply;
}
#vision .vision01-01 .bg01 img {
	width: auto;
	max-width: inherit;
	height: 83.81vh;
}
#vision .vision02-01 .bg01 {
	position: absolute;
	left: -95px;
	top: 0;
	mix-blend-mode: multiply;
}
#vision .vision02-01 .bg02 {
	position: absolute;
	left: 26.8%;
	bottom: 4.8%;
	width: 219px;
}
#vision .vision02-01 .bg01 img {
	width: auto;
	max-width: inherit;
	height: 83.81vh;
}
#vision .vision02-02 .bg01 {
	position: absolute;
	left: 163px;
	top: 0;
	mix-blend-mode: multiply;
}
#vision .vision02-02 .bg01 img {
	width: auto;
	max-width: inherit;
	height: 83.93vh;
}
#vision .vision02-02 .bg02 {
	position: absolute;
	left: 8%;
	bottom: 167px;
	width: 113px;
}
#vision .vision02-04 .bg01 {
	position: absolute;
	left: 92px;
	bottom: 15.7vh;
	width: 297px;
}
#vision .vision02-04 .bg02 {
	position: absolute;
	left: 590px;
	bottom: 13.5vh;
	width: 324px;
}
#vision .vision01-02 .bg01 {
	position: absolute;
	top: 16%;
	right: 3.2%;
	width: 259px;
}
#vision .vision01-02 .bg02 {
	position: absolute;
	bottom: 10.1%;
	left: 47%;
	width: 462px;
}
#vision .vision02-01 .bg03 {
	position: absolute;
	bottom: 5.6%;
	left: 37.7%;
	width: 131px;
}
#vision .vision02-02 .bg03 {
	position: absolute;
	bottom: 0;
	left: -21%;
	width: 620px;
}
#vision .vision02-02 .bg04 {
	position: absolute;
	top: 10.6%;
	right: -23.5%;
	width: 220px;
}
#vision .vision02-04 .bg03 {
	position: absolute;
	top: 0;
	left: 35.4%;
	width: 128px;
}
#vision .vision02-04 .bg04 {
	position: absolute;
	bottom: 7.1%;
	left: 41.8%;
	width: 120px;
}
#vision .vision01-01 .bg02 {
	position: absolute;
	bottom: -51px;
	left: 43.5%;
	width: 783px;
}
#vision .vision02-01 .bg04 {
	position: absolute;
	bottom: 1%;
	left: 45.4%;
	width: 164px;
}
#vision .vision02-02 .bg05 {
	position: absolute;
	bottom: -18px;
	left: -19.4%;
	width: 155px;
}
#vision .vision02-02 .bg06 {
	position: absolute;
	bottom: -18px;
	left: 39.5%;
	width: 358px;
}
#vision .vision02-04 .bg05 {
	position: absolute;
	bottom: -12px;
	left: -14.5%;
	width: 389px;
}
@media all and (max-width: 896px) {
	#vision {
		background-image: url(../img/sp_vision_bg.jpg);
	}
	#vision .vision01-01 {
		min-width: 750px;
	}
	#vision .vision01-01 .h3Ttl {
		margin-right: 15px;
		margin-bottom: 27vh;
	}
	#vision .vision01-02 .txtBox {
		padding-top: 28.9vh;
		width: auto;
	}
	#vision .vision02-01 .h3Ttl {
		padding-bottom: 24.5vh;
		margin-right: 96px;
		width: auto;
	}
	#vision .vision02-02 {
		padding-right: 0;
		min-width: 375px;
	}
	#vision .vision02-02 .txtBox {
		padding: 0 52px 27.7vh;
	}
	#vision .vision02-03 {
		padding-top: 0;
		min-width: 750px;
		padding-right: 30px;
		padding-left: 0;
		padding-bottom: 13px;
	}
	#vision .vision02-03 .txtBox {
		max-width: inherit;
	}
	#vision .vision02-04 {
		min-width: 375px;
	}
	#vision .vision01-01 .bg01 {
		left: -347px;
		height: 75.3%;
	}
	#vision .vision01-01 .bg01 img {
		height: 100%;
	}
	#vision .vision02-01 .bg01 {
		left: -330px;
		top: 0;
		height: 75.3%;
	}
	#vision .vision02-01 .bg02 {
		left: 42.1%;
		bottom: 8%;
		width: 147px;
	}
	#vision .vision02-01 .bg01 img {
		height: 100%;
	}
	#vision .vision02-01 {
		min-width: 750px;
	}
	#vision .vision02-01 .bg03 {
		bottom: 9.2%;
		left: 54.8%;
		width: 87px;
	}
	#vision .vision01-02 .bg01 {
		top: 26%;
		right: -34.5%;
		width: 157px;
	}
	#vision .vision01-02 .bg02 {
		bottom: 18.5%;
		left: 3%;
		width: 327px;
	}
	#vision .vision02-02 .bg01 {
		left: 36px;
		height: 75.3%;
	}
	#vision .vision02-02 .bg01 img {
		height: 100%;
	}
	#vision .vision02-02 .bg02 {
		left: 24.2%;
		bottom: 202px;
		width: 63px;
	}
	#vision .vision02-02 .bg03 {
		bottom: 107px;
		left: -9.5%;
		width: 349px;
	}
	#vision .vision02-02 .bg04 {
		top: 20.6%;
		right: -35.5%;
		width: 97px;
	}
	#vision .vision02-02 .bg05 {
		bottom: 98px;
		left: -7.4%;
		width: 87px;
	}
	#vision .vision02-02 .bg06 {
		bottom: 98px;
		left: 61%;
		width: 200px;
	}
	#vision .vision02-04 .bg01 {
		left: -28px;
		bottom: 24.6%;
		width: 188px;
	}
	#vision .vision02-04 .bg02 {
		left: 273px;
		bottom: 21.9%;
		width: 205px;
	}
	#vision .vision02-04 .bg03 {
		top: 0;
		left: 42%;
		width: 70px;
	}
	#vision .vision02-04 .bg04 {
		bottom: 17.1%;
		left: 55%;
		width: 76px;
	}
	#vision .vision01-01 .bg02 {
		bottom: 0;
		left: 23.5%;
		width: 489px;
	}
	#vision .vision02-01 .bg04 {
		bottom: 5%;
		left: 63.4%;
		width: 110px;
	}
	#vision .vision02-04 .bg05 {
		bottom: 42px;
		left: -46%;
		width: 247px;
	}
	#vision .vision02-04 .bg06 {
		position: absolute;
		left: -106px;
		top: 0;
		mix-blend-mode: multiply;
		height: 75.3%;
	}
	#vision .vision02-04 .bg06 img {
		width: auto;
		max-width: inherit;
		height: 100%;
	}
}
#style {
	display: flex;
	overflow: hidden;
	background: url(../img/style_bg02.jpg) no-repeat right top,url(../img/style_bg01.jpg) repeat-x left top;
	background-size: auto 100%;
}
#style01 {
	display: flex;
}
#style .style_sec1 {
	padding: 0 448px 55px 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 1940px;
}
#style .style_sec2 {
	display: flex;
	align-items: center;
	padding-bottom: 280px;
	min-width: 1430px;
}
#style .style_sec3 {
	display: flex;
	align-items: center;
	padding-bottom: 52px;
	min-width: 1500px;
}
#style .style_sec4 {
	display: flex;
	align-items: center;
	padding-bottom: 210px;
	min-width: 1370px;
}
#style05 {
	display: flex;
}
#style .style_sec5 {
	display: flex;
	align-items: center;
	min-width: 1436px;
}
#style .style_sec6 {
	padding-bottom: 130px;
	display: flex;
	align-items: center;
	min-width: 1530px;
}
#style .style_sec7 {
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 86px;
}
#style .style_sec7 a:hover {
	opacity: 0.7;
}
#style .style_sec1 .bg01 {
	position: absolute;
	right: 12.4%;
	bottom: 30.2%;
}
#style .style_sec1 .bg02 {
	position: absolute;
	right: 28.7%;
	top: 24.5%;
}
#style .style_sec1 .bg03 {
	position: absolute;
	right: 33.6%;
	bottom: 23.7%;
}
#style .style_sec1 .bg04 {
	position: absolute;
	right: 14.4%;
	bottom: 46%;
}
#style .style_sec1 .bg05 {
	position: absolute;
	right: 14.7%;
	bottom: 0;
}
#style .style_sec2 .bg01 {
	position: absolute;
	right: 7.4%;
	bottom: 14%;
}
#style .style_sec2 .bg02 {
	position: absolute;
	right: 58%;
	bottom: 9.3%;
}
#style .style_sec2 .bg03 {
	position: absolute;
	right: 23.7%;
	bottom: 10.8%;
}
#style .style_sec2 .bg04 {
	position: absolute;
	right: 44%;
	top: 2.4%;
}
#style .style_sec2 .bg05 {
	position: absolute;
	right: 17.6%;
	bottom: 5.1%;
}
#style .style_sec3 .bg01 {
	position: absolute;
	left: -17.35%;
	bottom: 16.1%;
}
#style .style_sec3 .bg02 {
	position: absolute;
	right: 22.7%;
	bottom: 10.35%;
}
#style .style_sec4 .bg01 {
	position: absolute;
	right: 35.35%;
	top: -187px;
}
#style .style_sec4 .bg02 {
	position: absolute;
	right: 30.95%;
	bottom: -350px;
}
#style .style_sec4 .bg03 {
	position: absolute;
	right: 14.55%;
	top: -20px;
}
#style .style_sec4 .bg04 {
	position: absolute;
	right: 42.05%;
	bottom: -90px;
}
#style .style_sec5 .bg01 {
	position: absolute;
	left: -20%;
	bottom: 16%;
}
#style .style_sec5 .bg02 {
	position: absolute;
	right: 31.15%;
	bottom: 14.2%;
}
#style .style_sec5 .bg03 {
	position: absolute;
	right: 19.15%;
	top: 28.3%;
}
#style .style_sec5 .bg04 {
	position: absolute;
	right: 52.95%;
	top: 13.8%;
}
#style .style_sec5 .bg05 {
	position: absolute;
	right: -7.95%;
	bottom: 9.7%;
}
#style .style_sec6 .bg01 {
	position: absolute;
	right: 44.2%;
	top: 31.2%;
}
#style .style_sec6 .bg02 {
	position: absolute;
	right: 51.9%;
	top: 17.6%;
}
#style .style_sec6 .bg03 {
	position: absolute;
	right: 39.6%;
	top: 52.2%;
}
#style .style_sec6 .bg04 {
	position: absolute;
	right: 5.5%;
	bottom: 13%;
}
#style .style_sec6 .bg05 {
	position: absolute;
	right: 4.5%;
	top: 18.3%;
}
#style .style_sec6 .bg06 {
	position: absolute;
	right: 22.8%;
	bottom: 0;
}
@media all and (max-width: 896px) {
	#style {
		display: flex;
		overflow: hidden;
		background: url(../img/sp_style_bg02.jpg) no-repeat left 3120px top,url(../img/sp_style_bg01.jpg) repeat-x left top;
		background-size: auto 100%;
	}
	#style .style_sec1 {
		padding: 80px 10px 0 0;
		min-width: 750px;
		align-items: flex-start;
	}
	#style .style_sec1 .bg01 {
		right: 16.4%;
		bottom: 22.6%;
		width: 35px;
	}
	#style .style_sec1 .bg02 {
		right: 36.8%;
		top: 43.5%;
		width: 63px;
	}
	#style .style_sec1 .bg03 {
		right: 43.1%;
		bottom: 17.8%;
		width: 112px;
	}
	#style .style_sec1 .bg04 {
		right: 18.8%;
		bottom: 34.3%;
		width: 83px;
	}
	#style .style_sec1 .bg05 {
		right: 19%;
		bottom: 0;
		width: 195px;
	}
	#style .style_sec2 {
		align-items: flex-start;
		padding: 17.72vh 10px 0 0;
		min-width: 375px;
		justify-content: center;
	}
	#style .style_sec2 .bg01 {
		position: absolute;
		right: -41.3%;
		bottom: 15.8%;
		width: 163px;
	}
	#style .style_sec2 .bg02 {
		position: absolute;
		right: auto;
		left: -4%;
		bottom: 11.5%;
		width: 118px;
	}
	#style .style_sec2 .bg03 {
		position: absolute;
		right: -4.6%;
		bottom: 13%;
		width: 170px;
	}
	#style .style_sec2 .bg04 {
		position: absolute;
		right: -13.2%;
		top: 0;
		width: 65px;
	}
	#style .style_sec2 .bg05 {
		position: absolute;
		right: -18.2%;
		bottom: 7.8%;
		width: 405px;
	}
	#style .style_sec3 {
		justify-content: center;
		padding-bottom: 70px;
		padding-right: 10px;
		min-width: 750px;
	}
	#style .style_sec3 .bg01 {
		position: absolute;
		left: 6.7%;
		bottom: 21.7%;
		width: 279px;
	}
	#style .style_sec3 .bg02 {
		position: absolute;
		right: 2%;
		bottom: calc(50% - 193px);
		width: 427px;
	}
	#style .style_sec4 {
		display: flex;
		align-items: flex-start;
		padding: 20vh 30px 0;
		min-width: 375px;
	}
	#style .style_sec4 .bg01 {
		position: absolute;
		right: -22.1%;
		top: -102px;
		width: 192px;
	}
	#style .style_sec4 .bg02 {
		position: absolute;
		right: -31.75%;
		bottom: -177px;
		width: 174px;
	}
	#style .style_sec4 .bg03 {
		position: absolute;
		right: -67.55%;
		top: 0;
		width: 274px;
	}
	#style .style_sec4 .bg04 {
		position: absolute;
		right: -30%;
		bottom: -40px;
		width: 347px;
	}
	#style .style_sec5 {
		min-width: 750px;
		justify-content: center;
		padding-right: 40px;
		padding-bottom: 96px;
	}
	#style .style_sec5 .bg01 {
		position: absolute;
		left: 13.2%;
		bottom: 21.6%;
		width: 279px;
	}
	#style .style_sec5 .bg02 {
		position: absolute;
		right: 31.15%;
		bottom: 14.2%;
		width: 148px;
	}
	#style .style_sec5 .bg03 {
		position: absolute;
		right: 7.65%;
		top: 25.7%;
		width: 108px;
	}
	#style .style_sec5 .bg04 {
		position: absolute;
		right: 29.35%;
		top: 18%;
		width: 67px;
	}
	#style .style_sec5 .bg05 {
		position: absolute;
		right: -12.95%;
		bottom: 14.9%;
		width: 362px;
	}
	#style .style_sec6 {
		padding: 67px 0 0;
		display: flex;
		align-items: flex-start;
		min-width: 938px;
	}
	#style .style_sec6 .bg01 {
		position: absolute;
		right: 44.7%;
		top: 28.6%;
		width: 29px;
	}
	#style .style_sec6 .bg02 {
		position: absolute;
		right: 52.6%;
		top: 15.5%;
		width: 46px;
	}
	#style .style_sec6 .bg03 {
		position: absolute;
		right: 41.9%;
		top: 49.5%;
		width: 54px;
	}
	#style .style_sec6 .bg04 {
		position: absolute;
		right: 13.4%;
		bottom: 18.2%;
		width: 68px;
	}
	#style .style_sec6 .bg05 {
		position: absolute;
		right: 9.2%;
		top: 15.4%;
		width: 143px;
	}
	#style .style_sec6 .bg06 {
		position: absolute;
		right: 24.7%;
		bottom: 0;
		width: 121px;
	}
	#style .style_sec7 {
		display: flex;
		justify-content: center;
		align-items: center;
		padding-bottom: 46px;
	}
}
@media all and (max-width: 896px) and (max-height: 553px) {
	#vision .vision01-02 .bg02 {
		bottom: 10%;
	}
	#vision .vision01-01 .bg02 {
		width: 369px;
	}
	#mission .mission03 .bg03 {
		width: 342px;
	}
	#vision .vision02-02 .bg05 {
		bottom: 78px;
	}
	#vision .vision02-02 .bg03 {
		bottom: 87px;
	}
	#vision .vision02-02 .bg02 {
		bottom: 182px;
	}
	#vision .vision02-02 .bg06 {
		bottom: 78px;
	}
}
.speed01 {
	z-index: -4;
}
.speed02 {
	z-index: -3;
}
.speed03 {
	z-index: -2;
}
.speed04 {
	z-index: -1;
}

@media all and (min-width: 897px) {
	#b02 {
		display: block;
		padding-left: calc(50vw - 220px);
		margin-left: calc(220px - 50vw);
	}
	#c02 {
		display: block;
		padding-left: calc(50vw - 323px);
		margin-left: calc(323px - 50vw);
	}
	#c03 {
		display: block;
		padding-left: calc(50vw - 303px);
		margin-left: calc(303px - 50vw);
	}
	#c04 {
		display: block;
		padding-left: calc(50vw - 225px);
		margin-left: calc(225px - 50vw);
	}
	#c05 {
		display: block;
		padding-left: calc(50vw - 277px);
		margin-left: calc(277px - 50vw);
	}
}