/**
* YUI 3.5.0 - reset.css (http://developer.yahoo.com/yui/3/cssreset/)
* http://cssreset.com
* Copyright 2012 Yahoo! Inc. All rights reserved.
* http://yuilibrary.com/license/
*/
/*
TODO will need to remove settings on HTML since we can't namespace it.
TODO with the prefix, should I group by selector or property for weight savings?
*/
html {
  color: #070707;
  background: #FFF;
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 400;
  font-style: normal;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  font-size: 100%;
}

html {
  visibility: hidden;
}

html.wf-active {
  visibility: visible;
}

/*
TODO remove settings on BODY since we can't namespace it.
*/
/*
TODO test putting a class on HEAD.
- Fails on FF.
*/
main,
article,
section {
  display: block;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset,
img {
  border: 0;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.cf:after {
  clear: both;
  content: "";
  display: block;
}

/*
TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
*/
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  font-weight: normal;
}

ol,
ul {
  list-style: none;
}

caption,
th {
  text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before,
q:after {
  content: '';
}

abbr,
acronym {
  border: 0;
  font-variant: normal;
}

/* to preserve line-height and selector appearance */
sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

/*to enable resizing for IE*/
input,
textarea,
select {
  *font-size: 100%;
}

/*because legend doesn't inherit in IE */
legend {
  color: #000;
}

/* YUI CSS Detection Stamp */
#yui3-css-stamp.cssreset {
  display: none;
}

/* ------------------------------
 common - width: all
------------------------------ */
html,
body {
  /*min-width: 1400px;*/
}

a:hover {
  opacity: 0.6;
  -webkit-transition: .4s;
  -o-transition: .4s;
  transition: .4s;
}

.op {
  display: block !important;
}

.os {
  display: none !important;
}

header {
  min-width: 1400px;
  height: 70px;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.9);
  -webkit-box-shadow: 0px 7px 3px -3px rgba(0, 0, 0, 0.2);
  box-shadow: 0px 7px 3px -3px rgba(0, 0, 0, 0.2);
  z-index: 1000;
}

header .wrapper {
  width: 1140px;
  margin: 0 auto;
}

header .wrapper h1 {
  width: 192px;
  padding-top: 11px;
  float: left;
}

header .wrapper h1 a {
  display: block;
}

header .wrapper h1 a img {
  width: 100%;
  display: block;
}

header .wrapper .gnav {
  width: 948px;
  height: 42px;
  margin-top: 14px;
  float: right;
  text-align: right;
}

header .wrapper .gnav .menu {
  height: 30px;
  line-height: 30px;
  margin: 6px 11px 0 11px;
  text-decoration: none;
  display: inline-block;
  vertical-align: top;
  font-size: 18px;
  color: #070707;
}

header .wrapper .gnav .request {
  width: 170px;
  height: 42px;
  margin-left: 12px;
  display: inline-block;
  background-color: #f90;
  vertical-align: top;
  text-decoration: none;
  color: #fff;
  font-size: 18px;
  text-align: center;
  line-height: 42px;
  border-radius: 5px;
}

header .ham {
  display: none;
}

header .spmenu {
  display: none;
}

main .mainimgbox .mainimg {
   width: 100%;
   display:  block;

}

footer {
  padding: 60px 0;
  background-color: #111;
}

footer .wrapper {
  width: 700px;
  margin: 0 auto;
}

footer .wrapper .left {
  width: 350px;
  text-align: center;
  float: left;
}

footer .wrapper .left a {
  display: inline-block;
  text-align: center;
}

footer .wrapper .left a img {
  margin-bottom: 5px;
}

footer .wrapper .left p {
  text-align: center;
  font-size: 11px;
  color: #fff;
}

footer .wrapper .right {
  width: 350px;
  float: right;
}

footer .wrapper .right li {
  margin-bottom: 10px;
}

footer .wrapper .right li a {
  text-decoration: none;
  color: #fff;
  font-size: 14px;
}

footer .wrapper .right li a img {
  vertical-align: middle;
  margin-right: 5px;
}

