/* ===== /for-parents/（保護者の方へ） ===== */

/* PC / SP で改行位置を出し分け */
.br-pc { display: inline; }
.br-sp { display: none; }
@media (max-width: 767.98px) {
  .br-pc { display: none; }
  .br-sp { display: inline; }
}

/* 共通インナー（最大1413px / 左右23pxの余白を常に維持＝0にしない） */
.fp-inner {
  width: min(100% - 46px, 1413px);
  margin: 0 auto;
  box-sizing: border-box;
}

.fp-page { color: #1D1D1D; }

/* ===== メインビジュアル ===== */
.fp-mv {
  position: relative;
  width: min(90.8%, 1744px); /* 最大1744px・左右88px相当(4.6%) */
  margin: 112px auto 40px;   /* 上112px / 下40px */
}
.fp-mv__bg { display: block; }
.fp-mv__bg img { display: block; width: 100%; height: auto; }

/* SP用クラスタ画像：PCでは非表示（PCは合成画像 mv_for-parents.png に含む） */
.fp-mv__cluster-sp { display: none; }

/* タイトル＋本文ブロック（吹き出しの問いかけは画像内。これは右側ブロック）
   PC: 画像右に重ね。画像と一緒に拡縮させるため位置は%・フォントはvw（キャンバス1920基準）
   top は MV画像の高さ確定後に % で確定（暫定54%） */
.fp-mv__copy {
  position: absolute;
  left: 52.9%;   /* (1010.3-88) / 1744 */
  right: 18.1%;  /* (1744-(1516.6-88)) / 1744 */
  top: 42%;
  z-index: 2;    /* タイトルは装飾ラインより上 */
}

/* タイトル：Zen Kaku Gothic New / Black(900) / 27px / 行43 / 字間0 / 下余白50.5px
   （いずれも画像と一緒に拡縮するよう vw 換算。1920基準） */
.fp-mv__title {
  position: relative;                      /* deco をタイトル基準で直下に配置 */
  isolation: isolate;                      /* deco(z-index:-1) を画像の裏に回さない */
  margin: 0 0 clamp(28px, 2.63vw, 50.5px); /* 50.5 / 1920 */
  font-weight: 900;
  font-size: clamp(18px, 1.41vw, 27px);    /* 27 / 1920 */
  line-height: calc(43 / 27);
  letter-spacing: 0;
  white-space: nowrap;                     /* 自動折り返し防止（<br>のみで改行） */
  color: #1D1D1D;
}

/* 本文：Medium(500) / 18px / 行34 / 字間0.06em / 段落間20px */
.fp-mv__body {
  margin: 0;
  font-weight: 500;
  font-size: clamp(16px, 0.94vw, 18px);    /* 18 / 1920・最小16 */
  line-height: calc(34 / 18);
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-mv__body + .fp-mv__body { margin-top: 20px; }

/* タイトル下の装飾ライン：タイトル(.fp-mv__title)を基準に常に直下へ配置
   → どのブレークポイントでもタイトルに追従 */
.fp-mv__deco {
  position: absolute;
  left: 0;
  top: 64%;             /* ベース：タイトル内 "困った"に寄り添う の直下 */
  width: 70%;           /* タイトル幅基準 */
  height: auto;
  transform: rotate(0deg);
  transform-origin: left center;
  pointer-events: none;
  z-index: -1;          /* 文字の背面 */
}

/* ===== 重ねレイヤー（balloon / small / ai-face-check） =====
   ≤1279.98px で背景を mv_left.png に切り替え、3枚を重ねて合成を再現
   （≥1280px はフル合成 mv_for-parents.png のままなので非表示）
   位置は mv_left（1860×1285）基準の % */
.fp-mv__balloon,
.fp-mv__small,
.fp-mv__ai {
  position: absolute;
  height: auto;
  pointer-events: none;
  z-index: 1;            /* ベース画像より上・タイトル(z-index:2)より下 */
  display: none;         /* 既定（≥1280）は非表示 */
}
.fp-mv__balloon { left: 54%;   top: 3%;  width: 24%; }
.fp-mv__small   { left: 78%;   top: 81%; width: 22%; }
.fp-mv__ai      { left: 25%;   top: 95%; width: 25%; }

/* 769〜1279.98px：背景=mv_left に重ねて表示 */
@media (max-width: 1279.98px) {
  .fp-mv { margin-bottom: 208px; }   /* 下余白 208px */
  .fp-mv__bg img { display: block; width: 80%; }   /* ベース画像を80%幅に */
  .fp-mv__balloon,
  .fp-mv__small,
  .fp-mv__ai { display: block; }
}

/* 1072px以下：タイトル＋本文を固定配置（left:49% / top:55%） */
@media (max-width: 1072px) {
  .fp-mv__copy {
    position: absolute;
    left: 49%;
    right: 18.1%;
    top: 55%;
    z-index: 2;
  }
}

/* ===== SP（768px以下）: 重ねず縦並び（画像 → テキスト → クラスタ画像） ===== */
@media (max-width: 767.98px) {
  .fp-mv { position: relative; width: 100%; margin-bottom: 30px; }   /* SP: 全幅／タイトル重ねの基準 */
  .fp-mv__balloon,
  .fp-mv__small,
  .fp-mv__ai { display: none; }   /* SPは合成SP画像を使用するため非表示 */

  /* タイトル：SPでも画像の右下に重ねる（375デザイン: x167 / y265.71 / w185 / h104.29）
     画像は全幅(100vw)なので vw=画像内%として位置・サイズを固定 */
  .fp-mv__title {
    position: absolute;
    left: 44.53vw;            /* 167/375 */
    top: 70.86vw;             /* 265.71/375（画像上端=.fp-mv上端からの距離） */
    width: 49.33vw;           /* 185/375 */
    margin: 0;
    font-size: clamp(17px, 5.333vw, 26px); /* 20px@375（デザイン値） */
    line-height: 1.74;                     /* H104.29÷3行÷20 相当 */
    white-space: normal;
    text-shadow: var(--text-glow);        /* 写真上の可読性確保 */
    z-index: 2;                           /* 装飾ラインより上 */
  }

  /* 本文：画像の下にフロー */
  .fp-mv__copy {
    position: static;
    inset: auto;
    width: auto;
    padding: 0 23px;   /* 共通インナー（左右23px） */
    margin-top: 24px;  /* 画像との間隔（仮） */
  }
  .fp-mv__body {
    font-size: clamp(16px, 3.73vw, 18px); /* 最小16px 〜 上限18px */
    line-height: calc(30 / 16);           /* 16px基準で行間30px相当 */
    white-space: normal;                  /* SP: 329px幅で折り返し */
  }

  .fp-mv__cluster-sp { display: block; margin-top: 60px; padding: 0 23px; } /* 本文の下60px・左右23px（画像329幅） */
  .fp-mv__cluster-sp img { display: block; width: 100%; height: auto; }
}

/* SP（≤767.98px）: ベース画像は全幅（≤1279.98の70%指定を打ち消す） */
@media (max-width: 767.98px) {
  .fp-mv__bg img { display: block; width: 100%; }
  .fp-mv__title { width: max-content; }      /* h1枠を文字幅に縮める（deco幅を文字に追従させるため） */
  .fp-mv__deco { top: 45%; width: 100%; }    /* スマホ：縮めたh1枠＝文字幅に追従（ベースは64%/70%） */
}

/* ===== CTA（背景は画像。文字・ボタン・矢印はHTML） ===== */
.fp-cta__inner {
  position: relative;
  container-type: inline-size; /* cqw基準＝CTAインナー幅(最大1413px) */
}
.fp-cta__bg { display: block; }
.fp-cta__bg img { display: block; width: 100%; height: auto; }

/* テキスト＋ボタンを背景画像に重ねる（位置は実寸確定後に % で調整） */
.fp-cta__copy {
  position: absolute;
  top: 41%;        /* 191.1 / 466 */
  bottom: 10.7%;   /* 50 / 466 */
  left: 6%;        /* 85 / 1413 */
  right: 56%;      /* 792 / 1413 */
  display: flex;
  flex-direction: column;
  gap: 30px;            /* 見出し ↔ ボタンの間隔 */
}

/* 見出し：Bold(700) / 27px / 行48 / 字間0 */
.fp-cta__text {
  margin: 0;
  font-weight: 700;
  font-size: clamp(16px, 1.91cqw, 27px);   /* 27 / 1413・最小16 */
  line-height: calc(48 / 27);
  letter-spacing: 0;
  white-space: nowrap;                     /* PCは<br>のみで改行（SPでnormalに切替） */
  color: #1D1D1D;
}

/* ボタン行：白いピル（黒字）＋ 白い丸（赤い矢印）。コピー幅いっぱい(536px) */
.fp-cta__btn {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2cqw, 30px);   /* ピルと丸の間隔（要微調整） */
  width: 100%;
  text-decoration: none;
}
.fp-cta__btn-text {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(44px, 6.94cqw, 98px); /* 98 / 1413 */
  padding: 0 clamp(16px, 2cqw, 28px);
  background: #fff;
  border-radius: 999px;
  color: #1D1D1D;                 /* 黒字 */
  font-weight: 700;
  font-size: clamp(16px, 1.84cqw, 26px);  /* 26 / 1413・最小16 */
  line-height: calc(30 / 26);
  letter-spacing: 0.04em;
}
.fp-cta__btn-arrow {
  flex: none;
  width: clamp(44px, 6.94cqw, 98px);  /* 98 / 1413 */
  height: clamp(44px, 6.94cqw, 98px);
  border-radius: 50%;
  background-color: #fff;             /* 白い丸 */
  /* 赤い → 矢印（横線＋矢じり） */
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%3E%3Cpath%20d=%27M5%2012h14%27%20stroke=%27%23F4C5AD%27%20stroke-width=%272%27%20stroke-linecap=%27round%27/%3E%3Cpath%20d=%27M13%206l6%206-6%206%27%20stroke=%27%23F4C5AD%27%20stroke-width=%272%27%20stroke-linecap=%27round%27%20stroke-linejoin=%27round%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50% 50%;
}

/* CTA1: ≤1279.98px は見出し↔ボタンの間隔を詰める */
@media (max-width: 1279.98px) {
  .fp-cta__copy { gap: 15px; }
}

@media (max-width: 767.98px) {
  /* 背景画像(_sp 1316×1778＝375時 329×444.5)に追従させるため固定px→%
     中段ピンク帯に見出し＋ボタンを収め、下端は冊子写真エリアを確保 */
  .fp-cta__copy {
    top: 23.4%;        /* 104 / 444.5 */
    bottom: 37%;       /* 164.4 / 444.5（下＝冊子写真エリア） */
    left: 4.8%;        /* 15.8 / 329 */
    right: 4.8%;
    width: max-content;        /* 見出し・ボタンを内容幅にそろえる */
    justify-content: center;   /* 帯の中で見出し＋ボタンを中央寄せ */
    gap: clamp(16px, 9.1cqw, 66px);   /* 30/329・背景と同比率 */
  }
  /* 見出し・ボタンも背景と同比率でスケール（cqw=インナー幅% / 375で従来値） */
  .fp-cta__text {
    font-size: clamp(18px, 6.08cqw, 44px);  /* 20/329 */
    line-height: calc(34 / 20);
    white-space: normal;
  }

  .fp-cta__btn {
    width: 100%;
    max-width: 90.3cqw;   /* 297/329 */
    margin: 0 auto;
    white-space: nowrap;   /* ボタン文言を折り返さない */
  }
  .fp-cta__btn-text {
    min-height: clamp(48px, 16.4cqw, 118px);  /* 54/329 */
    font-size: clamp(15px, 4.86cqw, 32px);    /* 16/329 */
    line-height: 1;
  }
  .fp-cta__btn-arrow {
    width: clamp(48px, 16.4cqw, 118px);       /* 54/329 */
    height: clamp(48px, 16.4cqw, 118px);
  }
}

/* ===== 課題への共感（アルバム係の負担） ===== */
.fp-worry { margin: 130px 0 80px; }  /* 上130 / 下80 */

.fp-worry__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(57.8%, 816.85px); /* テキスト | 写真(816.85px) */
  align-items: center;
  gap: clamp(24px, 3vw, 56px);
}

