@charset "UTF-8";
/* CSS Document */

/* * {
  outline: 1px solid #52b33f;
} */

/* classに「data-scroll-in="0.1"」
をいれる */

/*************************************************
*****              standard  　              *****
*************************************************/
html {
  font-size: 62.5%; /* 16px * 62.5% = 10px */
  width: 100%;
  box-sizing: border-box;
  background-color: #fff;
  scroll-behavior: smooth;
}
body {
  color: #333; /* RGB */
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: center;
}

img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.ttl-sec {
  color: #1e564b;
  font-size: 3.6rem;
  line-height: 1.5;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
  margin: 0 auto 50px auto;
  padding-top: 100px;
  opacity: 0;
}
.ttl-sec.--scrolled {
  animation: fadeIn 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* 背景固定 */
.bg {
  width: 100vw;
  height: 100vh;
  background-image: url(../image/top/first_view/bg_paper_w.png);
  background-size: cover;
  background-position: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
}
.--green {
  color: #1e564b;
}
.--gold {
  color: #a5906a;
}
.--red {
  color: #941c1c;
}
.--weight900 {
  font-weight: 900;
}
.none {
  display: none;
}
.pc-only {
  display: block;
}
.sp-only {
  display: none;
}
img {
  max-width: 100%;
  height: auto;
}

@media (max-width: 960px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
  .ttl-sec {
    font-size: 2rem;
    margin: 0 auto 25px auto;
  }
}

/*************************************************
*****                header  　              *****
*************************************************/
.header__logo {
  position: absolute;
  left: 20px;
  top: 40px;
}
#menu {
  display: none;
}
.menu-navi {
  position: fixed;
  top: 40px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 80px;
  height: 80px;
  background-color: #fff;
  border: solid 1px #1e564b;
  border-radius: 50%;
  cursor: pointer;
  z-index: 200;
  transition: 0.4s;
}
.menu-line1 {
  position: absolute;
  top: 20px;
  left: 20px;
  display: block;
  width: 38px;
  height: 1px;
  background-color: #1e564b;
  transform-origin: center center;
  z-index: 200;
}
.menu-line2 {
  position: absolute;
  top: 30px;
  left: 20px;
  display: block;
  width: 30px;
  height: 1px;
  background-color: #1e564b;
  transform-origin: center center;
  z-index: 200;
}
.menu-line3 {
  position: absolute;
  top: 40px;
  left: 20px;
  display: block;
  width: 22px;
  height: 1px;
  background-color: #1e564b;
  transform-origin: center center;
  z-index: 200;
}
.menu-icon__menu-text {
  fill: #1e564b;
  stroke-width: 0px;
  transition: 0.4s;
}
.menu-navi:hover .menu-icon__menu-text {
  fill: #ffffff;
}
.header.nav-open .menu-icon__menu-text {
  opacity: 0;
}
.menu-icon__close-text {
  fill: #1e564b;
  stroke-width: 0px;
  opacity: 0;
  transition: 0.4s;
}
.menu-navi:hover .menu-icon__close-text {
  fill: #ffffff;
}
.header.nav-open .menu-icon__close-text {
  opacity: 1;
}
.menu-icon__img,
.menu-icon__img-hover {
  display: block;
  position: absolute;
  top: 43px;
  left: 20px;
  width: 43px;
}

/* メニューボタンホバー時 */
.menu-navi:hover {
  background-color: #1e564b;
  border: solid 1px #ffff;
  border-radius: 50%;
  cursor: pointer;
  z-index: 200;
}
.menu-navi:hover .menu-line1 {
  background-color: #fff;
  transition: 0.3s;
}
.menu-navi:hover .menu-line2 {
  background-color: #fff;
  transition: 0.3s;
}
.menu-navi:hover .menu-line3 {
  background-color: #fff;
  transition: 0.3s;
}

