/* =========================================================================
   pc.css — LP1 ver2 PC（800px〜）
   デザイン幅 1100px 基準（main の最大幅）。サイズは calc(var(--vw) * デザイン上のpx) で書く。
   --vw は 1100px で 1px になり、それより広い画面では大きくならない（main は中央に固定）。
   PCデザインは無いため、SPデザインのトンマナでレイアウトを組んでいる。
   ========================================================================= */

:root {
  --vw: min(calc(100vw / 1100), 1px);

  /* color（sp.css と同じ） */
  --c-back: #1f2725;
  --c-lightbeige: #f0eee8;
  --c-key: #d6e865;
  --c-white: #ffffff;
  --c-middlebeige: #e5e2dc;
  --c-lightgreen: #868d7d;
  --c-darkgreen: #46524d;
  --c-line: rgba(134, 141, 125, 0.7);
  --c-error: #a63d2a;

  --reveal-distance: calc(var(--vw) * 24);

  /* font */
  --ff-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --ff-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --ff-num: "Playfair Display", "Noto Serif JP", serif;

  /* main 内の左右余白 */
  --gutter: calc(var(--vw) * 80);

  /* margin / padding */
  --s8: calc(var(--vw) * 8);
  --s16: calc(var(--vw) * 16);
  --s24: calc(var(--vw) * 24);
  --s32: calc(var(--vw) * 32);
  --s40: calc(var(--vw) * 40);
  --s48: calc(var(--vw) * 48);
  --s56: calc(var(--vw) * 56);
  --s64: calc(var(--vw) * 64);
  --s72: calc(var(--vw) * 72);
  --s80: calc(var(--vw) * 80);
  --s96: calc(var(--vw) * 96);
  --s120: calc(var(--vw) * 120);
  --s160: calc(var(--vw) * 160);
}

/* --- reset -------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--c-lightbeige);
  color: var(--c-back);
  font-family: var(--ff-sans);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }
/* SPだけの改行 */
.sponly { display: none; }

/* --- main（1100px で中央に固定し、両端を線で区切る）------------------------ */
main {
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
  border-right: 1px solid var(--c-line);
  border-left: 1px solid var(--c-line);
}

/* --- CTAボタン（全セクション共通）------------------------------------------ */
.cta-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--s24);
  width: fit-content;
  padding: var(--s24) var(--s72);
  border-radius: calc(var(--vw) * 100);
  background: var(--c-key);
  color: var(--c-back);
  font-size: calc(var(--vw) * 32);
  font-weight: 900;
  line-height: 1;
  transition: opacity .2s;
}
.cta-btn:hover {
  opacity: .8;
}
.cta-btn__arrow {
  font-size: calc(var(--vw) * 20);
  font-weight: 700;
}

/* --- CTAブロック（矢印＋文言＋ボタン。各セクション末尾で共通）------------------ */
.cta-block {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cta-block__arrow {
  width: calc(var(--vw) * 37);
  height: calc(var(--vw) * 43);
  color: var(--c-lightgreen);
}
.cta-block__text {
  margin-top: var(--s16);
  margin-bottom: var(--s16);
  font-size: calc(var(--vw) * 32);
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

/* --- セクション見出し（番号＋英字＋見出し。各セクション共通）------------------- */
.sec-head {
  display: flex;
  flex-direction: column;
}
.sec-head__num {
  color: var(--c-middlebeige);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 120);
  font-weight: 500;
  font-variant-numeric: lining-nums;
  line-height: 1;
}
.sec-head__en {
  color: var(--c-lightgreen);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 18);
  font-weight: 500;
  line-height: 1.4;
}
.sec-head__title {
  margin-top: var(--s16);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 72);
  font-weight: 700;
  line-height: 1.15;
}

/* --- KV ----------------------------------------------------------------- */
.kv {
  position: relative;
  display: flex;
  overflow: hidden;
  background: var(--c-lightbeige);
}
/* 人物写真（背景の斜めのグラデーションを含む）。右上基準でKVの高さいっぱいに置く */
.kv__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: auto;
  max-width: none;
  height: 100%;
}
.kv__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-top: var(--s40);
  padding-right: var(--gutter);
  padding-left: var(--gutter);
  padding-bottom: var(--s40);
}
/* ロゴ画像（1000×255）。幅だけ指定し、高さは比率に任せる */
.kv__logo {
  display: flex;
}
.kv__logo-img {
  width: calc(var(--vw) * 160);
}
.kv__title {
  margin-top: var(--s48);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 60);
  font-weight: 700;
  line-height: 1.2;
}
.kv__lead {
  margin-top: var(--s32);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
}
.kv__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: flex-start;
  gap: var(--s24);
  margin-top: var(--s64);
}
.kv__cta-copy {
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

/* --- 実績 --------------------------------------------------------------- */
.stats {
  display: flex;
  justify-content: center;
  padding-top: var(--s24);
  padding-bottom: var(--s24);
  background: var(--c-back);
}
.stats__list {
  display: flex;
  width: calc(var(--vw) * 860);
}
.stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}
.stats__item + .stats__item {
  border-left: 1px solid var(--c-lightgreen);
}
.stats__label {
  color: var(--c-lightbeige);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.4;
}
.stats__value {
  display: flex;
  align-items: baseline;
  gap: var(--s8);
  color: var(--c-lightbeige);
  font-family: var(--ff-serif);
  font-weight: 700;
  line-height: 1;
}
.stats__num {
  color: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 75);
  font-weight: 600;
  font-variant-numeric: lining-nums;
}
.stats__unit {
  font-size: calc(var(--vw) * 24);
}

