@charset "UTF-8";

/* 共通 */
html.body {
	overflow-x: hidden;
}

body {
	font-family: "Zen Maru Gothic", "禅丸ゴシック", "Noto Sans JP";
	font-size: 1rem;
	font-weight: normal;
	letter-spacing: 0.04em;
	color: #473B3B;
}

ul,
li {
	list-style-type: none;
}

a {
	text-decoration: none;
}

h2 {
	font-size: 1.875rem;
}

.button1 {
	background-color: #DDFAFF;
	color: #473B3B;
	border-radius: 50vw;
	border: 2px solid #BCE6ED;
	box-shadow: 0px 2px 0px 0px #BCE6ED;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	transition: .4s cubic-bezier(0.37, 0, 0.63, 1);
}

.button1:hover {
	transform: translateY(4px);
	box-shadow: none;
	background-color: #fff;
	letter-spacing: 0.15em;
}

.shape {
	display: block;
	position: absolute;
}



/*===============================================
PC : 画面の横幅が769px以上
=================================================*/
#concept,
#point,
#course,
#faq,
#access {
	margin: 0 auto;
	max-width: 1200px;
}

.concept-inner,
.point-inner,
.course-inner,
.contact-inner,
.faq-inner,
.access-inner {
	padding: 100px 0;
}

.pc-header .pc-only {
	display: block;
}

.sp-header,
.sp-only,
.sp-footer {
	display: none;
}

/* ヘッダー */
#header {
	background-color: #FFF7FA;
	z-index: 999;
	position: fixed;
	width: 100%;
}

.header-inner {
	display: flex;
	justify-content: space-between;
	padding: 20px 0;
	margin: 0 60px;
}

.logo {
	height: 56px;
}

.header-nav-wrap {
	display: flex;
	gap: 50px;
	align-items: center;
}

.pc-nav-list {
	display: flex;
	gap: 50px;
}

.pc-nav-list a {
	color: #473B3B;
}

.pc-nav-list a:hover {
	color: #F17B8F;
}

.header-button {
	min-height: 48px;
	width: 160px;
}

/* MV */
#mainvisual {
	background-image: url(../images/MVpic.png);
	background-repeat: no-repeat;
	background-size: cover;
	height: 100vh;
	max-height: 720px;
	position: relative;
}

.mainvisual-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 60px;
	position: absolute;
	top: 50px;
	right: 10%;
	bottom: 0;
	justify-content: center;
}

.mv-logo-pic {
	height: 130px;
}

.mv-button {
	font-size: 1.875rem;
	font-weight: bold;
	min-height: 72px;
	width: 300px;
	box-shadow: 0px 4px 0px 0px #BCE6ED;
}

/* コンセプト */
#concept {
	position: relative;
}

.shape1 {
	top: 1rem;
}

.shape2 {
	right: -2rem;
	top: 12rem;
}

.concept-inner {
	text-align: center;
}

.concept-title {
	color: #F17B8F;
	margin-bottom: 46px;
}

.text01,
.text02 {
	padding-bottom: 32px;
}

/* ポイント */
.point-title-wrap {
	text-align: center;
	margin-bottom: 80px;
}

.point-title,
.course-title,
.faq-title {
	color: #F17B8F;
	padding-bottom: 10px;
}

.point-main-wrap {
	background-color: #fff7fa;
	border-radius: 50px;
	padding: 60px 0;
}

.point1,
.point3 {
	display: flex;
	align-items: center;
	gap: 48px;
	padding: 0 80px;
}

.point2 {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: 48px;
	padding: 0 80px;
}

.point1,
.point2 {
	padding-bottom: 60px;
}

.pointpic {
	box-shadow: 1px 2px 3px 1px #473b3b33;
	border-radius: 20px;
}

.point-number {
	color: #F17B8F;
	font-size: 20px;
	padding-bottom: 20px;
}

.point-main-title {
	font-size: 24px;
	padding-bottom: 6px;
}

/* コース */
.course-title-wrap {
	text-align: center;
	margin-bottom: 80px;
}

