﻿@charset "utf-8";
/* CSS Document */
/* design1 css */
html{font-size:100%;}
body{background: #f7f7f7}

/* ローダー */

#loader {
    width:200px;
    height:200px;
    display: none;
    position: fixed;
    _position: absolute;
	top: 50%;
	left: 50%;
    z-index: 200;
}
#fade {
    width:100%;
    height:100%;
    display:none;
    position:fixed;
    top:0px;
    left:0px;
    z-index:100;
}

/* 波線設定 */

.nami{margin-top: -3px!important;}
.nami_bg{fill: currentColor;}
.foot_nami .st0{fill: currentColor;}
.foot_nami{margin-bottom: -9px!important}

/* --all page-- */

#page-top{
	position: fixed;
	right: 30px;
	z-index: 20
}
#page-top a{
	display: block;
	width: 80px;
	height: 80px;
	position: relative;
}
#page-top a:hover{
	box-shadow: 0 5px 10px rgba(0,0,0,0.3);
	-webkit-transform:translateY(-5px);
	-ms-transform:translateY(-5px);
	transform:translateY(-5px);
}
a{
	color: #000;
}

/* ページタイトル */

#page_title{
	padding: 30px 0 30px;
}
#page_title h2::before{
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 30px;
	right: 0;
	left: 0;
	bottom: -70px;
	margin: auto;
	border-right: solid 1px
}
#page_title h2{
	padding-left: 5px
}
#page_title p{
	padding-left: 2px
}

/* ページャー　*/

.pager li a{
	width: 70px;
	height: 70px;
	line-height: 70px;
}

/* カテゴリーリスト */

.cate_list{
	display:-webkit-box;
    display:-moz-box;
    display:-ms-box;
    display:-webkit-flexbox;
    display:-moz-flexbox;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:-ms-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
	align-self: stretch;
	flex-wrap:wrap;
    justify-content: flex-start;
    align-items: center;
	flex-direction: row;
	text-align: center;
	letter-spacing: 0;
	padding-bottom: 40px;
}
.cate_list li{
	width: 30%;
	margin: 10px;
	box-sizing: border-box;
}
.cate_list li a{
	display: block;
	padding: 10px 5px;
}
@media all and (-ms-high-contrast: none){
.cate_list li a{
	padding-top:15px;
}
}
.cate_list li a:hover{
	-webkit-transform:translateY(-5px);
	-ms-transform:translateY(-5px);
	transform:translateY(-5px);
}

/* header */

.h_tel{
	top: 20px;
	right: 40px;
	font-size: 0
}
.h_tel .h_tel_bt{
	height: 55px;
	border-radius: 30px;
	line-height: 55px;
	overflow: hidden;
	width: 55px;
	border: solid 1px #fff
}
.h_tel .h_tel_bt:hover{
	width: 250px;
}
.h_tel .tel_mark{
	height: 55px;
	width: 55px;
	border-radius: 50%;
	left: 0;
	z-index: 1
}
.h_tel .tel_txt{
	right: 0
}
.ttl{
	display: inline-block;
	position: absolute;
	top: 12px;
	left: 23px;
	width: 3px;
	background: #fff;
	border-radius: 50% 0 0 50%;
	height: 33px;
	z-index: 2;
    -webkit-transform: rotate(-30deg);
    -moz-transform: rotate(-30deg);
    transform: rotate(-30deg);
}
.ttl::before{
	content: "";
	position: absolute;
	left: 2px;
	width: 6px;
	height: 10px;
	background: #fff
}
.ttl::after{
	content: "";
	position: absolute;
	left: 2px;
	bottom: 0;
	width: 6px;
	height: 10px;
	background: #fff
}
.ccn{
  color: #fff;
  position: absolute;
  left: 13px;
  top: 17px;
  width: 27px;
  height: 18px;
  border-radius: 1px;
  border: solid 1px currentColor;
	z-index: 2
}
.ccn:before {
  content: '';
  position: absolute;
  left: 13px;
  top: -8px;
  width: 1px;
  height: 18px;
  background-color: currentColor;
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transform: rotate(-54deg);
          transform: rotate(-54deg);
}
.ccn:after {
  content: '';
  position: absolute;
  left: 13px;
  top: -8px;
  width: 1px;
  height: 18px;
  background-color: currentColor;
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transform: rotate(54deg);
          transform: rotate(54deg);
}
#header #logo{
	padding: 50px 0;
}
#header .wave{
	height: 5vw;
}
#header_menu ul li::before{
	content: "";
	position: absolute;
	display: inline-block;
	width: 1px;
	height: 30px;
	border-right: solid 1px;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto
}
#header_menu ul li a{
	padding: 0 10px
}
#header_menu ul li:last-child::before{
	display: none
}
#header_menu ul li a:hover{
	opacity: 0.5
}