/* --- 01 お悩み ---------------------------------------------------------- */
.sec1 {
  position: relative;
  overflow: hidden;
  background: var(--c-lightbeige);
}
/* 右上の斜め切り抜き写真 */
.sec1__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 300);
  max-width: none;
}
/* 左側の三角の地模様 */
.sec1__deco {
  position: absolute;
  top: calc(var(--vw) * 200);
  left: 0;
  width: calc(var(--vw) * 200);
  height: calc(var(--vw) * 800);
  background: var(--c-middlebeige);
  clip-path: polygon(0 0, 100% 55%, 0 100%);
}
.sec1__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
/* 2列に並べる */
.sec1__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s16);
  margin-top: var(--s56);
}
.sec1__item {
  display: flex;
  align-items: center;
  gap: var(--s16);
  width: calc((100% - var(--s16)) / 2);
  min-height: calc(var(--vw) * 72);
  padding-top: var(--s16);
  padding-right: var(--s24);
  padding-bottom: var(--s16);
  padding-left: var(--s24);
  border-radius: calc(var(--vw) * 12);
  background: rgba(255, 255, 255, 0.9);
}
.sec1__check {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 24);
  height: calc(var(--vw) * 24);
  background: var(--c-middlebeige);
}
.sec1__check::before {
  content: "";
  width: calc(var(--vw) * 13);
  height: calc(var(--vw) * 7);
  margin-top: calc(var(--vw) * -4);
  border-bottom: calc(var(--vw) * 3) solid var(--c-back);
  border-left: calc(var(--vw) * 3) solid var(--c-back);
  transform: rotate(-45deg);
}
.sec1__text {
  font-size: calc(var(--vw) * 24);
  font-weight: 500;
  line-height: 1.5;
}
.sec1 .cta-block {
  margin-top: var(--s56);
}

/* --- 02 申し込む前が重要 -------------------------------------------------- */
.sec2 {
  position: relative;
  overflow: hidden;
  background: var(--c-back);
  color: var(--c-lightbeige);
}
/* 左上の斜めの光（白をうっすら重ねる） */
.sec2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: calc(var(--vw) * 700);
  height: calc(var(--vw) * 1300);
  background: linear-gradient(to bottom left, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0));
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.sec2__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-left: var(--gutter);
}
.sec2 .sec-head__num {
  color: var(--c-darkgreen);
}
.sec2__em {
  color: var(--c-key);
}
/* 「」の前後の空きを詰める */
.sec-head__title .sec2__em {
  font-feature-settings: "palt";
}
.sec2__lead {
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
}

/* 6つのポイント（左右2列）。中央に書類の写真を敷く */
.sec2__points {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: calc(var(--vw) * 440);
  margin-top: var(--s64);
}
.sec2__points-img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(var(--vw) * 440);
  max-width: none;
  translate: -50% -50%;
  mix-blend-mode: lighten; /* 画像の黒背景を消す（透過画像に差し替えたら削除） */
}
.sec2__col {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s24);
  width: calc(var(--vw) * 330);
}
.sec2__point {
  display: flex;
  align-items: center;
  gap: var(--s16);
  padding-top: var(--s24);
  padding-right: var(--s16);
  padding-bottom: var(--s24);
  padding-left: var(--s24);
  border: 1px solid rgba(134, 141, 125, 0.7); /* lightgreen 70% */
  border-radius: calc(var(--vw) * 12);
  background: rgba(31, 39, 37, 0.65); /* back 65%：下の写真が透ける */
}
.sec2__icon {
  flex-shrink: 0;
  width: calc(var(--vw) * 48);
}
.sec2__point-body {
  display: flex;
  flex-direction: column;
}
.sec2__point-title {
  font-size: calc(var(--vw) * 28);
  font-weight: 700;
  line-height: 1.4;
}
.sec2__point-text {
  font-size: calc(var(--vw) * 18);
  font-weight: 500;
  line-height: 1.5;
}

/* 打ち消し→回答のメッセージ。背景に斜め切り抜きの写真を全幅で敷く */
.sec2__message {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: var(--s24);
  padding-top: calc(var(--vw) * 70);
  padding-left: var(--gutter);
}
.sec2__message-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
.sec2__wrong {
  position: relative;
  padding: var(--s16);
  background: rgba(31, 39, 37, 0.85); /* back 85% */
  font-size: calc(var(--vw) * 52);
  font-weight: 500;
  line-height: 1.3;
}
.sec2__right {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s8);
  margin-top: var(--s40);
}
.sec2__right-line {
  padding-top: var(--s8);
  padding-right: var(--s16);
  padding-bottom: var(--s8);
  padding-left: var(--s16);
  background: var(--c-key);
  color: var(--c-back);
  font-size: calc(var(--vw) * 45);
  font-weight: 700;
  line-height: 1.3;
}

/* CTA：暗い背景用。文言→矢印→ボタンの順 */
.sec2 .cta-block {
  position: relative;
  margin-top: var(--s64);
  padding-bottom: var(--s96);
}
.sec2 .cta-block__text {
  margin-top: 0;
}
.sec2 .cta-block__arrow {
  margin-bottom: var(--s40);
  color: var(--c-lightbeige);
}

/* --- 03 審査ポイント ------------------------------------------------------ */
.sec3 {
  position: relative;
  overflow: hidden;
  background: var(--c-lightbeige);
}
/* 右上の明るい三角（白をうっすら重ねる） */
.sec3::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 560);
  height: calc(var(--vw) * 900);
  background: rgba(255, 255, 255, 0.5);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.sec3__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s40);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