.course-main-wrap {
	display: flex;
	justify-content: center;
	gap: 70px;
}

.course1,
.course2,
.course3 {
	text-align: center;
}

.coursepic {
	padding-bottom: 30px;
}

.course-name {
	font-size: 1.5rem;
	color: #F17B8F;
}

.price {
	font-size: 1.7rem;
	padding-bottom: 10px;
}

.course-text {
	text-align: justify;
	padding-bottom: 30px;
}

.button2 {
	background-color: #FFF7FA;
	color: #473B3B;
	border-radius: 50vw;
	border: 2px solid #F17B8F;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	min-height: 48px;
	width: 300px;
	margin: 0 auto;
	transition-duration: .5s;
}

.button2:hover {
	transform: scale(1.05);
}

/* 予約 */
#contact {
	position: relative;
	background-color: #fff7fa;
}

.shape3 {
	top: 0;
	left: 2rem;
}

.shape4 {
	top: 6rem;
	right: 2rem;
}

.contact-inner {
	text-align: center;
}

.contact-text {
	margin-bottom: 60px
}

.contact-button {
	font-size: 1.875rem;
	font-weight: bold;
	min-height: 100px;
	width: 500px;
	box-shadow: 0px 4px 0px 0px #BCE6ED;
	margin: 0 auto;
}

/* 質問 */
.faq-title-wrap {
	text-align: center;
	margin-bottom: 80px;
}

.faq1,
.faq2 {
	margin-bottom: 60px;
}

details {
	background-color: #FFE1DE;
	border-radius: 20px;
	padding: 32px;
}

summary {
	display: grid;
	grid-template-columns: 1fr 24px;
	align-items: center;
	cursor: pointer;
}

.icon {
	display: block;
	position: relative;
	width: 24px;
	transform-origin: center 43%;
	transition: .5s;

	&::before,
	&::after {
		content: "";
		position: absolute;
		display: block;
		width: 14px;
		height: 1px;
		background-color: #473B3B;
	}

	&::before {
		left: 0;
		transform: rotate(45deg);
	}

	&::after {
		right: 0;
		transform: rotate(-45deg);
	}
}

details[open] .icon {
	transform: rotate(180deg);
}

.answer {
	padding-top: 32px;
}

/* アクセス */
.access-title {
	color: #F17B8F;
	text-align: center;
	margin-bottom: 80px;
}

.access-main-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
}

.access-map iframe {
	width: 100%;
	height: 100%;
	display: block;
	border: 0;
}

.access-map {
	height: 344px;
	width: 50%;
}

.access-address,
.access-transport,
.access-opentime {
	padding-bottom: 30px;
}

.button3 {
	background-color: #fff;
	color: #473B3B;
	border-radius: 50vw;
	border: 2px solid #BCE6ED;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	min-height: 48px;
	width: 192px;
	transition-duration: .5s;
}

.button3:hover {
	transform: scale(1.05);
}

/* フッター */
#footer {
	background-color: #FFF7FA;
}

.footer-inner {
	padding: 40px 0;
	max-width: 1200px;
	margin: 0 auto;
}

.footer-info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 30px;
}

.footer-logo {
	height: 40px;
}

.footer-nav-list {
	display: flex;
	gap: 60px;
}

.footer-nav-list a {
	color: #473B3B;
}

.footer-nav-list a:hover {
	opacity: 0.7;
}

.footer-button {
	min-height: 48px;
	width: 160px;
}

.footer-text {
	text-align: center;
}

/*ここからメディアクエリで各デバイスサイズに書き分けます
CSSは上から下に継承されるので、変化させたいところだけ書けばOK*/

