@import url('https://fonts.googleapis.com/css2?family=Crimson+Text&display=swap');
html,body{
	font-family: "Hannari", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "Hiragino Mincho Pro", "ヒラギノ明朝 Pro", serif;
	font-weight: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: #222;
	line-height: 2;
	letter-spacing: 0.06em;
}
header,footer,div,section,article,nav,a,p,span,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,img,dl,dt,dd,form,input,textarea{ box-sizing: border-box; }
::selection { background: #ddd; }
::-moz-selection { background: #ddd; }
a{ color: #666;transition: 0.4s; }
a:hover{ opacity: 0.7;cursor: pointer; }
img{
	max-width: 100%;
	display: block;
}

.f-left{ float: left; }
.f-right{ float: right; }
.clear{ clear: both; }

.crimson{ font-family: 'Crimson Text', serif; }

.blue{ color: #4b7e9c; }


h2,h3,h4{
  font-weight: normal;
}



#sub{
  padding-bottom: 6.25em;
}
#sub.bg-gray{
  background: #f5f5f5;
}



header{
  padding-top: 4.4em;
}
nav{
  width: 100%;
  height: 4.4em;
  background: #fff;
  border-bottom: 1px solid #eee;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  transition: 0.4s;

  display: flex;
  justify-content: flex-start;
  align-items: center;
}
h1.logo{
  width: 9em;
  margin-left: 1.6em;
}
header ul.nav{
  margin-right: 1.3em;
  display: flex;
  justify-content: flex-start;
  margin-left: auto;
}
header a{
  text-decoration: none;
}
header ul.nav li{
  display: block;
  font-size: 93.75%;
  padding: 0 1.1em;
  line-height: 2.5;
}
header ul li a{
  color: #222;
  position: relative;
}
header ul li a:hover{
  opacity: 1;
}
header ul.nav li a:before{
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background: #222;
  position: absolute;
  bottom: -0.4em;
  left: 0;
  transition: 0.4s;
}
header ul.nav li a:hover:before{
  width: 100%;
}
header ul li.nav-price{
  position: relative;
  cursor: default;
}
header ul li.nav-price ul{
  border: 1px solid #eee;
  padding: 1em 0;
  background: #fff;
  position: absolute;
  left: 0;
  top: 2.5em;
  transition: 0.4s;
  opacity: 0;
  pointer-events: none;
  z-index: 999;
}
header ul li.nav-price:hover ul{
  display: block;
  opacity: 1;
  pointer-events: inherit;
}

header ul li.nav-price ul li{
  display: block;
  width: 8em;
  text-align: center;
  line-height: 1;
}
header ul li.nav-price:hover ul li{
  line-height: 2.6;
}

header a.nav-btn{
  display: block;
  font-size: 78%;
  font-weight: bold;
  color: #fff;
  background-image: url(../images/common/btn_bg.png);
  background-size: 2.8em auto;
  background-color: #bf3a3a;
  width: 3.8em;
  height: 3.8em;
  border-radius: 50%;
  margin-right: 2em;

  display: flex;
  justify-content: center;
  align-items: center;
}
header .top-header{
  display: none;
}


/* トップページのヘッダー　*/
.home header nav{
  top: -4.4em;
}
.home header{
  padding-top: 0;
}
.home header .top-header{
  display: block;
}


/* nav付加クラス　*/
.transform{
  position: fixed;
  top: 0 !important;
  left: 0;
  z-index: 999;
}



h2.h2-01{
  font-size: 100%;
  color: #457b9b;
  line-height: 1;
}
h2.h2-01 span{
  display: block;
  font-size: 300%;
  position: relative;

  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode:vertical-rl; 
}
h2.h2-01 span:before{
  content: "";
  display: block;
  width: 1px;
  height: 100%;
  background: #457b9b;
  position: absolute;
  top: 0;
  right: -0.4em;
}


h2.h2-head{
  font-size: 100%;
  text-align: center;
  padding: 5em 5% 4em;
  position: relative;
  overflow: hidden;
}
h2.h2-head span{
  font-size: 225%;
  position: relative;
  z-index: 1;

  display: inline-block;
  border-bottom: 1px solid;
  padding: 0 0.2em 0.15em;
}


#sub h2.h2-head:before{
  content: "";
  display: block;
  width: 58.4em;
  height: 11em;
  position: absolute;
  top: 1.5em;
  left: 50%;
  margin-left: -15em;
  z-index: 0;
  background: url(../images/common/bg-4.png) center top no-repeat;
  background-size: contain;
}
#sub.bg-gray h2.h2-head:before{
  background: url(../images/common/bg-4-wh.png) center top no-repeat;
  background-size: contain;
}


