@charset "utf-8";


/*============================================================
Base.css
--------------------------------------------------------------

File Name:	base.css
Summary:	全体の構造や各ページ共通で使用するスタイル
Created:	2019/04/19
Modified:	


============================================================*/


/*============================================================
目次
--------------------------------------------------------------

2. Structure and Style
 __2.0. Common Structure and Style
 __2.1. Header Structure and Style[include gNav and MV] 
 __2.2. Contents Structure and Style
 __2.3. Footer Structure and Style


============================================================*/





/*============================================================


					2. Structure Style and Style


------------------------------------------------------------*/

/*============================================================
2-0.	Common Structure and Style
------------------------------------------------------------*/

/*  width inner */

div.inner{
	max-width:1200px;
	/*padding-right:15px;
	padding-left:15px;*/
	margin:0 auto;
	position:relative;
}


@media (max-width:1230px) {
	div.inner{
		padding-right: 15px;
		padding-left:15px;
	}
}

@media (max-width:768px) {
	div.inner{
		min-width:inherit;
	}
}




/*============================================================
2-1.	Header Structure and Style
------------------------------------------------------------*/


/*--------------------------------
	Global Header and Style
=================================*/


/* header */

#global_header{
	width:100%;
	margin:0px auto 0;
	padding: 0;
	position:relative;
}

#body #global_header{
  margin-bottom: 50px;
}

body#home #global_header{
}


/* page_guide */

#page_guide{
	width:100%;
	min-height:50px;
	color: #fff;
	background-color: #0068b8;
	text-align:center;
	display:block;
	position: relative;
	padding:0;
}

#page_guide h1{
	color: #fff;
	font-size:14px;
	font-size:1.4rem;
	font-weight:bold;
	display:inline-block;
	line-height:1;
	margin:0;
	padding:15px 10px 10px;
}

#page_guide p{
	font-size:12px;
	font-size:1.2rem;
	margin:0;
	padding:10px 0 0 10px;
	line-height:1;
	display:inline;
}

/* header_contact */

#header_info{
	max-width: 1200px;
	margin: 0 auto;
  padding: 25px 0 25px 0;
	position: relative;
}

#header_info:after{
  content: "";
  display: table;
  clear: both;
}


#logo{
	margin: 0 0 0 15px;
  float: left;
}

#logo a img{
	max-width: 100%;
	height: auto;
	-webkit-transition:0.5s linear;
}

#logo a:hover img{
	opacity:0.5;
	-webkit-opacity:0.5;
	-moz-opacity:0.5;
	transition:0.5s linear;
}

#header_info .tel_and_fax{
  float: right;
  margin-right: 15px;
  padding-top: 25px;
}

#header_info .tel_and_fax p{
  font-size: 48px;
  font-size: 4.8rem;
  font-weight: bold;
  color: #e60012;
  margin: 0;
  line-height: 1;
}

#header_info .tel_and_fax p a{
	text-decoration: none;
	color: #e60012;
}

#header_info .tel_and_fax p:before{
  /*font-family:  'Font Awesome 5 Free';*/
  font-family:  'Font Awesome 5 Free';
  content: "\f098";
  margin-right: 15px;
}



/*--------------------------------
	Header Nav Area
=================================*/

#global_nav_area{
  color: #fff;
	background-color: #161616;
  /*border-bottom: 7px solid #0068b8;*/
}



/* global_nav */

#global_nav{
  max-width: 1200px;
  margin: 0 auto;
}

#global_nav ul{
	font-size: 0;
	text-align: center;
	margin: 0 auto 0;
	display: flex;
	align-items: center;
	justify-content:space-around;
	flex-wrap: wrap;
}

#global_nav li{
	font-size: 16px;
	font-size: 1.6rem;
  flex-grow: 1;
	/*margin: 0 0 5px 15px;*/
}

#global_nav li:first-child{
	margin-left: 0;
}

#global_nav li a{
	line-height:1.0;
	text-decoration:none;
	color:#fff;
	display:block;
	padding:30px 15px;
	/*border-bottom: 2px solid #fff;*/
	-webkit-transition:0.2s linear;
  -moz-transition:0.2s linear;
  transition:0.2s linear;
	position:relative;
}

#global_nav li a:after{
  font-size: 10px;
  font-family:  'Font Awesome 5 Free';
  content: "\f107";
  font-weight: 900;
  position: absolute;
  bottom: 5px;
  left: 50%;
  margin-left: -5px;
}

#global_nav li a:hover{
	color:#f4cf05;
  background-color: #000;
	border-color: #f4cf05;
}

body#home #global_nav li#gnav_home a,
body#flow #global_nav li#gnav_flow a,
body#price #global_nav li#gnav_price a,
body#size #global_nav li#gnav_size a,
body#set #global_nav li#gnav_set a,
body#normal #global_nav li#gnav_normal a,
body#contact #global_nav li#gnav_contact a{
	font-weight: bold;
	color:#f4cf05;
	border-color: #f4cf05;
}



@media (max-width:895px) {
	
	#page_guide h1{
		font-size: 12px;
		font-size: 1.2rem;
		font-weight: normal;
		line-height: 1.5;
	}
  
  #header_info .tel_and_fax p{
    font-size: 34px;
    font-size: 3.4rem;
  }
  
  #global_nav ul{
    align-content: space-around;
  }
	
  #global_nav li {
    margin: 0;
  }
  
  #global_nav li a{
    border: 1px solid #fff;
    padding: 25px 30px;
  }
  
}


@media(max-width:750px){

    #header_info .tel_and_fax{
      margin: 0;
      padding: 0;
    }

    #header_info .tel_and_fax p{
      display: none;
      margin: 0;
      padding: 0;
    }

}


@media (max-width:650px) {
	
	#global_header{
		margin-bottom: 25px;
	}
	
	#page_guide{
		text-align: left;
	}
	
	#page_guide h1{
    font-size: 14px;
    font-size: 1.4rem;
		padding: 4px 0;
    display: block;
	}
  
	#page_guide p{
    padding: 0;
  }
	
	#header_info{
    padding: 15px 15px 7px 15px;
	}
	
	#logo{
		margin: 0;
	}
	
}

