@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: #333333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  font-style: normal;
  background: #fff;
}

.c-cta-button {
  left: 50%;
  translate: -50%;
  width: 93%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .c-cta-button: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-header {
  position: fixed;
  top: 0;
  width: 100%;
  max-width: 650px;
  margin-inline: auto;
  z-index: 100;
  background: #fff;
}

.p-header__inner {
  padding: clamp(0.625rem, 0.1136363636rem + 2.1818181818vw, 1rem);
  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;
  position: relative;
  z-index: 102;
  background: inherit;
}

.p-header__logo {
  width: 52.8%;
}

.p-drawer__icon {
  width: 8%;
  height: auto;
  aspect-ratio: 30/12;
  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;
  cursor: pointer;
}

.p-drawer__icon--bar {
  width: 100%;
  height: auto;
  aspect-ratio: 30/1;
  background: #41406A;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
  will-change: transform;
}

.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(1) {
  translate: 0 550%;
  rotate: 30deg;
}
.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(2) {
  display: none;
}
.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(3) {
  translate: 0 -550%;
  rotate: -30deg;
}

.p-drawer {
  position: absolute;
  z-index: 101;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: url(../img/drawer-bg.webp) no-repeat center center/cover;
  overflow-y: scroll;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
}
.p-drawer.js-show {
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 0.5s ease, visibility 0s linear 0s;
  transition: opacity 0.5s ease, visibility 0s linear 0s;
}

.p-drawer__body {
  width: 100%;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  padding-block: 21% 40px;
  padding-inline: 6.4%;
}

.p-drawer__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.p-drawer__list li {
  border-bottom: 1px solid #D1D5DC;
}
.p-drawer__list li a {
  display: block;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(1rem, -0.0227272727rem + 4.3636363636vw, 1.75rem);
  color: #41406A;
  padding-block: 7.4%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .p-drawer__list li a:hover {
    opacity: 0.7;
  }
}

.p-drawer__button-wrap {
  -webkit-margin-before: 10%;
          margin-block-start: 10%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
}

.p-drawer__button {
  display: block;
  width: 93%;
  margin-inline: auto;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .p-drawer__button:hover {
    opacity: 0.7;
  }
}

.p-drawer__info {
  -webkit-margin-before: 6%;
          margin-block-start: 6%;
  text-align: center;
}
.p-drawer__info img {
  width: 87.2%;
}

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

.p-fv__button {
  position: absolute;
  bottom: 0.5%;
  left: 50%;
  translate: -50%;
  width: 93%;
}

/* ========================================
    about
========================================= */
.p-about {
  position: relative;
}

.p-about__movie1 {
  width: 87.2%;
  height: auto;
  aspect-ratio: 327/184;
  position: absolute;
  left: 50%;
  translate: -50%;
  bottom: 38%;
}
.p-about__movie1 video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}

.p-about__movie2 {
  width: 87.2%;
  height: auto;
  aspect-ratio: 327/184;
  position: absolute;
  left: 50%;
  translate: -50%;
  bottom: 7.7%;
}
.p-about__movie2 video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}

.p-about__button {
  position: absolute;
  bottom: 1%;
}

/* ========================================
    cta-1
========================================= */
.p-cta1 {
  position: relative;
}

.p-cta1__button {
  position: absolute;
  bottom: 10%;
  width: 88%;
}

/* ========================================
    gallery
========================================= */
.p-gallery {
  container-type: inline-size;
  padding-block: 17%;
  background: url(../img/gallery-bg.webp) no-repeat center center/cover;
}

.p-gallery__title {
  text-align: center;
}
.p-gallery__title img {
  width: 60.5%;
}

.p-gallery__slider-contents {
  -webkit-margin-before: 8.5cqw;
          margin-block-start: 8.5cqw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1cqw;
}

.p-gallery__slider-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
}

