/*=============================================
 * 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 {
  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 {
  --font-color: #FFF7DD;
  --font-weight-medium: 500;
  --font-weight-bold: 700;
  --letter-spacing_01: 0.1em;
  --font-ja: "Noto Serif JP", serif;
  --font-ja-sub: "Shippori Mincho", serif;
  --font-en: "Forum", serif;
  --font-en-sub: "Italiana", serif;
  --border-color: #FFF7DD;
  --border-solid: 1px solid var(--border-color);
  --bg-color: #361706;
  /* SP 375px基準 */
  --font-size_sp14: 3.733333333333334vw;
  --font-size_sp18: 4.8vw;
  --font-size_sp30: 8vw;
}

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

.pc {
  display: block;
}

.sp-tablet {
  display: none;
}

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

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

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

.flex {
  display: flex;
}

.title01 {
  /* 1920px基準で40px */
  font-size: 2.083333333333333vw;
  line-height: 1.2;
  font-family: var(--font-en-sub);
}

.title02 {
  /* 常に60px */
  font-size: 60px;
  line-height: 1.1;
  font-family: var(--font-en);
}

.title03 {
  /* 常に80px */
  font-size: 80px;
  line-height: 0.9;
  font-family: var(--font-en);
}

.title04 {
  font-size: 24px;
  line-height: 1;
  letter-spacing: var(--letter-spacing_01);
}

.c-text {
  font-size: clamp(15px, 0.8333333333333334vw, 16px);
  line-height: 1.875;
  letter-spacing: var(--letter-spacing_01);
}


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

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

.loading-text-words {
  opacity: 0;
  transform: translateY(20px);
  color: var(--font-color);
  font-weight: var(--font-weight-bold);
  font-size: clamp(18px, 1.25vw, 24px);
  font-family: var(--font-en);
}

.content {
  opacity: 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
}

/* パララックス用の背景設定 */
.content-bg {
  position: relative;
  z-index: -1;
  background: url(../img/main_bg.jpg) no-repeat center top / cover;
}

/* パララックス要素の最適化 */
.parallax img, .sec-image img {
  will-change: transform;
  transform: translateY(0);
  transition: transform 0.1s linear;
}

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

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


/* ---  スクロールアニメーション  --- */
/* フェードインアニメーション基本設定 */
.blur-effect {
  opacity: 0;
  filter: blur(80px);
  transition: opacity 1s ease, filter 1s ease, transform 1s ease;
}

.blur-effect.is-show {
  opacity: 1;
  filter: blur(0);
}

/* テキストエフェクト */
.txt-effect {
  -webkit-background-clip: text;
  background-clip: text;
  background-image: linear-gradient(100deg, var(--font-color) 0, var(--font-color) 30%, transparent 50%, transparent 100%);
  background-position: 100% 50%;
  background-size: 400% 100%;
  will-change: background-position;
  color: transparent;
  transition: color 4s cubic-bezier(1, .405, .24, 1), background-position 4s cubic-bezier(.115, .405, .24, 1);
  opacity: 0;
}

.txt-effect.is-show {
  background-position: 0 50%;
  color: var(--font-color);
  opacity: 1;
}

/* 画像のフェードイン */
.photo img {
  opacity: 0;
  filter: blur(10px);
  transform: scale(1.1);
  transition: opacity 1.2s ease, filter 1.2s ease, transform 1.2s ease;
}

.photo.is-show img {
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
}


/* ---  ヘッダー  --- */
header {
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  z-index: 100;
  width: calc(100% - (1.9270833333333335vw + 1.8229166666666667vw));
  /* 1920px基準で37px */
  margin: 0 1.9270833333333335vw;
  padding: 1.65vw 0;
  color: var(--font-color);
  line-height: 1;
}

header .title01 {
  flex-shrink: 0;
  /* 1920px基準で40px */
  font-size: 2.083333333333333vw;
}

header nav {
  width: 100%;
  margin-left: 4.6vw;
}

nav ul {
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 37px;
  width: 100%;
  /* 1920px基準で26px */
  font-size: 1.3541666666666667vw;
  font-family: var(--font-en);
}

nav ul li {
  flex-shrink: 0;
}

.nav-contact {
  margin-left: auto;
}

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