/* ------------------------------
 common - width: < $width-1
------------------------------ */
@media screen and (max-width: 700px) {
  html,
  body {
    min-width: 375px;
  }
  .op {
    display: none !important;
  }
  .os {
    display: block !important;
  }
  header {
    min-width: 0;
    height: 40px;
    -webkit-box-shadow: 0px 5px 3px -3px rgba(0, 0, 0, 0.2);
    box-shadow: 0px 5px 3px -3px rgba(0, 0, 0, 0.2);
  }
  header .wrapper {
    width: 100%;
    padding: 0 15px;
  }
  header .wrapper h1 {
    width: 100px;
    padding-top: 7px;
  }
  header .wrapper .gnav {
    width: calc(100% - 100px);
    height: 30px;
    margin-top: 7px;
  }
  header .wrapper .gnav .menu {
    display: none;
  }
  header .wrapper .gnav .request {
    width: 80px;
    height: 26px;
    margin-right: 40px;
    color: #fff;
    font-size: 12px;
    text-align: center;
    line-height: 26px;
    border-radius: 3px;
  }
  header .ham {
    width: 26px;
    height: 26px;
    display: block;
    position: absolute;
    top: 7px;
    right: 15px;
  }
  header .spmenu {
    position: absolute;
    background-color: rgba(255, 255, 255, 0.9);
    padding: 10px 20px 20px;
    top: 40px;
    right: 0;
    left: 0;
    z-index: 10000;
    -webkit-box-shadow: 0px 8px 8px -8px #000;
    box-shadow: 0px 8px 8px -8px #000;
  }
  header .spmenu .wrapper a {
    display: block;
    padding: 8px 5px;
    color: #003279;
    font-size: 13px;
    text-decoration: none;
    border-bottom: 1px solid #003279;
  }
  header .spmenu .close {
    width: 120px;
    height: 30px;
    margin: 20px auto 0;
    color: #fff;
    background-color: #003279;
    border-radius: 3px;
    text-align: center;
    line-height: 30px;
    font-size: 12px;
  }
  main {
    padding-top: 20px;
  }
  footer {
    padding: 40px 20px;
  }
  footer .wrapper {
    width: 100%;
    margin: 0 auto;
  }
  footer .wrapper .left {
    width: 100%;
    float: none;
    margin-bottom: 30px;
  }
  footer .wrapper .left a {
    width: 100px;
  }
  footer .wrapper .left a img {
    width: 100%;
  }
  footer .wrapper .left p {
    text-align: center;
    font-size: 10px;
    color: #fff;
  }
  footer .wrapper .right {
    width: 230px;
    margin: 0 auto;
    float: none;
  }
  footer .wrapper .right li {
    margin-bottom: 3px;
  }
  footer .wrapper .right li a {
    font-size: 12px;
  }
  footer .wrapper .right li a img {
    margin-right: 3px;
  }
}
/* ------------------------------
 width: all
------------------------------ */
main .s01 {
  padding: 50px 0 60px;
}

main .s01 .wrapper {
  width: 845px;
  margin: 0 auto;
}

main .s01 .wrapper h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 900;
  color: #003279;
  margin-bottom: 30px;
}

main .s01 .wrapper table {
  width: 100%;
}

main .s01 .wrapper table tr {
  border-bottom: 1px dashed #aaa;
}

main .s01 .wrapper table tr:first-child {
  border-top: 1px dashed #aaa;
}

main .s01 .wrapper table tr th {
  width: 150px;
  padding: 25px 0;
  vertical-align: top;
  font-size: 18px;
  font-weight: 900;
  color: #003279;
}

main .s01 .wrapper table tr td {
  padding: 25px 0;
  vertical-align: top;
  font-size: 18px;
}

main .s01 .wrapper table tr td .mail {
  padding: 20px 0 0;
}

main .s01 .wrapper table tr td .mail a {
  color: #000;
}

main .s01 .wrapper table tr td.job dl dt {
  margin-bottom: 3px;
  font-weight: bold;
}

main .s01 .wrapper table tr td.job dl dd {
  padding-left: 20px;
  margin-bottom: 30px;
}

/* ------------------------------
 width < $width-1
------------------------------ */
@media screen and (max-width: 700px) {
  main .s01 {
    padding: 25px 15px 30px;
  }
  main .s01 .wrapper {
    width: 100%;
  }
  main .s01 .wrapper h2 {
    font-size: 24px;
    margin-bottom: 20px;
  }
  main .s01 .wrapper table tr th {
    width: 80px;
    padding: 15px 15px 15px 0;
    font-size: 14px;
  }
  main .s01 .wrapper table tr td {
    padding: 15px 0;
    font-size: 14px;
  }
  main .s01 .wrapper table tr td .mail {
    padding: 20px 0 0;
  }
  main .s01 .wrapper table tr td .mail a {
    color: #000;
  }
  main .s01 .wrapper table tr td.job dl dt {
    margin-bottom: 3px;
    font-weight: bold;
  }
  main .s01 .wrapper table tr td.job dl dd {
    padding-left: 20px;
    margin-bottom: 30px;
  }
}
@charset "UTF-8";

