body {
  position: relative;
  min-height: 100vh;
}

body.open {
  position: fixed;
  width: 100%;
}


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

  a:hover img{
    transition: 0.3s;
  }
  
  
  a:hover img{
    opacity: 0.7;
  }
}

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

  .sp {
    display: block;
  }
}


/* ----------------------------------------------
アニメーション
----------------------------------------------- */

/*1.フェードインアニメーションの指定*/
.scrollanime {
  opacity: 0;
  transition: ease 1.5s;
}
/*一瞬表示されるのを防ぐ*/

.fadeIn {
  opacity: 1;
}
.fadeInDown {
  animation-name: fadeInDown;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
}

.fadeInDown.later {
  animation-duration: 2.5s;
}
@keyframes fadeInDown {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translate(0);
  }
}

/*2.上下の動きを指定*/
.updown {
  transform: translateY(-40px);
}
.downup {
  transform: translateY(40px);
}

/*3.左右の動きを指定*/

.slide-right {
  transform: translateX(50px);
}
.slide-left {
  transform: translateX(-50px);
}

.slideUp {
  animation-name: slideUp;
  animation-fill-mode: forwards;
}

@keyframes slideUp {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%);
  }
}

/*アニメーション開始時間*/
.animate__delay-1s {
  animation-delay: 0.1s;
}

.animate__delay-2s {
  animation-delay: 0.2s;
}

.animate__delay-3s {
  animation-delay: 0.3s;
}

.animate__delay-4s {
  animation-delay: 0.4s;
}

.animate__delay-5s {
  animation-delay: 0.5s;
}

/* ----------------------------------------------
コンテンツ
----------------------------------------------- */

.l-container {
  position: relative;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 40px;
}

.l-container.-small {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 60px;
}
main{
  position: relative;
  z-index: 1;
  background: url(../img/bg-left.webp) repeat-y left top 100vh /14vw,url(../img/bg-right.webp) repeat-y right top 100vh /14vw;
  padding-bottom: 248px;
}

@media screen and (max-width: 750px) {
  main {
    width: 100%;
    padding-bottom: 100px;
  }
  .l-container {
    padding: 0 30px;
  }
  .l-container.-small {
    padding: 0 40px;
  }
}

/* ----------------------------------------------
header
----------------------------------------------- */
.l-header {
  position: fixed;
  width: 100%;
  height: 90px;
  top: 0;
  right: 0;
  z-index: 999999999;
  background: #96BEBC;
}

.p-header__inner{
  width: 100%;
  height: 100%;
  max-width: 1280px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-inline: auto;
  padding-inline: 40px;
}

.p-header__logo{
  max-width: 135px;
  height: auto;
}
.p-header__logo a{
  display: block;
}

.menu li {
  font-weight: 400;
  text-align: center;
  font-size: 16px;
}

.l-header .menu a {
  transition: 0.3s;
  color: #fff;
  position: relative;
}

.l-header .menu a:after {
  content: '';
  width: 0;
  height: 1px;
  opacity: 0;
  background: #fff;
  transition: 0.3s;
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
}

.l-header .menu a:hover:after {
  width: 100%;
  opacity: 1;
}


.drawer {
  display: none;
}

.navbar_toggle {
  position: absolute;
  z-index: 999;
  width: 60px;
  height: 60px;
  right: 0;
  top: 0;
}

.navbar_toggle_icon {
  position: relative;
  display: block;
  height: 1px;
  width: 26px;
  background: #fff;
  -webkit-transition: ease 0.5s;
  transition: ease 0.5s;
  border-radius: 1px;
  transform: translateX(-50%);
  left: 50%;
}

.navbar_toggle_icon:nth-child(1) {
  top: 22px;
  transition: 0.4s;
}

.navbar_toggle_icon:nth-child(2) {
  top: 20px;
  margin: 8px 0;
  transition: 0.4s;
  opacity: 1;
}

.navbar_toggle_icon:nth-child(3) {
  top: 18px;
  transition: 0.4s;
}

.drawer.open .navbar_toggle_icon {
  background: #fff;
}

.drawer.open .navbar_toggle_icon:nth-child(1) {
  top: 30px;
  left: 20px;
  transition: 0.4s;
  transform: rotate(45deg);
}

.drawer.open .navbar_toggle_icon:nth-child(2) {
  top: 20px;
  margin: 8px 0;
  transition: 0.4s;
  opacity: 0;
}

.drawer.open .navbar_toggle_icon:nth-child(3) {
  top: 12px;
  left: 20px;
  transition: 0.4s;
  transform: rotate(-45deg);
}

@media screen and (min-width: 751px) {
  .drawer-wrap {
    margin-left: auto;
  }

  .l-header .menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap:0 52px;
  }
}

