/*=============================================
 * Reset CSS
 *=============================================*/
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* HTML全体のベースサイズを10pxに設定（62.5%） */
html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

/* 見出しのリセット */
h1, h2, h3, h4 {
  font-weight: normal;
  font-size: inherit;
}

/* リストのリセット */
ul, ol {
  list-style: none;
}

/* リンクのリセット */
a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

/* 画像のリセット */
img {
  max-width: 100%;
  height: auto;
  border: none;
  vertical-align: bottom;
}

/* フォーム要素のリセット */
input, button, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  outline: none;
}

/* テーブルのリセット */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* その他の要素のリセット */
a, article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, iframe {
  display: block;
}

iframe {
  width: 100%;
  height: 100%;
}

/* 選択時の背景色 */
::selection {
  background-color: #b3d4fc;
  color: var(--font-color);
  text-shadow: none;
}


/*=============================================
 * ベーススタイル
 *=============================================*/
 :root {
  /* PC 1920px基準 */
  --font-color: #232323;
  --font-weight-bold: 700;
  --font-size_pc14: 14px;
  --font-size_pc16: 16px;
  --font-size_pc18: 18px;
  --font-size_pc20: 20px;
  --font-size_pc30: 30px;
  --letter-spacing_01: 0.1em;
  --font-ja: "Zen Kaku Gothic Antique", serif;
  --font-en: "Montserrat", serif;
  --border-color: #9F9F9F;
  --border-solid: 1px solid var(--border-color);
  /* SP 375px基準 */
  --font-size_sp14: 3.733333333333334vw;
  --font-size_sp18: 4.8vw;
  --font-size_sp30: 8vw;
}

body {
  color: var(--font-color);
  font-weight: 500;
  font-family: var(--font-ja);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* -Google Fonts- メイン */
.zenKakuGo-anti {
  font-family: var(--font-ja) !important;
  font-style: normal;
}

/* -Google Fonts- サブ */
.montse {
  font-family: var(--font-en);
  font-optical-sizing: auto;
  font-style: normal;
}

.pc {
  display: block;
}

.sp-tablet {
  display: none;
}

@media screen and (min-width: 768px) {
  .sp {
    display: none;
  }
}

.bold {
  font-weight: var(--font-weight-bold);
}

.flex {
  display: flex;
}

.title01 {
  flex-shrink: 0;
  font-weight: var(--font-weight-bold);
  font-size: 1.7708333333333333vw;
  line-height: 1.235294117647059;
}

.title02 {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc18);
  line-height: 1;
  font-family: var(--font-en);
}

.title03 {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc30);
  line-height: 1;
}

.title04 {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc18);
  line-height: 1;
  letter-spacing: var(--letter-spacing_01);
}

.c-text {
  font-size: var(--font-size_pc14);
  line-height: 2.142857142857143;
}

.external-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  position: relative;
  background: linear-gradient(to right, var(--font-color) 0%, var(--font-color) 100%);
  background-size: 100% 1px;
  background-position: 28px bottom;
  background-repeat: no-repeat;
  transition: all 0.3s ease-in-out;
}

.external-link:hover {
  background-size: 0% 1px;
}

.c-text .external-link {
  font-size: var(--font-size_pc16);
}

.external-link::before {
  display: inline-block;
  position: relative;
  top: 0.2em;
  width: 21px;
  height: 21px;
  background: url(../img/external-icon.svg) no-repeat center center / cover;
  content: '';
}


/* ---  ローディングアニメーション  --- */
.loading {
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 100dvh;
  background: #fff;
}

.loading-text {
  gap: 0.5rem;
  position: relative;
}

.loading-text-words {
  opacity: 0;
  transform: translateY(20px);
  color: var(--font-color);
  font-weight: normal;
  font-size: var(--font-size_pc20);
  font-family: var(--font-en);
}

.content {
  opacity: 0;
}

/* 初回以外のアクセス時用 */
.no-loading .loading {
  display: none;
}

.no-loading .content {
  opacity: 1;
}


/* ---  スクロールアニメーション  --- */
.js-inview {
  position: relative;
  overflow: hidden;
}

.js-inview::after {
  position: absolute;
  top: 0;
  left: 0;
  transform: scaleY(1);
  transform-origin: top;
  width: 100%;
  height: 100%;
  background-color: #fff;
  content: '';
  transition: transform 1.1s ease-in-out;
}

.js-inview.is-active::after {
  transform: scaleY(0);
  transform-origin: bottom;
}

.js-inview.bottom-to-top::after {
  transition: transform 0.8s ease-in-out;
  transform-origin: bottom;
}

.js-inview.is-active.bottom-to-top::after {
  transform-origin: top;
}

.js-inview.left-to-right::after {
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 1.5s ease-in-out;
}

.js-inview.is-active.left-to-right::after {
  transform: scaleX(0);
  transform-origin: right;
}

.--delay01::after {
  transition-delay: 0.1s !important;
}

.--delay02::after {
  transition-delay: 0.2s !important;
}

.--delay03::after {
  transition-delay: 0.3s !important;
}

.--delay04::after {
  transition-delay: 0.4s !important;
}

.--delay08::after {
  transition-delay: 0.8s !important;
}


/* ---  ヘッダー  --- */
header {
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  z-index: 100;
  width: calc(100% - 93px);
  margin-right: 57px;
  margin-left: 36px;
  padding: 36.5px 0;
  color: #fff;
  mix-blend-mode: difference;
  line-height: 1;
}

header nav {
  align-items: center;
  gap: 7.395833333333333vw;
  width: 100%;
  font-size: var(--font-size_pc18);
}

nav ul {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 2.083333333333333vw;
  width: 100%;
}

nav ul li {
  flex-shrink: 0;
}

.nav-contact {
  margin-left: 5.3125vw;
}

.nav-contact .slash {
  margin: 0 0.8333333333333334vw;
}

.nav-contact span.zenKakuGo-anti {
  letter-spacing: var(--letter-spacing_01);
}

nav a span {
  display: inline-block;
  transition: .5s ease-in-out;
}

nav a:hover span {
  -webkit-transform: rotateX(360deg);
  transform: rotateX(360deg);
}

nav a:hover span:nth-of-type(1) {
  -webkit-transition-delay: .02s;
  transition-delay: .02s;
}

nav a:hover span:nth-of-type(2) {
  -webkit-transition-delay: .04s;
  transition-delay: .04s;
}

nav a:hover span:nth-of-type(3) {
  -webkit-transition-delay: .06s;
  transition-delay: .06s;
}

nav a:hover span:nth-of-type(4) {
  -webkit-transition-delay: .08s;
  transition-delay: .08s;
}

nav a:hover span:nth-of-type(5) {
  -webkit-transition-delay: .10s;
  transition-delay: .10s;
}

nav a:hover span:nth-of-type(6) {
  -webkit-transition-delay: .12s;
  transition-delay: .12s;
}

nav a:hover span:nth-of-type(7) {
  -webkit-transition-delay: .14s;
  transition-delay: .14s;
}

nav a:hover span:nth-of-type(8) {
  -webkit-transition-delay: .16s;
  transition-delay: .16s;
}

nav a:hover span:nth-of-type(9) {
  -webkit-transition-delay: .18s;
  transition-delay: .18s;
}


/* ---  キービジュアル  --- */
#kv {
  height: 100vh;
}

/* スライダー */
.swiper-kv {
  position: relative;
  width: 100%;
  height: 100vh;
}

