@charset "utf-8";

/* =========================================================
   Peace & Piece ホームページ CSS
   ---------------------------------------------------------
   このCSSは、元のCSSを整理し、同じ指定の重複を削除した
   「丸ごと差し替え用」のファイルです。
   基本的な並び順
   1. 全体の基本設定
   2. トップページ・スライドショー
   3. トップページのメインメニュー
   4. トップページ中央下のバナー
   5. ヘッダー・更新情報・お知らせ
   6. スクロール誘導の吹き出し
   7. 右側の固定・縦書きボタン
   8. メッセージ
   9. Hope Station / Station Home 全画面画像
   10. スクロールページの開始位置
   11. 未来への扉
   12. 不登校リスク
   13. スクール紹介・特徴
   14. 入会までの流れ
   15. フッター
   16. PC / タブレット / スマートフォン調整
   ※ JavaScriptの設定は、このCSSには含めません。
   ========================================================= */

/* keyframes.css の読み込み */
@import url("keyframes.css?v=20261018071011");

/* =========================================================
   1. 全体の基本設定
   ========================================================= */
html,
body {
  width: 100%;
  overflow-x: hidden;
}
body {
  margin: 0;
  padding: 0;
  color: #666;
  font-family: "Noto Sans JP", "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro",
    "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,
    Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 16px;
  line-height: 1.3;
  background: #fff;
}

/* ブラウザが自動で付ける余白をリセット */
h1,
h2,
h3,
h4,
h5,
p,
ul,
ol,
li,
dl,
dt,
dd,
form,
figure,
select,
textarea,
input {
  margin: 0;
  padding: 0;
  font-size: 100%;
  font-weight: normal;
}
ul {
  list-style-type: none;
}
img {
  border: none;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
a {
  text-decoration: none;
  color: #666;
  transition: 0.5s;
}

/* =========================================================
   2. トップページ・スライドショー
   ========================================================= */
#hero {
  position: relative;
  height: 100vh;
  overflow: hidden;
}
#mainimg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
}

/* 7枚すべて共通
   HTMLには「slide0」「slide1」などの文字が入っていますが、
   これはスライド識別用の文字なので画面には表示しません。 */
.slide0,
.slide1,
.slide2,
.slide3,
.slide4,
.slide5,
.slide6 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation-name: fadeSlide;
  animation-duration: 35s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;

  /* スライド識別用の文字を画面外へ隠す */
  text-indent: -9999px;
}

/* 各スライド画像 */
.slide0 { background: url(../images/0.jpg) no-repeat center/cover; }
.slide1 { background: url(../images/1.jpg) no-repeat center/cover; }
.slide2 { background: url(../images/2.jpg) no-repeat center/cover; }
.slide3 { background: url(../images/3.jpg) no-repeat center/cover; }
.slide4 { background: url(../images/4.jpg) no-repeat center/cover; }
.slide5 { background: url(../images/5.jpg) no-repeat center/cover; }
.slide6 { background: url(../images/6.jpg) no-repeat center/cover; }

/* 各スライドの開始タイミング */
.slide0 { animation-delay: 0s; }
.slide1 { animation-delay: 0.5s; }
.slide2 { animation-delay: 10s; }
.slide3 { animation-delay: 15s; }
.slide4 { animation-delay: 19s; }
.slide5 { animation-delay: 23s; }
.slide6 { animation-delay: 28s; }

/* =========================================================
   3. トップページのメインメニュー
   ========================================================= */
#menubar li {
  animation-name: scale1;
  animation-fill-mode: both;
  animation-duration: 1s;
  opacity: 0.8;
  position: absolute;
}
#menubar li a {
  display: block;
  text-decoration: none;
  animation-name: rotate1;
  animation-fill-mode: both;
  animation-duration: 4s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  color: #fff;
  text-align: center;
  width: 250px;
  line-height: 250px;
}

/* 英語・日本語の表示切り替え */
#menubar li span:first-child { display: block; }
#menubar li:hover span:first-child { display: none; }
#menubar li span:last-child { display: none; }
#menubar li:hover span:last-child { display: block; }

/* メニュー1 */
#menubar li:nth-of-type(1) {
  animation-delay: 2s;
  left: 1%;
  top: -1%;
}
#menubar li:nth-of-type(1) a {
  background: url(../images/menu1.png) no-repeat center center/contain;
}

/* メニュー2 */
#menubar li:nth-of-type(2) {
  animation-delay: 2.2s;
  left: 25%;
  top: 15%;
}
#menubar li:nth-of-type(2) a {
  background: url(../images/menu2.png) no-repeat center center/contain;
  animation-delay: 1s;
}

/* メニュー3 */
#menubar li:nth-of-type(3) {
  animation-delay: 2.4s;
  right: 27%;
  top: 5%;
}
#menubar li:nth-of-type(3) a {
  background: url(../images/menu3.png) no-repeat center center/contain;
  animation-delay: 2s;
}

/* メニュー4 */
#menubar li:nth-of-type(4) {
  animation-delay: 2.6s;
  right: 1%;
  top: -4%;
}
#menubar li:nth-of-type(4) a {
  background: url(../images/menu4.png) no-repeat center center/contain;
  animation-delay: 3s;
}

/* マウスを乗せた時 */
#menubar li a:hover {
  width: 260px;
  animation-play-state: paused;
}
#menubar li:hover { opacity: 1; }

/* メニューの日本語
   PC・タブレット：20px
   スマートフォン：13px */
.menu-jp { font-size: 20px; }

/* =========================================================
   4. トップページ中央下のバナー
   ========================================================= */
#message-banner {
  position: absolute;
  left: 50%;
  bottom: 15%;
  transform: translateX(-50%);
  z-index: 10;
  width: 350px;
  opacity: 0;
  animation: fadeInBanner 2.5s ease-out 6s forwards;
}
#message-banner a {
  display: block;
  width: 100%;
}
#message-banner img {
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  transition: transform 0.3s, opacity 0.3s;
  opacity: 0.9;
}
#message-banner img:hover {
  transform: scale(1.05);
  opacity: 1;
}
@keyframes fadeInBanner {
  0% {
    opacity: 0;
    transform: translate(-50%, -45%);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

/* =========================================================
   5. ヘッダー・更新情報・お知らせ
   ========================================================= */
#hero header {
  position: absolute;
  left: 2%;
  bottom: 4%;
}
header {
  animation-name: opa1;
  animation-fill-mode: both;
  animation-duration: 1.5s;
  animation-delay: 4s;
  width: 94%;
  height: 100px;
  padding: 20px 0 20px 2%;
  background: #fff;
  background: rgba(255,255,255,0.7);
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
header #logo img {
  width: 100px;
  float: left;
  padding-right: 20px;
  transform: translateX(-6px);
}
#new {
  height: 100px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
#new::-webkit-scrollbar { display: none; }
#new dt {
  float: left;
  width: 7em;
  color: #a7946f;
  letter-spacing: 0.1em;
  font-size: 18px;
  margin-top: 8px;
  padding-left: 10px;
}
#new dd {
  padding-left: 7em;
  font-size: 18px;
  line-height: 1.3;
  margin-top: 8px;
}

