@charset "utf-8";
/* CSS Document */
/*! ==================================================
　common
=================================================== */
body{
	color:#333;
	/*font-family: 'Noto Sans JP', sans-serif;*/
	font-family: source-han-serif-japanese, serif;
    font-size: 100%;
	
}
.selector-for-some-widget {
  box-sizing: content-box;
}

a{
	text-decoration: none;
	color:#666;
}
a:hover{
	color:#666;
	text-decoration: none;
	opacity:0.8;
}

h2{
	padding-top:70px;
	padding-bottom:70px;
	text-align: center;
	background-repeat: no-repeat;
	background-position: center;
	/*text-shadow:1px 1px 1px white;*/
	
}
h2 span{
	font-size:1.0rem;
}
@media (max-width: 767px){
	h2{
		font-size:1.6rem;	
	}
}
h3{
	color:#666;
	background-color:#eee;
	padding:15px 0;
}
p{
	line-height: 1.8;
}
.btn1{
	margin:30px auto 0;
	display: block;
	text-align: center;
}
.btn1 a{
	display: inline-block;
	padding:5px 30px;
	color:#fff;
	background-color:#006699;
	border: 3px solid #cfe2e6;
	border-radius: 10px;
}

.pagelink{
	text-align: center;
	margin:15px 0 30px;
}
@media (max-width: 767px){
	.pagelink{
		font-size:0.8rem;
	}
}

.pagetop{
	position:fixed;
	bottom:0;
	right:5%;
	 width: 157px;
}
@media (max-width: 767px){
	.pagetop{
		display: none;
	}
}
.pagetop a{
		border-top:2px solid #fff;
		border-left:2px solid #fff;
		border-right:2px solid #fff;
		font-weight: bold;
		border-radius: 10px 10px 0 0;  
		text-decoration: none;
		background-color:#006699;
		padding:10px 15px;
		display: block;
		color:#fff;
		font-size:0.9rem;
		float:right;
		text-align: center;		
	}
/* googlemap レスポンシブ*/
.gmap {
position: relative;
padding-bottom: 40.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
 
.gmap iframe,
.gmap object,
.gmap embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.flexH [class^=col] {
  display: flex;
  flex-direction: column;
}

.flexH [class^=col] div {
  flex-grow: 1
}
.foottel{
	text-align: center;
	padding:15px;
	background-color: #006699;
	border-top:2px solid #cfe2e6;
}

.foottel a{
	color:#fff;
	/*text-shadow:1px 1px 1px white;*/
	font-weight: bold;
	display: block;
}

.foottel a:hover{
	color:#fff;
	opacity:0.8;
}
@media (min-width: 768px){
	.foottel{
		display: none;

	}

}
/*! ==================================================
　header
=================================================== */
header{
	padding:0 15px;
	border-bottom:4px solid #ffcc33;
}
header a{
	color:#333;
}
header a:hover{
	color:#333;
	opacity: 0.8;
}
header address{
	font-size:1.6rem;
	font-weight: bold;
}
@media (max-width: 767px){
	header{
		display: none;
	}
}
@media (min-width: 768px){
	header h1{
		padding-top:2px;
	}
	header address{
		padding-top:13px;
	}
	header span{
		font-size:1.0rem;
	}

}
/*! ==================================================
　nav
=================================================== */
.navbar-brand{
	color:#333;
	/*text-shadow:1px 1px 1px white;*/
	font-weight: bold;
}
a.navbar-brand:hover{
	color:#eee;
}
@media (max-width: 767px){
	.navbar-brand span{
		font-size:1.0rem;
	}
}
@media (min-width: 768px){
	.navbar-brand{
		display: none;
	}
}
.navbgcolor{
  /*border-bottom:1px solid #fff;*/	
  background-image: -moz-linear-gradient( 90deg, rgb(238,238,238) 40%, rgb(255,255,255) 87%, rgb(247,247,247) 93%, rgb(238,238,238) 99%);
  background-image: -webkit-linear-gradient( 90deg, rgb(238,238,238) 40%, rgb(255,255,255) 87%, rgb(247,247,247) 93%, rgb(238,238,238) 99%);
  background-image: -ms-linear-gradient( 90deg, rgb(238,238,238) 40%, rgb(255,255,255) 87%, rgb(247,247,247) 93%, rgb(238,238,238) 99%);
	padding:5px;
}
@media (max-width: 767px){
	.navbgcolor{
		border-bottom:2px solid #ffcc33;
	}
}
.navbar-nav a{
	font-size:0.9rem;
	letter-spacing: 0.1rem;
}
@media (max-width: 992px){
	.navbar-nav a{
		font-size: 1rem;
	}
}
@media (max-width: 767px){
	.navbar-nav a{
		font-size: 1rem;
		letter-spacing: 0.1rem;
			
	}
	
}

.navcolor a{
	color:#333;
	/*text-shadow:1px 1px 1px white;*/
	font-weight: bold;
}

@media (min-width: 992px){
	.nav-item a{
		padding: 2px 20px!important;
		border-right: 1px solid #bfbfbf;
		}
	.nav-link{
		letter-spacing: 0.1rem;
	}
	
}
@media (max-width: 991px){
	.navbar-nav a{
		padding:10px;
		border-bottom: 1px dotted #bfbfbf;
		text-align: center!important;
	}
	.navbar-nav i{
		display: none;
	}
}
/*ハンバーガーメニュー枠線*/
.navbar-toggler{
  border-color: #fff;
}
/*ハンバーガーメニュー背景色*/
.navbar-toggler{
  background-color: #006699;
}
/*ハンバーガーメニュー三本線*/
.navbar-toggler .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
  background-color:#006699; 
}
/*! ==================================================
　banner
=================================================== */
#banner{
	padding-top:20px;
	background-color:#f2fbff;
	padding-bottom: 30px;
	margin: 0;
}
#banner ul{
	margin:0 -15px!important;
	padding:0!important;
}
#banner li{
		list-style: none;
	}
