@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Jost:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

.Camp-Cta--first .Camp-Cta__Container {
	cursor: default;
}

.Camp-Cta .Camp-Cta__Container {
	cursor: default;
}

.Camp-Cta .Camp-Cta__Container:before {
	background-image: none;
}

.challenge{
	font-family: "Noto Sans JP", sans-serif;
	font-weight: bold;
	letter-spacing: 0;
	line-height: 1.7;
	color:black;
}

/* モーダル表示中：challenge.js が body に付与する .sc-none で背面スクロールを止める */
html:has(body.sc-none){
	overflow: hidden;
}
body.sc-none{
	overflow: hidden;
	overscroll-behavior: none;
}

.bar{
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 600;
}

.jost{
	font-family: "Jost", sans-serif;
	font-weight: 600;
}

.mv{
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: -1;
}

.wrap{
	width: 1440px;
	max-width: 100%;
	box-sizing: border-box;
	padding:0 60px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.mv__flex{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 0;
}

.mvf__left{
	width: 50%;
	position: sticky;
	top: 50%;
	transform: translateY(-50%);
	align-self: flex-start;
	padding-right: 4%;
	box-sizing: border-box;
}

.mvf__left img{
	width: 597px;
	max-width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
	object-position: center;
}

.mvf__right{
	width: 50%;
	/* 右カラムは画面中央（50vh）から開始 */
	padding-top: calc(50vh - 115px);
	margin-bottom: 500px;
	box-sizing: border-box;
	padding-left: 4%;
}

.catch{
	width: 340px;
	max-width: 100%;
	display: block;
	margin:0 auto;
	/* デザインツールの「スクリーン」相当：背後の動画＋オーバーレイと合成 */
	mix-blend-mode: screen;
}

/* スクロール誘導線: 参考 https://junpei-sugiyama.com/scroll-down/ （上から下に流れる線①の考え方） */
.scroll{
	margin: 80px 0 500px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.scroll::before{
	content: "";
	display: block;
	width: 1px;
	height: 80px;
	margin: 0 0 12px;
	background: #fff;
	animation: scrollDownLine 2s ease-in-out infinite;
}

.scroll p{
	font-size: 16px;
	text-align: center;
	margin:0;
	color:white;
	font-weight: 500;
}

@keyframes scrollDownLine{
	0%{
		transform: scale(1, 0);
		transform-origin: center top;
	}
	50%{
		transform: scale(1, 1);
		transform-origin: center top;
	}
	51%{
		transform: scale(1, 1);
		transform-origin: center bottom;
	}
	100%{
		transform: scale(1, 0);
		transform-origin: center bottom;
	}
}

.mvf__content1{
	width: 100%;
	box-sizing: border-box;
	padding:60px;
	background: rgba(255, 255, 255, 0.75);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
	border-radius: 10px;

}

.mvf__content1 h2{
	color:#0000FF;
	font-size: 90px;
	line-height: 0.9;
	letter-spacing: 0.03em;
	font-weight: 600;
	margin: 0;
	letter-spacing: 0em;
	/* white-space: nowrap; */
}

.mvf__content1 h3 ,.title2{
	color:#FF0000;
	font-size: 24px;
	line-height: 1;
	letter-spacing: 0.03em;
	font-weight: bold;
	margin:40px 0 15px;
	letter-spacing: 0em;
	white-space: nowrap;
}

.title__sub{
	font-size: 14px;
	margin:10px 0 40px;
	color:#0000FF;
	font-weight: 500;
}

.c1__text1{
	font-size: 18px;
	margin:0 0 40px;
}

.c1__btn{
	display: block;
	width: 100%;
	transition: opacity 0.4s ease;
}

.c1__btn:hover{
	opacity: 0.6;
}

.c1__btn img{
	width: 100%;
}

.c1__content2{
	width: 100%;
	box-sizing: border-box;
	border-radius: 15px;
	border:3px solid black;
	overflow: hidden;
}

.c1__row1{
	background: #FF0000;
	color:white;
	padding:15px 0;
}

.c1__row1 p{
	text-align: center;
	margin: 0;
	color:white;
	font-size: 20px;
}

.c1__row1 p span{
	font-size: 70px;
	display: inline-block;
	margin:0 10px;
	line-height: 1.2;
	letter-spacing: 0;
	font-weight: 600;
	white-space: nowrap;
}

.c1__row2{
	display: flex;
	border-top: 3px solid black;
}

.c1__row2 p{
	width: 25%;
	padding:15px 0;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0;
	color:black;
	font-size: 16px;
	line-height: 1.5;
	border-right: 3px solid black;
}

.c1__row2 p:last-child{
	border-right: none;
}


.nf__flex{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.nf__flex .nf__card{
	width: calc(50% - 10px);
	margin-bottom: 20px;
	display: block;
	box-sizing: border-box;
	padding:17px 10px;
	-webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
	background: rgba(255, 255, 255, 0.75);
	border-radius: 10px;
	transition: 0.4s;
}

.jost.blue .jost__link{
	color:#0000FF;
}

.jost__link{
	display: inline-flex;
	align-items: center;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.4s ease;
	cursor: pointer;
}

.jost__link:hover{
	opacity: 0.6;
}

.nf__flex .nf__card .icon{
	width: 30px;
	display: block;
	margin:14px auto;
}

.nf__flex .nf__card h3{
	font-size: 32px;
	line-height: 0.9;
	letter-spacing: 0.03em;
	font-weight:bold;
	margin: 0;
	letter-spacing: 0em;
	text-align: center;
	color: black;
}

.nf__flex .nf__card h3.title-size2{
	font-size: 24px;
}


.nf__flex .nf__card p{
	font-size: 12px;
	font-weight: 600;
	margin:16px 0 0;
	display: flex;
	justify-content: center;
	align-items: center;
	color: black;
}

.nf__flex .nf__card p img{
	margin-left: 3px;
	width: 8px;
	position: relative;
}

.nf__flex .nf__card .logo{
	width: 277px;
	line-height: 0.9;
	max-width: 100%;
	display: block;
	margin:0 auto;
}

.mvf__content1.content2 ,
.mvf__content1.content3{
	margin-top: 100px;
}

/* カード内のブロックを横方向中央に揃える（子の p が全幅でも中身が中央に見える） */
.mvf__content1.content2 .c2__col{
	display: flex;
	flex-direction: column;
	align-items: center;
}

.mvf__content1.content2 h2 , 
.mvf__content1.content2 .title__sub{
	color:#FF0000;
}

.mvf__content1.content2 h2 ,
.mvf__content1.content3 h2{
	line-height: 0.9;
}

.c2__text1{
	font-size: 18px;
	font-weight: bold;
	margin: 0 0 40px;
}

.c2__flex{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.c2__col{
	width: calc(50% - 20px);
	margin-bottom: 40px;
	display: block;
	text-align: center;
	color:#0000FF;
}

.c2__flex .c2__col:nth-child(3) ,
.c2__flex .c2__col:nth-child(4) {
	margin-bottom: 0;
}

.c2__col img{
	width: 100px;
	display: block;
	margin:0 auto;
}


.c2__col .c2__text2{
	font-size: 24px;
	margin:0;
	font-weight: bold;
	color:#000000;
}

.mvf__content1.content2 .c2__col h3{
	font-size: 50px;
	line-height: 0.9;
	letter-spacing: 0.03em;
	font-weight: bold;
	margin: 0;
	letter-spacing: 0em;
	text-align: center;
	color: #0000FF;

}

.mvf__content1.content2 .c2__col .c2__text3{
	font-size: 14px;
	font-weight: 500;
	margin:5px 0 0;
	color:#000000;
}

.mvf__content1.content2 .c2__col p.jost{
	font-size: 12px;
    font-weight: 600;
    margin: 16px 0 0;
    display: inline-flex;
    justify-content: center;
    align-items: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	text-align: center;
    color: black;
}

.mvf__content1.content2 .c2__col p.jost img{
	margin: 0;
	margin-left: 3px;
	width: 8px;
	position: relative;
	
}

.c3__row{
	display: flex;
	align-items: center;
}

.c3__row.type2{
	margin-top: 60px;
	position: relative;
}

.c3__row.type2:before{
	content: '';
	display: block;
	width:2px;
	height: 44px;
	background-image: url(../img/challenge/line.png);
	background-size: cover;
	position: absolute;
	top: -52px;
	left: 60px;
}

.c3__text1{
	margin: 0;
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
	width: 160px;
}

.c3__text1 span{
	font-size: 50px;
	width: 100px;
	display: inline-block;
}

.c3__text2{
	margin:0;
	font-size: 22px;
	font-weight: 600;
	width:calc(100% - 160px);
	position: relative;
	top: 4px;
}

.c3__text2 span{
	font-size: 16px;
}

.mvf__content1.content3 .jost{
	text-align: center;
	margin:40px 0 0;
}

.mvf__content1.content3 .jost a{
	margin: 0;
}

.c3__link{
	font-size: 12px;
    font-weight: 600;
    margin: 16px 0 0;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    text-align: center;
    color: black;
	text-decoration: none;
	transition: opacity 0.4s ease;
	cursor: pointer;
}

.c3__link:hover{
	opacity: 0.6;
}

.c3__link img{
	margin: 0;
	margin-left: 3px;
	width: 8px;
	position: relative;
}

.c4__text1{
	background: #5C5C5C;
	margin:0 0 10px;
	text-align: center;
	font-size: 16px;
	color: white;
	border-radius: 20px;
	padding:2px 0;
}

.c4__text2{
	font-size: 18px;
	margin: 0;
	letter-spacing: 0;
}

.c4__flex{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 40px;
}

.c4__flex .c4__col{
	width: calc(50% - 10px);
	display: block;
}

.c4__flex .c4__col p.c4__text2{
	font-size: 16px;
	font-weight: 600;
}

.c4__flex .c4__col p.c4__text3{
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	margin:0 0 10px;
}

.c4__flex .c4__col p.c4__text3 span{
	font-size: 41px;
	line-height: 1.2;
	letter-spacing: 0;
	display: inline-block;
	margin-right: 2px;
}

.c4__flex .c4__col p.c4__text4{
	font-size: 20px;
	font-weight: 600;
	margin:10px 0 0;
}

.c4__flex .c4__col p.c4__text5{
	font-size: 14px;
	font-weight: 600;
	margin: 5px 0 0;
}

.jost.m0{
	margin:40px 0 0;
}

.jost.m0 .c3__link{
	margin: 0;
}

.footer__info{
	background: white;
	padding:160px 0 220px;
}

.page-challenge .PageFooter{
	margin-top: 0;
}

.footer__info h2{
	text-align: center;
	font-size: 90px;
	line-height: 0.9;
	letter-spacing: 0;
	margin: 0;
}

.footer__info .faq__row{
	border-bottom: 1px solid black;
	position: relative;
}

.footer__info .faq__q{
	cursor: pointer;
	margin: 0;
	user-select: none;
	font-size: 16px;
	font-weight: bold;
	padding-right: 40px;
	position: relative;
}

.footer__info .faq__q:before{
	content: '';
	display: block;
	width:26px;
	height: 17px;
	background-image: url(../img/challenge/arrow2.png);
	background-size: cover;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	transition: transform 0.4s ease;
}

.footer__info .faq__row.open .faq__q:before{
	transform: translateY(-50%) rotate(180deg);
}

.footer__info .faq__q:focus-visible{
	outline: 2px solid #0000ff;
	outline-offset: 2px;
}

.footer__info .faq__answer{
	display: none;
}

.faq__wrap{
	width: 800px;
	max-width: 100%;
	margin:30px auto 0;
}

.faq__row{
	position: relative;
	padding:26px 0;
}

.faq__row p{
	position: relative;
	padding-left:70px;
	font-size: 16px;
	font-weight: bold;
}

.faq__row p span{
	position: absolute;
	left: 0;
	top: 45%;
	transform: translateY(-50%);
	font-size: 50px;
	line-height: 1.1;
	letter-spacing: 0;
}

.footer__info .faq__a{
	margin:32px 0 0;
	padding-left:70px;
	color:#FF0000;
}

.faq__contact{
	font-size: 14px;
	text-align: right;
	margin:20px 0 0;
}

.faq__contact a{
	color:black;
	transition: opacity 0.4s ease;
	font-weight: 500;
}

.faq__contact a:hover{
	opacity: 0.6;
}

.footer__title{
	text-align: center;
	margin:320px 0 30px;
	font-size: 16px;
	font-weight: 600;
}

.footer__logo{
	width: 184px;
	display: block;
	margin:0 auto;
	transition: opacity 0.4s ease;
}

.footer__logo img{
	width: 100%;
	display: block;
}

.footer__logo:hover{
	opacity: 0.6;
}

.mv__area{
	position: relative;
}

.mv__area::before{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
	pointer-events: none;
	z-index: 0;
}

.message__slider{
	overflow: hidden;
	width: 100%;
	z-index: 1;
	pointer-events: none;
	padding-bottom: 80px;
}

.message__slider-track{
	display: flex;
	width: max-content;
	animation: messageMarquee 25s linear infinite;
	will-change: transform;
}

.message__slider-group{
	display: flex;
	flex-shrink: 0;
}

.message__slider-group img{
	width: 1797px;
	max-width: none;
	height: auto;
	display: block;
	flex-shrink: 0;
	margin-right: 20px;
}

@keyframes messageMarquee{
	from{ transform: translate3d(0, 0, 0); }
	to{ transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce){
	.message__slider-track{
		animation: none;
		transform: translate3d(0, 0, 0);
	}
}

 .popup1 , .popup2 , .popup3 , .popup4 , .popup5 , .popup6 , .popup7 , .popup8 , .popup9 , .popup10 , .popup11{
  display: none;
  height: 100%;
  width: 100%;
  background:rgba(0,0,0,0.75);
  opacity:1;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999999999999;
  
}

 .outside1 , .outside{
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 999;
  cursor: pointer;
}

.popup-video__box{
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 1280px;
	max-width: calc(100% - 40px);
	z-index: 1001;
}

.popup11 .outside{
	z-index: 1000;
}

.popup-video__title{
	position: absolute;
	top: -60px;
	left: 0;
	margin: 0;
	color: #fff;
	font-size: 40px;
	line-height: 1;
	letter-spacing: 0;
	font-weight: 600;
}

.popup-video__close{
	position: absolute;
	top: -55px;
	right: 0;
	width: 33px;
	height: 33px;
	border: 0;
	margin: 0;
	padding: 0;
	background: transparent;
	color: #fff;
	font-size: 34px;
	line-height: 1;
	cursor: pointer;
}

.popup-video__close img{
	width: 100%;
	display: block;
}

.popup-video__close:hover{
	opacity: 0.7;
}

.popup-video__player{
	position: relative;
	z-index: 1002;
	display: block;
	width: 100%;
	height: auto;
	max-height: min(70vh, 720px);
	background: #000;
}

/* popup1: 閉じるボタンは枠外に出すためラップ。スクロールバーは .content 側 */
/* 半透明だと重なりで下のレイヤーが違って見え、継ぎ目に線が出やすいので不透明に統一 */
.popup1__box{
	--popup1-panel-bg: rgb(250, 250, 250);
	position: fixed;
	z-index: 99999;
	top: calc(50% + 20px);
	left: 50%;
	width: 960px;
	max-width: 92%;
	display: flex;
	flex-direction: column;
	height: fit-content;
	max-height: 85%;
	box-sizing: border-box;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}

.size2 .popup1__box{
	width: 696px;
	height: auto;
}

.popup1__box .content{
	position: relative;
	z-index: 1;
	top: auto;
	left: auto;
	right: auto;
	bottom: auto;
	transform: none;
	-webkit-transform: none;
	-ms-transform: none;
	width: 100%;
	max-width: 100%;
	/* min-height: 600px; */
	flex: 1 1 auto;
	min-height: 0;
	max-height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	background:rgba(255,255,255,0.9);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

 .content{
  line-height: 1.7;
  position: fixed;
  z-index: 99999;
  top: 50%;
  left: 50%;
  width:960px;
/*  min-height: 680px;*/
  box-sizing: border-box;
  margin:0;  
  max-width: 92%;
  max-height: 95vh;
  overflow-y:auto;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    display:block;
  background:rgba(255,255,255,0.9);
  padding:60px;
  border-top-left-radius: 8px;
  border-bottom-right-radius: 8px;
  border-bottom-left-radius: 8px;
}

.content__close{
	position: absolute;
	/* 下に 2px 重ねてサブピクセル隙間の線を消す */
	top: -59px;
	right: 0;
	z-index: 2;
	width: 80px;
	height: 60px;
	margin: 0;
	padding: 0;
	border: 0;
	background:rgba(255,255,255,0.9);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: opacity 0.25s ease;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	border-top-right-radius: 8px;
	border-top-left-radius: 8px;
}

.content__close:hover{
	opacity: 0.65;
}

.content__close:focus-visible{
	outline: 2px solid #0000ff;
	outline-offset: 2px;
}

.content__close-icon{
	position: relative;
	display: block;
	width: 30px;
	height: 30px;
	flex-shrink: 0;
}

.content__close-icon::before,
.content__close-icon::after{
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 30px;
	height: 2px;
	background: #000;
	border-radius: 1px;
}

.content__close-icon::before{
	transform: translate(-50%, -50%) rotate(45deg);
}

.content__close-icon::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}

.content__flex{
	display: flex;
	justify-content: space-between;
}

.content__left{
	width: 40%;
	box-sizing: border-box;
}


.content__left h2{
	font-size: 60px;
	line-height: 0.9;
	letter-spacing: 0;
	margin: 0;
	text-align: center;
	font-weight: bold;
}

.content__left h2.title-size2{
	font-size: 48px;
}

.content__left img{
	width: 48px;
	display: block;
	margin:28px auto ;
}

.content__right{
	width: 60%;
	box-sizing: border-box;
	padding-left: 30px;
}

.content__right p{
	margin: 0;
	font-size: 16px;
	font-weight: 600;
}

.content__right p.center{
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}

.content__right p.sub__text{
	margin: 25px 0 0;
	padding-top: 25px;
	border-top: 1px solid #000000;
	font-size: 14px;
	font-weight: bold;
}

.content__right p.sub__text.type2{
	border-top: 0;
	margin-top: 25px;
	padding-top: 0;
}

.content__right p.sub__text2{
	font-size: 14px;
	margin:10px 0 0;
	font-weight: 500;
}

.content__left img.logo2{
	display: block;
	margin:0 auto;
	width: 236px;
	max-width: 100%;
	line-height: 0.9;
}

.content__flex2{
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.content__left2{
	width: 60%;
	box-sizing: border-box;
	padding-right: 25px;
	text-align: center;
}

.content__left2 p.cl__text1{
	font-size: 24px;
	margin: 0;
	font-weight: bold;
}

.content__left2 .cl__text2{
	font-size: 50px;
	line-height: 0.9;
	letter-spacing: 0;
	margin: 0;
	text-align: center;
	font-weight: bold;
	color:#0000FF;
}

.content__left2 p.cl__text3{
	font-size: 16px;
	margin:8px 0 0;
	font-weight: 500;
}

.content__right2{
	width: 40%;
	box-sizing: border-box;
	padding-left: 30px;
}

.content__right2 img{
	width: 320px;
	max-width: 100%;
	margin-left: auto;
	display: block;
}

.content .cl__text4{
	font-size: 16px;
	margin:60px 0 20px;
	font-weight: 600;
}

.content ul.category{
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
}

.content ul.category li{
	font-size: 12px;
	font-weight: 400;
	margin: 0;
	border-radius: 20px;
	border: 1px solid #000000;
	padding:3px 14px;
	margin-right: 4px;
	margin-bottom: 4px;
}

.content p.cl__text5{
	font-size: 14px;
	margin:48px 0 15px;
	font-weight: 600;
	color:#0000FF;
	border-bottom: 1px solid #0000FF;
	padding-bottom: 3px;
	display: inline-block;
}

.cl__comment{
	display: flex;
	align-items: start;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 60px;
}

.clc__col{
	background: #A3A2A2;
	border-radius: 24px;
	padding:28px;
	box-sizing: border-box;
	position: relative;
}

.clc__col p{
	font-size: 14px;
	margin: 0;
}

.clc__col1{
	width: 35%;
}

.clc__col2{
	width: 64%;
}

.clc__col3{
	width: 66%;
	margin-top: 15px;
}

.clc__col4{
	width: 33%;
	margin-top: -40px;
}

.clc__col1:before{
	content: '';
	display: block;
	width: 43px;
	height: 48px;
	background-image: url(../img/challenge/deco1.png);
	background-size: cover;
	position: absolute;
	top: 65%;
	right: -42px;
}

.clc__col2:before , .clc__col3:before {
	content: '';
	display: block;
	width: 48px;
	height: 43px;
	background-image: url(../img/challenge/deco2.png);
	background-size: cover;
	position: absolute;
	top: -42px;
	left: 80%;
}

.clc__col4:before{
	content: '';
	display: block;
	width: 48px;
	height: 43px;
	background-image: url(../img/challenge/deco3.png);
	background-size: cover;
	position: absolute;
	bottom: -42px;
	left: 23%;
}

.road__title{
	font-size: 90px;
	line-height: 0.9;
	letter-spacing: 0;
	margin: 0;
	color:#0000FF;
	font-weight: 600;
}

.road__text{
	font-size: 14px;
	margin:5px 0 60px;
	font-weight: 500;
	letter-spacing: 0;
	color:#0000FF;
}

.road__flex{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.road__left{
	width: 150px;
	position: relative;
	margin-bottom: 60px;
}

.road__left.last{
	margin-bottom: 0;
}

.road__left:before{
	content: '';
	position: absolute;
	top: calc(100% + 8px);
	left: 30px;
	width: 2px;
	height: 44px;
	background: url(../img/challenge/line.png);
	background-size: cover;
}

.road__left.last:before{
	display: none;
}

.road__left p{
	font-size: 40px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	margin: 0;
}

.en-US .road__left p{
	font-size: 31px;
}

.road__left p span{
	font-size: 16px;
}

.road__left p span.size2{
	font-size: 30px;
}

.road__right{
	width: calc(100% - 150px);
}

.road__right p{
	font-size: 24px;
	margin: 0;
	font-weight: 600;
}

.road__right p span{
	font-size: 16px;
}

.road__title.color ,
.road__text.color{
	color:#FF0000;
}

.c4__text1.mt__plus{
	margin-top: 40px;
}

.c4__text2.size2{
	font-size: 16px;
	font-weight: 600;
}

.c4__list{
	list-style: none;
	padding: 0;
	margin:20px 0;
}

.c4__list li{
	padding-left:24px;
	position: relative;
}

.c4__list li:before{
	content: '●';
	display: block;
	position: absolute;
	left: 7px;
	top: 8px;
	color:black;
	font-size: 10px;
	line-height: 1;
	transform: scale(0.6);

}

.c4__small{
	font-size: 12px;
	margin: 0;
	font-weight: 400;
}

.c4__btn.bar{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 28px;
	font-weight: 600;
	color: white;
	background: #FF0000;
	border-radius: 30px;
	width: 326px;
	padding: 4px 0;
	max-width: 100%;
	margin:40px auto 0;
	transition: opacity 0.4s ease;
	text-decoration: none;
}

.c4__btn.bar img{
	width: 15px;
	display: block;
	margin-left: 10px;
}

.c4__btn.bar:hover{
	opacity: 0.6;
}

.bottom__fix{
	background: rgba(0,0,0,0.85);
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;
	width:1320px;
	max-width: calc(100% - 80px);
	margin:0 auto;
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	z-index: 99;
	padding: 20px 28px;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.bottom__fix.is-visible{
	opacity: 1;
	pointer-events: auto;
}

.bf__left{
	display: flex;
	width: calc(100% - 183px);
	box-sizing: border-box;
	padding-right: 60px;
}

.bf__left a{
	text-decoration: none;
	color: white;
	padding:2px 0;
	margin-right: 20px;
	padding-right:20px;
	border-right: 1px solid #FFFFFF;
	box-sizing: border-box;
	transition: color 0.4s ease;
}

.bf__left a:hover{
	color: rgba(255, 255, 255, 0.6);
}

.bf__left a:last-child{
	margin-right: 0;
	padding-right: 0;
	border-right: none;
}

.bf__left a p.bf__title1{
	font-size: 28px;
	line-height: 1;
	letter-spacing: 0;
	margin: 0;
	font-weight: 600;
}

.bf__left a p.bf__title2{
	font-size: 12px;
	letter-spacing: 0;
	margin: 0;
	font-weight: 500;

}

.bf__right{
	width: 183px;	
}

.bf__right a{
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	color: white;
	background: #FF0000;
	border-radius: 30px;
	font-size: 20px;
	font-weight: 600;
	width: 100%;
	padding: 6px 0;
	max-width: 100%;
	margin:0 auto;
	transition: opacity 0.4s ease;
	text-decoration: none;
	transition: opacity 0.4s ease;
}

.bf__right a:hover{
	opacity: 0.6;
}

.bf__right a img{
	width: 15px;
	display: block;
	margin-left: 10px;
	position: relative;
	top: -1px;
}

.sp{
	display: none!important;
}

/* Challenge：幅 941px〜1300px のみ（タブレット〜狭いデスクトップ） */
@media (min-width: 941px) and (max-width: 1300px) {
	.mvf__right img.catch{
		width: 244px;
		box-sizing: border-box;
	}

	.mvf__right{
		padding-top: calc(50vh - 82px);
	}

	.mvf__left img{
		width: 375px;
	}
}

@media (min-width: 940px){
	.page-challenge .PageHeader__Links{
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
	}	
}


.en-US .c1__row2 p{
	padding:15px 10px;
	font-size: 14px;
}

@media (max-width: 940px) {

	.pc{
		display: none!important;
	}

	.sp{
		display: block!important;
	}

	.title-size2 .sp{
		display: inline-block!important;
		margin-right: 8px;
	}

	.bottom__fix{
		display: none;
	}

	.mv__flex{
		padding-top: 120px;
		display: block;
	}

	.mvf__left{
		display: block;
		padding: 0;
		top: 120px;
		width: 100%;
		margin: 0 auto;
		text-align: center;
		transform: none;
	}

	.mvf__left img.sp{
		width: 716px;
		max-width: 100%;
		margin:0 auto;
	}

	.wrap{
		padding:0 20px;
	}

	.mvf__right{
		width: 100%;
		margin-top: 140px;
		position: relative;
		z-index: 2;
		margin-bottom: 300px;
		padding: 0;
	}

	.c1__row2 p{
		box-sizing: border-box;
		width: 50%;
	}

	.c1__row2{
		flex-wrap: wrap;
	}

	.c1__row2 p:nth-child(1){
		border-bottom: 3px solid black;
	}

	.c1__row2 p:nth-child(2){
		border-right: 0;
		border-bottom: 3px solid black;
	}


	.mvf__content1{
		padding:40px 20px;
	}

	.c4__flex{
		display: block;
		margin-top: 30px;
	}

	.c4__flex .c4__col{
		width: 100%;
	}

	.c4__text1{
		margin-top: 30px;
	}

	.content__flex{
		display: block;
	}

	.popup1__box .content{
		padding:40px;
	}

	.content__left{
		width: 100%;
	}

	.content__right{
		width: 100%;
		margin-top: 60px;
		padding: 0;
	}

	.content__close{
		width: 56px;
		height: 42px;
		top: -42px;
	}

	.content__close-icon{
		width: 22px;
	}

	.content__left img{
		width: 33px;
		margin:20px auto;
	}

	.content__left h2{
		font-size: 50px;
	}

	.content__left h2.title-size2{
		font-size: 34px;
	}

	.nf__flex .nf__card .logo{
		width: 120px;
	}

	.content__flex2{
		display: block;
	}

	.content__left2{
		width: 100%;
		padding: 0;
	}

	.content__right2{
		padding: 0;
		margin-top: 40px;
		width: 100%;
	}

	.content__right2 img{
		margin:0 auto;
	}

	.content p.cl__text5{
		text-align: center!important;
		display: block;
		border: 0;
		text-decoration: underline;
		padding: 0;
		text-underline-offset: 5px;
		margin:40px auto 15px ;
	}

	.cl__comment{
		display: block;
		margin-bottom: 30px;
	}

	.clc__col1, .clc__col2, .clc__col3, .clc__col4{
		width: 100%;
		margin:0 0 30px;
	}

	.clc__col2{
		margin-bottom: 50px;
	}

	.road__flex{
		display: block;
	}

	.road__left{
		width: 100%;
		margin: 0;
	}

	.road__left:before{
		display: none;
	}

	.road__right{
		position: relative;
		width: 100%;
		margin-bottom: 60px;
	}

	.road__right:before {
		content: '';
		position: absolute;
		top: calc(100% + 8px);
		left: 30px;
		width: 2px;
		height: 44px;
		background: url(../img/challenge/line.png);
		background-size: cover;
	}

	.road__right.last:before {
		display: none;
	}

	.road__right.last{
		margin-bottom: 0;
	}

	.road__text{
		margin-top: 20px;
	}

	.road__title{
		font-size: 50px;
	}

	.road__text{
		margin-bottom: 40px;
	}

	.clc__col1:before{
		content: '';
		display: block;
		width: 34px;
		height: 30px;
		background-image: url(../img/challenge/deco2.png);
		background-size: cover;
		position: absolute;
		top: -29px;
		left: 80%;
	}

	.clc__col2:before{
		content: '';
		display: block;
		width: 30px;
		height: 34px;
		background-image: url(../img/challenge/deco1.png);
		background-size: cover;
		position: absolute;
		top: 55%;
        right: -26px;
		left: inherit;
	}

	.clc__col3:before{
		content: '';
		display: block;
		width: 34px;
		height: 30px;
		background-image: url(../img/challenge/deco3-sp.png);
		background-size: cover;
		position: absolute;
		top: -25px;
		left: 20%;
	}

	.clc__col4:before{
		content: '';
		display: block;
		width: 30px;
		height: 34px;
		background-image: url(../img/challenge/deco4-sp.png);
		background-size: cover;
		position: absolute;
		top: 20%;
		left: -24px;
		right: inherit;
	}





}

@media (max-width: 599px) {

	.scroll{
		margin-bottom: 700px;
	}

	.mvf__content1 h2{
		font-size: 70px;
	}

	.c1__row1 p{
		font-size: 16px;
	}

	.c1__row1 p span{
		margin:0 5px;
	}

	.nf__flex .nf__card .logo{
		width: 120px;
	}

	.mvf__content1.content2 .c2__col h3{
		font-size: 36px;
	}

	.c2__col{
		width: 49%;
	}

	.mvf__content1.content2 .c2__col .c2__text3{
		line-height: 1.2;
		margin-top: 10px;
	}

	.c3__row{
		display: block;
	}

	.c3__text1{
		width: 100%;
	}

	.c3__text2{
		width: 100%;
	}

	.message__slider{
		padding-bottom: 40px;
	}

	.footer__info .faq__q{
		line-height: 1.4;
		padding-left: 48px;
		padding-right: 25px;	
	}

	.footer__info .faq__a{
		margin-top: 20px;
		padding-left: 48px;
	}

	.footer__info .faq__q:before{
		width: 20px;
		height: 13px;
	}

	.faq__row{
		padding:16px 0;
	}

	.footer__info{
		padding-bottom: 180px;
	}

	.popup-video__title{
		font-size: 30px;
		top: -40px;
	}

	.popup-video__close{
		width: 20px;
		height: 20px;
		top: -32px;
	}

	.popup1__box .content{
		padding:40px 20px;
	}

	.message__slider-track{
		display: flex;
		width: max-content;
		animation: messageMarquee 35s linear infinite;
		will-change: transform;
	}

	.popup1__box{
		height: 90%;
	}

}









