html{
    font-size: 15px;
    color: #606060;
    letter-spacing: 0.05em;
    line-height: 1.7;
    /* %で指定すると子や孫にも本要素で「計算後の実値」が継承されてしまうため、単位無しで指定 */
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
    touch-action: manipulation; /*ダブルタップによるズームを無効化*/
}
*{
    font-family: inherit;/* フォントを継承（button等で勝手に他のフォントになるのを防ぐ */
}
p{
    margin-top:0px;
    margin-bottom:15px;
}
@media only screen and (min-width: 738px){
    p{
        margin-bottom:20px;
    }
}
p.line_height_big{
    line-height: 195%;
}
a{
    color: #5193f7;
    text-decoration: none;
}
h2{
    margin-top:90px;
    margin-bottom:35px;
    font-size:24px;
    text-align:center;
}
@media only screen and (min-width: 738px){
    h2{
        margin-bottom:45px;
        font-size:30px;
    }
}
h2.with_subtitle{
    margin-top:0px;
}
h3{
    font-size: 20px;
    margin-top: 35px;
    margin-bottom: 15px;
    font-weight: bold;
    color: #606060;
}
@media only screen and (min-width: 738px){
    h3{
        margin-top:45px;
        margin-bottom:25px;
        font-size:26px;
    }
}
h3 i{
    color: #ea9c2e;
}
/* 数字つきヘッダ */
h3.with_number{
    vertical-align: bottom;
    margin-bottom:0px;
}
h3.with_number.margin_top_small{
    margin-top:15px;
}
h3.with_number .number{
    color: #5193f7;
    font-size:120%;
    margin-right:5px;
}
h3.with_number .number .big{
    font-size:200%;
}
span.highlight{
    font-size: 130%;
    margin:0 5px;
    position:relative;
}
span.highlight::before {
    position: absolute;
    top: -10px;
    right: -14px;
    width: 25px;
    height: 16px;
    content: '';
}
@media only screen and (min-width: 738px){
    span.highlight::before {
        top: -22px;
        right: -26px;
        width: 50px;
        height: 32px;
    }
}
span.highlight.yellow::before{
    background:url("img_h2_deco_yellow.png") no-repeat center/contain;
}
span.highlight.blue::before{
    background:url("img_h2_deco_blue.png") no-repeat center/contain;
}
span.yellow{
    color:#ea9c2e;
}
span.blue{
    color:#5193f7;
}
span.green{
    color:#25ae78;
}
span.red{
    color:#F45079;
}
span.highlight_yellow {
    font-size: 130%;
    margin: 0 5px;
    position: relative;
    color: #ea9c2e;
}
.bold{
    font-weight:bold;
}
.left{
    text-align:left;
}
i{
    margin-right: 0.4em;
}
strong.dashed {
    border-bottom: dashed 2px #5193f7;
}
span.small_font{
    font-size:13px;
}
/*--------------------------------------------------------
共通CSS
--------------------------------------------------------*/
*,*:before, *:after{
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}
.last_margin_bottom{
    margin-bottom:15px;
}
@media only screen and (min-width: 738px){
    .last_margin_bottom{
        margin-bottom:20px;
    }
}
.last_margin_bottom_none{
    margin-bottom:0px!important;
}
.last_margin_bottom_middle{
    margin-bottom:50px;
}
.last_margin_bottom_big{
    margin-bottom:75px;
}
.margin_top_none{
	margin-top:0px!important;
}
.center{
    text-align:center;
}
.right{
    text-align:right;
}
.button{
    text-align:center;
}
/* 写真の角を丸くする */
/* imgタグを↓この要素で囲むと角丸の写真になる */
div.image_frame {
    overflow: hidden;
    border-radius: 12px;
}
img{
    vertical-align:top;
}
@media only screen and (min-width: 738px){
    .display_none_pc{
        display:none;
    }
}
.clearfix {
    clear: both;
}
ul,
ol {
    padding:0px;
    margin: 0 0 0 25px;
}
ul li,
ol li{
    padding: 4px 0;
}
ul li:nth-child(1){
    margin-top: -4px;/* 最初を調整 */
}
.img_box img{
    width:50%;
}
/*--------------------------------------------------------
■ 改行させる
--------------------------------------------------------*/
br.sp_new_line {/* SP版で改行させる */
    display:inline;
}
@media screen and (min-width: 738px){
    br.sp_new_line {
        display:none;
    }
}
br.md_new_line{
	 display:none;
}
@media screen and (min-width: 738px){
	br.md_new_line {/* ミディアム版で改行させる */
	    display:inline;
	}
}
@media screen and (min-width: 1117px){
    br.md_new_line {
        display:none;
    }
}
/*--------------------------------------------------------
■ SP版でのみ表示／PC版でのみ表示
--------------------------------------------------------*/
.only_sp_block{
    display:block;
}
@media only screen and (min-width: 738px){
    .only_sp_block{
        display:none !important;
    }
}
.only_pc_block{
    display:none;
}
@media only screen and (min-width: 738px){
    .only_pc_block{
        display:block;
    }
}
.only_lg_block{
    display:none;
}
@media only screen and (min-width: 1117px){
    .only_lg_block{
        display:block;
    }
}
/*--------------------------------------------------------
アニメーションCSS
--------------------------------------------------------*/
/* 下から */