.p-gallery__slider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1cqw;
  -webkit-padding-start: 1cqw;
          padding-inline-start: 1cqw;
}
.p-gallery__slider--left {
  -webkit-animation: scroll-left 20s infinite linear 0.5s both;
          animation: scroll-left 20s infinite linear 0.5s both;
}
.p-gallery__slider--right {
  -webkit-animation: scroll-right 20s infinite linear 0.5s both;
          animation: scroll-right 20s infinite linear 0.5s both;
}

@-webkit-keyframes scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}

@keyframes scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@-webkit-keyframes scroll-right {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes scroll-right {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
.p-gallery__slide {
  width: 37.33cqw;
}

/* ========================================
    message
========================================= */
.p-message {
  position: relative;
}

.p-message__iframe-wrap {
  position: absolute;
  width: 87.2%;
  height: auto;
  aspect-ratio: 327/212;
  left: 50%;
  translate: -50%;
  bottom: 14%;
}
.p-message__iframe-wrap iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ========================================
    cta-2
========================================= */
.p-cta2 {
  position: relative;
}

.p-cta2__button {
  position: absolute;
  bottom: 6%;
  width: 88%;
}

/* ========================================
    case
========================================= */
.p-case {
  background-color: #F1EFFF;
  padding-block: 17%;
  container-type: inline-size;
}

.p-case__title {
  text-align: center;
}
.p-case__title img {
  width: 91%;
}

.p-case__slider {
  -webkit-margin-before: 4%;
          margin-block-start: 4%;
}

.p-case__note {
  -webkit-margin-before: 11%;
          margin-block-start: 11%;
  text-align: center;
}
.p-case__note img {
  width: 52%;
}

.p-case__button {
  -webkit-margin-before: 9%;
          margin-block-start: 9%;
  display: block;
  translate: 0;
  margin-inline: auto;
}

/* caseスライダー */
.p-case__slide-items {
  /* ==================
      ボタンのスタイル
    ================== */
  /* 矢印のクリック範囲など */
}
.p-case__slide-items .button {
  background-color: transparent; /* ボタンの背景を透明にする */
  width: 10.6%;
  height: auto;
  aspect-ratio: 1;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.p-case__slide-items .button.splide__arrow {
  top: 44%;
  opacity: 1;
}
.p-case__slide-items .button.splide__arrow--prev {
  left: 0.6em;
}
.p-case__slide-items .button.splide__arrow--next {
  right: 0.6em;
}
.p-case__slide-items {
  /* 矢印共通のスタイル */
}
.p-case__slide-items .button::before {
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 0;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: auto;
  position: absolute;
  -webkit-box-shadow: 0 6px 10px rgba(65, 64, 106, 0.2);
          box-shadow: 0 6px 10px rgba(65, 64, 106, 0.2);
  border-radius: 50%;
}
.p-case__slide-items .prev::before {
  background-image: url(../img/case-slider-prev.webp);
}
.p-case__slide-items .next::before {
  background-image: url(../img/case-slider-next.webp);
}
.p-case__slide-items {
  /* ==================
      ページネーション
    ================== */
}
.p-case__slide-items .splide__pagination {
  bottom: -1.5em;
}
.p-case__slide-items .splide__pagination__page {
  background: #D1D5DC;
  opacity: 1;
  width: 2.66cqw;
  height: auto;
  aspect-ratio: 1;
  margin: 3.2cqw;
}
.p-case__slide-items .splide__pagination__page.is-active {
  background: #6743B3;
  -webkit-transform: scale(1);
          transform: scale(1);
}

/* ========================================
    cta-3
========================================= */
.p-cta3 {
  position: relative;
}

.p-cta3__button {
  position: absolute;
  bottom: 6%;
  width: 88%;
}

/* ========================================
    price
========================================= */
.p-price {
  position: relative;
}

.p-price__button {
  position: absolute;
  bottom: 1.2%;
}

/* ========================================
    slideSection
========================================= */
.p-slideSection {
  container-type: inline-size;
}

.p-slideSection__slider-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
}

.p-slideSection__slider {
  -webkit-animation: slider-scroll-left 15s infinite linear 0.5s both;
          animation: slider-scroll-left 15s infinite linear 0.5s both;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@-webkit-keyframes slider-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}

@keyframes slider-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
.p-slideSection__slide {
  width: 42.66cqw;
}

/* ========================================
    step
========================================= */
.p-step {
  background: #F6FAFE;
  -webkit-padding-before: 17%;
          padding-block-start: 17%;
  container-type: inline-size;
}

.p-step__conclusion {
  -webkit-margin-before: 17%;
          margin-block-start: 17%;
  width: 93.6%;
}

.p-step__inner {
  -webkit-margin-before: 11%;
          margin-block-start: 11%;
  -webkit-padding-start: 10%;
          padding-inline-start: 10%;
}

/* stepスライダー */
.p-step__slide-items {
  /* ==================
      ページネーション
  ================== */
}
.p-step__slide-items .splide__pagination {
  bottom: -13%;
  -webkit-margin-start: -10%;
          margin-inline-start: -10%;
}
.p-step__slide-items .splide__pagination__page {
  background: #D1D5DC;
  opacity: 1;
  width: 2.66cqw;
  height: auto;
  aspect-ratio: 1;
  margin: 3.2cqw;
}
.p-step__slide-items .splide__pagination__page.is-active {
  background: #6743B3;
  -webkit-transform: scale(1);
          transform: scale(1);
}

/* ========================================
    faq
========================================= */
.p-faq {
  padding-block: 17%;
}

.p-faq__inner {
  padding-inline: 4.2%;
}

.p-faq__title {
  width: 100%;
}

.p-faq__items {
  -webkit-margin-before: 9.3%;
          margin-block-start: 9.3%;
}

.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: 16px;
}

.c-acordion__item {
  background: #fff;
  border: 1px solid #D1D5DC;
  border-radius: 10px;
}
.c-acordion__item.js-open .c-acordion__bar::after {
  rotate: 90deg;
}
.c-acordion__item.js-open .c-acordion__content-wrap {
  grid-template-rows: 1fr;
  -webkit-padding-after: 4.7%;
          padding-block-end: 4.7%;
}
.c-acordion__item.js-open .c-acordion__content {
  padding-block: 3.8%;
}

.c-acordion__title-wrap {
  padding: 4.66%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3.85%;
  cursor: pointer;
}

.c-acordion__icon {
  width: 12.24%;
}
.c-acordion__icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.c-acordion__title {
  font-size: clamp(1rem, -0.1931818182rem + 5.0909090909vw, 1.875rem);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #41406A;
  font-weight: 500;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.c-acordion__bar {
  width: 5%;
  aspect-ratio: 1;
  background: #6743B3;
  border-radius: 50%;
  position: relative;
}
.c-acordion__bar::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 50%;
  height: 1.3px;
  background: #fff;
}
.c-acordion__bar::after {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 1.3px;
  height: 50%;
  background: #fff;
  -webkit-transition: rotate 0.3s ease;
  transition: rotate 0.3s ease;
}

.c-acordion__content-wrap {
  display: grid;
  grid-template-rows: 0fr;
  padding-inline: 4.66%;
  padding-block: 0;
  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.0227272727rem + 3.6363636364vw, 1.5rem);
  line-height: 2;
  letter-spacing: 0.08em;
  padding-inline: 5.14%;
  color: #41406A;
  background-color: #F6FAFE;
  border-radius: 4px;
}

/* ========================================
    cta-4
========================================= */
.p-cta4 {
  position: relative;
}

.p-cta4__button {
  position: absolute;
  width: 88%;
}
.p-cta4__button--web {
  bottom: 32%;
}
.p-cta4__button--tel {
  bottom: 23.7%;
}

/* ========================================
    footer
========================================= */
.footer {
  background: #41406A;
  padding: 5.5% 10px;
  text-align: center;
}

.footer__text {
  color: #fff;
  font-size: clamp(0.75rem, 0.1534090909rem + 2.5454545455vw, 1.1875rem);
  letter-spacing: 0.02em;
}