/* =========================================================
   6. スクロール誘導の吹き出し
   ========================================================= */
#scroll-balloon {
  position: fixed;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  padding: 10px 20px;
  background: rgba(255,255,255,0.85);
  color: #6f624c;
  font-size: 18px;
  letter-spacing: 0.15em;
  border-radius: 20px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  z-index: 3000;
  opacity: 0;
  animation:
    balloonFadeIn 1.2s ease-out 8s forwards,
    balloonFloat 1.8s ease-in-out 9.2s infinite;
}
#scroll-balloon::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 10px solid rgba(255,255,255,0.85);
}
@keyframes balloonFloat {
  0% { transform: translate(-50%, 0); opacity: 0.75; }
  50% { transform: translate(-50%, -6px); opacity: 1; }
  100% { transform: translate(-50%, 0); opacity: 0.75; }
}
#scroll-balloon.hide {
  opacity: 0;
  pointer-events: none;
  animation: none;
  transition: opacity 0.6s ease;
}

/* =========================================================
   6-1. ページ上部へ戻るボタン
   ========================================================= */

/* 普段は非表示 */
body .nav-fix-pos-pagetop a {
  display: none;
}

/* 表示された時のボタン */
body.is-fixed-pagetop .nav-fix-pos-pagetop a {
  display: block;
  text-decoration: none;
  text-align: center;
  z-index: 99;
  position: fixed;
  width: 100px;
  bottom: 30px;
  right: 1%;
  animation-name: opa1;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

/* ボタン画像 */
body.is-fixed-pagetop .nav-fix-pos-pagetop img {
  width: 100%;
  max-width: 100px;
  height: auto;
  opacity: 0.7;
}
@media (hover: hover) {
  body.is-fixed-pagetop .nav-fix-pos-pagetop img:hover {
    opacity: 1;
  }
}

/* =========================================================
   7. 右側の固定・縦書きボタン
   ▼ 調整する場所
   1つ目のボタン：--side-button-primary-top
   2つ目のボタン：--side-button-outline-top
   数値を大きくすると下へ、小さくすると上へ移動します。
   ========================================================= */

/* ▼▼ 縦書きボタンの上下位置を調整する設定 ▼▼ */
:root {
  --side-button-primary-top: 350px;
  --side-button-outline-top: 525px;
}

/* ▲▲ 縦書きボタンの上下位置を調整する設定 ▲▲ */
.btn-side-parts a {
  text-decoration: none;
  display: block;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 18px;
  font-weight: 500;
  position: fixed;
  right: 0;
  z-index: 9999;
  padding: 18px 15px;
  border-radius: 10px 0 0 10px;
  letter-spacing: 0.1rem;
  opacity: 0;
  transform: translateX(20px);
  pointer-events: none;
  transition: opacity 0.8s ease, transform 0.8s ease, box-shadow 0.25s ease;
}
.btn-side-parts a.is-visible {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
#btn-side1-parts a,
#btn-side2-parts a {
  inline-size: 56px;
  box-sizing: border-box;
  overflow: hidden;
}

/* 1つ目：見学・体験申込 */
.btn-side-primary a {
  top: var(--side-button-primary-top);
  background: linear-gradient(135deg, #f08a24, #d96c05);
  color: #fff;
  box-shadow:
    0 6px 12px rgba(0,0,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.3);
}

/* 2つ目：白背景・枠線 */
.btn-side-outline a {
  top: var(--side-button-outline-top);
  --accent-color: #e0760b;
  background: #fff;
  color: var(--accent-color);
  outline: 3px solid var(--accent-color);
  outline-offset: -2px;
  border: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}
@media (hover: hover) {
  .btn-side-parts a:hover {
    transform: translateX(-2px);
    box-shadow:
      0 8px 18px rgba(0,0,0,0.18),
      inset 0 1px 0 rgba(255,255,255,1);
  }
  .btn-side-primary a:hover {
    box-shadow:
      0 10px 20px rgba(0,0,0,0.25),
      inset 0 1px 0 rgba(255,255,255,0.4);
  }
  .btn-side-outline a:hover {
    box-shadow: 0 8px 18px rgba(0,0,0,0.18);
  }
}

/* =========================================================
   8. メッセージ
   ========================================================= */

/* メッセージセクションで使う調整値
   数字を変えると全体をまとめて調整できます。 */
:root {
  --message-max-width: 1550px;
  --message-padding-pc: 70px;
  --message-padding-sp: 55px;
  --message-title-en-size: 50px;
  --message-title-ja-size: 30px;
  --message-bg-size: 80px;
  --message-lead-size: 43px;
  --message-name-size: 22px;
  --message-body-size: 19px;
  --message-body-line-height: 2;
  --message-background: #f3f2f3;
  --message-text-color: #202020;
  --message-bg-text-color: rgba(255,255,255,0.95);

  /* Peace & Piece ロゴ */
  --page-logo-width: clamp(120px, 15vw, 180px);
  --page-logo-top: 20px;
  --page-logo-left: -5px;
}
.message-section {
  position: relative;
  width: 100%;
  background: var(--message-background);
  color: var(--message-text-color);
  overflow: hidden;
  font-family: "Noto Sans JP", "Noto Sans", Arial, Helvetica, sans-serif;
}
.message-inner {
  position: relative;
  width: calc(100% - 100px);
  max-width: var(--message-max-width);
  margin: 0 auto;
  padding-top: var(--message-padding-pc);
  padding-bottom: var(--message-padding-pc);
}

/* Peace & Piece ロゴ */
.page-logo {
  position: relative;
  top: var(--page-logo-top);
  left: var(--page-logo-left);
  margin: 0;
  text-align: center;
}
.page-logo img {
  width: var(--page-logo-width);
  height: auto;
  max-width: 100%;
  display: inline-block;
}

/* 見出し */
.message-heading {
  position: relative;
  z-index: 2;
}
.message-heading-en {
  margin: 0;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-size: var(--message-title-en-size);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-align: center;
}
.message-heading-ja {
  margin: 16px 0 0;
  font-size: var(--message-title-ja-size);
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

/* 背景の大きな英字 */
.message-bg-text {
  position: relative;
  z-index: 1;
  margin-top: 60px;
  margin-left: 0;
  width: 100%;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-size: var(--message-bg-size);
  font-weight: 600;
  line-height: 0.8;
  letter-spacing: -0.04em;
  color: var(--message-bg-text-color);
  white-space: nowrap;
  text-align: center;
  user-select: none;
  pointer-events: none;
}

/* 左右2カラム */
.message-content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  column-gap: 8%;
  margin-top: 70px;
}
.message-lead { padding-top: 0; }
.message-lead h2 {
  margin: 75px 0 0;
  font-size: var(--message-lead-size);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.message-name {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 45px 0 0;
  font-size: var(--message-name-size);
  font-weight: 600;
  line-height: 1.6;
}
.message-name span {
  display: inline-block;
  font-weight: 400;
}
.message-body {
  max-width: 770px;
}
.message-body p {
  margin: 75px 0 30px;
  font-size: var(--message-body-size);
  font-weight: 400;
  line-height: var(--message-body-line-height);
  letter-spacing: 0.03em;
}
.message-body p:last-child { margin-bottom: 0; }

/* =========================================================
   8-1. メッセージセクション「続きを読む」
   ---------------------------------------------------------
   JavaScriptを使わず、HTMLの <details> / <summary> で開閉します。
   ・1～4番目のメッセージだけにHTML側で
     <details class="message-readmore"> を付けます。
   ・5番目は従来どおり全文表示です。
   ========================================================= */

/* ---------------------------------------------------------
   「続きを読む」用の調整値
   ---------------------------------------------------------
   ・本文上部の位置
   ・閉じた状態で表示する本文量
   ・下部グラデーションの高さ
   ・「続きを読む」ボタンの位置
   ・ボタンの横幅
   それぞれを個別に調整できるようにしています。
   --------------------------------------------------------- */

/* =========================================================
   8-2.「続きを読む」用の調整値
   PC・タブレット画面
   ========================================================= */
:root {
  --message-body-top: 75px;
  --message-preview-top: 85px;
  --message-preview-height: 480px;
  --message-gradient-height: 10em;
  --message-button-bottom: 8px;
  --message-button-width: 180px;
}

/* =========================================================
   8-3.「続きを読む」用の調整値
   スマホ画面
   ========================================================= */

  /* =========================================================
     スマホ画面専用の調整値
     ========================================================= */

@media screen and (max-width: 767px) {
  :root {
    /* -----------------------------------------
       ① セクション見出しのフォントサイズ
       ----------------------------------------- */

    /* Hope Station */
    --message-title-en-size-sp: 35px;
    --message-title-en-weight-sp: 700; /* 文字の太さ */

    /* 希望の始発駅 */
    --message-title-ja-size-sp: 18px;

    /* Our Beliefs */
    --message-bg-size-sp: 40px;

    /* -----------------------------------------
       ② Peace & Piece ロゴの画像サイズ
       ----------------------------------------- */

    --page-logo-width-sp: 180px;

    /* -----------------------------------------
       ③ MESSAGE 1～5の見出しの左右余白
       ----------------------------------------- */

    --message-name-padding-left-sp: 15px;
    --message-name-padding-right-sp: 15px;

    /* -----------------------------------------
       ④-A 折り畳みプレビューの左右余白
       ----------------------------------------- */

    --message-preview-padding-left-sp: 20px;
    --message-preview-padding-right-sp: 20px;

    /* -----------------------------------------
       ④-B 開いた後の全文の左右余白
       ----------------------------------------- */

    --message-full-padding-left-sp: 20px;
    --message-full-padding-right-sp: 20px;

    /* -----------------------------------------
       「続きを読む」の既存調整値
       ----------------------------------------- */

    --message-body-top: 75px;
    --message-preview-top: 85px;
    --message-preview-height: 480px;
    --message-gradient-height: 12em;
    --message-button-bottom: 8px;
    --message-button-width: 180px;

  }

}

/* =========================================================
   8-4. メッセージセクション「続きを読む」本文折りたたみ・ボタン
   ========================================================= */

/* ---------------------------------------------------------
   本文の折りたたみ全体
   --------------------------------------------------------- */
.message-readmore {
  position: relative;
  display: block;
  width: 100%;
}

/* ---------------------------------------------------------
   閉じている時に表示する本文プレビュー
   --------------------------------------------------------- */
.message-readmore summary {
  position: relative;
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--message-text-color);
  text-align: left;
  cursor: pointer;
  list-style: none;
}

/* ---------------------------------------------------------
   Chrome / Edge / Safariの三角マークを消す
   --------------------------------------------------------- */
.message-readmore summary::-webkit-details-marker {
  display: none;
}
.message-readmore summary::marker {
  display: none;
}

/* ---------------------------------------------------------
   閉じている時の本文表示部分
   padding-top で本文の開始位置を調整し、
   height で「続きを読む」までに見せる本文量を調整します。
   --------------------------------------------------------- */
.message-readmore-preview {
  position: relative;
  display: block;
  width: 100%;
  height: var(--message-preview-height);
  padding-top: var(--message-preview-top);
  box-sizing: border-box;
  overflow: hidden;
  font-size: var(--message-body-size);
  font-weight: 400;
  line-height: var(--message-body-line-height);
  letter-spacing: 0.03em;
}

/* ---------------------------------------------------------
   プレビュー本文
   上部の余白は .message-readmore-preview の
   padding-top で設定するため、
   ここでは margin-top を設定しません。
   --------------------------------------------------------- */
.message-readmore-preview p {
  margin: 0 0 30px;
  font-size: var(--message-body-size);
  font-weight: 400;
  line-height: var(--message-body-line-height);
  letter-spacing: 0.03em;
}

/* ---------------------------------------------------------
   下部グラデーション
   --------------------------------------------------------- */
.message-readmore-preview::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--message-gradient-height);
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(243,242,243,0),
    rgba(243,242,243,0.80) 45%,
    var(--message-background) 100%
  );
  z-index: 2;
}

