section{
	padding-top: clamp(5rem,6.52vw,10rem);
	padding-bottom: clamp(5rem,6.52vw,10rem);
}

section .inner{
	position: relative;
	z-index: 2;
}

h2{
	color: var(--c-main);
	font-family: var(--mincho);
	font-weight: 600;
	font-size: 4rem;
	margin-bottom: 4rem;
	line-height: 1.8em;
	text-align: center;
}

h2 .small{
	display: inline-block;
	font-size: 80%;
}

.lead_text{
	font-size: 2rem;
	margin-bottom: 5rem;
	text-align: center;
}

.bg_img{
	background-image: url("../img/common/bg_01.webp");
	background-repeat: repeat;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	section{
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	
	h2{
		font-size: 3rem;
		line-height: normal;
		margin-bottom: 2.5rem;
	}
	
	h2 .small{
		font-size: 66%;
	}
	
	.lead_text{
		font-size: 1.6rem;
		text-align: left;
		margin-bottom: 3rem;
	}
}

/*==========================================

mainvisual

==========================================*/
#mainvisual{
	background-image: url("../img/top/mainvisual.webp");
	background-size: cover;
	background-position: right;
	padding: 3rem 0;
	position: relative;
}

#mainvisual::before{
	background: linear-gradient(270deg, rgba(255, 255, 255, 0.00) 0%, #FFF 100%);
	content: "";
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

#mainvisual .inner{
	position: relative;
	z-index: 2;
}

#mainvisual .catchcopy{
	color: var(--c-main);
	font-size: clamp(4rem,5.22vw,7rem);
	font-weight: 700;
	line-height: 1.4em;
}

#mainvisual .sub_catch{
	font-size: clamp(2rem,2.61vw,2.6rem);
	font-weight: 500;
}

#mainvisual .line_contents{
	align-items: flex-end;
}

#mainvisual .line_bnr{
	align-items: center;
	margin-top: 5rem;
	margin-bottom: 0;
	min-height: 1px;
	width: 63%;
}

#mainvisual .line_bnr .text_box .head{
	font-size: clamp(2.8rem,2.35vw,3rem);
}

#mainvisual .line_bnr .text_box .head::before{
	height: 5.5rem;
	width: 5.5rem;
}

#mainvisual .line_bnr .text_box .present{
	gap: 2rem;
}

#mainvisual .line_bnr .text_box .present .item{
	font-size: clamp(1.8rem,1.43vw,2rem);
	margin-top: 2rem;
	margin-bottom: 2rem;
	min-height: 7rem;
	padding: 0;
	width: 46%;
}

#mainvisual .line_bnr .text_box .present .item.pdf{
	padding-left: 7.6rem;
}

#mainvisual .line_bnr .text_box .present .item.pdf::after{
	font-size: 3rem;
	left: calc(100% + 0.2rem);
}

#mainvisual .line_bnr .text_box .present .item.pdf .img_box{
	max-width: 6rem;
	left: 0.5rem;
}

#mainvisual .line_bnr .text_box .present .item.zoom{
	padding-left: 10rem;
}

#mainvisual .line_bnr .text_box .present .item.zoom .img_box{
	max-width: 7rem;
}

#mainvisual .line_bnr .text_box .yellow{
	font-size: 2.6rem;
}

#mainvisual .line_bnr .qr{
	font-size: 1.8rem;
	font-weight: 700;
	position: relative;
	right: 0;
	bottom: 0;
	text-align: center;
}

#mainvisual .line_bnr .qr img{
	margin-bottom: 5px;
}

#mainvisual .line_friends{
	background-color: #fff;
	border: 3px solid var(--c-line);
	border-radius: 10px;
	font-size: clamp(2rem,1.69vw,2.3rem);
	font-weight: 700;
	padding: 1rem;
	text-align: center;
	width: 36%;
}

#mainvisual .line_friends p{
	align-items: center;
	display: flex;
	justify-content: center;
}

#mainvisual .line_friends p::before,
#mainvisual .line_friends p::after{
	background-image: url("../img/common/decoration_laurel.svg");
	background-size: contain;
	content: "";
	display: block;
	height: 6.2rem;
	width: 1.8rem;
}

#mainvisual .line_friends p::before{
	margin-right: 0.4rem;
}

#mainvisual .line_friends p::after{
	margin-left: 0.4rem;
	transform: scale(-1,1);
}

#mainvisual .line_friends .icon{
	margin-right: 1rem;
}

