@charset "utf-8";

@font-face {
	font-family: 'Noto Sans';
	font-style: normal;
	font-weight: 500;
	src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.woff2) format('woff2'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.woff) format('woff'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans';
	font-style: normal;
	font-weight: 700;
	src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff2) format('woff2'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff) format('woff'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans';
	font-style: normal;
	font-weight: 900;
	src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.woff2) format('woff2'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.woff) format('woff'),
	url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.otf) format('opentype');
}

@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 500;
  src: url('../font/NotoSerifCJKjp-Medium.woff') format('woff2'),
       url('../font/NotoSerifCJKjp-Medium.woff') format('woff');
}
@font-face {
  font-family: 'Noto Serif';
  font-style: bold;
  font-weight: 700;
  src: url('../font/NotoSerifCJKjp-Bold.woff') format('woff2'),
       url('../font/NotoSerifCJKjp-Bold.woff') format('woff');
}

/* Common */
html {
    font-size: 16px;
		line-height: 1.6;
		font-weight:500;
		font-family: 'Noto Sans', "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Arial, Osaka, Sans-Serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -moz-font-feature-settings: 'liga', 'kern';
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
		color:#1b1b1b;
}
body {
		text-align: center;
    height: 100%;
    min-width: 1200px;
}
.inner {
    max-width: 1200px;
    margin: 0 auto;
}

* {outline:none;}

