html,body{
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #E62D84;
  color: #fff;
  line-height: 1.7;
}
a{
  color: #fff;
  transition: opacity 0.3s, color 0.3s;
}
a:hover{ opacity: 0.6; }
a svg path{
  transition: fill 0.3s, stroke 0.3s;
}
img,picture{
	max-width: 100%;
	display: block;
}

.pi{ color: #E62D84; }
.bg-pi{
  background-color: #E62D84;
  color: #fff;
}
.bg-wh{
  background-color: #fff;
  color: #242020;
}




.anchor{
  position: relative;
}
.anchor > div{
  position: absolute;
  top: -14rem;
}

.nav{
  width: 93.33%;
  height: 8rem;
  position: absolute;
  top: 1rem;
  left: 3.33%;
  z-index: 999;

  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.nav a.logo{
  display: block;
  width: 32rem;
  aspect-ratio: 320 / 28;
  background: url(../images/logo_w.png) center center no-repeat;
  background-size: contain;
}
.nav ul.nav-li{
  display: flex;
  margin-left: auto;
}
.nav ul.nav-li li + li{
  margin-left: 3rem;
}
.nav ul.nav-li li a{
  font-size: 1.8rem;
  font-weight: 900;
  transition: opacity 0.3s;
}


/* nav付加クラス　*/
.nav.transform{
  background: #fff;
  box-shadow: 0 0.9rem 1.4rem rgba(0, 0, 0, 0.16);
  border-radius: 4rem;
  padding: 0 5rem;
  position: fixed;
  top: 2rem;
  animation: nav-anime 0.3s;
}
.nav.transform ul.nav-li li a{
  color: #242020;
  transition: color 0.3s;
}
.nav.transform ul.nav-li li a:hover{
  color: #E62D84;
  opacity: 1;
}
.nav.transform a.logo{
  background: url(../images/logo.png) center center no-repeat;
  background-size: contain;
}
@keyframes nav-anime {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}


.blank-head{
  height: 10rem;
}


.sec{
  padding: 10rem 0 16rem;
}


section h2 img,
section h3 img{
  width: 100%;
}


img.cta-period{
  width: 18.8rem;
  margin: 0 auto -2rem;
  position: relative;
  z-index: 1;
}
a.cta-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 49.3rem;
  aspect-ratio: 493 / 168;
  border-radius: 8.4rem;
  overflow: hidden;
  box-shadow: 0 1.1rem 1.8rem rgba(0, 0, 0, 0.15);
  position: relative;
  opacity: 1;
}
a.cta-btn::before{
  content: "";
  width: 200%;
  height: 100%;
  background: linear-gradient(to right, #FBFF21 0%, #BEFF96 50%, #3FEBF4 100%);
  transition: transform 0.8s;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}
a.cta-btn:hover::before{
  transform: translateX(-50%);
}
a.cta-btn img.txt{
  width: 83.37%;
  margin-top: 2%;
  position: relative;
  z-index: 1;
}


a.ext::after{
  content: "";
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  background: url(../images/ico-ext_w.svg) center center no-repeat;
  background-size: contain;
  margin-left: 0.3em;
  vertical-align: -5%;
}


.fv > .bg{
  display: block;
  width: 100%;
  height: calc(100svh - min(9.091vw,18rem));
  object-fit: cover;
  background: url(../images/webp/fv-bg.webp) center center no-repeat;
  background-size: cover;
}
.fv .wrap{
  width: 100%;
  height: min(9.091vw,18rem);
  position: relative;
}
.fv .wrap .h1-wrap{
  width: min(60.61vw,120rem);
  margin: 0 auto;
  position: relative;
  transform: translateY(-58%);
}
.fv .wrap .h1-wrap .fv-result img{
  width: 26.9%;
  margin-bottom: 3.2%;
  position: absolute;
  left: 50%;
  bottom: 100%;
  transform: translateX(-50%);
}
.fv .wrap .h1-wrap img.fv-logo{
  width: 100%;
}
.fv .wrap .h1-wrap h1 picture{
  width: 61.33%;
  margin-top: 3.2%;
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
}
.fv .wrap .h1-wrap h1 picture img{
  width: 100%;
}
.fv .wrap a.scroll{
  display: block;
  width: min(8.3vw,13.3rem);
  position: absolute;
  bottom: min(3.03vw, 6rem);
  left: 3.33%;
}
.fv .wrap a.scroll img{
  width: 100%;
}
.fv .wrap #fl-btn{
  filter: drop-shadow(0.9rem 0.9rem 1.2rem rgba(0, 0, 0, 0.2));
  position: fixed;
  bottom: min(3.03vw, 6rem);
  right: 3.33%;
  z-index: 997;
}
.fv .wrap #fl-btn a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(11.92vw, 23.6rem);
  aspect-ratio: 1 / 1;
  position: relative;
  opacity: 1;
}
.fv .wrap #fl-btn a .bg{
  width: 100%;
  height: 100%;
  mask-image: url(../images/fl-btn-bg.svg);
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
  animation: rotate 24s linear infinite;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
}
.fv .wrap #fl-btn a .bg::before,
.fv .wrap #fl-btn a .bg::after{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  animation: rotateReverse 30s linear infinite;
  position: absolute;
  left: 0;
  top: 0;
}
.fv .wrap #fl-btn a .bg::before{
  background: linear-gradient(135deg, #FBFF21 0%, #BEFF96 100%);
}
.fv .wrap #fl-btn a .bg::after{
  background: linear-gradient(135deg, #BEFF96 0%, #3FEBF4 100%);
  opacity: 0;
  transition: opacity 0.8s;
}
.fv .wrap #fl-btn a:hover .bg::after{
  opacity: 1;
}
@keyframes rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes rotateReverse {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-360deg); }
}
.fv .wrap #fl-btn a picture {
  width: 74.6%;
  margin-top: 2%;
  position: relative;
  z-index: 1;
}
.fv .wrap #fl-btn a img {
  width: 100%;
}


.about{
  overflow: hidden;
  padding: 12rem 0;
}
.about .content{
  position: relative;
  max-width: min(87.5vw,168rem);
}
.about .content::before,
.about .content::after{
  content: "";
  display: block;
  position: absolute;
}
.about .content::before{
  width: min(18.44vw,35.4rem);
  aspect-ratio: 708 / 671;
  background: url(../images/webp/about-img1.webp) center center no-repeat;
  background-size: contain;
  top: ;
  top: min(8.85vw,17rem);
  right: -3.3rem;
}
.about .content::after{
  width: min(15.62vw,30rem);
  aspect-ratio: 600 / 700;
  background: url(../images/webp/about-img2.webp) center center no-repeat;
  background-size: contain;
  top: min(17.71vw,34rem);
  left: -0.3rem;
}
.about h2{
  width: min(58.96vw,113.2rem);
  margin: 0 auto 5rem;
}
.about p{
  font-size: min(1.15vw,2.2rem);
  text-align: center;
  line-height: 2.27;
  letter-spacing: 0.03em;
}
.about a.btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 19em;
  height: 3.2em;
  border-radius: 1.6em;
  color: #fff;
  overflow: hidden;
  box-shadow: 0 1.1rem 1.8rem rgba(0, 0, 0, 0.15);
  font-size: min(1.3vw,2.5rem);
  text-align: center;
  font-weight: 900;
  margin: 2.4em auto 0;
  position: relative;
  opacity: 1;
}
.about a.btn::before{
  content: "";
  width: 200%;
  height: 100%;
  background: linear-gradient(to right, #00D977 0%, #01A08B 50%, #C200F2 100%);
  transition: transform 0.8s;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}
.about a.btn:hover::before{
  transform: translateX(-50%);
}
.about a.btn span{
  width: 100%;
  position: relative;
  z-index: 1;
}
.about a.btn span::before,
.about a.btn span::after{
  content: "";
  display: block;
  width: 1.04em;
  aspect-ratio: 1 / 1;
  background: url(../images/ico-star_w.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.about a.btn span::before{
  left: 1.28em;
}
.about a.btn span::after{
  right: 1.28em;
}


.modal{
  display: none;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
}
.modal_bg{
  background: rgba(0,0,0,0.6);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */
}
.modal_content{
  max-width: 90%;
  max-height: 90%;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 2;
  position: relative;
  
  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */
}
.modal_bg::before,
.modal_content::before{
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 1px);
  position: absolute;
  left: 0;
  top: 0;
}
/* バー非表示 Chrome・Safari用 */
.modal_bg::-webkit-scrollbar,
.modal_content::-webkit-scrollbar{
  display: none;
}
.modal a.js-modal-close{
  display: block;
  width: 7.7rem;
  position: fixed;
  right: min(3.2vw,6.4rem);
  top: min(3.2vw,6.4rem);
  z-index: 3;
  opacity: 1;
}
.modal_content a.js-modal-close img{
  width: 100%;
}

#thoughts .modal_content{
  width: 100%;
  height: 100%;
  max-width: unset;
  max-height: unset;
  background: 
    linear-gradient(135deg, #00D977, #01A08B),
    url(../images/webp/bg-noise.webp) center center / 30rem auto;
  background-blend-mode: multiply;
}
#thoughts .modal_content .content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding-top: 10rem;
  padding-bottom: 10rem;
  position: relative;
  z-index: 1;
}
#thoughts .modal_content h2{
  width: 90.2rem;
  margin-bottom: 8rem;
}
#thoughts .modal_content h2 img{
  width: 100%;
}
#thoughts .modal_content p{
  font-size: min(1.3vw,2rem);
  line-height: 2.2;
  letter-spacing: 0.03em;
}
#thoughts .modal_content p + p{
  margin-top: 6rem;
}
#thoughts .modal_content img.modal-img{
  width: min(34.49vw,68.3rem);
  position: fixed;
  right: min(3.2vw,6.4rem);
  bottom: 0;
  z-index: 0;
}

