@charset "UTF-8";
/* =========================================================
  Common
========================================================= */
/* =========================================================
    Mixin/index
========================================================= */
.c-scroll-down {
  position: absolute;
  left: 50%;
  bottom: 2rem;
  transform: translateX(-50%);
  width: 2px;
}
.c-scroll-down-border {
  position: relative;
  top: 10px;
  width: 100%;
  height: 100px;
  overflow: hidden;
}
.c-scroll-down-border::before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 40px;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  animation: scrollbar 3s ease-in-out infinite;
  margin: auto;
}

@keyframes scrollbar {
  0% {
    height: 0;
    top: 0;
  }
  50% {
    top: 0;
    height: 100%;
  }
  100% {
    top: 100%;
  }
}
/* 初期状態：透明で20px下に配置 */
.js-fade-up {
  opacity: 0;
  transform: translateY(200px);
  transition: opacity 1.6s ease-out, transform 1.6s ease-out;
  will-change: opacity, transform; /* パフォーマンス向上 */
}

/* 表示状態：不透明で元の位置に戻る */
.js-fade-up.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* 煙を包むコンテナ */
.u-smoke-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1; /* 背景とコンテンツの間に配置 */
  pointer-events: none; /* クリックを邪魔しない */
  filter: url(#smoke-filter); /* SVGフィルターを適用 */
  opacity: 0.6;
}

/* 煙の粒子（グラデーションの塊） */
.u-smoke-item {
  position: absolute;
  bottom: -20%;
  left: 0;
  width: 150%;
  height: 150%;
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.1) 40%, transparent 70%);
  animation: smoke-rise 20s linear infinite;
}

.u-smoke-item:nth-child(2) {
  left: -50%;
  animation-duration: 25s;
  animation-delay: -5s;
  opacity: 0.5;
}

/* 下から上へゆっくり昇るアニメーション */
@keyframes smoke-rise {
  0% {
    transform: translateY(0) scale(1) rotate(0deg);
  }
  50% {
    transform: translateY(-10%) scale(1.1) rotate(10deg);
  }
  100% {
    transform: translateY(-20%) scale(1.2) rotate(20deg);
  }
}
/* =========================================================
    Setting/index
========================================================= */
/* =========================================================
  Common
========================================================= */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 2;
}

/* フォーム要素のリセット */
input,
button,
textarea,
select {
  font: inherit; /* 親要素のフォント設定を継承 */
  color: inherit; /* 親要素の文字色を継承 */
  border: none;
  background: transparent;
  cursor: pointer;
}

/* 3. 要素の視覚的リセット */
/* リストのデフォルトスタイル（点や数字）を削除 */
ol, ul {
  list-style: none;
}

/* 画像のレスポンシブ対応と描画の最適化 */
img {
  display: block; /* インライン要素からブロック要素に変更し、下にできる余白を削除 */
  max-width: 100%; /* 親要素の幅を超えないようにする */
  height: auto; /* 縦横比を維持 */
}

/* リンク要素 */
a {
  color: inherit; /* 親要素の文字色を継承 */
  text-decoration: none; /* デフォルトの下線を削除 */
  cursor: pointer;
}

/* HTML5のセマンティック要素（一部ブラウザでブロック要素にならない問題を修正） */
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

/* 4. アクセシビリティ関連 */
/* タッチデバイスでのタップ時の背景色ハイライトを無効化（デザインを維持） */
a:focus,
button:focus {
  /* ブラウザのデフォルトのフォーカススタイルを上書きする場合 */
  outline: none;
}

/* 5. WordPress固有のリセット */
/* WordPressで標準で挿入される不要な要素の余白をリセット */
.aligncenter,
.alignleft,
.alignright {
  margin-left: auto;
  margin-right: auto;
}

.wp-caption {
  max-width: 100%;
}

/* =========================================================
  Common
========================================================= */
/* =========================================================
  Common
========================================================= */
:root {
  --container-width: 1366px;
  --container-width-sm: 1200px;
  --container-width-ss: 1024px;
  --container-width-sss: 920px;
  --container-width-sp: 750px;
  --container-width-sp-sm: 480px;
  --container-padding: 2.0rem;
  --container-padding-sm: 2.0rem;
  --container-padding-ss: 2.0rem;
  --container-padding-sss: 2.0rem;
  --bp-sp: var(--theme-bp-sp, 767px);
  --bp-tb: var(--theme-bp-tb, 1024px);
  --container-max-width: var(--bp-tb, 1024px);
  --font-family-jp: "Noto Sans JP", sans-serif;
  --font-family-en: "Montserrat", sans-serif;
  --color-base-1: #256B29;
  --color-base-2: #319636;
  --color-base-3: #97CA9A;
  --color-base-4: #D6EAD7;
  --color-base-5: #EBF5EB;
  --color-gray-1: #6e6e6e;
  --color-gray-2: #d6d8d7;
  --color-gray-3: #9b9b9b;
  --color-gray-4: #e2e4e3;
  --color-accent-1: #e8fd1e;
  --color-accent-2: #F8F9A7;
  --color-text-1: #000;
  --color-text-2: #211815;
  --color-base-3-rgb: 151 202 154;
  --color-btn-base-1: #009f41;
  --color-btn-base-2: #06c755;
  --color-btn-accent-1: #d9810c;
  --color-btn-accent-2: #e9ab58;
  --color-white: #fff;
  --color-black: #000;
}

/* =========================================================
  Common
========================================================= */
/* =========================================================
  Common
========================================================= */
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
html,
body {
  --base-vw: 1366;
  font-size: calc(100 / var(--base-vw) * 1vw);
  color: var(--color-text-1);
  font-family: var(--font-family-jp);
  line-height: 1.6;
}
@media (width <= 750px) {
  html,
  body {
    --base-vw: 750;
  }
}

body.is-fixed {
  overflow: hidden;
  /* iOS（Safari）対策として必要に応じて以下を追加 */
  height: 100%;
  width: 100%;
}

@media (1024px < width) {
  .u-hidden-pc,
  .u-only-sp,
  .u-only-tb {
    display: none !important;
  }
}
@media (width <= 750px) {
  .u-hidden-sp,
  .u-only-tb,
  .u-only-pc {
    display: none !important;
  }
}
/* =========================================================
  Common
========================================================= */
.u-text-base-1 {
  color: var(--color-base-1);
}

.u-bg-base-1 {
  background-color: var(--color-base-1);
}

.u-text-base-2 {
  color: var(--color-base-2);
}

.u-bg-base-2 {
  background-color: var(--color-base-2);
}

.u-text-base-3 {
  color: var(--color-base-3);
}

.u-bg-base-3 {
  background-color: var(--color-base-3);
}

.u-text-base-4 {
  color: var(--color-base-4);
}

.u-bg-base-4 {
  background-color: var(--color-base-4);
}

.u-text-base-5 {
  color: var(--color-base-5);
}

.u-bg-base-5 {
  background-color: var(--color-base-5);
}

.u-text-gray-1 {
  color: var(--color-gray-1);
}

.u-bg-gray-1 {
  background-color: var(--color-gray-1);
}

.u-text-gray-2 {
  color: var(--color-gray-2);
}

.u-bg-gray-2 {
  background-color: var(--color-gray-2);
}

.u-text-gray-3 {
  color: var(--color-gray-3);
}

.u-bg-gray-3 {
  background-color: var(--color-gray-3);
}

.u-text-gray-4 {
  color: var(--color-gray-4);
}

.u-bg-gray-4 {
  background-color: var(--color-gray-4);
}

.u-text-accent-1 {
  color: var(--color-accent-1);
}

.u-bg-accent-1 {
  background-color: var(--color-accent-1);
}

.u-text-accent-2 {
  color: var(--color-accent-2);
}

.u-bg-accent-2 {
  background-color: var(--color-accent-2);
}

.u-text-text-1 {
  color: var(--color-text-1);
}

.u-bg-text-1 {
  background-color: var(--color-text-1);
}

.u-text-text-2 {
  color: var(--color-text-2);
}

.u-bg-text-2 {
  background-color: var(--color-text-2);
}

.u-text-base-3-rgb {
  color: var(--color-base-3-rgb);
}

.u-bg-base-3-rgb {
  background-color: var(--color-base-3-rgb);
}

.u-text-btn-base-1 {
  color: var(--color-btn-base-1);
}

.u-bg-btn-base-1 {
  background-color: var(--color-btn-base-1);
}

.u-text-btn-base-2 {
  color: var(--color-btn-base-2);
}

.u-bg-btn-base-2 {
  background-color: var(--color-btn-base-2);
}

.u-text-btn-accent-1 {
  color: var(--color-btn-accent-1);
}

.u-bg-btn-accent-1 {
  background-color: var(--color-btn-accent-1);
}

.u-text-btn-accent-2 {
  color: var(--color-btn-accent-2);
}

.u-bg-btn-accent-2 {
  background-color: var(--color-btn-accent-2);
}

.u-text-white {
  color: var(--color-white);
}

.u-bg-white {
  background-color: var(--color-white);
}

.u-text-black {
  color: var(--color-black);
}

.u-bg-black {
  background-color: var(--color-black);
}

.u-ff-jp {
  font-family: '"Noto Sans JP", sans-serif';
}

.u-ff-en {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
}

.u-ff-lato {
  font-family: "Lato", "Montserrat", "Noto Sans JP", sans-serif;
}

/* Font Weight Utilities */
.u-fw-100 {
  font-weight: 100;
} /* Thin */
.u-fw-200 {
  font-weight: 200;
} /* Extra Light */
.u-fw-300 {
  font-weight: 300;
} /* Light */
.u-fw-400 {
  font-weight: 400;
} /* Regular / Normal */
.u-fw-500 {
  font-weight: 500;
} /* Medium */
.u-fw-600 {
  font-weight: 600;
} /* Semi Bold */
.u-fw-700 {
  font-weight: 700;
} /* Bold */
.u-fw-800 {
  font-weight: 800;
} /* Extra Bold */
.u-fw-900 {
  font-weight: 900;
} /* Black */
.u-ta-c {
  text-align: center;
}

.u-mw-full {
  width: 100%;
}

/* 補助的な別名（より直感的な指定用） */
.u-fw-normal {
  font-weight: 400 !important;
}

.u-fw-bold {
  font-weight: 700 !important;
}

.u-relative {
  position: relative;
}

.u-block {
  display: block;
}

.u-inline-block {
  display: inline-block;
}

.u-fs-10 {
  font-size: 1rem;
}

.u-fs-12 {
  font-size: 1.2rem;
}

.u-fs-14 {
  font-size: 1.4rem;
}

.u-fs-16 {
  font-size: 1.6rem;
}

.u-fs-18 {
  font-size: 1.8rem;
}

.u-fs-20 {
  font-size: 2rem;
}

.u-fs-22 {
  font-size: 2.2rem;
}

.u-fs-24 {
  font-size: 2.4rem;
}

.u-fs-26 {
  font-size: 2.6rem;
}

.u-fs-28 {
  font-size: 2.8rem;
}

.u-fs-30 {
  font-size: 3rem;
}

.u-fs-32 {
  font-size: 3.2rem;
}

.u-fs-34 {
  font-size: 3.4rem;
}

.u-fs-36 {
  font-size: 3.6rem;
}

.u-fs-38 {
  font-size: 3.8rem;
}

.u-fs-40 {
  font-size: 4rem;
}

.u-fs-42 {
  font-size: 4.2rem;
}

.u-fs-44 {
  font-size: 4.4rem;
}

.u-fs-46 {
  font-size: 4.6rem;
}

.u-fs-48 {
  font-size: 4.8rem;
}

.u-fs-60 {
  font-size: 6rem;
}

.u-fs-80 {
  font-size: 8rem;
}

.u-fs-108 {
  font-size: 10.8rem;
}

.u-fs-224 {
  font-size: 22.4rem;
}

.u-fs-10-12 {
  font-size: clamp(1rem, 0.73vw + 0.05rem, 1.2rem);
}

.u-fs-12-14 {
  font-size: clamp(1.2rem, 0.73vw + 0.07rem, 1.4rem);
}

.u-fs-14-16 {
  font-size: clamp(1.4rem, 0.73vw + 0.09rem, 1.6rem);
}

.u-fs-16-20 {
  font-size: clamp(1.6rem, 1.46vw + 0.05rem, 2rem);
}

.u-fs-16-24 {
  font-size: clamp(1.6rem, 2.92vw + -0.06rem, 2.4rem);
}

.u-fs-20-28 {
  font-size: clamp(2rem, 2.92vw + -0.02rem, 2.8rem);
}

.u-fs-24-32 {
  font-size: clamp(2.4rem, 2.92vw + 0.02rem, 3.2rem);
}

.u-fs-32-48 {
  font-size: clamp(3.2rem, 5.84vw + -0.12rem, 4.8rem);
}

.u-gap-10-20 {
  gap: clamp(1rem, 3.65vw + -0.17rem, 2rem);
}

.u-gap-20-40 {
  gap: clamp(2rem, 7.3vw + -0.35rem, 4rem);
}

.u-gap-40-60 {
  gap: clamp(4rem, 7.3vw + -0.15rem, 6rem);
}

.u-gap-60-100 {
  gap: clamp(6rem, 14.6vw + -0.49rem, 10rem);
}

.u-ls-002 {
  letter-spacing: 0.02em;
}

.u-ls-004 {
  letter-spacing: 0.04em;
}

.u-ls-005 {
  letter-spacing: 0.05em;
}

.u-ls-006 {
  letter-spacing: 0.06em;
}

.u-ls-010 {
  letter-spacing: 0.1em;
}

.u-ls-015 {
  letter-spacing: 0.15em;
}

.u-ls-020 {
  letter-spacing: 0.2em;
}

.u-lh-080 {
  line-height: 80%;
}

.u-lh-090 {
  line-height: 90%;
}

.u-lh-100 {
  line-height: 100%;
}

.u-lh-110 {
  line-height: 110%;
}

.u-lh-120 {
  line-height: 120%;
}

.u-lh-130 {
  line-height: 130%;
}

.u-lh-140 {
  line-height: 140%;
}

.u-lh-160 {
  line-height: 160%;
}

.u-lh-180 {
  line-height: 180%;
}

.u-lh-200 {
  line-height: 200%;
}

.u-z-000 {
  z-index: 0;
}

.u-z-001 {
  z-index: 1;
}

.u-z-009 {
  z-index: 9;
}

.u-object-contain {
  object-fit: contain !important;
}

.u-object-cover {
  object-fit: cover !important;
}

.u-dot {
  display: inline-block !important;
  margin-inline: -0.25em;
}
.u-dot__b-s {
  display: inline-block;
  margin-inline: -0.25em;
}
.u-dot__b-m {
  display: inline-block;
  margin-inline: -0.5em;
}
.u-dot__l-s {
  display: inline-block;
  margin-inline: -0.25em 0;
}
.u-dot__l-m {
  display: inline-block;
  margin-inline: -0.5em 0;
}
.u-dot__r-s {
  display: inline-block;
  margin-inline: 0 -0.25em;
}
.u-dot__r-m {
  display: inline-block;
  margin-inline: 0 -0.5em;
}

/* =========================================================
    Component
========================================================= */
/* =========================================================
  Common
========================================================= */
.u-mt-02 {
  margin-top: 0.2rem;
}

.u-mb-02 {
  margin-bottom: 0.2rem;
}

.u-ml-02 {
  margin-left: 0.2rem;
}

.u-mr-02 {
  margin-right: 0.2rem;
}

.u-m-02 {
  margin: 0.2rem;
}

.u-my-02 {
  margin-top: 0.2rem;
  margin-bottom: 0.2rem;
}

.u-mx-02 {
  margin-left: 0.2rem;
  margin-right: 0.2rem;
}

.u-pt-02 {
  padding-top: 0.2rem;
}

.u-pb-02 {
  padding-bottom: 0.2rem;
}

.u-pl-02 {
  padding-left: 0.2rem;
}

.u-pr-02 {
  padding-right: 0.2rem;
}

.u-p-02 {
  padding: 0.2rem;
}

.u-py-02 {
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
}

.u-px-02 {
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}

.u-mt-04 {
  margin-top: 0.4rem;
}

.u-mb-04 {
  margin-bottom: 0.4rem;
}

.u-ml-04 {
  margin-left: 0.4rem;
}

.u-mr-04 {
  margin-right: 0.4rem;
}

.u-m-04 {
  margin: 0.4rem;
}

.u-my-04 {
  margin-top: 0.4rem;
  margin-bottom: 0.4rem;
}

.u-mx-04 {
  margin-left: 0.4rem;
  margin-right: 0.4rem;
}

.u-pt-04 {
  padding-top: 0.4rem;
}

.u-pb-04 {
  padding-bottom: 0.4rem;
}

.u-pl-04 {
  padding-left: 0.4rem;
}

.u-pr-04 {
  padding-right: 0.4rem;
}

.u-p-04 {
  padding: 0.4rem;
}

