body{
  font-family:'メイリオ', 'Meiryo', sans-serif;
}

.cp_stepflow03 {
	font-size: 100%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	margin: 0 0 1em;
	padding: 0;
}
.cp_stepflow03 > li {
	position: relative;
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
	text-overflow: ellipsis;
	color: #b0bec5;
	 -ms-flex: 1;
	-moz-flex: 1;
	-webkit-box-flex: 1;
	     flex: 1;
}
.cp_stepflow03 > li .title {
	font-weight: bold;
}
.cp_stepflow03 > li .text {
	display: block;
	padding-right: 2.5em;
}
.cp_stepflow03 > li .bubble {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0 0 0.5em;
	border-radius: 3000px;
	background-color: #b0bec5;
}
.cp_stepflow03 > li .bubble::after,
.cp_stepflow03 > li .bubble::before {
	position: absolute;
	top: 9px;
	display: block;
	width: 100%;
	height: 3px;
	content: '';
	background-color: #b0bec5;
}
.cp_stepflow03 > li.completed,
.cp_stepflow03 > li.completed .bubble {
	color: #00acc1;
}
.cp_stepflow03 > li.completed .bubble,
.cp_stepflow03 > li.completed .bubble::after,
.cp_stepflow03 > li.completed .bubble::before {
	background-color: #4dd0e1;
}
.cp_stepflow03 > li:last-child .bubble::after,
.cp_stepflow03 > li:last-child .bubble::before {
	width: 0%;
	margin-right: 50%;
}
.cp_stepflow03 > li.active,
.cp_stepflow03 > li.active .bubble {
	color: #f57c00;
}
.cp_stepflow03 > li.active .bubble,
.cp_stepflow03 > li.active .bubble::after,
.cp_stepflow03 > li.active .bubble::before {
	background-color: #fb8c00;
}

.scroll-area {
  /* 1. 高さを指定（ここがスクロールの基準になります） */
  max-height: 250px; 
  /* 横幅を100%にして、最大幅を1000pxに制限する形に変更 */
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  
  /* 2. はみ出た部分をスクロールさせる */
  overflow-y: auto;
  
  /* デザイン調整 */
  padding: 15px;
  border: 1px solid #ddd;
  background-color: #fafafa;
  box-sizing: border-box; /* 枠線を含めて幅を計算する設定 */
  
  /* 基本の文字サイズ */
  font-size: 16px; 

  -webkit-overflow-scrolling: touch;
}

/* スマホ用の設定（画面幅が768px以下のとき） */
@media screen and (max-width: 768px) {
  .scroll-area {
    width: 95%;      /* 枠を画面いっぱいにせず、少し余白を持たせて狭める */
    font-size: 14px; /* 文字が小さすぎる場合はここを調整（14〜16px推奨） */
    padding: 10px;   /* 中の余白も少し詰めるとスッキリします */
  }
}

/* 見出しを少し目立たせる（任意） */
.scroll-area h3 {
  margin-top: 0;
  border-bottom: 2px solid #333;
  padding-bottom: 5px;
}

/* --- 1. ボタン全体を囲むコンテナ --- */
.button-group {
    display: flex;
    justify-content: center; /* PCで中央に寄せる */
    gap: 20px;               /* PCでのボタン同士の間隔（ここを小さくすればもっと縮まります） */
    margin: 20px auto;
    width: 100%;
}

/* --- 2. リンク（aタグ）の設定 --- */
.button-group a {
    display: block;
    text-decoration: none;
    width: 250px;           /* PCでのボタンの横幅を固定 */
    height: 100px;          /* PCでのボタンの高さを固定 */
    transition: all 0.3s ease; /* ホバー時の動きを滑らかにする */
}

/* --- 3. ボタンの共通設定（buttonタグでもaタグ直下でも対応） --- */
.button-1, .button-orange {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;            /* 親(aタグ)の幅いっぱいに広がる */
    height: 100%;           /* 親(aタグ)の高さいっぱいに広がる */
    padding: .9em 1em;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    box-sizing: border-box;
    margin: 0;              /* 余計なマージンをリセット */
}

/* 青ボタン（枠線タイプ） */
.button-1 {
    border: 1px solid #2589d0;
    color: #2589d0;
    background-color: #fff;
}

