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:26px;
    text-align:center;
}
@media only screen and (min-width: 738px){
    h2{
        margin-bottom:45px;
        font-size:32px;
    }
}
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; /* 最前面に配置 */
    /* display: flex; */
    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;
}
/*--------------------------------------------------------
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;
}
/*--------------------------------------------------------
サブボタン
--------------------------------------------------------*/
.btn_sub{
	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-right:auto;
    margin-left:auto;
    transition: all .3s;
}
.btn_sub:hover{
	opacity:0.7;
}
.btn_sub i{
    margin-left:10px;
    margin-right:0px;
}
/*--------------------------------------------------------
メインボタン
--------------------------------------------------------*/
.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;
}
.about_piadoor_block 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 strong.blue_bg{
		font-size:28px;
		padding:10px;
	}
}
.number_block{
	display:flex;
	width:100%;
	max-width:300px;
	margin:50px auto;
	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;
}
.number_block .number_item:before{
	position:absolute;
	content:"";
	background:url("img_total_lessons_number.png") no-repeat center/contain;
	width: 103%;
	aspect-ratio: 44 / 15;
	top:-20px;
	left: -1.5%;
}
.number_block .number_item.red:before{
	background:url("img_repeat_rate.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;
	opacity:0;
}
.number_block .number_item.red .big_font{
	color:#F45079;
}
.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);
}
/* こんな方にオススメ */
.recommended_note_box{
	width:100%;
	max-width:500px;
	display:inline-block;
	border-top: 10px dotted #fff;
	background:#f4e8da;
	box-shadow: 0 0 0 5px #f4e8da;
	padding:20px;
	padding-bottom:15px;
	text-align:left;
	position:relative;
}
.recommended_note_box ul{
	list-style: none;
	margin-left:30px;
}
.recommended_note_box ul li{
	position:relative;
}
.recommended_note_box ul li::before {
	position: absolute;
	left: -30px;
	font-family: "Font Awesome 6 Pro";
	font-weight: 900;
	content: '\f00c';
	color: #cc8828;
}
.recommended_title{
	font-size:18px;
	margin-bottom:10px;
}
.recommended_title i{
    color:#ea9c2e;
}
/*--------------------------------------------------------
3つのおすすめポイント SP板
--------------------------------------------------------*/
.by_color{
	margin:0 auto;
	width:fit-content;
	color:#5193f7;
	font-size:40px;
	margin-top:0px;
	position:relative;
}
.by_color .red{
	color:#f45079;
}
.by_color .three_points{
    color:#f45079;
    position:absolute;
    left:-54px;
    top:-20px;
}
.recommended_points_block{
	background: #e8f1ff;
    padding: 50px 20px 20px 20px;
    padding: 50px 10px 20px 10px;
    display:flex;
    flex-flow: column;
    gap:10px;
}
.recommended_points_block .recommended_points_item{
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
	background:#fff;
	border-radius:10px;
	padding:10px;
	text-align:center;
}
.recommended_points_block .recommended_points_number{
	color:#2a77eb;
	font-size:46px;
	margin-top:0px;
	line-height:100%;
}
.recommended_points_block h3.recommended_points_title{
    margin-top:0px;
    line-height:130%;
    position:relative;
    font-weight: bold;
    position: relative;
    display: inline-block;
    margin: 0 auto 20px auto;
}
.recommended_points_comment{
	color:#5193f7;
	position:relative;
	margin-bottom:5px;
	 width:fit-content;
	margin:0 auto;
	font-weight:bold;
}
.recommended_points_comment.inline_block{
    width:fit-content;
}
.recommended_points_comment::before, .recommended_points_comment::after {
    position: absolute;
    top: 2px;
    width: 2px;
    height: 80%;
    content: '';
    background: #5193f7;
}

.recommended_points_comment::before {
    left: -10px;
    transform: rotate(-30deg);
}
.recommended_points_comment::after {
    right: -10px;
    transform: rotate(30deg);
}
.recommended_points_img{
	width:100%;
	margin:0 auto 20px auto;
}
.recommended_points_img img{
    width:100%;
}
.recommended_points_title_sub{
	color:#5193f7;
	margin: 10px auto 10px auto;
	font-size:17px;
}
/* 予約タイプ */
.reservation_type_block{
	display:flex;
    flex-flow: column;
    gap:10px;
    width:100%;
}
@media only screen and (min-width: 738px){
	.reservation_type_block{
	    flex-flow: row wrap;
	}
}
.reservation_type_block .reservation_type_item{
	display:flex;
	gap:10px;
	justify-content: flex-start;
}
@media only screen and (min-width: 738px){
	.reservation_type_block .reservation_type_item{
		width:calc((100% - 10px)/2);
	}
}
.reservation_type_block .reservation_type_title{
	display:flex;
	justify-content: center;
	align-items: center;
	background:#ffe8ed;
	font-weight:bold;
	border-radius:10px;
	width:108px;
}
@media only screen and (min-width: 738px){
	.reservation_type_block .reservation_type_title{
	   border-radius:25px;
	}
}
.reservation_type_block .reservation_type_title.yellow{
	background:#fff0db;
}
.reservation_type_block .reservation_type_discription{
	text-align:left;
    width:calc(100% - 108px);
}
.reservation_type_block .reservation_type_discription i{
	color:#5193f7;
}
.reservation_type_block .reservation_type_discription .recommended{
	display:block;
	list-style: none;
    margin-left: 20px;
    margin-top:5px;
}
.reservation_type_block .reservation_type_discription .recommended li{
	position:relative;
}
.reservation_type_block .reservation_type_discription .recommended li::before {
    position: absolute;
    left: -20px;
    font-family: "Font Awesome 6 Pro";
    font-weight: 900;
    content: '\f00c';
    color: #5193f7;
}
.triangle_gray{
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 35px solid transparent;
	border-left: 35px solid transparent;
	border-top: 20px solid #F3F3F3;
	border-bottom: 0;
	margin:0 auto;
	margin-bottom:10px;
}