#mainvisual .line_friends .number{
	font-size: 4rem;
	margin-left: 0.5rem;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#mainvisual{
		background-position:90%;
		height: 60rem;
		padding: 1rem 0;
		position: relative;
	}
	
	#mainvisual .catchcopy{
	  -webkit-text-stroke: 7px #fff;
	  text-stroke: 7px #fff;
	  paint-order: stroke;
	}
	
	#mainvisual .inner{
		display: flex;
        flex-flow: column;
        justify-content: center;
		height: 100%;
	}
	
	#mainvisual .logo{
		max-width: 250px;
		width: 100%;
	}
	
	#mainvisual .line_friends{
		font-size: 1.8rem;
		padding: 0.5rem 1rem;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
	}
	
	#mainvisual .line_friends p::before,
	#mainvisual .line_friends p::after{
		height: 3.2rem;
		width: 0.9rem;
	}
	
	#mainvisual .line_friends p::before {
		margin-right: 0.8rem;
	}
	
	#mainvisual .line_friends p::after {
		margin-lett: 0.8rem;
	}
	
	#mainvisual .line_friends .icon{
		max-width: 25px;
	}
	
	#mainvisual .line_friends .number{
		font-size: 2.6rem;
	}
	
	#mainvisual .line_bnr{
		display: none;
	}
}


#front-page .disclaimer{
	background-color: #FFF9EF;
	padding: 1.8rem 0;
}

#front-page .disclaimer p{
	padding-left: 8.5rem;
	position: relative;
}

#front-page .disclaimer p::before{
	background-image: url("../img/common/icon_shield.svg");
	background-size: contain;
	content: "";
	height: 5.3rem;
	position: absolute;
	top: 0;
	left: 2.5rem;
	width: 4.4rem;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#front-page .disclaimer p{
		font-size: 1.4rem;
		padding-left: 0;
	}
	
	#front-page .disclaimer p::before{
		display: none;
	}
}

/*==========================================

FXでこんなお悩みありませんか？

==========================================*/
#worries .flex_box{
	gap: 2.5rem 0;
}

#worries .item{
	background-color: #fff;
	border: 2px solid #ccc;
	border-radius: 14px;
	margin-top: 9px;
	padding: 0 1.5rem 4.5rem;
	position: relative;
	width: 31%;
}

#worries .item::before{
	background-color: var(--c-main);
	border-radius: 14px;
	content: "";
	height: 100%;
	position: absolute;
	top:-9px;
	left: 0;
	width: 100%;
	z-index: -1;
}

#worries .item img{
	margin-left: auto;
	margin-right: auto;
	max-width: 19rem;
	width: 100%;
}

#worries .item .text{
	color: var(--c-main);
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#worries .item{
		padding: 0 0 1.5rem;
		width: 49%;
	}
	
	#worries .item img{
		max-width: 8.5rem;
	}
	
	#worries .item .text{
		font-size: 1.1rem;
	}
}

/*==========================================

稼ぐためではなく、自由な時間を得るための学び
B'FreeのFXテクニカル分析サロン

==========================================*/
#about{
	background-image: url("../img/common/bg_02.webp");
	background-size: contain;
	background-position: top center;
}

#about .flow_box{
	counter-reset: top_flow;
	display: flex;
	flex-flow: column;
	gap: 3rem 0;
}

#about .item{
	background-color: #fff;
	border: 1px solid #ccc;
	border-radius: 14px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 5rem 2.4rem;
}

#about .item:nth-child(2n){
	background-color: #EFF6FF;
}

#about .item::before{
	background-color: var(--c-main);
	border-radius: 10px;
	counter-increment: top_flow;
	content: counter(top_flow, decimal-leading-zero);
	color: #fff;
	font-family: var(--mincho);
	font-size: 9rem;
	font-weight: 600;
	text-align: center;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 2rem;
	width: 12%;
}

#about .item .left_box{
	width: 38%;
}

#about .item .left_box p:not(:last-child){
	margin-bottom: 2em;
}

#about .item .left_box .sub_title{
	color: var(--c-sub-02);
	font-size: 1.8rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

#about .item .left_box .title{
	color: var(--c-main);
	font-family: var(--mincho);
	font-size: 3rem;
	font-weight: 600;
	margin-bottom: 2.8rem;
}

#about .item .right_box{
	color: var(--c-main);
	font-family: var(--mincho);
	font-size: 3rem;
	font-weight: 600;
	width: 45%;
}

#about .item .right_box .big{
	font-size: 4rem;
}