.nav-contact .ja-sub {
  font-size: 1.0416666666666665vw;
  font-family: var(--font-ja-sub);
  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以下 コンテンツ  --- */
article {
  overflow: hidden;
}

article section {
  padding: 0 7.187499999999999vw;
}


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

#kv .catchphrase {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 2;
  width: 100%;
  height: 87vh;
  overflow: hidden;
  color: transparent;
  /* 1920px基準で300px */
  font-size: 28.4vh;
  line-height: 0.8;
  font-family: var(--font-en-sub);
  letter-spacing: -0.05em;
  -webkit-text-stroke: 1px #fff;
}

/* スライダー */
.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;
  color: var(--font-color);
  font-size: clamp(11px, 0.9375vw, 18px);
  line-height: 1.285714285714286;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
}

.kv__info-text {
  align-items: center;
  gap: 1.3020833333333335vw;
  line-height: 1.05;
}

.kv__info-text::before {
  display: block;
  width: 0.9375vw;
  aspect-ratio: 1/1;
  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: rotate(10deg);
  }
  50%, 85% {
    transform: rotate(-10deg);
  }
}

.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(254, 247, 221, 0.2);
}

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

.kv__next {
  cursor: pointer;
  transition: opacity 0.3s;
}

.kv__next:hover {
  opacity: 0.7;
}


/* ---  見出しセクション  --- */
.sec-heading {
  margin-top: 9.2vw;
  text-align: center;
}

.heading-title {
  font-size: clamp(16px, 1.0416666666666665vw, 20px);
  line-height: 2;
  font-family: var(--font-ja-sub);
  letter-spacing: var(--letter-spacing_01);
}


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

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

.sec-pattern01 .title02 {
  margin-bottom: 3.15vw;
}

.sec-pattern01 .text-wrap {
  flex-shrink: 0;
  width: 27.552083333333332vw;
}

.sec-pattern01 .c-text {
  line-height: 2.6 !important;
  letter-spacing: var(--letter-spacing_01);
}

.sec-pattern01 .img-solo {
  width: 55.104166666666664vw;
}


/* ページ内リンク用 可変id */
#profile {
  position: relative;
   margin-top: 8.34vw;
}

.sec-pattern01.-reverse .title02 {
  margin-bottom: 0.85vw;
}

.sec-pattern01.-reverse>.flex {
  /* 1920px基準で60px */
  gap: 3.125vw;
}

.sec-pattern01.-reverse .img-solo {
  /* 1920px基準で917px */
  width: 47.760416666666664vw;
}

.sec-pattern01.-reverse .text-wrap {
  position: relative;
  top: -0.4vw;
  /* 1920px基準で667px */
  width: 34.739583333333336vw;
}

.sec-pattern01.-reverse .title-wrap {
  margin-bottom: 3.6vw;
}

/* パララックス */
.parallax {
  position: absolute;
  /* 1920px基準で43px */
  right: -4.947916666666666vw;
  /* 1920px基準で300px */
  bottom: -17.5vw;
  z-index: -1;
  width: 63.4375vw;
  pointer-events: none;
}


#menu_system {
  margin-top: 12.4vw;
}

/* Menu/System セクション */
.sec-pattern04 .title02 {
  margin-bottom: 1.2vw;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.1875vw;
}

.menu-item {
  perspective: 1000px;
}

.menu-card {
  position: relative;
  width: 100%;
  aspect-ratio: 520/531;
}

.menu-card-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.menu-item:hover .menu-card-inner {
  transform: rotateY(180deg);
}

.menu-card-front,
.menu-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  overflow: hidden;
}

.menu-card-front img,
.card-back-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.menu-card-back {
  transform: rotateY(180deg);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.card-back-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.card-back-bg::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(38, 12, 1, 0.85);
}

.menu-card-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  color: var(--font-color);
}

.menu-card-content::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  transform: translate(-50%, -50%);
  width: 77.5%;
  aspect-ratio: 403.06/497.42;
  background: url(../img/sec-grid_illust.svg) no-repeat center center / cover;
  content: '';
}

.menu-card-content h4 {
  font-family: var(--font-en);
  font-size: clamp(30px, 2.083333333333333vw, 40px);
  line-height: 1.05;
  /* 1920px基準で15px */
  margin-bottom: 0.78125vw;
}

.menu-card-content p {
  font-size: clamp(14px, 0.78125vw, 15px);
  line-height: 1.6;
  letter-spacing: var(--letter-spacing_01);
}


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

/* ---  タブセクション  --- */
.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: calc(100% - 16px);
  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;
  /* 常に20px */
  font-size: 20px;
  line-height: 1.4;
  font-family: var(--font-ja-sub);
  text-align: left;
  letter-spacing: var(--letter-spacing_01);
  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;
  min-height: 34.375vw;
  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: 1vw;
}

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