@media (max-width:479px) {
  
  #header_info{
      padding-left: 5px;
      padding-bottom: 5px;
      margin-bottom: 0;
  }
  
  
  #global_nav li {
    width: 50%;
  }
  
  #global_nav li#gnav_contact{
    width: 100%;
  }
  
  #global_nav li a{
    padding: 15px 25px;
  }
  
  #global_nav li a:after{
    bottom: 2px;
  }
  
}




/*--------------------------------
	Main Visual Area
=================================*/

#main_visual{
  background-color: #f1f1f1;
	margin: 0 auto 50px;
  padding: 50px 0 0;
  text-align: center;
	background-image:url("../../images/mainvisual/bg_mv_back_01.jpg");
	background-position: left center;
	background-repeat: no-repeat;
  background-size: cover;
}

#main_visual .inner{
  max-width: 100%;
	background-image:url("../../images/mainvisual/bg_mv_01.png");
	background-position: left bottom;
	background-repeat: no-repeat;
  background-size: auto 90%;
  padding-bottom: 50px;
}


/*.catch_area{
  max-width: 800px;
	background-color: rgba(255,255,255,0.50);
	padding: 50px 25px 50px;
	margin: 0 auto 50px;
}*/

.catch_area{
  text-align: center;
  /*background-color: rgba(255,255,255,0.85);*/
  display: inline-block;
  margin: 0 auto 25px;
  /*padding: 25px;
  border-radius: 10px;*/
}

.catch_area h1,
.catch_area h2,
.catch_area p,
.catch_area address{
    text-shadow: 
    white 2px 0px,  white -2px 0px,
    white 0px -2px, white 0px 2px,
    white 2px 2px , white -2px 2px,
    white 2px -2px, white -2px -2px,
    white 1px 2px,  white -1px 2px,
    white 1px -2px, white -1px -2px,
    white 2px 1px,  white -2px 1px,
    white 2px -1px, white -2px -1px;
}


.catch_area h1{
	font-size: 36px;
	font-size: 3.6rem;
	text-align: center;
	margin: 0 0 10px 0;
}


.catch_area h2{
  font-size: 60px;
  font-size: 6.0rem;
  margin: 0 0 15px 0;
}

.catch_area p{
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 15px;
}

.catch_contact{
  text-align: center;
  /*display: flex;*/
}


.catch_area .tel_and_fax {
  font-size: 46px;
  font-size: 4.6rem;
  font-weight: bold;
  color: #e60012;
  background-color: rgba(255,255,255,0.44);
  margin: 0;
  padding: 5px 15px;
  border: 4px solid #e60012;
  display: inline-block;
}

.tel_and_fax span{
  font-size: 30px;
  font-size: 3.0rem;
  padding-right: 10px;
}

.link_btn_list{
}

.link_btn_list li{
  display: inline-block;
}

.link_btn_list li:first-child{
  margin-right: 25px;
}

.link_btn_list a{
  color: #fff;
  background-color: #cd022d;
  font-size: 28px;
  font-size: 2.8rem;
  text-decoration: none;
  display: inline-block;
  border: 2px solid #ff7782;
  padding: 12px 20px 12px 20px;
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  transition: 0.3s;
}

.link_btn_list a:hover{
  background-color: #FC4957;
  box-shadow: 0 0 2px rgba(0,0,0,0.5);
}


.link_btn_list a:before{
  font-family:  'Font Awesome 5 Free';
  font-weight: 900;
  padding-right: 10px;
}

.link_btn_list .speed a:before{
  font-family:  'Font Awesome 5 Free';
  font-weight: 900;
  padding-right: 10px;
  content: "\f135";
}

.link_btn_list .contact a:before{
  font-family:  'Font Awesome 5 Regular';
  font-weight: 400;
  padding-right: 10px;
  content: "\f0e0";
}



.main_catch{
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}

.main_catch h1{
	font-size: 36px;
	font-size: 3.6rem;
	margin: 0 0 50px;
	text-align: center;
}

.main_catch p{
	font-size: 18px;
	font-size: 1.8rem;
  text-align: center;
}



@media (max-width:1070px){

}

@media (max-width:768px) {
	
	#main_visual h1 br{
		display:inherit;
	}
	
	.catch_area h1{
		font-size: 30px;
		font-size: 3.0rem;
	}

	.catch_area h2{
    font-size: 38px;
    font-size: 3.8rem;
  }
  
  .catch_area .tel_and_fax{
    font-size: 30px;
    font-size: 3.0rem;
  }
	
  .catch_area .tel_and_fax span{
    font-size: 24px;
    font-size: 2.4rem;
  }
  
  .catch_contact .link_btn_list a{
    font-size: 20px;
    font-size: 2.0rem;
  }
  
}



@media (max-width:479px) {
	
	#main_visual{
    text-align: left;
    padding: 0;
    margin-bottom: 25px;
	}
  
  #main_visual .inner{
   padding: 25px 0 25px;
   background-image:url("../../images/mainvisual/bg_mv_tengu_01_sp.png");
  }
  
  .catch_area{
    /*background-color: rgba(0,98,146,0.60);*/
    /*background-color: rgba(0,0,0,0.40);*/
    padding: 0 10px;
    margin-bottom: 0;
  }
  
  .catch_area .tel_and_fax{
    background-color: #fff;
  }
	
	.catch_area h1{
		font-size: 22px;
		font-size: 2.2rem;
    text-align: left;
	}
  
  catch_area h2{
    font-size: 28px;
    font-size: 2.8rem;
    text-align: left;
  }
	
  .catch_area p{
    text-align: left;
    font-size: 16px;
    font-size: 1.6rem;
    /*text-shadow: none;
    color: #fff;*/
    font-weight: normal;
	}
  
  .catch_area p br{
    display: none;
  }
  
   .catch_contact{
    display: none;
  }
  
  .catch_contact .link_btn_list li{
    margin: 0 0 15px;
    display: block;
  }
  
	#page_catch{
		padding: 50px 0;
		margin-bottom: 50px;
		background-position: left center;
	}
	
	#page_catch h1{
		font-size: 28px;
		font-size: 2.8rem;
	}
	
}



