* {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  }

body {
  margin: 0;
  padding: 0;
  color: #000;
  line-height: 200%;
  letter-spacing: .1em;
  -webkit-text-size-adjust: 100%; /* ブラウザ側で自動調整しない */
  -webkit-font-smoothing: antialiased; /* アンチエイリアス */
  overflow-x: hidden;
  }

body,
input { font-family: sans-serif; }

@media screen and (max-width: 640px) {

body { font-size: 80%; }

}

/* ロード中一瞬表示される要素を消す 該当ページにscript追記 */
#show { display: none; }


/* --------------------------------------------------------- ★ a */


a { text-decoration: none; transition: .5s; }

a:link,
a:visited { color: #000; }

a:hover { color: #86c600; }

a:img { max-width: 100%; }

a:hover img { opacity: 0.7; filter: alpha(opacity=70); }

.active a { color: #86c600; }

.border { border: solid 1px #ccc; }


/* --------------------------------------------------------- ★ img */


img { max-width: 100%; height: auto; border: none; vertical-align: bottom; transition: 1s; } /* DIV内で画像の下にできる隙間をなくす */

.imgs img { border-radius: 10px; }


/* --------------------------------------------------------- ★ pc sp */

@media screen and (min-width: 1100px) {
.sp { display: none; }
}

@media screen and (min-width: 640px) {
.sp2 { display: none; }
}

@media screen and (max-width: 1100px) {
.pc { display: none; }
}

/* --------------------------------------------------------- ★ p */


p { margin: 0; }

.text p { margin-bottom: 30px; }

.left { text-align: left; }

.right { text-align: right; }

.center { text-align: center; }


/* --------------------------------------------------------- ★ li */


ol, ul { margin: 0; padding: 0; }

li { display: inline-block; max-width: 100%; vertical-align: top; transition: .5s; }

.list li {
  display: block;
  margin-bottom: 10px;
  }

.list2 li {
  display: list-item;
  list-style-type: disc;
  list-style-position: inside;
  padding-left: 1.2em;
  text-indent: -1.2em;
  }

.text .list, .list2 { margin-bottom: 30px; }


/* --------------------------------------------------------- ★ h */


h1 { font-size: 180%; letter-spacing: .2em; }

h2 { font-size: 150%; margin-bottom: 40px; }

h3 { font-size: 110%; margin-bottom: 20px; }

h5  { display: inline-block; font-size: 150%; padding: 20px 10px; border-top: solid 5px #000; border-bottom: solid 5px #000; }

@media screen and (max-width: 640px) {

h1 { font-size: 130%; }

}

/* --------------------------------------------------------- ★ hr */

hr { margin: 60px 0; border: solid 1px #000; }

/* --------------------------------------------------------- ★ table フレームあり */

.table { margin-bottom: 40px; }

.table, 
.table td, 
.table th { border: 1px solid #ccc; border-collapse: collapse; }
.table td,
.table th { padding: 15px; }
.table th { text-align: left; }
.table td { text-align: right; }

@media screen and (max-width: 1200px) {

.table-scroll {
  display: block;
  overflow-x: scroll;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  }

}

/* --------------------------------------------------------- ★ LR */


.center { text-align: center; }

.l,
.l2 { float: left; }

.r { overflow: hidden; }

.clear { clear: both; }


/* --------------------------------------------------------- ★ box */


.box {
  max-width: 680px;
  margin: auto; 
  padding: 20px;
  }

.space { margin-top: 160px; } /* 各ページ👆の余白 */

@media screen and (max-width: 1100px) {
.box {  max-width: 500px; }
}

@media screen and (max-width: 640px) {
.box { width: 100%; }
.space { margin-top: 120px; }
}



/* --------------------------------------------------------- ★ logo / img */


@media screen and (min-width: 1100px) {
.logo { position: fixed; top: 40px; left: 80px; }
.logo img { height: 70px; }
}

@media screen and (max-width: 1100px) {
.logo { position: absolute; top: 30px;  left: 20px; z-index: 10; }
.logo img { height: 50px; }
}

/* --------------------------------------------------------- ★ footer */


iframe { position: absolute; bottom 0; border: none; }
.footer { width: 100%; margin-top: 60px; }

footer, .footer { height: 520px; }

footer { 
  padding: 80px 0;
  line-height: 180%;
  font-weight: bold;
  color: #000;
  background: #acff00;
  }

.f-logo img { height: 60px; margin-bottom: 40px; }

footer ul { text-align: left; }

footer li { display: block; margin-bottom: 10px; }

footer a:hover { color: #fff; }

@media screen and (min-width: 640px) {
footer .r { float: right; }
}

@media screen and (max-width: 840px) {
footer, .footer { height: 900px; }
}

@media screen and (max-width: 640px) {
footer, .footer { height: 700px; }
footer { padding: 30px 10px; } 
footer .r { width: 100%; padding-top: 20px; }
}


/* --------------------------------------------------------- ★ MENU */

.menu { text-align: center; }
.menu ul { width: 660px; margin: auto; }
.menu img { width: 200px; }
.menu li { margin: 10px; }

@media screen and (max-width: 1100px) {
.menu ul { width: 500px; }
.menu img { width: 140px; }
}

@media screen and (max-width: 640px) {
.menu ul { width: 280px; }
.menu { padding: 0 0 40px 0; }
.menu img { width: 120px; }
}

/* --------------------------------------------------------- ★ Booking */


.booking { position: fixed; bottom: 30px; right: 30px; width: 120px; z-index: 1000; }

@media screen and (max-width: 640px) {
.booking { bottom: 20px; right: 30px; width: 80px; }
}

/* --------------------------------------------------------- ★ intro */


.intro { font-weight: bold; }

@media screen and (min-width: 1100px) {
.intro { 
  display: block;
  width: fit-content;
  margin: auto;
  padding-top: 60px;
  font-size: 120%;
  }
}

@media screen and (max-width: 1100px) {
.intro { 
  width: 90%;
  padding: 0 0 0 20px;
  transform: rotate(-25deg);
  }
}

/* --------------------------------------------------------- ★ Top Room */


#top-room { position: relative; text-align: center; }

#top-room .just-relax { position: absolute; top: 140px; left: 0; width: 380px; }

#top-room .about-room { position: absolute; top: 0; right: 0; width: 150px; }

#top-room .room-img { 
  position: absolute;
  top: 500px;
  left: 50%;
  transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  width: 100%;
  margin-top: 40px;
  }

@media screen and (max-width: 1100px) {

#top-room { height: 500px; }
#top-room .just-relax { top: 140px; left: 0; width: 180px; }
#top-room .room-img { width: 100%;  top: 300px; }
#top-room .about-room { top: 0; right: 0; width: 100px; }

}

/* --------------------------------------------------------- ★ Top Amenity */


#amenity { position: relative; margin-top: 800px; text-align: center; }

#amenity .title { position: absolute; top: 0; left: 0; width: 300px; }

#amenity .memo { position: absolute; top: 100px; right: 0; width: 200px; }

.top-amenity-img { 
  position: absolute;
  top: 380px;
  left: 50%;
  transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  width: 100%;
  margin-top: 40px;
  }

@media screen and (max-width: 1100px) {

#amenity { margin-top: 0; }
#amenity .title { width: 160px; }
#amenity .memo { top: 20px; width: 100px; }
.top-amenity-img { top: 280px; width: 90%; }

}

/* --------------------------------------------------------- ★ Top Around */


#top-around { margin-top: 1600px; text-align: center; }

#top-around img { width: 80%; }

@media screen and (max-width: 1100px) {
#top-around { margin-top: 660px; }
}

/* --------------------------------------------------------- ★ Top Souvenirs */


#top-souvenirs { margin-top: 140px; text-align: center; }

#top-souvenirs .title { width: 80%;; margin-bottom: 60px; }

#top-souvenirs li { width: 200px; margin: 10px; }

#top-souvenirs li img { width: 150px; }

@media screen and (max-width: 1100px) {

#top-souvenirs { margin-top: 100px; }
#top-souvenirs li { width: 100%; }
#top-souvenirs li { width: 80px; }
#top-souvenirs li img { width: 80px; }

}

/* --------------------------------------------------------- ★ Top Aout */


#about { margin-bottom: 80px; }

#about .title { height: 180px; margin: 100px 0 60px 0; }

#about.lines { text-align: center; }

#about.lines img { width: 80%; }

#about p {
  background-image:
    linear-gradient(
      180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 97%,
      #ddd 97%,
      #ddd 100%
    );
  background-size: 100% 3em;
  line-height: 300%;
  margin-bottom: 3em;
}

@media screen and (max-width: 1100px) {

#about { margin-bottom: 60px; }
#about .title { width: 35%; margin: 60px 0 0 0; }
#about.lines img { width: 100%; }

}


/* --------------------------------------------------------- ★ ROOM */


#room .main { margin: 35px 0 60px 0; }

#room .about-room { text-align: center; }

#room .item { margin-top: 100px; text-align: center; }

#room .item li { width: 280px; margin: 10px 15px; font-weight: bold; line-height: 180%; text-align: left; }

#room .item li img { width: 100%; margin: 10px 0 20px 0; }

@media screen and (max-width: 1200px) {

#room .main { margin: 120px 0 60px 0; }

}

@media screen and (max-width: 1100px) {

#room .main { margin: 80px 0 60px 0; }

#room .about-room img { width: 100%; }

#room .item li { width: 140px; margin: 10px; }

#room .item li img { width: 140px;}

}

/* --------------------------------------------------------- ★ AMENITY */


.amenities-title { text-align: center; }

.amenities-title img { width: 60%; }

#amenity2 .item { margin-top: 100px; text-align: center; }

#amenity2 .item li { width: 150px; margin: 15px; font-weight: bold; line-height: 180%; }

#amenity2 .item li img { width: 100%; margin-bottom: 20px; }


@media screen and (max-width: 1100px) {

.amenities-title img { width: 80%; }

#amenity2 .item { margin-top: 60px; }

#amenity2 .item li { width: 120px; margin: 10px; }

#amenity2 .item li img { margin-bottom: 10px; }

}

/* --------------------------------------------------------- ★ PRICE */


#price2 .title { margin-bottom: 30px; }
#price2 .title img { height: 60px; }

#price2 .btn { display: inline-block; padding: 15px 30px; color: #fff; background: #000; font-size: 120%; font-weight: bold; }

#price2 .lang li { margin-right: 30px; }


/* --------------------------------------------------------- ★ MAP */


#map .by { margin: 60px 0; }

#map .googlemap { width: 200px; margin-bottom: 100px; }


#map .map { max-width: 1200px; margin: auto; padding: 80px 0 60px 0; }


@media screen and (max-width: 1600px) {
#map .map { max-width: 600px; margin: auto; padding: 80px 0 60px 0; }
}


@media screen and (max-width: 640px) {
#map .map { 
  width: 100%;
  padding: 120px 0 0 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
   }
#map .map img { max-width: initial; height: 450px; }
#map .by { margin: 30px 0; }
#map .slide { text-align: center; }
#map .slide img { width: 100px; margin-top: 30px; }
#map .googlemap { width: 100px; margin-bottom: 40px; }
}

/* --------------------------------------------------------- ★ SOUVENIR */


.souvenir-title { text-align: center; }

.souvenir-title img { width: 60%; }

#souvenir .item { margin: 100px 0; text-align: center; }

#souvenir .item li { width: 150px; margin: 15px; font-weight: bold; line-height: 180%; }

#souvenir .item li img { width: 100%; margin-bottom: 20px; border-radius: 10px; }

@media screen and (max-width: 1100px) {

.souvenir-title img { width: 80%; }

#souvenir .item { margin: 40px 0;}

#souvenir .item li { width: 140px; margin: 10px; }

}

/* --------------------------------------------------------- ★ AROUND */

#around .around-copy { text-align: center; }

#around .around-lr img { width: 60px; margin-top: 20px; }

#around .around-main { width: 70% }

#around table { width: 100%; margin: 100px 0; font-weight: bold; line-height: 180%; }

#around td { vertical-align: top; }

#around table,
#around td { border: 0; text-align: center; }

#around table li { width: 180px; margin: 20px; }

#around table ul img { width: 100%; margin-bottom: 20px; }

@media screen and (max-width: 1100px) {

#around .around-lr { display: none; }

#around .around-copy img { width: 70%; }

#around .around-main { width: 100% }

#around table { margin: 30px 0; }

#around table li { width: 42%; margin: 10px; }

}



/* --------------------------------------------------------- ★ CONTACT */


#contact { margin-top: 100px; padding: 100px 0; }

#contact .title { margin-bottom: 80px; text-align: center; }
#contact .title img { height: 60px; }

#contact .l { width: 200px; padding: 15px 0; font-weight: bold; }

#contact .item { margin: 30px 0 10px 0; font-weight: bold; }

#contact form { margin-top: 40px; }
#contact form hr { margin: 10px 0; border: 0; clear: both; }

#contact input,
#contact textarea { width: 100%; margin-bottom: 20px; padding: 10px; }

#contact textarea { height: 200px; }

#contact input[type="submit"] {
  appearance: none; /* iOS submitボタンのスタイルをリセット */
  -webkit-appearance: none;
  }

#contact .button { margin: 60px 0; text-align: center; }

#contact .button input {
  padding: 20px 30px;
  background: #f0f0f0;
  border: solid 1px #ccc;
  font-size: 100%;
  cursor: pointer;
  transition: 1s;
  -webkit-transition: 1s;
  }

#contact .button input:hover {
  background: #acff00;
  border: solid 1px #9c0;
  color: #000;
  }

#contact .privacy { margin-bottom: 60px; }

#contact .centerbox {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  pading: 20px;
  text-align: center;
  }

#contact .check { margin-bottom: 40px; }
#contact .submit { text-align: right; }
#contact .submit input {
    border: 0;
    width: 100px;
    background: url("../contact/send.svg") left top no-repeat;
    cursor: pointer;
    }