h3.h3-01{
  font-size: 200%;
  margin-bottom: 0.4em;
}



a.tel-wrap{
  display: block;
  margin: 0.3em 0 0.6em;
  text-decoration: none;
}
span.tel{
  display: block;
  font-family: 'Crimson Text', serif;
  font-size: 230%;
  line-height: 1.2;
}
span.tel span{
  font-size: 63%;
}



a.btn-01{
  display: inline-block;
  font-family: 'Crimson Text', serif;
  text-decoration: none;
  color: #222;
  line-height: 3;
  padding-right: 7.25em;
  position: relative;
  margin-top: 2.8em;
  float: right;
}
a.btn-01:hover{
  opacity: 1;
}
a.btn-01:before{
  content: "";
  display: block;
  width: 6.25em;
  height: 3em;
  background: url(../images/common/arrow-01.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  top: 0;
  right: 0;
  transition: 0.3s;
}
a.btn-01:hover:before{
  right: -0.6em;
}



.w860{
  width: 86%;
  margin: 0 auto;
}
.w920{
  width: 92%;
  margin: 0 auto;
}




/* スクロールしてふわっと表示 */
.fd {
  opacity: 0;
  transition: all 1s;
}
.fd-b {
  opacity: 0;
  transform: translateY(2.5em);
  transition: all 1s;
}

.fd.scrollin,.fd-b.scrollin {
  opacity: 1;
  transform: translate(0, 0);
}
.count2.scrollin {
  -moz-transition-delay: 300ms !important;
  -webkit-transition-delay: 300ms !important;
  -o-transition-delay: 300ms !important;
  -ms-transition-delay: 300ms !important;
}
.count3.scrollin {
  -moz-transition-delay: 600ms !important;
  -webkit-transition-delay: 600ms !important;
  -o-transition-delay: 600ms !important;
  -ms-transition-delay: 600ms !important;
}


/* ロード画面 */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #b1d9f3;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}
.spinner {
  width: 10rem;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -5rem;
  margin-top: -0.9rem;
}
.spinner > div {
  width: 1.3rem;
  height: 1.3rem;
  margin: 0 0.1rem;
  background-color: #fff;

  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}
.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}
@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% { -webkit-transform: scale(0) }
  40% { -webkit-transform: scale(1.0) }
}

@keyframes sk-bouncedelay {
  0%, 80%, 100% { 
    -webkit-transform: scale(0);
    transform: scale(0);
  } 40% { 
    -webkit-transform: scale(1.0);
    transform: scale(1.0);
  }
}
.loaded {
  opacity: 0;
  visibility: hidden;
}


/* ページトップ */
#pagetop {
  position: fixed;
  bottom: 1em;
  right: 1em;
  z-index: 998;
  font-size: 16px;
}
#pagetop i {
  padding-top: 11px;
}
#pagetop a {
  display: block;
  z-index: 999;
  border-radius: 30px;
  width: 40px;
  height: 40px;
  background-color: rgba(167,216,248,0.7);
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
  box-sizing: border-box;
}
#pagetop a:hover {
  text-decoration: none;
  opacity: 0.7;
}




/*　index
------------------------------------------------------------------------------------------------*/

