@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/








/****************************************************
 * 共通｜よくある質問
 ****************************************************/

.headlineQuestion {
	color
	border: none;
    background-color: transparent!important;
	margin-bottom: 0.75em!important;
	padding: 1em 1em 1em 3em!important;
    position: relative;
	font-size: 16px!important;
}
.headlineQuestion::before {
	position: absolute;
	top: 1em;
    left: 0;
	display: inline-block!important;
	content: "Q"!important;
	color: #FFF;
	background: #D55656;
    border-left: none!important;
    border-bottom: none!important;
	width: 2em!important;
	height: 1.8em!important;
	text-align: center;
}
.headlineAnswer {
	position: relative;
	padding: 1em 1em 1em 3em;
}
.headlineAnswer::before {
	content: "A";
	display: inline-block;
	position: absolute;
	top: 1em;
    left: 0;
	color: #FFF;
	background: #659987;
	width: 2em;
	height: 1.8em;
	text-align: center;
	font-weight: bold;
}
.headlineAnswer p {
	margin-bottom: 1em;
}










/* リンク｜商品紹介 */
.linkEC {
	display: flex;
	background: linear-gradient(to right, #FFF, #F5F7FA);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    padding: 1em;
	border-radius: 16px
}
@media screen and (min-width: 768px) {
	.linkEC {
	    padding: 1.5em;
	}
}
.linkEC-image {
	flex-basis: 30%;
	margin-right: 1em;
}
@media screen and (min-width: 768px) {
	.linkEC-image {
		flex-basis: 20%;
	}
}
.linkEC-text {
	flex-basis: 70%;
}
@media screen and (min-width: 768px) {
	.linkEC-text {
		flex-basis: 80%;
	}
}
.linkEC-title {
	font-size: 110%;
	font-weight: bold;
	margin-bottom: .5em;
}
.linkEC-list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding-left: 0!important;
}
.linkEC-item {
}
.linkEC-site {
	color: #FFF;
	font-size: 90%;
	font-weight: bold;
	padding: .3em .7em;
	border-radius: 16px;
	text-decoration: none;
	transition: all .3s;
}
.linkEC-site:hover {
	color: #FFF;
	opacity: .5;
}
.linkEC-site:nth-child(n+1) {
	margin-right: .5em;
}
.linkEC-amazon {
	color: #FF9900;
	background-color: #232F3E;
}
.linkEC-rakuten {
	color: #FFF;
	background-color: #BF0000;
}










/* 吹き出しのデザイン（一部）*/
div.speech-balloon {
	font-size: 90%;
	font-weight: bold;
	background-color: #A2C5F4;
	border: 2px solid #A2C5F4;
}
.speech-balloon::before,
.speech-balloon::after {
	border-right: 12px solid #A2C5F4;
}
.sbs-line.sbp-r .speech-balloon {
	background-color: #DCDCDC;
	border-color: #DCDCDC;
}
.sbs-line.sbp-r .speech-balloon::before,
.sbs-line.sbp-r .speech-balloon::after {
    border-right-color: #DCDCDC;
    border-left-color: #DCDCDC;
}









/**************************************************************************************
 *
 *
 * 共通設定
 *
 *
 **************************************************************************************/

/****************************************************
 * 共通｜カラーチャート
 ****************************************************/

:root {
	--white:				#FFF;
	--blue:					#88ABDA;
	--blue-light:			#B5CDE7;
	--blue-dark:			#69788A;
	--gray:					#C0C0C0;
	--gray-light:			#DCDCDC;
	--gray-dark:			#A9A9A9;
	--charcoal-gray:		#4E454A;
	--light-grayish-orange:	#EAE0DA;
	--accent-pink:			#FF3366;
	--link:					#0044CC;
	--link-hover:			#429EFF;
}



/****************************************************
 * 共通｜色々
 ****************************************************/

/* スムーススクロール */
html {
	scroll-behavior: smooth;
}

/* ふわっとした動作（指定箇所に"fadeIn"を入れる） */
.fadeIn,
.eye-catch img {
	animation-name:fadeInAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
	opacity:0;
}
@keyframes fadeInAnime {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* 画像の余白削除 */
img { vertical-align: top; }

/* 画像サイズを100% */
img { width: 100%; }

/* スマホで改行削除 */
@media screen and (max-width: 768px) {
	.brSP { display: none; }
}

/* reCAPTCHAの中央表示 */
.grecaptcha-badge {
	margin: auto;
}

/* 検索窓の虫眼鏡の位置 */
.search-box br {
	display: none;
}



/****************************************************
 * 共通｜テキストデザイン
 ****************************************************/

/* マーカー */
mark {
	color: #394154;
	background: repeating-linear-gradient(-45deg, #FFDDBC 0 2px, transparent 2px 4px) bottom left / 100% 0.8em no-repeat;
	font-weight: bold;
}



/* 小文字化（左寄せ） */
.small {
	font-size: 80%;
}

/* テキスト（三原色） */
.textR,
.textG,
.textB {
	font-weight:bold;
}
.textR { color:red; }
.textG { color:green; }
.textB { color:blue; }



/****************************************************
 * 共通｜タブ
 ****************************************************/

.tab_container {
	padding-bottom: 1em;
	background-color: #FFF;
/* 	border:1px solid #454030; */
	margin: 0 auto;
}
.tab_container > p,
.tab_container > br {
	display: none;
}
.tab_item {
	display: block;
	float: left;
	width: calc(100%/3);
	color: var(--blue-dark);
	background-color: #ECECEC; /* 未選択の背景色 */
	border-bottom: 3px solid var(--blue-dark); /* ボーダー色 */
	padding: 15px 0;
	text-align: center;
	font-weight: bold;
	transition: all 0.2s ease;
}
.tab_item:hover {
	opacity: 0.75;
}
input[name="tab_item"] {
	display: none;
}
.tab_content {
	display: none;
/* 	padding: 1em 1em 0; */
	clear: both;
	overflow: hidden;
}
#tab1:checked ~ #tab1_content,
#tab2:checked ~ #tab2_content,
#tab3:checked ~ #tab3_content,
#tab4:checked ~ #tab4_content {
	display: block;
}
/* チェックされたタブの色を変更*/
#tab1:checked ~ #tabMenu1,
#tab2:checked ~ #tabMenu2,
#tab3:checked ~ #tabMenu3,
#tab4:checked ~ #tabMenu4 {
	color: #FFF;
	background-color: var(--blue-dark);
}
.tab_container input:checked + .tab_item {
	color: #FFF;
	background-color: var(--blue-dark);
}



/****************************************************
 * 共通｜アコーディオン
 ****************************************************/

