/*
Theme Name: W nihonbashi
*/


/* ------------------------------
default
------------------------------ */
* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	border-style: initial;
	-webkit-text-size-adjust: 100%;
}

html,body {
	height: 100%;
	width: 100%;
	scroll-behavior: smooth;
}
body {
	font-family: noto-sans-cjk-jp, sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1.8;
	letter-spacing: 1px;
	margin: 0;
}
a {
	color: inherit;
	text-decoration: none;
	-webkit-transition: all linear 0.2s;
	transition: all linear 0.2s;
}
a:hover{
	opacity: 0.65;
}
img {
	height: auto;
	max-width: 100%;
}
input, button, select, textarea {
	-webkit-appearance: none;
}
h2, ul, li{
	list-style: none;
	margin: 0;
	padding: 0;
}
section{
	position: relative;

}

/* --------------------------------
font
---------------------------------*/
.font_en{
	font-family: dunbar-low, sans-serif;
	font-weight: 400;
	font-style: normal;
}
.fontxxl{font-size: 80px;}
.fontxl{font-size: 64px;}
.fontll{font-size: 28px;}
.fontl{font-size: 24px;}
.fontm{font-size: 18px;}
.fonts{font-size: 16px;}
.fontss{font-size: 14px;}
.fontxs{font-size: 12px;}

/* --------------------------------
common
---------------------------------*/
.main{
	min-width: 960px;
}
.section{
	padding-top: 80px;
}
.area_l{
	padding-left: 160px;
}
.area_s{
	width: 960px;
	margin: 0 auto;
}
.bg_w{
	background-color: #ffffff;
}
.bg_g{
	background-color: #f5f5f5;
}
.colortext_b{
	color: #111111;
}
.colortext_w{
	color: #ffffff;
}
.colortext_gg{
	color: #888888;
}
.colortext_lg{
	color: #e1e1e1;
}
.red{
	color: #D05858;
}
.italic{
	font-style: italic;
}
.bold{
	font-weight: 500;
}
.pc{
	display: block;
}
.sp{
	display: none;
}
.flex_box{
	display: flex;
}
.two_coulumn,
.title_area {
	justify-content: space-between;
	flex-wrap: wrap;
}
.two_coulumn .flexchild{
	width: 48.75%;
	margin-bottom: 30px;
}
.two_coulumn .flexchild:last-child{
	margin-bottom: 0;
}
.two_coulumn .flexchild a{
	width: 100%;
	height: 100%;
}
.two_coulumn .flexchild .bg_item,
.two_coulumn .flexchild .bg_item_s {
	aspect-ratio: 1/0.75;
	background-size: cover;
	background-position: center;
	justify-content: center;
	align-items: center;
	background-color: rgba(0, 0, 0, 0.4);
	background-blend-mode: overlay;
}
.two_coulumn .flexchild .bg_item_s{
	aspect-ratio: 1/0.5;
}
.two_coulumn .flexchild .bg_item .title_area{
	width: 64%;
}
.two_coulumn .flexchild .bg_item .name_cont span{
	display: block;
	font-style: normal;
}
.two_coulumn .flexchild .bg_item img{
	width: 20px;
}
.two_coulumn .flexchild .bg_item .title_vertical{
	flex-direction: column;
}
.two_coulumn .flexchild .bg_item .title_vertical .cont_info{
	margin: 20px 0;
}
.head_line{
	justify-content: space-between;
	align-items: baseline;
	border-bottom: 1px solid #e1e1e1;
	margin-bottom: 70px;
}
.head_line .head_ja img{
	width: 20px;
	margin-right: 15px;
	transform: translateY(3px);
}
.section_text{
	margin-bottom: 40px;
}
.button{
	width: 183px;
	height: 55px;
	border: 1px solid #000000;
	border-radius: 30px;
	margin-top: 40px;
	font-size: 18px;
	padding: 0 35px;
}
.button a{
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
	white-space: nowrap;
}
.button a .arrow{
	width: 13px;
	height: 13px;
	background-image: url(images/arrow.svg);
}
.button:hover{
	background-color: #000000;
	color: #ffffff;
}
.button:hover .arrow{
	background-image: url(images/arrow_white.svg);
}