.top-header a.nav-btn{
  margin-right: 0;
}
.top-header .top-nav{
  margin: 2.5em 0 3em;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.top-header a.top-logo{
  display: block;
  width: 14em;
}

/* トップスライド */
.swiper-slide{
  width: 730px;
  max-width: 66.36%;
  margin: 0 0.5em;
}
.swiper-slide img{
  width: 100%;
  height: 34em;
  object-fit: cover;
}
.swiper-slide,.swiper-slide-next,.swiper-slide-prev{
  position: relative;
}
.swiper-slide-active:after,.swiper-slide-next:after,.swiper-slide-prev:after{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #b1d9f3;
  opacity: 0.8;
  position: absolute;
  top: 0;
  bottom: 0;
  transition: 0.5s;
}
.swiper-slide-active:after{
  opacity: 0;
}
/* トップスライド装飾周り */
.swiper-container{
  padding-bottom: 40px;
}
.swiper-pagination-fraction, .swiper-pagination-custom, .swiper-container-horizontal > .swiper-pagination-bullets{
  bottom: 0;
}
.swiper-pagination-bullet{
  background: #e5e5e5;
  opacity: 1;
}
.swiper-pagination-bullet-active{
  background: #457b9b;
  opacity: 0.7;
}
.swiper-button-prev, .swiper-container-rtl .swiper-button-next{
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
  left: 1em;
}
.swiper-button-next, .swiper-container-rtl .swiper-button-prev{
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
  right: 1em;
}
.swiper-button-next, .swiper-button-prev{
  transition: 0.4s;
}
.swiper-button-next:hover, .swiper-button-prev:hover{
  opacity: 0.7;
}
.swiper-button-prev, .swiper-button-next {
  top: 46%;
  width: 1.7em;
  height: 3em;
  margin-top: -1.5em;
  background-size: 1.7em auto;
}



.top-01{
  text-align: center;
}
.top-01 h2{
  font-size: 100%;
  padding: 6em 0;
  position: relative;
  overflow: hidden;
}
.top-01 h2 span{
  font-size: 160%;
  line-height: 2;
  position: relative;
  z-index: 1;
}
.top-01 h2:before{
  content: "";
  display: block;
  width: 58.4em;
  height: 11em;
  background: url(../images/common/bg-4.png) center top no-repeat;
  background-size: contain;
  position: absolute;
  top: 5em;
  left: 50%;
  margin-left: -17em;
  z-index: 0;
}
.top-01 .wrap-01{
  background: url(../images/common/bg-1.png) center center #f5f5f5;
  margin-top: 8em;
  margin-bottom: 8em;
}
.top-01 .wrap-01 .content{
  position: relative;
}
.top-01 .wrap-01 img.img-01{
  width: 100%;
  position: absolute;
  top: -8em;
  left: 0;
}
.top-01 .wrap-01 p{
  padding: 13em 0 19.5em;
}
.top-01 .wrap-01 img.img-02{
  width: 27em;
  position: absolute;
  left: 1.3em;
  bottom: -8em;
}
.top-01 .wrap-01 img.img-03{
  width: 27em;
  position: absolute;
  right: 1.3em;
  bottom: -4em;
}



.top-02 .f-right,
.top-04 .f-right{
  width: 34em;
  padding-right: 7.8em;
}
.top-03 .f-left{
  width: 34em;
  padding-left: 7.8em;
}



.top-02{
  padding-top: 15em;
  overflow: hidden;
}
.top-02 .wrap-02 .content{
  position: relative;
}
.top-02 .wrap-02 .content:before{
  content: "";
  display: block;
  width: 28em;
  height: 10em;
  background: url(../images/common/bg-5.png) center top no-repeat;
  background-size: contain;
  position: absolute;
  top: -15em;
  right: -4.5em;
  z-index: -1;
}
.top-02 .wrap-02{
  background: url(../images/common/bg-2.png) center center #f5f5f5;
}
.top-02 .wrap-02 .content{
  position: relative;
  min-height: 37.5em;
}
.top-02 .wrap-02 img.img-04{
  width: 40em;
  position: absolute;
  top: -5em;
  left: -17.5em;
}
.top-02 .wrap-02 h2.h2-01{
  position: absolute;
  top: -5em;
  right: 0;
}
.top-02 .f-right{
  padding-top: 13em;
}



.top-03 .wrap-03{
  margin-top: -5em;
  min-height: 37.5em;
  overflow: hidden;
}
.top-03 .wrap-03 .content{
  position: relative;
}
.top-03 .wrap-03 .content:before{
  content: "";
  display: block;
  width: 34em;
  height: 12em;
  background: url(../images/common/bg-6.png) center top no-repeat;
  background-size: contain;
  position: absolute;
  top: 24em;
  left: -13.5em;
  z-index: -1;
}
.top-03 .wrap-03 .content{
  position: relative;
}
.top-03 .wrap-03 img.img-05{
  width: 40em;
  position: absolute;
  top: 0;
  right: -17.5em;
}
.top-03 .wrap-03 h2.h2-01{
  position: absolute;
  top: 0;
  left: 0;
}
.top-03 .f-left{
  padding-top: 17em;
}



.top-04{
  padding-top: 5em;
  overflow: hidden;
}
.top-04 .wrap-04{
  background: url(../images/common/bg-3.png) center center #f5f5f5;
}
.top-04 .wrap-04 .content{
  position: relative;
  min-height: 37em;
}
.top-04 .wrap-04 img.img-06{
  width: 40em;
  position: absolute;
  top: -5em;
  left: -17.5em;
}
.top-04 .wrap-04 h2.h2-01{
  position: absolute;
  top: -5em;
  right: 0;
}
.top-04 .f-right{
  padding-top: 13em;
}



footer .footer-1{
  background: url(../images/common/footer-bg.jpg) center top no-repeat;
  background-size: cover;
  padding: 3em 0;
}
footer .footer-1 a,
#nav-content .nav-reserve a{
  color: #222;
  text-decoration: none;
}
footer .footer-1 a:hover,
#nav-content .nav-reserve a:hover{
  opacity: 1;
}
footer .footer-1 .content,
#nav-content .nav-reserve .content{
  display: flex;
  justify-content: center;
  align-items: center;
}
footer .footer-1 .reserve-left,
#nav-content .nav-reserve .reserve-left{
  font-size: 150%;
  color: #fff;
  background-image: url(../images/common/btn_bg.png);
  background-size: 3em auto;
  background-color: #bf3a3a;
  width: 4.16em;
  height: 4.16em;
  line-height: 4.16em;
  border-radius: 50%;
  margin-right: 1.5em;
  text-align: center;
}
footer .footer-1 span.tel,
#nav-content .nav-reserve span.tel{
  font-size: 250%;
}