.swiper-kv .swiper-wrapper {
  height: 90vh;
}

.swiper-kv .swiper-slide {
  transform-origin: left center;
  overflow: hidden;
}

.kv__slider-parallax {
  width: 100%;
  height: 100%;
  overflow: hidden;
  will-change: transform;
}

.kv__slider-parallax img {
  transform: scale(1.1);
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
}

.swiper-slide-active .kv__slider-parallax img {
  transform: scale(1);
  transition: transform 1.5s ease-out;
}

.kv__pagination {
  justify-content: space-between;
  align-items: center;
  height: 10vh;
  margin: 0 1.6927083333333333vw;
  background-color: #fff;
  font-weight: 400;
  font-size: var(--font-size_pc14);
  line-height: 1.285714285714286;
  letter-spacing: 0.05em;
}

.kv__info-text {
  align-items: center;
  gap: 1.3020833333333335vw;
  color: var(--font-color);
}

.kv__info-text::before {
  display: block;
  width: 0.9895833333333333vw;
  aspect-ratio: 25/22;
  background: url(../img/kv__info-icon.svg) no-repeat center center / cover;
  content: '';
  animation: sizing 2.5s ease-out infinite;
}

@keyframes sizing {
  0%, 30%, 70%, 100% {
    transform: scale(1.15);
  }
  50%, 85% {
    transform: scale(0.85);
  }
}

.kv__pagination-inner {
  align-items: center;
  gap: 1.3541666666666667vw;/* 30px/1920 */
}

.kv__page-number-wrap {
  gap: 1.5625vw;
}

.kv__page-number {
  opacity: 0.7;
  transition: opacity 0.3s;
}

.kv__page-number.is-active {
  opacity: 1;
}

.kv__progress {
  width: 3.177083333333333vw;
  height: 1px;
  position: relative;
  margin-left: 0.7291666666666666vw;
  overflow: hidden;
  background-color: rgba(35, 35, 35, 0.2);
}

.kv__progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateZ(0);
  height: 100%;
  width: 0;
  background-color: #000;
  will-change: width;
}

.kv__next {
  font-size: var(--font-size_pc14);
  cursor: pointer;
  transition: opacity 0.3s;
}

.kv__next:hover {
  opacity: 0.7;
}


/* ---  kv以下 コンテンツ  --- */
.content article {
  overflow: hidden;
  padding: 7.291666666666667vw 7.187499999999999vw 0;
  background-color: #fff;
}

/* ---  見出しエリア  --- */
.heading {
  text-align: center;
}

.heading .heading-title {
  margin-bottom: 0.9895833333333333vw;/* 19px/1920 */
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc20);
  line-height: 2;
  letter-spacing: var(--letter-spacing_01);
}

.heading .heading-text {
  font-size: var(--font-size_pc16);
  line-height: 1.875;
}


/* ページ内リンク用可変id */
#about {
  margin-top: 11.40625vw;/* 219px/1920 */
}

/* ---  セクションパターン01 説明文+画像(小)+画像(大)  --- */
.sec-pattern01 {
  gap: 2.96875vw;
}

.sec-pattern01 .title04 {
  margin: 4.635416666666667vw 0 4.479166666666667vw;/* 89px/1920 0 86px/1920 */
  line-height: 2.444444444444444;
}

.sec-pattern01 .text-wrap {
  width: 25.989583333333332vw;
}

.sec-pattern01 .img-wrap {
  gap: 2.96875vw;
}

.img-wrap .img-sm {
  width: 19.114583333333332vw;
}

.img-wrap .img-lg {
  width: 34.583333333333336vw;
}


/* ページ内リンク用 可変id */
#feature {
  margin-top: 9.270833333333334vw;/* 178px/1920 */
}

/* ---  セクションパターン02 見出し+線+説明文  --- */
.sec-pattern02 {
  gap: 2.421875vw;
}

.sec-pattern02 .title02 {
  align-self: flex-start;
  margin-top: 0.3385416666666667vw;
}

.line-right {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.265625vw;
}

.line-right::after {
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--border-color);
  content: '';
}

.sec-pattern02 .line-right::after{
  width: 19.84375vw;
}


/* ページ内リンク用 可変id */
#teacher {
  margin-top: 10vw;
}

/* ---  セクションパターン03 画像(大)+説明文  --- */
.sec-pattern03 {
  margin: 0 8.411458333333334vw;
}

.sec-pattern03 .title02 {
  margin-bottom: 1.3541666666666667vw;
}

.sec-pattern03 .flex {
  gap: 2.5vw;
}

.sec-pattern03 .img-lg {
  flex-shrink: 0;
  width: 40vw;
}

.sec-pattern03 .img-lg.js-inview::after {
  transition-duration: 0.7s;
}

.sec-pattern03 .desc {
  width: 26.2vw;
}

.sec-pattern03 .desc .title04 {
  margin-bottom: 1.8489583333333333vw;/* 35.5px/1920 */
  line-height: 1.5;
}


/* ページ内リンク用 可変id */
#lesson {
  margin-top: 11.25vw;/* 216px/1920 */
}


/* ページ内リンク用 可変id */
#instruction {
  margin-top: 6.119791666666666vw;/* 117.5px/1920 */
}

/* ---  アコーディオン(横並び)セクション  --- */
.sec-acc .title04 {
  margin-bottom: 1.8489583333333333vw;/* 35.5px/1920 */
}

.sec-acc .acc-list {
  align-items: flex-start;
  gap: 3.75vw;
}

.sec-acc .acc-item {
  width: 26.041666666666668vw;
  padding: 2.9166666666666665vw 0 3.28125vw;/* 56px/1920 0 63px/1920 */
  border-top: var(--border-solid);
  border-bottom: var(--border-solid);
}

.acc-header {
  display: flex;
  align-items: center;
  gap: 0.78125vw;
  cursor: pointer;
}

.acc-header h4 {
  font-weight: var(--font-weight-bold);
  font-size: 24px;
  line-height: 1.25;
  letter-spacing: var(--letter-spacing_01);
}

/* ＋アイコン */
.acc-icon {
  flex-shrink: 0;
  position: relative;
  top: 0.078125vw;
  width: 1.09375vw;
  height: 1.09375vw;
  background-color: var(--font-color);
}

.acc-icon::before,
.acc-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  content: '';
  transition: all 0.3s ease-in-out;
}

.acc-icon::before {
  width: 38%;
  height: 7.14%;
}

.acc-icon::after {
  width: 7.14%;
  height: 38%;
}

/* アクティブ時の縦線 */
.acc-item.active .acc-icon::after {
  opacity: 0;
}

.acc-content {
  visibility: hidden;
  opacity: 0;
  max-height: 0;
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.acc-item.active .acc-content {
  visibility: visible;
  opacity: 1;
  max-height: 100%;
  margin-top: 0.85vw;
}

.acc-content .c-text {
  line-height: 1.714285714285714;
}


/* ページ内リンク用 可変id */
#grid-area {
  margin-top: 5.5vw;
}

#price {
  margin-top: 10vw;
}

@media screen and (max-width: 768px) {
  #price {
    margin-top: 40vw;
  }
}

/* ---  グリッドレイアウトセクション  --- */
.list-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 3.75vw;
  row-gap: 2.890625vw;
}

.list-grid+.list-grid {
  margin-top: 2.890625vw;
}

