@charset "UTF-8";
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font-family: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

/*===========================================================================
# common - 全体に共通するスタイル
===========================================================================*/
@media screen and (max-width: 1359px) and (min-width: 768px) {
  html {
    font-size: calc(16 / 1360 * 100vw);
  }
}
@media screen and (max-width: 389px) {
  html {
    font-size: calc(15 / 390 * 100vw);
  }
}

body {
  color: #060606;
  background: #fafafa;
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 21px;
  letter-spacing: 0.7px;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  body {
    font-size: 0.75rem;
    line-height: 18px;
    letter-spacing: 0.6px;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  body {
    font-size: 0.75rem;
  }
}

a {
  text-decoration: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}

picture,
img,
a,
span {
  display: inline-block;
}

video,
img,
svg {
  width: 100%;
  height: 100%;
}

button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
/*===========================================================================
# header - ヘッダー
===========================================================================*/
.l-header {
  position: fixed;
  z-index: 100;
  top: 0;
  width: 100%;
  background-color: #fafafa;
  -webkit-padding-before: 0.5rem;
          padding-block-start: 0.5rem;
  padding-inline: 3.125rem;
}
@media screen and (max-width: 767px) {
  .l-header {
    height: 3.5rem;
    padding-block: 0.5625rem 0.375rem;
    padding-inline: 0.9375rem;
  }
}

/*===========================================================================
# footer - フッター
===========================================================================*/
.l-inner {
  position: relative;
  width: 100%;
  max-width: 1360px;
  height: inherit;
  padding: 0 11.25rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .l-inner {
    width: 100%;
    max-width: 500px;
    padding: 0 0.9375rem;
  }
}

.l-inner__narrow {
  max-width: 62.5rem;
}
@media screen and (max-width: 767px) {
  .l-inner__narrow {
    padding: 0 0.9375rem;
    max-width: 360px;
  }
}

.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  position: relative;
  -webkit-padding-after: 0.125rem;
          padding-block-end: 0.125rem;
  padding-inline: -0.625rem;
  border-bottom: 1px dashed #060606;
  background-color: #fafafa;
}
@media screen and (max-width: 767px) {
  .l-header__inner {
    height: 3rem;
    max-width: 600px;
    width: 100%;
    -webkit-padding-after: 0.1875rem;
            padding-block-end: 0.1875rem;
  }
}

.l-footer__inner {
  padding-inline: 2.5rem;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .l-footer__inner {
    padding-inline: 0.9375rem;
  }
}

.l-test {
  -webkit-padding-before: 6.25rem;
          padding-block-start: 6.25rem;
}

