@charset "UTF-8";
body {
  background-color: #fbf9f6;
}
/*//////////PCサイズ///////////*/
/*//////////PCサイズ///////////*/
@media screen and (min-width: 768px) {
/** ==============================
 * ファーストビュー start
 * ============================== **/
.MainVisualSection {
  position: relative;
  width: 100vw;
  /*height: calc(var(--vh, 1vh) * 100);
  height: 100vh;
   min-height: 600px; ← 任意で残してもOK */
  aspect-ratio: 16 / 12;
  overflow: hidden;
  background-color: #333;
}
/* ===== 動画背景 ===== */
.MainVisualSection__video-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.MainVisualSection__video-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* ★ 黒オーバーレイ */
.MainVisualSection__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3); /* 黒＋透明30% */
  z-index: 2;
  pointer-events: none; /* 下の動画ボタンなどの操作を邪魔しない */
}
/* ===== ブランドMOVIEリンク・コピー配置 ===== */
.MainVisualSection__content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  pointer-events: none;
}
.MainVisualSection__brand-movie {
  align-self: flex-start;
  margin: 0 0 40px 40px;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: auto;
}
/* ブランドムービーボタン */
.MainVisualSection__brand-link img {
  width: 10vw;
  height: auto;
}
/* ライトボックスのスタイル */
.VideoLightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999; /* 必ずヘッダーより前に */
  align-items: center;
  justify-content: center;
}
.VideoLightbox.is-active {
  display: flex;
}
.VideoLightbox__inner {
  position: relative;
  max-width: 90%;
  max-height: 80%;
}
.VideoLightbox__inner video {
  width: 100%;
  max-width: 1280px;
  height: auto;
  display: block;
}
.VideoLightbox__close {
  position: absolute;
  top: -2.5rem;
  right: -2.5rem;
  font-size: 2rem;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10000; /* 念のためボタンも強く */
}
.MainVisualSection__brand-link:hover {
  opacity: 0.8;
}
.MainVisualSection__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  position: absolute;
  left: 10vw;
  top: 41%;
  margin: 0 0 0 0;
  z-index: 2;
  pointer-events: auto;
}
.MainVisualSection__en.serif {
  font-family: 'Noto Serif JP', serif;
  font-size: 2.7rem;
  font-weight: 100;
  color: #fff;
  letter-spacing: 0.2rem;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.18);
  line-height: 190%
}
/** ==============================
 * ファーストビュー end
 * ============================== **/
/* ==============================
 * contact-head start
 * ============================== */
.ContactHeadSec {
  text-align: center;
  padding: 8vw 0 0;
}
.ContactHeadSec .sec-in {
  width: 100vw;
  margin: 0 auto;
}
.ContactHeadSec .ttl {
  color: #8f8983;
  font-family: 'Noto Serif JP', serif; /* 明朝体 */
  font-weight: 400;
  letter-spacing: .12rem;
  line-height: 1.6;
  font-size: 2.4rem; /* 共通ttlと整合させるなら削除可 */
  margin: 0 0 5rem;
}
.ContactHeadSec .ttl .en {
  font-size: 80%; /* 英語だけ80% */
  display: inline-block;
}
/* ==============================
 * contact-head end
 * ============================== */
/* ==============================
 * contact-lead start
 * ============================== */
/* セクション自体で上下左右中央に配置（テキストは左揃え） */
.ContactLeadSec {
  padding: 0 0 4vw; /* 下に少し余白 */
}
.ContactLeadSec .lead-wrap {
  width: 60vw; /* ブロックは中央に配置 */
  display: flex;
  align-items: center; /* 垂直中央 */
  justify-content: center; /* 水平中央（親の実効幅に依存しない） */
  margin: auto; /* flexで中央にするため余計なautoは不要 */
}
.ContactLeadSec .lead {
  /* 既存 .lead を踏襲：サイズ等は指定しない */
  display: inline-block;
  margin: 0;
  text-align: left; /* テキストは左揃え */
  color: #6f6a66; /* セクション固有の色のみ上書き */
}
/* ==============================
 * contact-lead end
 * ============================== */