.fp-worry__title {
  margin: 0 0 clamp(20px, 2vw, 32px);
  font-weight: 700;                     /* Bold */
  font-size: clamp(24px, 3.4vw, 48px);  /* 48 / 1413 */
  line-height: 1.5;                     /* 72 / 48 */
  letter-spacing: 0.06em;               /* AV60 */
  white-space: nowrap;                  /* 自動折り返し防止（<br>のみで改行） */
  color: #1D1D1D;
}

.fp-worry__body {
  margin: 0;
  font-weight: 500;                     /* Medium */
  /* 375px(14px) → 1413px(20px) で可変。768pxで固定14pxにしない */
  font-size: clamp(16px, calc(11.83px + 0.58vw), 20px);
  line-height: clamp(24px, calc(18.22px + 1.54vw), 40px); /* 行24 → 40 */
  letter-spacing: 0.06em;               /* AV60 */
  white-space: nowrap;                  /* 自動折り返し防止（<br>のみで改行） */
  color: #1D1D1D;
}
.fp-worry__body + .fp-worry__body { margin-top: 1.5em; }

/* テキストを前面、写真を最背面に */
.fp-worry__copy { position: relative; z-index: 1; }
.fp-worry__photos { display: block; position: relative; z-index: 0; }
.fp-worry__photos img { display: block; width: 100%; height: auto; }

