@charset "utf-8";
/*==================================================
$common
==================================================*/
:root{
	--black:#333;
	--white: #fff;
	--blue:rgb(45,40,127);
	--sky-blue:rgb(9,111,214);
	--red: #D3525F;
	--gray: #D8D8D8;
	--light: #F0F0F0;
	--dark: #333333;
	--font-sans-serif: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	--font-serif: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	--font-size40:clamp(30px, 17.273px + 4.545vw, 40px);
	--font-size36:clamp(26px, 13.273px + 4.545vw, 36px);
	--font-size34:clamp(26px, 15.818px + 3.636vw, 34px);
	--font-size32:clamp(24px, 13.818px + 3.636vw, 32px);
	--font-size30:clamp(24px, 16.364px + 2.727vw, 30px);
	--font-size28:clamp(22px, 14.364px + 2.727vw, 28px);
	--font-size26:clamp(22px, 18.000px + 0.667vw, 26px);
	--font-size24:clamp(20px, 14.909px + 1.818vw, 24px);
	--font-size22:clamp(18px, 12.909px + 1.818vw, 22px);
	--line-height-lg:2.25;
	--line-height-md:1.75;
	--line-height-sm:1.5;
	--line-height-xs:1.3;
	/*Style Guide*/
	--primary-color:var(--red);
	--sub-color:var(--blue);
	--web-font: 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	--primary-font: var(--web-font);
}

*,
*::before,
*::after {
box-sizing: border-box;
}
html{
	font-size: 14px;
}
body {
	font-size:inherit;
	margin: 0 auto;
	padding: 0;
	line-height: var(--line-height-lg);
	position: relative;
	color: var(--black);
	font-family:var(--primary-font);
	font-weight: 500;
	text-align: left;	
}
a {color: inherit;text-decoration: none;}
a:link,
a:visited,
a:active {
text-decoration: none;
inline-size: 276px;
overflow-wrap: break-word;
}
img,svg {width: 6%;height:auto;}
::-moz-selection {/*ハイライトカラー指定*/
    color:#fff;
    background:var(--primary-color);
}
::selection{/*ハイライトカラー指定*/
    color:#fff;
    background:var(--primary-color);
}
/*==================================================
$共通エレメント
==================================================*/
.pc{
	display:none !important;
}
.sp{
	display:inherit;
}
.inner{
	padding:70px 20px;
}
.text_center{
	text-align:center;
}
.text_danger{
	font-weight:bold;
	color:#F00;
}
/*fixed,stickyを使用する為無効
.wrap{
	overflow-x:hidden;
	contain: paint;
}*/
.row{
	display:flex;
	flex-direction: column;
	gap:30px 30px;
}
.row > *{
	flex-grow:1;
}
/*==================================================
$header ヘッダー
==================================================*/
.header_ber{
	width:100%;
	padding:15px;
	display: flex;
	gap:30px;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	margin-left:auto;
	margin-right:auto;
}
.home .header_ber{
	position:absolute;
	top:0;
	z-index:100;
}
.header_ber .hd_logo{
	width:132px;
}
.header_ber > p{
	font-size:11px;
	letter-spacing: 0.06em;
	line-height:var(--line-height-md);
}
.cta{
	display: flex;
	width:100%;
	height:60px;
	position:fixed;
	bottom:0;
	z-index:100;
	transition: all 0.3s ease;
	background:#fff;
}
.cta._show{
	bottom:0;
}
.cta a{
	display:flex;
	align-items: center;
	justify-content: center;
	width:100%;
	height: 100%;
	font-size: 3.7vw;
	text-align:center;
	border-top: 3px solid #c45a61;
	background:#2c287a;
	color:var(--white);
	transition: all 0.3s ease;
	padding: 0 2%;
}

.cta a.high_low {
	background: #c45a61;
	border-top: 3px solid #2c287a;
}
.cta a svg.pc{
	display:none;
}
.cta a svg,
.cta a img{
	margin-left:0.5em;
}

.cta a img {
	width: 8%;
}
.cta a:hover,
.cta a:focus{
	opacity:0.8;
}