/* パンくずリスト */

#topic_path{
	width:100%;
	border-bottom: 1px dashed #ccc;
	padding:25px 0 25px 15px;
	margin: 0 auto 50px;
  /*background-color: #f1f1f1;*/
}

#topic_path nav{
	max-width:1200px;
	margin:0 auto;
	padding:0 15px;
}

#topic_path ul li{
	display:inline-block;
	padding:0 10px 0 0;
}

#topic_path ul li:before{
	content:">";
	margin-right:10px;
}

#topic_path ul li:first-child:before{
	content:none;
}

@media(max-width:1070px){
	
	#topic_path{
		margin-bottom: 25px;
	}
	
}



@media (max-width:768px) {

}

@media (max-width:479px) {

	#topic_path{
		
	}
	
}


/*============================================================
2-4.	Contents Structure and Style
------------------------------------------------------------*/

/* -----------------------------------------
セクションの基本スタイル
-------------------------------------------- */

.normal_section{
	clear:both;
	margin:0 auto 150px;
}


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


.normal_section h1{
	font-size: 42px;
	font-size: 4.2rem;
  text-align: center;
  font-weight: bold;
	margin-top: 0;
	margin-bottom: 50px;
	background-color: #f1f1f1;
	padding: 30px 15px;
  position: relative;
}

.normal_section h1 span.caption{
  color: #fff;
  font-size: 30px;
  font-size: 3.0rem;
  background-color: #3d95ff;
  border-radius: 50%;
  display: inline-block;
  padding: 40px 25px;
  margin: 0 0 0;
  /*position: absolute;
  left: 50%;
  top: 0;*/
}

.normal_section h1 span{
 font-size: 32px;
 font-size: 3.2rem;
}


.normal_section h2 + p{
	margin-bottom: 50px;
}

.normal_section p{
  text-align: center;
}


.normal_section img{
	max-width: 100%;
	height: auto;
}

/* セクション中のセクション */

.secondary_section{
  margin: 0 auto 25px;
  clear: both;
}

.secondary_section h2{
  font-size: 30px;
  font-size: 3.0rem;
}


/* 中央寄せコンテンツ */

.layout_center{
	text-align: center;
}

.layout_center h2{
	text-align: center;	
}

.layout_center table{
	margin-left: auto;
	margin-right: auto;
}


/* 一般的なコンテンツ */

.general_contents{
	background-color: rgba(255,255,255,0.5);
	padding: 50px 0;
}

.general_contents:after{
	content: "";
	display: table;
	clear: both;
}

/* 備考的なコンテンツ */

.fill_section{
  background-color: #f1f1f1;
  text-align: center;
  padding: 50px 0;
  margin: 100px auto;
}

.fill_section h1{
  font-size: 36px;
  font-size: 3.6rem;
  font-weight: bold;
  margin: 0 0 50px 0;
}





/* テキストベースのコンテンツ */

.text_contents{
	max-width: 800px;
	margin: 0 auto;
	padding: 50px 25px;
	border: 2px solid #ccc;
	border-radius: 10px;
}

.text_contents h2{
	font-size: 24px;
	font-size: 2.4rem;
	margin: 0 0 1.8em 0;
}

.text_contents h3{
	font-size: 20px;
	font-size: 2.0rem;
	border-bottom: 1px solid #357700;
	padding-bottom: 8px;
}

.text_contents section{
	/*border-top: 1px dashed #ccc;
	border-bottom: 1px dashed #ccc;*/
	padding: 0 25px;
	margin: 50px 0 50px;
}

@media (max-width:479px) {

	.text_contents{
		padding: 0;
		border: none;
	}

	.text_contents h2{
		font-size: 22px;
		font-size: 2.2rem;
	}
	
	.text_contents h3{
		font-size: 20px;
		font-size: 2.0rem;
	}
	
	.text_contents section{
		padding: 0 15px 0;
	}

}


/* セクション中のサブ的なセクション */

.sub_section{
	max-width: 800px;
	margin: 50px auto 50px;
	padding: 50px 50px 50px;
	border: 1px solid #ccc;
	background-color: rgba(255,255,255,0.50);
	border-radius: 5px;
}

.sub_section h3{
	margin: 0 0 25px;
	padding: 10px 10px;
	/*background-color: #f0eaed;*/
	background-color: #eee;
}

.sub_section h4{
	text-align: left;
	font-size: 22px;
	font-size: 2.2rem;
	margin: 0 25px 15px 25px;
}

.sub_section p{
	text-align: left;
	margin: 2em 0 2em;
}

.sub_section dl{
	text-align: left;
	margin: 0;
}

.title_and_text{
	border-top: 1px solid #d0d0cd;
	padding-top: 15px;
}

.title_and_text dt,
.title_and_text dd{
	padding-right: 25px;
	padding-left: 25px;
}

.title_and_text dt{
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: bold;
	margin: 0 0 15px 0;
}

.title_and_text dd{
	font-size: 16px;
	font-size: 1.6rem;
	margin:0 0 19px 0;
	padding-bottom: 19px;
	border-bottom:1px solid #d0d0cd;
	line-height: 1.8;
}

.title_and_text dd p{
	margin: 0 0 1em 0;
}



.title_and_text dd:last-child{
	margin-bottom:0;
	padding-bottom:0;
	border-bottom:none;
}


/* サブ的なトピックのスタイル */

.sub_topics{
	margin-top: 100px;
}

@media (max-width:479px){
	
	.sub_topics div.inner{
		padding: 0;
	}
	
}