@media (max-width: 767.98px) {
  .fp-worry {
    margin: 60px 0 30px;          /* SP: 上60 / 下30 */
  }
  .fp-worry__inner {
    grid-template-columns: 1fr;   /* 縦積み（テキスト → 写真） */
    gap: 24px;
  }
  .fp-worry__title { font-size: 24px; line-height: 1.5; white-space: normal; } /* SP 24px・折り返し可 */
  .fp-worry__body { white-space: normal; }   /* SP: 329px幅で折り返し */
  /* SP: 写真は .fp-inner の左右23px枠を突き抜けて全幅表示 */
  .fp-worry__photos {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }
}

/* ===== セパレーター ===== */
.fp-separator { display: block; }
.fp-separator img { display: block; width: 100%; height: auto; }

/* ===== “ちゃんと残せるか”（フルブリード／背景 #EDE7E4） ===== */
.fp-keep {
  background: #EDE7E4;
  padding: clamp(40px, 5vw, 80px) 0;  /* band内の上下余白 */
}
.fp-keep__inner {
  display: grid;
  grid-template-columns: 1fr min(56%, 789px); /* テキスト | 画像（コンテンツ枠内・右寄せ） */
  align-items: center;
  gap: clamp(24px, 4vw, 60px);
}

.fp-keep__title {
  position: relative;
  z-index: 0;                          /* 文字を前面・装飾を背面に */
  width: fit-content;                  /* 装飾を文字の四隅に合わせる */
  margin: 0 0 60px;                    /* タイトル↔コピー 60px */
  font-weight: 700;                    /* Bold */
  /* 375(24px)→1920(48px) で可変 */
  font-size: clamp(24px, calc(18.18px + 1.55vw), 48px);
  line-height: calc(74 / 48);          /* 1.54 */
  letter-spacing: 0.06em;              /* AV60 */
  white-space: nowrap;
  color: #1D1D1D;
}

