@charset "UTF-8";
/*--------------------------------------------
reset css
--------------------------------------------*/
/* http://meyerweb.com/eric/tools/css/reset/ */
/* v1.0 | 20080212 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

/* remember to define focus styles! */
:focus {
	outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*--------------------------------------------
共通設定
--------------------------------------------*/
*{
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
body:not(.wp-admin){
	color: #333;
	font-family: 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
	line-height: 1.8;
	font-weight: 400;
	font-size: min(5vw, 1rem);
}
main{
	text-align: justify;
}
main, /* IE対策 */
iframe{
	display: block;
}
iframe{
	max-width: 100%;
}
figure{
	margin: 0;
}
/*.inner_width_600{
	width: min(90%, 37.5em);
	margin-left: auto;
	margin-right: auto;
}
.inner_width_800{
	width: min(90%, 50em);
	margin-left: auto;
	margin-right: auto;
}
.inner_width_1000{
	width: min(90%, 62.5em);
	margin-left: auto;
	margin-right: auto;
}
.inner_width_1200{
	width: min(90%, 75em);
	margin-left: auto;
	margin-right: auto;
}
.inner_width_1500{
	width: min(90%, 93.75em);
	margin-left: auto;
	margin-right: auto;
}
.width_600{
	max-width: 37.5em;
	margin-left: auto;
	margin-right: auto;
}
.width_800{
	max-width: 50em;
	margin-left: auto;
	margin-right: auto;
}
.width_1000{
	max-width: 62.5em;
	margin-left: auto;
	margin-right: auto;
}
.width_1200{
	max-width: 75em;
	margin-left: auto;
	margin-right: auto;
}
.width_1500{
	max-width: 93.75em;
	margin-left: auto;
	margin-right: auto;
}*/

.disnon{
	display: none !important;
}
.ib{
	display: inline-block;
}

@media print, screen and (min-width: 1024px){
	.switch_sp{
		display: none !important;
	}
}
@media screen and (max-width: 1023px){
	.switch_pc{
		display: none !important;
	}
}
@media print, screen and (min-width: 768px){
	.switch_sp_2{
		display: none !important;
	}
}
@media screen and (max-width: 767px){
	.switch_pc_2{
		display: none !important;
	}
}
.margin_top{
	margin-top: min(20vw, 5em) !important;
}
.margin_bottom{
	margin-bottom: min(20vw, 5em) !important;
}
.margin_top_no{
	margin-top: 0 !important;
}
.margin_top_05{
	margin-top: .5em !important;
}
.margin_top_1{
	margin-top: 1em !important;
}
.margin_top_2{
	margin-top: 2em !important;
}
.margin_top_3{
	margin-top: 3em !important;
}
.margin_top_4{
	margin-top: 4em !important;
}
.margin_top_5{
	margin-top: 5em !important;
}
.margin_top_6{
	margin-top: 6em !important;
}
.margin_bottom_no{
	margin-bottom: 0 !important;
}
.margin_bottom_05{
	margin-bottom: .5em !important;
}
.margin_bottom_1{
	margin-bottom: 1em !important;
}
.margin_bottom_2{
	margin-bottom: 2em !important;
}
.margin_bottom_3{
	margin-bottom: 3em !important;
}
.margin_bottom_4{
	margin-bottom: 4em !important;
}
.padding_top_no{
	padding-top: 0 !important;
}
.padding_top{
	padding-top: min(20vw, 5em) !important;
}
.padding_bottom{
	padding-bottom: min(20vw, 5em) !important;
}
.padding_left{
	padding-left: min(5vw, 1em);
}
.padding_right{
	padding-right: min(5vw, 1em);
}

.text_left{
	text-align: left;
}
.text_center{
	text-align: center;
}
.text_right{
	text-align: right;
}

.mincho{
/*	font-family: 'Noto Serif JP', serif;*/
	font-family: "Shippori Mincho", serif;
	font-style: normal;
}
.gothic{
	font-family: 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
}

a{
	color: #333;
}
a:hover{
	text-decoration: none;
}
:focus-visible{
	outline: -webkit-focus-ring-color auto 1px;
}

img{
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}
img.img_border{
	box-shadow: 0 0 0 1px #ccc;
}
.clearfix::after{
	content: "";
	display: block;
	clear: both;
}

.font_b{
	font-weight: 700;
}
.weight_normal{
	font-weight: 400;
}
.font_small{
	font-size: .85em;
}
.font_big{
	font-size: 1.2em;
}

.ul{
}
.ul > li{
	position: relative;
	padding-left: 1.2em;
}
.ul > li::before{
	position: absolute;
	top: .8em;
	left: .4em;
	content: "";
	width: 4px;
	height: 4px;
	border-radius: 2px;
	background-color: #555;
}

.theme_color{
	color: #8f5b22;
}

/*--------------------------------------------
LP css
--------------------------------------------*/
body{
}
#header{
	position: fixed;
	width: 400px;
	height: 100%;
}
.site_name_pc{
	padding-top: 1.5em;
	padding-left: min(5vw, 1rem);
	font-weight: 500;
	font-size: 1.6em;
	line-height: 1;
}
.site_name_pc_in{
	font-size: .6em;
	padding-left: .15em;
}
.site_name{
	padding-top: 1.5em;
	padding-left: min(5vw, 1rem);
	font-weight: 500;
	font-size: min(3.6vw, 1.15em);
	line-height: 1.4;
}
.site_name_in{
	font-size: .8em;
	padding-left: .15em;
}
#main{
	background-color: #f9f8f3;
}
.fv_wrap{
	position: relative;
	height: max(100svh, 150vw);
	background: url("img/lp-head.png") top right / 100% no-repeat,
		url("img/lp-catchphrase.png") top 10vh left / 70% no-repeat;
}
.catchphrase{
	position: absolute;
	top: calc(34% - 2em);
/*	margin-top: min(26vw, 5em);*/
	padding-left: min(5vw, 1rem);
	font-weight: 700;
	font-size: min(6.5vw, 9vh);
	line-height: 1.6;
/*	transform: translateY(-50%);*/
}
.main_visual{
	position: absolute;
	bottom: .5em;
/*	margin-top: min(20vw, 4.6em);*/
}
.conversion_wrap{
	position: fixed;
	bottom: 0;
	display: none;
	width: 100%;
	padding: 0 min(3vw, 1em);
	line-height: 1.4;
	background-color: #fff;
	z-index: 10;
	font-size: min(4vw, 1em);
}
@media screen and (max-width: 767px){
	.catch_visual{
		margin-top: 3em;
	}
	.conversion_wrap{
		box-shadow: 0 0 10px rgba(0,0,0,.1);
	}
}
.conversion_inner{
	display: flex;
	align-items: center;
	justify-content: center;
	height: 80px;
}
.conversion_text{
	font-size: 1.05em;
	font-weight: 700;
}
.conversion_time{
	font-size: .75em;
}
.conversion_button{
	position: relative;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	margin-left: 1em;
	padding: 0 1.25em 0 calc(min(10vw, 36px) + .75em);
	height: 44px;
	text-decoration: none;
	font-size: 1.1em;
	font-weight: 700;
	color: #C44500;
	background-color: #F5D7AA;
	border-radius: 22px;
}
.conversion_button::before{
	position: absolute;
	top: 50%;
	left: 4px;
	content: "";
	height: min(10vw, 36px);
	width: min(10vw, 36px);
	border-radius: 18px;
	background: url("img/lp-icon-phone.png") center / min(5vw, 16px) no-repeat, #fff;
	transform: translateY(-50%);
}
@media print, screen and (min-width: 768px){
	.site_name{
		font-size: .85em;
	}
	#main{
		margin-left: 400px;
	}
	.container_frame{
/*		position: fixed;
		top: 40px;
		right: 0;
		margin-right: calc(50% - 400px);
		width: 400px;
		height: calc(100svh - 80px);
		box-shadow: 0 0 0 1px #FFCF88;
		z-index: 100;*/
		display: flex;
		height: 100%;
		margin-right: calc(50% - 400px);
		width: 400px;
	}
	#container_frame_top,
	#container_frame_bottom{
		position: fixed;
		width: 402px;
		right: calc(50% - 401px);
		z-index: 100;
	}
	#container_frame_top{
		top: 0;
	}
	#container_frame_bottom{
		bottom: 0;
	}
	.st0 {
		fill: none;
		stroke: #ffcf88;
		stroke-miterlimit: 10;
	}
	.st1 {
		fill: #f9f8f3;
	}
	.container_navi{
	}
	.container_body{
		padding-top: 40px;
		width: 400px;
		margin-left: auto;
		margin-right: auto;
		box-shadow: 0 0 0 1px #FFCF88;
	}
	.fv_wrap{
		height: calc(100vh - 80px);
	}
	.catchphrase{
		font-size: min(7vw, 1.75em);
	}
	.main_visual{
		bottom: 90px;
	}
	.conversion_wrap{
		top: calc(100svh - 120px);
		width: 400px;
	}
}