#about .item#about_01 .right_box{
	text-align: center;
}

#about .item#about_01 .right_box img{
	margin-top: 1.5rem;
	margin-left: auto;
	margin-right: auto;
}

#about .item#about_02 .right_box{
	align-items: flex-start;
}

#about .item#about_02 .right_box p{
	width: 100%;
}

#about .item#about_02 .right_box .icon{
	position: relative;
	width: 31%;
}

#about .item#about_02 .right_box .icon p{
	color: #fff;
	font-size: clamp(1.2rem,1.56vw,2rem);
	font-weight: 600;
	margin-bottom: 0;
	position: absolute;
	right: 2rem;
	bottom: 5px;
	width: auto;
}

#about .item#about_03 .right_box p{
	color: var(--c-main);
	margin-bottom: 1.2rem;
	text-align: center;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#about{
		background-size: auto;
		background-position: top right;
		padding-bottom: 0;
	}
	
	#about .item::before{
		width: 7rem;
	}
	
	#about .item .left_box{
		width: calc(100% - 8.5rem);
	}
	
	#about .item {
		display: grid;
		grid-template-columns: 7rem 1fr;
		gap: 0 1.2rem;
		padding: 3rem 2rem 2rem;
	}

	#about .item::before {
		align-items: center;
		grid-column: 1 / 2;
		grid-row: 1 / 3;
		font-size: 5rem;
		display: flex;
		height: 7rem;
		justify-content: center;
		text-decoration: none;
		width: 100%;
	}

	#about .item .left_box {
		display: contents;
	}

	#about .item .left_box .sub_title {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
		font-size: 1.2rem;
		margin-bottom: 0.4rem !important;
	}

	#about .item .left_box .title {
		grid-column: 2 / 3;
		grid-row: 2 / 3;
		font-size: 1.8rem;
		margin-bottom: 4rem;
	}

	#about .item .right_box {
		grid-column: 1 / 3;
		grid-row: 3 / 4;
		width: 100%;
		font-size: 2rem;
		margin-bottom: 2rem;
	}
	
	#about .item .left_box p {
		grid-column: 1 / 3;
		width: 100%;
		font-size: 1.4rem;
		margin-bottom: 1em;
	}
	
	#about .item .left_box p:not(:last-child){
		margin-bottom: 0px;
	}
	
	#about .item .right_box .big{
		font-size: 2.4rem;
	}
	
	#about .item#about_01 .right_box {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: 0.5rem 1rem;
		text-align: left;
		width: 100%;
	}

	#about .item#about_01 .right_box p {
		font-size: 1.5rem;
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}

	#about .item#about_01 .right_box img:nth-of-type(1) {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
		width: 100%;
		max-width: 110px;
		height: auto;
		margin: 0;
	}

	#about .item#about_01 .right_box img:nth-of-type(2) {
		grid-column: 2 / 3;
		grid-row: 1 / 3;
		width: 100%;
		height: auto;
		margin: 0;
	}
	
	#about .item#about_02 .right_box p{
		margin-bottom: 1rem;
	}
	
	#about .item#about_02 .right_box .icon p{
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		text-align: center;
	}
}

/*==========================================

コース紹介

==========================================*/
#course .course_box{
	display: flex;
	justify-content: space-between;
}

#course .item{
	background-color: #fff;
	border: 1px solid var(--c-main);
	border-radius: 14px;
	width: 32%;
}

#course .item .head{
	background-color: var(--c-main);
	border-radius: 13px 13px 0 0;
	color: #fff;
	font-family: var(--mincho);
	font-weight: 600;
	font-size: 3rem;
	padding: 1rem;
	text-align: center;
}

#course .item .contents{
	padding: 1rem;
}

#course .item .contents .summary{
	align-items: center;
	border-bottom: 1px solid #D2D2D2;
	display: flex;
	font-size: 2rem;
	justify-content: center;
	min-height: 9rem;
	padding-bottom: 1.5rem;
	text-align: center;
}

#course .item .contents .price{
	color: var(--c-main);
	font-family: var(--mincho);
	font-size: 2rem;
	font-weight: 600;
	line-height: normal;
	padding: 2rem 0;
	text-align: center;
}

#course .item .contents .price .month{
	background-color: var(--c-main);
	border-radius: 5px;
	color: #fff;
	display: inline-block;
	font-family: var(--gothic);
	font-weight: 400;
	margin-right: 1rem;
	padding: 0 1rem;
}