.fade_up{
animation-name:fade_up_anime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

/* @keyframes fadeUpAnime{ */
@keyframes fade_up_anime{
    from {
        opacity: 0;
        transform: translateY(20px);/*  ふわっと上がってくるアニメーション*/
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/*--------------------------------------------------------
各ブロックの要素
--------------------------------------------------------*/
body.landing_body{
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}
body.landing_body .hidden{
    overflow-x:hidden;/* iosでhiddenが効かなかったためこちらを適用 */
}
body.landing_body.no_scroll{
    overflow: hidden;
}

.loading {
    display: none; /* 初期状態では非表示 */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 1); /* 半透明の背景 */
    z-index: 9999; /* 最前面に配置 */
    justify-content: center;
    align-items: center;
    font-size: 3em;
    color: #333;
}
#main{
    margin-top: 80px;
}
#content{
    margin: 0 5px;
    width: initial;
}
@media only screen and (min-width: 738px){
    #content{
        margin: 0;
    }
}
@media only screen and (min-width: 738px) and (max-width: 1116.999px){
    #content{
        padding:0 40px;/* ミディアムサイズはpadding小さく */
    }
}
#content_full{
	margin: 0 5px;
}
@media only screen and (min-width: 738px){
    #content_full{
	    margin: 0;
    }
}
/*--------------------------------------------------------
header
--------------------------------------------------------*/
header.header_sp{/*  backgroundはjsで制御している*/
    width:100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    padding:15px;
}
header.header_sp .header_sp_item{
    display:flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1600px;
    margin: 0 auto;
}
header.header_sp .header_sp_item .header_logo{
    width: 100vw;
    display:flex;
    align-items: center;
    justify-content: center;
    margin-left:25px;
}
header.header_sp .header_sp_item .header_logo img.title {
     max-height: 43px;
     vertical-align: bottom;/* header下部の不要なすき間を無くす */
}
header.header_pc{
    width:100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    padding:15px;
    background:#fff;
}
header.header_pc .header_pc_item{
    display:flex;
    align-items: center;
    justify-content: space-between;
    width:100%;
    max-width: 960px;
    max-width: 1100px;/* 【丹澤確認】 */
    margin: 0 auto;
}
header.header_pc .header_pc_item .header_logo a{
    display:flex;
    align-items: center;
    justify-content: center;
}
header.header_pc .header_pc_item .header_logo img.title {
     max-height: 50px;
     vertical-align: bottom;/* header下部の不要なすき間を無くす */
}
@media only screen and (min-width: 1117px){
    header.header_pc .header_pc_item .header_logo img.title {
         max-height: 52px;
    }
}
header.header_pc .header_pc_item .header_nav{
    width: 100%;
    position: relative;
}
header.header_pc .header_pc_item .header_nav ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
     list-style:none;
     margin-left:0px;
}
header.header_pc .header_pc_item .header_nav ul li{
    margin-top: 0px;
        text-align:center;
}
header.header_pc .header_pc_item .header_nav ul a {
    color: #606060;
    padding: 5px;
    margin: 0 10px;
    position: relative;
    text-align:center;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
/*--------------------------------------------------------
ハンバーガーメニュー
--------------------------------------------------------*/
body::before {/* ハンバーガメニュークリック時に背景を固定する */
    background-size: 100% auto;
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding-bottom: 108px;
    content: "";
    z-index: -1;
}
header.header_sp{
	display:block;
	background:#fff;
}
@media only screen and (min-width: 1117px){
	header.header_sp{
		display:none;
	}
}
header.header_sp .ham_menu{
    background-color: #fff;
    box-sizing: border-box;
    height: 100%;
    padding: 0px; /*メニュー内左右上下余白*/
    position: fixed;
    right: -300px; /*メニュー横幅 width と合わせる*/
    top: 0;
    transition: .2s ease-in-out;
    width: 300px;
    z-index: 1000;
}
header.header_sp .ham_menu ul{
    list-style:none;
    margin-left:0px;
}
header.header_sp .ham_menu ul li{
    border-bottom:1px #e8f1ff dashed;
    width:300px;
    margin:0 20px;
}
header.header_sp .ham_menu ul li a{
    color:#606060;
    display:block;
    font-size:16px;
    width:100%;
    height:100%;
    padding:14px 0;
}
header.header_sp .menu_background {
    background-color: #333; /*黒背景*/
    display: none;/* jsでdisplayを制御 */
    height: 100%;
    opacity: 0;
    position: fixed;
    right: 0;
    top: 0;
    transition: .2s ease-in-out;
    width: 100%;
    z-index: -1;
}
header.header_sp .menu_box{
    color: #808080;
    cursor: pointer;
    display: block;
    height: 50px;
    line-height: 50px;  /*縦位置中央*/
    text-align: center;
    width: 50px;
    transition: .2s ease-in-out;
    z-index: 1000;
}
header.header_sp .menu_box::before {
    font-family:'Font Awesome 6 Pro';
    content: '\f0c9';
    font-size: 32px;
}
header.header_sp .menu_box.open::before {
    content: '\f00d';
    color: #fff;
}
header.header_sp .menu_box.open,
header.header_sp .menu_box.open ~ #ham_menu{
	transform: translate(-300px);
}
header.header_sp .menu_box.open ~ #menu_background {
    opacity: 0.5;
    z-index: 999;
}
@media only screen and (max-width: 320px){/* iphone5/se用 */
    header.header_sp .ham_menu {
        right: -240px;
        width: 240px;
    }
    header.header_sp .ham_menu ul li{
        width:240px;
    }
    header.header_sp .ham_menu ul li a{
    font-size:14px;
}
    header.header_sp .menu_box.open ~ #ham_menu,
    header.header_sp .menu_box.open{
    	transform: translate(-240px); /*メニュー本体横幅 width と合わせる*/
    }
}
/*--------------------------------------------------------
ファーストビュー
--------------------------------------------------------*/
.first_view{
    position:relative;
}
/* オーバーレイ（薄い黒幕） */
.first_view .video_block{
	position: relative;
}
.first_view .video_block .overlay{
    background-color: #000;
    opacity: 0.2;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

.first_view .first_view_item{
    width:100%;
    margin:0 auto;
    position:relative;
}
.first_view .first_view_main{
	text-align:center;
}
@media only screen and (min-width: 1100px){
	.first_view .first_view_main{
		 position:relative;
	}
}
.first_view .first_view_main .first_view_header{
	position: absolute;
    top: 30px;
    right: 30px;
    z-index: 2;
    writing-mode: vertical-rl;
    display: flex;
    flex-direction: column;
    gap: 11px;
    gap: 0.6875rem;
    margin:0;
}
@media only screen and (min-width: 738px){
	.first_view .first_view_main .first_view_header{
		top: 30px;
		right:30px;
	}
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_main .first_view_header{
		top: 132px;
		right: 163px;
	}
}
.first_view .first_view_main .first_view_header span{
    font-size: 20px;
    font-weight: bold;
    line-height: 1.1333333333;
    letter-spacing: 0.1em;
    text-align:right;
    color: #3d3732;
    display: inline-flex;
    height: fit-content;
     align-items: center;
    background-color: #fff;
    padding: 8px 10px 8px 4px;
}
@media only screen and (min-width: 738px){
	.first_view .first_view_main .first_view_header span{
    	font-size: 28px;
    	padding: 12px 14px 12px 8px;
	}
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_main .first_view_header span{
    	font-size: 30px;
    	padding: 12px 14px 12px 8px;
	}
}
.first_view .first_view_main img{
    width:100%;
    height:auto;
    max-width:980px;
    max-width: 1600px;
}
.first_view .first_view_main video{
    width:100%;
    height:auto;
    vertical-align:top;
}
.first_view .first_view_main .lesson_type_link{
	position:absolute;
	right:20px;
	bottom:180px;
	display:none;
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_main .lesson_type_link{
		right:30px;
		bottom:30px;
	}
}
@media only screen and (max-width: 320px){
	.first_view .first_view_main .lesson_type_link{
		bottom:148px;
	}
}
.first_view .first_view_main .lesson_type_link .lesson_type_link_wrap{
	position:relative;
	display:flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	animation-delay: 10s;
	animation: lessonTypeLinkAnimation 0.3s ease-in-out forwards;
}
@keyframes lessonTypeLinkAnimation {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0.5; /* 半透明にすることでフワッと表示 */
    }
    100% {
        opacity: 1;
    }
}
.first_view .first_view_main .lesson_type_link .lesson_type_link_wrap .lesson_type_link_bg{
	display:flex;
	width:110px;
	height:110px;
	border-radius: 70% 60% 50% 50% / 50% 60% 70% 80%;
	background:#5193f7;
	color:#fff;
	font-weight:bold;
	justify-content: center;
	align-items: center;
	animation: diagnosisLink 8s cubic-bezier(.83,0,.17,1) infinite;
	 z-index: 1;
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_main .lesson_type_link .lesson_type_link_wrap .lesson_type_link_bg{
		width:150px;
		height:150px;
	}
}
@keyframes diagnosisLink {
    0% {
        transform: rotate(0)
    }

    30%,to {
        transform: rotate(1turn)
    }
}
.first_view .first_view_main .lesson_type_link .lesson_type_link_wrap .lesson_type_link_txt{
	position:absolute;
	width:80px;
	height:80px;
	color:#fff;
	z-index: 2;
	font-weight:bold;
	line-height: 1.5;
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_main .lesson_type_link .lesson_type_link_wrap .lesson_type_link_txt{
		width:100px;
		height:100px;
		font-size:18px;
	}
}
.first_view .first_view_item .first_view_sub{
	display:flex;
	justify-content: center;
    align-items: center;
    width:300px;
    position:relative;
    left:0%;
    bottom:50px;
    margin:0 auto;
}
@media only screen and (min-width: 738px){
	.first_view .first_view_item .first_view_sub{
    	width:450px;
    	bottom:75px;
	}
}
@media only screen and (min-width: 1117px){
	.first_view .first_view_item .first_view_sub{
    	width:600px;
    	bottom:100px;
	}
}
.first_view .first_view_item .first_view_sub img{
	width:calc(100%/3);
	  flex: 1;
	  vertical-align: top;
}
/*--------------------------------------------------------
メインボタン
--------------------------------------------------------*/
.button_area{
    margin-top:35px;
    margin-bottom:15px;
}
@media only screen and (min-width: 738px){
    .button_area{
        margin-top:45px;
        margin-bottom:25px;
    }
}
.button_area a{
    text-decoration: none;
    width:100%;
}
.btn_comment{
    font-size:13px;
    font-weight:bold;
    position: relative;
    display:inline-block;
    margin:0 auto;
    margin-bottom:10px;
    color:#5193f7;
}
.btn_comment::before, .btn_comment::after {
    position: absolute;
    top: -6px;
    top: 0px;
    width: 2px;
    height:100%;
    content: '';
    background:#5193f7;
}
.btn_comment::before {
    left: -10px;
    transform: rotate(-30deg);
}
.btn_comment::after {
    right: -10px;
    transform: rotate(30deg);
}
button.btn_submit {
    position: relative;
    display: inline-block;
    padding:20px 30px;
    color: #fff;
    z-index: 1;
    border:none;
    background:none;
    outline: none;
    cursor:pointer;
    font-weight:bold;
    font-size:15px;
    margin-right:auto;
    margin-left:auto;
}
 button.btn_submit:before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    border-radius: 40px;
    background:#5193f7;
    transition: all .3s;
 }