/* オレンジボタン（塗りつぶしタイプ） */
.button-orange {
    border: 1px solid #ff9b3d;
    background-color: #ff9b3d;
    color: #fff;
}

/* 矢印アイコンの設定 */
.button-1::after, .button-orange::after {
    transform: rotate(45deg);
    width: 6px;
    height: 6px;
    margin-left: 10px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    content: '';
}

/* --- 4. ホバーアクション（PC用） --- */
@media (min-width: 769px) {
    .button-group a:hover {
        opacity: 0.8;
        transform: translateY(-3px); /* 少し上に浮き上がる */
    }
    
    .button-group a:hover .button-1 {
        background-color: #f0f8ff; /* 青ボタン背景を薄い青に */
    }
    
    .button-group a:hover .button-orange {
        background-color: #f08b2d; /* オレンジを少し濃く */
        box-shadow: 0 4px 15px rgba(255, 155, 61, 0.3); /* オレンジの影 */
    }
}

/* --- 5. スマホ用の設定（画面幅768px以下） --- */
@media screen and (max-width: 768px) {
    .button-group {
        flex-direction: column; /* 縦並びに変更 */
        align-items: center;    /* 中央寄せ */
        gap: 15px;              /* ボタン同士の上下間隔 */
    }

    .button-group a {
        width: 80%;             /* スマホでは画面の8割の幅にする */
        max-width: 300px;
        height: 80px;           /* スマホでのボタンの高さを固定（100pxより少し低め） */
    }

    .button-1, .button-orange {
        font-size: 16px;        /* 文字サイズを維持 */
    }
}

/* --- PCとスマホ共通の基本設定 --- */
.hover-img-container {
    overflow: hidden; /* 画像が枠からはみ出さないようにする */
    display: inline-block; /* 画像のサイズに合わせる */
    line-height: 0;        /* 下の隙間を消す */
}

.hover-img {
    width: 100%;           /* レスポンシブ対応：親要素の幅に合わせる */
    height: auto;
    transition: all 0.3s ease; /* 動きを滑らかに */
    cursor: pointer;
}

/* --- PCだけで適用するホバー設定（画面幅769px以上） --- */
@media (min-width: 769px) {
    .hover-img:hover {
        transform: scale(1.1); /* 1.1倍に拡大 */
        opacity: 0.8;          /* 少し明るく（透明に） */
    }
}

/* --- スマホ用の設定（画面幅768px以下） --- */
@media screen and (max-width: 768px) {
    .hover-img {
        /* スマホでは拡大させず、タップした時だけ少し透明にする程度が使いやすい */
    }
    .hover-img:active {
        opacity: 0.7; /* タップした瞬間だけ反応させる */
    }
}

/* ボタン共通のホバー設定 */
.button-1, .button-orange {
    /* 動きを滑らかにする設定 */
    transition: all 0.3s ease;
}

/* マウスを乗せたときの動き */
.button-1:hover, .button-orange:hover {
    opacity: 0.8;             /* 少し透明にする */
    transform: translateY(-3px); /* 3px上に浮かせる */
    box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* 影をつけて浮遊感を出す */
}

/* 青ボタンのホバー時（お好みで背景に色をつける場合） */
.button-1:hover {
    background-color: #f0f8ff; /* ほんのり青白くする */
}

/* オレンジボタンのホバー時 */
.button-orange:hover {
    /* 背景オレンジのまま、少しだけ色を濃くする場合などはここで調整 */
    background-color: #f08b2d; 
}


/* --- PCでの基本設定 --- */
.agreement-lead {
    text-align: center;
    font-size: 20px; 
    font-weight: bold;
    margin: 20px 0;
}

/* --- スマホ用の設定（画面幅768px以下） --- */
@media screen and (max-width: 768px) {
    .agreement-lead {
        /* スマホで「少し大きく」なら18px〜20px、
           「標準的」なら16pxに設定してください */
        font-size: 14px; 
        
        display: block;
        margin: 15px 0;
        line-height: 1.6; /* 改行した時に見やすく */
        color: #333;
    }
}

/* PCでは改行を表示しない */
.sp-only {
    display: none;
}

