/* ===============================================
    Challenge Class LP (pages/challengeclass.php)
   =============================================== */

/* -----------------------------------------------
    PC
   ----------------------------------------------- */
@media screen and (min-width: 768px){

/* MV */
.imgChallenge{
	position:relative;
	margin:0 auto;
	padding:0;
	width:100%;
	height:680px;
	overflow:hidden;
	background:#feb417;
	/* タイトル画像の位置調整用（中心座標の%） */
	--mv-title-x:30%;
	--mv-title-y:50%;
}
.imgChallenge-bg{
	display:flex;
	width:max-content;
	height:100%;
	animation:imgChallenge-scroll 80s linear infinite;
}
.imgChallenge-bg img{
	height:100%;
	width:auto;
	display:block;
	flex:0 0 auto;
}
.imgChallenge-title{
	position:absolute;
	top:var(--mv-title-y);
	left:var(--mv-title-x);
	transform:translate(-50%, -50%);
	margin:0;
	padding:0;
	z-index:2;
	width:auto;
	max-width:50%;
}
.imgChallenge-title img{
	max-width:100%;
	height:auto;
	display:block;
}
@keyframes imgChallenge-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}

/* 底部の自動横スクロール写真ストリップ */
.ccBottomStrip{
	width:100%;
	margin-top:0;
	overflow:hidden;
}
.ccBottomStrip-bg{
	display:flex;
	width:max-content;
	animation:ccBottomStrip-scroll 60s linear infinite;
}
.ccBottomStrip-bg img{
	height:320px;
	width:auto;
	display:block;
	flex:0 0 auto;
	margin-left:-1px;
}
@keyframes ccBottomStrip-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}

/* 共通ラッパー（全幅） */
.boxChallenge{
	margin:0 auto;
	padding:0 0 40px 0;
	width:100%;
	text-align:left;
}
/* 1000px 制約つき中身 */
.boxChallenge-inner{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;
}
.boxChallenge .ccSection{
	margin:0 auto;
	padding:80px 0 120px 0;
}
.boxChallenge .ccSection.ccCampaign,
.boxChallenge .ccSection.ccFeature{
	padding-bottom:0;
}

/* セクション見出し: 既存の cap-txt を上書き（span部分のみハイライト） */
.boxChallenge .cap-txt{
	text-decoration:none;
	padding:0 0 1.5em;
	color:#333;
	line-height:2.6em;
}
.boxChallenge .cap-txt span{
	background:#feb417;
	padding:0 4px;
}
.boxChallenge .cap-txt span.sky{
	background:none;
	color:#4fc3d8;
}

/* 中央の大きなふきだし（黄色・三角つき・テクスチャ） */
.ccBubble-center{
	position:relative;
	max-width:720px;
	margin:20px auto 40px;
	padding:26px 40px;
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	border-radius:14px;
	text-align:center;
	font-size:1.4em;
}
.ccBubble-center p{
	margin:0;
	font-weight:bold;
	font-size:1.15em;
	color:#333;
	line-height:1.7;
}
.ccBubble-center:after{
	content:"";
	position:absolute;
	top:100%; left:50%;
	margin-left:-16px;
	border:16px solid transparent;
	border-top:16px solid #feb417;
}

/* 黄色のラベル型ふきだし（左寄せ・尾付き） */
.ccBubble-label{
	display:inline-block;
	padding:16px 32px;
	margin:0 0 30px 0;
	background:#feb417;
	color:#333;
	font-weight:bold;
	font-size:1.25em;
	border-radius:10px;
	position:relative;
}
.ccBubble-label:after{
	content:"";
	position:absolute;
	top:100%; left:40px;
	border:12px solid transparent;
	border-top:12px solid #feb417;
}

/* ---------- 画像化セクション共通 ---------- */
.ccWorry-img,
.ccKids-img,
.ccNeeds-img,
.ccStaff01-img{
	display:block;
	max-width:100%;
	height:auto;
	margin:0 auto;
}
.ccWorry-img{ max-width:900px; }
.ccNeeds-img{ max-width:900px; margin:60px auto 60px; }
.ccKids-img{
	display:block;
	max-width:960px;
	width:100%;
	height:auto;
	margin:0 auto;
}
.ccStaff01-img.straddle{
	margin-top:-50px;
	position:relative;
	z-index:2;
	max-width:860px;
}

.ccTheme-img{
	display:block;
	max-width:800px;
	width:100%;
	height:auto;
	margin:30px auto 0;
}

/* POINT番号画像（高さ基準で揃える。幅は自動） */
.ccPoint-num-img{
	position:absolute;
	top:0;
	left:10px;
	width:auto;
	height:90px;
	display:block;
}

