body, html {
	margin: 0;
	padding: 0;
	height: 100%;
}
.mt0 {
	margin-top: 0px !important;
}
.mb0 {
	margin-bottom: 0px !important;
}
.mb10 {
	margin-bottom: 10px !important;
}
.mb20 {
	margin-bottom: 20px !important;
}
.mb30 {
	margin-bottom: 30px !important;
}
.mb40 {
	margin-bottom: 40px !important;
}
.mb50 {
	margin-bottom: 50px !important;
}
/*------------------------------*/
/* header */
/*------------------------------*/
header {
	height:100px;
}
header h1.header-logo{
	float: left;
	width: 225px;
	height: auto;
	margin-top:33px;
	margin-left: 2%;
}
header h1.header-logo img {
	width: 100%;
	height: auto;
	transition: .3s;
}
header h1.header-logo a:hover img{
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
}
header nav.header_nav {
	float: right;
	width: 820px;
}
header nav.header_nav ul {
	float: left;
	width: 760px;
	margin-top: 37px;
	display: flex;
	gap: 19px;
}
header nav.header_nav ul a {
	font-family: "Noto Sans JP", sans-serif;
	font-style: lighter;
	font-weight: 400;
	font-size: 16px;
}
header nav.header_nav ul li a:link, header nav.header_nav ul li a:visited, header nav.header_nav ul li a:hover, header nav.header_nav ul li a:active, header nav.header_nav ul li a:focus {
	color: black;
	text-decoration: none;
}
header nav.header_nav ul li.line a {
	font-weight: 400;
	font-size: 16px;
	position: relative;
	padding-bottom: 5px;
}
header nav.header_nav ul li.line a::after {
	position: absolute;
	bottom: 0;
	left: 0;
	content: '';
	width: 0;
	height: 2px;
	background-color: #4f8bc2;
	transition:.3s;
}
header nav.header_nav ul li.line a:hover::after {
	width: 100%;
}
header nav.header_nav ul li.menu {
	position: relative;
	height: auto;
 	margin-left: calc(60 / var(--width) * 100vw);
	z-index: 2;
	top: -16px;
	left: 10px;
}
header nav.header_nav ul li.menu a {
	position: relative;
	display: inline-block;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	opacity: 1 !important;
	transition: all 0.3s;
	background-color: #CCC;
	border-radius: 100%;
	transition: color 0.4s;
	overflow: hidden;
}
header nav.header_nav ul li.menu a:before, header nav.header_nav ul li.menu a:after {
	content: "";
	display: block;
	position: absolute;
	width: 50%;
	height: 0;
	background-color: #4f8bc2;
	pointer-events: none;
}
header nav.header_nav ul li.menu a:before {
	bottom: 0;
	left: 0;
}
header nav.header_nav ul li.menu a:after {
	top: 0;
	right: 0;
}
header nav.header_nav ul li.menu a:hover:before, header nav.header_nav ul li.menu a:hover:after {
	height: 100%;
}
header nav.header_nav ul li.menu a:hover:before {
	transition: height 0.2s 0.2s linear;
}
header nav.header_nav ul li.menu a:hover:after {
	transition: height 0.2s linear;
}
header nav.header_nav ul li.menu a span {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	background-color: #FFF;
	border-radius: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99;
	font-size: 10px;
}
header nav.header_nav ul li.menu a:hover span {
	width: calc(100% - 2px);
	height: calc(100% - 2px);
}
.drawer-nav {
	position: fixed;
	z-index: 2;
	top: 0;
	overflow: hidden;
	width:550px;
	height: 100%;
	color: #222;
	background-color:#fff;
	padding:0 30px;
	box-sizing:border-box;
}
.drawer-brand{
	display:block;
	width: 225px;
	height: auto;
	margin:40px auto 40px;
	padding:0 !important;
	border:0 !important;
	background:#FFF!important;
}
.drawer-brand img {
	width: 100%;
	height: auto;
}
.drawer-menu{
	margin: 0;
	padding: 0;
	display:flex;
	flex-wrap:wrap;
	margin-bottom:40px;
	border-top:1px solid #CCC;
	border-bottom:1px solid #CCC;
	padding-top:30px;
	padding-bottom:30px;
}
.drawer-menu > li.left{
	width:180px;
}
.drawer-menu > li.right{
	width:310px;
}
.drawer-menu ul li a{
	font-size:16px;
	color:#000;
	display:block;
	margin-bottom:3px;
	padding:0;
	text-decoration:none;
}
.drawer-menu ul li a:hover{
	text-decoration:underline;
}
.drawer-menu ul{
	margin-bottom:10px;
}
.drawer-menu ul ul li{
	display:block;
	margin-left:15px;
}
.drawer-menu ul ul li a{
	font-size:14px;
}
.drawer-menu ul ul li{
	position: relative;
	display: block;
}
.drawer-menu ul ul li::before,
.drawer-menu ul ul li::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
  	left: -15px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#4f8bc2;
  	transform-origin: calc(100% - 0px) 50%;
}
.drawer-menu ul ul li::before {
  	transform: rotate(45deg);
}
.drawer-menu ul ul li::after {
  	transform: rotate(-45deg);
}
.drawer-overlay {
	position: fixed;
	z-index: 1;
	top: 0;
	left: 0;
	display: none;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.2)
}
.drawer-open .drawer-overlay {
	display: block
}
.drawer--left .drawer-nav {
	left:-550px;
	-webkit-transition: left .6s cubic-bezier(.19, 1, .22, 1);
	transition: left .6s cubic-bezier(.19, 1, .22, 1)
}
.drawer--left .drawer-hamburger, .drawer--left.drawer-open .drawer-nav, .drawer--left.drawer-open .drawer-navbar .drawer-hamburger {
	left: 0
}
.drawer-open .icon{
	text-indent:-9999px;
}
.drawer-open .icon::before,
.drawer-open .icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1px;
	height: 20px;
	background: #333;
} 
.drawer-open .icon::before {
	transform: translate(-50%,-50%) rotate(45deg);
}
.drawer-open .icon::after {
	transform: translate(-50%,-50%) rotate(-45deg);
}
.drawer-open .icon{
  animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.drawer-nav .copyright{
	font-size:12px;
	text-align:center;
	color:#666;
}
/*------------------------------*/
/* topimg */
/*------------------------------*/
#topimg {
	width: 100%;
	height: auto;
	position: relative;
	overflow:hidden;
}
#topimg .sp{
	display:none;
}
.bx-wrapper {
	width:100%;
	position: relative;
}
.bx-wrapper img {
	max-width: 100%;
	display: block;
}
.bxslider {
	margin: 0;
	padding: 0;
}
.bx-viewport {
  -webkit-transform: translatez(0);
}
#topimg-copy {
    position: absolute;
    top: 30%;
    left: 9.7%;
}
#topimg-copy .copy01 {
	width:313px;
	margin-bottom:30px;
}
#topimg-copy .copy01 img{
	width:100%;
	height:auto;
}
#topimg-copy h2 {
    color: #fff;
    font-size: 52px;
    line-height: 1.4em;
	font-family: "Noto Serif", serif;
	font-weight:400;
	letter-spacing:0.1em;
	margin-left:50px;
}
/*------------------------------*/
/* fade */
/*------------------------------*/
.inview.fadedown {
	opacity: 0;
	transition-duration: 1s;
	transform: translateY(-10px);
}
.inview.fadedown.active {
	opacity: 1;
	transform: translateY(0px);
}
.inview.fadeleft {
	opacity: 0;
	transition-duration: 1s;
	transform: translateX(-10px);
}
.inview.fadeleft.active {
	opacity: 1;
	transform: translateX(0px);
}
.inview.faderight {
	opacity: 0;
	transition-duration: .5s;
	transform: translateX(10px);
}
.inview.faderight.active {
	opacity: 1;
	transform: translateX(0px);
}
.delay01 {
	transition-delay: .3s;
}
.delay02 {
	transition-delay: .6s;
}
.delay03 {
	transition-delay: .9s;
}
/*------------------------------*/
/* purpose */
/*------------------------------*/
#purpose{
	padding-top:100px;
	padding-bottom:50px;
}
#purpose > dl{
	display:flex;
}
#purpose > dl > dt,
#purpose > dl > dd{
	width:50%;
}
#purpose > dl > dt h2{
	text-align:center;
	color:#4f8bc2;
	font-size:22px;
	margin-top:50px;
	letter-spacing:0.1em;
}
#purpose > dl > dt h2::after {
	content: "";
	display:block;
	height:2px;
	width:50px;
	background:#4f8bc2;
	margin:30px auto;
}
#purpose > dl > dt dl{
	width:410px;
	margin:0 auto 40px;
	clear:both;
}
#purpose > dl > dt dl dt{
	float:left;
	color:#999;
	margin-right:30px;
	font-weight: bold;
}
#purpose > dl > dt dl dt::after {
	content: "";
	display:block;
	height:1px;
	width:100%;
	background:#999;
}
#purpose > dl > dt .button a{
	width:300px;
	height:60px;
	line-height:60px;
	background:#3c4043;
	color:#FFF;
	text-decoration:none;
	border-radius:60px;
	text-align:center;
	display:block;
	margin:auto;
	position: relative;
	font-size:16px;
	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
	border:2px solid #3c4043;
}
#purpose > dl > dt .button a::before,
#purpose > dl > dt .button a::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
  	right:30px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#FFF;
  	transform-origin: calc(100% - 0px) 50%;
}
#purpose > dl > dt .button a::before {
  	transform: rotate(45deg);
}
#purpose > dl > dt .button a::after {
  	transform: rotate(-45deg);
}
#purpose > dl > dt .button a:hover{
	background:#FFF;
	color:#3c4043;
}
#purpose > dl > dt .button a:hover::before,
#purpose > dl > dt .button a:hover::after{
	background-color:#3c4043;
}
#purpose > dl > dd p{
	text-align:center;
	margin-bottom:30px;
	font-size:16px;
}
#purpose > dl > dd p.purpose_logo{
	margin-bottom:20px;
}
#purpose > dl > dd p.purpose_logo img{
	width:115px;
	height:auto;
}
#purpose > dl > dd .button a{
	width:300px;
	height:60px;
	line-height:60px;
	background:#FFF;
	color:#3c4043;
	text-decoration:none;
	border-radius:60px;
	text-align:center;
	display:block;
	margin:auto;
	position: relative;
	font-size:16px;
	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
	border:2px solid #CCC;
}
#purpose > dl > dd .button a::before,
#purpose > dl > dd .button a::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
  	right:30px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#3c4043;
  	transform-origin: calc(100% - 0px) 50%;
}
#purpose > dl > dd .button a::before {
  	transform: rotate(45deg);
}
#purpose > dl > dd .button a::after {
  	transform: rotate(-45deg);
}
#purpose > dl > dd .button a:hover{
	background:#3c4043;
	color:#FFF;
}
#purpose > dl > dd .button a:hover::before,
#purpose > dl > dd .button a:hover::after{
	background-color:#FFF;
}
#simplyScroll{
	margin-bottom:30px;
}
.simply-scroll-container {
  position: relative;
}
.simply-scroll-clip {
  position: relative;
  overflow: hidden;
}
.simply-scroll-list {
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.simply-scroll-list li {
  list-style:none !important;
  float: left;
  width: 230px;
  height: 230px;
  padding: 0;
  margin-right:20px;
  overflow: hidden;
  display: block;
  border-radius:20px;
}
.simply-scroll-list li img {
  display: block;
  width:100%;
  transition-duration:.5s;
}
.simply-scroll-list li img:hover {
  transform: scale(1.1);
}
/*------------------------------*/
/* news */
/*------------------------------*/
#news{
	background:#eaeeef;
	padding:50px 8%;
}
#news h2{
	text-align:center;
	color:#333;
	font-size:22px;
	margin-top:50px;
	letter-spacing:0.1em;
}
#news h2::after {
	content: "";
	display:block;
	height:2px;
	width:50px;
	background:#4f8bc2;
	margin:20px auto 30px;
}
#news ul {
	display: flex;
	margin:0 auto 30px;
	gap: 30px;
}
#news ul li {
	width: calc(100%/3);
}
#news ul li p.img{
	margin-bottom:10px;
	overflow: hidden;
	display: block;
	border-radius:20px;
}
#news ul li p.img img {
	width: 100%;
	height: auto;
	margin-bottom:0px;
	transition-duration:.5s;
}
#news ul li p.img img:hover {
  transform: scale(1.1);
}
#news ul li p.title {
	clear: both;
	font-size:16px;
	color:#4f8bc2;
	text-decoration:none;
}
#news ul li p.data {
	font-size: 14px;
	margin-bottom:5px;
	color:#4f8bc2;
	text-decoration:none;
}
#news ul li p.data span {
	display:inline-block;
	background-color: #4f8bc2;
	border-radius:5px;
	width:90px;
	height:25px;
	color:#FFF;
	text-align:center;
	line-height:25px;
	margin-left:15px;
}
#news ul li a:link,
#news ul li a:visited,
#news ul li a:active,
#news ul li a:focus{
	text-decoration:none;
	color:#4f8bc2;
}
#news ul li a:hover p.title {
	text-decoration:underline;
}
#news .button a{
	width:300px;
	height:60px;
	line-height:60px;
	background:#3c4043;
	color:#FFF;
	text-decoration:none;
	border-radius:60px;
	text-align:center;
	display:block;
	margin:auto;
	position: relative;
	font-size:16px;
	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
	border:2px solid #3c4043;
}
#news .button a::before,
#news .button a::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
  	right:30px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#FFF;
  	transform-origin: calc(100% - 0px) 50%;
}
#news .button a::before {
  	transform: rotate(45deg);
}
#news .button a::after {
  	transform: rotate(-45deg);
}
#news .button a:hover{
	background:#FFF;
	color:#3c4043;
}
#news .button a:hover::before,
#news .button a:hover::after{
	background-color:#3c4043;
}
/*------------------------------*/
/* main contents */
/*------------------------------*/
.main_contents{
	padding:50px 8%;
}
.main_contents.bg{
	background:#f2f4f7;
}
.main_contents dl{
	display:flex;
	gap:6%
}
.main_contents dl dt{
	width:50%;
	border-radius:20px;
	overflow:hidden;
}
.main_contents.bg dl dt{
	order: 2;
}
.main_contents dl dt img{
	width:100%;
	height:auto;
	transition-duration:.5s;
	border-radius:20px;
}
.main_contents dl dt img:hover {
  transform: scale(1.1);
}
.main_contents dl dd{
	width:44%;
}
.main_contents dl dd h2{
	color:#4f8bc2;
	font-size:53px;
}
.main_contents dl dd h3{
	font-size:22px;
	color:#333;
	margin-bottom:20px;
}
.main_contents dl dd p{
	font-size:16px;
	color:#333;
	margin-bottom:30px;
}
.main_contents dl dd .button a{
	width:300px;
	height:60px;
	line-height:60px;
	background:#3c4043;
	color:#FFF;
	text-decoration:none;
	border-radius:60px;
	text-align:center;
	display:block;
	margin:auto;
	position: relative;
	font-size:16px;
	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
	border:2px solid #3c4043;
}
.main_contents dl dd .button a::before,
.main_contents dl dd .button a::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
  	right:30px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#FFF;
  	transform-origin: calc(100% - 0px) 50%;
}
.main_contents dl dd .button a::before {
  	transform: rotate(45deg);
}
.main_contents dl dd .button a::after {
  	transform: rotate(-45deg);
}
.main_contents dl dd .button a:hover{
	background:#FFF;
	color:#3c4043;
}
.main_contents dl dd .button a:hover::before,
.main_contents dl dd .button a:hover::after{
	background-color:#3c4043;
}
/*------------------------------*/
/* group_company */
/*------------------------------*/
.group_company{
	padding:180px 8% 100px;
	background:url(../images/common/group_company_bg.webp) no-repeat 25px 80px;
	background-size:700px auto;
}
.group_company h2{
	text-align:center;
	color:#333;
	font-size:22px;
	margin-top:50px;
	letter-spacing:0.1em;
}
.group_company h2::after {
	content: "";
	display:block;
	height:2px;
	width:50px;
	background:#4f8bc2;
	margin:20px auto 30px;
}
.group_company ul{
	display:flex;
	flex-wrap:wrap;
	gap:5%;
}
.group_company ul li{
	width:30%;
	margin-bottom:30px;
}
.group_company ul li .img{
	overflow:hidden;
	margin-bottom:10px;
	border-radius:20px;
}
.group_company ul li .img img{
	width:100%;
	height:auto;
	transition-duration:.5s;
}
.group_company ul li .img img:hover {
  transform: scale(1.1);
}
.group_company ul li h3{
	margin-bottom:5px;
	font-weight:bold;
	color:#333;
	font-size:16px;
}
.group_company ul li .text{
	color:#333;
	font-size:14px;
	margin:0;
}
.group_company ul li div:link,
.group_company ul li div:visited,
.group_company ul li div:active,
.group_company ul li div:focus{
	text-decoration:none;
}
.group_company ul li div:hover p.text {
	text-decoration:underline;
}
/*------------------------------*/
/* sustainability */
/*------------------------------*/
.sustainability{
	background:#f2f4f7;
}
.sustainability div{
	position:relative;
	top:-80px;
	display:block;
	box-sizing:border-box;
	padding-top:100px;
	width:84%;
	height:456px;
	margin:0 auto 0;
	background:url(../images/common/sustainability-main.webp) no-repeat center top;
	background-size:cover;
	border-radius:20px;
	text-decoration:none;
}
.sustainability h2{
	text-align:center;
	color:#FFF;
	font-size:53px;
}
.sustainability h2::after {
	content: "";
	display:block;
	height:2px;
	width:50px;
	background:#4f8bc2;
	margin:0px auto 10px;
}
.sustainability h3{
	text-align:center;
	color:#333;
	font-size:22px;
	margin-bottom:30px;
	letter-spacing:0.1em;
}
.sustainability p{
	text-align:center;
	color:#FFF;
	font-size:16px;
}
.sustainability div::before {
  transition: .4s cubic-bezier(0.45, 0, 0.55, 1);
}
.sustainability div{
  position: relative;
  z-index: 1;
  overflow: hidden;
  cursor: pointer;
}
.sustainability div::before {
  background: inherit;
  content: "";
  display: block;
  filter: blur(5px);
  position: absolute;
  top: -3px;
  left: -3px;
  right: -3px;
  bottom: -3px;
  z-index: -1;
  opacity: 0;
}
.sustainability div:hover::before {
  opacity: 1;
}
/*------------------------------*/
/* bottom */
/*------------------------------*/
.bottom ul{
	display:flex;	
}
.bottom ul li{
	width:50%;
}
.bottom ul li a{
	display:block;
	height:330px;
	text-decoration:none;
	transition: .3s;
}
.bottom ul li a:hover{
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
}
.bottom ul li.contact a{
	background:#e4e8ee url(../images/common/contact.webp) no-repeat left top;
	background-size:auto 330px;
}
.bottom ul li.recruit a{
	background:#4f8bc2 url(../images/common/recruit.webp) no-repeat left top;
	background-size:auto 330px;
}
.bottom ul li a h2{
	font-size:42px;
	text-align:center;
	width:280px;
	position:relative;
	left:53%;
	top:120px;	
}
.bottom ul li.contact a h2{
	color:#4f8bc2;
}
.bottom ul li.recruit a h2{
	color:#FFFFFF;
}
.bottom ul li a h3{
	font-size:17px;
	font-weight:bold;
	text-align:center;
	width:280px;
	position:relative;
	left:53%;
	top:115px;
}
.bottom ul li.contact a h3{
	color:#333333;
}
.bottom ul li.recruit a h3{
	color:#FFFFFF;
}