.sec3__lead {
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
}

/* 審査ポイントの表（番号｜項目名｜説明 を横一列） */
.sec3__table {
  display: flex;
  flex-direction: column;
  margin-top: var(--s48);
  border-top: 1px solid var(--c-lightgreen);
}
.sec3__row {
  display: flex;
  align-items: center;
  min-height: calc(var(--vw) * 100);
  border-bottom: 1px solid var(--c-lightgreen);
}
/* 白抜き（線だけ）の番号 */
.sec3__row-num {
  width: calc(var(--vw) * 56);
  padding-right: var(--s24);
  box-sizing: content-box;
  border-right: 1px solid var(--c-lightgreen);
  color: transparent;
  -webkit-text-stroke: 1px var(--c-lightgreen);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 56);
  font-weight: 400;
  font-variant-numeric: lining-nums;
  line-height: 0.85;
}
.sec3__row-title {
  width: calc(var(--vw) * 260);
  margin-left: var(--s40);
  font-size: calc(var(--vw) * 30);
  font-weight: 700;
  line-height: 1.4;
}
.sec3__row-text {
  flex: 1;
  font-size: calc(var(--vw) * 22);
  line-height: 1.6;
}

.sec3__catch {
  margin-top: var(--s64);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 53);
  font-weight: 700;
  line-height: 1.5;
}
/* 文字の下半分に敷くマーカー */
.sec3__marker {
  background: linear-gradient(transparent 58%, var(--c-key) 58%, var(--c-key) 93%, transparent 93%);
}
.sec3__text {
  margin-top: var(--s24);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
}
.sec3 .cta-block {
  margin-top: var(--s56);
}

/* --- 04 選ばれる理由 ------------------------------------------------------ */
.sec4 {
  position: relative;
  background: var(--c-lightbeige);
  border-top: 1px solid var(--c-line);
}
/* 右上の人物写真（斜めの背景込み）。上のセクションに少しはみ出す */
.sec4__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 420);
  max-width: none;
}
.sec4__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s40);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
.sec4__lead {
  display: flex;
  flex-direction: column;
  gap: var(--s24);
  width: calc(var(--vw) * 600);
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
}

/* 強み01：暗いカード（左に文章、右に写真） */
.strength {
  display: flex;
  overflow: hidden;
  margin-top: var(--s96);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-back);
  color: var(--c-lightbeige);
}
.strength__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-top: var(--s48);
  padding-right: var(--s48);
  padding-bottom: var(--s48);
  padding-left: var(--s48);
}
.strength__head {
  display: flex;
  align-items: center;
  gap: var(--s24);
}
.strength__num {
  color: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 96);
  font-weight: 500;
  font-variant-numeric: lining-nums;
  line-height: 1;
}
.strength__en {
  color: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 22);
  font-weight: 500;
  line-height: 1.1;
}
.strength__title {
  margin-top: var(--s32);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 52);
  font-weight: 700;
  line-height: 1.4;
}
.strength__sub {
  margin-top: var(--s8);
  padding-bottom: var(--s24);
  border-bottom: 1px solid var(--c-line);
  font-size: calc(var(--vw) * 24);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
.strength__text {
  margin-top: var(--s24);
  font-size: calc(var(--vw) * 22);
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.strength__img {
  flex-shrink: 0;
  width: calc(var(--vw) * 340);
  object-fit: cover;
}

/* 強み02〜04：白いカードを3列 */
.sec4__list {
  display: flex;
  gap: var(--s24);
  margin-top: var(--s24);
}
.sec4__item {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-right: var(--s24);
  padding-bottom: var(--s40);
  padding-left: var(--s24);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}
/* 上段：ペナント（左）とアイコン（右） */
.sec4__item-side {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
/* 下が尖った帯（ペナント）。形は shield.svg */
.sec4__badge {
  display: flex;
  justify-content: center;
  width: calc(var(--vw) * 72);
  height: calc(var(--vw) * 86);
  padding-top: var(--s8);
  background: url(../images/shield.svg) center / 100% 100% no-repeat;
  color: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 36);
  font-weight: 400;
  font-variant-numeric: lining-nums;
  line-height: 1.4;
}
.sec4__icon {
  width: calc(var(--vw) * 64);
  margin-top: var(--s24);
}
.sec4__item-body {
  display: flex;
  flex-direction: column;
  margin-top: var(--s24);
}
.sec4__item-head {
  display: flex;
  flex-direction: column;
  padding-bottom: var(--s16);
  border-bottom: 1px solid var(--c-line);
}
.sec4__item-en {
  color: var(--c-lightgreen);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 18);
  font-weight: 500;
  line-height: 1.4;
}
.sec4__item-title {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.4;
  min-height: 3em;
}
.sec4__item-text {
  margin-top: var(--s16);
  font-size: calc(var(--vw) * 18);
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.sec4 .cta-block {
  margin-top: var(--s64);
}
.sec4 .cta-block__text {
  margin-top: 0;
}
.sec4 .cta-block__arrow {
  margin-bottom: var(--s32);
}

/* --- 05 支援内容 ---------------------------------------------------------- */
.sec5 {
  position: relative;
  background: var(--c-lightbeige);
  border-top: 1px solid var(--c-line);
}
/* 右上の斜め切り抜き写真。上のセクションに少しはみ出す */
.sec5__photo {
  position: absolute;
  top: calc(var(--vw) * 20);
  right: 0;
  width: calc(var(--vw) * 320);
  max-width: none;
}
/* 左側の三角の地模様（支援の流れの裏） */
.sec5__deco {
  position: absolute;
  top: calc(var(--vw) * 420);
  left: 0;
  width: calc(var(--vw) * 260);
  height: calc(var(--vw) * 700);
  background: var(--c-middlebeige);
  clip-path: polygon(0 0, 100% 48%, 0 100%);
}
.sec5__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
/* 「着金まで。」の下半分に敷くマーカー */
.sec5__marker {
  background: linear-gradient(transparent 70%, var(--c-key) 70%);
}
.sec5__lead {
  width: calc(var(--vw) * 720);
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.sec5 .sub-title {
  margin-top: var(--s80);
}
/* 中見出し（下に黄緑のライン。各セクション共通） */
.sub-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s16);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 40);
  font-weight: 700;
  line-height: 1.4;
}
.sub-title::after {
  content: "";
  width: calc(var(--vw) * 180);
  height: calc(var(--vw) * 4);
  background: var(--c-key);
}