/*---------------------------------------------------------
reset
---------------------------------------------------------*/

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, 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, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
	font-family: 'Noto Sans JP', sans-serif;
	box-sizing: border-box;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	background-color: #fff;
	-webkit-text-size-adjust: none;
	font-size: 16px;
	color: #272727;
	line-height: 1.5;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}
img{
	max-width:100%;
	vertical-align:bottom;
}
a:hover img {
	opacity: 0.8;
	filter: alpha(opacity=80);
	-moz-opacity: 0.8;
}

a.anchor {
	position: relative;
	top: -80px;
	display: block;
}

a {
	color: #107bbf;
	outline: none;
}
.sp {
	display: none;
}

.container{
	max-width:1060px;
	width:92%;
	margin:auto;
}
h2{
	font-size:60px;
	font-weight:900;
	text-align:center;
	margin-bottom:1em;
}
h3{
	font-size:60px;
	font-weight:900;
	text-align:center;
}
h3.grad{
	background: linear-gradient(90deg,#2b1fb9 0%, #278cc2 60%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
@media screen and (max-width:1200px) and (min-width:768px){
	h2,h3{
		font-size: calc(3.75rem + ((1vw - 12px) * 2.7778));
	}
}
/*---------------------------------------------------------
header
---------------------------------------------------------*/
header#top {
	width:142px;
	position:absolute;
	top:0;
	left:30px;
	z-index:999;
	margin-top:70px;
}
header#top .logo{
	margin-top:15px;
}
#header{
	width:100%;
	min-height: 70px;
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	background-color: rgba(255, 255, 255, 0.9);
	-webkit-box-shadow: 0px 7px 3px -3px rgba(0, 0, 0, 0.2);
	box-shadow: 0px 7px 3px -3px rgba(0, 0, 0, 0.2);
	z-index: 1000;
}
#header .wrapper{
	display:flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1140px;
	margin:auto;
}
#header .wrapper h1 {
	max-width: 192px;
	width:15%;
	padding-top: 11px;
}
#header .wrapper .gnav {
	max-width: 948px;
	height: 42px;
	margin-top: 14px;
	text-align: right;
	white-space: nowrap;
}
#header .wrapper .gnav .menu {
	height: 30px;
	line-height: 30px;
	margin: 6px 11px 0 11px;
	text-decoration: none;
	display: inline-block;
	vertical-align: top;
	font-size: 18px;
	font-size: calc(0.75rem + ((1vw - 7.68px) * 1.6129));
	color: #070707;
}
#header .wrapper .gnav .request {
	width: 170px;
	height: 42px;
	margin-left: 12px;
	display: inline-block;
	background-color: #f90;
	vertical-align: top;
	text-decoration: none;
	color: #fff;
	font-size: 18px;
	font-size: calc(0.75rem + ((1vw - 7.68px) * 1.6129));
	text-align: center;
	line-height: 42px;
	border-radius: 5px;
}
@media (min-width: 1140px) {
	#header .wrapper .gnav .menu,#header .wrapper .gnav .request {
		font-size: 18px;
	}
}
#header .wrapper .gnav .request:hover {
	opacity: 0.6;
	-webkit-transition: .4s;
	-o-transition: .4s;
	transition: .4s;
}
#header .ham{
	display:none;
}
/*---------------------------------------------------------
main
---------------------------------------------------------*/
#main{
	background:url("../img/mainbg.jpg") no-repeat center top / cover;
	position:relative;
	width:100%;
	max-height:650px;
	padding-top:47.5%;
	margin-top:70px;
}
#main h1 {
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	color:#fff;
	font-size:30px;
	font-weight:900;
	text-align:center;
	position: absolute;
	top: 0;
	right: 0;
	max-width: 665px;
	width: 100%;
	height: 100%;
	transition:0.3s;
}
#main h1 span{
	display:block;
	font-size:20px;
	font-weight:normal;
	margin-top:1em;
}
@media screen and (max-width:1300px){
	#main h1 {
		width:46%;
		right:10px;
		font-size: calc(1.5rem + ((1vw - 7.68px) * 1.1278));
	}
	#main h1 span{
		font-size: calc(0.6875rem + ((1vw - 7.68px) * 1.6917));
	}
}
#main_btm{
	display: flex;
	background: linear-gradient(-45deg,#2b1fb9 -90%, #278cc2 100%);
	width: 100%;
	padding: 30px 0;
}
#main_btm ul{
	display:flex;
	justify-content:center;
}
#main_btm ul li{
	border: solid 1px #fff;
	outline: solid 1px #fff;
	outline-offset: 4px;
	font-size:20px;
	width:30%;
	text-align:center;
	margin:0 20px;
	transition:0.3s;
}
#main_btm ul li a{
	display:block;
	color:#fff;
	text-decoration:none;
	padding:15px;
}
#main_btm ul li:hover{
	background:rgba(255,255,255,0.3);
}
@media screen and (max-width:1070px){
	#main_btm ul li{
		font-size: calc(1.25rem + ((1vw - 10.7px) * 2.649));
	}
}