/* ==============================
 * contact-tel start
 * ============================== */
.ContactTelSec {
  padding: 2vw 0 4vw 0;
}
.ContactTelSec .tel-band {
  width: 60vw;
  margin: 0 auto;
  background: #8a8079; /* 色帯 */
  padding: 2.6vw 4vw;
  text-align: center;
}
.ContactTelSec .tel-catch {
  margin: 0 0 1.2rem;
  color: #fff;
  letter-spacing: .08rem;
  font-size: 1.2rem;
  font-family: 'Noto Serif JP', serif; /* 明朝体 */
  font-weight: 400;
}
.ContactTelSec .tel-number {
  margin: 0 0 1rem;
  line-height: 1;
  letter-spacing: .18rem;
  font-size: 3.4rem; /* 電話番号を大きく */
  font-weight: 500;
}
.ContactTelSec .tel-link {
  color: #fff;
  text-decoration: none;
}
.ContactTelSec .tel-link:hover {
  text-decoration: underline;
}
.ContactTelSec .tel-note {
  margin: 0;
  color: #f2eeeb;
  letter-spacing: .06rem;
  font-size: 1rem;
}
/* ==============================
 * contact-tel end
 * ============================== */
/* ==============================
 * UI start
 * ============================== */
.ui-input {
  width: 100%;
  height: 3rem;
  padding: 0 .9rem;
  border: 1px solid var(--ui-bd);
  background: var(--ui-bg);
  color: var(--ink);
  outline: none;
  border-radius: 0;
}
.ui-input:focus {
  border-color: var(--ui-bd-focus);
}
.ui-select {
  position: relative;
  width: 28vw;
  max-width: 32rem;
  min-width: 18rem;
}
.ui-select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 100%;
  height: 3rem;
  padding: 0 3rem 0 .9rem;
  border: 1px solid var(--ui-bd);
  background: var(--ui-bg);
  color: var(--ink);
  border-radius: 0;
  outline: none;
  font-size: 1.2rem;
  }
.ui-select::after {
  content: "";
  position: absolute;
  right: 1rem;                 /* もとの .9rem から調整 */
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;               /* 1rem → 1.4rem */
  height: 2rem;              /* 1rem → 1.4rem */
  pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%237f756e' d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.ui-radio {
  display: inline-flex;
  align-items: center;
  margin-right: 1.6rem;
  cursor: pointer;
  user-select: none;
  color: var(--ink);
}
.ui-radio input {
  appearance: none;
  -webkit-appearance: none;
  width: 1.15rem;
  height: 1.15rem;
  border: 1px solid var(--ui-bd);
  border-radius: 50%;
  margin: 0 .55rem 0 0;
  position: relative;
  outline: none;
  background: var(--ui-bg);
}
.ui-radio input:checked {
  border-color: var(--ui-bd-focus);
}
.ui-radio input:checked::after {
  content: "";
  position: absolute;
  inset: .22rem;
  background: var(--ui-bd-focus);
  border-radius: 50%;
}
/* 送信ボタン（新規） */
.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 3.4rem;
  padding: 0 3.6rem;
  border: 0;
  border-radius: 9999px; /* pill */
  cursor: pointer;
  text-decoration: none;
  letter-spacing: .35rem;
  text-indent: .35rem; /* 見た目の字間調整 */
  font-size: 1.2rem;
  font-weight: 500;
  color: #fff;
  background: var(--btn-bg, #947847); /* ブランド色：必要なら--btn-bg上書き */
  transition: filter .2s ease, transform .06s ease, box-shadow .2s ease;
}
.ui-btn:hover {
  filter: brightness(.95);
}
.ui-btn:active {
  transform: translateY(1px) scale(.995);
}
.ui-btn:focus-visible {
  outline: 2px solid rgba(0, 0, 0, .12);
  outline-offset: 3px;
}
.ui-btn[disabled] {
  opacity: .5;
  cursor: not-allowed;
}
/* ==============================
 * UI end
 * ============================== */