/* タイトル左上・右下の装飾（文字の背面） */
.fp-keep__title::before,
.fp-keep__title::after {
  content: "";
  position: absolute;
  width: 125.38px;
  height: 111.86px;
  background: url("https://ik.imagekit.io/yumephoto/sotsugyoalbum.com/for-parents/deco_fp-keep__title.png?tr=n-base") no-repeat center / contain;
  z-index: -1;                         /* 文字の背面 */
  pointer-events: none;
}
.fp-keep__title::before { top: -56px; left: -16px; }      /* 左上（offsetは仮） */
.fp-keep__title::after  { bottom: -56px; right: -16px; }  /* 右下（offsetは仮） */

.fp-keep__body p {
  margin: 0;
  font-weight: 500;                    /* Medium */
  /* 375(14px)→1920(20px) で可変 */
  font-size: clamp(16px, calc(12.54px + 0.39vw), 20px);
  line-height: calc(36 / 20);          /* 1.8 */
  letter-spacing: 0.06em;              /* AV60 */
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-keep__body p + p { margin-top: calc(36 / 20 * 1em); } /* 段落間（1行分） */

.fp-keep__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 30px 0 0 30px;        /* 左上・左下のみ角丸 */
}

/* 1062px以下：画像はサイズを保ったまま右端固定、文字をその上に重ねる（潜り込む）
   glowing は重なり始め（ここ）から付与 */