/*==================================================
$footer フッター
==================================================*/
footer{
	text-align: center;
	border-top: 3px solid var(--blue);
	position: relative;
	background:var(--white) ;
	z-index: 5;
	margin-bottom:60px;
}
footer .inner{
	padding-top:35px;
	padding-bottom:35px;
}
.ft_logo{
	width:104px;
	/* margin:0 auto; */
	margin:0 auto;
}

.ft_logo img {
width: 100%;
}
.copyright{
	color:var(--white);
	text-align: center;
	background: var(--blue);
	line-height: var(--line-height-sm);
}

/*==================================================
TOPページ index
==================================================*/
.mv_wrap{
	width:100%;
	min-height:700px;
	min-height:100vh;
	min-height:100dvh;
	height:100%;
	overflow: hidden;
	padding-top:170px;
}
.header_ber:has(.hd_btn){
	padding-top:180;
}
.mv.row{
	flex-direction: column;
	gap:50px;
	justify-content: center;
}
.mv.row .left{
	display: flex;
	justify-content: center;
	align-items: center;
	padding:20px 20px 30px;
}
.mv_text{
	max-width:435px;
	width:100%;
}
.shadow{
	filter: drop-shadow(0px 3px 6px rgba(160,134,134,0.3));
}
.mv_catch{
	margin-top:30px;
}
.mv_image{
	margin-top:20px;
}
.mv_data{
	display:flex;
	align-items: center;
	flex-wrap: wrap;
	gap:15px 20px;
	margin-top:40px;
	margin-bottom:45px;
}

.renewal_text{
	font-size: 20px;
	font-weight: bold;
	letter-spacing: 0;
	line-height: 1;
	color:var(--primary-color);
	vertical-align:bottom;
	position:relative;
	display:flex;
	flex-wrap: wrap;
	align-items: center;
	gap:5px 14px;
	margin-bottom:15px;
}
.renewal_text > small{
	font-size:17px;
}
.renewal_text::after{
	content:"";
	display:block;
	width:1px;
	height:1px;
	flex:1;
	background:var(--primary-color);
}
.media{
	display:flex;
	flex-direction: column;
}
.media_image{
	width:100%;
	overflow:hidden;
}
.media_image figure{
	overflow:hidden;
	border-radius: 8px;
}
.media_image img{
	object-fit: cover;
	width:100%;
	height:100%;
}
.venue .media_image img{
	object-fit: contain;
	height:auto;
	border-radius: 8px;
}
.media_text{
	flex-grow: 1;
	padding:25px 0;
}
.venue_point{
	font-size:1rem;
	letter-spacing: -0.03em;
	margin-bottom:15px;
}
.venue_point > b{
	display:block;
	font-weight: bold;
	letter-spacing: 0.07em;
	text-align: center;
	color:var(--white);
	line-height: var(--line-height-xs);
	background:var(--primary-color);
	padding:10px 5px;
	border-radius: 8px;
}
.venue_point > b span{
	display: inline-block;
}
.venue_call{
	text-align: center;
	line-height: var(--line-height-xs);
}
.venue_call span{
	display: flex;
	gap:18px;
	align-items: center;
	font-size:14px;
	text-align: center;
	letter-spacing: 0.16em;
	color: var(--primary-color);
	margin-bottom:8px;
}
.venue_call span:before,
.venue_call span:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: var(--primary-color);
}
.venue_call strong{
	font-size: 20px;
	font-weight: bold;
	letter-spacing: 0.1em;

}
.mv.row .right{
	width:100%;
}
.mv.row .right figure img{
	width:100%;
}
.top_contents{
	position: relative;
	background:var(--white);
	z-index: 2;
}
.top_contents > section{
	overflow:hidden;
}
#page_nav{
	position:sticky;
	top:0;
	right:0;
	height:0;
	display:flex;
	justify-content: flex-end;
	z-index: 500;
}
#openbtn{
	width:50px;
	height:50px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--white);
	white-space: nowrap;
	background:	rgba(45,40,127,0.9);
	line-height: var(--line-height-sm);
	padding:5px;
	cursor: pointer;
	position: absolute;
	top:60px;
	right:0;
	border-top-left-radius: 8px;
	border-bottom-left-radius: 8px;
	transition: all 0.2s ease;
}
#page_nav.active #openbtn{
	/*background:rgba(250,250,250,0.9);*/
	width:110px;
	border-bottom-left-radius: 0px;
}
.page_nav_list{
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	visibility: hidden;
	transform: translateZ(0);
	overflow: hidden;

	position:absolute;
	top:109px;
	right:0;
	
	/* display:flex; */
	flex-direction: column;
	align-items: center;
	gap:20px;
	width: 110px;
	height:0px;
	letter-spacing: 0;
	line-height: 0;
	padding:0 10px 0 15px;
	background:rgba(250,250,250,0.9);
	border-bottom-left-radius: 8px;
	transition: all 0.2s ease;
}
#page_nav.active .page_nav_list{
	-webkit-backface-visibility: visible;
	backface-visibility: visible;
	visibility:visible;
	height: auto;
	line-height: var(--line-height-xs);
	padding:30px 10px 30px 15px;
	line-height: 2.0;
}