/* 講師の特長 */
.teacher_feature_block{
	display:flex;
	align-items: stretch;
	justify-content: center;
	gap:10px;
	width:100%;
	margin-right:auto;
	margin-left:auto;
}
@media only screen and (min-width: 738px){
    .teacher_feature_block{
       max-width:450px;
       gap:15px;
    }
}
.teacher_feature_item{
	display:flex;
	align-items: center;
	justify-content: center;
	width:calc((100% - 20px)/3);
	background:#ffe8ed;
	font-weight:bold;
	border-radius:10px;
	padding:5px;
}
@media only screen and (min-width: 738px){
	.teacher_feature_item{
        padding:10px;
	}
}
.teacher_feature_item.blue{
	background:#E8F1FF;
}
.teacher_feature_item.yellow{
	background:#fff0db;
}
/*--------------------------------------------------------
3つのおすすめポイント PC板
--------------------------------------------------------*/
.recommended_points_block_pc{
	background: #e8f1ff;
    padding: 50px 50px 20px 50px;
    display:flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    gap:30px;
    width:100%;
}
.recommended_points_block_pc .recommended_points_item_pc{
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
	background:#fff;
	border-radius:55px;
	padding:30px;
	text-align:center;
	position:relative;
	max-width: 1100px;
}
.recommended_points_block_pc .recommended_points_item_pc .main_content{
	display: flex;
	gap:30px;
	width:100%;
}
.recommended_points_img_pc{
	display:flex;
    justify-content: center;
    align-items: center;
	width:50%;
}
.recommended_points_img_pc.right{
    order:2;
}
.recommended_points_img_pc img{
	width:100%;
	height:auto;
}
.recommended_points_text{
	display: flex;
	flex-flow: column;
	justify-content: center;
	align-items: center;
	width:50%;
}
.recommended_points_text.left{
	order:1;
}
.recommended_points_block_pc .recommended_points_item_pc .number{
	position:absolute;
	right:0px;
	top:0px;
	z-index: 3;
}
.recommended_points_block_pc .recommended_points_item_pc .number{
	position:absolute;
	right:0px;
	top:0px;
	z-index: 3;
}
.recommended_points_block_pc .recommended_points_item_pc .number img{
	width:90px;
}
.recommended_points_block_pc .recommended_points_item_pc .number.left{
    left:0px;
}
.recommended_points_block_pc h3.recommended_points_title{
    margin-top:0px;
    line-height:130%;
    position:relative;
    font-size: 28px;
    font-weight: bold;
    position: relative;
    display: inline-block;
    margin: 0 20px 20px 20px;
    padding-bottom:10px;
    background: url(img_wave_line.png) repeat-x bottom left / auto 5px;
}
@media only screen and (min-width: 738px){
	.recommended_points_comment.title{
		font-size:20px;
		font-weight:bold;
	}
}
.recommended_points_description_pc{
	font-size:17px;
}
.recommended_points_block_pc .recommended_points_item_pc .sub_content{
	display: flex;
	flex-flow: column;
    justify-content: center;
	width:100%;
}
h4.recommended_points_title_sub_pc {
    display: flex;
    align-items: center;
    font-size:20px;
    color:#5193f7;
    margin-bottom:10px;
}

.recommended_points_title_sub_pc:before,
.recommended_points_title_sub_pc: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;
}

.recommended_points_title_sub_pc:before {
    margin-right: 1rem;
}

.recommended_points_title_sub_pc:after {
    margin-left: 1rem;
}
/*--------------------------------------------------------
ピアドアについて
--------------------------------------------------------*/
.recommended_points{
    overflow: hidden;
    position: relative;
    z-index: 10;
    margin: 0 -100px;
    padding: 0 100px;
}
/*--------------------------------------------------------
オススメポイント
--------------------------------------------------------*/
.recommended_points{
	overflow: hidden;
    position: relative;
    z-index: 10;
    margin: 0 -100px;
    padding: 0 100px;
}
/*--------------------------------------------------------
レッスンタイプ診断 （風景）とりあえず使わない
--------------------------------------------------------*/
.lesson_type_block{
	width:100%;
	margin-right:auto;
	margin-left:auto;
    position:relative;
    height:487px;
    overflow-x: scroll; /* 横スクロールを可能に */
    white-space: nowrap; /* 折り返しを防ぐ */
    overflow-y: visible;
}
@media only screen and (min-width: 1100px){
	.lesson_type_block{
	   width:1100px;
	    overflow-x: visible;
	    overflow-y: visible;
	}
}
.lesson_type_block .background_block{
	position:relative;
	width:1100px;
    height:487px;
}
.lesson_type_block .background_block .lesson_type_background{
	width:100%;
}
.lesson_type_block .lesson_type_wrap{
    width: 100%; /* .background_block に対して100%の幅を持つようにする */
    height: 100%;
    position:absolute;
    overflow-x:hidden;
    top:0;
    left:0;
}
.lesson_type_block .cloud_block{
    position:relative;
    z-index:2;
    translate: 1000px 0px;
    translate:0px 0px;
    width:fit-content;
    width:100%;
}
@keyframes flowing {
  0% {
    translate: 1000px 0;
  }
  100% {
    translate: -100vw 0;
  }
}
.lesson_type_block .cloud_block .cloud{
    position: absolute;
    width: 200px;
    cursor: pointer;
    transform-origin: center bottom;
    z-index:2;
    transition: transform 0.3s ease;
}
.lesson_type_block .cloud_block .cloud:hover{
	 animation: cloudHoverAnimation 1s ease-in-out forwards;
}
@keyframes cloudHoverAnimation {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.1);
    }
}
.lesson_type_block .cloud_block .cloud:not(:hover) {
	animation: cloudUnhover 1s ease-in-out forwards;
}
@keyframes cloudUnhover {
    0% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}