@media (max-width: 1062px) {
  .fp-worry__copy { text-shadow: var(--text-glow); }   /* 写真と近接時の可読性確保 */

  .fp-keep__inner {
    grid-template-columns: 1fr;
  }
  .fp-keep__text,
  .fp-keep__photo {
    grid-row: 1;
    grid-column: 1;            /* 同じセルに重ねる */
  }
  .fp-keep__text {
    justify-self: start;
    align-self: center;
    z-index: 1;                /* 文字を前面 */
    text-shadow: var(--text-glow); /* 重なり始めからglowing */
  }
  .fp-keep__photo {
    justify-self: end;         /* 右端ぴったり */
    width: 581px;              /* サイズ維持（全幅化しない／文字の下へ潜る） */
    max-width: 100%;
    z-index: 0;
  }
}

/* 768px以下：縦積みに戻す。画像幅 = テキスト幅 */
@media (max-width: 767.98px) {
  .fp-keep__text,
  .fp-keep__photo {
    grid-row: auto;
    grid-column: auto;         /* 重ねを解除 */
  }
  .fp-keep__text {
    justify-self: stretch;
    z-index: auto;
    text-shadow: none;         /* SPは重ねないのでglowなし */
  }
  .fp-keep__title,
  .fp-keep__body p { white-space: normal; }   /* SP: 329px幅で折り返し */
  .fp-keep__photo {
    justify-self: stretch;
    width: auto;               /* 581px固定を解除 */
    align-self: auto;
  }
  .fp-keep__photo img {
    border-radius: 30px;       /* 内包配置なので四隅角丸（仮） */
  }
}

