@charset "utf-8";
/* CSS Document */
body {
	opacity: 0;
	-webkit-animation: FadeIn 1s ease .5s 1 normal both;
	animation: FadeIn 1s ease .5s 1 normal both;
}
@-webkit-keyframes FadeIn{100%{opacity:1}}
@keyframes FadeIn{100%{opacity:1}}

@media all and (min-width: 960px){
	.sp, #menu_btn {
		display:none !important;
	}
/* base style------------------------------ */
	.flex_cl {
	  display: -webkit-box;
	  display: -ms-flexbox;
	  display: flex;
	  flex-wrap: wrap;
	  -webkit-box-pack: justify;
	  -ms-flex-pack: justify;
	  justify-content: space-between;
	}
	.flex_cl.cl_2 > section, .flex_cl.cl_2 > li {
	  width: 48%;
	}
	.flex_cl.cl_3 > section, .flex_cl.cl_3 > li {
	  width: 31%;
	  margin-bottom: 8%;
	}
	.flex_cl.cl_4 > section, .flex_cl.cl_4 > li {
	  width: 23%;
	}
	.flex_cl .od1 {
	  order: 1;
	}
	.flex_cl .od2 {
	  order: 2;
	}
	.flo {
	  overflow: hidden;
	}
	.flo_r {
	  float: right;
	}
	.flo_l {
	  float: left;
	}
	.w200 {max-width: 200px;}
	.w300 {max-width: 300px;}
	.w400 {max-width: 400px;}
	.w500 {max-width: 500px;}
	.w600 {max-width: 600px;}
	.w700 {max-width: 700px;}
	.w800 {max-width: 800px;}
	.w900 {max-width: 900px;}
	.w1000 {max-width: 1000px;}
	.w1100 {max-width: 1100px;}
	.w1200 {max-width: 1200px;}
	.w200, .w300, .w400, .w500, .w600, .w700, .w800, .w900, .w1000, .w1100, .w1200 {
		margin-left: auto;
		margin-right: auto;
	}

	header nav ul#gnav li a {
		font-size: 0.85rem;
		font-weight: bold;
		padding: 0.3em;
		letter-spacing: 1px;
		position: relative;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		min-height: 2.5em;
		align-items: center;
		justify-content: center;
	}
}
	header {
		position: fixed;
		top: 0;
		left: 50%;
		margin-left: -45%;
		width: 90%;
		z-index: 999;
		height: 90px;
		background: #fff;
		box-shadow: 0px 0px 6px 1px rgb(12 3 7 / 20%);
    -moz-box-shadow: 0px 0px 6px 1px rgba(12,3,7,0.2);
    -webkit-box-shadow: 0px 0px 6px 1px rgb(12 3 7 / 20%);
	}
	header hgroup {
		margin: 0 0 0 20px;
	}
	header hgroup h1, footer #ft_l h2 {
		font-weight: normal;
		font-size: 0.7rem;
		color: #3c3c3c;
		line-height: 1.3;
		margin-top: 5px;
	}
	header hgroup #logo, footer #ft_l #f_logo {
		display: inline-block;
		margin: 13px 0 0;
	}
	header hgroup #logo p, footer #ft_l #f_logo span {
		font-size: 1.6rem;
		font-weight: bold;
		font-family: 'Spartan' , 'Noto Sans JP', '游ゴシック', sans-serif , YuGothic, 'Franklin Gothic Medium' ,'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo, sans-serif;
		display: inline-block;
		line-height: 1;
		position: relative;
		top: 1px;
		left: 7px;
	}
	header hgroup #logo img, footer #ft_l #f_logo img {
		width: 23px;
	}
	header nav {
	  position: absolute;
	  right: 0;
	  top: 0;
	}
	header nav ul#gnav {
		margin-right: 190px;
	}
	header nav ul#gnav {
	  margin-top: 22px;
	  -moz-transition: all 0.5s;
	  -o-transition: all 0.5s;
	  -webkit-transition: all 0.5s;
	  transition: all 0.5s;
	}
	header nav ul#gnav li {
	  float: left;
	  margin-left: 25px;
	  text-align: center;
	  line-height: 1.3;
	}
	header nav ul#gnav li a:hover, header nav ul#gnav li.current a {
	  color: #f7112e;
	}
	header nav ul#gnav li a::after {
	  position: absolute;
	  bottom: 0px;
	  left: 0;
	  content: '';
	  width: 100%;
	  height: 1px;
	  background: #f7112e;
	  transform: scale(0, 1);
	  transform-origin: right top;
	  transition: transform .3s;
	}
	header nav ul#gnav li a:hover::after, header #nav ul#gnav li.current a::after {
	  transform-origin: left top;
	  transform: scale(1, 1);
	}
	header nav ul#util_nav {
		position: absolute;
		right: 0;
		top: 0;
	}
	header nav ul#util_nav li {
		float: left;
		height: 90px;
	}
	header nav ul#util_nav li a {
		height: 100%;
		background: #f7112e;
		color: #fff;
		width: 80px;
		display: block;
		font-size: 0.8rem;
		text-align: center;
		line-height: 1.2;
	}
	header nav ul#util_nav li#member a {
		background: url(../images/icon_login.png) no-repeat center top 20px #f7112e;
    background-size: 20px;
		padding-top: 50px;
		height: 40px;
	}
	header nav ul#util_nav li#member a:hover {
		background:	url(../images/icon_login.png) no-repeat center top 20px #ff4a61;
		background-size: 20px;
	}
	header nav ul#util_nav li#lang a {
		background: #202020;
		background: url(../images/icon_lang.png) no-repeat center top 25px #202020;
    background-size: 20px;
		padding-top: 58px;
		height: 32px;
	}
	header nav ul#util_nav li#lang a:hover {
		background:	url(../images/icon_lang.png) no-repeat center top 25px #5c5c5c;
		background-size: 20px;
	}
	#mainv {
		height: 100vh;
		width: 100%;
		position: relative;
	}
	#mainv img, #mainv source {
		height: 100%;
		width: 100%;
		object-fit: cover;
	}
	#mainv div {
		margin-left: 20px;
	}
 	#mainv #txt {
    position: absolute;
    top: 170px;
    left: 50%;
		width: 90%;
		margin-left: -45%;
	}
	#mainv #txt h2, #mainv #txt p {
    color: #fff;
	}
	#mainv #txt h2 {
		font-size: 1.95rem;
		letter-spacing: 2px;
	}
	#mainv #txt p {
		font-size: 1.2rem;
		font-weight: 500;
		margin-top: 1rem;
	}
	#wrap #cts {
		max-width: 1200px;
		margin: 0 auto 5em;
		
	}
	#wrap #cts > section {
		padding: 5vw 3vw;
	}
	#wrap #cts > section hgroup {
		margin-bottom: 2rem;
	}
	#wrap #cts > section hgroup h2 {
		font-size: 1.7rem;
	}
	#wrap #cts > section hgroup p {
		color: #f7112e;
		font-family: 'Spartan' , 'Noto Sans JP', '游ゴシック', sans-serif , YuGothic, 'Franklin Gothic Medium' ,'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo, sans-serif;
	}
	#wrap #cts #mission > section:first-child {
		width: 40%;
	}
	#wrap #cts #mission > section:nth-child(2) {
		width: 56%;
	}
	#wrap #cts #mission > section h2 {
		font-size: 1.4rem;
	}
	#wrap #cts #service::after {
		content: "";
		display: block;
		width: 100%;
		height: 50vh;
		position: absolute;
		bottom: 0;
		background: #feecef;
		z-index: -1;
	}
	#wrap #cts .swiper-container {
		width: 100%;
		overflow: hidden;
	}
	#wrap #cts .swiper-button-prev, #wrap #cts .swiper-container-rtl .swiper-button-next {
    background: url(../images/arrow_l.svg) no-repeat center !important;
    background-size: 40px;
    left: 2%;
    width: 40px;
	}
	#wrap #cts .swiper-button-next, #wrap #cts .swiper-container-rtl .swiper-button-prev {
    background: url(../images/arrow_r.svg) no-repeat center !important;
    background-size: 40px;
    right: 2%;
    width: 40px;
	}
	.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after, .swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
		display: none;
	}
	#wrap #cts #service ul li figure {
    border-radius: 20px;
    overflow: hidden;
		padding-top: 67%;
		width: 100%;
		position: relative;
  }
	#wrap #cts #service ul li figure img {
	  width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
	}
  #wrap #cts #service ul li section {
    border-radius: 5px;
    background: #fff;
    margin: -50px 30px 0;
    padding: 20px 30px;
    position: relative;
  }
  #wrap #cts #service ul li section h3 {
    text-align: center;
    margin: 0 0 0.6em;
    font-size: 1.3rem;
    line-height: 1.4;
		color: #f7112e;
  }
	#wrap #cts #feature hgroup h2 em {
		font-size: 130%;
		font-style: normal;
		border-bottom: solid 2px #f7112e;
    margin: 0 0 0 0.3em;
	}
	#wrap #cts #feature .flex_cl {
		background: #d5233a;
	}
	#wrap #cts #feature .flex_cl > section {
		width: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	#wrap #cts #feature .flex_cl > section > div {
		padding: 0 5vw;
	}
	#wrap #cts #feature section hgroup, #wrap #cts #feature div p {
		color: #fff;
	}
	#wrap #cts #feature section hgroup p {
		color: #dcd48f;
		font-weight: 'Spartan' , 'Noto Sans JP', '游ゴシック', sans-serif , YuGothic, 'Franklin Gothic Medium' ,'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo, sans-serif;
	}
	#wrap #cts #feature section hgroup h3 {
		font-size: 1.5rem;
	}
	footer #f_bnr {
		max-width: 900px;
		margin: auto;
	}
	footer #f_bnr ul li {
    background: #000;
    overflow: hidden;
		width: 45%;
  }
  footer #f_bnr ul li a {
    width: 100%;
    padding-top: 65%;
    position: relative;
    overflow: hidden;
    display: block;
		-webkit-transition: .3s ease-out;
		-moz-transition: .3s ease-out;
		-ms-transition: .3s ease-out;
		transition: .3s ease-out;
  }
	footer #f_bnr ul li a div {
		color: #fff;
	}
  footer #f_bnr ul li a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    transition: -webkit-transform .25s;
    transition: transform .25s;
    transition: transform .25s,-webkit-transform .25s;
  }
  footer #f_bnr ul li a img {
    opacity: 0.5;
		-webkit-transition: .3s ease-out;
		-moz-transition: .3s ease-out;
		-ms-transition: .3s ease-out;
		transition: .3s ease-out;
  }
  footer #f_bnr ul li a:hover img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
		opacity: 0.8;
  }
	footer #f_bnr ul li a div {
		z-index: 10;
    position: absolute;
    top: 30%;
    text-align: center;
    width: calc(100% - 4vw);
    padding: 0 2vw;
    color: #fff;
	}
	footer #f_bnr ul li a div hgroup {
		margin-bottom: 1em;
	}
	footer #f_bnr ul li a div hgroup h3 {
		font-size: 1.3rem;
	}
	footer #f_bnr ul li a div h3, footer #f_bnr ul li a div p {
		color: #fff;
	}
  footer #f_bnr ul li a span {
    position: absolute;
    top: 0;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    left: 10%;
    color: #fff;
    font-size: 1.3rem;
    letter-spacing: 2px;
    text-shadow: rgb(0 0 0) 0px 0px 8px;
    -moz-text-shadow: rgba(0,0,0,1) 0px 0px 8px;
  }
	footer #f_contact {
		padding: 80px 0;
		background: url(../images/bg_footer.jpg) no-repeat center;
		background-size: cover;
		color: #fff;
		margin-top: 5em;
	}
	footer #f_contact h3 {
		text-align: center;
		color: #fff;
		font-size: 2.3rem;
		line-height: 1.5;
	}
	footer #f_contact p {
		font-size: 1rem;
		margin: 1.5em 0 3em 0;
    letter-spacing: 1px;
		color: #fff;
	}
	footer #f_contact ul li {
		padding: 0 1%;
	}
	footer #f_contact ul li a {
	}
	footer #f_contact ul li#btn_tel a {
		color: #fff;
    font-size: 2.5rem;
    letter-spacing: 2px;
    background: url(../images/icon_tel.png) no-repeat left top;
    background-size: 35px;
    padding-left: 45px;
		position: relative;
		top: 5px;
	}
	footer #f_contact ul li#btn_tel span {
		display: block;
		letter-spacing: 1px;
		padding-left: 48px;
	}
	footer #f_contact ul li a#btn_mail {
		max-width: 400px;
    /* height: 100px; */
    display: block;
    background: url(../images/icon_mail.png) no-repeat left 15% top 25px #fff;
    background-size: 25px;
    color: #000;
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
    position: relative;
    padding: 1.5rem 0;
	}
	footer #f_contact ul li a#btn_mail:hover {
    background: url(../images/icon_mail_on.png) no-repeat left 15% top 25px #f7112e;
    background-size: 25px;
		color: #fff;
	}
	footer .l-footer__inner {
		/* background: url(../img/common/footer_bg.jpg) no-repeat right bottom;
		background-size: cover;*/
		padding: 50px 4vw 3vw;
	}
	footer .l-footer__inner p, footer .l-footer__inner a, footer .l-footer__inner address {
		font-size: 0.9rem;
	}
	footer .l-footer__inner > .flex_cl {
		position: relative;
	}
	footer .l-footer__inner #ft_l {
		width: 40%;
	}
	footer .l-footer__inner #ft_l #f_logo {
		width: 280px;
	}
	footer .l-footer__inner #ft_l address {
		margin: 2em 0 1em;
		font-style: normal;
	}
	footer .l-footer__inner #ft_l address a {
		text-decoration: underline;
		background: url(../images/icon_map.png) no-repeat left top 4px;
    background-size: 11px;
    padding-left: 15px;
		position: relative;
		top: 3px;
	}
	footer .l-footer__inner #ft_l address a:hover {
		text-decoration: none;
	}
	footer .l-footer__inner #ft_r ul li {
		margin-bottom: 0.8em;
	}
	footer .l-footer__inner #ft_r ul li a {
		font-weight: bold;
	}
	footer .l-footer__inner #ft_r ul li a:hover {
		color: #f7112e;
	}
	footer .l-footer__inner #ft_r ul li a br {
		display: none;
	}
	footer .l-footer__inner #ft_r #fnav_l {
		float: left;
		margin-right: 2em;
	}
	footer .l-footer__inner #ft_r #fnav_r {
		float: right;
	}
	footer #copyright {
		text-align: right;
		margin-top: 3em;
		color: #5d5d5d;
		font-size: 0.8rem;
	}
	/* footer .l-footer__inner .w-footer__box, footer .l-footer__inner .l-footer__widgetArea {
		padding: 0;
	}
	footer .l-footer__inner .widget_nav_menu ul li {
		float: left;
		min-width: 12em;
	}
	footer .l-footer__inner .widget_nav_menu ul li:nth-child(odd) {
		clear: both;
	}
	footer .l-footer__inner .widget_nav_menu a {
		border: none !important;
	}
	footer .l-footer__inner .widget_nav_menu a br {
		display: none;
	}
	.l-footer a.btn {
		color: #1974b7 ;
	}
	.l-footer a.btn:hover {
		color: #fff ;
	} */
	.btn {
		color: #fff;
		background: url(../images/arrow_r.svg) no-repeat center right 20px #f7112e;
    background-size: 24px;
		font-size: 0.9rem;
		position: relative;
		padding: 24px 30px 24px 15px;
		border: none;
		border-radius: 5px;
		-webkit-border-radius: 5px;
		-moz-border-radius: 5px;
		max-width: 320px;
		line-height: 1.3;
		display: block;
		text-align: center;
	}
	.btn:hover {
		background: url(../images/arrow_r.svg) no-repeat center right 20px #be0000;
    background-size: 24px;
	}
	form .omit label {
		display: inline-block !important;
		margin-left: 0.5em;
	}