footer .footer-2{
  background: #457b9b;
  padding: 3em 0;
  color: #000;
}
footer .footer-2 .f-right,
footer .footer-2 .f-left{
  width: 50%;
}
footer .footer-2 ul li a{
  color: #000;
  text-decoration: none;
  position: relative;
}
footer .footer-2 ul li a:hover{
  opacity: 1;
}
footer .footer-2 ul li a:before{
  content: "";
  display: block;
  width: 1px;
  height: 0;
  background: #000;
  position: absolute;
  top: 0;
  right: -0.5em;
  transition: 0.4s;
}
footer .footer-2 ul li a:hover:before{
  height: 100%;
}
footer .footer-2 ul{
  overflow: hidden;
}
footer .footer-2 ul li{
  display: block;
  float: right;
  padding: 0 0.7em;

  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode:vertical-rl; 
}
footer .footer-2 ul li.sub{
  font-size: 90%;
}
footer .footer-2 a.footer-logo{
  display: block;
  width: 12em;
  margin-bottom: 1.2em;
}
footer .footer-2 p,
footer .footer-2 .copy{
  font-size: 93.75%;
}
footer .footer-2 span.check{
  display: block;
  font-size: 87%;
  margin-bottom: 0.8em;
}




/*　about
------------------------------------------------------------------------------------------------*/