/* ---------- Section1: お悩み ---------- */
.ccWorry-list{
	list-style:none;
	margin:0 auto 70px;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:20px 24px;
	max-width:860px;
}
.ccWorry-list li{
	position:relative;
	padding:14px 22px;
	background:#fff;
	border:2px solid #feb417;
	border-radius:10px;
	font-weight:bold;
	color:#555;
	text-align:center;
	line-height:1.5;
}
.ccWorry-list li:after{
	content:"";
	position:absolute;
	top:100%; left:30px;
	border:8px solid transparent;
	border-top:8px solid #feb417;
}

.ccCtaBubble{
	position:relative;
	max-width:720px;
	margin:0 auto 40px;
	padding:26px 40px;
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	border-radius:14px;
	text-align:center;
	font-size:1.4em;
}
.ccCtaBubble p{
	margin:0;
	font-weight:bold;
	color:#333;
	line-height:1.7;
}
.ccCtaBubble:after{
	content:"";
	position:absolute;
	top:100%; left:50%;
	margin-left:-16px;
	border:16px solid transparent;
	border-top:16px solid #feb417;
}

/* 全幅グレー背景ブロック（親.boxChallengeが100%幅なので素直に100%で全幅） */
.ccGrayBlock{
	background:#f2f2f2;
	width:100%;
	margin:0;
	padding:0;
	overflow:visible;
	position:relative;
}
/* 波打ち境界線（上のみ） */
.ccGrayBlock--wave::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:20px;
	pointer-events:none;
	background:url(../images/common_bgline_01.png) no-repeat center top;
}
.ccGrayBlock-body{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px 50px;
	display:flow-root;
}
/* 先頭のふきだしの上半分をグレーから飛び出させる */
.ccGrayBlock-body > .ccCtaBubble.straddle,
.ccGrayBlock-body > .ccBubble-center.straddle{
	margin-top:-55px;
	position:relative;
	z-index:2;
}
.ccGrayBlock .btnBox-or{
	margin:40px auto 20px;
}

.ccLead-staff{
	padding:30px 30px 20px;
	margin:0;
}
.ccLead-staff .lef-illust{
	float:left;
	width:19%;
	text-align:center;
}
.ccLead-staff .lef-illust img{ max-width:100%; height:auto; }
.ccLead-staff .rig-txt{
	float:left;
	width:80%;
	padding-left:3%;
	font-size:0.95em;
	line-height:1.9;
	color:#555;
}
.ccLead-staff .rig-txt p{ margin:0; }

.boxChallenge .btnBox-or{
	margin:0 auto 0;
	padding:0 0 10px;
	background:none;
	width:auto;
	border-radius:0;
}
.boxChallenge .btnBox-or .cap-s{
	text-align:center;
	color:#333;
	font-weight:bold;
	margin:0;
	padding:0;
	font-size:1.2em;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:16px;
}
.boxChallenge .btnBox-or .cap-s:before,
.boxChallenge .btnBox-or .cap-s:after{
	content:"";
	display:inline-block;
	width:2px;
	height:1.4em;
	background:#333;
}
.boxChallenge .btnBox-or .cap-s:before{ transform:rotate(-25deg); }
.boxChallenge .btnBox-or .cap-s:after{ transform:rotate(25deg); }
.boxChallenge .btnBox-or .btn{
	text-align:center;
}
.boxChallenge .btnBox-or .btn a{
	display:inline-block;
	min-width:360px;
	padding:24px 54px;
	background:#2d3748;
	color:#fff;
	text-decoration:none;
	font-weight:bold;
	font-size:1.6em;
	border-radius:8px;
	box-shadow:0 10px 0 #c1c1c1;
}

/* ---------- Section2: 特徴 ---------- */
.ccFeature-item{
	margin:0 0 100px 0;
	padding:0 10px;
}
.ccFeature-item:last-child{ margin-bottom:0; }
.ccFeature-item .ccFeature-body{
	float:left;
	width:58%;
	font-size:0.95em;
	line-height:1.9;
	color:#555;
}
.ccFeature-item .ccFeature-img{
	float:right;
	width:38%;
	text-align:center;
}
.ccFeature-item .ccFeature-img img{ max-width:100%; height:auto; }
.ccFeature-item.reverse .ccFeature-body{ float:right; }
.ccFeature-item.reverse .ccFeature-img{ float:left; }
/* 画像個別スケール調整 */
.ccScale-staff01{ transform:scale(1); }
.ccScale-staff02{ transform:scale(1.15); }
.ccScale-staff03{ transform:scale(1); }
.ccScale-staff04{ transform:scale(1); }
.ccScale-kids01{ transform:scale(0.8); }
.ccScale-kids02{ transform:scale(0.8); }
.ccScale-staffs{ transform:scale(1.15); }