/* ==============================
 * contact-form start
 * ============================== */ :root {
  --ink: #3b3735;
  --muted: #8f8983;
  --line: #bfb8b0;
  --band: #8a8079;
  --req: #947847;
  --ui-bg: #fff;
  --ui-bd: #9f958d;
  --ui-bd-focus: #7f756e;
  --btn-bg: #947847; /* 送信ボタン色（必要に応じて差し替え） */
}
.ContactFormSec {
  padding: 0 0 5vw 0
}
.ContactFormSec__in {
  width: 80vw;
  margin: 0 auto;
}
/* タイトル */
.cf-ttl {
  width: 100%;
  text-align: center;
  margin: 5vw 0 3vw;
  color: var(--muted);
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  letter-spacing: .12rem;
  font-size: 2rem;
}
/* 1項目=1ブロック */
.cf-form {}
.cf-row {
  font-size: 1.2rem;
  display: grid;
  grid-template-columns: 21vw 1fr;
  column-gap: 2vw;
  padding: 1.4vw 0;
  border-bottom: .0625rem solid var(--line);
  align-items: center; /* ← これを追加 */
}
.cf-label {
  align-self: start;
  color: var(--ink);
  letter-spacing: .06rem;
  font-family: 'Noto Serif JP', serif;
  margin: 0.5rem 0 0 0.5rem;
}
.cf-label .req {
  color: var(--req);
  font-size: .95rem;
  margin-left: .6rem;
}
/* 右側：行間はrow-gapで統一 */
.cf-field {
  display: grid;
  grid-auto-rows: max-content;
  row-gap: 1.4rem;
}
/* インライン行：ラベル+入力 */
.cf-inline {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: nowrap;
}
.cf-inline-label {
  color: var(--ink);
  letter-spacing: .04rem;
  white-space: nowrap;
  min-width: 4em;
}
.cf-inline .ui-input {
  flex: 1;
  width: auto;
}
/* ラジオ並び（任意） */
.cf-radios {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.6rem;
}
/* ノート */
.cf-note {
  margin: 0;
  color: var(--muted);
  letter-spacing: .04rem;
}
/* 送信エリア（新規） */
.cf-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  padding: 5vw 0 2vw;
  border-bottom: none; /* 直前のcf-rowと同じ階層で使う場合の保険 */
}
.cf-submit {
  text-align: center;
}
.cf-submit .ui-btn {
  min-width: 15rem;
  font-size: 1.3rem
} /* 見本サイズ感 */
.cf-submit-note {
  margin: 0;
  color: var(--muted);
  letter-spacing: .06rem;
  font-size: 1rem;
}
/* ==============================
 * contact-form end
 * ============================== */
/* 自由記述テキストエリア行：1カラム・下線あり */
.cf-row--free {
  grid-template-columns: 1fr;
  padding: 0 0 1.4vw 0;
}
/* テキストエリア */
.ui-textarea {
  width: 100%;
  min-height: 18rem;
  padding: 1rem 1.2rem;
  border: .0625rem solid #9f958d;
  border-radius: .4rem;
  background: #fff;
  font-size: 1.2rem;
  line-height: 2;
  letter-spacing: .04rem;
  color: #3b3735;
  resize: vertical;
}
.ui-textarea:focus {
  outline: none;
  border-color: #7f756e;
}


}
/*//////////SPサイズ///////////*/
@media screen and (max-width:767px) {
/** ==============================
 * ファーストビュー (SP) start
 * ============================== **/
.MainVisualSection {
  position: relative;
  width: 100vw;
  aspect-ratio: 16 / 12;
  overflow: hidden;
  background-color: #333;
}
/* ===== 動画背景 ===== */
.MainVisualSection__video-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.MainVisualSection__video-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* ★ 黒オーバーレイ */
.MainVisualSection__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 2;
  pointer-events: none;
}
/* ===== ブランドMOVIEリンク・コピー配置 ===== */
.MainVisualSection__content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  pointer-events: none;
}
.MainVisualSection__brand-movie {
  align-self: flex-start;
  margin: 0 0 4vw 4vw;   /* 40px → 4vw */
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: auto;
}
/* ブランドムービーボタン */
.MainVisualSection__brand-link img {
  width: 24vw;            /* 10vw → タップ＆視認性確保 */
  height: auto;
}
/* ライトボックス */
.VideoLightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.8);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.VideoLightbox.is-active { display: flex; }
.VideoLightbox__inner {
  position: relative;
  max-width: 90vw;
  max-height: 80vh;
}
.VideoLightbox__inner video {
  width: 100%;
  height: auto;
  display: block;
}
.VideoLightbox__close {
  position: absolute;
  top: .8rem; right: .8rem;  /* 画面内に固定 */
  font-size: 1.6rem;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10000;
}
.MainVisualSection__brand-link:hover { opacity: .8; }