.u-py-04 {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.u-px-04 {
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.u-mt-06 {
  margin-top: 0.6rem;
}

.u-mb-06 {
  margin-bottom: 0.6rem;
}

.u-ml-06 {
  margin-left: 0.6rem;
}

.u-mr-06 {
  margin-right: 0.6rem;
}

.u-m-06 {
  margin: 0.6rem;
}

.u-my-06 {
  margin-top: 0.6rem;
  margin-bottom: 0.6rem;
}

.u-mx-06 {
  margin-left: 0.6rem;
  margin-right: 0.6rem;
}

.u-pt-06 {
  padding-top: 0.6rem;
}

.u-pb-06 {
  padding-bottom: 0.6rem;
}

.u-pl-06 {
  padding-left: 0.6rem;
}

.u-pr-06 {
  padding-right: 0.6rem;
}

.u-p-06 {
  padding: 0.6rem;
}

.u-py-06 {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}

.u-px-06 {
  padding-left: 0.6rem;
  padding-right: 0.6rem;
}

.u-mt-08 {
  margin-top: 0.8rem;
}

.u-mb-08 {
  margin-bottom: 0.8rem;
}

.u-ml-08 {
  margin-left: 0.8rem;
}

.u-mr-08 {
  margin-right: 0.8rem;
}

.u-m-08 {
  margin: 0.8rem;
}

.u-my-08 {
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
}

.u-mx-08 {
  margin-left: 0.8rem;
  margin-right: 0.8rem;
}

.u-pt-08 {
  padding-top: 0.8rem;
}

.u-pb-08 {
  padding-bottom: 0.8rem;
}

.u-pl-08 {
  padding-left: 0.8rem;
}

.u-pr-08 {
  padding-right: 0.8rem;
}

.u-p-08 {
  padding: 0.8rem;
}

.u-py-08 {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
}

.u-px-08 {
  padding-left: 0.8rem;
  padding-right: 0.8rem;
}

.u-mt-10 {
  margin-top: 1rem;
}

.u-mb-10 {
  margin-bottom: 1rem;
}

.u-ml-10 {
  margin-left: 1rem;
}

.u-mr-10 {
  margin-right: 1rem;
}

.u-m-10 {
  margin: 1rem;
}

.u-my-10 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.u-mx-10 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.u-pt-10 {
  padding-top: 1rem;
}

.u-pb-10 {
  padding-bottom: 1rem;
}

.u-pl-10 {
  padding-left: 1rem;
}

.u-pr-10 {
  padding-right: 1rem;
}

.u-p-10 {
  padding: 1rem;
}

.u-py-10 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.u-px-10 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.u-mt-12 {
  margin-top: 1.2rem;
}

.u-mb-12 {
  margin-bottom: 1.2rem;
}

.u-ml-12 {
  margin-left: 1.2rem;
}

.u-mr-12 {
  margin-right: 1.2rem;
}

.u-m-12 {
  margin: 1.2rem;
}

.u-my-12 {
  margin-top: 1.2rem;
  margin-bottom: 1.2rem;
}

.u-mx-12 {
  margin-left: 1.2rem;
  margin-right: 1.2rem;
}

.u-pt-12 {
  padding-top: 1.2rem;
}

.u-pb-12 {
  padding-bottom: 1.2rem;
}

.u-pl-12 {
  padding-left: 1.2rem;
}

.u-pr-12 {
  padding-right: 1.2rem;
}

.u-p-12 {
  padding: 1.2rem;
}

.u-py-12 {
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
}

.u-px-12 {
  padding-left: 1.2rem;
  padding-right: 1.2rem;
}

.u-mt-14 {
  margin-top: 1.4rem;
}

.u-mb-14 {
  margin-bottom: 1.4rem;
}

.u-ml-14 {
  margin-left: 1.4rem;
}

.u-mr-14 {
  margin-right: 1.4rem;
}

.u-m-14 {
  margin: 1.4rem;
}

.u-my-14 {
  margin-top: 1.4rem;
  margin-bottom: 1.4rem;
}

.u-mx-14 {
  margin-left: 1.4rem;
  margin-right: 1.4rem;
}

.u-pt-14 {
  padding-top: 1.4rem;
}

.u-pb-14 {
  padding-bottom: 1.4rem;
}

.u-pl-14 {
  padding-left: 1.4rem;
}

.u-pr-14 {
  padding-right: 1.4rem;
}

.u-p-14 {
  padding: 1.4rem;
}

.u-py-14 {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
}

.u-px-14 {
  padding-left: 1.4rem;
  padding-right: 1.4rem;
}

.u-mt-16 {
  margin-top: 1.6rem;
}

.u-mb-16 {
  margin-bottom: 1.6rem;
}

.u-ml-16 {
  margin-left: 1.6rem;
}

.u-mr-16 {
  margin-right: 1.6rem;
}

.u-m-16 {
  margin: 1.6rem;
}

.u-my-16 {
  margin-top: 1.6rem;
  margin-bottom: 1.6rem;
}

.u-mx-16 {
  margin-left: 1.6rem;
  margin-right: 1.6rem;
}

.u-pt-16 {
  padding-top: 1.6rem;
}

.u-pb-16 {
  padding-bottom: 1.6rem;
}

.u-pl-16 {
  padding-left: 1.6rem;
}

.u-pr-16 {
  padding-right: 1.6rem;
}

.u-p-16 {
  padding: 1.6rem;
}

.u-py-16 {
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
}

.u-px-16 {
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}

.u-mt-18 {
  margin-top: 1.8rem;
}

.u-mb-18 {
  margin-bottom: 1.8rem;
}

.u-ml-18 {
  margin-left: 1.8rem;
}

.u-mr-18 {
  margin-right: 1.8rem;
}

.u-m-18 {
  margin: 1.8rem;
}

.u-my-18 {
  margin-top: 1.8rem;
  margin-bottom: 1.8rem;
}

.u-mx-18 {
  margin-left: 1.8rem;
  margin-right: 1.8rem;
}

.u-pt-18 {
  padding-top: 1.8rem;
}

.u-pb-18 {
  padding-bottom: 1.8rem;
}

.u-pl-18 {
  padding-left: 1.8rem;
}

.u-pr-18 {
  padding-right: 1.8rem;
}

.u-p-18 {
  padding: 1.8rem;
}

.u-py-18 {
  padding-top: 1.8rem;
  padding-bottom: 1.8rem;
}

.u-px-18 {
  padding-left: 1.8rem;
  padding-right: 1.8rem;
}

.u-mt-20 {
  margin-top: 2rem;
}

.u-mb-20 {
  margin-bottom: 2rem;
}

.u-ml-20 {
  margin-left: 2rem;
}

.u-mr-20 {
  margin-right: 2rem;
}

.u-m-20 {
  margin: 2rem;
}

.u-my-20 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.u-mx-20 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.u-pt-20 {
  padding-top: 2rem;
}

.u-pb-20 {
  padding-bottom: 2rem;
}

.u-pl-20 {
  padding-left: 2rem;
}

.u-pr-20 {
  padding-right: 2rem;
}

.u-p-20 {
  padding: 2rem;
}

.u-py-20 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.u-px-20 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.u-mt-22 {
  margin-top: 2.2rem;
}

.u-mb-22 {
  margin-bottom: 2.2rem;
}

.u-ml-22 {
  margin-left: 2.2rem;
}

.u-mr-22 {
  margin-right: 2.2rem;
}

.u-m-22 {
  margin: 2.2rem;
}

.u-my-22 {
  margin-top: 2.2rem;
  margin-bottom: 2.2rem;
}

.u-mx-22 {
  margin-left: 2.2rem;
  margin-right: 2.2rem;
}

.u-pt-22 {
  padding-top: 2.2rem;
}

.u-pb-22 {
  padding-bottom: 2.2rem;
}

.u-pl-22 {
  padding-left: 2.2rem;
}

.u-pr-22 {
  padding-right: 2.2rem;
}

.u-p-22 {
  padding: 2.2rem;
}

.u-py-22 {
  padding-top: 2.2rem;
  padding-bottom: 2.2rem;
}

.u-px-22 {
  padding-left: 2.2rem;
  padding-right: 2.2rem;
}

.u-mt-24 {
  margin-top: 2.4rem;
}

.u-mb-24 {
  margin-bottom: 2.4rem;
}

.u-ml-24 {
  margin-left: 2.4rem;
}

.u-mr-24 {
  margin-right: 2.4rem;
}

.u-m-24 {
  margin: 2.4rem;
}

.u-my-24 {
  margin-top: 2.4rem;
  margin-bottom: 2.4rem;
}

.u-mx-24 {
  margin-left: 2.4rem;
  margin-right: 2.4rem;
}

.u-pt-24 {
  padding-top: 2.4rem;
}

.u-pb-24 {
  padding-bottom: 2.4rem;
}

.u-pl-24 {
  padding-left: 2.4rem;
}

.u-pr-24 {
  padding-right: 2.4rem;
}

.u-p-24 {
  padding: 2.4rem;
}

.u-py-24 {
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
}

.u-px-24 {
  padding-left: 2.4rem;
  padding-right: 2.4rem;
}

.u-mt-26 {
  margin-top: 2.6rem;
}

.u-mb-26 {
  margin-bottom: 2.6rem;
}

.u-ml-26 {
  margin-left: 2.6rem;
}

.u-mr-26 {
  margin-right: 2.6rem;
}

.u-m-26 {
  margin: 2.6rem;
}

.u-my-26 {
  margin-top: 2.6rem;
  margin-bottom: 2.6rem;
}

.u-mx-26 {
  margin-left: 2.6rem;
  margin-right: 2.6rem;
}

.u-pt-26 {
  padding-top: 2.6rem;
}

.u-pb-26 {
  padding-bottom: 2.6rem;
}

.u-pl-26 {
  padding-left: 2.6rem;
}

.u-pr-26 {
  padding-right: 2.6rem;
}

.u-p-26 {
  padding: 2.6rem;
}

.u-py-26 {
  padding-top: 2.6rem;
  padding-bottom: 2.6rem;
}

.u-px-26 {
  padding-left: 2.6rem;
  padding-right: 2.6rem;
}

.u-mt-28 {
  margin-top: 2.8rem;
}

.u-mb-28 {
  margin-bottom: 2.8rem;
}

.u-ml-28 {
  margin-left: 2.8rem;
}

.u-mr-28 {
  margin-right: 2.8rem;
}

.u-m-28 {
  margin: 2.8rem;
}

.u-my-28 {
  margin-top: 2.8rem;
  margin-bottom: 2.8rem;
}

.u-mx-28 {
  margin-left: 2.8rem;
  margin-right: 2.8rem;
}

.u-pt-28 {
  padding-top: 2.8rem;
}

.u-pb-28 {
  padding-bottom: 2.8rem;
}

.u-pl-28 {
  padding-left: 2.8rem;
}

.u-pr-28 {
  padding-right: 2.8rem;
}

.u-p-28 {
  padding: 2.8rem;
}

.u-py-28 {
  padding-top: 2.8rem;
  padding-bottom: 2.8rem;
}

.u-px-28 {
  padding-left: 2.8rem;
  padding-right: 2.8rem;
}

.u-mt-30 {
  margin-top: 3rem;
}

.u-mb-30 {
  margin-bottom: 3rem;
}

.u-ml-30 {
  margin-left: 3rem;
}

.u-mr-30 {
  margin-right: 3rem;
}

.u-m-30 {
  margin: 3rem;
}

.u-my-30 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.u-mx-30 {
  margin-left: 3rem;
  margin-right: 3rem;
}

.u-pt-30 {
  padding-top: 3rem;
}

.u-pb-30 {
  padding-bottom: 3rem;
}

.u-pl-30 {
  padding-left: 3rem;
}

.u-pr-30 {
  padding-right: 3rem;
}

.u-p-30 {
  padding: 3rem;
}

.u-py-30 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.u-px-30 {
  padding-left: 3rem;
  padding-right: 3rem;
}

.u-mt-32 {
  margin-top: 3.2rem;
}

.u-mb-32 {
  margin-bottom: 3.2rem;
}

.u-ml-32 {
  margin-left: 3.2rem;
}

.u-mr-32 {
  margin-right: 3.2rem;
}

.u-m-32 {
  margin: 3.2rem;
}

.u-my-32 {
  margin-top: 3.2rem;
  margin-bottom: 3.2rem;
}

.u-mx-32 {
  margin-left: 3.2rem;
  margin-right: 3.2rem;
}

.u-pt-32 {
  padding-top: 3.2rem;
}

.u-pb-32 {
  padding-bottom: 3.2rem;
}

.u-pl-32 {
  padding-left: 3.2rem;
}

.u-pr-32 {
  padding-right: 3.2rem;
}

.u-p-32 {
  padding: 3.2rem;
}

.u-py-32 {
  padding-top: 3.2rem;
  padding-bottom: 3.2rem;
}

.u-px-32 {
  padding-left: 3.2rem;
  padding-right: 3.2rem;
}

.u-mt-34 {
  margin-top: 3.4rem;
}

.u-mb-34 {
  margin-bottom: 3.4rem;
}

.u-ml-34 {
  margin-left: 3.4rem;
}

.u-mr-34 {
  margin-right: 3.4rem;
}

.u-m-34 {
  margin: 3.4rem;
}

.u-my-34 {
  margin-top: 3.4rem;
  margin-bottom: 3.4rem;
}

.u-mx-34 {
  margin-left: 3.4rem;
  margin-right: 3.4rem;
}

.u-pt-34 {
  padding-top: 3.4rem;
}

.u-pb-34 {
  padding-bottom: 3.4rem;
}

.u-pl-34 {
  padding-left: 3.4rem;
}

.u-pr-34 {
  padding-right: 3.4rem;
}

.u-p-34 {
  padding: 3.4rem;
}

.u-py-34 {
  padding-top: 3.4rem;
  padding-bottom: 3.4rem;
}

.u-px-34 {
  padding-left: 3.4rem;
  padding-right: 3.4rem;
}

.u-mt-36 {
  margin-top: 3.6rem;
}

.u-mb-36 {
  margin-bottom: 3.6rem;
}

.u-ml-36 {
  margin-left: 3.6rem;
}

.u-mr-36 {
  margin-right: 3.6rem;
}

.u-m-36 {
  margin: 3.6rem;
}

.u-my-36 {
  margin-top: 3.6rem;
  margin-bottom: 3.6rem;
}

.u-mx-36 {
  margin-left: 3.6rem;
  margin-right: 3.6rem;
}

.u-pt-36 {
  padding-top: 3.6rem;
}

.u-pb-36 {
  padding-bottom: 3.6rem;
}

.u-pl-36 {
  padding-left: 3.6rem;
}

.u-pr-36 {
  padding-right: 3.6rem;
}

.u-p-36 {
  padding: 3.6rem;
}

.u-py-36 {
  padding-top: 3.6rem;
  padding-bottom: 3.6rem;
}

.u-px-36 {
  padding-left: 3.6rem;
  padding-right: 3.6rem;
}

.u-mt-38 {
  margin-top: 3.8rem;
}

.u-mb-38 {
  margin-bottom: 3.8rem;
}

.u-ml-38 {
  margin-left: 3.8rem;
}

.u-mr-38 {
  margin-right: 3.8rem;
}

.u-m-38 {
  margin: 3.8rem;
}

.u-my-38 {
  margin-top: 3.8rem;
  margin-bottom: 3.8rem;
}

.u-mx-38 {
  margin-left: 3.8rem;
  margin-right: 3.8rem;
}

.u-pt-38 {
  padding-top: 3.8rem;
}

.u-pb-38 {
  padding-bottom: 3.8rem;
}

.u-pl-38 {
  padding-left: 3.8rem;
}

.u-pr-38 {
  padding-right: 3.8rem;
}

.u-p-38 {
  padding: 3.8rem;
}

.u-py-38 {
  padding-top: 3.8rem;
  padding-bottom: 3.8rem;
}

.u-px-38 {
  padding-left: 3.8rem;
  padding-right: 3.8rem;
}

.u-mt-40 {
  margin-top: 4rem;
}

.u-mb-40 {
  margin-bottom: 4rem;
}

.u-ml-40 {
  margin-left: 4rem;
}

.u-mr-40 {
  margin-right: 4rem;
}

.u-m-40 {
  margin: 4rem;
}

.u-my-40 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.u-mx-40 {
  margin-left: 4rem;
  margin-right: 4rem;
}

.u-pt-40 {
  padding-top: 4rem;
}

.u-pb-40 {
  padding-bottom: 4rem;
}

.u-pl-40 {
  padding-left: 4rem;
}

.u-pr-40 {
  padding-right: 4rem;
}

.u-p-40 {
  padding: 4rem;
}

.u-py-40 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.u-px-40 {
  padding-left: 4rem;
  padding-right: 4rem;
}

.u-mt-42 {
  margin-top: 4.2rem;
}

.u-mb-42 {
  margin-bottom: 4.2rem;
}

.u-ml-42 {
  margin-left: 4.2rem;
}

.u-mr-42 {
  margin-right: 4.2rem;
}

.u-m-42 {
  margin: 4.2rem;
}

.u-my-42 {
  margin-top: 4.2rem;
  margin-bottom: 4.2rem;
}

.u-mx-42 {
  margin-left: 4.2rem;
  margin-right: 4.2rem;
}

.u-pt-42 {
  padding-top: 4.2rem;
}

.u-pb-42 {
  padding-bottom: 4.2rem;
}

.u-pl-42 {
  padding-left: 4.2rem;
}

.u-pr-42 {
  padding-right: 4.2rem;
}

.u-p-42 {
  padding: 4.2rem;
}

.u-py-42 {
  padding-top: 4.2rem;
  padding-bottom: 4.2rem;
}

.u-px-42 {
  padding-left: 4.2rem;
  padding-right: 4.2rem;
}

.u-mt-44 {
  margin-top: 4.4rem;
}

.u-mb-44 {
  margin-bottom: 4.4rem;
}

.u-ml-44 {
  margin-left: 4.4rem;
}

.u-mr-44 {
  margin-right: 4.4rem;
}

.u-m-44 {
  margin: 4.4rem;
}

.u-my-44 {
  margin-top: 4.4rem;
  margin-bottom: 4.4rem;
}

.u-mx-44 {
  margin-left: 4.4rem;
  margin-right: 4.4rem;
}

.u-pt-44 {
  padding-top: 4.4rem;
}

.u-pb-44 {
  padding-bottom: 4.4rem;
}

.u-pl-44 {
  padding-left: 4.4rem;
}

.u-pr-44 {
  padding-right: 4.4rem;
}

.u-p-44 {
  padding: 4.4rem;
}

.u-py-44 {
  padding-top: 4.4rem;
  padding-bottom: 4.4rem;
}

.u-px-44 {
  padding-left: 4.4rem;
  padding-right: 4.4rem;
}

.u-mt-46 {
  margin-top: 4.6rem;
}

.u-mb-46 {
  margin-bottom: 4.6rem;
}

.u-ml-46 {
  margin-left: 4.6rem;
}

.u-mr-46 {
  margin-right: 4.6rem;
}

.u-m-46 {
  margin: 4.6rem;
}

.u-my-46 {
  margin-top: 4.6rem;
  margin-bottom: 4.6rem;
}

.u-mx-46 {
  margin-left: 4.6rem;
  margin-right: 4.6rem;
}

.u-pt-46 {
  padding-top: 4.6rem;
}

.u-pb-46 {
  padding-bottom: 4.6rem;
}

.u-pl-46 {
  padding-left: 4.6rem;
}

.u-pr-46 {
  padding-right: 4.6rem;
}

.u-p-46 {
  padding: 4.6rem;
}

.u-py-46 {
  padding-top: 4.6rem;
  padding-bottom: 4.6rem;
}

.u-px-46 {
  padding-left: 4.6rem;
  padding-right: 4.6rem;
}

.u-mt-48 {
  margin-top: 4.8rem;
}

.u-mb-48 {
  margin-bottom: 4.8rem;
}

.u-ml-48 {
  margin-left: 4.8rem;
}

.u-mr-48 {
  margin-right: 4.8rem;
}

.u-m-48 {
  margin: 4.8rem;
}

.u-my-48 {
  margin-top: 4.8rem;
  margin-bottom: 4.8rem;
}

.u-mx-48 {
  margin-left: 4.8rem;
  margin-right: 4.8rem;
}

.u-pt-48 {
  padding-top: 4.8rem;
}

.u-pb-48 {
  padding-bottom: 4.8rem;
}

.u-pl-48 {
  padding-left: 4.8rem;
}

.u-pr-48 {
  padding-right: 4.8rem;
}

.u-p-48 {
  padding: 4.8rem;
}

.u-py-48 {
  padding-top: 4.8rem;
  padding-bottom: 4.8rem;
}

.u-px-48 {
  padding-left: 4.8rem;
  padding-right: 4.8rem;
}

.u-mt-50 {
  margin-top: 5rem;
}

.u-mb-50 {
  margin-bottom: 5rem;
}

.u-ml-50 {
  margin-left: 5rem;
}

.u-mr-50 {
  margin-right: 5rem;
}

.u-m-50 {
  margin: 5rem;
}

.u-my-50 {
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.u-mx-50 {
  margin-left: 5rem;
  margin-right: 5rem;
}

.u-pt-50 {
  padding-top: 5rem;
}

.u-pb-50 {
  padding-bottom: 5rem;
}

.u-pl-50 {
  padding-left: 5rem;
}

.u-pr-50 {
  padding-right: 5rem;
}

.u-p-50 {
  padding: 5rem;
}

.u-py-50 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.u-px-50 {
  padding-left: 5rem;
  padding-right: 5rem;
}

.u-mt-52 {
  margin-top: 5.2rem;
}

.u-mb-52 {
  margin-bottom: 5.2rem;
}

.u-ml-52 {
  margin-left: 5.2rem;
}

.u-mr-52 {
  margin-right: 5.2rem;
}

.u-m-52 {
  margin: 5.2rem;
}

.u-my-52 {
  margin-top: 5.2rem;
  margin-bottom: 5.2rem;
}

.u-mx-52 {
  margin-left: 5.2rem;
  margin-right: 5.2rem;
}

.u-pt-52 {
  padding-top: 5.2rem;
}

.u-pb-52 {
  padding-bottom: 5.2rem;
}

.u-pl-52 {
  padding-left: 5.2rem;
}

.u-pr-52 {
  padding-right: 5.2rem;
}

.u-p-52 {
  padding: 5.2rem;
}

.u-py-52 {
  padding-top: 5.2rem;
  padding-bottom: 5.2rem;
}

.u-px-52 {
  padding-left: 5.2rem;
  padding-right: 5.2rem;
}

.u-mt-54 {
  margin-top: 5.4rem;
}

.u-mb-54 {
  margin-bottom: 5.4rem;
}

.u-ml-54 {
  margin-left: 5.4rem;
}

.u-mr-54 {
  margin-right: 5.4rem;
}

.u-m-54 {
  margin: 5.4rem;
}

.u-my-54 {
  margin-top: 5.4rem;
  margin-bottom: 5.4rem;
}

.u-mx-54 {
  margin-left: 5.4rem;
  margin-right: 5.4rem;
}

.u-pt-54 {
  padding-top: 5.4rem;
}

.u-pb-54 {
  padding-bottom: 5.4rem;
}

.u-pl-54 {
  padding-left: 5.4rem;
}

.u-pr-54 {
  padding-right: 5.4rem;
}

.u-p-54 {
  padding: 5.4rem;
}

.u-py-54 {
  padding-top: 5.4rem;
  padding-bottom: 5.4rem;
}

.u-px-54 {
  padding-left: 5.4rem;
  padding-right: 5.4rem;
}

.u-mt-56 {
  margin-top: 5.6rem;
}

.u-mb-56 {
  margin-bottom: 5.6rem;
}

.u-ml-56 {
  margin-left: 5.6rem;
}

.u-mr-56 {
  margin-right: 5.6rem;
}

.u-m-56 {
  margin: 5.6rem;
}

.u-my-56 {
  margin-top: 5.6rem;
  margin-bottom: 5.6rem;
}

.u-mx-56 {
  margin-left: 5.6rem;
  margin-right: 5.6rem;
}

.u-pt-56 {
  padding-top: 5.6rem;
}

.u-pb-56 {
  padding-bottom: 5.6rem;
}

.u-pl-56 {
  padding-left: 5.6rem;
}

.u-pr-56 {
  padding-right: 5.6rem;
}

.u-p-56 {
  padding: 5.6rem;
}

.u-py-56 {
  padding-top: 5.6rem;
  padding-bottom: 5.6rem;
}

.u-px-56 {
  padding-left: 5.6rem;
  padding-right: 5.6rem;
}

.u-mt-58 {
  margin-top: 5.8rem;
}

.u-mb-58 {
  margin-bottom: 5.8rem;
}

.u-ml-58 {
  margin-left: 5.8rem;
}

.u-mr-58 {
  margin-right: 5.8rem;
}

.u-m-58 {
  margin: 5.8rem;
}

.u-my-58 {
  margin-top: 5.8rem;
  margin-bottom: 5.8rem;
}

.u-mx-58 {
  margin-left: 5.8rem;
  margin-right: 5.8rem;
}

.u-pt-58 {
  padding-top: 5.8rem;
}

.u-pb-58 {
  padding-bottom: 5.8rem;
}

.u-pl-58 {
  padding-left: 5.8rem;
}

.u-pr-58 {
  padding-right: 5.8rem;
}

.u-p-58 {
  padding: 5.8rem;
}

.u-py-58 {
  padding-top: 5.8rem;
  padding-bottom: 5.8rem;
}

.u-px-58 {
  padding-left: 5.8rem;
  padding-right: 5.8rem;
}

.u-mt-60 {
  margin-top: 6rem;
}

.u-mb-60 {
  margin-bottom: 6rem;
}

.u-ml-60 {
  margin-left: 6rem;
}

.u-mr-60 {
  margin-right: 6rem;
}

.u-m-60 {
  margin: 6rem;
}

.u-my-60 {
  margin-top: 6rem;
  margin-bottom: 6rem;
}

.u-mx-60 {
  margin-left: 6rem;
  margin-right: 6rem;
}

.u-pt-60 {
  padding-top: 6rem;
}

.u-pb-60 {
  padding-bottom: 6rem;
}

.u-pl-60 {
  padding-left: 6rem;
}

.u-pr-60 {
  padding-right: 6rem;
}

.u-p-60 {
  padding: 6rem;
}

.u-py-60 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.u-px-60 {
  padding-left: 6rem;
  padding-right: 6rem;
}

.u-mt-62 {
  margin-top: 6.2rem;
}

.u-mb-62 {
  margin-bottom: 6.2rem;
}

.u-ml-62 {
  margin-left: 6.2rem;
}

.u-mr-62 {
  margin-right: 6.2rem;
}

.u-m-62 {
  margin: 6.2rem;
}

.u-my-62 {
  margin-top: 6.2rem;
  margin-bottom: 6.2rem;
}

.u-mx-62 {
  margin-left: 6.2rem;
  margin-right: 6.2rem;
}

.u-pt-62 {
  padding-top: 6.2rem;
}

.u-pb-62 {
  padding-bottom: 6.2rem;
}

.u-pl-62 {
  padding-left: 6.2rem;
}

.u-pr-62 {
  padding-right: 6.2rem;
}

.u-p-62 {
  padding: 6.2rem;
}

.u-py-62 {
  padding-top: 6.2rem;
  padding-bottom: 6.2rem;
}

.u-px-62 {
  padding-left: 6.2rem;
  padding-right: 6.2rem;
}

.u-mt-64 {
  margin-top: 6.4rem;
}

.u-mb-64 {
  margin-bottom: 6.4rem;
}

.u-ml-64 {
  margin-left: 6.4rem;
}

.u-mr-64 {
  margin-right: 6.4rem;
}

.u-m-64 {
  margin: 6.4rem;
}

.u-my-64 {
  margin-top: 6.4rem;
  margin-bottom: 6.4rem;
}

.u-mx-64 {
  margin-left: 6.4rem;
  margin-right: 6.4rem;
}

.u-pt-64 {
  padding-top: 6.4rem;
}

.u-pb-64 {
  padding-bottom: 6.4rem;
}

.u-pl-64 {
  padding-left: 6.4rem;
}

.u-pr-64 {
  padding-right: 6.4rem;
}

.u-p-64 {
  padding: 6.4rem;
}

.u-py-64 {
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
}

.u-px-64 {
  padding-left: 6.4rem;
  padding-right: 6.4rem;
}

.u-mt-66 {
  margin-top: 6.6rem;
}

.u-mb-66 {
  margin-bottom: 6.6rem;
}

.u-ml-66 {
  margin-left: 6.6rem;
}

.u-mr-66 {
  margin-right: 6.6rem;
}

.u-m-66 {
  margin: 6.6rem;
}

.u-my-66 {
  margin-top: 6.6rem;
  margin-bottom: 6.6rem;
}

.u-mx-66 {
  margin-left: 6.6rem;
  margin-right: 6.6rem;
}

.u-pt-66 {
  padding-top: 6.6rem;
}

.u-pb-66 {
  padding-bottom: 6.6rem;
}

.u-pl-66 {
  padding-left: 6.6rem;
}

.u-pr-66 {
  padding-right: 6.6rem;
}

.u-p-66 {
  padding: 6.6rem;
}

.u-py-66 {
  padding-top: 6.6rem;
  padding-bottom: 6.6rem;
}

.u-px-66 {
  padding-left: 6.6rem;
  padding-right: 6.6rem;
}

.u-mt-68 {
  margin-top: 6.8rem;
}

.u-mb-68 {
  margin-bottom: 6.8rem;
}

.u-ml-68 {
  margin-left: 6.8rem;
}

.u-mr-68 {
  margin-right: 6.8rem;
}

.u-m-68 {
  margin: 6.8rem;
}

.u-my-68 {
  margin-top: 6.8rem;
  margin-bottom: 6.8rem;
}

.u-mx-68 {
  margin-left: 6.8rem;
  margin-right: 6.8rem;
}

.u-pt-68 {
  padding-top: 6.8rem;
}

.u-pb-68 {
  padding-bottom: 6.8rem;
}

.u-pl-68 {
  padding-left: 6.8rem;
}

.u-pr-68 {
  padding-right: 6.8rem;
}

.u-p-68 {
  padding: 6.8rem;
}

.u-py-68 {
  padding-top: 6.8rem;
  padding-bottom: 6.8rem;
}

.u-px-68 {
  padding-left: 6.8rem;
  padding-right: 6.8rem;
}

.u-mt-70 {
  margin-top: 7rem;
}

.u-mb-70 {
  margin-bottom: 7rem;
}

.u-ml-70 {
  margin-left: 7rem;
}

.u-mr-70 {
  margin-right: 7rem;
}

.u-m-70 {
  margin: 7rem;
}

.u-my-70 {
  margin-top: 7rem;
  margin-bottom: 7rem;
}

.u-mx-70 {
  margin-left: 7rem;
  margin-right: 7rem;
}

.u-pt-70 {
  padding-top: 7rem;
}

.u-pb-70 {
  padding-bottom: 7rem;
}

.u-pl-70 {
  padding-left: 7rem;
}

.u-pr-70 {
  padding-right: 7rem;
}

.u-p-70 {
  padding: 7rem;
}

.u-py-70 {
  padding-top: 7rem;
  padding-bottom: 7rem;
}

.u-px-70 {
  padding-left: 7rem;
  padding-right: 7rem;
}

.u-mt-72 {
  margin-top: 7.2rem;
}

.u-mb-72 {
  margin-bottom: 7.2rem;
}

.u-ml-72 {
  margin-left: 7.2rem;
}

.u-mr-72 {
  margin-right: 7.2rem;
}

.u-m-72 {
  margin: 7.2rem;
}

.u-my-72 {
  margin-top: 7.2rem;
  margin-bottom: 7.2rem;
}

.u-mx-72 {
  margin-left: 7.2rem;
  margin-right: 7.2rem;
}

.u-pt-72 {
  padding-top: 7.2rem;
}

.u-pb-72 {
  padding-bottom: 7.2rem;
}

.u-pl-72 {
  padding-left: 7.2rem;
}

.u-pr-72 {
  padding-right: 7.2rem;
}

.u-p-72 {
  padding: 7.2rem;
}

.u-py-72 {
  padding-top: 7.2rem;
  padding-bottom: 7.2rem;
}

.u-px-72 {
  padding-left: 7.2rem;
  padding-right: 7.2rem;
}

.u-mt-74 {
  margin-top: 7.4rem;
}

.u-mb-74 {
  margin-bottom: 7.4rem;
}

.u-ml-74 {
  margin-left: 7.4rem;
}

.u-mr-74 {
  margin-right: 7.4rem;
}

.u-m-74 {
  margin: 7.4rem;
}

.u-my-74 {
  margin-top: 7.4rem;
  margin-bottom: 7.4rem;
}

.u-mx-74 {
  margin-left: 7.4rem;
  margin-right: 7.4rem;
}

.u-pt-74 {
  padding-top: 7.4rem;
}

.u-pb-74 {
  padding-bottom: 7.4rem;
}

.u-pl-74 {
  padding-left: 7.4rem;
}

.u-pr-74 {
  padding-right: 7.4rem;
}

.u-p-74 {
  padding: 7.4rem;
}

.u-py-74 {
  padding-top: 7.4rem;
  padding-bottom: 7.4rem;
}

.u-px-74 {
  padding-left: 7.4rem;
  padding-right: 7.4rem;
}

.u-mt-76 {
  margin-top: 7.6rem;
}

.u-mb-76 {
  margin-bottom: 7.6rem;
}

.u-ml-76 {
  margin-left: 7.6rem;
}

.u-mr-76 {
  margin-right: 7.6rem;
}

.u-m-76 {
  margin: 7.6rem;
}

.u-my-76 {
  margin-top: 7.6rem;
  margin-bottom: 7.6rem;
}

.u-mx-76 {
  margin-left: 7.6rem;
  margin-right: 7.6rem;
}

.u-pt-76 {
  padding-top: 7.6rem;
}

.u-pb-76 {
  padding-bottom: 7.6rem;
}

.u-pl-76 {
  padding-left: 7.6rem;
}

.u-pr-76 {
  padding-right: 7.6rem;
}

.u-p-76 {
  padding: 7.6rem;
}

.u-py-76 {
  padding-top: 7.6rem;
  padding-bottom: 7.6rem;
}

.u-px-76 {
  padding-left: 7.6rem;
  padding-right: 7.6rem;
}

.u-mt-78 {
  margin-top: 7.8rem;
}

.u-mb-78 {
  margin-bottom: 7.8rem;
}

.u-ml-78 {
  margin-left: 7.8rem;
}

.u-mr-78 {
  margin-right: 7.8rem;
}

.u-m-78 {
  margin: 7.8rem;
}

.u-my-78 {
  margin-top: 7.8rem;
  margin-bottom: 7.8rem;
}

.u-mx-78 {
  margin-left: 7.8rem;
  margin-right: 7.8rem;
}

.u-pt-78 {
  padding-top: 7.8rem;
}

.u-pb-78 {
  padding-bottom: 7.8rem;
}

.u-pl-78 {
  padding-left: 7.8rem;
}

.u-pr-78 {
  padding-right: 7.8rem;
}

.u-p-78 {
  padding: 7.8rem;
}

.u-py-78 {
  padding-top: 7.8rem;
  padding-bottom: 7.8rem;
}

.u-px-78 {
  padding-left: 7.8rem;
  padding-right: 7.8rem;
}

.u-mt-80 {
  margin-top: 8rem;
}

.u-mb-80 {
  margin-bottom: 8rem;
}

.u-ml-80 {
  margin-left: 8rem;
}

.u-mr-80 {
  margin-right: 8rem;
}

.u-m-80 {
  margin: 8rem;
}

.u-my-80 {
  margin-top: 8rem;
  margin-bottom: 8rem;
}

.u-mx-80 {
  margin-left: 8rem;
  margin-right: 8rem;
}

.u-pt-80 {
  padding-top: 8rem;
}

.u-pb-80 {
  padding-bottom: 8rem;
}

.u-pl-80 {
  padding-left: 8rem;
}

.u-pr-80 {
  padding-right: 8rem;
}

.u-p-80 {
  padding: 8rem;
}

.u-py-80 {
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.u-px-80 {
  padding-left: 8rem;
  padding-right: 8rem;
}

.u-mx-auto {
  margin-inline: auto;
}

.u-mt-10-20 {
  margin-top: clamp(1rem, 3.65vw + -0.17rem, 2rem);
}

.u-mt-20-40 {
  margin-top: clamp(2rem, 7.3vw + -0.35rem, 4rem);
}

.u-mt-20-80 {
  margin-top: clamp(2rem, 21.9vw + -1.44rem, 8rem);
}

.u-mt-40-60 {
  margin-top: clamp(4rem, 7.3vw + -0.15rem, 6rem);
}

.u-mt-60-100 {
  margin-top: clamp(6rem, 14.6vw + -0.49rem, 10rem);
}

.u-mb-10-20 {
  margin-bottom: clamp(1rem, 3.65vw + -0.17rem, 2rem);
}

.u-mb-20-40 {
  margin-bottom: clamp(2rem, 7.3vw + -0.35rem, 4rem);
}

.u-mb-20-80 {
  margin-bottom: clamp(2rem, 21.9vw + -1.44rem, 8rem);
}

.u-mb-40-60 {
  margin-bottom: clamp(4rem, 7.3vw + -0.15rem, 6rem);
}

.u-mb-60-100 {
  margin-bottom: clamp(6rem, 14.6vw + -0.49rem, 10rem);
}

.u-m-10-20 {
  margin: clamp(1rem, 3.65vw + -0.17rem, 2rem);
}

.u-m-20-40 {
  margin: clamp(2rem, 7.3vw + -0.35rem, 4rem);
}

.u-m-20-80 {
  margin: clamp(2rem, 21.9vw + -1.44rem, 8rem);
}

.u-m-40-60 {
  margin: clamp(4rem, 7.3vw + -0.15rem, 6rem);
}

.u-m-60-100 {
  margin: clamp(6rem, 14.6vw + -0.49rem, 10rem);
}

/* =========================================================
  Common
========================================================= */
.c-catch__wrap {
  font-size: 20rem;
  font-weight: 500;
  line-height: 250%;
  letter-spacing: 0;
  writing-mode: vertical-rl;
}
@media (width <= 750px) {
  .c-catch__wrap {
    font-size: 40rem;
    font-weight: 600;
    line-height: 250%;
    letter-spacing: 0em;
  }
}

.c-lbl-base {
  position: relative;
  display: flex;
  justify-content: left;
  align-items: end;
  gap: 20rem;
}
.c-lbl-base__en {
  display: flex;
  font-size: 170rem;
  font-family: var(--font-family-en);
  font-weight: 700;
  line-height: 100%;
}
@media (width <= 750px) {
  .c-lbl-base__en {
    font-size: 130rem;
  }
}
.c-lbl-base__jp {
  position: relative;
  font-size: 20rem;
  line-height: 340%;
  letter-spacing: 0.1em;
  padding-left: 20rem;
}
.c-lbl-base__jp::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 3rem;
  height: 1em;
  background-color: var(--color-text-1);
}
@media (width <= 750px) {
  .c-lbl-base__jp {
    position: absolute;
    top: -70rem;
    left: 0;
    font-size: 28rem;
  }
}

body.layout-fixing .c-catch__wrap {
  font-size: 20px;
  font-weight: 500;
  line-height: 250%;
  letter-spacing: 0;
  writing-mode: vertical-rl;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-catch__wrap {
    font-size: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-catch__wrap {
    font-size: 40rem;
    font-weight: 600;
    line-height: 250%;
    letter-spacing: 0em;
  }
}
body.layout-fixing .c-lbl-base {
  position: relative;
  display: flex;
  justify-content: left;
  align-items: end;
  gap: 20px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-lbl-base {
    gap: 20rem;
  }
}
body.layout-fixing .c-lbl-base__en {
  display: flex;
  font-size: 170px;
  font-family: var(--font-family-en);
  font-weight: 700;
  line-height: 100%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-lbl-base__en {
    font-size: 170rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-lbl-base__en {
    font-size: 130rem;
  }
}
body.layout-fixing .c-lbl-base__jp {
  position: relative;
  font-size: 20px;
  line-height: 340%;
  letter-spacing: 0.1em;
  padding-left: 20px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-lbl-base__jp {
    font-size: 20rem;
    padding-left: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-lbl-base__jp {
    position: absolute;
    top: -70rem;
    left: 0;
    font-size: 28rem;
  }
}
body.layout-fixing .c-lbl-base__jp::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 3px;
  height: 1em;
  background-color: var(--color-text-1);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-lbl-base__jp::before {
    width: 3rem;
  }
}

/* =========================================================
  Common
========================================================= */
:root {
  --drawer-bg: #000;
  --drawer-width: 100%;
  --drawer-max-width: auto;
  --drawer-speed: 0.4s;
  --drawer-overlay-bg: rgba(0, 0, 0, 0.5);
  --hamburger-color: #333333;
  --hamburger-line-color: #000;
  --hamburger-line-color-active: #fff;
}

/* ボタンとドロワーの共通設計 */
.c-hamburger {
  position: relative;
  /* display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 0.8rem; */
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  z-index: 2100;
}
.c-hamburger__line {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60rem;
  height: 5rem;
  background-color: var(--hamburger-line-color);
  transition: all var(--drawer-speed) ease;
}
.c-hamburger__line:nth-child(1) {
  top: calc(50% - 13.5rem);
}
.c-hamburger__line:nth-child(3) {
  top: calc(50% + 13.5rem);
}
.c-hamburger.is-active .c-hamburger__line {
  background-color: var(--hamburger-line-color-active);
}
.c-hamburger.is-active .c-hamburger__line:nth-child(1) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(25deg);
}
.c-hamburger.is-active .c-hamburger__line:nth-child(2) {
  opacity: 0;
  visibility: hidden;
}
.c-hamburger.is-active .c-hamburger__line:nth-child(3) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(155deg);
}

.c-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: var(--drawer-width);
  max-width: var(--drawer-max-width);
  height: auto;
  z-index: 2000;
  padding: 0 30rem;
  background-color: var(--drawer-bg);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform var(--drawer-speed), visibility var(--drawer-speed);
}
.c-drawer.is-active {
  transform: translateX(0);
  visibility: visible;
}
.c-drawer .c-menu-toggle::before, .c-drawer .c-menu-toggle::after {
  background-color: var(--hamburger-color);
}
.c-drawer .c-menu-toggle .l-menu__sp .sub-menu a::before {
  background-color: var(--hamburger-color);
}
.c-drawer-overlay {
  position: fixed;
  inset: 0;
  top: 56px;
  background: var(--drawer-overlay-bg);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--drawer-speed), visibility var(--drawer-speed);
}
.c-drawer-overlay.is-active {
  opacity: 1;
  visibility: visible;
}
.c-drawer__head {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 20rem;
  height: 100rem;
  padding: 25rem 0;
}
.c-drawer__logo > a {
  display: inline-block;
  width: 274rem;
  height: 50rem;
}
.c-drawer__logo > a > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-drawer__logo-phrase {
  color: #fff;
  font-size: 20rem;
  font-weight: 500;
  line-height: 125%;
  letter-spacing: 0.05em;
}
.c-drawer__nav {
  padding: 100rem 0;
  overflow-y: scroll;
}
.c-drawer__nav > ul {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 80rem;
}
.c-drawer__nav > ul > li {
  width: 100%;
}
.c-drawer__nav > ul > li > a.__normal {
  display: block;
  position: relative;
}
.c-drawer__nav > ul > li > a.__normal::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1rem;
  left: 0;
  bottom: 10rem;
  background-color: #fff;
}
.c-drawer__nav > ul > li > a.__normal::after {
  content: "";
  position: absolute;
  top: 30%;
  right: 0;
  transform: translateY(-50%);
  width: 45rem;
  height: 38rem;
  background: no-repeat center/contain url("../img/common/ico-arrow-r-white.svg");
}
.c-drawer__nav > ul > li > a.__contact {
  display: block;
  color: var(--color-black);
  font-size: 70rem;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 120%;
  letter-spacing: 0.02em;
  width: max-content;
  border-radius: 999px;
  padding: 40rem 100rem;
  margin-inline: auto;
  background-color: var(--color-accent-1);
}
.c-drawer__nav__en {
  color: #fff;
  font-size: 70rem;
  font-family: var(--font-family-en);
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0.02em;
}
.c-drawer__nav__jp {
  position: absolute;
  top: -44rem;
  left: 0;
  color: #fff;
  font-size: 24rem;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.c-drawer__menu a,
.c-drawer__menu span {
  font-weight: normal !important;
}

.l-drawer__btns {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

/* =========================================================
  Common
========================================================= */
.c-btn {
  position: relative;
}
.c-btn-base {
  color: var(--color-white);
  font-size: 16rem;
  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 8rem 30rem 9.5rem;
  border: 1px solid var(--color-text-1);
  border-radius: 999px;
  background-color: var(--color-text-1);
  transition: color 0.4s ease, background-color 0.4s ease;
}
.c-btn-base:hover {
  color: var(--color-text-2);
  background-color: var(--color-accent-1);
}
.c-btn-corporate {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 35rem;
  font-size: 60rem;
  font-weight: 700;
  line-height: 160%;
  font-family: var(--font-family-en);
  padding-inline: calc(1.2em + 30rem) 30rem;
  transition: background-color 0.4s ease, padding 0.4s;
}
@media (width <= 750px) {
  .c-btn-corporate {
    flex-direction: column;
    align-items: start;
    gap: 10rem;
    line-height: 100%;
    padding-block: 30rem;
  }
}
.c-btn-corporate > span.__arrow {
  position: absolute;
  top: 50%;
  left: 30rem;
  transform: translateY(-50%);
  width: 48rem;
  height: 38rem;
  background: no-repeat right/contain url("../img/common/ico-arrow-r-simple.svg");
  transition: width 0.4s;
}
.c-btn-corporate > span.__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 45rem;
  height: 2rem;
  transform-origin: left center;
  background-color: #000;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), width 0.4s;
  will-change: transform;
}
.c-btn-corporate > span.__right {
  display: inline-block;
  position: relative;
  font-size: 20rem;
  line-height: 150%;
}
@media (width <= 750px) {
  .c-btn-corporate > span.__right {
    font-size: 28rem;
  }
}
.c-btn-corporate > span.__right::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -1.5em;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
.c-btn-corporate:hover {
  padding-inline: calc(1.2em + 30rem + 20rem) 30rem;
  transition: padding 0.4s;
}
.c-btn-corporate:hover > span.__arrow {
  width: 68rem;
}
.c-btn-corporate:hover > span.__arrow::before {
  width: 65rem;
}
.c-btn-out-link {
  padding-right: 1.5em;
}
.c-btn-out-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
.c-btn-arrow {
  padding-right: 1.5em;
}
.c-btn-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
.c-btn-arrow.__top::after {
  background: no-repeat center/contain url("../img/common/ico-arrow-t.svg");
}
.c-btn-contact > span.__arrow {
  position: absolute;
  top: 50%;
  left: calc(100% - 30rem - 48rem);
  transform: translateY(-50%);
  width: 48rem;
  height: 38rem;
  background: no-repeat right/contain url("../img/common/ico-arrow-r-simple.svg");
  transition: width 0.4s;
}
.c-btn-contact > span.__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 45rem;
  height: 2rem;
  transform-origin: left center;
  background-color: #000;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), width 0.4s;
  will-change: transform;
}
.c-btn-contact:hover > span.__arrow {
  width: 68rem;
}
.c-btn-contact:hover > span.__arrow::before {
  width: 65rem;
}