.accordion {
	max-width: 100%;
	margin: 0 auto 1.8em;
/* 	padding: 0 16px; */
	counter-reset: question;
}
.accordion-item {
	margin-bottom: 12px;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
	background: #f7fafd;
	overflow: hidden;
	transition: box-shadow 0.3s ease;
}
.accordion-item:hover {
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.accordion-detail {
	width: 100%;
	transition: all 0.3s ease;
	background: transparent;
}
.accordion-question {
	list-style: none;
	cursor: pointer;
	padding: 23px 20px 20px 80px;
	position: relative;
	font-size: 17px;
	font-weight: 600;
	color: #2f3e4d;
	background-color: transparent;
}
.accordion-question::before {
	counter-increment: question;
	content: "Q" counter(question);
	position: absolute;
	left: 20px;
	top: 20px;
	color: #5c738a;
	font-weight: bold;
	font-size: 15px;
	background: #e2ebf7;
	padding: 4px 10px;
	border-radius: 12px;
}
.accordion-question::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 20px;
	font-size: 20px;
	color: #5c738a;
	transition: transform 0.3s ease;
}
.accordion-detail[open] .accordion-question {
	border-bottom: 1px solid #c3d2e0;
}
.accordion-detail[open] .accordion-question::after {
	content: "−";
	transform: rotate(0deg);
}
.accordion-answer {
	max-height: 0;
	overflow: hidden;
	padding: 0 20px;
	color: #4a4a4a;
	font-size: 15px;
	line-height: 1.6;
	background-color: #ffffff;
	transition: max-height 0.4s ease, padding 0.4s ease;
}
.accordion-answer b {
	color: #0077CC;
}
.accordion-answer ul,
.accordion-answer ol,
.accordion-answer table {
	margin-bottom: 0;
}
.accordion-detail[open] .accordion-answer {
	max-height: 100%;
	padding: 20px;
}
/* ▼ レスポンシブ調整 */
@media screen and (max-width: 600px) {
	.accordion-question {
		font-size: 16px;
		padding: 18px 30px 16px 60px;
	}
	.accordion-question::before {
		left: 12px;
		top: 16px;
		font-size: 14px;
		padding: 3px 8px;
	}
	.accordion-question::after {
		right: 10px;
		top: 16px;
		font-size: 18px;
	}
	.accordion-answer {
		font-size: 14px;
		padding: 0 16px;
	}
	.accordion-detail[open] .accordion-answer {
		padding: 16px;
	}
}



/****************************************************
 * 共通｜吹き出し
 ****************************************************/

/****************************************************
 * 吹き出し
 ****************************************************/

.balloonUser {
	display: flex;
	align-items: flex-start;
	margin-bottom: 24px;
	background-color: #FFF;
	border-radius: 12px;
	padding: 16px;
	opacity: 0;
	transform: translateY(20px);
	animation: fadeInUp 0.6s ease-out forwards;
}
.balloonUser-icon {
	flex-shrink: 0;
	margin-right: 14px;
}
.balloonUser-icon img {
	width: 78px;
	height: 78px;
	border-radius: 50%;
	border: 2px solid #CCC;
	background-color: #FFF;
}
.balloonUser-icon::after {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: #555;
	text-align: center;
	content: "";
}

.balloonAuthor::after { content:"リノ"; color:#394154; font-weight:bold; }
.balloonRino img { border: 2px solid #D18F73; }
.balloonTeacher::after { content:"さくら先生"; color:#B093F7; font-weight:bold; }
.balloonTeacher img { border: 2px solid #BABCDA; }

.balloonUser-review {
	position: relative;
	background-color: #F2F2F2;
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	max-width: 100%;
}

/* 吹き出しのしっぽ */
.balloonUser-review::before {
	content: "";
	position: absolute;
	left: -10px;
	top: 16px;
	width: 0;
	height: 0;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-right: 10px solid #F2F2F2;
}
/* アニメーション（ふわっと上がって出てくる） */
@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* モバイル対応 */
@media (max-width: 480px) {
	.balloonUser {
		flex-direction: row;
		align-items: flex-start;
	}
	.balloonUser-review {
		font-size: 14px;
		line-height: 1.6;
	}
}



/****************************************************
 * 共通｜通知エリア
 ****************************************************/

/* ベース設定 */
.notice-area {
	position: relative;
	overflow: hidden;
	white-space: nowrap;
	cursor: pointer;
}
.notice-area-message {
	display: inline-block;
	padding-left: 100%;
	animation: scrollText-pc 20s linear infinite;
	white-space: nowrap;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.5); /* ふんわり影 */
	transition: transform 0.3s ease;
	position: relative;
	font-size: 120%;
}
.notice-area-message::after {
	content: " Check";
	margin-left: 12px;
	color: #FFF;
/* 	font-weight: 500; */
	letter-spacing: 0.05em;
	position: relative;
	padding: 3px 10px;
	border-radius: 25px;
	background: linear-gradient(135deg, #4a90e2, #357abd);
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08);
	animation: ctaBlink 1.8s ease-in-out infinite;
	transition: background 0.3s, border-color 0.3s, color 0.3s;
}
/* アニメーション */
@keyframes ctaBlink {
	0%, 100% {
		opacity: 1;
		transform: scale(1);
	}
	50% {
		opacity: 0.5;
		transform: scale(1.03);
	}
}
@keyframes scrollText-pc {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-100%);
	}
}
@keyframes scrollText-sp {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-100%);
	}
}
/* PCとスマホで速度変更 */
@media (max-width: 767px) {
	.notice-area-message {
		animation: scrollText-sp 10s linear infinite; /* スマホはゆっくり */
	}
}
/* ホバーで停止 */
.notice-area:hover .notice-area-message {
	animation-play-state: paused;
}
/* クリックで停止 */
.notice-area:active .notice-area-message {
	animation-play-state: paused;
}



/****************************************************
 * 引用
 ****************************************************/

/* 引用｜文章 */
.quoteText p,
.quoteText ul,
.quoteText ol {
	font-size: 90%;
	margin-bottom: 0!important;
}
.quoteText cite {
	margin-top: 2.4em;
	padding-top: 1em;
}
.quoteText cite::before {
	content: "引用：";
}


/* 引用｜画像 */
.quoteImage figure {
	text-align: center;
}
.quoteImage figure img {
	width: 100%;
}
.quoteImage figure figcaption {
	margin-top: .5em;
}
.quoteImage figure figcaption a {
	color: #535252;
	text-decoration: none;
}
.quoteImage figure figcaption a::before {
	content: "引用元：";
}


/* 引用｜動画（YouTube） */
.quoteYouTube {
	display: block;
	color: #535252;
	font-size: 70%;
	text-align: center;
	text-decoration: none;
	margin-top: -6em;
	transition: all .3s;
}
.quoteYouTube::before {
	content: "引用：";
}



/****************************************************
 * 共通｜YouTubeの掲載
 ****************************************************/

/* YouTube動画の中央化 */
.video-container {
	margin: 0 auto;
}
/* YouTube動画の中央化（カテゴリー記事の場合） */
.youtube-center {
	text-align: center;
}




/****************************************************
 * 共通｜テーブル
 ****************************************************/

/* テーブルデザイン */
table {
	text-align: center;
}
table caption {
	font-weight: bold;
}
table th {
	font-weight: bold;
	color: var(--white);
	background-color: var(--blue-dark);
}
table th,
table td {
	font-size: 0.7em;
	padding: 0.5em;
}
@media print, screen and (min-width: 768px) {
	table th,
	table td {
		font-size: 0.8em;
		padding: 0.8em;
	}
}
.table-left td {
	text-align: left;
}
.table-overflow {
	overflow-x: scroll;
}
.table-scroll {
	width: 100%;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
}