.img-shadow-1 img,
.img-shadow-2 img{
  width: 100%;
  height: 15em;
  object-fit: cover;
  position: relative;
  z-index: 1;
}
.img-shadow-1,
.img-shadow-2{
  width: 22.5em;
  margin: 0 0.8em 0.8em 0;
  position: relative;
}
.img-shadow-1:before,
.img-shadow-2:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #eee;
  position: absolute;
  top: 0.8em;
  left: 0.8em;
  z-index: 0;
}
.img-shadow-2 img{
  height: 8em;
}
.img-shadow-2{
  width: 12em;
  margin: 0 0.5em 0.5em 0;
}
.img-shadow-2:before{
  top: 0.5em;
  left: 0.5em;
}
ul.about-li-1 li{
  display: block;
  overflow: hidden;
  padding-bottom: 4.5em;
}
ul.about-li-2 li{
  overflow: hidden;
  padding: 1.6em 0;
  border-bottom: 1px solid #ddd;
}
ul.about-li-2{
  border-top: 1px solid #ddd;
}
ul.about-li-1 li:nth-child(2n-1) .img-shadow-1,
ul.about-li-2 li:nth-child(2n-1) .img-shadow-2,
ul.about-li-1 li:nth-child(2n) .text-wrap,
ul.about-li-2 li:nth-child(2n) .text-wrap{
  float: right;
}
ul.about-li-1 li:nth-child(2n) .img-shadow-1,
ul.about-li-2 li:nth-child(2n) .img-shadow-2,
ul.about-li-1 li:nth-child(2n-1) .text-wrap,
ul.about-li-2 li:nth-child(2n-1) .text-wrap{
  float: left;
}
ul.about-li-1 li:nth-child(2n-1) .text-wrap,
ul.about-li-1 li:nth-child(2n) .text-wrap{
  width: 49%;
}
ul.about-li-2 li:nth-child(2n-1) .text-wrap{
  width: 75%;
}
ul.about-li-2 li:nth-child(2n) .text-wrap{
  width: 70%;
}




/*　price
------------------------------------------------------------------------------------------------*/

.price h3.price-h3{
  font-size: 185%;
  text-align: center;
}
.price .period{
  text-align: center;
}
table.price-table{
  width: 100%;
  margin: 2em 0 2em;
  text-align: center;
  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}
table.price-table th,
table.price-table td{
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  font-weight: normal;
  padding: 0.3em 0;
}
table.price-table th{
  background: #f8f8f8;
}
table.price-table td{
  font-size: 125%;
}

/*
.price dl.price-dl{
  font-size: 150%;
  margin: 0.5em 0 1.4em;

    display:-webkit-box;
    display:-moz-box;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
}
.price dl.price-dl dt{
  width: 80%;
  padding: 0.5em 0;
  border-bottom: 1px solid #ddd;
}
.price dl.price-dl dt span{
  font-size: 75%;
}
.price dl.price-dl dd{
  width: 20%;
  padding: 0.5em 0;
  border-bottom: 1px solid #ddd;
  text-align: right;
}
*/