@media (max-width: 767px){
	#banner li{
		padding-top:15px; 
	}
}
/*! ==================================================
　main
=================================================== */

/* カルーセル */
.carousel{
	border-bottom: 30px solid #3399cc;
}
@media (max-width: 767px){
	.carousel{
		border-bottom: 10px solid #3399cc;
}
}
.carousel-inner{
	position: relative!important;
}
.carousel-caption{
	position: absolute!important;
	top:20%!important;
	color:#333;
}
.carousel-caption h5{
	text-shadow:1px 1px 1px white;
}
.carousel-caption p{
	background-color:#fff;
	opacity: 0.8;
	padding:10px;
	border-radius: 10px;
	display: inline-block;
	margin-top:20px;
	text-shadow:1px 1px 1px white;
}

@media (min-width: 1200px){
	.carousel img{
		width:100vw;
		object-fit: contain;
	}
}
#home{
	padding:0;
	margin:0;
}
#home #contents{
	margin:0;
	padding:15px 0;
}
#home #contents {
	margin-top:30px;
}
#home #contents .specia-box{
	width:95%;
	margin:auto;
}

#home #contents .listbox{
		width:98%;
		margin:auto;
	}
@media (min-width: 768px) and (max-width: 992px){
	#home #contents .listbox{
		width:85%;
		margin:auto;
	}
	#home #contents .special-box h2,#home #contents .special-box p{
		width:85%;
		margin:auto;
	}
}
@media (min-width: 1200px){
	#home #contents .listbox{
		width:85%;
		margin:auto;
	}
	#home #contents .special-box h2,#home #contents .special-box p{
		width:85%;
		margin:auto;
	}
}
#home #contents h2{
	padding:25px 0;
	font-size:1.8rem;
	border-top:2px dotted #cfe2e6;
	border-bottom: 2px dotted #cfe2e6;
	letter-spacing: 0.1rem;
}
@media (max-width: 576px){
	#home #contents h2{
		padding:20px 0;
		font-size:1.4rem;
	}	
}
#home #contents .listbox{
	background-color: #f2fbff;
	margin-top:50px;
	padding:30px 20px 20px 20px;
}

@media (max-width: 576px){
	#home #contents .listbox {
		margin-top:40px;
		padding:20px 10px 10px 10px;
	}
}