.MainVisualSection__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;   /* 右寄せ→左寄せ */
  position: absolute;
  left: 6.5vw; right: 6.5vw; /* 安全域 */
  bottom: 12vh;              /* 下部UIと干渉しにくい */
  margin: 0;
  z-index: 2;
  pointer-events: auto;
}
.MainVisualSection__en.serif {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.8rem;         /* 役割文字としてやや大きめ */
  font-weight: 100;
  color: #fff;
  letter-spacing: .12rem;
  text-shadow: 0 .125rem 1.125rem rgba(0,0,0,.18);
  line-height: 1.8;          /* ビルドSP */
}
/** ==============================
 * ファーストビュー (SP) end
 * ============================== **/

/* ==============================
 * contact-head (SP) start
 * ============================== */
.ContactHeadSec {
  text-align: center;
  padding: 12vh 0 0;               /* 8vw 0 0 → SP基準 */
}
.ContactHeadSec .sec-in {
  width: 87vw;                     /* 100vw → 既定幅 */
  margin: 0 auto;
}
.ContactHeadSec .ttl {
  color: #8f8983;
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  letter-spacing: .12rem;
  line-height: 1.4;
  font-size: 1.6rem;               /* ビルドSP：見出し */
  margin: 0 0 1.6rem;
}
.ContactHeadSec .ttl .en {
  font-size: 80%;
  display: inline-block;
}
/* ==============================
 * contact-head (SP) end
 * ============================== */

/* ==============================
 * contact-lead (SP) start
 * ============================== */
/* セクション自体で上下左右中央に配置（テキストは左揃え） */
.ContactLeadSec {
  padding: 0 0 2rem;               /* 4vw → 2rem */
}
.ContactLeadSec .lead-wrap {
  width: 87vw;                     /* 60vw → 87vw */
  display: block;                  /* シンプルに */
  margin: 0 auto;
}
.ContactLeadSec .lead {
  display: block;
  margin: 0;
  text-align: left;
  color: #6f6a66;
  font-size: 1.0rem;               /* ビルドSP：本文 */
  line-height: 1.8;                /* ビルドSP：行間 */
}
/* ==============================
 * contact-lead (SP) end
 * ============================== */

/* ==============================
 * contact-tel (SP) start
 * ============================== */
.ContactTelSec {
  padding: 0 0 2rem;          /* 2vw 0 4vw → SP基準 */
}
.ContactTelSec .tel-band {
  width: 87vw;                     /* 60vw → 87vw */
  margin: 0 auto;
  background: #8a8079;
  padding: 1.2rem 1.2rem;          /* 2.6vw 4vw → rem */
  text-align: center;
  border-radius: .4rem;
}
.ContactTelSec .tel-catch {
  margin: 0 0 .6rem;
  color: #fff;
  letter-spacing: .08rem;
  font-size: 1.2rem;
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
}
.ContactTelSec .tel-number {
  margin: 0 0 .8rem;
  line-height: 1;
  letter-spacing: .12rem;
  font-size: 2.4rem;               /* 3.4rem → SP最適化 */
  font-weight: 600;
}
.ContactTelSec .tel-link {
  color: #fff;
  text-decoration: none;
}
.ContactTelSec .tel-link:hover { text-decoration: underline; }
.ContactTelSec .tel-note {
  margin: 0;
  color: #f2eeeb;
  letter-spacing: .06rem;
  font-size: 1.0rem;               /* 1rem → 明確化 */
  line-height: 1.8;
}
/* ==============================
 * contact-tel (SP) end
 * ============================== */

