@charset "utf-8";
@import url("/parts/css/header__mirror__sp.css");
@import url("/parts/css/header__mirror__pc.css");

body {
  color: #333;
  font-size: 1.4rem;
  font-family: 'ヒラギノ角ゴシック','Hiragino Sans',YuGothic,'Yu Gothic','メイリオ', Meiryo,'Arial',sans-serif;
  padding-bottom: 245px; /*footerの高さ*/
  box-sizing: border-box;
}
.page__wrap{
  padding-top: 55px;
}
@media screen and (min-width: 768px){
  body {
    padding-bottom: 377px; /*footerの高さ*/
  }
  .page__wrap{
    padding-top: 70px;
  }
}
/*--------------------------------------------------------------
   FONT STYLE
--------------------------------------------------------------*/
/*.en,
.faq__normal dt{
  font-family: 'Bellefair', serif;
}*/
.serif{
  font-family: 'Bellefair','Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN',serif;
}
/*.jp{
  font-family: 'ヒラギノ角ゴシック','Hiragino Sans',YuGothic,'Yu Gothic','メイリオ', Meiryo,'Arial',sans-serif;
}*/
.font__b{
  font-weight: bold;
}
.font__vertical,
.font__vertical{
  white-space: nowrap;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  -webkit-text-orientation: mixed;
          text-orientation: mixed;
}
/*--------------------------------------------------------------
   FONT
--------------------------------------------------------------*/
@media screen and (max-width: 767px){
  .font__s__base{
    font-size: 1.2rem;
  }
  .font__s__s{
    font-size: 1rem;
  }
  .font__s__m{
    font-size: 1.2rem;
  }
  .font__s__mm{
    font-size: 1.2rem;
  }
  .font__s__l{
    font-size: 1.4rem;
  }
  .font__s__k{
    font-size: 1.6rem;
  }
  /*title size*/
  .font__s__h{
    font-size: 1.6rem;
    font-weight: bold;
  }
}
@media screen and (min-width: 768px){
  .font__s__base{
    font-size: 1.4rem;
  }
  .font__s__s{
    font-size: 1.2rem;
  }
  .font__s__m{
    font-size: 1.4rem;
  }
  .font__s__mm{
    font-size: 1.5rem;
  }
  .font__s__l{
    font-size: 1.8rem;
  }
  .font__s__k{
    font-size: 2.2rem;
  }
  /*title size*/
  .font__s__h{
    font-size: 2.6rem;
    font-weight: bold;
  }
}
/*--------------------------------------------------------------
   MARGIN
--------------------------------------------------------------*/
@media screen and (max-width: 767px){
  /*top*/
  .pt__s{
    padding-top: 15px;
  }
  .pt__m{
    padding-top: 25px;
  }
  .pt__l{
    padding-top: 40px;
  }
  .pt__k{
    padding-top: 50px;
  }
  /*bottom*/
  .pb__s{
    padding-bottom: 15px;
  }
  .pb__m{
    padding-bottom: 25px;
  }
  .pb__l{
    padding-bottom: 40px;
  }
  .pb__k{
    padding-bottom: 50px;
  }
}
@media screen and (min-width: 768px){
  /*top*/
  .pt__s{
    padding-top: 20px;
  }
  .pt__m{
    padding-top: 50px;
  }
  .pt__l{
    padding-top: 80px;
  }
  .pt__k{
    padding-top: 120px;
  }
  /*bottom*/
  .pb__s{
    padding-bottom: 20px;
  }
  .pb__m{
    padding-bottom: 50px;
  }
  .pb__l{
    padding-bottom: 80px;
  }
  .pb__k{
    padding-bottom: 120px;
  }
}
/*--------------------------------------------------------------
   WIDTH
--------------------------------------------------------------*/
.w__base,
.w__base__sp,
.w__variable{
  width: 94%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 768px){
  .w__base,
  .w__base__pc{
    width: 100%;
    max-width: 1040px;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
  }
  .w__base__sp{
    width: auto;
  }
  .w__variable,
  .w__variable__pc{
    width: 100%;
    max-width: 1640px;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}
@media screen and (min-width: 768px){
  .title{
    line-height: 1.2;
  }
  .title.left{
    padding-left: 20px;
  }
}
@media screen and (min-width: 1100px){
  .title.left{
    padding-left: 50px;
  }
}
/*--------------------------------------------------------------
   PARTS
--------------------------------------------------------------*/
.wa__pt,
.wa__pt__sp{
  background-image: url(/img/common/wa__pt.jpg);
}
@media screen and (min-width: 768px){
  .wa__pt__sp{
    background-image: none;
  }
}
.ttl span{
  display: block;
  letter-spacing: .1rem;
  font-weight: normal;
}
.tel__link{
  font-size: 0;
}
.tel__link span{
  display: inline-block;
  margin-left: 2%;
}
.tel__link .svg__img{
  width: 12px;
  height: 12px;
  display: inline-block;
}
@media screen and (min-width: 768px){
  .tel__link .svg__img{
    width: 18px;
    height: 18px;
  }
  .tel__link span{
    margin-left: 4px;
  }
}
.web__link{
  width: 62.5%;
}
@media screen and (min-width: 768px){
  .web__link{
    width: 220px;
  }
}
.btn__normal > *{
  display: inline-block;
  padding: 8px 27% 8px 0;
  position: relative;
  letter-spacing: .25rem;
}
.btn__normal > * > .svg__img{
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
}
.btn__normal > * > .svg__img svg{
  width: 100%;
  height: 10px;
}
.btn{
  display: inline-block;
  text-align: center;
}
.btn a{
  display: table;
  width: 100%;
}
.btn a > span{
  display: table-cell;
  height: 40px;
  vertical-align: middle;
}
@media screen and (min-width: 768px){
  .btn__normal a{
    padding: 10px 116px 10px 0;
    overflow: hidden;
  }
  .btn a > span{
    height: 58px;
  }
  .btn__normal a:hover .svg__img{
    -webkit-animation: animation__btn .8s linear 0s 1 normal;
    animation: animation__btn .8s linear 0s 1 normal;
  }
  @-webkit-keyframes animation__btn {
    0% {
      left: -100%;
    }
    100% {
      left: 0;
    }
  }
  @keyframes animation__btn {
    0% {
      left: -100%;
    }
    100% {
      left: 0;
    }
  }
}
@media screen and (min-width: 768px){
  .hover__blog .bg__img{
    transition: 0.8s;
  }
  .hover__blog{
    background-color: #333;
    overflow: hidden;
  }
  .hover__blog:hover .bg__img{
    opacity: 0.5;
    -webkit-filter: blur(4px);
    filter: blur(4px);
    -webkit-transform: scale(1.02);
    transform: scale(1.02);
  }
  .blog__cts{
    position: relative;
  }
  .blog__cts__item{
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    opacity: 0;
    transition: 0.8s;
  }
  .hover__blog:hover .blog__cts__item{
    opacity: 1;
  }
  .blog__cts__item > *{
    color: #fff;
  }
  .blog__cts__item .btn__normal > *{
    padding: 8px 65px 8px 0;
  }
}
.main__inner{
  text-align: center;
  display: table;
  width: 100%;
}
.main__cts{
  display: table-cell;
  vertical-align: middle;
  height: 175px;
}
.main__cts h1{
  display: inline-block;
  font-size: 1.7rem;
}
.main__cts h1 span{
  font-size: 1.3rem;
  padding-top: 2px;
}

@media screen and (min-width: 768px){
  .main__cts{
    height: 500px;
  }
  .main__cts h1{
    display: inline-block;
    font-size: 2.9rem;
  }
  .main__cts h1 span{
    font-size: 2rem;
    padding-top: 4px;
  }
  .main__img__inner{
    height: 500px;
  }
}
/*--------------------------------------------------------------
   totop
--------------------------------------------------------------*/
#totop{
  position: relative;
}
#totop .totop_inner{
  position: absolute;
  right: 25px;
  top: -56px;
}
#totop a{
  position: relative;
  width: 25px;
  height: 25px;
}
#totop a span{
  position: absolute;
  content: '';
  left: 50%;
  top: 50%;
  margin: -2px 0 0 -5px;
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  vertical-align: middle;
}
@media screen and (min-width: 768px){
  #totop .totop_inner{
    right: 25px;
    top: -80px;
  }
  #totop a{
    width: 50px;
    height: 50px;
  }
  #totop a span{
    margin: -5px 0 0 -7px;
    width: 12px;
    height: 12px;
  }
}
/*--------------------------------------------------------------
   header
--------------------------------------------------------------*/
header{
  height: 55px;
}
header .logo{
  z-index: 490;
}
.js__menu{
  top: 0;
}
.js__menu__btn{
  left: auto;
  right: 6px;
  z-index: 490;
}
.js__menu__btn .parts > span,
.js__menu__btn .parts > span:before,
.js__menu__btn .parts > span:after{
  width: 2px;
  height: 26px;
  left: auto;
  top: 0;
  transition: .5s;
}
.js__menu__btn .parts > span:before{
  left: -7px;
}
.js__menu__btn .parts > span:after{
  right: -7px;
}
.js__menu__btn.active .parts > span:before,
.js__menu__btn.active .parts > span:after{
  left: 0;
  right: 0;
}
.header__logo__sp{
  height: 32px;
}
.menu__btn{
  position: fixed;
  top: auto;
  bottom: 10px;
  left: 50%;
  transform: translate(-50% , 0);
}
.menu__btn a{
  text-align: center;
  width: 100%;
  height: 45px;
  line-height: 45px;
}
.menu__btn li{
  width: 49.5%;
  vertical-align: top;
}
.js__menu__inner{
  width: 100%;
  padding: 70px 17% 70px;
  box-sizing: border-box;
}
.js__menu .gnav__inner li + li{
  margin-top: 0;
}
.menu__btn li + li{
  margin-left: 1%;
}
.menu__btn li a{
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
}
.menu__btn li + li a{
  border-top-left-radius: 0;
  border-top-right-radius: 5px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 5px;
}
.js__menu .gnav__inner a{
  padding: 6px 15px 0;
  font-size: 1.4rem;
  height: 53px;
  box-sizing: border-box;
}
.js__menu .gnav__inner a span{
  display: block;
  margin-right: 0;
  font-size: 1rem;
}
@media screen and (min-width: 768px){
  header{
    height: 70px;
  }
  header .logo{
    left: 20px;
    z-index: 490;
  }
  .common__header{
    z-index: 490;
  }
  .common__header .js__menu .gnav__inner li{
    padding: 0 10px;
  }
  .common__header .js__menu .gnav__inner a::before{
    position: absolute;
    content: '';
    left: 0;
    bottom: 20px;
    width: 100%;
    height: 1px;
    transform: scale(0, 1);
    transition: .3s;
  }
  header .sns{
    position: static;
    display: inline-block;
    width: auto;
    font-size: 0;
  }
  header .sns a{
    height: 70px;
  }
  .header__logo__pc{
    width: 150px;
    height: 20px !important;
  }
  .js__menu{
    background-image: none;
    overflow-y: auto;
  }
  .js__menu__inner{
    width: auto;
    font-size: 0;
    padding: 0;
  }
  .js__menu{
    width: 100%;
    position: static;
    padding-right: 336px;
  }
  .js__menu .gnav__inner{
    font-size: 0;
    display: inline-block;
    vertical-align: top;
  }
  .js__menu .gnav__inner li{
    border: none;
  }
  .js__menu .gnav__inner li + li{
    margin: 0 0 0 10px;
  }
  .js__menu .gnav__inner a{
    position: relative;
    margin-right: 0;
    padding: 0;
    line-height: 70px;
    border: none;
    height: 70px;
    box-sizing: border-box;
    display: inline-block;
  }
  .js__menu .gnav__inner a:hover::before{
    transform: scale(1);
    transition: .3s;
  }
  .js__menu .gnav__inner a span{
    display: none;
  }
  .menu__btn{
    text-align: left;
    width: 336px;
    position: absolute;
    right: 0;
    left: auto;
    transform: translate(0);
    top: 0;
    height: 70px;
  }
  .menu__btn li{
    width: auto;
  }
  .menu__btn li + li{
    margin-left: 12px;
  }
  .menu__btn .contact{
    width: 140px;
    position: absolute;
    right: 0;
  }
  .menu__btn .contact a{
    padding: 0;
    border-radius: 0;
    transition: all 0.8s;
  }
  .menu__btn a{
    padding: 0;
    height: 70px;
  }
  .menu__btn a span{
    padding: 14px 0;
    box-sizing: border-box;
    height: 70px;
  }
  .menu__btn .tel address{
    font-size: 0;
    height: 70px;
    padding: 25px 0;
    box-sizing: border-box;
  }
  .menu__btn .tel .svg__img{
    position: static;
    display: inline-block;
    transform: translate(0);
    vertical-align: top;
    margin-right: 5px;
  }
  .menu__btn .tel .svg__img svg{
    width: 20px;
  }
}
@media screen and (min-width:768px) and ( max-width:1099px) {
  .common__header .js__menu .gnav__inner li{
    margin: 0;
    padding: 0 5px;
  }
  .menu__btn .contact{
    width: 110px;
    font-size: 1.2;
  }
  .menu__btn a span{
    padding: 18px 0;
  }
  .menu__btn{
    width: 275px;
  }
  .js__menu{
    padding-right: 262px;
  }
  .common__header .menu__btn .tel address .serif{
    font-size: 1.8rem;
    padding-top: 2px;
    display: inline-block;
  }
  .js__menu .gnav__inner a{
    font-size: 1.2rem;
  }
}
@media screen and (min-width:1100px) and ( max-width:1280px) {
  .js__menu .gnav__inner li + li{
    margin: 0;
  }
  .js__menu{
    padding-right: 308px;
  }
  .common__header .js__menu .gnav__inner li{
    padding: 0 5px;
  }
  .menu__btn{
    width: 315px;
  }
  .menu__btn .contact{
    width: 130px;
  }

}

