@charset "utf-8";



/*リセットCSS（sanitize.css）の読み込み
---------------------------------------------------------------------------*/
@import url("https://unpkg.com/sanitize.css");

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css");

/*lightbox.cssの読み込み
---------------------------------------------------------------------------*/
@import url(https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.10.0/css/lightbox.css);

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");

/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("animation.css");


/*mainブロック設定
---------------------------------------------------------------------------*/
main {
	margin: 2rem 0;			/*ブロックの外側（上下、左右）に空けるスペース*/
}

/*FAQ
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
	padding: 0 2rem;	/*上下、左右へのボックス内の余白*/
}

/*質問*/
.faq dt {
	border-radius: 10px;		/*枠を角丸にする指定*/
	margin-bottom: 1rem;	/*下に空けるスペース*/
	background: #fffabe;		/*背景色*/
	border: 2px solid #e1b05b;	/*枠線の幅、線種、色*/
	text-indent: -2rem;				/*テキストのインデント。質問が複数行になった際に、テキストの冒頭を揃える為に設定しています。*/
	padding: 5px 1em 5px 3em;		/*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
}

/*アイコン（Font Awesome）*/
.faq dt::before {
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
    content: "\f059";	/*アイコンのコード*/
	padding-right: 1rem;	/*アイコンとテキストとの間のスペース*/
}

/*回答*/
.faq dd {
	padding: 5px 1rem 30px 3rem;		/*ボックス内の余白**/
}

/*opencloseを適用した要素のカーソル*/
.openclose {
	cursor: pointer;	/*カーソルの形状。リンクと同じスタイルにしてクリックできると認識してもらう。*/
}


/*全体の設定
---------------------------------------------------------------------------*/
html,body {
	height: 100%;
}

body {
	font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;	/*フォント種類（ゴシック）*/
	-webkit-text-size-adjust: none;
	background-color: #d0fbff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='%2345aafd' fill-opacity='0.15'%3E%3Cpolygon fill-rule='evenodd' points='8 4 12 6 8 8 6 12 4 8 0 6 4 4 6 0 8 4'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: repeat; /* 繰り返し表示を指定 */
	background-size: 40px 40px; /* 繰り返し単位をSVGのサイズに合わせる */
	color: #3e392f;		/*文字色*/
	line-height: 2;		/*行間*/
	animation: opa1 0.3s 0.5s both;	/*0.5秒の間だけ非表示にし、その後0.3秒かけてフェードイン表示。上部のメインメニューのデフォルトが一瞬見えてしまうのを回避する為の応急措置です。*/
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav {margin: 0;padding: 0;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*他*/
input {font-size: 1rem;}
section + section {
	margin-top: 3rem;
}


/*文字サイズの設定
---------------------------------------------------------------------------*/
/*「大」ボタンを押した時の文字サイズ*/
body.f-large {
	font-size: 24px;
}

/*「小」ボタンを押した時の文字サイズ*/
body.f-small {
	font-size: 16px;
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #45aafd;	/*文字色*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	filter: brightness(1.1);	/*少しだけ明るくする*/
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	height: 100%;
	display: flex;	/*flexボックスを使う指定*/
	flex-direction: column;	/*子要素を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	max-width: 1800px;	/*サイトの最大幅。これ以上広がらない。*/
	margin: 0 auto;
}


/*コンテンツ（フッター関連「以外」を囲むブロック）
---------------------------------------------------------------------------*/
#contents {
	flex: 1;
	padding: 3%;	/*コンテンツ内の余白*/
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
	padding: 20px 120px 20px 3%;	/*上下、左右へのヘッダー内の余白*/
	display: flex;					/*flexボックスを使う指定*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	align-items: center;			/*垂直揃えの指定。天地中央に配置されるように。*/
	background: #fffabe;		/*背景色*/
}

/*ロゴ*/
#logo img {display: block;}
#logo {
	max-width: 400px;	/*幅*/
}

	/*画面幅600px以下の追加指定*/
	@media screen and (max-width:600px) {

	/*ヘッダーブロック*/
	header {
		flex-direction: column;	/*子要素を縦並びにする*/
		align-items: stretch;	/*デフォルトに戻す*/
		padding-right: 80px;	/*右側へのpaddingだけ上書き*/
	}

	}/*追加指定ここまで*/


	/*画面幅500px「以下」の追加指定。文字サイズボタンにロゴが重ならないようにする為。*/
	@media screen and (max-width:500px) {
	
	/*ロゴ*/
	#logo {
		width: calc(100% - 160px);	/*画面幅を500px以下にした際に、ロゴが重ならないように160pxの部分を調整します。*/
	}
	
	}/*追加指定ここまで*/