/* ===== サポート体制（背景 #F8F4F2） ===== */
.fp-support {
  background: #F8F4F2;
  padding: clamp(64px, 9.2vw, 130px) 0;   /* 上下130px（SPは可変・要調整） */
}
.fp-support__title {
  margin: 0 0 60px;                        /* タイトル↔コピー 60px */
  font-weight: 700;                        /* Bold */
  font-size: clamp(24px, calc(15.33px + 2.31vw), 48px); /* 24@375 → 48@1413 */
  line-height: calc(74 / 48);              /* 1.54 */
  letter-spacing: 0.06em;                  /* AV60 */
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-support__lead {
  margin: 0 0 52.5px;                       /* コピー下余白 52.5px */
  font-weight: 500;                        /* Medium */
  font-size: clamp(16px, calc(11.83px + 0.58vw), 20px); /* 14@375 → 20@1413 */
  line-height: calc(36 / 20);              /* 1.8 */
  letter-spacing: 0.06em;                  /* AV60 */
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-support__photo img { display: block; width: 100%; height: auto; }

@media (max-width: 767.98px) {
  .fp-support__title { margin-bottom: 24px; white-space: normal; }   /* SP: 折り返し（nowrap解除） */
  .fp-support__lead  { margin-bottom: 32px; white-space: normal; }
}

/* ===== お客様の声（背景画像／タイトルはテキスト） ===== */
.fp-voice { position: relative; background: #F8F4F2; } /* 上のサポート(#F8F4F2)と同色でつなげる */
.fp-voice__bg { display: block; }
.fp-voice__bg img { display: block; width: 100%; height: auto; }
.fp-voice__title {
  position: absolute;
  top: 0;                        /* ベースは fp-voice 上端に揃える */
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-weight: 700;                /* Bold */
  font-size: clamp(24px, calc(18.18px + 1.55vw), 48px); /* 48 */
  line-height: calc(62 / 48);      /* 1.29 */
  letter-spacing: 0.06em;          /* AV60 */
  text-align: center;
  white-space: nowrap;
  color: #1D1D1D;
}

@media (max-width: 767.98px) {
  .fp-voice__title { white-space: normal; width: min(100% - 46px, 100%); top: -2.6em; } /* SP: 折り返し＋上へ-2.6em */
}

/* ===== 学校に合わせた進め方（タイトルはテキスト／カードは画像） ===== */
.fp-options {
  background: #F8F4F2;   /* 上のvoiceと同色でつなげる */
  padding: clamp(64px, 9.2vw, 130px) 0 clamp(48px, 7vw, 100px); /* 上130 / 下100 */
}
.fp-options__title {
  margin: 0 0 clamp(32px, 4vw, 56px);   /* タイトル↔画像（要確認） */
  font-weight: 700;                     /* Bold */
  font-size: clamp(24px, calc(15.33px + 2.31vw), 48px); /* 48 */
  line-height: calc(62 / 48);           /* 1.29 */
  letter-spacing: 0.06em;               /* AV60 */
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-options__photo img { display: block; width: 100%; height: auto; }

@media (max-width: 767.98px) {
  .fp-options__title { margin-bottom: 24px; white-space: normal; text-align: center; }   /* SP: 折り返し＋中央揃え */
}

/* ===== CTA2（資料請求／横幅1400・背景画像にテキストを重ねる） ===== */
.fp-cta2 {
  background: #F8F4F2;                       /* 上から続く #F8F4F2 帯（CTAまで） */
  padding-bottom: clamp(48px, 7vw, 100px);  /* カード下の余白（要調整） */
}
.fp-cta2__inner {
  position: relative;
  width: min(100% - 46px, 1400px);   /* 横幅1400ちょうど */
  margin: 0 auto;
  container-type: inline-size;        /* cqw基準＝インナー幅1400 */
}
.fp-cta2__bg { display: block; }
.fp-cta2__bg img { display: block; width: 100%; height: auto; }

/* タイトル（左上）48/Bold/lh68/字間0.06 */
.fp-cta2__title {
  position: absolute;
  top: 25%; left: 4.4%;
  margin: 0;
  font-weight: 700;
  font-size: clamp(24px, 3.43cqw, 48px);   /* 48 / 1400 */
  line-height: calc(68 / 48);
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #1D1D1D;
  border-bottom: 4px dotted #fff;          /* タイトル下線（白ドット・ベースから表示） */
  padding-bottom: 10px;                    /* テキスト↔ドット線 10px */
}

/* コピー＋ボタン（右上） */
.fp-cta2__copy {
  position: absolute;
  top: 15.5%; right: 2.8%;            /* 幅は内容（nowrap）に合わせて自動 */
}
.fp-cta2__lead {
  margin: 0 0 min(28px, 2cqw);
  font-weight: 500;
  font-size: min(20px, 1.43cqw);           /* 下限なし＝SPまで比例縮小 */
  line-height: calc(36 / 20);
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #1D1D1D;
}

/* ボタン：白ピル（黒字26px）＋白丸＋#F4C5AD矢印 */
.fp-cta2__btn {
  display: inline-flex;
  align-items: center;
  gap: min(20px, 1.4cqw);
  text-decoration: none;
}
.fp-cta2__btn-text {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(30.79cqw, 431px);           /* 431 / 1400 */
  min-height: min(98px, 7cqw);           /* 下限なし＝比例縮小 */
  padding: 0 min(28px, 2cqw);
  background: #fff;
  border-radius: 999px;
  color: #1D1D1D;
  font-weight: 700;
  font-size: min(26px, 1.857cqw);          /* 下限なし＝比例縮小 */
  line-height: calc(30 / 26);
  letter-spacing: 0.04em;
}
.fp-cta2__btn-arrow {
  flex: none;
  width: min(98px, 7cqw);   /* 下限なし＝比例縮小 */
  height: min(98px, 7cqw);
  border-radius: 50%;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%3E%3Cpath%20d=%27M5%2012h14%27%20stroke=%27%23F4C5AD%27%20stroke-width=%272%27%20stroke-linecap=%27round%27/%3E%3Cpath%20d=%27M13%206l6%206-6%206%27%20stroke=%27%23F4C5AD%27%20stroke-width=%272%27%20stroke-linecap=%27round%27%20stroke-linejoin=%27round%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50% 50%;
}

/* 注釈（右下）14px */
.fp-cta2__note {
  position: absolute;
  right: 3.4%; bottom: 3.4%;
  margin: 0;
  font-weight: 500;
  font-size: clamp(12px, 1cqw, 16px);   /* 注釈：最小12px */
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #1D1D1D;
}

/* CTA2 SP：背景画像をフル表示（切らない）＋文字を上部ピンク余白に重ねる
   背景の「お問い合わせ特典」カードは約40.5%から始まるので、文字は上40%以内に収める */
@media (max-width: 767.98px) {
  .fp-cta2__inner { padding: 0; }
  .fp-cta2__bg { display: block; position: static; }
  .fp-cta2__bg img { display: block; width: 100%; height: auto; }   /* フル表示（全長を出す） */

  .fp-cta2__title {
    position: absolute; z-index: 1;
    top: 8%; left: 6%; right: 6%;
    margin: 0;
    line-height: calc(36 / 22);   /* 22px(5.9vw)・行36 */
    letter-spacing: 0;
  }
  .fp-cta2__copy {
    position: absolute; z-index: 1;
    top: 19%; left: 6%; right: 6%;
    /* タイトル下線(border-bottom)はベースから継承 */
  }
  .fp-cta2__lead {
    margin: 0em 0 1em;
    white-space: normal;
    font-size: 3.73vw;            /* 14px@375・Medium */
    line-height: calc(24 / 14);   /* 行24 */
    letter-spacing: 0.06em;       /* AV60 */
  }
  .fp-cta2__btn {
    display: flex;                /* 中央寄せのためブロック化 */
    margin: 0 auto; margin-top: 0;
    width: 79.33vw;              /* W297.48@375（ボタン群の総幅） */
    gap: 4vw;
  }
  .fp-cta2__btn-text {
    flex: 1;                      /* 残り幅いっぱい＝デザインの内側余白を再現 */
    width: auto;
    min-height: 14.5vw;           /* H54.39@375 */
    font-size: 4.27vw;            /* 16px@375・Bold */
    line-height: 1;               /* 行16 */
    letter-spacing: 0.04em;       /* AV40 */
  }
  .fp-cta2__btn-arrow { width: 14.5vw; height: 14.5vw; flex: none; }   /* 丸ボタンも高さに合わせる */
  .fp-cta2__note {
    position: absolute; z-index: 1;
    left: 6%; right: 6%; bottom: 2%;
    margin: 0; white-space: nowrap; text-align: center;
    font-size: clamp(9px, 3vw, 14px);   /* 改行しないよう幅に追従。上限14px */
  }
}

/* ===== 最終CTA（背景画像＋トップの contact-cards 流用） ===== */
.fp-final { position: relative; overflow: hidden; background: #F8F4F2; } /* 上(CTA)と同色でつなげる */
.fp-final__bg { position: absolute; inset: 0; z-index: 0; }   /* 背景画像（cover） */
.fp-final__bg img { display: block; width: 100%; height: 100%; object-fit: cover; }

.fp-final__content {
  position: relative;
  z-index: 1;
  width: min(100% - 46px, 1400px);   /* カード群＝全体幅1400 */
  margin: 0 auto;
  padding: 23.47vw 0 15.47vw; /* 上88px / 下58px（375基準・vwスケール） */
}
.fp-final__title {
  margin: 0 0 clamp(30px, 2.24vw, 43px);   /* 43〜30 */
  font-weight: 700;
  font-size: clamp(24px, calc(15.95px + 2.15vw), 46px); /* 46 */
  line-height: calc(80 / 46);
  letter-spacing: 0;
  white-space: nowrap;
  color: #1D1D1D;
}
.fp-final__lead {
  margin: 0 0 clamp(50px, 5.73vw, 110px);  /* カードまで 110〜50 */
  font-weight: 500;
  font-size: clamp(16px, calc(11.8px + 0.59vw), 20px); /* 20 */
  line-height: calc(36 / 20);
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: #1D1D1D;
}

/* カードは .cta-section の楕円カードを流用（セクション背景・余白だけ無効化） */
.fp-final .cta-section { background: transparent; padding: 0; }

/* Zoom変種（common.css に無いので追加：青 #2D5FF8。for-teachers.css と同値） */
.fp-final .cta-section .contact-card--zoom { --contact-pill-color: #2D5FF8; }
.fp-final .cta-section .contact-main-accent--zoom { color: #2D5FF8; }
@media (min-width: 768px) {
  .fp-final .cta-section .contact-main-accent--zoom { font-size: 28px; }
}
.fp-final .cta-section .contact-card--zoom .contact-main br { display: none; }
@media (max-width: 991.98px) {
  .fp-final .cta-section .contact-card--zoom .contact-main {
    font-size: clamp(18px, 3vw, 28px);
    line-height: 1.25;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
}
/* ≤767.98px：375デザインのフォントに合わせる（contact/lineカードと同仕様） */
@media (max-width: 767.98px) {
  .fp-final .cta-section .contact-card--zoom .contact-main {
    font-family: "Zen Kaku Gothic New", "Yu Gothic", YuGothic, sans-serif;
    font-size: clamp(20px, calc(2vw + 12.5px), 28px);
    line-height: calc(26 / 20);
    font-weight: 900;
    letter-spacing: calc(60 / 1000 * 1em);
    white-space: normal;
  }
}
/* ≤375px：brを復活させ2行に戻す（contact/lineと揃え、高さを均一に保つ） */
@media (max-width: 375px) {
  .fp-final .cta-section .contact-card--zoom .contact-main br { display: inline; }
}
/* LINEカードだけ共通CSSの padding-bottom:29px が効いて高くなるのを打ち消し、
   他カード（下12px/8px）と高さを揃える */
@media (max-width: 991.98px) {
  .fp-final .cta-section .contact-card--line { padding-bottom: 12px; }
}
@media (max-width: 767.98px) {
  .fp-final .cta-section .contact-card--line { padding-bottom: 8px; }
}

@media (max-width: 767.98px) {
  .fp-final__title,
  .fp-final__lead { white-space: normal; }   /* SPは折り返し可（要SP値） */
}

/* CTA最終 SP：背景は中身の高さに合わせて cover 表示し、上固定＝下から切る（緑の下端を出さない） */
@media (max-width: 767.98px) {
  .fp-final__bg img { object-position: top; }
}

/* ===== H2見出し：SP（≤768px）の文字サイズを統一 ===== */
@media (max-width: 767.98px) {
  .fp-worry__title,
  .fp-keep__title,
  .fp-support__title,
  .fp-voice__title,
  .fp-options__title,
  .fp-cta2__title,
  .fp-final__title {
    font-size: 5.9vw;   /* 22px@375 〜 45px@768 で統一 */
  }
}