/*================================================
Tablet : 画面の横幅が1200pxまで
==================================================*/
@media screen and (max-width: 1200px) {
	.pc-header {
		display: none;
	}

	.sp-header {
		display: block;
	}

	#concept,
	#point,
	#course,
	#faq,
	#access {
		max-width: 864px;
	}

	.header-inner {
		text-align: center;
		justify-content: space-evenly;
		gap: 80px;
		padding: 10px 0;
	}

	.logo {
		height: 40px;
	}

	.sp-nav-button {
		position: absolute;
		width: 50px;
		height: 50px;
		cursor: pointer;
		right: 54px;
	}

	.sp-nav-button span {
		display: block;
		position: absolute;
		left: 14px;
		width: 24px;
		height: 1px;
		background-color: #473B3B;
		border-radius: 4px;
		transition: .35s ease-in-out;
	}

	.sp-nav-button span:nth-of-type(1) {
		top: 16px;
	}

	.sp-nav-button span:nth-of-type(2) {
		top: 24px;
	}

	.sp-nav-button span:nth-of-type(3) {
		top: 33px;
	}

	.sp-nav-button.active span:nth-of-type(1) {
		top: 24px;
		transform: rotate(-45deg);
	}

	.sp-nav-button.active span:nth-of-type(2) {
		display: none;
	}

	.sp-nav-button.active span:nth-of-type(3) {
		top: 24px;
		transform: rotate(45deg);
	}

	.sp-nav {
		display: none;
		width: 40%;
		height: 100vh;
		right: 0;
		text-align: center;
		background-color: #FFF7FA;
		position: fixed;
		z-index: 99;
		margin-top: 64px;
		transform: translateX(100%);
		transition: .7s ease-in-out;
	}

	.sp-nav.active {
		transform: translateX(0);
		transition: .7s ease-in-out;
	}

	.sp-nav-list {
		display: flex;
		align-items: flex-start;
		flex-direction: column;
	}

	.sp-nav-list li {
		font-size: 14px;
		padding: 20px 0;
		margin-left: 40px;
	}

	.sp-nav-list a {
		display: inline-block;
		color: #473B3B;
		border-bottom: 1px splid #473B3B;
		position: relative;
	}

	.sp-nav-list a:hover {
		color: #F17B8F;
	}

	.sp-cta {
		position: fixed;
		bottom: 20px;
		right: 20px;
		z-index: 999;
	}

	.sp-cta-button {
		background-color: #DDFAFF;
		border: 1px solid #BCE6ED;
		color: #473B3B;
		width: 100px;
		height: 100px;
		border-radius: 50%;
		display: inline-block;
		position: relative;
		transition: .4s cubic-bezier(0.37, 0, 0.63, 1);
	}

	.sp-cta-button span {
		position: absolute;
		display: inline-block;
		left: 0;
		top: 50%;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		width: 100px;
		text-align: center;
		font-size: 14px;
		font-weight: bold;
		transition: .4s cubic-bezier(0.37, 0, 0.63, 1);
	}

	.sp-cta-button:hover {
		background-color: #fff;
	}

	.sp-cta-button span:hover {
		letter-spacing: 0.15em;
	}

	.shape1 {
		left: -3rem;
		height: 230px;
		top: 1rem;
	}

	.shape2 {
		right: -3rem;
		height: 230px;
		top: 16rem;
	}

	.course-main-wrap {
		gap: 58px;
	}

	.pointpic {
		width: 364px;
	}

	.course1,
	.course2,
	.course3,
	.coursepic,
	.button2 {
		width: 250px;
	}

	.shape3,
	.shape4 {
		width: 200px;
	}

	.shape4 {
		top: 8rem;
	}

	.footer-inner {
		max-width: 864px;
	}
}