/* ---------------------------------------------------------
   「続きを読む」ボタン
   --------------------------------------------------------- */
.message-readmore-button {
  position: absolute;
  left: 50%;
  bottom: var(--message-button-bottom);
  z-index: 5;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--message-button-width);
  min-width: var(--message-button-width);
  padding: 9px 24px;
  box-sizing: border-box;
  border: 1px solid var(--message-text-color);
  border-radius: 999px;
  background: rgba(243,242,243,0.90);
  color: var(--message-text-color);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
  transition:
    background 0.25s ease,
    color 0.25s ease;
}

/* ---------------------------------------------------------
   マウスを乗せたとき
   --------------------------------------------------------- */
@media (hover: hover) {
  .message-readmore summary:hover .message-readmore-button {
    background: var(--message-text-color);
    color: #fff;
  }
}

/* =========================================================
   開いた状態
   ========================================================= */
.message-readmore-content {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  overflow: visible;
  box-sizing: border-box;
}

/* ---------------------------------------------------------
   開いた状態の本文
   --------------------------------------------------------- */
.message-readmore-content p {
  margin: var(--message-body-top) 0 30px;
  font-size: var(--message-body-size);
  font-weight: 400;
  line-height: var(--message-body-line-height);
  letter-spacing: 0.03em;
}

/* 最後の段落だけ余白をなくす */
.message-readmore-content p:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   開いた状態ではグラデーションを消す
   --------------------------------------------------------- */
.message-readmore-content::after {
  display: none;
}

/* ---------------------------------------------------------
   閉じた状態ではプレビューを表示
   開いた状態ではプレビューを非表示
   --------------------------------------------------------- */
.message-readmore[open] .message-readmore-preview {
  display: none;
}

/* ---------------------------------------------------------
   開いた後の「閉じる」ボタン
   --------------------------------------------------------- */
.message-readmore[open] .message-readmore-button {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: fit-content;
  margin: 20px auto 0;
  min-width: var(--message-button-width);
  background: transparent;
  font-size: 0;
}