/*------------------------------*/
/* footer */
/*------------------------------*/
footer{
	background:#f2f4f7;
	padding:50px 8% 20px;
}
footer dl{
	display:flex;
	margin-bottom:20px;
}
footer dl dt{
	width:30%;
}
footer dl dt img{
	width:237px;
	height:auto;
	transition: .3s;
}
footer dl dt a:hover img{
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
}
footer dl dd{
	width:20%;
}
footer dl dd:last-child{
	width:30%;
}
footer dl dd a{
	text-decoration:none;
	color:#333;
}
footer dl dd a:hover{
	text-decoration:underline;
}
footer dl dd ul ul{
	margin-left:15px;
}
footer dl dd ul ul li{
	position: relative;
	display: block;
	font-size:14px;
}
footer dl dd ul ul li::before,
footer dl dd ul ul li::after {
	content: "";
	position: absolute;
	top: calc(50% - 0px);
  	left: -15px;
  	width: 8px;
  	height:1px;
  	border-radius: 9999px;
  	background-color:#4f8bc2;
  	transform-origin: calc(100% - 0px) 50%;
}
footer dl dd ul ul li::before {
  	transform: rotate(45deg);
}
footer dl dd ul ul li::after {
  	transform: rotate(-45deg);
}
footer .banner{
	display:flex;
	gap:20px;
	width:790px;
	margin:0 auto 20px;
}
footer .banner li{
	width:250px;
}
footer .banner li img{
	width:100%;
	height:auto;
	transition: .3s;
}
footer .banner li a:hover img{
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
}
footer p{
	text-align:center;
	margin:0;
	font-size:14px;
}
/*------------------------------*/
/* copyright */
/*------------------------------*/
#copyright{
	background:#333;
	text-align:center;
	padding:20px 0;
	font-size:14px;
	color:#FFF;
}
/*------------------------------*/
/* pageTop */
/*------------------------------*/
#pageTop {
	bottom:30px;
	right:10px;
	display: block;
	position: fixed
}
#pageTop a {
	width:50px;
	height:50px;
	border-radius:50%;
	display: block;
	color: #fff;
	background:#4f8bc2;
	position: relative;
	overflow: hidden;
	z-index: 999;
	border:1px solid #4f8bc2;
}
#pageTop a:hover:after {
	margin-top: -12px
}
#pageTop a:after {
	content: '';
	border: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -7px;
	margin-left: -4px;
	transition: all 0.4s ease;
	width: 5px;
	right: 20px;
	height:20px;
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
	transform: skew(0,-45deg);
}
#pageTop a:hover {
	background:#FFF;
	border:1px solid #333;
}
#pageTop a:hover:after{
	border-top: 1px solid #333;
	border-right: 1px solid #333;
}
.link-block{
	cursor: pointer;
}