@media screen and (max-width: 1100px) {

#contact { padding: 20px; }

#contact .title { margin: 20px 0; }
#contact .title img { height: 30px; }

#contact .contact img { height: 20px; }

#contact form { margin-top: 0; }

#contact .l,
#contact .r { width: 100%; }

#contact input,
#contact textarea { margin-bottom: 0; }

}

/* --------------------------------------------------------- ★ 運営者情報 */


#manager .space { text-align: center; font-size: 120%; font-weight: bold; }

#manager .space span { width: 80px; }

#manager .symbol { width: 100px; margin-bottom: 40px; }

#manager .profile { width: 60%; margin: 40px 0; }

#manager table img { width: 30px; margin-right: 15px; }

#manager hr { margin: 120px 0; }

.mmp { display: block; width: fit-content; margin: 0 auto; }

@media screen and (max-width: 1100px) {

#manager .symbol { width: 70px; margin: 0 0 30px 0; }

#manager .profile { width: 80%; margin-bottom: 30px; }

#manager hr { margin: 60px 0; }

}

/* --------------------------------------------------------- ★ .gnav */


.gnav {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    text-align: center;
    font-weight: bold;
    z-index: 100;
    -webkit-transition: all 1s;
    transition: all 1s;
    visibility: hidden;
    opacity: 0;
    }