.lesson_type_block .cloud_block .cloud .cloud_img,
.lesson_type_block .cloud_block .cloud .cloud_txt,
.lesson_type_block .cloud_block .cloud .pointer{
	    position:absolute;
}
.lesson_type_block .cloud_block .cloud .cloud_img{
    width:100%;
    top:0;
    left:0;
}
.lesson_type_block .cloud_block .cloud .cloud_txt{
    width:100%;
    top:0;
    left:0;
}
.lesson_type_block .cloud_block .cloud .pointer{
    width:20px;
    top:88px;
    left:70px;
}
#cloud_1,
#cloud_4{
	animation: cloudAnimation1 4s ease-in-out infinite alternate;
}
#cloud_2,
#cloud_5{
	animation: cloudAnimation2 4.5s ease-in-out infinite alternate;
}
#cloud_3,
#cloud_6{
	animation: cloudAnimation3 5s ease-in-out infinite alternate;
}
@keyframes cloudAnimation1 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.08);
    }
}
@keyframes cloudAnimation2 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.1);
    }
}
@keyframes cloudAnimation3 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.11);
    }
}
#cloud_child_1{
	top: 20px;
    left: 20px;
}
#cloud_child_2{
    top: 115px;
    left: 146px;
}
#cloud_child_3{
    top: 20px;
    left: 345px;
}
#cloud_child_4{
    top: 106px;
    left: 494px;
}
#cloud_child_5{
    top: 20px;
    left: 687px;
}
#cloud_child_6{
    top: 70px;
    left: 888px;
}
/* 風船のゆらゆらアニメーション */
@keyframes sway {
    /* 最初と最後の位置 */
    0%,
    100% {
        transform: translateY(0px) rotate(-0deg);
    }

    /* 途中の位置 */
    50% {
        transform: translateY(30px) rotate(0deg);
    }
}
@keyframes sway_2 {
    /* 最初と最後の位置 */
    0%,
    100% {
        transform: translateY(0px) rotate(0eg);
    }

    /* 途中の位置 */
    50% {
        transform: translateY(20px) rotate(-0deg);
    }
}
/*--------------------------------------------------------
道路
--------------------------------------------------------*/
.road{
	max-width:1100px;
	margin:0 auto;
	background:#d0d0d0;
	background:#fff;
	height:50px;
	position:relative;
	display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    overflow-x: hidden;
    margin-bottom:50px;
}
.road .road_line{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	background-image : linear-gradient(to right, #fff 12px, transparent 12px);
	background-size: 20px 4px;
	background-repeat: repeat-x;
	background-position: left bottom;
	width:100%;
	height:4px;
	margin-bottom:0;
	z-index:0;
}
.road .img_car{
	width:120px;
	position:relative;
	z-index:1;
	animation: driving 10s linear infinite;
	margin-left: auto;
}
@keyframes driving {
  0% {
    translate: 300px 0;
  }
  100% {
    translate: -1100px 0;
  }
}
/*--------------------------------------------------------
円状に広がるBG
--------------------------------------------------------*/
.circle_bg{
    position: fixed;
	z-index:101;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #F45079;
    background: rgba(0,0,0,.7);
    /*丸のスタート位置と形状*/
	transform: scale(0);/*scaleをはじめは0に*/
    top:calc(50% - 50px);/*50%から円の半径を引いた値*/
    left:calc(50% - 50px);/*50%から円の半径を引いた値*/
 	transition: transform 0.3s ease;/*0.6秒かけてアニメーション*/
}
.circle_bg.active{
	animation: circleAnimation 0.3s ease-in-out forwards;
	display: flex;
    justify-content: center;
    align-items: start;
}
@keyframes circleAnimation {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(50);
    }
}
.circle_bg.inactive{
	animation: resetCircleAnimation 0.3s ease-in-out forwards;
}
@keyframes resetCircleAnimation {
    0% {
        transform: scale(50);
    }
    100% {
        transform: scale(0);
    }
}
.answer_popup{
	 box-sizing: border-box;
    display: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1001;
    text-align: left;
    z-index: 9999;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
	transition: transform 0.3s ease;
}
.answer_popup.active{
    display:flex;
    justify-content: center;
    align-items: start;
     animation: answerPopupAnimation 0.3s ease-in-out forwards;
}
@keyframes answerPopupAnimation {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0.5; /* 半透明にすることでフワッと表示 */
    }
    100% {
        opacity: 1;
    }
}
.answer_popup .content{
	background: #fff;
    padding: 15px;
    width: 100%;
    margin: 90px 0px 20px 0px;
    position: relative;
    display:flex;
    flex-direction: column;
    gap:15px;
}
@media only screen and (min-width: 738px){
    .answer_popup .content{
        border-radius: 20px;
    }
}
@media only screen and (min-width: 1117px){
	.answer_popup .content{
	    max-width: 1100px;
	}
}
.answer_popup .content .title{
	font-weight:bold;
	margin-bottom:10px;
	font-size:17px;
}
@media only screen and (min-width: 738px){
	.answer_popup .content .title{
		font-size:20px;
	}
}
.answer_popup .content .title.answer{
	color:#5193F7;
	position:relative;
	padding:10px 20px;
	width:fit-content;
	margin:0 auto;
}
.answer_popup .content .title.answer.red{
	color:#F45079;
}
.answer_popup .content .title.answer.yellow{
	color:#ea9c2e;
}
.answer_popup .content .title.answer:before,
.answer_popup .content .title.answer:after{
	position:absolute;
	color:#99c2ff;
	font-size:24px;
	font-family:'Font Awesome 6 Pro';
}
.answer_popup .content .title.answer.red:before,
.answer_popup .content .title.answer.red:after{
	color:#FFE8ED;
	color:#ff99b3;
}
.answer_popup .content .title.answer.yellow:before,
.answer_popup .content .title.answer.yellow:after{
	color:#ffd199;
}
.answer_popup .content .title.answer:before{
	content: '\f10d';
	top:0px;
	left:-8px;
}
.answer_popup .content .title.answer:after{
	font-family:'Font Awesome 6 Pro';
	content: '\f10e';
	bottom:0px;
	right:-8px;
}
.answer_popup .content .recommend{
	margin-top:-10px;
}
.answer_popup .content .point_box{
	padding: 20px;
    border-radius: 20px;
    background:#e8f1ff;
    display:inline-flex;
    width:100%;
    flex-direction: column;
    position: relative;
    gap:15px;
    margin-bottom:10px;
}
.answer_popup .content .point_box .point_item{
    display:flex;
    gap:20px;
    align-items: center;
    /* justify-content: center; */
}
.answer_popup .content .point_box .point_item .img_point{
    width:36px;
}
.answer_popup .content .point_box .point_item a.video_link{
    width:calc(100% - 56px;);
    font-weight:bold;
    text-decoration: underline;
    font-size:
}
.answer_popup .content .balloon_comment {
	position: relative;
	display: inline-block;
	margin-bottom: 20px;
	padding: 8px 10px;
	border-radius:15px;
	min-width: 120px;
	max-width: 100%;
	color: #555;
	font-size: 16px;
	background: #e8f1ff;
}
.answer_popup .content .balloon_comment:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -10px;
  border: 10px solid transparent;
  border-top: 10px solid #e8f1ff;
}