.list-grid.list-grid-4 {
  grid-template-columns: repeat(4, 1fr);
  column-gap: 3.3854166666666665vw;
}

.grid-item {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 11.458333333333332vw;
  border-right: var(--border-solid);
  border-left: var(--border-solid);
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.list-grid-4 .grid-item {
  height: 7.708333333333334vw;
}

.grid-item-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  margin: 0 0.18vw;
  padding: 0 2.125vw;
  border-right: var(--border-solid);
  border-left: var(--border-solid);
  text-align: center;
}

.grid-item .title03 {
  line-height: 1.866666666666667;
  letter-spacing: var(--letter-spacing_01);
}

.grid-item .title04 {
  margin-bottom: 1vw;
  line-height: 1.25;
}

.list-grid-4 .grid-item .title04 {
  margin-bottom: 0.4vw;
}

/* ホバーエフェクト */
.grid-item:hover {
  background-color: var(--font-color);
  color: #fff;
}

.grid-item:hover .grid-item-inner {
  height: 94%;
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
}

.grid-item p {
  font-size: var(--font-size_pc14);
  line-height: 1.714285714285714;
  transition: opacity 0.3s ease-in-out;
}

/* 通常表示のテキスト */
.grid-item .default-text {
  display: block;
  opacity: 1;
}

/* ホバー時に表示するテキスト */
.grid-item .hover-text {
  display: none;
  opacity: 0;
}

.grid-item:hover .default-text {
  display: none;
  opacity: 0;
}

.grid-item:hover .hover-text {
  display: block;
  opacity: 1;
  text-align: left;
}

.list-grid-4 .grid-item:hover .hover-text {
  font-size: 13px;
}


/* ページ内リンク用 可変id */
#tab-area {
  margin-top: 6vw;
}

/* ---  タブセクション  --- */
.divide-line {
  display: flex;
  gap: 5.208333333333334vw;
}

.divide-line>*:first-child {
  width: 17.65625vw;
}

.divide-line>*:nth-child(n+2) {
  position: relative;
}

.divide-line>*:nth-child(n+2)::before {
  position: absolute;
  top: 50%;
  left: -5.208333333333334vw;
  transform: translateY(-50%);
  width: 1px;
  height: 100%;
  background-color: var(--border-color);
  content: '';
}

/* 高さを合わせる */
.tab-buttons {
  flex-direction: column;
  align-items: flex-start;
  row-gap: 5.35vw;
  position: relative;
  top: 0.1vw;/* 高さを合わせる */
  min-height: calc(5.35vw * 2 + 34px * 3);
}

.tab-btn {
  position: relative;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.tab-btn::after {
  position: absolute;
  bottom: -0.5em;
  left: 0;
  width: 1em;
  height: 1px;
  background-color: var(--font-color);
  content: '';
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.tab-btn.active::after {
  width: 100%;
}

.tab-content {
  display: block;
  opacity: 0;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  transition: all 0.5s ease;
}

.tab-content.active {
  opacity: 1;
  visibility: visible;
  height: auto;
  overflow: visible;
}

/* アニメーション用のクラス */
.tab-content.fade-out {
  opacity: 0;
  visibility: hidden;
}

.tab-content.fade-in {
  opacity: 1;
  visibility: visible;
}

.tab-content>* {
  margin-top: 1.5vw;
}

.tab-content>*:first-child {
  margin-top: 0;
}

.tab-content>ul {
  margin-top: 1.43vw;
}

.tab-content ul.flex {
  align-items: center;
  gap: 1.6145833333333335vw;
  margin-top: 1vw;
}

.tab-content h4 {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc16);
  line-height: 1.4;
  letter-spacing: var(--letter-spacing_01);
  margin: 2.9vw 0 0;
}

.tab-content .c-text li {
  list-style: disc;
  list-style-position: inside;
  padding-left: var(--font-size_pc14);
  text-indent: -14px;
}

.tab-content .c-text li.disc-none {
  list-style: none;
  padding: 0;
  text-indent: 0;
}

.tab-content .c-text li::marker {
  content: '・';
  font-size: var(--font-size_pc14);
}

.tab-content .c-text li.disc-none::marker {
  content: none;
}

.tab-content li.c-text ul {
  margin-top: 0.5vw;
}

.tab-content ul .tab-img img {
  width: 9.479166666666666vw;
}

.tab-content table {
  margin-top: 1vw;
}

@media screen and (max-width: 768px) {
  .tab-content table {
    margin-top: 7vw;
  }
}

.tab-content table th,
.tab-content table td {
  padding: 0.7vw 1.4vw;
  border: 1px solid var(--border-color);
  font-size: var(--font-size_pc14);
  text-align: center;
}

.tab-content table tr *:first-child {
  border-left: 0;
}

.tab-content table tr:first-of-type th,
.tab-content table td:last-of-type {
  border-right: 0;
}

.tab-content table th {
  background-color: #FAFAFA;
}

.tab-content[data-tab="schedule"] .c-text {
  margin-top: 1vw;
}


#flow {
  margin-top: 7.604166666666666vw;
}

/* ページ内リンク用 可変id */
#flow-area {
  margin-top: 7.1vw;
}

/* ---  フローセクション  --- */
.sec-flow {
  position: relative;
  margin: 0 -7.187499999999999vw;
  overflow: hidden;
}

.sec-flow .title-wrap {
  align-items: center;
  gap: 3.0208333333333335vw;
  margin-bottom: 1.4vw;
  padding: 0 7.187499999999999vw;
}

.excl-mark {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.7552083333333334vw;
  position: relative;
}

.excl-mark::before {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  top: 0;
  left: 0;
  width: 1.40625vw;
  height: 1.40625vw;
  border-radius: 100%;
  background-color: var(--font-color);
  color: #fff;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size_pc18);
  font-family: var(--font-en);
  content: '!';
}

.flow-list {
  border-top: var(--border-solid);
  border-bottom: var(--border-solid);
  overflow-x: scroll;
}

/* スクロールヒントのアイコン位置を調整 */
.scroll-hint-icon {
  top: 50%;
  transform: translateY(-50%);
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon {
  opacity: 0.5;
}

.js-scrollable {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.js-scrollable:active {
  cursor: grabbing;
}

.flow-list .flow-item {
  padding: 5.15vw 4.25vw 3.6vw;
  border-right: var(--border-solid);
}

.flow-list .flow-item:first-child {
  margin-left: 7.187499999999999vw;
  border-left: var(--border-solid);
}

.flow-item .border-list {
  text-align: center;
}

.border-list .flow-img {
  width: 9.479166666666666vw;
  margin: 0 auto 1.45vw;
}

.border-list .flow-text {
  width: 14.583333333333334vw;
  font-size: var(--font-size_pc14);
  line-height: 1.714285714285714;
}

#produce {
  margin-top: 10.416666666666668vw;
}


/* ページ内リンク用 可変id */
#movie-area {
  margin-top: 5.3vw;
}

/* ---  動画セクション  --- */
.sec-movie .title04 {
  margin-bottom: 1.7vw;
  text-align: center;
}

.sec-movie .movie-wrap {
  width: 66.66666666666666vw;/* 1280px/1920 */
  margin: 0 auto;
  aspect-ratio: 16/9;
}


/* ページ内リンク用 可変id */
#gallery {
  margin-top: 11.979166666666668vw;
}