.gnav-btn img { position: fixed; z-index: 10; } /* 【MENU】ボタン */



/* ★ MENU */

.gnav .logo2 img { height: 80px; margin-bottom: 20px; }
.gnav ul { width: 880px; margin: auto; }
.gnav ul img { width: 200px; }
.gnav li { margin: 10px; }

.gnav.on { visibility: visible; opacity: 1; }

.is-open img { opacity: 0; }

.is-open .top { 
    transform: rotate(-45deg) translateY(0px);
    -webkit-transform: rotate(-45deg) translateY(0px);
    background: #333;
    }
    
.is-open .bottom {
    transform: rotate(45deg) translateY(0px);
    -webkit-transform: rotate(45deg) translateY(0px);
    background: #333;
    }

.icon-animation {
  position: fixed;
  display: block;
  top: 50px;
  right: 110px;
  width: 50px;
  height: 50px;
  cursor: pointer;
  z-index: 110;
  }

.icon-animation span {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  margin-left: -20px;
  width: 50px;
  height: 10px;
  background: rgba(0,0,0,0);
  transition: all 0.3s;
  -webkit-transition: all 0.3s;
  }

@media screen and (min-width: 1100px) {

.gnav-btn img { top: 55px; right: 80px; width: 100px; } /* 【MENU】ボタン */

.gnav-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  }