#course .item .contents .price .number{
	font-size: 5.5rem;
	line-height: 1em;
}

#course .item .contents .price .yen{
	font-size: 2.5rem;
}

#course .item .contents .price .limited{
	background-color: #CE141E;
	border-radius: 5px;
	color: #fff;
	display: block;
	margin-bottom: 5px;
	text-align: center;
	width: 100%;
}

#course .item .contents .price .normal{
	color: var(--c-main);
	display: block;
	margin-top: 5px;
	text-align: right;
}

#course .item .contents li{
	border-top: 1px solid #D2D2D2;
	color: var(--c-main);
	padding: 2.8rem 0 2.8rem 6rem;
}

#course .item .contents li .bold{
	font-size: 2rem;
	display: block;
}

#course .item .contents li::before{
	background-size: contain;
	content: "";
	height: 5rem;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 5rem;
}

#course .item .contents li.book::before{
	background-image: url("../img/common/icon_block-book.png");
}

#course .item .contents li.bubble::before{
	background-image: url("../img/common/icon_block-bubble.png");
}

#course .item .contents li.calendar::before{
	background-image: url("../img/common/icon_block-calendar.png");
}

#course .item .contents li.document::before{
	background-image: url("../img/common/icon_block-document.png");
}

#course .item .contents li.graph::before{
	background-image: url("../img/common/icon_block-graph.png");
}

#course .item .contents li.lecture::before{
	background-image: url("../img/common/icon_block-lecture.png");
}

#course .item .contents li.playback::before{
	background-image: url("../img/common/icon_block-playback.png");
}

#course .item .contents li.psychology::before{
	background-image: url("../img/common/icon_block-psychology.png");
}

#course .item .contents li.user::before{
	background-image: url("../img/common/icon_block-user.png");
}




#course .item#basic{
	border-color: var(--c-sub-01);
}

#course .item#basic .head,
#course .item#basic .contents .price .month{
	background-color: var(--c-sub-01);
}

#course .item#basic .contents .price{
	color: var(--c-sub-01);
}


#course .item#vip{
	border-color: #A57521;
}

#course .item#vip .head,
#course .item#vip .contents .price .month{
	background-color: #A57521;
}

#course .item#vip .contents .price{
	color: #A57521;
}

#course .link_btn{
	margin-top: 8.6rem;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#course .course_tabs {
		display: flex;
		gap: 8px;
		margin-bottom: 16px;
	}

	#course .tab_btn {
		flex: 1;
		padding: 1rem;
		background-color: var(--c-main);
		border-radius: 5px;
		color: #fff;
		border: none;
		cursor: pointer;
		font-size: 2rem;
		font-family: var(--mincho);
	}
	
	#course .tab_btn.basic{
		background-color: var(--c-sub-01);
	}
	#course .tab_btn.vip{
		background-color: #A57521;
	}
	
	#course .course_box {
		display: block;
	}

	#course .course_box .item {
		display: none;
		margin-bottom: 0;
		width: 100%;
	}

	#course .course_box .item.active {
		display: block;
	}
	
	#course .link_btn{
		margin-top: 2.6rem;
	}
}


/*==========================================

講師メッセージ

==========================================*/
#message .inner{
	max-width: 1400px;
}

#message .img_box{
	width: 43%;
}

#message img{
	border-radius: 10px;
}

#message .text_box{
	width: 54%;
}

#message .text_box h2{
	text-align: left;
}

#message .text_box p{
	font-size: 2rem;
	line-height: 2em;
	max-width: 650px;
}

#message .text_box .name p{
	font-size: 3rem;
	text-align: right;
}

#message .text_box .name span{
	font-size: 3.6rem;
	font-weight: 700;
	margin-left: 3rem;
	padding-right: 10%;
}

#message .text_box .link_btn{
	margin-top: 6.5rem;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#message .text_box {
		width: 100%;
	}
	
	#message .text_box h2{
		text-align: center;
	}
	
	#message .text_box img{
		margin-bottom: 2.5rem;
	}
	
	#message .text_box p{
		font-size: 1.6rem;
		line-height: 1.8em;
	}
	
	#message .text_box .name p{
		font-size: 2rem;
	}
	
	#message .text_box .name span{
		font-size: 2.4rem;
		margin-left: 2rem;
		padding-right: 0;
	}
	
	#message .text_box .link_btn{
		margin-top: 2.8rem;
	}
}


/*==========================================

講座を受けた方の声

==========================================*/
#voice{
	background: linear-gradient(100deg, #C3EAF7 16.74%, #DFF7FF 53.76%, #E0F4FB 97.79%);
}