.ccFeature-lead{
	margin:10px 0 50px;
	color:#555;
	line-height:1.9;
}

.ccFeature-sub{
	margin:50px 0 50px 0;
}
.ccFeature-sub .ccFeature-sub-body{
	float:left;
	width:60%;
	padding-right:4%;
}
.ccFeature-sub .ccFeature-sub-img{
	float:right;
	width:36%;
	text-align:center;
}
.ccFeature-sub .ccFeature-sub-img img{ max-width:100%; height:auto; }
.ccFeature-sub .ccFeature-sub-img .caption{
	font-size:0.85em;
	color:#888;
	margin-top:6px;
	text-align:right;
}

.ccNumLabel{
	font-size:1.2em;
	font-weight:bold;
	color:#333;
	margin:0 0 10px 0;
}
.ccNumLabel .num{
	display:inline-block;
	width:34px;
	height:34px;
	line-height:34px;
	text-align:center;
	background:#feb417;
	color:#fff;
	font-weight:bold;
	border-radius:4px;
	margin-right:12px;
	vertical-align:middle;
}

.ccLink{
	margin-top:10px;
}
.ccLink a{
	color:#333;
	font-weight:bold;
	text-decoration:underline;
}
.ccLink-bullet{
	width:16px;
	height:16px;
	vertical-align:-2px;
	margin-right:0.5em;
	display:inline-block;
}

/* ---------- Section3: 受賞作品ギャラリー ---------- */
.ccBubble-rig-wrap{
	position:relative;
	z-index:10;
	text-align:right;
	margin:60px auto -45px auto;
	max-width:1000px;
	padding-right:8%;
}
.ccAwardGallery{
	background:#f2f2f2;
	width:100%;
	margin:0;
	padding:80px 0 60px 0;
	overflow:hidden;
	position:relative;
	z-index:1;
}
.ccAwardGallery::before,
.ccAwardGallery::after{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
	z-index:2;
}
.ccAwardGallery::before{
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
}
.ccAwardGallery::after{
	bottom:0;
	background:url(../images/common_bgline_02.png) no-repeat center bottom;
}
.ccAward-track{
	display:flex;
	width:max-content;
	animation:ccAward-scroll 80s linear infinite;
}
.ccAward-track img{
	height:360px;
	width:auto;
	display:block;
	flex:0 0 auto;
}
@keyframes ccAward-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}
.ccBubble-rig{
	position:relative;
	display:inline-block;
	padding:20px 36px;
	background:#feb417;
	border-radius:10px;
	text-align:center;
}
.ccBubble-rig p{
	margin:0;
	font-weight:bold;
	font-size:1.1em;
	color:#333;
	line-height:1.7;
}
.ccBubble-rig:after{
	content:"";
	position:absolute;
	top:100%; left:30px;
	border:14px solid transparent;
	border-top:14px solid #feb417;
}


/* ---------- Section4: チャレンジクラス ---------- */
.ccChallenge-intro{
	margin:0 0 90px 0;
}
.ccChallenge-intro .lef-illust{
	float:left;
	width:18%;
	text-align:center;
}
.ccChallenge-intro .lef-illust img{ max-width:100%; height:auto; }
.ccChallenge-intro .rig-txt{
	float:right;
	width:78%;
	font-size:0.95em;
	line-height:1.9;
	color:#555;
	padding-top:10px;
}
.ccChallenge-intro .dot-list{
	font-weight:bold;
	color:#333;
	margin:18px 0;
}

.ccPoint{
	position:relative;
	margin:0 0 100px 0;
	padding:0 0 0 180px;
	min-height:110px;
}
.ccPoint:last-of-type{ margin-bottom:0; }
.ccPoint-head{
	margin:0 0 14px 0;
	padding-top:0;
}
.ccPoint-num{
	position:absolute;
	top:0;
	left:10px;
	width:130px;
	font-family:'Montserrat', sans-serif;
	font-weight:700;
	font-size:5.2em;
	color:#feb417;
	line-height:1;
	text-align:center;
}
.ccPoint-num:before{
	content:"POINT";
	display:block;
	font-size:0.22em;
	letter-spacing:3px;
	color:#feb417;
	margin-bottom:-4px;
}
.ccPoint-title{
	margin:0;
	font-size:1.35em;
	font-weight:bold;
	color:#333;
}
.ccPoint-body{
	color:#555;
	line-height:1.9;
	font-size:0.95em;
}

.ccIcon-list{
	list-style:none;
	margin:30px 0 0 0;
	padding:0;
	display:flex;
	gap:22px;
	justify-content:flex-start;
}
.ccIcon-list li{
	flex:1;
	max-width:170px;
	aspect-ratio:1/1;
	background:#feb417;
	border-radius:10px;
	text-align:center;
	color:#fff;
	font-weight:bold;
	font-size:0.9em;
	line-height:1.4;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	padding:16px 10px;
}
.ccIcon-list li img{
	width:60%;
	max-width:80px;
	height:auto;
	margin-bottom:10px;
}