/*---------------------------------------------------------
features
---------------------------------------------------------*/
#features{
	background:url("../img/features_bg.jpg") no-repeat top center / cover;
	padding:80px 0 0;
}
#features h2{
	color:#fff;
}
#features ul{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	width:100%;
}
#features ul li{
	background:rgba(0,0,0,0.6);
	border-radius:8px;
	color:#fff;
	width:30%;
	text-align:center;
	padding:20px;
	margin-bottom:70px;
	transition:0.3s;
}
#features ul li h3{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content: center;
	border-radius:4px;
	color:#fff;
	font-size:20px;
	font-weight:900;
	height:60px;
	margin-bottom:20px;
}
#features ul li:nth-child(1){
	box-shadow: 0px 0px 12px rgba(238,58,104,0.6);
	margin-right:5%;
}
#features ul li:nth-child(1) h3{
	background:#ee3a68;
}
#features ul li:nth-child(2){
	box-shadow: 0px 0px 12px rgba(238,142,62,0.6);
	margin-right:5%;
}
#features ul li:nth-child(2) h3{
	background:#EE8E3E;
}
#features ul li:nth-child(3){
	box-shadow: 0px 0px 12px rgba(237,232,59,0.6);
}
#features ul li:nth-child(3) h3{
		background:#EDE83B;
}
#features ul li:nth-child(4){
	box-shadow: 0px 0px 12px rgba(12,139,98,0.6);
	margin-right:5%;
}
#features ul li:nth-child(4) h3{
	background:#0C8B62;
}
#features ul li:nth-child(5){
	box-shadow: 0px 0px 12px rgba(2,162,241,0.6);
}
#features ul li:nth-child(5) h3{
	background:#02A2F1;
}
@media screen and (max-width:1160px){
	#features ul li{
		width:32%;
		padding: 2% 1% 4%;
		margin-bottom: 30px;
	}
	#features ul li:nth-child(1),
	#features ul li:nth-child(2),
	#features ul li:nth-child(4){
		margin-right:2%;
	}
	#features ul li h3{
		font-size: calc(1.25rem + ((1vw - 11.6px) * 1.5306));
		height:40%;
	}
	#features p{
		font-size: calc(1rem + ((1vw - 11.6px) * 1.5306));
	}
}
/*---------------------------------------------------------
functions
---------------------------------------------------------*/
#functions{
	padding:60px 0 0;
}
#functions section{
	font-size:20px;
	text-align:center;
	padding-bottom:100px;
	margin-bottom:100px;
	position:relative;
}
#functions section::after{
	content:"";
	background: linear-gradient(90deg,#fff 0%, #154698 50.05%, #fff 100%);
	width:100%;
	height:2px;
	position:absolute;
	bottom:0;
	left:0;
}
#functions section:last-child::after{
	display:none;
}
@media screen and (max-width:1160px){
	#functions section{
		font-size: calc(1.25rem + ((1vw - 10px) * 1.7241));
	}
}
/*---------------------------------------------------------
lineup
---------------------------------------------------------*/
#lineup{
	background:#f2f2f2;
	text-align:center;
	padding:60px 0;
}
#lineup ul{
	display:flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom:60px;
}
#lineup ul li{
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	color: #fff;
	width: 30%;
	max-width:300px;
	margin: 0 2% 30px;
	text-align: center;
	overflow: hidden;
	box-shadow: 0px 0px 8px rgba(150, 150, 150, 0.6);
	transition: 0.3s;
}
#lineup ul li ul{
	display:block;
	margin-bottom:0;
}
#lineup ul li ul li{
	display:block;
	background:none;
	font-size: 12px;
	font-weight: 500;
	width:100%;
	margin-bottom:1em;
	box-shadow:none;
}
#lineup .ttl{
	padding:20px 20px 30px;
}
#lineup h4{
	color:#272727;
	font-size:40px;
	font-weight:900;
}
#lineup span{
	display:block;
	border-radius: 16px;
	background: linear-gradient(-90deg,#2463bf 0%, #123260 100%);
	font-size:16px;
	font-weight:500;
	line-height: 2;
	margin-bottom:1em;
}
#lineup .detail{
	display: flex;
	flex-direction: column;
	background: linear-gradient(-45deg,#2b1fb9 0%, #278cc2 80%);
	font-size:15px;
	font-weight:200;
	height: 100%;
	padding:25px 18px ;
	transition:0.3s;
}
#lineup .detail p{
	margin-bottom:2em;
}
#lineup .detail a{
	display: block;
	background: #fff;
	border-radius: 2em;
	color: #272727;
	font-size: 16px;
	font-weight: 700;
	line-height: 2.5;
	text-decoration: none;
	margin-top: auto;
	transition:0.3s;
}
#lineup .detail a:hover{
	background:rgba(255,255,255,0.6);
}
#lineup .note{
	font-size:0.875em;
	font-weight:200;
	margin-top:1.5em;
}
#lineup h3.grad{
	display:none;
}
@media screen and (max-width:1140px) {
	#lineup .ttl {
		padding: 8% 6% 10%;
	}
	#lineup h4{
		font-size: calc(2.5rem + ((1vw - 11.4px) * 4.3011));
	}
	#lineup .detail{
		padding: 8% 6%;
	}
	#lineup ul li ul li{
		font-size: calc(0.75rem + ((1vw - 11.4px) * 0.5376));
		font-weight: 400;
	}
	#lineup span{
		font-size: calc(1rem + ((1vw - 11.4px) * 1.0753));
	}
	#lineup .detail a{
		font-size: calc(1rem + ((1vw - 11.4px) * 1.0753));
	}
}
/*---------------------------------------------------------
Merit
---------------------------------------------------------*/
#merit{
	padding:100px 0;
}
#merit section div{
	display:flex;
}
#merit section{
	border:1px solid #f2f2f2;
	margin-bottom:20px;
}