.voice_box .item{
	background-color: #fff;
	border-top: 6px solid #1B92E5;
	display: flex;
	flex-flow: column;
	padding: 3rem;
	width: 32%;
}

.voice_box .item img{
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2.5rem;
}

.voice_box .item h3{
	color: var(--c-main);
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
	margin-bottom: 2.5rem;
}

.voice_box .item p{
	margin-bottom: 2.5rem;
}

.voice_box .item .profile{
	color: var(--c-main);
	margin-top: auto;
	margin-bottom: 0;
	text-align: right;
}


/*==========================================

B'Free 学びの流れ

==========================================*/
#flow .lead_text{
	margin-bottom: 7.5rem;
}

#flow .flow_box{
	counter-reset: flow;
	gap: 3rem;
	max-width: 1400px;
}

#flow .flow_box .item{
	background-color: #fff;
	border: 2px solid #D7D7D7;
	border-radius: 10px;
	padding: 4.5rem 1.5rem;
	position: relative;
	text-align: center;
	width: calc(25% - 3rem);
}

#flow .flow_box .item::before{
	background-color: var(--c-main);
	border-radius: 14px;
	content: counter(flow, decimal-leading-zero);
	counter-increment: flow;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	padding: 5px;
	position: absolute;
	top: -1.8rem;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	width: 8.3rem;
}

#flow .flow_box .item:not(:last-child)::after{
	border: 1.5rem solid transparent;
	border-left: 1.5rem solid var(--c-main);
	content: "";
	position: absolute;
	top: 50%;
	left: calc(100% + 1.5rem);
	transform: translateY(-50%);
}

#flow .flow_box .item .icon{
	align-items: center;
	background-color: #E2F2FF;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	height: 13rem;
	margin-left: auto;
	margin-right: auto;
	width: 13rem;
}

#flow .flow_box .item .icon img{
	height: 6.2rem;
	width: 6.2rem;
}

#flow .flow_box .item h3{
	font-size: 2.2rem;
	margin: 3rem 0;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	#flow .flow_box{
		gap: 4.8rem 0;
	}
	
	#flow .flow_box .item{
		margin-left: auto;
		margin-right: auto;
		max-width: 32rem;
		width: 100%;
	}
	
	#flow .flow_box .item:not(:last-child)::after{
		border-left: 1.5rem solid transparent;
		border-top: 1.5rem solid var(--c-main);
		margin-left: -1.5rem;
		top: calc(100% + 2.8rem);
		left: 50%;
	}
}


/*==========================================

よくある質問

==========================================*/
.faq_box dl{
	background-color: #fff;
	border-radius: 10px;
	margin-bottom: 10px;
	position: relative;
}

.faq_box dl::before,
.faq_box dl::after{
	background-color: var(--c-main);
	content: '';
	display: inline-block;
	position: absolute;
	top: 3.5rem;
    right: 5rem;
	width: 2px;
	height: 20px;
}
.faq_box dl::after{
 	transform: rotate(90deg);
}
.faq_box dl.open::before{
	display: none;
}


.faq_box dt{
	cursor: pointer;
	font-size: 2rem;
	font-weight: 500;
	padding: 3rem 8rem;
	position: relative;
}

.faq_box dt::before{
	background-image: url("../img/common/txt_q.svg");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 1.9rem;
	position: absolute;
	top: 3.5rem;
	left: 4rem;
	width: 1.4rem;
}

.faq_box dd{
	border-top: 1px solid #CFCFCF;
	display: none;
	padding: 3rem 8rem;
	position: relative;
}

/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	.faq_box dt,
	.faq_box dd{
		padding: 3rem 5rem;
	}
	
	.faq_box dt::before{
		left: 2rem;
	}
	
	.faq_box dl::before,
	.faq_box dl::after{
		right: 3rem;
	}
}


/*-- ↓ under 767px ↓ ---------------------------*/
@media (max-width: 767.9px){
	.js-scrollable {
	  position: relative !important;
	}

	.js-scrollable .scroll-hint-icon {
	  opacity: 1;
	  visibility: visible;
	  z-index: 10;
	  pointer-events: none;
	  transition: opacity 0.5s ease, visibility 0.5s ease;
	}
	
	.scroll-hint-text{
		font-size: 1rem;
	}

	.js-scrollable .scroll-hint-icon.is-hidden{
	  opacity: 0 !important;
	  visibility: hidden !important;
	}
}