@charset "utf-8";
/* ============================================================
 ▼▼font▼▼
============================================================ */
@import url('https://fonts.googleapis.com/css?family=Montserrat:400,400i,500,500i,600,600i,700,700i&display=swap');
/* ============================================================
 ▼▼base fonts▼▼
============================================================ */
.en {
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.serif {
  font-family: 'YuMincho Medium', '游明朝 Medium', 'Yu Mincho Medium', 'YuMincho', 'Yu Mincho', '游明朝', '游明朝体', serif;
  font-weight: normal;
}
/* ============================================================
 clearfix
============================================================ */
.cf {
  zoom: 1;
}
.cf:after {
  content: "";
  display: block;
  clear: both;
}
#main {
  padding-top: 30px;
}
.wrap {
  padding-bottom: 100px;
}
.wrap:last-of-type {
  padding-bottom: 0;
}
/* ============================================================
 parts
============================================================ */
.btn {
  width: 300px;
}
.ttl-area {
  margin-bottom: 60px;
}
.ttl-area.vertical {
  white-space: nowrap;
  margin-top: 0;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}
@media (min-width: 980px) {
  .ttl-area.vertical {
    width: 130px;
    overflow: hidden;
  }
}
/* 縦書き */
.txt-v {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-align: left;
}
.txt-en-v {
  margin-left: 3rem;
  transform-origin: left top;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  text-align: left;
  white-space: nowrap;
}
/* ============================================================
 mainvisual
============================================================ */
#mv {
  overflow: hidden;
  position: relative;
  height: calc(100vh - 60px);
}
#mv.wrap {
  margin-top: 0;
  padding-bottom: 0;
}
.slider {
  display: flex;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.slider li,
.slider .slick-list,
.slider .slick-track {
  height: 100%!important;
}
.slider li {
  height: 100%!important;
  background-size: cover!important;
}
.slider li.slide01 {
  background: url(../images/top/slide01.jpg) no-repeat center top;
}
.slider li.slide02 {
  background: url(../images/top/slide02.jpg) no-repeat center center;
}
.slider li.slide03 {
  background: url(../images/top/slide03.jpg) no-repeat center center;
}
.slider li a {
  display: block;
  height: 100%;
}
/* SCROLL */
.scroll-wrap {
  position: absolute;
  right: 0;
  bottom: -60px;
  height: 345px;
  z-index: 1000;
}
.scroll-wrap .scroll-inner p {
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  text-align: end;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}
.scroll-wrap .scroll-arrow {
  width: 1px;
  height: 240px;
  margin: 30px auto 0;
  background-color: #e9e9e9;
  position: relative;
  overflow: hidden;
}
.scroll-wrap .scroll-arrow:before {
  content: "";
  width: 1px;
  height: 240px;
  margin: 30px auto 0;
  background-color: #000;
  position: absolute;
  top: -300px;
  left: 0;
  -webkit-animation: arrow 3s linear 0s infinite normal;
  animation: arrow 3s linear 0s infinite normal;
}
@keyframes arrow {
  0% {
    -webkit-transform: translate3d(50%, 0, 0);
    transform: translate3d(50%, 0, 0);
  }
  50% {
    -webkit-transform: translate3d(0, 240px, 0);
    transform: translate3d(0, 240px, 0);
  }
  100% {
    -webkit-transform: translate3d(0, 600px, 0);
    transform: translate3d(0, 600px, 0);
  }
}
/* mv-copy */
.mv-copy {
  position: absolute;
  left: 10%;
  bottom: 10%;
  z-index: 1000;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 2;
}
/* ============================================================
 about
============================================================ */
#about {
  zoom: 1;
}
#about.wrap {
  margin-top: 0;
}
#about:after {
  content: "";
  display: block;
  clear: both;
}
.about-cont {
  float: left;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  margin: -200px 5% 0 5%;
  padding: 80px 100px 0;
  position: relative;
  background: rgba(255, 255, 255, 0.8);
}
.about-cont .cont-area .about-copy {
  margin-bottom: 0;
}
@media (max-width: 1220px) {
  .about-cont {
    margin: -100px 5% 0 5%;
  }
}
@media (max-width: 979px) {
  .about-cont {
    padding: 40px 40px 0;
    display: block;
  }
}
/* ============================================================
 gallery
============================================================ */
#gallery .gallery-list {
  min-width: 66.6%;
  max-width: 85%;
  margin: 0 auto;
}
#gallery ul {
  display: flex;
  justify-content: space-around;
}
#gallery li {
  flex: 1;
  margin-left: 1%;
}
#gallery li:first-child {
  margin-left: 0;
}
/* ============================================================
 guide
============================================================ */
#guide {
  background: url(../images/top/guide.jpg) no-repeat center top;
  background-size: cover;
  padding-top: 100px;
}
#guide .inner-1200 {
  background: rgba(255, 255, 255, 0.8);
  padding: 100px;
}
#guide .guide-cont {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
#guide .guide-step li {
  flex: 7;
}
#guide .guide-step li.arrow {
  background: url(../images/common/arrow02_pink.svg) no-repeat center top 20%;
  background-size: contain;
  min-width: 28px;
  min-height: 25px;
  margin: 10px 0;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  flex: 1;
}
#guide dl {
  display: flex;
  justify-content: center;
  align-items: center;
}
#guide dt {
  border: 2px solid #d2d2d2;
  flex: 1;
  width: 100%;
  min-width: 150px;
  position: relative;
  padding: 20px;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
}
#guide dd {
  margin-left: 20px;
  flex: 6;
}
#guide .icon {
  max-width: 100px;
}
#guide .step-ttl {
  font-size: 1.8rem;
}
@media (max-width: 1300px) {
  #guide .inner-1200 {
    width: auto;
    margin: 0 5%;
  }
}
@media (max-width: 979px) {
  #guide .guide-cont {
    display: block;
  }
}
@media (max-width: 460px) {
  #guide dl {
    flex-flow: column;
    min-width: 100%;
  }
  #guide dd {
    margin-left: 0;
    margin-top: 10px;
  }
  #guide .step-ttl {
    font-size: 1.6rem;
  }
}
/* ============================================================
 news
============================================================ */
#news {
  background: #fafafa;
  padding-top: 100px;
}
#news .ttl-area {
  margin-top: 0;
}
@media (max-width: 1200px) {
  .side-padding {
    padding-left: 15px;
    padding-right: 15px;
  }
}
/* ============================================================
 contact
============================================================ */
#contact {
  min-height: 25vw;
  background: url(../images/top/contact.jpg) no-repeat right top;
  background-size: cover;
  padding-top: 100px;
}
#contact .ttl-area {
  margin-top: 0;
}
@media (max-width: 979px) {
  /* ============================================================
 header
============================================================ */
  #sp-header {
    height: 90px;
    padding: 0 35px 0;
  }
  #sp-gnav {
    padding-top: 90px;
  }
  #main {
    padding-top: 15px;
  }
  /* ============================================================
 parts
============================================================ */
  .ttl-area {
    margin-bottom: 30px;
  }
  .ttl-area.vertical {
    display: block;
    text-align: center;
    margin: 0 0 20px 0;
  }
  /* SPは縦書き解除 */
  .txt-v {
    text-align: center;
    -webkit-writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    writing-mode: horizontal-tb;
  }
  .txt-en-v {
    text-align: center;
    margin-left: 0;
    transform-origin: center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
/* ============================================================
 SP
============================================================ */
@media (max-width: 767px) {
  .wrap {
    padding-bottom: 50px;
  }
  .scroll-wrap {
    display: none;
  }
  #mv {
    height: calc(100vh - 70px);
  }
  /* mv-copy */
  .mv-copy {
    left: 8%;
    right: 8%;
    bottom: 8%;
    font-size: 2rem;
    letter-spacing: 0.1em;
  }
  .about-cont {
    display: block;
    margin: 0;
    width: 100%;
    padding: 30px 30px 0;
  }
  .about-cont .about-copy {
    margin: 0 0 20px 0;
  }
  #gallery .gallery-list {
    height: 50vw;
    overflow: hidden;
    min-width: 100%;
    max-width: 100%;
  }
  #gallery ul {
    padding: 0;
    min-width: initial;
    max-width: initial;
    width: auto;
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
  }
  #gallery li {
    min-width: 75vw;
    width: auto;
    margin-left: 2%;
  }
  #gallery li:first-child {
    margin-left: 0;
  }
  #guide {
    padding-top: 50px;
  }
  #guide .inner-1200 {
    padding: 50px 20px;
  }
  #guide ul {
    display: block;
  }
  #news {
    padding-top: 50px;
  }
  #contact {
    min-height: 310px;
    height: 89vw;
    background: url(../images/top/contact_sp.jpg) no-repeat right top;
    background-size: cover;
    padding-top: 50px;
  }
}