/* --------------------------------
animation
---------------------------------*/
.fadein-right {
	transform: translateX(5rem);
    display: table;
    opacity: 0;
    -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
}
.fadein-right.active {
	transition: all .8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s;
    transition-property: transform, opacity, -webkit-clip-path;
    transition-property: transform, opacity, clip-path;
    transition-property: transform, opacity, clip-path, -webkit-clip-path;
    transform: translateX(0);
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

/* --------------------------------
header
---------------------------------*/
.header{
	width: 160px;
	height: 100svh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999;
	background-color: #ffffff;
	padding-top: 40px;
}
.header h1{
	width: 83px;
	margin: 0 auto 40px;
}
.header h1 a{
	display: block;
	width: 100%;
	height: 100%;
}
.header h1 img{
	width: 100%;
}
.header nav{
	padding-left: 30px;
	padding-right: 30px;
	line-height: 2.3;
	margin-bottom: 40px;
}
.header nav ul{
	margin-bottom: 30px;
}
.header nav ul li a{
	display: block;
}
.header .line_link img{
	display: inline-block;
	width: 20px;
	margin-right: 5px;
	transform: translateY(5px);
}
.header nav .burgermenu span{
	display: inline-block;
	transition: all .4s;
	box-sizing: border-box;
	border-bottom: inherit;
}
.header nav .burgermenu{
	position: absolute;
    right: 24px;
    top: 24px;
    width: 32px;
    height: 21px;
    display: none;
}
.header nav .burgermenu span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000;
}
.header nav .burgermenu span:nth-of-type(1){
	top:0;
}
.header nav .burgermenu span:nth-of-type(2){
	top:9px;
}

.header .reserve_link{
	position: absolute;
	bottom: 0;
	width: 160px;
	height: 120px;
	background-color: #000000;
	justify-content: center;
	align-items: center;
	text-align: center;
}

/* --------------------------------
top_mv
---------------------------------*/
.top_mv{
	width: 100%;
	height: 100vh;
	overflow: hidden;
	position: fixed;
	top: 0;
	z-index: -99;
}
.top_mv .mv_img{
	aspect-ratio: 1/0.65;
	background-size: cover;
	background-position: center;
}

/* --------------------------------
about
---------------------------------*/
.about{
	margin-top: 832px;
}

/* --------------------------------
view
---------------------------------*/
.view .wt_frame iframe{
	background-color: #888888;
	width: 100%;
}

/* --------------------------------
instructor
---------------------------------*/
.instructor{
	padding-bottom: 100px;
}
.instructor .inst_list {
	justify-content: space-between;
	flex-wrap: wrap;
}
.instructor .inst_list .flexchild{
	width: 48.75%;
	margin-bottom: 30px;
}
.instructor .inst_list .flexchild:last-child{
	margin-bottom: 0;
}
.instructor .inst_list .flexchild a{
	width: 100%;
	height: 100%;
}
.instructor .inst_list .flexchild .bg_item {
	aspect-ratio: 1/0.75;
	background-size: cover;
	background-position: center;
	justify-content: center;
	align-items: center;
	background-color: rgba(0, 0, 0, 0.4);
	background-blend-mode: overlay;
}
.instructor .inst_list .flexchild .bg_item .title_area{
	width: 64%;
}
.instructor .inst_list .flexchild .bg_item .name_cont span{
	display: block;
	font-style: normal;
}
.instructor .inst_list .flexchild .bg_item img{
	width: 20px;
}
.instructor .inst_list .flexchild .bg_item .title_vertical{
	flex-direction: column;
}
.instructor .inst_list .flexchild .bg_item .title_vertical .cont_info{
	margin: 20px 0;
}

