.page-title {
  background-image: url(../images/craft/line-title.svg);
  color: #f282b7;
}
.page-title span {
  background-image: url(../images/craft/deco-title01.svg), url(../images/craft/deco-title02.svg);
}

.lead {
  margin-bottom: 15vw;
}
@media (min-width: 768px) {
  .lead {
    margin-bottom: 6.5972vw;
  }
}
@media (min-width: 1440px) {
  .lead {
    margin-bottom: 95px;
  }
}

.page-contents {
  padding-top: 11vw;
  background: url(../images/craft/bg-page_sp.png) repeat-x 50% 0 / 100% auto;
}
@media (min-width: 768px) {
  .page-contents {
    padding-top: 2.6389vw;
    background: url(../images/craft/bg-page_pc.png) repeat-x 50% 0 / 100% auto;
  }
}
@media (min-width: 1440px) {
  .page-contents {
    padding-top: 38px;
  }
}

.page-contents__bg {
  margin-bottom: 10.6667vw;
}
@media (min-width: 768px) {
  .page-contents__bg {
    margin-bottom: 3.125vw;
  }
}
@media (min-width: 1440px) {
  .page-contents__bg {
    margin-bottom: 45px;
  }
}

.page-contents .peco {
  width: 56vw;
  margin: 0;
  position: absolute;
  top: -54.5vw;
  left: calc(50% - 27.5vw);
}
.page-contents .peco img:not(.content_bg) {
  width: 100%;
  position: relative;
}
@media (min-width: 768px) {
  .page-contents .peco {
    width: 28.125vw;
    top: -24.264vw;
    left: calc(50% - 14.8611vw);
  }
}
@media (min-width: 1440px) {
  .page-contents .peco {
    width: 405px;
    top: -357px;
    left: calc(50% - 204px);
  }
}

.page-section {
  padding-top: 0;
}
@media not all and (min-width: 768px) {
  .page-section {
    margin-bottom: -12vw
  }
}


.craft-box {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
}
/* クラフトボックスの左から順に表示アニメーション */
.grid.fade-in .craft-box {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.grid.fade-in.is-visible .craft-box {
  opacity: 1;
  transform: translateY(0);
}
@media (min-width: 768px) {
  .grid.fade-in .craft-box {
    transform: translateX(-30px);
  }
  .grid.fade-in.is-visible .craft-box {
    transform: translateX(0);
  }
}
.grid.fade-in.is-visible .craft-box:nth-child(1) {
  transition-delay: 0.1s;
}
.grid.fade-in.is-visible .craft-box:nth-child(2) {
  transition-delay: 0.2s;
}
.grid.fade-in.is-visible .craft-box:nth-child(3) {
  transition-delay: 0.3s;
}
.grid.fade-in.is-visible .craft-box:nth-child(4) {
  transition-delay: 0.4s;
}
@media not all and (min-width: 768px) {
  .craft-box.sp-hidden-box {
    opacity: 0;
    display: none;
  }
  .craft-box.sp-hidden-box.is-show {
    animation: calendarFadeIn 1s forwards;
    display: block;
  }
}
.craft-box__image {
  border-radius: 2.6667vw;
  border: 2px solid #ffe2ec;
  display: block;
  overflow: hidden;
}
.craft-box img:not(.content_bg) {
  width: 100%;
  position: relative;
  vertical-align: top;
}
.craft-box figcaption {
  padding-top: 3.2vw;
  font-family: 'Rounded Mplus 1c', 'Yomogi', "ヒラギノ丸ゴ ProN", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 4.2667vw;
  color: #763914;
  line-height: calc(26 / 16);
  font-weight: 500;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  row-gap: 4.8vw;
  flex: 1;
  min-height: 0;
}
.craft-box__name {
  margin: 0;
  text-align: center;
  flex-shrink: 0;
}
.craft-box .button2 {
  margin-top: auto;
  flex-shrink: 0;
}
.button2 {
  border-color: #fbc7da;
}
.button2__link[download]::before {
  background: url(../images/common/icon-download-pink.svg) no-repeat 50% 50% / 100% auto;
}
.button2__link:link {
  color: #f88fb6;
}
.button2__link:visited {
  color: #f88fb6;
}
.button2__link:hover {
  color: #f88fb6;
}
.button2__link:focus {
  color: #f88fb6;
}
@media (min-width: 768px) {
  .craft-box__image {
    border-radius: 0.6944vw;
  }
  .craft-box figcaption {
    padding-top: 1.3194vw;
    font-size: 1.1111vw;
    row-gap: 1.8056vw;
    justify-content: flex-start;
  }
  .craft-box .button2 {
    margin-top: auto;
  }
}
@media (min-width: 1440px) {
  .craft-box__image {
    border-radius: 10px;
  }
  .craft-box figcaption {
    padding-top: 19px;
    font-size: 16px;
    row-gap: 26px;
    justify-content: flex-start;
  }
  .craft-box .button2 {
    margin-top: auto;
  }
}

#pickup.page-section__inner {
  padding-top: 10.6667vw;
  padding-bottom: 13.2vw;
  background-color: #fff;
}
#pickup .page-section__title {
  color: #f282b7;
}
#pickup .page-section__title .en {
  padding-bottom: 8vw;
  background: url(../images/common/bg-title-pink_sp.svg) no-repeat 50% 100% / 100% auto;
}
@media (min-width: 768px) {
  #pickup.page-section__inner {
    padding-top: 2.7778vw;
    padding-bottom: 6.875vw;
  }
  #pickup .page-section__title .en {
    background: url(../images/common/bg-title-pink_pc.svg) no-repeat 50% 0 / 100% auto;
  }
}
@media (min-width: 1440px) {
  #pickup.page-section__inner {
    padding-top: 40px;
    padding-bottom: 99px;
  }
}

