/* ================================================================
   不登校のご家庭へのサポートプログラム LP 専用CSS（/program/futoko）
   臨床心理士・前場麻里のプログラム。

   ■ 読み込み方
     program.css → program-futoko.css の順に読み込む。
     program.css は1バイトも変更しない（既存3プランを壊さないため）。
     共有シェル（リセット／ボタン／フォーム／空き枠カレンダー／
     追従CTA／スクロール表示）だけを program.css から再利用し、
     このプラン固有の意匠は ft- プレフィックスの独自クラスで完結させる。

   ■ デザイン思想（Figma Design A）
     第1弾「包み込む・休ませる」、第2弾「相手から自分へ意識を戻す」、
     第3弾「自分と親を分けて考える」に対し、本LPは
     「二択で答えを出すことから、この子を理解することへ」。
     混乱 → 自責 → 個別性 → 理解 → 関わりを考える、という視線の移動を
     余白・細い罫・写真で表す。Deep Sage は転換の1セクションにだけ面で使い、
     Soft Amber は罫と番号だけに使う（面には広げない）。

   ■ カラーはFigma確定デザイン（PC 1440 / SP 390）の指定値
   ---------------------------------------------------------------- */

/* ================================================================
   1. テーマトークン
   body.program-lp--futoko に載せることで program.css の :root を上書きし、
   共有シェル（ボタン・フォーム・カレンダー）も自動的にこのパレットになる
   ---------------------------------------------------------------- */
.program-lp--futoko {
    --ft-ivory: #f5f1e8;
    --ft-paper: #fdfbf7;
    --ft-sand: #f0eee9;
    --ft-sage: #53675a;
    --ft-sage-deep: #44564a;
    --ft-moss: #899586;
    --ft-charcoal: #303633;
    --ft-body: #4a5049;
    --ft-amber: #c69c68;
    --ft-amber-deep: #b3854f;
    --ft-line: #ddd8cc;
    --ft-line-faint: #e9e4d9;
    --ft-muted: #8d897f;

    --ft-font: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;
    --ft-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", "Times New Roman", serif;
    --ft-font-en: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;

    /* --- program.css の共有シェルへ流し込むトークン --- */
    --lp-bg: var(--ft-ivory);
    --lp-bg-deep: var(--ft-sand);
    --lp-bg-warm: var(--ft-paper);
    --lp-paper: var(--ft-paper);
    --lp-ink: var(--ft-charcoal);
    --lp-ink-soft: var(--ft-muted);
    --lp-line: var(--ft-line);
    --lp-pink: var(--ft-sage);
    --lp-pink-hover: var(--ft-sage-deep);
    --lp-pink-soft: var(--ft-sand);
    --lp-pink-ink: #ffffff;
    --lp-sage: var(--ft-moss);
    --lp-sage-deep: var(--ft-sage);
    --lp-sage-soft: var(--ft-line-faint);
    --lp-font: var(--ft-font);
}

/* ================================================================
   2. 基本タイポグラフィ
   ---------------------------------------------------------------- */
body.program-lp--futoko {
    background: var(--ft-paper);
    color: var(--ft-body);
    font-family: var(--ft-font);
    font-size: 15px;
    line-height: 1.95;
    letter-spacing: .035em;
}

/* アンカー移動・送信後の #reserve 復帰で見出しが画面上端に貼り付かないようにする */
.program-lp--futoko [id] { scroll-margin-top: 72px; }

.ft-wrap { max-width: 1288px; margin: 0 auto; padding: 0 20px; }
/* PCでのみ効く幅のリズム。写真主体は広く、文章主体はやや狭く（SPは共通） */
.ft-wrap--wide, .ft-wrap--text { max-width: 1288px; }

.ft-section { padding: 56px 0; }
.ft-section--tight { padding: 40px 0; }
.ft-section--calm { padding: 64px 0; }

/* 面の切り替え。Figmaは クリーム / 砂色 / Deep Sage の3面で構成される */
.ft-panel { background: var(--ft-sand); }
.ft-panel--paper { background: var(--ft-paper); }
.ft-panel--sage { background: var(--ft-sage); color: #ffffff; }

.ft-skip {
    position: absolute; left: -9999px; top: 0;
    background: var(--ft-sage); color: #fff; padding: 10px 16px; z-index: 200;
}
.ft-skip:focus { left: 8px; top: 8px; }

/* ---- キッカー（罫＋英字ラベル） ---- */
.ft-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--ft-font-en);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    line-height: 1.6;
    color: var(--ft-muted);
    text-transform: uppercase;
}
.ft-kicker::before {
    content: "";
    width: 34px;
    height: 1px;
    background: var(--ft-amber);
    flex: none;
}
.ft-kicker--plain::before { display: none; }
.ft-panel--sage .ft-kicker { color: rgba(255, 255, 255, .78); }

/* ---- 見出し ---- */
.ft-h2 {
    font-family: var(--ft-serif);
    font-size: 25px;
    font-weight: 500;
    line-height: 1.62;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}
