@charset "UTF-8";
* {
  -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: 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, aside, figure, figcaption {
  display: block;
}

img {
  max-width: 100%;
  height: auto;
  border: none;
  vertical-align: bottom;
  image-rendering: -webkit-optimize-contrast;
}

table {
  border-collapse: collapse;
}

a {
  text-decoration: none;
  color: inherit;
}

@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}
button {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
/* ---------- 共通設定 ---------- */
body {
  color: #4C4C4C;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  font-style: normal;
  background: #fff;
}

.c-cta-button {
  left: 50%;
  translate: -50%;
  width: 87%;
}

.c-cta-button__wrap {
  position: relative;
}

.c-cta-button__text {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -60%;
  white-space: nowrap;
  background-color: #FCFF3F;
  border-radius: 100px;
  -webkit-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.32);
          box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.32);
  z-index: 1;
}
.c-cta-button__text--green {
  color: #20841A;
}
.c-cta-button__text--red {
  color: #C24444;
}

.c-cta-button__body {
  display: block;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
  z-index: 0;
}
@media (any-hover: hover) {
  .c-cta-button__body:hover {
    opacity: 0.7;
  }
}

/* ========================================
    メインコンテナー
========================================= */
.main-container {
  width: 100%;
  max-width: 650px;
  min-height: 100svh;
  margin-inline: auto;
  background-color: #fff;
  -webkit-box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.25);
}

/* ========================================
    ファーストビュー
========================================= */
.p-fv {
  position: relative;
}

.p-fv__button {
  position: absolute;
  bottom: 0.2%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .p-fv__button:hover {
    opacity: 0.7;
  }
}

/* ========================================
    症例スライダー
========================================= */
.p-section8 {
  background: url(../img/section8-bg.webp) no-repeat top center/cover;
  -webkit-padding-after: 11%;
          padding-block-end: 11%;
}

.p-slider__title {
  width: 77%;
  margin-inline: auto;
  -webkit-padding-start: 2%;
          padding-inline-start: 2%;
  position: relative;
}
.p-slider__title::after {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  width: 86.7%;
  aspect-ratio: 788/658;
  background: url(../img/section8-title-kirakira.webp) no-repeat center center/contain;
  mix-blend-mode: screen;
}

.p-slider-group:not(:first-child) {
  -webkit-margin-before: 9%;
          margin-block-start: 9%;
}

.p-slider-group__title {
  padding-inline: 4.5%;
}

.p-slider__slide-items {
  -webkit-margin-before: 3.5%;
          margin-block-start: 3.5%;
  padding-inline: 7.2%;
}
.p-slider__slide-items .splide__track {
  -webkit-padding-before: 9.5%;
          padding-block-start: 9.5%;
}
.p-slider__slide-items {
  /* ==================
      ボタンのスタイル
  ================== */
  /* 矢印のクリック範囲など */
}
.p-slider__slide-items .button {
  background-color: transparent; /* ボタンの背景を透明にする */
  height: 24%;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  width: 6.5%;
}
.p-slider__slide-items .button.splide__arrow {
  top: 76%;
  opacity: 1;
}
.p-slider__slide-items {
  /* 矢印共通のスタイル */
}
.p-slider__slide-items .button::before {
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 0;
  content: "";
  height: 100%;
  left: 0;
  margin: auto;
  position: absolute;
  top: 0;
  width: 100%;
}
.p-slider__slide-items .prev::before {
  background-image: url(../img/slider-arrow-left.svg);
}
.p-slider__slide-items .next::before {
  background-image: url(../img/slider-arrow-right.svg);
}

.p-slider__slide-item {
  position: relative;
}
.p-slider__slide-item::after {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  translate: -50% -50%;
  width: 19%;
  aspect-ratio: 1;
}
.p-slider__slide-item[aria-label="1 of 2"]::after {
  background: url(../img/slider-label-01.svg) no-repeat center center/contain;
}
.p-slider__slide-item[aria-label="2 of 2"]::after {
  background: url(../img/slider-label-02.svg) no-repeat center center/contain;
}
.p-slider__slide-item[aria-label="1 of 3"]::after {
  background: url(../img/slider-label-01.svg) no-repeat center center/contain;
}
.p-slider__slide-item[aria-label="2 of 3"]::after {
  background: url(../img/slider-label-02.svg) no-repeat center center/contain;
}
.p-slider__slide-item[aria-label="3 of 3"]::after {
  background: url(../img/slider-label-03.svg) no-repeat center center/contain;
}

.p-section8__slider-contents-text {
  -webkit-margin-before: 6.5%;
          margin-block-start: 6.5%;
  padding-inline: 4%;
}

/* ========================================
    よくある質問セクション
========================================= */
.p-faq {
  background: #ece5ed;
  container-type: inline-size;
}

.p-faq__inner {
  padding-block: 9.23cqw 12.62cqw;
  padding-inline: 4.15cqw;
}

.p-faq__title {
  width: 69%;
  margin-inline: auto;
  -webkit-padding-start: 2%;
          padding-inline-start: 2%;
}