/* ---------------------------------------------------------
   「続きを読む」→「閉じる」
   --------------------------------------------------------- */
.message-readmore[open] .message-readmore-button::after {
  content: "→閉じる";
  font-size: 16px;
  color: var(--message-text-color);
  letter-spacing: 0.05em;
}

/* =========================================================
   スマホ画面専用：メッセージセクションの調整
   PC・タブレットには影響しません
   ========================================================= */

@media screen and (max-width: 767px) {


  /* -----------------------------------------
     ① Hope Station：英字のサイズ
     ----------------------------------------- */

  /* Hope Station：英字のサイズ・太さ */
  .message-heading-en {
  font-size: var(--message-title-en-size-sp);
  font-weight: var(--message-title-en-weight-sp);
  }

  /* ① 希望の始発駅：日本語のサイズ */

  .message-heading-ja {
    font-size: var(--message-title-ja-size-sp);
  }


  /* ① Our Beliefs：背景英字のサイズ */

  .message-bg-text {
    font-size: var(--message-bg-size-sp);
  }


  /* -----------------------------------------
     ② Peace & Piece ロゴの画像サイズ
     ----------------------------------------- */

  .page-logo img {
    width: var(--page-logo-width-sp);
    max-width: 100%;
  }


  /* -----------------------------------------
     ③ MESSAGE 1～5：見出しの左右余白
     ----------------------------------------- */

  .message-name {
    padding-left: var(--message-name-padding-left-sp);
    padding-right: var(--message-name-padding-right-sp);
    box-sizing: border-box;
  }


  /* -----------------------------------------
     ④-A 折り畳みプレビューの左右余白
     MESSAGE 1～4
     ----------------------------------------- */

  .message-readmore-preview {
    padding-left: var(--message-preview-padding-left-sp);
    padding-right: var(--message-preview-padding-right-sp);
  }


  /* -----------------------------------------
     ④-B 開いた後の全文の左右余白
     MESSAGE 1～4
     ----------------------------------------- */

  .message-readmore-content {
    padding-left: var(--message-full-padding-left-sp);
    padding-right: var(--message-full-padding-right-sp);
    box-sizing: border-box;
  }


  /* -----------------------------------------
     ④-C MESSAGE 5：常時表示される全文
     ----------------------------------------- */

  .message-body > p {
    padding-left: var(--message-full-padding-left-sp);
    padding-right: var(--message-full-padding-right-sp);
    box-sizing: border-box;
  }

}


/* =========================================================
   9. Hope Station / Station Home 全画面画像
   ========================================================= */
.full-image-section {
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
  line-height: 0;
}
.full-image-section picture {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}
.full-screen-image {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Hope Station：画面いっぱい */
.hope-station-image {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  position: relative;
  overflow: hidden;
}
.hope-station-image .full-screen-image {
  display: block;
  width: 100vw;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 0;
  transform: translate(0, 0);
}

/* Station Home：少し小さく */
.station-home-image {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  text-align: center;
}
.station-home-image .full-screen-image {
  display: block;
  width: 90%;
  max-width: 90%;
  height: auto;
  margin: 0 auto;
  padding: 0;
  transform: translate(0, 0);
}

/* =========================================================
   10. スクロールページの開始位置
   ========================================================= */
#content {
  margin-top: 100vh;
  position: relative;
  z-index: 1;
}

/* =========================================================
   11. 「未来への扉」&#x20;
   ========================================================= */
.about-section {
  width: 100%;
  margin: 0;
  padding: 110px 20px 130px;
  background: linear-gradient(
    to bottom,
    #ffffff 0%,
    #faf8f3 50%,
    #f5f1e9 100%
  );
  box-sizing: border-box;
}
.about-inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* 旧HTMLで #about を使用している場合にも対応 */
#about {
  background: #f7f4ee;
  padding: 80px 6%;
}
#about h2 {
  font-size: 1.2rem;
  margin-bottom: 1.5rem;
  color: #1f2f55;
}
#about p {
  max-width: 900px;
  line-height: 1.9;
  font-size: 1rem;
}

/* =========================================================
   12. 不登校リスク
   ========================================================= */
.risk-section {
  background: #dfd8ca;
  padding: 80px 50px;
}
.risk-section-inner {
  max-width: 1100px;
  margin: auto;
  font-family: "Noto Sans JP", sans-serif;
  color: #1f2a44;
}
.risk-section h2 {
  text-align: center;
  font-size: 28px;
  font-weight: 500;
  margin-bottom: 10px;
  color: #1c2d5a;
  letter-spacing: 0.04em;
  position: relative;
}
.risk-section .lead {
  text-align: center;
  line-height: 1.9;
  margin-bottom: 40px;
  font-size: 16px;
  color: #2c3553;
}
.card-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.card {
  background: linear-gradient(to bottom, #fff, #f9fbff);
  border-radius: 16px;
  padding: 20px 30px;
  border: 2px solid #1c2d5a;
  box-shadow: 0 6px 16px rgba(20,30,60,0.06);
  transition: all 0.2s ease;
}
.card summary {
  font-weight: bold;
  font-size: 20px;
  cursor: pointer;
  margin-bottom: 10px;
  list-style: none;
  color: #1c2d5a;
}
.card ul {
  margin-top: 10px;
  padding-left: 18px;
  line-height: 1.8;
  color: #2a324d;
}

/* =========================================================
   12-1. スマホ専用：不登校リスクの表示調整
   ========================================================= */
@media screen and (max-width: 767px) {

  /* -------------------------------------------------------
     見出し（h2）
     ------------------------------------------------------- */
  .risk-section h2 {
    font-size: 21px;        /* 文字の大きさ */
    text-align: left;       /* left：左寄せ / center：中央 / right：右寄せ */
    line-height: 1.7;       /* 行間 */
    letter-spacing: 0.02em; /* 文字間隔 */

    /* 左右の余白 */
    padding-left: 0px;
    padding-right: 20px;
  }

  /* -------------------------------------------------------
     説明文（lead）：スマホ専用・左寄せを強制
     ------------------------------------------------------- */
  .risk-section .lead {
    font-size: 16px;        /* 文字の大きさ */
    text-align: left !important;       /* left：左寄せ / center：中央 / right：右寄せ */
    line-height: 1.9;       /* 行間 */
    letter-spacing: 0;      /* 文字間隔 */

    /* 左右の余白 */
    padding-left: 0px;
    padding-right: 20px;
  }

  /* -------------------------------------------------------
     座布団（カード）内の左右の余白
     ------------------------------------------------------- */
  .risk-section .card {
    padding-left: 22px;     /* 左側の余白 */
    padding-right: 22px;    /* 右側の余白 */
    box-sizing: border-box;
  }
}

/* =========================================================
   13. スクール紹介・特徴
   ========================================================= */
.features-heading h2 {
  font-size: 2rem;
  color: #8a7a5a;
  text-align: center;
  margin-top: 60px;
  margin-bottom: 40px;
}
.features-heading .lead {
  font-size: 2rem;
  line-height: 1.9;
  margin-bottom: 30px;
  text-align: center;
}

/* 2カラムブロック */
.list-half-parts .list-parts {
  display: flex;
  flex-direction: column;
  margin-bottom: 2rem;
}
.list-half-parts .list-parts h4 {
  font-size: 2rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 25px;
}
.list-half-parts .image-l-parts img,
.list-half-parts .image-r-parts img {
  border-radius: 40px;
  box-shadow:
    0 12px 24px rgba(0,0,0,0.12),
    0 24px 48px rgba(0,0,0,0.08);
}
.features-section .list-half-parts {
  padding: 0 50px;
  box-sizing: border-box;
}

/* 特徴リード文 */
.list-half-parts .text-parts p.feature-lead {
  padding-left: 15px;
  margin-top: 26px;
  margin-bottom: 10px;
}
.list-half-parts .text-parts p.feature-lead b {
  font-size: 1.55rem;
  font-weight: 600;
  color: #636262;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

/* =========================================================
   13-1. CTA・メタバース / プレスクール
   ========================================================= */
.metaverse-cta {
  text-align: left;
  margin: 40px auto;
  padding: 0 20px;
}
.metaverse-cta-lead {
  font-size: 1.55rem;
  font-weight: 600;
  color: #555;
  margin-bottom: 30px;
  margin-left: 10px;
  line-height: 1.8;
}
.btn-metaverse,
.btn-preschool {
  position: relative;
  display: inline-block;
  padding: 16px 36px;
  border-radius: 40px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  text-decoration: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 10px 25px rgba(0,0,0,0.22),
    inset 0 1px 0 rgba(255,255,255,0.35);
  transition:
    background-image 1.6s ease-in-out,
    transform 0.25s ease,
    box-shadow 0.25s ease;
  overflow: hidden;
}
.btn-metaverse::after,
.btn-preschool::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 45%;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0.4),
    rgba(255,255,255,0)
  );
  border-radius: 40px 40px 0 0;
  pointer-events: none;
}
.btn-metaverse,
.btn-preschool {
  background: linear-gradient(
    145deg,
    rgba(8,16,45,0.95) 0%,
    rgba(12,22,60,0.95) 60%,
    rgba(28,45,95,0.95) 100%
  );
}
@media (hover: hover) {
  .btn-metaverse:hover,
  .btn-preschool:hover {
    background: linear-gradient(
      145deg,
      rgba(203,185,148,0.92) 0%,
      rgba(180,160,120,0.92) 55%,
      rgba(150,130,95,0.92) 100%
    );
    transform: translateY(-4px) scale(1.02);
    box-shadow:
      0 16px 35px rgba(0,0,0,0.28),
      inset 0 1px 0 rgba(255,255,255,0.5);
  }
}