.ccWishBubbles{
	position:relative;
	margin:80px 0 20px 0;
	text-align:center;
	min-height:200px;
}
.ccWish-bubble{
	display:inline-block;
	padding:14px 22px;
	margin:0 10px 12px 10px;
	background:#fff;
	border:2px solid #feb417;
	border-radius:16px;
	font-weight:bold;
	font-size:0.95em;
	color:#555;
	line-height:1.5;
	position:relative;
}
.ccWish-bubble:after{
	content:"";
	position:absolute;
	top:100%; left:30px;
	border:8px solid transparent;
	border-top:8px solid #feb417;
}
.ccWish-illust{
	margin-top:10px;
}
.ccWish-illust img{ max-width:280px; height:auto; }

/* ---------- Section5: Offer CTA → Campaign → Targets ---------- */
.ccOfferCta{
	margin-bottom:20px;
}

.ccCampaign .cap-txt{
	padding:0;
}
/* キャンペーン見出し2行のサイズ調整 */
.boxChallenge .cap-txt span.ccCampLine1{
	background:none;
	padding:0;
	font-size:1.24em;
}
.boxChallenge .cap-txt span.ccCampLine2{
	background:none;
	padding:0;
	font-size:1.6em;
}
.boxChallenge .cap-txt span.ccCampLine1 .hl{
	background:#feb417;
	padding:0 4px;
}
.ccCampaign-body{
	text-align:center;
	margin:0;
}
.ccCampaign-body .lef-illust,
.ccCampaign-body .rig-illust{
	display:inline-block;
	vertical-align:middle;
	width:18%;
}
.ccCampaign-body .lef-illust img,
.ccCampaign-body .rig-illust img{ max-width:100%; height:auto; }
.ccCampaign-body .mid-txt{
	display:inline-block;
	vertical-align:middle;
	width:60%;
	font-weight:bold;
	font-size:0.95em;
	line-height:1.9;
	color:#555;
	padding:0 2%;
}

.ccBtns-row{
	text-align:center;
	margin:0;
}
.ccBtns-row .btn{
	display:inline-block;
	margin:0 14px;
}
.ccBtns-row .btn a{
	display:inline-block;
	min-width:280px;
	padding:18px 30px;
	background:#2d3748;
	color:#fff;
	text-decoration:none;
	font-weight:bold;
	border-radius:8px;
	box-shadow:0 5px 0 #c1c1c1;
}

.ccTargets{
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	width:100%;
	margin:60px 0 0 0;
	padding:80px 0 100px;
	position:relative;
}
.ccTargets::before,
.ccTargets::after{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
	z-index:3;
}
.ccTargets::before{
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
}
.ccTargets::after{
	bottom:0;
	background:url(../images/common_bgline_02.png) no-repeat center bottom;
}
.ccTargets-body{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;
}
.ccTargets-body .cap-txt{
	padding:0 0 50px;
}
.ccTargets .cap-txt{
	color:#333;
	padding:0 0 40px;
}
.ccTargets .cap-txt span{
	background:none;
	color:#333;
	padding:0;
}
.ccTargets-list{
	list-style:none;
	margin:0 auto;
	padding:0;
	max-width:900px;
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:36px 34px;
}
.ccTargets-list li{
	background:transparent;
	border-radius:0;
	padding:0;
	display:flex;
	align-items:center;
	gap:0;
	font-weight:bold;
	color:#555;
	font-size:0.95em;
	line-height:1.4;
}
.ccTargets-list li img{
	width:90px;
	height:auto;
	flex-shrink:0;
}
.ccTargets-list li span{
	position:relative;
	flex:1;
	background:#fff;
	border-radius:14px;
	padding:18px 16px;
	margin-left:14px;
	text-align:center;
}
.ccTargets-list li span:before{
	content:"";
	position:absolute;
	top:50%;
	right:100%;
	margin-top:-10px;
	border:10px solid transparent;
	border-right:10px solid #fff;
}

/* ---------- Section6: Closing ---------- */
.ccClosing{
	text-align:center;
	margin-top:20px;
	padding:40px 0 20px;
}
.ccClosing-lead{
	font-size:1.1em;
	font-weight:bold;
	line-height:2.2;
	color:#333;
	margin:0 0 50px;
}
.ccClosing-illust{
	margin:40px 0 40px;
}
.ccClosing-illust img{ max-width:400px; height:auto; }


.boxChallenge .clear{ clear:both; }


}


/* -----------------------------------------------
    SP
   ----------------------------------------------- */