@media screen and (max-width: 768px) {
    /* スマホの時だけ改行を有効にする */
    .sp-only {
        display: inline;
    }

    /* 前の回答の文字サイズ調整も合わせて適用 */
    p[style*="text-align: center"] strong {
        font-size: 22px;
        line-height: 1.5; /* 改行した時に行間が詰まりすぎないように調整 */
    }
}

.heading-22 {
    padding: .5em .7em;
    border-left: 5px solid #2589d0;
    background-color: #f2f2f2;
    color: #333333;

    /* --- 中央寄せのための追加設定 --- */
    width: 1000px;      /* 文字の長さに合わせて幅を自動調整 */
    margin-left: auto;      /* 左の余白を自動 */
    margin-right: auto;     /* 右の余白を自動 */
    text-align: left;     /* 中の文字も中央に寄せたい場合 */
}


/* スマホ用の設定（画面幅768px以下） */
@media screen and (max-width: 768px) {
    .heading-22 {
        font-size: 20px;    /* 文字をひと回り大きく */
        width: 90%;         /* 文字の長さに合わせず、画面幅の9割まで広げる */
        box-sizing: border-box; /* パディングを含めた幅計算にする */
        text-align: left; /* 文字を中央揃えに */
        padding: .7em;      /* 上下左右の余白を少し広げてどっしりさせる */
    }
}

/* --- 1. 親コンテナの設定 --- */
.hover-img-container {
    overflow: hidden;      /* 拡大した時に枠からはみ出さない */
    display: inline-block; /* 画像サイズに合わせる */
    line-height: 0;
    width: 100%;           /* レスポンシブ対応 */
    max-width: 500px;      /* 画像の最大サイズ（任意で調整） */
}

/* --- 2. aタグ（リンク）の設定 --- */
.hover-img-container a {
    display: block;        /* 画像全体をリンク範囲にする */
    width: 100%;
    height: 100%;
    text-decoration: none;
}

/* --- 3. 画像自体の設定 --- */
.hover-img {
    width: 100%;
    height: auto;
    transition: all 0.3s ease; /* 動きを滑らかにする */
    cursor: pointer;
    vertical-align: bottom;
}

/* --- 4. PC用のホバーアクション（769px以上） --- */
@media (min-width: 769px) {
    /* aタグにマウスが乗った時に、中の画像を動かす */
    .hover-img-container a:hover .hover-img {
        transform: scale(1.1);   /* ズーム */
        opacity: 0.8;            /* 少し透明に */
    }

    /* 浮き上がる動きもつけたい場合はこちら */
    .hover-img-container a:hover {
        transform: translateY(-5px); 
        box-shadow: 0 10px 20px rgba(0,0,0,0.2);
    }
}

/* --- 5. スマホ用の設定（768px以下） --- */
@media screen and (max-width: 768px) {
    .hover-img-container a:active .hover-img {
        opacity: 0.7; /* タップした瞬間だけ反応 */
    }
}

/* --- 1. 親コンテナ --- */
.button-container-back {
    display: flex;
    justify-content: flex-start; /* 左側に寄せる */
    width: 100%;
}

/* --- 2. aタグ（リンク）の設定 --- */
.button-container-back a {
    display: block;
    text-decoration: none;
    width: 250px;           /* PCでのボタン幅 */
    height: 60px;           /* 高さを指定 */
    margin: 20px auto;
    transition: all 0.3s ease;
}

/* --- 3. ボタン本体 --- */
.button-back {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;            /* aタグの幅いっぱいに広がる */
    height: 100%;
    padding: 0 1em;
    border: 1px solid #2589d0;
    border-radius: 5px;
    background-color: #fff;
    color: #2589d0;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    box-sizing: border-box;
}

/* 左向き矢印 */
.button-back::before {
    content: '';
    transform: rotate(-135deg);
    width: 6px;
    height: 6px;
    margin-right: 10px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

/* --- 4. スマホ用の設定（768px以下） --- */
@media screen and (max-width: 768px) {
    .button-container-back a {
        /* ★左右の余白を auto にして中央寄せ */
        margin: 0 auto;
        display: flex;             /* 中央寄せを有効にするために必要 */
        justify-content: center;   /* 文字も中央に */
        align-items: center;       /* 文字も中央に */
        
        width: 220px;       /* スマホ用の幅 */
        height: 55px;       /* スマホ用の高さ */
    }
}