/* アニメーション */
.display_event:has(.event) .event,
.scroll_event:has(.event) .event{
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 2s, transform 1.5s;
}
.display_event:has(.event) .event.on,
.scroll_event:has(.event) .event.on{
	opacity: 1;
	transform: translateY(0);
}
span.event{
	display: inline-block;
}

/* できたよ　弾けたよ */
.catch_visual{
	display: block;
	text-align: right;
}
.catch_visual_img{
	max-width: 90%;
	border-top-left-radius: 10px;
}
.catch_wrap{
	position: relative;
	width: 90%;
	margin-top: -3em;
	padding: 2em min(5vw, 1.5em);
	background-color: #FFF2F0;
	border-top-right-radius: 10px;
	border-bottom-right-radius: 10px;
}
.container_catch_title{
	text-align: center;
	font-size: min(6.8vw, 1.25em);
}

/* 共通 */
.characteristic_wrap,
.courses_wrap,
.voices_wrap,
.faq_wrap,
.contact_wrap{
	position: relative;
	padding-top: min(28vw, 7em);
	padding-left: min(5vw, 1em);
	padding-right: min(5vw, 1em);
}
.contents_title{
	margin-bottom: 2em;
	text-align: center;
	font-weight: 700;
	font-size: min(6.8vw, 1.4em);
	line-height: 1.4;
}
.contents_title_in{
	display: inline-block;
	margin-top: .25em;
	padding: 0 .25em;
	background: url("img/lp-title.png") center / 220px no-repeat;
}
.courses_wrap .contents_title,
.contact_wrap .contents_title{
	margin-bottom: 1em;
}