/* --------------------------------
information_link_area
---------------------------------*/
.information_link_area{
	background-image: url(images/bg_schedule_price.jpg);
	background-size: cover;
	background-position: center;
	padding: 80px 0;
	background-color: rgba(0, 0, 0, 0.4);
	background-blend-mode: overlay;
}
.information_link_area .two_coulumn .flexchild{
	border: 2px solid #ffffff;
	margin-bottom: 0;
}
.information_link_area .two_coulumn .flexchild .bg_item_s{
	background-color: initial;
}

/* --------------------------------
news
---------------------------------*/
.news .news_list .cont_thum_frame{
	width: 16.66%;
	margin-right: 20px;
}
.news .news_list li{
	border-bottom: 1px solid #e1e1e1;
	padding: 20px 0;
}
.news .news_list .flex_box{
	align-items: center;
	position: relative;
}
.news .news_list .flex_box .cont_thum_frame .cont_thum{
	aspect-ratio: 1/0.663;
	background-size: cover;
	background-position: center;
}
.news .news_list .flex_box>img{
	width: 25px;
	position: absolute;
	right: 70px;
} 

/* --------------------------------
ig_area
---------------------------------*/
.ig_area {
	padding-bottom: 100px;
}
.ig_area .ig_frame{
	margin-top: 40px;
}

/* --------------------------------
footer_logo_area
---------------------------------*/
.footer_logo_area{
	height: 480px;
	background-color: rgba(0, 0, 0, 0.4);
	justify-content: center;
	align-items: center;
}
.footer_logo_area>div img{
	width: 172px;
}

/* --------------------------------
footer
---------------------------------*/
.footer{
	position: relative;
	padding-left: 160px;
	text-align: center;
}
.footer .footer_container{
	padding: 35px;
}
.footer .footer_container ul {
	margin-bottom: 20px;
	justify-content: center;
}
.footer .footer_container ul li{
	margin-right: 30px;
}
.footer .footer_container ul li:last-child{
	margin-right: 0;
}
.footer .footer_container p{
	font-size: 10px;
}
.footer .footer_container .sns_link li img{
	width: 48px;
}


/* --------------------------------
loading animation
---------------------------------*/
#load_frame{
	background-color: #ffffff;
	height: 100%;
	width: 100%;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 9999;
	display: flex;
    align-items: center;
    justify-content: center;
}
#load_frame img{
	max-width: 300px;
	width: 50%;
}
#load_frame.fadeOut  {
	transition-property: opacity;
    transition-delay: 1.8s;
    transition-duration: .5s;
    opacity: 0;
    pointer-events: none;
}