.modal-work .modal_content{
  width: 80%;
  height: 84%;
  max-width: unset;
  max-height: unset;
}
.modal-work .work{
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}


.obi-line img{
  width: 100%;
}
.obi-line.turn img{
  transform: scale(-1, 1);
}


.guide{
  overflow: clip;
  padding: 6rem 0 0;
  margin-top: -16.7rem;
}
.guide .sticky-wrap{
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
}
.guide .sticky-wrap .sticky{
  flex-grow: 1;
  height: min(58vw,102.8rem);
  position: sticky;
  top: 0;
}
.guide .sticky-wrap .sticky .img-wrap{
  width: min(58vw,102.8rem);
  position: absolute;
  top: 0;
  left: min(4.55vw,9rem);
}
@media screen and (min-width: 769px) and (max-width: 1500px){
.guide .sticky-wrap .sticky .img-wrap{
  width: 53.07vw;
  left: 2.2vw;
}
.guide .sticky-wrap .sticky{
  height: 53.07vw;
}
}
.guide .sticky-wrap .img-wrap img.balloon{
  width: 19.36%;
  position: absolute;
  top: 26%;
  left: 52%;
}
.guide .sticky-wrap .wrap{
  width: 72.5rem;
  margin-top: 16.7rem;
}
.guide .wrap h2{
  width: 58.3rem;
  margin-bottom: 5rem;
}
.guide .wrap dl{
  display: grid;
  grid-template-columns: 16rem 1fr;
}
.guide .wrap dl dt,
.guide .wrap dl dd{
  padding: 3rem 0;
  position: relative;
}
.guide .wrap dl dd::before{
  content: "";
  display: block;
  width: calc(100% + 16rem);
  height: 0;
  border-bottom: 0.3rem dotted #fff;
  position: absolute;
  right: 0;
  bottom: -0.15rem;
}
.guide .wrap dl dt span{
  display: inline-block;
  width: 12rem;
  line-height: 3.5rem;
  border-radius: 1.8rem;
  background: #fff;
  font-size: 2rem;
  text-align: center;
  font-weight: 700;
}
.guide .wrap dl dd b{
  display: block;
  font-size: min(1.64vw,2.2rem);
  font-weight: 700;
  line-height: 1.5;
}
.guide .wrap dl dd b big{
  display: block;
  font-size: min(2.08vw,3rem);
  line-height: 1.1;
  margin-bottom: 0.6em;
}
.guide .wrap dl dd b + p{
  margin-top: 0.7em;
}
.guide .wrap dl dd p.note{
  color: #FFC7E1;
}
.guide .wrap dl dd ul.circle-li{
  margin: 1em 0;
}
.guide .wrap dl dd ul.circle-li li{
  display: block;
  padding-left: 1.3em;
  position: relative;
}
.guide .wrap dl dd ul.circle-li li::before{
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
}
.guide .wrap dl dd .label{
  width: fit-content;
  line-height: 1.57;
  border-radius: 0.79em;
  padding: 0 0.8em;
  background: #C91369;
  margin: 1.2em 0 0.4em;
}
.guide .wrap dl dd ul.file-li{
  display: grid;
  grid-template-columns: repeat(4, 10rem);
  gap: 1.6rem;
  align-items: center;
  margin-top: 2.4rem;
}
.guide .wrap dl dd ul.file-li li{
  display: block;
  text-align: center;
  font-weight: 700;
}
.guide .wrap dl dd ul.file-li li img{
  margin-bottom: 0.5rem;
}
.guide h3{
  width: 16.1rem;
  margin: 9rem auto 3rem;
}
.guide .overview-box{
  background: #fff;
  color: #242020;
  padding: 4rem;
  border-radius: 0.8rem;
}
.guide .overview-box ul.overview > li{
  display: block;
}
.guide .overview-box ul.overview > li + li{
  margin-top: 2.4rem;
  padding-top: 2.4rem;
  border-top: 1px solid #AFAFAF;
}
.guide .overview-box .accttl{
  font-size: 2rem;
  margin-bottom: 2rem;
  padding-left: 3.6rem;
  position: relative;
  pointer-events: none;
}
.guide .overview-box .accttl::before{
  content: "";
  display: block;
  width: 2.6rem;
  aspect-ratio: 1 / 1;
  background: url(../images/ico-star.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.guide .overview-box .accshow{
  letter-spacing: 0.03em;
}
.guide .overview-box ul.overview li ul{
  list-style: disc;
  margin-left: 1.4em;
}


.howto{
  padding: 16rem 0;
}
.howto h2{
  width: 70rem;
  margin: 0 auto 8rem;
}
.howto-swiper{
  overflow: unset;
}
@media screen and (min-width: 769px){
.howto-swiper .swiper-wrapper{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9rem;
  transform: unset !important;
}
}
.howto-swiper .swiper-slide{
  text-align: center;
  position: relative;
}
.howto-swiper .swiper-slide + .swiper-slide::before{
  content: "";
  display: block;
  width: 3.9rem;
  aspect-ratio: 1 / 1;
  background: url(../images/howto-arrow.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: -6.6rem;
  top: min(14.13vw,21.9rem);
}
.howto-swiper .swiper-slide img.img{
  max-width: 106%;
  transform: translateX(-6%);
}
.howto-swiper .swiper-slide h3{
  font-size: 2.4rem;
  margin: 4rem 0 2rem;
}
.howto-swiper .swiper-slide p{
  letter-spacing: 0.03em;
}
.howto-swiper .swiper-slide small{
  display: block;
  font-size: 1.4rem;
  color: #FFCCE4;
  margin-top: 1em;
}


.label-swiper{
  width: 100%;
  pointer-events: none;
  user-select: none;
  border-top: 1px solid #ff7dba;
  border-bottom: 1px solid #ff7dba;
}
.label-swiper .swiper-wrapper{
  transition-timing-function: linear;
}
.label-swiper .swiper-slide{
  max-width: unset;
}


.schedule{
  padding: 16rem 0;
}
.schedule h2{
  width: 51.7rem;
  margin: 0 auto 8rem;
}


.prizes{
  overflow: hidden;
  padding: 27.2rem 0 0;
  margin-top: -21.2rem;
}
.prizes .content{
  position: relative;
}
.prizes .img-wrap{
  width: min(58vw,102.8rem);
  position: absolute;
  top: -21.2rem;
  right: 59.8%;
}
.prizes .img-wrap img.balloon{
  width: 27.33%;
  position: absolute;
  top: 37%;
  left: 36%;
}
.prizes .wrap{
  width: min(56%,76rem);
  margin-left: auto;
  position: relative;
}
@media screen and (min-width: 769px) and (max-width: 1500px){
.prizes .img-wrap{
  width: 53.07vw;
}
}
.prizes .wrap::before{
  content: "";
  display: block;
  width: min(58.46vw,102.3rem);
  aspect-ratio: 1023 / 708;
  background: url(../images/prizes-bg.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 50%;
  transform: translateX(-53%);
  top: 4.9rem;
}
.prizes .wrap h2{
  width: 34.9rem;
  margin: 0 auto 11.5rem;
}
.prizes .wrap ul{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5rem;
}
.prizes .wrap ul li{
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 0.8rem;
  position: relative;
}
.prizes .wrap ul li img.ribbon{
  width: 10rem;
  position: absolute;
  left: -3.2rem;
  top: -3.5rem;
}
.prizes .wrap ul li .gift{
  width: 100%;
  aspect-ratio: 357 / 248;
  display: flex;
  justify-content: center;
  align-items: center;
}
.prizes .wrap ul li .gift img{
  width: 57%;
}
.prizes .wrap ul li .txt{
  flex-grow: 1;
  background: #242020;
  border-radius: 0 0 0.8rem 0.8rem;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 1rem 1rem 1.4rem;
}
.prizes .wrap ul li .txt p{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 0.5em;
  font-size: 2.4rem;
  line-height: 1.5;
}
.prizes .wrap ul li .txt > span{
  display: inline-block;
  line-height: 3.2rem;
  border-radius: 1.6rem;
  padding: 0 0.5em;
  font-size: 2rem;
  background: #fff;
  color: #242020;
  margin-top: 0.4em;
}
.prizes .wrap p.note{
  text-align: center;
  margin-top: 5.6rem;
  letter-spacing: 0.03em;
}
.prizes .wrap p.note span{
  display: inline-block;
}


.obi-leaf{
  width: 100%;
  aspect-ratio: 1980 / 679;
  overflow: hidden;
  position: relative;
}
.obi-leaf img.leaf1,
.obi-leaf img.leaf2{
  width: auto;
  max-width: unset;
  position: absolute;
}
.obi-leaf img.leaf1{
  height: 97%;
  left: -5%;
  top: 0;
}
.obi-leaf img.leaf2{
  width: auto;
  max-width: unset;
  height: 88%;
  position: absolute;
  right: -5%;
  bottom: 0;
}


.faq{
  padding-bottom: 15rem;
  margin-top: -9rem;
}
.faq h2{
  width: 21.8rem;
  margin: 0 auto 8rem;
}
.faq h3 img{
  width: auto;
  height: 2.62rem;
  margin: 6rem 0 3rem;
}
ul.faq-li li{
  display: block;
  background: #fff;
  color: #242020;
  border-radius: 0.8rem;
}
ul.faq-li li + li{
  margin-top: 0.8rem;
}
ul.faq-li li .qu,
ul.faq-li li .an{
  padding: 0 4rem;
  position: relative;
}
ul.faq-li li .qu{
  font-size: 2rem;
  cursor: pointer;
}
ul.faq-li li .an{
  display: none;
}
ul.faq-li li .qu::after{
  content: "";
  display: block;
  width: 3.2rem;
  height: 1.8rem;
  background: url(../images/acc-arrow.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  right: 4rem;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s;
}
ul.faq-li li .qu.active::after{
  transform: translateY(-50%) rotate(180deg);
}
ul.faq-li li .qu h4,
ul.faq-li li .an p{
  display: flex;
  align-items: center;
  min-height: 9.4rem;
  padding: 2.4rem 8rem;
  position: relative;
}
ul.faq-li li .an p{
  border-top: 0.2rem dashed #E62D84;
}
ul.faq-li li .qu h4::before,
ul.faq-li li .an p::before{
  content: "";
  display: block;
  width: 6rem;
  height: 8rem;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
ul.faq-li li .qu h4::before{
  background: url(../images/faq-q.svg) right center no-repeat;
  background-size: 97% auto;
}
ul.faq-li li .an p::before{
  background: url(../images/faq-a.svg) center center no-repeat;
  background-size: contain;
}


.cta{
  width: 100%;
  background: url(../images/webp/cta-bg.webp) center center no-repeat;
  background-size: cover;
  padding: 23.5rem 0 14rem;
  overflow: hidden;
  position: relative;
}
.cta::before{
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 1980 / 352;
  background: url(../images/cta-top.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 0;
  top: -7.5vw;
}
.cta h2{
  width: 91.7rem;
  margin: 0 auto;
}
.cta a.cta-btn{
  margin: 7.6rem auto 0;
}


footer{
  padding: 6.5rem 0;
}
footer .content{
  display: grid;
  grid-template-columns: 1fr 48rem;
  gap: 4rem;
}
footer .left a.logo{
  display: block;
  width: 52.1rem;
  margin-bottom: 4.6rem;
}
footer .left a.logo img{
  width: 100%;
}
footer .left ul.f-nav{
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(3, auto);
  justify-content: flex-start;
  row-gap: 2rem;
  column-gap: 6.4rem;
}
footer .left ul.f-nav li{
  display: block;
  font-size: 1.8rem;
  font-weight: 900;
}
footer .right{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
footer .right .box{
  display: grid;
  grid-template-columns: 16rem 1fr;
  gap: 3rem;
  align-items: center;
  background: #fff;
  padding: 1.8rem 2.4rem;
  border-radius: 0.8rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}
footer .right .box h2{
  width: 100%;
  line-height: 4.6rem;
  border-radius: 2.3rem;
  text-align: center;
}
footer .right .box a.mail{
  color: #E62D84;
}
footer .right .box a.mail::before{
  content: "";
  display: inline-block;
  width: 1.2em;
  aspect-ratio: 24 / 17;
  background: url(../images/ico-mail.svg) center center no-repeat;
  background-size: contain;
  margin-right: 0.4em;
  vertical-align: -5%;
}
footer .right ul.low-nav{
  display: flex;
  gap: 3.2rem;
  font-size: 1.4rem;
  margin: 2.4rem 0;
}
footer .right ul.low-nav li{
  display: block;
}
footer .right .copy{
  margin-top: auto;
  font-size: 1.7rem;
  font-weight: 700;
}


.entry-form{
  overflow: clip;
}
.entry-form .sticky-wrap{
  display: flex;
  align-items: flex-start;
}
.entry-form .sticky-wrap .sticky{
  flex-grow: 1;
  height: 42.1rem;
  position: sticky;
  top: 12rem;
}
.entry-form .sticky-wrap .sticky img.entry-img{
  width: min(18vw,31.8rem);
  max-width: unset;
  position: absolute;
  right: min(5.05vw,10rem);
  top: 1.4rem;
}
.entry-form .sticky-wrap .wrap{
  width: min(66vw,112rem);
}
.entry-form .wrap h1{
  width: 61.5rem;
  margin: 0 auto 6rem;
}
.entry-form .wrap h1 + p{
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8rem;
}
.entry-form .wrap .box{
  background: #fff;
  color: #242020;
  border-radius: 0.8rem;
  padding: 3.2rem 5.6rem 8rem;
}
.entry-form dl{
  display: grid;
  grid-template-columns: 1fr 62%;
}
.entry-form dl dt,
.entry-form dl dd{
  padding: 2.4rem 0;
  position: relative;
}
.entry-form dl dd{
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.entry-form dl dd::before{
  content: "";
  display: block;
  width: 162%;
  height: 0;
  border-bottom: 0.3rem dotted #D8D8D8;
  position: absolute;
  right: 0;
  bottom: 0;
}
.entry-form dl dt .label-wrap{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 6.4rem;
  padding-right: 9rem;
  position: relative;
}
.entry-form dl dt .label-wrap .label{
  display: block;
  font-size: min(1.55vw,2.2rem);
  font-weight: 700;
}
.entry-form dl dt .label-wrap .label .required{
  display: inline-block;
  width: 5rem;
  line-height: 2.6rem;
  border-radius: 1.3rem;
  font-size: 1.6rem;
  text-align: center;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
}
.entry-form dl dt .label-wrap small{
  display: block;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #AFAFAF;
  margin-top: 0.4em;
  padding-left: 1.3em;
  position: relative;
}
.entry-form dl dt .label-wrap small::before{
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}
.entry-form dl dd input[type=text],
.entry-form dl dd input[type=email],
.entry-form dl dd input[type=tel],
.entry-form dl dd textarea{
  display: block;
  width: 100%;
  border-radius: 0.4rem;
  padding: 1.1em;
  background: #EEEEEE;
  border: 0.2rem solid #EEEEEE;
  font-size: 1.6rem;
}
.entry-form dl dd textarea{
  height: 26rem;
  resize: none;
}
.entry-form dl dd .file-wrap{
  display: flex;
  align-items: center;
  position: relative;
}
.entry-form dl dd .file-wrap input[type="file"]{
  width: 0;
  height: 0;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}
.entry-form dl dd .file-wrap label{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30.6rem;
  height: 6.4rem;
  border-radius: 3.2rem;
  background: linear-gradient(130deg,#FBFF21,#B5DE00);
  border: none;
  font-weight: 700;
  margin-right: 1.6rem;
  transition: opacity 0.3s;
  cursor: pointer;
}
.entry-form dl dd .file-wrap label:hover{
  opacity: 0.6;
}
.entry-form dl dd .file-wrap .filename{
  flex: 1;
  word-break: break-all;
  line-height: 1.5;
}
.entry-form dl dd ul.file-note{
  margin-top: 1em;
}
.entry-form dl dd ul.file-note li{
  display: block;
  padding-left: 1.3em;
  position: relative;
}
.entry-form dl dd ul.file-note li::before{
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
}
.entry-form dl dd .file-note.pi{
  margin-top: 0.5em;
}
.entry-form dl dd .file-note.pi a{
  display: inline-block;
  margin-top: 0.5em;
}
.entry-form .btn-wrap{
  display: flex;
  justify-content: center;
  gap: 2.4rem;
  margin-top: 6.4rem;
}
.entry-form .submit-btn,
.entry-form .back-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30.6rem;
  height: 8rem;
  border-radius: 4rem;
  background: #E62D84;
  color: #fff;
  border: 0;
  font-size: 2.2rem;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.05em;
  position: relative;
  transition: opacity 0.3s;
}
.entry-form .back-btn{
  background: #776D6D;
}
.entry-form .submit-btn::before,
.entry-form .back-btn::before{
  content: "";
  display: block;
  width: 3.4rem;
  height: 3.4rem;
  background: url(../images/btn-arrow.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  right: 1.6rem;
  top: 50%;
  transform: translateY(-50%);
}
.entry-form .back-btn::before{
  right: auto;
  left: 1.6rem;
  transform: translateY(-50%) scale(-1, 1);
}
.entry-form .submit-btn:hover,
.entry-form .back-btn:hover{
  opacity: 0.6;
}


.radio,
.wpcf7-radio{
  display: flex;
  flex-wrap: wrap;
  column-gap: 5rem;
}
.radio label{
  position: relative;
}
.radio input[type=radio]{
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}
.radio input[type=radio] + span{
  display: inline-block;
  padding-left: calc(2.3rem + 0.5em);
  line-height: 2.3rem;
  cursor: pointer;
  position: relative;
}
.radio input[type=radio] + span::before{
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 2.3rem;
  height: 2.3rem;
  box-sizing: border-box;
  border: 1px solid #242020;
  background: #fff;
  border-radius: 50%;
}
.radio input[type=radio]:checked + span::after{
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  margin-top: -0.65rem;
  left: 0.5rem;
  width: 1.3rem;
  height: 1.3rem;
  background: #E62D84;
  border-radius: 50%;
}


.agree{
  width: fit-content;
  font-weight: 700;
  margin: 6.4rem auto 0;
}
.agree p{
  margin-bottom: 1em;
}
.checkbox{
  display: grid;
  grid-template-columns: auto;
  justify-content: center;
  row-gap: 0.6em;
  padding: 2.4rem;
  border-radius: 0.4rem;
  border: 1px solid #047DFF;
}
.checkbox a{
  color: #047DFF;
  text-decoration: underline;
}
.checkbox label{
  position: relative;
}
.checkbox input[type=checkbox]{
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}
.checkbox input[type=checkbox] + span{
  display: inline-block;
  padding-left: calc(2.4rem + 0.5em);
  line-height: 2.4rem;
  cursor: pointer;
  position: relative;
}
.checkbox input[type=checkbox] + span::before{
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 2.4rem;
  height: 2.4rem;
  box-sizing: border-box;
  background: #D9D9D9;
  border-radius: 0.2rem;
}
.checkbox input[type=checkbox]:checked + span::before{
  background: #E62D84;
}
.checkbox input[type=checkbox]:checked + span::after{
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  margin-top: -0.9rem;
  left: 0.75rem;
  width: 0.6rem;
  height: 1.1rem;
  transform: rotate(43deg);
  border-bottom: 0.3rem solid #fff;
  border-right: 0.3rem solid #fff;
}


.entry-form.confirm .no-confirm{
  display: none !important;
}
.entry-form.confirm dl{
  grid-template-columns: 34% 1fr;
}
.entry-form.confirm dl dd::before{
  width: 152%;
}
.entry-form.confirm dl dt .label-wrap{
  min-height: unset;
  padding-right: 0;
}
.entry-form.confirm dl dt .label-wrap .label{
  font-size: 1.8rem;
}


.entry-form.complete .box{
  background: #fff;
  color: #242020;
  border-radius: 0.8rem;
  padding: 9.4rem 5rem 8rem;
}
.entry-form.complete .box img.complete-img{
  width: 24rem;
  margin: 0 auto 5rem;
}
.entry-form.complete .box h1{
  width: 46rem;
  margin: 0 auto 8rem;
}
.entry-form.complete .box p{
  font-size: 1.8rem;
  text-align: center;
}
.entry-form.complete .box a.submit-btn{
  margin: 6rem auto 0;
}


/* コンタクトフォーム7用 */
.wpcf7-list-item{
  margin: 0;
}
input.wpcf7-not-valid,
textarea.wpcf7-not-valid{
  border-color: #E62D84 !important;
}
.wpcf7-not-valid-tip{
  font-size: 1.4rem;
  color: #E62D84;
  margin-top: 0.5em;
}
.wpcf7-response-output{
  text-align: center;
  padding: 0.8em !important;
  margin: 1em auto 0;
}


.privacy-policy .sec h1 img,
.terms .sec h1 img{
  width: auto;
  height: 4rem;
  margin: 0 auto 6rem;
}
.sec .low-box{
  background: #fff;
  color: #242020;
  border-radius: 0.8rem;
  padding: 5.6rem 6.4rem;
}
.sec .low-box h2{
  font-size: 2rem;
  margin: 4rem 0 0.5em;
}
.sec .low-box h2:first-child{
  margin-top: 0;
}
.sec .low-box ul.n-ul{
  margin-left: 1.4em;
}




.results{
  padding: 9rem 0 16rem;
}
@media screen and (min-width: 769px){
.results .content{
  max-width: 165rem;
  padding: 0 10rem;
}
}
.results .h2-wrap{
  height: 40.7rem;
  text-align: center;
  padding-top: 14rem;
  position: relative;
}
.results .h2-wrap::before{
  content: "";
  display: block;
  width: 144.3rem;
  height: 40.7rem;
  background: url(../images/results-h2-bg.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}
.results .h2-wrap h2{
  width: 48.8rem;
  margin: 0 auto 4rem;
}
.results h3.h3-1{
  margin: 12rem 0 9rem;
}
.results h3.h3-1 img{
  width: 100%;
}
.results .work-wrap{
  display: grid;
  grid-template-columns: 42% 49%;
  justify-content: space-between;
  align-items: stretch;
  padding-bottom: 6rem;
}
.results .work-wrap + .work-wrap{
  margin-top: 9rem;
}
.results .work-wrap .img{
  position: relative;
}
.results .work-wrap .img .wrap{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: #DA257A;
  border-radius: 1.5rem;
  overflow: hidden;
  position: relative;
}
.results .work-wrap .img .wrap img{
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}
.results .work-wrap .img .wrap video.work-2,
.modal-work video.work-2{
  display: block;
  width: 100%;
  height: unset;
  aspect-ratio: 1280 / 720;
  object-fit: cover;
}
.results .work-wrap .img a.zoom-link{
  display: inline-block;
  line-height: 1.4;
  font-weight: 700;
  border-bottom: 1px solid;
  position: absolute;
  bottom: -6rem;
  left: 50%;
  transform: translateX(-50%);
}
.results .work-wrap .img a.zoom-link::before{
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.95em;
  background: url(../images/ico-zoom_w.svg) center center no-repeat;
  background-size: contain;
  margin-right: 0.2em;
  vertical-align: -8%;
}
.results .work-wrap .txt h4{
  font-size: 4.1rem;
  margin-bottom: 0.2em;
}
.results .work-wrap .txt .name{
  font-size: 1.9rem;
  font-weight: 700;
}
.results .work-wrap .txt hr{
  border-top: 0.3rem dotted #fff;
  margin: 3.5rem 0;
}
.results .work-wrap .txt .comment{
  border-radius: 0.8rem;
  padding: 2.4rem;
  margin-top: 4.5rem;
}
.results .work-wrap .txt .comment h5{
  font-size: 2.2rem;
  margin-bottom: 0.7em;
}
.results .work-wrap .txt .comment h5::before{
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.95em;
  background: url(../images/ico-comment.svg) center center no-repeat;
  background-size: contain;
  margin-right: 0.2em;
  vertical-align: -8%;
}
.results h3.h3-2{
  width: fit-content;
  font-size: 2.4rem;
  margin: 12rem auto 6rem;
  position: relative;
}
.results h3.h3-2::before,
.results h3.h3-2::after{
  content: "";
  display: block;
  width: 2.4rem;
  aspect-ratio: 1 / 1;
  background: url(../images/ico-star_p.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.results h3.h3-2::before{
  left: -3.7rem;
}
.results h3.h3-2::after{
  right: -3.7rem;
}
.results ul.other-li{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4rem;
  max-width: 110rem;
  margin: 0 auto;
}
.results ul.other-li li{
  display: flex;
  flex-direction: column;
  width: 24rem;
  height: 32rem;
  padding: 2rem;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
  border-radius: 1.6rem;
  border: 1rem solid #C91369;
}
.results ul.other-li li .ttl-wrap{
  margin: auto 0;
}
.results ul.other-li li hr{
  border-top: 0.3rem dotted #BFBFBF;
  margin: 0 0 1rem;
}
.results ul.other-li li .h4-top{
  color: #A4A4A4;
  margin-bottom: 0.8em;
}
.results ul.other-li li h4{
  font-size: 2rem;
}
.results ul.other-li li h5{
  color: #A4A4A4;
  margin-bottom: 0.2em;
}


.ceremony {
  padding-bottom: 32rem;
}
@media screen and (min-width: 769px){
.ceremony .content{
  max-width: 157rem;
  padding: 0 6rem;
}
}
.ceremony h2{
  width: 54.9rem;
  margin: -2rem auto 4rem;
}
.ceremony h2 + p{
  text-align: center;
  margin-bottom: 16rem;
}
.ceremony .photo-wrap{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  position: relative;
}
.ceremony .photo-wrap::before{
  content: "";
  display: block;
  width: 87.4%;
  aspect-ratio: 1268 / 2659;
  background: url(../images/ceremony-bg.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 9.6%;
  top: 50%;
  transform: translateY(-52%);
  pointer-events: none;
}
@media screen and (min-width: 769px){
.ceremony .photo-wrap .photo1{
  width: 53.7%;
}
.ceremony .photo-wrap .photo2{
  width: 37.4%;
  margin: 0 0 4rem auto;
}
.ceremony .photo-wrap .photo3{
  width: 35%;
  margin: 9rem auto 0;
}
.ceremony .photo-wrap .photo4{
  width: 51.4%;
  margin: 5rem auto 0;
}
.ceremony .photo-wrap .photo5{
  width: 50.2%;
  margin-top: 10rem;
}
.ceremony .photo-wrap .photo6{
  width: 39.7%;
  margin: 12rem 0 0 auto;
}
}
.ceremony .photo-wrap h3{
  font-size: 2.2rem;
  margin-top: 0.8em;
}
.ceremony .photo-wrap h3 + p{
  margin-top: 0.5em;
}




/* スクロールアニメ */
.fade-b,
.fade-b-ct > *{
  opacity: 0;
  transition: opacity 0.8s, transform 0.8s;
}

.fade-b,
.fade-b-ct > * { transform: translateY(3rem); }

.fade-b.load,
.fade-b-ct.load > *{
  opacity: 1;
  transform: translate(0);
}

.fade-b-ct.load > :nth-child(2) { transition-delay: 0.2s; }
.fade-b-ct.load > :nth-child(3) { transition-delay: 0.4s; }

.fade-b-ct.load > :nth-child(2),
.fade-b-ct.load > :nth-child(3) {
  transition-property: opacity, transform;
}

.poyo{
  opacity: 0;
  transition: opacity 0.4s;
}
.poyo.load{
  opacity: 1;
  animation: poyo 1.2s;
}

@keyframes poyo {
  0% { transform: scale(.5); }
  20% { transform: scale(1.2); }
  40% { transform: scale(.9); }
  60% { transform: scale(1.04); }
  80% { transform: scale(.98); }
  100% { transform: none; }
}


/* ロード画面 */
#loading {
  width: 100%;
  height: 100%;
  background-color: #E62D84;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}
#loading.loaded {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s, visibility 1s;
}

.loading .img {
  width: 22rem;
  height: 20rem;
  position: relative;
  margin: 0 auto 5rem;
}
.loading .img img {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  object-fit: contain;
  opacity: 0;
  animation: switchImg 3.33s steps(5) infinite;
}
.loading .img img:nth-child(1) { animation-delay: 0s; }
.loading .img img:nth-child(2) { animation-delay: 0.666s; }
.loading .img img:nth-child(3) { animation-delay: 1.332s; }
.loading .img img:nth-child(4) { animation-delay: 1.998s; }
.loading .img img:nth-child(5) { animation-delay: 2.664s; }

@keyframes switchImg {
  0%, 19.9% { opacity: 1; }
  20%, 100% { opacity: 0; }
}

.loading .txt {
  display: flex;
  justify-content: center;
}
.loading .txt img {
  width: auto;
  height: 5.9rem;
  animation: bounce 2s cubic-bezier(.34,1.6,.64,1) infinite;
}
/* 各文字の遅延 */
.loading .txt img:nth-child(1)  { animation-delay: 0s;   }
.loading .txt img:nth-child(2)  { animation-delay: 0.09s; }
.loading .txt img:nth-child(3)  { animation-delay: 0.18s; margin-right: 2rem; }
.loading .txt img:nth-child(4)  { animation-delay: 0.27s; }
.loading .txt img:nth-child(5)  { animation-delay: 0.36s; }
.loading .txt img:nth-child(6)  { animation-delay: 0.45s; }
.loading .txt img:nth-child(7)  { animation-delay: 0.56s; }
.loading .txt img:nth-child(8)  { animation-delay: 0.65s; }
.loading .txt img:nth-child(9)  { animation-delay: 0.74s; }
.loading .txt img:nth-child(10)  { animation-delay: 0.83s; margin-right: 1rem; }
.loading .txt img:nth-child(13)  { animation-delay: 0.83s; }
.loading .txt img:nth-child(12)  { animation-delay: 0.92s; }
.loading .txt img:nth-child(11) { animation-delay: 1.01s; }

/* バウンドの動き */
@keyframes bounce {
  0% {
    transform: translateY(0) scaleY(1);
  }
  8% {
    transform: translateY(0) scaleY(0.7);
  }
  20% {
    transform: translateY(-35%) scaleY(1.2);
  }
  32% {
    transform: translateY(0) scaleY(0.9);
  }
  37% {
    transform: translateY(0) scaleY(1);
  }
  41% {
    transform: translateY(0) scaleY(0.95);
  }
  45% {
    transform: translateY(0) scaleY(1);
  }
}

/* モーション軽減ユーザー対策 */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; }
}




/*　PC
------------------------------------------------------------------------------------------------*/
@media screen and (min-width: 769px){
.sp{ display: none !important; }

html{ font-size: 10px; }
body{ font-size: 1.6rem; }

.content{
  width: 100%;
	max-width: 175rem;
  padding: 0 15rem;
	margin: 0 auto;
}
.content.w120{
  max-width: 130rem;
}




/*　タブレット
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 1500px){

html{ font-size: 0.667vw; }




}/*　タブレットここまで */
}/*　PCここまで */




/*　スマホ
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 768px){
.pc{ display: none !important; }

html{ font-size: 2.667vw; }
body{ font-size: 1.4rem; }

.content{
	width: 100%;
	padding: 0 2.4rem;
}


.anchor > div{
  top: -11.8rem;
}

.nav{
  width: calc(100% - 4.8rem);
  height: 7.2rem;
  top: 1rem;
  left: 2.4rem;
}
.nav a.logo{
  width: 22.7rem;
}


#nav-open {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 100%;
  background: #fff;
  cursor: pointer;
  margin-left: auto;
}
#nav-open span,#nav-open span:before,#nav-open span:after {
  content: "";
  display: block;
  background: #E62D84;
  height: 3px;
  width: 2.1rem;
  border-radius: 1.5px;
  position: absolute;
  transition: .3s ease-in-out;
}
#nav-open span{
  transition: background 0s .15s;
}
#nav-open span:before {
  bottom: 0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}
#nav-open span:after {
  bottom: -0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}

#nav-bg {
  width: 100%;
  height: 100%;
  background: #E62D84;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */

  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
#nav-content {
  display: block;
  width: 89%;
  height: 100%;
  background: 
    linear-gradient(150deg, #00D977, #01A08B),
    url(../images/webp/bg-noise.webp) center center / 30rem auto;
  background-blend-mode: multiply;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 2;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */

  transform: translateX(100vw);
  transition: transform 0.4s;
}
#nav-bg::before,
#nav-content::before{
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 1px);
  position: absolute;
  left: 0;
  top: 0;
}
/* バー非表示 Chrome・Safari用 */
#nav-bg::-webkit-scrollbar,
#nav-content::-webkit-scrollbar{
  display: none;
}
#nav-bg.active {
  opacity: 0.47;
  pointer-events: inherit;
}
#nav-content.active {
  transform: translateX(0);
}
#nav-close{
  display: block;
  width: 4.4rem;
  cursor: pointer;
  position: fixed;
  top: 3.2rem;
  right: 2.4rem;
  z-index: 3;
  opacity: 0;
  pointer-events: none;
}
#nav-close img{
  width: 100%;
}
#nav-close.active{
  opacity: 1;
  pointer-events: inherit;
}


#nav-content .content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 7.6rem 3.4rem 3.8rem;
}
ul.hum-nav li + li{
  margin-top: 3rem;
}
ul.hum-nav li a{
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 900;
}
ul.hum-nav li a img{
  margin-bottom: 0.5rem;
}
ul.hum-nav li a img.nav-about{ width: 19.7rem; }
ul.hum-nav li a img.nav-guide{ width: 22.9rem; }
ul.hum-nav li a img.nav-howto{ width: 17.5rem; }
ul.hum-nav li a img.nav-schedule{ width: 12.9rem; }
ul.hum-nav li a img.nav-prizes{ width: 8.8rem; }
ul.hum-nav li a img.nav-faq{ width: 5.5rem; }

#nav-content img.cta-period{
  margin-top: 3rem;
}


/* nav付加クラス　*/
.nav.transform{
  padding: 0 1.6rem 0 2.3rem;
  top: 1.6rem;
}
.nav.transform #nav-open {
  background: #E62D84;
}
.nav.transform #nav-open span,
.nav.transform #nav-open span:before,
.nav.transform #nav-open span:after {
  background: #fff;
}