/*
メインセクション
--------------------------------------*/

.main_section{
	margin: 0 auto;
	padding: 100px 0 100px;
}

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




/*
高さ揃え用のスタイル
--------------------------------------*/

.match_height{
	display:flex;
	align-items:stretch;
	flex-wrap:wrap;
}



/*
複数カラムのスタイル
--------------------------------------*/

.column_2,
.column_3{
	display: -webkit-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}

.column_2 .column_box{
	width:48%;
	margin:0 4% 30px 0;
}

.column_2 .column_box:nth-child(2n){
	margin-right: 0;
}


.column_3 .column_box{
	width: 32%;
	margin: 0 2% 25px 0;
}

.column_3 .column_box:nth-child(3n){
	margin-right: 0;
}



@media(max-width:1230px){
	.normal_section{
		padding: 0 ;
	}
}


@media(max-width:768px){

	.normal_section{
		margin-bottom:50px;
	}
	
  .normal_section h1{
    font-size: 28px;
    font-size: 2.8rem;
    padding: 15px 15px;
  }
  
  .normal_section h1 span{
    font-size: 24px;
    font-size: 2.4rem;
  }
  
	.normal_section h2{
		font-size: 28px;
		font-size: 2.8rem;
	}
	
	.normal_section h2:before{
		display: none;
	}
	
	.main_section{
		padding: 50px 0;
	}
	
	.menu_and_contents .sub_contents{
		width: 100%;
	}
	
	.sub_menu{
		width: 100%;
		margin:0 0 50px 0 ;
	}
	
}


@media(max-width:479px){

	.normal_section{
		margin-bottom:60px;
	}

	.normal_section h1{
    font-size: 24px;
    font-size: 2.4rem;
    margin-bottom: 25px;
  }
  
  .normal_section h1 span{
    font-size: 20px;
    font-size: 2.0rem;
  }
  
	.normal_section h2{
		font-size: 20px;
		font-size: 2.0rem;
	}
	
	.normal_section h3{
		font-size: 18px;
		font-size: 1.8rem;
	}

	.normal_section h3{
		letter-spacing:-0.1rem;
		font-size:18px;
		font-size:1.8rem;
	}
	.normal_section h4{
		letter-spacing:-0.1rem;
	}
	
  .normal_section p{
    text-align: left;
  }
  
  	
	.layout_center p{
		text-align: left;
	}
	
  .fill_section{
    margin: 50px 0;
  }
  
	.sub_section{
		padding: 25px 0 25px;
	}
	
	.title_and_text dt{
		font-size: 16px;
		font-size: 1.6rem;
	}
	
	.menu_and_contents .sub_contents{
		padding: 25px 15px;
		border: none;
	}
	
	.menu_and_contents .sub_contents h1{
		font-size: 18px;
		font-size: 1.8rem;
	}
	
	.menu_and_contents .sub_contents h1:before{
		font-size: 24px;
		font-size: 2.4rem;
	}
	
}






/* -----------------------------------------
サイトの骨格になるスタイル
-------------------------------------------- */

/* ====
Main Contents ----------------*/

#main_contents{

}






/* ====
サブページのメインキャッチ部分 ----------------*/


@media(max-width:1200px){
	.page_catch h2{
		margin: 0 15px 50px;
	}
}


@media (max-width:1140px) {

	.page_catch h2{
		font-size: 36px;
		font-size: 3.6rem;
		margin-bottom: 35px;
	}

	/*.page_catch h2:before{
		width:15px;
	}*/
	
}


@media (max-width:980px) {
	.page_catch_text{
		position: relative;
		right: auto;
		top: auto;
		left: 0;
		margin: 0;
		background-color: rgba(255,255,255,0.7);
		padding: 25px 10px 10px;
	}
}


@media (max-width:768px) {
	
	.page_catch{
		margin-bottom: 50px;
	}
	
	
	.page_catch h2{
		font-size: 28px;
		font-size: 2.8rem;
		border-top: 4px solid #941c52;
		border-bottom: 4px solid #941c52;
		border-left: none;
		border-right: none;
		padding: 15px 10px 15px 10px;
		margin: 0 0 25px;
	}
	
	.page_catch h2:before{
		display: none;
	}
	
	.page_catch_text{
		position: relative;
		right: auto;
		top: auto;
		background-color: rgba(255,255,255,0.7);
		padding: 25px 10px 10px;
	}
	
	.page_catch_text p{
		font-size: 16px;
		font-size: 1.6rem;
	}
	
}

@media (max-width:479px) {
	
	.page_catch h2{
		font-size: 20px;
		font-size: 2.0rem;
	}
	
	.page_catch_text p{
		font-size: 14px;
		font-size: 1.4rem;
	}
	
	
}



/* -----------------------------------------
第二階層以下
-------------------------------------------- */




/* ====
特徴解説などで使用するスタイル ----------------*/

.feature{
	text-align: center;
	background-color:#fff;
	border: 2px solid;
	border-radius: 10px;
	position: relative;
}

.feature h2{
	font-size: 18px;
	font-size: 1.8rem;
	z-index: 100;
	position: relative;
}

.feature h2 em{
	font-size: 30px;
	font-size: 3.0rem;
}

.feature p{
	z-index: 100;
	position: relative;
}


@media (max-width:1000px) {
	
	.feature h2{
		font-size: 16px;
		font-size: 1.6rem;
	}

	.feature h2 em{
		font-size: 24px;
		font-size: 2.4rem;
	}
	
	.feature p{
		font-size: 16px;
		font-size: 1.6rem;
	}
	
}


@media (max-width:880px) {
}



@media (max-width:479px){

}





/* -----------------------------------------
パーツのスタイル
-------------------------------------------- */

/* 詳細ページへ移動するボタンのスタイル */

.go_to_detail{
	font-size: 18px;
	font-size: 1.8rem;
	margin: 50px 0;
}