.price .price-note{
  margin-bottom: 1.5em;
}
.price .price-paid-1,
.price .price-paid-2{
  padding: 1.5em;
}
.price .price-paid-1{
  margin-top: 4em;
  background: #eaf4fa;
}
.price .price-paid-2{
  margin-top: 1.5em;
  background: #fbf0f0;
}
.price .price-paid-1 h3,
.price .price-paid-2 h3{
  font-size: 175%;
  margin-bottom: 0.4em;
}
.price .price-paid-1 h3{ color: #4b7e9c; }
.price .price-paid-2 h3{ color: #bf4545; }

dl.paid-dl{
  margin: 1em 0 0.5em;

    display:-webkit-box;
    display:-moz-box;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
}
dl.paid-dl dt{
  width: 35%;
  padding: 0.5em 0;
  border-bottom: 1px solid #f2caca;
}
dl.paid-dl dd{
  width: 65%;
  padding: 0.5em 0;
  border-bottom: 1px solid #f2caca;
}




/*　access
------------------------------------------------------------------------------------------------*/

.access .map iframe {
  display: block;
  width: 100%;
  height: 25em;
  border: 0;

  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}
.access .map{
  width: 100%;
  position: relative;
}
.access .map:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: #738999;
  mix-blend-mode: overlay;
  z-index: 1;
  pointer-events: none;
}
.access .access-01{
  text-align: center;
  margin: 3.75em 0 4em;
}
.access .access-01 span{
  display: block;
  font-size: 175%;
  margin-bottom: 0.4em;
}
.access dl.access-dl{
  border-top: 1px solid #ddd;

    display:-webkit-box;
    display:-moz-box;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
}
.access dl.access-dl dt{
  width: 27%;
  padding: 1em 0;
  border-bottom: 1px solid #ddd;
  display: flex;
  align-items: center;
}
.access dl.access-dl dd{
  width: 73%;
  padding: 1em 0;
  border-bottom: 1px solid #ddd;
  display: flex;
  align-items: center;
}




/*　gallery
------------------------------------------------------------------------------------------------*/

.gallery .gallery-note{
  color: #457b9b;
  font-size: 93.75%;
  text-align: center;
  margin-bottom: 1.5em;
}
ul.gallery-li{
  overflow: hidden;
}
ul.gallery-li li{
  display: block;
  float: left;
  width: 24%;
  margin: 0 0.5% 1em;
  position: relative;
}
ul.gallery-li li:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: #fff;
  opacity: 0;
  transition: 0.4s;
}
ul.gallery-li li:hover:before{
  opacity: 0.3;
}
ul.gallery-li li img{
  width: 100%;
  height: 11em;
  object-fit: cover;
}




/*　PC
------------------------------------------------------------------------------------------------*/
@media (min-width: 769px){
.sp{ display: none !important; }

body{ font-size: 16px; }
h2{ font-size: 200%; }

.content{
  width: calc( 100% - 9.08% );
	max-width: 1000px;
	margin: 0 auto;
}
.content.box-wh{
  background: #fff;
  width: 100%;
  max-width: 1100px;
  padding: 3.75em 4.54%;
}



/*　タブレット
------------------------------------------------------------------------------------------------*/
@media (max-width: 1100px){

body{ font-size: 1.45vw; }

.content{
  margin: 0 4.54%;
}
.content.box-wh{
  margin: 0 auto;
}



}/*　タブレットここまで */
}/*　PCここまで */




/*　スマホ
------------------------------------------------------------------------------------------------*/
@media (max-width: 768px){
.pc{ display: none !important; }

body{ font-size: 3.7vw; }
h2{ font-size: 150%; }

.f-left,
.f-right{
  width: 100% !important;
  float: inherit;
}

#sub {
  padding-bottom: 6em;
}
#sub.bg-gray{
  background: #fff;
}


#sub.bg-gray h2.h2-head:before{
  background: url(../images/common/bg-4.png) center top no-repeat;
  background-size: contain;
}


.content{
	width: 100%;
	padding: 0 5%;
}


header{
  padding-top: 4em;
}
nav{
  height: 4em;
}
h1.logo{
  width: 8em;
  margin-left: 1em;
}
#nav-drawer {
  position: relative;
  margin-left: auto;
}
.nav-unshown {
  display:none;
}
/*アイコンのスペース*/
#nav-open {
  display: inline-block;
  width: 4em;
  height: 4em;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  z-index: 9999;
}
#nav-open span, #nav-open span:before, #nav-open span:after {
  position: absolute;
  height: 2px;/*線の太さ*/
  width: 1.6em;/*長さ*/
  background: #222;
  display: block;
  content: '';
  transition: .3s ease-in-out;
}
#nav-open span{
  top: 50%;
  left: 50%;
  margin-left: -0.8em;
}
#nav-open span:before {
  bottom: 0.5em;
}
#nav-open span:after {
  bottom: -0.5em;
}
#nav-content {
  overflow: auto;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9998;
  width: 100%;
  height: 100%;
  background: #fff;
  transition: .4s ease-in-out;
  opacity: 0;
  pointer-events: none;
}
/*チェックが入ったらもろもろ表示*/
#nav-input:checked ~ #nav-content {
  opacity: 1;
  pointer-events: inherit;
}
#nav-input:checked ~ #nav-open span {
  background: #fff;
}
#nav-input:checked ~ #nav-open span:before {
  background: #222;
  transform: rotate(-45deg);
  bottom: 0;
}
#nav-input:checked ~ #nav-open span:after {
  background: #222;
  transform: rotate(45deg);
  bottom: 0;
}
#nav-input:checked ~ #nav-open{
  position: fixed;
  top: 0;
  right: 0;
}