/****************************************************
 * 共通｜Twitter（ツイッター）
 ****************************************************/

/* ツイートのコンパクト化 */
.twitter-box .twitter-tweet iframe{
	padding-bottom: 9.5vh!important; /*要調整*/
	margin-bottom: -7.8vh; /*要調整*/
	border-radius: 15px;
}
.twitter-box .twitter-tweet{
	margin: 0 auto!important;
}
.twitter-box{
	margin: 1rem auto 2rem;
	max-width: 60%;
	width: 100%;
	border-radius: 15px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
}
@media screen and (max-width:480px){
	.twitter-box{
		max-width: 90%;
	}
}
.twitter-tweet {
	margin-left: auto;
	margin-right: auto;
}


/****************************************************
 * 共通｜タイムライン
 ****************************************************/

/* タイムラインの設定 */
.timeline-item-snippet {
	font-size: 80%;
	margin-top: 0.5rem;
}
.timeline-item-snippet .box-list {
    font-size: 1em;
}
.timeline-item:before {
	background: var(--color-main);
}
.timeline-item-label {
	color: #909090;
    font-weight: bold;
}



/****************************************************
 * 共通｜記事内の監修者情報
 ****************************************************/

/* 監修者情報（記事内） */
.supervisor {
	margin: 2em auto;
	background-color: var(--white);
	width: 100%;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22);
}
.supervisor:before {
	content: "監修者";
	color: var(--white);
	background-color: var(--color-main);
	display: block;
	width: calc(100% - 1.5rem*2);
	padding: 0.5rem 1.5rem;
	font-weight: bold;
	letter-spacing: 0.1em;
}
.supervisor-contents {
	display: flex;
	align-items: center;
	padding: 1rem;
}
.supervisor-image {
	flex-basis: 25%;
	margin-right: 1rem;
}
@media print, screen and (min-width: 768px) {
	.supervisor-image {
		margin-right: 2rem;
	}
}
.supervisor-text {
	flex-basis: 75%;
}
.supervisor-name {
	font-size: 100%;
	font-weight: bold;
	border-bottom: 1px solid var(--color-main);
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
@media print, screen and (min-width: 768px) {
	.supervisor-name {
		font-size: 110%;
	}
}
.supervisor-profile {
	font-size: 80%;
	margin-top: 0.5rem;
/* 	padding-left: 0.5rem; */
/*	padding-right: 0.5rem; */
}
@media print, screen and (min-width: 768px) {
	.supervisor-profile {
		font-size: 90%;
	}
}
.supervisor-profile br {
	display: none;
}
.supervisor-profile p {
	margin-bottom: 1rem!important;
}
.supervisor-profile p:last-child {
	margin-bottom: 0.5rem!important;
}



/****************************************************
 * 共通｜ボックスデザイン
 ****************************************************/

/* リスト用 */
.box-list {
	border: 1px solid var(--color-main);
	padding: 1rem 1rem 1rem 3rem;
	font-size: 0.8em;
}
/* リスト用（タイトル付き） */
.box-list-memo {
	border: 1px solid var(--color-main);
	padding: 1rem;
	margin-bottom: 1.8em;
}
@media print, screen and (min-width: 768px) {
	.box-list-memo {
		padding: 1rem 2rem;
	}
}
.box-list-memo-title{
	color: var(--color-main);
	font-size: 100%;
	font-weight: bold;
}
.box-list-memo-title:before {
	font-family: "Font Awesome 5 Free";
	content: "\f304";
	font-size: 100%;
	margin-right: 0.5rem;
}
.box-list-memo ul,
.box-list-memo ol{
	margin-bottom: 0;
	padding-left: 2rem;
	font-size: 90%;
}

/* メモ付きのボックス */
.box-memo {
	margin-left: 0;
	margin-right: 0;
	background-color: #DDEEEE;
	padding: 1em;
}
.box-memo-title{
	color: var(--color-main);
	font-size: 100%;
	font-weight: bold;
}
.box-memo-title:before {
	font-family: "Font Awesome 5 Free";
	content: "\f304";
	font-size: 100%;
	margin-right: 0.5rem;
}
.box-memo p {
	font-size: 90%;
	margin: 0;
	padding: 0;
}
.box-memo ul,
.box-memo ol{
	margin-bottom: 0;
	font-size: 90%;
}

/* インフォメーション */
.box-information {
	margin-left: 0;
	margin-right: 0;
	background-color: #FFF7CC;
	padding: 1em;
}
.box-information-title {
	color: #CBA31A;
	font-size: 100%;
	font-weight: bold;
}
.box-information-title:before {
	font-family: "Font Awesome 5 Free";
	content: "\f05a";
	font-size: 100%;
	margin-right: 0.5rem;
}
.box-information p {
	font-size: 90%;
	margin: 0;
	padding: 0;
}
.box-information ul,
.box-information ol {
	margin-bottom: 0;
	font-size: 90%;
}

/* 注意喚起 */
.box-attention {
	margin-left: 0;
	margin-right: 0;
	background-color: #FDF2F2;
	padding: 1em;
}
.box-attention-title{
	color: #F3ACA9;
	font-size: 100%;
	font-weight: bold;
}
.box-attention-title:before {
	font-family: "Font Awesome 5 Free";
	content: "\f071";
	font-size: 100%;
	margin-right: 0.5rem;
}
.box-attention p {
	font-size: 90%;
	margin: 0;
	padding: 0;
}
.box-attention ul,
.box-attention ol {
	margin-bottom: 0;
	font-size: 90%;
}

/* 背景ありの単純なやつ */
.box-background {
	border: 1px solid #BCC4CB;
	background-color: #F0F0F0;
	padding: 1rem;
	font-size: 0.8em;
}

.box-shift {
	position: relative;
	background: none;
	border: 1px solid #ccc;
	margin: 2em auto;
	padding: 2em;
}
.box-shift:after {
	position: absolute;
	top: 7px;
	left: 7px;
	content: '';
	background-color: #eee;
	border: none;
	width: 100%;
	height: 100%;
	z-index: -1;
}


/* ランキングで使うリスト用 */
.box-ranking {
	position: relative;
	padding: 2rem 1rem 1rem 3rem;
	border: solid 2px #adcce8;
	border-radius:8px;
}
.box-ranking:before {
/* font-family: 'Font Awesome 5 Free'; */
	content: " ";
	position: absolute;
	top: -15px;
	left: 50%;
	margin-left: -75px;
	width: 150px;
	height: 30px;
	background-color: #FF6347;
	opacity: 0.7;
	-webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
			box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
	-webkit-transform: rotate(-4deg);
			transform: rotate(-4deg);
}
.box-ranking li{
	color: #448CCB;
	font-size: 90%;
	font-weight: bold;
}



/* ボックス（口コミ） */
.boxReview {
	display: block;
	justify-content: center;
	align-items: center;
	border: 1px solid var(--blue-dark);
	border-radius: 30px;
	padding: 2em 1em;
	background-color: var(--skin-grayish-gradient);
}
@media screen and (min-width: 768px) {
	.boxReview {
		display: flex;
	}
}
.boxReview .boxReview-person {
	flex-basis: 20%;
	margin-right: 0;
	margin-bottom: 1em;
	text-align: center;
}
@media screen and (min-width: 768px) {
	.boxReview .boxReview-person {
		margin-right: 1em;
		margin-bottom: 0;
	}
}
.boxReview .boxReview-person p:last-child {
	display: none;
}
.boxReview .boxReview-image img  {
	width: 50%;
	height: 50%;
	border-radius: 50%;
}
@media screen and (min-width: 768px) {
	.boxReview .boxReview-image img  {
		width: 100%;
		height: 100%;
	}
}
.boxReview .boxReview-name  {
	margin-bottom: 0;
}
.boxReview .boxReview-reviewDiv,
.boxReview .boxReview-reviewQuote {
	flex-basis: 80%;
	margin-bottom: 0;
	background-color: transparent;
    border: none;
    border-top: 0;
    border-bottom: 0;
    padding: 1em;
}
.boxReview .boxReview-reviewDiv::before,
.boxReview .boxReview-reviewDiv::after,
.boxReview .boxReview-reviewQuote::before,
.boxReview .boxReview-reviewQuote::after {
	color: #69788A;
	font-size: 80%;
}
.boxReview .boxReview-title {
	color: var(--blue-dark);
	font-size: 110%;
	font-weight: bold;
	font-style: italic;
	margin-bottom: 0.2em;
}
.boxReview .boxReview-reviewDiv p:nth-last-child(2),
.boxReview .boxReview-reviewQuote p:nth-last-child(2) {
	margin-bottom: 0;
	padding-bottom: 0;
}
.boxReview .boxReview-reviewDiv p br,
.boxReview .boxReview-reviewQuote p br {
	display: none;
}
.boxReview .boxReview-reviewDiv p:empty {
    display: none;
}
.boxReview .boxReview-reviewQuote cite {
	margin-top: 1.2em;
	border-top: dashed 1px #69788A;
}
.boxReview .boxReview-reviewQuote cite a {
	margin-right: 0;
	text-decoration: none;
}
@media screen and (min-width: 768px) {
	.boxReview .boxReview-reviewQuote cite a {
		margin-right: 2em;
	}
}
.boxReview .boxReview-reviewQuote cite a::before {
	content: "引用元：";
}





.boxGray {
	background-color: #F5F5F5;
	padding: 1em;
}
.boxGray-title {
	font-weight: bold;
}
.boxGray-title::before {
	content: '✔ ';
	color: #88ABDA;
	font-size: 1.2em;
}
.boxGray ul,
.boxGray ol {
	margin-bottom: 0!important;
}
.boxGray li a {
	color: #6FB6C3;
	font-weight: bold;
	transition: all .3s;
}
.boxGray li a:hover {
	color: #A3EAF7;
}
.boxGray p {
	margin-bottom: 0!important;
}






/****************************************************
 * 共通｜ボタンデザイン
 ****************************************************/

.button-flame {
	text-align: center;
}
.button-campaign {
	font-size: 75%;
	font-weight: bold;
/* 	margin-bottom: -4em; */
}
@media print, screen and (min-width: 768px) {
	.button-campaign {
		font-size: 85%;
	}
}
.button-brown,
.button-gray {
	font-size: 90%;
	font-weight: bold;
	width: 100%;
	padding: 1em 0.3em;
	margin: -2em auto 1.3em;
	border-radius: 5px;
	transition: all 0.3s;
}
@media screen and (min-width: 768px){
	.button-brown,
	.button-gray {
		font-size: 110%;
		width: 70%;
		padding: 1em;
	}
}
.button-brown {
	color: var(--white);
	background-color: #7A695C;
	border-bottom: 5px solid #604F42;
}
.button-gray {
	color: var(--white);
	background-color: #5C6D7A;
	border-bottom: 5px solid #425360;
}
.button-brown:before,
.button-brown:after,
.button-gray:before,
.button-gray:after {
	font-family: 'Font Awesome 5 Free';
	font-weight: bold;
	display: inline-block;
}
.button-brown:before {
	content: "\f0e0";
	padding-right: 5px;
}
@media print, screen and (min-width: 768px) {
	.button-brown:before {
		padding-right: 10px;
	}
}
.button-brown:after {
	content: "\f101";
	padding-left: 3px;
	animation: sideMove 2s infinite;
}
@media print, screen and (min-width: 768px) {
	.button-brown:after {
		padding-right: 10px;
	}
}
@keyframes sideMove {
/* 	0% { transform:translateY(0px); } */
	50% { transform:translateX(2px); }
/* 	100% { transform:translateY(0px); } */
}
.button-gray:after {
	content: "\f101";
	padding-left: 10px;
}
.button-brown:hover,
.button-gray:hover {
	font-weight: bold;
	-webkit-transform: translate(0, 3px);
	transform: translate(0, 3px);
	opacity: 0.9;
}
.button-brown:hover {
	border-bottom: 5px solid #7A695C;
}
.button-gray:hover {
	border-bottom: 5px solid #5c6d7a;
}

/* ボタン横並び */
.button-parallel-flame {
	display: block;
	justify-content: space-between;
	align-items: center;
}
@media screen and (min-width: 768px){
	.button-parallel-flame {
		display: flex;
	}
}
.button-parallel-item-left,
.button-parallel-item-right {
	width: 100%;
}
.button-parallel-item-right {
	margin-left: 0;
}
@media screen and (min-width: 768px){
	.button-parallel-item-right {
		margin-left: 1em;
	}
}
.button-parallel {
	color: var(--white);
	font-size: 90%;
	font-weight: bold;
	padding: 0.7em 0.3em;
	margin: -1.3em auto;
	background-color: #5c6d7a;
	border-bottom: 5px solid #425360;
	border-radius: 5px;
	transition: all 0.3s;
}
@media screen and (min-width: 768px){
	.button-parallel {
		font-size: 110%;
		width: 366px;
		padding: 1em;
	}
}
.button-parallel:before,
.button-parallel:after {
	font-family: 'Font Awesome 5 Free';
	font-weight: bold;
	display: inline-block;
}
.button-parallel:after {
	content: "\f101";
	padding-left: 10px;
}
.button-parallel:hover {
	font-weight: bold;
	-webkit-transform: translate(0, 3px);
	transform: translate(0, 3px);
	border-bottom: 5px solid #5c6d7a;
	opacity: 0.9;
}



/****************************************************
 * 共通｜目次に戻る（function.phpに記述あり）
 ****************************************************/

/* 機能部分 */
.toc-checkbox {
	height: 0;
	overflow: hidden;
	display: block;
	visibility: hidden;
}
/* 以下デザイン（アイコンとテキストはphp記載） */
.back-toc {
	margin-bottom: 1rem;
}
.back-toc a {
	color: #6E91C0;
	text-decoration: none;
}
.back-toc a:hover {
	opacity: 0.7;
}



/****************************************************
 * 共通｜コンタクトフォーム
 ****************************************************/

input[type="text" i] {
	width: 100%;
}
input[type="email" i] {
	width: 100%;
}
textarea {
	width: 100%;
}
/* コンタクトページ (QRコード)*/
.contact-field .contact-qrcode {
	text-align: center;
}
.contact-field .contact-qrcode a {
	color: #0066C0;
	border-bottom: solid 1px #0066C0;
	font-size: 16px;
}
.contact-field .contact-qrcode a:hover {
	color: rgba(0,102,192,0.5);
	border-bottom: solid 1px rgba(0,102,192,0.5);
}
.contact-field .contact-image {
	width: 80%;
	margin: 0 auto;
}
@media print, screen and (min-width: 768px) {
	.contact-field .contact-image {
		width: 30%;
	}
}
/* コンタクトページ (フォーム)*/
.contact-field .contact-foam {
	width:100%;
	margin: 0 auto;
}
.contact-field .contact7 {
	width: 100%;
	margin: 0 auto;
}
@media print, screen and (min-width: 768px) {
	.contact-field .contact7 {
		width: 70%;
	}
}
.contact-field label {
	margin-top: 100px;
}
/* マーク (必須) */
.contact7 .must {
	background-color: #FF1A00;
}
/* マーク (任意) */
.contact7 .optional {
	background-color: #999;
}
/* マーク (共通部分) */
.contact7 .must,
.contact7 .optional {
	color: var(--white);
	font-size: 12px;
	border-radius: 3px;
	margin-right: 10px;
	padding: 5px 10px;
	letter-spacing: 2px;
}
/* 電話番号のテキストエリア */
input[type="tel"] {
	width: 100%;
}
input {
	font-size: 16px;
}
/* 項目毎の余白 */
.contact7 dt {
	margin-top: 20px;
	margin-bottom: 10px;
}
.contact7-theme {
	color: var(--white);
	font-size: 18px;
	font-weight: bold;
	background-color: var(--color-main);
	padding: 0.5rem 1rem;
	border-radius: 25px;
}
input[type="submit"] {
	display: table;
	margin: 0 auto;
}
span.wpcf7-list-item {
	display: inline-block;
	margin-top: 0;
	margin-left: 0;
	margin-right: 1rem;
	font-size: 16px;
	font-weight: bold;
}
@media screen and (min-width: 768px){
	span.wpcf7-list-item {
		font-size: 18px;
	}
}
.contact-foam-text a {
	color: #0066C0;
/* 	border-bottom: solid 1px #0066C0; */
	text-decoration: none;
}
.contact-foam-text a:hover {
	color: rgba(0,102,192,0.5);
	border-bottom: solid 1px rgba(0,102,192,0.5);
}
.contact-foam-text {
	text-align: center;
}
.contact7-button input {
	color: var(--white);
	background-color: var(--color-main);
	border: 1px solid var(--color-main);
	font-size: 20px;
	font-weight: bold;
	width: auto;
	padding: 10px 20px;
	border-radius: 45px;
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	-ms-transition: 0.3s;
	transition: 0.3s;
}
.contact7-button input:hover {
	color: var(--color-main);
	background-color: var(--white);
}



/****************************************************
 * 共通｜目次（メイン）
 ****************************************************/

.toc {
	background: #FAFAFA;
	border: 1px solid var(--color-main);
	border-radius: 3px;
}
.toc-title {
	color: var(--color-main);
	font-size: 1.5rem;
}
.toc-title:before {
	font-family: "Font Awesome 5 Free";
	content: "\f15b";
	margin-right: 10px;
}
.toc a {
	color: #6a859c;
}
.toc a:hover{
	opacity: .7;
	text-decoration: none;
}
/* 目次の設定 */
.toc .toc-list {
	font-size: 80%;
	padding-left: 0;
}
.toc-list > li{
	font-weight: bold;
}
.toc-list > li li{
	font-weight: normal;
}
.toc_list ul {
	list-style: none;
	padding-left: 5px;
}
.toc_list li,
.toc_list li li,
.toc_list li li li {
	padding: 5px 0;
}
ol.toc-list {
	counter-reset: item;
	list-style-type: none;
}
ol.toc-list > li:before {
	counter-increment: item;
	content: counter(item)'';
	display: inline-block;
	width: 1.7em;
	height: 1.7em;
	line-height: 1.7em;
	text-align: center;
	background: var(--color-main); /* 数字を囲む丸の色 */
	color: var(--white); /* 数字の色 */
	border-radius: 50%;
	margin-right: .3em;
}
.toc .toc-list ul,
.toc .toc-list ol {
	padding-left: 2em;
	margin: 0;
	list-style: none;
	margin-left: 1rem; /* 改行時の調整 */
}
.toc ol li ol a::before{
	content: '';
	position: relative;
	top: -2px;
	display: inline-block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-main); /* H3〜の見出しの前の丸の色 */
	margin-right: .5em;
	padding-right:0;
	margin-left: -1rem; /* 改行時の調整 */
}