a {color: #1b1b1b;}
a[href^="tel:"] { cursor: default; }
img {max-width: 100%;}

.center {text-align:center;}
.center_span {
		display:inline-block;
		width:100%;
		text-align:center;
}
.clearfix:after {
    display: block;
    clear: both;
    height: 0px;
    line-height: 0px;
    visibility: hidden;
    content: ".";
}
.clearfix {
    display: block; /* for IE8 */
}
.clear {
    clear: both;
}


/************************************************************
/* font
/************************************************************/

/* font color */
.red     {color: #ff0000;}
.magenta {color: #ff0072;}
.yellow  {color: #e8d900;}
.yellow2 {color: yellow;}
.blue    {color: #1d2088;}
.lblue   {color: #00ffff;}
.sblue   {color: #007ef2;}
.gold    {color: #9f8800;}
.navy    {color: #006499;}
.gray    {color: #8A8A8A;}
.green   {color: #00b300;}

/* background color */
.yb {background: yellow;padding: 0 4px;}
.rb {background: #e60012;padding: 0 4px;}
.gb {background: #cacaca;padding: 0 4px;}
.lgb {background:#c7ff00;padding: 0 4px;}
.lbb {background:#00ffff;padding: 0 4px;}
.bb {background:#1d2088;padding: 0 4px;}

/* border */
.border_r {
    display: inline-block;
    border-bottom: solid 4px #e60012;
    line-height: 1.6;	
}
.dotted {
    -webkit-text-emphasis: filled dot #000;
    text-emphasis: filled dot #000;
}
.dotted_r {
    -webkit-text-emphasis: filled dot #f00;
    text-emphasis: filled dot #f00;
}

/* etc */
.underline {text-decoration: underline;}
.bold {font-weight: 900;}

/* size */
.mini    {font-size: 80%;}
.midium  {font-size: 1.2em;}
.large   {font-size: 1.5em;}
.xlarge  {font-size: 1.8em;}


.radius {border-radius:6px;}

.float_l {float:left;}
.float_r {float:right;}

.image_bloc {
    text-align: center;
}

.image_bloc + p           {margin-top:2em;}
.image_bloc + .image_bloc {margin-top:2em;}
p + .image_bloc           {margin-top:2em;}



.flex {
		display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
}

.mt2 {margin-top:2em!important;}
.mt4 {margin-top:4em!important;}

.mb2 {margin-bottom:2em!important;}
.mb4 {margin-bottom:4em!important;}

.pb4 {padding-bottom:4em!important;}

.bg_white {background:#FFF;}
.bg_cream {background:#f5e8b1;}


.action  {
		position: relative;
    margin: 0 auto;
		cursor:pointer;
}
.action img.img_defaul {
    position: relative;
		z-index:1;
}
.action img.img__light {
    position: absolute;
		top:0;
		left:0;
		right:0;
		margin:0 auto;
		z-index:1000000000000000000;
}

.line_big_link {
    display: inline-block
}
.line_big_link a {
	
}

.btn_action  {
		position: relative;
    margin: 0 auto;
		cursor:pointer;
}
.btn_action img.img_defaul {
    position: relative;
		z-index:1;
}
.btn_action img.img__light2, 
.btn_action img.img__light3 
{
    position: absolute;
		top:0;
		left:0;
		right:0;
		margin:0 auto;
		z-index:0;
}




header {
		background: rgba(255, 255, 255, 0.75);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1em 0;
    z-index: 1000;
}
header .inner {
	
}
header .logo {
		align-items: center;
}
header .logo img {
	max-width: 130px;
}
header .logo a {
		color:#000;
		text-decoration:none;
}

header .logo span {
    font-family: 'Noto Serif';
    font-size: 26px;
    margin-left: 0.5em;
}

.header_nav {
	
}
.header_nav ul {
	
}
.header_nav ul li {
    font-size: 15px;
}
.header_nav ul li span {
		color: #959595;
    font-size: 11px;
    line-height: 1;
    display: block;
    margin-top: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: bold;
}
.header_nav ul li a {
		text-decoration:none;
}
.header_nav ul li + li {
    margin-left: 2em;
}

#mv {
    background: url(../images/bg_mv.jpg) no-repeat center;
    background-size: cover;
    padding: 10em 0 6em;
}
.mv_box {
    color: #fff;
    display: inline-block;
}
.mv_box h1 {
    font-size: 132px;
    line-height: 1.2em;
    border-bottom: solid 3px #ffffff;
    padding-bottom: 20px;
    margin-bottom: 20px;
}
.mv_box p {
    font-size: 32px;
}

#service {
    padding: 4em 0 0;
}

.service_box {
    margin-bottom: 4em;
}
.service_box h2 {
margin-bottom: 2em;
}
.service_box h2 span {
    display: block;
    font-size: 30px;
    margin-bottom: 0.5em;
}
.service_box p {
    font-size: 18px;
}

.service_flow {
	
}
.service_flow ol {
    align-items: stretch;
}
.service_flow ol > li {
    width: 25%;
		border-right: solid 1px #d1d2d2;
		box-sizing:border-box;
}
.service_flow ol > li:last-child {
		border:none;
}
.service_flow ol > li h3 {
		background: #efb8b8;
    color: #fff;
    font-size: 30px;
    line-height: 1;
    font-weight: normal;
    padding: 15px;
		position:relative;
}
.service_flow ol > li:nth-child(2) h3 {
		background: #f08c8c;
}
.service_flow ol > li:nth-child(3) h3 {
		background: #f36161;
}
.service_flow ol > li:nth-child(4) h3 {
		background: #ff0000;
}

.service_flow ol > li h3:after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 30px 0 30px 34px;
    border-color: transparent transparent transparent #efb8b8;
    position: absolute;
    top: 0;
    right: -34px;
    z-index: 1;
}

.service_flow ol > li:nth-child(2) h3:after {
		border-color: transparent transparent transparent #f08c8c;
}
.service_flow ol > li:nth-child(3) h3:after {
		border-color: transparent transparent transparent #f36161;
}
.service_flow ol > li:nth-child(4) h3:after {
		border:none;
}

.service_flow ol > li .detail {
    padding: 3em 1em;
}
.service_flow ol > li:nth-child(4) .detail {
    border-right: none;
}

.service_flow ol > li .image {
    height: 125px;
    align-items: center;
    text-align: center;
    margin-bottom: 2em;
}
.service_flow ol > li figure {
    margin: 0 auto;
}
.service_flow ol > li figure img {

}

.service_flow ol > li ul {
    text-align: left;
}
.service_flow ol > li ul li {
    position: relative;
    padding-left: 1.2em;
    font-size: 15px;
}
.service_flow ol > li ul li:before {
		content:"◆";
		position:absolute;
		top:0;
		left:0;
}

#strengths {
		background:#dcdcdc;
    padding: 4em 0;
}
.strengths_box {
    margin-bottom: 4em;
}
.strengths_box h2 {
margin-bottom: 2em;
}
.strengths_box h2 span {
    display: block;
    font-size: 30px;
    margin-bottom: 0.5em;
}
.strengths_box p {
    font-size: 18px;
}

.strengths_point {
	
}
.strengths_point ul {
	
}
.strengths_point ul li {
    width: 100%;
    max-width: 364px;
}
.strengths_point ul li .detail {
	
}
.strengths_point ul li .detail .image {
		width: 330px;
    height: 330px;
    background: #ff0000;
    border-radius: 50%;
    text-align: center;
    margin: 0 auto 2em;
    padding: 4em;
    box-sizing: border-box;
    align-items: center;
}
.strengths_point ul li .detail .image .content {
    margin: 0 auto;
    text-align: center;
}
.strengths_point ul li .detail .image figure {
		margin: 0 auto 1em;
    height: 147px;
    align-items: center;
    justify-content: center;
}
.strengths_point ul li .detail .image h3 {
    width: 100%;
    display: inline-block;
    margin: 0 auto;
    font-size: 30px;
    color: #fff;
    line-height: 1.2em;
    font-weight: normal;
}
.strengths_point ul li .detail p {
    text-align: left;
}
.strengths_point ul li .detail p span {
    font-weight: bold;
}

#price {
    padding: 4em 0;
}
.price_box {
    margin-bottom: 4em;
}
.price_box h2 {
	
}
.price_box h2 span {
    display: block;
    font-size: 30px;
    margin-bottom: 0.5em;
}

.price_data {
	
}
.price_data table {
		width: 100%;
    max-width: 980px;
    margin: 0 auto 2em;
}
.price_data table th {
    border: solid 1px #d1d2d2;
    background: #eeeeee;
    font-size: 24px;
    padding: 0.5em;
}
.price_data table td {
    border: solid 1px #d1d2d2;
    font-size: 36px;
    padding: 0.5em;
}
.price_data ul {
    display: inline-block;
    text-align: left;
}
.price_data ul li {
		position: relative;
    padding-left: 1.5em;
}
.price_data ul li:before {
		content:"※";
		position:absolute;
		top:0;
		left:0;
}

#case {
		background:#dcdcdc;
    padding: 4em 0;
}
.case_box {
    margin-bottom: 4em;
}
.case_box h2 {
margin-bottom: 2em;
}
.case_box h2 span {
    display: block;
    font-size: 30px;
    margin-bottom: 0.5em;
}
.case_box p {
    font-size: 18px;
}



.case_bloc {
	
}
.case_bloc h3 {
    background: #000;
    color: #fff;
    font-size: 30px;
    padding: 10px;
    margin-bottom: 1em;
}
.case_bloc ul {
		align-items: stretch;	
}
.case_bloc  li {
    width: 100%;
    background: #fff;
    padding: 1em;
    box-sizing: border-box;
}
.case_bloc ul li figure {
    align-items: center;
    justify-content: center;
    height: 214px;
    margin-bottom: 1em;
}
.case_bloc ul li h4 {
    font-size: 24px;
    margin-bottom: 10px;
}
.case_bloc ul li dl {
    margin: 0;
}
.case_bloc ul li dl dt {
    background: #f00;
    color: #fff;
    padding: 10px;
    margin-bottom: 10px;
}
.case_bloc ul li dl dd {
    margin: 0;
    text-align: left;
}
.case_bloc ul li dl dd span {
		font-weight:bold;
}

.case_bloc + .case_bloc {
		margin-top:4em;
}

.case_china ul li {
		max-width:370px;
}
.case_japan ul li {
		max-width:580px;
}


#contact {
    background: url(../images/bg_contact.jpg) no-repeat center;
    background-size: cover;
    padding: 4em 0;
    color: #fff;
}
.contact_box {
		margin-bottom: 2em;
}
.contact_box h2 {
		margin-bottom: 2em;
}
.contact_box h2 span {
		display: inline-block;
    font-size: 30px;
    position: relative;
}
.contact_box h2 span:after {
    content: "";
    border-bottom: solid 3px #fff;
    width: 54px;
    position: absolute;
    bottom: -0.5em;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.contact_box p {
    font-size: 18px;
}


.contact_tel {
    align-items: center;
    justify-content: center;
    margin-bottom: 2em;
}
.contact_tel span {
    margin-right: 1em;
}
.contact_tel a {
		font-family: 'Montserrat', sans-serif;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    font-size: 60px;
    line-height: 1;
}

#contact .btn_bloc {
	
}
#contact .btn_bloc a {
    display: inline-block;
    width: 100%;
    max-width: 470px;
    background: #f00;
    color: #fff;
    font-size: 20px;
    text-decoration: none;
    padding: 30px;
    box-sizing: border-box;
    border-radius: 50px;
}

/*footer*/
footer {
    background: #000000;
    text-align: center;
    padding: 2em 0 0;
    color: #fff;
}
footer a {
		color: #fff;
		text-decoration:none;	
}
footer a:hover {
		text-decoration:underline;	
}

footer .logo {
    margin-bottom: 2em	
}
footer .logo span {
    display: block;
    margin: 10px 0 0;
    font-size: 26px;
    font-family: 'Noto Serif';
}
.footer_nav {
    margin-bottom: 2em;
}
.footer_nav ul {
justify-content: center;
}
.footer_nav ul li {
    line-height: 1;
}
.footer_nav ul li + li {
		margin-left:1em;    margin-left: 1em;
    padding-left: 1em;
    border-left: solid 1px #fff;
}

.copyright {
    background: #dcdcdc;
    color: #000;
    padding: 10px;
}
.copyright small {
		font-size:14px;
}


.pci {display: inline-block!important;}
.spi {display: none!important;}
.pc_none {display:none;}
.sp_none {display:block;}
#panel-btn {display:none;}
.sp_menu_bloc {display:none;}


@media screen and (max-width: 768px) {
.pci {display: none!important;}
.spi {display: inline-block!important;}
.pc_none {display:block;}
.sp_none {display:none;}
a[href^="tel:"] {pointer-events: all;}

html {
    font-size: 16px;
}
body {
    min-width: initial;
    height: auto;
}
.inner {
    max-width: initial;
    margin: 0 auto;
}



header {
    padding: 10px;
    box-sizing: border-box;
}
header .inner {
    position: relative;
}
header .logo img {
    width: 30px;
}
header .logo span {
    font-size: 1em;
}
.header_nav {
    display: none;
}


#mv {
    padding: 6em 0 2em;
}
.mv_box h1 {
    font-size: 2em;
}
.mv_box p {
    font-size: 0.8em;
}


#service {
    padding: 2em 0 0;
}
.service_box {
    margin-bottom: 2em;
}
.service_box h2 {
    margin-bottom: 1em;
}
.service_box h2 span {
    font-size: 0.8em;
}
.service_box h2 img {
    height: 30px;
}
.service_box p {
    font-size: 0.8em;
}

.service_flow {
    padding: 0 10px;
}
.service_flow ol > li {
    width: 100%;
    border: none;
}

.service_flow ol > li h3 {
    font-size: 1em;
    padding: 10px;
}
.service_flow ol > li h3:after {
		display:none;
}
.service_flow ol > li .detail {
    padding: 1em 1em;
}
.service_flow ol > li figure img {
    max-height: 80px;
}
.service_flow ol > li .image {
    height: auto;
    margin-bottom: 1em;
}



#strengths {
    padding: 2em 0;
}
.strengths_box {
    margin-bottom: 2em;
}
.strengths_box h2 {
    margin-bottom: 1em;
}
.strengths_box h2 span {
    font-size: 0.8em;
}
.strengths_box h2 img {
    height: 30px;
}
.strengths_box p {
    font-size: 0.8em;
}

.strengths_point {
    padding: 0 10px;
}
.strengths_point ul li {
    max-width: initial;
}
.strengths_point ul li .detail .image {
    width: 60vmin;
    height: 60vmin;
    padding: 1em;
    margin: 0 auto 1em;
}
.strengths_point ul li .detail .image h3 {
    font-size: 1em;
}
.strengths_point ul li + li {
		margin-top:1em;
}

.strengths_point ul li .detail .image figure {
    height: auto;
    margin: 1em auto 1em;
}
.strengths_point ul li .detail .image figure img {
		max-width: 18vmin;
}

.strengths_point ul li .detail p {
    text-align: left;
    font-size: 0.9em;
}

#price {
    padding: 2em 0;
}
.price_box {
    margin-bottom: 2em;
}
.price_box h2 {
    margin-bottom: 1em;
}
.price_box h2 span {
    font-size: 0.8em;
}
.price_box h2 img {
    height: 30px;
}
.price_data {
    padding: 0 15px;
}

.price_data table th {
    font-size: 0.8em;
}
.price_data table td {
    font-size: 0.8em;
}
.price_data ul {
    font-size: 0.8em;
}

#case {
    padding: 2em 0;
}
.case_box {
    margin-bottom: 2em;
}
.case_box h2 {
    margin-bottom: 1em;
}
.case_box h2 span {
    font-size: 0.8em;
}
.case_box h2 img {
    height: 30px;
}
.case_box p {
    font-size: 0.8em;
}

.case_bloc {
    padding: 0 10px;
}
.case_bloc h3 {
    font-size: 1em;
    padding: 10px;
}
.case_china ul li {
    max-width: initial;
}
.case_china ul li + li {
		margin-top:1em;
}
.case_bloc ul li figure {
    height: auto;
}
.case_bloc ul li figure img {
		max-width: 18vmin;
}
.case_bloc ul li h4 {
    font-size: 1em;
}
.case_bloc + .case_bloc {
    margin-top: 2em;
}

.case_japan ul li + li {
		margin-top:1em;
}

#contact {
    padding: 2em 0;
}
.contact_box {
    margin-bottom: 2em;
    padding: 0 10px;
}
.contact_box h2 {
    margin-bottom: 1em;
}
.contact_box h2 span {
    font-size: 0.8em;
}
.contact_box p {
    font-size: 0.9em;
}
.contact_tel a {
    font-size: 2em;
}
.contact_tel span img {
    max-width: 44px;
}
#contact .btn_bloc {
    padding: 0 10px;
}
#contact .btn_bloc a {
    font-size: 1em;
    padding: 1em;
}











footer {
    padding: 1em 0 0;
}
footer .logo {
    margin-bottom: 1em;
}
footer .logo span {
    font-size: 1em;
}
.footer_nav {
    display: none;
}



.copyright small {
    font-size: 0.6em;
}







#panel-btn {
    display: inline-block;
    position: relative;
    width: 30px;
    height: 30px;
    margin: 0;
    border-radius: 50%;
    background: none;
    margin-left: 0;
    top: 0;
    right: 0;
}
#panel-btn:hover { background: none; }
#panel-btn-icon {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 2px;
    margin: -1px auto 0 -15px;
    background: #221814;
    transition: .2s;
    z-index: 10000000000;
}
#panel-btn-icon:before, #panel-btn-icon:after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 2px;
    margin-left: -15px;
    background: #221814;
    transition: .3s;
}
#panel-btn-icon:before { margin-top: -8px; }
#panel-btn-icon:after { margin-top: 6px; }