.gnav-box ul { padding: 0 40px; }

}

@media screen and (max-width: 1100px) {

.gnav-btn img { top: 30px; right: 20px; width: 60px; }/* 【MENU】ボタン */
.gnav .logo2 img { height: 50px; margin-top: 50px; }
.gnav ul { width: 100%; text-align: center; }
.gnav ul img { width: 140px; }
.gnav li { margin: 10px; }

.icon-animation { top: 15px; right: 30px; }
.icon-animation span { height: 8px; }

}

/* --------------------------------------------------------- ★ btn */


.btn { margin-top: 30px; }

.btn2 { margin: 40px 0; }

.btn2 a,
.more a { border: solid 1px #000; padding: 20px; font-weight :bold; }

.more { margin-top: 60px; }

/* --------------------------------------------------------- ★ wow */


.animated {
    animation-duration: 2s;
    -webkit-animation-duration: 2s;
    animation-fill-mode: both;
    -webkit-animation-fill-mode: both;
    }

/* --------------------------------------------------------- ★ fuwafuwa */


.fuwafuwa { animation: 3s fuwafuwa infinite; }

@keyframes fuwafuwa {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  }

/* --------------------------------------------------------- ★ wow blur */


.blur { animation-name: blur; -webkit-animation-name: blur; }

@keyframes blur {
    0% { opacity: 0; filter: blur(1.5rem); }
  100% { opacity: 1; filter: blur(0); }
}

/* --------------------------------------------------------- ★ yureru */

.yureru { animation: yureru 2s infinite; }

@keyframes yureru {
  0% { transform: translate(0px, 2px); }
  5% { transform: translate(0px, -2px); }
  10% { transform: translate(0px, 2px); }
  15% { transform: translate(0px, -2px); }
  20% { transform: translate(0px, 2px); }
  25% { transform: translate(0px, -2px); }
  30% { transform: translate(0px, 0px); }
  }

/* --------------------------------------------------------- ★ seesaw */

.seesaw {
   transform-origin: center bottom;
   animation: seesaw 4s linear infinite;
    }

@keyframes seesaw {
  0% , 100% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg); }
  }