/*================================================
Smartphone :  画面の横幅が768pxまで
=================================================*/
@media screen and (max-width:768px) {

	.sp-only,
	.sp-footer {
		display: block;
	}

	.pc-only,
	.pc-footer {
		display: none;
	}

	h2 {
		font-size: 22px;
	}

	p,
	.button2,
	.button3 {
		font-size: 14px;
		letter-spacing: 0.1em;
		line-height: 1.5;
	}

	#concept,
	#point,
	#course,
	#faq,
	#access {
		max-width: 600px;
	}

	.concept-inner,
	.point-inner,
	.course-inner,
	.contact-inner,
	.faq-inner,
	.access-inner {
		padding: 56px 0;
	}

	/* ヘッダー */
	.header-inner {
		margin: 0 40px;
	}

	.sp-nav-button {
		right: 30px;
	}

	/* MV */
	.mainvisual-inner {
		gap: 30px;
		left: 0;
		bottom: -210px;
		right: 0;
		margin: auto;
	}

	.mv-logo-pic {
		height: 80px;
	}

	.mv-button {
		font-size: 1.6rem;
	}

	/* コンセプト */
	.sp-shape1 {
		top: 6rem;
		left: 1rem;
	}

	.sp-shape2 {
		right: 1rem;
		top: 20rem;
	}

	.concept-title {
		font-size: 18px;
		margin-bottom: 24px;
	}

	.concept-text {
		font-size: 14px;
	}

	.text01,
	.text02 {
		padding-bottom: 20px;
	}

	/* ポイント */
	.point-title-wrap {
		margin-bottom: 48px;
	}

	.point-main-wrap {
		padding: 40px 0;
	}

	.point1,
	.point2,
	.point3 {
		flex-direction: column;
		gap: 10px;
		padding: 0 40px;
	}

	.point1,
	.point2 {
		padding-bottom: 48px;
	}

	.point-text-wrap {
		text-align: center;
	}

	.point-number {
		font-size: 14px;
		padding-bottom: 10px;
	}

	.point-main-title {
		font-size: 18px;
		padding-bottom: 4px;
	}

	.point-text {
		text-align: justify;
	}

	/* コース */
	.course-title-wrap {
		margin-bottom: 48px;
	}

	.course-main-wrap {
		flex-direction: column;
	}

	.course1,
	.course2,
	.course3 {
		width: auto;
	}

	.coursepic {
		padding-bottom: 10px;
	}

	.course-name {
		font-size: 18px;
	}

	.price {
		font-size: 1.5rem
	}

	.course-text {
		padding-bottom: 16px;
	}

	.button2 {
		width: 270px;
	}

	/* コンタクト */
	.sp-shape3 {
		transform: rotate(10deg);
		top: 0rem;
		left: 1rem;
	}

	.sp-shape4 {
		right: 10px;
		top: 10rem;
		transform: rotate(10deg);
	}

	.contact-text {
		margin-bottom: 30px;
	}

	.contact-button {
		font-size: 1.4rem;
		min-height: 72px;
		width: 340px;
	}

	/* 質問 */
	.faq-title-wrap {
		margin-bottom: 48px;
	}

	.faq1,
	.faq2 {
		margin-bottom: 30px;
	}

	details {
		padding: 20px;
	}

	summary {
		font-size: 14px;
	}

	.answer {
		padding-top: 20px;
		font-size: 14px;
	}

	/* アクセス */
	.access-title {
		margin-bottom: 48px;
	}

	.access-map {
		height: 220px;
		width: 90%;
	}

	.access-address,
	.access-transport,
	.access-opentime {
		padding-bottom: 14px;
	}

	.button3 {
		min-height: 42px;
	}


	/* フッター */
	.footer-inner {
		padding: 20px 0 60px 0;
		max-width: 600px;
	}

	.sp-footer-info {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		padding-bottom: 16px;
	}

	.sp-footer-logo {
		height: 32px;
		margin-bottom: 20px;
	}

	.sp-footer-nav-list a {
		font-size: 12px;
		color: #473B3B;
	}

	.sp-footer-button {
		min-height: 38px;
		width: 128px;
		font-size: 12px;
	}
}

@media screen and (max-width:425px) {
	.sp-cta-button {
		width: 80px;
		height: 80px;
	}

	.sp-cta-button span {
		width: 80px;
		font-size: 12px;
	}

	#concept,
	#point,
	#course,
	#faq,
	#access {
		margin: 0 20px;
	}

	.pointpic {
		width: 294px;
	}

	.access-main-wrap {
		flex-direction: column;
	}

	.footer-inner {
		margin: 0 30px
	}
}