/* ---  ギャラリーセクション  --- */
.sec-gallery {
  gap: 3.6979166666666665vw;/* 71px/1920 */
  position: relative;
  width: 92.8vw;
  margin: 0 auto;/* 中央寄せ */
  overflow: hidden;
}

.sec-gallery::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  transform: translateX(0);
  transition: transform 1.6s ease-in-out;
  z-index: 2;
}

.sec-gallery.is-active::before {
  transform: translateX(100%);
}

/* ギャラリーコンテンツの初期状態 */
.sec-gallery .title02,
.sec-gallery .gallery-slider-container {
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* アニメーション後の状態 */
.sec-gallery.is-active .title02,
.sec-gallery.is-active .gallery-slider-container {
  opacity: 1;
}

.gallery-slider-container {
  flex-shrink: 0;
  width: 85.67708333333334vw;/* 1645px/1920 */
}

.gallery-swiper .swiper-slide {
  width: 34.010416666666664vw;
  transition: opacity 0.3s ease;
}

.gallery-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ページネーション */
.gallery-pagination {
  margin-top: 1.7vw;
  font-size: var(--font-size_pc14);
  letter-spacing: var(--letter-spacing_01);
}

.gallery-pagination-inner {
  align-items: center;
  gap: 1.3802083333333333vw;
}

.gallery-numbers {
  gap: 1.6666666666666667vw;
}

.gallery-number {
  opacity: 0.3;
  transition: opacity 0.3s ease;
}

.gallery-number.is-active {
  opacity: 1;
}

.gallery-progress {
  position: relative;
  width: 3.177083333333333vw;/* 61px/1920 */
  height: 1px;
  margin-left: 0.3645833333333333vw;
  background-color: rgba(0, 0, 0, 0.1);
}

.gallery-progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background-color: #000;
  transition: width 0.3s ease;
}

.gallery-next {
  cursor: pointer;
}


/* ページ内リンク用 可変id */
#review {
  margin-top: 13.7vw;
}

/* ---  レビューセクション  --- */
.sec-review {
  gap: 3.0208333333333335vw;/* 60px/1920 */
}

.review-list {
  gap: 3.125vw;/* 60px/1920 */
}

.review-list li {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 15.989583333333332vw;
  min-height: 7.228125vw;
  border-bottom: var(--border-solid);
  font-size: var(--font-size_pc14);
  line-height: 1.714285714285714;
}

.review-icon {
  display: block;
  width: 1.671875vw;
}

.review-list .review-text {
  display: flex;
  flex-direction: column;
  position: relative;
  margin-bottom: 0.8vw;
}

.review-list .review-text::before {
  width: 1.671875vw;
  aspect-ratio: 32.1 / 28.78;
  margin-bottom: 0.8vw;
  background: url(../img/sec-review_icon.svg) no-repeat center center / cover;
  content: '';
  animation: floating-y 0.8s ease-in-out infinite alternate-reverse;
}

@keyframes floating-y {
  0% {
    transform: translateY(12%);
  }
  100% {
    transform: translateY(0);
  }
}

.review-list .review-name {
  padding-bottom: 0.3vw;
  text-align: right;
}


/* ページ内リンク用 可変id */
#q_and_a {
  margin-top: 14.02vw;
}

/* ---  アコーディオン(縦並び)セクション  --- */
.sec-acc.-column {
  gap: 4.21875vw;
}

.sec-acc.-column .title02 {
  flex-shrink: 0;
}

.sec-acc.-column .title02 .zenKakuGo-anti {
  margin-left: 0.78125vw;
  font-weight: 500;
  font-size: var(--font-size_pc14);
}

.sec-acc.-column .acc-list {
  width: 74.0625vw;
}

.sec-acc.-column .acc-item {
  width: 100%;
  padding: 1.63vw 0;
  border-bottom: 0;
}

.sec-acc.-column .acc-item:last-child {
  border-bottom: var(--border-solid);
}

.sec-acc.-column .acc-header {
  gap: 0.9895833333333333vw;
}

.sec-acc.-column .acc-header h4 {
  font-size: var(--font-size_pc18);
}

.sec-acc.-column .acc-content {
  padding-left: 2.083333333333333vw;
}


/* ページ内リンク用 可変id */
#access {
  margin-top: 10.520833333333334vw;
}

/* ---  マップセクション  --- */
.sec-map .title02 {
  margin-bottom: 1.7708333333333333vw;/* 34px/1920 */
}

.sec-map>.flex {
  gap: 4.6875vw;
}

.googlemap {
  flex-shrink: 0;
  width: 33.85416666666667vw;
  height: 33.85416666666667vw;
  overflow: hidden;
}

.googlemap iframe {
  height: calc(100% + 20.833333333333336vw);
  margin: -10.416666666666668vw 0;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

.sec-map .desc {
  width: 47.083333333333336vw;
}

.sec-map .desc .title04 {
  line-height: 2.1;
}

.list-wrap {
  margin: 2.8vw 0 2.2vw;
}

.list-wrap dl {
  padding: 0.5vw 0 0.6vw;
  border-top: var(--border-solid);
}

.list-wrap dl:last-of-type {
  border-bottom: var(--border-solid);
}

.list-wrap dt {
  width: 7.8125vw;
}

.sec-map .desc>.c-text {
  line-height: 1.714285714285714;
}


/* ページ内リンク用 可変id */
#contact {
  margin-top: 9.114583333333332vw;/* 175px/1920 */
}

/* ---  お問い合わせセクション  --- */
.sec-contact>.flex {
  gap: 4.0625vw;
}

.sec-contact .title02 {
  margin-bottom: 1.9791666666666665vw;
}

.sec-contact .divide-line>*:first-child p {
  width: 14.6875vw;
}

.sec-contact .divide-line>*:nth-child(n+2)::before {
  top: 9px;
  transform: translateY(0);
  height: calc(100% - (1.15vw * 2 + 33px + 2px) - (0.3125vw + 2.03125vw + 1.6vw + 24px) - 9px);
}

.contact-form {
  width: 62.81250000000001vw;
}

.sec-contact .excl-mark {
  justify-content: flex-start;
  gap: 0.5vw;
  margin-bottom: 0.6vw;
  color: #ff0000;
  font-size: var(--font-size_pc16);
  line-height: 1;
}

.sec-contact .excl-mark::before {
  width: 1.09375vw;
  height: 1.09375vw;
  background-color: #ff0000;
  font-size: var(--font-size_pc16);
}

.form-group {
  align-items: center;
  margin-bottom: 1.6vw;
  padding-bottom: 1.6vw;
  border-bottom: var(--border-solid);
}

.form-group>label {
  display: block;
  flex-shrink: 0;
  align-self: flex-start;
  width: 193px;
  font-weight: bold;
}

/* .form-group>label[for="detail"] {
  margin-right: 1vw;
  width: 300px;
} */

.form-group>label .form-note {
  margin-top: 0.5vw;
  font-weight: 500;
  font-size: var(--font-size_pc14);
  line-height: 1.428571428571429;
}

.form-group label,
.form-group input,
.form-group textarea,
.address-wrapper span,
.confirm-text,
form button {
  font-size: var(--font-size_pc16);
  line-height: 2.0625;
  letter-spacing: var(--letter-spacing_01);
}

.form-group>label+input,
.address-wrapper,
.address-wrapper input,
.form-group>label+textarea {
  width: 100%;
}

.form-group>label+textarea {
  min-height: 13.750000000000002vw;
}