.ft-panel--sage .ft-h2 { color: #ffffff; }
.ft-head { margin-bottom: 28px; }
.ft-head .ft-kicker { margin-bottom: 14px; }
.ft-head__note {
    margin-top: 16px;
    font-size: 12px;
    line-height: 1.85;
    color: var(--ft-muted);
}
.ft-head__note::before {
    content: "";
    display: block;
    width: 40px;
    height: 1px;
    background: var(--ft-amber);
    margin-bottom: 10px;
}

.ft-lead { font-size: 15.5px; line-height: 2.1; }
.ft-lead + .ft-lead { margin-top: 18px; }

/* ---- 写真（差し替え前提。比率はFigmaの実測値） ---- */
.ft-figure { margin: 0; }
.ft-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ft-media { overflow: hidden; background: var(--ft-line-faint); }
.ft-media > picture { display: contents; }
.ft-media--fv, .ft-media--fv .ft-photo { aspect-ratio: 1142 / 1377; }
.ft-media--morning, .ft-media--morning .ft-photo { aspect-ratio: 3 / 2; }
.ft-media--selfblame, .ft-media--selfblame .ft-photo { aspect-ratio: 3 / 2; }
.ft-media--landscape, .ft-media--landscape .ft-photo { aspect-ratio: 4 / 3; }
/* 最終CTAはFVと同じ比率で受ける。同じ額縁に違う景色を入れて始まりと終わりを対にする */
.ft-media--portrait, .ft-media--portrait .ft-photo { aspect-ratio: 571 / 689; }
.ft-media--counselor, .ft-media--counselor .ft-photo { aspect-ratio: 4 / 5; }
/* 4:3 の本人写真を縦位置の枠に収める。顔が中央に来るよう横方向だけ寄せる */
.ft-media--counselor .ft-photo { object-position: 54% 42%; }
.ft-caption {
    margin-top: 12px;
    font-size: 11.5px;
    line-height: 1.8;
    color: var(--ft-muted);
}

/* ---- ボタン（Figmaは角丸をほぼ持たない矩形＋矢印） ---- */
.program-lp--futoko a.lp-btn { color: #ffffff; }
.program-lp--futoko .lp-btn {
    border-radius: 2px;
    box-shadow: none;
    padding: 17px 26px;
    font-size: 15px;
    letter-spacing: .06em;
}
.program-lp--futoko .lp-btn:hover { transform: none; }
.ft-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    text-align: left;
}
.ft-btn::after {
    content: "→";
    font-family: var(--ft-font-en);
    font-weight: 400;
    opacity: .9;
}
.ft-btn--amber { background: var(--ft-amber); color: #ffffff; }
.ft-btn--amber:hover { background: var(--ft-amber-deep); }
.ft-cta__note {
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.9;
    color: var(--ft-muted);
}

/* ---- 引用パネル（Deep Sage の面に白抜き＋Amberの縦罫） ---- */
.ft-quote {
    background: var(--ft-sage);
    color: #ffffff;
    padding: 30px 24px 30px 30px;
    position: relative;
}
.ft-quote::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 30px;
    bottom: 30px;
    width: 2px;
    background: var(--ft-amber);
}
.ft-quote p {
    font-family: var(--ft-serif);
    font-size: 17px;
    line-height: 1.95;
    letter-spacing: .04em;
}
.ft-quote--charcoal { background: var(--ft-charcoal); }
.ft-quote__label {
    font-size: 12px;
    letter-spacing: .1em;
    color: var(--ft-amber);
    margin-bottom: 10px;
}
/* ---- 落ち着いた注記（Amberの縦罫＋本文） ---- */
.ft-note {
    border-left: 2px solid var(--ft-amber);
    padding: 4px 0 4px 18px;
    font-size: 15.5px;
    line-height: 2.1;
}

/* ================================================================
   3. ヘッダー（既存3プランと同じ構造。SPはナビ・CTA非表示＝追従CTAが担う）
   ---------------------------------------------------------------- */
.ft-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(253, 251, 247, .94);
    backdrop-filter: saturate(1.2) blur(6px);
    border-bottom: 1px solid var(--ft-line-faint);
}
.ft-header__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.ft-brand { display: flex; flex-direction: column; gap: 2px; margin-right: auto; }
.ft-brand img { display: block; width: 150px; height: auto; }
.ft-brand__tagline {
    font-size: 10.5px;
    letter-spacing: .04em;
    color: var(--ft-muted);
    line-height: 1.5;
}
.ft-nav { display: none; }
/* program.css の `.program-lp a { color: inherit }`(0,1,1) に勝たせるためスコープを1段上げる */
.program-lp--futoko .ft-header__cta {
    display: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--ft-sage);
    border: 1px solid var(--ft-sage);
    padding: 9px 18px;
    white-space: nowrap;
}
.program-lp--futoko .ft-header__cta:hover { background: var(--ft-sage); color: #ffffff; }

/* ================================================================
   4. SECTION 1 ファーストビュー
   SPは「見出し → 写真 → プログラム名 → 担当 → CTA」の順（Figma SP準拠）
   ---------------------------------------------------------------- */
.ft-fv { background: var(--ft-paper); }
/* SPは 見出し → 写真 → 本文 の順に積む。text を display:contents にして順序だけ入れ替える */
.ft-fv__inner { display: grid; }
.ft-fv__text { display: contents; }
.ft-fv__head { order: 1; }
.ft-fv__media { order: 2; }
.ft-fv__body { order: 3; }
.ft-fv__head { padding: 22px 20px 26px; }
.ft-fv__eyebrow {
    margin-top: 10px;
    font-size: 12.5px;
    letter-spacing: .04em;
    color: var(--ft-body);
}
.ft-fv h1 {
    margin-top: 18px;
    font-family: var(--ft-serif);
    font-size: 27px;
    font-weight: 500;
    line-height: 1.62;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-fv__media { background: var(--ft-line-faint); }
.ft-fv__body { padding: 26px 20px 40px; }
.ft-fv__program-label {
    font-family: var(--ft-font-en);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--ft-muted);
}
.ft-fv__program {
    margin-top: 8px;
    font-family: var(--ft-serif);
    font-size: 19px;
    line-height: 1.7;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-fv__desc { margin-top: 14px; font-size: 15px; line-height: 2.05; }
.ft-fv__desc b { display: block; font-weight: 600; color: var(--ft-charcoal); margin-bottom: 8px; }
.ft-fv__provider {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--ft-line);
}
.ft-fv__trust { margin-top: 6px; font-size: 12px; color: var(--ft-muted); }
.ft-fv__cta { margin-top: 22px; }
.ft-fv__cta .ft-cta__note { text-align: center; }

/* ================================================================
   5. SECTION 2 葛藤（何をしても、間違っている気がする）
   ---------------------------------------------------------------- */
.ft-conflict { display: grid; gap: 30px; }
.ft-conflict__list { display: grid; }
.ft-conflict__list li {
    padding: 20px 0;
    border-top: 1px solid var(--ft-line-faint);
    font-size: 15.5px;
    line-height: 2.1;
}
.ft-conflict__list li:last-child { border-bottom: 1px solid var(--ft-line-faint); }
.ft-conflict__teacher { font-size: 15.5px; line-height: 2.1; }
.ft-conflict__voice {
    display: block;
    margin: 6px 0;
    font-family: var(--ft-serif);
    font-size: 19px;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}

/* ================================================================
   6. SECTION 3 自責（私の育て方が、間違っていたのでしょうか。）
   ---------------------------------------------------------------- */
/* このLPで最も重要な自責の節。読む速度が落ちるよう、見出し・引用・余白を一段強める */
.ft-blame__lead .ft-h2 { font-size: 27px; }
.ft-blame__voices { margin-top: 22px; display: grid; gap: 2px; }
.ft-blame__voices li {
    font-family: var(--ft-serif);
    font-size: 16px;
    line-height: 2.1;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-blame { display: grid; gap: 30px; }
.ft-blame__quote { padding: 34px 24px 34px 32px; }
.ft-blame__quote p { font-size: 19px; line-height: 2.05; }
.ft-blame__close { margin-top: 24px; font-size: 15.5px; line-height: 2.1; }

/* ================================================================
   7. SECTION 4 個別性（不登校は、一人ひとり違います。）
   ---------------------------------------------------------------- */
.ft-diff__note { margin-top: 14px; font-size: 13px; color: rgba(255, 255, 255, .72); }
.ft-diff__list { display: grid; gap: 10px; margin-top: 26px; }
.ft-diff__list li {
    background: var(--ft-ivory);
    color: var(--ft-charcoal);
    padding: 13px 16px 13px 18px;
    font-size: 14px;
    letter-spacing: .04em;
    border-left: 2px solid var(--ft-amber);
}
.ft-diff__body { margin-top: 26px; color: rgba(255, 255, 255, .88); font-size: 15.5px; line-height: 2.1; }
.ft-diff__aside { display: grid; gap: 26px; }
.ft-diff__body p + p { margin-top: 16px; }

/* ================================================================
   8. SECTION 5 アプローチ（白 → Deep Sage → Soft Amber の3層）
   ---------------------------------------------------------------- */
.ft-approach { display: grid; gap: 14px; }
.ft-approach__item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 0 12px;
    align-items: start;
}
.ft-approach__num {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--ft-font-en);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    background: var(--ft-sage);
    color: #ffffff;
    margin-top: 22px;
}
.ft-approach__card { background: var(--ft-paper); padding: 24px 22px; }
.ft-approach__step {
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--ft-muted);
    margin-bottom: 4px;
}
.ft-approach__label {
    font-family: var(--ft-serif);
    font-size: 19px;
    line-height: 1.65;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
}
.ft-approach__body {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--ft-line-faint);
    font-size: 15px;
    line-height: 2.05;
}
/* 2枚目=Deep Sage・3枚目=Soft Amber。面で心理の移行（理解→実践）を見せる */
.ft-approach__item--sage .ft-approach__card { background: var(--ft-sage); }
.ft-approach__item--sage .ft-approach__label,
.ft-approach__item--sage .ft-approach__body { color: #ffffff; }
.ft-approach__item--sage .ft-approach__step { color: rgba(255, 255, 255, .72); }
.ft-approach__item--sage .ft-approach__body { border-top-color: rgba(255, 255, 255, .28); }
.ft-approach__item--amber .ft-approach__card { background: var(--ft-amber); }
.ft-approach__item--amber .ft-approach__num { background: var(--ft-amber); }
.ft-approach__item--amber .ft-approach__label { color: #3b3126; }
.ft-approach__item--amber .ft-approach__step { color: rgba(48, 54, 51, .68); }
.ft-approach__item--amber .ft-approach__body { color: #3b3126; border-top-color: rgba(48, 54, 51, .22); }
.ft-approach__close {
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--ft-line);
    font-family: var(--ft-serif);
    font-size: 17px;
    line-height: 2;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}

/* ================================================================
   9. SECTION 6 カウンセラー（前場麻里）
   ---------------------------------------------------------------- */
.ft-counselor { display: grid; gap: 26px; }
.ft-counselor__name {
    font-family: var(--ft-serif);
    font-size: 23px;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
}
/* 資格と経験は信頼の核。muted のままだと写真の近くで埋もれるため本文色で置く */
.ft-counselor__trust {
    margin-top: 10px;
    font-size: 13.5px;
    letter-spacing: .02em;
    color: var(--ft-body);
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ft-line-faint);
}
.ft-counselor__body { margin-top: 18px; font-size: 15.5px; line-height: 2.1; }
.ft-counselor__body p + p { margin-top: 16px; }
.ft-counselor__quote { margin-top: 24px; }
.ft-counselor__after { margin-top: 22px; font-size: 15.5px; line-height: 2.1; }
.ft-counselor__after p + p { margin-top: 16px; }
.ft-counselor__link { margin-top: 18px; }

/* ================================================================
   10. SECTION 7 6回の流れ（フェーズ付きタイムライン）
   SP: PHASE見出し付きカード。PC: フェーズ帯＋横並びの回カード
   ---------------------------------------------------------------- */
.ft-flow { display: grid; gap: 0; }
.ft-phase { position: relative; padding-left: 26px; padding-bottom: 14px; }
/* 縦のタイムライン。最後のフェーズだけ線を止める */
.ft-phase::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 8px;
    bottom: 0;
    width: 1px;
    background: var(--ft-line);
}
.ft-phase:last-child::before { bottom: auto; height: 34px; }
.ft-phase__dot {
    position: absolute;
    left: 0;
    top: 8px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--ft-paper);
    border: 1px solid var(--ft-line);
    display: grid;
    place-items: center;
}
.ft-phase__dot::after {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ft-sage);
}
.ft-phase--accent .ft-phase__dot::after { background: var(--ft-amber); }
.ft-phase__card { background: var(--ft-paper); padding: 20px 18px 8px; }
/* SPでは各回の細目より先にフェーズが読めるよう、見出しを大きくし罫で切る */
.ft-phase__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ft-line-faint);
}
.ft-phase__label {
    font-family: var(--ft-font-en);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--ft-muted);
}
.ft-phase__range { font-size: 12.5px; color: var(--ft-muted); }
.ft-phase__range--pc { display: none; }
.ft-phase__title {
    width: 100%;
    margin-top: 4px;
    font-family: var(--ft-serif);
    font-size: 23px;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
}
.ft-session { padding: 18px 0; border-top: 1px solid var(--ft-line-faint); }
.ft-phase__head + .ft-session { border-top: none; padding-top: 14px; }
.ft-session__row { display: grid; grid-template-columns: 46px 1fr; gap: 0 8px; }
.ft-session__num {
    font-family: var(--ft-font-en);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--ft-amber-deep);
    padding-top: 4px;
}
.ft-session__num--start {
    font-size: 9px;
    letter-spacing: .04em;
    color: var(--ft-sage);
}
.ft-session__title {
    font-family: var(--ft-serif);
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}
.ft-session__tag {
    display: block;
    font-family: var(--ft-font);
    font-size: 11.5px;
    letter-spacing: .08em;
    color: var(--ft-muted);
    margin-bottom: 2px;
}
.ft-session__body {
    grid-column: 2;
    margin-top: 8px;
    font-size: 14.5px;
    line-height: 2;
    color: var(--ft-body);
}
/* 偶数フェーズを Deep Sage で塗り、理解→実践のリズムを付ける（Figma SP準拠） */
.ft-phase--fill .ft-phase__card { background: var(--ft-sage); }
.ft-phase--fill .ft-phase__title,
.ft-phase--fill .ft-session__title { color: #ffffff; }
.ft-phase--fill .ft-phase__label,
.ft-phase--fill .ft-phase__range,
.ft-phase--fill .ft-session__tag { color: rgba(255, 255, 255, .74); }
.ft-phase--fill .ft-session__body { color: rgba(255, 255, 255, .86); }
.ft-phase--fill .ft-session { border-top-color: rgba(255, 255, 255, .22); }
.ft-phase--fill .ft-phase__head { border-bottom-color: rgba(255, 255, 255, .24); }
.ft-phase--fill .ft-session__num { color: var(--ft-amber); }

/* ================================================================
   11. SECTION 8 6回である理由（循環）
   SP: 縦の番号リスト＋戻り注記。PC: 五角形に配置し破線アークと矢印でつなぐ
   ---------------------------------------------------------------- */
.ft-cycle { position: relative; }
.ft-cycle__arcs { display: none; }
.ft-cycle__list { display: grid; gap: 0; position: relative; }
.ft-cycle__list::before {
    content: "";
    position: absolute;
    left: 13px;
    top: 14px;
    bottom: 14px;
    width: 1px;
    background: var(--ft-line);
}
.ft-cycle__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 0;
    position: relative;
}
.ft-cycle__num {
    flex: none;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--ft-font-en);
    font-size: 10.5px;
    font-weight: 700;
    background: var(--ft-sage);
    color: #ffffff;
}
.ft-cycle__item:last-child .ft-cycle__num { background: var(--ft-amber); }
.ft-cycle__text { font-size: 15px; letter-spacing: .04em; color: var(--ft-charcoal); }
.ft-cycle__loop {
    margin-top: 6px;
    padding-left: 41px;
    font-size: 12.5px;
    color: var(--ft-muted);
}
.ft-cycle__loop::before {
    content: "↖";
    margin-right: 10px;
    color: var(--ft-amber);
}
.ft-why__lead { font-size: 15.5px; line-height: 2.1; margin-bottom: 26px; }
.ft-why__quote { margin-top: 30px; }