/*文字サイズ変更ボタン
---------------------------------------------------------------------------*/
/*ボタンブロック全体*/
#f-size {
	background: #fffef8;	/*背景色*/
	box-shadow: 0px 0px 8px rgba(0,0,0,0.2);	/*影の設定。右へ、下へ、ぼかし幅。rgbaは色設定で0,0,0は黒。0.2は20%色がついた状態の事。*/
	border-radius: 0px 0px 5px 5px;	/*角丸のサイズ。左上、右上、右下、左下への順。*/
	display: flex;			/*flexボックスを使う指定*/
	align-items: center;	/*垂直揃えの指定。天地中央に配置されるように。*/
	padding: 10px 15px;		/*ブロック内の余白。上下、左右へ。*/
	position: absolute;		/*headerに対して絶対配置する*/
	right: 3%;				/*右からの配置場所*/
	top: 0px;				/*上からの配置場所*/
}

	/*画面幅900px「以下」の追加指定。ハンバーガーアイコンが出る分、位置をずらす。*/
	@media screen and (max-width:900px) {
	
	#f-size {
		right: 100px;
	}
	
	}/*追加指定ここまで*/


/*「文字サイズ」のテキスト*/
#f-size p {
	margin: 0;
	margin-right: 10px;	/*右側に空けるスペース。ボタンとの間にとるスペースです。*/
	font-size: 0.85rem;	/*文字サイズ*/
}

	/*画面幅600px「以下」の追加指定。*/
	@media screen and (max-width:600px) {
	
	#f-size p {
		display: none;	/*画面が狭くなるので、非表示にする*/
	}
	
	}/*追加指定ここまで*/


/*「小」「大」を囲むブロック*/
#f-size ul {
	list-style: none;margin: 0;padding: 0;
	display: flex;			/*flexボックスを使う指定*/
	align-items: center;	/*垂直揃えの指定。天地中央に配置されるように。*/
}

/*「小」ボタン設定*/
#f-size ul li#f-small::before {
	display: block;
	content: "小";		/*「小」の文字を出力*/
	font-size: 16px;	/*文字サイズ*/
	width: 40px;		/*幅*/
	line-height: 40px;	/*高さ*/
	text-align: center;	/*内容をセンタリング*/
	background: #eee;	/*背景色*/
}
#f-size ul li#f-small {
	margin-right: 5px;	/*右側に空けるスペース。「大」との間の隙間です。*/
}

/*「大」ボタン設定*/
#f-size ul li#f-large::before {
	display: block;
	content: "大";		/*「大」の文字を出力*/
	font-size: 30px;	/*文字サイズ*/
	width: 50px;		/*幅*/
	line-height: 50px;	/*高さ*/
	text-align: center;	/*内容をセンタリング*/
	background: #eee;	/*背景色*/
}

/*選択中の設定*/
#f-size li#f-large.current::before,
#f-size li#f-small.current::before {
	background: #45aafd;	/*背景色*/
	color: #fff;			/*文字色*/
}

/*マウスオン時にリンクテキストと同じような手のマークが出るように*/
#f-size li {
	cursor: pointer;
}

/*メニューブロック設定
---------------------------------------------------------------------------*/
#menubar a {display: block;text-decoration: none;}
#menubar ul {list-style: none;margin: 0;padding: 0;font-family: "Font Awesome 5 Free";}
#menubar.d-n, #menubar_hdr.d-n, #menubar .ddmenu_parent ul {display: none;}
#menubar.d-b {display: block;}
#menubar_hdr.d-b {display: flex;}
#menubar {
	position: relative;z-index: 1;	/*スライドショーがある場合に下に隠れないようにするため*/
	font-size: 18px;	/*文字サイズ。端末サイズで文字サイズが変わると不具合が出る場合があるので、ここで統一しています。*/
}