/* --------------------------------------------------------- ★ 回転 */

.rotate {
  animation: rotate-z 5s infinite;
  -webkit-animation: rotate-z 5s infinite;
  }

@keyframes rotate-z {
    0% { transform: rotateZ(0deg); }
  100% { transform: rotateZ(360deg); }
  }
  
@-webkit-keyframes rotate-x {
    0% { -webkit-transform: rotateZ(0deg); }
  100% { -webkit-transform: rotateZ(360deg); }
  }

/* --------------------------------------------------------- ★ wow fadeInLeft */


.fadeInLeft { animation-name: fadeInLeft; -webkit-animation-name: fadeInLeft; }

@keyframes fadeInLeft {
    0% { opacity: 0; transform: translateX(-20px); -webkit-transform: translateX(-20px); }
  100% { opacity: 1; transform: translateX(0); -webkit-transform: translateX(0); }
}


/* --------------------------------------------------------- ★ wow fadeInRight */


.fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; }

@keyframes fadeInRight {
      0% { opacity: 0; transform: translateX(50px); -webkit-transform: translateX(50px); }
  100% { opacity: 1; transform: translateX(0); -webkit-transform: translateX(0); }
}


/* --------------------------------------------------------- ★ wow fadeInUp */


.fadeInUp { animation-name: fadeInUp; -webkit-animation-name: fadeInUp; }