@-webkit-keyframes pulseEffect {
  0%, 100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

@keyframes pulseEffect {
  0%, 100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}
.c-animated__fadeIn {
  opacity: 0;
  translate: 0 40px;
  -webkit-transition: opacity 0.5s ease, translate 0.5s ease;
  transition: opacity 0.5s ease, translate 0.5s ease;
}
.c-animated__fadeIn.js-show {
  opacity: 1;
  translate: 0 0;
}
.c-animated__fadeIn.--delay1 {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.c-animated__fadeIn.--delay2 {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
.c-animated__fadeIn.--delay3 {
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}

.c-animated__slideIn--left {
  opacity: 0;
  translate: -100px;
  -webkit-transition: opacity 0.5s ease, translate 0.5s ease;
  transition: opacity 0.5s ease, translate 0.5s ease;
}
@media (max-width: 768px) {
  .c-animated__slideIn--left {
    opacity: 0;
    translate: 0 40px;
  }
}
.c-animated__slideIn--left.js-show {
  opacity: 1;
  translate: 0;
}
.c-animated__slideIn--left.--delay1 {
  -webkit-transition-delay: 1s;
          transition-delay: 1s;
}
.c-animated__slideIn--left.--delay2 {
  -webkit-transition-delay: 2s;
          transition-delay: 2s;
}
.c-animated__slideIn--left.--delay3 {
  -webkit-transition-delay: 3s;
          transition-delay: 3s;
}

.c-animated__slideIn--right {
  opacity: 0;
  translate: 100px;
  -webkit-transition: opacity 0.5s ease, translate 0.5s ease;
  transition: opacity 0.5s ease, translate 0.5s ease;
}
@media (max-width: 768px) {
  .c-animated__slideIn--right {
    opacity: 0;
    translate: 0 40px;
  }
}
.c-animated__slideIn--right.js-show {
  opacity: 1;
  translate: 0;
}
.c-animated__slideIn--right.--delay1 {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.c-animated__slideIn--right.--delay2 {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
.c-animated__slideIn--right.--delay3 {
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}

@-webkit-keyframes floatingY {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(25px);
            transform: translateY(25px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes floatingY {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(25px);
            transform: translateY(25px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes floatingY-sp {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes floatingY-sp {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.c-animated__fuwafuwaY {
  -webkit-animation: floatingY 2.5s ease-in-out infinite;
          animation: floatingY 2.5s ease-in-out infinite;
}
@media (max-width: 768px) {
  .c-animated__fuwafuwaY {
    -webkit-animation: floatingY-sp 2.5s ease-in-out infinite;
            animation: floatingY-sp 2.5s ease-in-out infinite;
  }
}

.c-animated__fuwafuwaY--delay1 {
  -webkit-animation: floatingY 2.5s ease-in-out infinite;
          animation: floatingY 2.5s ease-in-out infinite;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}
@media (max-width: 768px) {
  .c-animated__fuwafuwaY--delay1 {
    -webkit-animation: floatingY-sp 2.5s ease-in-out infinite;
            animation: floatingY-sp 2.5s ease-in-out infinite;
    -webkit-animation-delay: 0.5s;
            animation-delay: 0.5s;
  }
}

.c-animated__fuwafuwaY--delay2 {
  -webkit-animation: floatingY 2.5s ease-in-out infinite;
          animation: floatingY 2.5s ease-in-out infinite;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
@media (max-width: 768px) {
  .c-animated__fuwafuwaY--delay2 {
    -webkit-animation: floatingY-sp 2.5s ease-in-out infinite;
            animation: floatingY-sp 2.5s ease-in-out infinite;
    -webkit-animation-delay: 1s;
            animation-delay: 1s;
  }
}

.c-animated__fuwafuwaY--delay3 {
  -webkit-animation: floatingY 2.5s ease-in-out infinite;
          animation: floatingY 2.5s ease-in-out infinite;
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s;
}
@media (max-width: 768px) {
  .c-animated__fuwafuwaY--delay3 {
    -webkit-animation: floatingY-sp 2.5s ease-in-out infinite;
            animation: floatingY-sp 2.5s ease-in-out infinite;
    -webkit-animation-delay: 1.5s;
            animation-delay: 1.5s;
  }
}

@-webkit-keyframes fuwayura {
  0% {
    -webkit-transform: translateX(0) translateY(0) rotate(0);
            transform: translateX(0) translateY(0) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-10px) translateY(-25px) rotate(-5deg);
            transform: translateX(-10px) translateY(-25px) rotate(-5deg);
  }
}

@keyframes fuwayura {
  0% {
    -webkit-transform: translateX(0) translateY(0) rotate(0);
            transform: translateX(0) translateY(0) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-10px) translateY(-25px) rotate(-5deg);
            transform: translateX(-10px) translateY(-25px) rotate(-5deg);
  }
}
@-webkit-keyframes fuwayura-sp {
  0% {
    -webkit-transform: translateX(0) translateY(0) rotate(0);
            transform: translateX(0) translateY(0) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-5px) translateY(-10px) rotate(-3deg);
            transform: translateX(-5px) translateY(-10px) rotate(-3deg);
  }
}
@keyframes fuwayura-sp {
  0% {
    -webkit-transform: translateX(0) translateY(0) rotate(0);
            transform: translateX(0) translateY(0) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-5px) translateY(-10px) rotate(-3deg);
            transform: translateX(-5px) translateY(-10px) rotate(-3deg);
  }
}
.c-animated__fuwayura {
  -webkit-animation: fuwayura 1s ease-in-out infinite alternate;
          animation: fuwayura 1s ease-in-out infinite alternate;
}
@media (max-width: 768px) {
  .c-animated__fuwayura {
    -webkit-animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
            animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
  }
}

.c-animated__fuwayura--delay1 {
  -webkit-animation: fuwayura 1.5s ease-in-out infinite alternate;
          animation: fuwayura 1.5s ease-in-out infinite alternate;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}
@media (max-width: 768px) {
  .c-animated__fuwayura--delay1 {
    -webkit-animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
            animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
    -webkit-animation-delay: 0.5s;
            animation-delay: 0.5s;
  }
}

.c-animated__fuwayura--delay2 {
  -webkit-animation: fuwayura 1.5s ease-in-out infinite alternate;
          animation: fuwayura 1.5s ease-in-out infinite alternate;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
@media (max-width: 768px) {
  .c-animated__fuwayura--delay2 {
    -webkit-animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
            animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
    -webkit-animation-delay: 1s;
            animation-delay: 1s;
  }
}

.c-animated__fuwayura--delay3 {
  -webkit-animation: fuwayura 1.5s ease-in-out infinite alternate;
          animation: fuwayura 1.5s ease-in-out infinite alternate;
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s;
}
@media (max-width: 768px) {
  .c-animated__fuwayura--delay3 {
    -webkit-animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
            animation: fuwayura-sp 1.5s ease-in-out infinite alternate;
    -webkit-animation-delay: 1.5s;
            animation-delay: 1.5s;
  }
}

.c-button {
  padding: 0.375rem 1.8125rem;
  border-radius: 2.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.05em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  gap: 0.25rem;
  background-color: #fff;
  border: 1px solid #060606;
  color: transparent; /* テキスト本体は透明にする */
  /* 影を隠す */
  overflow: hidden; /* 1つ目の影を隠す */
  text-shadow: 0 -2em 0 #060606, 0 0 0 #060606;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .c-button {
    font-size: 0.75rem;
  }
}
.c-button a {
  text-transform: uppercase;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.c-button:hover {
  text-shadow: 0 0 0 #060606, 0 2em 0 #060606;
}
.c-button__icon {
  -webkit-margin-before: 0.125rem;
          margin-block-start: 0.125rem;
  width: 0.75rem;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
}
.c-button__icon svg path {
  fill: #060606;
  -webkit-transition: fill 0.3s ease;
  transition: fill 0.3s ease;
}

.c-contact__button {
  background-color: #9e3eb1;
  color: #fff;
  text-shadow: unset;
  overflow: visible; /* 1つ目の影を隠す */
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .c-contact__button {
    padding: 0.625rem 2.4375rem;
  }
}
.c-contact__button:hover {
  background-color: #fff;
  color: #060606;
  text-shadow: unset;
}
.c-contact__button:hover svg path {
  fill: #060606;
  -webkit-transition: fill 0.3s ease;
  transition: fill 0.3s ease;
}

.c-contact__button-icon svg path {
  fill: #fff;
}

.c-contact-cta__button {
  padding: 0.875rem 1.1875rem;
  border-radius: 2.5rem;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  gap: 0.25rem;
  background-color: #fff;
  border: 1px solid #060606;
  color: transparent; /* テキスト本体は透明にする */
  /* 影を隠す */
  overflow: hidden; /* 1つ目の影を隠す */
  text-shadow: 0 -2em 0 #060606, 0 0 0 #060606;
  -webkit-transition: text-shadow 0.3s;
  transition: text-shadow 0.3s;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .c-contact-cta__button {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .c-contact-cta__button {
    padding: 0.375rem 0.9375rem;
  }
}
.c-contact-cta__button a {
  text-transform: uppercase;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.c-contact-cta__button svg path {
  fill: #060606;
}
.c-contact-cta__button:hover {
  text-shadow: 0 0 0 #060606, 0 2em 0 #060606;
}
.c-contact-cta__button:hover svg path {
  fill: #060606;
  -webkit-transition: fill 0.3s ease;
  transition: fill 0.3s ease;
}

.c-title-wrapper {
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.c-section-title {
  -webkit-margin-after: 0.3125rem;
          margin-block-end: 0.3125rem;
  text-align: left;
  color: #9e3eb1;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .c-section-title {
    font-size: 0.75rem;
  }
}

.c-section-title-img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/* SERVICE */
.c-service__title-wrapper {
  width: 13.75rem;
}

.c-service__title-img {
  aspect-ratio: 220/53;
}

/* PRICE */
.c-price__title-wrapper {
  width: 9.625rem;
  min-width: 95px;
}

.c-price__title-img {
  aspect-ratio: 154/53;
}

/* VARIATIONS */
.c-variations__title-wrapper {
  width: 20.4375rem;
}

.c-variations__title-img {
  aspect-ratio: 327/53;
}

/* VOICE */
.c-voice__title-wrapper {
  width: 10rem;
}

.c-voice__title-img {
  aspect-ratio: 160/53;
}

/* FAQ */
.c-faq__title-wrapper {
  width: 6.625rem;
}

.c-faq__title-img {
  aspect-ratio: 106/53;
}

/* NEWS・BLOG */
.c-news__title-wrapper {
  width: 21.125rem;
}

.c-news__title-img {
  aspect-ratio: 338/53;
}

/* INSTAGRAM */
.c-instagram__title-wrapper {
  width: 19.5rem;
}

.c-instagram__title-img {
  aspect-ratio: 312/53;
}

/* VALUE */
.c-value__title-wrapper {
  width: 10.6875rem;
}

.c-value__title-img {
  aspect-ratio: 171/53;
}

/* OVERVIEW */
.c-overview__title-wrapper {
  width: 17.25rem;
}

.c-overview__title-img {
  aspect-ratio: 276/53;
}

/* CASE */
.c-case__title-wrapper {
  width: 8.25rem;
}

.c-case__title-img {
  aspect-ratio: 132/53;
}

.c-case__title {
  color: #fff;
}

/* CONTACT */
.c-contact__title-wrapper {
  width: 15.5rem;
}

.c-contact__title-img {
  aspect-ratio: 248/53;
}

/* PRIVACY */
.c-privacy__title-wrapper {
  width: 28.3125rem;
}
@media screen and (max-width: 767px) {
  .c-privacy__title-wrapper {
    width: 18.6875rem;
  }
}

.c-privacy__title-img {
  aspect-ratio: 453/53;
}

.c-section-line {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: calc(100% - 5rem);
  max-width: 1440px;
  margin-inline: auto;
  position: relative;
  padding-inline: 2.5rem;
  border-bottom: 1px dashed #060606;
}
@media screen and (max-width: 767px) {
  .c-section-line {
    width: calc(100% - 1.875rem);
    max-width: 600px;
    padding-inline: 0.9375rem;
  }
}

.p-header__logo {
  width: 10.8125rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
  aspect-ratio: 173/72;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    width: 3rem;
    aspect-ratio: 1;
  }
}
.p-header__logo img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (hover: hover) {
  .p-header__logo:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .p-header__nav {
    display: none;
  }
}

.p-header__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.25rem;
}
.p-header__menu-button {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-header__menu-button {
    font-size: 0.875rem;
  }
}
.p-header__menu-list:not(:last-child) .c-button .c-button__icon {
  display: none;
}

.p-header__logo-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-header__logo-sp {
    display: block;
    width: 3.5625rem;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
    aspect-ratio: 57/23;
  }
}

.p-drawer__icon-wrapper {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-drawer__icon-wrapper {
    z-index: 102;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.25rem;
    width: 3rem;
    height: 3rem;
    cursor: pointer;
    padding-block: 0.5rem;
    padding-inline: 0.5rem;
  }
}

.p-drawer__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  height: 100%;
}
@media (min-width: 768px) {
  .p-drawer__icon {
    display: none;
  }
}

.p-drawer__icon--bar {
  width: 100%;
  height: 1px;
  border-radius: 2px;
  background: #060606;
  position: relative;
  z-index: 104;
}

.p-drawer__icon--text {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-drawer__icon--text {
    display: block;
    color: #060606;
    font-size: 0.5rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-drawer__icon--text {
    font-size: 0.5rem;
  }
}

.p-drawer__icon-wrapper.js-show .p-drawer__icon--bar:nth-of-type(1) {
  -webkit-animation: bar-rotate-1 0.7s forwards;
          animation: bar-rotate-1 0.7s forwards;
}
.p-drawer__icon-wrapper.js-show .p-drawer__icon--bar:nth-of-type(2) {
  opacity: 0;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.p-drawer__icon-wrapper.js-show .p-drawer__icon--bar:nth-of-type(3) {
  -webkit-animation: bar-rotate-3 0.7s forwards;
          animation: bar-rotate-3 0.7s forwards;
}

@-webkit-keyframes bar-rotate-1 {
  0% {
    rotate: 0deg;
  }
  80% {
    rotate: 360deg;
  }
  100% {
    rotate: 30deg;
    translate: 0 7.5px;
  }
}

@keyframes bar-rotate-1 {
  0% {
    rotate: 0deg;
  }
  80% {
    rotate: 360deg;
  }
  100% {
    rotate: 30deg;
    translate: 0 7.5px;
  }
}
@-webkit-keyframes bar-rotate-3 {
  0% {
    rotate: 0deg;
  }
  80% {
    rotate: 360deg;
  }
  100% {
    rotate: -30deg;
    translate: 0 -7.5px;
  }
}
@keyframes bar-rotate-3 {
  0% {
    rotate: 0deg;
  }
  80% {
    rotate: 360deg;
  }
  100% {
    rotate: -30deg;
    translate: 0 -7.5px;
  }
}
.p-drawer {
  position: fixed;
  z-index: 99;
  overflow-y: scroll;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: #fafafa;
}

.p-drawer__icon--bar {
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

.p-drawer {
  translate: 0 -100%;
  -webkit-transition: translate 0.5s ease;
  transition: translate 0.5s ease;
}
.p-drawer.js-show {
  translate: 0 0;
}

.p-drawer__inner {
  width: 100%;
  max-width: 480px;
  margin-inline: auto;
  padding-inline: 0.9375rem;
  -webkit-padding-before: 3.5rem;
          padding-block-start: 3.5rem;
}

.p-drawer__body {
  width: 100%;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-align: center;
  position: relative;
}

.p-drawer__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-align: center;
  width: 100%;
}
.p-drawer__list li {
  padding-block: 1.03125rem;
  width: 100%;
  border-bottom: 1px dashed #060606;
  cursor: pointer;
  text-align: left;
}
.p-drawer__list li a {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-drawer__list li a {
    font-size: 0.875rem;
  }
}

.p-drawer__list-ja {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-decoration: none;
  -webkit-margin-start: 0.25rem;
          margin-inline-start: 0.25rem;
}
@media screen and (max-width: 767px) {
  .p-drawer__list-ja {
    font-size: 0.75rem;
  }
}

.p-drawer__btn {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
}

.p-drawer__logo {
  width: 8.375rem;
  height: auto;
  aspect-ratio: 134/178;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
}

.p-drawer__image--spotlight {
  width: 4.9375rem;
  height: auto;
  aspect-ratio: 79/78;
  -o-object-fit: contain;
     object-fit: contain;
  bottom: -0.625rem;
  left: 50%;
  -webkit-transform: translateX(calc(-50% + 9rem));
          transform: translateX(calc(-50% + 9rem));
  z-index: 100;
  position: absolute;
}

.p-drawer__image--girl {
  width: 5.75rem;
  height: auto;
  aspect-ratio: 92/162;
  -o-object-fit: contain;
     object-fit: contain;
  position: relative;
  left: 50%;
  -webkit-transform: translateX(calc(-50% - 8.5rem));
          transform: translateX(calc(-50% - 8.5rem));
  z-index: 100;
}

body.js-show {
  overflow: hidden;
}

.p-contact-cta {
  background-color: #9e3eb1;
  padding-block: 1.375rem;
  padding-inline: 1.375rem;
  border-radius: 1.25rem;
  border: 2px solid #060606;
  width: 100%;
  height: 18.875rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-contact-cta {
    height: 100%;
    padding-block: 2rem;
    padding-inline: 1.5rem;
  }
}

.p-contact-cta__wrapper {
  -webkit-margin-end: 2.125rem;
          margin-inline-end: 2.125rem;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .p-contact-cta__wrapper {
    -webkit-margin-end: 0;
            margin-inline-end: 0;
  }
}
.p-contact-cta__wrapper img {
  width: 14.8125rem;
  height: auto;
}

.p-contact-cta__title {
  -webkit-margin-before: 0.3125rem;
          margin-block-start: 0.3125rem;
  text-align: left;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-contact-cta__title {
    font-size: 0.75rem;
  }
}

.p-contact-cta__text {
  -webkit-margin-before: 2rem;
          margin-block-start: 2rem;
  text-align: center;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-contact-cta__text {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .p-contact-cta__text {
    -webkit-margin-before: 2.5rem;
            margin-block-start: 2.5rem;
  }
}

.p-contact-cta__icon {
  -webkit-margin-before: 1.5rem;
          margin-block-start: 1.5rem;
  width: 3.75rem;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-contact-cta__icon {
    display: none;
  }
}

.p-contact-cta__image {
  width: 16.4375rem;
  height: auto;
  aspect-ratio: 263/224;
  -o-object-fit: contain;
     object-fit: contain;
  position: absolute;
  top: 50%;
  right: 50%;
  -webkit-transform: translate(28.125rem, -50%);
          transform: translate(28.125rem, -50%);
}
@media screen and (max-width: 767px) {
  .p-contact-cta__image {
    width: 11rem;
    height: auto;
    aspect-ratio: 176/150;
    position: relative;
    -webkit-transform: unset;
            transform: unset;
    top: unset;
    right: unset;
    -webkit-margin-before: 2rem;
            margin-block-start: 2rem;
  }
}

.p-contact-cta__button {
  -webkit-margin-before: 0.5rem;
          margin-block-start: 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-contact-cta__button {
    -webkit-margin-before: 1.0625rem;
            margin-block-start: 1.0625rem;
  }
}

.p-footer-nav {
  -webkit-margin-before: 1.25rem;
          margin-block-start: 1.25rem;
  background-color: #060606;
  padding-block: 2rem 1rem;
  padding-inline: 11.1875rem;
  border-radius: 1.25rem 1.25rem 0 0;
  width: 100%;
  height: 20.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .p-footer-nav {
    -webkit-padding-before: 1rem;
            padding-block-start: 1rem;
    padding-inline: 0.9375rem;
    padding-block: 3.75rem 1.5rem;
    height: 100%;
  }
}

.p-footer__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2.1875rem;
}
@media screen and (max-width: 767px) {
  .p-footer__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 2rem;
    margin-inline: auto;
  }
}

.p-footer__logo {
  width: 8.375rem;
  height: auto;
  aspect-ratio: 134/178;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-footer__logo img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-footer__logo:hover {
  opacity: 0.7;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.p-footer__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
}

.p-footer__menu-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
}
.p-footer__menu-item:hover {
  opacity: 0.7;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.p-footer__menu-text {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-footer__menu-text {
    font-size: 0.875rem;
  }
}
.p-footer__menu-text.--policy {
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-footer__menu-text.--policy {
    font-size: 0.6875rem;
  }
}

.p-footer__copyright {
  display: block;
  margin-inline: auto;
}

.p-footer__copyright-text {
  text-align: center;
  color: #fcfff9;
  font-size: 0.6875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-footer__copyright-text {
    font-size: 0.6875rem;
  }
}
@media screen and (max-width: 767px) {
  .p-footer__copyright-text {
    -webkit-margin-before: 3.75rem;
            margin-block-start: 3.75rem;
  }
}

.p-section-price {
  padding-block: 3.75rem;
}
@media screen and (max-width: 767px) {
  .p-section-price {
    padding-block: 4.5rem 1.75rem;
  }
}

.p-price__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  -webkit-margin-before: 1.5625rem;
          margin-block-start: 1.5625rem;
}
@media screen and (max-width: 767px) {
  .p-price__wrapper {
    -webkit-margin-before: 1.25rem;
            margin-block-start: 1.25rem;
  }
}

.p-price__header {
  padding-block: 0.1875rem;
  padding-inline: 0.4375rem;
  border: 1px solid #060606;
  border-radius: 0.25rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-margin-after: 1rem;
          margin-block-end: 1rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__header {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .p-price__header {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-price__header {
    font-size: 0.875rem;
  }
}

.p-price__caption {
  -webkit-padding-after: 1rem;
          padding-block-end: 1rem;
  border-bottom: 1px solid #b3b3b3;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__caption {
    font-size: 0.75rem;
  }
}

.p-price__card-header {
  text-align: center;
  -webkit-margin-before: 0.75rem;
          margin-block-start: 0.75rem;
  -webkit-margin-after: 0.25rem;
          margin-block-end: 0.25rem;
  -webkit-padding-after: 0.4375rem;
          padding-block-end: 0.4375rem;
  border-bottom: 4px solid #b3b3b3;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-price__card-header {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .p-price__card-header {
    -webkit-margin-before: 0.5625rem;
            margin-block-start: 0.5625rem;
    -webkit-margin-after: 0.1875rem;
            margin-block-end: 0.1875rem;
  }
}

.p-price__card-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-price__body-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-block: 0.9375rem;
  padding-inline: 1.875rem;
  background-color: #fff;
  border-top: 1px solid #b3b3b3;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__body-item {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .p-price__body-item {
    padding-block: 1rem;
  }
}
.p-price__body-item:last-child {
  border-bottom: 1px solid #b3b3b3;
}

.p-price__body-value {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

.p-price__body-value-total {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__body-value-total {
    font-size: 1.25rem;
  }
}

.p-price__body-value-unit {
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__body-value-unit {
    font-size: 0.625rem;
  }
}
.p-price__body-value-unit.-total {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.0714285714;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__body-value-unit.-total {
    font-size: 0.875rem;
  }
}

.p-price__card-caption {
  -webkit-margin-before: 0.5rem;
          margin-block-start: 0.5rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-price__card-caption {
    font-size: 0.75rem;
  }
}

.p-price__main {
  -webkit-padding-before: 8.9375rem;
          padding-block-start: 8.9375rem;
}
@media screen and (max-width: 767px) {
  .p-price__main {
    -webkit-padding-before: 11rem;
            padding-block-start: 11rem;
  }
}

.p-price__main-base {
  width: 100%;
  height: 14rem;
  background-color: #9e3eb1;
  border-radius: 1.25rem;
  border: 2px solid #060606;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-price__main-base {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.4375rem;
    padding-block: 5.6875rem 0.875rem;
    padding-inline: 1.875rem 1.8125rem;
  }
}

.p-price__main-tag {
  position: absolute;
  top: -4.25rem;
  left: 21%;
  width: 8.5rem;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-price__main-tag {
    left: 1.3125rem;
  }
}

.p-price__main-center {
  position: absolute;
  left: 50%;
  bottom: 0rem;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 18.8125rem;
  height: auto;
  aspect-ratio: 301/193;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-price__main-center {
    position: relative;
    left: unset;
    bottom: unset;
    -webkit-transform: unset;
            transform: unset;
  }
}

.p-price__main-right {
  position: absolute;
  bottom: -5.125rem;
  right: 0rem;
  width: 18.75rem;
  height: auto;
  aspect-ratio: 300/286;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-price__main-right {
    position: relative;
    bottom: unset;
    right: unset;
    width: 11.1875rem;
    height: auto;
    aspect-ratio: 179/170;
  }
}

.p-price__main-caption {
  position: absolute;
  top: -8.5625rem;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 13.1875rem;
  height: auto;
  aspect-ratio: 211/157;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-price__main-caption {
    right: 0rem;
    top: -11.25rem;
    left: unset;
    -webkit-transform: unset;
            transform: unset;
  }
}

.js-show .p-price__main-face {
  position: absolute;
  top: -6.25rem;
  right: 10%;
  width: 1.75rem;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
  opacity: 0;
  -webkit-animation: face-opacity 0.5s ease 0s forwards, face-drop 1s cubic-bezier(0.7, 1.7, 0.7, 1) 0.5s forwards, face-bounce 1.2s cubic-bezier(0.5, 1.7, 0.7, 1) 1.5s forwards, face-rolling 10s linear 2.3s infinite alternate;
          animation: face-opacity 0.5s ease 0s forwards, face-drop 1s cubic-bezier(0.7, 1.7, 0.7, 1) 0.5s forwards, face-bounce 1.2s cubic-bezier(0.5, 1.7, 0.7, 1) 1.5s forwards, face-rolling 10s linear 2.3s infinite alternate;
}

@-webkit-keyframes face-opacity {
  to {
    opacity: 1;
  }
}

@keyframes face-opacity {
  to {
    opacity: 1;
  }
}
@-webkit-keyframes face-drop {
  from {
    top: -6.25rem;
  }
  to {
    top: -2.1875rem;
  }
}
@keyframes face-drop {
  from {
    top: -6.25rem;
  }
  to {
    top: -2.1875rem;
  }
}
@-webkit-keyframes face-bounce {
  0% {
    top: -2rem;
  }
  30% {
    top: -3.125rem;
  }
  60% {
    top: -1.875rem;
  }
  100% {
    top: -1.875rem;
  }
}
@keyframes face-bounce {
  0% {
    top: -2rem;
  }
  30% {
    top: -3.125rem;
  }
  60% {
    top: -1.875rem;
  }
  100% {
    top: -1.875rem;
  }
}
@-webkit-keyframes face-rolling {
  0% {
    right: 10%;
    -webkit-transform: rotate(20deg);
            transform: rotate(20deg);
  }
  25% {
    right: 35%;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  50% {
    right: 10%;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  75% {
    right: 35%;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  100% {
    right: 10%;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
}
@keyframes face-rolling {
  0% {
    right: 10%;
    -webkit-transform: rotate(20deg);
            transform: rotate(20deg);
  }
  25% {
    right: 35%;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  50% {
    right: 10%;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  75% {
    right: 35%;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  100% {
    right: 10%;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
}
.p-plan {
  -webkit-padding-before: 11.75rem;
          padding-block-start: 11.75rem;
}
@media screen and (max-width: 767px) {
  .p-plan {
    -webkit-padding-before: 4.5rem;
            padding-block-start: 4.5rem;
  }
}

.p-plan-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3.125rem;
  width: 97%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-plan-wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6.1875rem;
    width: 80%;
  }
}

.p-plan-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
  background-color: #fff;
  border-radius: 1.25rem;
  border: 2px solid #060606;
  padding-block: 5.0625rem;
  padding-inline: 2.6875rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-plan-item {
    padding-block: 5.125rem;
  }
}

.p-plan-header {
  width: 92%;
  height: auto;
  aspect-ratio: 184/78;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-plan-title {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-plan-title {
    font-size: 0.875rem;
  }
}

.p-plan-price {
  width: 100%;
  height: auto;
  aspect-ratio: 200/32;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-plan-tag {
  position: absolute;
  top: -3.5rem;
  left: -1.75rem;
  width: 8.5rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-plan-tag {
    left: -2.375rem;
  }
}

.p-plan-price-icon {
  position: absolute;
  bottom: -2.5rem;
  left: -3.125rem;
  width: 9.0625rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 145/97;
}
.p-plan-price-icon.--dance {
  width: 9.0625rem;
  aspect-ratio: 145/97;
}
.p-plan-price-icon.--theater {
  width: 8.25rem;
  aspect-ratio: 132/100;
  left: unset;
  right: -2.8125rem;
}
.p-plan-price-icon.--student {
  width: 7.5rem;
  aspect-ratio: 1;
  left: unset;
  right: -2.3125rem;
}

.p-price__button {
  -webkit-margin-before: 4.6875rem;
          margin-block-start: 4.6875rem;
}
@media screen and (max-width: 767px) {
  .p-price__button {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
}

.p-voice__wrapper {
  display: grid;
  grid-template-columns: 1fr 26.875rem;
  grid-template-rows: 7.5rem 1fr;
  place-items: center;
  -webkit-column-gap: 1.25rem;
     -moz-column-gap: 1.25rem;
          column-gap: 1.25rem;
  row-gap: 1.5rem;
  grid-template-areas: "head img" "text img";
  padding-block: 0.8125rem 1.125rem;
  padding-inline: 1.375rem;
  background-color: #9e3eb1;
  border-radius: 1.25rem;
  border: 2px solid #060606;
}
@media screen and (max-width: 767px) {
  .p-voice__wrapper {
    grid-template-columns: 1fr;
    grid-template-areas: "head" "text" "img";
    row-gap: 1.25rem;
    padding: 0.8125rem 1.125rem 2.125rem 1.125rem;
  }
}

.p-voice__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  position: relative;
}

.p-voice__icon {
  position: absolute;
  top: -3.8125rem;
  right: -5.6875rem;
  width: 9.375rem;
  height: auto;
  aspect-ratio: 150/120;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-voice__icon {
    top: 0.1875rem;
    right: -0.5rem;
    width: 6.125rem;
    height: auto;
    aspect-ratio: 120/96;
    -o-object-fit: contain;
       object-fit: contain;
    z-index: 1;
  }
}

.p-voice__name-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.3125rem;
  height: 100%;
  -webkit-margin-end: auto;
          margin-inline-end: auto;
}

.p-voice__name-img {
  width: 7.5rem;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-margin-before: auto;
          margin-block-start: auto;
}
@media screen and (max-width: 767px) {
  .p-voice__name-img {
    width: 6.25rem;
    height: auto;
    aspect-ratio: 1;
    -o-object-fit: contain;
       object-fit: contain;
  }
}

.p-voice__name {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #fff;
  -webkit-margin-before: auto;
          margin-block-start: auto;
}
@media screen and (max-width: 767px) {
  .p-voice__name {
    font-size: 0.875rem;
  }
}

.p-voice__text-wrapper {
  grid-area: text;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  justify-self: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
  padding: 1.4375rem;
  background-color: #fff;
  border-radius: 1.25rem;
  border: 1px solid #060606;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .p-voice__text-wrapper {
    -webkit-margin-before: 0rem;
            margin-block-start: 0rem;
    padding: 1.1875rem;
    gap: 1rem;
  }
}

.p-voice__text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-voice__text {
    font-size: 0.875rem;
  }
}

.p-voice__img {
  grid-area: img;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

@media (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .u-pc {
    display: none !important;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.u-font {
  font-family: "BIZ UDPGothic", sans-serif;
}
.u-font__jp {
  font-family: "BIZ UDPGothic", sans-serif;
}
.u-font__en {
  font-family: "BIZ UDPGothic", sans-serif;
}

.u-text__center {
  text-align: center !important;
}
@media screen and (max-width: 767px) {
  .u-text__center--sp {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .u-text__center--pc {
    text-align: center !important;
  }
}

.u-text__left {
  text-align: left !important;
}
@media screen and (max-width: 767px) {
  .u-text__left--sp {
    text-align: left !important;
  }
}
@media (min-width: 768px) {
  .u-text__left--pc {
    text-align: left !important;
  }
}

.u-text__right {
  text-align: right !important;
}
@media screen and (max-width: 767px) {
  .u-text__right--sp {
    text-align: right !important;
  }
}
@media (min-width: 768px) {
  .u-text__right--pc {
    text-align: right !important;
  }
}

.u-text__nowrap {
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .u-text__nowrap--sp {
    white-space: nowrap;
  }
}
@media (min-width: 768px) {
  .u-text__nowrap--pc {
    white-space: nowrap;
  }
}

.u-pointer__none {
  pointer-events: none !important;
}
@media screen and (max-width: 767px) {
  .u-pointer__none--sp {
    pointer-events: none !important;
  }
}
@media (min-width: 768px) {
  .u-pointer__none--pc {
    pointer-events: none !important;
  }
}