.go_to_detail a{
	text-decoration: none;
  color: #fff;
	border: 2px solid #69bef9;
	background-color: #0083df;
	padding: 0.5em 1.5em 0.5em 2.5em;
	position: relative;
	transition:0.5s;
	-webkit-transition:0.3s;
	-moz-transition:0.3s;
	border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.go_to_detail a:hover{
	color: #fff;
	background-color: #5BA5FF;
  box-shadow: 0 0 3px rgba(0,0,0,0.3);
}

.go_to_detail a:before{
	font-family:'Font Awesome 5 Free';
	font-size:1.5em;
  font-weight: 900;
	content:"\f0a9";
	position:absolute;
	left:0.5em;
	top:50%;
	margin-top:-0.5em;
	line-height: 1;
}

.size-l{
	font-size: 30px;
	font-size: 3.0rem;
}

.size-m{
	font-size: 24px;
	font-size: 2.4rem;
}


@media (max-width:479px) {
	
	.go_to_detail{
		font-size: 16px;
		font-size: 1.6rem;
	}
	
	.size-l{
		font-size: 22px;
		font-size: 2.2rem;
	}

	.size-m{
		font-size: 18px;
		font-size: 1.8rem;
	}
}


/* ボタン系のスタイル */

.contact_button,
.contact_button_m{
	text-align:center;
	margin:0 0 30px;
}

.contact_button a,
.contact_button_m a{
	font-size:30px;
	font-size:3.0rem;
	color:#fff;
  background-color: #cd022d;
	text-decoration:none;
	line-height:1;
	border:2px solid #ff7782;
	padding:20px 38px 20px 78px;
	position:relative;
	display:inline-block;
	transition:0.5s;
	-webkit-transition:0.5s;
  -moz-transition:0.5s;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.contact_button_m a{
	font-size:24px;
	font-size:2.4rem;
	padding:15px 20px 15px 53px;
}


.contact_button a:before,
.contact_button_m a:before{
  font-family:  'Font Awesome 5 Regular';
	font-size:36px;
	font-size:3.6rem;
  font-weight: 400;
	content:"\f0e0";
	position:absolute;
	top:center;
  line-height: 1;
	left:30px;
  margin-top: -0.1em;
}

.contact_button_m a:before{
	font-size:28px;
	font-size:2.rem;
	left:15px;
	top:13px;
}

.contact_button a:hover,
.contact_button_m a:hover{
	background-color: #ff7782;
}


/* ====
問い合わせエリア使用するスタイル ----------------*/

.contact_box{
	clear:both;
	/*border:2px solid #e60012;*/
	/*border:1px solid #ccc;
  background-color:rgba(233,233,233,0.68);*/
  border: 2px solid #e60012;
	padding:30px 15px;
	margin: 100px auto 100px;
  border-radius: 10px;
}

.contact_box:after{
	content:"";
	display:table;
	clear:both;
}

.contact_box dl{
	text-align:center;
	width:48%;
	float:left;
	margin:0 1% 0;
}

.contact_box dl:first-child{
	border-left:0;
	padding:0 30px 0 0;
	/*border-right:1px solid #e60012;*/
	border-right:2px solid #fff;
}

.contact_box dl dt{
	font-size:24px;
	font-size:2.4rem;
  font-weight: bold;
	margin:0 0 15px 0;
}

.contact_box dl dd{
	font-size:14px;
	font-size:1.4rem;
	margin:0;
	padding:0;
}


.contact_box .tel_and_fax li{
  color: #333;
  font-size: 22px;
  font-size: 2.2rem;
  font-weight: bold;
}

.contact_box .tel_and_fax span{
	font-size:36px;
	font-size:3.6rem;
	color:#f9461e;
  padding-left: 5px;
}

.contact_box .tel_and_fax li{
	margin:0 0 15px 0;
}

.contact_box .tel_and_fax li a{
	text-decoration: none;
	color:#f9461e;
}

.contact_box .with_form dt{
	margin-bottom: 50px;
}


/* 項目とそれに対する説明のスタイル */

.point_list{
	font-size: 14px;
	font-size: 1.4rem;
}

.point_list dt{
	font-size: 18px;
	font-size: 1.8rem;
	margin-bottom: 5px;
}

.point_list dd{
	margin:0 0 19px 0;
	padding:0 0 14px 0;
	border-bottom:1px solid #d0d0cd;
	line-height: 1.8;
}

.point_list dd:last-child{
	margin-bottom:0;
	padding-bottom:0;
	border-bottom:none;
}



/* ====
箇条書き部分などのスタイル ----------------*/

ul.points{
	font-size:16px;
	font-size:1.6rem;
}

ul.points li{
	line-height:1.5;
	margin:0 0 15px 20px;
	position:relative;
}

ul.points li:before{
	content:"";
	width:5px;
	height:5px;
	background-color:#941c52;
	position:absolute;
	left:-15px;
	top:10px;
}



/* ====
補足や備考で使用するスタイル ----------------*/


.note{
	font-size:16px;
	font-size:1.6rem;
	margin:0 0 30px 0;
	border:3px solid #ccc;
  border-radius: 10px;
	padding:10px;
	display:inline-block;
  text-align: left;
}

.note dt{
  font-size: 20px;
  font-size: 2.0rem;
	font-weight:bold;
	margin:0 0 10px 0;
	padding:5px 0 5px 0;
	border-bottom:1px dashed #ccc;
  background-color: #f1f1f1;
}

.note dd{
	padding:0;
	margin:0 0 25px;
}





/* ====
テーブルのスタイル ----------------*/

.data_table{
	font-size:16px;
	font-size:1.6rem;
	border-collapse: collapse;
	border:1px solid #ccc;
  margin-bottom: 15px;
}

.data_table thead th{
	/*background-color:#e2e2e2;*/
	background-color:#eee;
	border-bottom:1px solid #ccc;
	text-align: center;
}

.data_table th,
.data_table td{
	padding:15px 30px 15px 30px;
	/*border:1px solid #ccc;*/
	background-color:#fff;
	border-left:1px solid #ccc;
}

.data_table th{
	text-align: left;
	font-weight: normal;
	border-bottom: 1px solid #ccc;
	/*background-color:#f5f5f5;*/
	/*background-color:#e5f3f7;*/
}

.data_table td{
	text-align: left;
	border-bottom: 1px solid #ccc;
}

.data_table tr:nth-child(odd) th,
.data_table tr:nth-child(odd) td{
	background-color:#FFFDEB;
}

.with_rowspan tr:nth-child(odd) th{
	background-color: #fff;
}


/* 横線のみのシンプルなテーブル */

.simple_table{
	font-size: 14px;
	font-size: 1.4rem;
	border-top: 1px solid #999;
	margin: 25px 0 50px 0;
}

.simple_table th,
.simple_table td{
	padding: 15px 15px 15px;
	border-bottom: 1px solid #999;
	text-align: left;
}

.simple_table th{
	font-weight: normal;
	padding-left: 30px;
}

.simple_table td{
	padding-right: 30px;
}


/*コンパクトなテーブル */

.compact_table{
  font-size: 14px;
  font-size: 1.4rem;
  margin: 25px auto;
}

.compact_table th{
  font-weight: bold;
  background-color: #eee;
}

.compact_table th,
.compact_table td{
  padding: 5px 8px;
  border: 1px solid #ccc;
}




/*リッチなテーブル */


.rich_table{
	font-size:14px;
	font-size:1.4rem;
	width:100%;
	border-collapse:separate;
	border-spacing:0;
	border:3px solid #b5bed0;
	border-radius:10px;
	-webkit-border-radius:10px;
	/*background-color:rgba(255,255,255,0.70);*/
	background-color:#fff;
	margin:0 auto 30px;
}

.rich_table td,
.rich_table th {
	border-left: 1px solid #b5bed0;
	border-top: 1px solid #b5bed0;
	padding: 10px;
	text-align: left;
}

.rich_table thead tr:first-child th{
	background-color:#e9eef7;
	border-top:none;
}

.rich_table thead tr:first-child th:first-child{
	border-radius:10px 0 0 0;
}

.rich_table thead tr:first-child th:last-child{
	border-radius:0 10px 0 0;
}

.rich_table tbody tr:last-child th:first-child{
	border-radius:0 0 0 10px;
}

.rich_table tbody tr:last-child td:last-child{
	border-radius:0 0 10px 0;
}

.rich_table th:first-child{
	border-left:none;
}

.rich_table tr:last-child th:first-child{
	border-left:none;
}

.rich_table tr.high-light th,
.rich_table tr.high-light td{
	background-color:#fffcd7;
}

.rich_table tr:hover,
.rich_table tr.high-light:hover th,
.rich_table tr.high-light:hover td{
	background: #e9f0ff;
	-o-transition: all 0.1s ease-in-out;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-ms-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;     
}




@media(max-width:1020px){
	.contact_box dl dt{
		font-size:20px;
		font-size: 2.0rem;
	}
	
	.contact_box dl dd p{
		font-size: 14px;
		font-size: 1.4rem;
	}
	
	.contact_box dl dd div.contact_button a{
		font-size:24px;
		font-size:2.4rem;
		padding:15px 30px 15px 50px;
	}
	
	.contact_box dl dd div.contact_button a:before{
		font-size:30px;
		font-size:3.0rem;
		top:50%;
		margin-top:-15px;
		left:10px;
	}
	
	.contact_box ul.tel_and_fax{
		font-size:20px;
		font-size:2.0rem;
	}

	.contact_box ul.tel_and_fax span{
		font-size:24px;
		font-size:2.4rem;
	}
	
}

@media (max-width:768px) {
	.contact_box{
		margin:50px 0 25px;
		padding:25px 10px;
	}
	
	.contact_box dl{
		width:100%;
		float:none;
		clear:both;
		margin:0;
	}

	.contact_box dl:first-child{
		border-right:0;
		border-bottom:1px solid #c67a9a;
		padding:0;
		margin:0 0 25px;
	}
	
	.contact_box dl dt{
		font-size:22px;
		font-size:2.2rem;
	}
  
  .contact_box dl.with_form dt{
    margin-bottom: 25px;
  }
	
	.contact_box dl dd p{
		font-size:12px;
		font-size:1.2rem;
	}
  
  .contact_box dl dd div.contact_button{
    margin-bottom: 0;
  }
	
	.contact_box dl dd div.contact_button a{
		font-size:18px;
		font-size:1.8rem;
		padding:15px 30px 15px 50px;
	}
	
	.contact_box dl dd div.contact_button a:before{
		font-size:30px;
		font-size:3.0rem;
		top:50%;
		margin-top:-15px;
		left:10px;
	}
	
	.data_table th,
	.data_table td{
		padding:15px 15px;
	}
	
	div.large_table{
		width:100%;
		overflow-x:auto;
	}
	div.large_table::-webkit-scrollbar {
		height:10px;
	}
	div.large_table::-webkit-scrollbar-track {

		background-color:#ccc;
	}
	div.large_table::-webkit-scrollbar-thumb {
		border-radius:5px;
		background:#666;
	}
}


@media (max-width:768px) {
	div.large_table{
		width:100%;
		overflow-x:auto;
		background-color:#fff;
		margin-bottom:30px;
	}
	div.large_table .price_table,
	div.large_table .rich_table,
  div.large_tabke .data_table{
		margin-bottom:0;
	}
	div.large_table::-webkit-scrollbar {
		height:10px;
	}
	div.large_table::-webkit-scrollbar-track {

		background-color:#ccc;
	}
	div.large_table::-webkit-scrollbar-thumb {
		border-radius:5px;
		background:#666;
	}
	.rich_table{
		border-collapse:collapse;
		border-radius:0;
	}
  
  }


@media (max-width:479px) {
	.contact_box{
		padding:15px 10px;
	}
	
	.data_table{
		font-size:14px;
		font-size: 1.4rem;
		max-width:100%;
	}
	
	.data_table th,
	.data_table td{
		padding:10px 5px;
	}
	
	.contact_button{
		margin-bottom:0;
	}
  
	.contact_button a{
		font-size:24px;
		font-size:2.4rem;
		padding:15px 30px 15px 60px;
	}
  
	.contact_button a:before{
		left:10px;
		top:50%;
		margin-top:-18px;
	}

	.contact_box dl:first-child{
		margin:0 0 15px;
	}
  
  .contact_box dl dt{
		font-size:18px;
		font-size:1.8rem;
	}
  
  	
	.contact_box .tel_and_fax li{
		font-size:18px;
		font-size:1.8rem;
	}

	.contact_box .tel_and_fax li span{
		font-size:22px;
		font-size:2.2rem;
	}
	
	.contact_box .with_form dt{
		margin-bottom: 25px;
	}
	
	.contact_box .with_form dd{
		padding-bottom: 15px;
	}

	ul.points{
		font-size:14px;
		font-size:1.4rem;
	}
	.contact_button a{
		font-size:18px;
		font-size:1.8rem;
	}
  
  .rich_table{
		font-size:12px;
		max-width:100%;
	}
	.rich_table td,
	.rich_table th{
		padding:5px;
	}
  
  
}




/*============================================================
2-5.	Footer Structure and Style
------------------------------------------------------------*/

/* Global Footer contact */

#footer_contact{
	text-align: center;
  background-color: #effaff;
	padding:50px 0;
  margin-bottom: 100px;
  clear: both;
}

#footer_contact:before,
#footer_contact:after{
	display:table;
	content:"";
}