.header.nav-open .menu-navi .menu-line1 {
  transform: rotate(-45deg);
  top: 30px;
  left: 25px;
  width: 30px;
}
.header.nav-open .menu-navi .menu-line2 {
  opacity: 0;
  width: 0px;
}
.header.nav-open .menu-navi .menu-line3 {
  transform: rotate(45deg);
  top: 30px;
  left: 25px;
  width: 30px;
}

/* 予約ボタン */
.reservation {
  position: fixed;
  top: 130px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 80px;
  height: 80px;
  background-color: #941c1c;
  border-radius: 50%;
  cursor: pointer;
  z-index: 200;
}
.reservation-text {
  color: #fff;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
}
/* 予約ボタンホバー時 */
.reservation:hover {
  background-color: #fff;
  border: solid 1px #941c1c;
  transition: 0.3s;
}
.reservation:hover .reservation-text {
  color: #941c1c;
  transition: 0.3s;
}

/* メニューバー */
.nav {
  position: fixed;
  top: 142px;
  right: 20px;
  margin: 0;
  padding: 35px;
  background-color: #fff;
  z-index: 300;
  border: solid 1px #1e564b;
  border-radius: 5px;
  transition: 0.7s;
  transform: rotate(20deg);
  opacity: 0;
  visibility: hidden;
  transform-origin: 70% -10%;
}
.nav::before {
  content: "";
  position: absolute;
  top: -28px;
  right: 16%;
  margin-left: -17px;
  border: 15px solid transparent;
  border-bottom: 15px solid #fff;
  z-index: 300;
}
.nav::after {
  content: "";
  position: absolute;
  top: -30px;
  right: 16%;
  margin-left: -17px;
  border: 15px solid transparent;
  border-bottom: 15px solid #1e564b;
  z-index: 280;
}
.header.nav-open .nav {
  opacity: 1;
  visibility: visible;
  transform: rotate(0deg);
}
.nav-list {
  color: #1e564b;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
  text-align: left;
}
.nav-list__item {
  margin-bottom: 16px;
  text-transform: uppercase;
}
.nav-list__item:last-child {
  margin-bottom: 0px;
}
.nav-list__item:hover {
  opacity: 70%;
  transition: 0.3s;
}

/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 960px) {
  .menu-navi {
    top: 20px;
    right: 73px;
    width: 60px;
    height: 60px;
  }
  .menu-line1 {
    position: absolute;
    top: 15px;
    left: 15px;
    width: 28px;
    height: 1px;
  }
  .menu-line2 {
    top: 22px;
    left: 15px;
    width: 20px;
  }
  .menu-line3 {
    top: 29px;
    left: 15px;
    width: 12px;
  }
  .menu-icon__img,
  .menu-icon__img-hover {
    top: 26px;
    left: 12px;
    width: 36px;
  }

  /* メニューボタンホバー時 */
  .header.nav-open .menu-navi .menu-line1 {
    transform: rotate(-45deg);
    top: 20px;
    left: 19px;
    width: 20px;
  }
  .header.nav-open .menu-navi .menu-line2 {
    opacity: 0;
    width: 0px;
  }
  .header.nav-open .menu-navi .menu-line3 {
    transform: rotate(45deg);
    top: 20px;
    left: 19px;
    width: 20px;
  }

  /* 予約ボタン */
  .reservation {
    top: 20px;
    right: 8px;
    width: 60px;
    height: 60px;
  }
  .reservation-text {
    font-size: 1.2rem;
  }

  /* メニューバー */
  .nav {
    top: 100px;
    right: 68px;
    padding: 20px;
  }
  .nav-list {
    font-size: 1.4rem;
  }
  .nav-list__item {
    margin-bottom: 14px;
  }
}