#home #contents .listbox ul li{
	list-style:disc;
	color:#006699;
	padding:10px 0;
	font-size:1.1rem;
	letter-spacing: 0.1rem;
}
@media (max-width: 991px){
	#home #contents .listbox ul li{
		font-size:1rem;
		padding:5px 0;
		font-weight: bold;
	}
}
#home #contents .img1{
	margin:auto;
	text-align: center;
}
#home #contents .img1 img{
	width: 70%;
}
@media (max-width: 767px){
	#home #contents .img1{
		margin:auto;
		text-align: center;
	}
	#home #contents .img1 img{
	width: 90%;
	
}
}
#home #contents p{
	line-height:2rem; 
	font-size: 1rem;
	letter-spacing: 0.1rem;
}
@media (max-width: 767px){
	#home #contents p{
		line-height:1.5rem;
		padding-top:30px; 
}
}

#home #contents .special-box p{
	padding-top:50px;
}
@media (max-width: 767px){
	#home #contents .special-box p{
		padding: 30px 10px 0 10px;
	}
}
.txtbox2{
	padding: 0 0 0 30px;
}
@media (max-width: 767px){
	#home #contents .txtbox2{
		padding: 0 0 0 10px;
}
}
@media (max-width: 992px){
	.carousel img{
		max-width:100%;/*画像中央ぞろえで必要*/
		height:500px!important;/*画像中央ぞろえで必要*/
		object-fit: cover;/*画像中央ぞろえで必要*/
		margin: 0 auto;/*画像中央ぞろえで必要*/
	}
}
@media (max-width: 767px){
	.carousel img{
		max-width:100%;/*画像中央ぞろえで必要*/
		height:400px!important;/*画像中央ぞろえで必要*/
		object-fit: cover;/*画像中央ぞろえで必要*/
		margin: 0 auto;/*画像中央ぞろえで必要*/
	}
}
@media (min-width: 768px){
	.carousel-caption h5{
		font-size:2.0rem;
	}
	.carousel-caption p{
		font-size:1.2rem;
	}
	.carousel img{
		max-width:100%;
		height:auto;
	}
	
}

/*! ==================================================
　news
=================================================== */
#home #newslist{
	background-color:#f2fbff;
	padding:15px 0 80px;
}
#newslist{
	background-color:#fff;
}
#newslist .newsbox,#news .newsbox{
	padding:20px 15px 15px 15px;
	margin:30px 0 0;
	background-color:#fff;
	border: solid 4px #cfe2e6;
}
#news .newsbox{
	padding:20px 40px;
}
@media (max-width: 767px){
	#news .newsbox{
		padding:10px 20px;
	}
}
#home #newslist h2{
	color:#006699;
	padding-bottom:0;
	background-image:none;
	line-height: 1.5rem;
}
#home #newslist h2 span{
	font-size: 0.9rem;

}
#newslist article{
	/*border-bottom:1px solid #cfe2e6;*/
}
#newslist time{
	display: inline-block;
	background-color:#006699;
	font-size:0.8rem;
	color:#fff;
	padding:2px 5px;
	margin:0 15px 0 0;
	
}
#newslist h3{
	padding:10px 15px 15px 0;
	font-size:1.2rem;
	margin:0 0 15px;
	background-color:#fff;
	/* ドットの指定　*/	
	background-image: linear-gradient(to right, #cfe2e6, #cfe2e6 2px, transparent 2px, transparent 4px);
	background-size: 5px 2px;
	background-position: bottom;
	background-repeat: repeat-x;
	/* ドットの指定終わり　*/
}

@media (max-width: 767px){
	#newslist article{
		
	}
	#newslist h3{
		font-size:1.0rem;
	}
	#newslist time{
		padding:2px 5px;
	}
}


#news article{
	padding:15px 0 15px;
}
#news article p{
	padding:10px 0 0;
	margin-bottom: 0;
}

#news h3{
	background-color:transparent;
	color:#006699!important;
	padding-bottom:15px;
	font-size:1.4rem;
	font-weight: bold;
	padding-left:0;
	/* ドットの指定　*/	
	background-image: linear-gradient(to right, #cfe2e6, #cfe2e6 2px, transparent 2px, transparent 4px);
	background-size: 5px 2px;
	background-position: bottom;
	background-repeat: repeat-x;
	/* ドットの指定終わり　*/

}
@media (max-width: 767px){
	#news h3{
		font-size:1.2rem;
	}
}
#news time{
	margin-top:30px;
}
#news .btn1{
	margin-bottom:50px;
}