/* ==============================
 * UI (SP) start
 * ============================== */
.ui-input {
  width: 100%;
  height: 3.2rem;                  /* 3rem → タップ余裕 */
  padding: 0 1rem;                 /* .9rem → 1rem */
  border: 1px solid var(--ui-bd);
  background: var(--ui-bg);
  color: var(--ink);
  outline: none;
  border-radius: 0;
  font-size: 1.0rem;               /* 読みやすい本文サイズ */
}
.ui-input:focus { border-color: var(--ui-bd-focus); }

.ui-select {
  position: relative;
  width: 100%;                     /* 28vw → 100% */
  max-width: none;                 /* 制限解除 */
  min-width: 0;
}
.ui-select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 100%;
  height: 3.2rem;                  /* 3rem → 3.2rem */
  padding: 0 3rem 0 1rem;          /* 右アイコン分を確保 */
  border: 1px solid var(--ui-bd);
  background: var(--ui-bg);
  color: var(--ink);
  border-radius: 0;
  outline: none;
  font-size: 1.0rem;               /* 1.2rem → 1.0rem */
}
.ui-select::after {
  content: "";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.4rem; height: 1.4rem;   /* 2rem → 1.4rem（収まり優先） */
  pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%237f756e' d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.ui-radio {
  display: inline-flex;
  align-items: center;
  margin-right: 1rem;              /* 1.6rem → 圧縮 */
  cursor: pointer;
  user-select: none;
  color: var(--ink);
  font-size: 1.0rem;
}
.ui-radio input {
  appearance: none;
  -webkit-appearance: none;
  width: 1.2rem; height: 1.2rem;   /* 若干拡大 */
  border: 1px solid var(--ui-bd);
  border-radius: 50%;
  margin: 0 .55rem 0 0;
  position: relative;
  outline: none;
  background: var(--ui-bg);
}
.ui-radio input:checked { border-color: var(--ui-bd-focus); }
.ui-radio input:checked::after {
  content: "";
  position: absolute;
  inset: .28rem;                   /* 中点の見え方を微調整 */
  background: var(--ui-bd-focus);
  border-radius: 50%;
}

/* 送信ボタン */
.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 3.4rem;
  padding: 0 2rem;                 /* 3.6rem → コンパクト */
  border: 0;
  border-radius: 9999px;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: .25rem;          /* .35rem → 抑制 */
  text-indent: .25rem;
  font-size: 1.1rem;               /* 1.2rem → 1.1rem */
  font-weight: 600;
  color: #fff;
  background: var(--btn-bg, #947847);
  transition: filter .2s ease, transform .06s ease, box-shadow .2s ease;
}
.ui-btn:hover { filter: brightness(.95); }
.ui-btn:active { transform: translateY(1px) scale(.995); }
.ui-btn:focus-visible {
  outline: 2px solid rgba(0,0,0,.12);
  outline-offset: 3px;
}
.ui-btn[disabled] { opacity: .5; cursor: not-allowed; }
/* ==============================
 * UI (SP) end
 * ============================== */

/* ==============================
 * contact-form (SP) start
 * ============================== */
:root {
  --ink: #3b3735;
  --muted: #8f8983;
  --line: #bfb8b0;
  --band: #8a8079;
  --req: #947847;
  --ui-bg: #fff;
  --ui-bd: #9f958d;
  --ui-bd-focus: #7f756e;
  --btn-bg: #947847;
}
.ContactFormSec {
  padding: 0 0 2.4rem 0;           /* 5vw → 2.4rem */
}
.ContactFormSec__in {
  width: 87vw;                     /* 80vw → 既定幅 */
  margin: 0 auto;
}