.grid {
  max-width: 1030px;
  width: 100%;
  padding: 0 10vw;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 100%;
  row-gap: 13.3333vw;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  .grid {
    padding: 0 1.3889vw;
    margin-bottom: 0;
    grid-template-columns: repeat(3, calc((324 / 1030) * 100%));
    column-gap: calc((29 / 1030) * 100%);
    row-gap: 4.1667vw;
  }
  .grid.has-two-items {
    grid-template-columns: calc((176.5 / 1030) * 100%) calc((324 / 1030) * 100%) calc((29 / 1030) * 100%) calc((324 / 1030) * 100%) calc((176.5 / 1030) * 100%);
    column-gap: unset;
    justify-content: center;
  }
  .grid.has-two-items .craft-box:nth-child(1) {
    grid-column: 2 / 3;
  }
  .grid.has-two-items .craft-box:nth-child(2) {
    grid-column: 4 / 5;
  }
  #party .grid {
    grid-template-columns: calc((176.5 / 1030) * 100%) calc((324 / 1030) * 100%) calc((29 / 1030) * 100%) calc((324 / 1030) * 100%) calc((176.5 / 1030) * 100%);
    column-gap: unset;
    justify-content: center;
  }
  #party .grid .craft-box.party1 {
    grid-column: 1 / 6;
  }
  #party .grid .craft-box.party2 {
    grid-column: 2 / 3;
  }
  #party .grid .craft-box.party3 {
    grid-column: 4 / 5;
  }
}
@media (min-width: 1440px) {
  .grid {
    padding: 0;
    row-gap: 60px;
  }
  .grid.has-two-items {
    grid-template-columns: calc((176.5 / 1030) * 100%) calc((324 / 1030) * 100%) calc((29 / 1030) * 100%) calc((324 / 1030) * 100%) calc((176.5 / 1030) * 100%);
    column-gap: unset;
    justify-content: center;
  }
  .grid.has-two-items .craft-box:nth-child(1) {
    grid-column: 2 / 3;
  }
  .grid.has-two-items .craft-box:nth-child(2) {
    grid-column: 4 / 5;
  }
}

#party.page-section__inner {
  padding-top: 0;
  padding-bottom: 13.2vw;
}
#party .page-section__title {
  padding-top: 2.4vw;
  margin-bottom: 2.3333vw;
  color: #fff;
}
#party .page-section__title .en {
  padding-bottom: 8vw;
  background: url(../images/common/bg-title-white_sp.svg) no-repeat 50% 100% / 100% auto;
}
#party .grid {
  margin-bottom: 0;
  row-gap: 8vw;
}
@media (min-width: 768px) {
  #party.page-section__inner {
    padding-bottom: 7.1528vw;
  }
  #party .page-section__title {
    padding-top: 0;
    margin-bottom: -3.8194vw;
    transform: translateY(-4.9306vw);
  }
  #party .page-section__title .en {
    padding-bottom: 3.6111vw;
    background: url(../images/common/bg-title-white_pc.svg) no-repeat 50% 100% / 100% auto;
  }
  #party .grid {
    row-gap: 4.1667vw;
  }
}
@media (min-width: 1440px) {
  #party.page-section__inner {
    padding-bottom: 103px;
  }
  #party .page-section__title {
    margin-bottom: -55px;
    transform: translateY(-71px);
  }
  #party .page-section__title .en {
    padding-bottom: 52px;
  }
  #party .grid {
    row-gap: 60px;
  }
}
#party .craft-box__name {
  color: #fff;
}