#news,#newslist{
	background-color:#f2fbff;
	padding-bottom:30px;
}
#news h2,#newslist h2{
	background-image:url(../img/ptitleback.jpg);
	text-align: center;
	color:#fff;
	background-position: center;
	background-size: cover;
}
/*! ==================================================
　about
=================================================== */
#about{
	background-color:#f2fbff;
	padding-bottom: 70px;
}
#about h2{
	background-image:url(../img/ptitleback.jpg);
	text-align: center;
	color:#fff;
	background-position: center;
	background-size: cover;
}
#about h3{
	text-align: center;
	background-color:transparent!important;
	padding-right: 90px;
	margin-top:40px;
}
#about h3 a{
	color:#006699;
	font-size:1.6rem;
	background-image:url(../img/titleimg.png);
	background-repeat: no-repeat;
	background-size:70px;
	padding:10px 0 20px 90px;
	letter-spacing: 2px;
	font-weight: bold;
	display: inline-block;
	text-align: center;
}
#about h3 a:hover{
	opacity: 1;
}
@media (max-width: 767px){
	#about h3{
		padding-right: 50px;
		}
	#about h3 a{
		font-size:1.4rem;
		letter-spacing: 5px;
		text-align: center;
		padding:10px 0 20px 90px;
		etter-spacing: 1px;
	}
}
#about dl{
	/* ドットの指定　*/
	background-image: linear-gradient(to right, #cfe2e6, #cfe2e6 2px, transparent 2px, transparent 4px);
	background-size: 5px 2px;
	background-position: top;
	background-repeat: repeat-x;
	/* ドットの指定終わり　*/
	margin:15px 10px 0;
}
#about dt,#about dd{
	padding:30px 0 0;
	margin-bottom: 0;
}
#about dt{
	color:#006699;
}
@media (max-width: 767px){
	
	#about dd{
		padding:0;
	}
	
}
#about dd p{
	padding:0;
}

#about span{
		font-size:1.0rem;
	}
@media (max-width: 767px){
	#about figure{
		text-align: center;
		margin:20px auto 50px;
	}
	#about figure img{
		width:70%;
	}
}
#about .msgarea p{
	padding-left:10px;
	padding-right:10px;
	margin-bottom: 0;
}
#about .office-img{
	margin-bottom:30px;
}
#about .office-img img{
	object-fit: contain;
	width:100%;
	height:300px;
}
#about .office-img p{
	margin-top:15px;
	text-align: center;
}
/*! ==================================================
　contact
=================================================== */
#contact{
	background-color:#f2fbff;
}
#contact h2{
	background-image:url(../img/ptitleback.jpg);
	text-align: center;
	color:#fff;
	background-position: center;
	background-size: cover;
}
#contact #contactbox{
	padding-top:50px;
}
#contact form{
	margin:20px 0 0;
	padding:10px 0;
}
#contact form span{
	padding:0;
}
#contact .form-group{
	margin:5px 0;
	padding:0;
}
#contact label{
	font-weight: bold;
}
#contact .formback{
	/*background-color:#fcfcfc;*/
	padding:15px 5px;
	margin-top:15px;
}

#contact table{
	border:1px solid #ccc;
	}			
	#contact table th{
		width:30%;
		font-weight: bold;
		background-color:#fff;
		border: solid 2px #cfe2e6;
	}
	#contact table td{
		width:70%;
		background-color:#fff;
		border: solid 2px #cfe2e6;
	}

#contact form input{
	width:100%;
	padding:5px;
	margin:0;

}
 #contact form textarea{
	width:100%;
	 margin:0;

}
#contact .btnInput{
	margin-top:30px;
	
}
#contact .btnInput ul {
		font-size: 0;
		text-align: center;
		padding:0;
	}

#contact .btnInput li {
	font-size: 1.0rem;
	padding: 15px;
	list-style: none;
	display: inline-block;
}
	
#contact .btnInput input{	
	width: 200px!important;
	text-align: center;
	cursor:pointer;
	color: #fff;
	border:1px solid #fff;
	background-color: #006699;
	padding:5px 0;
	
	display: inline-block;
}
@media (max-width: 767px){
	#contact .btnInput input{
		width: 100px!important;
	}
}
#contact p{
	padding:15px;
}