.page_nav_list li a{
	color:#666666;
	display:flex;
	align-items: center;
	gap:10px;
	transition: all 0.2s ease;
}
.page_nav_list li a:hover{
	color:var(--sky-blue);
}
.page_nav_list li.current a{
	color:var(--sky-blue);
	cursor:default;
	pointer-events: none;
}
.page_nav_list li a::before{
	content:"";
	display: inline-block;
	width:6px;
	height:6px;
	border-radius: 100%;
	background:var(--gray);
	border-radius: 50%;
	transition: all 0.3s ease;
}
.page_nav_list li.current a::before,
.page_nav_list li a:hover::before{
	background-color: rgba(9,111,214,1);
	box-shadow:
	0 0 3px 2px rgba(255,255,255,0.5),
	0 0 1px 4px rgba(9,111,214,0.4);
	animation: grow 1.2s ease-in-out infinite;
}
@keyframes grow{
	0%,	100%{
		box-shadow:
		0 0 3px 2px rgba(255,255,255,0.5),
		0 0 1px 4px rgba(9,111,214,0.4);
	  }
	50%{
		box-shadow:
		0 0 3px 2px rgba(255,255,255,0.5),
		0 0 5px 4px rgba(9,111,214,0.3);
	}
  }

/*============================
#top_info.top_info
============================*/
.top_info{
	background-color:#FBEEF0;
	/* background-image: url(../img/section01_bg01.svg), url(../img/section01_bg02.svg),url(../img/section01_bg03.svg),url(../img/section01_bg04.svg); */
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
	background-position:
	top right,
	top 15% left,
	top 75% right,
	left bottom;
}
.top_info .inner{
	padding-top:110px;
}
.content_title{
	font-size:22px;
	font-size:var(--font-size22);
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height: var(--line-height-sm);
	margin-bottom:25px;
}
.content_title:nth-of-type(n + 2){
	margin-top:100px;
}
.sub_title{
	font-size:20px;
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height:var(--line-height-md);
	color:var(--primary-color);
	margin-bottom:30px
}
.media.bg_white{
	overflow:hidden;
	border-radius: 8px;
	background:var(--white);
}
.media.bg_white figure{
	border-bottom-left-radius: 0px;
	border-bottom-right-radius: 0px;
}
.media.bg_white	.media_text{
	display: flex;
	justify-content: center;
	align-items: center;
	padding:15px 8%;

}
.top_info .media{
	margin-top:30px;
}
.media_title{
	font-size:24px;
	font-size: var(--font-size24);
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height: var(--line-height-sm);
	padding-left:25px;
	border-left:4px solid var(--primary-color);
}
.media_title span{
	display:block;
	width: fit-content;
	font-size:1rem;
	line-height: 2;
	font-weight: 500;
}
.img_round{
	border-radius: 8px;
}
.profile_card{
	margin-top:30px;
}
.profile_card figure{
	display:flex;
	align-items: center;
	gap:20px;
}
.profile_card figure > div{
	overflow:hidden;
	display: block;
	max-width:100px;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
	border-radius: 5.5px;
}
.profile_card figure > div img{
	object-fit: cover;
	width:100%;
	height: 100%;
}
figcaption{
	font-size:14px;
	letter-spacing: 0;
	line-height: var(--line-height-md);
}
.profile_card figcaption span{
	display:inline-block;
	font-size:14px;
	letter-spacing: 0.1em;
	margin-right:1rem;

}
.profile_card figcaption b{
	display: block;
	font-size:16px;
	font-weight: bold;
	letter-spacing: 0.5em;
}