/*ドロップダウンメニューのリンクタグ*/
#menubar .ddmenu {
	cursor: default;	/*リンク要素のカーソルを矢印に変更しておく*/
}

/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
	content: "\f078";	/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	font-weight: bold;	/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 1em;	/*アイコンとテキストとの間に空けるスペース*/
}


/*大きな端末用のメニューブロック設定
---------------------------------------------------------------------------*/
.p #menubar > nav > ul {
	display: flex;					/*flexボックスを使う指定*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	margin: 0 auto;
	border-bottom: 5px solid #ffce79;			/*枠線の幅、線種、色*/
}

/*メニュー１個あたりの設定*/
.p #menubar li {
	text-align: center;	/*テキストをセンタリング*/
	flex: 1;			/*個々のメニューを均等にし、幅いっぱいまで使う設定*/
	position: relative;	/*ドロップダウンの幅となる基準を作っておく*/
}
.p #menubar a {
	padding: 10px;		/*メニュー内の余白*/
	background: #45aafd;
	color: white;        /* 文字色を白に指定 */
	font-weight: bold; 
}



/*大きな端末用のドロップダウンメニュー
---------------------------------------------------------------------------*/
/*ドロップダウンメニューブロック全体*/
.p #menubar ul ul {
	position: absolute;z-index: 100;
	width: 100%;
	border: 1px solid #fffef8;	/*枠線の幅、線種、色*/
}


/*小さな端末用の開閉ブロック
---------------------------------------------------------------------------*/
/*メニューブロック設定*/
.s #menubar.d-b {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding: 100px 20px 20px;			/*ブロック内の余白。上、左右、下。*/
	background: rgba(0,0,0,0.9);		/*背景色。0,0,0は黒の事で0.9は色が90%出た状態。*/
	text-align: center;					/*内容をセンタリング*/
	animation: animation1 0.2s both;	/*animation.cssのanimation1を実行する。0.2sは0.2秒の事。*/
}

/*メニュー１個あたりの設定*/
.s #menubar a {
	padding: 10px;		/*メニュー内の余白*/
	color: #fff;		/*文字色*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	position: fixed;z-index: 101;
	cursor: pointer;
	right: 30px;			/*右からの配置場所指定*/
	top: 30px;				/*上からの配置場所指定*/
	padding: 16px 14px;		/*上下、左右への余白*/
	width: 46px;			/*幅（３本バーが出ている場合の幅になります）*/
	height: 46px;			/*高さ*/
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素（３本バー）を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	background: rgba(0,0,0,0.5);	/*背景色*/
	border-radius: 50%;				/*円形にする*/
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	transition: 0.3s;	/*アニメーションにかける時間。0.3秒。*/
	border-top: 1.5px solid #fff;	/*線の幅、線種、色*/
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;	/*変形の起点。センターに。*/
	width: 20px;						/*バーの幅*/
}

/*×印が出ている状態の設定。※１本目のバー。*/
#menubar_hdr.ham span:nth-of-type(1){
	transform: rotate(45deg) translate(3.8px, 5px);	/*回転45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※３本目のバー。*/
#menubar_hdr.ham span:nth-of-type(3){
	transform: rotate(-45deg) translate(3.8px, -5px);	/*回転-45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※２本目のバー。*/
#menubar_hdr.ham span:nth-of-type(2){
	display: none;	/*２本目は使わないので非表示にする*/
}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
	font-size: 0.7rem;		/*文字サイズ。bodyのfont-sizeの70%です。*/
	background: #fffabe;		/*背景色*/
	text-align: center;		/*内容をセンタリング*/
	padding: 20px;			/*ボックス内の余白*/
}

/*リンクテキスト*/
footer a {color: inherit;text-decoration: none;}