#contact .hissu,.alert{
	color:#c00;
	font-weight: bold;
}

/*! ==================================================
　footer
=================================================== */
footer{
	padding: 30px 15px 15px;
	color:#fff;
	background-color:#3399cc;
}
@media (max-width: 767px){
	footer{
		font-size:0.7rem;
		margin-bottom:50px;
	}
}

footer .name{
	font-size:1.8rem;
}
@media (max-width: 767px){
	footer .name{
		font-size: 1.4rem;
	}
	footer address{
		font-size: 0.9rem
	}
}
footer .name span{
	font-size:1.0rem;
}
footer a{
	color:#fff;
	text-decoration: underline;
}
footer a:hover{
	color:#fff;
	text-decoration: none;
	opacity: 0.8;
}
/*! ==================================================
　template
=================================================== */
.template{
	padding-bottom: 50px;
}
.template04 h3,.template05 h3,.template07 h3{
		font-size:1.4rem;
		padding:10px;
	}

/*! ==================================================
　template06
=================================================== */
.template06 dl{
	margin:0;
	padding:0;
}
.template06 dt{
	background-color:#666;
	color:#fff;
	border-bottom: 1px solid #fff;
	margin:0;
	padding:5px;

}
.template06 dd{
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	border-right: 1px solid #ddd;
	margin:0;
	padding:5px;

}
/*! ==================================================
　service
=================================================== */
#service{
	background-color:#f2fbff;
}
#service h2{
	background-image:url(../img/ptitleback.jpg);
	text-align: center;
	color:#fff;
	background-position: center;
	background-size: cover;
}
#service .contentsbox{
	padding-top:50px;
}
@media (max-width: 767px){
	#service .contentsbox{
		padding-top:20px;
	}
}
#service  .txtbox{
	margin-top:50px;
}
#service h3{
	text-align: center;
	background-color:transparent;
	padding-right: 90px;
	margin-top:40px;
}
@media (max-width: 767px){
	#service h3{
		padding-right: 50px;
	}
}
#service h3 span{
	color:#006699;
	background-color:transparent!important;
	font-size:2.0rem;
	background-image:url(../img/titleimg.png);
	background-repeat: no-repeat;
	background-size:70px;
	padding:10px 0 20px 90px;
	letter-spacing: 2px;
	font-weight: bold;
	text-align: center;
	display: inline-block;
}

@media (max-width: 767px){
	#service h3 span{
		font-size:1.4rem;
		letter-spacing: 3px;
		text-align: left;
		background-size:60px;
		padding:10px 0 20px 70px;
	}
}
#service .servicebox{
	background-color:#fff;
	padding:20px 50px;
	border:4px solid #cfe2e6;
}
@media (max-width: 767px){
	#service .servicebox{
		background-color:#fff;
		padding:10px 15px;
		border:2px solid #cfe2e6;
	}
}
#service .servicebox ul{
	margin-top:40px;
}
#service .servicebox .textbox{
	padding-top: 30px;
}
@media (max-width: 767px){
	#service .servicebox .textbox{
	padding-top: 20px;
	}
}
#service .dotline{
	/* ドットの指定　*/
	height:5px;
	background-image: linear-gradient(to right, #cfe2e6, #cfe2e6 2px, transparent 2px, transparent 4px);
	background-size: 5px 2px;
	background-position: top;
	background-repeat: repeat-x;
	/* ドットの指定終わり　*/
	margin:30px 0 30px;
}
/*! ==================================================
　qa
=================================================== */
#qa{
	background-color:#f2fbff;
	
}
#qa h2{
	background-image:url(../img/ptitleback.jpg);
	text-align: center;
	color:#fff;
	background-position: center;
	background-size: cover;
}
#qa  .txtbox{
	margin-top:50px;
}
#qa #accordionBox{
	padding-top:30px;
}
#qa .box{	
	padding-top:10px!important;
}
#qa h3{
	background-color:#3399cc;
	color:#fff;
	font-size:1.2rem;
}
@media (max-width: 767px){
	#qa h3{
		font-size:1.0rem;
	}
	#qa .box{	
	padding-top:5px!important;
}
}