.blank-head{
  height: 9.2rem;
}


.sec{
  padding: 3.2em 0 8rem;
}


.fv > .bg{
  height: calc(100svh - 18.3rem);
  background: url(../images/webp/fv-bg_sp.webp) center center no-repeat;
  background-size: cover;
}
.fv .wrap{
  height: 18.3rem;
}
.fv .wrap .h1-wrap{
  width: 23.4rem;
  margin: 0 0 0 2.4rem;
  transform: translateY(-59%);
}
.fv .wrap .h1-wrap .fv-result img{
  width: 17rem;
  margin-bottom: 2.3rem;
  left: 0;
  transform: unset;
}
.fv .wrap .h1-wrap h1 picture{
  width: 13.6rem;
  margin-top: 2.5rem;
  position: absolute;
  left: 0;
  transform: unset;
}
.fv .wrap #fl-btn{
  filter: drop-shadow(0.5rem 0.5rem 0.7rem rgba(0, 0, 0, 0.2));
  bottom: 2.5rem;
  right: 2.4rem;
}
.fv .wrap #fl-btn a{
  width: 13.3rem;
}


img.cta-period{
  width: 45.26%;
  margin: 0 auto -5%;
}
a.cta-btn{
  width: 100%;
}


.about{
  padding: 5rem 0 6.4rem;
}
.about .content{
  max-width: unset;
}
.about .content::before,
.about .content::after{
  content: none;
}
.about h2{
  width: 25.2rem;
  margin: 0 auto 4rem;
}
.about p{
  font-size: 1.4rem;
  line-height: 2.43;
}
.about a.btn{
  width: 100%;
  height: 5.6rem;
  border-radius: 2.8rem;
  box-shadow: 0 0.8rem 1.2rem rgba(0, 0, 0, 0.15);
  font-size: 1.6rem;
  margin: 4rem auto 0;
}
.about a.btn span::before,
.about a.btn span::after{
  width: 1.8rem;
}
.about a.btn span::before{
  left: 2.6rem;
}
.about a.btn span::after{
  right: 2.6rem;
}