/* ================================================================
   12. SECTION 9 / 10 （2カラムの説明セクション）
   ---------------------------------------------------------------- */
.ft-split { display: grid; gap: 26px; }
.ft-split__body p + p { margin-top: 16px; }
.ft-split__body { font-size: 15.5px; line-height: 2.1; }
.ft-others { display: grid; }
.ft-others li {
    padding: 13px 0 13px 18px;
    border-bottom: 1px solid var(--ft-line-faint);
    font-size: 15.5px;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
    position: relative;
}
.ft-others li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ft-amber);
    transform: translateY(-50%);
}
.ft-roles { margin-top: 24px; display: grid; gap: 12px; }
.ft-roles li {
    border-left: 2px solid var(--ft-amber);
    padding: 6px 0 6px 16px;
    font-family: var(--ft-serif);
    font-size: 16px;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}

/* ================================================================
   13. SECTION 11 目指していくこと
   ---------------------------------------------------------------- */
.ft-goals { display: grid; gap: 26px; }
.ft-goals__list { display: grid; }
.ft-goals__list li { padding: 22px 0; border-bottom: 1px solid var(--ft-line-faint); }
.ft-goals__list li:first-child { padding-top: 0; }
.ft-goals__num {
    font-family: var(--ft-font-en);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--ft-amber-deep);
}
.ft-goals__title {
    margin-top: 4px;
    font-family: var(--ft-serif);
    font-size: 19px;
    line-height: 1.7;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}