button.btn_submit:hover:before {
  right: 0;
  transform: scale(1.1);
  background: #5193f7;
}
button.btn_submit i{
    margin-left:10px;
    margin-right:0px;
}
/*--------------------------------------------------------
英語付きヘッダー
--------------------------------------------------------*/
h2.heading_with_english .heading_jp{
	position:relative;
	z-index:3;
}
h2.heading_with_english .heading_en{
	position:absolute;
	z-index:-1;
	left:-66px;
	top:-39px;
	content:"";
}
/*--------------------------------------------------------
PiaDOORとは
--------------------------------------------------------*/
.about_piadoor_block .bg_img{
    width:100%;
    z-index: -2;
    position:absolute;
    left:0px;
}
@media only screen and (min-width: 738px){
	.about_piadoor_block .bg_img{
	    max-width:100%;
	}
}
.about_piadoor_block .bg_img img{
    width:100%;
}
.about_piadoor_block .about_piadoor_title{
	padding-top:15px;
	position:relative;
	margin-bottom:40px;
	display:inline-block;
}
.about_piadoor_title img.question{
	position:absolute;
    right:-50px;
    bottom:-50px;
}
.about_piadoor_block h3.explication{
    line-height:280%;
    font-size:22px;
    margin-top:15px;
    margin-right:5px;
    margin-left:5px;
}
.about_piadoor_block h3 strong.blue_bg{
	background:#5193f7;
	font-size:24px;
	color:#fff;
	padding:5px;
	margin-right:10px;
}
@media only screen and (min-width: 738px){
	.about_piadoor_block h3.explication{
		font-size:26px;
	}
	.about_piadoor_block h3 strong.blue_bg{
		font-size:28px;
		padding:10px;
	}
}
.about_piadoor_block h4.introduction{
    font-size:16px;
    margin-top:10px;
	margin-bottom:40px;
	color:#606060;
	font-weight:normal;
}
@media only screen and (min-width: 738px){
	.about_piadoor_block h4.introduction{
		font-size:18px;
		margin-top:50px;
		margin-bottom:50px;
	}
}
.about_piadoor_block h4{
    font-size:18px;
    margin-top:10px;
	color:#5193f7;
}
@media only screen and (min-width: 738px){
	.about_piadoor_block h4{
		font-size:22px;
	}
}
.about_piadoor_block p strong{
	font-size: 120%;
	border-bottom: dashed 2px #5193f7;
}