#nav-content ul{
  margin: 4em 0;
}
#nav-content ul li{
  font-size: 130%;
  text-align: center;
  line-height: 3;
}
#nav-content .nav-reserve{
  width: 100%;
  position: absolute;
  bottom: 1.3em;
}


#nav-content ul li.nav-price-sp ul{
  margin: 0 0 0.8em;
  font-size: 60%;
}


/* トップページのヘッダー　*/
.home header nav{
  top: 0;
}
.home header{
  padding-top: 4em;
}


h2.h2-01 span{
  font-size: 200%;
}
h2.h2-head{
  padding: 3em 5%;
}
h2.h2-head span{
  font-size: 160%;
}
#sub h2.h2-head::before{
  width: 33em;
  top: 1.5em;
  margin-left: -12em;
}


h3.h3-01{
  font-size: 140%;
}


span.tel{
  font-size: 200%;
}


a.btn-01{
  margin: 1em 0.8em 0 0;
}


.w860,
.w920{
  width: 100%;
}


footer .footer-1{
  padding: 2.5em 0;
}
footer .footer-2{
  padding: 2.5em 0 3em;
}
footer .footer-1 .reserve-left,
#nav-content .nav-reserve .reserve-left{
  font-size: 110%;
  margin-right: 1.2em;
}
footer .footer-1 .reserve-right,
#nav-content .nav-reserve .reserve-right{
  font-size: 90%;
}
footer .footer-2 ul li{
  writing-mode: inherit;
  -ms-writing-mode: inherit;
  -webkit-writing-mode: inherit;

  float: inherit;
  text-align: center;
  line-height: 2.8;
  font-size: 110%;
}
footer .footer-2 ul li a:before{
  content: none;
}
footer .footer-2 a.footer-logo {
  width: 11em;
  margin: 3em 0 1.5em;
}