@keyframes fadeInUp {
      0% { opacity: 0; transform: translateY(20px); -webkit-transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); }
}


/* --------------------------------------------------------- ★ wow fadeInDown */


.fadeInDown { animation-name: fadeInDown; -webkit-animation-name: fadeInDown; }

@keyframes fadeInDown {
      0% { opacity: 0; transform: translateY(-20px); -webkit-transform: translateY(-20px); }
  100% { opacity: 1; transform: translateY(0); -webkit-transform: translateY(0); }
}


/* --------------------------------------------------------- ★ wow horizon */


.horizon { position: relative; padding-bottom: 40px; animation-name: horizon; -webkit-animation-name: horizon; }

.horizon-l,
.horizon-r { position: absolute; height: 1px; background-color: #1c2651; }

.horizon-l { animation: horizon-l 1.5s forwards; }
.horizon-r { animation: horizon-r 1.5s forwards; }

@keyframes horizon-l {
    0% { opacity: 0; width: 0; left: 50%; }
  100% { opacity: 1; width: 50%; left: 0; }
  }

@keyframes horizon-r {
    0% { opacity: 0; width: 0; right: 50%; }
  100% { opacity: 1; width: 50%; right: 0; }
  }


/* -------------------------------------------------------- ★ photoswipe */


.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  -webkit-backface-visibility: hidden;
  outline: none;
  }
  
.pswp * { box-sizing: border-box; -webkit-box-sizing: border-box; }
            
pswp img { max-width: none; }

/* style is added when JS option showHideOpacity is set to true */

.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  }

.pswp--open { display: block; }

.pswp--zoom-allowed .pswp__img {
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in;
  }

.pswp--zoomed-in .pswp__img {
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab;
  }

.pswp--dragging .pswp__img {
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
  }

/* 背　景 */

.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  -webkit-backface-visibility: hidden;
  will-change: opacity;
  }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  }

/* Prevent selection and tap highlights */

.pswp__container,
.pswp__img {
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  transform-origin: left top;
  -webkit-transform-origin: left top;
  transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  }

.pswp__bg {
  will-change: opacity;
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  transition: none;
  -webkit-transition: none;
  }

.pswp__container,
.pswp__zoom-wrap {
  will-change: transform;
  -webkit-backface-visibility: hidden;
  }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
  }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0;
  }

/* stretched thumbnail or div placeholder element (see below) style is added to avoid flickering in webkit/blink when layers overlap */

.pswp__img--placeholder { -webkit-backface-visibility: hidden; }

/* div element that matches size of large image large image loads on top of it */

.pswp__img--placeholder--blank { background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0;
  }

/* Error message appears when image is not loaded */

.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #ccc;
  }

.pswp__error-msg a {
    color: #ccc;
    text-decoration: underline;
    }

/* ボタン　サイズ・透明度 */

.pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
  display: block;
  border: 0px none;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.5;
  transition: opacity 0.2s;
  -webkit-transition: opacity 0.2s;
  box-shadow: none;
  }

.pswp__button:focus,
.pswp__button:hover { opacity: 1; }
.pswp__button:active { outline: none; opacity: 0.9; }
.pswp__button::-moz-focus-inner { padding: 0; border: 0px none; }


/* 閉じるボタン */

.pswp__ui--over-close,
.pswp__button--close { opacity: 1; }

.pswp__button,
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  background: url('../js/photoswipe/skin/default-skin.png') no-repeat 0 0;
  background-size: 264px 88px;
  width: 44px;
  height: 44px;
  }

@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {

.pswp--svg .pswp__button,
.pswp--svg .pswp__button--arrow--left:before,
.pswp--svg .pswp__button--arrow--right:before { background-image: url('../js/photoswipe/skin/default-skin.svg'); }
.pswp--svg .pswp__button--arrow--left,
.pswp--svg .pswp__button--arrow--right { background: none; }
  
}

.pswp__button--close { background-position: 0 -44px; }

.pswp__button--share { background-position:  -44px; }

.pswp__button--fs { display: none; }