.p-faq__items {
  -webkit-margin-before: 3.69cqw;
          margin-block-start: 3.69cqw;
}

.c-acordion {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 18px;
}

.c-acordion__item {
  background: #fff;
}
.c-acordion__item.js-open .c-acordion__bar::after {
  rotate: 90deg;
}
.c-acordion__item.js-open .c-acordion__content-wrap {
  grid-template-rows: 1fr;
  padding-block: 2.77cqw 3.21cqw;
  border-top-color: #c2c2c2;
}

.c-acordion__title-wrap {
  padding: 2.1cqw 2.9cqw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 7px;
  cursor: pointer;
}

.c-acordion__icon {
  width: 10.8%;
}

.c-acordion__title {
  font-size: clamp(1rem, 0.1477272727rem + 3.6363636364vw, 1.625rem);
  line-height: 1.5;
  letter-spacing: 0.05em;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.c-acordion__bar {
  -webkit-margin-start: 3px;
          margin-inline-start: 3px;
  width: 5%;
  aspect-ratio: 1;
  position: relative;
}
.c-acordion__bar::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  translate: 0 -50%;
  width: 100%;
  height: 2px;
  background: #4C4C4C;
}
.c-acordion__bar::after {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  translate: -50%;
  width: 2px;
  height: 100%;
  background: #4C4C4C;
  -webkit-transition: rotate 0.3s ease;
  transition: rotate 0.3s ease;
}

.c-acordion__content-wrap {
  display: grid;
  grid-template-rows: 0fr;
  margin-inline: 2.9cqw;
  padding-block: 0;
  border-top: 1px solid transparent;
  overflow: hidden;
  -webkit-transition: grid-template-rows 0.3s ease, padding-block 0.3s ease, border-color 0.3s ease;
  transition: grid-template-rows 0.3s ease, padding-block 0.3s ease, border-color 0.3s ease;
  transition: grid-template-rows 0.3s ease, padding-block 0.3s ease, border-color 0.3s ease, -ms-grid-rows 0.3s ease;
}

.c-acordion__content {
  overflow: hidden;
  min-height: 0;
  font-size: clamp(0.875rem, 0.3039772727rem + 2.4363636364vw, 1.29375rem);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-inline: 2.1cqw;
}

/* ========================================
    CTAボタン・動画の調整
========================================= */
.p-section2 {
  position: relative;
}

.p-section2__button {
  position: absolute;
  bottom: 11%;
}

.p-section2__button-text {
  padding: 1.4% 6%;
  font-size: clamp(0.875rem, -0.1477272727rem + 4.3636363636vw, 1.625rem);
  letter-spacing: 0.06em;
}

.p-section5 {
  position: relative;
}

.p-section5__button {
  position: absolute;
  bottom: 10%;
}

.p-section5__button-text {
  padding: 1.2% 2.9% 1.7%;
  font-size: clamp(0.625rem, -0.0416666667rem + 3.3333333333vw, 1.3125rem);
  letter-spacing: 0.03em;
}

.p-section7 {
  position: relative;
}

.p-section7__button {
  position: absolute;
  bottom: 11%;
}

.p-section9 {
  position: relative;
}

.p-section9__button {
  position: absolute;
  bottom: 20%;
}

.p-section9__button-text {
  padding: 1.5% 27% 2%;
  font-size: clamp(1rem, 0.5738636364rem + 1.8181818182vw, 1.3125rem);
  letter-spacing: 0.06em;
}
.p-section9__button-text--big {
  font-size: clamp(1.25rem, 0.5681818182rem + 2.9090909091vw, 1.75rem);
}

.p-section10 {
  position: relative;
}

.p-section10__movie {
  position: absolute;
  top: 36%;
  left: 50%;
  translate: -50%;
  width: 86%;
}

.p-section11 {
  position: relative;
}

.p-section11__movie-wrap {
  overflow: hidden;
  width: 37.6%;
  height: auto;
  aspect-ratio: 452/372;
  position: absolute;
  left: 6.6%;
  bottom: 17%;
}
.p-section11__movie-wrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-section18 {
  position: relative;
}

.p-section18__button {
  position: absolute;
  bottom: 10.6%;
}

.p-section18__button-text {
  padding: 1.4% 6%;
  font-size: clamp(0.875rem, -0.1477272727rem + 4.3636363636vw, 1.625rem);
  letter-spacing: 0.06em;
}

/* ========================================
    追従ボタン
========================================= */
.p-follow-button {
  position: fixed;
  bottom: 0;
  left: 50%;
  translate: -50%;
  display: block;
  width: 84%;
  max-width: 550px;
  aspect-ratio: 1014/241;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.p-follow-button.js-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
@media (any-hover: hover) {
  .p-follow-button:hover {
    opacity: 0.7;
  }
}
/* GIF→MP4差し替えに伴うvideo要素のスタイル(imgルールと同等) */
video {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.p-section11__movie-wrap video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