.answer_popup .content .balloon_comment p {
  margin: 0;
  padding: 0;
}
.answer_popup .content .close_btn{
    position: fixed;
    top: 20px;
    right: 10px;
    color: #fff;
    font-size: 40px;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 50%;
    width: 50px;
    height: 50px;
}
.answer_popup .content .close_btn i{
	margin-right:0px;
}
/*--------------------------------------------------------
レッスンタイプ診断
--------------------------------------------------------*/
.lesson_type_img{
	width:100%;
	max-width:600px;
	margin:0 auto 25px auto;
	cursor:pointer;
}
.lesson_type_img img{
	width:100%;
}
/* ポップアップ部分 */
.lesson_type_popup {
    display:none;
    height: 100vh;
    width: 100%;
    background-color: rgba(51, 51, 51, 0.7);/* 背景を黒半透明にする */
    position: fixed;
    top: 0;
    left: 0;
    z-index:1001;
    text-align: left;
	overflow: auto;
	opacity: 1;
	-webkit-overflow-scrolling: touch;
	-webkit-transition: all .3s ease-in-out;
	transition: all .3s ease-in-out;
}
.lesson_type_popup.show {
    display: flex;
    justify-content: center;
    align-items: start;
}
.lesson_type_popup .content{
	background: #fff;
    padding: 15px;
    width: 100%;
    border-radius: 20px;
    margin: 90px 10px 20px 10px;
    position: relative;
    display:flex;
    flex-direction: column;
    gap:15px;
}
@media only screen and (min-width: 1117px){
	.lesson_type_popup .content{
	    max-width: 680px;
	}
}
.lesson_type_popup .question{
	font-size:40px;
	color:#5193f7;
	font-weight:bold;
	margin-bottom:0;
}
.lesson_type_popup .lesson_type_progress{
	width: 100%;
	height: 10px;
	border-radius:10px;
	background-color: #E8F1FF;
}
.lesson_type_progress::-webkit-progress-bar {
   border-radius: 15px;
   background-color: #E8F1FF;
}
.lesson_type_progress::-webkit-progress-value {
   border-radius: 15px;
   background-color: #5193F7;
}
.lesson_type_progress::-moz-progress-bar {
   border-radius: 15px;
   background-color: #5193F7;
}
.lesson_type_progress::-ms-fill {
   border-radius: 15px;
   background-color: #5193F7;
}
.lesson_type_popup .content .title{
	font-weight:bold;
	margin-bottom:10px;
	font-size:17px;
}
@media only screen and (min-width: 738px){
	.lesson_type_popup .content .title{
		font-size:20px;
	}
}
.lesson_type_popup .content .title.answer{
	color:#5193F7;
	position:relative;
	padding:10px 20px;
	width:fit-content;
	margin:0 auto;
}
.lesson_type_popup .content .title.answer:before,
.lesson_type_popup .content .title.answer:after{
	position:absolute;
	color:#E8F1FF;
	font-size:24px;
	font-family:'Font Awesome 6 Pro';
}
.lesson_type_popup .content .title.answer:before{
	content: '\f10d';
	top:0px;
	left:-8px;
}
.lesson_type_popup .content .title.answer:after{
	font-family:'Font Awesome 6 Pro';
	content: '\f10e';
	bottom:0px;
	right:-8px;
}
.lesson_type_popup .content .recommend{
    margin-top:-15px;
}
.lesson_type_popup .answer_btn_block{
	display:flex;
	gap:10px;
	width:100%;
	margin-bottom:20px;
}
.lesson_type_popup .answer_btn_block .answer_btn_item{
	border:2px solid #5193F7;
	border-radius:15px;
	width:calc((100% - 10px)/2);
	height:80px;
	background:#E8F1FF;
	display:flex;
	justify-content: center;
	align-items: center;
	color:#5193F7;
	font-weight:bold;
	font-size:16px;
	cursor:pointer;
	padding:10px;
	text-align:center;
}
.lesson_type_popup .answer_btn_block .answer_btn_item.red{
	border:2px solid #F45079;
	color:#F45079;
	background:#FFE8ED;
}
.lesson_type_popup .description_block{
	display:flex;
	font-size:14px;
}
@media only screen and (min-width: 738px){
	.lesson_type_popup .description_block{
		display:flex;
		font-size:15px;
	}
}
.lesson_type_popup .description_block .label{
	width:50px;
}
.lesson_type_popup .description_block .description{
	width:calc(100% - 50px);
}
.lesson_type_popup .content .close_btn{
    position: fixed;
    top: 20px;
    right: 10px;
    color: #fff;
    font-size: 32px;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    background: rgba(153, 194, 255, 0.8);
}
.lesson_type_popup .content .close_btn i{
	margin-right:0px;
}
.background_box{
	padding: 20px;
	padding-bottom: 10px;
	border-radius: 20px;
	background:#e8f1ff;
	display:inline-flex;
	width:100%;
	flex-direction: column;
	position: relative;
	margin-bottom: 15px;
	margin-top: 15px;
}
.background_box.red{
	background:#FFE8ED;
}
div.background_box div.title {
	display: flex;
	position: relative;
	width: 222px;
	height: 30px;
	margin: -30px auto 17px;
	border-radius: 30px;
	background: #99c2ff;
	text-indent: 0.04em;
	color: #fff;
	font-size: 15px;
	letter-spacing: .04em;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	padding: 5px 0;
}
@media only screen and (min-width: 738px){
	div.background_box div.title {
		font-size: 17px;
		margin-bottom: 6px;
	}
}
.background_box.red div.title{
	background: #FF99B3;
}
div.background_box ul{
	list-style: none;
    margin-left: 30px;
}
div.background_box ul li {
	position: relative;
}
div.background_box ul li:before {
	position: absolute;
    left: -30px;
    font-family: "Font Awesome 6 Pro";
    font-weight: 900;
    content: '\f00c';
    color: #5193F7;
}
div.background_box.red ul li:before {
	color: #F45079;
}
.video_box{
    aspect-ratio: 16 / 9;
    overflow-x: hidden;
    width:calc(100% + 30px);
    margin-left:-15px;
    margin-right:-15px;
}
@media only screen and (min-width: 738px){
	.video_box{
	    width:100%;
	    margin-left:0px;
	    margin-right:0px;
	}
}
.video_box iframe{
	width:100%;
	height:100%;
}
/*--------------------------------------------------------
レッスンタイプ診断LINE風
--------------------------------------------------------*/
.diagnostic_block{
	margin-bottom:90px;
	background:#99c2ff;
}
.diagnostic_block .diagnostic_inner{
	padding:50px 20px;
	max-width:1100px;
	margin-right:auto;
	margin-left:auto;
	display:flex;
	gap:30px;
	 flex-direction: column;
}
.diagnostic_block .diagnostic_item{
	display:none;
	transition: transform 0.3s ease;
}
.diagnostic_block .diagnostic_item.visible{
	display:flex;
	gap:30px;
}
.diagnostic_block .diagnostic_item.answer{
	justify-content:flex-end;/* answerは右寄せにする */
}
.diagnostic_block .icon_box{
	width:55px;
	transform: scale(0);/*scaleをはじめは0に*/
	transition: transform 0s ease;/*0.6秒かけてアニメーション*/
}
.diagnostic_block .diagnostic_item.visible .icon_box{
	animation: iconAnimation 0.3s ease-in-out forwards;
}
@keyframes iconAnimation {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(1);
    }
}
@media only screen and (min-width: 738px){
	.diagnostic_block .icon_box{
		width:100px;
	}
}
.diagnostic_block .icon_box img{
	width:100%;
}