/****************************************************
 * 共通｜目次（サイドバー）
 ****************************************************/

.widget_toc{
	overflow-y:scroll;
	max-height: calc(100vh - 150px);
}
.widget_toc::-webkit-scrollbar {
	width: 10px;
}
.widget_toc::-webkit-scrollbar-track {
	background: transparent;
}
.widget_toc::-webkit-scrollbar-thumb {
	background: #CCC;
	border-radius: 10px;
}
/* 目次の設定（サイドバー） */
.nwa .toc {
	font-size: 90%;
	padding: 0;
}
.nwa .toc .toc-content li:nth-child(n+2) {
	padding-top: 0.5em;
}



/****************************************************
 * 共通｜リンクデザイン
 ****************************************************/

.linkRelation {
	color: var(--link);
	text-decoration: none!important;
	transition: all .3s;
}
.linkRelation:hover {
	color: var(--link-hover);
}
.linkRelation::before {
	content: "関連記事";
	color: #FFF;
	background-color: var(--blue);
	margin-right: .7em;
	padding: .3em .7em .4em;
}





/**************************************************************************************
 *
 *
 * トップページ専用のデザイン
 *
 *
 **************************************************************************************/



/****************************************************
 * トップ｜専用のh2見出し
 ****************************************************/

.topHeadLine2 {
	position: relative;
	padding-top: 5em;
	text-align: center;
}
.topHeadLine2 h2 {
	all: unset;
	font-family: 'M PLUS Rounded 1c', sans-serif;
	font-size: 30px;
	font-weight: 600;
	color: #56789B;
	letter-spacing: 0.05em;
	line-height: 1.4;
	padding: 0!important;
}
/* 不要なbeforeを無効化 */
.topHeadLine2 h2::before {
	content: none !important;
	display: none !important;
}
.topHeadLine2 .topHeadLine2-note {
	position: relative;
	color: #829cb3;
	font-size: 14px;
	font-family: 'M PLUS Rounded 1c', sans-serif;
	margin-top: 12px;
	letter-spacing: 0.04em;
}
/* ドット装飾はpの下 */
.topHeadLine2 .topHeadLine2-note::after {
	display: block;
	content: "• • •";
	font-size: 18px;
	color: #b3c7d8;
	letter-spacing: 0.3em;
	margin-top: 12px;
}
.topHeadLine2-wave h2 {
	color: #3c3a36;
}
.topHeadLine2-wave > .topHeadLine2-note {
	color: #5f5c57!important;
}
.topHeadLine2-wave > .topHeadLine2-note::after {
	color: #5f5c57;
}