/*著作部分*/
footer .pr {display: block;}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;		/*右からの配置場所指定*/
	bottom: 20px;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #ff0000 !important;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #eee;border: 1px solid #ccc; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	.ws {width: 48%;display: inline;}
	.sh {display: none;}
	.pc {display: block;}

	}/*画面幅900px以上の追加指定ここまで*/

	.image-container {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100vh; /* 画面の高さを最大化 */
		width: 100%;   /* 親要素が画面全体をカバー */
	}
	.responsive-image {
		display: block;
		max-width: 100%;    /* 横幅が画面を超えないようにする */
		max-height: 100vh; /* 画像が画面高さを超えないようにする */
		margin: auto;      /* 画面中央に配置 */
		object-fit: contain; /* アスペクト比を保ったままサイズ変更 */
	}

	.images-container {
		display: flex;
		flex-wrap: wrap; /* 画面サイズが狭いときは折り返す */
		justify-content: center; /* 画像を中央配置（左寄せなら "flex-start"） */
		gap: 10px; /* 画像間の余白 */
	}
	
	.images-container img {
		max-width: 100%; /* 画像を画面の幅に収める */
		height: auto; /* 縦横比を保持 */
		width: 200px; /* 初期幅（調整可能） */
		border-radius: 10px; /* 角丸（任意） */
	}
	
	/* スマホなど画面幅600px以下の場合に縦並びにする */
	@media (max-width: 600px) {
		.images-container {
			flex-direction: column; /* 画像を縦並びに */
			align-items: center; /* 中央寄せ */
		}
	}
		
	.character-image {
		width: 100%; /* 画面の横幅いっぱいに広げる */
		max-width: 1200px; /* PCなどの大画面では1200pxを超えない */
		height: auto; /* アスペクト比を維持 */
		display: block; /* 余白をなくす */
		margin: 0 auto; /* 中央寄せ（任意） */
	}


	.narration {
		font-size: 1.1em;              /* 少し大きめの文字サイズ */
		line-height: 1.6;              /* 読みやすい行間 */
		padding: 1em 1.5em;            /* 適度な余白 */
		background-color: #e2fdff;     /* 優しい背景色 */
		border-radius: 8px;            /* 角を少し丸める */
		margin: 1.5em 0;               /* 上下に余白 */
		box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1); /* 軽い影で浮いている印象 */
	}


	/* 見出し用 */
	.heading-container {
		display: flex;
		justify-content: center;
		margin-top: 2em;
		margin-bottom: 0.5em;
		position: relative; /* 耳の位置を相対的に調整 */
	}
	
	.oval-heading {
		text-align: center;
		font-size: 1.3em;
		font-weight: bold;
		color: #45aafd;
		background-color: #fffabe;
		padding: 0.5em 0.5em;
		min-width: 100px;
		border-radius: 50px;
		display: inline-block;
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		position: relative; /* 擬似要素を配置しやすくするため */
	}
	
	/* うさぎの耳 (左) */
	.oval-heading::before,
	.oval-heading::after {
		content: "";
		position: absolute;
		width: 20px; /* 耳の幅 */
		height: 50px; /* 耳の高さ */
		background-color: #fffabe; /* 見出しと同じ色 */
		border-radius: 100%; /* 楕円形にする */
		top: -30px; /* 見出しの上側に配置 */
	}
	
	/* 左耳 */
	.oval-heading::before {
		left: 50%; /* 見出しの中央基準 */
    transform: translateX(-23px) rotate(-20deg); /* 左右固定間隔 */
	}
	
	/* 右耳 */
	.oval-heading::after {
		left: 50%; /* 見出しの中央基準 */
    transform: translateX(3px) rotate(20deg); /* 左右固定間隔 */
	}

	.list-container {
		display: flex;             /* 子要素を中央寄せ */
		justify-content: center;   /* 水平方向の中央寄せ */
		width: 100%;               /* コンテナ幅を親要素に合わせる */
	}
	
	.list-container ul {
		text-align: left;         /* リストの左寄せを維持 */
		list-style-type: disc;    /* 通常の黒丸リスト */
		width: fit-content;       /* リストの幅を内容に合わせる */
		padding-left: 20px;       /* 左側の余白（調整可能） */
	}

	.list-container ol {
		text-align: left;         /* リストの左寄せを維持 */
		list-style-type: decimal; /* 通常の番号付きリスト */
		width: fit-content;       /* リストの幅を内容に合わせる */
		padding-left: 20px;       /* 左側の余白（調整可能） */
	}

	.text-container {
		display: flex;             /* 子要素を中央寄せ */
		justify-content: center;   /* 水平方向の中央寄せ */
		width: 100%;               /* コンテナ幅を親要素に合わせる */
	}
	
	.text-container p {
		text-align: left;         /* 文章の左寄せを維持 */
		width: fit-content;       /* 幅を内容に合わせる */
		padding: 10px;            /* 読みやすいように余白を追加 */
	}
	