.address-wrapper>* {
  display: flex;
}

.address-wrapper span {
  flex-shrink: 0;
  display: inline-block;
}

/* ラジオボタン */
.radio-wrapper {
  display: flex;
  gap: 2em;
}

.custom-radio {
  align-items: center;
  position: relative;
  cursor: pointer;
  gap: 0.5em;
}

.custom-radio input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.radio-mark {
  position: relative;
  height: 1.25em;
  width: 1.25em;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.custom-radio input:checked ~ .radio-mark:after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0.75em;
  height: 0.75em;
  border-radius: 50%;
  background-color: currentColor;
}

.custom-checkbox {
  align-items: center;
  gap: 10px;
  position: relative;
  cursor: pointer;
}

.custom-checkbox input[type="checkbox"] {
  display: none;
}

.checkbox-mark {
  display: inline-block;
  flex-shrink: 0;
  position: relative;
  width: 1.09375vw;
  height: 1.09375vw;
  border: var(--border-solid);
}

/* チェックマーク */
.custom-checkbox input[type="checkbox"]:checked + .checkbox-mark::after {
  position: absolute;
  top: 10%;
  left: 36%;
  transform: rotate(45deg);
  width: 30.3%;
  height: 60.6%;
  border: solid var(--font-color);
  border-width: 0 2px 2px 0;
  content: '';
}

.privacy-notice {
  padding: 0.3125vw 0 2.03125vw;/* 6px/1920 0 39px/1920 */
  font-size: var(--font-size_pc14);
  line-height: 1.428571428571429;
}

.privacy-notice .underline {
  display: inline-block;
  text-decoration: underline;
}

.sec-contact .btn-wrap {
  gap: 4vw;
}

.submit-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.78125vw;
  width: 100%;
  padding: 1.15vw 0;
  border: var(--border-solid);
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.submit-btn:hover {
  background: var(--font-color);
  color: #fff;
}

.submit-btn .arrow-right {
  display: inline-block;
  position: relative;
  width: 1.09375vw;
  height: 1.09375vw;
  background-color: var(--font-color);
}

.submit-btn .arrow-right::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 20.5%;
  transform: rotate(45deg);
  width: 38%;
  height: 38%;
  margin: auto;
  border: 0;
  border-top: solid 0.10416666666666667vw #fff;
  border-right: solid 0.10416666666666667vw #fff;
  content: '';
}

/* プレースホルダーのスタイル */
::placeholder {
  color: #999;
}


/* ---  フッター  --- */
footer {
  margin: 14vw 0 6.510416666666667vw;
  text-align: center;
}

.icon-wrap {
  justify-content: center;
  align-items: center;
  gap: 70px;
  margin: 2.34375vw 0 1.7708333333333333vw;/* 45px/1920 0 34px/1920 */
}

footer .icon-wrap a,
footer .icon-wrap a img {
  display: block;
  transition: .5s ease-in-out;
}

footer .icon-wrap a:hover img {
  -webkit-transform: rotateX(360deg);
  transform: rotateX(360deg);
}

.icon-wrap a img {
  object-fit: cover;
}

.icon-wrap .sns_x img {
  width: 22.5px;
}

.icon-wrap .sns_line img {
  width: 28.82px;
}

.icon-wrap .sns_insta img {
  width: 24px;
}

.icon-wrap .sns_fb img {
  width: 12px;
}

.icon-wrap .sns_youtube img {
  width: 29.48px;
}

footer p.copy {
  margin-top: 4.7vw;
  font-weight: 400;
  font-size: var(--font-size_pc14);
  line-height: 1.285714285714286;
  letter-spacing: 0.05em;
}



/* メディアクエリ 1201px~1919px */
@media screen and (min-width: 1201px) and (max-width: 1919px) {
  /* タブセクション */
  .divide-line>*:first-child {
    width: 20vw;
  }
}


/* ヘッダー用 メディアクエリ 1401px~1919px */
@media screen and (min-width: 1401px) and (max-width: 1919px) {
  header nav {
    font-size: var(--font-size_pc14);
  }

  .nav-contact {
    margin-left: 22px;
  }
}


/* ヘッダー用 メディアクエリ 1401px~1919px */
@media screen and (max-width: 1919px) {
  .grid-item {
    min-height: 28.645833333333332vw;
  }

  .list-grid-4 .grid-item .title04 {
    margin-bottom: 1vw;
  }
}


/* ヘッダー用 メディアクエリ 1400px以下 */
@media screen and (max-width: 1400px) {
  .tablet-pc {
    display: none;
  }

  /* ヘッダー */
  header {
    justify-content: flex-start;
    margin: 0;
    padding: 0;
    mix-blend-mode: normal;
  }

  /* ナビゲーション */
  header nav {
    flex-direction: column;
    align-items: flex-start;
    visibility: hidden;
    opacity: 0;
    position: fixed;
    top: 0;
    right: -100%;
    z-index: 998;
    width: 100%;
    height: 100%;
    padding: 95px 0 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* iOSでのスムーズスクロール */
    background-color: rgba(255, 255, 255, 0.98);
    transition: all 0.5s ease;
  }

  header nav.active {
    visibility: visible;
    opacity: 1;
    right: 0;
  }

  nav>ul {
    flex-wrap: wrap;
    flex-direction: column;
    gap: 0;
  }

  nav>ul>li:not([class]) {
    margin-top: 46px;
    padding-left: 17.866666666666667vw;
  }

  nav>ul>li:not([class]):first-of-type {
    margin-top: 0;
  }

  nav>ul>li.nav-contact,
  nav>ul>li.nav-sns {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    border-top: var(--border-solid);
  }

  nav>ul>li.nav-contact {
    margin: 69px 0 0;
    padding: 34px 0 35px;
  }

  .nav-contact .slash {
    margin: 0 4.266666666666667vw;/* 16px/375 */
  }

  nav>ul>li.nav-sns {
    padding: 31.5px 0;
    border-bottom: var(--border-solid);
  }

  .nav-sns .icon-wrap {
    gap: 40px;
  }

  nav>ul>li.kv__info-text {
    display: flex;
    justify-content: center;
    gap: 11px;
    width: 100vw;
    padding: 15px 0 17px;
    font-weight: 400;
    font-size: 8px;
  }

  nav ul li a,
  nav>a {
    color: var(--font-color);
    font-size: 1.8rem;
  }

  nav a span {
    transition: none !important;
  }

  .header.sp-tablet {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 999;
    color: #fff;
    mix-blend-mode: difference;
  }

  .header.sp-tablet .title01 {
    position: fixed;
    top: 36.5px;
    left: 57px;
    font-size: 21px;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  body.nav-open .header.sp-tablet .title01 {
    visibility: hidden;
    opacity: 0;
  }

  .isolate-menu {
    position: fixed;
    top: 39px;
    right: 107px;
    font-size: var(--font-size_pc14);
  }

  .isolate-menu .slash {
    margin: 0 11px;
  }

  /* ハンバーガーメニュー */
  .hamburger {
    position: fixed;
    top: 40.5px;
    right: 30px;
    width: 49px;
    height: 17px;
    cursor: pointer;
  }

  .hamburger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
    transition: all 0.3s ease;
  }

  .hamburger span:nth-child(1) { top: 0; }
  .hamburger span:nth-child(2) { top: 8.5px; }
  .hamburger span:nth-child(3) { top: 17px; }


  /* メニューオープン時 */
  .hamburger.active span:nth-child(1) {
    transform: translateY(8px) rotate(20deg);
  }
  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active span:nth-child(3) {
    transform: translateY(-9px) rotate(-20deg);
  }
}