/*--------------------------------------------------------------
   footer
--------------------------------------------------------------*/
footer{
  padding-bottom: 65px;
  background-color: #fff;
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 180px;
}
.breadcrumb__wrap{
  padding-top: 30px;
}
.breadcrumb__wrap ul{
  font-size: 0;
  padding: 0 15px;
}
.breadcrumb__wrap li{
  display: inline-block;
  margin: 0 10px;
  vertical-align: middle;
}
.breadcrumb__wrap li:last-child{
  padding: 15px 0;
}
.breadcrumb__wrap li a{
  padding: 15px 0;
}
.breadcrumb__wrap li.home{
  width: 16px;
}
.footer__wrap strong{
  width: 81px;
  display: inline-block;
}
@media screen and (min-width: 768px){
  footer{
    height: 377px;
    padding-bottom: 0;
  }
  .breadcrumb__wrap{
    padding-top: 84px;
  }
  .footer__wrap strong{
    width: 160px;
    display: inline-block;
  }
}
/*--------------------------------------------------------------
   PAGINATION
--------------------------------------------------------------*/
.pagination{
  font-size: 0;
}
.pagination li{
  position: relative;
  display: inline-block;
  font-size: 1.2rem;
  vertical-align: middle;
}
.pagination li > a,
.pagination li > span{
  display: block;
  width: 100px;
  max-width: 32px;
  height: 44px;
  vertical-align: middle;
  text-align: center;
  line-height: 44px;
  border: solid 1px;
  box-sizing: border-box;
}
.pagination li > span.dots{
  border: none;
  max-width: 1.2rem;
}
.pagination li + li{
  margin-left: 2%;
}
.pagination .prev,
.pagination .next{
  background-color: #ccc;
}
.pagination .current{
  background-color: #ccc;
}
.pagination .prev::before,
.pagination .next::before{
  content: '';
  display: block;
  position: absolute;
  top:50%;
  left:50%;
  margin-top: -5px;
  margin-left: -4px;
  width: 10px;
  height: 10px;
  border-top: 1px solid;
  border-right: 1px solid;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.pagination .next::before{
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  margin-left: -8px;
}
@media screen and (min-width: 375px){
  .pagination li > a,
  .pagination li > span{
    max-width: 38px;
  }
}
@media screen and (min-width: 414px){
  .pagination li > a,
  .pagination li > span{
    max-width: 43px;
  }
}
@media screen and (min-width: 768px){
  .pagination li + li{
    margin-left: 10px;
  }
  .pagination{
    font-size: 1.2rem;
  }
  .pagination li{
    font-size: 1.4rem;
  }
}
/*--------------------------------------------------------------
   SIDE
--------------------------------------------------------------*/
.side__nav h2{
  border-top: solid 1px #000;
  border-bottom: solid 1px #000;
}
.side__nav li{
  padding: 10px 0;
}
/*--------------------------------------------------------------
   HOVER
--------------------------------------------------------------*/
#loader__wrap{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 500;
}
#loader__wrap .loader__cts{
  position: absolute;
  display: inline-block;
  top: 45%;
  left: 50%;
  width: 39vw;
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  -webkit-animation: animation-keyframes-per 1s linear 0s infinite alternate;
  animation: animation-keyframes-per 1s linear 0s infinite alternate;
}
.hover__curtain__grey,
.hover__curtain__white{
  position: relative;
  overflow: hidden;
  opacity: 1!important;
  transform: translate(0,0)!important;
  -webkit-transform: translate(0,0)!important;
}
.hover__curtain__grey:before,
.hover__curtain__white:before{
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  display: block;
  height: 0;
  width: 100%;
  z-index: -1;
}
.hover__curtain__grey.mo.ve:before,
.hover__curtain__white.mo.ve:before{
  height: 100%;
  transition: height 3s;
}
@media screen and (min-width: 768px){
  .hover__spread__inner{
    overflow: hidden;
  }
  .hover__spread .bg__img{
    -webkit-transition: -webkit-transform 0.8s;
    transition: -webkit-transform 0.8s;
    transition: transform 0.8s;
    transition: transform 0.8s, -webkit-transform 0.8s;
  }
  .hover__spread:hover .bg__img{
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  .hover__curtain__grey.mo.ve:before,
  .hover__curtain__white.mo.ve:before{
    transition: height 2s;
  }
  #loader__wrap{
    height: 100vh;
  }
  #loader__wrap .loader__cts{
    width: auto;
  }
  #loader__wrap .loader__cts svg{
    width: 200px;
    height: 332px;
  }
  #totop a:hover,
  header .logo a:hover,
  .common__header .sns a:hover,
  .home__header .js__menu li a:hover{
    opacity: .5;
    transition: 0.8s;
  }

}

@keyframes animation-keyframes-per {
  0% {
    opacity: 0;
  }
  60% {
    opacity: .8;
  }
  100% {
    opacity: 1;
  }
}
/*--------------------------------------------------------------
   ワードプレス 投稿用
--------------------------------------------------------------*/
.blog__cts__main h2,
.blog__cts__main h3,
.blog__cts__main h4,
.blog__cts__main h5,
.blog__cts__main h6{
  font-weight: bold;
}
.blog__cts__main h2{
  font-size: 1.8rem;
}
.blog__cts__main h3{
  font-size: 1.6rem;
}
.blog__cts__main h4{
  font-size: 1.4rem;
}
@media screen and (min-width: 768px){
  .blog__cts__main h2{
    font-size: 2.8rem;
  }
  .blog__cts__main h3{
    font-size: 2.4rem;
  }
  .blog__cts__main h4{
    font-size: 2rem;
  }
  .blog__cts__main h5{
    font-size: 1.6rem;
  }
}