/* なぜ選ばれるの？ */
.characteristic_wrap{
	padding-left: min(5vw, 1em);
	padding-right: min(5vw, 1em);
	background: url("img/lp-bg-characteristic.png") top 2em left / 46% no-repeat;
	z-index: 2;
}
.characteristic_item{
	margin-top: 1em;
	padding: 2em min(5vw, 1em);
	background-color: #fff;
	border-radius: 10px;
	box-shadow: 0 0 10px rgba(0,0,0,.1);
}
.characteristic_item_point{
	color: #555;
}
.characteristic_item_title{
	margin-top: .75em;
	margin-bottom: .5em;
	line-height: 1.4;
	font-size: 1.1em;
}

/* レッスンの内容と料金 */
.courses_wrap{
/*	background: url("img/lp-bg-courses.png") top right / 46% no-repeat;*/
	z-index: 1;
}
.courses_wrap::after{
	position: absolute;
	top: -3.5em;
	left: 0;
	content: "";
	width: 100%;
	height: 400px;
	background: url("img/lp-bg-courses.png") top right / 46% no-repeat;
	z-index: -1;
}
.courses_item_title{
	position: relative;
	margin-top: 1em;
	padding: 1.25em 2em;
	cursor: pointer;
}
.courses_item_title::before{
	position: absolute;
	top: 8px;
	left: 8px;
	content: "";
	width: calc(100% - 18px);
	height: calc(100% - 18px);
	border-width: 1px;
	border-style: solid;
}
.courses_item.item_piano .courses_item_title{
	background: url("img/lp-courses-button-piano.png") repeat;
}
.courses_item.item_violin .courses_item_title{
	background: url("img/lp-courses-button-violin.png") repeat;
}
.courses_item.item_rhythmic .courses_item_title{
	background: url("img/lp-courses-button-rhythmic.png") repeat;
}
.courses_item.item_vocal .courses_item_title{
	background: url("img/lp-courses-button-vocal.png") repeat;
}
.courses_item.item_sing .courses_item_title{
	background: url("img/lp-courses-button-sing.png") repeat;
}