.ft-goals__body { margin-top: 12px; font-size: 14.5px; line-height: 2; }

/* ================================================================
   14. SECTION 12 料金（主役はインテーク面接5,000円）
   ---------------------------------------------------------------- */
.ft-price { display: grid; gap: 18px; }
.ft-price__card { padding: 26px 22px; }
.ft-price__card--main { background: var(--ft-sage); color: #ffffff; }
.ft-price__card--sub { background: var(--ft-paper); border: 1px solid var(--ft-line); }
.ft-price__step {
    font-family: var(--ft-font-en);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
}
.ft-price__card--main .ft-price__step { color: rgba(255, 255, 255, .74); }
.ft-price__card--sub .ft-price__step { color: var(--ft-muted); }
.ft-price__name {
    margin-top: 6px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .26);
    font-family: var(--ft-serif);
    font-size: 21px;
    letter-spacing: .05em;
}
.ft-price__card--sub .ft-price__name { color: var(--ft-charcoal); border-bottom-color: var(--ft-line-faint); }
.ft-price__unit { margin-top: 18px; font-size: 12.5px; letter-spacing: .06em; }
.ft-price__card--main .ft-price__unit { color: rgba(255, 255, 255, .74); }
/* Deep Sage の面では muted のままだと税込併記が沈むため明るく置く */
.ft-price__card--main .ft-price__excl,
.ft-price__card--main .ft-price__tax { color: rgba(255, 255, 255, .72); }
.ft-price__card--sub .ft-price__unit { color: var(--ft-muted); }
.ft-price__amount {
    margin-top: 2px;
    font-family: var(--ft-serif);
    font-size: 26px;
    letter-spacing: .03em;
}
.ft-price__card--sub .ft-price__amount { color: var(--ft-charcoal); font-size: 22px; }
/* 最初の意思決定はインテーク面接。本体48,000円より先に金額が入るよう主カードだけ大きく */
.ft-price__card--main .ft-price__amount { font-size: 31px; }
/* 総額表示義務（消費税法63条）の税込併記。金額と同サイズだと数字が長く見えるため、
   「（税別）」は金額より小さく、税込は小さく2行目へ落とす */