.tab-content h4 {
  margin-top: 2vw;
  font-size: 18px;
  font-family: var(--font-ja-sub);
}

.tab-content .c-text li {
  list-style: disc;
  list-style-position: inside;
  padding-left: clamp(15px, 0.8333333333333334vw, 16px);
  text-indent: calc(-1 * clamp(15px, 0.8333333333333334vw, 16px));
}

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

.tab-content .c-text li::marker {
  content: '・';
  font-size: clamp(15px, 0.8333333333333334vw, 16px);
}

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

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

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

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

.tab-content table th,
.tab-content table td {
  padding: 0.7vw 1.4vw;
  border: 1px solid var(--border-color);
  font-size: clamp(15px, 0.8333333333333334vw, 16px);
  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;
}


/* ---  画像セクション  --- */
.sec-image {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100%;
  aspect-ratio: 1920 / 731;
  background: url(../img/sec-image_img01.webp) no-repeat center center / cover;
}

.sec-image .parallax {
  bottom: -8vw;
  left: 7.187499999999999vw;
}


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

/* ---  ギャラリーセクション  --- */
.sec-gallery {
  gap: 2.2vw;
}

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

.gallery-swiper .swiper-slide {
  width: 34.010416666666664vw;
  aspect-ratio: 653 / 498;
  transition: opacity 0.3s ease;
}

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

/* ページネーション */
.gallery-pagination {
  margin-top: 2vw;
  /* 常に18px */
  font-size: 18px;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
}

.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(254, 247, 221, 0.2);
}

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

.gallery-next {
  cursor: pointer;
}



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

/* ---  アコーディオン(横並び)セクション  --- */
.sec-acc .acc-list {
  align-items: flex-start;
  gap: 3.75vw;
}

.sec-acc .acc-item {
  border-top: var(--border-solid);
}

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

.acc-header h4 {
  font-size: clamp(18px, 1.0416666666666665vw, 20px);
  line-height: 1.25;
  font-family: var(--font-ja-sub);
  letter-spacing: var(--letter-spacing_01);
}

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

.acc-icon::before,
.acc-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #571C00;
  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;
}


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

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

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

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

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

.sec-acc.-column .acc-content {
  padding-left: 40px;
}


/* ページ内リンク用 可変id */
#access {
  /* 1920px基準で195px */
  margin-top: 10.15625vw;
}

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

.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: saturate(0%) sepia(20%) hue-rotate(20deg);
  -moz-filter: saturate(0%) sepia(20%) hue-rotate(20deg);
  -ms-filter: saturate(0%) sepia(20%) hue-rotate(20deg);
  -o-filter: saturate(0%) sepia(20%) hue-rotate(20deg);
  filter: saturate(0%) sepia(20%) hue-rotate(20deg);
}

.sec-map .text-wrap {
  position: relative;
  top: -0.4vw;
  width: 47.083333333333336vw;
}

.sec-map .map-title {
  margin-bottom: 1vw;
  /* 常に40px */
  font-size: 40px;
  line-height: 1;
  font-family: var(--font-en-sub);
}

.sec-map .map-subtitle {
  /* 常に20px */
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: var(--letter-spacing_01);
}

.list-wrap {
  margin: 2.7vw 0 2.1vw;
}

.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;
}


/* ページ内リンク用 可変id */
#contact {
  /* 1920px基準で165px */
  margin-top: 8.59375vw;
}

/* ---  お問い合わせセクション  --- */
.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 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5vw;
  position: relative;
  margin-bottom: 0.6vw;
  color: #FFC352;
  font-weight: 700;
  font-size: clamp(15px, 0.8333333333333334vw, 16px);
  line-height: 1;
}

.sec-contact .excl-mark::before {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1.40625vw;
  width: clamp(20px, 1.25vw, 24px);
  height: clamp(20px, 1.25vw, 24px);
  border-radius: 100%;
  background-color: #FFC352;
  color: var(--font-color);
  font-weight: 700;
  font-size: clamp(15px, 0.8333333333333334vw, 16px);
  content: '!';
}

.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: var(--font-weight-bold);
}

.form-group label,
.form-group input,
.form-group textarea,
.address-wrapper span,
.confirm-text,
form button {
  /* 常に16px */
  font-size: 16px;
  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: 5.15625vw;
}

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

.address-wrapper span {
  flex-shrink: 0;
  display: inline-block;
  font-weight: var(--font-weight-bold);
}

.custom-checkbox {
  align-items: center;
  gap: 10px;
  position: relative;
  font-weight: var(--font-weight-bold);
  cursor: pointer;
}

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