/* 支援の流れ：縦に並べ、番号の丸を縦線でつなぐ */
.flow {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s40);
}
/* 縦線：1つ目の丸の中心〜最後の丸の中心（カードの隙間で見える） */
.flow::before {
  content: "";
  position: absolute;
  top: var(--s56);
  bottom: var(--s56);
  left: calc(var(--vw) * 76);
  width: 1px;
  background: var(--c-line);
}
/* 縦線より手前に出す */
.flow__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--s40);
  padding-top: var(--s24);
  padding-right: var(--s40);
  padding-bottom: var(--s24);
  padding-left: var(--s40);
  border-radius: calc(var(--vw) * 12);
  background: var(--c-white);
}
.flow__num {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 72);
  height: calc(var(--vw) * 72);
  border-radius: 50%;
  background: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 30);
  font-weight: 600;
  font-variant-numeric: lining-nums;
  line-height: 1;
}
/* 見出し（左）と項目（右）を点線で区切る */
.flow__body {
  display: flex;
  align-items: center;
  flex: 1;
}
.flow__title {
  width: calc(var(--vw) * 300);
  padding-right: var(--s32);
  border-right: 1px dashed var(--c-line);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 27);
  font-weight: 700;
  line-height: 1.15;
}
.flow__list {
  display: flex;
  flex-direction: column;
  padding-left: var(--s32);
  font-size: calc(var(--vw) * 20);
  line-height: 1.7;
}
.flow__list li {
  display: flex;
}
.flow__list li::before {
  content: "・";
}
.sec5 .cta-block {
  margin-top: var(--s64);
}
.sec5 .cta-block__text {
  margin-top: 0;
}
.sec5 .cta-block__arrow {
  margin-bottom: var(--s32);
}

/* クロージング：斜め切り抜き写真の上端から暗い背景 */
.sec5__closing {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-bottom: 1px;
  background: linear-gradient(var(--c-lightbeige) calc(var(--vw) * 172), var(--c-back) calc(var(--vw) * 172));
  color: var(--c-lightbeige);
}
.sec5__closing-img {
  width: 100%;
}
/* 写真の下半分に文章を重ねる */
.sec5__closing-body {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  padding-top: var(--s48);
  padding-right: var(--gutter);
  padding-bottom: var(--s48);
  padding-left: var(--gutter);
  background: linear-gradient(rgba(31, 39, 37, 0), rgba(31, 39, 37, 0.85) 30%);
}
.sec5__closing-title {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 56);
  font-weight: 700;
  line-height: 1.45;
}
.sec5__closing-text {
  margin-top: var(--s24);
  font-size: calc(var(--vw) * 22);
  line-height: 1.9;
  letter-spacing: 0.04em;
}