.top_info > .inner > * + p {
	margin-top:30px;
}
.top_info > .inner > p:not(:last-child){
	margin-bottom:25px;
}
figcaption{
	font-size:14px;
	letter-spacing: 0;
	line-height: var(--line-height-md);
	margin-top:5px;
}

/*============================
#top_course-content.top_course-content
============================*/
.top_course-content .inner{
	max-width:860px;
}
.section_title{
	font-size:32px;
	font-size:var(--font-size32);
	font-weight: bold;
	letter-spacing: 0.06em;
	line-height: var(--line-height-xs);
	text-align: center;
	display:flex;
	justify-content: center;
	align-items: center;
	gap:15px;
	margin-bottom:35px;
}
.section_title::before,
.section_title::after{
	content:"";
	display:inline-block;
	width: 12px;
	height: 12px;
	background:#096FD6;
	border-radius: 50%;
}
.course-content_intro{
	max-width: 856px;
	width:100%;
	padding:8px 0;
	margin-bottom:40px;
	border-bottom:1px solid #DDDDDD;
} 
.card-wrap{
	display:flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	gap:50px;
}
.card{
	width:100%;
	background:var(--white);
	box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.05);
	padding:40px 15px;
	border-top:3px solid var(--primary-color);
}
.card:has(.card_nav){
	padding:40px 15px 10px 15px;
}
.course_time{
	display: flex;
	align-items: baseline;
	gap:5px 10px;
	flex-wrap: wrap;
	font-size:14px;
	letter-spacing: 0;
	line-height: var(--line-height-xs);
	vertical-align: bottom;
}
.course_time b{
	display:inline-block;
	font-size:24px;
	font-size: var(--font-size24);
	line-height: var(--line-height-sm);
	color:var(--primary-color);
}
.course_time span{
	display:inline-block;
}
.card h3,
.course_title{
	font-size:24px;
	font-size: var(--font-size24);
	font-weight: bold;
	letter-spacing: 0.06em;
	line-height: var(--line-height-sm);
	margin-bottom:20px;
}
.card h3 span,
.course_title span{
	font-size:20px;
}
.card p{
	font-size:14px;
	text-align: justify;
	text-align-last: left;
	letter-spacing: 0;
	line-height: var(--line-height-md);
	margin-bottom: auto;
}
.course_detail:has(figure){
display: flex;
gap:10px;
justify-content: center;
align-items: center;
margin-top:20px;
}
.course_detail figure{
	width: 78px;
}
.course_detail ul{
	flex-grow: 1;
}
.course_detail ul li{
	position:relative;
	font-size: 14px;
	letter-spacing: 0;
	line-height:var(--line-height-md);
	padding-left:30px;
}
.course_detail ul li::before{
	position:absolute;
	top:3px;
	left:0;
}
.course_detail ul li.icon_point::before{
	content:url(../img/icon_point.svg);
}
.course_detail ul li.icon_human::before{
	content:url(../img/icon_human.svg);
}
.course_detail ul li span{
	display:inline-block;
}
.course_detail img{
	border-radius: 5.5px;
}