.checkbox-mark {
  display: inline-block;
  flex-shrink: 0;
  position: relative;
  /* 常に21px */
  width: 21px;
  height: 21px;
  border: var(--border-solid);
  background-color: var(--font-color);
}

/* チェックマーク */
.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 #571C00;
  border-width: 0 2px 2px 0;
  content: '';
}

.privacy-notice {
  padding: 0.2vw 0 2.03125vw;/* 6px/1920 0 39px/1920 */
  font-weight: var(--font-weight-bold);
  font-size: clamp(14px, 0.8333333333333334vw, 16px);
  line-height: 1.428571428571429;
  letter-spacing: var(--letter-spacing_01);
}

.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: 12px;
  width: 100%;
  padding: 0.9vw 0;
  border: var(--border-solid);
  background: var(--font-color);
  color: #571C00;
  font-size: clamp(16px, 1.0416666666666665vw, 20px);
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.submit-btn.-back {
  background: transparent;
  color: var(--font-color);
}

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

.submit-btn .arrow-right {
  display: inline-block;
  position: relative;
  /* 常に21px */
  width: 21px;
  height: 21px;
  background-color: #571C00;
}

.submit-btn:hover .arrow-right {
  background-color: transparent;
}

.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 var(--font-color);
  border-right: solid 0.10416666666666667vw var(--font-color);
  content: '';
}

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


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

.icon-wrap {
  justify-content: center;
  align-items: center;
  gap: 70px;
  margin: 2vw 0;
}

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;
  filter: fill(var(--font-color));
}

.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;
}

.address-text {
  margin-top: 1.6vw;
  font-size: 14px;
  line-height: 2;
  letter-spacing: var(--letter-spacing_01);
}