/* --- 06 支援事例 ---------------------------------------------------------- */
.sec6 {
  position: relative;
  overflow: hidden;
  background: linear-gradient(var(--c-back) calc(var(--vw) * 580), var(--c-lightbeige) calc(var(--vw) * 720));
}
/* 右上の斜め切り抜き写真 */
.sec6__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 340);
  max-width: none;
}
.sec6__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
.sec6 .sec-head__num {
  color: var(--c-darkgreen);
}
.sec6 .sec-head__title {
  color: var(--c-lightbeige);
}
.sec6__em {
  color: var(--c-key);
}
.sec6__lead {
  width: calc(var(--vw) * 720);
  margin-top: var(--s40);
  color: var(--c-lightbeige);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* 事例カード */
.sec6__cases {
  display: flex;
  flex-direction: column;
  margin-top: var(--s56);
  gap:calc(var(--vw) * 24);
}
.case {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding-top: var(--s24);
  padding-right: var(--s24);
  padding-bottom: var(--s32);
  padding-left: var(--s24);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}

.case.lg {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding-top: var(--s24);
  padding-right: var(--s24);
  padding-bottom: var(--s32);
  padding-left: var(--s24);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}
.case.lg .case__detail {width: 60%;}
.case__head {
  display: flex;
  width: 100%;
  align-items: center;
  margin-bottom: var(--s8);
}
/* CASE番号の右に伸びる線 */
.case__head::after {
  content: "";
  flex: 1;
  height: 1px;
  margin-left: var(--s16);
  background: var(--c-lightgreen);
}
.case__no {
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 28);
  font-weight: 400;
  font-variant-numeric: lining-nums;
  line-height: 1;
}
/* 業種：番号のすぐ右に大きく出す（横線はその後ろ） */
.case__tag {
  margin-left: var(--s16);
  padding-top: calc(var(--vw) * 4);
  padding-right: calc(var(--vw) * 12);
  padding-bottom: calc(var(--vw) * 4);
  padding-left: calc(var(--vw) * 12);
  border-radius: calc(var(--vw) * 100);
  background: var(--c-key);
  font-size: calc(var(--vw) * 16);
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}
/* 写真の下に金額 */
.case__main {
  display: flex;
  width: 35%;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s24);
  margin-right: 5%;
}
.case__img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: calc(var(--vw) * 8);
}
.case__amount {
  display: flex;
  flex-direction: column;
  gap: var(--s8);
}
.case__amount-label {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 26);
  font-weight: 700;
  line-height: 1.4;
}
.case__amount-value {
  display: flex;
  align-items: baseline;
  gap: var(--s8);
}
/* 金額の下半分に敷くマーカー */
.case__amount-num {
  padding-right: var(--s8);
  background: linear-gradient(transparent 68%, var(--c-key) 68%, var(--c-key) 91%, transparent 91%);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 80);
  font-weight: 900;
  font-variant-numeric: lining-nums;
  line-height: 1;
  letter-spacing: -0.02em;
}
.case__amount-unit {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  white-space: nowrap;
}
.case__detail {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--s24);
  margin-top: var(--s24);
}
.case__row {
  display: flex;
  flex-direction: column;
  gap: var(--s8);
}
/* 依頼時期：ラベルの右に値 */
.case__row--inline {
  flex-direction: row;
  align-items: center;
  gap: var(--s16);
}
.case__label {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  align-self: flex-start;
  padding-top: calc(var(--vw) * 4);
  padding-right: var(--s16);
  padding-bottom: calc(var(--vw) * 4);
  padding-left: var(--s16);
  border: 1px solid var(--c-lightgreen);
  border-radius: calc(var(--vw) * 8);
  background: var(--c-back);
  color: var(--c-key);
  font-size: calc(var(--vw) * 16);
  line-height: 1.5;
}
.case__row--inline .case__label {
  align-self: center;
}
.case__value {
  font-size: calc(var(--vw) * 18);
  line-height: 1.5;
}
.case__value--comment {
  padding-top: var(--s16);
  padding-right: var(--s16);
  padding-bottom: var(--s16);
  padding-left: var(--s16);
  border-radius: calc(var(--vw) * 8);
  background: var(--c-lightbeige);
}

/* その他のケース（アコーディオン。開閉は js/common.js の data-accordion）：2列 */
.sec6 .sub-title {
  margin-top: var(--s80);
}
.other-cases {
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s40);
}
.other-case {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: var(--s16);
  padding-right: var(--s24);
  padding-bottom: var(--s16);
  padding-left: var(--s16);
  border-radius: calc(var(--vw) * 12);
  background: var(--c-white);
}
.other-case__trigger {
  display: flex;
  align-items: center;
  gap: var(--s24);
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.other-case__img {
  flex-shrink: 0;
  width: 15%;
  border-radius: calc(var(--vw) * 8);
  aspect-ratio: 1/.6;
  overflow: hidden;
}
.other-case__body {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 80%;
}
.other-case__label {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.4;
}
.other-case__amount {
  display: flex;
  align-items: baseline;
  gap: var(--s8);
  white-space: nowrap;
}
.other-case__amount-label {
  margin-right: var(--s8);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
}
.other-case__num {
  padding-right: var(--s8);
  background: linear-gradient(transparent 68%, var(--c-key) 68%, var(--c-key) 91%, transparent 91%);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 48);
  font-weight: 900;
  font-variant-numeric: lining-nums;
  line-height: 1;
  letter-spacing: -0.02em;
}
.other-case__unit {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 20);
  font-weight: 700;
}
/* 開いているとき∨、閉じているとき›（FAQと同じ） */
.other-case__icon {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 20);
  height: calc(var(--vw) * 20);
  margin-left: auto;
  transition: transform 0.2s;
}
.other-case__icon::before {
  content: "";
  width: calc(var(--vw) * 10);
  height: calc(var(--vw) * 10);
  margin-top: calc(var(--vw) * -5);
  border-right: 2px solid var(--c-back);
  border-bottom: 2px solid var(--c-back);
  transform: rotate(45deg);
}
.other-case__trigger[aria-expanded="false"] .other-case__icon {
  transform: rotate(-90deg);
}
.other-case__panel {
  padding-top: var(--s8);
  padding-bottom: var(--s16);
  padding-left: var(--s8);
}
.sec6 .cta-block {
  margin-top: var(--s64);
}

/* --- 07 料金 ------------------------------------------------------------- */
.sec7 {
  position: relative;
  overflow: hidden;
  background: var(--c-lightbeige);
  border-top: 1px solid var(--c-line);
}
/* 右上の明るい三角（03と同じ表現） */
.sec7::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 560);
  height: calc(var(--vw) * 900);
  background: rgba(255, 255, 255, 0.5);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.sec7__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
