@charset "utf-8";

@media screen and (min-width: 768px) {
	.pc_none{
		display: none!important;
	}
}
@media screen and (max-width: 767px) {
	.sp_none{
		display: none!important;
	}

}

/*--------------------------------------------------------
★レスポンシブ■コンテンツ部分
--------------------------------------------------------*/
@media screen and (max-width: 767px) {
	body {
		min-width: 320px;
	}
	a[href*="tel:"] {
		pointer-events: auto;
		cursor: pointer;
	}
	.section_title_en {
		font-size: 3rem;
	}
	.section_title_en span::before, .section_title_en span::after {
		width: 40px;
		height: 16px;
	}
	.section_title_en span::before {
		left: -40px;
	}
	.section_title_en span::after {
		right: -55px;
	}
	.section_title_ja {
		font-size: 2.6rem;
	}
	/* Header
	------------------------------ */
	.header_inner {
		height: 60px;
		border-top: none;
		border-bottom: 2px solid #C4B16D;
		padding: 0;
	}
	.header_inner.is_active {
		box-shadow: 2px 2px 3px #d8d8d8;
	}
	.header_logo_sp {
		width: 57px;
		margin-right: 10px;
	}
	.header_title_sp {
		margin-right: 0;
	}
	.header_action {
		display: none;
	}
	.hamburger_open {
		width: 60px;
		height: 57px;
	}
	.hamburger_title {
		font-size: 1.2rem;
		padding-top: 40px;
	}
	.hamburger_bar {
		width: 25px;
		height: 2px;
	}
	.hamburger_bar:nth-of-type(1) {
		top: 14px;
	}
	.hamburger_bar:nth-of-type(2) {
		top: 22px;
	}
	.hamburger_bar:nth-of-type(3) {
		top: 30px;
	}
	main {
		margin-top: 60px;
	}

	/* main_view
	------------------------------ */
	.main_view_inner {
		border-top: none;
	}

	/* concept
	------------------------------ */
	.concept_inner {
		padding: 50px 0 0;
	}
	.concept_wrapper {
		display: block;
		margin-top: 30px;
	}
	.concept_img {
		max-width: 100%;
		margin-right: 0;
	}
	.concept_content {
		max-width: 100%;
		margin-top: 20px;
	}
	.concept_content_text {
		margin-top: 20px;
	}
	.concept_content_text p + p {
		margin-top: 10px;
	}
	.concept_icon {
		max-width: 150px;
		margin-top: 10px;
	}

	/* features
	------------------------------ */
	.features_inner {
		padding: 50px 0;
	}
	.features_cards {
		display: block;
		margin-top: 30px;
	}
	.features_card {
		width: 100%;
		margin-right: 0;
	}
	.features_card:nth-of-type(n + 2) {
		margin-top: 30px;
	}
	.features_card_title {
		margin-top: 15px;
	}
	.features_card_text {
		margin-top: 10px;
	}

	/* price
	------------------------------ */
	.price_inner {
		padding: 50px 0;
	}
	.price_text {
		margin-top: 20px;
	}
	.price_member {
		margin-top: 20px;
	}
	.price_member_table table {
		width: 700px;
		margin-top: 10px;
	}
	.price_member_table th {
		padding: 10px 15px;
	}
	.price_member_table td {
		padding: 10px 15px;
	}
	.price_items {
		margin-top: 30px;
	}
	.price_item:nth-of-type(n + 2) {
		margin-top: 30px;
	}
	.price_item_head {
		display: block;
	}
	.price_subtext {
		margin-top: 10px;
		margin-left: 0;
	}
	.price_item_visitor_figure {
		padding: 10px 15px;
		margin-top: 10px;
	}
	/* .price_item_visitor_figure dl {
		display: block;
	}
	.price_item_visitor_figure dt {
		max-width: 100%;
		text-align: center;
		padding: 10px 15px;
	}
	.price_item_visitor_figure dd {
		width: 100%;
		padding: 10px 15px;
	} */
	.price_item_personal_figure {
		margin-top: 10px;
	}
	.price_item_personal_figure dl {
		display: block;
	}
	.price_item_personal_figure dt {
		max-width: 100%;
		text-align: center;
		padding: 10px 15px;
	}
	.price_item_personal_figure dd {
		width: 100%;
		text-align: center;
		padding: 10px 15px;
	}
	.price_item_lessons_figure {
		padding: 10px 15px;
		margin-top: 10px;
	}
	.price_item_rental_figure dl {
		display: block;
	}
	.price_item_rental_figure {
		margin-top: 10px;
	}
	.price_item_rental_figure dt {
		max-width: 100%;
		padding: 10px 15px;
	}
	.price_item_rental_figure dd {
		width: 100%;
		padding: 10px 15px;
	}
	.price_food {
		padding: 20px 30px;
		margin-top: 20px;
		background-size: 25px;
	}
	.price_food_list {
		font-size: 1.7rem;
		padding-left: 15px;
	}
	.price_food_list::before {
		width: 10px;
		height: 10px;
	}

	/* access
	------------------------------ */
	.access_inner {
		padding: 50px 0;
	}
	.access_wrapper {
		display: block;
		padding-bottom: 30px;
		margin-top: 30px;
	}
	.access_content {
		max-width: 100%;
		margin-top: 20px;
	}
	.access_traffic {
		padding: 10px 15px;
		margin-top: 20px;
	}
	.access_facility {
		margin-top: 30px;
	}
	.access_facility_cards {
		display: block;
	}
	.access_facility_card {
		width: 100%;
	}
	.access_facility_card:nth-of-type(n + 2) {
		margin-top: 30px;
	}
	.access_facility_card:not(:nth-of-type(3n)) {
		margin-right: 0;
	}
	.access_facility_card_title {
		font-size: 1.8rem;
		padding-bottom: 5px;
		margin-top: 5px;
	}
	.access_facility_card_info {
		margin-top: 10px;
	}
	.access_facility_card_text {
		margin-top: 5px;
	}

	/* faq
	------------------------------ */
	.faq_inner {
		padding: 50px 0;
	}
	.faq_wrapper {
		display: block;
		margin-top: 30px;
	}
	.faq_img {
		max-width: 100%;
		margin-right: 0;
	}
	.faq_lists {
		margin-top: 20px;
	}
	.faq_list {
		padding: 0 15px;
	}
	.faq_list dt {
		font-size: 1.7rem;
		padding: 10px 15px 10px 40px;
	}
	.faq_list dt::before {
		width: 28px;
		height: 27px;
		top: 9px;
	}
	.faq_list dd {
		padding: 10px 15px 10px 40px;
	}
	.faq_list dd::before {
		width: 28px;
		height: 26px;
		top: 17px;
	}

	/* footer
	------------------------------ */
	.footer_top_inner {
		padding: 50px 0;
	}
	.footer_message {
		font-size: 2rem;
	}
	.footer_tel {
		max-width: 220px;
		margin: 20px auto 0;
	}
	.footer_time {
		font-size: 1.8rem;
		margin-top: 20px;
	}
	.footer_bottom_inner {
		padding: 50px 0 190px;
		background: #1D591D url(../images/footer_bottom_bg_sp.png) repeat-x center bottom / contain;
	}
	.footer_wrapper {
		display: block;
	}
	.footer_left {
		display: block;
		margin-right: 0;
	}
	.footer_logo {
		margin-right: 0;
	}
	.footer_content {
		margin-top: 20px;
	}
	.footer_right {
		margin-top: 20px;
	}
	.copyright {
		font-size: 1.2rem;
		text-align: center;
		margin-top: 30px;
	}
	.footer_food {
		display: block;
		width: 100%;
		left: 0;
		bottom: 0;
	}
	.footer_food.footer_fixed {
		position: fixed;
	}
	.footer_food_link {
		display: block;
		font-weight: 700;
		color: #fff;
		background: #1D591E;
		text-align: center;
		padding: 30px 0 40px;
		box-shadow: 0 -3px 10px #fff;
	}
	.footer_food_link span {
		position: relative;
		display: inline-block;
		transform: translateX(15px);
	}
	.footer_food_link span::before {
		position: absolute;
		content: "";
		width: 20px;
		height: 26px;
		left: -30px;
		top: 50%;
		transform: translateY(-50%);
		background: url(../images/icon_tel.svg) no-repeat center center / contain;
	}
	
	/* Page Top
	------------------------------ */
	.pagetop{
		position: fixed;
		-webkit-transition: all .4s;
		-moz-transition: all .4s;
		-ms-transition: all .4s;
		-o-transition: all .4s;
		transition: all .4s;
		opacity: 0;
		z-index: 10;
		box-sizing: border-box;
	}
	.pagetop.show{
		opacity: 1;
		bottom: 120px;
		right: 5%;
		width: 54px;
		height: 54px;
	}
	.pagetop span{
		position: relative;
		display: block;
		font-size: 0;
		line-height: 0;
	}
	.pagetop::before{
		content: "";
		position: absolute;
		width: 20px;
		height: 20px;
		transform: rotate(45deg);
		background: none;
		left: 0;
		right: 0;
		margin: 0 auto;
		top: 21px;
		transition: .25s;
	}
	.pagetop:hover::before{
		width: 20px;
	}
}