#party.page-section__inner {
  margin-top: 10.6667vw;
}
#party.page-section__inner::before {
  width: 100%;
  height: 10.6667vw;
  background: url(../images/common/mask_sp.svg) repeat-x 50% 0 / 100% auto;
  content: '\0020';
  display: block;
  position: absolute;
  bottom: calc(100% + 1px);
  left: 0;
}
@media (min-width: 768px) {
  #party.page-section__inner {
    margin-top: 10.4167vw;
  }
  #party.page-section__inner::before {
    height: 10.4167vw;
    background: url(../images/common/mask_pc.svg) repeat-x 50% 0 / 100% auto;
  }
}


#message.page-section__inner {
  padding-top: 10.6667vw;
  padding-bottom: 15.2vw;
  background-color: #fff;
}
#message .page-section__title {
  color: #f282b7;
}
#message .page-section__title .en {
  background: url(../images/common/bg-title-pink_sp.svg) no-repeat 50% 0 / 100% auto;
}
@media (min-width: 768px) {
  #message.page-section__inner {
    padding-top: 2.7778vw;
    padding-bottom: 6.9444vw;
  }
  #message .page-section__title {
    margin-bottom: 1.1806vw;
    transform: translateY(-0.8333vw);
  }
  #message .page-section__title .en {
    background: url(../images/common/bg-title-pink_pc.svg) no-repeat 50% 0 / 100% auto;
  }
}
@media (min-width: 1440px) {
  #message.page-section__inner {
    padding-top: 40px;
    padding-bottom: 100px;
  }
  #message .page-section__title {
    margin-bottom: 17px;
    transform: translateY(-12px);
  }
}
#message.page-section__inner {
  margin-top: 10.6667vw;
}
#message.page-section__inner::before {
  width: 100%;
  height: 10.6667vw;
  background: url(../images/common/mask-white_sp.svg) no-repeat 50% 0 / 100% auto;
  content: '\0020';
  display: block;
  position: absolute;
  bottom: calc(100% - 2px);
  left: 0;
}
#message.page-section__inner::after {
  width: 100%;
  height: 10.6667vw;
  background: url(../images/common/mask_sp.svg) repeat-x 50% 0 / 100% auto;
  content: '\0020';
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
}
#message .grid {
  row-gap: 8vw;
}
@media (min-width: 768px) {
  #message.page-section__inner {
    margin-top: 5.6944vw;
    margin-bottom: 2.7778vw;
  }
  #message.page-section__inner::before {
    height: 5.6944vw;
    background: url(../images/common/mask-white_pc.svg) no-repeat 50% 0 / 100% auto;
  }
  #message.page-section__inner::after {
    height: 10.4167vw;
    background: url(../images/common/mask_pc.svg) repeat-x 50% 0 / 100% auto;
  }
}

#message .dog {
  width: 31.2vw;
  margin: 0;
  position: absolute;
  top: -21.233vw;
  left: calc(50% + 17.3vw);
}
#message .dog img:not(.content_bg) {
  width: 100%;
  position: relative;
}
@media (min-width: 768px) {
  #message .dog {
    width: 19.8611vw;
    top: -15.5556vw;
    left: calc(50% + 27.0833vw);
  }
}
@media (min-width: 1440px) {
  #message .dog {
    width: 286px;
    top: -224px;
    left: calc(50% + 390px);
  }
}


#pickup img.craft-milky1:not(.content_bg) {
  width: 44vw;
  position: absolute;
  top: -70.5vw;
  left: calc(50% + 16vw);
  vertical-align: top;
  animation: contentFloat1 3.6s ease-in-out infinite;
}