#merit figure{
	width:300px;
	border-right:1px solid #f2f2f2;
}
#merit section .txt{
	display:flex;
	flex-direction:column;
	font-size:20px;
	width:calc( 100% - 300px );
	padding:1em 2em;
}
#merit h3{
	font-size:36px;
	text-align:left;
	margin-bottom:.5em;
}
@media screen and (max-width:1040px) {
	#merit figure {
		width: 35%;
	}
	#merit section .txt{
		width: 65%;
		font-size: calc(1.25rem + ((1vw - 10.4px) * 1.4706));
	}
	#merit h3{
		font-size: calc(2.25rem + ((1vw - 10.4px) * 5.1471));
	}
}
/*---------------------------------------------------------
Insurance
---------------------------------------------------------*/
#insurance{
	background: linear-gradient(-45deg,#2b1fb9 0%, #278cc2 80%);
	color:#fff;
	text-align:center;
	padding:40px;
}
#insurance h2{
	background:#fff;
	border-radius:1em;
	display:table;
	font-size:32px;
	font-weight:900;
	padding:0 1em;
	margin:0 auto 1em;
}
#insurance h2 .grad{
	background: linear-gradient(90deg,#2b1fb9 0%, #278cc2 60%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
#insurance strong{
	display:block;
	font-size:24px;
	font-weight:700;
	margin-bottom:1em;
}
#insurance p{
	font-size:14px;
	font-weight:300;
}
@media screen and (max-width:1040px) {
	#insurance h2{
		font-size:30px;
	}
}
/*---------------------------------------------------------
Customers
---------------------------------------------------------*/
#customers{
	padding:100px 0;
}
#customers .container{
	max-width:1200px;
}
#customers h2{
	background: linear-gradient(-45deg,#2b1fb9 0%,#278cc2 80%);
	color:#fff;
	padding:30px 0;
}
#customers ul{
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	max-width:1060px;
	margin:auto;
}
#customers ul li{
	width:17%;
	margin-right:20px;
}
.intro_case{
	background: #f4f4f4;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 2rem 3.5rem;
}
.intro_case .photo {
	width: 44%;
	margin-bottom: 1rem;
}
.intro_case .explain {
	display:flex;
	flex-direction:column;
	width: 54%;
	padding-bottom: 15px;
}
#customers h4{
	font-size:24px;
	font-weight: bold;
	margin-bottom: 1rem;
}
.intro_case .explain p{
	line-height:1.8;
}
#customers .btn{
	margin-top:auto;
}
#customers .btn a {
	display: block;
	text-align: center;
	background: linear-gradient(90deg, #2b1fb9, #278cc2);
	border-radius: 100px;
	padding: .5em;
	color: #fff;
	font-weight: 600;
	text-decoration:none;
	transition: 0.3s;
}
#customers .btn a:hover {
	opacity: 0.7;
}
#customers p.list a {
	border-radius: 6px;
	font-size: 20px;
	font-weight: 700;
	display: table;
	padding: 0.5em 1.5em;
	margin: 2em auto 0;
}
@media screen and (max-width:900px) {
	#customers h4 {
		font-size: calc(1.5rem + ((1vw - 9px) * 1.5152));
		
	}
	.intro_case .explain p{
		font-size: calc(1rem + ((1vw - 9px) * 1.5152));
	}
}
/*---------------------------------------------------------
Flow
---------------------------------------------------------*/
#flow{
	background:linear-gradient(90deg, #2b1fb9, #278cc2);
	color:#fff;
	padding:100px 0;
	display:none;
}
#flow .container{
	position:relative;
	z-index:2;
}
#particles-js{
	position:relative;
}
#particles-js canvas{
	position:absolute;
	top:0;
	opacity: 0.6;
}
p.flow_note{
	font-size:0.85em;
	font-weight:300;
	text-align:center;
}
.flow {
	padding-left: 120px;
	margin-bottom: 60px;
	position: relative;
}
.flow::before {
	content: "";
	width: 15px;
	height: 100%;
	background: #eee;
	margin-left: -8px;
	display: block;
	position: absolute;
	top: 0;
	left: 120px;
}
.flow > li {
	position: relative;
}
.flow > li:not(:last-child) {
	margin-bottom: 8vh;
}
.flow > li .icon {
	font-size: 12px;
	color: #fff;
	background: rgb(107,144,219);
	background: -moz-linear-gradient(left, rgba(107,144,219,1) 0%, rgba(102,213,233,1) 100%);
	background: -webkit-linear-gradient(left, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
	background: linear-gradient(to right, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6b90db', endColorstr='#66d5e9',GradientType=1 );
	padding: 8px 20px;
	display: block;
	position: absolute;
	top: 0;
	left: -120px;
	z-index: 100;
}
.flow > li .icon::after {
	content: "";
	border-style: solid;
	border-width: 5px 0 5px 10px;
	border-color: transparent transparent transparent #66d5e9;
	position: absolute;
	top: 50%;
	left: 100%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
.flow > li dl {
	padding-left: 70px;
	position: relative;
}
.flow > li dl::before,
.flow > li dl::after {
	content: "";
	display: block;
	position: absolute;
	top: 15px;
}
.flow > li dl::before {
	width: 7px;
	height: 7px;
	margin-top: -3px;
	background: #0745ad;
	border-radius: 50%;
	left: -4px;
}
.flow > li dl::after {
	width: 50px;
	border-bottom: 1px dashed #fff;
	position: absolute;
	left: 5px;
}
.flow > li dl dt {
	font-size: 20px;
	font-weight: 600;
	color: #fff;
	margin-bottom: 1vh;
}
/*---------------------------------------------------------
Require
---------------------------------------------------------*/
#require{
	background: #f8f8f8;
	padding:100px 0;
}
#require .container{
	max-width:1200px;
}
#require table {
	width:100%;
	table-layout: fixed;
}
#require table th{
	background: #444;
	border: 1px solid #ddd;
	color:#fff;
	font-size:0.9em;
	font-weight:500;
	padding: 0.5em 0.8em;
	text-align:left;
	word-break: break-all;
}
#require table td{
	background:#fff;
	border: 1px solid #444;
	font-size: 0.8em;
	padding:1em;
}
#require small{
	display:block;
	font-size:0.7em;
}
#require .mg{
	margin-top:100px;
}
#require .system{
	display:none;
}
/*---------------------------------------------------------
movie
---------------------------------------------------------*/
#movie{
	margin-top: 150px;
	height: calc(100vh - 375px);
}
#movie iframe{
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}
/*---------------------------------------------------------
notice
---------------------------------------------------------*/
#notice{
	background: linear-gradient(-45deg, #2b1fb9 -90%, #278cc2 100%);
	color:#fff;
	position:fixed;
	top:70px;
	width:100%;
	z-index:100;
}
#notice a{
	position:absolute;
	left:20px;
	top:20px;
}
#notice a img{
	width:20px;
	height:20px;
}
#notice p{
	text-align:center;
	padding: 10px 0;
}
@media screen and (max-width: 767px) {
	#notice{
		top:40px;
	}
	#notice a img {
		width: 15px;
		height: 15px;
	}
	#notice a {
		position: absolute;
		right: 10px;
		left:unset;
		top: 8px;
	}
	#notice p {
		font-size:12px;
		padding: 5px 20px;
	}
}
/*---------------------------------------------------------
footer
---------------------------------------------------------*/