/* ------------------------------
for smartphone
------------------------------ */
@media screen and (max-width:600px) {
	/* --------------------------------
	font
	---------------------------------*/
	.fontxxl{font-size: 40px;}
	.fontxl{font-size: 32px;}
	.fontll{font-size: 20px;}
	.fontl{font-size: 18px;}
	.fontm{font-size: 16px;}
	.fonts{font-size: 14px;}
	.fontss{font-size: 14px;}
	.fontxs{font-size: 10px;}

	/* --------------------------------
	common
	---------------------------------*/
	.main{
		min-width: initial;
	}
	.section{
		padding-top: 50px;
		padding-left: 20px;
		padding-right: 20px;
	}
	section.page_title {
		padding-top: 100px;
	}
	.area_l{
		padding-left: 0;
	}
	.area_s{
		width: 100%;
	}
	.pc{
		display: none;
	}
	.sp{
		display: block;
	}
	.two_coulumn .flexchild{
		width:100%;
		margin-bottom: 0;
	}
	.two_coulumn .flexchild .bg_item {
		margin-bottom: 20px;
	}
	.two_coulumn .flexchild .bg_item .title_area{
		width: 75%;
	}
	

	/*kokoak¥te*/

	.head_line{
		position: relative;
		margin-bottom: 30px;
	}
	.head_line .head_ja{
		z-index: 99;
	}
	.head_line .head_ja img{
		width: 14px;
		margin-right: 10px;
	}
	.head_line .title_en{
		position: absolute;
		right: 0;
		bottom: -8px;
	} 
	.section_text{
		margin-bottom: 30px;
	}
	.button{
		width: 135.5px;
		height: 34px;
		margin-top: 30px;
		font-size: 14px;
		padding: 0 25px;
	}
	.button a img{
		width: 10px;
	}


	/* --------------------------------
	header
	---------------------------------*/
	.header{
		width: 100%;
		height: 64px;
		background-color: rgba(255,255,255,0.8);
	}
	.header h1{
		width: 60px;
		position: absolute;
		top: 15px;
		left: 15px;
		margin: initial;
	}
	.header nav ul{
		display: none;
		padding-left: 50px;
		font-size: 16px;
	}
	.header nav .burgermenu{
		display: block;
	}
	.header .reserve_link{
		position: fixed;
		right: 10px;
		bottom: 5%;
		width: 140px;
		height: auto;
		line-height: 1.5;
		padding: 10px;
	}

	/* menu open */
	.header.active{
		height: 100svh;
		padding-top: 0;
	}
	.header.active nav{
		padding-left: 0;
		padding-right: 0;
		padding-top: 80px;
		background-color: #ffffff;
		height: 100vh;
	}
	.header.active nav ul{
		display: block;
	}
	.header.active nav .burgermenu span:nth-of-type(1) {
		-webkit-transform: translateY(4px) rotate(-45deg);
		transform: translateY(4px) rotate(-45deg);
		background-color: #000;
	}
	.header.active nav .burgermenu span:nth-of-type(2) {
		-webkit-transform: translateY(-5px) rotate(45deg);
		transform: translateY(-5px) rotate(45deg);
		background-color: #000;
	}
	
	/* --------------------------------
	top_mv
	---------------------------------*/
	.top_mv{
		height: 100svh;
	}
	.top_mv .mv_img{
		aspect-ratio: 1/1.5;
		height: 100svh;
	}

	/* --------------------------------
	about
	---------------------------------*/
	.about{
		margin-top: 80svh;
	}
	/* --------------------------------
	instructor
	---------------------------------*/
	.instructor{
		padding-bottom: 50px;
	}
	.instructor .inst_list .flexchild{
		width: 48%;
		margin-bottom: 0;
	}
	.instructor .inst_list .flexchild .bg_item {
		aspect-ratio: 1/1.421;
	}
	.instructor .inst_list .flexchild .bg_item .title_area{
		width: 80%;
	}
	.instructor .inst_list .flexchild .bg_item img{
		width: 15px;
	}
	/* --------------------------------
	information_link_area
	---------------------------------*/
	.information_link_area{
		padding: 50px;
	}
	.information_link_area .two_coulumn .flexchild{
		margin-bottom: 20px;
	}
	.information_link_area .two_coulumn .flexchild:last-child{
		margin-bottom: 0;
	}
	
	/* --------------------------------
	news
	---------------------------------*/
	.news .news_list .cont_thum_frame{
		width: 23%;
	}
	.news .news_list .flex_box>img{
		width: 15px;
		right: 0;
	} 
	.news .news_list .flex_box .cont_text{
		width: 70%;
	}
	.news .news_list .flex_box .cont_text .date{
		font-size: 12px;
	} 
	.news .news_list .flex_box .cont_title{
		width: 95%;
	}

	/* --------------------------------
	ig_area
	---------------------------------*/
	.ig_area {
		padding-bottom: 50px;
	}

	/* --------------------------------
	footer_logo_area
	---------------------------------*/
	.footer_logo_area{
		height: 177px;
	}
	.footer_logo_area>div img{
		width: 69px;
	}
	/* --------------------------------
	footer
	---------------------------------*/
	.footer{
		padding-left: 0;
		padding-bottom: 100px;
	}
	.footer .footer_container .footer_menu{
		flex-direction: column;
	}
	.footer .footer_container .footer_menu li{
		margin-right: 0;
		margin-bottom: 5px;
	}


}