/* -- index.html -- */

#intro{
	border-bottom: solid 1px;
}
#intro_txt h2::before{
	display: block;
	content: "";
	position: absolute;
	width: 50px;
	height: 1px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	border-bottom: solid 1px
}
#contents .box .d_table-cell h3{
	margin-bottom: -20px;
	margin-left: -20px;
	z-index: 1
}
#contents .box .d_table-cell p::before{
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	top: 0;
	right: -100%;
	z-index: -1;
}
#contents .box_wrap .d_table-cell p{
	padding-right: 0
}
.more a{
	width: 100px;
	height: 100px;
	line-height: 100px;
	padding-left: 3px
}

/* -- index.html -- */

#top_cms .cms_title{
	padding: 30px 0;
	padding-left: 20px;
}
#top_cms .cms_title .title_bg{
	content: "";
	width: 100px;
	height: 100px;
	left: -10px;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius: 50%;
	z-index: -1
}

/* -- page7.html -- */

#page7 div div p::before{
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 100%;
	background: rgba(0,0,0,0.2);
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}
#page7 #map iframe{
width:100%;
	height: 400px
}

/* -- page9.html -- */

#page9 p a span{
	width: 7px;
	height: 7px;
	top: 0;
	bottom: 2px;
	left: 0;
	margin: auto;
	border-top: solid 2px;
	border-right: solid 2px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}

/* -- page10.html -- */

#page10 ul li a:hover{
    -webkit-transform: scale(1.05,1.05);
    -moz-transform: scale(1.05,1.05);
    transform: scale(1.05,1.05);
}
#page10 ul li a{
	padding: 20px 5px
}

/* IE対処 */

@media all and (-ms-high-contrast:none) {
.h_tel .tel_txt{
	padding-top: 3px
}
#page9 p a{
	padding-top: 3px
}
#page10 ul li a{
	padding-top: 24px
}
}

/* footer */

#footer .d_table-cell:first-child{
	border-right: solid 1px rgba(255,255,255,0.2)
}
.sns_links li:hover{
	-webkit-transform:translateY(-3px);
	-ms-transform:translateY(-3px);
	transform:translateY(-3px);
}
.foot_page li{
	border-right: solid 1px #fff
}
footer ul li:last-child{
	border-right: none
}

/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.cate_list li{
	width: 40%;
}
header{
	top: 0;
	left: 0;
	z-index: 20;
}

#header #logo{
	padding: 20px 0;
}
#page-top a:hover{
	box-shadow: none;
	-webkit-transform:translateY(0);
	-ms-transform:translateY(0);
	transform:translateY(0);
}

#top_cms .top_cms_box:last-of-type{
	margin-bottom: 0
}
#top_cms .cms_title{
	padding: 0;
	margin-bottom: 60px
}
#top_cms .cms_title h2{
	padding-left: 3px
}
#top_cms .cms_title p{
	padding-left: 2px
}
#top_cms .cms_title::before{
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 20px;
	right: 0;
	left: 0;
	bottom: -30px;
	margin: auto;
	border-right: solid 1px
}

#top_cms .cms_title .title_bg{
	left: 0;
	display: none
}
#page_title{
	padding: 55px 0 35px;
	margin-top: -30px
}
.more a{
	width: 80px;
	height: 80px;
	line-height: 80px
}
#footer .d_table-cell:first-child{
	border-right: none;
	border-bottom: solid 1px rgba(0,0,0,0.1)
}