.number_block{
	display:flex;
	width:100%;
	max-width:300px;
	margin:50px auto;
	margin-bottom:25px;
	gap:10px;

}
.number_block .number_item{
	display:flex;
	align-items: center;
	justify-content: center;
	width:calc((100% - 10px)/2);
	height:calc((100% - 10px)/2);
 	aspect-ratio: 1 / 1;/* 正円にする */
	border-radius: 50%;
	background:#e8f1ff;
	position:relative;
	flex-flow: column;

}
.number_block .number_item:before{
	position:absolute;
	content:"";
	background:url("img_total_class_number.png") no-repeat center/contain;
	width: 80%;
	aspect-ratio: 34 / 11;
	top:-25px;
	left:10%;
}
.number_block .number_item.red:before{
	background:url("img_monthly_pv_number.png") no-repeat center/contain;
}
.number_block .number_item.red{
	background:#FFE8ED;
}
.number_block .number_item .big_font{
	font-size:200%;
	font-weight:bold;
	color:#5193F7;
}
.number_block .number_item.red .big_font{
	color:#F45079;
}
.comment_block{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 100%;
    max-width:400px;
    /* margin: 0 auto; */
}
.comment{
    font-size:80%;
    color:#808080;
    margin-bottom:5px;
    text-align:left !important;
}
.background_box_block{
	display:flex;
	width:100%;
	max-width:1100px;
	margin:0 auto;
	gap:10px;
}
.background_box_block .background_box{
	width:calc((100% - 10px)/2);
}
/*--------------------------------------------------------
■ background_box
--------------------------------------------------------*/
.background_box_wrapper{
	display:flex;
	flex-wrap: wrap; /* 折り返しを許可 */
	width:calc(100% - 10px);
    justify-content: center;
	gap:40px;
	margin-right:5px;
	margin-left:5px;
	text-align:center;
	margin-top:60px;
}
@media only screen and (min-width: 738px){
	.background_box_wrapper{
		max-width:1100px;
		margin-right:auto;
		margin-left:auto;
		gap:20px;		
	}	
}
div.background_box{
	padding: 36px 10px 10px 10px;/* padding-topはタイトルのline-heightの影響でアイコンの上には3pxの余白があるため、(取りたい余白10px)-3px=7pxとした */
	margin-bottom: var(--margin_bottom_s);
	border-radius: 20px;
	width:100%;
	position:relative;
}
@media only screen and (min-width: 738px){
	div.background_box{
		padding:40px 15px 10px 15px;/* padding-topはタイトルのline-heightの影響で文字の上には4pxの余白があるため、(取りたい余白15px)-4px=11pxとした */
		margin-bottom: var(--margin_bottom_ml);
		width:calc((100% - 40px)/3);
	}
}
div.background_box .point_label{
	position:absolute;
	width:68px;
	margin-left:-34px;
	left:50%;
	top:-34px;
}
div.background_box .point_label img{
	width:68px;
}
div.background_box div.title{
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 5px;/* 取りたい余白10px-(タイトルのline-height分の余白3px+文字列の余白5px)=2px */
}
@media only screen and (min-width: 738px){
	div.background_box div.title{
		font-size: 17px;
		margin-bottom: 6px;/* 取りたい余白15px-(タイトルのline-height分の余白4px+文字列の余白5px)=6px */
	}
}

/* 色違い */
div.background_box.blue{
	background-color: #e8f1ff;
}
div.background_box.yellow{
	background-color: #fff0db;
}
div.background_box.red{
	background-color: #ffe8ed;
}


div.background_box.blue div.title{
	color: #5193f7;
}
div.background_box.yellow div.title{
	color: #ea9c2e;
}
div.background_box.red div.title{
	color: #f45079;
}