.course_closing{
	font-size:14px;
	letter-spacing: 0;
	line-height:var(--line-height-sm);
}
.card .course_closing{
	margin-top:14px;
	padding-top:20px;
	border-top: dashed 1px rgba(0,0,0,0.5);
}
.card .card_nav{
	text-align:right;
	margin-top:8px;
}
.card .card_nav a{
	display:inline-block;
	font-size: 13px;
	line-height: 1.7;
	color:#096FD6;
	border-bottom:1px solid #096FD6;
	position:relative;
	padding-right:20px;
	transition: all 0.3s ease;
	inline-size: 156px;
}
.card .card_nav a::after{
	content:"";
	position: absolute;
	top:calc(50% - 2px);
	right:5px;
	display: block;
	width:6px;
	height: 6px;
	border-top:1px solid #096FD6;
	border-right:1px solid #096FD6;
	transform: rotate(45deg);
	transition: all 0.3s ease;
}
.card .card_nav a:hover{
	border-bottom-color:transparent;
}
.card .card_nav a:hover::after{
	right:0px;
}

/*============================
.top_course-overview
============================*/
.top_course-overview{
	padding:50px 20px;
	/* background:url(../img/eyecatch.svg) no-repeat center center / cover; */
	background-color: #FBEEF0;
}
.top_course-overview .inner{
	border-radius: 10px;
	padding-left:15px;
	padding-right:15px;
	background:var(--white);
}
.table01{
	border-top:1px solid #ccc;
}
.table01 tbody th{
	display:block;
	width:100%;
	padding:20px 15px;
	font-size: 16px;
	letter-spacing: 0.06em;
	background: #F9FAFA;
}
.table01 tbody td{
	display:block;
	font-size:1rem;
	line-height:1.5;
	padding:20px 15px;
	border-bottom:1px solid #ccc;
}
.table01 tbody td p:not(:last-child){
	margin-bottom:16px;
}
.notes{
	font-size:13px;
	line-height: var(--line-height-sm);
}
.table01 tfoot dl{
	display:flex;
	flex-wrap: wrap;
	gap:5px 20px;
	font-size:1rem;
	letter-spacing: 0;
}
.table01 tfoot tr > *{
	padding:27px 34px;
}
.table01 tfoot dl dt{
	width:50px;
}
.table01 tfoot dl dd{
	width:calc(100% - 70px);
}
.table01 a{
	color:var(--blue);
	text-decoration: none;
}
.table01 a:hover{
	text-decoration: underline;
}

/*============================
#top_access.top_access
============================*/
.content_title02{
	color: var(--primary-color);
	font-size:28px;
	font-size:var(--font-size28);
	letter-spacing: 0.06em;
	display: flex;
	justify-content: center;
	align-items: center;
	gap:20px;
	margin-bottom:30px;
}
.content_title02::before,
.content_title02::after{
	content:"";
	width:1px;
	height:14px;
	flex-grow: 1;
	background:url(../img/title_line.png) repeat-x center center / auto 100%;
}
.content_title02:nth-of-type( n + 2 ){
	margin-top:90px;
}
a.text_link{
	color:var(--primary-color);
}
a.text_link:hover{
	text-decoration: underline;
}
.top_access .row{
	margin-bottom:40px;
}

.top_access .right h3{
	font-size:24px;
	letter-spacing: 0.06em;
	font-weight: bold;
}
.top_access .right address h4{
	font-size:1rem;
	line-height: var(--line-height-md);
	letter-spacing: 0;
}
.top_access .right address h4:nth-child(n+2){
	margin-top:20px;
}
.top_access .right address p{
	font-size: 1rem;
	letter-spacing: 0;
	line-height: var(--line-height-md);
	color:#999;

}
.gmap {
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
	}
	.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	}
.ul_circle li{
	position: relative;
	font-size: 1rem;
	line-height: var(--line-height-lg);
	padding-left: 20px;
}
.ul_circle li::before {
	content: '';
	display: inline-block;
	position: absolute;
	top: 0.75em;
	left: 0;
	width: 10px;
	height: 10px;
	background-color: var(--black);
	border-radius: 5px;
  }

/*============================
下層ページ
============================*/