@media screen and (max-width: 768px){

.imgChallenge{
	position:relative;
	margin:-15px auto 0;
	padding:0;
	width:100%;
	height:380px;
	overflow:hidden;
	background:#feb417;
	/* タイトル画像の位置調整用 */
	--mv-title-x:5%;
	--mv-title-y:50%;
}
.imgChallenge-bg{
	display:flex;
	width:max-content;
	height:100%;
	animation:imgChallenge-scroll 60s linear infinite;
}
.imgChallenge-bg img{
	height:100%;
	width:auto;
	display:block;
	flex:0 0 auto;
}
.imgChallenge-title{
	position:absolute;
	top:var(--mv-title-y);
	left:var(--mv-title-x);
	transform:translateY(-50%);
	margin:0;
	padding:0;
	z-index:2;
	width:80%;
}
.imgChallenge-title img{
	max-width:100%;
	height:auto;
	display:block;
}
@keyframes imgChallenge-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}

/* 底部の自動横スクロール写真ストリップ */
.ccBottomStrip{
	width:100%;
	margin-top:0;
	overflow:hidden;
}
.ccBottomStrip-bg{
	display:flex;
	width:max-content;
	animation:ccBottomStrip-scroll 50s linear infinite;
}
.ccBottomStrip-bg img{
	height:200px;
	width:auto;
	display:block;
	flex:0 0 auto;
	margin-left:-1px;
}
@keyframes ccBottomStrip-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}

.boxChallenge{
	width:100%;
	margin:0 auto;
	padding:0 0 30px 0;
}
.boxChallenge-inner{
	width:100%;
	margin:0 auto;
	padding:0 3%;
	box-sizing:border-box;
}
.boxChallenge .ccSection{
	padding:0;
}
.ccSection.ccWorry{
	padding-top:0;
	padding-bottom:20px;
}
.ccSection.ccFeature{
	padding-bottom:30px;
}

.boxChallenge .cap-txt{
	text-decoration:none;
	padding:30px 0 30px;
	font-size:1.25em;
	line-height:1.6;
	color:#333;
	margin-bottom:0;
}
.boxChallenge .cap-txt span{
	background:#feb417;
	padding:0 3px;
}
.boxChallenge .cap-txt span.sky{
	background:none;
	color:#4fc3d8;
}

/* 中央ふきだし */
.ccBubble-center{
	position:relative;
	margin:20px auto 30px;
	padding:18px 20px;
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	border-radius:12px;
	text-align:center;
}
.ccBubble-center p{
	margin:0;
	font-weight:bold;
	font-size:1.2em;
	color:#333;
	line-height:1.6;
}
.ccBubble-center:after{
	content:"";
	position:absolute;
	top:100%; left:50%;
	margin-left:-10px;
	border:10px solid transparent;
	border-top:10px solid #feb417;
}

.ccBubble-label{
	display:block;
	width:fit-content;
	padding:12px 22px;
	margin:0 auto 22px;
	background:#feb417;
	color:#333;
	font-weight:bold;
	font-size:1.2em;
	border-radius:8px;
	position:relative;
	text-align:center;
}
.ccBubble-label:after{
	content:"";
	position:absolute;
	top:100%; left:50%;
	margin-left:-8px;
	border:8px solid transparent;
	border-top:8px solid #feb417;
}

/* 画像化セクション共通 */
.ccWorry-img,
.ccKids-img,
.ccNeeds-img,
.ccStaff01-img{
	display:block;
	width:100%;
	height:auto;
	margin:0 auto;
}
.ccNeeds-img{ margin:40px auto 10px; }
.ccKids-img{
	display:block;
	width:100%;
	height:auto;
	margin:0 auto;
}
.ccStaff01-img.straddle{
	margin-top:-40px;
	position:relative;
	z-index:2;
}

.ccTheme-img{
	display:block;
	max-width:100%;
	height:auto;
	margin:20px auto 0;
}

/* POINT番号画像（高さ基準） */
.ccPoint-num-img{
	position:absolute;
	top:0;
	left:0;
	width:auto;
	height:42px;
	display:block;
}

/* Section1 */
.ccWorry-list{
	list-style:none;
	margin:0 auto 50px;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:14px;
}
.ccWorry-list li{
	position:relative;
	padding:10px 14px;
	background:#fff;
	border:2px solid #feb417;
	border-radius:8px;
	font-weight:bold;
	color:#555;
	text-align:center;
	font-size:0.85em;
	line-height:1.5;
	width:45%;
}
.ccWorry-list li:after{
	content:"";
	position:absolute;
	top:100%; left:20px;
	border:6px solid transparent;
	border-top:6px solid #feb417;
}