/* =========================================================
   13-2. 座布団型の見出し
   ========================================================= */
:root {
  --heading-text: #525252;
  --heading-border: #535252;
  --heading-border-width: 2px;
  --heading-bg: #fff;
  --heading-radius: 25px;
}
.feature-heading {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 27px 14px;
  background: var(--heading-bg);
  color: var(--heading-text);
  border: var(--heading-border-width) solid var(--heading-border);
  border-radius: var(--heading-radius);
  box-shadow:
    0 8px 18px rgba(0,0,0,0.12),
    0 2px 6px rgba(0,0,0,0.08);
  font-size: 1.7rem;
  font-weight: 600;
}
.badge-wrap img {
  width: 100px;
  height: auto;
  display: block;
}
.heading-text { display: block; }

/* =========================================================
   13-3. スマホ専用：当スクールの特徴・表示調整
   ========================================================= */
@media screen and (max-width: 767px) {

  /* -------------------------------------------------------
     セクション全体の左右の余白
     ------------------------------------------------------- */
  .features-section {
    padding-left: 0;
    padding-right: 0;
  }

  /* -------------------------------------------------------
     「当スクールだけの３つの特徴」の見出し
     ------------------------------------------------------- */
  .features-heading h2 {
    font-size: 1.15rem;       /* 見出しの文字サイズ */
    text-align: left;         /* left：左 / center：中央 */
    margin-top: 35px;
    margin-bottom: 20px;
    padding-left: 12px;       /* 見出しの左位置 */
    padding-right: 0;
    line-height: 1.6;
    letter-spacing: 0;
  }

  /* -------------------------------------------------------
     見出し下のリード文
     ------------------------------------------------------- */
  .features-heading .lead {
    font-size: 1rem;       /* リード文の文字サイズ */
    text-align: left;
    line-height: 1.8;
    margin-bottom: 25px;
    padding-left: 12px;
    padding-right: 0;
  }

  /* -------------------------------------------------------
     3つの特徴：全体の左右の余白
     ------------------------------------------------------- */
  .features-section .list-half-parts {
    padding-left: 12px;       /* 左側：ここを調整 */
    padding-right: 50px;      /* 右側：現在の値を維持 */
    box-sizing: border-box;
  }

  /* -------------------------------------------------------
     各特徴のブロック
     ------------------------------------------------------- */
  .list-half-parts .list-parts {
    margin-bottom: 1.8rem;
    min-width: 0;
  }
  .list-half-parts .text-parts {
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
  }

  /* -------------------------------------------------------
     座布団型の見出し全体
     ------------------------------------------------------- */
  .list-half-parts .list-parts h4.feature-heading {
    display: flex;
    align-items: center;
    gap: 8px;                 /* 画像と文字の間隔 */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 10px 8px;        /* 座布団の上下・左右の余白 */
    margin: 0 0 20px 0;
    font-size: 1.15rem;
    line-height: 1.4;
    letter-spacing: 0;
    overflow-wrap: anywhere;
  }

  /* -------------------------------------------------------
     座布団内の特徴画像（01・02・03）
     ------------------------------------------------------- */
  .list-half-parts .badge-wrap {
    flex: 0 0 66px;           /* 画像のスペース */
    width: 66px;
    min-width: 0;
  }
  .list-half-parts .badge-wrap img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
  }

  /* -------------------------------------------------------
     座布団内の見出し文字
     ------------------------------------------------------- */
  .list-half-parts .heading-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: 0;
  }
  .list-half-parts .heading-text .line1,
  .list-half-parts .heading-text .line2 {
    display: block;
  }

  /* -------------------------------------------------------
     特徴の小見出し（■ から始まる部分）
     ------------------------------------------------------- */
  .list-half-parts .text-parts p.feature-lead {
    padding-left: 5px;
    margin-top: 20px;
    margin-bottom: 8px;
    line-height: 1.6;
  }
  .list-half-parts .text-parts p.feature-lead b {
    font-size: 1rem;
    line-height: 1.6;
    letter-spacing: 0;
  }

  /* -------------------------------------------------------
     特徴の本文
     ------------------------------------------------------- */
  .list-half-parts .text-parts p:not(.feature-lead) {
    font-size: 0.95rem;
    line-height: 1.9;
    margin-top: 0;
    margin-bottom: 16px;
  }

  /* -------------------------------------------------------
     特徴の写真
     ------------------------------------------------------- */
  .list-half-parts .image-l-parts,
  .list-half-parts .image-r-parts {
    width: 100%;
    min-width: 0;
  }
  .list-half-parts .image-l-parts img,
  .list-half-parts .image-r-parts img {
    max-width: 100%;
    height: auto;
  }

  /* -------------------------------------------------------
     詳細リンク部分
     ------------------------------------------------------- */
  .metaverse-cta {
    margin: 25px 0;
    padding-left: 0;
    padding-right: 0;
  }
  .metaverse-cta-lead {
    font-size: 1rem;
    line-height: 1.8;
    margin-left: 0;
    margin-bottom: 20px;
  }
  .btn-metaverse,
  .btn-preschool {
    max-width: 100%;
    box-sizing: border-box;
    font-size: 1.15rem;
    padding: 13px 18px;
  }
}