/*************************************************
*****                footer  　              *****
*************************************************/
.footer {
  background-color: #a5906a;
  padding: 80px 0;
}
.footer-icon {
  margin: 0 auto 50px;
  width: 208px;
}
.footer-icon img {
  object-fit: contain;
}
.footer__site-map__nav {
  display: flex;
  gap: 40px;
  justify-content: center;
}
.footer__site-map__list {
  display: flex;
  margin: 0 0 50px;
  color: #fff;
  font-size: 1.6rem;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
  justify-content: center;
}
.footer__site-map__list-item {
  margin-right: 40px;
  text-transform: uppercase;
}
.footer__site-map__list-item:last-child {
  margin-right: 0px;
}
.footer__site-map__cop {
  color: #fff;
  font-size: 1.2rem;
}
.footer__site-map__list-item:hover {
  opacity: 70%;
  transition: 0.3s;
}

/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 600px) {
  .footer {
    padding: 60px 0;
  }
  .footer-icon {
    margin: 0 auto 40px;
    width: 130px;
  }
  .footer__site-map__nav {
    display: block;
    margin: 0 auto 40px;
    font-size: 1.4rem;
  }
  .footer__site-map__list {
    display: flex;
    margin-bottom: 20px;
  }
  .footer__site-map__list {
    display: flex;
  }
  .footer__site-map__list-item {
    margin-right: 45px;
  }
  .footer__site-map__list-item:nth-child(3) {
    margin-right: 0;
  }
  .footer__site-map__cop {
    font-size: 1rem;
  }
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★下層ページ★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

/* 下層ページ背景 */
.sec-top__other {
  background-image: url(../image/top/first_view/pc_renkin.png), url(../image/top/first_view/pc_megami.png);
  background-repeat: no-repeat, no-repeat;
  background-size: 13%, 18%;
  background-position: left 3% bottom 40%, right -1% bottom 40%;
}
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 960px) {
  .sec-top__other {
    /* background-image: url(../image/top/first_view/sp_renkin.png), url(../image/top/first_view/sp_megami.png); */
    background-size: 15%, 20%;
    background-position: 9px 85px, right 80px;
  }
}

/*************************************************
*****             下層header  　              *****
*************************************************/
.other-header__logo {
  width: 215px;
  position: absolute;
  top: 40px;
  left: 20px;
  z-index: 1;
}
.other-header__logo img {
  object-fit: contain;
}
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 960px) {
  .other-header__logo {
    width: 83px;
    position: absolute;
    top: 20px;
    left: 10px;
  }
}

/*************************************************
*****              下層トップ  　              *****
*************************************************/
.sec-top__other {
  height: 640px;
  position: relative;
  overflow: hidden;
}
.ttl-sec__other {
  position: relative;
  padding-top: 250px;
  animation: fadeIn 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.ttl-sec__other::before {
  display: block;
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  content: "";
  background-size: 100%;
  background-repeat: no-repeat;
}
.ttl-sec__other-ttl {
  transform: translate(-50%, -50%);
  margin: 0 auto;
  color: #1e564b;
  font-size: 3.6rem;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
}
.subttl {
  color: #1e564b;
  font-size: 2.4rem;
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
  line-height: 1;
}
.subttl span {
  font-size: 1.4rem;
}
.subttl__img {
  width: 355px;
  margin: 10px auto 50px;
}
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 960px) {
  .sec-top__other {
    height: 415px;
  }
  .ttl-sec__other {
    padding-top: 153px;
  }
  .ttl-sec__other-ttl {
    font-size: 2.4rem;
    margin: 0 24px;
  }
  .subttl {
    font-size: 2rem;
  }
  .subttl span {
    font-size: 1.4rem;
  }
  .subttl__img {
    width: 170px;
    margin: 5px auto 25px;
  }
}