/* トップスライド */
.swiper-slide{
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.swiper-slide img{
  height: 19em;
}
.swiper-container{
  padding-bottom: 30px;
}
.swiper-pagination-bullet {
  width: 7px;
  height: 7px;
}
.swiper-slide-active:after,.swiper-slide-next:after,.swiper-slide-prev:after{
  background: #fff;
}


.top-01 h2{
  padding: 3em 0;
}
.top-01 h2 span{
  font-size: 115%;
  line-height: 1.8;
}
.top-01 h2::before {
  width: 33em;
  top: 2.3em;
  margin-left: -12em;
}
.top-01 .wrap-01{
  margin-top: 3em;
}
.top-01 .wrap-01 img.img-01 {
  width: 90%;
  top: -3em;
  left: 5%;
}
.top-01 .wrap-01 p {
  padding: 6.5em 0 7.5em;
}
.top-01 .wrap-01 img.img-02 {
  width: 44%;
  left: 5%;
  bottom: -8em;
}
.top-01 .wrap-01 img.img-03 {
  width: 44%;
  right: 5%;
  bottom: -4em;
}


.top-02 .wrap-02 h2.h2-01,
.top-04 .wrap-04 h2.h2-01{
  left: 84%;
  right: auto;
}
.top-03 .wrap-03 h2.h2-01{
  left: 6%;
}

.top-02{
  padding-top: 14em;
}
.top-02 .wrap-02{
  padding-bottom: 8em;
}
.top-03 .wrap-03{
  padding-bottom: 3em;
}
.top-04 .wrap-04{
  padding-bottom: 6em;
}

.top-02 .wrap-02 .content,
.top-03 .wrap-03,
.top-04 .wrap-04 .content{
  min-height: inherit;
}
.top-02 .wrap-02 .content::before {
  width: 15em;
  height: 5em;
  top: -12em;
  right: 1em;
}
.top-03 .wrap-03 .content::before {
  width: 19em;
  height: 7em;
  top: 24em;
  left: -3em;
}

.top-02 .wrap-02 img.img-04,
.top-04 .wrap-04 img.img-06{
  width: 75%;
  top: -5em;
  left: -5%;
}
.top-03 .wrap-03 img.img-05 {
  width: 75%;
  top: 0;
  right: -5%;
}

.top-02 .f-right,
.top-03 .f-left,
.top-04 .f-right {
  width: 100%;
  padding-right: 0;
  padding-left: 0;
}
.top-02 .f-right,
.top-04 .f-right{
  padding-top: 13em;
}
.top-03 .f-left{
  padding-top: 18em;
}




/*　about
------------------------------------------------------------------------------------------------*/

ul.about-li-1 li{
  padding-bottom: 3em;
}
ul.about-li-1 li .text-wrap,
ul.about-li-2 li .text-wrap{
  width: 100% !important;
  float: inherit !important;
}
ul.about-li-1 li .img-shadow-1{
  width: 75% !important;
  float: inherit !important;
  margin: 0 auto 2.3em;
}
.img-shadow-1 img{
  height: 13em;
}
ul.about-li-2 li .img-shadow-2{
  width: 60% !important;
  float: inherit !important;
  margin: 0 auto 2.1em;
}
.img-shadow-2 img{
  height: 10.5em;
}




/*　price
------------------------------------------------------------------------------------------------*/

.price h3.price-h3{
  font-size: 140%;
}
.price .period{
  font-size: 95%;
}
table.price-table{
  margin: 1.3em 0 1.5em;
}
table.price-table th{
  font-size: 85%;
}
table.price-table td{
  font-size: 100%;
}

/*
.price dl.price-dl{
  font-size: 120%;
  margin-bottom: 2em;
}
.price dl.price-dl dt{
  width: 70%;
  padding: 0.5em 0 0;
}
.price dl.price-dl dd{
  width: 30%;
}
*/

.price .price-paid-1,
.price .price-paid-2{
  padding: 1.2em 1em;
}
.price .price-paid-1{
  margin-top: 3em;
}
.price .price-paid-2{
  margin-top: 1.4em;
}
.price .price-paid-1 h3,
.price .price-paid-2 h3{
  font-size: 120%;
  margin-bottom: 0.4em;
}
dl.paid-dl{
  margin: 1em 0 0.5em;
}
dl.paid-dl dt{
  width: 100%;
  padding: 0.5em 0 0;
  border-bottom: none;
}
dl.paid-dl dd{
  width: 100%;
  padding: 0 0 0.5em 0;
}





/*　access
------------------------------------------------------------------------------------------------*/

.access .map iframe {
  height: 20em;
}
.access .access-01{
  margin: 3em 0 3.5em;
}
.access .access-01 span{
  font-size: 160%;
}
.access dl.access-dl dt{
  width: 100%;
  padding: 1em 0 0;
  border-bottom: none;
  display: block;
}
.access dl.access-dl dd{
  width: 100%;
  padding: 0 0 1em 1em;
  display: block;
}




/*　gallery
------------------------------------------------------------------------------------------------*/


.gallery .gallery-note{
  margin-bottom: 1em;
}
ul.gallery-li li{
  width: 47%;
  margin: 0 1.5% 1em;
}
ul.gallery-li li:before{
  opacity: 0;
}
ul.gallery-li li img{
  height: 8em;
}




}/*　SPここまで */