/* =========================================================
   14. 入会までの流れ
   ========================================================= */
.flow-section {
  background: #f6f2ea;
  padding: 80px 6%;
}
.flow-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 6% 80px;
  border-radius: 30px;
  background: linear-gradient(135deg,#fff 0%,#f7f7f7 100%);
  box-shadow:
    12px 12px 30px rgba(0,0,0,0.08),
    -12px -12px 30px rgba(255,255,255,0.9);
}
.flow-section h2 {
  font-size: 2rem;
  color: #8a7a5a;
  text-align: center;
  margin-bottom: 60px;
}
.flow-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  position: relative;
}
.flow-list::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(to bottom,#e6d8b8,#cfae70);
}
.flow-item {
  position: relative;
  padding-left: 80px;
}
.flow-step {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg,#f08a24,#d96c05);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}
.flow-item h3 {
  font-size: 1.5rem;
  margin-top: 6px;
  margin-bottom: 12px;
  color: #333;
}
.flow-item p {
  font-size: 1.2rem;
  line-height: 1.9;
  color: #555;
}

/* =========================================================
   15. フッター
   ========================================================= */
footer {
  position: relative;
  margin-top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  text-align: center;
  font-size: 13px;
}
#footer1-parts {
  background: #e0e0e0;
  color: #555;
  padding: 50px 0;
  display: flex;
  gap: 5px;
  align-items: flex-start;
}
.footer-col {
  display: flex;
  flex-direction: column;
}

/* 左：ロゴ・連絡先 */
.footer-left {
  width: 25%;
  text-align: left;
  align-items: flex-start;
  padding-left: 30px;
  margin-top: -20px;
}

/* 中央：リンクバナー */
.footer-center {
  width: 50%;
  align-items: center;
}

/* 右：SNS・キャッチコピー */
.footer-right {
  width: 25%;
  align-items: flex-end;
  justify-content: flex-start;
  min-height: 220px;
  text-align: right;
}
.footer-catch {
  font-size: 24px;
  font-weight: 500;
  text-align: center;
  color: #666;
  line-height: 1.6;
  margin-top: 60px;
}
.footer-application-btn {
  margin: 53px 20px 0 0;
}
.footer-application-btn a,
.footer-contact-btn a {
  display: inline-block;
  padding: 8px 16px;
  font-size: 18px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  border: 1px solid #707070;
  transition: all 0.25s ease;
}
.footer-logo { margin: 0; }
.footer-logo img {
  display: block;
  width: 100%;
  max-width: 260px;
  height: auto;
}
.address-font {
  color: #333;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
  padding-left: 40px;
  margin-bottom: 8px;
}
.tel-font {
  color: #333;
  font-family: "Helvetica Neue", "DIN Alternate", "Arial Rounded MT Bold", Arial, sans-serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.4;
  padding-left: 40px;
  margin-bottom: 0;
}
.tel-note {
  color: #333;
  font-size: 11px;
  margin-left: 10px;
  white-space: nowrap;
  line-height: 1;
  margin-top: 0;
  margin-bottom: 15px;
}
.tel-link {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
  cursor: default;
}
.email-font a {
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: 600;
  padding-left: 40px;
  line-height: 1.6;
  margin-bottom: 12px;
  display: inline-block;
}
.footer-contact-btn { margin: 16px 0 0 40px; }
.sns1-parts {
  display: flex;
  gap: 14px;
}
.sns1-parts i {
  font-size: 26px;
  color: #555;
}
.footer-links-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
  width: 80%;
  max-height: 520px;
  overflow-y: visible;
}
.footer-banner.neu-banner {
  display: block;
  min-height: 60px;
  padding: 15px 20px 6px;
  border-radius: 0;
  background: #e0e0e0;
  line-height: 5;
  box-shadow:
    10px 10px 20px #bebebe,
    -4px -4px 16px #fff;
  transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.footer-banner.neu-banner img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}
.footer-banner.neu-banner:active { transform: scale(0.98); }

/* =========================================================
   17. 「未来への扉」本文
   ========================================================= */
.future-title {
  margin: 0 0 55px;
  padding: 0;
  text-align: center;
  font-weight: normal;
  transform: none;
}
.future-title-en {
  display: block;
  margin-bottom: 18px;
  font-family: "Montserrat","Noto Sans JP",sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.22em;
  color: #8b806e;
}
.future-title-ja {
  display: block;
  font-family:
    "Noto Sans JP",
    "ヒラギノ角ゴ ProN",
    "Hiragino Kaku Gothic ProN",
    Meiryo,
    sans-serif;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: #26384a;
}
.future-title::after {
  content: "";
  display: block;
  width: 70px;
  height: 1px;
  margin: 28px auto 0;
  background: #b8ad9c;
}
.future-lead {
  margin: 0 auto 70px;
  text-align: center;
  font-size: 21px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
  color: #4d4d4d;
}
.future-message {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  font-size: 25px;
  line-height: 2.35;
  letter-spacing: 0.06em;
  color: #555;
  text-align: left;
  transform: translateX(120px);
}
.future-message p { margin: 0 0 42px; }
.future-message p:first-child { margin-bottom: 50px; }
.future-message .future-emphasis {
  margin-top: 55px;
  margin-bottom: 55px;
  font-size: 25px;
  font-weight: 500;
  line-height: 2.2;
  color: #26384a;
  letter-spacing: 0.06em;
  text-align: left;
}
.future-message .future-closing {
  margin-top: 75px;
  margin-bottom: 0;
  text-align: left;
  font-size: 26px;
  font-weight: 500;
  line-height: 2.2;
  color: #26384a;
  letter-spacing: 0.06em;
}

/* スマートフォン縦向きのメニュー位置 */
@media screen and (orientation: portrait) and (max-width: 767px) {
  #menubar li:nth-of-type(1) { left: -1%; top: 1%; }
  #menubar li:nth-of-type(2) { left: 10%; top: 20%; }
  #menubar li:nth-of-type(3) { right: 5%; top: 25%; }
  #menubar li:nth-of-type(4) { right: -1%; top: 4%; }
}

/* =========================================================
   16. PC / タブレット / スマートフォン調整
   ========================================================= */