/* タイトル */
.cf-ttl {
  width: 100%;
  text-align: center;
  margin: 2rem 0 1.2rem;          /* 5vw 0 3vw → rem */
  color: var(--muted);
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  letter-spacing: .12rem;
  font-size: 1.2rem;               /* ビルドSP：見出し */
  line-height: 1.4;
}

/* 1項目=1ブロック */
.cf-form {}

/* 行：PC 2カラム → SP 1カラム */
.cf-row {
  font-size: 1rem;               /* 1.2rem → 1.0rem */
  display: grid;
  grid-template-columns: 1fr;      /* 21vw 1fr → 1列 */
  row-gap: .8rem;
  column-gap: 0;
  padding: 2rem 0;                 /* 1.4vw → 1rem */
  border-bottom: .0625rem solid var(--line);
  align-items: start;
}

/* ラベル */
.cf-label {
  font-size:1.15rem; 
  align-self: start;
  color: var(--ink);
  letter-spacing: .06rem;
  font-family: 'Noto Serif JP', serif;
  margin: 0;                       /* 0.5rem 0 0 0.5rem → 0 */
  line-height: 1.8;
  font-weight: 700;
}
.cf-label .req {
  color: var(--req);
  font-size: .9rem;                /* わずかに抑制 */
  margin-left: .4rem;
}

/* 右側：行間はrow-gapで統一 */
.cf-field {
  display: grid;
  grid-auto-rows: max-content;
  row-gap: 1rem;                   /* 1.4rem → 1rem */
}

/* インライン行：ラベル+入力（折り返し対応） */
.cf-inline {
  display: flex;
  align-items: center;
  gap: .8rem;                      /* 1.2rem → .8rem */
  flex-wrap: wrap;                 /* 狭幅で折返し */
}
.cf-inline-label {
  color: var(--ink);
  letter-spacing: .04rem;
  white-space: nowrap;
  min-width: auto;                 /* 4em → 自動 */
}
.cf-inline .ui-input {
  flex: 1 1 12rem;                 /* 収まりやすい柔軟幅 */
  width: auto;
}

/* ラジオ並び */
.cf-radios {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1rem;                 /* 0.8rem 1.6rem → 調整 */
}

/* ノート */
.cf-note {
  margin: 0;
  color: var(--muted);
  letter-spacing: .04rem;

  line-height: 1.8;
}

/* 送信エリア */
.cf-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;                       /* 1.2rem → 1rem */
  padding: 2rem 0 1rem;            /* 5vw 0 2vw → rem */
  border-bottom: none;
}
.cf-submit { text-align: center; }
.cf-submit .ui-btn {
  min-width: 14rem;                /* 15rem → 14rem */
  font-size: 1.2rem;               /* 1.3rem → 1.2rem */
}
.cf-submit-note {
  margin: 0;
  color: var(--muted);
  letter-spacing: .06rem;
  font-size: 1.0rem;
  line-height: 1.8;
}
/* ==============================
 * contact-form (SP) end
 * ============================== */

/* 自由記述テキストエリア行：SPも1カラム */
.cf-row--free {
  grid-template-columns: 1fr;
  padding: 0 0 1rem 0;             /* 1.4vw → 1rem */
}
/* テキストエリア */
.ui-textarea {
  width: 100%;
  min-height: 14rem;               /* 18rem → SPで少し低め */
  padding: 1rem 1.2rem;
  border: .0625rem solid #9f958d;
  border-radius: .4rem;
  background: #fff;
  font-size: 1.0rem;               /* 1.2rem → 1.0rem */
  line-height: 1.8;                /* 2 → 1.8 */
  letter-spacing: .04rem;
  color: #3b3735;
  resize: vertical;
}
.ui-textarea:focus {
  outline: none;
  border-color: #7f756e;
}

}