footer p.copy {
  margin-top: 4.7vw;
  /* 常に18px */
  font-size: 18px;
  line-height: 1.222222222222222;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
}


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


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

  /* ヘッダー */
  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: 97px 0 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* iOSでのスムーズスクロール */
    background: url(../img/main_bg.jpg) no-repeat center center / cover;
    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: 15vw;
    font-size: clamp(16px, 10.666666666666668vw, 40px);
  }

  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: 65px 0 0;
    padding: 30px 0 29px;
    font-size: clamp(15px, 8vw, 30px);
  }

  .nav-contact .slash {
    margin: 0 clamp(1px, 3.2vw, 12px);/* 12px/375 */
  }

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

  .nav-sns .icon-wrap {
    gap: clamp(5px, 10.666666666666668vw, 40px);
  }

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

  nav>ul>li.kv__info-text::before {
    width: 14px;
  }

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

  nav a span {
    transition: none !important;
  }

  .nav-contact .ja-sub {
    font-size: clamp(12px, 6.133333333333333vw, 23px);
  }

  .header.sp-tablet {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 999;
    width: calc(100% - 5vw);
    margin-right: 3vw;
    margin-left: 2vw;
    padding: 1.8vw 0;
  }

  .hamburger-wrap {
    justify-content: space-between;
    align-items: center;
  }

  .header.sp-tablet .title01 {
    font-size: 3vw;
    line-height: 1;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

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

  .isolate-menu {
    margin-right: 2.9473684210526314vw;
    margin-left: auto;
    font-size: clamp(15px, 1.3541666666666667vw, 26px);
  }

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

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

  .hamburger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--font-color);
    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) {
  .sec-pattern01 {
    flex-direction: column;
    gap: 6vw;
  }

  .sec-pattern01 .text-wrap,
  .sec-pattern01 .img-solo {
    width: 100% !important;
  }

  .sec-pattern01.-reverse>.flex {
    flex-direction: column;
    gap: 6vw;
  }

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

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

  .divide-line>*:nth-child(n+2)::before {
    display: none;
  }

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

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

  .tab-btn:not(.active) {
    opacity: 0.3;
  }

  .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-pattern02 .c-text {
    width: 100%;
  }

  .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;
  }

  .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;
  }

  .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;
  }

  .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;
  }
}


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

  .title02 {
    text-align: center;
  }

  .c-text {
    font-size: 4vw !important;
    line-height: 2.266666666666667 !important;
  }

  .content-bg {
    background: url(../img/main_bg_sp.jpg) repeat center top / cover;
  }

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

  /* ヘッダー */
  .header.sp-tablet {
    width: calc(100% - (4.3999999999999995vw + 3.4666666666666663vw));
    margin-right: 4.3999999999999995vw;
    margin-left: 3.4666666666666663vw;
    padding: 3.7vw 0;
  }
  
  .header.sp-tablet .title01 {
    font-size: 6.4vw;
  }

  /* ハンバーガーメニュー */
  .hamburger {
    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;
  }

  /* キービジュアル */
  #kv .catchphrase {
    font-size: 19.5vh;
    text-align: center;
  }

  .swiper-kv .swiper-wrapper {
    height: 87dvh;
  }

  .kv__pagination {
    height: 13dvh;
    margin-right: 4.8vw;/* 18px/375 */
    margin-left: 3.7vw;/* 10px/375 */
    font-size: 2.933333333333333vw;/* 11px/375 */
  }

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

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

  .kv__pagination-inner {
    flex-direction: column;
    position: relative;
    top: -1.3vw;
  }

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

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

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


  article section {
    padding: 0 5.066666666666666vw;
  }

  .sec-heading {
    margin-top: 32.9vw;
  }

  .sec-heading .heading-title {
    font-size: 5.333333333333334vw;
  }


  #about {
    margin-top: 39.6vw;
  }

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

  .sec-pattern01 .title02 {
    margin-bottom: 0;
  }


  #profile {
    margin-top: 23vw;
  }

  .sec-pattern01.-reverse .title02 {
    margin-bottom: 11.2vw;
  }

  .sec-pattern01.-reverse>.flex {
    gap: 14.1vw;
  }

  .sec-pattern01.-reverse .title-wrap {
    margin-bottom: 8.5vw;
  }

  .sec-pattern01.-reverse .title03 {
    margin-bottom: 4vw;
    line-height: 0.875;
  }

  .parallax {
    right: -26vw !important;
    bottom: -23.5vw !important;
    width: 126.13333333333334vw;
  }


  #menu_system{
    margin-top: 56vw;
  }

  /* セクションパターン04 */
  .sec-pattern04 .title02 {
    margin-bottom: 11vw;
  }

  .menu-grid {
    grid-template-columns: 1fr;
    gap: 6.133333333333333vw;
  }

  .menu-card {
    aspect-ratio: 334/339;
  }

  .menu-card-content h4 {
    margin-bottom: 3vw;
    font-size: 8vw;
    line-height: 1;
  }

  .menu-card-content p {
    font-size: 3.733333333333334vw;
  }


  #tab-area {
    margin-top: 21vw;
    margin-bottom: 29.5vw;
  }

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

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

  .tab-buttons {
    flex-direction: column;
    row-gap: 10.3vw;
    top: 0;
  }

  .tab-btn::after {
    bottom: -0.4em;
    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: 4vw;
    text-indent: -4vw;
  }

  .tab-content li::marker {
    font-size: 4vw;
  }


  /* ---  画像セクション  --- */
  .sec-image {
    aspect-ratio: 375/287;
    background-position: 70% center;
  }


  #gallery {
    margin-top: 70.5vw;
  }

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

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

  .gallery-slider-container {
    width: 95vw;
  }

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

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

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

  .gallery-numbers {
    gap: 8.1vw;
  }

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


  #q_and_a {
    margin-top: 33.5vw;
  }

  /* アコーディオンセクション */
  .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 */
  }

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

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

  .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: 34.9vw;
  }

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

  .sec-map>.flex>* {
    width: 100% !important;
    height: auto;
    aspect-ratio: 1 / 1;
  }

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

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

  .sec-map .text-wrap {
    top: 0;
  }

  .sec-map .map-title {
    margin-bottom: 12.5vw;
    line-height: 1.175;
  }

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

  .list-wrap {
    margin: 19.3vw 0 4vw;
  }

  .list-wrap dl {
    padding: 3.6vw 0;
  }

  .list-wrap dl.c-text {
    font-size: 4vw;
    line-height: 1.6;
  }

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


  #contact {
    margin-top: 35vw;
  }

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

  .sec-contact .excl-mark {
    margin-bottom: 1.8vw;
    gap: 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: 45vw 0 10.266666666666667vw;/* 38.5px/375 */
    padding: 0 5.866666666666666vw;/* 22px/375 */
  }

  footer .title01 {
    font-size: 10.666666666666668vw;
    line-height: 1.175;
  }

  footer .icon-wrap {
    flex-wrap: wrap;
    column-gap: 18.666666666666668vw;
    row-gap: 9.733333333333333vw;
    width: 57.41866666666666vw;
    margin: 17.7vw 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: 4.8vw;
    line-height: 1.055555555555556;
    text-align: left;
  }
}