/* ボタンのコンテナを中央寄せ */
.next-button-container {
    display: flex; /* フレックスボックスで中央寄せ */
    justify-content: center; /* 横方向に中央寄せ */
    align-items: center; /* 縦方向に中央寄せ */
    margin: 50px 0; /* 上下の余白 */
}

/* ボタンのスタイル */
.next-button {
    display: inline-block; /* インラインブロックに設定 */
    text-align: center; /* テキストを中央寄せ */
    font-size: 1.5rem; /* ボタンの文字サイズ */
    color: white; /* 文字色 */
    background-color: #45aafd; /* 背景色 */
	font-weight: bold; 
    padding: 15px 30px; /* 内側の余白（ボタンサイズ調整） */
    border: none; /* ボーダーを除去 */
    border-radius: 50px; /* 角を丸める */
    text-decoration: none; /* 下線を消す */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2); /* 軽い影を追加 */
    transition: background-color 0.3s ease, transform 0.2s ease; /* アニメーション */
}

/* ボタンホバー時のエフェクト */
.next-button:hover {
    background-color: #3a95e0; /* 少し濃い青に変化 */
    transform: scale(1.05); /* わずかに拡大 */
}

/* ボタンアクティブ時のエフェクト */
.next-button:active {
    background-color: #003f7f; /* さらに濃い青に */
    transform: scale(0.98); /* わずかに縮小 */
}

/* レスポンシブ対応：画面が狭い場合に文字サイズと余白を調整 */
@media (max-width: 768px) {
    .next-button {
        font-size: 1.2rem; /* 文字サイズを小さく */
        padding: 10px 20px; /* 余白も調整 */
    }
}

/*入力フォーム*/
/* フォーム全体を中央寄せするためのスタイル */
.form-container {
    display: flex;
    flex-direction: column; /* 縦に配置 */
    align-items: center; /* 中央揃え */
    margin: 20px 0; /* フォーム周辺の余白 */
}

/* 入力欄のスタイル */
.answer-input {
    width: 300px; /* 入力欄の幅 */
    padding: 10px; /* 内側の余白 */
    font-size: 1rem; /* 文字サイズ */
    border: 2px solid #ccc; /* ボーダー色 */
    border-radius: 5px; /* 角を少し丸く */
    margin-bottom: 15px; /* ボタンとの間に余白 */
    transition: border-color 0.3s ease;
}

/* 入力欄のフォーカス時 */
.answer-input:focus {
    border-color: #007bff; /* フォーカス時のボーダー色 */
    outline: none; /* デフォルトのアウトラインを削除 */
}

/* 送信ボタンのスタイル */
.send-button {
    width: 150px; /* ボタンの幅 */
    padding: 10px 20px; /* 内側の余白 */
    font-size: 1rem; /* 文字サイズ */
    color: white; /* テキストの色 */
    background-color: #45aafd; /* 背景色 */
    border: none; /* ボーダーなし */
    border-radius: 5px; /* 角を少し丸く */
    cursor: pointer; /* カーソルをポインターに変更 */
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* 軽い影 */
    transition: background-color 0.3s ease, transform 0.2s ease;
}

/* ボタンのホバー時 */
.send-button:hover {
    background-color: #3a95e0; /* 濃い青 */
    transform: scale(1.05); /* わずかに拡大 */
}

/* ボタンのアクティブ時 */
.send-button:active {
    background-color: #003f7f; /* さらに濃い青 */
    transform: scale(0.95); /* わずかに縮小 */
}

/* タイトル画像のコンテナ */
.title-container {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%; /* 16:9のアスペクト比 */
    overflow: hidden; /* 画像のはみ出しを防ぐ */
    background: #d0fbff; /* 必要に応じて背景色を設定 */
}