.sub_page header{
	min-height: 290px;
	padding-bottom:150px;
	/* background: url(../img/mv_bg.png) no-repeat center center / cover; */
	background-color: #FBEEF0;
}
.hd_btn{
	width: 100%;
}
.btn_course_list{
	width: fit-content;
	display: flex;
	align-items: center;
	justify-content: center;
	gap:15px;
	color:#fff;
	line-height: 1.1;
	padding:10px 30px;
	margin:0 auto;
	border-radius: 4px;
	background:var(--blue);
	transition: all 0.4s ease;
}
.btn_course_list::after{
	content:"";
	display:inline-block;
	width:21px;
	height:15px;
	background:url(../img/icon_list.svg) no-repeat center center / contain;
}
.btn_course_list:hover{
	background: var(--red);
}
.course_content{
	background: #fff;
}
.course_content .inner{
	width:90%;
	margin-left:auto;
	margin-right:auto;
	padding:30px 15px 80px;
	position: relative;
	transform:translateY(-100px);
	border-radius: 8px;
	background: #fff;
	z-index:2;
}
.course_head{
	margin-bottom: 75px;
}
.course_data{
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap:15px 30px;
	margin-bottom:20px;
}
.course_content .course_time {
	font-size:16px;
	display: flex;
	gap:5px 10px;
	flex-wrap: wrap;
	align-items: baseline;
}
.course_content .course_time b{
	font-size:26px;
}
.course_content .course_time b > small{
	font-size:1rem;
}
.course_time .course_time_title{
	width:100%;
}
.course_content .course_closing{
	font-size:14px;
	letter-spacing: 0;
	color:#fff;
	padding:5px 12px;
	background: var(--black);
}
.course_head .course_title{
	margin:0;
}
.course_head .course_text_block{
	border-top:1px solid var(--gray);
	margin-top:30px;
	padding-top:30px;
}

.profile_name{
	display:flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap:5px 15px;
	font-size:26px;
	letter-spacing: 0.06em;
	font-weight: bold;
	line-height: var(--line-height-xs);
}
.profile_name > small{
	display:block;
	font-size:16px;
	font-weight: 400;
	margin-top:5px;
}
[data-ruby] {
    position: relative;
}
[data-ruby]::before {
    content: attr(data-ruby);
    position: absolute;
    top: -1.3em;
    left: 50%;
    transform: translateX(-50%);
    width: fit-content;
    margin: auto;
    white-space: nowrap;
    font-size: 0.4em;
	font-weight: 400;
    letter-spacing: 0.2em;
}
.profile_text{
	margin-top:15px;
	padding-top:10px;
	border-top:1px dashed var(--gray);
}
.profile_text ul li{
	letter-spacing: 0;
	line-height: var(--line-height-md);
}
.profile_text ul li + li{
	margin-top: 5px;
}
.profile_text dl{
	margin-top:20px;
	line-height: var(--line-height-md);
}
.profile_text dl dt{
	vertical-align: middle;
	flex-shrink: 0;
}
.profile_text dl dd a{
	display: inline-block;
	width: 100%;
	word-wrap:break-word;
	color:var(--sky-blue);
}
.profile_text dl dd a:hover{
	text-decoration: underline;
}
.profile_text .check{
	display: flex;
	gap:3px;
}
.profile_text .check::before{
	flex-basis: 20px;
	flex-shrink: 0;
	content:"";
	display: inline-block;
	width:20px;
	aspect-ratio: 10 / 9;
	margin-right:0.3em;
	position: relative;
	top:2px;
	background: url(../img/icon_check.svg) no-repeat center top /contain;
}
.profile_text p{
	line-height: 1.5;
	margin-top:4px;
}
.course_teacher .other{
	margin-top:35px;
}
.course_teacher .other .media + .media{
	margin-top:35px;
}
.other .media .media_image img{
	border-radius: 0;
}
.course_teacher .other .other_title{
	font-size:18px;
	letter-spacing: 0.06em;
	line-height:var(--line-height-sm);
}
.course_teacher .other .other_title small{
	display: block;
	font-size:13px;
	color:#999;
	margin-bottom:5px;
}
.course_teacher .other .other_title span{
	display:inline-block
}
.course_teacher .other p{
	letter-spacing: 0.06em;
	line-height: var(--line-height-md);
	padding-top: 15px;
	margin-top: 15px;
	border-top: 1px dashed #ccc;
}
.course_teacher .other .readmore-content{
	display: -webkit-box;
    position: relative;
	padding-top: 0;
    margin-bottom: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
	box-orient: vertical;
    -webkit-line-clamp: 3; /* 開く前に見せたい行数を指定 */
	line-clamp: 3; /* 開く前に見せたい行数を指定 */
	transition: all 0.5s linear;
	border:none;
}
.course_teacher .other .readmore-content::before{
	content:"";
	display:block;
	width: 100%;
	height:100%;
	position: absolute;
	top:0;
	left:0;
	background:linear-gradient(0deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);;
}
.course_teacher .other .readmore-content.is-show{
	-webkit-line-clamp: unset; 
	line-clamp: unset;
}
.course_teacher .other .readmore-content.is-show::before{
	display: none;
}
.readmore .read_label{
	display: block;
	width: fit-content;
	margin:0 auto;
	position: relative;
	padding-left:15px;
	margin-top: 10px;
	cursor: pointer;
	color: var(--primary-color);
}
.readmore .read_label:hover{
	opacity: 0.8;
}
.readmore .read_label::before,
.readmore .read_label::after{
	content:"";
	display: block;
	position: absolute;
	background:var(--primary-color);
	transition: all 0.3s linear;
}
.readmore .read_label::before{
	width:8px;
	height:2px;
	top:50%;
	left:0;
}
.readmore .read_label::after{
	width:2px;
	height: 8px;
	top:calc(50% - 3px);
	left:3px;
	opacity: 1;
}
.readmore .is-show + .read_label::after{
	transform: rotate(90deg);
	opacity: 0;
}
.readmore-content + .read_label .close{
	display: none;
}
.is-show + .read_label .close{
	display: block;
}
.is-show + .read_label .open{
	display: none;
}
.other_links > li {
	line-height: var(--line-height-md);
}
.other_links > li + li{
	margin-top: 15px;
}
.other_links li a{
	color:var(--sky-blue);
	transition: all 0.3s ease;
}
.other_links li a:hover{
	text-decoration: underline;
}
.other_links li aside {
	padding:5px 10px;
	margin-top:5px;
	color:var(--dark);
	background-color: var(--light);
}