.modal a.js-modal-close{
  width: 4.4rem;
  position: fixed;
  right: 2.4rem;
  top: 3.2rem;
}

#thoughts .modal_content{
  background: 
    linear-gradient(150deg, #00D977, #01A08B),
    url(../images/webp/bg-noise.webp) center center / 30rem auto;
  background-blend-mode: multiply;
}
#thoughts .modal_content .content{
  padding-top: 7.6rem;
  padding-bottom: 0;
}
#thoughts .modal_content h2{
  width: 31.3rem;
  margin-bottom: 4.8rem;
}
#thoughts .modal_content p{
  font-size: 1.6rem;
  line-height: 1.75;
}
#thoughts .modal_content p + p{
  margin-top: 3rem;
}
#thoughts .modal_content img.modal-img{
  width: 39.9rem;
  max-width: unset;
  position: unset;
  bottom: 0;
  margin: 1.6rem auto 0 -4.8rem;
}

.modal-work .modal_content{
  width: calc(100% - 4.8rem);
  height: calc(100% - 17.2rem);
}


.guide{
  padding: 46.9rem 0 0;
  margin-top: -4.1rem;
}
.guide .content{
  position: relative;
}
.guide .sticky-wrap{
  display: block;
}
.guide .sticky-wrap .sticky{
  height: unset;
  position: unset;
}
.guide .sticky-wrap .sticky .img-wrap{
  width: 46.9rem;
  position: absolute;
  top: -46.9rem;
  left: 2.1rem;
}
.guide .sticky-wrap .img-wrap img.balloon{
  width: 24%;
  top: 18%;
  left: 46%;
}
.guide .sticky-wrap .wrap{
  width: 100%;
  margin-top: 0;
}
.guide .wrap h2{
  width: 23.3rem;
  margin-bottom: 1.6rem;
}
.guide .wrap dl{
  grid-template-columns: 100%;
}
.guide .wrap dl dt{
  padding: 2.4rem 0 1.6rem;
}
.guide .wrap dl dd{
  padding: 0 0 2.4rem;
}
.guide .wrap dl dd::before{
  width: 100%;
  border-bottom: 0.2rem dashed; #fff;
  bottom: -0.1rem;
}
.guide .wrap dl dt span{
  width: 10.2rem;
  line-height: 2.5rem;
  border-radius: 1.3rem;
  font-size: 1.6rem;
}
.guide .wrap dl dd b{
  font-size: 1.7rem;
  line-height: 1.5;
}
.guide .wrap dl dd b big{
  font-size: 2.4rem;
  line-height: 1.5;
}
.guide .wrap dl dd ul.file-li{
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}
.guide .wrap dl dd ul.file-li li img{
  margin-bottom: 0.6rem;
}
.guide .wrap dl dd ul.file-li li:last-child{
  grid-column: 1 / -1;
  text-align: right;
  margin-top: 1rem;
}
.guide h3{
  width: 12rem;
  margin: 5rem auto 2.4rem;
}
.guide .overview-box{
  padding: 1rem 1.6rem;
}
.guide .overview-box ul.overview > li + li{
  margin-top: 0;
  padding-top: 0;
}
.guide .overview-box .accttl{
  font-size: 1.6rem;
  margin-bottom: 0;
  padding: 1.6rem 3.6rem 1.6rem 3.9rem;
  pointer-events: unset;
}
.guide .overview-box .accttl::before{
  width: 2.1rem;
  left: 0.5rem;
}
.guide .overview-box .accttl::after{
  content: "";
  display: block;
  width: 1.9rem;
  height: 1.1rem;
  background: url(../images/acc-arrow.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  right: 0.4rem;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s;
}
.guide .overview-box .accttl.active::after{
  transform: translateY(-50%) rotate(180deg);
}
.guide .overview-box .accshow{
  display: none;
  padding-bottom: 1.6rem;
}


.howto{
  overflow: hidden;
  padding: 6.4rem 0;
}
.howto h2{
  width: 28rem;
  margin: 0 auto 4rem;
}
.howto-swiper .swiper-slide + .swiper-slide::before{
  content: none;
}
.howto-swiper .swiper-slide{
  width: 24.8rem;
  margin: 0 1.2rem;
}
.howto-swiper .swiper-slide h3{
  font-size: 1.8rem;
  margin: 1.6rem 0;
}
.howto-swiper .swiper-slide h3,
.howto-swiper .swiper-slide p{
  width: 36rem;
  margin-left: -5.6rem;
  opacity: 0;
  transition: opacity 0.4s;
}
.howto-swiper .swiper-slide.swiper-slide-active h3,
.howto-swiper .swiper-slide.swiper-slide-active p{
  opacity: 1;
}
.swiper-button-next::after,
.swiper-button-prev::after{
  content: none;
}
.swiper-button-next,
.swiper-button-prev{
  position: absolute;
  top: 12.4rem;
  width: 2.7rem;
  aspect-ratio: 1 / 1;
  background: url(../images/howto-arrow.svg) center center no-repeat;
  background-size: contain;
  margin-top: -1.35rem;
  transition: opacity 0.4s;
}
.swiper-button-next{
  right: 2.4rem;
}
.swiper-button-prev{
  left: 2.4rem;
  transform: scale(-1, 1);
}
.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled{
  opacity: 0;
}
.swiper-pagination{
  display: flex;
  justify-content: center;
  position: unset;
  margin-top: 3rem;
}
.swiper-pagination-bullet {
  width: 1.2rem;
  height: 1.2rem;
  background: #fff;
  opacity: 1;
  margin: 0 1.6rem !important;
}
.swiper-pagination-bullet-active{
  background-color: #EEDA01;
}


.schedule{
  padding: 6.4rem 0;
}
.schedule .content{
  padding: 0;
}
.schedule h2{
  width: 20.6rem;
  margin: 0 auto 4rem;
}
.schedule .schedule-wrap{
  overflow-x: auto;
  padding-bottom: 5rem;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.schedule .schedule-wrap::-webkit-scrollbar {
  display: none;
}
.schedule .schedule-wrap .simplebar-track{
  width: calc(100% - 4.8rem);
  height: 0.4rem;
  border-radius: 0.2rem;
  background-color: #D8D8D8;
  margin: 0 auto;
}
.schedule .schedule-wrap .simplebar-scrollbar{
  height: 0.4rem;
  border-radius: 0.2rem;
  background-color: #242020;
}
.schedule .schedule-wrap picture{
  width: 82.5rem;
  max-width: unset;
  padding: 0 2.4rem;
}
.schedule .schedule-wrap img{
  width: 100%;
  max-width: unset;
}


.prizes{
  padding: 46.8rem 0 3rem;
  margin-top: -5.2rem;
}
.prizes .img-wrap{
  width: 46.8rem;
  top: -46.8rem;
  right: 2.6rem;
}
.prizes .img-wrap img.balloon{
  width: 41%;
  top: 31.3%;
  left: 31%;
}
.prizes .wrap{
  width: 100%;
}
.prizes .wrap::before{
  width: 32.3rem;
  aspect-ratio: 323 / 121;
  background: url(../images/prizes-bg_sp.png) center center no-repeat;
  background-size: contain;
  left: 0.8rem;
  transform: unset;
  top: -8.4rem;
}
.prizes .wrap h2{
  width: 14rem;
  margin: 0 auto 4rem;
}
.prizes .wrap ul{
  grid-template-columns: 29.3rem;
  gap: 4.2rem;
  justify-content: center;
}
.prizes .wrap ul li img.ribbon{
  width: 6.3rem;
  left: -1.8rem;
  top: -2rem;
}
.prizes .wrap ul li .gift{
  aspect-ratio: 293 / 155;
}
.prizes .wrap ul li .gift img{
  width: 14.6rem;
}
.prizes .wrap ul li .txt{
  letter-spacing: 0.04em;
  padding: 1rem 1rem 1.4rem;
}
.prizes .wrap ul li .txt p{
  font-size: 2rem;
}
.prizes .wrap ul li .txt > span{
  line-height: 2.6rem;
  border-radius: 1.3rem;
  font-size: 1.6rem;
  margin-top: 0.5em;
}
.prizes .wrap p.note{
  text-align: left;
  margin-top: 3.2rem;
}
.prizes .wrap p.note span{
  display: inline;
}


.obi-leaf{
  aspect-ratio: 375 / 208;
}
.obi-leaf img.leaf1{
  height: 81%;
  left: -6%;
}
.obi-leaf img.leaf2{
  height: 63%;
  right: -6%;
}


.faq{
  padding-bottom: 6.4rem;
  margin-top: 0;
}
.faq h2{
  width: 10.8rem;
  margin: 0 auto 4rem;
}
.faq h3 img{
  height: 1.72rem;
  margin: 4rem 0 2rem;
}
ul.faq-li li .qu,
ul.faq-li li .an{
  padding: 0 1.6rem;
}
ul.faq-li li .qu{
  font-size: 1.6rem;
}
ul.faq-li li .qu::after{
  width: 1.9rem;
  height: 1.1rem;
  right: 1.6rem;
}
ul.faq-li li .qu h4,
ul.faq-li li .an p{
  min-height: 6rem;
  padding: 1.6rem 3.4rem 1.6rem 4.6rem;
}
ul.faq-li li .an p{
  min-height: 6rem;
  padding-right: 0;
}
ul.faq-li li .qu h4::before,
ul.faq-li li .an p::before{
  width: 3.4rem;
  height: 4.3rem;
}


.cta{
  background: url(../images/webp/cta-bg_sp.webp) center center no-repeat;
  background-size: cover;
  padding: 13rem 0 10.5rem;
}
.cta::before{
  aspect-ratio: 796 / 304;
  background: url(../images/cta-top_sp.png) center center no-repeat;
  background-size: contain;
  top: -4rem;
}
.cta h2{
  width: 30.5rem;
}
.cta a.cta-btn{
  margin: 4rem auto 0;
}


footer{
  padding: 4.8rem 0 2.4rem;
}
footer .content{
  grid-template-columns: 100%;
  gap: 4rem;
}
footer .left a.logo{
  width: 31.7rem;
  margin: 0 auto 4.8rem;
}
footer .left ul.f-nav{
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  row-gap: 1.6rem;
  column-gap: 5rem;
  width: 24rem;
  height: 12rem;
  margin: 0 auto;
}
footer .left ul.f-nav li{
  font-size: 1.4rem;
  line-height: 1.5;
}
footer .right{
  align-items: center;
}
footer .right .box{
  display: block;
  width: 100%;
  padding: 1.6rem 1.6rem 2.4rem;
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.7;
}
footer .right .box h2{
  width: 11.4rem;
  line-height: 3.3rem;
  border-radius: 1.7rem;
  font-size: 1.4rem;
  margin: 0 auto 1.4rem;
}
footer .right ul.low-nav{
  flex-wrap: wrap;
  gap: 1.6rem;
  font-size: 1.4rem;
  text-align: center;
  margin: 3.2rem 0;
}
footer .right ul.low-nav li{
  width: 100%;
}
footer .right .copy{
  font-size: 1.2rem;
}


.entry-form .sticky-wrap{
  display: block;
}
.entry-form .sticky-wrap .wrap{
  width: 100%;
}
.entry-form .wrap h1{
  width: 24.6rem;
  margin: 0 auto 3rem;
}
.entry-form .wrap h1 + p{
  font-size: 1.4rem;
  font-weight: 500;
  text-align: left;
  margin-bottom: 4rem;
}
.entry-form .wrap .box{
  border-radius: 0.8rem;
  padding: 0.8rem 1.6rem 6rem;
}
.entry-form dl{
  grid-template-columns: 100%;
}
.entry-form dl dt{
  padding: 2.4rem 0 1rem;
}
.entry-form dl dd{
  padding: 0 0 2.4rem;
}
.entry-form dl dd::before{
  width: 100%;
  border-bottom: 0.3rem dotted #D8D8D8;
}
.entry-form dl dt .label-wrap{
  min-height: unset;
  padding-right: 0;
}
.entry-form dl dt .label-wrap .label{
  font-size: 1.6rem;
}
.entry-form dl dt .label-wrap .label .required{
  width: 4.4rem;
  line-height: 2.1rem;
  font-size: 1.4rem;
  position: unset;
  transform: unset;
  margin-left: 0.4em;
}
.entry-form dl dt .label-wrap small{
  font-size: 1.3rem;
  margin-top: 0.4em;
}
.entry-form dl dd input[type=text],
.entry-form dl dd input[type=email],
.entry-form dl dd input[type=tel],
.entry-form dl dd textarea{
  padding: 0.7em;
  border: 0.1rem solid #EEEEEE;
  font-size: 1.6rem;
}
.entry-form dl dd textarea{
  height: 18.2rem;
}
.entry-form dl dd .file-wrap{
  display: block;
  margin-top: 0.6rem;
}
.entry-form dl dd .file-wrap label{
  width: 100%;
  height: 5.6rem;
  border-radius: 2.8rem;
}
.entry-form dl dd .file-wrap .filename{
  display: block;
  margin-top: 1.6rem;
}
.entry-form dl dd ul.file-note{
  margin-top: 1.5em;
}
.entry-form dl dd ul.file-note li{
  line-height: 1.5;
}
.entry-form dl dd ul.file-note li + li{
  margin-top: 0.8em;
}
.entry-form .btn-wrap{
  flex-wrap: wrap;
  gap: 1.6rem;
  margin-top: 4rem;
}
.entry-form .submit-btn,
.entry-form .back-btn{
  width: 100%;
  height: 7.6rem;
  border-radius: 3.8rem;
  font-size: 1.6rem;
}
.entry-form .submit-btn::before,
.entry-form .back-btn::before{
  width: 3.2rem;
  height: 3.2rem;
  right: 1.5rem;
}
.entry-form .back-btn::before{
  right: auto;
  left: 1.5rem;
}


.radio,
.wpcf7-radio{
  display: grid;
  row-gap: 0.8em;
}


.agree{
  width: 100%;
  margin: 4rem auto 0;
}
.checkbox{
  row-gap: 0.6em;
  padding: 1.6rem;
}
.checkbox input[type=checkbox] + span{
  padding-left: calc(1.6rem + 0.5em);
  line-height: 1.5;
}
.checkbox input[type=checkbox] + span::before{
  width: 1.6rem;
  height: 1.6rem;
  top: 0.25em;
  transform: unset;
}
.checkbox input[type=checkbox]:checked + span::after{
  top: 0.32em;
  margin-top: 0;
  left: 0.45rem;
  width: 0.5rem;
  height: 0.9rem;
  border-bottom: 0.23rem solid #fff;
  border-right: 0.23rem solid #fff;
}


/* コンタクトフォーム7用 */
.wpcf7-not-valid-tip{
  font-size: 1.2rem;
}


.entry-form.confirm dl{
  grid-template-columns: 100%;
}
.entry-form.confirm dl dd::before{
  width: 100%;
}
.entry-form.confirm dl dt .label-wrap .label{
  font-size: 1.6rem;
}


.entry-form.complete .box{
  padding: 4rem 1.6rem 6rem;
}
.entry-form.complete .box img.complete-img{
  width: 17.8rem;
  margin: 0 auto 4rem;
}
.entry-form.complete .box h1{
  width: 23rem;
  margin: 0 auto 2rem;
}
.entry-form.complete .box p{
  font-size: 1.6rem;
  text-align: left;
}
.entry-form.complete .box a.submit-btn{
  margin: 4rem auto 0;
}


.privacy-policy .sec h1 img,
.terms .sec h1 img{
  height: 1.76rem;
  margin: 0 auto 3rem;
}
.sec .low-box{
  padding: 3rem 1.6rem;
}
.sec .low-box h2{
  font-size: 1.8rem;
  margin: 3rem 0 0.5em;
}


/* ロード画面 */
.loading .img {
  width: 13.2rem;
  height: 12rem;
  margin: 0 auto 3rem;
}
.loading .txt img {
  height: 3rem;
}
.loading .txt img:nth-child(3)  { margin-right: 1.2rem; }
.loading .txt img:nth-child(10)  { margin-right: 0.6rem; }




.results{
  padding: 5rem 0 6.4rem;
}
.results .h2-wrap{
  height: unset;
  padding-top: 6.8rem;
}
.results .h2-wrap::before{
  width: 100vw;
  height: unset;
  aspect-ratio: 1125 / 480;
  background: url(../images/results-h2-bg_sp.png) center center no-repeat;
  background-size: contain;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}
.results .h2-wrap h2{
  width: 12.2rem;
  margin: 0 auto 3rem;
}
.results h3.h3-1{
  margin: 6.4rem 0 3.2rem;
}
.results .work-wrap{
  display: block;
  padding-bottom: 0;
}
.results .work-wrap + .work-wrap{
  margin-top: 6.4rem;
}
.results .work-wrap .img{
  text-align: center;
  margin-bottom: 3rem;
}
.results .work-wrap .img .wrap{
  height: 22.4rem;
  border-radius: 1.2rem;
}
.results .work-wrap .img a.zoom-link{
  margin-top: 1em;
  position: unset;
  transform: unset;
}
.results .work-wrap .txt h4{
  font-size: 2.7rem;
}
.results .work-wrap .txt .name{
  font-size: 1.6rem;
}
.results .work-wrap .txt hr{
  margin: 2.4rem 0;
}
.results .work-wrap .txt .comment{
  padding: 2rem 1.6rem;
  margin-top: 3.6rem;
}
.results .work-wrap .txt .comment h5{
  font-size: 1.8rem;
}
.results h3.h3-2{
  font-size: 2.1rem;
  text-align: center;
  margin: 7rem auto 4rem;
}
.results h3.h3-2::before,
.results h3.h3-2::after{
  width: 2.2rem;
}
.results ul.other-li{
  justify-content: flex-start;
  gap: 0.8rem;
}
.results ul.other-li li{
  width: calc(50% - 0.4rem);
  height: 19rem;
  padding: 0 1.2rem 1.2rem;
  line-height: 1.3;
  border-radius: 0.8rem;
  border: 0.5rem solid #C91369;
}
.results ul.other-li li hr{
  width: calc(100% - 1rem);
  margin: 0 auto 0.6rem;
}
.results ul.other-li li .h4-top{
  font-size: 1.2rem;
  margin-bottom: 0.4em;
}
.results ul.other-li li h4{
  font-size: 1.6rem;
  line-height: 1.3;
}
.results ul.other-li li h5{
  font-size: 1.2rem;
}


.ceremony {
  padding: 3rem 0 13.5rem;
}
.ceremony h2{
  width: 24.4rem;
  margin: 0 auto 3rem;
}
.ceremony h2 + p{
  text-align: center;
  margin-bottom: 6rem;
}
.ceremony .photo-wrap{
  gap: 3.2rem;
}
.ceremony .photo-wrap::before{
  width: 34.9rem;
  aspect-ratio: 349 / 1964;
  background: url(../images/ceremony-bg_sp.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: -1.7rem;
  top: -31rem;
  transform: unset;
}
.ceremony .photo-wrap .photo1{
  width: 26.4rem;
}
.ceremony .photo-wrap .photo2{
  width: 25.1rem;
  margin-left: auto;
}
.ceremony .photo-wrap .photo3{
  width: 26rem;
}
.ceremony .photo-wrap .photo4{
  width: 28.7rem;
  margin-left: auto;
}
.ceremony .photo-wrap .photo5{
  width: 100%;
}
.ceremony .photo-wrap .photo6{
  width: 23.6rem;
}
.ceremony .photo-wrap h3{
  font-size: 1.4rem;
  margin-top: 1em;
}
.ceremony .photo-wrap h3 + p{
  margin-top: 0.3em;
  line-height: 1.5;
}




}/*　スマホここまで */