/* メディアクエリ 1199px以上 */
@media screen and (max-width: 1199px) {
  .heading .heading-title {
    font-size: var(--font-size_pc16);
  }

  .heading .heading-text {
    font-size: var(--font-size_pc14);
  }

  /* セクションパターン01 */
  .sec-pattern01 {
    flex-direction: column;
    gap: 11.200000000000001vw;/* 42px/375 */
  }

  .sec-pattern01>* {
    width: 100% !important;
  }

  .sec-pattern01 .img-wrap {
    justify-content: flex-end;
  }

  /* セクションパターン02 */

  /* セクションパターン03 */
  .sec-pattern03 {
    margin: 0;
  }

  .sec-pattern03 .desc {
    width: 100%;
  }

  .divide-line {
    flex-direction: column;
  }

  .divide-line>* {
    width: 100% !important;
  }

  .tab-buttons {
    flex-direction: row;
    min-height: auto;
  }

  .tab-btn {
    flex-shrink: 0;
  }

  .list-wrap dt {
    width: 12vw;
  }

  .sec-contact .divide-line>*:first-child p {
    width: 100%;
  }
}


/* メディアクエリ 768px~1199px */
@media screen and (min-width: 768px) and (max-width: 1199px) {
  /* 各セクションの上部マージンを共通化 */
  section:not(:first-of-type) {
    margin-top: 11vw !important;
  }

  .kv__info-text::before {
    width: 19px;
  }

  .mid {
    display: block;
  }

  /* セクションパターン01 */
  .sec-pattern01 {
    gap: 6vw;
  }

  .sec-pattern01 .title04 {
    margin: 5.263157894736842vw 0 2.631578947368421vw;
    font-size: var(--font-size_pc16);
  }

  .sec-pattern03 .img-lg {
    width: 50%;
  }

  .acc-icon {
    width: 21px;
    height: 21px;
  }

  .list-grid-4 .grid-item .title04 {
    letter-spacing: 0.025em;
  }

  .divide-line>*:first-child {
    gap: 3.8947368421052633vw;
  }

  .tab-btn:not(.active) {
    color: #BCBCBC;
  }

  .sec-review .title02 {
    flex-shrink: 0;
  }

  .review-list li {
    width: calc((100% - 78.05px - 3.0208333333333335vw) / 3);
  }

  .tab-content ul .tab-img img {
    width: 160px;
  }

  .acc-header h4 {
    font-size: var(--font-size_pc18);
  }

  .excl-mark::before {
    width: 21px;
    height: 21px;
    font-size: var(--font-size_pc14);
  }

  .review-list .review-text::before {
    width: 25px;
  }

  .sec-acc.-column .acc-item {
    padding: 25px 0;
  }

  .list-wrap dl {
    padding: 10px 0;
  }

  .checkbox-mark {
    width: 21px;
    height: 21px;
  }

  .sec-contact .excl-mark::before {
    width: 19px;
    height: 19px;
  }

  .submit-btn .arrow-right {
    width: 21px;
    height: 21px;
  }

  .submit-btn .arrow-right::before {
    border-width: 2px;
  }

  footer .title01 {
    font-size: 28px;
  }
}


/* メディアクエリ 768px~949px */
@media screen and (min-width: 768px) and (max-width: 949px) {
  .sec-pattern01 .img-wrap {
    justify-content: space-between;
    gap: 0;
  }

  .img-wrap .img-sm {
    width: 33.8%;
  }

  .img-wrap .img-lg {
    width: 60.9%;
  }

  .sec-pattern03 .flex {
    flex-direction: column;
  }

  .sec-pattern03 .flex>* {
    width: 100%;
  }

  .sec-pattern03 .desc {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 20px;
  }
}