.sec7__lead {
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* 料金ボックス */
.price {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin-top: var(--s48);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}
.price__head {
  padding-top: var(--s16);
  padding-bottom: var(--s16);
  background: var(--c-back);
  color: var(--c-key);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 32);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.4em;
  text-align: center;
}
.price__body {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: var(--s48);
  padding-bottom: var(--s48);
}
.price__rate {
  display: flex;
  flex-direction: column;
  padding-right: var(--s64);
  border-right: 1px solid var(--c-lightgreen);
}
.price__rate-label {
  margin-bottom: var(--s16);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.4;
}
.price__rate-value {
  display: flex;
  align-items: baseline;
  font-family: var(--ff-num);
  font-variant-numeric: lining-nums;
  line-height: 0.8;
}
.price__rate-num {
  font-size: calc(var(--vw) * 200);
  font-weight: 500;
}
.price__rate-unit {
  font-size: calc(var(--vw) * 120);
  font-weight: 400;
}
.price__list {
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  padding-left: var(--s64);
}
.price__item {
  display: flex;
  align-items: center;
  gap: var(--s8);
  font-size: calc(var(--vw) * 26);
  font-weight: 500;
  line-height: 1.4;
}
/* チェック（01のお悩みと同じ形） */
.price__check {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 28);
  height: calc(var(--vw) * 28);
  margin-right: var(--s8);
  background: var(--c-middlebeige);
}
.price__check::before {
  content: "";
  width: calc(var(--vw) * 13);
  height: calc(var(--vw) * 7);
  margin-top: calc(var(--vw) * -4);
  border-bottom: calc(var(--vw) * 3) solid var(--c-back);
  border-left: calc(var(--vw) * 3) solid var(--c-back);
  transform: rotate(-45deg);
}
.price__marker {
  background: linear-gradient(transparent 75%, var(--c-key) 75%);
}

/* 料金の仕組み：縦に並べ、番号の丸を縦線でつなぐ */
.sec7 .sub-title {
  margin-top: var(--s80);
}
.price-flow {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s40);
}
/* 縦線：1つ目の丸の中心〜最後の丸の中心（カードの隙間で見える） */
.price-flow::before {
  content: "";
  position: absolute;
  top: var(--s56);
  bottom: var(--s56);
  left: calc(var(--vw) * 76);
  width: 1px;
  background: var(--c-line);
}
/* 縦線より手前に出す */
.price-flow__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--s40);
  padding-top: var(--s24);
  padding-right: var(--s40);
  padding-bottom: var(--s24);
  padding-left: var(--s40);
  border-radius: calc(var(--vw) * 12);
  background: var(--c-white);
}
.price-flow__num {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 72);
  height: calc(var(--vw) * 72);
  border-radius: 50%;
  background: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 30);
  font-weight: 600;
  font-variant-numeric: lining-nums;
  line-height: 1;
}
.price-flow__body {
  display: flex;
  flex-direction: column;
  gap: var(--s8);
  flex: 1;
}
.price-flow__title {
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 24);
  font-weight: 700;
  line-height: 1.5;
}
.price-flow__text {
  font-size: calc(var(--vw) * 20);
  line-height: 1.5;
}

/* 料金の一例 */
.price-example {
  display: flex;
  flex-direction: column;
  align-self: center;
  width: calc(var(--vw) * 780);
  margin-top: var(--s56);
  padding-top: var(--s40);
  padding-right: var(--s48);
  padding-bottom: var(--s24);
  padding-left: var(--s48);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}
.price-example__main {
  display: flex;
  align-items: center;
  gap: var(--s32);
  padding-bottom: var(--s24);
  border-bottom: 1px solid var(--c-line);
}
.price-example__icon {
  flex-shrink: 0;
  width: calc(var(--vw) * 80);
}
.price-example__body {
  display: flex;
  flex-direction: column;
  gap: var(--s8);
}
.price-example__title {
  font-size: calc(var(--vw) * 28);
  font-weight: 700;
  line-height: 1.4;
}
.price-example__text {
  font-size: calc(var(--vw) * 22);
  line-height: 1.7;
}
.price-example__strong {
  font-weight: 700;
}
.price-example__note {
  margin-top: var(--s16);
  font-size: calc(var(--vw) * 16);
  line-height: 1.6;
}
.sec7 .cta-block {
  margin-top: var(--s64);
}