/*************************************************
*****          　　    カード  　              *****
*************************************************/
.card {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.--card {
  position: absolute;
  width: 28%;
}
.card-l {
  /* background-color: red; */
  position: absolute;
  bottom: 0;
  left: 0;
  width: 20vw;
  min-width: 200px;
  height: 15vw;
  z-index: 20;
}
.card-l__1 {
  bottom: 10%;
  left: 0;
  transform: rotate(-18deg);
}
.card-l__2 {
  bottom: 14%;
  left: 10%;
  transform: rotate(6deg);
}
.card-l__3 {
  bottom: 14%;
  left: 21%;
  transform: rotate(15deg);
}
.card-l__4 {
  bottom: 10%;
  left: 34%;
  transform: rotate(27deg);
}
.card-l__5 {
  bottom: 9%;
  left: 44%;
  transform: rotate(39deg);
}
.card-l__6 {
  bottom: 4%;
  left: 55%;
  transform: rotate(53deg);
}
.card-r {
  /* background-color: blue; */
  position: absolute;
  bottom: 0;
  right: 0;
  width: 20vw;
  min-width: 200px;
  height: 15vw;
  z-index: 20;
}
.card-r__1 {
  bottom: 10%;
  right: 0;
  transform: rotate(7deg);
}
.card-r__2 {
  bottom: 14%;
  right: 10%;
  transform: rotate(-4deg);
}
.card-r__3 {
  bottom: 14%;
  right: 21%;
  transform: rotate(-16deg);
}
.card-r__4 {
  bottom: 10%;
  right: 34%;
  transform: rotate(-26deg);
}
.card-r__5 {
  bottom: 9%;
  right: 44%;
  transform: rotate(-37deg);
}
.card-r__6 {
  bottom: 4%;
  right: 55%;
  transform: rotate(-51deg);
}
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓レスポンシブ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@media (max-width: 600px) {
  .--card {
    width: 30%;
    height: 31.7vw;
  }
  .card-l {
    bottom: auto;
    top: -1%;
    left: -1%;
    width: 65vw;
    max-width: 280px;
    min-width: unset;
    height: 36vw;
    transform: rotate(177deg);
  }
  .card-l__1 {
    top: auto;
    left: auto;
    bottom: -2%;
    right: -4%;
    transform: rotate(18deg);
  }
  .card-l__2 {
    top: auto;
    left: auto;
    bottom: 4%;
    right: 8%;
    transform: rotate(-6deg);
  }
  .card-l__3 {
    top: auto;
    left: auto;
    bottom: 4%;
    right: 19%;
    transform: rotate(-15deg);
  }
  .card-l__4 {
    top: auto;
    left: auto;
    bottom: 0;
    right: 31%;
    transform: rotate(-27deg);
  }
  .card-l__5 {
    top: auto;
    left: auto;
    bottom: -8%;
    right: 42%;
    transform: rotate(-39deg);
  }
  .card-l__6 {
    top: auto;
    left: auto;
    bottom: -17%;
    right: 52%;
    transform: rotate(-48deg);
  }
  .card-r {
    bottom: 0;
    right: -1%;
    width: 65vw;
    max-width: 280px;
    min-width: unset;
    height: 36vw;
    transform: rotate(-3deg);
  }
  /*************************************************
*****          　　 下層カード  　              *****
*************************************************/
  .--card__other {
    width: 25%;
  }
  .card-l.--card-l__other {
    top: auto;
    bottom: 20px;
    left: -2%;
    width: 40vw;
    max-width: 300px;
    height: 30vw;
    transform: rotate(177deg);
  }
  .card-r.--card-r__other {
    bottom: 10%;
    right: -2%;
    width: 40vw;
    max-width: 300px;
    height: 30vw;
    transform: rotate(-3deg);
  }
}

/*************************************************
*****          　　   animation               *****
*************************************************/
.--trans__left {
  transform: translateX(-100%);
  opacity: 0;
}
.--trans__right {
  transform: translateX(100%);
  opacity: 0;
}
.--trans__left.--scrolled {
  animation: ImgLeft 1s ease-out forwards;
}
.--trans__right.--scrolled {
  animation: ImgRight 1s ease-out forwards;
}
@keyframes ImgLeft {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}
@keyframes ImgRight {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}
.--trans__fd {
  opacity: 0;
}
.--trans__fd.--scrolled {
  animation: ImgFd 1s ease-in-out forwards;
}

@keyframes ImgFd {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