.course_venue{
	padding:40px 20px 60px;
	background-color:#FBEEF0;
}
.course_venue .venue_content{
	max-width:var(--breakpoint-lg);
	margin:0 auto;
	background:#fff;
	border-radius: 16px;
}
.course_venue .inner{
	padding:50px 20px;
}

.course_venue .venue_name{
	font-size:18px;
	letter-spacing: 0.06em;
	font-weight: 500;
	margin-bottom:20px;
	line-height: var(--line-height-sm);
}
.course_venue .row.access{
	justify-content: space-between;
	gap:15px 30px;
	flex-wrap: wrap;
	margin-top:15px;
}
.course_venue h4{
	font-size:16px;
	font-weight: 500;
	letter-spacing: 0.06em;
}
.course_venue ul li{
	letter-spacing: 0.06em;
	color:#999;
}
.course_foot .inner{
	padding-top:80px;
	padding-bottom:60px;
}
.btn_wrap{
	display:flex;
	justify-content: center;
	gap:50px;
	align-items: center;
}
.btn02{
	font-size:18px;
	font-weight: 500;
	line-height: var(--line-height-xs);
	color:#fff;
	text-align: center;
	padding:15px 45px;
	background: var(--red);
	position:relative;
	border:2px solid var(--red);
	border-radius: 4px;
	transition: all 0.3s ease;
}
.btn02::after{
	content:"";
	display:inline-block;
	position:absolute;
	top:calc(50% - 4px);
	right:25px;
	width:10px;
	height:10px;
	border-top:2px solid #fff;
	border-right:2px solid #fff;
	transform: rotate(45deg);
	transition: all 0.3s ease;
}
.btn02:hover{
	color:var(--red);
	background: #fff;
	border-color: var(--red);
}
.btn02:hover::after{
	right:20px;
	border-color:var(--red);
}