.courses_item.item_piano .courses_item_title::before{
	border-color: #f4b4d0;
}
.courses_item.item_violin .courses_item_title::before{
	border-color: #a5d4ad;
}
.courses_item.item_rhythmic .courses_item_title::before{
	border-color: #9fd9f6;
}
.courses_item.item_vocal .courses_item_title::before{
	border-color: #ECE283;
}
.courses_item.item_sing .courses_item_title::before{
	border-color: #f5b090;
}
.courses_item_title::after{
	position: absolute;
	top: calc(50% - 13px);
	right: 1.75em;
	content: "\FF0B";
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	color: #fff;
	background-color: #444;
	border-radius: 13px;
}
.courses_item.more_open .courses_item_title::after{
	content: "\FF0D";
}
.courses_item_box{
	display: none;
	background-color: #fff;
/*	box-shadow: 5px 5px 8px rgba(0,0,0,.075);*/
	box-shadow: 0 0 10px rgba(0, 0, 0, .1);
}
.courses_item_close{
	margin: 2em auto;
	padding: .25em 0;
	width: 8em;
	text-align: center;
	font-size: .85em;
	background-color: #eee;
	border-radius: 5px;
	cursor: pointer;
	transform: translateY(-2em);
}
.courses_item_inner{
	padding: 1.5em min(5vw, 1em);
}
.courses_item_inner_title{
	display: flex;
	align-items: center;
}
.courses_item_inner_title::after{
	flex: 1 1 auto;
	content: "";
	display: block;
	height: 1px;
	transform: translateX(min(5vw, 1em));
}
.courses_item hr{
	height: 0;
	margin: 1em 0;
	padding: 0;
	border: 0;
	border-top: 1px solid;
}
.courses_item.item_piano .courses_color_bg{
	background-color: #fdeef4;
}
.courses_item.item_piano .courses_item_inner_title::after{
	background-color: #f4b4d0;
}
.courses_item.item_piano hr{
	border-color: #f4b4d0;
}

.courses_item.item_violin .courses_color_bg{
	background-color: #eaf5ec;
}
.courses_item.item_violin .courses_item_inner_title::after{
	background-color: #a5d4ad;
}
.courses_item.item_violin hr{
	border-color: #a5d4ad;
}

.courses_item.item_rhythmic .courses_color_bg{
	background-color: #ecf7fd;
}
.courses_item.item_rhythmic .courses_item_inner_title::after{
	background-color: #9fd9f6;
}
.courses_item.item_rhythmic hr{
	border-color: #9fd9f6;
}

.courses_item.item_vocal .courses_color_bg{
	background-color: #fffee8;
}
.courses_item.item_vocal .courses_item_inner_title::after{
	background-color: #ECE283;
}
.courses_item.item_vocal hr{
	border-color: #ECE283;
}