.ft-price__excl,
.ft-price__tax {
    font-size: 14px; font-weight: 400; letter-spacing: .02em;
    color: var(--ft-muted);
}
.ft-price__tax { display: block; margin-top: 2px; }
/* 最終CTAの価格は22pxと小さめなので、同ブロックのラベル（12.5px）に揃える */
.ft-final__price .ft-price__excl,
.ft-final__price .ft-price__tax { font-size: 12.5px; }
.ft-price__rule { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--ft-line-faint); }
.ft-price__desc { margin-top: 16px; font-size: 14px; line-height: 2; }
.ft-price__card--main .ft-price__desc { color: rgba(255, 255, 255, .84); }
.ft-price__important {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .26);
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 8px;
    font-size: 13.5px;
    line-height: 1.95;
    color: rgba(255, 255, 255, .84);
}
.ft-price__important span:first-child { color: var(--ft-amber); }
.ft-price__cta { margin-top: 20px; }
.ft-price__pace { margin-top: 16px; font-size: 12.5px; color: var(--ft-muted); }

/* ================================================================
   15. ご利用にあたって
   ---------------------------------------------------------------- */
.ft-caution {
    background: var(--ft-paper);
    border: 1px solid var(--ft-line);
    padding: 26px 22px;
}
.ft-caution h2 {
    font-family: var(--ft-serif);
    font-size: 17px;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
    margin-bottom: 14px;
}
.ft-caution ul { display: grid; gap: 8px; }
.ft-caution li {
    font-size: 13.5px;
    line-height: 2;
    padding-left: 16px;
    position: relative;
}
.ft-caution li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 1px;
    background: var(--ft-amber);
}
.ft-caution__foot {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--ft-line-faint);
    font-size: 12px;
    line-height: 1.9;
    color: var(--ft-muted);
}

/* ================================================================
   16. SECTION 13 FAQ（SPは折りたたみ／PCは常時展開）
   ---------------------------------------------------------------- */
.ft-faq { display: grid; gap: 12px; }
.ft-faq details { background: var(--ft-paper); border: 1px solid var(--ft-line); }
.ft-faq summary {
    display: grid;
    grid-template-columns: 26px 1fr 20px;
    align-items: start;
    gap: 8px;
    padding: 20px 18px;
    cursor: pointer;
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.75;
    color: var(--ft-charcoal);
    list-style: none;
}
.ft-faq summary::-webkit-details-marker { display: none; }
.ft-faq summary::before {
    content: "Q";
    font-family: var(--ft-serif);
    font-size: 17px;
    font-weight: 400;
    color: var(--ft-muted);
    line-height: 1.4;
}
.ft-faq summary::after {
    content: "＋";
    font-size: 13px;
    font-weight: 400;
    color: var(--ft-muted);
    text-align: right;
}
.ft-faq details[open] summary::after { content: "−"; }
.ft-faq details > p {
    padding: 2px 18px 22px 52px;
    margin-top: -2px;
    font-size: 14.5px;
    font-weight: 400;
    line-height: 2.05;
    letter-spacing: .02em;
    color: var(--ft-body);
}

/* ================================================================
   17. SECTION 14 最終CTA
   ---------------------------------------------------------------- */