#footer_contact:after{
	clear:both;
}

#footer_contact h1{
  font-size: 32px;
  font-size: 3.2rem;
  font-weight: bold;
  margin: 0 0 50px 0;
}


.contact_category{
  background-color: #fff;
  border: 2px solid #0083df;
  border-radius: 10px;
  padding: 15px 25px;
}

.contact_category dt{
  font-size: 22px;
  font-size: 2.2rem;
  font-weight: bold;
  margin: 0 0 15px 0;
}

.tel_and_fax{
	font-size:28px;
	font-size:2.8rem;
  font-weight: bold;
	margin:0 0 15px 0;
}

.tel_and_fax li{
  font-size: 24px;
  font-size: 2.4rem;
}

.tel_and_fax li a{
	text-decoration: none;
	color:#f9461e;
}

.tel_and_fax li:first-child{
	margin-bottom:20px;
}

.tel_and_fax span{
	color:#f9461e;
	font-size:36px;
	font-size:3.6rem;
  padding-left: 0.1em;
}

.contact_category .mail{
  font-size: 24px;
  font-size: 2.4rem;
  color: #e60012;
  font-weight: bold;
}

#footer_contact .go_to_detail {
  font-size: 28px;
  font-size: 2.8rem;
  margin-bottom: 15px;
  display: inline-block;
}