.ccCtaBubble{
	position:relative;
	margin:0 auto 30px;
	padding:18px 20px;
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	border-radius:12px;
	text-align:center;
}
.ccCtaBubble:after{
	content:"";
	position:absolute;
	top:100%; left:50%;
	margin-left:-12px;
	border:12px solid transparent;
	border-top:12px solid #feb417;
}
.ccCtaBubble p{
	margin:0;
	font-weight:bold;
	font-size:1.1em;
	color:#333;
}

/* 全幅グレー背景ブロック */
.ccGrayBlock{
	background:#f2f2f2;
	width:100%;
	margin:30px 0;
	padding:0;
	overflow:visible;
	position:relative;
}
/* 波打ち境界線 */
.ccGrayBlock--wave::before,
.ccGrayBlock--wave::after{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
}
.ccGrayBlock--wave::before{
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
	background-size:cover;
}
.ccGrayBlock--wave::after{
	bottom:0;
	background:url(../images/common_bgline_02.png) no-repeat center bottom;
	background-size:cover;
}
/* 波下端なし＋下余白なし（写真ストリップ直前） */
.ccGrayBlock--nowave-bottom{
	margin-bottom:0;
}
.ccGrayBlock--nowave-bottom::before{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
	background-size:cover;
}
.ccGrayBlock--nowave-bottom::after{
	display:none;
}
.ccGrayBlock-body{
	padding:0 4% 40px;
	display:flow-root;
}
.ccGrayBlock-body > .ccCtaBubble.straddle,
.ccGrayBlock-body > .ccBubble-center.straddle{
	margin-top:0;
	position:relative;
	z-index:2;
}
.ccGrayBlock .btnBox-or{
	margin:30px auto 10px;
}

.ccLead-staff{
	padding:0 0 10px;
	margin:0;
	text-align:center;
}
.ccLead-staff .lef-illust{
	width:100%;
	margin:0 auto 14px;
}
.ccLead-staff .lef-illust img{ width:100%; height:auto; }
.ccLead-staff .rig-txt{
	font-size:0.85em;
	line-height:1.8;
	color:#555;
	text-align:left;
}
.ccLead-staff .rig-txt p{ margin:0; }

.boxChallenge .btnBox-or{
	margin:20px auto 0;
	padding:10px 16px 0;
	width:auto;
	background:none;
	border-radius:0;
}
.boxChallenge .btnBox-or .cap-s{
	text-align:center;
	color:#333;
	font-weight:bold;
	font-size:1.05em;
	margin:0;
	padding:0;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:12px;
}
.boxChallenge .btnBox-or .cap-s:before,
.boxChallenge .btnBox-or .cap-s:after{
	content:"";
	display:inline-block;
	width:2px;
	height:1.3em;
	background:#333;
}
.boxChallenge .btnBox-or .cap-s:before{ transform:rotate(-25deg); }
.boxChallenge .btnBox-or .cap-s:after{ transform:rotate(25deg); }
.boxChallenge .btnBox-or .btn{ text-align:center; }
.boxChallenge .btnBox-or .btn a{
	display:inline-block;
	width:90%;
	padding:16px 20px;
	background:#2d3748;
	color:#fff;
	text-decoration:none;
	font-weight:bold;
	border-radius:8px;
	box-shadow:0 10px 0 #c1c1c1;
	font-size:1.4em;
}

/* Section2 */
.ccFeature-item{
	margin:0 0 30px 0;
}
.ccFeature-item.reverse{
	margin-bottom:30px;
}
.ccFeature-item:last-child{ margin-bottom:0; }
.ccFeature-item .ccFeature-body{
	width:100%;
	font-size:0.9em;
	line-height:1.8;
	color:#555;
	text-align:left;
}
.ccFeature-item .ccFeature-img{
	width:100%;
	margin:20px auto 0;
	text-align:center;
}
.ccFeature-item .ccFeature-img img{ width:100%; height:auto; }

.ccFeature-lead{
	margin:10px 0 20px;
	color:#555;
	line-height:1.8;
	font-size:0.9em;
	text-align:left;
}

.ccFeature-sub{
	margin:20px 0;
}
.ccFeature-sub .ccFeature-sub-body{
	width:100%;
	font-size:0.9em;
	line-height:1.7;
	color:#555;
	text-align:left;
}
.ccFeature-sub .ccFeature-sub-img{
	width:80%;
	margin:16px auto 0;
	text-align:center;
}
.ccFeature-sub .ccFeature-sub-img img{ max-width:100%; height:auto; }
.ccFeature-sub .ccFeature-sub-img .caption{
	font-size:0.75em;
	color:#888;
	margin-top:6px;
	text-align:right;
}