/* PC：769px以上 */
@media screen and (min-width: 769px) {
  .menu { font-size: 26px; }
  .heading-text .line1,
  .heading-text .line2 {
    display: inline;
    white-space: nowrap;
  }
  .heading-text .line2::before { content: " "; }
  .feature-heading {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
  }

  /* 特徴2カラム */
  .list-half-parts .list-parts {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .list-half-parts .image-l-parts,
  .list-half-parts .image-r-parts {
    width: 50%;
    align-self: center;
  }
  .list-half-parts .image-r-parts { margin-left: 2rem; }
  .list-half-parts .image-l-parts {
    order: -1;
    margin-right: 2rem;
  }
  .list-half-parts .image-r-parts figure,
  .list-half-parts .image-l-parts figure {
    margin-top: 60px;
    margin-bottom: 50px;
  }
  .list-half-parts .text-parts {
    flex: 1;
    padding-left: 35px;
    padding-right: 35px;
    margin-top: 80px;
    margin-bottom: 0;
  }
  .list-half-parts .text-parts h4 { margin-bottom: 20px; }
  .list-half-parts .text-parts p {
    font-size: 1.4rem;
    line-height: 1.6;
    padding-left: 32px;
  }
}

/* タブレット：768～1199px */
@media screen and (min-width: 768px) and (max-width: 1199px) {
  #message-banner {
    width: 480px;
    top: 70%;
  }
  .message-inner { width: calc(100% - 80px); }
  .message-bg-text { margin-top: 130px; }
  .message-content { column-gap: 6%; }
  :root {
    --message-title-en-size: 62px;
    --message-bg-size: 100px;
    --message-lead-size: 36px;
    --message-body-size: 17px;
  }
  .hope-station-image,
  .hope-station-image .full-screen-image {
    width: 100vw;
    max-width: 100vw;
  }
  .station-home-image .full-screen-image {
    width: 90%;
    max-width: 90%;
  }
  .about-section { padding: 90px 35px 110px; }
  .about-inner { max-width: 900px; }
  .future-title {
    margin-bottom: 50px;
    text-align: center;
    transform: none;
  }
  .future-title-ja { font-size: 31px; }
  .future-lead { font-size: 19px; margin-bottom: 60px; }
  .future-message {
    max-width: 760px;
    margin: 0 auto;
    font-size: 21px;
    line-height: 2.35;
    letter-spacing: 0.06em;
    text-align: left;
    transform: translateX(25px);
  }
  .future-message .future-emphasis { font-size: 21px; }
  .future-message .future-closing { font-size: 22px; }
}

/* スマートフォン：767px以下 */
@media screen and (max-width: 767px) {
  #message-banner {
    width: 85%;
    top: 68%;
  }

  /* メインメニュー */
  #menubar li a {
    width: 150px;
    line-height: 150px;
  }
  #menubar li a:hover { width: 153px; }
  .menu { font-size: 20px; }
  .menu-jp { font-size: 13px; }

  /* ヘッダー */
  #hero header {
    bottom: 6%;
  }
  header {
    display: flex;
    align-items: flex-start;
    padding: 5px 0 5px 2%;
  }
  header #logo {
    flex-shrink: 0;
    margin-top: 12px;
    margin-left: 12px;
  }
  header #logo img {
    width: 75px;
    display: block;
  }
  #new {
    flex: 1;
    line-height: 1.5;
    padding: 12px 15px 12px 2px;
    max-height: 90px;
    box-sizing: border-box;
  }
  #new dl {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  #new dt {
    display: none;
    width: 63px;
    flex-shrink: 0;
    font-size: 14px;
    letter-spacing: -0.5px;
    font-family: "Inter", "Arial", sans-serif;
  }
  #new dd {
    flex: 1;
    padding-left: 0;
    margin: 0;
    font-size: 17px;
    line-height: 1.45;
    word-break: break-word;
  }

  /* スクロール誘導 */
  #scroll-balloon {
    font-size: 16px;
    padding: 8px 16px;
    bottom: 16px;
  }

  /* 右側固定ボタン：現在の位置を維持 */
  .btn-side-primary a { top: 280px; }
  .btn-side-outline a { top: 455px; }

  /* MESSAGE */
  :root {
    --message-padding-sp: 55px;
    --message-title-en-size: 35px;
    --message-title-ja-size: 20px;
    --message-bg-size: 50px;
    --message-lead-size: 28px;
    --message-name-size: 17px;
    --message-body-size: 16px;
  }
  .message-inner {
    width: calc(100% - 70px);
    padding-top: var(--message-padding-sp);
    padding-bottom: var(--message-padding-sp);
  }
  .message-bg-text {
    margin-top: 40px;
    letter-spacing: -0.05em;
  }
  .message-content {
    grid-template-columns: 1fr;
    row-gap: 50px;
    margin-top: 55px;
  }
  .message-body { max-width: none; }
  .message-name { margin-top: 30px; }

  /* 続きを読む：スマホ */

  /*
     スマートフォンでは、閉じた状態の本文を
     PCより多く表示します。
     ※本文の位置は --message-preview-top、
       表示量は --message-preview-height、
       グラデーションは --message-gradient-height、
       ボタン位置は --message-button-bottom で調整します。
  */
  :root {
    --message-preview-top: 25px;
    --message-preview-height: 450px;
    --message-gradient-height: 15em;
    --message-button-bottom: 35px;
    --message-button-width: 180px;
  }
  .message-readmore-preview {
    height: var(--message-preview-height);
    padding-top: var(--message-preview-top);
  }
  .message-readmore-preview p {
    margin: 0 0 30px;
    font-size: var(--message-body-size);
    line-height: var(--message-body-line-height);
  }
  .message-readmore-button {
    padding: 8px 20px;
    font-size: 15px;
  }
  .message-readmore-content p {
    margin: var(--message-body-top) 0 30px;
    font-size: var(--message-body-size);
    line-height: var(--message-body-line-height);
  }
  .message-readmore[open] .message-readmore-button::after {
    font-size: 15px;
  }

  /* 全画面画像 */
  .hope-station-image,
  .hope-station-image .full-screen-image {
    width: 100vw;
    max-width: 100vw;
  }
  .station-home-image .full-screen-image {
    width: 94%;
    max-width: 94%;
  }

  /* about / リスク */
  .about-section { padding: 75px 28px 90px; }
  .risk-section { padding: 60px 25px; }
  .risk-section h2 { font-size: 25px; }
  .risk-section .lead { text-align: center; }
  .card { padding: 20px 35px; }
  .card ul {
    padding-left: 20px;
    list-style-position: inside;
  }

  /* features */
  .features-heading { padding: 10px 6%; }
  .features-heading h2 {
    font-size: 1.6rem;
    margin-bottom: 30px;
  }
  .features-heading .lead {
    font-size: 1.4rem;
    line-height: 1.8;
    margin-bottom: 24px;
  }
  .list-half-parts .list-parts figure {
    margin-left: 8px;
    margin-bottom: 30px;
  }
  .list-half-parts .text-parts {
    padding-left: 16px;
    padding-right: 6px;
    margin-bottom: 24px;
  }
  .list-half-parts .text-parts h4 {
    font-size: 1.6rem;
    font-weight: 600;
    margin-top: 80px;
    margin-bottom: 10px;
  }
  .list-half-parts .text-parts h4::before {
    width: 46px;
    height: 46px;
  }
  .list-half-parts .text-parts p {
    margin-top: 0;
    font-size: 1rem;
    line-height: 1.8;
    padding-left: 16px;
  }
  .list-half-parts .text-parts p.feature-lead b {
    font-size: 1.4rem;
    font-weight: 500;
  }

  /* CTA */
  .btn-metaverse,
  .btn-preschool {
    width: 100%;
    max-width: 320px;
    padding: 14px 20px;
    font-size: 0.95rem;
    box-sizing: border-box;
  }
  .metaverse-cta-lead {
    font-size: 1.15rem;
    font-weight: 600;
    text-align: center;
  }

  /* 座布団見出し */
  .feature-heading {
    font-size: 1.3rem;
    padding: 14px 23px 12px;
  }
  .heading-text {
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  .heading-text .line1 {
    display: block;
    white-space: nowrap;
  }
  .heading-text .line2 {
    display: block;
    text-align: right;
    white-space: nowrap;
    align-self: flex-end;
  }
  .badge-wrap img { width: 100px; }

  /* 入会までの流れ */
  .flow-section { padding: 80px 10%; }
  .flow-inner {
    padding: 40px 6%;
    border-radius: 20px;
  }
  .flow-section h2 {
    font-size: 1.6rem;
    margin-bottom: 50px;
  }
  .flow-list { gap: 40px; }
  .flow-list::before { left: 18px; }
  .flow-item { padding-left: 60px; }
  .flow-step {
    width: 40px;
    height: 40px;
    font-size: 0.55rem;
  }
  .flow-item h3 {
    font-size: 1.3rem;
    font-weight: 500;
  }
  .flow-item p {
    font-size: 1.1rem;
    line-height: 1.8;
  }

  /* フッター */
  #footer1-parts {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .footer-center { order: 1; }
  .footer-right {
    order: 2;
    gap: 16px;
    margin-bottom: 24px;
  }
  .footer-left { order: 3; }
  .footer-left,
  .footer-center,
  .footer-right {
    width: 100%;
    align-items: center;
  }
  .footer-links-grid {
    grid-template-columns: repeat(2,1fr);
    max-width: 400px;
    margin-bottom: 24px;
  }
  .footer-banner.neu-banner {
    padding: 8px 10px;
    box-shadow:
      5px 5px 30px #bebebe,
      -5px -5px 10px #fff;
  }
  .address-font,
  .tel-font,
  .email-font a {
    padding-left: 0;
  }
  .footer-logo img {
    max-width: 300px;
    margin-left: -25px;
  }
  .tel-note {
    display: block;
    margin-left: 0;
    margin-top: 6px;
    line-height: 1.3;
  }
  .tel-link {
    pointer-events: auto;
    cursor: pointer;
  }
  .footer-catch {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
    margin: 40px 0;
  }
  .footer-application-btn,
  .footer-contact-btn {
    margin: 20px 0 0;
    text-align: center;
  }

  /* 未来への扉 */
  .future-title {
    margin-bottom: 42px;
    text-align: center;
    transform: none;
  }
  .future-title-en {
    margin-bottom: 13px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }
  .future-title-ja {
    font-size: 25px;
    letter-spacing: 0.08em;
  }
  .future-title::after {
    width: 55px;
    margin-top: 22px;
  }
  .future-lead {
    margin-bottom: 48px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.04em;
  }
.future-message {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  font-size: 19px;
  line-height: 2.35;
  letter-spacing: 0.06em;
  color: #555;
  text-align: left;
  transform: none;
}
.future-message p {
  margin-bottom: 35px;
}
.future-message p:first-child {
  margin-bottom: 42px;
}
.future-message .future-emphasis {
  margin-top: 45px;
  margin-bottom: 45px;
  font-size: 19px;
  line-height: 2.35;
  letter-spacing: 0.06em;
  color: #26384a;
  text-align: left;
}
.future-message .future-closing {
  margin-top: 60px;
  margin-bottom: 0;
  font-size: 20px;
  line-height: 2.35;
  letter-spacing: 0.06em;
  color: #26384a;
  text-align: left;
}
}