.ft-final { display: grid; }
.ft-final__text { display: contents; }
.ft-final__head { order: 1; }
.ft-final__media { order: 2; }
.ft-final__lead { order: 3; }
.ft-final__title {
    font-family: var(--ft-serif);
    font-size: 22px;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-final__lead {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 2px solid var(--ft-amber);
    border-top-width: 0;
    position: relative;
}
.ft-final__lead::before {
    content: "";
    display: block;
    width: 54px;
    height: 1px;
    background: var(--ft-amber);
    margin-bottom: 20px;
}
.ft-final__message {
    font-family: var(--ft-serif);
    font-size: 22px;
    line-height: 1.75;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-final__body { margin-top: 24px; font-size: 15.5px; line-height: 2.1; }
.ft-final__media { margin-top: 26px; }
.ft-final__provider {
    margin-top: 26px;
    padding-top: 20px;
    border-top: 1px solid var(--ft-line);
}
.ft-final__provider b {
    display: block;
    font-family: var(--ft-serif);
    font-size: 19px;
    font-weight: 500;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
}
.ft-final__provider span { font-size: 12.5px; color: var(--ft-muted); }
.ft-final__price { margin-top: 24px; }
.ft-final__price small { display: block; font-size: 12.5px; color: var(--ft-muted); }
.ft-final__price b {
    display: block;
    margin-top: 2px;
    font-family: var(--ft-serif);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: .03em;
    color: var(--ft-charcoal);
}
.ft-final__cta { margin-top: 34px; }
.ft-final__cta .ft-cta__note { margin-top: 16px; }
.ft-section--final { padding-bottom: 88px; }

/* ================================================================
   18. 予約（既存3プランと同じ仕組み：空き枠シート＋メール申込）
   ---------------------------------------------------------------- */
.ft-bridge { text-align: center; margin-bottom: 26px; }
.ft-bridge p {
    font-family: var(--ft-serif);
    font-size: 20px;
    line-height: 1.75;
    letter-spacing: .04em;
    color: var(--ft-charcoal);
}
.ft-bridge small { display: block; margin-top: 10px; font-size: 12.5px; color: var(--ft-muted); }
.program-lp--futoko .lp-reserve {
    background: var(--ft-paper);
    border: 1px solid var(--ft-line);
    border-radius: 0;
    padding: 26px 20px;
}
.program-lp--futoko .lp-reserve > h2 {
    font-family: var(--ft-serif);
    font-size: 19px;
    letter-spacing: .06em;
    color: var(--ft-charcoal);
    margin-bottom: 18px;
}
.program-lp--futoko .lp-reserve__steps li { color: var(--ft-charcoal); }
.program-lp--futoko .lp-reserve__steps span {
    background: var(--ft-sage);
    color: #ffffff;
    font-family: var(--ft-font-en);
    font-size: 12px;
}
.program-lp--futoko .lp-reserve__steps small { color: var(--ft-muted); }
.program-lp--futoko .lp-cal__slot { border-radius: 2px; }
.program-lp--futoko .lp-form input[type="text"],
.program-lp--futoko .lp-form input[type="email"],
.program-lp--futoko .lp-form textarea { border-radius: 2px; }
.program-lp--futoko .lp-form__grid2 { display: grid; gap: 0; }
.program-lp--futoko .lp-reserve__alt {
    margin-top: 18px;
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--ft-muted);
    text-align: center;
}
.program-lp--futoko .lp-reserve__alt a { color: var(--ft-sage); border-bottom: 1px solid currentColor; }

/* ================================================================
   19. フッター
   ---------------------------------------------------------------- */
.ft-footer {
    background: var(--ft-ivory);
    border-top: 1px solid var(--ft-line);
    padding: 44px 0 96px;
}
.ft-footer__grid { display: grid; gap: 28px; }
.ft-footer__name { font-size: 15px; font-weight: 700; letter-spacing: .06em; color: var(--ft-charcoal); }
.ft-footer__desc { margin-top: 10px; font-size: 12.5px; line-height: 1.9; color: var(--ft-muted); }
.ft-footer__col { display: grid; gap: 9px; align-content: start; }
.ft-footer__label {
    font-family: var(--ft-font-en);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--ft-sage);
}
.ft-footer__col a,
.ft-footer__col span { font-size: 12.5px; line-height: 1.7; color: var(--ft-muted); }
.ft-footer__col a:hover { color: var(--ft-charcoal); text-decoration: underline; }
.ft-footer__copy {
    margin-top: 34px;
    padding-top: 18px;
    border-top: 1px solid var(--ft-line);
    font-size: 11.5px;
    letter-spacing: .04em;
    color: var(--ft-muted);
    text-align: center;
}

/* SP追従CTA。共有シェルの背景色はクリーム固定のため、このLPの地色に合わせ直す */
.program-lp--futoko .lp-fixbar {
    background: rgba(253, 251, 247, .95);
    border-top-color: var(--ft-line);
}
.program-lp--futoko .lp-btn--fix { border-radius: 2px; }

/* ================================================================
   20. PC（768px以上）
   ---------------------------------------------------------------- */