.diagnostic_block .comment_box{
	  width: fit-content; /* コンテンツに合わせる */
	  transition: transform 0s ease;/*0.6秒かけてアニメーション*/
	  display:none;
}
.diagnostic_block .diagnostic_item.visible .comment_box{
	display:block;
	transform: scale(0);/*scaleをはじめは0に*/
}
.diagnostic_block .diagnostic_item.visible .comment_box.question{
	animation: commentQuestionAnimation 0.3s ease-in-out forwards;
	animation-delay: 0.6s; /* 0.6秒後にアニメーションを開始 */
}
.diagnostic_block .diagnostic_item.visible .comment_box.answer{
	animation: commentAnswerAnimation 0.3s ease-in-out forwards;
	animation-delay: 0.6s; /* 0.6秒後にアニメーションを開始 */
}
@keyframes commentQuestionAnimation {
  0% {
    transform: translateX(-100%) scale(0); /* 左側から出現し、初期サイズ0 */
  }
  100% {
    transform: translateX(0) scale(1); /* 左から右に移動し、フルサイズに拡大 */
  }
}
@keyframes commentAnswerAnimation {
  0% {
    transform: translateX(100%) scale(0); /* 右側から出現し、初期サイズ0 */
  }
  100% {
    transform: translateX(0) scale(1); /* 右から左に移動し、フルサイズに拡大 */
  }
}
.diagnostic_block .comment_box.answer{
	width:calc(100% - 55px);
	max-width:500px;
}
.diagnostic_block .comment_box .comment_main{
	background:#fff;
	padding:8px 10px;
	border-radius:15px;
	position: relative;
	font-weight:bold;
	color:#2668cc;
}
@media only screen and (min-width: 738px){
	.diagnostic_block .comment_box .comment_main{
		padding:16px 20px;
		font-size:18px;
	}
}
.diagnostic_block .comment_box.answer .comment_main{
	background:#5193f7;
	display:flex;
	flex-direction: column;
	gap:10px;
	padding:20px;
}
@media only screen and (min-width: 738px){
	.diagnostic_block .comment_box.answer .comment_main{
		gap:20px;
	}
}
.diagnostic_block .comment_box.question .comment_main::before {
	content: '';
	position: absolute;
	top: 13px;
	left: -20px; /* 三角形が左にずれる量 */
	border-width: 8px 10px;
	border-style: solid;
	border-color: transparent #fff transparent transparent; /* 左側に三角形を配置する */
}
@media only screen and (min-width: 738px){
	.diagnostic_block .comment_box.question .comment_main::before {
		top: 21.5px;
		left: -24px; /* 三角形が左にずれる量 */
		border-width: 10px 12px;
	}
}
.diagnostic_block .comment_box.answer .comment_main::after {
  content: '';
  position: absolute;
  top: 13px;
  right: -20px; /* 三角形が右にずれる量 */
  border-width: 8px 10px;
  border-style: solid;
  border-color: transparent transparent transparent #5193f7; /* 右側に三角形を配置する */
}
@media only screen and (min-width: 738px){
	.diagnostic_block .comment_box.answer .comment_main::after {
		top: 21.5px;
		right: -24px; /* 三角形が左にずれる量 */
		border-width: 10px 12px;
	}
}
.diagnostic_block .comment_box .comment_main p{
	margin-bottom:0px;
}
.diagnostic_block .comment_box .comment_main .answer_btn{
	border:none;
	badkground:#fff;
	height:50px;
	border-radius:40px;
	background:#fff;
	font-weight:bold;
	color:#2668cc;
	cursor:pointer;
	font-size:15px;
	transition: background-color 0.3s ease; /* 背景色の変化をスムーズにするアニメーション */
}
.diagnostic_block .comment_box .comment_main .answer_btn.active{
	background:#2668cc;
	color:#fff;
}
.diagnostic_block .comment_box .comment_main .answer_btn:focus {
    outline: none;
}
@media only screen and (min-width: 738px){
	.diagnostic_block .comment_box .comment_main .answer_btn{
		font-size:18px;
		height:60px;
	}
	.diagnostic_block .comment_box .comment_main .answer_btn:hover{
		background:#2668cc;
		color:#fff;
	}
}
/* リセットボタン */
.diagnostic_block .reset_btn{
    position: relative;
    display:none;
    padding:20px 30px;
    color: #fff;
    z-index: 1;
    border:none;
    background:none;
    outline: none;
    cursor:pointer;
    font-weight:bold;
    font-size:15px;
}
.diagnostic_block .reset_btn.visible{
    display: inline-block;
     animation: resetBtnAnimation 0.6s ease-in-out forwards;
}
@keyframes resetBtnAnimation {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0.5; /* 半透明にすることでフワッと表示 */
    }
    100% {
        opacity: 1;
    }
}
.diagnostic_block .reset_btn:before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    border-radius: 40px;
    background:#2668cc;
    transition: all .3s;
 }
