@charset "UTF-8";
:root {
  --serif: "Noto Serif JP", serif;
  --sans: "Noto Sans JP", sans-serif;
  --pinyon:"Pinyon Script", cursive;
  --roboto: "Roboto", sans-serif;
  --pink1: #fff3f3;
  --pink2: #F5C8CB;
  --pink3: #FF6984;
  --pink4: #E40052;
  --pink5: #fde1e0;
}

* {
  box-sizing: border-box;
  list-style: none;
  text-decoration: none;
}

html {
  font-size: 1.5384615385vw;
}
@media screen and (min-width: 1040px) {
  html {
    font-size: 16px;
  }
}

body {
  background-color: var(--pink1);
  font-family: var(--sans);
}

main {
  width: min(100%, 940px);
  margin-inline: auto;
}

.section__inner {
  padding: 0 2.5rem;
  position: relative;
}

.fv-section {
  background-color: #fff;
}

.fv-section__image {
  position: relative;
}
.fv-section__image img {
  display: block;
  width: 100%;
  aspect-ratio: 940/703;
  height: auto;
}
.fv-section__image h1 {
  position: absolute;
  bottom: 5rem;
  left: 50%;
  width: 100%;
  translate: -50% 0;
  text-align: center;
  font-size: 3.75rem;
  font-weight: 500;
  line-height: 6.5rem;
  font-family: var(--serif);
  text-shadow: 1.5px 1.5px 0 #FFF, -1.5px -1.5px 0 #FFF, -1.5px 1.5px 0 #FFF, 1.5px -1.5px 0 #FFF, 0px 1.5px 0 #FFF, -1.5px 0 #FFF, -1.5px 0 0 #FFF, 1.5px 0 0 #FFF;
}
.fv-section__image .large {
  font-size: 1.1666666667em;
}
.fv-section__image .large-red {
  font-size: 1.6em;
  color: var(--pink4);
}
.fv-section__image .medium-red {
  font-size: 1.3333333333em;
  color: var(--pink4);
}

.fv-section__deco {
  margin-top: -7.5rem;
}
.fv-section__deco img {
  display: block;
  width: 100%;
  aspect-ratio: 940/577;
  height: auto;
}

.banner-section {
  background-color: var(--pink4);
  padding: 1.875rem 0;
  position: relative;
  overflow-x: clip;
}
.banner-section h2 {
  text-align: center;
  font-size: 3.125rem;
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
}
.banner-section h2 span {
  font-size: 1.2em;
}
.banner-section img {
  position: absolute;
  bottom: 0;
  right: -0.625rem;
  width: 7.65375rem;
  height: auto;
  display: block;
  scale: -1 1;
}

.comic-section {
  background-color: #fff;
}
.comic-section img {
  width: 100%;
  display: block;
  height: auto;
}

.point-section h3 {
  font-size: 2.875rem;
  line-height: 2;
  text-align: center;
  font-weight: 400;
}
.point-section h3 span {
  background-color: var(--pink4);
  color: #fff;
  padding: 0.3125rem 0.625rem;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline;
}

.point-section__body {
  background-color: var(--pink5);
  padding: 9.375rem 0 2.5rem;
  position: relative;
}

.point-section__items {
  margin-top: 7.1875rem;
}

.c-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

.c-card {
  background-color: #fff;
  padding: 4.375rem 2.5rem 2.5rem;
}
.c-card div {
  --fontSize: 2.5rem;
  text-align: center;
  font-family: var(--pinyon);
  color: var(--pink4);
  text-transform: capitalize;
  font-size: var(--fontSize);
  padding-bottom: 1.25rem;
  position: relative;
}
.c-card h3 {
  --fontSize: 3.125rem;
  --line-height: 1;
  margin-top: 1.25rem;
  font-size: var(--fontSize);
  font-weight: 400;
  font-family: var(--serif);
  line-height: var(--line-height);
  text-align: center;
}
.c-card h3 span {
  background-color: var(--pink4);
  color: #fff;
  padding: 0.1875rem 0.3125rem;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline;
}
.c-card figure {
  --height: 500;
  --space: 2.5rem;
  margin-top: var(--space);
  width: 100%;
  aspect-ratio: 780/var(--height);
}
.c-card figure img {
  width: 100%;
  display: block;
  height: 100%;
  object-fit: cover;
}
.c-card p {
  margin-top: 1.875rem;
  font-size: max(14px, 1.875rem);
  line-height: 2;
}
.c-card p span {
  color: var(--pink4);
  font-weight: 500;
}

.c-card__line::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50% 0;
  width: 2.5rem;
  height: 1px;
  background-color: var(--pink4);
}

.point-section__deco {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 11.875rem;
  height: auto;
}

.point-section__deco2 {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 10.25rem;
  height: auto;
  translate: 0 -80%;
}