footer {
	width: 100%;
	background: #444;
	color: #fff;
	margin: auto;
	font-size: 13px;
	font-weight: 300;
	text-align: center;
	padding:30px 0;
}
footer figure{
	margin-bottom:30px;
}
footer ul{
	display:flex;
	justify-content:center;
}
footer ul li{
	margin:0 2em;
}
footer a{
	color:#fff;
	text-decoration:none;
}
footer a:hover{
	text-decoration:underline;
}
footer .copy{
	font-size:10px;
	margin-top:40px;
}
#page-top {
	position: fixed;
	bottom: 0;
	right: 0;
	z-index: 999;
}

#page-top img {
	vertical-align: bottom;
}

/*---------------------------------------------------------
Mobile
---------------------------------------------------------*/


/*Media Queries*/

@media screen and (max-width: 767px) {
	body, html {
		min-width: 100%;
	}
	body {
		font-size: 15px;
	}
	img {
		max-width: 100%;
	}
	img.sp {
		width: 100%;
	}
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	h2,h3{
		font-size:30px;
	}
	header {
		width: 100px;
		position: absolute;
		top: 0;
		left: 10px;
		margin-top: 40px;
	}
	#header {
		min-width: 0;
		min-height: 40px;
		margin-top:0;
	}
	#header .wrapper.cf {
		justify-content: space-between;
		align-items: unset;
		width: 100%;
		padding: 0 15px;
	}
	#header .spmenu .wrapper{
		display:block;
	}
	#header .wrapper h1 {
		width: 100px;
		padding-top: 5px;
	}
	#header .wrapper .gnav {
		width: calc(100% - 100px);
		height: 30px;
		margin-top: 7px;
	}
	#header .wrapper .gnav .menu {
		display: none;
	}
	#header .wrapper .gnav .request {
		width: 80px;
		height: 26px;
		margin-right: 40px;
		color: #fff;
		font-size: 12px;
		text-align: center;
		line-height: 26px;
		border-radius: 3px;
	}
	#header .ham {
		width: 26px;
		height: 26px;
		display: block;
		position: absolute;
		top: 7px;
		right: 15px;
	}
	#header .spmenu {
		position: absolute;
		background-color: rgba(255, 255, 255, 0.9);
		padding: 10px 20px 20px;
		top: 40px;
		right: 0;
		left: 0;
		z-index: 10000;
		-webkit-box-shadow: 0px 8px 8px -8px #000;
		box-shadow: 0px 8px 8px -8px #000;
	}
	#header .spmenu .wrapper a {
		display: block;
		padding: 8px 5px;
		color: #003279;
		font-size: 13px;
		text-decoration: none;
		border-bottom: 1px solid #003279;
	}
	#header .spmenu .close {
		width: 120px;
		height: 30px;
		margin: 20px auto 0;
		color: #fff;
		background-color: #003279;
		border-radius: 3px;
		text-align: center;
		line-height: 30px;
		font-size: 12px;
	}
	#main {
		padding-top: 80%;
		margin-top: 40px;
	}
	#main h1 {
		width: 55%;
		top: 10px;
		right: 5px;
		font-size: 20px;
		justify-content: flex-start;
		text-align: right;
		padding-top: 3%;
	}
	#main h1 img{
		margin:20px 0 10px;
	}
	#main h1 span {
		font-size: 14px;
	}
	#main_btm{
		padding: 15px 0;
	}
	#main_btm ul {
		display: flex;
		flex-wrap:wrap;
		flex-direction: column;
		justify-content: center;
	}
	#main_btm ul li{
		width:100%;
		font-size: 14px;
		margin:0;
		margin-bottom: 20px;
	}
	#main_btm ul li:last-child{
		margin-bottom:0;
	}
	#main_btm ul li a{
		padding:10px;
	}
	#features ul{
		display:block;
	}
	#features{
		padding:30px 0;
	}
	#features ul li {
		width: 100%;
		padding: 4% ;
	}
	#features ul li h3 {
		font-size: 16px;
		margin-bottom: 10px;
	}
	#features p {
		font-size: 13px;
	}
	#features ul li:nth-child(1), #features ul li:nth-child(2), #features ul li:nth-child(4){
		margin:0 0 20px;
	}
	#functions {
		padding: 30px 0 0;
	}
	#functions section {
		font-size: 12px;
		padding-bottom: 50px;
		margin-bottom: 50px;
	}
	#lineup{
		padding: 30px 0;
	}
	#lineup ul {
		display: block;
	}
	#lineup ul li{
		margin: 0 auto 40px;
		width: 92%;
	}
	#lineup .ttl {
		padding: 15px;
	}
	#lineup span {
		font-size: 14px;
	}
	#lineup h4 {
		font-size: 30px;
	}
	#lineup .detail {
		padding: 15px 15px 20px;
	}
	#lineup ul li ul li {
		font-size: 14px;
	}
	#lineup .detail a {
		font-size: 16px;
	}
	#merit {
		padding: 30px 0;
	}
	#merit section div {
		display: flex;
		flex-direction: column;
	}
	#merit figure {
		width: 100%;
		border-right: 0;
		border-bottom: 1px solid #f2f2f2;
	}
	#merit section .txt {
		width: 100%;
		font-size: 14px;
		padding: 1em;
	}
	#merit h3 {
		font-size: 20px;
		text-align:center;
	}
	#insurance{
		padding:30px 4%;
	}
	#insurance h2 {
		display: block;
		font-size: 21px;
		line-height: 1.2;
		border-radius: 2em;
		padding: 0.5em;
	}
	#insurance strong {
		font-size: 16px;
	}
	#customers {
		padding: 30px 0;
	}
	#customers ul li {
		width: 30%;
		margin-right: 0;
	}
	#customers ul li:nth-child(3n-1){
		margin:0 5%;
	}
	#customers ul {
		justify-content: center;
	}
	.intro_case {
		flex-direction: column;
		padding: 1rem 1.5rem;
		height: 100%;
	}
	.intro_case .photo,.intro_case .explain {
		width: 100%;
	}
	#customers h4 {
		font-size: 18px;
		text-align: center;
	}
	.intro_case .explain p {
		font-size: 13px;
		margin-bottom: 1.5em;
	}
	.swiper-button-prev, .swiper-container-rtl .swiper-button-next {
		left: 5px;
		right: auto;
		background-size: cover;
	}
	.swiper-button-next, .swiper-container-rtl .swiper-button-prev {
		right: 5px;
		left: auto;
		background-size: cover;
	}
	.swiper-button-next, .swiper-button-prev {
		position: absolute;
		top: 50%;
		width: 10px;
		height: 16px;
	}
	.swiper-slide{
		height: auto;
	}
	#flow{
		padding:30px 0 ;
	}
	.flow {
		padding-left: 80px;
	}
	.flow > li .icon {
		font-size: 10px;
		padding: 5px 10px;
		left: -80px;
	}
	.flow::before{
		left:80px;
	}
	.flow > li dl::after {
		width: 30px;
	}
	.flow > li dl {
		padding-left: 40px;
	}
	.flow > li dl dt {
		font-size: 18px;
	}
	.flow > li dd{
		font-size:14px;
	}
	footer ul{
		justify-content:space-between;
		flex-wrap:wrap;
		width:90%;
		margin:auto;
	}
	footer ul li{
		font-size:12px;
		width: 45%;
		margin: 0 0 20px;
	}
	footer figure {
		width: 60%;
		margin: 0 auto 30px;
	}
	#page-top{
		width:48px;
	}
}