.contact_info .contact_button{
	margin: 50px 0 50px;
}

.contact_info .contact_button a{
	font-size:24px;
	font-size:2.4rem;
}

.contact_info .contact_button a:before{
	top:14px;
	line-height:1;
	vertical-align:bottom;
}




/* Global Footer */

#global_footer{
  padding: 25px 0;
  background-color: rgba(0,0,0,0.05);
}

#footer_info{
	max-width: 1200px;
	margin: 0 auto;
  display: flex;
  padding: 0 15px;
}

#copyright{
  font-size: 18px;
  font-size: 1.8rem;
  text-align: center;
  margin: 50px 0;
}

#footer_info .company_info{
  width: 35%;
  /*background-color: #f1f1f1;
  padding: 25px;*/
  margin-right: 5%;
  /*border-radius: 10px;*/
}

.company_data{
  width: 100%;
  font-size: 16px;
  font-size: 1.6rem;
  margin: 0 0 15px 0;
  border: 1px solid #ccc;
  background-color: rgba(255,255,255,0.3);
}

.company_data th,
.company_data td{
  font-weight: normal;
  text-align: left;
  border-bottom: 1px dashed #ccc;
  padding: 8px 5px;
}

.company_data th{
  padding-right: 10px;
}

.company_data td{
  padding-left: 10px;
}

.group_site_area h3{
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: normal;
  margin: 0 0 10px;
}

.group_site{
  border-top: 1px solid #ccc;
  padding: 15px 0;
}

.group_site dt{
  font-size: 14px;
  font-size: 1.4rem;
}

.group_site dt a{
  text-decoration: none;
}

.group_site dd{
  font-size: 14px;
  font-size: 1.4rem;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 1px dashed #ccc;
}


/* 更新情報 */

.latest_news{
	width: 54%;
	float: right;
	border: 2px solid #ccc;
	border-radius: 5px;
	padding: 10px 0 15px;
}

.latest_news h3{
	font-size: 18px;
	font-size: 1.8rem;
	margin: 0 0 10px;
	padding: 0 10px 3px 10px;
	border-bottom: 1px solid #ccc;
}

.latest_news ol{
	font-size: 16px;
	font-size: 1.6rem;
	list-style: none;
	margin: 0 15px 0 15px;
	padding: 0;
}

.latest_news ol li{
	margin-bottom: 0.5em;
	
}

.latest_news div.news_entry{
	height:200px;
	overflow:auto;
	zoom:1;
}

.latest_news div.news_entry:before,
.latest_newsdiv.news_entry:after{
	display:block;
	content:"";
}

.latest_news div.news_entry:after{
	clear:both;
}

.latest_news article{
	margin:0px 10px 15px;
	clear:both;
	border-bottom: 1px solid #ccc;
}

.latest_news article header{
	border-bottom:1px dashed #ccc;
	margin:0px 0px 5px;
}

.latest_news article header p{
	font-size: 12px;
	font-size: 1.2rem;
	margin: 0 0 5px;
}