div.background_box.blue strong{
	border-bottom: dashed 2px #5193f7;
}
div.background_box.red strong{
	border-bottom: dashed 2px #f45079;
}
div.background_box.red strong.red{
	border-bottom: none;
	color:#f45079;
	font-size:1.1em;
}
div.background_box.yellow strong{
	border-bottom: dashed 2px #ea9c2e;
}
div.background_box.blue a{
	color:#5193f7;
}
div.background_box.red a{
	color:#f45079;
}
div.background_box.yellow a{
	color:#ea9c2e;
}
/* 丸数字のリスト */
div.background_box .ol_circle ol{
	list-style-type:none;
	margin-left:0px;
	counter-reset: list-counter;
}
div.background_box .ol_circle li{
	position:relative;
	padding-left:34px;
}
div.background_box .ol_circle li:before{
	display: flex;
	align-items: center;
	justify-content:center;
    position: absolute;
    left: 0;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
    border-radius: 50%;
    color: #fff;
    counter-increment: list-counter;
    content: counter(list-counter);
    font-weight:bold;
}
/* 色違い */
div.background_box.blue .ol_circle li:before{
	background: #5193f7;
}
div.background_box.red .ol_circle li:before{
	background: #f45079;
}
div.background_box.yellow .ol_circle li:before{
	background:#ea9c2e;
}
div.background_box .ol_circle .title{
	margin-bottom:10px;
}
@media only screen and (min-width: 738px){
	div.background_box .ol_circle .title{
	    margin-bottom:15px;
	}
}
/* ボックス内要素 */
div.background_box p,
div.background_box ul,
div.background_box ol,
div.background_box img,
div.background_box div.mswa_ms{
	margin-bottom: 8px;/* 取りたい余白は10pxだが、文字列にはline-height:1.5の影響で上下に余白が生まれるため、8pxとした */
}
div.background_box ul ul,
div.background_box ul ol,
div.background_box ol ul,
div.background_box ol ol{
	margin-bottom: 8px;/* 取りたい余白は10pxだが、文字列にはline-height:1.5の影響で上下に余白が生まれるため、8pxとした */
}
/* ボックス内要素 */
@media only screen and (min-width: 738px){
	div.background_box p,
	div.background_box ul,
	div.background_box ol,
	div.background_box img,
	div.background_box div.mswa_ms{
		margin-bottom: 10px;/* 取りたい余白は15pxだが、文字列にはline-height:1.7の影響で上下に余白が生まれるため、10pxとした */
	}
	div.background_box ul ul,
	div.background_box ul ol,
	div.background_box ol ul,
	div.background_box ol ol{
		margin-bottom: 10px;/* 取りたい余白は15pxだが、文字列にはline-height:1.7の影響で上下に余白が生まれるため、10pxとした */
	}
}
/*--------------------------------------------------------
こんな方にピッタリ！
--------------------------------------------------------*/
.group_talk_block{
   	display:-webkit-box;
  	display:-ms-flexbox;
	display:flex;
	width:100%;
	max-width:600px;
	align-items: center;
	margin-bottom:30px;
	margin-right:auto;
	margin-left:auto;
}
.group_talk_block .profile_icon_box{
   	display:-webkit-box;
  	display:-ms-flexbox;
	display:flex;
	width:100px;
	align-items: center;
	justify-content: center;
}
.group_talk_block .profile_icon_box .profile_icon{
   	display:-webkit-box;
  	display:-ms-flexbox;
	display:flex;
	width:100px;
	height:100px;
	border-radius:50%;
	align-items: center;
	justify-content: center;
}
/* .group_talk_block .profile_icon_box .profile_icon i{
	margin-right:0px;
	font-size:18px;
} */
/* 色違い */
.group_talk_block .profile_icon_box .profile_icon.blue{
	background:#e8f1ff;
}
.group_talk_block .profile_icon_box .profile_icon.blue i{
	color:#5193f7;
}
.group_talk_block .profile_icon_box .profile_icon.yellow{
	background:#fff0db;
}
.group_talk_block .profile_icon_box .profile_icon.yellow i{
	color:#ea9c2e;
}
/* 吹き出し */
.group_talk_block .group_talk_balloon{
	width:calc(100% - 130px);
	border-radius:10px;
	background:#e8f1ff;
	padding:12px;
	margin-left:20px;
	position:relative;
	text-align:left;
	font-weight:bold;
}
.group_talk_block .group_talk_balloon::before{
	content: "";
	position: absolute;
	top: 50%;
	left: -24px;
	margin-top: -12px;
	border: 12px solid transparent;
	border-right: 12px solid #e8f1ff;
}
/* 色違い */
.group_talk_block .group_talk_balloon.red{
	background:#FFE8ED;
}
.group_talk_block .group_talk_balloon.red::before{
	border-right: 12px solid #FFE8ED;
}
.group_talk_block .group_talk_balloon.blue{
	background:#e8f1ff;
}
.group_talk_block .group_talk_balloon.blue::before{
	border-right: 12px solid #e8f1ff;
}
.group_talk_block .group_talk_balloon.yellow{
	background:#fff0db;
}
.group_talk_block .group_talk_balloon.yellow::before{
	border-right: 12px solid #fff0db;
}
/*--------------------------------------------------------
三角（▼）マーク
--------------------------------------------------------*/
.triangle_down {
  width: 0;
  height: 0;
  margin: 20px auto; /* 中央寄せ（任意） */
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #e8f1ff; /* ▼の色 */
}
/*--------------------------------------------------------
三角（▼）マーク 小さいバージョン
--------------------------------------------------------*/
.triangle_down_small {
  width: 0;
  height: 0;
  margin: 0px auto 10px ; /* 少し小さめの余白 */
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-top: 15px solid #e8f1ff; /* 色は必要に応じて調整 */
}
/*--------------------------------------------------------
引用
--------------------------------------------------------*/
.quote_center {
    text-align: center;
    font-size: 1.3rem;
    color: #5193f7;
    font-weight: bold;
    margin: 2rem 0;

}

