@charset "UTF-8";
/** MAIN CONTAINERS
==============================================*/
.section-hero {
  padding-top: 80px;
}

@media only screen and (max-width: 767px) {
  .section-hero {
    padding-top: 50px;
  }
}

.section-hero .content {
  position: relative;
  overflow: hidden;
}

.section-hero .content .txt {
  color: #fff;
  font-weight: bold;
  transition: 800ms;
  text-align: center;
  letter-spacing: 0.1em;
  position: absolute;
  top: -20px;
  left: 50%;
  width: 100%;
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
}

@media only screen and (min-width: 768px) {
  .section-hero .content .txt {
    font-size: 3rem;
  }
}

@media only screen and (max-width: 767px) {
  .section-hero .content .txt {
    font-size: 1.8rem;
  }
}

.section-hero .content .img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 99;
  width: 30%;
  max-width: 450px;
  opacity: 0;
  transition: 800ms;
}

@media only screen and (max-width: 767px) {
  .section-hero .content .img {
    width: 60%;
  }
}

.section-hero .content .img img {
  width: 100%;
}

.section-hero .content::before {
  content: "";
  display: block;
  width: 100%;
  height: 20%;
  background: linear-gradient(to top, #222, transparent);
  position: absolute;
  bottom: -1px;
  right: 0;
  z-index: 9;
}

.section-hero .content::after {
  content: "";
  display: block;
  width: 100%;
  height: 20%;
  background: linear-gradient(to bottom, #222, transparent);
  position: absolute;
  top: -1px;
  left: 0;
  z-index: 9;
}

.section-hero .content .swiper-slide {
  position: relative;
}

.section-hero .content .swiper-slide::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #222;
  position: absolute;
  opacity: 1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 1;
  transition: 2000ms 1500ms;
}

.section-hero .content .swiper-slide img {
  width: 100%;
  max-height: 750px;
  object-fit: cover;
  font-family: 'object-fit: cover;';
}

@media only screen and (max-width: 767px) {
  .section-hero .content .swiper-slide img {
    height: 450px;
  }
}

.section-hero .content .swiper-slide-prev img, .section-hero .content .swiper-slide-active img, .section-hero .content .swiper-slide-duplicate-active img {
  -webkit-animation: zoomUp 7000ms forwards;
          animation: zoomUp 7000ms forwards;
}

@-webkit-keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

@keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

.section-hero.is-show .img {
  opacity: 1;
}

.section-hero.is-show .swiper-slide::before {
  opacity: 0.3;
}

.section-about {
  padding-top: 80px;
  padding-bottom: 80px;
  background-image: linear-gradient(to bottom, #222, #222 300px, #363636);
}

@media only screen and (max-width: 767px) {
  .section-about {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.section-about .content .about-list__item {
  align-items: center;
}

.section-about .content .about-list__item:not(:last-of-type) {
  margin-bottom: 40px;
}

@media only screen and (min-width: 768px) {
  .section-about .content .about-list__item:nth-of-type(even) {
    flex-flow: row-reverse;
  }
}

.section-about .content .about-list__item .img {
  position: relative;
}

.section-about .content .about-list__item .img::after {
  content: "";
  display: block;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  border: 1px solid #222;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.section-about .content .about-list__item .img img {
  width: 100%;
}

.section-about .content .about-list__item .txt {
  padding: 40px;
}

@media only screen and (max-width: 767px) {
  .section-about .content .about-list__item .txt {
    padding: 30px 0;
  }
}

.section-about .content .about-list__item .txt .title {
  font-size: 2.4rem;
  letter-spacing: 0.15em;
  margin-bottom: 20px;
}

.section-about .content .about-list__item .txt .title::after {
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  background: repeating-linear-gradient(-45deg, transparent, transparent, 5px, #a22 5px, #a22 7px);
  margin-top: 20px;
}

.section-about .content .about-list__item .txt .lead {
  letter-spacing: 0.1em;
  font-size: 1.4rem;
}

.section-menu {
  padding-top: 80px;
}

.section-menu .headline {
  margin-bottom: 60px;
}

.section-menu .headline .lead {
  text-align: center;
}

.section-menu .headline .lead small {
  font-size: 1.6rem;
}

.section-menu .headline .lead small::before {
  content: "※";
}

.section-menu .content .block {
  padding-bottom: 40px;
}

.section-menu .content .block__title {
  text-align: center;
  font-size: 3rem;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block__title {
    font-size: 2rem;
    margin-bottom: 20px;
  }
}

.section-menu .content .block__title::before, .section-menu .content .block__title::after {
  content: "";
  display: block;
  width: 5%;
  height: 1px;
  background: #fff;
  margin-top: 5px;
}

.section-menu .content .block__title::before {
  margin-right: 2%;
}

.section-menu .content .block__title::after {
  margin-left: 2%;
}

.section-menu .content .block .card {
  background: #363636;
  margin-bottom: 50px;
  padding-bottom: 80px;
  position: relative;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card {
    margin-bottom: 20px;
  }
}

.section-menu .content .block .card .box {
  padding: 20px;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card .box {
    padding: 10px;
  }
}

.section-menu .content .block .card .box .name {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 15px;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card .box .name {
    font-size: 1.8rem;
  }
}

.section-menu .content .block .card .box .txt {
  text-align: justify;
  margin-bottom: 15px;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card .box .txt {
    font-size: 1.4rem;
  }
}

.section-menu .content .block .card .box .price {
  text-align: right;
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card .box .price {
    font-size: 1.4rem;
  }
}

.section-menu .content .block .card .box .modal__btn {
  background: #a22;
  border: 2px solid #a22;
  display: block;
  width: 80%;
  border-radius: 50px;
  margin: 0 auto;
  text-align: center;
  position: absolute;
  bottom: 30px;
  left: 50%;
  -webkit-transform: translate(-50%, 0%);
          transform: translate(-50%, 0%);
  padding: 10px 0;
  transition: 200ms;
}

@media only screen and (min-width: 768px) {
  .section-menu .content .block .card .box .modal__btn:hover {
    background: rgba(230, 230, 230, 0.9);
    color: #a22;
  }
}

@media only screen and (max-width: 767px) {
  .section-menu .content .block .card .box .modal__btn {
    width: 80%;
    font-size: 1.4rem;
  }
}

.section-info {
  padding-top: 80px;
  padding-bottom: 80px;
  background-image: linear-gradient(to top, #222, #222 300px, #363636);
}

@media only screen and (max-width: 767px) {
  .section-info {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.section-info .content__block {
  background: #fff;
  color: #222;
  padding: 40px 60px;
}

@media only screen and (max-width: 767px) {
  .section-info .content__block {
    padding: 20px;
  }
}

.section-info .content__block .info-list {
  padding: 20px 0;
}

@media only screen and (min-width: 768px) {
  .section-info .content__block .info-list {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: center;
  }
}

.section-info .content__block .info-list:not(:last-of-type) {
  border-bottom: 1px solid #ccc;
}

@media only screen and (min-width: 768px) {
  .section-info .content__block .info-list .title {
    width: 40%;
    font-size: 1.8rem;
  }
}

.section-info .content__block .info-list .title::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background: #a22;
  margin-right: 10px;
}

@media only screen and (min-width: 768px) {
  .section-info .content__block .info-list .data {
    width: 60%;
    font-size: 1.8rem;
  }
}

@media only screen and (max-width: 767px) {
  .section-info .content__block .info-list .data {
    padding-left: 1.3em;
    font-size: 1.4rem;
  }
}

.section-info .content__block .info-list .data small::before {
  content: "※";
}

.section-access {
  padding-top: 80px;
  background-image: linear-gradient(to top, #222, #222 300px, #363636);
}

@media only screen and (max-width: 767px) {
  .section-access {
    padding-top: 40px;
  }
}

@media only screen and (min-width: 768px) {
  .section-access .content__inner {
    display: flex;
    flex-flow: row-reverse;
    justify-content: space-between;
    align-items: center;
  }
}

.section-access .content .map {
  position: relative;
}

@media only screen and (min-width: 768px) {
  .section-access .content .map {
    width: 50%;
    height: 400px;
  }
}

@media only screen and (max-width: 767px) {
  .section-access .content .map {
    padding-top: 60%;
  }
}

.section-access .content .map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

@media only screen and (min-width: 768px) {
  .section-access .content .box {
    width: 560px;
    margin-left: auto;
    padding: 0 20px;
  }
}

@media only screen and (max-width: 767px) {
  .section-access .content .box {
    padding: 40px 30px;
  }
}

.section-access .content .box .img {
  margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
  .section-access .content .box .img {
    width: 50%;
    margin: 0 auto 20px;
  }
}

.section-access .content .box .info-list {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
}

.section-access .content .box .info-list:not(:last-of-type) {
  margin-bottom: 20px;
}

.section-access .content .box .info-list .title {
  width: 120px;
  font-size: 1.8rem;
}

@media only screen and (max-width: 767px) {
  .section-access .content .box .info-list .title {
    width: 100%;
    font-size: 1.4rem;
  }
}

@media only screen and (max-width: 767px) {
  .section-access .content .box .info-list .title::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    background: #a22;
    vertical-align: -1px;
    margin-right: 10px;
  }
}

.section-access .content .box .info-list .data {
  font-size: 1.8rem;
}

@media only screen and (max-width: 767px) {
  .section-access .content .box .info-list .data {
    font-size: 1.4rem;
    padding-left: 20px;
  }
}

.section-access .content .box .info-list .data__tel dt {
  float: left;
}

.section-access .content .box .info-list .data__tel dt::after {
  content: "：";
}

.section-booking {
  padding-top: 80px;
}

@media only screen and (max-width: 767px) {
  .section-booking {
    padding-top: 40px;
  }
}

.section-booking .headline .lead {
  text-align: center;
  font-size: 1.8rem;
  letter-spacing: 0.15em;
  line-height: 2;
  margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
  .section-booking .headline .lead {
    font-size: 1.6rem;
  }
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: center;
  }
}

@media only screen and (max-width: 767px) {
  .section-booking .content__inner {
    background-image: url(../img/contact_web.jpg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: cover;
    position: relative;
    z-index: 0;
    padding: 25px 0;
  }
}

@media only screen and (max-width: 767px) {
  .section-booking .content__inner::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(34, 34, 34, 0.9);
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: -1;
  }
}

.section-booking .content__inner .block {
  background-repeat: no-repeat;
  background-position: 0% 0%;
  background-size: cover;
  z-index: 0;
  position: relative;
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner .block {
    width: 50%;
    min-height: 400px;
    display: flex;
    flex-flow: column wrap;
    justify-content: center;
    align-items: center;
  }
}

@media only screen and (max-width: 767px) {
  .section-booking .content__inner .block {
    padding: 15px 0;
  }
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner .block::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(34, 34, 34, 0.9);
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: -1;
  }
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner .block.web {
    background-image: url(../img/contact_web.jpg);
  }
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner .block.tel {
    background-image: url(../img/contact_tel.jpg);
  }
}

.section-booking .content__inner .block .block__txt {
  font-size: 2.8rem;
  font-weight: bold;
  margin-bottom: 30px;
}

@media only screen and (max-width: 767px) {
  .section-booking .content__inner .block .block__txt {
    font-size: 2rem;
    text-align: center;
  }
}

.section-booking .content__inner .block .link-area {
  text-align: center;
}

.section-booking .content__inner .block .link-area a {
  display: inline-block;
  background: #a22;
  font-size: 2.6rem;
  color: #fff;
  padding: 10px 40px;
}

@media only screen and (min-width: 768px) {
  .section-booking .content__inner .block .link-area a:hover {
    opacity: 0.7;
  }
}

@media only screen and (max-width: 767px) {
  .section-booking .content__inner .block .link-area a {
    font-size: 1.6rem;
  }
}

.modal__btn {
  color: #fff;
}

@media only screen and (min-width: 768px) {
  .modal__btn figure {
    overflow: hidden;
  }
  .modal__btn figure img {
    transition: 800ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .modal__btn:hover {
    color: #fff;
  }
  .modal__btn:hover figure img {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

.modal__item {
  display: none;
  background: rgba(0, 0, 0, 0.8);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
}

@media only screen and (max-width: 767px) {
  .modal__item {
    padding: 80px 20px 40px;
  }
}

.modal__item .img__box {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  max-width: 525px;
  background: #222;
  padding: 60px;
}

@media only screen and (max-width: 767px) {
  .modal__item .img__box {
    width: 90%;
    padding: 60px 20px;
  }
}

.modal__item .img__box .img {
  margin-bottom: 40px;
}

.modal__item .img__box .txt .ttl {
  font-size: 2.4rem;
  font-weight: bold;
}

@media only screen and (max-width: 767px) {
  .modal__item .img__box .txt .ttl {
    font-size: 1.8rem;
  }
}

.modal__item .img__box .txt .place {
  text-align: right;
}

.modal__item .img__box .txt .place span {
  font-size: 2.4rem;
  margin-right: 5px;
  margin-bottom: 10px;
}

@media only screen and (max-width: 767px) {
  .modal__item .img__box .txt .place span {
    font-size: 1.8rem;
  }
}

.modal__item .img__box .txt .comment small::before {
  content: "※";
  display: inline-block;
}

.modal__item .img__box .close_btn {
  width: 60px;
  height: 60px;
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
}

.modal__item .img__box .close_btn::before, .modal__item .img__box .close_btn::after {
  content: "";
  display: inline-block;
  background: #aa2222;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}

.modal__item .img__box .close_btn::before {
  width: 30px;
  height: 3px;
}

.modal__item .img__box .close_btn::after {
  width: 3px;
  height: 30px;
}