.diagnostic_block .reset_btn:hover:before {
  right: 0;
  transform: scale(1.1);
  background: #2668cc;
}
.diagnostic_block .reset_btn i{
    margin-left:10px;
    margin-right:0px;
}
/*--------------------------------------------------------
ユーザー様の声
--------------------------------------------------------*/
.users_voice_block{
	background: repeating-linear-gradient(-135deg, #E4EBF7, #E4EBF7 4px, #E8F1FF 4px, #E8F1FF 10px);
	padding-top:50px;
	padding-bottom:50px;
	margin-top:90px;/* レッスンタイプ診断を入れたらコメントアウトする */
}
@media only screen and (min-width: 738px){
	.users_voice_block{
		padding-right:5px;
		padding-left:5px;
	}
}
/* ------------------------------------------------------
ユーザー様の声 スワイパー
-------------------------------------------------------- */
.users_voice_swiper{
	width:100%;
	width:calc(100% - 10px);
	position:relative;
	margin-right:5px;
	margin-left:5px;
}
.users_voice_swiper .swiper_main{
	width:100%;
	overflow: scroll;
	position: relative;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	-ms-overflow-style: none;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
@media only screen and (min-width: 738px){
	.users_voice_swiper .swiper_main{
		border-radius:10px;
	}
}
.users_voice_swiper .swiper_wrapper{
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-sizing: content-box;
	box-sizing: content-box;
	position: relative;
	z-index: 1;
	gap:30px;
	height: 100%;
	width:auto;
	-webkit-transition-property: -webkit-transform;
	transition-property: -webkit-transform;
	transition-property: transform;
	transition-property:transform, -webkit-transform;
	transition: ease-out 0.1s;
 	-webkit-transform: translate3d(0px, 0, 0);
    transform: translate3d(0px, 0, 0);
}
.users_voice_swiper .swiper_item{
	box-sizing:border-box;
	border-radius:20px;
	padding:0px;
	padding-top:20px;
    position: relative;
    width: calc(100% - 60px);
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
     text-align: center;
    flex-shrink: 0;/* 要素を縮めないため */
	display: flex;
	align-items:center;
	flex-direction: column;/* 要素を縦に並べる */
	background:#ffffff;
	box-shadow: 8px 8px 16px 0px rgba(193,214,244,.75);
	margin-bottom:25px;/* box-shadowがバツっと消えないようにするため必要 */
	scroll-snap-align: start;/* スワイプの先端にピタッと合わせる */
	scroll-snap-stop: always;/* スワイプが通り過ぎるのを防ぐ */
}
.users_voice_swiper .swiper_item:last-child{
	scroll-snap-align: end;/* 最後要素のみスワイプの右端にピタッと合わせる */
}
.users_voice_swiper .bg_circle.users_voice_circle_blue{
	bottom:-23%;
	left:-20%;
	width:58%;
	z-index:-2;
}
.users_voice_swiper .bg_circle.users_voice_circle_yellow{
	top:-23%;
	right:-20%;
	width:58%;
	z-index:-2;
}
.users_voice_number{
	display:flex;
	align-items: center;
    justify-content: center;
    width:49px;
    margin:-19.5px auto 10px;
}
.users_voice_img{
	margin-bottom:15px;
}
.users_voice_text{
    box-sizing: border-box;
    width: 100%;
    height: auto;
    padding: 0 20px 20px 20px;
}
.users_voice_title{
    color:#5193f7;
    font-weight:bold;
    margin-bottom:5px;
    font-size:16px
}
.users_voice_description{
    margin-bottom:0px;
}
.image_frame_only_top_radius{
    overflow: hidden;
    border-radius: 20px 20px 0 0;
}
.image_frame_only_top_radius img{
	width:100%;
	height:auto;
	vertical-align: top;
}
/*--------------------------------------------------------
ユーザーさまの声（PC版）
--------------------------------------------------------*/
.pc_users_voice_list{
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    position:relative;
    justify-content: center;
	max-width: 1100px;
	margin:0 auto;
}
.pc_users_voice_item {
    box-sizing: border-box;
    padding: 0px;
    padding-top:20px;
    border-radius: 20px;
    display: flex;
    text-align: center;
    position: relative;
    flex-direction: column;
    background: #fff;
    box-shadow: 8px 8px 16px 0px rgba(193,214,244,.75);
    width: calc((100% - 30px)/3);
    margin-right: 10px;
}
.pc_users_voice_item:nth-of-type(3n) {
    margin-right: 0px;
}
.pc_users_voice_list .bg_circle.users_voice_circle_blue{
	bottom:-37%;
	left:-20%;
	width:48%;
	z-index:-2;
}
.pc_users_voice_list .bg_circle.users_voice_circle_yellow{
	top:-50%;
	right:-13%;
	width:58%;
	z-index:-2;
}
/*--------------------------------------------------------
■ 体験レッスンの流れ（SP版）
--------------------------------------------------------*/
.trial_lesson_flow_block{
	display:flex;
	flex-flow: column;
	gap:36px;
	width:100%;
}
@media only screen and (min-width: 738px){
	.trial_lesson_flow_block{
		flex-flow: row nowrap;
		justify-content: center;
		text-align: center;
		max-width: 1100px;
		margin-right:auto;
		margin-left:auto;
	}
}
.trial_lesson_flow_block .trial_lesson_flow_item{
	display:flex;
	flex-flow: column;
	gap:5px;
	justify-content: center;
	align-items: center;
	position:relative;
}
@media only screen and (min-width: 738px){
	.trial_lesson_flow_block .trial_lesson_flow_item{
		 flex: 1;/* flexアイテムを均等幅にする */
	}
}
.trial_lesson_flow_block .trial_lesson_flow_item img{
	width:100%;
	max-width:200px;
}
.trial_lesson_flow_title{
	font-weight:bold;
	font-size:19px;
	margin-bottom:0px;
}
.trial_lesson_flow_block .trial_lesson_flow_item:not(:last-child):after {/* 三角 */
	width: 0;
    height: 0;
    border-style: solid;
    border-right: 35px solid transparent;
    border-left: 35px solid transparent;
    border-top: 20px solid #F3F3F3;
    border-bottom: 0;
    margin: 0 auto;
    margin-bottom: 10px;
    content:"";
    position:absolute;
    bottom:-38px;
    margin-right:-35px;
    right:50%;
}
@media only screen and (min-width: 738px){
	.trial_lesson_flow_block .trial_lesson_flow_item:not(:last-child):after {/* 三角 */
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 20px solid transparent;
		border-bottom: 20px solid transparent;
		border-left: 20px solid #F3F3F3;
		border-right: 0;
		margin-right:0px;
		right:-20px;
		margin-top:-15px;
		top:50%;
	}
}
/*--------------------------------------------------------
教室スケジュール
--------------------------------------------------------*/
.schedule_table_block{
	position: relative;
	padding-top: 87px;
	width:100%;
	max-width:1100px;
	margin:0 auto;
}
div.schedule_table_block_main{
  max-width:1100px;
  height:auto;
  background: #fff;
  overflow:auto;
  overflow-x:scroll;
  margin:0 auto;
   -webkit-overflow-scrolling: touch;
}
div.schedule_table_block_header{
    position: absolute;
    z-index: 21;
    top: 0;
    box-sizing: border-box;
    border-bottom: 2px solid #ccc;
    background-color: #ffffff;
	width:100%;
	max-width:1100px;
	height:87px;
}
.schedule_table_block_header.fixed{
	position: fixed;
    top: 80px;
    height: 92px;
    padding-top: 5px;
    max-width:1100px;
    width:calc(100% - 10px);
}
@media only screen and (min-width: 738px){
	.schedule_table_block_header.fixed{
		width:calc(100% - 80px);
	}
}
.schedule_table_block_header .header_inner{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: -18px;
	width:100%;
}
.schedule_table_block_header .header_inner .week_btn{
	z-index: 2;
	display: flex;
	width: 194px;
	width: 85px;
	height: 70px;
	border-radius: 5px;
	background-color: #f3f3f3;
	flex: 0 0 85px;
	justify-content: center;
	margin-right: 10px;
	margin-left: 5px;
	font-size: 14px;
	letter-spacing: 0;
}
.schedule_table_block_header .header_inner .week_btn a{
	display:block;
	width:100%;
	cursor:pointer;
}
.schedule_table_block_header .header_inner .week_btn .week_txt{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-weight: bold;
    text-align: center;
    gap:5px;
}
.schedule_table_block_header .header_inner .week_btn .week_txt i{
	margin-right:0;
}
/* 時間帯タブ */
.schedule_table_block_header .header_inner .time_zone_tab{
	display: flex;
	flex: 1;
	justify-content: space-between;
	width: 961px;
	width:calc(100% - 100px);
	height: 40px;
}
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item{
	display: flex;
    align-items: flex-end;
    padding-bottom: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: calc(100%/3);
    height: 42px;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    border: 1px solid #99C2FF;
    gap:-1px;
}
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item:nth-child(2),
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item:nth-child(3){
	border-left:0;
}
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item:first-child{
	border-radius: 3px 0 0 3px;
}
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item:last-child{
	border-radius: 0 3px 3px 0;
}
.schedule_table_block_header .header_inner .time_zone_tab .time_zone_item.active{
	border:0;
	color: #fff;
	background:#99C2FF;
}
.schedule_table_block_header .time_line_wrapper{
    margin-left: 99px;
    overflow-x: hidden;
    border-left: 1px solid #e0dcdf;
}
.schedule_table_block_header .time_line_wrapper .time_line{
	position: relative;
	display: flex;
	height: 35px;
	list-style: none;
	margin:0;
}
.schedule_table_block_header .time_line_wrapper .time_line li{
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 51px;
    height: 33px;
    padding-top: 4px;
    font-size: 14px;
    border-right: 1px solid #ccc;
    border-top: 1px solid #ccc;
    color: #606060;
    background-color: #E8F1FF;
}
@media only screen and (min-width: 738px){
	.schedule_table_block_header .time_line_wrapper .time_line li{
		min-width: 81px;
	}
}
.schedule_table_block_header .time_line_wrapper .time_line li:first-child{
	margin:0px;
}
/* スクロールバー */
.schedule_table_block_header .upper_scrollbar{
	width: 100%;
    height: 17px;
    z-index: 2;
    position: absolute;
    overflow-x: scroll;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.schedule_table_block_header .upper_scrollbar .scrollbar_inner{
	height:17px;
	width:1732px;
}
@media only screen and (min-width: 738px){
	.schedule_table_block_header .upper_scrollbar .scrollbar_inner{
		width:2692px;
	}
}
table.schedule_table{
  width:auto;
  border-collapse: collapse;
  border-collapse: separate;
  border-spacing:0;
}
table.schedule_table th, table.schedule_table td {
	min-width:50px;
	width:50px;
	height: 100px;
	vertical-align: middle;
	padding: 0px;
	border-top: 2px solid #ccc;
	border-right: 1px solid #ccc;
}
table.schedule_table tr:first-child th,
table.schedule_table tr:first-child td{
    border-bottom: 2px solid #ccc;
    border-top: 0;
}
table.schedule_table tr:last-child th,
table.schedule_table tr:last-child td{
    border-bottom: 2px solid #ccc;
}
table.schedule_table tr:nth-child(2) th,
table.schedule_table tr:nth-child(2) td{
	border-top: 0;
}
table.schedule_table .fixed_col,
table.schedule_table .fixed_row {
  position: sticky;
  top: 0;
  left: 0;
  background: #E8F1FF;
}
table.schedule_table .fixed_row.time{
	height:60px;
}
table.schedule_table .fixed_col{
	background: #fff;
	border:none;
	border-right: 1px solid #ccc;
	height:70px;
}
table.schedule_table .date{
	background: #fff;
    font-weight: bold;
    vertical-align: middle;
    min-width: 100px;
    font-size: 16px;
}
table.schedule_table .date .week{
    font-weight: normal;
    font-size:14px;
}
table.schedule_table .fixed_col {
  z-index: 2;
}
table.schedule_table .fixed_row {
  z-index: 1;
}
table.schedule_table .reserve_icon{
    position: relative;
    display: block;
    width: 50px;
    height: 100%;
}
@media only screen and (min-width: 738px){
	table.schedule_table .reserve_icon{
	   width: 80px;
	}
}
table.schedule_table .reserve_icon i{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    box-sizing: border-box;
    width: 45px;
    height: 45px;
    margin: auto;
    padding: 7px;
    border-radius: 3px;
    box-shadow: rgba(0,0,0,0.2) 0 1px 1px;
    fill: #ffffff;
}
table.schedule_table .reservable_btn i{
    background-color: #5193f7;
    background-image: url(main_icon_circle.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 30px;
    cursor:pointer;
}
table.schedule_table .unavailable_icon i{
    box-shadow: none;
    background-image: url(main_icon_cross.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 30px;
    cursor:pointer;
}
table.schedule_table .reserved_icon .reserved_txt{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    box-sizing: border-box;
    width: 45px;
    height: 45px;
    margin: auto;
    padding: 7px;
    border-radius: 3px;
    fill: #ffffff;
    background-color: #c0c0c0;
    color:#fff;
    font-weight:bold;
    font-size:14px;
    text-align:center;
    line-height:120%;
}
/*--------------------------------------------------------
キャンペーン
--------------------------------------------------------*/
.promotion{
	text-align:center;
}
.promotion img{
	width:100%;
	max-width:500px;
}
.example {
  width: 100px;
  height: 50px;
  overflow: scroll;
  background: skyblue;
}
/*--------------------------------------------------------
レッスン料金スワイパー（SP版）
--------------------------------------------------------*/
.lesson_fee_swiper{
	width: calc(100% - 10px);
	position:relative;
    margin-right: 5px;
    margin-left: 5px;
   margin-top:35px;
}
.lesson_fee_swiper .swiper_main{
	width:100%;
	overflow: scroll;
	position: relative;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	-ms-overflow-style: none;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
@media only screen and (min-width: 738px){
	.lesson_fee_swiper .swiper_main{
		border-radius:10px;
	}
}
.lesson_fee_swiper .swiper_wrapper{
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-sizing: content-box;
	box-sizing: content-box;
	position: relative;
	z-index: 1;
	gap:30px;
	height: 100%;
	width:auto;
	-webkit-transition-property: -webkit-transform;
	transition-property: -webkit-transform;
	transition-property: transform;
	transition-property:transform, -webkit-transform;
	transition: ease-out 0.1s;
 	-webkit-transform: translate3d(0px, 0, 0);
    transform: translate3d(0px, 0, 0);
}
.lesson_fee_swiper .swiper_item{
	box-sizing:border-box;
	border-radius:20px;
	padding:0px;
    position: relative;
    width: calc(100% - 60px);
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
     text-align: center;
    flex-shrink: 0;/* 要素を縮めないため */
	display: flex;
	align-items:center;
	flex-direction: column;/* 要素を縦に並べる */
	background:#ffffff;
	box-shadow: 8px 8px 16px 0px rgba(0,0,0,.05);
	margin-bottom:50px;/* box-shadowがバツっと消えないようにするため必要 */
	scroll-snap-align: start;/* スワイプの先端にピタッと合わせる */
	scroll-snap-stop: always;/* スワイプが通り過ぎるのを防ぐ */
}
.lesson_fee_swiper .swiper_item:last-child{
	scroll-snap-align: end;/* 最後要素のみスワイプの右端にピタッと合わせる */
}
.promotion_emphasis{/* 〇〇%オフ！の表示 */
	background:#EA9C2E;
	border-radius:20px;
    width: fit-content;
    padding:5px 10px;
    color:#fff;
    font-weight:bold;
    font-size:18px;
    margin: -19.5px auto 10px 20px;
}
.red .promotion_emphasis{
	background:#F45079;
}
.green .promotion_emphasis{
	background:#25AE78;
}
.lesson_fee_text{
    box-sizing: border-box;
    width: 100%;
    height: auto;
    padding: 10px;
    padding: 10px 10px 20px 10px;
}
.lesson_fee_promotion{
	display:flex;
	font-weight:bold;
	font-size:16px;
	align-items:flex-end;
	justify-content: center;
}
.lesson_fee_promotion .special_fee{
	font-size:220%;
	line-height:127%;
	margin-left:10px;
	margin-right:2px;
}
@media only screen and (min-width: 738px) and (max-width: 1116.999px){
	.lesson_fee_promotion .special_fee{
		margin-left:0px;
		font-size:190%;
	}
}
.lesson_fee_promotion span{
	align-items:flex-end;
}
.lesson_tag_block{
	display:flex;
	font-weight:bold;
	gap:10px;
	justify-content: center;
}
.lesson_tag_block .lesson_tag_item{
	padding:5px 10px;
	background:#FFF0DB;
	border-radius:5px;
	margin-bottom:10px;
}
.red .lesson_tag_block .lesson_tag_item{
	background:#FFE8ED;
}
.green .lesson_tag_block .lesson_tag_item{
	background:#E5FFF3;
}
.lesson_fee_title{
    color:#5193f7;
    font-weight:bold;
    margin-bottom:5px;
}
.lesson_fee_description{
    margin-bottom:0px;
    font-weight:bold;
}
.lesson_fee_description i{
	color:#ea9c2e;
}
.lesson_fee_description i.red{
	color:#F45079;
}
.lesson_fee_description i.green{
	color:#25ae78;
}
.image_frame_only_top_radius{
    overflow: hidden;
    border-radius: 20px 20px 0 0;
}
.image_frame_only_top_radius img{
	width:100%;
	height:auto;
	vertical-align: top;
}
/*--------------------------------------------------------
レッスン料金一覧
--------------------------------------------------------*/
.pc_lesson_fee_list{
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width:1100px;
	margin: 35px auto 0 auto;
    position:relative;
}
.pc_lesson_fee_item {
    box-sizing: border-box;
    padding: 0px;
    border-radius: 20px;
    display: flex;
    text-align: center;
    position: relative;
    flex-direction: column;
    background: #fff;
    box-shadow: 8px 8px 16px 0px rgba(0,0,0,.05);
    width: calc((100% - 30px)/3);
    margin-right: 10px;
    margin-bottom: 15px;
}
.pc_lesson_fee_item:nth-of-type(3n) {
    margin-right: 0px;
}
.pc_lesson_fee_list .bg_circle.lesson_fee_circle_blue{
	bottom:-37%;
	left:-20%;
	width:48%;
	z-index:-2;
}
.pc_lesson_fee_list .bg_circle.lesson_fee_circle_yellow{
	top:-50%;
	right:-13%;
	width:58%;
	z-index:-2;
}
.medium_display{
	display:none;
}
@media only screen and (min-width: 738px) and (max-width: 1116.999px){
	.medium_none{
		display:none
	}
	.medium_display{
		display:block;
	}
}
.three_months{
	margin-bottom:0px;
	margin-top:5px;
	font-weight:bold;
}
/*--------------------------------------------------------
講師一覧
--------------------------------------------------------*/
.teacher_list_block{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
    max-width: 1100px;
	gap:10px 15px;
	gap:15px;
	margin: 35px auto 50px auto;
}
.teacher_list_block .teacher_list_item{
    box-sizing: border-box;
    padding: 0px;
    border-radius: 20px;
    margin-bottom: 15px;
    width: 100%;
    display: flex;
    text-align: center;
    position: relative;
    -ms-flex-direction: column;
    flex-direction: column;
    background: #fff;
	box-shadow: 8px 8px 16px 0px rgba(0, 0, 0, .05);
	cursor:pointer;
	gap:20px;
    transition: all .4s ease;/*  hover時にほわっと影を増やす*/
}
@media only screen and (min-width: 738px){
	.teacher_list_block .teacher_list_item{
		width:calc((100% - 30px)/3);
	}
}
.teacher_list_block .teacher_list_item:hover{
     box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, .2);
}
.teacher_list_block .teacher_list_item a{
	color:#606060;
}
.teacher_list_block .teacher_list_item .image_frame_only_top_radius {
    overflow: hidden;
    border-radius: 20px 20px 0 0;
}
.teacher_list_block .teacher_list_item .image_frame_only_top_radius img{
	margin-bottom:0;
}
.teacher_list_block .teacher_list_item .teacher_content{
    box-sizing: border-box;
    display:flex;
    flex-direction: column;
    width: 100%;
    padding: 0 15px 30px 15px;
    padding: 0 20px 20px 20px;
    flex-grow:1;/* 余白いっぱいに広げる 横並びの時スケジュールを見るボタンの高さを揃えるのに必要 */
    gap:20px;
}
.teacher_list_block .teacher_list_item .teacher_content .profile_link{
	font-size:15px;
	color:#5193f7;
	display:block;
	transition: all .4s ease;
	font-weight:bold;
}
.teacher_list_block .teacher_list_item .teacher_content .profile_link:hover{
	opacity:0.7;
}
.teacher_list_block .teacher_list_item .teacher_content .profile_link i{
	margin-left:10px;
	color:#5193f7;
}
.teacher_list_block div.button_block{
    display: flex;
    flex-direction: column;
    width:100%;
}
.teacher_list_block button.btn_submit {
	width:90%;
}
.teacher_list_block .button_block .btn_stretch{
    display: flex;
    box-sizing: border-box;
    position: relative;
    z-index: 0;
    width: 100%;
    min-height:60px;
    height:fit-content;
    padding: 15px 0 15px 40px;
    border-radius: 90px;
     background:#5193f7;
    text-align: center;
    text-decoration: none;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.33;
    letter-spacing: .1em;
    align-items: center;
    justify-content: center;
    margin-right:auto;
    margin-left:auto;
}
@media only screen and (min-width: 738px) and (max-width: 1116.999px){
	.teacher_list_block .button_block .btn_stretch{
	padding-left: 20px;
	}
}
.teacher_list_block .button_block .btn_stretch::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background:#5193f7;
    content: '';
    -webkit-transition: .4s cubic-bezier(.23,1,.32,1);
    transition: .4s cubic-bezier(.23,1,.32,1);
}

.teacher_list_block .button_block .btn_stretch:hover::after {
    -webkit-transform: scale(1.04);
    transform: scale(1.04)
}
.teacher_list_block .button_block .btn_stretch span{
	width:calc(100% - 50px);
}
.teacher_list_block .button_block .btn_stretch .icon_block{
	width:50px;
}
@media only screen and (min-width: 738px) and (max-width: 1116.999px){/* ミディアムだけアイコン位置調整 */
	.teacher_list_block .button_block .btn_stretch span{
		width:calc(100% - 40px);
	}
	.teacher_list_block .button_block .btn_stretch .icon_block{
		width:40px;
	}
}
.teacher_list_block .button_block .btn_stretch i{
	margin-right:0;
}
/*--------------------------------------------------------
タグ
--------------------------------------------------------*/
.tag_block{
    display:flex;
    gap:8px;
    flex-wrap: wrap;
	align-content: flex-start; /* 子要素を上寄せに配置 */
    flex-grow: 1; /* 残りのスペースをすべて使用 */
}
.tag_block .tag{
    display:inline-block;
    background:#99c2ff;
    background:#e8f1ff;
    color:#fff;
    color:#606060;
    font-weight:bold;
    padding:3px 10px;
    border-radius:5px;
    font-size:14px;
    height:30px;
    text-align:left;
}
.tag_block .tag.yellow{
    background:#fff0db;
    color:#ea9c2e;
    font-weight:bold;
    height:fit-content;/* 改行される場合は文字に合わせて高さ変更 */
}
.tag_block .tag i{
    margin-left:2px;
}
/*--------------------------------------------------------
よくある質問
--------------------------------------------------------*/
.faq_block{
    width:100%;
    max-width:1100px;
    margin:0 auto;
}
.faq_block .faq_item{
    width:100%;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    border-radius:10px;
    padding:10px;
    box-sizing:border-box;
    margin-bottom:15px;
}
.faq_block .faq_item.question{
    background:#e8f1ff;
    cursor:pointer;
}
.faq_block .faq_item.question.active{
    border-radius:10px 10px 0 0;
    margin-bottom:0px;
}
.faq_block .faq_item.answer{
    background:#ffe8ed;
    border-radius:0 0 10px 10px;
    display:none;
}
.faq_block .faq_item .faq_icon{
    width:50px;
    height:50px;
    border-radius:50%;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    align-items:center;
    justify-content:center;
}
.faq_block .faq_item.question .faq_icon{
    background:#99c2ff;
}
.faq_block .faq_item.answer .faq_icon{
    background:#ff99b3;
}
.faq_block .faq_item .faq_icon img{
    width:20px;
    height:20px;
}
.faq_block .faq_item .txt{
    margin-left:10px;
}
.faq_block .faq_item.question .txt{
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    align-items:center;
    width:calc(100% - 50px - 30px - 20px);/* 50pxは丸のオブジェクト、30pxはアイコンのwidth、20pxはtxtの左右margin */
    margin-right:10px;
    font-weight:bold;
}
.faq_block .faq_item.answer .txt{
    width:calc(100% - 50px - 10px);/* 50pxは丸のオブジェクト、10pxはtxtのmargin-left */
}
.faq_block .faq_item .txt.one_line{/* 一行のみの場合、上下中央寄せ */
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    align-items:center;
}
.faq_block .faq_item.answer .txt .two_paragraph{
    margin-bottom:10px;
}
.faq_block .faq_item.question .icon{
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
}
.faq_block .faq_item.question .icon i{
    font-size:22px;
    color:#5193f7;
    margin-right:0px;
}
/*--------------------------------------------------------
フッター
--------------------------------------------------------*/
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;
}