.ccNumLabel{
	font-size:1.05em;
	font-weight:bold;
	color:#333;
	margin:0 0 10px 0;
	text-align:left;
}
.ccNumLabel .num{
	display:inline-block;
	width:28px;
	height:28px;
	line-height:28px;
	text-align:center;
	background:#feb417;
	color:#fff;
	font-weight:bold;
	border-radius:4px;
	margin-right:8px;
	vertical-align:middle;
	font-size:0.85em;
}

.ccLink{ margin-top:10px; font-size:0.9em; text-align:left; }
.ccLink a{ color:#333; font-weight:bold; text-decoration:underline; }
.ccLink-bullet{
	width:16px;
	height:16px;
	vertical-align:-2px;
	margin-right:0.5em;
	display:inline-block;
}

/* Section3: ギャラリー */
.ccBubble-rig-wrap{
	position:relative;
	z-index:10;
	text-align:right;
	padding-right:6%;
	margin:30px 0 -30px 0;
}
.ccAwardGallery{
	background:#f2f2f2;
	width:100%;
	margin:0 0 40px 0;
	padding:55px 0 40px 0;
	overflow:hidden;
	position:relative;
}
.ccAwardGallery::before,
.ccAwardGallery::after{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
	z-index:3;
}
.ccAwardGallery::before{
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
	background-size:cover;
}
.ccAwardGallery::after{
	bottom:0;
	background:url(../images/common_bgline_02.png) no-repeat center bottom;
	background-size:cover;
}
.ccAward-track{
	display:flex;
	width:max-content;
	animation:ccAward-scroll 60s linear infinite;
}
.ccAward-track img{
	height:300px;
	width:auto;
	display:block;
	flex:0 0 auto;
}
@keyframes ccAward-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}
.ccBubble-rig{
	position:relative;
	display:inline-block;
	padding:14px 20px;
	background:#feb417;
	border-radius:10px;
	text-align:center;
	max-width:95%;
}
.ccBubble-rig p{
	margin:0;
	font-weight:bold;
	font-size:0.9em;
	color:#333;
	line-height:1.5;
}
.ccBubble-rig:after{
	content:"";
	position:absolute;
	top:100%; left:20px;
	border:10px solid transparent;
	border-top:10px solid #feb417;
}
.ccAward-slider{
	width:100%;
	overflow:hidden;
}
.ccAward-track{
	display:flex;
	align-items:flex-start;
	width:max-content;
	animation:ccAward-scroll 50s linear infinite;
}
.ccAward-item{
	flex:0 0 auto;
	width:180px;
	margin:0 12px;
	text-align:center;
}
.ccAward-item img{
	width:100%;
	height:auto;
	margin:0 auto 8px;
	display:block;
}
.ccAward-item .title{
	font-size:0.85em;
	font-weight:bold;
	margin:4px 0 2px;
	color:#333;
}
.ccAward-item .sub{
	font-size:0.75em;
	color:#666;
	line-height:1.4;
}
@keyframes ccAward-scroll{
	0%   { transform:translateX(0); }
	100% { transform:translateX(-50%); }
}

/* Section4: チャレンジクラス */
.ccChallenge-cap{
	padding:0 !important;
}
.ccChallenge-intro{
	margin:0 0 60px 0;
}
.ccChallenge-intro .lef-illust{
	width:100%;
	margin:20px auto 20px;
	text-align:center;
}
.ccChallenge-intro .lef-illust img{ width:100%; height:auto; }
.ccChallenge-intro .rig-txt{
	width:100%;
	font-size:0.9em;
	line-height:1.8;
	color:#555;
	text-align:left;
}
.ccChallenge-intro .dot-list{
	font-weight:bold;
	color:#333;
	margin:14px 0;
	font-size:0.95em;
}

.ccPoint{
	position:relative;
	margin:0 0 30px 0;
	padding:0 0 0 70px;
	min-height:80px;
}
.ccPoint:last-of-type{ margin-bottom:0; }
.ccPoint-head{ margin:0 0 10px 0; }
.ccPoint-num{
	position:absolute;
	top:0;
	left:0;
	font-family:'Montserrat', sans-serif;
	font-weight:700;
	font-size:3em;
	color:#feb417;
	line-height:1;
}
.ccPoint-num:before{
	content:"POINT";
	display:block;
	font-size:0.28em;
	letter-spacing:2px;
	color:#feb417;
	margin-bottom:-2px;
}
.ccPoint-title{
	margin:0;
	padding-top:0;
	font-size:1.1em;
	font-weight:bold;
	color:#333;
	line-height:1.4;
	text-align:left;
}
.ccPoint-body{
	color:#555;
	line-height:1.8;
	font-size:0.9em;
	margin-top:10px;
	text-align:left;
}