/*　▼▼▼▼　スマホナビ　▼▼▼▼　*/

.toggle {
    position: absolute; /* bodyに対しての絶対位置指定 */
    right: 0;
    top: 0;
	bottom: 20px;
	margin: auto;
    width: 50px;
    height: 50px;
    cursor: pointer;
    z-index: 90;
}
.toggle span {
	border-color: #fff;
    display: block;
    position: absolute; /* .toggleに対して */
    width: 70%;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
    padding-top: 6px;
    right: 15px;
}
.toggle span:nth-child(1) {
    top: 8px;
}
.toggle span:nth-child(2) {
    top: 20px;
}
.toggle span:nth-child(3) {
    top: 32px;
}
	
	/* 最初のspanをマイナス45度に */
.toggle.active span:nth-child(1) {
    top: 20px;
	right: 19px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
    border-bottom: solid 3px #fff;
}
/* 2番目と3番目のspanを45度に */
.toggle.active span:nth-child(2),
.toggle.active span:nth-child(3) {
    top: 20px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
    border-bottom: solid 3px #fff;
}
/* .global_nav */
.global_nav {
	overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    transform: translateY(-100%);
    transition: all 0.8s;
	box-sizing:border-box;
	padding: 30px 0 30px;
	text-align: left;
	z-index: 10
}
.global_nav .nav_li {
    width: 69%;
	margin: 0 auto;
    list-style-type: none;
	box-sizing:border-box;
	border-color: #fff;
	padding: 0 5px
}
.global_nav .nav_li a {
	letter-spacing: 2px;
	height: 6vh;
    display: block;
	line-height: 6vh;
}
.global_nav ul li{
	border-right: none
}
.global_nav ul li:hover{
	background-image: none;
}
.global_nav .nav_li:last-child{
}
	/* .global_navに.activeが追加 */
.global_nav.active {
    transform: translateY(0%);
}
.global_nav .tel .h_tel_bt{
	height: 55px;
	border-radius: 30px;
	line-height: 55px;
	overflow: hidden;
	width: 250px;
	border: solid 1px #fff;
}
.global_nav .tel .h_tel_bt:hover{
	width: 250px;
}
.global_nav .tel .tel_mark{
	height: 55px;
	width: 55px;
	border-radius: 50%;
	left: 10px
}
.global_nav .tel .tel_txt{
	right: 0
}
	

#page10 ul li a:hover{
    -webkit-transform: scale(1,1);
    -moz-transform: scale(1,1);
    transform: scale(1,1);
}

}

/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px){
#header #logo{
	padding-bottom: 10px
}
.cate_list li{
	width: 100%;
}
.pager li a{
	width: 50px;
	height: 50px;
	line-height: 50px;
}
	
#logo .width_30per_tb {
    width: 25vh!important;
}
#contents .box .d_table-cell h3{
	margin-left: 20px;
	margin-right: 20px
}
#contents .box_wrap .d_table-cell p{
	padding-right: 5%
}
#contents .box .d_table-cell p::before{
	display: none
}
#contents .box_wrap .d_table-cell figure{
	background: #fff
}
#page-top{
	right:10px;
}
#page-top a{
	width: 50px;
	height: 50px;
}
#top_cms .top_cms_box{
	margin-bottom: 80px
}

#page7 div div p::before{
	display: none
}
#page7 div div h3{
	padding-left: 2px
}
#page7 #map iframe{
	height: 250px
}
#page10 ul li{
	margin-right: 0
}
}
/* ---------- IE ---------- */
@media all and (-ms-high-contrast:none){
	#page_title{padding: 35px 0 25px;}
	#contents .box_wrap .box .d_table-cell h3{padding: calc(5% + 3px) 5% calc(5% - 3px);}
	.more a{padding-top: 3px;}
	.pager li a{padding-top: 3px;height: 67px;line-height: 67px;}
	#page7 > div > div.d_flex{padding-top: 23px;padding-bottom: 17px;}
	#page8 #form_box .mail input{padding: 12px 10px 7px;}
}

.g-recaptcha > div {
margin: 0 auto 30px;
overflow: hidden;
}