/* =========================================================
   16-1. 小さいスマートフォン：480px以下
   ========================================================= */
@media screen and (max-width: 480px) {
  #new dd {
    font-size: 13px;
    line-height: 1.35;
  }
  :root {
    --message-title-en-size: 42px;
    --message-bg-size: 40px;
    --message-lead-size: 25px;
    --message-body-size: 15px;
  }
  .message-inner { width: calc(100% - 30px); }
  .message-content { row-gap: 40px; }

  /* 小さいスマートフォンでも
     「続きを読む」の高さ・本文開始位置・ボタン幅などは
     上のスマートフォン用変数をそのまま使用します。 */
  .message-readmore-preview p {
    margin: 0 0 30px;
  }
  .message-readmore-button {
    padding: 7px 18px;
    font-size: 14px;
  }
  .message-readmore-content p {
    margin: var(--message-body-top) 0 30px;
  }
  .message-readmore[open] .message-readmore-button::after {
    font-size: 14px;
  }
  .about-section { padding: 65px 24px 80px; }
  .future-title-en { font-size: 10px; }
  .future-title-ja { font-size: 23px; }
  .future-lead {
    font-size: 15px;
    line-height: 2.1;
  }
  .future-message {
    font-size: 15px;
    line-height: 2.2;
    letter-spacing: 0.03em;
  }
  .future-message .future-emphasis { font-size: 15px; }
  .future-message .future-closing { font-size: 16px; }
}

/* =========================================================
   16-2. PC（1200px以上）の最終調整
   ========================================================= */
@media screen and (min-width: 1200px) {
  #message-banner {
    width: 550px;
    top: 68%;
  }
  .hope-station-image,
  .hope-station-image .full-screen-image {
    width: 100vw;
    max-width: 100vw;
  }
  .station-home-image .full-screen-image {
    width: 90%;
    max-width: 90%;
  }
}

/* =========================================================
   16-3. マウス操作ができる端末だけのhover設定
   ========================================================= */
@media (hover: hover) {
  .sns1-parts a:hover i { color: #8a7a5a; }
  .footer-application-btn a:hover,
  .footer-contact-btn a:hover {
    background: #555;
    color: #fff;
  }
  .footer-banner.neu-banner:hover {
    background: linear-gradient(
      135deg,
      #e8e8e8 0%,
      #dcdcdc 50%,
      #cecece 100%
    );
    box-shadow:
      14px 14px 36px #bebebe,
      -12px -12px 18px #fff;
  }
}

/* =========================================================
   17. PC/スマホ 改行調整
   ========================================================= */

  /* パソコンでは改行しない */
  .sp-only {
    display: none;
  }

  /* スマホ画面だけ改行する */
@media screen and (max-width: 767px) {
  .sp-only {
    display: inline;
  }
}