/* ---  メディアクエリ(SP)  --- */
@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block;
  }

  .title02,
  .title04 {
    font-size: var(--font-size_sp18);
  }

  .c-text {
    font-size: var(--font-size_sp14);
  }

  .c-text .external-link {
    gap: 2vw;
    font-size: var(--font-size_sp18);
    line-height: 1.1;
    word-break: break-all;
  }

  .external-link {
    background-position: 7.6vw bottom;
  }

  .c-text .external-link::before {
    flex-shrink: 0;
    width: 5.6000000000000005vw;
    height: 5.6000000000000005vw;
  }

  /* ローディングアニメーション */
  .loading-text-words {
    font-size: var(--font-size_sp18);
  }

  /* ヘッダー */
  .header.sp-tablet .title01 {
    top: 5.066666666666666vw;
    left: 3.4666666666666663vw;
    font-size: var(--font-size_sp14);
  }

  /* ハンバーガーメニュー */
  .hamburger {
    top: 4.666666666666667vw;/* 17.5px/375 */
    right: 4.3999999999999995vw;/* 16.5px/375 */
    width: 13.066666666666665vw;/* 49px/375 */
    height: 4.533333333333333vw;/* 17px/375 */
  }

  .hamburger span:nth-child(1) { top: 0; }
  .hamburger span:nth-child(2) { top: 2.2666666666666666vw; }/* 8.5px/375 */
  .hamburger span:nth-child(3) { top: 4.533333333333334vw; }/* 17px/375 */

  /* メニューオープン時 */
  .hamburger.active span:nth-child(1) {
    transform: translateY(2vw) rotate(17deg);
  }
  .hamburger.active span:nth-child(3) {
    transform: translateY(-2.5vw) rotate(-17deg);
  }

  .isolate-menu {
    display: none;
  }

  /* キービジュアル */
  .swiper-kv .swiper-wrapper {
    height: 86dvh;
  }

  .kv__pagination {
    height: 14dvh;
    margin-right: 4.8vw;/* 18px/375 */
    margin-left: 2.666666666666667vw;/* 10px/375 */
  }

  .kv__info-text {
    align-items: flex-start;
    gap: 2.933333333333333vw;/* 11px/375 */
    width: 50.4vw;/* 189px/375 */
    font-size: 2.1333333333333333vw;/* 8px/375 */
    line-height: 1.25;
    letter-spacing: 0.05em;
  }

  .kv__info-text::before {
    flex-shrink: 0;
    width: 3.8666666666666667vw;/* 14.5px/375 */
    margin-top: 0.8vw;/* 3px/375 */
  }

  .kv__pagination-inner {
    flex-direction: column; 
  }

  .kv__page-number-wrap {
    gap: 5.333333333333334vw;/* 20px/375 */
  }

  .kv__page-number {
    font-size: 2.933333333333333vw;/* 11px/375 */
  }

  .kv__progress {
    position: relative;
    top: 3.733333333333334vw;/* 14px/375 */
    width: 21.866666666666667vw;/* 82px/375 */
  }


  .content article {
    padding: 22.133333333333333vw 5.066666666666666vw 0;
  }

  .heading .heading-title {
    margin-bottom: 5.866666666666666vw;/* 22px/375 */
    font-size: var(--font-size_sp14);
  }

  .heading .heading-text {
    font-size: 3.4666666666666663vw;/* 13px/375 */
    line-height: 1.846153846153846;
  }


  #about {
    margin-top: 34.4vw;/* 129px/375 */
  }

  /* セクションパターン01 */
  .sec-pattern01 {
    flex-direction: column;
    gap: 11.200000000000001vw;/* 42px/375 */
  }

  .sec-pattern01>*,
  .sec-pattern02>* {
    width: 100% !important;
  }

  .sec-pattern01 .title04 {
    margin: 9.333333333333334vw 0 0;/* 35px/375 0 0 */
    font-size: 4.266666666666667vw;/* 16px/375 */
    line-height: 2.25;
  }

  .sec-pattern01 .img-wrap {
    gap: 5.333333333333334vw;/* 20px/375 */
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw !important;
  }

  .img-wrap .img-sm {
    width: 33.6vw;/* 126px/375 */
  }

  .img-wrap .img-lg {
    width: 61.06666666666667vw;/* 229px/375 */
  }


  #feature {
    margin-top: 33.6vw;/* 126px/375 */
  }

  /* セクションパターン02 */
  .sec-pattern02 {
    flex-direction: column;
    gap: 9.466666666666667vw;/* 35.5px/375 */
  }

  .sec-pattern02 .title02 {
    margin: 0;
  }

  .title02.line-right {
    gap: 3.8666666666666667vw;/* 14.5px/375 */
  }

  .sec-pattern02 .line-right::after {
    width: 100%;
  }


  #teacher {
    margin-top: 36.53333333333333vw;/* 137px/375 */
  }

  /* セクションパターン03 */
  .sec-pattern03 {
    margin: 0;
  }

  .sec-pattern03 .flex {
    flex-direction: column;
    gap: 5vw;
  }

  .sec-pattern03 .flex>* {
    width: 100% !important;
  }

  .sec-pattern03 .title02 {
    margin-bottom: 5vw;
  }

  .sec-pattern03 .title03 {
    font-size: var(--font-size_sp30);
  }

  .sec-pattern03 .desc .title04 {
    margin-bottom: 11.1vw;
    line-height: 1.8;
  }


  #lesson {
    margin-top: 45.3vw;
  }


  #instruction {
    margin-top: 12.1vw;
  }

  /* アコーディオンセクション */
  .sec-acc .title04 {
    margin-bottom: 9vw;
  }

  .sec-acc .acc-list {
    flex-direction: column;
    gap: 0;
  }

  .sec-acc .acc-item {
    width: 100%;
    padding: 14.333333vw 0 14.2vw;
    border-bottom: 0;
  }

  .sec-acc .acc-item:last-of-type {
    border-bottom: var(--border-solid);
  }

  .sec-acc .acc-header {
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 4vw;/* 15px/375 */
  }

  .sec-acc .acc-header h4 {
    font-size: 6.4vw;
  }

  .sec-acc .acc-header .acc-icon {
    top: 0.5vw;
    width: 5.6000000000000005vw;/* 21px/375 */
    height: 5.6000000000000005vw;/* 21px/375 */
  }

  .acc-icon::before {
    width: 2.4vw;/* 9px/375 */
    height: 1px;/* 1px/375 */
  }

  .acc-icon::after {
    width: 1px;/* 1px/375 */
    height: 2.4vw;/* 9px/375 */
  }

  .sec-acc .acc-item .acc-content {
    margin-top: 3.2vw;/* 12px/375 */
    padding-left: 9.6vw;/* 36px/375 */

  }


  #grid-area {
    margin-top: 20vw;/* 75px/375 */
  }

  /* グリッドレイアウトセクション */
  .list-grid {
    grid-template-columns: repeat(1, 1fr) !important;
    row-gap: 5.866666666666666vw;/* 22px/375 */
  }

  .grid-item {
    height: 74.66666666666667vw !important;
    border-right: var(--border-solid);
    border-left: var(--border-solid);
    pointer-events: none;
  }

  .grid-item.is-hover {
    background-color: var(--font-color);
    color: #fff;
  }

  .grid-item-inner {
    margin: 0 1vw;
    padding: 0 4vw;
  }

  .grid-item.is-hover .grid-item-inner {
    height: 94%;
    border-right: 1px solid #fff;
    border-left: 1px solid #fff;
  }
  

  .grid-item p {
    font-size: var(--font-size_sp14);
  }

  .grid-item.is-hover .default-text {
    display: none;
    opacity: 0;
  }

  .grid-item.is-hover .hover-text {
    display: block;
    opacity: 1;
    text-align: left;
  }

  .grid-item .title03 {
    font-size: var(--font-size_sp30);
  }

  .grid-item:hover .hover-text {
    text-align: left;
  }


  #tab-area {
    margin-top: 17.6vw;
  }

  /* タブセクション */
  .tab-container {
    flex-direction: column;
    gap: 14.2vw;
  }

  .tab-buttons,
  .tab-cont-wrap {
    width: 100%;
  }

  .tab-buttons {
    justify-content: space-between;
    row-gap: 11.1vw;
    top: 0;
  }

  .tab-btn::after {
    width: 4.933333333333334vw;/* 18.5px/375 */
    /* min-height: 1px; */
  }

  .tab-content>* {
    margin-top: 4vw;
  }

  .tab-content h4 {
    margin-top: 12vw;
    font-size: 4.266666666666667vw;/* 16px/375 */
  }

  .tab-content li {
    padding-left: var(--font-size_sp14);
    text-indent: -3.733333333333334vw;
  }

  .tab-content li::marker {
    font-size: var(--font-size_sp14);
  }

  #flow {
    margin-top: 40vw;
  }


  #flow-area {
    margin-top: 13.5vw;
  }

  /* フローセクション */
  .sec-flow {
    margin: 0;
  }

  .sec-flow .title-wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 11.8vw;
    margin-bottom: 7.14vw;
    padding: 0;
  }

  .excl-mark {
    gap: 3.733333333333334vw;
    line-height: 1.714285714285714;
  }

  .excl-mark::before {
    width: 7.199999999999999vw;
    height: 7.199999999999999vw;
    font-size: var(--font-size_sp18);
  }

  .flow-list {
    flex-direction: column;
    gap: 9.5vw;
    border: 0;
  }

  .flow-list .flow-item {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 4.933333333333334vw;
    margin-left: 0 !important;
    padding: 0;
    border: 0 !important;
  }

  .flow-number {
    display: flex;
    align-items: center;
    font-weight: 400;
    font-size: 5.333333333333334vw;
  }

  .flow-number::after {
    display: block;
    width: 9.866666666666667vw;
    height: 1px;
    margin-left: 5.52vw;
    background-color: var(--font-color);
    content: '';
  }

  .flow-item .border-list {
    margin-top: 3.2vw;
    text-align: left;
  }

  .border-list .flow-img {
    width: 41.333333333333336vw;
    margin: 0;
  }

  .border-list .flow-text {
    width: 100%;
    margin-top: 3.9vw;
    font-size: var(--font-size_sp14);
  }


  #movie-area {
    margin-top: 46vw;
  }

  /* ムービーセクション */
  .sec-movie {
    margin: 0 -5.066666666666666vw;
  }
  
  .sec-movie .movie-wrap {
    width: 100vw;
  }
  

  #gallery {
    margin-top: 39.5vw;
  }

  /* ギャラリーセクション */
  .sec-gallery {
    flex-direction: column;
    gap: 5vw;
    width: 95vw;
  }

  .sec-movie .title04 {
    margin-bottom: 11.3vw;
    font-size: var(--font-size_sp18);
  }

  .gallery-slider-container {
    width: 100%;
  }

  .gallery-swiper .swiper-slide {
    width: 82.39999999999999vw;/* 309px/375 */
  }

  .gallery-pagination {
    width: 89.86666666666666vw;/* 337px/375 */
    margin-top: 8.2vw;
    font-size: var(--font-size_sp14);
  }

  .gallery-pagination-inner {
    justify-content: space-between;
    gap: 4vw;
  }

  .gallery-numbers {
    gap: 8.1vw;
  }

  .gallery-progress {
    width: 9.066666666666666vw;
    margin-left: 30vw;
  }


  #review {
    margin-top: 47.1vw;
  }

  .sec-review {
    flex-direction: column;
    gap: 11vw;
  }

  .review-list {
    flex-direction: column;
    gap: 16.1vw;
  }

  .review-list li {
    width: 100%;
    font-size: var(--font-size_sp14);
  }

  .review-list .review-text {
    margin-bottom: 3.9vw;
  }

  .review-list .review-text::before {
    width: 8.56vw;
    margin-bottom: 4vw;
  }

  .review-list .review-name {
    padding-bottom: 2vw;
  }


  #q_and_a {
    margin-top: 47vw;
  }

  /* アコーディオンセクション(縦) */
  .sec-acc.-column {
    flex-direction: column;
    gap: 10.3vw;
  }

  .sec-acc.-column .title02 {
    display: flex;
    align-items: center;
  }

  .sec-acc.-column .title02 .zenKakuGo-anti {
    margin-left: 4vw;/* 15px/375 */
    font-size: var(--font-size_sp14);
  }

  .sec-acc.-column .acc-list {
    width: 100%;
  }

  .sec-acc.-column .acc-item {
    padding: 8.2vw 0 6.1vw;
  }

  .sec-acc.-column .acc-header {
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 5.066666666666666vw;
  }

  .sec-acc.-column .acc-header h4 {
    font-size: var(--font-size_sp18);
    line-height: 1.333333333333333;
  }

  .sec-acc.-column .acc-item .acc-content {
    padding-left: 0;
  }



  #access {
    margin-top: 47.1vw;
  }

  /* マップセクション */
  .sec-map>.flex {
    flex-direction: column;
    gap: 18.133333333333333vw;/* 68px/375 */
  }

  .sec-map>.flex>* {
    width: 100% !important;
  }

  .sec-map .title02 {
    margin-bottom: 10.133333333333333vw;
  }

  .googlemap iframe {
    height: calc(100% + 60vw);
    margin: -30vw 0;
  }

  .sec-map .desc .title03 {
    font-size: var(--font-size_sp30);
    line-height: 1.233333333333333;
  }

  .sec-map .desc .title04 {
    line-height: 3;
  }

  .list-wrap {
    margin: 15.4vw 0 11.5vw;
  }

  .list-wrap dl {
    padding: 2.666666666666667vw 0 3.0666666666666664vw;/* 10px/375 0 11.5px/375 */
  }

  .list-wrap dl dt {
    width: 25.066666666666666vw;/* 94px/375 */
  }


  #contact {
    margin-top: 46.5vw;
  }

  /* お問い合わせセクション */
  .sec-contact .title02 {
    margin-bottom: 9.333333333333334vw;/* 35px/375 */
  }

  .sec-contact .excl-mark {
    gap: 1.8vw;
    margin-bottom: 1.8vw;
    font-size: var(--font-size_sp14);
  }

  .sec-contact .excl-mark::before {
    width: 4.8vw;
    height: 4.8vw;
    font-size: 3.733333333333334vw;
  }

  .form-group>label[for="detail"] {
    width: 100%;
    margin: 0 0 3vw;
  }

  .form-group>label .form-note {
    font-size: 3.2vw;
  }

  .form-group label,
  .form-group input,
  .form-group textarea,
  .address-wrapper span,
  .confirm-text,
  form button {
    font-size: 4.266666666666667vw;/* 16px/375 */
  }

  .form-group label,
  .form-group input,
  .form-group textarea,
  form button {
    width: 100%;
  }

  .form-group {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 9vw;
    padding-bottom: 3.8vw;
  }

  .form-group:last-of-type {
    margin-bottom: 9.5vw;
  }

  .sec-contact>.flex {
    flex-direction: column;
    gap: 13vw;
  }

  .sec-contact>.flex>* {
    width: 100% !important;
  }

  .form-group>label+input {
    width: 80vw;
  }
  
  .postal-code {
    display: flex;
    gap: 2.2666666666666666vw;/* 8.5px/375 */
  }

  .address-wrapper div>* {
    width: auto;
  }

  .checkbox-wrapper {
    margin: 2vw 0 2.7vw;
  }
  
  .checkbox-mark {
    width: 5.6000000000000005vw;/* 21px/375 */
    height: 5.6000000000000005vw;/* 21px/375 */
  }

  .custom-checkbox {
    gap: 2.666666666666667vw;/* 10px/375 */
  }

  .custom-checkbox input[type="checkbox"]:checked + .checkbox-mark::after {
    top: 0.4vw;
    left: 1.8vw;
    width: 1.6vw;
    height: 3.2vw;
  }

  .form-group>label+textarea {
    width: 100%;
    min-height: 26.400000000000002vw;/* 99px/375 */
  }

  .privacy-notice {
    padding: 0 0 9.5vw;
    font-size: var(--font-size_sp14);
  }

  .submit-btn {
    gap: 3.733333333333334vw;/* 14px/375 */
    padding: 5.9vw 0;
  }

  .submit-btn .arrow-right {
    width: 5.6000000000000005vw;/* 21px/375 */
    height: 5.6000000000000005vw;/* 21px/375 */
  }

  .submit-btn .arrow-right::before {
    left: 1.1vw;
    width: 2.1333333333333333vw;/* 8px/375 */
    height: 2.1333333333333333vw;/* 8px/375 */
    border-width: var(--border-width_sp);
  }

  .thanks-text {
    margin-top: 5vw;
    padding-top: 10vw;
    border-top: 1px solid var(--font-color);
  }


  /* フッター */
  footer {
    margin: 52vw 0 10.266666666666667vw;/* 38.5px/375 */
    padding: 0 5.866666666666666vw;/* 22px/375 */
  }

  footer .title01 {
    font-size: 9.066666666666666vw;
  }

  footer .icon-wrap {
    flex-wrap: wrap;
    column-gap: 18.666666666666668vw;
    row-gap: 9.733333333333333vw;
    width: 57.41866666666666vw;
    margin: 19.5vw auto 21vw;
  }

  /* ヘッダーナビのアイコンサイズ固定 */
  header .icon-wrap a img {
    width: auto !important;
  }

  .icon-wrap .sns_x img {
    width: 6vw;/* 22.5px/375 */
  }

  .icon-wrap .sns_line img {
    width: 7.6853333333333325vw;/* 28.82px/375 */
  }

  .icon-wrap .sns_insta img {
    width: 6.4vw;/* 24px/375 */
  }

  .icon-wrap .sns_fb img {
    width: 3.2vw;/* 12px/375 */
  }

  .icon-wrap .sns_youtube img {
    width: 7.861333333333334vw;/* 29.48px/375 */
  }

  footer p.copy {
    margin-top: 25vw;
    padding-left: 0.5333333333333333vw;/* 2px/375 */
    font-size: var(--font-size_sp14);
    text-align: left;
  }
}