#panel-btn .close { background: transparent; }
#panel-btn .close:before, #panel-btn .close:after { margin-top: 0; }
#panel-btn .close:before { transform: rotate(-45deg); -webkit-transform: rotate(-45deg); }
#panel-btn .close:after { transform: rotate(-135deg); -webkit-transform: rotate(-135deg); }

.sp_menu_bloc {
    position: absolute;
    background: rgba(0, 0, 0, 0.8);
    width: 100%;
    height: 100vh;
    margin: 0;
    padding: 60px 15px 20px;
    box-sizing: border-box;
    z-index: 999;
    top: 0;
    left: 0;
}
.sp_menu_bloc {
    border-bottom: solid 1px #999;
    text-align: left;
}

.sp_menu_bloc > ul {
		display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1em;
}
.sp_menu_bloc ul li {
    width: 100%;
}
.sp_menu_bloc ul li.half {width:50%;}

.sp_menu_bloc a {
		text-decoration:none;
		color:#fff;
}

.sp_menu > ul {
	
}
.sp_menu > ul > li {
	
}
.sp_menu > ul > li + li {
		margin-top:1em;
}
.sp_menu > ul > li > ul {
    padding-left: 1em;
}
.sp_menu > ul > li > ul > li {
	
}
.sp_menu > ul > li > ul > li + li {
		margin-top: 0.5em;
}







}