.pswp--supports-fs .pswp__button--fs { display: block; }

.pswp--fs .pswp__button--fs { background-position: -44px 0; }

.pswp__button--zoom { display: none; background-position: -88px 0; }

.pswp--zoom-allowed .pswp__button--zoom { display: block; }

.pswp--zoomed-in .pswp__button--zoom { background-position: -132px 0; }


/* 矢印ボタンに触れていない時　消える */

.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right { visibility: hidden; }

/* 矢印ボタン */

.pswp__button--arrow--left,
.pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 20%;
  height: 50%;
  position: absolute;
  }

.pswp__button--arrow--left { left: 0; }

.pswp__button--arrow--right { right: 0; }

.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  content: '';
  top: 35px;
  background-color: rgba(0, 0, 0, 0);
  height: 30px;
  width: 32px;
  position: absolute;
  }

.pswp__button--arrow--left:before {
  left: 6px;
  background-position: -138px -44px; }

.pswp__button--arrow--right:before {
  right: 6px;
  background-position: -94px -44px; }

/* 3. Index indicator ("1 of X" counter) */
 
.pswp__counter {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  padding: 0 10px;
  }

/* 4. Caption */
 
.pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px;
  }
  
.pswp__caption small {
  font-size: 11px;
  color: #bbb;
  }

.pswp__caption__center {
  text-align: left;
  max-width: 420px;
  margin: 0 auto;
  font-size: 13px;
  padding: 10px;
  line-height: 20px;
  color: #ccc;
  }

.pswp__caption--empty { display: none; }

.pswp__caption--fake { visibility: hidden; }

.pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  transition: opacity 0.25s ease-out;
  -webkit-transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr;
  }

.pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px;
  }

.pswp__preloader--active { opacity: 1; }

.pswp__preloader--active .pswp__preloader__icn { background: url('../js/photoswipe/skin/preloader.gif') no-repeat 0 0; }

.pswp--css_animation .pswp__preloader--active { opacity: 1; }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  animation: clockwise 500ms linear infinite;
  -webkit-animation: clockwise 500ms linear infinite;
  }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  }

.pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0;
  }

.pswp--css_animation .pswp__preloader__cut {
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden; }

.pswp--css_animation .pswp__preloader__donut {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid #fff;
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0;
  }

@media screen and (max-width: 1024px) {

.pswp__preloader {
  position: relative;
  left: auto;
  top: auto;
  margin: 0;
  float: right; }

}

@-webkit-keyframes clockwise {
  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
 }

@keyframes clockwise {
  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
  }

@-webkit-keyframes donut-rotate {
  0% { -webkit-transform: rotate(0); transform: rotate(0); }
  50% { -webkit-transform: rotate(-140deg); transform: rotate(-140deg); }
  100% { -webkit-transform: rotate(0); transform: rotate(0); }
  }

@keyframes donut-rotate {
  0% { -webkit-transform: rotate(0); transform: rotate(0); }
  50% { -webkit-transform: rotate(-140deg); transform: rotate(-140deg); }
  100% { -webkit-transform: rotate(0); transform: rotate(0); }
  }

/* 6. Additional styles */

/* root element of UI */

.pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550;
  }

/* top black bar with buttons and "1 of X" indicator */

.pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%; }

.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  will-change: opacity;
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  }
          
/* pswp--has_mouse class is added only when two subsequent mousemove events occur */

.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right { visibility: visible; }
.pswp__top-bar,
.pswp__caption { background-color: rgba(0, 0, 0, 0); }

/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */

.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption { background-color: rgba(0, 0, 0, 0); }

/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */

.pswp__ui--idle .pswp__top-bar { opacity: 0; }
.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right { opacity: 0; }

/* pswp__ui--hidden class is added when controls are hidden e.g. when user taps to toggle visibility of controls */

.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right { opacity: 0.001; }

/* pswp__ui--one-slide class is added when there is just one item in gallery */

.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter { display: none; }

.pswp__element--disabled { display: none !important; }

.pswp--minimal--dark .pswp__top-bar { background: none; }


