@charset "UTF-8";

html {font-size: 62.5%;}
body {
  position: relative;
  font-size: 1.8rem;
	line-height: 2;
	margin: auto;
  font-family: "Zen Maru Gothic", serif;
  font-weight: 500;
  font-style: normal;
  font-feature-settings: "palt";
  min-width: 320px;
  color: #231815;
  background: #fff;
}
*{
    text-decoration: none;
    list-style: none;
}
.w1100{
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px;
}
img{width: 100%;}

.flex{
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.relative{position: relative;}
.absolute{position: absolute;}
.txt-center{
  text-align: center;
}
main{overflow: hidden;}

/* fv ---------------------------------------------------------------- */
.fv{
  width: 100%;
  height: 52vw;
  margin-bottom: 10%;
}
.fv .txt-left.pc{
  width: 75%;
  left: 50%;
  transform: translateX(-50%);
  bottom: 1%;
}
.fv .fv-txt.sp{
  display: none;
}
.fv .illust{
  width: 36%;
  top: 43%;
  left: 48%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.fv .fv-bg-l-t{
  width: 35%;
  top: 0;
  left: 0;
}
.fv .fv-bg-r-t{
  width: 35%;
  top: 0;
  right: 0;
}
.fv .fv-bg-l{
  width: 6%;
  bottom: 0;
  left: 0;
}
.fv .fv-bg-r{
  width: 6%;
  bottom: 0;
  right: 0;
}
.fv .fv-leaf-left{
  width: 11%;
  top: 58%;
  left: 13%;
}
.fv .fv-leaf-right{
  width: 11%;
  top: 23%;
  right: 15%;
}

/* message ---------------------------------------------------------------- */
.message {
  padding-bottom: 8%;
}
.message .ttl{
  width: 35%;
  margin-inline: auto;
  margin-bottom: 3%;
}
.message p{
  margin-bottom: 2%;
}
.message p br.sp-block{display: none;}
.message p:last-of-type{
  margin-bottom: 0px;
}
.sakura {
  position: absolute;
  top: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: -1;
}
.sakura li {
  width: 30px;
  position: absolute;
  list-style: none;
  top: -50px;
  animation: fall 4s linear infinite, rotate1 2s ease-in-out infinite alternate;
}
.sakura li img{width:100%;}
@keyframes fall {
  to {
    top: 120%;
  }
}
@keyframes rotate1 {
  from {
    transform: translateX(0px) rotate(0deg);
  }
  to {
    transform: translateX(200px) rotate(-80deg) rotateX(180deg);
  }
}
@keyframes rotate2 {
  from {
    transform: translateX(200px) rotate(-45deg);
  }
  to {
    transform: translateX(0px) rotate(0deg);
  }
}
.sakura li:nth-child(1) {
  left: 0;
  animation: fall 10s linear infinite, rotate1 3s ease-in-out infinite alternate;
}
.sakura li:nth-child(2) {
  left: 5vw;
  animation: fall 15s linear infinite, rotate1 2s ease-in-out infinite alternate;
}
.sakura li:nth-child(3) {
  left: 15vw;
  animation: fall 9s linear infinite,
    rotate1 3.5s ease-in-out infinite alternate;
}
.sakura li:nth-child(4) {
  left: 30vw;
  animation: fall 8s linear infinite, rotate2 4s ease-in-out infinite alternate;
}
.sakura li:nth-child(5) {
  left: 40vw;
  animation: fall 10s linear infinite, rotate1 4s ease-in-out infinite alternate;
}
.sakura li:nth-child(6) {
  left: 55vw;
  animation: fall 11s linear infinite, rotate2 3s ease-in-out infinite alternate;
}
.sakura li:nth-child(7) {
  left: 65vw;
  animation: fall 7s linear infinite,
    rotate2 3.5s ease-in-out infinite alternate;
}
.sakura li:nth-child(8) {
  left: 50vw;
  animation: fall 7s linear infinite, rotate1 3s ease-in-out infinite alternate;
}
.message .wave{
  width: 100%;
  font-size: 0;
  bottom: -1px;
}
.message .left-top{
  width: 8%;
  top: -8%;
  left: 8%;
}
.message .left-bottom{
  width: 10%;
  bottom: -3%;
  left: 7%;
}
.message .right-top{
  width: 17%;
  top: -12%;
  right: 5%;
}
.message .right-bottom{
  width: 9%;
  bottom: 2%;
  right: 4%;
}

.message .ttl-flower{
  width: 12%;
  bottom: 0%;
  left: 50%;
  transform: translateX(-50%);
}

.message .right-bg{
  width: 11%;
  right: 0;
  bottom: -50%;
  z-index: -1;
}

/* illustrator ---------------------------------------------------------------- */
.illustrator{
  padding-bottom: 5%;
}
.illustrator .img{
  width: 42%;
  margin-inline: auto;
}
.illustrator h2{
  font-size: 3.5rem;
  margin-bottom: 10px;
  color: #871737;
}
.illustrator p{
  color: #871737;
  margin-bottom: 40px;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
.illustrator p br.sp-block{
  display: none;
}
.illustrator .sns .flex{
  justify-content: center;
}
.illustrator .sns .flex li{
  margin: 0 8px;
}
.illustrator .sns .flex li {
  width: 4%;
}
.illustrator .sns .flex li a{
  display: block;
  width: 100%;
}
.illustrator .illust-left.illust-left-top{
  width: 8%;
  top: 60%;
  left: 9.5%;
}
.illustrator .illust-left.illust-left-bottom{
  width: 8%;
  bottom: -15%;
  left: 13%;
}
.illustrator .illust-right-top{
  width: 8%;
  top: 20%;
  right: 14%;
}
.illustrator .illust-right-bottom{
  width: 28%;
  bottom: -2%;
  right: 0;
}
.illustrator .sp{
  display: none;
}
.illustrator .left-bg{
  width: 11%;
  left: 0;
  bottom: -15%;
  z-index: -1;
}

.event{
  width: 55%;
    padding: 30px;
    margin-inline: auto;
    border: solid 2px #871737;
    margin-top: 5%;
    border-radius: 30px;
    background: #fff;
}
.event h3{
  font-size: 5rem;
  text-align: center;
  color: #871737;
  line-height: 1.4;
}
.event p:first-of-type{
  font-size: 3.5rem;
  margin-bottom: 10px;
}
.event p{
  font-size: 2.5rem;
  text-align: center;
  color: #871737;
  line-height: 1.4;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}
.event p span{
  font-size: 1.4rem;
}
.event .btn {
  display: flex;
  justify-content: center;
}
.event .btn a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 300px;
  height: 60px;
  background: #871737;
  color: #fff;
  border-radius: 30px;
}

/* graphic ---------------------------------------------------------------- */
.graphic .wave.top{
  width: 100%;
  font-size: 0;
  top: 0;
  z-index: -1;
}
.graphic{
  padding-top: 5%;
padding-bottom: 16%;
}
.graphic .ttl{
  width: 16%;
  margin-inline: auto;
  padding-bottom: 3%;
}

.graphic .left-top{
  width: 20%;
  top: 0%;
  left: 6%;
}
.graphic .right-top{
  width: 5%;
  top: 2%;
  right: 13%;
}
.graphic .thum{
  border: solid 1px #c8c8c8;
}
.graphic p{
  color: #871737;
  margin-top: 10px;
  font-size: 2rem;
}
.graphic .left-top{
  width: 6%;
  top: 25%;
  left: 7%;
}
.graphic .right-top{
  width: 6%;
  top: 23%;
  right: 7%;
}
.lity{
  background: rgba(255, 255, 255, .8)!important;
}
.lity-container{
  padding: 5%;
  width: 550px;
}
.lity-content img{
  max-height: inherit!important;
}
.lity-close{
  background: #871737!important;
  width: 50px!important;
  height: 50px!important;
  border-radius: 50px;
  right: 8%!important;
  top:  8%!important;
  font-size: 30px!important;
}
.swiper-button-next, .swiper-button-prev{
  display: none;
}
.swiper-button-next{
  right: 0px!important;
}
.swiper-button-prev{
  left: 0px!important;
}
.swiper-button-next:after, .swiper-button-prev:after{
  color: #871737;
  font-size: 30px!important;
}
.graphic .right-bottom{
  width: 8%;
  bottom: 5%;
  right: 22%;
}

/* footer ---------------------------------------------------------------- */
footer{
  padding-bottom: 3%;
}
.footer_box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  justify-content: center;
}
.footer_frex {
  display: flex;
  width: 200px;
  align-items: center;
  border-right: 1px solid #000;
  margin-right: 30px;
  padding-right: 10px;
}
.footer_frex a {
  display: block;
  width: 40px;
  margin: 0 15px;
}
.amu {
  width: 100px;
  align-items: center;
}
footer .bg-left{
  width: 50%;
  bottom: 0;
  left: 0;
  z-index: -1;
}
footer .bg-right{
  width: 38%;
  bottom: 0;
  right: 0;
  z-index: -1;
}
footer .left-bottom{
  bottom: 10%;
  left: 22%;
  width: 6%;
}


.after_load .illustAnm{
  animation-name: illustAnm;
  animation-duration: .8s;
  animation-delay: 2s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes illustAnm {
	0% {transform: scale(0); opacity: 0;}
	100% {transform: scale(1); opacity: 1;}
}

.after_load .Slide-left{
	animation-name: Slide-left;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes Slide-left {
	0% {transform: translateX(-150px); opacity: 0;}
	100% {transform: translateX(0); opacity: 1;}
}
.after_load .txt-left .Slide-left{
  opacity: 0;
  animation-delay: 2.4s;
}
.after_load .txt-right .Slide-left{
  opacity: 0;
  animation-delay: 2.7s;
}


.after_load .ScaleAnm.anm{
  opacity: 0;
}
.after_load .ScaleAnm.anm.show{
  animation-name: ScaleAnm;
  animation-duration: .8s;
  animation-delay: .5s;
  animation-fill-mode: forwards;
}
@keyframes ScaleAnm {
	0% {transform: scale(0); opacity: 0;}
	100% {transform: scale(1); opacity: 1;}
}


.after_load .Slide-in-left.anm{
  opacity: 0;
}
.after_load .Slide-in-right.anm{
  opacity: 0;
}
.after_load .Slide-in-right.anm.show {
	animation-name: SlideIn-anm-right;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes SlideIn-anm-right {
	0% {transform: translateX(150px); opacity: 0;}
	100% {transform: translateX(0); opacity: 1;}
}
.after_load .Slide-in-left.anm.show {
	animation-name: SlideIn-anm-left;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes SlideIn-anm-left {
	0% {transform: translateX(-150px); opacity: 0;}
	100% {transform: translateX(0); opacity: 1;}
}

.after_load .FeadAnm.anm{
  opacity: 0;
}
.after_load .FeadAnm.anm.show{
  animation-name: FeadAnm;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}
@keyframes FeadAnm {
	0% {transform: translateY(80px); opacity: 0;}
	100% {transform: translateY(0px); opacity: 1;}
}

.graphic .swiper-slide.FeadAnm.anm:nth-of-type(2){
  animation-delay: .3s;
}
.graphic .swiper-slide.FeadAnm.anm:nth-of-type(3){
  animation-delay: .6s;
}

/* loading */
#load {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
  text-align:center;
  background: #fff;
}
#load_logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#load_logo {width: 400px}
.blur{
  animation-name: blurAnime;
  animation-duration: 1.2s;
  animation-fill-mode: forwards;
}
@keyframes blurAnime {
  0% {filter: blur(5px); transform: translateY(30px); opacity: 0;}
  50% {filter: blur(3px);}
  100% {filter: blur(0); transform: translateY(0); opacity: 1;}
}