.quote-center i {
  color: #5193f7;
  margin: 0 0.2em;
}
/*--------------------------------------------------------
丸数字付きタイトル
--------------------------------------------------------*/
.title_circle{
	 margin-right:auto;
	 margin-left:auto;
	display:flex;
	flex-direction: column;
	width:fit-content;
	padding:10px 0;
	border-radius:10px;
}
@media only screen and (min-width: 738px){
    .title_circle{
        margin-right:auto;
        margin-left:auto;
    }
}
.title_circle .title_circle_item{
	display:flex;
	gap:10px;
	align-items: center;
}
.title_circle .title_circle_circle{
	display:flex;
	background:#5193f7;
    justify-content: center;
    align-items: center;
    width:36px;
    height:36px;
    border-radius:50%;
    color:#fff;
    font-weight:bold;
    font-size:18px;
    margin-bottom:0;
}
.title_circle .title_circle_title{
	font-weight:bold;
    font-size:18px;
}
@media only screen and (min-width: 738px){
	.title_circle .title_circle_title{
	    font-size:20px;
	}
}
/*--------------------------------------------------------
講座の料金
--------------------------------------------------------*/
.lecture_fee{
	width:calc(100% - 10px);
	max-width:500px;
	margin:0 5px;
	margin-bottom:40px;
}
/*--------------------------------------------------------
シミュレーション
--------------------------------------------------------*/
.simulation_block{
    width:100%;
}
@media only screen and (min-width: 738px){
    .simulation_block{
        flex-flow: row nowrap;
        justify-content: center;
        text-align: center;
        max-width: 1100px;
        margin-right:auto;
        margin-left:auto;
    }
}
/* 3つの要素 */
.three_elements_block{
	 margin-right:auto;
	 margin-left:auto;
	display:flex;
	flex-direction: column;
	gap:20px;
	width:fit-content;
	background:#e8f1ff;
	padding:20px;
	border-radius:10px;
}
@media only screen and (min-width: 738px){
    .three_elements_block{
        margin-right:auto;
        margin-left:auto;
    }
}
.three_elements_block .three_elements_item{
	display:flex;
	gap:10px;
	align-items: center;
}
.three_elements_block .three_elements_circle{
	display:flex;
	background:#5193f7;
    justify-content: center;
    align-items: center;
    width:36px;
    height:36px;
    border-radius:50%;
    color:#fff;
    font-weight:bold;
    font-size:18px;
    margin-bottom:0;
}
.three_elements_block .three_elements_title{
	font-weight:bold;
    font-size:18px;
}
@media only screen and (min-width: 738px){
	.three_elements_block .three_elements_title{
	    font-size:20px;
	}
}
/*--------------------------------------------------------
下線付きのテキストボックス
--------------------------------------------------------*/
.txt_box{
    padding: 0px 30px 20px;
}
@media only screen and (min-width: 738px){
	.txt_box{
	   max-width:720px;
	   margin:0 auto;
	   padding-right:0;
	   padding-left:0;
	}
}
.txt_with_underline_dot{
    position: relative;
	background-position: 0 18px;
    background-size: 5px 43px;
	font-size: 15px;/* Androidのみ、JSでfont-size調整 */
	line-height: 2.86;
	letter-spacing: 0.06em;
    background-image: radial-gradient(circle farthest-side, #5193f7, #5193f7 1px, transparent 1px, transparent);
    text-align:center;
}
@media only screen and (min-width: 738px){
	.txt_with_underline_dot{
	   background-position: 0 1.15em;
        background-size: 6px 3.25em;
        font-size: 16px;
        line-height: 3.2;
        letter-spacing: .04em;
	}
}
/*--------------------------------------------------------
目標値
--------------------------------------------------------*/
.goal_block{
	max-width: 100%;
}
@media only screen and (min-width: 738px){
	.goal_block{
	   max-width: 480px;
	   margin: 0 auto;
	}
}
.goal_value_block{
	display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}
.goal_value_block .goal_value_item{
	display: flex;
    align-items: center;
    justify-content: center;
    width: calc((100% - 20px) / 3);
    aspect-ratio: 1 / 1;
    background: #e8f1ff;
    font-weight: bold;
    border-radius: 10px;
    padding: 5px;
    flex-direction: column;
    text-align:center;
}
.goal_value_block .goal_value_item p{
	margin-bottom:0;
}
.goal_value_block .goal_value_item p.goal_title{
	height:51px;
	display:flex;
    align-items: center;
    justify-content: center;
}
.goal_value_block .goal_value_item p .value{
	font-size:250%;
	color:#5193f7;
	line-height:1.1;
	margin-right:3px;
}
.title_with_triangle{
	margin-bottom:10px;
}
.title_with_triangle i{
    color:#5193f7;
}
/*--------------------------------------------------------
シミュレーター
--------------------------------------------------------*/
.simulator_block{
	display:flex;
	gap:15px;
	flex-direction: column;
	max-width:480px;
}
.simulator_block .simulator_item{
	display:flex;
    align-items: center;
    justify-content: center;
    gap:10px;
}
.simulator_block label{
	text-align:left;
	width:200px;
}
.simulator_block input{
    height:40px;
    padding: 0px 7.5px;
    border-radius:3px;
    border: 2px solid #d8d8d8;
    cursor: text;
    -webkit-appearance: none;
    font: 400 15px Arial;
    width:calc(100% - 210px);
}
.simulator_block .calculate_button{
    background: #99c2ff;
    border-radius: 40px;
    color: #fff;
    display: flex;
    cursor: pointer;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    font-size: 15px;
    border: none;
    width: 100%;
    max-width: 300px;
    padding: 20px 30px;
	margin:25px auto;
    transition: all .3s;
}
.result_block{
	display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}
.result_block .result_item{
	display: flex;
    align-items: center;
    justify-content: center;
    width: calc((100% - 20px) / 3);
    aspect-ratio: 1 / 1;
    background: #ffe8ed;
    font-weight: bold;
    border-radius: 10px;
    padding: 5px;
    flex-direction: column;
}
.result_block .result_item.yellow{
	background: #fff0db;
}
.result_block .result_item.blue{
	background: #E8F1FF;
}
.result_block .result_item p{
	margin-bottom:0;
}
.result_block .result_item p .students{
	font-size:18px;
	color:#f45079;
	font-size:200%;
	line-height:1.1;
	margin-right:3px;
}
.result_block .result_item.yellow p .students{
	color:#cc8828;
}
.result_block .result_item.blue p .students{
	color:#5193f7;
}
/*--------------------------------------------------------
PiaDOORを活用して生徒さんを増やそう！
--------------------------------------------------------*/
.practical_use_block{
	background: repeating-linear-gradient(-135deg, #E4EBF7, #E4EBF7 4px, #E8F1FF 4px, #E8F1FF 10px);
    padding-top: 10px;
    padding-bottom: 50px;
    margin-top: 0px;
    padding-right:5px;
    padding-left:5px;
}
.practical_use_block h2{
	margin-top:30px;
	margin-bottom:60px;
}
@media only screen and (min-width: 738px){
	.practical_use_block h2{
		margin-bottom:90px;
		margin-top:60px;
	}
}
.point_block{
	display:flex;
	flex-direction: column;
	gap:50px;
	max-width: 1100px;
	margin-right:auto;
	margin-left:auto;
}
@media only screen and (min-width: 738px){
	.point_block{
			gap:80px;
	}
}
.point_block .point_item{
	display:flex;
	flex-direction: column;
	justify-content: center;
	gap:10px;
	position:relative;
	background:#fff;
	border-radius: 20px;
    padding: 10px;
}
.point_block .point_item .point_label{
	position:absolute;
	width:68px;
	margin-left:-34px;
	left:50%;
	top:-34px;
}
@media only screen and (min-width: 738px){
	.point_block .point_item .point_label{
		width:106px;
		margin-left:-53px;
		left:50%;
		top:-53px;
	}
}
.point_block .point_item .point_label img{
	width:100%;
}
.point_block .point_item h3{
	color:#5193f7;
}
@media only screen and (min-width: 738px){
	.point_block .point_item h3{
		margin-top:60px;
	}
}
.point_block .point_item .title_sub_without_bar{
	color:#606060;
	margin-bottom:5px;
	 width:fit-content;
	margin:0 auto;
	font-weight:bold;
	font-size:18px;
}
.title_sub_blue {
    display: flex;
    align-items: center;
    font-size:16px;
    color:#5193f7;
    margin-bottom:10px;
    font-weight:bold;
}
@media only screen and (min-width: 738px){
	.title_sub_blue {
		font-size:18px;
	}
}
.title_sub_blue:before,
.title_sub_blue:after {
	content: "";
	height: 1px;
	background-image : linear-gradient(to right, #5193f7, #5193f7 2px, transparent 2px, transparent 8px);  /* 幅2の線を作る */
	background-size: 8px 1px;          /* グラデーションの幅・高さを指定 */
	background-position: left bottom;  /* 背景の開始位置を指定 */
	background-repeat: repeat-x;       /* 横向きにのみ繰り返す */
	 flex-grow: 1;
}

.title_sub_blue:before {
    margin-right: 1rem;
}

.title_sub_blue:after {
    margin-left: 1rem;
}
.point_block .point_item .title_sub{
	color:#606060;
	position:relative;
	margin-bottom:5px;
	 width:fit-content;
	margin:0 auto;
	font-weight:bold;
}
.point_block .point_item .title_sub::before,
.point_block .point_item .title_sub::after {
    position: absolute;
    top: 2px;
    width: 2px;
    height: 80%;
    content: '';
    background: #5193f7;
}
.point_block .point_item .title_sub.two_line::before,
.point_block .point_item .title_sub.two_line::after {
    top: 9px;
}
.point_block .point_item .title_sub::before {
    left: -10px;
    transform: rotate(-30deg);
}
.point_block .point_item .title_sub.two_line::before{
	left: -18px;
}
.point_block .point_item .title_sub::after {
    right: -10px;
    transform: rotate(30deg);
}
.point_block .point_item .title_sub.two_line::after{
	right: -18px;
}
@media only screen and (min-width: 738px){
	.point_block .point_item .title_sub.two_line::before,
	.point_block .point_item .title_sub.two_line::after {
	    top: 2px;
	}
	.point_block .point_item .title_sub.two_line::before{
		left: -10px;
	}
	.point_block .point_item .title_sub.two_line::after{
		right: -10px;
	}
}
.point_block .point_item .title_balloon{
    position: relative;
    padding-bottom: 7.5px;
}
.point_block .point_item .title_balloon::before,
.point_block .point_item .title_balloon::after {
	position: absolute;
	right: 0;
	left: 0;
	width: 0;
	height: 0;
	margin: auto;
	content: "";
	border-style: solid;
}
.point_block .point_item .title_balloon::before {
  bottom: 2px;
  z-index: 2;
  border-color: #fff transparent transparent transparent;
  border-width: 7px 5.5px 0 5.5px;
}
.point_block .point_item .title_balloon::after {
  bottom: 1px;
  z-index: 1;
  border-color: #5193f7 transparent transparent transparent;
  border-width: 7.5px 6px 0 6px;
}
.point_block .point_item .title_balloon .title_balloon_txt{
	position: relative;
	display: inline-block;
	padding: 5px 15px;
	margin: 0 auto;
	font-size: 15px;
	color: #fff;
	letter-spacing: 0.055em;
	border-radius: 15px;
    color: #5193f7;
    border: 1px solid #5193f7;
    font-weight:bold;
}
.point_block .point_item .point_img{
	width:100%;
}
@media only screen and (min-width: 738px){
	.point_block .point_item .point_img{
		max-width:500px;
		margin-right:auto;
		margin-left:auto;
	}
}
.point_block .point_item .point_img img{
	width:100%;
}
.point_block .point_item .list_checkbox_block{
	display:flex;
	align-items: center;
	justify-content: center;
}
.point_block .point_item .list_checkbox{
	text-align:left;
	list-style: none;
    margin-left: 30px;
}
@media only screen and (min-width: 738px){
	.point_block .point_item .list_checkbox{
	    width:500px;
	}
}
.point_block .point_item .list_checkbox_two_columns {
    display: grid; /* グリッドレイアウトを使用 */
    grid-template-columns: repeat(2, 1fr); /* 2列に分ける */
    gap: 10px 60px; /* アイテム間の間隔 */
}
@media only screen and (min-width: 738px){
	.point_block .point_item .list_checkbox_two_columns {
		grid-template-columns: repeat(4, 1fr);
	}
}
.point_block .point_item .list_checkbox_two_columns li:nth-child(1) {
    margin-top: 0px;
}
.point_block .point_item .list_checkbox li{
	position:relative;
	text-align:left;
}
.point_block .point_item .list_checkbox li::before {
	position: absolute;
	left: -30px;
	background:url("img_checkbox.png") no-repeat center/contain;
	width:20px;
	height:20px;
	content: '';
}
.point_block .point_item .video_frame{
	width:100%;
	position:relative;
	border-radius:8px;
	overflow:hidden;
	margin-bottom:25px;
}
@media only screen and (min-width: 738px){
	.point_block .point_item .video_frame{
		width:500px;
		margin:0 auto;
	}
}
.point_block .point_item .video_frame video{
	width:100%;
	vertical-align: top;
}
.point_block .point_item .video_frame .mute_button {
	position: absolute;
	top: 10px; /* 適切な位置に調整してください */
	right: 10px; /* 適切な位置に調整してください */
	opacity: 0;
	transition: opacity 0.3s ease; /* 変化を滑らかにするトランジション */
}
.point_block .point_item:hover .video_frame .mute_button {
	/* opacity: 1; */
}
.point_block .point_item .video_frame .mute_toggle {
	cursor: pointer;
	background-color: #333;
	background-color: rgba(51, 51, 51, 0.8);
	width:40px;
	height:40px;
	border-radius:50%;
	 border: none;
	 font-size: 16px;
	 transition: color 0.3s;
}
.point_block .point_item .video_frame i{
	color:#fff;
	margin:0px;
}
/*--------------------------------------------------------
プラン
--------------------------------------------------------*/
table.table_border_blue{
    border-collapse: collapse;
    margin-right: auto;
    margin-left: auto;
    width:100%;
    margin-bottom: 35px;
}
@media only screen and (min-width: 738px){
	table.table_border_blue{
		max-width:500px;
	}
}
table.table_border_blue td.header{
	text-align:center;
	background-color:#e8f1ff;
	background-color:#99c2ff;
	color:#fff;
	width:120px;
	font-weight:bold;
}
table.table_border_blue th.header{
	text-align:center;
	background-color:#e8f1ff;
	background-color:#99c2ff;
	color:#fff;
	width:120px;
	font-weight:bold;
}
table.table_border_blue td,
table.table_border_blue th{
	border:1px solid #606060;
	padding:10px;
	background-color:white;
}
table.table_border_blue td.blue{
	background-color:#e8f1ff;
}
table.table_border_blue th.blue{
	background-color:#e8f1ff;
}
/*--------------------------------------------------------
テーブル
--------------------------------------------------------*/
table {
    table-layout: fixed;
}
table {
    width: 100%;
    border-top: 1px solid #dddddd;
    padding: 0px 5px;
    margin-bottom: var(--margin_bottom_s);
    border-collapse: collapse;
    max-width:720px;
    margin-right:auto;
    margin-left:auto;
}
table tr {
    border-bottom: 1px solid #dddddd;
}
table th {
    padding: 9px;
    font-weight: bold;
    text-align: center;
    color: #505050;
    border: none;
}
table td {
    border: none;
    padding: 9px;
}
table.blue_table th {
    background: #e8f1ff;
}
/*--------------------------------------------------------
フッター
--------------------------------------------------------*/
footer{
	margin-top:35px;
}
@media only screen and (min-width: 738px){
	footer{
		margin-top:45px;
	}
}
footer div.footer_link {
    color: #ffffff;
    text-align: center;
    background-color: #5193f7;
    font-weight: normal;
    height: initial;
}
footer div.footer_link a{
    color: #ffffff;
    text-decoration: none;
}
footer ul {
    margin: 10px 0;
    line-height: 1.7;
    text-align: right;
    float: right;
}
footer ul li {
    color: #ffffff;
    font-size: 14px;
    list-style-type: none;
    margin: 0px;
}
@media only screen and (min-width: 738px){
	footer ul li {
	    float: left;
        margin: 0 0 0 20px;
	}
	footer ul li:nth-child(1) {
	    margin-top:0px;
	}
}
footer ul li a {
    display: block;
    padding: 5px 0;
    color: #ffffff;
}
footer div.copyright {
    color: #ffffff;
    text-align: center;
    background-color: #2a77eb;
    font-weight: normal;
	padding: 10px;
	padding: 20px 10px 10px 10px;
}
div.container{
	margin: 0 5px;
	width: initial;
}

@media only screen and (min-width: 738px){
	div.container{
		margin: 0 10px;
		width: initial;
	}
}
@media only screen and (min-width: 1117px){
	div.container{
	margin: 0 auto;
	width: 1087px;/* 700 + 51 + 336 */
	}
}
/* JASRACの許諾マーク */
footer div.copyright .jasrac_img{
    margin-right:auto;
    margin-left:auto;
}
footer div.copyright .jasrac_img img{
    width:48px;
    height:48px;
}
/* JASRACの許諾番号 */
footer div.copyright .jasrac_txt{
    font-size:10px;
    margin:0 auto 10px auto;
}