/* タイトル画像 */
.title-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像の中央を維持し、サイズを調整 */
    opacity: 0; /* 初期状態を透明に */
    transform: scale(1.1); /* やや拡大した状態から始める */
    animation: fadeInZoom 2s ease-out forwards; /* アニメーションを適用 */
}

/* フェードインとズームインアニメーション */
@keyframes fadeInZoom {
    0% {
        opacity: 0;
        transform: scale(1.1); /* 拡大状態 */
    }
    100% {
        opacity: 1;
        transform: scale(1); /* 元の大きさに戻る */
    }
}

@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.5);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* 全体の配置を調整 */
.congrats-container {
    display: flex; /* 横並び */
    justify-content: center; /* 中央揃え */
    align-items: center; /* 縦方向の中央揃え */
	background-color: #fffabe;
	border-radius: 15px;
    gap: 20px; /* 画像とテキストの間隔 */
    opacity: 0; /* 最初は非表示 */
    transform: scale(0.5);
    transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

/* スクロールで表示されたらこのクラスが追加される */
.congrats-container.show {
    opacity: 1;
    transform: scale(1);
}

/* 文字部分 */
.congrats {
    font-size: 2rem;
    font-weight: bold;
    color: #45aafd;
    padding: 10px 10px;
    text-align: center;
}

/* キャラクター画像 */
.congrats-img {
    width: 80px; /* 画像サイズ（調整可） */
    height: auto;

}


/* 追加部分会話吹き出し用*/

.balloon {
	position: relative;
	width: 100%;
	margin: 1em 0;
	overflow: hidden;
}

.balloon .faceiconR {
	float: right;
	margin-left: -90px;
	width: 80px;
}


.balloon .faceiconL {
	float: left;
	margin-right: -90px;
	width: 80px;
}

@media (min-width: 1200px) {
    .balloon .faceiconL, .balloon .faceiconR{
        width: 100px; /* 一回り大きくする */
    }
}


.balloon .faceiconL img, .balloon .faceiconR img {
	width: 100%;
	height: auto;
	border-radius: 50%;
}

.balloon .chatting {
	width: 100%;
}

.says5 {
    display: inline-block;
    position: relative; /* absolute をやめる */
    margin: 5px 105px 0 0; /* 左吹き出しとは逆方向にマージン */
    padding: 10px 13px;
    border-radius: 12px;
    word-wrap: break-word;
    max-width: 70%; 
    background: #ffcae6;
    text-align: left; 
    float: right; /* 右寄せ */
}


.says1, .says2, .says3, .says4 ,.says6{
	display: inline-block;
	position: relative; 
	margin: 5px 0 0 105px;
	padding: 10px 13px;
	border-radius: 12px;
	word-wrap: break-word; /* 長い文字列の折り返しを有効に */
	max-width: 70%; /* 吹き出しの幅制限 */
}

.says1 {
	background: #ffe9c3;
}

.says2 {
	background: #fbbdbd;
}

.says3 {
	background: #a6ffc1;
}

.says4 {
	background: #e8c4fe;
}

.says6 {
	background: #add3ff;
}

.says1:after,.says2:after, .says3:after, .says4:after, .says6:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	left: -30px;
	border: 12px solid transparent;
}

.says5:after {
    content: "";
    display: inline-block;
    position: absolute;
    top: 18px; /* 吹き出し内での位置 */
    right: -25px; /* 矢印の位置調整 */
    border: 12px solid transparent;
    border-left: 25px solid #ffcae6; /* 吹き出しの背景色と同じ */
}

.says1:after {
	border-right: 25px solid #ffe9c3;
}

.says2:after {
	border-right: 25px solid #fbbdbd;
}

.says3:after {
	border-right: 25px solid #a6ffc1;
}

.says4:after {
	border-right: 25px solid #e8c4fe;
}

.says5:after {
	border-left: 25px solid #ffcae6;
}

.says6:after {
	border-right: 25px solid #add3ff;
}

.says1 p,.says2 p,.says3 p,.says4 p, .says5 p, .says6 p {
	margin: 0;
	padding: 0;
}