.latest_news article header h1{
	font-size: 14px;
	font-size: 1.4rem;
	margin: 0 0 5px;
}

.latest_news article div.article_contents p{
	font-size: 12px;
	font-size: 1.2rem;
	margin:0px 0px 10px 0px;
}

.latest_news article div.article_contents img.image_left{
	float:left;
	margin:0px 10px 10px 0px;
}




/* フッターナビエリア */


#footer_info .footer_nav_area{
  width: 60%;
  /*background-color: #f1f1f1;*/
  display: flex;
  padding-top: 25px;
}

.footer_nav{
  width: 50%;
}




/* フッターメニュー */



.footer_nav ul li{
	margin: 0 0 20px 0;
}

.footer_nav li a{
	
}

.footer_nav li a:before{
	font-family:"Font Awesome 5 Free";
	font-size:16px;
	font-size:1.6rem;
	content:"\f105";
	margin-right:5px;
}


	.footer_nav dl,
	.footer_nav dl dt,
	.footer_nav dl dd{
		margin: 0;
		padding: 0;
	}
	
	.footer_nav dl dt{
		display: none;
	}
	



/* Copyright */

#global_footer .copyright{
	font-size:16px;
	font-size:1.6rem;
	text-align:center;
	padding:25px 10px;
	clear:both;
}


@media (max-width:1230px) {

	#footer_nav_area{
		padding-left: 15px;
		padding-right: 15px;
	}
	
	
	#footer_info_area{
		padding-right: 15px;
		padding-left: 15px;
	}
	
}

@media(max-width:900px){
		
	#footer_contact .contact_category{
		width:100%;
		float: none;
	}
	
	#footer_contact h2{
		font-size: 24px;
		font-size: 2.4rem;
		margin-bottom: 25px;
	}
	
	#footer_contact .with_tel{
    margin-right: 0;
		margin-bottom: 15px;
	}
	
	.contact_info .contact_button{
		margin: 25px 0 0;
	}

	
	#footer_contact dl dt{
		font-size:18px;
		font-size:1.8rem;
		margin-bottom: 15px;
	}
		
	.contact_info dd p{
		font-size: 14px;
		font-size: 1.4rem;
		line-height: 1.5;
	}
	
	#footer_contact div.contact_button{
		margin-bottom:15px;
	}
	
	#footer_contact div.contact_button a{
		font-size:18px;
		font-size:1.8rem;
		padding:15px 15px 15px 45px;
	}
	
	#footer_contact div.contact_button a:before{
		font-size:30px;
		font-size:3.0rem;
		left:10px;
		top:50%;
		margin-top:-15px;
	}
  
  #footer_info{
    flex-wrap: wrap;
  }
  
  #footer_info .company_info{
    width: 100%;
    margin: 0 0 25px 0;
  }
	
	#footer_info .footer_nav_area{
    width: 100%;
    margin: 0 0 25px 0;
		padding: 25px 0;
	}
	
	#footer_org_info{
		width: 100%;
	}
	
	.footer_nav dl dt{
		font-size: 16px;
		font-size: 1.6rem;
		font-weight: bold;
		color: #fff;
		background-color: #357700;
		display: block;
		padding: 8px 10px;
	}
  
  .footer_nav ul{
    border-top: 1px solid #0083df;
  }
	
	.footer_nav ul li{
		font-size: 16px;
		font-size: 1.6rem;
		margin-bottom: 0;
	}
	
	.footer_nav ul li a{
		padding: 10px 8px 10px 15px;
    text-decoration: none;
		border: 1px solid #0083df;
		background-color: #fff;
		border-top: none;
		display: block;
	}
	
	.footer_nav ul li a:hover{
		color: #fff;
		background-color: #0083df;
	}
	
	
}


@media (max-width:800px) {

	#global_footer{
		padding-top: 50px;
	}
	
	#footer_contact{
		width: 100%;
		margin: 0 0 50px;
	}
	
	.latest_news{
		width: 100%;
		margin: 0;
	}
	
	
}



@media (max-width:768px) {

	.latest_news{
		width:100%;
		float: none;
		clear: both;
		margin-bottom: 25px;
	}
	
	#footer_company_info{
		width:100%;
		margin:0 auto 30px;
		float:none;
	}
	
	#footer_guide{
		width:96%;
		margin:0 auto 30px;
	}
	
	#group_site{
		width: 100%;
		float: none;
	}
	
}


@media (max-width:479px) {
	
	#global_footer{
		padding-top: 50px;
	}
	
	#footer_info_area{
		margin-bottom: 25px;
	}
  
  	
	#footer_contact{
		margin-bottom: 50px;
	}
  
  #footer_contact h1{
		font-size: 24px;
		font-size: 2.4rem;
    margin-bottom: 25px;
	}

	.tel_and_fax li{
		font-size: 18px;
		font-size: 1.8rem;
	}
	
	.tel_and_fax li span{
		font-size: 22px;
		font-size: 2.2rem;
	}
  
  #footer_contact .go_to_detail{
    font-size: 22px;
    font-size: 2.2rem;
    margin-top: 0;
  }
  
  .contact_category .mail{
    font-size: 20px;
    font-size: 2.0rem;
  }
	
	#footer_contact dl dt{
		margin-bottom:15px;
	}
	
	
	#footer_guide{
		padding:0 10px;
	}
	
	#footer_nav_area{
		border: none;

	}
	
	#footer_nav_area #footer_sitemap{
		padding-left: 0;
		background-color: rgba(218,200,209,0.2);
	}
	
  #footer_info .footer_nav_area{
    flex-wrap: wrap;
    margin-bottom: 0;
    padding-bottom: 0;
  }
  
  #footer_info .footer_nav_area nav.footer_nav{
		width: 100%;
		margin: 0 0 25px;
	}
	
	
	#global_footer #copyright{
		font-size:14px;
		font-size:1.4rem;
		text-align:center;
		padding:25px 0;
		clear:both;
    margin: 0;
}
	
}