@media screen and (max-width: 750px) {
  .l-header {
    height: 60px;
  }

  .p-header__inner{
    padding-inline: 20px;
  }

  .drawer-wrap{
    position: fixed;
    width: 100%;
    height: 100dvh;
    top: 0;
    right: -100%;
    background: #96BEBC;
    transition: ease 0.4s;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .drawer-wrap.open{
    right: 0;
  }

  .menu li{
    font-size: 16px;
    font-weight: 500;
  }

  .menu li + li {
    margin-top: 40px;
  }

  .drawer {
    display: block;
  }
}

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

.page-top {
  position: relative;
  width: 100%;
  height: 0;
  margin: 0 auto;
  bottom: 0;
  z-index: 10;
}

.page-top a {
  position: absolute;
  bottom: 0;
  right: 0;
  display: block;
  text-align: center;
  z-index: 9999;
  background: #8D8D8D;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  font-size: 16px;
}
.page-top a i {
  position: absolute;
  top: 25px;
  left: 50%;
  transform: translateX(-50%);
  width: 34px;
  height: calc(tan(60deg) * 25px / 2);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background-color: #fff;
}

.page-top a span{
  position: absolute;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
}

.l-footer {
  width: 100%;
  background: #96BEBC;
  position: relative;
  z-index: 2;
  color: #fff;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
}

.l-footer:before{
  content: '';
  background: url(../img/footer-bg.webp) repeat-x center bottom /1193px;
  width: 100%;
  height: 140px;
  position: absolute;
  top:-140px;
}

.p-foorerRight__wrap{
  margin-left: auto;
}

.p-footerBnr{
  width: 100%;
  max-width: 350px;
  display: block;
}

.p-footerLogo{
  width: 100%;
  max-width: 319px;
  margin-bottom: 15px;
  display: block;
}

.p-footerLogo img{
  width: 100%;
  height: auto;
}

.p-footerText{
  text-align: left;
  font-size: 16px;
  line-height: 1.563;
  letter-spacing: 0.06em;
  font-weight: 500;
}


.p-footerCopy {
  text-align: center;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding-block: 40px 15px;
}

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

.p-footer__inner{
  max-width: 1080px;
  margin-inline:auto ;
  padding-top: 50px;
  padding-inline: 40px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.page-top a{
  overflow: hidden;
}

.page-top a::before {
  content: '';
  transition: 0.3s;
  width: 0;
  height: 100%;
  position: absolute;
  top:0;
  left: 0;
  background: #D7AB5A;
  border-radius: 50%;
}

.page-top a:hover::before {
  width: 100%;
}

}



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

  .page-top a {
    position: absolute;
    bottom: 0;
    right: 0;
    display: block;
    text-align: center;
    z-index: 9999;
    background: #8D8D8D;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    font-size: 12px;
  }
  .page-top a i {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 15px;
    height: calc(tan(60deg) * 12px / 2);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    background-color: #fff;
  }

  .page-top a span{
    bottom: 10px;
  }

  .l-footer {
    width: 100%;
  }

  .p-footer__inner{
    padding-top: 50px;
    padding-inline: 20px;
  }

  .p-footerLogo{
    max-width: 200px;
  }

  .p-footerText{
    font-size: 14px;
  }

  .p-foorerLeft__wrap{
    margin-bottom: 20px;
  }

  .p-footerCopy {
    font-size: 10px;
  }

  .l-footer:before{
    content: '';
    background: url(../img/footer-bg.webp) repeat-x center bottom /100%;
    width: 100%;
    height: 20vw;
    position: absolute;
    top:-20vw;
  }
}

/* ----------------------------------------------
見出し
----------------------------------------------- */

.c-title__primary{
  text-align: center;
  font-size: 32px;
  font-weight: 400;
  position: relative;
  padding-bottom: 25px;
  margin-bottom: 74px;
}

.c-title__primary .en{
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: #7A7A7A;
  margin-bottom: 15px;
}

.c-title__primary::after{
  content: '';
  background: #D7AB5A;
  width: 50px;
  height: 5px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.c-title__secondary{
  text-align: center;
  font-size: 20px;
  margin-bottom: 20px;
  font-weight: 400;
}

.c-title__secondary::before{
  content: '';
  width: 25px;
  height: 21px;
  display: block;
  margin: 0 auto 5px auto;
  background: url(../img/shrine_icon.png) no-repeat center / cover;
}

.c-title__secondary .small{
  display: block;
  font-size: 18px;
  margin-top: 5px;
}

.c-title__secondary .small span{
  display:inline-block;
  position: relative;
}

.c-title__secondary .small span::before{
  content: '';
  width: 25px;
  height: 1px;
  background: #FFAE35;
  position: absolute;
  top:50%;
  left: -30px;
  transform: translateY(-50%);
}

.c-title__secondary .small span::after{
  content: '';
  width: 25px;
  height: 1px;
  background: #FFAE35;
  position: absolute;
  top:50%;
  right: -30px;
  transform: translateY(-50%);
}

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

  .c-title__primary{
    font-size: 24px;
    padding-bottom: 20px;
    margin-bottom: 40px;
  }

  .c-title__primary::after{
    height: 5px;
  }

  .c-title__primary .en{
    margin-bottom: 10px;
  }
}