.blinking{
		-webkit-animation:blink 1s ease-in-out infinite alternate;
    -moz-animation:blink 1s ease-in-out infinite alternate;
    animation:blink 1s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{0% {opacity:0;}100% {opacity:1;}}
@-moz-keyframes blink{0% {opacity:0;}100% {opacity:1;}}
@keyframes blink{0% {opacity:0;}100% {opacity:1;}}

/* ボタンのアニメーション */
.animation {
    visibility: visible !important;
    animation-fill-mode: both !important;
    -webkit-animation-fill-mode: both !important;
}
.replay {
    -webkit-animation-iteration-count: infinite !important;
    animation-iteration-count: infinite !important;
}

/*bounce-in*/
.bounce-in {
    -webkit-animation: bounce-in 1.8s;
            animation: bounce-in 1.8s;
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
}
@keyframes bounce-in {
    0%  {transform: scale(1);opacity: 1;}
    25% {transform: scale(1.1);}
    40% {transform: scale(.8);}
    50% {transform: scale(1.1);}
    60% {transform: scale(.9);}
    70% {transform: scale(1.05);opacity: 1;}
    80% {transform: scale(.95);}
    90% {transform: scale(1.01);}
    100%{transform: scale(1);}
}
@-webkit-keyframes bounce-in {
    0%  {transform: scale(1);opacity: 1;}
    25% {transform: scale(1.1);}
    40% {transform: scale(.8);}
    50% {transform: scale(1.1);}
    60% {transform: scale(.9);}
    70% {transform: scale(1.05);opacity: 1;}
    80% {transform: scale(.95);}
    90% {transform: scale(1.01);}
    100%{transform: scale(1);}
}