/*
.balloon1 {
	width: 100%;
	margin: 1.5em 0;
	overflow: hidden;
  }
  
  .balloon1 .faceicon1 {
	float: left;
	margin-right: -90px;
	width: 80px;
	
  }
  
  .balloon1 .faceicon1 .disp_img{
	width: 100%;
	height: auto;
	border-radius: 50%;
	background: url('frame_fontsize\images\natu.jpg') no-repeat center center;
	background-size: cover;
  }
  
  .balloon1 .chatting1 {
	width: 100%;
  }
  
  .says1 {
	display: inline-block;
	position: relative; 
	margin: 5px 0 0 105px;
	padding: 10px 13px;
	border-radius: 12px;
	background: #ffecca;
  }
  
  .says1:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	left: -30px;
	border: 12px solid transparent;
	border-right: 25px solid #ffecca;
  }
  
  .says1 p {
	margin: 0;
	padding: 0;
  }


  .balloon2 {
	width: 100%;
	margin: 1.5em 0;
	overflow: hidden;
  }
  
  .balloon2 .faceicon2 {
	float: left;
	margin-right: -90px;
	width: 80px;
  }
  
  .balloon2 .faceicon2 img{
	width: 100%;
	height: auto;
	border-radius: 50%;
  }
  
  .balloon2 .chatting2 {
	width:2100%;
  }
  
  .says2 {
	display: inline-block;
	position: relative; 
	margin: 5px 0 0 105px;
	padding: 10px 13px;
	border-radius: 12px;
	background: #fbbdbd;
  }
  
  .says2:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	left: -30px;
	border: 12px solid transparent;
	border-right: 25px solid #fbbdbd;
  }
  
  .says2 p {
	margin: 0;
	padding: 0;
  }

.balloon3 {
	width: 100%;
	margin: 1.5em 0;
	overflow: hidden;
  }
  
  .balloon3 .faceicon3 {
	float: left;
	margin-right: -90px;
	width: 80px;
  }
  
  .balloon3 .faceicon3 img{
	width: 100%;
	height: auto;
	border: solid 3px #80ffa6;
	border-radius: 50%;
  }
  
  .balloon3 .chatting3 {
	width:2100%;
  }
  
  .says3 {
	display: inline-block;
	position: relative; 
	margin: 5px 0 0 105px;
	padding: 10px 13px;
	border-radius: 12px;
	background: #80ffa6;
  }
  
  .says3:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	left: -30px;
	border: 12px solid transparent;
	border-right: 25px solid #80ffa6;
  }
  
  .says3 p {
	margin: 0;
	padding: 0;
  }

.balloon4 {
	width: 100%;
	margin: 1.5em 0;
	overflow: hidden;
  }
  
  .balloon4 .faceicon4 {
	float: left;
	margin-right: -90px;
	width: 80px;
  }
  
  .balloon4 .faceicon4 img{
	width: 100%;
	height: auto;
	border-radius: 50%;
  }
  
  .balloon4 .chatting4 {
	width:2100%;
  }
  
  .says4 {
	display: inline-block;
	position: relative; 
	margin: 5px 0 0 105px;
	padding: 10px 13px;
	border-radius: 12px;
	background: #e8c4fe;
  }
  
  .says4:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	left: -30px;
	border: 12px solid transparent;
	border-right: 25px solid #e8c4fe;
  }
  
  .says4 p {
	margin: 0;
	padding: 0;
  }

.balloon5 {
	position: relative;
	width: 100%;
	margin: 1.5em 0;
	overflow: hidden;
  }
  
  .balloon5 .faceicon5 {
	float: right;
	margin-left: -90px;
	width: 80px;
  }
  
  .balloon5 .faceicon5 img{
	width: 100%;
	height: auto;
	border-radius: 50%;
  }
  
  .balloon5 .chatting5 {
	width:2100%;
  }
  
  .says5 {
	display: inline-block;
	position: absolute; 
	top: 5px;
	right:105px;
	padding: 10px 13px;
	border-radius: 12px;
	background: #ffcae6;
  }
  
  .says5:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 18px; 
	right: -30px;
	border: 12px solid transparent;
	border-left: 25px solid #ffcae6;
  }
  
  .says5 p {
	margin: 0;
	padding: 0;
  } 
  */