body.layout-fixing .c-btn {
  position: relative;
}
body.layout-fixing .c-btn-base {
  color: var(--color-white);
  font-size: 16px;
  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 8px 30px 9.5px;
  border: 1px solid var(--color-text-1);
  border-radius: 999px;
  background-color: var(--color-text-1);
  transition: color 0.4s ease, background-color 0.4s ease;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-base {
    font-size: 16rem;
    padding: 8rem 30rem 9.5rem;
    border: 1rem solid var(--color-text-1);
  }
}
body.layout-fixing .c-btn-base:hover {
  color: var(--color-text-2);
  background-color: var(--color-accent-1);
}
body.layout-fixing .c-btn-corporate {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 35px;
  font-size: 60px;
  font-weight: 700;
  line-height: 160%;
  font-family: var(--font-family-en);
  padding-inline: calc(1.2em + 30px) 30px;
  transition: background-color 0.4s ease, padding 0.4s;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate {
    gap: 35rem;
    font-size: 60rem;
    padding-inline: calc(1.2em + 30rem) 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate {
    flex-direction: column;
    align-items: start;
    font-size: 60rem;
    gap: 10rem;
    line-height: 100%;
    padding-block: 30rem;
    padding-inline: calc(1.2em + 30rem) 30rem;
  }
}
body.layout-fixing .c-btn-corporate > span.__arrow {
  position: absolute;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
  width: 48px;
  height: 38px;
  background: no-repeat right/contain url("../img/common/ico-arrow-r-simple.svg");
  transition: width 0.4s;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate > span.__arrow {
    left: 30rem;
    width: 48rem;
    height: 38rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate > span.__arrow {
    left: 30rem;
    width: 48rem;
    height: 38rem;
  }
}
body.layout-fixing .c-btn-corporate > span.__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 45px;
  height: 2px;
  transform-origin: left center;
  background-color: #000;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), width 0.4s;
  will-change: transform;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate > span.__arrow::before {
    width: 45rem;
    height: 2rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate > span.__arrow::before {
    width: 45rem;
    height: 2rem;
  }
}
body.layout-fixing .c-btn-corporate > span.__right {
  display: inline-block;
  position: relative;
  font-size: 20px;
  line-height: 150%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate > span.__right {
    font-size: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate > span.__right {
    font-size: 28rem;
  }
}
body.layout-fixing .c-btn-corporate > span.__right::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -1.5em;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
body.layout-fixing .c-btn-corporate:hover {
  padding-inline: calc(1.2em + 30px + 20px) 30px;
  transition: padding 0.4s;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate:hover {
    padding-inline: calc(1.2em + 30rem + 20rem) 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate:hover {
    padding-inline: calc(1.2em + 30rem + 20rem) 30rem;
  }
}
body.layout-fixing .c-btn-corporate:hover > span.__arrow {
  width: 68px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate:hover > span.__arrow {
    width: 68rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate:hover > span.__arrow {
    width: 68rem;
  }
}
body.layout-fixing .c-btn-corporate:hover > span.__arrow::before {
  width: 65px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-corporate:hover > span.__arrow::before {
    width: 65rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-corporate:hover > span.__arrow::before {
    width: 65rem;
  }
}
body.layout-fixing .c-btn-out-link {
  padding-right: 1.5em;
}
body.layout-fixing .c-btn-out-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
body.layout-fixing .c-btn-arrow {
  padding-right: 1.5em;
}
body.layout-fixing .c-btn-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background: no-repeat center/contain url("../img/common/ico-out-link.svg");
}
body.layout-fixing .c-btn-arrow.__top::after {
  background: no-repeat center/contain url("../img/common/ico-arrow-t.svg");
}
body.layout-fixing .c-btn-contact > span.__arrow {
  position: absolute;
  top: 50%;
  left: calc(100% - 30px - 48px);
  transform: translateY(-50%);
  width: 48px;
  height: 38px;
  background: no-repeat right/contain url("../img/common/ico-arrow-r-simple.svg");
  transition: width 0.4s;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-contact > span.__arrow {
    left: calc(100% - 30rem - 48rem);
    width: 48rem;
    height: 38rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-contact > span.__arrow {
    left: calc(100% - 30rem - 48rem);
    width: 48rem;
    height: 38rem;
  }
}
body.layout-fixing .c-btn-contact > span.__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 45px;
  height: 2px;
  transform-origin: left center;
  background-color: #000;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), width 0.4s;
  will-change: transform;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-contact > span.__arrow::before {
    width: 45rem;
    height: 2rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-contact > span.__arrow::before {
    width: 45rem;
    height: 2rem;
  }
}
body.layout-fixing .c-btn-contact:hover > span.__arrow {
  width: 68px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-contact:hover > span.__arrow {
    width: 68rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-contact:hover > span.__arrow {
    width: 68rem;
  }
}
body.layout-fixing .c-btn-contact:hover > span.__arrow::before {
  width: 65px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-contact:hover > span.__arrow::before {
    width: 65rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-btn-contact:hover > span.__arrow::before {
    width: 65rem;
  }
}

/* =========================================================
  Common
========================================================= */
:root {
  --card-ratio-flow: 1;
}

.c-card-flow {
  position: relative;
  width: calc(800rem * var(--card-ratio-flow));
  height: auto;
}
@media (width <= 750px) {
  .c-card-flow {
    width: 100%;
    height: auto;
    padding: 0 30rem;
  }
}
.c-card-flow.__last {
  width: 50rem;
}
@media (width <= 750px) {
  .c-card-flow.__last {
    display: none;
  }
}
.c-card-flow.__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -18rem;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 20rem solid transparent;
  border-bottom: 20rem solid transparent;
  border-left: 20rem solid var(--color-black);
  border-right: 0;
}
@media (width <= 750px) {
  .c-card-flow.__arrow::after {
    top: auto;
    left: 50%;
    right: auto;
    bottom: -36rem;
    transform: translateX(-50%);
    border-right: 40rem solid transparent;
    border-left: 40rem solid transparent;
    border-top: 40rem solid var(--color-black);
    border-bottom: 0;
  }
}
.c-card-flow > h3 {
  position: relative;
  font-size: calc(20rem * var(--card-ratio-flow));
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
  width: max-content;
}
@media (width <= 750px) {
  .c-card-flow > h3 {
    font-size: 26rem;
  }
}
.c-card-flow > h3 > span {
  position: absolute;
  top: 0;
  right: -55rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 34rem;
  font-weight: 600;
  width: 1.5em;
  height: 1.5em;
  border: 2rem solid var(--color-black);
  border-radius: 50%;
  background-color: var(--color-accent-1);
}
@media (width <= 750px) {
  .c-card-flow > h3 > span {
    font-size: 34rem;
  }
}
.c-card-flow__inner {
  display: flex;
  flex-direction: column;
  gap: 30rem;
  padding: calc(30rem * var(--card-ratio-flow)) calc(30rem * var(--card-ratio-flow)) calc(30rem * var(--card-ratio-flow));
  border: calc(6rem * var(--card-ratio-flow)) solid var(--color-black);
  background-color: var(--color-white);
}
@media (width <= 750px) {
  .c-card-flow__inner {
    padding: calc(50rem * var(--card-ratio-flow)) calc(50rem * var(--card-ratio-flow)) calc(50rem * var(--card-ratio-flow));
    gap: 50rem;
  }
}
.c-card-flow__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: calc(30rem * var(--card-ratio-flow));
}
@media (width <= 750px) {
  .c-card-flow__head {
    flex-direction: column-reverse;
    gap: 70rem;
  }
}
.c-card-flow__info {
  width: 50%;
}
@media (width <= 750px) {
  .c-card-flow__info {
    width: 100%;
  }
}
.c-card-flow__info > h4 {
  font-size: calc(20rem * var(--card-ratio-flow));
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
  margin-bottom: 5rem;
}
@media (width <= 750px) {
  .c-card-flow__info > h4 {
    font-size: 26rem;
    flex-direction: column-reverse;
  }
}
.c-card-flow__info > p {
  font-size: calc(44rem * var(--card-ratio-flow));
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.1em;
}
@media (width <= 750px) {
  .c-card-flow__info > p {
    font-size: 48rem;
  }
}
.c-card-flow__img {
  width: 52%;
  aspect-ratio: 350/250;
  border-radius: 16rem;
  overflow: hidden;
}
@media (width <= 750px) {
  .c-card-flow__img {
    width: 100%;
    height: auto;
    aspect-ratio: 590/412;
  }
}
.c-card-flow__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.c-card-flow__foot > p {
  font-size: calc(24rem * var(--card-ratio-flow));
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0.1em;
  text-align: justify;
}
@media (width <= 750px) {
  .c-card-flow__foot > p {
    font-size: 34rem;
    letter-spacing: 0.05em;
  }
}

.c-card-lineup {
  max-width: 380px;
  width: 100%;
}
.c-card-lineup__img {
  height: 380px;
  object-fit: cover;
  margin-bottom: 2rem;
}
.c-card-lineup__title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}
.c-card-lineup__lead {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 160%;
  letter-spacing: 0.1em;
}

body.layout-fixing .c-card-flow {
  position: relative;
  width: 800px;
  height: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow {
    width: 800rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow {
    width: 100%;
    height: auto;
    padding: 0 30rem;
  }
}
body.layout-fixing .c-card-flow.__last {
  width: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow.__last {
    width: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow.__last {
    display: none;
  }
}
body.layout-fixing .c-card-flow.__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -18px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 20px solid var(--color-black);
  border-right: 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow.__arrow::after {
    right: -18rem;
    border-top: 20rem solid transparent;
    border-bottom: 20rem solid transparent;
    border-left: 20rem solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow.__arrow::after {
    top: auto;
    left: 50%;
    right: auto;
    bottom: -36rem;
    transform: translateX(-50%);
    border-right: 40rem solid transparent;
    border-left: 40rem solid transparent;
    border-top: 40rem solid var(--color-black);
    border-bottom: 0;
  }
}
body.layout-fixing .c-card-flow > h3 {
  position: relative;
  font-size: calc(20px * var(--card-ratio-flow));
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
  width: max-content;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow > h3 {
    font-size: calc(20rem * var(--card-ratio-flow));
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow > h3 {
    font-size: 26rem;
  }
}
body.layout-fixing .c-card-flow > h3 > span {
  position: absolute;
  top: 0;
  right: -55px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 34px;
  font-weight: 600;
  width: 1.5em;
  height: 1.5em;
  border: 2px solid var(--color-black);
  border-radius: 50%;
  background-color: var(--color-accent-1);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow > h3 > span {
    right: -55rem;
    font-size: 34rem;
    border: 2rem solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow > h3 > span {
    font-size: 34rem;
    right: -70rem;
    width: 60rem;
    height: 60rem;
    border: 2rem solid var(--color-black);
  }
}
body.layout-fixing .c-card-flow__inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: calc(30px * var(--card-ratio-flow)) calc(30px * var(--card-ratio-flow)) calc(30px * var(--card-ratio-flow));
  border: calc(6px * var(--card-ratio-flow)) solid var(--color-black);
  background-color: var(--color-white);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__inner {
    gap: 30rem;
    padding: calc(30rem * var(--card-ratio-flow)) calc(30rem * var(--card-ratio-flow)) calc(30rem * var(--card-ratio-flow));
    border: calc(6rem * var(--card-ratio-flow)) solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__inner {
    padding: calc(50rem * var(--card-ratio-flow)) calc(50rem * var(--card-ratio-flow)) calc(50rem * var(--card-ratio-flow));
    border: calc(6rem * var(--card-ratio-flow)) solid var(--color-black);
    gap: 50rem;
  }
}
body.layout-fixing .c-card-flow__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: calc(30px * var(--card-ratio-flow));
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__head {
    gap: calc(30rem * var(--card-ratio-flow));
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__head {
    flex-direction: column-reverse;
    gap: 70rem;
  }
}
body.layout-fixing .c-card-flow__info {
  width: 50%;
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__info {
    width: 100%;
  }
}
body.layout-fixing .c-card-flow__info > h4 {
  font-size: calc(20px * var(--card-ratio-flow));
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
  margin-bottom: 5px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__info > h4 {
    font-size: calc(20rem * var(--card-ratio-flow));
    margin-bottom: 5rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__info > h4 {
    font-size: 26rem;
    flex-direction: column-reverse;
  }
}
body.layout-fixing .c-card-flow__info > p {
  font-size: calc(44px * var(--card-ratio-flow));
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.1em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__info > p {
    font-size: calc(44rem * var(--card-ratio-flow));
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__info > p {
    font-size: 48rem;
  }
}
body.layout-fixing .c-card-flow__img {
  width: 52%;
  aspect-ratio: 350/250;
  border-radius: 16px;
  overflow: hidden;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__img {
    border-radius: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__img {
    width: 100%;
    height: auto;
    aspect-ratio: 590/412;
  }
}
body.layout-fixing .c-card-flow__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
body.layout-fixing .c-card-flow__foot > p {
  font-size: calc(24px * var(--card-ratio-flow));
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0.1em;
  text-align: justify;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-flow__foot > p {
    font-size: calc(24rem * var(--card-ratio-flow));
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-card-flow__foot > p {
    font-size: 34rem;
    letter-spacing: 0.05em;
  }
}
body.layout-fixing .c-card-lineup {
  max-width: 380px;
  width: 100%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-lineup {
    max-width: 380rem;
  }
}
body.layout-fixing .c-card-lineup__img {
  height: 380px;
  object-fit: cover;
  margin-bottom: 2px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-lineup__img {
    height: 380rem;
    margin-bottom: 2rem;
  }
}
body.layout-fixing .c-card-lineup__title {
  font-size: 1.6px;
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 0.1em;
  margin-bottom: 1px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-lineup__title {
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }
}
body.layout-fixing .c-card-lineup__lead {
  font-size: 1.4px;
  font-weight: 400;
  line-height: 160%;
  letter-spacing: 0.1em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-card-lineup__lead {
    font-size: 1.4rem;
  }
}

/* =========================================================
  Common
========================================================= */
/* -----------------------------------------------------------
* アコーディオン
* ----------------------------------------------------------- */
.c-accordion__item {
  border-bottom: 1px solid var(--color-gray-1);
}
.c-accordion__item.is-open .c-accordion__icon::before {
  transform: rotate(0deg);
}
.c-accordion__item.is-open .c-accordion__body {
  opacity: 1;
  visibility: visible;
}
.c-accordion__item.is-open .c-accordion__toggle-cross::before {
  transform: rotate(0deg);
}
.c-accordion__item.is-open .c-accordion__toggle-arrow {
  transform: rotate(-45deg) scaleY(-1);
}
.c-accordion.--flow .c-accordion__item {
  border-bottom: none;
  margin-bottom: 2rem;
}
.c-accordion.--flow .c-accordion__title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  list-style: none;
  font-weight: bold;
  padding: 2.8rem 4rem;
  border-radius: 2rem;
  background-color: var(--color-base-5);
}
@media screen and (max-width: 750px) {
  .c-accordion.--flow .c-accordion__title {
    padding: 1rem 1.6rem;
  }
}
.c-accordion.--flow .c-accordion__description {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 180%;
  padding: 0 5rem;
}
@media screen and (max-width: 750px) {
  .c-accordion.--flow .c-accordion__description {
    padding: 0 1rem;
  }
}
.c-accordion__label {
  text-align: center;
  font-weight: 700;
  font-size: clamp(2rem, 0.59vw + 1.54rem, 2.4rem);
  margin-bottom: clamp(2rem, 4.76vw - 0.38rem, 4rem);
}
.c-accordion__title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  list-style: none;
  font-weight: bold;
  padding: clamp(1.6rem, 1.9vw + 1.1rem, 2rem) 0;
}
.c-accordion__title::-webkit-details-marker {
  display: none;
}
.c-accordion__title-text, .c-accordion__description {
  font-size: clamp(1.6rem, 0.59vw + 1.14rem, 1.8rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 140%;
  padding-right: 4em;
}
.c-accordion__description {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 180%;
  flex: 1;
}
.c-accordion__icon-q, .c-accordion__icon-a {
  font-weight: 700;
  font-size: 1.8rem;
  font-family: var(--font-accent);
  margin-right: clamp(1.6rem, 1.19vw + 1.03rem, 2.4rem);
}
@media screen and (max-width: 750px) {
  .c-accordion__icon {
    width: 1.6rem;
  }
}
.c-accordion__toggle-cross {
  position: relative;
  margin-left: auto;
  width: 2rem;
  height: 2px;
  border-radius: 8px;
  background: var(--color-base-2);
  flex-shrink: 0;
}
.c-accordion__toggle-cross::before {
  content: "";
  position: absolute;
  inset: 0;
  background: currentColor;
  transform: rotate(90deg);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.c-accordion__toggle-arrow {
  position: relative;
  margin-left: auto;
  width: 0.8rem;
  height: 0.8rem;
  border-right: 2px solid var(--color-text-1);
  border-bottom: 2px solid var(--color-text-1);
  margin-right: 2rem;
  transform: rotate(45deg);
}
.c-accordion__body {
  overflow: hidden;
  height: 0;
  opacity: 0;
  visibility: hidden; /* 閉じている間は計算から外す */
  /* will-change を指定してGPU加速を促す（カクつき防止） */
  will-change: height, opacity;
  /* イージングを linear に近づけると違和感が減ります */
  transition: height 0.4s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.3s ease, visibility 0.4s;
}
.c-accordion__body-inner {
  display: flex;
  justify-content: space-between;
  align-items: start;
  padding-left: 2rem;
  padding-bottom: 2rem;
}

/* =========================================================
  Common
========================================================= */
.c-slider {
  width: 100%;
  height: var(--slider-height, 100%);
}
.c-slider__img {
  width: 100%;
  height: var(--slider-height, 100%);
  object-fit: cover;
}
.c-slider__inner {
  height: var(--slider-height, 100%);
}

/* Splideの矢印やドットの色をブランドカラーに合わせてカスタマイズ（例） */
.splide__arrow svg {
  fill: #fff;
}
.splide__pagination__page.is-active {
  background: var(--color-base-1); /* アクティブなドットの色 */
}

/* =========================================================
  Common
========================================================= */
/* ==========================================================================
   Stagger Animation System
   ========================================================================== */
/**
 * 1. アニメーションの共通基盤
 */
.anim-item {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: 0.8s;
  transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
  transition-delay: var(--delay, 0.2s);
  will-change: opacity, transform;
}

/**
 * 2. アニメーションのバリエーション
 */
/* 下から上へ */
.anim-fade-up {
  transform: translateY(var(--distance, 30px));
}

/* 上から下へ */
.anim-fade-down {
  transform: translateY(calc(var(--distance, 30px) * -1));
}

/* 左から右へ（通常速度） */
.anim-fade-right {
  transform: translateX(calc(var(--distance, 30px) * -1));
}

/* じわっと拡大 */
.anim-zoom-in {
  transform: scale(0.9);
}

/* --- 【新規追加】左からハイスピード移動 --- */
.anim-slide-left-fast {
  /* 開始位置を左に（デフォルト 100px） */
  transform: translateX(calc(var(--distance, 200rem) * -1));
  /* 共通設定を上書きして「鋭い動き」にする */
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.56, 1, 0.4, 1); /* 爆速から急ブレーキ */
}

/* --- 【新規追加】幕が上がるような「シュッ」とした上昇 --- */
.anim-rise-up {
  /* 幕が上がる感を出すため、初期位置を少し深めに設定 */
  transform: translateY(var(--distance, 100rem));
  /* 0.6秒で完結させることで「シュッ」とした速度を演出 */
  transition-duration: 0.4s;
  /* クイックに動き出し、滑らかに止まるベジェ曲線 */
  transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
}

/* --- 【新規追加】純粋なフェードイン（移動なし） --- */
/* 背景画像や、すでに位置が決まっている静かな要素に最適 */
.anim-fade-in-only {
  transform: none; /* 移動させない */
  transition-duration: 0.8s; /* ゆっくり時間をかける */
  transition-timing-function: ease-in-out;
}

/* --- 【新規追加】極小のズームアップ（ふんわり拡大） --- */
/* 奥行き感を出したい時や、キャッチコピーに最適 */
.anim-soft-zoom {
  transform: scale(0.96); /* わずかに小さくしておく */
  transition-duration: 1.2s;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* --- 【新規追加】ミスト・アップ（霧が晴れるような上昇） --- */
/* fade-upよりもさらに「ふわっ」とした質感 */
.anim-mist-up {
  transform: translateY(15px); /* 移動距離を最小限に */
  transition-duration: 1.8s; /* かなり長く時間をかける */
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

/**
 * 3. 発火状態
 */
.is-ready .anim-item {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

/**
 * 4. アクセシビリティ対応
 */
@media (prefers-reduced-motion: reduce) {
  .anim-item {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
/* 初期状態 */
.js-fade-up {
  opacity: 0;
  transform: translateY(30rem); /* 30px下に下げておく */
  transition: opacity 0.4s ease-out, transform 0.4s ease-out;
  will-change: opacity, transform; /* ブラウザに最適化を促す */
}

/* 発火時の状態 */
.js-fade-up.is-active {
  opacity: 1;
  transform: translateY(0);
}

/* =========================================================
  Common
========================================================= */
#page {
  background-color: var(--color-gray-2);
}

.l-mv {
  position: relative;
  padding-top: 350rem;
  background-color: var(--color-gray-2);
  overflow: hidden;
}
@media (width <= 750px) {
  .l-mv {
    padding-top: 680rem;
  }
}
.l-mv::before {
  content: "";
  position: absolute;
  top: 35rem;
  left: 50%;
  transform: translateX(-50%);
  width: 787rem;
  height: 680rem;
  background: no-repeat center/cover url("../img/common/bg-mv.svg");
}
@media (width <= 750px) {
  .l-mv::before {
    top: 100rem;
  }
}
.l-mv .c-catch__wrap {
  position: absolute;
  top: 80rem;
  left: 50%;
  transform: translateX(-50%);
}
@media (750px < width <= 1366px) {
  .l-mv .c-catch__wrap {
    top: 130rem;
  }
}
@media (width <= 750px) {
  .l-mv .c-catch__wrap {
    top: 130rem;
  }
}
.l-mv__title {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 36rem;
  width: 1264rem;
  padding: 0 0 70rem;
  margin-inline: auto;
  z-index: 1;
}
@media (width <= 750px) {
  .l-mv__title {
    width: 100%;
    padding: 0 30rem;
  }
}
.l-mv__title .l-mv__title-sub {
  position: absolute;
  left: 0;
  bottom: -40rem;
  width: 1264rem;
  padding: 0;
  margin-inline: auto;
}
@media (width <= 750px) {
  .l-mv__title .l-mv__title-sub {
    width: 100%;
    padding: 0 30rem;
    bottom: -200rem;
  }
}
.l-mv__gallery-wrap {
  position: relative;
  width: 100%;
}
@media (width <= 750px) {
  .l-mv__gallery-wrap {
    height: 676rem;
    overflow: hidden;
    margin-top: 105rem;
  }
}
.l-mv__gallery {
  display: flex;
  gap: 30rem;
}
@media (width <= 750px) {
  .l-mv__gallery {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}
.l-mv__gallery-content {
  position: relative;
  width: 33.3333333333%;
  height: 606rem;
  border-bottom: 36rem solid var(--color-accent-1);
}
.l-mv__gallery-content.__02 {
  margin-top: 70rem;
}
.l-mv__gallery-content.__03 {
  margin-top: 20rem;
}
.l-mv__gallery-content img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.l-top-message {
  padding: 200rem 30rem 80rem;
  background-color: var(--color-gray-2);
}

.l-top-issue {
  position: relative;
  scroll-margin-top: 300rem;
}
.l-top-issue .l-section-ttl-wrap {
  position: absolute;
  top: 120rem;
}
@media (width <= 750px) {
  .l-top-issue .l-section-ttl-wrap {
    top: 180rem;
    width: 100%;
  }
}
.l-top-issue__content {
  padding: 365rem 0 80rem;
}
@media (width <= 750px) {
  .l-top-issue__content {
    padding: 395rem 0 80rem;
  }
}

.l-top-solution {
  position: relative;
  background-color: #fff;
}
.l-top-solution__head {
  position: absolute;
  top: 120rem;
  width: 100%;
}
@media (width <= 750px) {
  .l-top-solution__head {
    top: 180rem;
  }
}
.l-top-solution .section-inner {
  padding-top: 330rem;
}
@media (width <= 750px) {
  .l-top-solution .section-inner {
    padding-top: 390rem;
  }
}
.l-top-solution .u-lead-base {
  margin-bottom: 90rem;
}
.l-top-solution .u-lead-second {
  margin-bottom: 120rem;
}

.l-top-slider {
  padding: 200rem 0 50rem;
  background-color: #fff;
}

.l-top-work {
  position: relative;
  background-color: #fff;
}
.l-top-work .l-section-ttl-wrap {
  position: absolute;
  top: 120rem;
  left: 0;
  width: 100%;
}
@media (width <= 750px) {
  .l-top-work .l-section-ttl-wrap {
    top: 180rem;
  }
}
.l-top-work__lead {
  font-size: 24rem;
  font-weight: 500;
  line-height: 210%;
  letter-spacing: 0.02em;
}
@media (width <= 750px) {
  .l-top-work__lead {
    font-size: 34rem;
  }
}
.l-top-work .section-inner {
  padding: 320rem 30rem 0;
}
@media (width <= 750px) {
  .l-top-work .section-inner {
    padding: 350rem 30rem 0;
  }
}
.l-top-work .p-gallery {
  padding: 45rem 0 0;
}

.l-top-flow {
  min-height: 900px;
  padding-top: 120rem;
}
@media (width <= 750px) {
  .l-top-flow {
    height: auto !important;
    padding-top: 180rem;
    padding-bottom: 20rem;
  }
}
.l-top-flow__content-sp {
  display: flex;
  flex-direction: column;
  gap: 40rem;
  padding: 50rem 0 0;
}
.l-top-flow__foot {
  font-size: calc(24rem * var(--card-ratio-flow));
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0.01em;
  padding: 30rem 30rem 0;
}
@media (width <= 750px) {
  .l-top-flow__foot {
    font-size: 34rem;
  }
}

.l-top-about {
  position: relative;
  padding: 140rem 0 100rem;
  margin-top: calc(-1 * (100vh - 705rem * var(--card-ratio-flow)));
  background-color: var(--color-gray-2);
}
@media (3000px < width) {
  .l-top-about {
    margin-top: calc(-1 * (100vh - 745rem * var(--card-ratio-flow)));
  }
}
@media (width <= 750px) {
  .l-top-about {
    padding: 180rem 0 100rem;
    margin-top: 0;
  }
}
.l-top-about__content {
  display: flex;
  justify-content: space-between;
  align-items: start;
  padding: 100rem 30rem 0;
}
@media (width <= 750px) {
  .l-top-about__content {
    flex-direction: column;
    gap: 100rem;
  }
}
.l-top-about .u-lead-second {
  font-weight: 600;
}
.l-top-about__lead {
  font-size: 28rem;
  font-weight: 600;
  line-height: 210%;
  letter-spacing: 0.02em;
}
@media (width <= 750px) {
  .l-top-about__lead {
    font-size: 34rem;
    letter-spacing: 0.05em;
  }
}
.l-top-about__img {
  display: flex;
  flex-direction: column;
  gap: 30rem;
}
.l-top-about__img > img {
  width: 380rem;
  height: 260rem;
}
@media (width <= 750px) {
  .l-top-about__img > img {
    width: 100%;
    height: auto;
    aspect-ratio: 690/472;
  }
}

.l-top-corporate-link {
  position: relative;
  border-top: 1rem solid var(--color-black);
  border-bottom: 1rem solid var(--color-black);
  background-color: var(--color-gray-2);
  transition: background-color 0.4s ease;
}
.l-top-corporate-link:hover {
  background-color: var(--color-accent-1);
}

.l-top-contact {
  position: relative;
  padding: 200rem 0 0;
  background-color: var(--color-gray-2);
}
.l-top-contact .p-marquee {
  padding: 45rem 0;
}

body.layout-fixing #page {
  background-color: var(--color-gray-2);
}
body.layout-fixing .l-mv {
  position: relative;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  padding-top: 350px;
  margin-inline: auto;
  background-color: var(--color-gray-2);
  overflow: hidden;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv {
    padding-top: 350rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv {
    padding-top: 680rem;
  }
}
body.layout-fixing .l-mv::before {
  content: "";
  position: absolute;
  top: 35px;
  left: 50%;
  transform: translateX(-50%);
  width: 787px;
  height: 680px;
  background: no-repeat center/cover url("../img/common/bg-mv.svg");
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv::before {
    top: 35rem;
    width: 787rem;
    height: 680rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv::before {
    top: 100rem;
  }
}
body.layout-fixing .l-mv .c-catch__wrap {
  position: absolute;
  top: 80px;
  left: 50%;
  transform: translateX(-50%);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv .c-catch__wrap {
    top: 80rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv .c-catch__wrap {
    top: 130rem;
  }
}
body.layout-fixing .l-mv__title {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 36px;
  width: 1264px;
  padding: 0 0 70px;
  margin-inline: auto;
  z-index: 1;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv__title {
    width: 1264rem;
    padding: 0 0 70rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv__title {
    width: 100%;
    padding: 0 30rem;
  }
}
body.layout-fixing .l-mv__title .l-mv__title-sub {
  position: absolute;
  left: 0;
  bottom: -40px;
  width: 1264px;
  padding: 0;
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv__title .l-mv__title-sub {
    bottom: -40rem;
    width: 1264rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv__title .l-mv__title-sub {
    width: 100%;
    padding: 0 30rem;
    bottom: -200rem;
  }
}
body.layout-fixing .l-mv__gallery-wrap {
  position: relative;
  width: 100%;
}
@media (width <= 750px) {
  body.layout-fixing .l-mv__gallery-wrap {
    height: 770rem;
    overflow: hidden;
    margin-top: 103rem;
  }
}
body.layout-fixing .l-mv__gallery {
  display: flex;
  gap: 30px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv__gallery {
    gap: 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv__gallery {
    position: absolute;
    top: 0;
    left: 50%;
    gap: 30rem;
    width: 1460rem;
    transform: translateX(-50%);
  }
}
body.layout-fixing .l-mv__gallery-content {
  position: relative;
  width: 33.3333333333%;
  aspect-ratio: 466/606;
  height: 606px;
  border-bottom: 36px solid var(--color-accent-1);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-mv__gallery-content {
    height: 606rem;
    border-bottom: 36rem solid var(--color-accent-1);
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-mv__gallery-content {
    height: 606rem;
    aspect-ratio: 424/606;
    border-bottom: 36rem solid var(--color-accent-1);
  }
}
body.layout-fixing .l-mv__gallery-content.__02 {
  margin-top: 70px;
}
body.layout-fixing .l-mv__gallery-content.__03 {
  margin-top: 20px;
}
body.layout-fixing .l-mv__gallery-content img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
body.layout-fixing .l-top-message {
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  padding: 200px 50px 80px;
  margin-inline: auto;
  background-color: var(--color-gray-2);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-message {
    padding: 200rem 50rem 80rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-message {
    padding: 200rem 35rem 0rem;
  }
}
body.layout-fixing .l-top-issue {
  position: relative;
  scroll-margin-top: 300px;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-issue {
    scroll-margin-top: 300rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-issue {
    padding: 200rem 0 200rem;
  }
}
body.layout-fixing .l-top-issue .c-slider {
  height: 540px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-issue .c-slider {
    height: 540rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-issue .c-slider {
    height: 618rem;
  }
}
body.layout-fixing .l-top-issue .c-slider__img {
  object-fit: contain;
}
body.layout-fixing .l-top-issue .l-section-ttl-wrap {
  position: absolute;
  top: 120px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-issue .l-section-ttl-wrap {
    top: 120rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-issue .l-section-ttl-wrap {
    top: 180rem;
    width: 100%;
  }
}
body.layout-fixing .l-top-issue__content {
  padding: 365px 0 80px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-issue__content {
    padding: 365rem 0 80rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-issue__content {
    padding: 180rem 0 0;
  }
}
body.layout-fixing .l-top-solution {
  position: relative;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
  background-color: #fff;
}
body.layout-fixing .l-top-solution__head {
  position: absolute;
  top: 120px;
  width: 100%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-solution__head {
    top: 120rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-solution__head {
    top: 180rem;
  }
}
body.layout-fixing .l-top-solution .section-inner {
  padding-top: 330px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-solution .section-inner {
    padding-top: 330rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-solution .section-inner {
    padding-top: 390rem;
  }
}
body.layout-fixing .l-top-solution .u-lead-base {
  margin-bottom: 90px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-solution .u-lead-base {
    margin-bottom: 90rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-solution .u-lead-base {
    margin-bottom: 90rem;
  }
}
body.layout-fixing .l-top-solution .u-lead-second {
  margin-bottom: 120px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-solution .u-lead-second {
    margin-bottom: 120rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-solution .u-lead-second {
    margin-bottom: 120rem;
  }
}
body.layout-fixing .l-top-slider {
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  padding: 200px 0 50px;
  margin-inline: auto;
  background-color: #fff;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-slider {
    padding: 200rem 0 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-slider {
    padding: 200rem 0 200rem;
  }
}
body.layout-fixing .l-top-slider .c-slider {
  height: 400px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-slider .c-slider {
    height: 400rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-slider .c-slider {
    height: 600rem;
  }
}
body.layout-fixing .l-top-work {
  position: relative;
  background-color: #fff;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
body.layout-fixing .l-top-work .l-section-ttl-wrap {
  position: absolute;
  top: 120px;
  left: 0;
  width: 100%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-work .l-section-ttl-wrap {
    top: 120rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-work .l-section-ttl-wrap {
    top: 180rem;
  }
}
body.layout-fixing .l-top-work__lead {
  font-size: 24px;
  font-weight: 500;
  line-height: 210%;
  letter-spacing: 0.02em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-work__lead {
    font-size: 24rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-work__lead {
    font-size: 34rem;
  }
}
body.layout-fixing .l-top-work .section-inner {
  padding: 320px 30px 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-work .section-inner {
    padding: 320rem 35rem 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-work .section-inner {
    padding: 350rem 35rem 0;
  }
}
body.layout-fixing .l-top-work .p-gallery {
  padding: 45px 0 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-work .p-gallery {
    padding: 45rem 0 0;
  }
}
body.layout-fixing .l-top-flow {
  min-height: 900px;
  padding-top: 120px;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-flow {
    min-height: 900rem;
    padding-top: 120rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-flow {
    height: auto !important;
    padding-top: 180rem;
    padding-bottom: 100rem;
  }
}
body.layout-fixing .l-top-flow__content-sp {
  display: none;
  flex-direction: column;
  gap: 40px;
  padding: 50px 0 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-flow__content-sp {
    gap: 40rem;
    padding: 50rem 0 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-flow__content-sp {
    display: flex;
  }
}
body.layout-fixing .l-top-flow__foot {
  font-size: calc(24px * var(--card-ratio-flow));
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0.01em;
  padding: 30px 30px 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-flow__foot {
    font-size: calc(24rem * var(--card-ratio-flow));
    padding: 30rem 30rem 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-flow__foot {
    font-size: 34rem;
  }
}
body.layout-fixing .l-top-about {
  position: relative;
  padding: 140px 0 100px;
  margin-top: calc(-1 * (100vh - 705px * var(--card-ratio-flow)));
  background-color: var(--color-gray-2);
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-about {
    padding: 140rem 0 100rem;
    margin-top: calc(-1 * (100vh - 680rem * var(--card-ratio-flow)));
  }
}
@media (3000px < width) {
  body.layout-fixing .l-top-about {
    margin-top: calc(-1 * (100vh - 870px * var(--card-ratio-flow)));
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-about {
    padding: 180rem 0 100rem;
    margin-top: 0;
  }
}
body.layout-fixing .l-top-about__content {
  display: flex;
  justify-content: space-between;
  align-items: start;
  padding: 100px 30px 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-about__content {
    padding: 100rem 30rem 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-about__content {
    flex-direction: column;
    padding: 100rem 30rem 0;
    gap: 100rem;
  }
}
body.layout-fixing .l-top-about .u-lead-second {
  font-weight: 600;
}
body.layout-fixing .l-top-about__lead {
  font-size: 28px;
  font-weight: 600;
  line-height: 210%;
  letter-spacing: 0.02em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-about__lead {
    font-size: 28rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-about__lead {
    font-size: 34rem;
    letter-spacing: 0.05em;
  }
}
body.layout-fixing .l-top-about__img {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-about__img {
    gap: 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-about__img {
    gap: 30rem;
  }
}
body.layout-fixing .l-top-about__img > img {
  width: 380px;
  height: 260px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-about__img > img {
    width: 380rem;
    height: 260rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-about__img > img {
    width: 100%;
    height: auto;
    aspect-ratio: 690/472;
  }
}
body.layout-fixing .l-top-corporate-link {
  position: relative;
  border-top: 1px solid var(--color-black);
  border-bottom: 1px solid var(--color-black);
  background-color: var(--color-gray-2);
  transition: background-color 0.4s ease;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-corporate-link {
    border-top: 1rem solid var(--color-black);
    border-bottom: 1rem solid var(--color-black);
  }
}
body.layout-fixing .l-top-corporate-link:hover {
  background-color: var(--color-accent-1);
}
body.layout-fixing .l-top-contact {
  position: relative;
  padding: 200px 0 0;
  background-color: var(--color-gray-2);
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-contact {
    padding: 200rem 0 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-contact {
    padding: 200rem 0 0;
  }
}
body.layout-fixing .l-top-contact .p-marquee {
  padding: 45px 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-top-contact .p-marquee {
    padding: 45rem 0;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-top-contact .p-marquee {
    padding: 45rem 0;
  }
}

/* =========================================================
  Common
========================================================= */
.l-contact-info {
  border-top: 1rem solid var(--color-black);
  height: 250rem;
}
@media (width <= 750px) {
  .l-contact-info {
    height: auto;
  }
}
.l-contact-info__inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: inherit;
}
@media (width <= 750px) {
  .l-contact-info__inner {
    flex-direction: column;
  }
}
.l-contact-info__l, .l-contact-info__r {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50%;
  height: inherit;
}
@media (width <= 750px) {
  .l-contact-info__l, .l-contact-info__r {
    width: 100%;
    height: 350rem;
  }
}
.l-contact-info__l {
  display: flex;
  flex-direction: column;
  border-right: 1rem solid var(--color-black);
}
@media (width <= 750px) {
  .l-contact-info__l {
    border-right: none;
    border-bottom: 1rem solid var(--color-black);
  }
}
.l-contact-info__l > h3 {
  font-size: 20rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  .l-contact-info__l > h3 {
    line-height: 200%;
    font-size: 28rem;
  }
}
.l-contact-info__l > tel {
  font-size: 50rem;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.05em;
  font-family: var(--font-family-en);
}
@media (width <= 750px) {
  .l-contact-info__l > tel {
    font-size: 75rem;
    line-height: 100%;
  }
}
.l-contact-info__l > p {
  font-size: 16rem;
  font-weight: 400;
  line-height: 125%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  .l-contact-info__l > p {
    font-size: 26rem;
  }
}
.l-contact-info__r {
  position: relative;
}
.l-contact-info__r > a {
  font-size: 28rem;
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: background-color 0.4s ease;
}
@media (width <= 750px) {
  .l-contact-info__r > a {
    font-size: 34rem;
  }
}
.l-contact-info__r > a:hover {
  background-color: var(--color-accent-1);
}

body.layout-fixing .l-contact-info {
  border-top: 1px solid var(--color-black);
  height: 250px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info {
    height: 250rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info {
    height: auto;
  }
}
body.layout-fixing .l-contact-info__inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: inherit;
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__inner {
    flex-direction: column;
  }
}
body.layout-fixing .l-contact-info__l, body.layout-fixing .l-contact-info__r {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50%;
  height: inherit;
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__l, body.layout-fixing .l-contact-info__r {
    width: 100%;
    height: 350rem;
  }
}
body.layout-fixing .l-contact-info__l {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--color-black);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info__l {
    border-right: 1rem solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__l {
    border-right: none;
    border-bottom: 1rem solid var(--color-black);
  }
}
body.layout-fixing .l-contact-info__l > h3 {
  font-size: 20px;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info__l > h3 {
    font-size: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__l > h3 {
    line-height: 200%;
    font-size: 28rem;
  }
}
body.layout-fixing .l-contact-info__l > tel {
  font-size: 50px;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.05em;
  font-family: var(--font-family-en);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info__l > tel {
    font-size: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__l > tel {
    font-size: 75rem;
    line-height: 100%;
  }
}
body.layout-fixing .l-contact-info__l > p {
  font-size: 16px;
  font-weight: 400;
  line-height: 125%;
  letter-spacing: 0.05em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info__l > p {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__l > p {
    font-size: 26rem;
  }
}
body.layout-fixing .l-contact-info__r {
  position: relative;
}
body.layout-fixing .l-contact-info__r > a {
  font-size: 28px;
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: background-color 0.4s ease;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-info__r > a {
    font-size: 28rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-info__r > a {
    font-size: 34rem;
  }
}
body.layout-fixing .l-contact-info__r > a:hover {
  background-color: var(--color-accent-1);
}

/* =========================================================
  Common
========================================================= */
.l-header {
  width: 100%;
  position: fixed;
  z-index: 999;
}
.l-header.__contact {
  position: relative;
  background-color: var(--color-gray-2);
}
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100rem;
  padding: 0 33rem;
}
@media (width <= 750px) {
  .l-header__inner {
    height: 110rem;
  }
}
.l-header__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20rem;
}
.l-header__logo {
  width: 220rem;
  height: 40rem;
}
.l-header__logo-phrase {
  font-size: 12rem;
}
@media screen and (max-width: 750px) {
  .l-header__logo-phrase {
    font-size: 20rem;
    font-weight: 500;
    line-height: 125%;
    letter-spacing: 0.05em;
  }
}
@media screen and (max-width: 750px) {
  .l-header__logo {
    width: 274rem;
    height: 50rem;
  }
}
.l-header__btns {
  display: none;
}
@media screen and (max-width: 1024px) {
  .l-header__btns {
    display: block;
  }
}
.l-header__nav {
  display: block;
}
@media screen and (max-width: 1024px) {
  .l-header__nav {
    display: none;
  }
}
.l-header.is-scrolled {
  background-color: var(--color-white);
}
.l-header.is-scrolled .l-header__inner {
  height: 70rem;
}
@media (width <= 750px) {
  .l-header.is-scrolled .l-header__inner {
    height: 110rem;
  }
}
.l-header.is-scrolled .c-btn-base {
  padding: 4rem 20rem 5.5rem;
}

body.layout-fixing .l-header {
  width: 100%;
  position: fixed;
  z-index: 999;
}
body.layout-fixing .l-header.__contact {
  position: relative;
  background-color: var(--color-gray-2);
}
body.layout-fixing .l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  height: 100px;
  padding: 0 50px;
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__inner {
    height: 100rem;
    padding: 0 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-header__inner {
    padding: 0 35rem;
    height: 110rem;
  }
}
body.layout-fixing .l-header__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__info {
    gap: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-header__info {
    gap: 20rem;
  }
}
body.layout-fixing .l-header__logo {
  width: 220px;
  height: 40px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__logo {
    width: 220rem;
    height: 40rem;
  }
}
@media screen and (max-width: 750px) {
  body.layout-fixing .l-header__logo {
    width: 274rem;
    height: 50rem;
  }
}
body.layout-fixing .l-header__logo-phrase {
  font-size: 12px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__logo-phrase {
    font-size: 12rem;
  }
}
@media screen and (max-width: 750px) {
  body.layout-fixing .l-header__logo-phrase {
    font-size: 20rem;
    font-weight: 500;
    line-height: 125%;
    letter-spacing: 0.05em;
  }
}
body.layout-fixing .l-header.is-scrolled {
  background-color: var(--color-white);
}
body.layout-fixing .l-header.is-scrolled .l-header__inner {
  height: 70px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header.is-scrolled .l-header__inner {
    height: 70rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-header.is-scrolled .l-header__inner {
    height: 110rem;
  }
}
body.layout-fixing .l-header.is-scrolled .c-btn-base {
  padding: 4px 20px 5.5px;
}

/* =========================================================
  Common
========================================================= */
.l-header__nav-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30rem;
}

.l-header__menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 43rem;
}
.l-header__menu .menu-item {
  position: relative;
  color: #333;
  font-size: 15rem;
  font-family: var(--font-family-en);
  line-height: 1.3;
  letter-spacing: 0.02em;
  list-style: none;
}
.l-header__menu .menu-item a {
  position: relative;
  display: block;
  perspective: 1000px; /* 3D効果の奥行き */
  text-decoration: none;
}
.l-header__menu .menu-item:hover a::after {
  opacity: 1;
}
.l-header__menu .menu-item:hover .c-menu-text {
  transform: rotateX(90deg);
}

/* 2つのテキストを包むコンテナ */
.c-menu-text {
  display: grid; /* グリッドを使うと、中身の最大幅に親が自動で広がる */
  position: relative;
  transition: transform 0.4s cubic-bezier(0.6, 0, 0.4, 1);
  transform-style: preserve-3d;
  color: #000;
  font-size: 15rem;
  font-weight: 600;
  line-height: 160%;
  letter-spacing: 0.05em;
}
.c-menu-text__en, .c-menu-text__jp {
  grid-area: stack; /* 同じ場所に重ねる */
  display: flex;
  align-items: center;
  justify-content: center;
  backface-visibility: hidden; /* 裏側を見えなくする */
  white-space: nowrap;
}
.c-menu-text {
  /* 英語（正面） */
}
.c-menu-text__en {
  transform: rotateX(0deg) translateZ(25px); /* 前に25px出す（高さの半分） */
}
.c-menu-text {
  /* 日本語（底面：サイコロの下側） */
}
.c-menu-text__jp {
  transform: rotateX(-90deg) translateZ(25px) translateX(-50%);
  position: absolute;
  left: 50%;
}
.c-menu-text__jp::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5rem;
  width: 100%;
  height: 5rem;
  background-color: var(--color-accent-1);
  transition: opacity 0.8s ease;
}

body.layout-fixing .l-header__nav-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__nav-inner {
    gap: 30rem;
  }
}
body.layout-fixing .l-header__menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-header__menu {
    gap: 40rem;
  }
}
body.layout-fixing .l-header__menu .menu-item {
  position: relative;
  color: #333;
  font-size: 15px;
  font-family: var(--font-family-en);
  line-height: 1.3;
  letter-spacing: 0.02em;
  list-style: none;
}
body.layout-fixing .l-header__menu .menu-item a {
  position: relative;
  display: block;
  perspective: 1000px; /* 3D効果の奥行き */
  text-decoration: none;
}
body.layout-fixing .l-header__menu .menu-item:hover a::after {
  opacity: 1;
}
body.layout-fixing .l-header__menu .menu-item:hover .c-menu-text {
  transform: rotateX(90deg);
}
body.layout-fixing {
  /* 2つのテキストを包むコンテナ */
}
body.layout-fixing .c-menu-text {
  display: grid; /* グリッドを使うと、中身の最大幅に親が自動で広がる */
  position: relative;
  transition: transform 0.4s cubic-bezier(0.6, 0, 0.4, 1);
  transform-style: preserve-3d;
  color: #000;
  font-size: 15px;
  font-weight: 600;
  line-height: 160%;
  letter-spacing: 0.05em;
}
body.layout-fixing .c-menu-text__en, body.layout-fixing .c-menu-text__jp {
  grid-area: stack; /* 同じ場所に重ねる */
  display: flex;
  align-items: center;
  justify-content: center;
  backface-visibility: hidden; /* 裏側を見えなくする */
  white-space: nowrap;
}
body.layout-fixing .c-menu-text {
  /* 英語（正面） */
}
body.layout-fixing .c-menu-text__en {
  transform: rotateX(0deg) translateZ(25px); /* 前に25px出す（高さの半分） */
}
body.layout-fixing .c-menu-text {
  /* 日本語（底面：サイコロの下側） */
}
body.layout-fixing .c-menu-text__jp {
  transform: rotateX(-90deg) translateZ(25px) translateX(-50%);
  position: absolute;
  left: 50%;
}
body.layout-fixing .c-menu-text__jp::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 5px;
  background-color: var(--color-accent-1);
  transition: opacity 0.8s ease;
}

/* =========================================================
  Common
========================================================= */
.l-footer {
  position: relative;
  background-color: var(--color-gray-2);
}
.l-footer__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 75rem 30rem;
  border-top: 1px solid var(--color-black);
}
@media (width <= 750px) {
  .l-footer__inner {
    padding: 100rem 30rem 200rem;
    flex-direction: column;
    gap: 100rem;
  }
}
.l-footer__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 80rem;
}
@media (width <= 750px) {
  .l-footer__info {
    flex-direction: column;
  }
}
.l-footer__logo {
  width: 440rem;
  height: 80rem;
}
@media (width <= 750px) {
  .l-footer__logo {
    width: 550rem;
    height: 100rem;
  }
}
.l-footer__addr {
  font-size: 16rem;
  font-weight: 600;
  line-height: 160%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  .l-footer__addr {
    text-align: center;
    font-size: 26rem;
  }
}
.l-footer__copyright {
  font-size: 13rem;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 20rem 0;
  border-top: 1rem solid var(--color-black);
}
@media (width <= 750px) {
  .l-footer__copyright {
    font-size: 26rem;
  }
}
.l-footer__nav {
  font-size: 13rem;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  .l-footer__nav {
    font-size: 26rem;
  }
}
.l-footer__nav button {
  position: absolute;
  right: 30rem;
  bottom: 30rem;
}
@media (width <= 750px) {
  .l-footer__nav button {
    font-size: 26rem;
    left: 50%;
    right: auto;
    bottom: 100rem;
    transform: translateX(-50%);
  }
}

body.layout-fixing .l-footer {
  position: relative;
  background-color: var(--color-gray-2);
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
body.layout-fixing .l-footer__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 75px 30px;
  border-top: 1px solid var(--color-black);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__inner {
    padding: 75rem 30rem;
    border-top: 1rem solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__inner {
    padding: 100rem 30rem 200rem;
    flex-direction: column;
    gap: 100rem;
  }
}
body.layout-fixing .l-footer__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 80px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__info {
    gap: 80rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__info {
    flex-direction: column;
    gap: 70rem;
  }
}
body.layout-fixing .l-footer__logo {
  width: 440px;
  height: 80px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__logo {
    width: 440rem;
    height: 80rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__logo {
    width: 550rem;
    height: 100rem;
  }
}
body.layout-fixing .l-footer__addr {
  font-size: 16px;
  font-weight: 600;
  line-height: 160%;
  letter-spacing: 0.05em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__addr {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__addr {
    text-align: center;
    font-size: 26rem;
  }
}
body.layout-fixing .l-footer__copyright {
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 20px 0;
  border-top: 1px solid var(--color-black);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__copyright {
    font-size: 13rem;
    padding: 20rem 0;
    border-top: 1rem solid var(--color-black);
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__copyright {
    font-size: 26rem;
  }
}
body.layout-fixing .l-footer__nav {
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.05em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__nav {
    font-size: 13rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__nav {
    font-size: 26rem;
  }
}
body.layout-fixing .l-footer__nav button {
  position: absolute;
  right: 30px;
  bottom: 30px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-footer__nav button {
    right: 30rem;
    bottom: 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-footer__nav button {
    font-size: 26rem;
    left: 50%;
    right: auto;
    bottom: 100rem;
    transform: translateX(-50%);
  }
}

/* =========================================================
  Common
========================================================= */
.l-section {
  padding-block: clamp(40rem, 9.51vw - 0.56rem, 100rem);
}
.l-section-ttl-wrap {
  padding: 0 30rem;
}

.l-container {
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.l-container.--mw-sm {
  max-width: var(--container-width-sm);
  padding-inline: var(--container-padding-sm);
}

.l-container.--mw-ss {
  max-width: var(--container-width-ss);
  padding-inline: var(--container-padding-ss);
}

.l-container.--mw-sss {
  max-width: var(--container-width-sss);
  padding-inline: var(--container-padding-sss);
}

.l-container.--mw-sp {
  max-width: var(--container-width-sp);
  padding-inline: 0;
}

.l-container.--mw-sp-sm {
  max-width: var(--container-width-sp-sm);
  padding-inline: 0;
}

@media (max-width: 767px) {
  .l-container.--sp {
    padding-inline: 0;
  }
}
/* =========================================================
  Common
========================================================= */
/* -----------------------------------------------------------
* お問い合わせページ
* ----------------------------------------------------------- */
.p-contact {
  padding: 80rem 0 50rem;
  background-color: var(--color-gray-2);
}
@media (width <= 750px) {
  .p-contact {
    padding: 130rem 0 80rem;
  }
}

.l-contact {
  padding: 100rem 130rem;
}
@media (width <= 750px) {
  .l-contact {
    padding: 100rem 30rem;
  }
}
.l-contact__content {
  display: flex;
  flex-direction: column;
  gap: 100rem;
  width: 68%;
  margin-inline: auto 0;
}
@media (width <= 750px) {
  .l-contact__content {
    width: 100%;
  }
}
.l-contact__lead {
  font-size: 16rem;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.08em;
}
@media (width <= 750px) {
  .l-contact__lead {
    font-size: 32rem;
    letter-spacing: 0.05em;
  }
}
.l-contact__lead a {
  text-decoration: underline;
}
.l-contact__confirm .l-contact__content {
  gap: 50rem;
}

/* -----------------------------------------------------------
* お問い合わせフォーム
* ----------------------------------------------------------- */
.c-form {
  display: flex;
  flex-direction: column;
  gap: 55rem;
}
.c-form #form-step-input {
  display: flex;
  flex-direction: column;
  gap: 50rem;
}
.c-form__group {
  display: flex;
  flex-direction: column;
  gap: 20rem;
}
.c-form__label {
  font-size: 16rem;
  font-weight: 600;
  line-height: 180%;
  letter-spacing: 0.08em;
}
@media (width <= 750px) {
  .c-form__label {
    font-size: 32rem;
  }
}
.c-form__required {
  color: #f00;
  font-size: 13rem;
  font-weight: 400;
  line-height: 200%;
}
@media (width <= 750px) {
  .c-form__required {
    font-size: 26rem;
  }
}
.c-form input {
  font-size: 16rem;
  font-weight: 600;
  line-height: 180%;
  width: 100%;
  padding: 20rem;
  border: 1rem solid var(--color-gray-2);
  background-color: var(--color-white);
}
@media (width <= 750px) {
  .c-form input {
    font-size: 32rem;
  }
}
.c-form {
  /* 入力コントロール（text, email, tel, textarea共通） */
}
.c-form__control input[type=text], .c-form__control input[type=email], .c-form__control input[type=tel], .c-form__control textarea {
  font-size: 16rem;
  font-weight: 400;
  line-height: 180%;
  letter-spacing: 0.05em;
  width: 100%;
  padding: 30rem;
  border: 1rem solid var(--color-gray-3);
  background-color: #e2e4e3;
}
@media (width <= 750px) {
  .c-form__control input[type=text], .c-form__control input[type=email], .c-form__control input[type=tel], .c-form__control textarea {
    font-size: 32rem;
  }
}
.c-form__control input[type=text]::placeholder, .c-form__control input[type=email]::placeholder, .c-form__control input[type=tel]::placeholder, .c-form__control textarea::placeholder {
  color: var(--color-gray-3);
}
.c-form__control .wpcf7-form-control-wrap {
  border: none;
}
.c-form__control textarea {
  resize: vertical; /* 縦方向のみ許可 */
  min-height: 260rem; /* 小さくなりすぎないよう最小値を設定しておくと親切 */
}
@media (width <= 750px) {
  .c-form__control textarea {
    min-height: 780rem;
  }
}
.c-form__notes {
  font-size: 16rem;
  font-weight: 500;
  line-height: 180%;
  margin-bottom: 50rem;
}
@media (width <= 750px) {
  .c-form__notes {
    font-size: 32rem;
  }
}
.c-form__file-list {
  display: flex;
  flex-direction: column;
  gap: 12rem;
}
.c-form__file-item {
  display: flex;
  align-items: center;
  gap: 40rem;
}
.c-form__file-item > label {
  font-size: 16rem;
  font-weight: 400;
  line-height: 180%;
}
.c-form__confirm {
  gap: 50rem;
}
.c-form__confirm-list {
  display: flex;
  flex-direction: column;
  gap: 60rem;
  margin-bottom: 100rem;
}
@media (width <= 750px) {
  .c-form__confirm-list {
    gap: 100rem;
  }
}
.c-form__confirm-item {
  display: flex;
  justify-content: start;
  align-items: start;
}
@media (width <= 750px) {
  .c-form__confirm-item {
    flex-direction: column;
    gap: 30rem;
  }
}
.c-form__confirm-label {
  font-size: 16rem;
  font-weight: 600;
  line-height: 175%;
  letter-spacing: 0.08em;
  width: 200rem;
}
@media (width <= 750px) {
  .c-form__confirm-label {
    font-size: 32rem;
    width: 100%;
  }
}
.c-form__confirm-value {
  font-size: 16rem;
  font-weight: 400;
  line-height: 175%;
  letter-spacing: 0.05em;
  flex: 1;
}
@media (width <= 750px) {
  .c-form__confirm-value {
    font-size: 32rem;
  }
}
.c-form__confirm .c-form__group {
  display: flex;
  flex-direction: row;
  gap: 10rem;
}
.c-form__confirm .c-form__group > label {
  width: 150rem;
}
@media (width <= 750px) {
  .c-form__confirm .c-form__group > label {
    width: 100%;
  }
}
@media (width <= 750px) {
  .c-form__confirm .c-form__group {
    flex-direction: column;
  }
}
@media (width <= 750px) {
  .c-form__confirm .c-form__submit-group {
    flex-direction: column;
    align-items: center;
  }
}
.c-form__confirm .wpcf7-spinner {
  display: none;
}
.c-form__control-static {
  font-size: 16rem;
  font-weight: 600;
  line-height: 180%;
}
@media (width <= 750px) {
  .c-form__control-static {
    font-size: 32rem;
  }
}
.c-form__visual-back-btn, .c-form__visual-submit-btn {
  color: var(--color-white);
  font-size: 20rem;
  font-weight: 600;
  padding: 40rem 135rem;
  width: max-content;
  width: 360rem;
  border: 1rem solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (width <= 750px) {
  .c-form__visual-back-btn, .c-form__visual-submit-btn {
    font-size: 34rem;
    width: 560rem;
  }
}
.c-form__visual-back-btn:hover, .c-form__visual-submit-btn:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}
.c-form__visual-back-btn {
  background-color: #6e6e6e;
}
.c-form__thanks {
  gap: 20rem;
}
@media (width <= 750px) {
  .c-form__thanks {
    gap: 50rem;
  }
}
.c-form__thanks-title {
  font-size: 24rem;
  font-weight: 600;
  line-height: 140%;
  letter-spacing: 0.08em;
}
@media (width <= 750px) {
  .c-form__thanks-title {
    font-size: 34rem;
  }
}
.c-form__thanks-text {
  font-size: 16rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.08em;
}
@media (width <= 750px) {
  .c-form__thanks-text {
    font-size: 32rem;
  }
}
.c-form__thanks-thanks {
  font-size: 70rem;
  font-weight: 700;
  font-family: var(--font-family-en);
  line-height: 100%;
}
@media (width <= 750px) {
  .c-form__thanks-thanks {
    font-size: 100rem;
    padding: 30rem 0;
  }
}
.c-form__thanks .c-btn--back-home {
  text-align: center;
  font-size: 20rem;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
}
@media (width <= 750px) {
  .c-form__thanks .c-btn--back-home {
    font-size: 34rem;
  }
}
.c-form__file-list {
  display: flex;
  flex-direction: column;
  gap: 30rem;
}
@media (width <= 750px) {
  .c-form__file-list {
    gap: 100rem;
  }
}
.c-form__file-item {
  position: relative;
}
.c-form__file-label {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 40rem;
  width: 100%;
  cursor: pointer;
}
@media (width <= 750px) {
  .c-form__file-label {
    flex-direction: column;
    align-items: start;
  }
}
.c-form__file-label:hover .c-form__file-visual-btn {
  opacity: 0.8;
}
.c-form__file-regi-wrap {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 40rem;
  border: 1px solid var(--color-gray-3);
  padding: 20rem;
  background-color: var(--color-gray-4);
  flex: 1;
}
.c-form__file-regi-wrap .wpcf7-form-control-wrap {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.c-form__file-title {
  font-weight: bold;
  font-size: 16rem;
  font-weight: 600;
  line-height: 175%;
  letter-spacing: 0.08em;
  min-width: 50rem;
}
@media (width <= 750px) {
  .c-form__file-title {
    font-size: 32rem;
  }
}
.c-form__file-visual-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-black);
  font-size: 16rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding: 12.5rem 24rem;
  border-radius: 6px;
  background-color: #b4b4b4;
  transition: opacity 0.2s ease;
  min-width: 170rem;
}
@media (width <= 750px) {
  .c-form__file-visual-btn {
    font-size: 32rem;
  }
}
.c-form__file-status {
  color: var(--color-gray-3);
  font-size: 16rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (width <= 750px) {
  .c-form__file-status {
    font-size: 32rem;
  }
}
.c-form__file-status.is-selected {
  color: #000;
  font-weight: 500;
}
.c-form__file-status.is-selected ~ .c-form__file-visual-btn {
  background-color: #666;
}

input:-internal-autofill-selected {
  background-color: #e2e4e3 !important;
}

.wpcf7-form-control-wrap {
  border: 1rem solid #9b9b9b;
  flex: 1;
}

/* CF7特有のファイル入力パーツの調整 */
.wpcf7-form-control.wpcf7-file {
  font-size: 16rem;
  border: none;
}
@media (width <= 750px) {
  .wpcf7-form-control.wpcf7-file {
    font-size: 32rem;
  }
}

/* 送信ボタン */
.c-form__submit {
  display: flex;
  justify-content: start;
  align-items: start;
  gap: 40rem;
}
@media (width <= 750px) {
  .c-form__submit {
    flex-direction: column;
    align-items: center;
  }
}
.c-form__submit .wpcf7-spinner {
  display: none;
}
.c-form__submit input[type=submit] {
  color: var(--color-white);
  font-weight: 600;
  padding: 40rem 135rem;
  width: 360rem;
  border: 1rem solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (width <= 750px) {
  .c-form__submit input[type=submit] {
    width: 560rem;
  }
}
.c-form__submit input[type=submit]:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}
.c-form__submit input[type=submit]:hover {
  opacity: 0.8;
}
.c-form__submit-group {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 40rem;
}

.wpcf7-form-control.wpcf7-previous,
.wpcf7-form-control.wpcf7-submit,
.c-btn--back-home {
  color: var(--color-white);
  font-weight: 600;
  padding: 40rem 135rem;
  width: 360rem;
  border: 1rem solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (width <= 750px) {
  .wpcf7-form-control.wpcf7-previous,
  .wpcf7-form-control.wpcf7-submit,
  .c-btn--back-home {
    width: 560rem;
  }
}
.wpcf7-form-control.wpcf7-previous:hover,
.wpcf7-form-control.wpcf7-submit:hover,
.c-btn--back-home:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}

.wpcf7-form-control.wpcf7-previous {
  background-color: var(--color-gray-1);
}

/* バリデーションエラー時のスタイル（CF7標準クラス） */
.wpcf7-not-valid-tip {
  color: var(--accent-color);
  font-size: 16rem;
  margin-top: 5px;
}
@media (width <= 750px) {
  .wpcf7-not-valid-tip {
    font-size: 32rem;
  }
}

.wpcf7-response-output {
  font-size: 16rem;
  margin-top: 20px;
  padding: 12px !important;
  border: 2px solid var(--accent-color) !important;
  border-radius: 4px;
}
@media (width <= 750px) {
  .wpcf7-response-output {
    font-size: 32rem;
  }
}

/* ファイル選択ボタン全体のスタイル */
.c-form__file-item input[type=file] {
  color: var(--color-gray-3);
  font-size: 16rem;
  font-weight: 400;
}
@media (width <= 750px) {
  .c-form__file-item input[type=file] {
    font-size: 32rem;
  }
}

/* ボタン部分（ファイル選択ボタン）の直接装飾 */
/* Chrome, Edge, Safari, Firefox 対応の擬似要素 */
.c-form__file-item input[type=file]::file-selector-button {
  color: #000; /* 文字色 */
  font-size: 16rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding: 12.5rem 24rem;
  border: 1rem solid #000;
  border-radius: 6px; /* 角丸 */
  margin-right: 40rem; /* 「選択されていません」との間隔 */
  transition: background-color 0.2s ease;
  background-color: #fff; /* ボタン背景色（画像に近いグレー） */
  cursor: pointer; /* ホバー時のカーソル */
}
@media (width <= 750px) {
  .c-form__file-item input[type=file]::file-selector-button {
    font-size: 32rem;
  }
}

/* ホバー時の挙動 */
.c-form__file-item input[type=file]::file-selector-button:hover {
  background-color: var(--color-gray-2);
}

/* Firefox用（古いバージョン対応が必要な場合） */
.c-form__file-item input[type=file]::-webkit-file-upload-button {
  background-color: #b4b4b4; /* ボタン背景色（画像に近いグレー） */
  color: #000; /* 文字色 */
  padding: 12.5rem 24rem;
  border: none;
  cursor: pointer;
}

.wpcf7-not-valid-tip {
  display: block;
  width: 100%;
  color: #f00;
  font-size: 12px;
  margin-top: 5px;
}
@media (width <= 750px) {
  .wpcf7-not-valid-tip {
    font-size: 24rem;
  }
}

.l-contact-confirm-file {
  font-size: 16rem;
}

.c-form__confirm-dl {
  display: flex;
  justify-content: start;
  align-items: start;
}
.c-form__confirm-dl dt {
  width: 200rem;
}
.c-form__confirm-dl dd {
  flex: 1;
}

body.layout-fixing {
  /* -----------------------------------------------------------
  * お問い合わせページ
  * ----------------------------------------------------------- */
}
body.layout-fixing .p-contact {
  padding: 80px 0 50px;
  background-color: var(--color-gray-2);
  width: 100%;
  max-width: calc(var(--base-vw) * 1px);
  margin-inline: auto;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .p-contact {
    padding: 80rem 0 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .p-contact {
    padding: 130rem 0 80rem;
  }
}
body.layout-fixing .l-contact {
  padding: 100px 130px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact {
    padding: 100rem 130rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact {
    padding: 100rem 30rem;
  }
}
body.layout-fixing .l-contact__content {
  display: flex;
  flex-direction: column;
  gap: 100px;
  width: 68%;
  margin-inline: auto 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact__content {
    gap: 100rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact__content {
    gap: 50rem;
    width: 100%;
  }
}
body.layout-fixing .l-contact__lead {
  font-size: 16px;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.08em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact__lead {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact__lead {
    font-size: 32rem;
    letter-spacing: 0.05em;
  }
}
body.layout-fixing .l-contact__lead a {
  text-decoration: underline;
}
body.layout-fixing .l-contact__confirm .l-contact__content {
  gap: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact__confirm .l-contact__content {
    gap: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact__confirm .l-contact__content {
    gap: 50rem;
  }
}
body.layout-fixing {
  /* -----------------------------------------------------------
  * お問い合わせフォーム
  * ----------------------------------------------------------- */
}
body.layout-fixing .c-form {
  display: flex;
  flex-direction: column;
  gap: 55px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form {
    gap: 55rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form {
    gap: 55rem;
  }
}
body.layout-fixing .c-form #form-step-input {
  display: flex;
  flex-direction: column;
  gap: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form #form-step-input {
    gap: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form #form-step-input {
    gap: 50rem;
  }
}
body.layout-fixing .c-form__group {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__group {
    gap: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__group {
    gap: 20rem;
  }
}
body.layout-fixing .c-form__label {
  font-size: 16px;
  font-weight: 600;
  line-height: 180%;
  letter-spacing: 0.08em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__label {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__label {
    font-size: 32rem;
  }
}
body.layout-fixing .c-form__required {
  color: #f00;
  font-size: 13px;
  font-weight: 400;
  line-height: 200%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__required {
    font-size: 13rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__required {
    font-size: 26rem;
  }
}
body.layout-fixing .c-form input {
  font-size: 16px;
  font-weight: 600;
  line-height: 180%;
  width: 100%;
  padding: 20px;
  border: 1px solid var(--color-gray-2);
  background-color: var(--color-white);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form input {
    font-size: 16rem;
    padding: 20rem;
    border: 1rem solid var(--color-gray-2);
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form input {
    font-size: 32rem;
    padding: 20rem;
    border: 1rem solid var(--color-gray-2);
  }
}
body.layout-fixing .c-form {
  /* 入力コントロール（text, email, tel, textarea共通） */
}
body.layout-fixing .c-form__control input[type=text], body.layout-fixing .c-form__control input[type=email], body.layout-fixing .c-form__control input[type=tel], body.layout-fixing .c-form__control textarea {
  font-size: 16px;
  font-weight: 400;
  line-height: 180%;
  letter-spacing: 0.05em;
  width: 100%;
  padding: 30px;
  border: 1px solid var(--color-gray-3);
  background-color: #e2e4e3;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__control input[type=text], body.layout-fixing .c-form__control input[type=email], body.layout-fixing .c-form__control input[type=tel], body.layout-fixing .c-form__control textarea {
    font-size: 16rem;
    padding: 30rem;
    border: 1rem solid var(--color-gray-3);
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__control input[type=text], body.layout-fixing .c-form__control input[type=email], body.layout-fixing .c-form__control input[type=tel], body.layout-fixing .c-form__control textarea {
    font-size: 16rem;
    padding: 30rem;
    border: 1rem solid var(--color-gray-3);
  }
}
body.layout-fixing .c-form__control input[type=text]::placeholder, body.layout-fixing .c-form__control input[type=email]::placeholder, body.layout-fixing .c-form__control input[type=tel]::placeholder, body.layout-fixing .c-form__control textarea::placeholder {
  color: var(--color-gray-3);
}
body.layout-fixing .c-form__control .wpcf7-form-control-wrap {
  border: none;
}
body.layout-fixing .c-form__control textarea {
  resize: vertical; /* 縦方向のみ許可 */
  min-height: 260px; /* 小さくなりすぎないよう最小値を設定しておくと親切 */
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__control textarea {
    min-height: 260rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__control textarea {
    min-height: 780rem;
  }
}
body.layout-fixing .c-form__notes {
  font-size: 16px;
  font-weight: 500;
  line-height: 180%;
  margin-bottom: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__notes {
    font-size: 16rem;
    margin-bottom: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__notes {
    font-size: 32rem;
    margin-bottom: 50rem;
  }
}
body.layout-fixing .c-form__file-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-list {
    gap: 12rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-list {
    gap: 12rem;
  }
}
body.layout-fixing .c-form__file-item {
  display: flex;
  align-items: center;
  gap: 40px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-item {
    gap: 40rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-item {
    gap: 40rem;
  }
}
body.layout-fixing .c-form__file-item > label {
  font-size: 16px;
  font-weight: 400;
  line-height: 180%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-item > label {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-item > label {
    font-size: 16rem;
  }
}
body.layout-fixing .c-form__confirm {
  gap: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm {
    gap: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm {
    gap: 50rem;
  }
}
body.layout-fixing .c-form__confirm-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  margin-bottom: 100px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm-list {
    gap: 60rem;
    margin-bottom: 100rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm-list {
    gap: 50rem;
    margin-bottom: 100rem;
  }
}
body.layout-fixing .c-form__confirm-item {
  display: flex;
  justify-content: start;
  align-items: start;
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm-item {
    flex-direction: column;
    gap: 10rem;
  }
}
body.layout-fixing .c-form__confirm-label {
  font-size: 16px;
  font-weight: 600;
  line-height: 175%;
  letter-spacing: 0.08em;
  width: 200px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm-label {
    font-size: 16rem;
    width: 200rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm-label {
    font-size: 32rem;
    width: 100%;
  }
}
body.layout-fixing .c-form__confirm-value {
  font-size: 16px;
  font-weight: 400;
  line-height: 175%;
  letter-spacing: 0.05em;
  flex: 1;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm-value {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm-value {
    font-size: 32rem;
  }
}
body.layout-fixing .c-form__confirm .c-form__group {
  display: flex;
  flex-direction: row;
  gap: 10px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm .c-form__group {
    gap: 10rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm .c-form__group {
    flex-direction: column;
    gap: 10rem;
  }
}
body.layout-fixing .c-form__confirm .c-form__group > label {
  width: 150px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm .c-form__group > label {
    width: 150rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm .c-form__group > label {
    width: 100%;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm .c-form__submit-group {
    flex-direction: column;
    align-items: center;
  }
}
body.layout-fixing .c-form__confirm .wpcf7-spinner {
  display: none;
}
body.layout-fixing .c-form__control-static {
  font-size: 16px;
  font-weight: 600;
  line-height: 180%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__control-static {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__control-static {
    font-size: 32rem;
  }
}
body.layout-fixing .c-form__visual-back-btn, body.layout-fixing .c-form__visual-submit-btn {
  color: var(--color-white);
  font-size: 20px;
  font-weight: 600;
  padding: 40px 135px;
  width: max-content;
  width: 360px;
  border: 1rem solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__visual-back-btn, body.layout-fixing .c-form__visual-submit-btn {
    font-size: 20rem;
    padding: 40rem 135rem;
    width: 360rem;
    border: 1rem solid #000;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__visual-back-btn, body.layout-fixing .c-form__visual-submit-btn {
    font-size: 34rem;
    padding: 40rem 135rem;
    width: 560rem;
    border: 1rem solid #000;
  }
}
body.layout-fixing .c-form__visual-back-btn:hover, body.layout-fixing .c-form__visual-submit-btn:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}
body.layout-fixing .c-form__visual-back-btn {
  background-color: #6e6e6e;
}
body.layout-fixing .c-form__thanks {
  gap: 20px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__thanks {
    gap: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__thanks {
    gap: 50rem;
  }
}
body.layout-fixing .c-form__thanks-title {
  font-size: 24px;
  font-weight: 600;
  line-height: 140%;
  letter-spacing: 0.08em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__thanks-title {
    font-size: 24rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__thanks-title {
    font-size: 34rem;
  }
}
body.layout-fixing .c-form__thanks-text {
  font-size: 16px;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.08em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__thanks-text {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__thanks-text {
    font-size: 32rem;
  }
}
body.layout-fixing .c-form__thanks-thanks {
  font-size: 70px;
  font-weight: 700;
  font-family: var(--font-family-en);
  line-height: 100%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__thanks-thanks {
    font-size: 70rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__thanks-thanks {
    font-size: 100rem;
    padding: 30rem 0;
  }
}
body.layout-fixing .c-form__thanks .c-btn--back-home {
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__thanks .c-btn--back-home {
    font-size: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__thanks .c-btn--back-home {
    font-size: 34rem;
  }
}
body.layout-fixing .c-form__file-list {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-list {
    gap: 30rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-list {
    gap: 100rem;
  }
}
body.layout-fixing .c-form__file-item {
  position: relative;
}
body.layout-fixing .c-form__file-label {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 40px;
  width: 100%;
  cursor: pointer;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-label {
    gap: 40rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-label {
    flex-direction: column;
    align-items: start;
    gap: 40rem;
  }
}
body.layout-fixing .c-form__file-label:hover .c-form__file-visual-btn {
  opacity: 0.8;
}
body.layout-fixing .c-form__file-regi-wrap {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 40px;
  border: 1px solid var(--color-gray-3);
  padding: 20px;
  background-color: var(--color-gray-4);
  flex: 1;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-regi-wrap {
    gap: 40rem;
    border: 1rem solid var(--color-gray-3);
    padding: 20rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-regi-wrap {
    gap: 40rem;
    border: 1rem solid var(--color-gray-3);
    padding: 20rem;
  }
}
body.layout-fixing .c-form__file-regi-wrap .wpcf7-form-control-wrap {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
body.layout-fixing .c-form__file-title {
  font-weight: bold;
  font-size: 16px;
  font-weight: 600;
  line-height: 175%;
  letter-spacing: 0.08em;
  min-width: 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-title {
    font-size: 16rem;
    min-width: 50rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-title {
    font-size: 32rem;
    min-width: 50rem;
  }
}
body.layout-fixing .c-form__file-visual-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-black);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding: 12.5px 24px;
  border-radius: 6px;
  background-color: #b4b4b4;
  transition: opacity 0.2s ease;
  min-width: 170px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-visual-btn {
    font-size: 16rem;
    padding: 12.5rem 24rem;
    min-width: 170rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-visual-btn {
    font-size: 32rem;
    padding: 12.5rem 24rem;
    min-width: 170rem;
  }
}
body.layout-fixing .c-form__file-status {
  color: var(--color-gray-3);
  font-size: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-status {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-status {
    font-size: 32rem;
  }
}
body.layout-fixing .c-form__file-status.is-selected {
  color: #000;
  font-weight: 500;
}
body.layout-fixing .c-form__file-status.is-selected ~ .c-form__file-visual-btn {
  background-color: #666;
}
body.layout-fixing input:-internal-autofill-selected {
  background-color: #e2e4e3 !important;
}
body.layout-fixing .wpcf7-form-control-wrap {
  border: 1rem solid #9b9b9b;
  flex: 1;
}
body.layout-fixing {
  /* CF7特有のファイル入力パーツの調整 */
}
body.layout-fixing .wpcf7-form-control.wpcf7-file {
  font-size: 16px;
  border: none;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .wpcf7-form-control.wpcf7-file {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .wpcf7-form-control.wpcf7-file {
    font-size: 32rem;
  }
}
body.layout-fixing {
  /* 送信ボタン */
}
body.layout-fixing .c-form__submit {
  display: flex;
  justify-content: start;
  align-items: start;
  gap: 40px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__submit {
    gap: 40rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__submit {
    flex-direction: column;
    align-items: center;
    gap: 40rem;
  }
}
body.layout-fixing .c-form__submit .wpcf7-spinner {
  display: none;
}
body.layout-fixing .c-form__submit input[type=submit] {
  color: var(--color-white);
  font-weight: 600;
  padding: 40px 100px;
  width: 360px;
  border: 1px solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__submit input[type=submit] {
    padding: 40rem 100rem;
    width: 360rem;
    border: 1rem solid #000;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__submit input[type=submit] {
    padding: 40rem 100rem;
    width: 560rem;
    border: 1rem solid #000;
  }
}
body.layout-fixing .c-form__submit input[type=submit]:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}
body.layout-fixing .c-form__submit input[type=submit]:hover {
  opacity: 0.8;
}
body.layout-fixing .c-form__submit-group {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 40px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__submit-group {
    gap: 40rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__submit-group {
    gap: 40rem;
  }
}
body.layout-fixing .wpcf7-form-control.wpcf7-previous,
body.layout-fixing .wpcf7-form-control.wpcf7-submit,
body.layout-fixing .c-btn--back-home {
  color: var(--color-white);
  font-weight: 600;
  padding: 40px 100px;
  width: 360px;
  border: 1px solid #000;
  border-radius: 999px;
  background-color: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
  cursor: pointer;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .wpcf7-form-control.wpcf7-previous,
  body.layout-fixing .wpcf7-form-control.wpcf7-submit,
  body.layout-fixing .c-btn--back-home {
    padding: 40rem 100rem;
    width: 360rem;
    border: 1rem solid #000;
  }
}
@media (width <= 750px) {
  body.layout-fixing .wpcf7-form-control.wpcf7-previous,
  body.layout-fixing .wpcf7-form-control.wpcf7-submit,
  body.layout-fixing .c-btn--back-home {
    padding: 40rem 100rem;
    width: 560rem;
    border: 1rem solid #000;
  }
}
body.layout-fixing .wpcf7-form-control.wpcf7-previous:hover,
body.layout-fixing .wpcf7-form-control.wpcf7-submit:hover,
body.layout-fixing .c-btn--back-home:hover {
  color: var(--color-black);
  background-color: var(--color-accent-1);
}
body.layout-fixing .wpcf7-form-control.wpcf7-previous {
  background-color: var(--color-gray-1);
}
body.layout-fixing {
  /* バリデーションエラー時のスタイル（CF7標準クラス） */
}
body.layout-fixing .wpcf7-not-valid-tip {
  color: var(--accent-color);
  font-size: 16px;
  margin-top: 5px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .wpcf7-not-valid-tip {
    font-size: 16rem;
    margin-top: 5rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .wpcf7-not-valid-tip {
    font-size: 32rem;
    margin-top: 5rem;
  }
}
body.layout-fixing .wpcf7-response-output {
  font-size: 16px;
  margin-top: 20px;
  padding: 12px !important;
  border: 2px solid var(--accent-color) !important;
  border-radius: 4px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .wpcf7-response-output {
    font-size: 16rem;
    margin-top: 20rem;
    padding: 12rem !important;
    border: 2rem solid var(--accent-color) !important;
    border-radius: 4rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .wpcf7-response-output {
    font-size: 32rem;
    margin-top: 20rem;
    padding: 12rem !important;
    border: 2rem solid var(--accent-color) !important;
    border-radius: 4rem;
  }
}
body.layout-fixing {
  /* ファイル選択ボタン全体のスタイル */
}
body.layout-fixing .c-form__file-item input[type=file] {
  color: var(--color-gray-3);
  font-size: 16px;
  font-weight: 400;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-item input[type=file] {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-item input[type=file] {
    font-size: 32rem;
  }
}
body.layout-fixing {
  /* ボタン部分（ファイル選択ボタン）の直接装飾 */
  /* Chrome, Edge, Safari, Firefox 対応の擬似要素 */
}
body.layout-fixing .c-form__file-item input[type=file]::file-selector-button {
  color: #000; /* 文字色 */
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding: 12.5px 24px;
  border: 1px solid #000;
  border-radius: 6px; /* 角丸 */
  margin-right: 40px; /* 「選択されていません」との間隔 */
  transition: background-color 0.2s ease;
  background-color: #fff; /* ボタン背景色（画像に近いグレー） */
  cursor: pointer; /* ホバー時のカーソル */
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-item input[type=file]::file-selector-button {
    font-size: 16rem;
    padding: 12.5rem 24rem;
    border: 1rem solid #000;
    border-radius: 6rem; /* 角丸 */
    margin-right: 40rem; /* 「選択されていません」との間隔 */
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-item input[type=file]::file-selector-button {
    font-size: 32rem;
    padding: 12.5rem 24rem;
    border: 1rem solid #000;
    border-radius: 6rem; /* 角丸 */
    margin-right: 40rem; /* 「選択されていません」との間隔 */
  }
}
body.layout-fixing {
  /* ホバー時の挙動 */
}
body.layout-fixing .c-form__file-item input[type=file]::file-selector-button:hover {
  background-color: var(--color-gray-2);
}
body.layout-fixing {
  /* Firefox用（古いバージョン対応が必要な場合） */
}
body.layout-fixing .c-form__file-item input[type=file]::-webkit-file-upload-button {
  background-color: #b4b4b4; /* ボタン背景色（画像に近いグレー） */
  color: #000; /* 文字色 */
  padding: 12.5px 24px;
  border: none;
  cursor: pointer;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__file-item input[type=file]::-webkit-file-upload-button {
    padding: 12.5rem 24rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__file-item input[type=file]::-webkit-file-upload-button {
    padding: 12.5rem 24rem;
  }
}
body.layout-fixing .wpcf7-not-valid-tip {
  display: block;
  width: 100%;
  color: #f00;
  font-size: 12px;
  margin-top: 5px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .wpcf7-not-valid-tip {
    font-size: 12rem;
    margin-top: 5rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .wpcf7-not-valid-tip {
    font-size: 12rem;
    margin-top: 5rem;
  }
}
body.layout-fixing .l-contact-confirm-file {
  font-size: 16px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-contact-confirm-file {
    font-size: 16rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .l-contact-confirm-file {
    font-size: 16rem;
  }
}
body.layout-fixing .c-form__confirm-dl {
  display: flex;
  justify-content: start;
  align-items: start;
}
body.layout-fixing .c-form__confirm-dl dt {
  width: 200px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-form__confirm-dl dt {
    width: 200rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-form__confirm-dl dt {
    width: 200rem;
  }
}
body.layout-fixing .c-form__confirm-dl dd {
  flex: 1;
}

/* =========================================================
  Common
========================================================= */
/* CSS側：transitionを使用 */
.char-inner {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.15em);
  transition: opacity 0.6s ease-in-out, transform 0.6s ease-in-out;
}
.char-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* コンテナ（監視対象） */
.p-statement__line {
  display: block;
  overflow: hidden;
  line-height: 1.5;
}
.p-statement {
  /* アニメーション本体 */
}
.p-statement__inner {
  display: inline-block;
  white-space: nowrap;
  color: var(--color-white);
  font-size: 40rem;
  line-height: 100%;
  font-weight: 900;
  padding: 6rem 9rem 11rem;
  margin-bottom: 20rem;
  background-color: var(--color-black);
}
.p-statement__inner:last-child {
  margin-bottom: 0;
}
.p-statement__inner {
  /* 前述のスタイルを継承 */
  opacity: 0;
  transform: translate3d(30px, 0, 0);
  clip-path: inset(0 100% 0 0);
  transition: transform 1.4s cubic-bezier(0.19, 1, 0.22, 1), clip-path 1.4s cubic-bezier(0.19, 1, 0.22, 1), opacity 1s ease-out;
  will-change: transform, clip-path;
}
.p-statement__inner > span {
  display: block;
  background-color: var(--color-black);
}
@media (width <= 750px) {
  .p-statement__inner {
    font-size: 48rem;
  }
}

/* --- スクロール発火時 --- */
.js-reveal-container.is-visible .p-statement__inner {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  clip-path: inset(0 0 0 0);
}

/* 2行目の遅延設定（Stagger） */
.p-statement__line:nth-child(2) .p-statement__inner {
  transition-delay: 0.15s;
}

.p-marquee {
  overflow: hidden;
  width: 100%;
}

.p-marquee__inner {
  display: flex;
  width: max-content;
  will-change: transform;
  /* JSから渡される変数 */
  animation: marquee-loop var(--duration, 60s) linear infinite;
}

/* JSで自動生成される共通コンテナ */
.p-marquee__unit {
  display: flex;
  align-items: center; /* 垂直方向の中央揃えを強制 */
  flex-shrink: 0;
  padding-right: 0; /* JSで隙間を制御しない場合はここで調整 */
}

/* ユニット内のあらゆる直下要素に隙間を作る */
.p-marquee__unit > * {
  margin: 0;
  padding-right: 2rem; /* 要素間の余白 */
  white-space: nowrap; /* テキストの改行を防止 */
  flex-shrink: 0;
}

/* 画像のベースラインの隙間を排除 */
.p-marquee__unit img {
  display: block;
  height: auto;
}

@keyframes marquee-loop {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(var(--offset), 0, 0);
  }
}
/* ギャラリー全体のリスト */
.p-gallery__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 正確に3分割 */
  gap: 8rem;
}
@media (width <= 750px) {
  .p-gallery__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-gallery__list img {
  width: 100%;
  height: auto;
  aspect-ratio: 430/294;
  object-fit: cover;
}
.p-gallery__list img:nth-child(n+10) {
  display: none;
}
.p-gallery__list.is-expanded img:nth-child(n+10) {
  display: block;
  animation: fadeIn 0.6s ease forwards;
}
.p-gallery__btn-wrap {
  text-align: center;
  padding: 0 0 80rem;
}

.c-btn-view {
  display: inline-block;
  color: var(--color-white);
  text-decoration: none;
  font-size: 20rem;
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
  max-width: 380rem;
  max-height: 100rem;
  padding: 20rem 100rem;
  border: 2px solid var(--color-black);
  border-radius: 999px;
  margin-top: 100rem;
  background: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
}
.c-btn-view:hover {
  color: var(--color-text-1);
  background: var(--color-accent-1);
}

/* 前述のJSで付与する非表示クラス */
.u-hidden {
  display: none !important;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* --- 横スクロール全体の親 --- */
.l-h-scroll-area {
  position: relative;
  width: 100%;
  /* ★重要: カード3枚なら300vw。これでリロード時の位置を維持します */
}

/* --- 固定されるコンテナ --- */
.l-h-scroll-sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  padding-top: 120rem;
}

/* WordPressアドミンバー対応 */
/* --- 横に流れる中身 --- */
.l-h-scroll-wrapper {
  display: flex;
  gap: 60rem;
  width: max-content;
  align-items: center;
  padding: 0 50rem 0 30rem;
  will-change: transform; /* アニメーションを滑らかに */
  position: relative;
}

/* --- 各カードのレイアウト --- */
.h-card {
  width: 100vw;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px;
  box-sizing: border-box;
}

.h-card__inner {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 80%;
}

.h-card__inner img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.h-card__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.highlight {
  background-repeat: no-repeat;
  background-position: left bottom;
  background-image: linear-gradient(0deg, var(--color-accent-1) 40%, transparent 40%);
  background-size: 100% 100%; /* 通常時は最初から表示 */
  /* 高さバリエーション */
}
.highlight.__b10 {
  background-image: linear-gradient(0deg, var(--color-accent-1) 10%, transparent 10%);
}
.highlight.__b20 {
  background-image: linear-gradient(0deg, var(--color-accent-1) 20%, transparent 20%);
}
.highlight {
  /* アニメーション対象にする場合 */
}
.highlight.--anim {
  background-size: 0% 100%; /* 最初は隠す */
  transition: background-size 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  /* 発火クラスが付与された時 */
}
.highlight.--anim.is-active {
  background-size: 100% 100%;
}

.c-strength__ttl {
  color: var(--color-white);
  font-size: 34rem;
  line-height: 100%;
  letter-spacing: 0em;
  text-align: center;
  width: max-content;
  padding: 18rem 28rem 19rem;
  margin: 0 auto 60rem;
  background-color: var(--color-black);
}
@media (width <= 750px) {
  .c-strength__ttl {
    font-size: 42rem;
  }
}
.c-strength__content {
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 68rem;
}
@media (width <= 750px) {
  .c-strength__content {
    flex-direction: column;
    align-items: center;
    padding: 0 30rem;
    gap: 60rem;
  }
}
.c-strength__content-left, .c-strength__content-right {
  width: 400rem;
}
@media (width <= 750px) {
  .c-strength__content-left, .c-strength__content-right {
    width: 100%;
    margin-inline: auto;
  }
}
.c-strength__content-left h5, .c-strength__content-right h5 {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 28rem;
  line-height: 180%;
  font-weight: bold;
  width: 400rem;
  height: 400rem;
  border: 1px solid var(--color-black);
  border-radius: 50%;
  margin-bottom: 45rem;
  background-color: var(--color-accent-1);
}
@media (width <= 750px) {
  .c-strength__content-left h5, .c-strength__content-right h5 {
    font-size: 32rem;
    width: 460rem;
    height: 460rem;
    line-height: 200%;
    margin: 0 auto 45rem;
    border: 2px solid var(--color-black);
  }
}
.c-strength__content-left p, .c-strength__content-right p {
  text-align: justify;
  font-size: 24rem;
  line-height: 175%;
  letter-spacing: 0.08em;
  font-weight: 500;
}
@media (width <= 750px) {
  .c-strength__content-left p, .c-strength__content-right p {
    font-size: 34rem;
  }
}
.c-strength__content-center {
  position: relative;
  width: 150rem;
  height: 150rem;
  margin-top: 124rem;
}
@media (width <= 750px) {
  .c-strength__content-center {
    margin-top: 0;
  }
}
.c-strength__content-center > span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 212rem;
  height: 2px;
  background-color: var(--color-black);
}
.c-strength__content-center > span:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
.c-strength__content-center > span:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-45deg);
}

body.layout-fixing {
  /* CSS側：transitionを使用 */
}
body.layout-fixing .char-inner {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.15em);
  transition: opacity 0.6s ease-in-out, transform 0.6s ease-in-out;
}
body.layout-fixing .char-inner.is-visible {
  opacity: 1;
  transform: translateY(0);
}
body.layout-fixing {
  /* コンテナ（監視対象） */
}
body.layout-fixing .p-statement__line {
  display: block;
  overflow: hidden;
  line-height: 1.5;
}
body.layout-fixing .p-statement {
  /* アニメーション本体 */
}
body.layout-fixing .p-statement__inner {
  display: inline-block;
  white-space: nowrap;
  color: var(--color-white);
  font-size: 40px;
  line-height: 100%;
  font-weight: 900;
  padding: 6px 9px 11px;
  margin-bottom: 20px;
  background-color: var(--color-black);
  opacity: 0;
  transform: translate3d(30px, 0, 0);
  clip-path: inset(0 100% 0 0);
  transition: transform 1.4s cubic-bezier(0.19, 1, 0.22, 1), clip-path 1.4s cubic-bezier(0.19, 1, 0.22, 1), opacity 1s ease-out;
  will-change: transform, clip-path;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .p-statement__inner {
    font-size: 40rem;
    padding: 6rem 9rem 11rem;
    margin-bottom: 20rem;
    transform: translate3d(30rem, 0, 0);
  }
}
@media (width <= 750px) {
  body.layout-fixing .p-statement__inner {
    font-size: 40rem;
    padding: 6rem 9rem 11rem;
    margin-bottom: 20rem;
    transform: translate3d(30rem, 0, 0);
  }
}
body.layout-fixing .p-statement__inner:last-child {
  margin-bottom: 0;
}
body.layout-fixing .p-statement__inner > span {
  display: block;
  background-color: var(--color-black);
}
@media (width <= 750px) {
  body.layout-fixing .p-statement__inner {
    font-size: 48rem;
  }
}
body.layout-fixing {
  /* --- スクロール発火時 --- */
}
body.layout-fixing .js-reveal-container.is-visible .p-statement__inner {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  clip-path: inset(0 0 0 0);
}
body.layout-fixing {
  /* 2行目の遅延設定（Stagger） */
}
body.layout-fixing .p-statement__line:nth-child(2) .p-statement__inner {
  transition-delay: 0.15s;
}
body.layout-fixing .p-marquee {
  overflow: hidden;
  width: 100%;
}
body.layout-fixing .p-marquee__inner {
  display: flex;
  width: max-content;
  will-change: transform;
  /* JSから渡される変数 */
  animation: marquee-loop var(--duration, 60s) linear infinite;
}
body.layout-fixing {
  /* JSで自動生成される共通コンテナ */
}
body.layout-fixing .p-marquee__unit {
  display: flex;
  align-items: center; /* 垂直方向の中央揃えを強制 */
  flex-shrink: 0;
  padding-right: 0; /* JSで隙間を制御しない場合はここで調整 */
}
body.layout-fixing {
  /* ユニット内のあらゆる直下要素に隙間を作る */
}
body.layout-fixing .p-marquee__unit > * {
  margin: 0;
  padding-right: 2px; /* 要素間の余白 */
  white-space: nowrap; /* テキストの改行を防止 */
  flex-shrink: 0;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .p-marquee__unit > * {
    padding-right: 2rem;
  }
}
body.layout-fixing {
  /* 画像のベースラインの隙間を排除 */
}
body.layout-fixing .p-marquee__unit img {
  display: block;
  height: auto;
}
@keyframes marquee-loop {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(var(--offset), 0, 0);
  }
}
body.layout-fixing {
  /* ギャラリー全体のリスト */
}
body.layout-fixing .p-gallery__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 正確に3分割 */
  gap: 8px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .p-gallery__list {
    gap: 8rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .p-gallery__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
body.layout-fixing .p-gallery__list img {
  width: 100%;
  height: auto;
  aspect-ratio: 430/294;
  object-fit: cover;
}
body.layout-fixing .p-gallery__list img:nth-child(n+10) {
  display: none;
}
body.layout-fixing .p-gallery__list.is-expanded img:nth-child(n+10) {
  display: block;
  animation: fadeIn 0.6s ease forwards;
}
body.layout-fixing .p-gallery__btn-wrap {
  text-align: center;
  padding: 0 0 80px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .p-gallery__btn-wrap {
    padding: 0 0 80rem;
  }
}
body.layout-fixing .c-btn-view {
  display: inline-block;
  color: var(--color-white);
  text-decoration: none;
  font-size: 20px;
  font-weight: 500;
  font-family: var(--font-family-en);
  line-height: 150%;
  letter-spacing: 0.03em;
  max-width: 380px;
  max-height: 100px;
  padding: 20px 100px;
  border: 2px solid var(--color-black);
  border-radius: 999px;
  margin-top: 100px;
  background: var(--color-black);
  transition: color 0.4s ease, background-color 0.4s ease;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-btn-view {
    font-size: 20rem;
    max-width: 380rem;
    max-height: 100rem;
    padding: 20rem 100rem;
    margin-top: 100rem;
  }
}
body.layout-fixing .c-btn-view:hover {
  color: var(--color-text-1);
  background: var(--color-accent-1);
}
body.layout-fixing {
  /* 前述のJSで付与する非表示クラス */
}
body.layout-fixing .u-hidden {
  display: none !important;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
body.layout-fixing {
  /* --- 横スクロール全体の親 --- */
}
body.layout-fixing .l-h-scroll-area {
  position: relative;
  width: 100%;
}
body.layout-fixing {
  /* --- 固定されるコンテナ --- */
}
body.layout-fixing .l-h-scroll-sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  padding-top: 120px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-h-scroll-sticky {
    padding-top: 120rem;
  }
}
body.layout-fixing {
  /* --- 横に流れる中身 --- */
}
body.layout-fixing .l-h-scroll-wrapper {
  display: flex;
  gap: 60px;
  width: max-content;
  align-items: center;
  padding: 0 30px 0 30px;
  will-change: transform; /* アニメーションを滑らかに */
  position: relative;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .l-h-scroll-wrapper {
    gap: 60rem;
    padding: 0 30rem 0 30rem;
  }
}
body.layout-fixing {
  /* --- 各カードのレイアウト --- */
}
body.layout-fixing .h-card {
  width: 100vw;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px;
  box-sizing: border-box;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .h-card {
    padding: 40rem;
  }
}
body.layout-fixing .h-card__inner {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 80%;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .h-card__inner {
    max-width: 1200rem;
  }
}
body.layout-fixing .h-card__inner img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
body.layout-fixing .h-card__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
body.layout-fixing .highlight {
  background-repeat: no-repeat;
  background-position: left bottom;
  background-image: linear-gradient(0deg, var(--color-accent-1) 40%, transparent 40%);
  background-size: 100% 100%; /* 通常時は最初から表示 */
  /* 高さバリエーション */
}
body.layout-fixing .highlight.__b10 {
  background-image: linear-gradient(0deg, var(--color-accent-1) 10%, transparent 10%);
}
body.layout-fixing .highlight.__b20 {
  background-image: linear-gradient(0deg, var(--color-accent-1) 20%, transparent 20%);
}
body.layout-fixing .highlight {
  /* アニメーション対象にする場合 */
}
body.layout-fixing .highlight.--anim {
  background-size: 0% 100%; /* 最初は隠す */
  transition: background-size 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  /* 発火クラスが付与された時 */
}
body.layout-fixing .highlight.--anim.is-active {
  background-size: 100% 100%;
}
body.layout-fixing .c-strength__ttl {
  color: var(--color-white);
  font-size: 34px;
  line-height: 100%;
  letter-spacing: 0em;
  text-align: center;
  width: max-content;
  padding: 18px 28px 19px;
  margin: 0 auto 60px;
  background-color: var(--color-black);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__ttl {
    font-size: 34rem;
    padding: 18rem 28rem 19rem;
    margin: 0 auto 60rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__ttl {
    font-size: 42rem;
    padding: 18rem 28rem 19rem;
    margin: 0 auto 50rem;
  }
}
body.layout-fixing .c-strength__content {
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 68px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content {
    gap: 68rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content {
    flex-direction: column;
    align-items: center;
    padding: 0 35rem;
    gap: 60rem;
  }
}
body.layout-fixing .c-strength__content-left, body.layout-fixing .c-strength__content-right {
  width: 400px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content-left, body.layout-fixing .c-strength__content-right {
    width: 400rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content-left, body.layout-fixing .c-strength__content-right {
    width: 100%;
    margin-inline: auto;
  }
}
body.layout-fixing .c-strength__content-left h5, body.layout-fixing .c-strength__content-right h5 {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 28px;
  line-height: 180%;
  font-weight: bold;
  width: 400px;
  height: 400px;
  border: 1px solid var(--color-black);
  border-radius: 50%;
  margin-bottom: 45px;
  background-color: var(--color-accent-1);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content-left h5, body.layout-fixing .c-strength__content-right h5 {
    font-size: 28rem;
    width: 400rem;
    height: 400rem;
    border: 1rem solid var(--color-black);
    margin-bottom: 45rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content-left h5, body.layout-fixing .c-strength__content-right h5 {
    font-size: 32rem;
    width: 460rem;
    height: 460rem;
    line-height: 200%;
    margin: 0 auto 45rem;
    border: 2rem solid var(--color-black);
  }
}
body.layout-fixing .c-strength__content-left p, body.layout-fixing .c-strength__content-right p {
  text-align: justify;
  font-size: 24px;
  line-height: 175%;
  letter-spacing: 0.08em;
  font-weight: 500;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content-left p, body.layout-fixing .c-strength__content-right p {
    font-size: 24rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content-left p, body.layout-fixing .c-strength__content-right p {
    font-size: 34rem;
  }
}
body.layout-fixing .c-strength__content-center {
  position: relative;
  width: 150px;
  height: 150px;
  margin-top: 124px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content-center {
    width: 150rem;
    height: 150rem;
    margin-top: 124rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content-center {
    width: 150rem;
    height: 150rem;
    margin-top: 0;
  }
}
body.layout-fixing .c-strength__content-center > span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 212px;
  height: 2px;
  background-color: var(--color-black);
}
@media (750px < width <= 1366px) {
  body.layout-fixing .c-strength__content-center > span {
    width: 212rem;
    height: 2rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .c-strength__content-center > span {
    width: 212rem;
    height: 2rem;
  }
}
body.layout-fixing .c-strength__content-center > span:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
body.layout-fixing .c-strength__content-center > span:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* =========================================================
  Common
========================================================= */
.u-word-grayarts {
  display: inline-block;
  width: 100%;
  height: 1em;
  background: no-repeat center/contain url("../img/common/grayarts.svg");
}
.u-word-g {
  display: inline-block;
  width: 0.7em;
  height: 0.72em;
  background: no-repeat center/contain url("../img/common/g.svg");
}

.u-lead-base {
  font-size: 40rem;
  font-weight: 900;
  line-height: 180%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  .u-lead-base {
    font-size: 44rem;
  }
}

.u-lead-second {
  font-size: 28rem;
  font-weight: 600;
  line-height: 210%;
}
@media (width <= 750px) {
  .u-lead-second {
    font-size: 34rem;
    font-weight: 700;
  }
}

.u-contact-slide {
  font-size: 28rem;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.1em;
  padding: 30rem 0 50rem;
}
@media (width <= 750px) {
  .u-contact-slide {
    padding: 10rem 0 50rem;
  }
}

.u-ls-shorten {
  display: inline-block !important;
}
.u-ls-shorten.__10rem {
  letter-spacing: -10rem;
}
.u-ls-shorten.__20rem {
  letter-spacing: -20rem;
}

.u-w-short {
  display: inline-block !important;
}
.u-w-short.__05em {
  width: 0.5em;
}
.u-w-short.__07em {
  width: 0.7em;
}
.u-w-short.__08em {
  width: 0.8em;
}

.u-cp {
  display: inline-block;
  width: 1em;
  height: 1em;
  position: relative;
}
.u-cp::before {
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: #000;
}

body.layout-fixing .u-word-grayarts {
  display: inline-block;
  width: 100%;
  height: 1em;
  background: no-repeat center/contain url("../img/common/grayarts.svg");
}
body.layout-fixing .u-word-g {
  display: inline-block;
  width: 0.7em;
  height: 0.72em;
  background: no-repeat center/contain url("../img/common/g.svg");
}
body.layout-fixing .u-lead-base {
  font-size: 40px;
  font-weight: 900;
  line-height: 180%;
  letter-spacing: 0.05em;
}
@media (width <= 750px) {
  body.layout-fixing .u-lead-base {
    font-size: 44rem;
  }
}
body.layout-fixing .u-lead-second {
  font-size: 28px;
  font-weight: 600;
  line-height: 210%;
}
@media (width <= 750px) {
  body.layout-fixing .u-lead-second {
    font-size: 34rem;
    font-weight: 700;
  }
}
body.layout-fixing .u-contact-slide {
  font-size: 28px;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.1em;
  padding: 30px 0 50px;
}
@media (750px < width <= 1366px) {
  body.layout-fixing .u-contact-slide {
    font-size: 28rem;
  }
}
@media (width <= 750px) {
  body.layout-fixing .u-contact-slide {
    font-size: 28rem;
    padding: 10rem 0 50rem;
  }
}
body.layout-fixing .u-ls-shorten {
  display: inline-block !important;
}
body.layout-fixing .u-ls-shorten.__10px {
  letter-spacing: -10px;
}
body.layout-fixing .u-ls-shorten.__20px {
  letter-spacing: -20px;
}
body.layout-fixing .u-w-short {
  display: inline-block !important;
}
body.layout-fixing .u-w-short.__05em {
  width: 0.5em;
}
body.layout-fixing .u-w-short.__07em {
  width: 0.7em;
}
body.layout-fixing .u-w-short.__08em {
  width: 0.8em;
}
body.layout-fixing .u-cp {
  display: inline-block;
  width: 1em;
  height: 1em;
  position: relative;
}
body.layout-fixing .u-cp::before {
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #000;
}

/*# sourceMappingURL=style.css.map */