#pickup img.craft-ame1:not(.content_bg) {
  width: 40vw;
  position: absolute;
  top: -22.5vw;
  left: calc(50% - 65vw);
  vertical-align: top;
  animation: contentFloat2 3.5s ease-in-out infinite;
}
/* SPで#pickup .craft-ame1を非表示 */
@media not all and (min-width: 768px) {
	#pickup img.craft-ame1:not(.content_bg) {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
	}
}
@media (min-width: 768px) {
  #pickup img.craft-milky1:not(.content_bg) {
    width: 21.4583vw;
    top: -32.0833vw;
    left: calc(50% + 21.9444vw);
  }

  #pickup img.craft-ame1:not(.content_bg) {
    width: 19.8611vw;
    top: -11.1806vw;
    left: calc(50% - 46.25vw);
  }
}
@media (min-width: 1440px) {
  #pickup img.craft-milky1:not(.content_bg) {
    width: 309px;
    top: -462px;
    left: calc(50% + 316px);
  }

  #pickup img.craft-ame1:not(.content_bg) {
    width: 286px;
    top: -161px;
    left: calc(50% - 666px);
  }
}

#party img.craft-milky1:not(.content_bg) {
  width: 44vw;
  position: absolute;
  top: -70.5vw;
  left: calc(50% + 16vw);
  vertical-align: top;
  display: none;
  animation: contentFloat4 3.8s ease-in-out infinite;
}

#party img.craft-ame1:not(.content_bg) {
  width: 40vw;
  position: absolute;
  top: -22.5vw;
  left: calc(50% - 65vw);
  vertical-align: top;
  display: none;
  animation: contentFloat1 3s ease-in-out infinite;
}
@media (min-width: 768px) {
  #party img.craft-milky1:not(.content_bg) {
    width: 21.1111vw;
    top: -14.8611vw;
    left: calc(50% - 41.7361vw);
    display: block;
  }

  #party img.craft-ame1:not(.content_bg) {
    width: 17.2222vw;
    top: 55.6944vw;
    left: calc(50% + 29.0278vw);
    display: block;
  }
}
@media (min-width: 1440px) {
  #party img.craft-milky1:not(.content_bg) {
    width: 304px;
    top: -214px;
    left: calc(50% - 601px);
  }

  #party img.craft-ame1:not(.content_bg) {
    width: 248px;
    top: 658px;
    left: calc(50% + 418px);
  }
}


#message img.craft-milky1:not(.content_bg) {
  width: 44vw;
  position: absolute;
  top: -70.5vw;
  left: calc(50% + 16vw);
  vertical-align: top;
  display: none;
  animation: contentFloat4 3.8s ease-in-out infinite;
}

#message img.craft-milky2:not(.content_bg) {
  width: 63vw;
  position: absolute;
  top: -32.5vw;
  left: calc(50% - 74vw);
  vertical-align: top;
  animation: contentFloat3 3.7s ease-in-out infinite;
}

#message img.craft-ame1:not(.content_bg) {
  width: 40vw;
  position: absolute;
  top: 94.5vw;
  left: calc(50% + 27vw);
  vertical-align: top;
  animation: contentFloat5 3.3s ease-in-out infinite;
  display: none;
}
@media (min-width: 768px) {
  #message img.craft-milky1:not(.content_bg) {
    width: 19.0278vw;
    top: -13.8889vw;
    left: calc(50% - 47.0139vw);
    display: block;
  }

  #message img.craft-milky2:not(.content_bg) {
    display: none;
  }
  #message img.craft-ame1:not(.content_bg) {
    display: none;
  }
}
@media (min-width: 1440px) {
  #message img.craft-milky1:not(.content_bg) {
    width: 274px;
    top: -200px;
    left: calc(50% - 677px);
  }
}

.follow-us .content-float.milky1:not(.content_bg) {
  width: 48.5333vw;
  top: -20vw;
  left: 79vw;
  transition: unset;
  vertical-align: top;
}

@media (min-width: 768px) {
  .follow-us .content-float.star {
    width: 9.0278vw;
    top: 1.5278vw;
    left: calc(50% - 45vw);
  }
  .follow-us .content-float.milky1:not(.content_bg) {
    width: 22.9167vw;
    top: -5.2778vw;
    left: calc(50% + 34.4444vw);
  }
}
@media (min-width: 1440px) {
  .follow-us .content-float.star {
    width: 130px;
    top: 22px;
    left: calc(50% - 648px);
  }
  .follow-us .content-float.milky1:not(.content_bg) {
    width: 330px;
    top: -76px;
    left: calc(50% + 496px);
  }
}

@media not all and (min-width: 768px) {
  .craft .follow-us::before {
    top: 2.4vw;
  }
}