@charset "UTF-8";
/*---------------------------------------------
design-width
---------------------------------------------*/
/*---------------------------------------------
font-size

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

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

/*---------------------------------------------
clampを生成する関数

font-size: cl-pc(20, 26);
---------------------------------------------*/
/*---------------------------------------------
カスタムプロパティ
---------------------------------------------*/
:root {
  --gray-light: #e9e9e9;
  --orange: #e45c37;
  --unit-pc: (100vw / 1200);
  --unit-sp: (100vw / 750);
  --pc-wide-md: 1200px;
  --pc-wide-lg: 1500px;
  --sp-wide: 750px;
}

/*---------------------------------------------
リセット
---------------------------------------------*/
*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

img, picture, video, canvas, svg {
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/*---------------------------------------------
初期設定
---------------------------------------------*/
html {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

body {
  -webkit-text-size-adjust: 100%;
  line-height: 1.6;
  color: #000;
}

html, body {
  font-size: 100%;
}

a {
  color: #000;
}

a:hover,
a:link {
  text-decoration: none;
}

li {
  list-style: none;
}

img {
  vertical-align: bottom;
  height: auto;
}

sup, sub {
  font-size: 0.6em;
}

iframe {
  border: none;
}

/*---------------------------------------------
ユーティリティ
---------------------------------------------*/
/* font-family */
.roboto-condensed {
  font-family: "Roboto Condensed", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

/* font-weight */
.font-medium {
  font-weight: 500;
}

.font-bold {
  font-weight: 700;
}

/* text-align */
.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

@media screen and (max-width: 767px) {
  .text-center-sp {
    text-align: center;
  }
  .text-left-sp {
    text-align: left;
  }
  .text-right-sp {
    text-align: right;
  }
}
/* flex */
.flex {
  display: flex;
}

.flex-pc {
  display: flex;
}
@media screen and (max-width: 767px) {
  .flex-pc {
    flex-direction: column;
  }
}

.flex-col {
  flex-direction: column;
}

.justify-center {
  justify-content: center;
}

.item-center {
  align-items: center;
}

/* line-height */
.leading-sm {
  line-height: 1.5;
}

.leading-lg {
  line-height: 1.77;
}

.leading-xl {
  line-height: 2;
}

@media screen and (max-width: 767px) {
  .leading-sm-sp {
    line-height: 1.5;
  }
}
/* bourder-radius */
.rounded-md {
  border-radius: 30px;
}

/* background-color */
.bg-gray-light {
  background-color: #f6f7f7;
}

/*---------------------------------------------
anime
---------------------------------------------*/
[data-anime=fadeUp] {
  opacity: 0;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  -webkit-transition: 1s ease transform, 1s ease opacity;
  transition: 1s ease transform, 1s ease opacity;
}

[data-anime=fadeUp].is-animated {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

[data-anime=slideRight] {
  opacity: 0;
  -webkit-transform: translateX(-30%);
  transform: translateX(-30%);
  -webkit-transition: 1s ease transform, 1s ease opacity;
  transition: 1s ease transform, 1s ease opacity;
}

[data-anime=slideRight].is-animated {
  opacity: 1;
  -webkit-transform: translateX(0);
  transform: translateX(0);
}

[data-anime=slideLeft] {
  opacity: 0;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition: 1s ease transform, 1s ease opacity;
  transition: 1s ease transform, 1s ease opacity;
}

[data-anime=slideLeft].is-animated {
  opacity: 1;
  -webkit-transform: translateX(0);
  transform: translateX(0);
}

[data-anime=scaledown] {
  opacity: 0;
  transform: scale(2);
  transition: 1s ease transform, 1s ease opacity;
}

[data-anime=scaledown].is-animated {
  opacity: 1;
  transform: scale(1);
}

/*---------------------------------------------
ナビ
---------------------------------------------*/
/* ボタンのベーススタイル */
.nav-toggle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(60 * var(--unit-sp));
  height: calc(21 * var(--unit-sp));
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  outline: none;
  position: relative;
  z-index: 200;
}
@media screen and (min-width: 768px) {
  .nav-toggle {
    width: 60px;
    height: 21px;
  }
}

/* 3本線を包むコンテナ */
.dots {
  position: relative;
  width: calc(60 * var(--unit-sp));
  height: calc(21 * var(--unit-sp));
  /* (1px * 3) + (9px * 2) */
  display: block;
}
@media screen and (min-width: 768px) {
  .dots {
    width: 60px;
    height: 21px;
  }
}

/* 共通の線スタイル */
.dots span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: all 0.2s ease-in-out;
}

/* 各線の初期位置 */
.dots span:nth-child(1) {
  top: 0;
}

.dots span:nth-child(2) {
  top: calc(10 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .dots span:nth-child(2) {
    top: 10px;
  }
}

.dots span:nth-child(3) {
  top: calc(20 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .dots span:nth-child(3) {
    top: 20px;
  }
}

/* --- 開閉アニメーション (Active時) --- */
/* 1番目の線を45度回転 */
.nav-toggle.is-active .dots span:nth-child(1) {
  top: calc(10 * var(--unit-sp));
  transform: rotate(45deg);
}
@media screen and (min-width: 768px) {
  .nav-toggle.is-active .dots span:nth-child(1) {
    top: 10px;
  }
}

/* 2番目の線を消す */
.nav-toggle.is-active .dots span:nth-child(2) {
  opacity: 0;
}

/* 3番目の線を-45度回転 */
.nav-toggle.is-active .dots span:nth-child(3) {
  top: calc(10 * var(--unit-sp));
  transform: rotate(-45deg);
}
@media screen and (min-width: 768px) {
  .nav-toggle.is-active .dots span:nth-child(3) {
    top: 10px;
  }
}

/* --- メニュー本体の設定 --- */
.gnav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh; /* 画面いっぱいに広げる */
  background-color: #fff;
  z-index: 100;
  /* スクロール設定 */
  overflow-y: auto; /* 中身が長い場合にスクロール */
  -webkit-overflow-scrolling: touch; /* iOSでのスクロールを滑らかに */
  /* アニメーション初期状態（消しておく） */
  opacity: 0;
  visibility: hidden;
  transform: translateY(-20px);
  transition: all 0.5s ease;
}

/* メニューOpen時 */
.is-active-menu .gnav {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* メニュー内レイアウト */
.nav-list {
  padding: 100px min(40 * var(--unit-pc), 40px); /* ボタンと被らないよう上部を空ける */
  list-style: none;
  max-width: 600px;
  margin: 0 auto;
}

/* PCサイズ（960px以上など）での設定 */
@media screen and (min-width: 768px) {
  .nav-list {
    max-width: 1000px; /* 2カラムに合わせて幅を広げる */
    /* カラム設定 */
    column-count: 2; /* 2列にする */
    column-gap: 60px; /* 列同士の間隔 */
  }
  .nav-list li {
    /* カラムの途中で項目が泣き別れないようにする */
    break-inside: avoid;
    margin-bottom: 10px;
  }
  /* SERVICEなどの子要素がある項目も、カラム内でバラけないように保持 */
  .has-child {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
  }
}
.nav-list li a {
  display: block;
  padding: 15px 0;
  color: #000;
  text-decoration: none;
  font-weight: bold;
  border-bottom: 1px solid #eee;
}

/* サブメニュー */
.sub-menu {
  list-style: none;
  padding-left: 20px;
  background: #f9f9f9;
}

.sub-menu li a {
  font-size: 0.9em;
  font-weight: normal;
}

/* 背後のスクロール禁止用クラス */
body.is-fixed {
  overflow: hidden;
}

/*---------------------------------------------
タイトル
---------------------------------------------*/
.sec-head .sec-title {
  position: relative;
  font-size: calc(90 * var(--unit-sp));
  font-family: "Roboto Condensed", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  padding-left: calc(70 * var(--unit-sp));
  position: relative;
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  .sec-head .sec-title {
    font-size: clamp(60px, 90 * var(--unit-pc), 90px);
    padding-left: min(72 * var(--unit-pc), 72px);
  }
}
.sec-head .sec-title.is-vertical {
  line-height: 1.1;
}
.sec-head .sec-title.is-vertical small {
  display: block;
  margin-left: 0;
}
.sec-head .sec-title.is-vertical:after {
  top: 40%;
}
@media screen and (max-width: 767px) {
  .sec-head .sec-title.-sm-sp {
    font-size: calc(74 * var(--unit-sp));
  }
}
.sec-head .sec-title:after {
  display: block;
  content: "";
  width: calc(46 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 50%;
  left: 0;
  transform: scaleX(var(--lineScale, 0));
  transform-origin: left center;
}
@media screen and (min-width: 768px) {
  .sec-head .sec-title:after {
    width: min(46 * var(--unit-pc), 46px);
  }
}
.sec-head .sec-title > small {
  font-size: 66.66%;
}
.sec-head .sec-title.--small {
  font-size: calc(60 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .sec-head .sec-title.--small {
    font-size: clamp(40px, 50 * var(--unit-pc), 50px);
  }
}
.sec-head .sec-title .jp {
  font-size: calc(24 * var(--unit-sp));
  margin-left: 1em;
}
@media screen and (min-width: 768px) {
  .sec-head .sec-title .jp {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
  }
}
.sec-head .sec-title + p {
  font-size: calc(26 * var(--unit-sp));
  font-weight: 700;
  margin-top: 0.5em;
}
@media screen and (min-width: 768px) {
  .sec-head .sec-title + p {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
  }
}

/*---------------------------------------------
ボタン
---------------------------------------------*/
.btn-orange {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  background-color: #e45c37;
  border-radius: 86px;
  font-weight: 500;
  cursor: pointer;
  width: calc(640 * var(--unit-sp));
  height: calc(130 * var(--unit-sp));
  font-size: calc(32 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .btn-orange {
    width: min(360 * var(--unit-pc), 360px);
    height: min(86 * var(--unit-pc), 86px);
    font-size: clamp(17px, 22 * var(--unit-pc), 22px);
  }
}
.btn-orange .btn-bg {
  position: absolute;
  inset: 0;
  background-color: #ff4715;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1;
}
.btn-orange .btn-text {
  position: relative;
  z-index: 2;
}
.btn-orange .arrow-icon {
  position: absolute;
  top: 50%;
  right: 6.94%;
  transform: translate(0, -50%);
  transition: transform 0.3s ease;
  z-index: 2;
  width: calc(36 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .btn-orange .arrow-icon {
    width: min(24 * var(--unit-pc), 24px);
  }
}
.btn-orange:hover .btn-bg {
  transform: scaleX(1);
}
.btn-orange:hover .arrow-icon {
  transform: translate(8px, -50%);
}

.btn-black {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(640 * var(--unit-sp));
  height: calc(130 * var(--unit-sp));
  color: white;
  background-color: #000;
  border-radius: 92px;
  font-size: calc(32 * var(--unit-sp));
  font-weight: 700;
  position: relative;
  fill: white;
  transition: all 0.15s ease;
}
@media screen and (min-width: 768px) {
  .btn-black {
    width: min(520 * var(--unit-pc), 520px);
    height: min(92 * var(--unit-pc), 92px);
    font-size: clamp(22px, 28 * var(--unit-pc), 28px);
  }
}
.btn-black .arrow-icon {
  position: absolute;
  width: calc(36 * var(--unit-sp));
  top: 50%;
  right: 6.94%;
  transform: translate(0, -50%);
  transition: transform 0.3s ease;
}
@media screen and (min-width: 768px) {
  .btn-black .arrow-icon {
    width: min(24 * var(--unit-pc), 24px);
  }
}
.btn-black:hover {
  color: black;
  background-color: #fff;
}
.btn-black:hover .arrow-icon {
  transform: translate(8px, -50%);
  fill: black;
}

/*---------------------------------------------
タイトル
---------------------------------------------*/
.line {
  display: block;
  overflow: hidden;
}

.line-inner {
  display: inline-block;
  will-change: transform;
}

/*---------------------------------------------
ページネーション
---------------------------------------------*/
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  color: #000;
}

/* 矢印と数字の間隔 */
.pagination-arrow {
  display: flex;
  align-items: center;
}

.pagination-arrow.prev {
  margin-right: 20px;
}

.pagination-arrow.next {
  margin-left: 20px;
}

@media screen and (min-width: 768px) {
  .pagination-arrow.prev {
    margin-right: 60px;
  }
  .pagination-arrow.next {
    margin-left: 60px;
  }
}
/* ページ番号 */
.pagination-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}

@media screen and (min-width: 768px) {
  .pagination-list {
    gap: 12px;
  }
}
.pagination-list li {
  width: 32px;
  height: 32px;
}

@media screen and (min-width: 768px) {
  .pagination-list li {
    width: 37px;
    height: 37px;
  }
}
.pagination-list a,
.pagination-list span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #000;
  text-decoration: none;
  line-height: 1;
}

/* current */
.pagination-list .current span {
  background: #000;
  color: #fff;
  border-radius: 50%;
  padding-bottom: 0.1em;
  padding-left: 0.1em;
}

.pagination-list .more {
  padding-top: 0.6em;
}

/*---------------------------------------------
モーダル
---------------------------------------------*/
.modal-item {
  background-color: #fff;
  color: black;
  width: min(600px, 90%);
  padding: min(45 * var(--unit-pc), 45px) min(50 * var(--unit-pc), 50px) min(55 * var(--unit-pc), 55px);
  border-radius: 10px;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
@media screen and (min-width: 768px) {
  .modal-item {
    max-width: 600px;
  }
}
@media screen and (max-width: 767px) {
  .modal-item {
    padding: calc(30 * var(--unit-sp)) calc(30 * var(--unit-sp)) calc(40 * var(--unit-sp));
  }
}
.modal-item.is-active {
  opacity: 1;
  visibility: visible;
}
.modal-item .modal-text {
  margin-top: 2em;
}

/* 背景のオーバーレイ */
.modal-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 900;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}
.modal-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/*---------------------------------------------
ティッカースライダー
---------------------------------------------*/
.ticker {
  overflow: hidden;
  width: 100%;
  white-space: nowrap;
  padding: 30px 0;
}

.ticker__list {
  display: flex;
  width: fit-content;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ticker__item {
  /* 4つ表示なら 25vw (viewport width) が計算しやすいです */
  width: 25vw;
  min-width: 160px; /* スマホで小さくなりすぎないようガード */
  flex-shrink: 0;
  padding: 0 4vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ticker__item img {
  width: auto;
  height: 140px; /* ロゴの高さを揃えると綺麗です */
  object-fit: contain;
}

/*---------------------------------------------
single
---------------------------------------------*/
.single .btn-container {
  display: flex;
  justify-content: center;
  margin-top: 2em;
}
@media screen and (min-width: 768px) {
  .single .btn-container {
    margin-top: 8em;
  }
}

.single-content {
  padding: 3em 0;
  line-height: 2;
  font-size: calc(26 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .single-content {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
    padding: 3em;
  }
}

/*---------------------------------------------
common
---------------------------------------------*/
body.is-loading {
  overflow: hidden;
  position: fixed;
  height: 100vh;
}

.wrapper {
  position: relative;
  overflow: hidden;
}

.main {
  position: relative;
  padding-top: calc(180 * var(--unit-sp));
  padding-bottom: calc(150 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .main {
    padding-top: min(180 * var(--unit-pc), 180px);
    padding-bottom: min(150 * var(--unit-pc), 150px);
  }
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  display: none;
}

.inner {
  max-width: var(--pc-wide-md);
  margin-inline: auto;
  padding-inline: calc(40 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .inner {
    padding-inline: min(25 * var(--unit-pc), 25px);
  }
}

/*---------------------------------------------
header
---------------------------------------------*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  border-bottom: solid 1px #222222;
  background-color: #fff;
}
.header .header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: calc(35 * var(--unit-sp));
  padding-bottom: calc(35 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .header .header-content {
    padding-top: min(35 * var(--unit-pc), 35px);
    padding-bottom: min(35 * var(--unit-pc), 35px);
  }
}
.header .header-logo {
  display: flex;
  gap: calc(12 * var(--unit-sp));
}
@media screen and (max-width: 767px) {
  .header .header-logo {
    margin-left: calc(-12 * var(--unit-sp));
    gap: min(12 * var(--unit-pc), 12px);
  }
}
.header .header-logo p {
  line-height: 1.2;
  font-size: calc(18 * var(--unit-sp));
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .header .header-logo p {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
  }
}
.header .header-logo img {
  display: block;
  width: calc(318 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .header .header-logo img {
    width: min(318 * var(--unit-pc), 318px);
  }
}
@media screen and (max-width: 767px) {
  .header .nav-toggle {
    margin-top: calc(10 * var(--unit-sp));
  }
}

/*---------------------------------------------
footer
---------------------------------------------*/
.footer {
  background-color: #222;
  color: white;
  padding: calc(100 * var(--unit-sp)) 0 calc(40 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer {
    padding: min(85 * var(--unit-pc), 85px) 0 min(40 * var(--unit-pc), 40px);
  }
}
.footer a {
  color: white;
}
.footer .footer-container {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .footer .footer-container {
    flex-direction: row;
  }
}
.footer .footer-logo {
  display: block;
}
@media screen and (max-width: 767px) {
  .footer .footer-logo {
    width: calc(384 * var(--unit-sp));
  }
}
@media screen and (min-width: 768px) {
  .footer .footer-info {
    margin-right: 4%;
  }
}
.footer .footer-info p {
  font-size: calc(24 * var(--unit-sp));
  color: #464646;
  line-height: 1.2;
  margin-top: 1em;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .footer .footer-info p {
    font-size: clamp(16px, 20 * var(--unit-pc), 20px);
    margin-top: 1.5em;
  }
}
.footer .footer-nav {
  display: flex;
  flex: 1;
  margin-top: calc(100 * var(--unit-sp));
  gap: calc(40 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer .footer-nav {
    justify-content: flex-end;
    gap: min(45 * var(--unit-pc), 45px);
    margin-top: 0;
  }
}
.footer .footer-nav a {
  font-size: calc(24 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer .footer-nav a {
    font-size: clamp(12px, 16 * var(--unit-pc), 16px);
  }
}
.footer .footer-nav a:hover {
  opacity: 0.8;
}
.footer .footer-nav li {
  position: relative;
  padding-left: calc(22 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer .footer-nav li {
    padding-left: min(18 * var(--unit-pc), 18px);
  }
}
.footer .footer-nav li:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: white;
  position: absolute;
  top: 0.85em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .footer .footer-nav li:after {
    width: min(10 * var(--unit-pc), 10px);
    top: 0.7em;
  }
}
.footer .footer-nav li ul {
  margin-top: calc(25 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer .footer-nav li ul {
    margin-top: min(10 * var(--unit-pc), 10px);
  }
}
.footer .footer-nav > ul > li {
  padding-left: calc(35 * var(--unit-sp));
  margin-bottom: 0.5em;
}
@media screen and (min-width: 768px) {
  .footer .footer-nav > ul > li {
    padding-left: min(22 * var(--unit-pc), 22px);
    margin-bottom: 0;
  }
}
.footer .footer-nav > ul > li:after {
  width: calc(24 * var(--unit-sp));
  top: 0.85em;
}
@media screen and (min-width: 768px) {
  .footer .footer-nav > ul > li:after {
    width: min(18 * var(--unit-pc), 18px);
    top: 0.7em;
  }
}
.footer .footer-nav > ul > li > a {
  font-family: "Roboto Condensed", sans-serif;
  -webkit-font-smoothing: antialiased;
  font-weight: 500;
  font-size: calc(42 * var(--unit-sp));
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  .footer .footer-nav > ul > li > a {
    font-size: clamp(22px, 28 * var(--unit-pc), 28px);
  }
}
.footer .copyright {
  text-align: right;
  font-size: calc(20 * var(--unit-sp));
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  margin-top: calc(80 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .footer .copyright {
    font-size: clamp(11px, 14 * var(--unit-pc), 14px);
    margin-top: min(50 * var(--unit-pc), 50px);
  }
}

/*---------------------------------------------
SNS
---------------------------------------------*/
.sns-fixed {
  position: fixed;
  top: 50%;
  right: 0;
  width: min(60 * var(--unit-pc), 60px);
  background-color: #222;
  display: none;
  flex-direction: column;
  align-items: center;
  gap: min(18 * var(--unit-pc), 18px);
  padding: min(20 * var(--unit-pc), 20px) 0;
  z-index: 100;
}
@media screen and (min-width: 768px) {
  .sns-fixed {
    display: flex;
  }
}

/* ===============================
   home
================================ */
body.home .header {
  border-bottom: none;
  background-color: transparent;
}

/* ===============================
   MV
================================ */
.mv {
  position: relative;
  height: 100vh;
  overflow: hidden;
  background: #fff;
}

/* ▼ 動画をマスク */
.hero-video {
  width: 100vw;
  height: 100vh;
  -webkit-mask-image: url("../img/logo.svg");
  mask-image: url("../img/logo.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 50%;
  mask-size: 50%;
  will-change: transform, opacity, mask-size;
}

.pc-video,
.sp-video {
  visibility: hidden;
  opacity: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-video {
  display: none;
}

@media (max-width: 767px) {
  .pc-video {
    display: none;
  }
  .sp-video {
    display: block;
  }
}
.loading {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 10;
  pointer-events: none;
}

/*---------------------------------------------
services
---------------------------------------------*/
.services {
  background-color: var(--gray-light);
  padding: calc(90 * var(--unit-sp)) 0 calc(110 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .services {
    padding: min(180 * var(--unit-pc), 180px) 0 min(200 * var(--unit-pc), 200px);
  }
}
.services .service-body {
  margin-top: calc(60 * var(--unit-sp));
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .services .service-body {
    margin-top: min(40 * var(--unit-pc), 40px);
    gap: min(18 * var(--unit-pc), 18px);
  }
}
.services .service-pickup {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .services .service-pickup {
    flex-direction: row;
  }
}
@media screen and (max-width: 767px) {
  .services .service-pickup {
    gap: calc(35 * var(--unit-sp));
  }
}
.services .service-pickup .card {
  width: 100%;
  border-radius: 5px;
  overflow: hidden;
  background-color: #000;
  color: white;
  transition: all 0.1s ease;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .services .service-pickup .card {
    width: 32.17%;
  }
}
.services .service-pickup .card:hover {
  background-color: #e45c37;
}
.services .service-pickup .card:hover img {
  filter: none;
}
.services .service-pickup .card:hover p {
  color: #000;
}
.services .service-pickup .card .card-body {
  position: relative;
  padding: calc(25 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .services .service-pickup .card .card-body {
    padding: min(30 * var(--unit-pc), 30px) min(50 * var(--unit-pc), 50px) min(35 * var(--unit-pc), 35px) min(20 * var(--unit-pc), 20px);
  }
}
.services .service-pickup .card .img-wrap {
  position: relative;
  overflow: hidden;
}
.services .service-pickup .card .img-wrap .img-mask {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  inset: 0;
  z-index: 2;
  transform-origin: left;
}
.services .service-pickup .card .img-wrap img {
  width: 100%;
  filter: grayscale(100%);
  transition: all 0.2s ease;
}
@media screen and (max-width: 767px) {
  .services .service-pickup .card .img-wrap img {
    aspect-ratio: 670/340;
    object-fit: cover;
    object-position: center top;
  }
}
.services .service-pickup .card h3 {
  font-size: calc(36 * var(--unit-sp));
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .services .service-pickup .card h3 {
    font-size: clamp(16px, 22 * var(--unit-pc), 22px);
  }
}
.services .service-pickup .card p {
  color: #484848;
  font-size: calc(30 * var(--unit-sp));
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .services .service-pickup .card p {
    font-size: clamp(16px, 20 * var(--unit-pc), 20px);
  }
}
.services .service-pickup .card .arrow-icon {
  display: block;
  width: calc(57 * var(--unit-sp));
  height: calc(57 * var(--unit-sp));
  border-radius: 29px;
  background-color: white;
  background-image: url(../img/arrow.svg);
  background-size: calc(24 * var(--unit-sp)) auto;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  position: absolute;
  transition: all 0.3s ease;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .services .service-pickup .card .arrow-icon {
    top: 50%;
    right: calc(57 * var(--unit-sp));
    transform: translate(0, -50%);
  }
}
.services .service-pickup .card .arrow-icon {
  bottom: 50%;
}
@media screen and (min-width: 768px) {
  .services .service-pickup .card .arrow-icon {
    width: min(29 * var(--unit-pc), 29px);
    height: min(29 * var(--unit-pc), 29px);
    background-size: min(12 * var(--unit-pc), 12px) auto;
    right: min(15 * var(--unit-pc), 15px);
    bottom: min(25 * var(--unit-pc), 25px);
  }
}
.services .service-others {
  display: flex;
  gap: calc(20 * var(--unit-sp));
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .services .service-others {
    flex-direction: row;
    gap: 1.8%;
  }
}
.services .service-others .other-item {
  width: 100%;
  border-radius: 5px;
  cursor: pointer;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: white;
  padding: calc(22 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .services .service-others .other-item {
    width: 23.65%;
    height: min(120 * var(--unit-pc), 120px);
    padding: min(15 * var(--unit-pc), 15px) min(15 * var(--unit-pc), 15px) min(5 * var(--unit-pc), 5px) min(15 * var(--unit-pc), 15px);
  }
}
.services .service-others .other-item:hover h3 {
  color: #e45c37;
}
.services .service-others .other-item:hover p {
  color: #000;
}
.services .service-others .other-item:hover .arrow-icon {
  transform: translateX(25%);
}
.services .service-others .other-item h3 {
  font-size: calc(32 * var(--unit-sp));
  font-weight: 600;
  transition: all 0.2s ease;
}
@media screen and (min-width: 768px) {
  .services .service-others .other-item h3 {
    font-size: clamp(16px, 20 * var(--unit-pc), 20px);
  }
}
.services .service-others .other-item h3 + p {
  margin-top: 0.2em;
  margin-left: 0.2em;
}
.services .service-others .other-item p {
  color: #b7b7b7;
  font-weight: 500;
  font-size: calc(26 * var(--unit-sp));
  transition: all 0.2s ease;
}
@media screen and (min-width: 768px) {
  .services .service-others .other-item p {
    font-size: clamp(12px, 16 * var(--unit-pc), 16px);
  }
}
.services .service-others .other-item .arrow-icon {
  display: block;
  width: min(12 * var(--unit-pc), 12px);
  margin-left: auto;
  transition: all 0.2s ease;
}
@media screen and (max-width: 767px) {
  .services .service-others .other-item .arrow-icon {
    width: calc(24 * var(--unit-sp));
    margin-left: inherit;
    margin-top: calc(-10 * var(--unit-sp));
    position: absolute;
    top: 50%;
    right: calc(38 * var(--unit-sp));
  }
}

/*---------------------------------------------
interview
---------------------------------------------*/
.interview {
  padding: calc(90 * var(--unit-sp)) 0 calc(120 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .interview {
    padding: min(130 * var(--unit-pc), 130px) 0 min(85 * var(--unit-pc), 85px);
  }
}
.interview .interview-content {
  display: flex;
  margin-top: calc(50 * var(--unit-sp));
  flex-direction: column;
  overflow: hidden;
  gap: calc(100 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .interview .interview-content {
    margin-top: min(55 * var(--unit-pc), 55px);
    flex-direction: row;
    gap: 0;
  }
}
.interview .interview-content .profile {
  width: 100%;
  padding-top: calc(120 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .interview .interview-content .profile {
    width: 46%;
    padding-top: min(105 * var(--unit-pc), 105px);
  }
}
.interview .interview-content .profile .image {
  position: relative;
}
@media screen and (max-width: 767px) {
  .interview .interview-content .profile .image {
    left: calc(35 * var(--unit-sp));
  }
}
.interview .interview-content .profile .image-01 {
  width: 60%;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  margin-left: 14%;
  opacity: 0;
  clip-path: inset(0 0 100% 0); /* 下から隠す */
  mix-blend-mode: screen; /* 光っぽく */
  filter: brightness(12);
}
@media screen and (min-width: 768px) {
  .interview .interview-content .profile .image-01 {
    width: 60%;
  }
}
.interview .interview-content .profile .image-02 {
  position: relative;
  width: 100%;
  opacity: 0;
  transform: scale(0.8);
}
.interview .interview-content .profile .name {
  position: relative;
  padding-left: calc(30 * var(--unit-sp));
  font-size: calc(32 * var(--unit-sp));
  font-weight: 700;
  line-height: 1.5;
  margin-top: 0.5em;
  margin-bottom: 0.2em;
}
@media screen and (min-width: 768px) {
  .interview .interview-content .profile .name {
    font-size: clamp(12px, 16 * var(--unit-pc), 16px);
    padding-left: min(30 * var(--unit-pc), 30px);
    margin-bottom: 0.5em;
  }
}
.interview .interview-content .profile .name:after {
  display: block;
  content: "";
  width: calc(23 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 0.75em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .interview .interview-content .profile .name:after {
    width: min(23 * var(--unit-pc), 23px);
  }
}
.interview .interview-content .profile .name,
.interview .interview-content .profile .data {
  opacity: 0;
  transform: translateY(40px);
}
.interview .interview-content .profile .data {
  padding-left: calc(30 * var(--unit-sp));
  font-size: calc(24 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .interview .interview-content .profile .data {
    padding-left: min(30 * var(--unit-pc), 30px);
    font-size: clamp(11px, 14 * var(--unit-pc), 14px);
  }
}
.interview .interview-content .main-text {
  flex: 1;
}
.interview .interview-content .main-text h3 {
  font-size: calc(50 * var(--unit-sp));
  line-height: 1.44;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 768px) {
  .interview .interview-content .main-text h3 {
    font-size: clamp(38px, 48 * var(--unit-pc), 48px);
    margin-bottom: 1em;
    padding-top: 1em;
  }
}
.interview .interview-content .main-text p {
  font-size: calc(26 * var(--unit-sp));
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .interview .interview-content .main-text p {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
    padding-left: 0.5em;
    line-height: 2.33;
  }
}

/*---------------------------------------------
works
---------------------------------------------*/
.works {
  background-color: var(--gray-light);
  padding: calc(100 * var(--unit-sp)) 0 calc(60 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .works {
    padding: min(130 * var(--unit-pc), 130px) 0 min(100 * var(--unit-pc), 100px);
  }
}
@media screen and (max-width: 767px) {
  .works .sec-head .sec-title {
    line-height: 0.8;
    margin-bottom: 0.5em;
    font-size: calc(80 * var(--unit-sp));
  }
  .works .sec-head .sec-title:after {
    top: calc(30 * var(--unit-sp));
  }
}
.works .work-image {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .works .work-image {
    width: 72.52%;
    border-radius: 10px;
  }
}
.works .main-text {
  background-color: rgba(255, 255, 255, 0.85);
  padding: calc(35 * var(--unit-sp)) calc(20 * var(--unit-sp)) calc(55 * var(--unit-sp)) calc(35 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .works .main-text {
    position: absolute;
    bottom: -30px;
    right: 0;
    width: 42%;
    border-radius: 10px;
    padding: min(50 * var(--unit-pc), 50px) min(45 * var(--unit-pc), 45px) min(60 * var(--unit-pc), 60px);
  }
}
.works .works-grid {
  display: flex;
  flex-direction: column;
  gap: calc(55 * var(--unit-sp));
  margin-top: calc(70 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .works .works-grid {
    gap: min(100 * var(--unit-pc), 100px);
    margin-top: min(55 * var(--unit-pc), 55px);
  }
}
.works .works-grid .work-item {
  position: relative;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .works .works-grid .work-item {
    border-radius: 5px;
    overflow: hidden;
  }
}
.works .works-grid .work-item h3 {
  font-size: calc(42 * var(--unit-sp));
  margin-bottom: 0.3em;
  padding-left: calc(28 * var(--unit-sp));
  position: relative;
}
@media screen and (min-width: 768px) {
  .works .works-grid .work-item h3 {
    font-size: clamp(24px, 30 * var(--unit-pc), 30px);
    padding-left: min(30 * var(--unit-pc), 30px);
    margin-bottom: 0.8em;
  }
}
.works .works-grid .work-item h3:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 0.8em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .works .works-grid .work-item h3:after {
    width: min(14 * var(--unit-pc), 14px);
  }
}
.works .works-grid .work-item p {
  font-size: calc(24 * var(--unit-sp));
  line-height: 1.875;
}
@media screen and (min-width: 768px) {
  .works .works-grid .work-item p {
    font-size: clamp(14px, 16 * var(--unit-pc), 16px);
  }
}
.works .works-grid .work-item:nth-child(2n) {
  align-items: flex-end;
}
.works .works-grid .work-item:nth-child(2n) .main-text {
  right: inherit;
  left: 0;
}

/*---------------------------------------------
clients
---------------------------------------------*/
.clients {
  position: relative;
  overflow: hidden;
  padding: calc(150 * var(--unit-sp)) 0 calc(100 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .clients {
    padding: calc(200 * var(--unit-pc)) 0 min(85 * var(--unit-pc), 85px);
  }
}
.clients::after {
  display: block;
  content: "";
  position: absolute;
  top: 0; /* セクションのすぐ下に配置 */
  left: 50%;
  width: 249.4vw;
  height: 46.93vw; /* 画面幅に応じてカーブの高さも変えるなら vw がおすすめ */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3740 704' preserveAspectRatio='none'%3E%3Cpath d='M3740,0 C3240,438 2587,703 1872,703 C1155,703 500,437 0,0 L3740,0 Z' fill='%23e9e9e9'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none; /* 下の要素のクリックを邪魔しない */
  transform: translate(-50%, -81.534%);
  z-index: -1;
}
.clients .ticker__list {
  margin-top: calc(35 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .clients .ticker__list {
    margin-top: min(30 * var(--unit-pc), 30px);
  }
}
.clients .client-list {
  display: flex;
  align-items: center;
  margin-top: calc(35 * var(--unit-sp));
  gap: calc(50 * var(--unit-sp)) 0;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .clients .client-list {
    margin-top: min(30 * var(--unit-pc), 30px);
    gap: min(75 * var(--unit-pc), 75px);
    justify-content: inherit;
  }
}
.clients .client-logo.client-01 {
  width: calc(292 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .clients .client-logo.client-01 {
    width: min(292 * var(--unit-pc), 292px);
  }
}
.clients .client-logo.client-02 {
  width: calc(292 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .clients .client-logo.client-02 {
    width: min(292 * var(--unit-pc), 292px);
  }
}
.clients .client-logo.client-03 {
  width: calc(188 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .clients .client-logo.client-03 {
    width: min(188 * var(--unit-pc), 188px);
  }
}

/*---------------------------------------------
members home
---------------------------------------------*/
.members-home {
  background-color: #222;
  color: #fff;
  padding: min(160 * var(--unit-pc), 160px) 0 min(100 * var(--unit-pc), 100px);
}
@media screen and (max-width: 767px) {
  .members-home .sec-head .sec-title {
    line-height: 1.1;
  }
  .members-home .sec-head .sec-title:after {
    top: calc(50 * var(--unit-sp));
  }
}
.members-home .members-body {
  margin-top: calc(80 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members-home .members-body {
    margin-top: min(80 * var(--unit-pc), 80px);
  }
}
.members-home .member-list {
  display: flex;
  gap: calc(95 * var(--unit-sp)) 6%;
  flex-wrap: wrap;
}
@media screen and (min-width: 768px) {
  .members-home .member-list {
    gap: 1.8%;
  }
}
.members-home .member-list .member-item {
  width: 47%;
}
@media screen and (min-width: 768px) {
  .members-home .member-list .member-item {
    width: 23.65%;
  }
}
.members-home .member-list + .btn-area {
  margin-top: calc(120 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members-home .member-list + .btn-area {
    margin-top: min(75 * var(--unit-pc), 75px);
  }
}
.members-home .member-list .no-post {
  text-align: center;
  width: 100%;
}
.members-home .btn-area {
  display: flex;
  justify-content: center;
}

/*---------------------------------------------
home-slider
---------------------------------------------*/
.home-slider {
  position: relative;
  overflow: hidden;
}
.home-slider::after {
  display: block;
  content: "";
  position: absolute;
  top: 0; /* セクションのすぐ下に配置 */
  left: 50%;
  width: 249.4vw;
  height: 46.93vw; /* 画面幅に応じてカーブの高さも変えるなら vw がおすすめ */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3741 704' preserveAspectRatio='none'%3E%3Cpath fill-rule='evenodd' fill='rgb(34, 34, 34)' d='M3740.269,2.431 C3240.922,438.953 2587.346,703.440 1871.996,703.440 C1155.333,703.440 500.671,437.981 0.975,0.027 L3740.269,2.431 Z'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none; /* 下の要素のクリックを邪魔しない */
  transform: translate(-50%, -60%);
  z-index: -1;
}
@media screen and (min-width: 768px) {
  .home-slider::after {
    transform: translate(-50%, -81.534%);
  }
}
.home-slider .slider-group {
  width: fit-content;
  display: flex;
  gap: calc(16 * var(--unit-sp));
  margin-left: -50%;
}
@media screen and (min-width: 768px) {
  .home-slider .slider-group {
    gap: 15px;
  }
}
.home-slider .slider-group:not(:last-child) {
  margin-bottom: calc(25 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .home-slider .slider-group:not(:last-child) {
    margin-bottom: 25px;
  }
}
.home-slider .slider-group .slider-item {
  width: calc(468 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .home-slider .slider-group .slider-item {
    width: 468px;
  }
}
.home-slider .slider-group .slider-item img {
  border-radius: 10px;
}

/*---------------------------------------------
CTA
---------------------------------------------*/
.cta-area {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: calc(470 * var(--unit-sp));
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: calc(30 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .cta-area {
    height: min(330 * var(--unit-pc), 330px);
    gap: min(30 * var(--unit-pc), 30px);
  }
}
.cta-area .parallax-img {
  width: 100%;
  position: relative;
  top: calc(70 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .cta-area .parallax-img {
    top: min(135 * var(--unit-pc), 135px);
  }
}
.cta-area .cta-area-text {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  z-index: 1;
  gap: calc(30 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .cta-area .cta-area-text {
    gap: min(30 * var(--unit-pc), 30px);
  }
}
.cta-area p {
  font-size: calc(26 * var(--unit-sp));
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .cta-area p {
    font-size: clamp(20px, 26 * var(--unit-pc), 26px);
  }
}

/*---------------------------------------------
recruit-home
---------------------------------------------*/
.recruit-home {
  overflow: hidden;
  position: relative;
  padding: calc(170 * var(--unit-sp)) 0 calc(120 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .recruit-home {
    max-height: 600px;
    padding: min(150 * var(--unit-pc), 150px) 0 min(205 * var(--unit-pc), 205px);
  }
}
@media screen and (max-width: 767px) {
  .recruit-home .inner {
    padding-inline: 0;
  }
  .recruit-home .sec-title {
    margin-inline: calc(40 * var(--unit-sp));
  }
}
.recruit-home .recruit-container {
  display: flex;
  flex-direction: column;
}
.recruit-home .sec-head {
  display: contents;
  /* 💡 ここがポイント！
  .sec-head の枠を「透明化」して、
  中の .sec-title と .btn-orange を .inner の直系の子要素のように扱います。
  */
}
.recruit-home .sec-title {
  order: 1;
}
.recruit-home .recruit-img {
  order: 2;
}
@media screen and (min-width: 768px) {
  .recruit-home .recruit-img {
    position: absolute;
    bottom: 0;
    left: 43.53%;
    transform: translate(0, 20.3125%);
  }
  .recruit-home .recruit-img .recruit-img-01 {
    width: min(639 * var(--unit-pc), 639px);
    position: absolute;
    top: min(28 * var(--unit-pc), 28px);
    left: 0;
    z-index: 1;
  }
  .recruit-home .recruit-img .recruit-img-02 {
    width: min(790 * var(--unit-pc), 790px);
  }
}
@media screen and (max-width: 767px) {
  .recruit-home .recruit-img {
    margin-left: 4%;
    width: 110%;
    position: relative;
    margin-top: calc(35 * var(--unit-sp));
    /*img {
        width: 100%;
    }*/
  }
  .recruit-home .recruit-img .recruit-img-01 {
    width: calc(633 * var(--unit-sp));
    position: absolute;
    top: calc(20 * var(--unit-sp));
    left: calc(10 * var(--unit-sp));
  }
  .recruit-home .recruit-img .recruit-img-02 {
    width: calc(790 * var(--unit-sp));
  }
}
.recruit-home .btn-orange {
  order: 3;
  align-self: center;
  margin-top: calc(125 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .recruit-home .btn-orange {
    margin-top: min(60 * var(--unit-pc), 60px);
    align-self: inherit;
  }
  .recruit-home .sec-title, .recruit-home .recruit-img, .recruit-home .btn-orange {
    order: initial;
  }
}

/*---------------------------------------------
service-modal-item
---------------------------------------------*/
.service-modal-info {
  font-size: calc(32 * var(--unit-sp));
  margin-bottom: 0.3em;
  padding-left: calc(25 * var(--unit-sp));
  position: relative;
}
@media screen and (min-width: 768px) {
  .service-modal-info {
    font-size: clamp(20px, 26 * var(--unit-pc), 26px);
    padding-left: min(28 * var(--unit-pc), 28px);
  }
}
.service-modal-info:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 0.8em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .service-modal-info:after {
    width: min(14 * var(--unit-pc), 14px);
  }
}

.service-modal-sub {
  font-size: calc(24 * var(--unit-sp));
  line-height: 1.5;
  margin-bottom: 2em;
}
@media screen and (min-width: 768px) {
  .service-modal-sub {
    font-size: clamp(12px, 14 * var(--unit-pc), 14px);
    line-height: 1.857;
  }
}

.service-modal-text .read-more {
  text-align: right;
  margin-top: 2em;
}
.service-modal-text .read-more a {
  color: #e45c37;
}
.service-modal-text .read-more .arrow {
  margin-left: 0.5em;
  transition: transform 0.2s ease;
}
.service-modal-text .read-more:hover .arrow {
  transform: translateX(4px);
}

/*---------------------------------------------
news
---------------------------------------------*/
.news .news-inner {
  padding-top: calc(35 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .news .news-inner {
    width: min(950 * var(--unit-pc), 950px);
    margin-inline: auto;
    padding-top: min(35 * var(--unit-pc), 35px);
  }
}
.news .news-list li {
  border-bottom: solid 1px #b7b7b7;
  padding: calc(35 * var(--unit-sp)) 0 calc(30 * var(--unit-sp));
}
.news .news-list li time {
  display: inline-block;
  padding-left: calc(25 * var(--unit-sp));
  color: #e45c37;
  margin-bottom: 0.3em;
  position: relative;
  font-size: calc(24 * var(--unit-sp));
}
.news .news-list li time:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 0.8em;
  left: 0;
}
.news .news-list li p {
  padding-left: calc(30 * var(--unit-sp));
  font-size: calc(26 * var(--unit-sp));
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .news .news-list li {
    padding: min(30 * var(--unit-pc), 30px) min(12 * var(--unit-pc), 12px);
  }
  .news .news-list li time {
    font-size: clamp(12px, 16 * var(--unit-pc), 16px);
    padding-left: min(20 * var(--unit-pc), 20px);
  }
  .news .news-list li time:after {
    width: min(14 * var(--unit-pc), 14px);
  }
  .news .news-list li p {
    padding-left: min(20 * var(--unit-pc), 20px);
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
    line-height: 1.875;
  }
}
.news .pagination {
  margin-top: calc(80 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .news .pagination {
    margin-top: min(80 * var(--unit-pc), 80px);
  }
}
body.home .news {
  padding: calc(160 * var(--unit-sp)) 0 calc(100 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  body.home .news {
    padding: min(85 * var(--unit-pc), 85px) 0 min(65 * var(--unit-pc), 65px);
  }
}
body.home .news .news-container {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  body.home .news .news-container {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
}
body.home .news .sec-head {
  display: contents;
  /* 💡 ここがポイント！
  .sec-head の枠を「透明化」して、
  中の .sec-title と .btn-orange を .inner の直系の子要素のように扱います。
  */
}
@media screen and (min-width: 768px) {
  body.home .news .sec-head {
    display: block;
    width: 38%;
    margin-right: 4%;
  }
}
body.home .news .sec-title {
  order: 1;
}
body.home .news .news-list {
  margin-top: calc(50 * var(--unit-sp));
  order: 2;
}
@media screen and (min-width: 768px) {
  body.home .news .news-list {
    flex: 1;
    margin-top: 0;
  }
}
@media screen and (min-width: 768px) {
  body.home .news .news-list li:last-child {
    border-bottom: none;
  }
}
body.home .news .btn-orange {
  margin-top: calc(100 * var(--unit-sp));
  order: 3;
  align-self: center;
}
@media screen and (min-width: 768px) {
  body.home .news .btn-orange {
    margin-block: min(60 * var(--unit-pc), 60px);
    align-self: inherit;
  }
}
@media screen and (min-width: 768px) {
  body.home .news .sec-title, body.home .news .news-list, body.home .news .btn-orange {
    order: initial;
  }
}

/*---------------------------------------------
recruit
---------------------------------------------*/
.recruit .recruit-inner {
  padding-top: calc(90 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .recruit .recruit-inner {
    width: min(950 * var(--unit-pc), 950px);
    margin-inline: auto;
    padding-top: min(90 * var(--unit-pc), 90px);
  }
}
.recruit .sub-title {
  font-size: calc(42 * var(--unit-sp));
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .recruit .sub-title {
    font-size: clamp(24px, 30 * var(--unit-pc), 30px);
  }
}
.recruit .recruit-list .recruit-item {
  border-bottom: solid 1px #b7b7b7;
  padding: calc(35 * var(--unit-sp)) 0 calc(30 * var(--unit-sp));
}
.recruit .recruit-list .recruit-item .job-type {
  padding-left: calc(25 * var(--unit-sp));
  color: #e45c37;
  margin-bottom: 0.3em;
  position: relative;
  font-size: calc(32 * var(--unit-sp));
  line-height: 1.5;
  margin-bottom: 1em;
}
.recruit .recruit-list .recruit-item .job-type:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: #000;
  position: absolute;
  top: 0.65em;
  left: 0;
}
.recruit .recruit-list .recruit-item .job-type a {
  color: #e45c37;
}
.recruit .recruit-list .recruit-item .job-content {
  padding-left: calc(30 * var(--unit-sp));
  font-size: calc(26 * var(--unit-sp));
  line-height: 1.4;
}
.recruit .recruit-list .recruit-item .job-content h2 {
  margin-block: 1em;
}
.recruit .recruit-list .recruit-item .job-content h3 {
  margin-top: 1em;
  margin-bottom: 0.5em;
}
.recruit .recruit-list .recruit-item .job-content h3:before {
  content: "■";
  margin-right: 0.3em;
}
.recruit .recruit-list .recruit-item .job-content ul li {
  list-style: disc;
  margin-left: 1em;
}
.recruit .btn-container {
  display: flex;
  justify-content: center;
  margin-top: calc(60 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .recruit .btn-container {
    margin-top: min(60 * var(--unit-pc), 60px);
  }
}
@media screen and (min-width: 768px) {
  .recruit .recruit-list .recruit-item {
    padding: min(30 * var(--unit-pc), 30px) min(12 * var(--unit-pc), 12px);
  }
  .recruit .recruit-list .recruit-item .job-type {
    font-size: clamp(20px, 26 * var(--unit-pc), 26px);
    padding-left: min(20 * var(--unit-pc), 20px);
  }
  .recruit .recruit-list .recruit-item .job-type:after {
    width: min(14 * var(--unit-pc), 14px);
    top: 0.95em;
  }
  .recruit .recruit-list .recruit-item .job-content {
    padding-left: min(20 * var(--unit-pc), 20px);
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
    line-height: 1.875;
  }
}

/*---------------------------------------------
members
---------------------------------------------*/
.members .member-img, .modal-item .member-img, .members-home .member-img, .modal__slide .member-img {
  position: relative;
}
.members .member-img.is-animating img.on, .modal-item .member-img.is-animating img.on, .members-home .member-img.is-animating img.on, .modal__slide .member-img.is-animating img.on {
  opacity: 1 !important;
}
.members .member-img img, .modal-item .member-img img, .members-home .member-img img, .modal__slide .member-img img {
  transition: opacity 0.2s ease;
  border-radius: 5px;
}
.members .member-img img.on, .modal-item .member-img img.on, .members-home .member-img img.on, .modal__slide .member-img img.on {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
@media (hover: hover) {
  .members .member-img img:hover.on, .modal-item .member-img img:hover.on, .members-home .member-img img:hover.on, .modal__slide .member-img img:hover.on {
    opacity: 1;
  }
  .members .member-img img:hover.off, .modal-item .member-img img:hover.off, .members-home .member-img img:hover.off, .modal__slide .member-img img:hover.off {
    opacity: 0;
  }
}
.members .member-info, .modal-item .member-info, .members-home .member-info, .modal__slide .member-info {
  margin-top: calc(25 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .member-info, .modal-item .member-info, .members-home .member-info, .modal__slide .member-info {
    margin-top: min(20 * var(--unit-pc), 20px);
  }
}
.members .member-profile, .modal-item .member-profile, .members-home .member-profile, .modal__slide .member-profile {
  font-size: calc(24 * var(--unit-sp));
  line-height: 1.5;
  padding-left: min(25 * var(--unit-pc), 30px);
}
@media screen and (min-width: 768px) {
  .members .member-profile, .modal-item .member-profile, .members-home .member-profile, .modal__slide .member-profile {
    font-size: clamp(12px, 14 * var(--unit-pc), 14px);
    padding-left: min(30 * var(--unit-pc), 30px);
    line-height: 1.857;
  }
}
.members .member-name, .modal-item .member-name, .members-home .member-name, .modal__slide .member-name {
  font-size: calc(32 * var(--unit-sp));
  margin-bottom: 0.3em;
  padding-left: calc(25 * var(--unit-sp));
  position: relative;
}
@media screen and (min-width: 768px) {
  .members .member-name, .modal-item .member-name, .members-home .member-name, .modal__slide .member-name {
    font-size: clamp(20px, 26 * var(--unit-pc), 26px);
    padding-left: min(28 * var(--unit-pc), 28px);
  }
}
.members .member-name:after, .modal-item .member-name:after, .members-home .member-name:after, .modal__slide .member-name:after {
  display: block;
  content: "";
  width: calc(14 * var(--unit-sp));
  height: 2px;
  background-color: #e45c37;
  position: absolute;
  top: 0.8em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .members .member-name:after, .modal-item .member-name:after, .members-home .member-name:after, .modal__slide .member-name:after {
    width: min(14 * var(--unit-pc), 14px);
  }
}
.members .sns-list, .members .modal__sns, .modal-item .sns-list, .modal-item .modal__sns, .members-home .sns-list, .members-home .modal__sns, .modal__slide .sns-list, .modal__slide .modal__sns {
  margin-top: 1em;
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.members .sns-list a, .members .modal__sns a, .modal-item .sns-list a, .modal-item .modal__sns a, .members-home .sns-list a, .members-home .modal__sns a, .modal__slide .sns-list a, .modal__slide .modal__sns a {
  display: inline-flex;
  align-items: center;
}
.members .sns-list .x, .members .modal__sns .x, .modal-item .sns-list .x, .modal-item .modal__sns .x, .members-home .sns-list .x, .members-home .modal__sns .x, .modal__slide .sns-list .x, .modal__slide .modal__sns .x {
  margin-left: 0.5em;
  width: calc(44 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .sns-list .x, .members .modal__sns .x, .modal-item .sns-list .x, .modal-item .modal__sns .x, .members-home .sns-list .x, .members-home .modal__sns .x, .modal__slide .sns-list .x, .modal__slide .modal__sns .x {
    width: min(22 * var(--unit-pc), 22px);
  }
}
.members .sns-list .instagram, .members .modal__sns .instagram, .modal-item .sns-list .instagram, .modal-item .modal__sns .instagram, .members-home .sns-list .instagram, .members-home .modal__sns .instagram, .modal__slide .sns-list .instagram, .modal__slide .modal__sns .instagram {
  width: calc(50 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .sns-list .instagram, .members .modal__sns .instagram, .modal-item .sns-list .instagram, .modal-item .modal__sns .instagram, .members-home .sns-list .instagram, .members-home .modal__sns .instagram, .modal__slide .sns-list .instagram, .modal__slide .modal__sns .instagram {
    width: min(25 * var(--unit-pc), 25px);
  }
}
.members .sns-list .note, .members .modal__sns .note, .modal-item .sns-list .note, .modal-item .modal__sns .note, .members-home .sns-list .note, .members-home .modal__sns .note, .modal__slide .sns-list .note, .modal__slide .modal__sns .note {
  width: calc(76 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .sns-list .note, .members .modal__sns .note, .modal-item .sns-list .note, .modal-item .modal__sns .note, .members-home .sns-list .note, .members-home .modal__sns .note, .modal__slide .sns-list .note, .modal__slide .modal__sns .note {
    width: min(38 * var(--unit-pc), 38px);
  }
}

.members .members-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(30 * var(--unit-sp)) calc(15 * var(--unit-sp)); /* 縦横の余白をスマホ用に少し詰める */
  padding: min(50 * var(--unit-pc), 50px) 0;
  margin-top: calc(60 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .members-list {
    grid-template-columns: repeat(3, 1fr); /* 3カラム */
    gap: min(40 * var(--unit-pc), 40px) min(60 * var(--unit-pc), 60px);
    margin-top: min(60 * var(--unit-pc), 60px);
  }
}
.members .members-list .members-item {
  cursor: pointer;
}
.members .members-list .members-item .l-box {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .members .members-list .members-item .l-box {
    flex-direction: row;
    gap: 4.62%;
  }
}
.members .members-list .members-item .member-img {
  width: 100%;
  /*@include pc-only {
      width: 50%;
  }*/
}
.members .members-list .members-item .member-img img {
  width: 100%;
  height: auto;
  margin-bottom: 15px;
}
.members .members-list .members-item .member-info {
  margin-top: 1em;
}
@media screen and (min-width: 768px) {
  .members .members-list .members-item .member-info {
    margin-top: 0;
  }
}
.members .members-list .members-item .sns-list {
  margin-left: calc(30 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .members-list .members-item .sns-list {
    margin-left: min(30 * var(--unit-pc), 30px);
  }
}
.members .members-list .member-text {
  margin-top: 2em;
  line-height: 1.857;
  font-size: calc(24 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .members .members-list .member-text {
    font-size: clamp(11px, 14 * var(--unit-pc), 14px);
  }
}

.post-type-archive-members {
  /* モーダル基本設定 */
}
.post-type-archive-members .modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
}
.post-type-archive-members .modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.post-type-archive-members .modal__container {
  position: relative;
  width: 95%;
  height: 90vh;
  background: #fff;
  overflow: hidden; /* スライドのはみ出しを隠す */
  border-radius: 15px;
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__container {
    width: 90%;
    height: 80vh;
  }
}
.post-type-archive-members .modal__slider {
  display: flex;
  height: 100%;
  width: 100%; /* JSでスライド数に合わせて動かす */
}
.post-type-archive-members .modal__slide {
  flex: 0 0 100%; /* 1枚が親の100%幅 */
  width: 100%;
  height: 100%;
  padding: calc(80 * var(--unit-sp));
  box-sizing: border-box;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__slide {
    padding: min(60 * var(--unit-pc), 60px);
  }
}
.post-type-archive-members .modal__slide .member-img.is-animating img.on {
  opacity: 1 !important;
  transition: 0s !important;
}
.post-type-archive-members .modal__slide .member-img.is-animating img.off {
  opacity: 0 !important;
  transition: 0s !important;
}
.post-type-archive-members {
  /* ナビゲーション */
}
@media screen and (max-width: 767px) {
  .post-type-archive-members .modal__nav {
    width: 100%;
    top: 50%;
    left: 0;
    justify-content: space-between;
  }
  .post-type-archive-members .modal__nav .nav-btn svg {
    width: 20px; /* スマホでは少し小さく */
    height: 40px;
  }
  .post-type-archive-members .modal__nav .prev {
    position: absolute;
    top: 50%;
    left: 0;
  }
  .post-type-archive-members .modal__nav .next {
    position: absolute;
    top: 50%;
    right: 0;
  }
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__nav {
    position: absolute;
    display: flex;
    bottom: 50px; /* 少し上に上げました */
    right: 50px;
    gap: 30px; /* ボタン同士の間隔を広く */
    z-index: 10;
  }
}
.post-type-archive-members .modal__member-detail {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__member-detail {
    flex-direction: row;
  }
}
.post-type-archive-members .modal__member-detail .modal__img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__member-detail .modal__img {
    width: min(32%, 400px);
    margin-right: min(60 * var(--unit-pc), 60px);
  }
}
.post-type-archive-members .modal__member-detail .modal__info {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .post-type-archive-members .modal__member-detail .modal__info {
    margin-top: calc(30 * var(--unit-sp));
  }
}
.post-type-archive-members .modal__member-detail .modal__text {
  margin-top: 2em;
  line-height: 1.8;
  font-size: calc(26 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .post-type-archive-members .modal__member-detail .modal__text {
    font-size: clamp(14px, 18 * var(--unit-pc), 18px);
  }
}
.post-type-archive-members .modal__close-btn {
  position: absolute;
  top: 5px; /* 上からの位置 */
  right: 5px; /* 左からの位置 */
  width: 88px; /* クリックしやすいサイズ */
  height: 88px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10;
  outline: none;
  padding: 0;
}
@media screen and (max-width: 767px) {
  .post-type-archive-members .modal__close-btn {
    width: 44px;
    height: 44px;
  }
}
.post-type-archive-members .modal__close-btn {
  /* 回転の中心を真ん中に固定 */
  display: flex;
  align-items: center;
  justify-content: center;
  /* アニメーションの設定 */
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.post-type-archive-members {
  /* バツボタンの「線」を作成 */
}
.post-type-archive-members .modal__close-btn::before,
.post-type-archive-members .modal__close-btn::after {
  content: "";
  position: absolute;
  width: 46px; /* 線の長さ */
  height: 1px; /* 線の太さ（1pxにするとより繊細になります） */
  background-color: #000; /* 線の色（ロゴやデザインに合わせて調整） */
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 767px) {
  .post-type-archive-members .modal__close-btn::before,
  .post-type-archive-members .modal__close-btn::after {
    width: 23px;
  }
}
.post-type-archive-members {
  /* 2本の線を交差させて「×」にする */
}
.post-type-archive-members .modal__close-btn::before {
  transform: rotate(45deg);
}
.post-type-archive-members .modal__close-btn::after {
  transform: rotate(-45deg);
}
.post-type-archive-members {
  /* マウスオーバー時の演出 */
}
@media (hover: hover) {
  .post-type-archive-members .modal__close-btn:hover {
    /* 45度（または90度）回転させる */
    transform: rotate(90deg);
  }
  .post-type-archive-members .modal__close-btn:hover::before,
  .post-type-archive-members .modal__close-btn:hover::after {
    /* ホバー時に色を変える場合はここで指定 */
    background-color: #000;
  }
}
.post-type-archive-members {
  /* ボタンの共通スタイル */
}
.post-type-archive-members .nav-btn {
  position: relative;
  /* SVGが24x48なので、クリックエリアは少し広めに */
  width: 56px;
  height: 56px;
  background: none;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  /* 中央配置 */
  display: flex;
  align-items: center;
  justify-content: center;
  /* アニメーションの設定 */
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .post-type-archive-members .nav-btn {
    width: 36px;
    height: 36px;
  }
}
.post-type-archive-members {
  /* SVG自体のスタイル */
}
.post-type-archive-members .nav-btn svg {
  width: 24px; /* 元の2倍以上の幅 */
  height: 48px; /* 元の2倍以上の高さ */
  will-change: transform;
}
.post-type-archive-members {
  /* SVGの「線」のスタイル */
}
.post-type-archive-members .nav-btn svg path {
  /* 初期の色：黒 */
  stroke: #000;
  /* ホバー時の色変更用アニメーション */
  transition: stroke 0.3s ease;
}
.post-type-archive-members {
  /* ==================================================
  ホバー時の演出（色変更 + 横スライド）
  ================================================== */
}
@media (hover: hover) {
  .post-type-archive-members {
    /* ホバー時の共通色：例としてグレー（#888） */
  }
  .post-type-archive-members .nav-btn:hover svg path {
    stroke: #e45c37; /* サイトのデザインに合わせて調整してください */
  }
}

/*---------------------------------------------
CONTACT
---------------------------------------------*/
/* 基本設定 */
.c-form {
  max-width: 820px;
  margin-inline: auto;
  color: #000;
  padding: calc(20 * var(--unit-sp));
  margin-top: calc(80 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .c-form {
    padding: min(20 * var(--unit-pc), 20px);
    margin-top: min(80 * var(--unit-pc), 80px);
  }
}

/* フォームの行設定 */
.c-form__row {
  display: flex;
  flex-direction: column; /* SPデフォルト: 上下並び */
  gap: 8px;
  margin-bottom: 50px;
}

/* PCレイアウト: 768px以上 */
@media screen and (min-width: 768px) {
  .c-form__row {
    flex-direction: row; /* 横並び */
    align-items: flex-start;
    gap: 20px;
  }
}
/* ラベルエリア */
.c-form__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .c-form__label {
    width: 240px; /* PC時のラベル幅を固定 */
    flex-shrink: 0;
    padding-top: 10px;
  }
}
/* 「必須」ラベル */
.c-form__required {
  font-size: 12px;
  color: #e45c37;
  border: 1px solid #e45c37;
  padding: 2px 6px;
  border-radius: 4px;
  line-height: 1;
}

/* 入力エリアの親 */
.c-form__input-wrapper {
  flex-grow: 1;
}

/* 入力要素のリセットとスタイル適用 */
.c-form__input {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #b7b7b7;
  border-radius: 5px;
  padding: 12px;
  font-size: 16px; /* モバイルでのズーム防止 */
  background-color: #fff;
  box-sizing: border-box;
}

.c-form__input--textarea {
  min-height: 300px;
  resize: vertical;
}

/* セレクトボックスの矢印（任意で調整） */
select.c-form__input {
  appearance: none;
  -webkit-appearance: none;
  color: #000;
  background-image: linear-gradient(45deg, transparent 50%, #000 50%), linear-gradient(135deg, #000 50%, transparent 50%);
  background-position: calc(100% - 28px) 50%, calc(100% - 20px) 50%;
  background-size: 8px 8px, 8px 8px;
  background-repeat: no-repeat;
}

/* 同意チェックボックス */
.c-form__consent {
  text-align: center;
  margin: 40px 0 20px;
}

/* チェックボックス本体のスタイル */
.c-form__checkbox {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  margin: 0;
  padding: 0;
  outline: none;
  color: #000;
  /* ご希望のサイズと枠線 */
  width: 20px;
  height: 20px;
  border: 1px solid #b7b7b7; /* 他のinputと同じ色 */
  border-radius: 0; /* 角丸なし */
  background-color: #fff;
  /* チェックマークを中央に配置するための設定 */
  display: grid;
  place-content: center;
  flex-shrink: 0; /* ラベルが長くなっても潰れないように */
}

/* チェックされた時のレ点（疑似要素） */
.c-form__checkbox::after {
  content: "";
  width: 12px;
  height: 6px;
  border-left: 2px solid #e45c37; /* 「必須」と同じアクセントカラー */
  border-bottom: 2px solid #e45c37;
  transform: rotate(-45deg);
  transform-origin: center;
  margin-top: -2px; /* 位置の微調整 */
  /* デフォルトでは非表示、チェックされたら表示 */
  opacity: 0;
}

.c-form__checkbox:checked::after {
  opacity: 1;
}

/* ラベル内のテキストとの整列 */
.c-form__checkbox-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
}

/* ボタン */
.c-form__submit {
  text-align: center;
  margin-top: calc(60 * var(--unit-sp));
}
@media screen and (min-width: 768px) {
  .c-form__submit {
    margin-top: min(60 * var(--unit-pc), 60px);
  }
}

/*.c-form__button {
  background-color: #000;
  color: #fff;
  border: none;
  padding: 16px 60px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  transition: opacity 0.3s;
  border-radius: 4px;
}

.c-form__button:hover {
  opacity: 0.8;
}*/
.c-button-orange {
  /* button要素のデフォルトスタイルをリセット */
  appearance: none;
  border: none;
  outline: none;
  padding: 0;
  font-family: inherit;
  /* 基本レイアウト設定 */
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  background-color: #e45c37; /* ベースのオレンジ */
  border-radius: 86px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.3s;
  /* サイズ設定 (SP) */
  width: 100%; /* 親要素(c-form__submit)で幅を制御する場合 */
  max-width: 320px; /* サンプル: 640*var(--unit-sp)相当のイメージ */
  height: 65px; /* サンプル: 130*var(--unit-sp)相当 */
  font-size: 16px;
  /* PCレイアウト */
}
@media (min-width: 768px) {
  .c-button-orange {
    width: 360px;
    height: 86px;
    font-size: 18px; /* cl-pc(17, 22)を想定した固定値 */
  }
}
.c-button-orange {
  /* ホバーで伸びる背景 */
}
.c-button-orange .btn-bg {
  position: absolute;
  inset: 0;
  background-color: #ff4715; /* ホバー時の明るいオレンジ */
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1;
}
.c-button-orange .btn-text {
  position: relative;
  z-index: 2;
}
.c-button-orange .arrow-icon {
  position: absolute;
  top: 50%;
  right: 24px; /* 右端からの距離 */
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
  width: 24px;
}
.c-button-orange {
  /* ホバーアクション */
}
.c-button-orange:hover .btn-bg {
  transform: scaleX(1);
}
.c-button-orange:hover .arrow-icon {
  transform: translate(8px, -50%);
}

.c-button-gray {
  /* 基本レイアウト設定 */
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #000;
  background-color: #ededed;
  border-radius: 86px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.3s;
  /* サイズ設定 (SP) */
  width: 100%; /* 親要素(c-form__submit)で幅を制御する場合 */
  max-width: 320px; /* サンプル: 640*var(--unit-sp)相当のイメージ */
  height: 65px; /* サンプル: 130*var(--unit-sp)相当 */
  font-size: 16px;
  /* PCレイアウト */
}
@media (min-width: 768px) {
  .c-button-gray {
    width: 360px;
    height: 86px;
    font-size: 18px; /* cl-pc(17, 22)を想定した固定値 */
  }
}
.c-button-gray {
  /* ホバーで伸びる背景 */
}
.c-button-gray .btn-bg {
  position: absolute;
  inset: 0;
  background-color: #c1c1c1; /* ホバー時の明るいオレンジ */
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1;
}
.c-button-gray .btn-text {
  position: relative;
  z-index: 2;
}
.c-button-gray .arrow-icon {
  position: absolute;
  top: 50%;
  right: 24px; /* 右端からの距離 */
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
  width: 24px;
}
.c-button-gray {
  /* ホバーアクション */
}
.c-button-gray:hover .btn-bg {
  transform: scaleX(1);
}
.c-button-gray:hover .arrow-icon {
  transform: translate(8px, -50%);
}

/* CF7標準の送信ボタンは初期状態で隠す */
#form-confirm-area .wpcf7-submit {
  display: none;
}

/* 確認画面表示時に送信ボタンを見せる */
.is-confirm #form-confirm-area .wpcf7-submit {
  display: block;
}

/* エラーメッセージ */
.error-msg {
  display: block;
  color: #ff0000;
  font-size: 0.8rem;
  margin-top: 5px;
}

.flex-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .flex-buttons {
    flex-direction: column;
  }
}

#form-confirm-area .confirm-text {
  margin-bottom: 2em;
}
#form-confirm-area .confirm-row {
  padding: 2em;
  display: flex;
}
@media screen and (max-width: 767px) {
  #form-confirm-area .confirm-row {
    flex-direction: column;
    padding: 1em;
  }
}
#form-confirm-area .confirm-row strong {
  margin-right: 2em;
  min-width: 8em;
  display: block;
}
@media screen and (max-width: 767px) {
  #form-confirm-area .confirm-row strong {
    margin-right: 0;
  }
}

/*---------------------------------------------
Thanks
---------------------------------------------*/
/* サンクスページ全体のコンテナ */
.thank-you-container {
  margin: 60px auto;
  padding: 40px 20px;
  text-align: center;
}

/* チェックマークアイコン */
.thank-you-icon {
  width: 80px;
  height: 80px;
  background-color: #e45c37; /* 前回のボタン色に合わせました */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
}

.thank-you-icon svg {
  width: 48px;
  fill: #fff;
}

/* タイトル */
.thank-you-title {
  font-size: 24px;
  font-weight: bold;
  color: #333;
  margin-bottom: 24px;
}

/* 文章 */
.thank-you-text {
  font-size: 16px;
  line-height: 1.8;
  color: #666;
  margin-bottom: 40px;
}

.thank-you-text .note {
  font-size: 14px;
  color: #999;
  margin-top: 20px;
  text-align: left;
  background: #f9f9f9;
  padding: 15px;
  border-radius: 8px;
}

/* 戻るボタン */
.thank-you-btn-wrap {
  margin-top: 30px;
}

.thank-you-btn {
  display: inline-block;
  padding: 16px 40px;
  background-color: #333;
  color: #fff !important;
  text-decoration: none;
  border-radius: 30px;
  font-weight: bold;
  transition: all 0.3s ease;
}

.thank-you-btn:hover {
  background-color: #e45c37;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(228, 92, 55, 0.3);
}

/* スマホ調整 */
@media (max-width: 768px) {
  .thank-you-container {
    margin: 30px 15px;
    padding: 30px 15px;
  }
  .thank-you-title {
    font-size: 20px;
  }
}