.ccIcon-list{
	list-style:none;
	margin:16px 0 0 0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:12px;
}
.ccIcon-list li{
	aspect-ratio:1/1;
	background:#feb417;
	border-radius:10px;
	text-align:center;
	color:#fff;
	font-weight:bold;
	font-size:0.8em;
	line-height:1.4;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	padding:10px 6px;
}
.ccIcon-list li img{
	width:50%;
	max-width:60px;
	height:auto;
	margin-bottom:6px;
}

.ccWishBubbles{
	margin:50px 0 10px 0;
	text-align:center;
	padding-bottom:20px;
}
.ccWish-bubble{
	display:inline-block;
	padding:10px 16px;
	margin:0 4px 8px;
	background:#fff;
	border:2px solid #feb417;
	border-radius:14px;
	font-weight:bold;
	font-size:0.8em;
	color:#555;
	line-height:1.5;
	position:relative;
}
.ccWish-bubble:after{
	content:"";
	position:absolute;
	top:100%; left:20px;
	border:6px solid transparent;
	border-top:6px solid #feb417;
}
.ccWish-illust{ margin-top:10px; }
.ccWish-illust img{ max-width:200px; height:auto; }

/* Section5 */
.boxChallenge .cap-txt span.ccCampLine2{
	font-size:1.4em;
}
.ccCampaign-body{
	text-align:center;
	margin:0;
}
.ccCampaign-body .lef-illust{
	display:block;
	width:100%;
}
.ccCampaign-body .rig-illust{
	display:none;
}
.ccCampaign-body .lef-illust img{ width:100%; height:auto; }
.ccCampaign-body .mid-txt{
	display:block;
	width:100%;
	font-weight:bold;
	font-size:0.88em;
	line-height:1.8;
	color:#555;
	padding:10px 0;
}

.ccCampaign{
	padding:0;
}
.ccBtns-row{
	text-align:center;
	margin:16px 0 0;
}
.ccBtns-row .btn{
	display:block;
	margin:0 auto;
	padding:0;
}
.ccBtns-row .btn:last-child{
	margin-bottom:0;
	padding-top:30px;
}
.ccBtns-row .btn a{
	display:inline-block;
	width:90%;
	padding:16px 20px;
	background:#2d3748;
	color:#fff;
	text-decoration:none;
	font-weight:bold;
	border-radius:8px;
	box-shadow:0 5px 0 #c1c1c1;
	font-size:1.2em;
}

.ccTargets{
	background:url(../images/bg_orange.jpg) repeat center top;
	background-color:#feb417;
	width:100%;
	margin:50px 0;
	padding:60px 0 70px;
	position:relative;
}
.ccTargets::before,
.ccTargets::after{
	content:"";
	position:absolute;
	left:0;
	width:100%;
	height:20px;
	pointer-events:none;
	z-index:3;
}
.ccTargets::before{
	top:0;
	background:url(../images/common_bgline_01.png) no-repeat center top;
	background-size:cover;
}
.ccTargets::after{
	bottom:0;
	background:url(../images/common_bgline_02.png) no-repeat center bottom;
	background-size:cover;
}
.ccTargets-body{
	padding:0 4%;
}
.ccTargets-body .cap-txt{
	color:#333;
	padding:0 0 36px;
}
.ccTargets .cap-txt{
	color:#333;
	padding:0 0 36px;
}
.ccTargets .cap-txt span{
	background:none;
	color:#333;
	padding:0;
}
.ccTargets-list{
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:22px 14px;
}
.ccTargets-list li{
	background:transparent;
	border-radius:0;
	padding:0;
	display:flex;
	align-items:center;
	gap:0;
	font-weight:bold;
	color:#555;
	font-size:0.8em;
	line-height:1.4;
}
.ccTargets-list li img{
	width:56px;
	height:auto;
	flex-shrink:0;
}
.ccTargets-list li span{
	position:relative;
	flex:1;
	background:#fff;
	border-radius:12px;
	padding:12px 8px;
	margin-left:8px;
	text-align:center;
}
.ccTargets-list li span:before{
	content:"";
	position:absolute;
	top:50%;
	right:100%;
	margin-top:-7px;
	border:7px solid transparent;
	border-right:7px solid #fff;
}

/* Section6 */
.ccClosing{
	text-align:center;
	margin:0;
	padding:0;
}
.ccClosing-lead{
	font-size:0.95em;
	font-weight:bold;
	line-height:2;
	color:#333;
	margin:30px 0 40px;
}
.ccClosing-illust{ margin:30px 0; }
.ccClosing-illust img{ width:100%; height:auto; }

/* SP画像はpictureで差し替え済み。スケール調整はPC用のみ有効 */
.ccScale-staff01,
.ccScale-staff02,
.ccScale-staff03,
.ccScale-staff04,
.ccScale-kids01,
.ccScale-kids02,
.ccScale-staffs{ transform:none; width:100%; height:auto; }


.boxChallenge .clear{ clear:both; }


}