@media (min-width: 768px) {
    body.program-lp--futoko { font-size: 15px; }

    /* ---- ヘッダー ---- */
    .ft-header__inner { padding: 12px 32px; }
    .ft-brand img { width: 168px; }
    .ft-brand__tagline { font-size: 11.5px; }
    .ft-nav { display: flex; gap: 28px; margin-right: 26px; }
    .ft-nav a { font-size: 13.5px; letter-spacing: .04em; color: var(--ft-body); }
    .ft-nav a:hover { color: var(--ft-charcoal); }
    .program-lp--futoko .ft-header__cta { display: inline-block; }

    .ft-wrap--wide { max-width: 1440px; }
    .ft-wrap--text { max-width: 1160px; }

    .ft-section { padding: 96px 0; }
    .ft-section--tight { padding: 64px 0; }
    .ft-section--calm { padding: 110px 0; }

    .ft-h2 { font-size: 38px; line-height: 1.55; }
    .ft-head { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; align-items: end; margin-bottom: 48px; }
    .ft-head__note { margin-top: 0; }

    /* ---- FV: 左に全面写真、右にテキスト（Figma PC 1440の分割比） ---- */
    .ft-fv__inner {
        display: grid;
        grid-template-columns: 57fr 43fr;
        align-items: stretch;
        min-height: 640px;
    }
    .ft-fv__media { grid-column: 1; grid-row: 1; order: 0; }
    .ft-media--fv, .ft-media--fv .ft-photo { aspect-ratio: auto; height: 100%; min-height: 640px; }
    .ft-fv__text {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        padding: 70px 64px 70px 60px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        max-width: 620px;
    }
    .ft-fv__head, .ft-fv__body { padding: 0; }
    .ft-fv h1 { font-size: 34px; margin-top: 22px; }
    .ft-fv__eyebrow { margin-top: 0; font-size: 12.5px; }
    .ft-fv__eyebrow-rule { display: block; width: 34px; height: 1px; background: var(--ft-amber); margin-bottom: 12px; }
    .ft-fv__body { margin-top: 30px; }
    .ft-fv__program-label { display: none; }
    .ft-fv__desc b { font-size: 15px; }
    .ft-fv__program { font-size: 17px; margin-top: 0; }
    .ft-fv__cta { margin-top: 18px; }
    .ft-fv__cta .ft-cta__note { text-align: left; }

    /* ---- SECTION 2 葛藤: 見出し＋写真 / 迷いの列挙 / 沈む気持ち の3列 ---- */
    .ft-conflict { grid-template-columns: 5fr 3fr 4fr; gap: 40px; align-items: start; }
    .ft-conflict__lead { grid-column: 1; }
    .ft-conflict__list li { font-size: 15px; padding: 22px 0; }
    .ft-conflict__list li:first-child { padding-top: 0; border-top: none; }

    /* ---- SECTION 3 自責 ---- */
    .ft-blame { display: grid; grid-template-columns: 1fr 1fr; gap: 48px 56px; align-items: start; }
    .ft-blame__lead .ft-h2 { font-size: 41px; }
    .ft-blame__quote { margin-top: 20px; padding: 44px 36px 44px 44px; }
    .ft-blame__quote p { font-size: 21px; line-height: 2.05; }
    .ft-blame__media { grid-row: span 2; }
    .ft-blame__quote { grid-column: 1 / -1; max-width: 900px; margin: 24px auto 0; }

    /* ---- SECTION 4 個別性 ---- */
    .ft-diff { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
    .ft-diff__list { margin-top: 0; }
    .ft-diff__aside { display: grid; gap: 26px; }

    /* ---- SECTION 5 アプローチ ---- */
    .ft-approach__item { grid-template-columns: 60px 1fr; }
    .ft-approach__card { display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 0 40px; padding: 34px 40px; align-items: start; }
    .ft-approach__label { font-size: 22px; }
    .ft-approach__body {
        margin-top: 0;
        padding-top: 0;
        padding-left: 40px;
        border-top: none;
        border-left: 1px solid var(--ft-line-faint);
        grid-column: 2;
        grid-row: span 2;
    }
    .ft-approach__item--sage .ft-approach__body,
    .ft-approach__item--amber .ft-approach__body { border-left-color: rgba(255, 255, 255, .3); }
    .ft-approach__item--amber .ft-approach__body { border-left-color: rgba(48, 54, 51, .22); }
    .ft-approach__close { font-size: 19px; max-width: 40em; margin-left: 150px; }

    /* ---- SECTION 6 カウンセラー ---- */
    .ft-counselor { grid-template-columns: 520fr 728fr; gap: 72px; align-items: start; }
    .ft-counselor__name { font-size: 25px; }

    /* ---- SECTION 7 6回の流れ: フェーズ帯＋横組みの回カード ---- */
    .ft-phase { padding-left: 0; padding-bottom: 12px; }
    .ft-phase::before, .ft-phase__dot { display: none; }
    .ft-phase__card { padding: 0; background: none; }
    .ft-phase--fill .ft-phase__card { background: none; }
    .ft-phase__head {
        background: var(--ft-sand);
        border-bottom: none;
        border-left: 3px solid var(--ft-amber);
        padding: 7px 16px;
        margin-bottom: 12px;
        align-items: center;
    }
    .ft-phase__label, .ft-phase__range { display: none; }
    .ft-phase--fill .ft-phase__label,
    .ft-phase--fill .ft-phase__range { display: none; }
    .ft-phase__title {
        width: auto;
        margin-top: 0;
        font-family: var(--ft-font);
        font-size: 12.5px;
        font-weight: 600;
        letter-spacing: .1em;
        color: var(--ft-body);
    }
    .ft-phase--fill .ft-phase__title { color: var(--ft-body); }
    .ft-phase__range--pc { display: block; font-size: 12px; color: var(--ft-muted); }
    .ft-session {
        background: var(--ft-paper);
        border-top: none;
        padding: 30px 40px;
        margin-bottom: 12px;
        display: grid;
        grid-template-columns: 92px minmax(0, 330px) minmax(0, 1fr);
        gap: 0 40px;
        align-items: center;
    }
    .ft-phase--fill .ft-session { background: var(--ft-paper); }
    .ft-phase--fill .ft-session__title { color: var(--ft-charcoal); }
    .ft-phase--fill .ft-session__tag { color: var(--ft-muted); }
    .ft-phase--fill .ft-session__body { color: var(--ft-body); }
    .ft-phase__head + .ft-session { padding-top: 30px; }
    .ft-session__row { display: contents; }
    .ft-session__num {
        width: 46px;
        height: 46px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: var(--ft-sage);
        color: #ffffff;
        padding-top: 0;
        font-size: 12px;
    }
    .ft-phase--fill .ft-session__num { background: var(--ft-sage); color: #fff; }
    .ft-session__num--start { background: var(--ft-sage); font-size: 10px; }
    .ft-session__title { font-size: 21px; }
    .ft-session__body {
        grid-column: 3;
        margin-top: 0;
        padding-left: 40px;
        border-left: 1px solid var(--ft-line-faint);
        font-size: 15px;
    }

    /* ---- SECTION 8 循環: 正五角形に置き、破線アークと矢印で1周させる ---- */
    .ft-why {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr auto auto 1fr;
        column-gap: 48px;
        align-items: start;
    }
    .ft-cycle { grid-column: 1; grid-row: 1 / -1; }
    .ft-why__lead { grid-column: 2; grid-row: 2; }
    .ft-why__quote { grid-column: 2; grid-row: 3; margin-top: 0; }
    /* 正方形の舞台。svgのviewBoxと座標系を共有させ、円が楕円に崩れないようにする */
    .ft-cycle__stage {
        position: relative;
        width: 100%;
        max-width: 420px;
        margin: 18px auto 0;
        aspect-ratio: 1 / 1;
    }
    .ft-cycle__arcs {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        color: var(--ft-amber);
        pointer-events: none;
    }
    .ft-cycle__list { position: absolute; inset: 0; display: block; gap: 0; }
    .ft-cycle__list::before { display: none; }
    /* 円の中心を五角形の頂点に置き、ラベルはその真下へ落とす */
    .ft-cycle__item {
        position: absolute;
        display: block;
        width: 176px;
        margin-left: -88px;
        margin-top: -20px;
        padding: 0;
        text-align: center;
        z-index: 1;
    }
    .ft-cycle__item:nth-child(1) { left: 50%;    top: 11%; }
    .ft-cycle__item:nth-child(2) { left: 87.1%;  top: 37.95%; }
    .ft-cycle__item:nth-child(3) { left: 72.9%;  top: 81.55%; }
    .ft-cycle__item:nth-child(4) { left: 27.1%;  top: 81.55%; }
    .ft-cycle__item:nth-child(5) { left: 12.9%;  top: 37.95%; }
    .ft-cycle__num { width: 40px; height: 40px; margin: 0 auto 10px; font-size: 12px; }
    .ft-cycle__text { display: block; font-size: 12.5px; line-height: 1.65; }
    .ft-cycle__loop { display: none; }

    /* ---- SECTION 9 / 10 ---- */
    .ft-split { grid-template-columns: 520fr 728fr; gap: 72px; align-items: start; }
    .ft-split--text { grid-template-columns: 1fr 1fr; gap: 48px; }

    /* ---- SECTION 11 目指すこと ---- */
    .ft-goals { grid-template-columns: 520fr 728fr; gap: 72px; align-items: start; }
    .ft-goals__list li { padding: 26px 0; }
    .ft-goals__title { font-size: 21px; }

    /* ---- SECTION 12 料金 ---- */
    .ft-price { grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
    .ft-price__card { padding: 34px 32px; }
    .ft-price__amount { font-size: 30px; }
    .ft-price__card--main .ft-price__amount { font-size: 34px; }
    .ft-price__card--sub .ft-price__amount { font-size: 25px; }
    .ft-price__excl,
    .ft-price__tax { font-size: 15px; }

    /* ---- FAQ ---- */
    .ft-faq summary { padding: 24px 28px; font-size: 16px; grid-template-columns: 30px 1fr 20px; }
    .ft-faq details > p { padding: 2px 28px 26px 58px; font-size: 15px; }

    /* ---- 最終CTA ---- */
    .ft-final__title { font-size: 34px; }
    /* 写真43% : 文57%。FVの57:43をそのまま使うと写真が982px丈になり右カラムが余る */
    .ft-final { grid-template-columns: minmax(0, 43fr) minmax(0, 57fr); gap: 72px; align-items: stretch; }
    .ft-final__text { display: flex; flex-direction: column; order: 0; }
    .ft-final__media { order: -1; margin-top: 0; }
    .ft-final__head { order: 0; }
    .ft-final__lead { order: 0; flex: 1; display: flex; flex-direction: column; }
    .ft-final__message { font-size: 25px; }
    /* CTAを下端へ寄せ、写真の底とボタンの底を揃える（写真の下に沈ませない） */
    .ft-final__cta { margin-top: auto; padding-top: 44px; }
    .ft-section--final { padding-bottom: 140px; }
    .ft-final__lead::before { margin-bottom: 24px; }

    /* ---- 予約・フッター ---- */
    .ft-bridge p { font-size: 24px; }
    .program-lp--futoko .lp-reserve { padding: 44px 48px; max-width: 900px; margin: 0 auto; }
    .program-lp--futoko .lp-reserve__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 24px; }
    .program-lp--futoko .lp-reserve__steps li + li { border-top: none; }
    .program-lp--futoko .lp-form__grid2 { grid-template-columns: 1fr 1fr; gap: 0 18px; }
    .ft-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; }
    .program-lp--futoko .lp-fixbar { display: none; }
}

@media (min-width: 1080px) {
    .ft-fv__text { padding: 80px 80px 80px 72px; }
    .ft-fv h1 { font-size: 38px; }
    .ft-h2 { font-size: 40px; }
}