.btn01{
	font-size:18px;
	font-weight: 500;
	line-height: var(--line-height-xs);
	color:#fff;
	text-align: center;
	padding:15px 45px;
	background: var(--blue);
	position:relative;
	border:2px solid var(--blue);
	border-radius: 4px;
	transition: all 0.3s ease;
}
.btn01::after{
	content:"";
	display:inline-block;
	position:absolute;
	top:calc(50% - 4px);
	right:25px;
	width:10px;
	height:10px;
	border-top:2px solid #fff;
	border-right:2px solid #fff;
	transform: rotate(45deg);
	transition: all 0.3s ease;
}
.btn01:hover{
	color:var(--blue);
	background: #fff;
	border-color: var(--blue);
}
.btn01:hover::after{
	right:20px;
	border-color:var(--blue);
}





.page_back{
	margin-top:45px;
	text-align:center;
}
.page_back a{
	display:inline-block;
	font-size:16px;
	letter-spacing: 0.06em;
	position: relative;
	transition: all 0.3s ease;
}
.page_back a:hover{
	color: var(--red);
}
.page_back a::before{
	content:"";
	display:block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background:#707070;
}
.page_back a::after{
    /*絶対配置で線の位置を決める*/
	content:"";
	display:block;
    position: absolute;
    bottom: 0;
    left: 0;
    /*線の形状*/
    width: 100%;
    height: 1px;
    background:var(--primary-color);
    /*アニメーションの指定*/
    transition: all .3s linear;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: left top;/*左上基点*/
}
.page_back a:hover::after {
    transform: scale(1, 1);/*X方向にスケール拡大*/
}

/* 240328　満員御礼 */
.orei{
	position: relative;
  }
.orei_txt{
	position: absolute;
	width: 300px;
    top: 70%;
    left: 51%;
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: 1.0rem;
    margin: 0;
	padding: 2% 2%;
    background-color: rgb(132, 132, 132);
    text-align: center;
	box-shadow: 4px 3px 3px rgb(68, 68, 68);
	opacity: 0.95;
}
.orei_txt span{
	font-size: 1.8rem;
	font-weight: bold;
}


/* 240624 仮公開用 */
.top_info .inner{
	padding-top:40px;
}
.mv_wrap{
	width:100%;
	min-height:700px;
	min-height:100vh;
	min-height:100dvh;
	height:100%;
	overflow: hidden;
	padding-top:100px;
}
.mv.row .right {
	width: 100%;
	padding: 0 4%;
}
span.storongg {
	font-weight: bold;
    font-size: 17px;
    text-decoration-line: underline;
}
p.cmgg {
    margin-top: 20px !important;
}
/* 240624 仮公開用 */


.right.sp {
    margin-top: 9%;
}
img.kouza-logo {
    width: 150%;
}
img.kouza-image,img.access-image{
	width: 100%;
}
.row.access2 {
    margin-top: 60px;
}

/* 240709 */
.syosai_link_flex a {
    width: 90%;
	font-size: 4.7vw;
	padding: 15px 5%;
	margin-bottom: 5%;
}
span.sp.sp-btn-ap {
    font-size: 12px;
}

/* 240725 */
.illustration_bn a {
	font-size: 3.7vw;
        text-align: left;
        display: block;
        position: relative;
        padding: 5% 5% 5% 24%;
        border-bottom: 3px solid var(--primary-color);
        border-top: 3px solid var(--primary-color);
        margin-bottom: 10%;
        width: 100%;
}

.illustration_bn a span {
	color: var(--primary-color);
}

.illustration_bn a::before {
	content: "";
	background: url(../img/illust_ico.png) no-repeat center / contain;
	width: 22vw;
	height: 22vw;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: -2%;
}

.illustration_bn a:hover {
	text-decoration: underline;
}

/* 250710 */
.top_info {
    background-color: #fff9e9;
}

.sub_title {
    color: #d57a00;
}

.profile_card figure > div {
    max-width: 115px;
}