.courses_item.item_sing .courses_color_bg{
	background-color: #fdefe9;
}
.courses_item.item_sing .courses_item_inner_title::after{
	background-color: #f5b090;
}
.courses_item.item_sing hr{
	border-color: #f5b090;
}

.courses_table{
	width: 100%;
	line-height: 1.4;
}
.courses_table th,
.courses_table td{
	padding: .75em .5em;
	vertical-align: middle;
	border: 1px solid #8f5b22;
}
.courses_table th{
	text-align: center;
	font-weight: 400;
	color: #fff;
	background-color: #b09271;
}
.courses_table_price{
	color: #ce6452;
	background-color: #ffe9dd;
}
.note{
	font-size: .75em;
	color: #A7001F;
}

/* お客様からいただいた声 */
.voices_wrap{
	background: url("img/lp-bg-voices.png") top 1em left / 46% no-repeat;
}
.voices_item{
	margin-top: 1em;
	padding: 2em min(5vw, 1em);
	background-color: #fff;
	border-radius: 10px;
	box-shadow: 0 0 10px rgba(0,0,0,.1);
}
.marker{
	background-color: #d3edfb;
}

/* よくあるご質問 */
.faq_wrap{
	background: url("img/lp-bg-faq.png") top right / 46% no-repeat;
}
.faq_cat_list{
	margin-bottom: 1em;
	display: flex;
	justify-content: space-between;
}
.faq_cat_list_item{
	flex: 0 0 30%;
	line-height: 1.2;
	padding: .5em 0;
	color: #fff;
	background-color: #797979;
	border-radius: 10px;
	cursor: pointer;
}
.faq_cat_list_item_small{
	display: block;
	font-size: .75em;
}
.faq_cat_list_item.active{
	position: relative;
	background-color: #997144;
}
.faq_cat_list_item.active::after{
	position: absolute;
	top: calc(100% - 1px);
	left: calc(50% - 7px);
	content: "";
	border-style: solid;
	border-width: 10px 7px 0 7px;
	border-color: #997144 transparent transparent transparent;
}
.faq_item{
	display: none;
	padding: 2em min(5vw, 1em) 0;
	background-color: #fff;
	border-radius: 10px;
	box-shadow: 0 0 10px rgba(0, 0, 0, .1);
}
.faq_item.active{
	display: block;
}
.faq_item.active dt,
.faq_item.active dd{
	animation: faqActive .8s;
}
@keyframes faqActive {
	0% {
		transform: translateY(20px);
		opacity: 0;
	}
	20% {
		opacity: .1;
	}
	100% {
		transform: translateY(0);
		opacity: 1;
	}
}
.faq_item_title{
	position: relative;
	padding-left: 1.5em;
	padding-bottom: .25em;
	line-height: 1.4;
	border-bottom: 1px solid;
}
.faq_item_title::before{
	position: absolute;
	top: 0;
	left: 0;
	content: "Q.";
}
.faq_item_text{
	padding-bottom: 2em;
}

/* 体験レッスン申込 */
.contact_wrap{
	background: url("img/lp-bg-contact.png") top left / 46% no-repeat;
}
.contact_copypaste_wrap{
	background-color: #fff;
	padding: min(5vw, 1em);
}
.contact_copy_button{
	font-size: 1rem;
}
/*.contact_placeholder{
	opacity: .5;
}*/
.contact_placeholder::after{
	content: attr(title);
	opacity: .5;
}

/* footer */
.container_footer{
    padding: 2em min(5vw, 1em);
	color: #fff;
	background-color: #222;
}
.opening_hours{
	margin: 1em 1em .25em;
	padding-bottom: .75em;
	border-bottom: 1px solid;
}
.contact_table td{
	padding: .5em 1em 0;
}

#footer{
    padding: 2em min(5vw, 1em) calc(2em + 80px);
}
@media print, screen and (min-width: 768px){
	#footer{
		padding-bottom: calc(2em + 120px);
	}
}