/* --- 08 FAQ -------------------------------------------------------------- */
.sec8 {
  position: relative;
  overflow: hidden;
  background: linear-gradient(var(--c-back) calc(var(--vw) * 440), var(--c-lightbeige) calc(var(--vw) * 580));
}
/* 右上の斜め切り抜き写真 */
.sec8__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 340);
  max-width: none;
}
.sec8__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s120);
  padding-left: var(--gutter);
}
.sec8 .sec-head__num {
  color: var(--c-darkgreen);
}
.sec8 .sec-head__title {
  color: var(--c-lightbeige);
}
.sec8__lead {
  margin-top: var(--s40);
  color: var(--c-lightbeige);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* アコーディオン（開閉は js/common.js の data-accordion） */
.faq {
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s56);
}
.faq__item {
  display: flex;
  flex-direction: column;
  padding-top: var(--s24);
  padding-right: var(--s32);
  padding-bottom: var(--s24);
  padding-left: var(--s24);
  border-radius: calc(var(--vw) * 12);
  background: var(--c-white);
}
.faq__trigger {
  display: flex;
  align-items: center;
  gap: var(--s24);
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
}
.faq__q {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 56);
  height: calc(var(--vw) * 56);
  border-radius: calc(var(--vw) * 8);
  background: var(--c-back);
  color: var(--c-key);
  font-family: var(--ff-sans);
  font-size: calc(var(--vw) * 26);
  font-weight: 600;
  line-height: 1;
}
.faq__question {
  flex: 1;
  font-size: calc(var(--vw) * 22);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
/* 開いているとき∨、閉じているとき› */
.faq__icon {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: calc(var(--vw) * 20);
  height: calc(var(--vw) * 20);
  transition: transform 0.2s;
}
.faq__icon::before {
  content: "";
  width: calc(var(--vw) * 10);
  height: calc(var(--vw) * 10);
  margin-top: calc(var(--vw) * -5);
  border-right: 2px solid var(--c-back);
  border-bottom: 2px solid var(--c-back);
  transform: rotate(45deg);
}
.faq__trigger[aria-expanded="false"] .faq__icon {
  transform: rotate(-90deg);
}
.faq__panel {
  padding-left: calc(var(--vw) * 80);
}
.faq__answer {
  margin-top: var(--s16);
  font-size: calc(var(--vw) * 20);
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.sec8 .cta-block {
  margin-top: var(--s64);
}

/* --- 最終CTA ------------------------------------------------------------- */
.final {
  position: relative;
  overflow: hidden;
  background: var(--c-back);
  color: var(--c-lightbeige);
}
/* 右側の斜め切り抜き写真 */
.final__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--vw) * 420);
  max-width: none;
}
.final__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: var(--s96);
  padding-right: var(--gutter);
  padding-bottom: var(--s96);
  padding-left: var(--gutter);
}
.final__en {
  color: var(--c-key);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 18);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.2em;
}
.final__title {
  margin-top: var(--s32);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 80);
  font-weight: 700;
  line-height: 1.4;
}
.final__em {
  color: var(--c-key);
}
.final__text {
  display: flex;
  flex-direction: column;
  gap: var(--s24);
  margin-top: var(--s40);
  font-size: calc(var(--vw) * 24);
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.final .cta-btn {
  margin-top: var(--s56);
}

/* --- フッター（main の外。画面幅いっぱい）------------------------------------ */
.footer {
  display: flex;
  justify-content: center;
  padding-top: var(--s32);
  padding-bottom: var(--s24);
  background: var(--c-back);
  color: var(--c-lightbeige);
}
.footer__copy {
  font-size: calc(var(--vw) * 16);
  line-height: 1.4;
}

/* =========================================================================
   相談フォーム（contact.html）
   ========================================================================= */

/* --- ヘッダー（main と同じ幅・同じ線で続ける）---------------------------------- */
.page-header {
  display: flex;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
  padding-top: var(--s40);
  padding-right: var(--gutter);
  padding-left: var(--gutter);
  border-right: 1px solid var(--c-line);
  border-left: 1px solid var(--c-line);
}
.page-header__logo {
  display: flex;
}
.page-header__logo-img {
  width: calc(var(--vw) * 160);
}

/* --- 導入（英字ラベル＋見出し＋説明）------------------------------------------ */
.page-intro {
  display: flex;
  flex-direction: column;
  padding-top: var(--s80);
  padding-right: var(--gutter);
  padding-bottom: var(--s64);
  padding-left: var(--gutter);
}
/* 英字ラベルの右に横線を伸ばす */
.page-intro__en {
  display: flex;
  align-items: center;
  gap: var(--s24);
  color: var(--c-lightgreen);
  font-family: var(--ff-num);
  font-size: calc(var(--vw) * 18);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.page-intro__en::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--c-lightgreen);
}
.page-intro__title {
  margin-top: var(--s24);
  font-family: var(--ff-serif);
  font-size: calc(var(--vw) * 64);
  font-weight: 700;
  line-height: 1.4;
}
.page-intro__lead {
  display: flex;
  flex-direction: column;
  gap: var(--s16);
  margin-top: var(--s32);
  font-size: calc(var(--vw) * 24);
  line-height: 1.8;
}

/* --- フォーム ------------------------------------------------------------- */
.contact-form {
  display: flex;
  flex-direction: column;
  padding-right: var(--gutter);
  padding-bottom: var(--s120);
  padding-left: var(--gutter);
}
.contact-form__card {
  padding: var(--s48) var(--s48);
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
}
.lead-form__rows {
  display: flex;
  flex-direction: column;
  gap: var(--s40);
}

/* 項目：上にラベル、下に入力欄（LP2 のフォームに合わせる） */
.form-row {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: var(--s16);
}
.form-row__label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s8) var(--s16);
  flex-shrink: 0;
  padding-top: var(--s16);
}
.form-row__control {
  display: flex;
  width: 100%;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.form-label {
  font-size: calc(var(--vw) * 22);
  font-weight: 700;
  line-height: 1.5;
}
.req-badge {
  padding: calc(var(--vw) * 4) var(--s8);
  border-radius: calc(var(--vw) * 4);
  background: var(--c-darkgreen);
  color: var(--c-white);
  font-size: calc(var(--vw) * 14);
  font-weight: 700;
  line-height: 1.2;
}
.req-badge--optional {
  background: var(--c-lightgreen);
}
/* 入力OKのチェック（is-valid の時だけ表示） */
.form-ok {
  display: none;
  width: calc(var(--vw) * 22);
  height: calc(var(--vw) * 22);
  border-radius: 50%;
  background: var(--c-darkgreen);
  position: relative;
}
.form-ok::before {
  content: "";
  position: absolute;
  top: 26%;
  left: 36%;
  width: 22%;
  height: 38%;
  border-right: 2px solid var(--c-white);
  border-bottom: 2px solid var(--c-white);
  transform: rotate(45deg);
}
.form-row.is-valid .form-ok { display: block; }

/* 条件で表示される子項目：左に線を引いて親との関係を示す */
.form-row--sub {
  padding-left: var(--s24);
  border-left: calc(var(--vw) * 3) solid var(--c-middlebeige);
}

/* 入力欄・セレクト */
.form-input {
  display: block;
  width: 100%;
  padding: var(--s16) var(--s24);
  border: 1px solid var(--c-line);
  border-radius: calc(var(--vw) * 8);
  background: var(--c-white);
  color: var(--c-back);
  font-family: inherit;
  font-size: calc(var(--vw) * 20);
  line-height: 1.5;
}
.form-input::placeholder { color: var(--c-lightgreen); }
.form-input:focus {
  outline: 2px solid var(--c-darkgreen);
  outline-offset: 1px;
}
select.form-input {
  padding-right: var(--s64);
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  /* 下向きの矢印（darkgreen） */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2346524d' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--s24) center;
  background-size: calc(var(--vw) * 16) auto;
}
.form-input--textarea {
  min-height: calc(var(--vw) * 180);
  resize: vertical;
}
/* 入力欄＋単位（万円） */
.form-unit {
  display: flex;
  align-items: center;
  gap: var(--s16);
}
.form-unit__label {
  flex-shrink: 0;
  font-size: calc(var(--vw) * 20);
}

/* ラジオ */
.form-radios {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s16) var(--s40);
}
.form-radio {
  display: flex;
  align-items: center;
  gap: var(--s16);
  font-size: calc(var(--vw) * 20);
  line-height: 1.5;
  cursor: pointer;
}
.form-radio input,
.form-checkbox input {
  flex-shrink: 0;
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
  width: calc(var(--vw) * 28);
  height: calc(var(--vw) * 28);
  border: 2px solid var(--c-lightgreen);
  background: var(--c-white);
  cursor: pointer;
}
.form-radio input { border-radius: 50%; }
.form-radio input:checked {
  border-color: var(--c-darkgreen);
  background: radial-gradient(circle, var(--c-darkgreen) 40%, var(--c-white) 44%);
}