.link-section a {
  position: relative;
  display: block;
}
.link-section a::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}
.link-section a:hover {
  cursor: pointer;
}
.link-section a:hover::before {
  opacity: 0;
}
.link-section a:hover .link-section__button {
  background-color: white;
  transition: all 0.3s;
}
.link-section img {
  display: block;
  width: 100%;
  height: auto;
}
.link-section p {
  color: #fff;
}

.link-section__txt {
  font-size: max(14px, 2rem);
  line-height: 1.7;
  font-weight: 500;
  text-align: center;
  width: 100%;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}

.link-section__button {
  transition: all 0.3s;
  width: 28.4375rem;
  margin-inline: auto;
  height: 5.9375rem;
  margin-top: 2.5rem;
  border-radius: 6.25rem;
  color: #000;
  background-color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.link-section__button::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.75rem 0 0.75rem 1.5rem;
  border-color: transparent transparent transparent #000;
  position: absolute;
  right: 10.989010989%;
}

.voice-section {
  position: relative;
  padding: 0 0 2.5rem;
  background: linear-gradient(to bottom, #fff 0%, #fff 3.4375rem, var(--pink5) 3.44375rem, var(--pink5) 100%);
}
.voice-section h2 {
  font-size: 2.875rem;
  font-family: var(--serif);
  line-height: 2;
}
.voice-section::before {
  content: "";
  position: absolute;
  top: 3.4375rem;
  left: 0;
  width: 100%;
  height: 4.375rem;
  background-color: #fff;
  -webkit-clip-path: polygon(100% 0, 0 0, 50% 100%);
          clip-path: polygon(100% 0, 0 0, 50% 100%);
}

.voice-section__block {
  margin-top: 2.8125rem;
  position: relative;
}

.voice-section__items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

.voice-section__item {
  padding: 6.875rem 2.5rem 2.5rem;
  background-color: #fff;
}
.voice-section__item div {
  display: grid;
  grid-template-columns: 18.6046511628% 1fr;
  gap: 0.625rem;
}
.voice-section__item h3 {
  font-size: 2.5rem;
  line-height: 1.7;
  padding: 0 1.25rem;
  font-weight: 400;
}
.voice-section__item h3 span {
  display: inline-block;
}
.voice-section__item p {
  margin-top: 2.5rem;
  font-size: max(14px, 1.875rem);
  line-height: 2;
}
.voice-section__item p span {
  color: var(--pink4);
  font-weight: 500;
}
.voice-section__item figure img {
  width: 10rem;
  height: auto;
  display: block;
}

.voice-section__ttl {
  width: 33.8125rem;
  height: 17.29125rem;
  background-image: url("./images/bubble.png");
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}
.voice-section__ttl h2 {
  translate: 0 -10%;
  font-weight: 400;
  text-align: center;
  font-size: 2.875rem;
  font-family: var(--serif);
}

.voice-section__deco {
  position: absolute;
  top: -3.125rem;
  left: 0;
  translate: 0 -100%;
  width: 7.960625rem;
  height: auto;
}

.voice-section__deco2 {
  position: absolute;
  top: -3.4375rem;
  right: 0;
  scale: -1 -1;
  translate: 0 -100%;
  width: 7.960625rem;
  height: auto;
}

.feature-section {
  background-color: var(--pink5);
  padding: 0 0 2.5rem;
  background: linear-gradient(to bottom, #fff 0%, #fff 9.375rem, var(--pink5) 9.38125rem, var(--pink5) 100%);
}

.feature-section__ttl {
  position: relative;
}
.feature-section__ttl h2 {
  font-size: 3.125rem;
  line-height: 4.6875rem;
  text-align: center;
  font-weight: 400;
  font-family: var(--serif);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 100%;
}
.feature-section__ttl img {
  width: 40.9375rem;
  height: 30.465rem;
  display: block;
  margin-inline: auto;
}
.feature-section__ttl .large-red {
  font-size: 1.4em;
  color: var(--pink4);
}
.feature-section__ttl .medium-red {
  color: var(--pink4);
}
.feature-section__ttl .small-black {
  font-size: 0.8em;
}

.feature-section__block {
  position: relative;
  margin-top: 4.375rem;
}

.feature-section__deco {
  display: block;
  width: 15.625rem;
  height: auto;
  position: absolute;
  top: 0;
  right: -2.5rem;
  translate: 0 -75%;
}

.feature-section .c-card div {
  --fontSize: 4.375rem;
}
.feature-section .c-card h3 {
  --fontSize: 2.875rem;
  --line-height: 1.7;
}
.feature-section .c-card figure {
  --space: 3.125rem;
  --height: 510;
}

.notice-section img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 940/1031.06;
}

.action-section {
  background-color: #fff;
  padding: 2.5rem 0;
}

.action-section__block {
  border: 3px solid #E40052;
  border-radius: 0.625rem;
  padding: 1.375rem 0 5rem;
}

.action-section__head {
  display: flex;
  align-items: center;
  justify-content: center;
}
.action-section__head img {
  width: 16.9375rem;
  height: 17.0625rem;
  display: block;
}
.action-section__head p {
  font-size: max(14px, 2rem);
  line-height: 1.5;
  padding: 2.5rem 0 2.5rem 0.625rem;
  background-image: url(./images/deco.png);
  background-size: contain;
  background-position: center left;
  background-repeat: no-repeat;
}

.action-section__offer {
  margin-top: 0.375rem;
}
.action-section__offer h2 {
  text-align: center;
  font-size: 4.375rem;
  font-weight: 700;
  line-height: 1.5;
}
.action-section__offer h2 span {
  display: inline-block;
}

.small {
  font-size: 0.7142857143em;
}

.marker {
  padding: 0 0.625rem;
  background-image: url(./images/marker.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center bottom;
}

.marker2 {
  padding: 0 0.625rem;
  background-image: url(./images/marker2.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center bottom;
}

.action-section__offer {
  margin-top: 0.625rem;
}

.action-section__detail {
  margin-top: 0.625rem;
  margin-inline: auto;
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  place-items: center;
}

.action-section__button {
  margin: 2.1875rem auto 0;
  width: 42.875rem;
  height: 9.625rem;
  color: #fff;
  background: linear-gradient(to top, var(--pink4) 0%, var(--pink3) 50%, #ffc8ce 100%);
  font-size: 4rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6.25rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0.625rem 0.625rem rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease-in-out;
}
.action-section__button:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 1.875rem;
  background-color: #fff;
  animation: reflection 2s ease-in-out infinite;
}
.action-section__button::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.78125rem 0 0.78125rem 1.35625rem;
  border-color: transparent transparent transparent #fff;
  position: absolute;
  top: 50%;
  right: 3.4375rem;
  translate: 0 -50%;
}

.action-section__button:hover {
  cursor: pointer;
  box-shadow: none;
  translate: 0 0.3125rem;
}

@keyframes reflection {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
.action-section__duration {
  width: 9.6875rem;
  height: 9.6875rem;
  color: #fff;
  margin-right: 0.8125rem;
  font-size: 3.125rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url(./images/action_duration.png);
  background-size: contain;
  background-repeat: no-repeat;
  font-family: var(--roboto);
}
.action-section__duration span {
  font-family: var(--sans);
  font-size: 0.72em;
}

.action-section__price {
  font-size: 9.375rem;
  font-family: var(--roboto);
  color: var(--pink4);
  display: flex;
  align-items: flex-end;
  font-weight: 500;
}
.action-section__price span {
  font-family: var(--sans);
  font-size: 0.4em;
  display: inline-block;
  translate: 0 -6px;
  font-weight: 700;
}

/*
detail
*/
.detail-section {
  padding: 8.125rem 0 5rem;
  background-color: #fff;
}
.detail-section h2 {
  font-size: 3.125rem;
  line-height: 1.5;
  font-weight: 500;
  font-family: var(--serif);
  text-align: center;
}

.detail-section__lists {
  margin-top: 4.375rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

.detail-section__list {
  font-size: max(14px, 1.875rem);
  line-height: 2;
}
.detail-section__list dt {
  color: var(--pink4);
  font-weight: 700;
}
.detail-section__list li::before {
  content: "・";
}

.detail-section__p {
  margin-top: 2.5rem;
  font-size: max(14px, 1.875rem);
  line-height: 2;
}

footer {
  background-color: #fff;
  text-align: center;
  padding: 2.5rem 0;
}
footer small {
  font-size: max(11px, 1.875rem);
  line-height: 2;
}

.heading-section {
  background-color: #fff;
  position: relative;
}

.heading-section__icon {
  display: block;
  position: absolute;
  left: 4.375rem;
  bottom: 2.5rem;
  width: 25rem;
  height: 28.75rem;
}

.heading-section__bg {
  width: 100%;
  display: block;
  aspect-ratio: 900/648;
  height: auto;
}

.heading-section__ttl {
  position: absolute;
  top: 2.5rem;
  right: 2.5rem;
  display: inline-block;
}
.heading-section__ttl img {
  display: block;
  width: 33.5625rem;
  height: 22.625rem;
}
.heading-section__ttl h2 {
  font-size: 3rem;
  font-family: var(--serif);
  font-weight: 500;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 100%;
  line-height: 4.5rem;
}
.heading-section__ttl h2 span {
  font-size: 0.8333333333em;
  font-weight: 400;
}/*# sourceMappingURL=style.css.map */