/* -----------------------------------------------------------
 * 1. 変数の再定義（フォールバック付き）
 * ----------------------------------------------------------- */
:root {
  --container-width: 1440px;
  --container-width-sm: 1200px;
  --container-width-ss: 1024px;
  --container-width-sss: 920px;
  --container-padding: clamp(2.0rem, 14.86vw - 9.4rem, 12.0rem);
  --container-padding-sm: clamp(2.0rem, 19.05vw - 7.14rem, 10.0rem);
  --container-padding-ss: clamp(2.0rem, 14.29vw - 4.86rem, 8.0rem);
  --container-padding-sss: clamp(2.0rem, 9.52vw - 2.57rem, 6.0rem);

  /* --container-padding: clamp(1.6rem, 3.57vw - 1.14rem, 4.0rem); */

  --font-base: "Noto Sans JP", sans-serif;
  --font-accent: "Montserrat", sans-serif;

  --bp-sp: var(--theme-bp-sp, 767px);
  --bp-tb: var(--theme-bp-tb, 1024px);
  --container-max-width: var(--bp-tb, 1024px);

  --lh-heading: 1.4;
  /* 見出し用：少し詰め気味 */
  --lh-base: 1.7;
  /* 本文用：ゆったり */

  --color-base-1: #256B29;
  --color-base-2: #319636;
  --color-base-3: #97CA9A;
  --color-base-4: #D6EAD7;
  --color-base-5: #EBF5EB;
  --color-gray-1: #505050;
  --color-gray-2: #777777;
  --color-gray-3: #DDDDDD;
  --color-gray-4: #fafafa;
  --color-accent-1: #E9AB58;
  --color-accent-2: #F8F9A7;

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

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  min-height: 100dvh;
  color: var(--color-gray-1);
  font-family: var(--font-base);
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

li::marker {
  margin-inline: auto;
}

/* ==========================================

========================================== */
.u-w-mw {  width: max-content;}
.u-w-full { width: 100%; }
.u-h-full { height: 100%; }
.u-w-mw-auto { width: max-content; }
.u-w-min-260 { min-width: 26.0rem; }
.u-mw-320-auto { max-width: none; }
.u-mhw-auto { max-height: auto; }
.u-min-h-500 { height: 50.0rem; }

@media (max-width: 1023px) {
  .u-mw-320-auto { max-width: 320px; }
}

@media (max-width: 767px) {
  .u-w-mw-auto { width: auto; }
}

.u-object-contain { object-fit: contain; }
.u-object-cover { object-fit: cover; }

/* --- 0 (None) --- */
.u-m-0 { margin: 0; }
.u-mt-0 { margin-top: 0; }
.u-ml-0 { margin-left: 0; }
.u-mr-0 { margin-right: 0; }
.u-mb-0 { margin-bottom: 0; }
.u-my-0 { margin-top: 0; margin-bottom: 0; }
.u-mx-0 { margin-left: 0; margin-right: 0; }
.u-p-0 { padding: 0; }
.u-pt-0 { padding-top: 0; }
.u-pl-0 { padding-left: 0; }
.u-pr-0 { padding-right: 0; }
.u-pb-0 { padding-bottom: 0; }
.u-py-0 { padding-top: 0; padding-bottom: 0; }
.u-px-0 { padding-left: 0; padding-right: 0; }

/* --- 0.4rem (4px) --- */
.u-m-04 { margin: 0.4rem; }
.u-mt-04 { margin-top: 0.4rem; }
.u-ml-04 { margin-left: 0.4rem; }
.u-mr-04 { margin-right: 0.4rem; }
.u-mb-04 { margin-bottom: 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-p-04 { padding: 0.4rem; }
.u-pt-04 { padding-top: 0.4rem; }
.u-pl-04 { padding-left: 0.4rem; }
.u-pr-04 { padding-right: 0.4rem; }
.u-pb-04 { padding-bottom: 0.4rem; }
.u-py-04 {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}
.u-px-04 {
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

/* --- 0.8rem (8px) --- */
.u-m-08 { margin: 0.8rem; }
.u-mt-08 { margin-top: 0.8rem; }
.u-ml-08 { margin-left: 0.8rem; }
.u-mr-08 { margin-right: 0.8rem; }
.u-mb-08 { margin-bottom: 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-p-08 { padding: 0.8rem; }
.u-pt-08 { padding-top: 0.8rem; }
.u-pl-08 { padding-left: 0.8rem; }
.u-pr-08 { padding-right: 0.8rem; }
.u-pb-08 { padding-bottom: 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-mb-10-20 { margin-bottom: clamp(1.0rem, 2.38vw - 0.14rem, 2.0rem); }

/* --- 1.2rem (12px) --- */
.u-m-12 { margin: 1.2rem; }
.u-mt-12 { margin-top: 1.2rem; }
.u-ml-12 { margin-left: 1.2rem; }
.u-mr-12 { margin-right: 1.2rem; }
.u-mb-12 { margin-bottom: 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-p-12 { padding: 1.2rem; }
.u-pt-12 { padding-top: 1.2rem; }
.u-pl-12 { padding-left: 1.2rem; }
.u-pr-12 { padding-right: 1.2rem; }
.u-pb-12 { padding-bottom: 1.2rem; }
.u-py-12 {
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
}
.u-px-12 {
  padding-left: 1.2rem;
  padding-right: 1.2rem;
}

/* --- 1.6rem (16px) --- */
.u-m-16 { margin: 1.6rem; }
.u-mt-16 { margin-top: 1.6rem; }
.u-ml-16 { margin-left: 1.6rem; }
.u-mr-16 { margin-right: 1.6rem; }
.u-mb-16 { margin-bottom: 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-p-16 { padding: 1.6rem; }
.u-pt-16 { padding-top: 1.6rem; }
.u-pl-16 { padding-left: 1.6rem; }
.u-pr-16 { padding-right: 1.6rem; }
.u-pb-16 { padding-bottom: 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-py-16-24 {
  padding-top: clamp(1.6rem, 1.19vw + 1.03rem, 2.4rem);
  padding-bottom: clamp(1.6rem, 1.19vw + 1.03rem, 2.4rem);
}

/* --- 2.0rem (20px) --- */
.u-m-20 { margin: 2.0rem; }
.u-mt-20 { margin-top: 2.0rem; }
.u-ml-20 { margin-left: 2.0rem; }
.u-mr-20 { margin-right: 2.0rem; }
.u-mb-20 { margin-bottom: 2.0rem; }
.u-my-20 {
  margin-top: 2.0rem;
  margin-bottom: 2.0rem;
}
.u-mx-20 {
  margin-left: 2.0rem;
  margin-right: 2.0rem;
}
.u-p-20 { padding: 2.0rem; }
.u-pt-20 { padding-top: 2.0rem; }
.u-pl-20 { padding-left: 2.0rem; }
.u-pr-20 { padding-right: 2.0rem; }
.u-pb-20 { padding-bottom: 2.0rem; }
.u-py-20 {
  padding-top: 2.0rem;
  padding-bottom: 2.0rem;
}
.u-px-20 {
  padding-left: 2.0rem;
  padding-right: 2.0rem;
}
.u-py-20-28 {
  padding-top: clamp(2.0rem, 1.9vw + 1.1rem, 2.8rem);
  padding-bottom: clamp(2.0rem, 1.9vw + 1.1rem, 2.8rem);
}
.u-p-20-40 { padding: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-pt-20-40 { padding-top: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-pb-20-40 { padding-bottom: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-py-20-40 {
  padding-top: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem);
  padding-bottom: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem);
}
.u-mt-20-40 { margin-top: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-mb-20-40 { margin-bottom: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-my-20-40 { margin-block: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-pt-20-80 { padding-top: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-pb-20-80 { padding-bottom: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-py-20-80 {
  padding-top: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem);
  padding-bottom: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem);
}
.u-pl-20-80 { padding-left: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-pr-20-80 { padding-right: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-px-20-80 {
  padding-left: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem);
  padding-right: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem);
}
.u-mt-20-80 { margin-top: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-mb-20-80 { margin-bottom: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-my-20-80 { margin-block: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-ml-20-80 { margin-left: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-mr-20-80 { margin-right: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }
.u-mx-20-80 { margin-inline: clamp(2.0rem, 8.92vw - 4.84rem, 8.0rem); }

/* --- 2.4rem (24px) --- */
.u-m-24 { margin: 2.4rem; }
.u-mt-24 { margin-top: 2.4rem; }
.u-ml-24 { margin-left: 2.4rem; }
.u-mr-24 { margin-right: 2.4rem; }
.u-mb-24 { margin-bottom: 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-p-24 { padding: 2.4rem; }

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

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

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

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

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

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

/* --- 2.8rem (28px) --- */
.u-m-28 { margin: 2.8rem; }

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

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

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

.u-mb-28 { margin-bottom: 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-p-28 { padding: 2.8rem; }

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

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

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

.u-pb-28 { padding-bottom: 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-p-28-32 { padding: clamp(2.8rem, 0.59vw + 2.35rem, 3.2rem); }

.u-pt-28-32 { padding-top: clamp(2.8rem, 0.59vw + 2.35rem, 3.2rem); }

.u-pb-28-32 { padding-bottom: clamp(2.8rem, 0.59vw + 2.35rem, 3.2rem); }

.u-py-28-32 {
  padding-top: clamp(2.8rem, 0.59vw + 2.35rem, 3.2rem);
  padding-bottom: clamp(2.8rem, 0.59vw + 2.35rem, 3.2rem);
}

.u-p-28-40 { padding: clamp(2.8rem, 1.78vw + 1.43rem, 4.0rem); }

.u-pt-28-40 { padding-top: clamp(2.8rem, 1.78vw + 1.43rem, 4.0rem); }

.u-pb-28-40 { padding-bottom: clamp(2.8rem, 1.78vw + 1.43rem, 4.0rem); }

.u-py-28-40 {
  padding-top: clamp(2.8rem, 1.78vw + 1.43rem, 4.0rem);
  padding-bottom: clamp(2.8rem, 1.78vw + 1.43rem, 4.0rem);
}

/* --- 3.2rem (32px) --- */
.u-m-32 { margin: 3.2rem; }

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

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

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

.u-mb-32 { margin-bottom: 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-p-32 { padding: 3.2rem; }

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

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

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

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

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

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

/* --- 3.6rem (36px) --- */
.u-m-36 { margin: 3.6rem; }

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

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

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

.u-mb-36 { margin-bottom: 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-p-36 { padding: 3.6rem; }

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

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

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

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

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

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

/* --- 4.0rem (40px) --- */
.u-m-40 { margin: 4.0rem; }

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

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

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

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

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

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

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

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

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

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

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

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

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

.u-pt-40-60 { padding-top: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }

.u-pb-40-60 { padding-bottom: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }

.u-py-40-60 {
  padding-top: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem);
  padding-bottom: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem);
}

.u-mt-40-60 { margin-top: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }

.u-mb-40-60 { margin-bottom: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }

.u-my-40-60 { margin-block: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }

.u-mt-40-80 { margin-top: clamp(4.0rem, 9.52vw - 0.57rem, 8.0rem); }

.u-mb-40-80 { margin-bottom: clamp(4.0rem, 9.52vw - 0.57rem, 8.0rem); }

.u-my-40-80 { margin-block: clamp(4.0rem, 9.52vw - 0.57rem, 8.0rem); }


/* --- 4.8rem (48px) --- */
.u-m-48 { margin: 4.8rem; }

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

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

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

.u-mb-48 { margin-bottom: 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-p-48 { padding: 4.8rem; }

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

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

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

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

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

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

/* --- 5.6rem (56px) --- */
.u-m-56 { margin: 5.6rem; }

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

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

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

.u-mb-56 { margin-bottom: 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-p-56 { padding: 5.6rem; }

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

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

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

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

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

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

/* --- 6.0rem (60px) --- */
.u-m-60 { margin: 6.0rem; }

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

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

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

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

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

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

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

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

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

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

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

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

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

.u-mt-60-80 { margin-top: clamp(6.0rem, 4.76vw + 3.71rem, 8.0rem); }

.u-mb-60-80 { margin-bottom: clamp(6.0rem, 4.76vw + 3.71rem, 8.0rem); }

.u-my-60-80 {
  margin-top: clamp(6.0rem, 4.76vw + 3.71rem, 8.0rem);
  margin-bottom: clamp(6.0rem, 4.76vw + 3.71rem, 8.0rem);
}



/* --- 6.4rem (64px) --- */
.u-m-64 { margin: 6.4rem; }

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

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

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

.u-mb-64 { margin-bottom: 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-p-64 { padding: 6.4rem; }

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

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

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

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

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

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

/* --- 8.0rem (80px) --- */
.u-m-80 { margin: 8.0rem; }

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

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

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

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

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

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

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

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

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

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

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

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

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

/* --- 10.0rem (100px) --- */
.u-m-100 { margin: 10.0rem; }

.u-mt-100 { margin-top: 10.0rem; }

.u-ml-100 { margin-left: 10.0rem; }

.u-mr-100 { margin-right: 10.0rem; }

.u-mb-100 { margin-bottom: 10.0rem; }

.u-my-100 {
  margin-top: 10.0rem;
  margin-bottom: 10.0rem;
}

.u-mx-100 {
  margin-left: 10.0rem;
  margin-right: 10.0rem;
}

.u-p-100 { padding: 10.0rem; }

.u-pt-100 { padding-top: 10.0rem; }

.u-pl-100 { padding-left: 10.0rem; }

.u-pr-100 { padding-right: 10.0rem; }

.u-pb-100 { padding-bottom: 10.0rem; }

.u-py-100 {
  padding-top: 10.0rem;
  padding-bottom: 10.0rem;
}

.u-px-100 {
  padding-left: 10.0rem;
  padding-right: 10.0rem;
}

/* --- 12.0rem (120px) --- */
.u-m-120 { margin: 12.0rem; }

.u-mt-120 { margin-top: 12.0rem; }

.u-ml-120 { margin-left: 12.0rem; }

.u-mr-120 { margin-right: 12.0rem; }

.u-mb-120 { margin-bottom: 12.0rem; }

.u-my-120 {
  margin-top: 12.0rem;
  margin-bottom: 12.0rem;
}

.u-mx-120 {
  margin-left: 12.0rem;
  margin-right: 12.0rem;
}

.u-p-120 { padding: 12.0rem; }

.u-pt-120 { padding-top: 12.0rem; }

.u-pl-120 { padding-left: 12.0rem; }

.u-pr-120 { padding-right: 12.0rem; }

.u-pb-120 { padding-bottom: 12.0rem; }

.u-py-120 {
  padding-top: 12.0rem;
  padding-bottom: 12.0rem;
}

.u-px-120 {
  padding-left: 12.0rem;
  padding-right: 12.0rem;
}

/* Auto */
.u-mx-auto {
  margin-left: auto;
  margin-right: auto;
}

/* PCサイズ (1201px〜) での制御 */
@media (min-width: 1023px) {

  .u-hidden-pc,
  .u-only-sp,
  .u-only-tb { display: none !important; }
}

/* タブレットサイズ (768px〜1200px) での制御 */
@media (min-width: 768px) and (max-width: 1023px) {

  .u-hidden-tb,
  .u-only-sp,
  .u-only-pc { display: none !important; }
}

/* スマホサイズ (767px以下) での制御 */
@media (max-width: 767px) {

  .u-hidden-sp,
  .u-only-tb,
  .u-only-pc { display: none !important; }
}

/* -----------------------------------------------------------
* 要素関連
* ----------------------------------------------------------- */
.u-pos-rel { position: relative; }
.u-block { display: block; }
.u-inline-block { display: inline-block; }

.u-bb-1 { border-bottom-width: 1px; }
.u-bs-solid { border-bottom-style: solid; }
.u-bc-gray-3 { border-bottom-color: var(--color-gray-3);}
.u-br-999 { border-radius: 999px; }
.u-br-999-20 { border-radius: 999px; }
.u-br-08 { border-radius: 0.8rem; }
.u-br-12 { border-radius: 1.2rem; }
.u-br-20 { border-radius: 2.0rem; }
.u-bc-base-2 { border-color: var(--color-base-2); }

@media (max-width: 767px) {
  .u-br-999-20 { border-radius: 20px; }
}

.u-relative { position: relative; }
.u-absolute { position: absolute; }
.u-z-000 { z-index: 0; }
.u-z-001 { z-index: 1; }
.u-flex { display: flex; }
.u-flex-sp-col { display: flex; }
.u-flex-tb-col { display: flex; }
.u-flex-col {
  display: flex;
  flex-direction: column;
}
.u-flex-1 { flex: 1; }
.u-flex-wrap { flex-wrap: wrap; }
.u-reverse { flex-direction: row-reverse; }
.u-justify-center { justify-content: center; }
.u-justify-between { justify-content: space-between; }
.u-align-start { align-items: start; }
.u-align-center { align-items: center; }
.u-align-start-center { align-items: start; }
.u-align-end { align-items: end; }

@media (max-width: 1023px) {
  .u-flex-tb-col { flex-direction: column; }
}

@media (max-width: 767px) {
  .u-flex-sp-col { flex-direction: column; }

  .u-align-start-center { align-items: center; }
}

.u-gap-10-40 { gap: clamp(1.0rem, 4.46vw - 2.42rem, 4.0rem); }
.u-gap-20-40 { gap: clamp(2.0rem, 4.76vw - 0.38rem, 4.0rem); }
.u-gap-10 { gap: 1.0rem; }
.u-gap-12 { gap: 1.2rem; }
.u-gap-16 { gap: 1.6rem; }

.u-gap-20 { gap: 2.0rem; }
.u-gap-60_20 { gap: 6.0rem 2.0rem; }

.u-gap-28 { gap: 2.8rem; }
.u-gap-40 { gap: 4.0rem; }
.u-gap-40-60 { gap: clamp(4.0rem, 9.52vw - 0.57rem, 6.0rem); }
.u-gap-40-80 { gap: clamp(4.0rem, 9.52vw - 0.57rem, 8.0rem); }
.u-gap-60 { gap: 6.0rem; }
.u-gap-80 { gap: 8.0rem; }
.u-gap-80-100 { gap: clamp(8.0rem, 2.97vw + 5.72rem, 10.0rem); }
s.u-ul-inside { list-style: inside; }

/* -----------------------------------------------------------
* 画像関連
* ----------------------------------------------------------- */
.u-ico { width: 156px; }

.u-ico.--w-lg { width: 263px; }

/* -----------------------------------------------------------
* 文字関連
* ----------------------------------------------------------- */
.u-text-base-1 { color: var(--color-base-1); }
.u-text-base-2 { color: var(--color-base-2); }
.u-text-base-3 { color: var(--color-base-3); }
.u-text-base-4 { color: var(--color-base-4); }
.u-text-base-5 { color: var(--color-base-5); }
.u-text-gray-1 { color: var(--color-gray-1); }
.u-text-gray-2 { color: var(--color-gray-2); }
.u-text-gray-3 { color: var(--color-gray-3); }
.u-text-gray-4 { color: var(--color-gray-4); }
.u-text-accent-1 { color: var(--color-accent-1); }
.u-text-accent-2 { color: var(--color-accent-2); }
.u-text-white { color: var(--color-white); }
.u-text-black { color: var(--color-black); }
.u-bg-base-1 { background-color: var(--color-base-1); }
.u-bg-base-2 { background-color: var(--color-base-2); }
.u-bg-base-3 { background-color: var(--color-base-3); }
.u-bg-base-4 { background-color: var(--color-base-4); }
.u-bg-base-5 { background-color: var(--color-base-5); }
.u-bg-gray-1 { background-color: var(--color-gray-1); }
.u-bg-gray-2 { background-color: var(--color-gray-2); }
.u-bg-gray-3 { background-color: var(--color-gray-3); }
.u-bg-gray-4 { background-color: var(--color-gray-4); }
.u-bg-accent-1 { background-color: var(--color-accent-1); }
.u-bg-accent-2 { background-color: var(--color-accent-2); }
.u-bg-white { background-color: var(--color-white); }
.u-bg-black { background-color: var(--color-black); }
.u-ff-jp { font-family: var(--font-base); }
.u-ff-en { font-family: var(--font-accent); }

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

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

h1,.u-h1 { font-size: clamp(3.2rem, 4.16vw + 0.01rem, 6.0rem); }
h2,.u-h2 {
  font-size: clamp(1.5rem, 1.11vw + 0.65rem, 2.25rem);
  line-height: var(--lh-heading);
  font-weight: 700;
}

h3,.u-h3 {
  font-size: clamp(1.375rem, 0.74vw + 0.81rem, 1.875rem);
  line-height: var(--lh-heading);
  font-weight: 700;
}

h4,.u-h4 {
  font-size: clamp(1.25rem, 0.37vw + 0.97rem, 1.5rem);
  line-height: var(--lh-heading);
  font-weight: 700;
}

h5,.u-h5 {
  font-size: 1.125rem;
  line-height: var(--lh-heading);
  font-weight: 700;
}

h6,.u-h6 {
  font-size: 1rem;
  line-height: var(--lh-heading);
  font-weight: 700;
}

.u-break-word {
  overflow-wrap: break-word;
  word-break: break-all;
}

.u-lead-l { font-size: clamp(1.125rem, 0.37vw + 0.84rem, 1.375rem); }
.u-lead-m { font-size: clamp(1.0rem, 0.19vw + 0.86rem, 1.125rem); }
.u-lead-s { font-size: 0.9375rem; }
.u-ls-005 { letter-spacing: 0.05em; }
.u-ls-006 { letter-spacing: 0.06em; }
.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-box-shadow { box-shadow: 4px 4px 10px 0px rgba(0, 0, 0, 0.1); }
.u-text-shadow { text-shadow: 2px 4px 4px rgba(0, 0, 0, 0.25); }
.u-fs-10 { font-size: 1.0rem; }
.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: 2.0rem; }
.u-fs-24 { font-size: 2.4rem; }
.u-fs-28 { font-size: 2.8rem; }
.u-fs-32 { font-size: 3.2rem; }
.u-fs-36 { font-size: 3.6rem; }
.u-fs-10-12 { font-size: clamp(1.0rem, 0.48vw + 0.77rem, 1.2rem); }
.u-fs-14-16 { font-size: clamp(1.4rem, 0.3rem + 1.17rem, 1.6rem); }
.u-fs-14-18 { font-size: clamp(1.4rem, 0.59vw + 0.94rem, 1.8rem); }
.u-fs-16-18 { font-size: clamp(1.6rem, 0.3vw + 1.37rem, 1.8rem); }
.u-fs-16-20 { font-size: clamp(1.6rem, 0.59vw + 1.14rem, 2.0rem); }
.u-fs-18-20 { font-size: clamp(1.8rem, 0.3vw + 1.57rem, 2.0rem); }
.u-fs-18-28 { font-size: clamp(1.8rem, 1.49vw + 0.66rem, 2.8rem); }
.u-fs-18-32 { font-size: clamp(1.8rem, 2.08vw + 0.2rem, 3.2rem); }
.u-fs-20-24 { font-size: clamp(2.0rem, 0.59vw + 1.54rem, 2.4rem); }
.u-fs-20-28 { font-size: clamp(2.0rem, 1.19vw + 1.09rem, 2.8rem); }
.u-fs-24-28 { font-size: clamp(2.4rem, 0.59vw + 1.94rem, 2.8rem); }
.u-fs-24-32 { font-size: clamp(2.4rem, 1.19vw + 1.49rem, 3.2rem); }
.u-fs-28-32 { font-size: clamp(2.8rem, 0.95vw + 2.34rem, 3.2rem); }
.u-fs-32-48 { font-size: clamp(3.2rem, 2.38vw + 1.38rem, 4.8rem); }
.u-fs-32-60 { font-size: clamp(3.2rem, 4.16vw + 0.01rem, 6.0rem); }
.u-fs-36-40 { font-size: clamp(3.6rem, 0.59vw + 3.14rem, 4.0rem); }
.u-fs-36-48 { font-size: clamp(3.6rem, 1.78vw + 2.23rem, 4.8rem); }
.u-fs-60-150 { font-size: clamp(6.0rem, 13.37vw - 4.26rem, 15.0rem); }
.u-fs-90-150 { font-size: clamp(9.0rem, 14.29vw - 1.97rem, 15.0rem); }
.u-ta-c { text-align: center; }
.u-ta-l { text-align: left; }
.u-ta-r { text-align: right; }
.u-ta-c-l { text-align: center; }
.u-ta-c-r { text-align: center; }
.u-td-underline { text-decoration: underline; }

@media (max-width: 767px) {
  .u-ta-c-l { text-align: left; }

  .u-ta-c-r { text-align: right; }
}

/* -----------------------------------------------------------
* 3. Grid と minmax() を使ったメディアクエリなしの段組み
* ----------------------------------------------------------- */
.l-grid-2col,
.l-grid-2col.--1col-tb {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  place-items: center;
}

.l-grid-3col,
.l-grid-3col.--1col-tb {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  place-items: center;
}

.l-grid-3_2col {
  display: grid;
  /* 2行を定義 */
  grid-template-rows: auto auto;
  /* 3つの均等なカラムを定義（コンテンツの幅に応じて調整可能） */
  grid-template-columns: repeat(3, 1fr);
  /* コンテンツを水平方向の中央に配置 */
  justify-items: center;
  /* コンテナ自体をページ中央に配置したい場合は、幅を指定して margin: auto を使用 */
  /* max-width: 900px; */
  /* margin: 0 auto; */
  gap: 10px;
  /* アイテム間のスペース */
  padding: 20px;
}

.l-grid-3_2col__bottom {
  /* 下段全体を覆うため、3カラム分使用 */
  grid-column: 1 / span 3;
  display: flex;
  justify-content: center;
  /* フレックスアイテム（アイテム4と5）を中央に配置 */
  gap: 10px;
  /* アイテム間のスペース */
  width: 100%;
  /* 親要素（コンテナ）の幅に合わせる */
}

.l-grid-3_2col__bottom>archive {
  grid-column: span 2;
}



.l-grid-auto {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  justify-content: center;
  gap: clamp(1.6rem, 3.57vw - 1.14rem, 4.0rem);
}

.l-grid-280 {
  display: grid;
  /* 各カードの最小幅を300pxに。
     親要素の幅が300pxを下回りそうになると、自動で1カラムに落ちる。
     メディアクエリなしでレスポンシブを実現。
  */
  /* grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); */
  grid-template-columns: repeat(auto-fit, 280px);
  place-items: center;
  justify-content: center;
  gap: clamp(1.6rem, 3.57vw - 1.14rem, 4.0rem);
}

@media (max-width: 1023px) {
  .l-grid-auto {
    grid-auto-flow: row;
    gap: 2.0rem;
  }

  .l-grid-2col.--1col-tb,
  .l-grid-3col.--1col-tb { grid-template-columns: repeat(1, 1fr); }
}

@media (max-width: 767px) {
  .l-grid-2col { grid-template-columns: repeat(1, 1fr); }

  .l-grid-3col { grid-template-columns: repeat(1, 1fr); }
}

/* -----------------------------------------------------------
* カード
* ----------------------------------------------------------- */
.l-card-contact {
  text-align: center;
  max-width: 280px;
  width: 100%;
  padding: 2.7rem 2.0rem;
  border-radius: 20px;
  background-color: var(--color-white);
}

.l-card-contact__img {
  width: 80px;
  height: 80px;
  padding: 1.1rem;
}



/* -----------------------------------------------------------
* セクション設計 (.l-section)
* セクション間の上下余白も clamp で流動的に
* ----------------------------------------------------------- */
.l-section { padding-block: clamp(6.0rem, 2.97vw + 3.72rem, 8.0rem); }

/* -----------------------------------------------------------
* 汎用コンテナクラス (.l-container)
* ----------------------------------------------------------- */
.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.--p-sm { padding-inline: var(--container-padding-ss); }

/* -----------------------------------------------------------
* ヘッダー
* ----------------------------------------------------------- */
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 70px;
  padding-inline: var(--container-padding);
  background-color: var(--color-base-2);
}

.l-header__logo { height: 50px; }

.l-header__btns {
  display: flex;
  justify-content: space-between;
  gap: 1.6rem;
}

@media (max-width: 767px) {
  .l-header__inner { height: 56px; }

  .l-header__logo { height: 38px; }
}

.l-header__nav {
  position: relative;
  background-color: #FAFAFA;
  z-index: 1100;
}

.l-header__menu {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3.6rem;
}

.l-header__menu li {
  position: relative;
  padding: 1.4rem 0;
}

.l-header__menu a,
.l-header__menu span {
  font-size: clamp(1.6rem, 1.2vw + 1.0rem, 1.6rem);
  letter-spacing: 0.05em;
  opacity: 1;
  transition: color 0.4s ease;
}

.l-header__menu a:hover { color: var(--color-base-2); }

.l-header__menu a:hover .sub-menu,
.l-header__menu span:hover .sub-menu { background-color: var(--color-base-4); }

.l-header__menu .sub-menu {
  display: flex;
  flex-direction: column;
  gap: 2.0rem;

  position: absolute;
  top: 100%;
  left: -2.8rem;
  width: max-content;
  padding: 2.4em 2.8rem;
  border-radius: 16px;
  box-shadow: 4px 4px 10px 0px rgba(0, 0, 0, 0.1);
  background-color: var(--color-white);

  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;

  z-index: 10;
}

.l-header__menu .sub-menu li { padding: 0; }

.l-header__nav .l-header__menu .menu-item {
  position: relative;
  /* サブメニューの基準点 */
}

.l-header__nav .l-header__menu .menu-item:hover>.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


.l-header__menu .sub-menu a {
  position: relative;
  padding-left: 1.5em;
}

.l-header__menu .sub-menu a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 1.6rem;
  height: 1px;
  background-color: var(--color-gray-1);
}




/* -----------------------------------------------------------
* フッター
* ----------------------------------------------------------- */
.l-footer {
  padding-bottom: 2.0rem;
  background-color: var(--color-base-1);
}

.l-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: clamp(1.0rem, 1.49vw - 0.14rem, 2.0rem);
  margin-bottom: 6.0rem;
}

@media (max-width: 1023px) {
  .l-footer__inner {
    flex-direction: column;
    gap: 4.0rem;
    max-width: 340px;
    margin-inline: auto;
    margin-bottom: 4.0rem;
  }
}


.l-footer__info {
  display: flex;
  flex-direction: column;
  gap: 2.8rem;
  flex: 1;
}

.l-footer__logo {
  height: 64px;
  max-width: 416px;
}

.l-footer__logo>img {
  object-fit: contain;
}

.l-footer__contact-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  color: var(--color-white);
}

.l-footer__contact-item {
  display: flex;
  font-size: 1.3rem;

}

.l-footer__contact-item>dt {
  min-width: 100px;
}

@media (max-width: 1023px) {
  .l-footer__info {
    display: flex;
    flex-direction: column;
    gap: 2.8rem;
    flex: 1;
    order: 3;
  }

  .l-footer__contact-item>dt {
    min-width: 80px;
  }
}



.l-footer__nav {
  display: flex;
  gap: 3.0rem;
}

.l-footer__btns {
  display: flex;
  flex-direction: column;
  gap: 2.8rem;
  width: 200px;
}

@media (max-width: 1023px) {
  .l-footer__btns {
    width: 100%;
    order: 1;
  }
}

@media (max-width: 767px) {
  .l-footer__btns { display: none; }
}

.l-footer__copyright {
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
  color: var(--color-white);
}

@media (max-width: 1023px) {
  .l-footer__nav {
    width: 100%;
    justify-content: space-between;
    padding-bottom: 4.0rem;
    border-bottom: 1px solid var(--color-white);
    order: 2;
  }
}

@media (max-width: 767px) {
  .l-footer__nav { border-bottom: none; }
}



/* -----------------------------------------------------------
* ページ共通
* ----------------------------------------------------------- */
.l-contact {

}

.l-post {
  display: flex;
  align-items: flex-start;
  gap: 60px;
}
.l-post__main { flex: 1; }
.l-sidebar { min-width: 280px; }

@media (max-width: 1023px) {
  .l-post {
    flex-direction: column;
    gap: 30px;
  }
  .l-sidebar { min-width: auto; width: 100%; }
}

/*  */
.l-fv-sub {
  padding: 2.8rem 0;
  background-color: var(--color-white);
}

.l-fv-sub__inner {
  position: relative;
  max-height: 428px;
  border-radius: 80px;
  overflow: hidden;
}

.l-fv-sub__inner .l-fv-sub__img { position: relative; }

.l-fv-sub__inner .l-fv-sub__img::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.1);
  z-index: 1;
}

.l-fv-sub__title {
  position: absolute;
  left: clamp(2.4rem, 9.81vw - 5.12rem, 9.0rem);
  bottom: clamp(2.8rem, 9.21vw - 4.26rem, 9.0rem);
  z-index: 9;
}

@media (max-width: 1023px) {
  .l-fv-sub { padding: 1.0rem 0; }

  .l-fv-sub__inner {
    max-height: 370px;
    border-radius: 20px;
  }
}

/*  */
.l-sv-sub {
  position: relative;
  background: no-repeat center / cover url('../img/sv-sub.jpg');
  z-index: 0;
}

.l-sv-sub::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.95);
  z-index: 0;
}

.l-sv-sub__head {
  position: relative;
  text-align: center;
  background-color: var(--color-base-4);
  z-index: 9;
}

.l-sv-sub__body {
  position: relative;
  text-align: center;
  padding: 2.8rem 0 8.0rem;
  z-index: 9;
}

.l-sv-sub__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  max-width: 465px;
  margin-inline: auto;
}

.l-sv-sub__logo>img {
  width: 90%;
}



/*  */
.l-content-block {
  display: flex;
  justify-content: space-between;
  gap: 10.0rem;
}

.l-content-block.--reverse { flex-direction: row-reverse; }

.l-content-block .l-content-block__text {
  width: 50%;
  max-width: 600px;
}

.l-content-block .l-content-block__img {
  border-radius: 16px;
  overflow: hidden;
  width: 42%;
  max-width: 500px;
  max-height: 375px;
}


.l-content-block.--img-sm .l-content-block__text {
  width: 60%;
  max-width: 710px;
}

.l-content-block.--img-sm .l-content-block__img {
  width: 32%;
  max-width: 390px;
  max-height: 375px;
  margin-inline: auto;
}

.l-content-block .l-content-block__img.--h-full { max-height: 100%; }

@media (max-width: 767px) {

  .l-content-block,
  .l-content-block.--reverse {
    gap: 4.0rem;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  /* .l-content-block.--reverse { flex-direction: row; } */

  .l-content-block .l-content-block__text,
  .l-content-block.--img-sm .l-content-block__text {
    width: 100%;
    max-width: none;
  }

  .l-content-block .l-content-block__img,
  .l-content-block.--img-sm .l-content-block__img { width: 100%; }
}


/*  */
.l-point {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4.0rem;
  position: relative;
  padding: 4.6rem 5.0rem;
  border: 2px solid var(--color-base-2);
  border-radius: 20px;
  background-color: var(--color-white);
}

.l-points-list {
  display: flex;
  flex-direction: column;
  gap: clamp(6.0rem, 4.76vw + 3.71rem, 8.0rem);
}

.l-point__number {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.4rem;
  position: absolute;
  top: -1.8rem;
  left: -1.8rem;
  width: 6.8rem;
  height: 6.8rem;
  border-radius: 50%;
  background-color: var(--color-base-2);
}

.l-point__text { flex: 1; }

.l-point__text h3 { border-bottom: 1px solid var(--color-gray-3); }

.l-point__img { width: 240px; }

@media (max-width: 767px) {
  .l-point {
    flex-direction: column;
    align-items: center;
    padding: 2.8rem 3.2rem;
  }

  .l-point__text { order: 2; }

  .l-point__img { order: 1; }
}

/*  */
.l-customer-voice {
  position: relative;
  padding: 2.8rem 4.0rem;
  border-radius: 2.0rem;
  background-color: var(--color-gray-4);
}

.l-customer-voice::before {
  content: "";
  position: absolute;
  top: -2.5rem;
  left: 1.2rem;
  width: 5.0rem;
  height: 5.0rem;
  background: no-repeat center / contain url('../img/common/icon-double-quotation-top.svg');
}

.l-customer-voice::after {
  content: "";
  position: absolute;
  bottom: -2.5rem;
  right: 1.2rem;
  width: 5.0rem;
  height: 5.0rem;
  background: no-repeat center / contain url('../img/common/icon-double-quotation-bottom.svg');
}

.l-customer-voice__head {
  padding-bottom: 1.6rem;
  border-bottom: 1px dotted;
  margin-bottom: 2.0rem;
}

.l-customer-voice__body {
  padding: 2.0rem 2.4rem;
  border-radius: 2.0rem;
  background-color: var(--color-white);
}

@media (max-width: 767px) {
  .l-customer-voice { padding: 2.8rem; }
}

/*  */
.l-fuki-onepoint { text-align: center; }

/*  */
.l-case-voice {
  position: relative;
  padding: 2.8rem 4.0rem;
  border-radius: 2.0rem;
  background-color: var(--color-base-5);
}

.l-case-voice__head {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 2.0rem;
}

.l-case-voice__head-lbl {
  color: var(--color-white);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.5rem 1.0rem;
  border-radius: 0.4rem;
  background-color: var(--color-base-2);
}

.l-case-voice__body {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
}

.l-case-voice__customer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2.0rem;
}

.l-case-voice__body-img {
  width: 6.0rem;
  height: 6.0rem;
}

/* .l-case-voice__body-customer { flex: 1; } */

.l-case-voice__body-price {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.0rem;
  padding: 0.8rem 2.0rem;
  border-radius: 999px;
  background-color: var(--color-white);
}

.l-case-voice__body-price-lbl {
  color: var(--color-white);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.4rem 1.2rem;
  border-radius: 999px;
  background-color: var(--color-accent-1);
}

.l-case-voice__body-price-data {
  display: flex;
  justify-content: center;
  align-items: end;
  color: var(--color-accent-1);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.l-case-voice__body-price-data>span {
  font-size: 3.2rem;
  font-family: var(--font-accent);
}

.l-case-voice__text {
  padding: 2.0rem 2.4rem;
  border-radius: 2.0rem;
  background-color: var(--color-white);
}

@media (max-width: 767px) {
  .l-case-voice { padding: 2.8rem; }

  .l-case-voice__head {
    flex-direction: column;
    align-items: start;
    gap: 1.0rem;
  }

  .l-case-voice__body {
    flex-direction: column;
    align-items: start;
  }


}

.l-case-voice.--l2 .l-case-voice__body {
  align-items: start;
  gap: 2.8rem;
}

.l-case-voice.--l2 .l-case-voice__customer-img {
  width: 20.0rem;
  height: 20.0rem;
  border-radius: 2.0rem;
  overflow: hidden;
}

.l-case-voice.--l2 .l-case-voice__text { flex: 1; }

.l-card-content-block-service {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 6.0rem;
}

.l-card-content-block-service-img { width: 292px; }

.l-card-content-block-service-text { flex: 1; }

.l-card-content-block-service-text__title {
  padding-bottom: 1.0rem;
  border-bottom: 2px solid var(--color-base-5);
  margin-bottom: 2.0rem;
}

@media (max-width: 767px) {
  .l-card-content-block-service {
    flex-direction: column;
    gap: 6.0rem;
  }

  .l-card-content-block-service-img { width: 100%; }

  .l-case-voice.--l2 .l-case-voice__customer-img { margin-inline: auto; }
}



.l-content-block-service {
  display: flex;
  flex-direction: column;
  gap: 8.0rem;
}








.l-price-maintenance {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  border-radius: 2.0rem;
  overflow: hidden;
}

.l-price-maintenance__list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.2rem;
}

.l-price-maintenance__list-head {
  color: var(--color-base-2);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 180%;
  width: 30%;
  padding: 2.15rem 2.8rem;
  background-color: var(--color-base-5);
}

.l-price-maintenance__list-price {
  color: var(--color-accent-1);
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  font-family: var(--font-accent);
  letter-spacing: 0.1em;
  line-height: 180%;
  width: 20%;
  padding: 2.15rem 2.8rem;
  background-color: var(--color-gray-4);
}

.l-price-maintenance__list-text {
  flex: 1;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 208%;
  padding: 2.15rem 2.8rem;
  background-color: var(--color-gray-4);
}

@media (max-width: 767px) {
  .l-price-maintenance { gap: 2.0rem; }

  .l-price-maintenance__list {
    flex-direction: column;
    border-radius: 2.0rem;
    overflow: hidden;
    gap: 0;
  }

  .l-price-maintenance__list-head {
    text-align: center;
    width: 100%;
    padding: 1.6rem 0;
  }

  .l-price-maintenance__list-price {
    width: 100%;
    padding: 1.6rem 0 0;
  }

  .l-price-maintenance__list-text {
    text-align: center;
    width: 100%;
    padding: 1.6rem 0;
  }

}




.l-fuki-img {
  position: relative;
  text-align: center;
  padding: 3.2rem 0;
  border-radius: 2.0rem;
  background-color: var(--color-gray-4);
}

.l-fuki-img__img {
  position: absolute;
  right: 1.0rem;
  bottom: -5.4rem;
  width: 110px;
  height: 175px;
}

@media (max-width: 767px) {
  .l-fuki-img { padding: 2.8rem 0 20.0rem; }

  .l-fuki-img__img {
    left: 50%;
    right: auto;
    bottom: 2.8rem;
    transform: translateX(-50%);
    width: 88px;
    height: 140px;
  }
}



.l-list-aboout {
  display: flex;
  flex-direction: column;
}

.l-list-aboou__li {
  display: flex;
  justify-content: left;
  align-items: center;
  padding: 3.0rem 0;
  border-bottom: 3px solid var(--color-gray-3);
}

.l-list-aboou__head { width: 30%; }

.l-list-aboou__body { width: 70%; }

@media (max-width: 767px) {
  .l-list-aboou__li {
    padding: 1.6rem 0;
    flex-direction: column;
    gap: 0.8rem;
  }

  .l-list-aboou__head { width: 100%; }

  .l-list-aboou__body { width: 100%; }
}



/* -----------------------------------------------------------
* セクション - コンタクト
* ----------------------------------------------------------- */
.l-sec-contact {
  position: relative;
  background: no-repeat center / cover url('../img/sec-contact-pc.webp');
}

.l-sec-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

.l-sec-contact__inner {
  text-align: center;
  position: relative;
  z-index: 10;
}

.l-sec-howtopicture { background-color: var(--color-base-4); }

/* -----------------------------------------------------------
* トップページ
* ----------------------------------------------------------- */
.l-top-fv { position: relative; }

.l-top-fv__content {
  display: flex;
  align-items: center;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1001;
}

.l-top-fv__content-inner {
  width: 570px;
  margin-inline: auto 0;
}

.l-nintei {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 2.4rem;
  padding: 2.4rem 3.6rem;
  border-radius: 20px;
  background-color: rgba(250, 250, 250, 0.85);
}

.l-nintei__sp { text-align: center; }

.l-nintei__sp .l-nintei__img { margin-inline: auto; }

.l-nintei__img { width: 142px; }

@media (max-width: 767px) {
  .l-top-fv__content { align-items: end; }

  .l-top-fv__content-inner {
    width: max-content;
    max-width: 100%;
    margin-inline: auto;
  }
}

.l-top-sv {
  position: relative;
  margin-top: 22.0rem;
  padding: 4.0rem 0;
  border-radius: 999px;
  background-color: var(--color-base-2);

  /* u-bg-base-2 u-br-999-20 u-py-40 */


}

.l-top-sv__img-top {
  position: absolute;
  top: -17.7rem;
  left: 50%;
  transform: translateX(-50%);
  width: 637px;
  height: 194px;
}

.l-top-sv__img-bottom {
  position: absolute;
  right: -2.0rem;
  bottom: -7.0rem;
  transform: translateX(-50%);
  width: 148px;
  height: 166px;
}

@media (max-width: 767px) {
  .l-top-sv {
    margin-top: 32.0rem;
    padding: 2.0rem;
    padding-bottom: 12.0rem;
    border-radius: 2.0rem;
  }

  .l-top-sv__img-top {
    top: -30.1rem;
    left: 50%;
    transform: translateX(-50%);
    width: 298px;
    height: 318px;
  }

  .l-top-sv__img-bottom { bottom: -6.0rem; }
}