/* 同意チェック */
.form-checkbox {
  display: flex;
  align-items: center;
  gap: var(--s16);
  font-size: calc(var(--vw) * 20);
  line-height: 1.6;
  cursor: pointer;
}
.form-checkbox input { border-radius: calc(var(--vw) * 4); }
.form-checkbox input:checked {
  border-color: var(--c-darkgreen);
  background: var(--c-darkgreen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat center / 60% auto;
}
.form-checkbox a {
  color: var(--c-darkgreen);
  text-decoration: underline;
}
.form-radio input:focus-visible,
.form-checkbox input:focus-visible {
  outline: 2px solid var(--c-darkgreen);
  outline-offset: 2px;
}

/* 補足・注意書き */
.form-note {
  margin-top: var(--s8);
  color: var(--c-darkgreen);
  font-size: calc(var(--vw) * 16);
  line-height: 1.7;
}
/* 送信前のお知らせ（同意欄の上） */
.form-notice {
  align-self: stretch;
  padding: var(--s16) var(--s24);
  border-radius: calc(var(--vw) * 8);
  background: var(--c-lightbeige);
  font-size: calc(var(--vw) * 22);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

/* エラー */
.form-error {
  margin-top: var(--s8);
  color: var(--c-error);
  font-size: calc(var(--vw) * 16);
  font-weight: 700;
  line-height: 1.5;
}
.form-row.is-invalid .form-input,
.form-row.is-invalid .form-radio input,
.form-row.is-invalid .form-checkbox input {
  border-color: var(--c-error);
}

/* 送信エリア */
.lead-form__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s32);
  margin-top: var(--s56);
  padding-top: var(--s48);
  border-top: 1px solid var(--c-middlebeige);
}
/* 同意欄は中央に（ラベル列は持たない） */
.form-row--consent {
  justify-content: center;
}
.form-row--consent .form-row__control {
  flex: 0 1 auto;
}
/* 送信ボタン：LP2 の送信ボタンと同じ大きさにする */
.lead-form__submit {
  gap: var(--s24);
  padding-top: var(--s24);
  padding-right: var(--s80);
  padding-bottom: var(--s24);
  padding-left: var(--s80);
  border: 0;
  font-size: calc(var(--vw) * 25);
  font-weight: 700;
  cursor: pointer;
}
.lead-form__submit .cta-btn__arrow {
  font-size: inherit;
}
.lead-form__submit:disabled {
  opacity: 0.6;
  cursor: default;
}
/* スパム対策のハニーポット：画面外に置いて人には見せない（display:none だと入力しないボットがいるため） */
.lead-form__hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lead-form__status {
  color: var(--c-error);
  font-size: calc(var(--vw) * 18);
  font-weight: 700;
  line-height: 1.6;
}
.cta-note {
  color: var(--c-darkgreen);
  font-size: calc(var(--vw) * 16);
  line-height: 1.7;
}

/* 送信前の確認ダイアログ */
.confirm-dialog {
  width: calc(var(--vw) * 560);
  padding: 0;
  border: 0;
  border-radius: calc(var(--vw) * 16);
  background: var(--c-white);
  color: var(--c-back);
}
.confirm-dialog::backdrop { background: rgba(31, 39, 37, 0.6); }
.confirm-dialog__inner {
  display: flex;
  flex-direction: column;
  gap: var(--s40);
  padding: var(--s56) var(--s48);
}
.confirm-dialog__title {
  font-size: calc(var(--vw) * 21);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
.confirm-dialog__actions {
  display: flex;
  gap: var(--s16);
}
.confirm-dialog__btn {
  flex: 1;
  padding: var(--s16) 0;
  border-radius: calc(var(--vw) * 100);
  font-size: calc(var(--vw) * 22);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.confirm-dialog__btn--cancel {
  border: 2px solid var(--c-lightgreen);
  background: var(--c-white);
}
.confirm-dialog__btn--ok {
  border: 2px solid var(--c-key);
  background: var(--c-key);
}