/****************************************************
 * トップ｜タブ内のランキングデザイン
 ****************************************************/

.topRanking {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	justify-content: center;
	padding: 0 .5rem 1em;
	font-family: 'Noto Sans JP', 'Helvetica Neue', sans-serif;
}
.topRanking > p {
	display: none;
}
.topRanking-item {
	display: flex;
	flex-direction: column;
	background-color: #FFF;
	border-radius: 20px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	overflow: hidden;
	width: 100%;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
/* .topRanking-item:hover {
	transform: translateY(-6px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
} */
.topRanking-image {
	position: relative;
	aspect-ratio: 16/9;
	overflow: hidden;
	border-bottom: 1px solid #e0e0e0;
}
.topRanking-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	background-color: #f8f8f8; /* 画像が小さい場合に優しい背景色を表示 */
	transition: all .3s;
}
/* .topRanking-item:hover .topRanking-image img {
	transform: scale(1.05);
} */
.topRanking-item {
/* 	flex: 1; */
	width: 100%;
}
.topRanking-item > p {
	display: none;	
}
.topRanking-item:nth-child(1) {
	order: 1;
	width: 100%;
}
.topRanking-item:nth-child(2),
.topRanking-item:nth-child(3) {
	order: 2;
	width: calc(50% - 1em);
}
@media screen and (min-width: 768px) {
	.topRanking-item:nth-child(2),
	.topRanking-item:nth-child(3) {
		width: calc(50% - 2em);
	}
}
@media screen and (min-width: 768px) {
	.topRanking-item {
		flex: 1;
	}
}
.topRanking-item:first-child .topRanking-image {
	position: relative;
	overflow: hidden; /* バッジが画像外にはみ出さないように */
}
.topRanking-item:first-child .topRanking-image::before {
	content: "人気No.1";
	position: absolute;
	top: 17px;
	left: -40px;
	color: var(--white);
	background-color: var(--accent-pink);
	font-size: 70%;
	font-weight: bold;
	padding: 4px 40px;
	transform: rotate(-45deg);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
	opacity: 0;
	animation:
		fadeInBadge 1s ease-in-out 0.3s forwards,
		heartbeat 2.5s ease-in-out 1.3s infinite; /* 鼓動 */
	z-index: 1;
}
@keyframes fadeInBadge {
	from {
		opacity: 0;
/* 		transform: rotate(-45deg) scale(0.9); */
	}
	to {
		opacity: 1;
/* 		transform: rotate(-45deg) scale(1); */
	}
}
@keyframes heartbeat {
  0% {
	  transform: rotate(-45deg) scale(1);
	}
	14% {
		transform: rotate(-45deg) scale(1.1);
	}
	28% {
		transform: rotate(-45deg) scale(0.98);
	}
	42% {
		transform: rotate(-45deg) scale(1.05);
	}
	70% {
		transform: rotate(-45deg) scale(1);
	}
	100% {
		transform: rotate(-45deg) scale(1);
	}
}
.topRanking-text {
	padding: 1em .7em 0;
}
@media screen and (min-width: 768px) {
	.topRanking-text {
		padding: 1em 1em 0;
	}
}
.topRanking-title {
	color: #2F3E46;
	font-size: 110%;
	font-weight: bold;
	text-align: center;
	line-height: 1.4;
}
@media screen and (min-width: 768px) {
	.topRanking-title {
		font-size: 100%;
	}
}
.topRanking-description {
	color: #5F6C74;
	font-size: 90%;
	margin-top: .7em;
	text-align: center;
	line-height: 1.7;
}
@media screen and (min-width: 768px) {
	.topRanking-description {
		font-size: 70%;
	}
}
.topRanking-description b {
	color: #0077CC;
}
.topRanking-link {
	display: block;
	color: #FFF;
	background: linear-gradient(135deg, #A3C7D6, #88BDBC);
	font-size: 100%;
	font-weight: bold;
	margin: 1em 1.5em 0;
	padding: .5em 0;
	text-align: center;
	text-decoration: none;
	border-radius: 999px;
	transition: background 0.3s ease;
}
.topRanking-link:hover {
	color: #FFF;
	background: linear-gradient(135deg, #88bdbc, #6da7a7);
}
.topRanking-linkFirst {
	background: linear-gradient(135deg, var(--accent-pink), #E5194C);
}
.topRanking-linkFirst:hover {
	color: #FFF;
	background: linear-gradient(135deg, #ff4d80, #ff4d80);
}



/************************************
 * トップ｜タブ内のボタン
 ************************************/

/* ボタン */
.topTabButton a {
	color: var(--blue);
	background-color: var(--white);
	border: 1px solid var(--blue);
	border-radius: 3px;
	box-shadow: 5px 5px 0 var(--gray-light);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 50px auto 0;
	max-width: 350px;
	padding: 10px 25px;
	transition: 0.3s ease-in-out;
	text-decoration: none;
}
.topTabButton a:hover {
	color: var(--white);
	background-color: var(--blue);
	border: 1px solid var(--blue);
	box-shadow: 0 0 0;
}



/****************************************************
 * トップ｜レッスン部分（対面・オンライン・独学）
 ****************************************************/

.topLesson {
	display: block;
	background: linear-gradient(to right, #FFF, #F5F7FA);
	padding: 2.5rem;
	border-radius: 16px;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}
@media screen and (min-width: 768px) {
	.topLesson {
		display: flex;
	}
}
.topLesson-image {
	position: relative;
	overflow: hidden; /* バッジが画像外にはみ出さないように */
	flex-basis: 55%;
	border-radius: 12px;
	object-fit: cover;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.topLesson-image img {

}
.topLesson-image::before {
	content: "人気No.1";
	position: absolute;
	top: 15px;
	left: -40px;
	color: var(--white);
	background-color: var(--accent-pink);
	font-size: 70%;
	font-weight: bold;
	padding: 4px 40px;
	transform: rotate(-45deg);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
	opacity: 0;
	animation:
		fadeInBadge 1s ease-in-out 0.3s forwards,
		heartbeat 2.5s ease-in-out 1.3s infinite; /* 鼓動 */
	z-index: 1;
}
.topLesson-text {
	flex-basis: calc(45% - 1em);
	margin-left: 0;
}
@media screen and (min-width: 768px) {
	.topLesson-text {
		margin-left: 1em;
	}
}
.topLesson-title {
	position: relative;
/* 	color: #333; */
	font-size: 120%;
	font-weight: 700;
	margin-top: 1em;
	margin-bottom: .5em;
	padding-left: .7em;
/* 	text-align:center; */
}
@media screen and (min-width: 768px) {
	.topLesson-title {
		margin-top: 0;
		margin-bottom: 1em;
	}
}
.topLesson-title::before {
	position: absolute;
	content: "";
	left: 0;
	top: 0.3em;
	width: 5px;
	height: 80%;
	background-color: var(--blue);
	border-radius: 4px;
}
.topLesson-article {
	padding-left: 0!important;
}
.topLesson-article li {
	list-style: none;
}
.topLesson-article li a {
	display: block;
	color: var(--link);
	text-decoration: none;
	transition: all .3s;
	padding: 0.7rem 1rem;
	border-radius: 8px;
	background-color: var(--white);
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	margin-bottom: 0.6rem;
	transition: all 0.3s ease;
}
.topLesson-article li a:hover {
	color: var(--link-hover);
	background-color: #FBEAEA;
	transform: translateX(4px);
}
.topLesson-text .topTabButton {
	text-align: center;
	position: relative; /* 猫画像の配置基準に */
/* 	overflow: hidden; */
}
.topLesson-text .topTabButton .topLesson-microcopy {
	font-size: 90%;
	margin-bottom: 0;
}
.topLesson-text .topTabButton a {
	font-weight: bold;
	margin-top: .5em;
}
/* 右下の猫 */
.topLesson-text .topTabButton::after {
	content: "";
	position: absolute;
	bottom: -3.5em; /* ←ここを修正 */
	right: -1em;
	width: 80px;
	height: 80px;
	background: url("http://sample-collection.com/mingla-theme-test/wp-content/uploads/2025/04/23014128-scaled.webp") no-repeat center/contain;
	filter: drop-shadow(5px 5px 5px #AAA);
	z-index: 2;
}
@media screen and (min-width: 768px) {
	.topLesson-text .topTabButton::after {
		bottom: -3em; /* ←ここを修正 */
		right: 3em;
	}
}
/* 以下、口コミ部分 */
.topLessonReview-carousel {
	display: flex;
	overflow-x: auto;
	gap: 16px;
	padding: 16px;
	scroll-snap-type: x mandatory;
}
.topLessonReview-item {
	flex: 0 0 280px;
	background: #fdfdfd;
	border-radius: 12px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
	padding: 16px;
	scroll-snap-align: start;
	position: relative;
}
.topLessonReview-item p:last-of-type {
  display: none;
	justify-content: space-between;
	align-content: center;
}
.topLessonReview-top {
	display: flex;
}
.topLessonReview-top p {
	display: none;
}
.topLessonReview-evaluate {
	flex-basis: 75%;
	margin-right: .5em;
}
.topLessonReview-title {
	font-weight: bold;
	font-size: 16px;
	margin-bottom: 8px;
}
.topLessonReview-stars {
	color: #f44336;
	font-size: 14px;
	margin-bottom: 10px;
}
.topLessonReview-user {
	flex-basis: 25%;
}
.topLessonReview-user img {
	border-radius: 50%;
	border: 2px solid #ccc;
}
.topLessonReview-name {
	color: #666;
	font-size: 80%;
	text-align: center;
}
.topLessonReview-comment {
	color: #555;
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 0!important;
}
.topLessonReview-comment::before {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: linear-gradient(to right, transparent, #ccc, transparent);
	margin-top: 10px;
	margin-bottom: 15px;
}
.topLessonReview-comment br {
	display: none;
}
.topLessonReview-comment strong {
	color: #0077CC;
}



/****************************************************
 * トップ｜レッスン部分のCTAボタン（対面・オンライン・独学）
 ****************************************************/

.topButtonCTA {
	background: linear-gradient(to right, #f0f6fc, #eaf3fa);
	padding: 3em 1em;
	border-radius: 18px;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
	text-align: center;
	font-family: 'Inter', sans-serif;
	margin-top: 3em;
}
.topButtonCTA p:last-child {
	display: none;
}
.topButtonCTA-message {
	font-size: 15px;
	font-weight: 600;
	color: #2e3c4e;
	margin-bottom: 24px;
	letter-spacing: 0.3px;
}
@media screen and (min-width: 768px) {
	.topButtonCTA-message {
		font-size: 20px;
	}
}
.topButtonCTA-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 32px;
	font-size: 16px;
	font-weight: bold;
	color: #fff;
	background: linear-gradient(135deg, #4a90e2, #357abd);
	border: none;
	border-radius: 32px;
	text-decoration: none;
	box-shadow: 0 6px 14px rgba(74, 144, 226, 0.3);
	transition: transform 0.2s ease, box-shadow 0.3s ease;
	transition: all .3s;
	animation:
		floatUpDown 2s ease-in-out infinite,
		softGlow 3s ease-in-out infinite, floatUpDown 2s ease-in-out infinite;
}
@keyframes floatUpDown {
	0% { transform: scale(1); }
	50% { transform: scale(1.01); }
	100% { transform: scale(1); }
}
@keyframes softGlow {
	0%, 100% {
		box-shadow: 0 0 10px rgba(74, 144, 226, 0.3);
	}
	50% {
		box-shadow: 0 0 20px rgba(74, 144, 226, 0.6);
	}
}
.topButtonCTA-button:hover {
	color: #FFF;
	opacity: .7;
}
.topButtonCTA-button:active {
	transform: scale(0.97);
	box-shadow: 0 4px 10px rgba(74, 144, 226, 0.2);
}
.topButtonCTA-microcopy {
	color: #6B7C91;
	font-size: 13px;
	margin-top: 1em;
}



/****************************************************
 * トップ｜ヒーローエリア
 ****************************************************/

.topHero-bg {
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	width: 100vw;
	background-image:
		linear-gradient(rgba(40, 60, 90, 0.4), rgba(40, 60, 90, 0.4)), /* 深みのある青を重ねる */
		url('https://piano.xn--eckp2g720s8eky5f1m5g.com/wp-content/uploads/topHero.webp');
	background-size: cover;
	background-position: center;
	padding: 120px 20px;
	box-sizing: border-box;
	color: white;
}
.topHero-text {
	max-width: 960px;
	margin: 0 auto;
	text-align: center;
	background: rgba(255, 255, 255, 0.07);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: 80px 48px;
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}
.topHero-title {
	font-size: 2.8rem;
	font-weight: 600;
	color: #e3f2fd; /* 淡い青（light-blue-100） */
	margin-bottom: 24px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.topHero-text p {
	font-size: 1.1rem;
	line-height: 1.8;
	color: #f0f4fa;
	max-width: 800px;
	margin: 0 auto;
}



/****************************************************
 * トップ｜ステップコンテンツ
 ****************************************************/

/* --- 共通スタイル --- */
.topStepArticle {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
/* 	font-family: "Helvetica Neue", "Segoe UI", sans-serif; */
	font-family: 'M PLUS Rounded 1c', sans-serif;
}
.topStepArticle p {
	display: none;
}
.topStepArticle-card {
	display: block;
	text-decoration: none;
	color: inherit;
}
.topStepArticle-card .topStepArticle-inner {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.85), rgba(240, 240, 255, 0.5));
	border-radius: 16px;
	backdrop-filter: blur(10px); /* ガラス感 */
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); /* シャドウのみで演出 */
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
	text-align: center;
	overflow: hidden;
}
.topStepArticle-card:hover .topStepArticle-inner {
	transform: translateY(-6px) scale(1.01);
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12); /* ホバーでふんわり浮く */
}
.topStepArticle-thumbnail {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	border-bottom: none; /* 枠線削除に伴い、下線も不要 */
}
.topStepArticle-title {
	font-size: 90%;
	padding: 14px 16px;
/* 	color: #2a3d55; */
	color: #56789B;
	font-weight: 600;
	text-align: center;
	line-height: 1.4;
}
/* --- スマホ表示：縦一列＋横並び構成 --- */
@media (max-width: 768px) {
	.topStepArticle {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.topStepArticle-card .topStepArticle-inner {
		flex-direction: row;
		align-items: center;
		padding: 7px;
	}
	.topStepArticle-thumbnail {
		width: 35%;
		aspect-ratio: unset;
		height: auto;
		border-radius: 12px;
	}
	.topStepArticle-title {
		padding: 0 0 0 16px;
		text-align: left;
		font-size: 1rem;
	}
}



/****************************************************
 * トップ｜ご案内
 ****************************************************/

.topAnnouncement {
	display: flex;
	flex-direction: column;
/* 	gap: 60px; */
	max-width: 1200px;
	margin: 0 auto;
	padding: 60px 20px;
	font-family: 'Noto Sans JP', sans-serif;
}
.topAnnouncement-item {
	display: flex;
	align-items: center;
	gap: 40px;
	background-color: #fff;
	padding: 40px;
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
	flex-wrap: wrap;
}
.topAnnouncement-item:nth-child(2n+1) {
	margin-top: 60px;
}
.topAnnouncement-item > p {
	display: none;
}
.topAnnouncement-reverse {
	flex-direction: row-reverse;
}
.topAnnouncement-text {
	flex: 1;
	min-width: 280px;
}
.topAnnouncement-image {
	flex: 1;
	min-width: 280px;
}
.topAnnouncement-image img {
	width: 100%;
	border-radius: 8px;
	object-fit: cover;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.topAnnouncement-category {
	font-size: 0.85rem;
	color: #888;
	margin-bottom: 10px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.topAnnouncement-title {
	font-size: 1.8rem;
	font-weight: 600;
	margin-bottom: 20px;
	color: #56789B;
}
.topAnnouncement-description {
	font-size: 1rem;
	line-height: 1.7;
	margin-bottom: 20px;
	color: #555;
}
.topAnnouncement-link {
	display: inline-block;
	margin-bottom: 20px;
	color: #b48d78;
	text-decoration: underline;
	font-size: 0.95rem;
}
.topAnnouncement-button {
	display: inline-block;
	background: linear-gradient(135deg, #4a90e2, #357abd);
	color: white;
	padding: 10px 24px;
	border-radius: 4px;
	text-decoration: none;
	transition: all .3s;
}
.topAnnouncement-button:hover {
	opacity: .7;
}



/****************************************************
 * トップ｜監修者情報
 ****************************************************/

/* バックグラウンド */
.topPerson {
	margin: 2em auto;
	padding: 2em;
/* 	background:linear-gradient(-45deg, transparent 25%, #F6F8FA 25%, #F6F8FA 50%, transparent 50%, transparent 75%, #F6F8FA 75%, #F6F8FA); */
	background:linear-gradient(-45deg, transparent 25%, #EFEFEF 25%, #F1EFEF 50%, transparent 50%, transparent 75%, #F3EFEF 75%, #F5EFEB);
	background-size: 4px 4px;
	border-bottom: 4px double var(--gray-light);
	border-top: 4px double var(--gray-light);
	background-clip: padding-box;
	margin: 4em calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
}

/* スライダー・カルーセル */
.topPerson-list {
	scroll-snap-type: x mandatory;
	white-space: nowrap;
	overflow-x: auto;
	margin: 0 auto;
/* 	padding: 30px 0; */
	width: 100%;
	position: relative;
}
.topPerson-info {
	position: sticky;
	top: 0;
	left: 0;
	margin: 0;
	font-weight: bold;
	animation: sideMove 2s infinite;
}
.topPerson-info:after {
	font-family: "Font Awesome 5 Free";
	content: "\f30b";
    display: inline-block;
    padding-left: 7px;
}
@keyframes sideMove {
	50% { transform:translateX(10px); }
}
.topPerson-item {
	scroll-snap-align: center;
	display: inline-block;
	vertical-align: top;
	margin: 10px 20px 0;
	width: 40%;
	white-space: normal;
	background-color: #f4f4f4;
	box-shadow: 0 0 5px rgba(0,0,0,.3);
	border-radius: 10px;
	overflow: hidden;
}
@media not all and (min-width: 568px){
	.topPerson-item {
		width: 90%;
	}
}
.topPerson-item > a:hover {
	opacity: .7;
	transition: .3s;
}
.topPerson-item > a > img {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 0!important;
}
.topPerson-image {
}
.topPerson-text {
	padding: 0 1em;
}
.topPerson-name {
	color: #555;
	font-size: 16px;
	font-weight: bold;
	margin-top: 1em;
	text-align: center;
}
.topPerson-supervisor::before,
.topPerson-administrator::before {
	font-size: 70%;
	margin-right: .3em;
}
.topPerson-supervisor::before {
	content: "Supervisor:";
}
.topPerson-administrator::before {
	content: "Administrator:";
}
.topPerson-description {
	font-size: 80%;
	margin-top: .5em;
}



/************************************
 * トップ｜ウェーブアニメーション
 ************************************/

.bg-wave {
	position: relative;
	color: white;
	background: #FFF;
	background: transparent;
	margin: 0 calc(50% - 50vw);
}
.bg-wave-reverse {
	transform: scaleY(-1);
}
.bg-wave-flame {
/* 	margin-bottom: 4em; */
}
.bg-wave > p {
	display: none;
}
.bg-wave-flame > p{
	display: none;
}
.waves {
	position: relative;
	width: 100%;
	height: 15vh;
	margin-bottom: -12px; /*Fix for safari gap*/
	min-height: 100px;
	max-height: 150px;
}
@media (max-width: 768px) {
	.waves {
		height: 40px;
		min-height: 40px;
	}
}
/* ウェーブ（アニメーション部分） */
.parallax > use {
	animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}
.parallax > use:nth-child(1) {
	animation-delay: -2s;
	animation-duration: 7s;
}
.parallax > use:nth-child(2) {
	animation-delay: -3s;
	animation-duration: 10s;
}
.parallax > use:nth-child(3) {
	animation-delay: -4s;
	animation-duration: 13s;
}
.parallax > use:nth-child(4) {
	animation-delay: -5s;
	animation-duration: 20s;
}
@keyframes move-forever {
	0%		{ transform: translate3d(-90px, 0, 0); }
	100%	{ transform: translate3d( 85px, 0, 0); }
}
/* ウェーブ（コンテンツ部分） */
.wave-contents {
	margin-left:	calc(50% - 50vw);
	margin-right:	calc(50% - 50vw);
	padding-left:	calc(50vw - 50%);
	padding-right:	calc(50vw - 50%);
	padding-top:	50px;
	padding-bottom:	50px;
	background-color: rgba(245, 247, 250, 0.9);
}
.wave-contents > p {
	display: none;
}

