* {
	box-sizing: border-box;
}

html,
body {
	width: 100%;
	overflow-x: hidden;
	position: relative;
}

html {
	overflow-x: hidden;
	font-size: 62.5%;
}

body {
  background-color: #FFF4F4;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #434343;
  line-height: 2;
  letter-spacing: 1px;
  -webkit-overflow-scrolling: touch;
}

img {
	max-width: 100%;
	height: auto;
}

.en {
	font-family: "Josefin Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 200;
	font-style: normal;
}

a {
	color: #F88379;
	transition: 0.3s;
}

a img { transition: all 0.3s ease-in-out;}

p { margin-bottom: 2rem;}


/* --------------------------------------------------

背景

-------------------------------------------------- */

body::before {
	content: '';
	position: absolute;
	top: -2rem;
	left: 2rem;
	z-index: -1;
	display: block;
	width: 52rem;
	background: #FFE1A8 0% 0% no-repeat;
	border-radius: 50%;
	opacity: 0.32;
	filter: blur(50px);
	aspect-ratio: 1 / 1;
}

body::after {
	content: '';
	position: absolute;
	top: -5rem;
	right: -6rem;
	z-index: -1;
	display: block;
	width: 84rem;
	background: #A8F8FF 0% 0% no-repeat;
	border-radius: 50%;
	opacity: 0.18;
	filter: blur(50px);
	aspect-ratio: 1 / 1;
}

#visitor::before {
	content: '';
	position: absolute;
	bottom: -16rem;
	left: -6rem;
	z-index: -1;
	display: block;
	width: 86rem;
	background: #F8FFA8 0% 0% no-repeat;
	border-radius: 50%;
	opacity: 0.18;
	filter: blur(50px);
	aspect-ratio: 1 / 1;
}

#visitor::after {
	content: '';
	position: absolute;
	top: -5rem;
	left: 50%;
	z-index: -1;
	display: block;
	width: 52rem;
	background: #FFD4A8 0% 0% no-repeat;
	border-radius: 50%;
	opacity: 0.18;
	filter: blur(50px);
	aspect-ratio: 1 / 1;
	transform: translateX(50%);
}


/* --------------------------------------------------



-------------------------------------------------- */

.section {
	position: relative;
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.section__upper {
	position: absolute;
	top: 0;
	left: 50%;
	width: 100%;
	transform: translate(-50%,-100%);
}

.section__bottom {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 100%;
	transform: translate(-50%,100%);
}

.feature .section__bottom {
	background-color: #FFF4F4;
	transform: translate(-50%,4rem);
}

#outline.section {
	padding-top: 12rem;
}

.section__upper img,
.section__bottom img {
	display: block;
	width: 100vw;
	max-width: none;
	line-height: 1;
}

.section__bottom img {
	transform: scale(-1, -1);
}

.inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 2rem;
}


/* --------------------------------------------------

breadcrumbs

-------------------------------------------------- */

.breadcrumbs {
	padding: 4rem 0;
	font-size: 1.4rem;
	text-align: right;
}

.breadcrumbs a {
	color: #434343;
}

@media screen and (max-width: 767px) {

	.breadcrumbs {
		text-align: left;
	}

}


/* --------------------------------------------------

display

-------------------------------------------------- */

.d-none { display: none !important;}
.d-block { display: block !important;}

@media screen and (max-width: 767px) {

	.d-xs-none { display: none !important;}
	.d-xs-block { display: block !important;}

}


/* --------------------------------------------------

color

-------------------------------------------------- */

.text-primary { color: #F88379;}

.bg-primary { background-color: #F88379;}
.bg-white { background-color: #fff;}

.underline { background: linear-gradient(transparent 60%, #FFE0BA 0);}


/* --------------------------------------------------

border

-------------------------------------------------- */

.radius { border-radius: .8rem 4rem .8rem 4rem;}
.radius-4 { border-radius: 4rem;} 


/* --------------------------------------------------

btn

-------------------------------------------------- */

.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	width: 320px;
	max-width: 100%;
	padding: 2rem .4rem;
	background-color: #F88379;
	border: 1px solid #F88379;
	border-radius: .8rem;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	cursor: pointer;
	transition: 0.3s;
}

.btn-primary { background-color: #F88379;}
.btn-secondary { background-color: #FF8C00; border-color: #FF8C00;}

.btn:hover {
	background-color: #fff;
	color: #F88379;
}

.btn-secondary:hover {
	background-color: #fff;
	color: #FF8C00;
}

.btn-small {
	width: 180px;
	padding: 1.2rem .4rem;
}

.btn svg {
	width: 24px;
	height: auto;
	line-height: 1;
}

.key__btn-row .btn {
	justify-content: flex-start;
	padding-left: 2rem;
}

.btn:disabled {
	background-color: #434343;
	border-color: #434343;
	opacity: .2;
}

.btn:disabled:hover {
	color: #fff;
}

.btn-schedule svg {
	fill: currentColor;
}


/* --------------------------------------------------

header

-------------------------------------------------- */

.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.6rem;
}

.header__logo {
	font-size: 2rem;
	font-weight: 500;
}

.header__logo a {
	color: #434343;
}

.header__nav {
	display: flex;
	justify-content: flex-end;
	gap: 2.4rem;
}

.h-nav {
	display: flex;
	align-items: center;
	gap: 2.4rem;
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	font-weight: 500;
	list-style: none;
}

.h-nav li {
	margin: 0;
	padding: 0;
}

.h-nav a { color: #434343;}
.h-nav a:hover { color: #F88379;}

@media screen and (max-width: 960px) {

	.header__nav {
		display: none;
	}

}


/* --------------------------------------------------

key

-------------------------------------------------- */

.key {
	margin-bottom: 8rem;
	padding-top: 8rem;
	padding-bottom: 32rem;
	background: url(../images/common/key.png) no-repeat center bottom;
	background-size: 1740px auto;
}

.key__title {
	margin: 0 0 2rem;
	font-size: 5.2rem;
	font-weight: 700;
	line-height: 1.4;
}

.key__sub-title {
	margin: 0 0 2rem;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.6;
}

.key__sup {
	margin: 0 0 4rem;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.6;
}

.key__btn-row {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-bottom: 4rem;
}

.key__desc {
	font-size: 1.4rem;
	font-weight: 500;
}

.key__desc > :last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 767px) {

	.key {
		margin-bottom: 2rem;
		padding-top: 4rem;
		padding-bottom: 20rem;
		background: url(../images/common/key-sp.png) no-repeat center bottom;
		background-size: 90vw auto;
	}

	.key__title {
		font-size: 3.2rem;
		font-weight: 700;
	}

	.key__sub-title {
		font-size: 2rem;
	}

	.key__sup {
		font-size: 1.6rem;
	}

}


/* --------------------------------------------------

visitor

-------------------------------------------------- */

.visitor-problem-wrap {
	display: flex;
	justify-content: center;
}

.visitor-problem {
	position: relative;
}

.visitor-problem-photo01 {
	position: absolute;
	top: -2rem;
	left: -6rem;
	transform: translateX(-100%);
}

.visitor-problem-photo01 img {
	width: 148px;
	height: auto;
}

.visitor-problem-photo02 {
	position: absolute;
	bottom: 8rem;
	right: -6rem;
	transform: translateX(100%);
}

.visitor-problem-photo02 img {
	width: 128px;
	height: auto;
}

.visitor-problem:after {
	content: '';
	display: block;
	width: 100px;
	height: 24px;
	margin: 4rem auto;
	background-color: #F88379;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.visitor-problem-title {
	margin: 0 0 4rem;
	font-size: 4rem;
	font-weight: 800;
	line-height: 1.72;
	text-align: center;
}

.visitor-problem-text {
	display: flex;
	justify-content: center;
	font-size: 1.8rem;
}

.visitor-problem-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.visitor-problem-list li {
	position: relative;
	margin: 0;
	padding: 0 0 0 3.2rem;
}

.visitor-problem-list li + li {
	margin-top: .8rem;
}

.visitor-problem-list li::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 2.4rem;
	background: url(../images/common/check-circle.svg) no-repeat center center;
	background-size: contain;
	aspect-ratio: 1 / 1;
	transform: translateY(-50%);
}

.visitor-solution-wrap {
	display: flex;
	justify-content: center;
}

.visitor-solution {
	position: relative;
}

.visitor-problem-photo04 {
	position: absolute;
	bottom: 2rem;
	left: 0rem;
	width: 140px;
	transform: translateX(-100%);
}

.visitor-problem-photo05 {
	position: absolute;
	top: 8rem;
	right: 0rem;
	width: 200px;
	transform: translateX(100%);
}

.visitor-solution-title {
	margin: 0 0 4rem;
	font-size: 3.2rem;
	font-weight: 800;
	line-height: 1.5;
	text-align: center;
}

.visitor-solution-text {
	display: flex;
	justify-content: center;
	font-size: 1.8rem;
}

.visitor-solution-photo {
	width: 100%;
	margin-top: 3.2rem;
	text-align: center;
}

.visitor-solution-photo img {
	width: 100%;
	max-width: 320px;
	height: auto;
}

@media screen and (max-width: 767px) {

	.visitor-problem-title {
		margin-bottom: 2rem;
		font-size: 2.4rem;
		font-weight: 700;
	}

	.visitor-solution-title {
		margin-bottom: 2rem;
		font-size: 2.4rem;
		font-weight: 700;
	}

	.visitor-solution-text {
		text-align: center;
	}

	.visitor-solution-photo {
		margin-top: 0;
	}

	.visitor-solution-photo img {
		max-width: 50vw;
	}
	
	.visitor-problem-photo04 {
		left: -1rem;
		bottom: 8rem;
		z-index: -1;
		width: 100px;
		transform: translateX(0);
	}

	.visitor-problem-photo05 {
		right: -1rem;
		z-index: -1;
		width: 80px;
		transform: translateX(0);
	}

}


/* --------------------------------------------------

feature

-------------------------------------------------- */

.feature .inner {
	position: relative;
	margin-bottom: -10rem;
}

.feature-head {
	margin-bottom: 12rem;
}

.feature-title {
	margin: 0 0 1rem;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
}

.feature-sub-title {
	margin-bottom: 0;
	font-size: 2rem;
	font-weight: 500;
}

.feature-box {
	position: relative;
}

.feature-box--merit {
	margin-bottom: 16rem;
}

.feature-box--learning {
	position: absolute;
	top: 6rem;
	right: 16rem;
}

.feature-box--target {
	position: absolute;
	bottom: 6rem;
	right: 12rem;
}

.feature-box::before {
	content: '';
	position: absolute;
	z-index: -1;
	display: block;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
}

.feature-box--merit::before {
	top: 50%;
	left: -10rem;
	width: 36rem;
	background-color: rgba(248, 131, 121, 0.12);
	transform: translateY(-50%);
}

.feature-box--learning::before {
	top: 50%;
	left: 50%;
	width: 46rem;
	background-color: rgba(255, 140, 0, 0.12);
	transform: translate(-50%, -50%);
}

.feature-box--target::before {
	top: 50%;
	left: -6rem;
	width: 40rem;
	background-color: rgba(216, 255, 0, 0.12);
	transform: translateY(-50%);
}

.feature-box__title {
	margin: 0 0 1.2srem;
	font-size: 2rem;
	font-weight: 500;
	list-style: 1.4;
}

.feature-box__body > :last-child {
	margin-bottom: 0;
}

.feature-box__body-row {
	display: flex;
}

.feature-box__body-col {
	width: 50%;
}

.feature-box__body-col > :first-child {
	margin-top: 0;
}

.feature-box__body-col > :last-child {
	margin-bottom: 0;
}

.feature-photo {
	max-width: 100%;
	width: 36rem;
}

@media screen and (max-width: 767px) {

	.feature-head {
		margin-bottom: 2rem;
		text-align: center;
	}

	.feature-title {
		font-size: 3.2rem;
	}

	.feature-box {
		position: relative;
		inset: 0;
		margin-bottom: 4rem;
	}

	.feature-box--merit::before {
		top: 4rem;
		left: -4rem;
		width: 12rem;
		transform: translateY(0);
	}

	.feature-box--learning::before {
		width: 20rem;
		transform: translate(0, 0);
	}

	.feature-box--target::before {
		top: 50%;
		left: -4rem;
		width: 16rem;
		transform: translateY(0);
	}

	.feature-box__body-row {
		flex-direction: column;
	}

	.feature-box__body-col {
		width: 100%;
	}

	.feature-photo {
		width: 75vw;
		margin: 0 auto;
	}

}


/* --------------------------------------------------

outline

-------------------------------------------------- */

.outline-head-wrap {
	position: relative;
}

.outline-head-wrap::before {
	content: 'course';
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	display: block;
	font-family: "Josefin Sans", sans-serif;
	font-size: 29.2rem;
	font-weight: 200;
	color: #fff;
	line-height: 1;
	transform: translate(-50%,-50%);
}

.outline-head {
	position: relative;
	z-index: 2;
	text-align: center;
}

.outline-head__icon {
	margin-bottom: .8rem;
	text-align: center;
}

.outline-head__icon svg {
	width: 3.2rem;
	height: auto;
}

.outline-title {
	margin: 0 0 2rem;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
}

.outline-sub-title {
	position: relative;
	z-index: 2;
	margin-bottom: 3.2rem;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

.outline-sub-title strong {
	font-size: 3.2rem;
}

.outline-lead {
	display: flex;
	justify-content: center;
	margin-bottom: 6.8rem;
}

.outline-lead__unit {
	position: relative;
	width: 6.2rem;
	margin: 0 -1.2rem;
	aspect-ratio: 1 / 1;
}

.outline-lead__unit::before,
.outline-lead__unit::after {
	content: '';
	position: absolute;
	top: 50%;
	display: block;
	width: 100%;
	height: 1px;
	background-color: #707070;
}

.outline-lead__unit::before {
	transform: rotate(45deg);
}

.outline-lead__unit::after {
	transform: rotate(-45deg);
}

.outline-lead-box {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 240px;
	background-color: #fff;
	border-radius: 50%;
	text-align: center;
	aspect-ratio: 1 / 1;
}

.outline-lead-box dl {
	margin: 0;
	padding: 0;
}

.outline-lead-box dt {
	margin: 0 0 2.4rem;
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1;
}

.outline-lead-box dd {
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
}

.outline-row {
	display: flex;
	margin: 0 -1.5rem 2rem;
}

.outline-col {
	width: 33.33333333%;
	padding: 0 1.5rem;
}

.outline-card {
	position: relative;
	width: 100%;
	height: 100%;
	padding: 10.8rem 3.2rem 2rem;
	background-color: #fff;
}

.outline-card__title {
	position: absolute;
	top: -1.6rem;
	right: 2.4rem;
	margin: 0;
	padding: 2rem 1.6rem;
	background-color: #FFF4F4;
	border-top: 2px solid #F88379;
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 4px;
	writing-mode: vertical-rl;
	text-orientation: mixed;
}

.outline-card__sub-title {
	margin: 0 0 1.6rem;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.4;
}

.outline-card__body > :last-child {
	margin-bottom: 0;
}

.outline-footer {
	display: flex;
	justify-content: center;
}

@media screen and (max-width: 767px) {

	.outline-title {
		font-size: 3.2rem;
	}

	.outline-sub-title strong {
		font-size: 2.4rem;
	}

	.outline-lead {
		display: none;
	}

	.outline-row {
		flex-direction: column;
	}

	.outline-col {
		width: 100%;
	}

	.outline-col + .outline-col {
		margin-top: 4rem;
	}

	.outline-card {
		padding: 4rem 3.2rem 2rem;
	}

}


/* --------------------------------------------------

cta

-------------------------------------------------- */

#cta .inner {
	z-index: 3;
}

.cta-box-wrap {
	position: relative;
}

.cta-box-wrap::before {
	content: '';
	position: absolute;
	top: 1rem;
	bottom: -1rem;
	left: 1rem;
	right: -1rem;
	z-index: -1;
	display: block;
	background-color: #FF8C00;
	border-radius: .8rem 4rem .8rem 4rem;
}

.cta-box {
	display: block;
	padding: 7.2rem 2rem;
	background-color: #fff;
}

.cta-title {
	margin: 0 0 4rem;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.cta-sub-title {
	margin: 0 0 4rem;
	text-align: center;
}

.cta-box__btn {
	display: flex;
	justify-content: center;
	gap: 3.6rem;
}

@media screen and (max-width: 767px) {

	.cta-box {
		padding: 4rem 2rem;
	}

	.cta-title {
		margin: 0 0 4rem;
		font-size: 2.4rem;
	}

	.cta-box__btn {
		flex-direction: column;
		gap: 2rem;
	}

}


/* --------------------------------------------------

philosophy

-------------------------------------------------- */

.philosophy-box-wrap {
	position: relative;
	display: flex;
	justify-content: center;
}

.philosophy-box {
	position: relative;
}

.philosophy-box::before {
	content: 'philosophy';
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	display: block;
	font-family: "Josefin Sans", sans-serif;
	font-size: 29.2rem;
	font-weight: 200;
	color: #fff;
	line-height: 1;
	transform: translateY(-50%);
}

.philosophy-box__title {
	display: flex;
	align-items: center;
	gap: .8rem;
	margin: 0 0 2.4rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1;
}

.philosophy-box__title svg {
	width: 2.4rem;
	height: auto;
}

.philosophy-box__sub-title {
	margin: 0 0 1.6rem;
	font-size: 2.4rem;
	font-weight: 500;
}

.philosophy-box__body > :last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 767px) {

	.philosophy-box__sub-title {
		font-size: 2rem;
	}

}


/* --------------------------------------------------

greeting

-------------------------------------------------- */

#greeting {
	margin-bottom: -12rem;
	padding-bottom: 12rem;
}

.greeting-box {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
}

.greeting-box__photo {
	width: 37.5%;
}

.greeting-box__text {
	position: relative;
	width: 59.375%;
}

.greeting-box__text:before {
	content: 'greeting';
	position: absolute;
	top: 50%;
	right: 0;
	z-index: -1;
	display: block;
	font-family: "Josefin Sans", sans-serif;
	font-size: 29.2rem;
	font-weight: 200;
	color: #FFF4F4;
	line-height: 1;
	transform: translateY(-50%);
}


.greeting-box__title {
	display: flex;
	align-items: center;
	gap: .8rem;
	margin: 0 0 3.2rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1;
}

.greeting-box__title svg {
	width: 2.4rem;
	height: auto;
}

.greeting-box__message {
	margin-bottom: 1.6rem;
}

.greeting-box__name {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.4rem;
	margin: 0;
	padding: 0;
}

.greeting-box__name dt {
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
}

.greeting-box__name dd {
	margin: 0;
	padding: 0;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1;
}

@media screen and (max-width: 767px) {

	.greeting-box {
		flex-direction: column;
		gap: 3.2rem;
	}

	.greeting-box__photo {
		width: 50vw;
	}

	.greeting-box__text {
		width: 100%;
	}

	.greeting-box__title {
		justify-content: center;
	}

	.greeting-box__name dd {
		font-size: 1.8rem;
	}

}


/* --------------------------------------------------

teacher

-------------------------------------------------- */

#teacher.section {
	padding-top: 8rem;
}

.teacher-title-wrap {
	position: relative;
	margin: 0 0 5.2rem;
}

.teacher-title-wrap::after {
	content: 'instructor';
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
	display: block;
	font-family: "Josefin Sans", sans-serif;
	font-size: 29.2rem;
	font-weight: 200;
	color: #FFF4F4;
	line-height: 1;
	transform: translate(-50%,-50%);
}

.teacher-title {
	position: relative;
	z-index: 2;
	font-size: 2.4rem;
	font-weight: 500;
	text-align: center;
}


.teacher-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 -1.5rem -6rem;
}

.teacher-row + .teacher-row {
	margin-top: 8rem;
}

.teacher-col {
	width: 33.33333333%;
	margin-bottom: 6rem;
	padding: 0 2rem;
}

.teacher-box {
	width: 100%;
	max-width: 360px;
	margin: 0 auto;
}

.teacher-box > :last-child {
	margin-bottom: 0;
}

.teacher-box__photo {
	position: relative;
	width: 100%;
	max-width: 200px;
	margin: 0 auto 2rem;
}

.teacher-box--okazaki .teacher-box__photo,
.teacher-box--otani .teacher-box__photo {
	max-width: 240px;
}

.teacher-box__photo::before {
	content: '';
	position: absolute;
	z-index: -1;
	display: block;
	width: 100%;
	border-radius: .8rem 4rem .8rem 4rem;
}

.teacher-box--okazaki .teacher-box__photo::before {
	top: -2rem;
	bottom: 2rem;
	right: -2rem;
	background-color: #FFE0BA;
}

.teacher-box--otani .teacher-box__photo::before {
	top: -2rem;
	bottom: -2rem;
	right: -2rem;
	background-color: #FAFFDF;
}

.teacher-box--yamak .teacher-box__photo::before {
	top: -2rem;
	bottom: 0;
	right: -2rem;
	background-color: #FFE0BA;
}

.teacher-box--kawanaka .teacher-box__photo::before {
	top: 0;
	bottom: -2rem;
	right: -2rem;
	background-color: #E2F8F8;
}

.teacher-box--yasumoto .teacher-box__photo::before {
	top: -2rem;
	bottom: 0;
	left: -2rem;
	background-color: #FFE0BA;
}

.teacher-box--izumi .teacher-box__photo::before {
	top: 1rem;
	bottom: -2rem;
	right: -2rem;
	background-color: #FFE0BA;
}

.teacher-box--sasaki .teacher-box__photo::before {
	top: -1rem;
	bottom: -1rem;
	right: -2rem;
	background-color: #F5C6C6;
}


.teacher-box__name {
	margin: 0 0 .8rem;
	font-weight: 500;
	text-align: center;
	line-height: 1;
}

.teacher-box__post {
	margin: 0 0 2rem;
	font-size: 1.4rem;
	font-weight: 500;
	text-align: center;
	line-height: 1;
	color: #868686;
}

@media screen and (max-width: 767px) {

	.teacher-title {
		font-size: 2rem;
	}

	.teacher-row {
		flex-direction: column;
	}

	.teacher-row + .teacher-row {
		margin-top: 4rem;
	}

	.teacher-col {
		width: 100%;
		margin-bottom: 4rem;
	}

	.teacher-box__photo {
		max-width: 50vw;
	}

	.teacher-box--okazaki .teacher-box__photo,
	.teacher-box--otani .teacher-box__photo {
		max-width: 50vw;
	}

}


/* --------------------------------------------------

blog

-------------------------------------------------- */

.section-blog .inner {
	position: relative;
	padding-bottom: 4rem;
}

.section-blog .inner::before {
	content: '';
	position: absolute;
	top: 4rem;
	bottom: 0;
	left: 0;
	z-index: -1;
	display: block;
	width: 100vw;
	background-color: #F88379;
}

.section-blog .inner::after {
	content: '';
	position: absolute;
	top: 4rem;
	bottom: 0;
	left: -10rem;
	z-index: -1;
	display: block;
	width: 10rem;
	border-radius: 4rem 0 0 4rem;
	background-color: #F88379;
}

.blog-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.blog-head {
	width: 380px;
	padding-top: 4rem;
}

.blog-title {
	margin: 0 0 1.6rem;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.blog-sub-title {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 0;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1;
	color: #fff;
}

.blog-sub-title svg {
	width: 22px;
	height: auto;
}

.blog-body {
	width: calc(100% - 380px);
}

.blog-entry-row {
	display: flex;
	margin: 0 -3rem;
}

.blog-entry-col {
	width: 33.33333333%;
	padding: 0 3rem;
}

.blob-entry {
	overflow: hidden;
	display: block;
	background-color: #F88379;
	border-radius: .8rem 4rem 0 0;
	color: #fff;
	cursor: pointer;
}

.blob-entry__photo {
	overflow: hidden;
	margin-bottom: 1.6rem;
}

.blob-entry__photo img {
	display: block;
	max-width: none;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 12;
	object-fit: cover;
}

.blob-entry__title {
	margin: 0 0 .8rem;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6;
}

.blob-entry__date {
	margin-bottom: 0;
	font-size: 1.4rem;
}

a.blob-entry:hover img {
	transform: scale(1.1);
}

@media screen and (max-width: 767px) {

	.section-blog .inner {
		padding-bottom: 0;
	}

	.section-blog .inner::before {
		top: -4rem;
		bottom: -4rem;
	}

	.blog-row {
		flex-direction: column;
		gap: 2rem;
	}

	.blog-head {
		width: 100%;
		padding-top: 0;
	}

	.blog-title {
		font-size: 3.2rem;
		text-align: center;
	}

	.blog-sub-title {
		justify-content: center;
	}

	.blog-body {
		width: 100%;
	}

	.blog-entry-row {
		flex-direction: column;
		margin: 0;
	}

	.blog-entry-col {
		width: 100%;
		padding: 0;
	}

	.blog-entry-col + .blog-entry-col {
		margin-top: 2rem;
	}

	.blob-entry__photo {
		width: 50vw;
		margin-right: auto;
		margin-left: auto;
	}

	.blob-entry__title {
		font-size: 1.6rem;
		text-align: center;
	}

	.blob-entry__date {
		text-align: center;
	}

}


/* --------------------------------------------------

sns

-------------------------------------------------- */

.sns-box {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4rem;
	margin-bottom: 4rem;
}

.sns-box__head {
	display: flex;
	align-items: center;
	flex-direction: column;
}

.sns-box__sup {
	margin-bottom: 1.2rem;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
}

.sns-box__title {
	margin: 0;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
}

.sns-box-row {
	display: flex;
	align-items: center;
	gap: 4rem;
}

.sns-box-col a {
	overflow: hidden;
	display: block;
	max-width: 300px;
}

.sns-box-col a img {
	line-height: 1;
}

.sns-box-col a:hover img {
	opacity: .8;
}

@media screen and (max-width: 767px) {

	.sns-box {
		flex-direction: column;
		gap: 2rem;
		margin-bottom: 2rem;
	}

	.sns-box__head {
		width: 100%;
	}

	.sns-box-row {
		flex-direction: column;
		gap: 3.2rem;
	}

	.sns-box-col a {
		max-width: 60vw;
		margin: 0 auto;
	}

}


/* --------------------------------------------------

form

-------------------------------------------------- */

.form-box {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 4rem 2rem 8rem;
}

.form-box__title-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	margin: 0 auto;
	border-radius: 50%;
	line-height: 1;
	color: #fff;
	aspect-ratio: 1 / 1;
}

.form-box__title-icon svg {
	width: 22px;
	height: auto;
}

.form-box__title {
	margin: 0 0 3.2rem;
	font-size: 3.2rem;
	font-weight: 700;
	text-align: center;
}

.form-box__sup {
	margin: 0 0 8rem;
	text-align: center;
}

.form-contents {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}

.form-group {
	margin: 0 0 1.6rem;
}

.form-group__label {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 1rem;
	font-weight: 500;
}

.is-required {
	display: block;
	padding: .6rem;
	border: 2px solid currentColor;
	border-radius: .8rem;
	font-weight: 500;
	line-height: 1;
	color: #F88379;
}

.wpcf7-not-valid-tip {
	margin-top: .2rem;
	font-weight: 500;
	color: #F88379;
}

.privacy-info {
	margin: 1.6rem 0 3.2rem;
	padding: 2rem;
	background-color: #FAFAFA;
	border-radius: .8rem;
	font-size: 1.4rem;
}

.privacy-info h4 {
	margin: 0 0 1rem;
	font-weight: 500;
}

.privacy-info__body {
	overflow-y: scroll;
	height: 200px;
}

.privacy-info__body::-webkit-scrollbar {
	width: 8px;
}
.privacy-info__body::-webkit-scrollbar-track {
	background: #eee;
}
.privacy-info__body::-webkit-scrollbar-thumb {
	background: #ccc;
	border-radius: 4px;
}

.privacy-info__body > :last-child {
	margin-bottom: 0;
}

.form-accept {
	display: flex;
	justify-content: center;
	margin: 0 0 3.6rem;
}

.wpcf7-text,
.wpcf7-tel,
.wpcf7-textarea {
	width: 100%;
	padding: 1.4rem;
	background: #fff none;
	border: 2px solid #EBEBEB;
	border-radius: .8rem;
	font-family: inherit;
	font-size: 1.6rem;
	line-height: 1;
	outline: none;
	appearance: none;
}

.wpcf7-textarea {
	line-height: 1.6;
}

.form-accept input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.form-accept .wpcf7-list-item {
	margin-left: 3.2rem;
}

.wpcf7-list-item-label:hover {
	cursor: pointer;
}

.form-accept .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 22px;
	height: 22px;
	background-color: #fff;
	border: 2px solid #EBEBEB;
	border-radius: .8rem;
	transition: all 0.3s;
	transform: translateY(-50%);
}

.form-accept label:hover .wpcf7-list-item-label::before {
	border-color: #F88379;
}

.form-accept .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	left: 7px;
	top: 50%;
	width: 7px;
	height: 12px;
	border-right: 3px solid #fff;
	border-bottom: 3px solid #fff;
	opacity: 0;
	transition: opacity 0.3s;
	transform: translateY(-50%) rotate(45deg);
}

.form-accept input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
	background-color: #F88379;
	border-color: #F88379;
}

.form-accept input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	opacity: 1;
}

.form-accept .wpcf7-not-valid-tip {
	display: block;
	margin-top: .8rem;
	color: #F88379;
	font-weight: 500;
}

.form-submit {
	display: flex;
	justify-content: center;
}

@media screen and (max-width: 767px) {

	.form-box__title {
		margin-top: .8rem;
	}
	
	.form-box__sup {
		margin: 0 0 4rem;
	}

	.form-box {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.form-box__title {
		font-size: 2.4rem;
	}

}


/* --------------------------------------------------

お役立ちブログ - 一覧

-------------------------------------------------- */

.key-page {
	padding-top: 8rem;
}

.page-title {
	margin: 0 0 2rem;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.4;
}

.page-sub-title {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1;
}

.page-sub-title svg {
	width: 2rem;
	height: auto;
	line-height: 1;
}


.blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4rem;
	margin-bottom: 8rem;
}

@media screen and (max-width: 767px) {
	
	.blog-grid {
		grid-template-columns: 1fr;
	}

}


.blog-item__link {
	overflow: hidden;
	display: block;
	height: 100%;
	background-color: #fff;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s;
}

.blog-item__link:hover {
	opacity: 0.7;
}

.blog-item__img {
	margin-bottom: 0;
}

.blog-item__img img {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 16 / 12;
}

.blog-item__content {
	padding: 2rem 2rem 4rem;
}

.blog-item__head {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	font-size: 1.4rem;
}

.blog-item__title {
	margin: .8rem 0 0;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.72;
}

.pagination-wrapper {
	margin-bottom: 8rem;
}

.pagination-wrapper .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.6rem;
	width: fit-content;
	margin: 0 auto;
	padding: 1.2rem 3.2rem;
	background-color: #fff;
	border-radius: 2.5rem;
	line-height: 1;
}

@media screen and (max-width: 767px) {

	.pagination-wrapper {
		margin-bottom: 4rem;
	}

}


.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.6rem;
	border-radius: 50%;
	color: #F88379;
	aspect-ratio: 1 / 1;
}

.page-numbers.current {
	background-color: #F88379;
	color: #fff;
}

.page-numbers.prev,
.page-numbers.next {
	position: relative;
	width: auto;
	border-radius: 0;
	aspect-ratio: inherit;
}

.page-numbers.prev {
	padding-left: 1.6rem;
}

.page-numbers.prev::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	width: 10px;
	height: 10px;
	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;
	transition: left 0.3s;
}

.page-numbers.prev:hover::before {
	left: -4px;
}

.page-numbers.next {
	padding-right: 1.6rem;
}

.page-numbers.next::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 10px;
	height: 10px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transition: right 0.3s;
}

.page-numbers.next:hover::after {
	right: -4px;
}


/* --------------------------------------------------

お役立ちブログ - 詳細

-------------------------------------------------- */

.entry-header {
	margin-bottom: 3.2rem;
}

.entry-meta {
	display: flex;
	gap: 1.6rem;
	margin-bottom: 1rem;
	font-size: 1.4rem;
}

.entry-title {
	font-size: 4rem;
	font-weight: 600;
	line-height: 1.7;
}

.entry-body {
	margin-bottom: 8rem;
}

@media screen and (max-width: 767px) {

	.entry-title {
		font-size: 2.4rem;
	}

	.entry-body {
		margin-bottom: 4rem;
	}

}


.entry-body iframe {
	max-width: 100%;
	height: auto !important;
	aspect-ratio: 16 / 9;
	
	border: 0;
}

.entry-body iframe[src*="google.com/maps"] {
	aspect-ratio: 4 / 3;
}

.entry-body h1 {
	margin: 4rem 0 2rem;
	font-size: 3.6rem;
    font-weight: 600;
    line-height: 1.72;
}

.entry-body h2 {
	margin: 4rem 0 3.2rem;
	padding: 0 0 0 1.6rem;
	border-left: .4rem solid #F88379;
	font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.72;
}

.entry-body h3 {
	margin: 4rem 0 3.2rem;
	padding: 1.2rem 2rem;
	background-color: #fff;
	border-radius: .4rem 2rem .4rem 2rem;
	font-size: 2rem;
    font-weight: 600;
    line-height: 1.72;
}

.entry-body h4 {
	margin: 2rem 0 2rem;
	padding: 0 0 .8rem;
	border-bottom: 3px solid currentColor;
	font-size: 1.8rem;
	font-weight: 600;
}

.entry-body h5 {
	margin: 2rem 0 1.6rem;
	font-size: 1.8rem;
	font-weight: 600;
	color: #F88379;
}

.entry-body h6 {
	margin: 2rem 0 1.6rem;
	font-size: 1.8rem;
	font-weight: 600;
}


@media screen and (max-width: 767px) {

	.entry-body h1 {
		margin: 2rem 0;
		font-size: 2.4rem;
	}

	.entry-body h2 {
		margin: 2rem 0;
		font-size: 2rem;
	}

	.entry-body h3 {
		margin: 2rem 0;
		padding: 1.2rem 2rem;
		font-size: 1.8rem;
	}

}


.post-navigation {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8rem;
}

.nav-previous {
	width: 50%;
}

.nav-next {
	width: 50%;
	text-align: right;
}

.nav-previous a,
.nav-next a {
	position: relative;
	display: inline-block;
	color: #434343;
	text-decoration: none;
	line-height: 1;
}

.nav-previous a:hover,
.nav-next a:hover {
	color: #F88379;
	text-decoration: none;
}

.nav-previous a {
	padding-left: 1.6rem;
}

.nav-previous a::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	width: 10px;
	height: 10px;
	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;
	transition: left 0.3s;
}

.nav-previous a:hover::before {
	left: -4px;
}

.nav-next a {
	padding-right: 1.6rem;
}

.nav-next a::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 10px;
	height: 10px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transition: right 0.3s;
}

.nav-next a:hover::after {
	right: -4px;
}


/* --------------------------------------------------

footer

-------------------------------------------------- */

.footer {
	padding-bottom: 4rem;
	font-size: 1.6rem;
	text-align: center;
}

.footer__title {
	margin: 0 0 1.6rem;
	font-size: 2rem;
	font-weight: 500;
}

.footer__sns {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4rem;
}

.footer__sns svg {
	width: auto;
	height: 24px;
	line-height: 1;
	fill: #434343;
	transition: 0.3s;
}

.footer__sns a:hover svg {
	fill: #F88379;
}

.copyright {
	margin: 3.2rem 0 0;
	font-size: 1.3rem;
}


/* --------------------------------------------------

sp nav

-------------------------------------------------- */

/* --- ハンバーガーボタン --- */
.nav-trigger {
	position: relative;
	z-index: 1000;
	display: none;
	width: 44px;
	height: 44px;
	background: #F88379;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

.nav-trigger span {
	position: absolute;
	left: 10px;
	display: block;
	width: 24px;
	height: 2px;
	background: #fff;
	transition: all 0.3s;
}

.nav-trigger span:nth-child(1) { top: 14px; }
.nav-trigger span:nth-child(2) { top: 21px; }
.nav-trigger span:nth-child(3) { top: 28px; }

.nav-trigger.is-active span:nth-child(1) {
	top: 21px;
	transform: rotate(45deg);
}

.nav-trigger.is-active span:nth-child(2) {
	opacity: 0;
}

.nav-trigger.is-active span:nth-child(3) {
	top: 21px;
	transform: rotate(-45deg);
}

/* --- モーダル本体 --- */
.sp-modal {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.98);
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s;
}

.sp-modal.is-active {
	opacity: 1;
	visibility: visible;
}

/* メニューリストのスタイル */
.sp-nav {
	margin: 0 0 4rem;
	padding: 0;
	list-style: none;
	text-align: center;
}

.sp-nav li {
	margin-bottom: 2rem;
}

.sp-nav a {
	font-size: 1.6rem;
	font-weight: 500;
	color: #434343;
	text-decoration: none;
}

/* レスポンシブ切り替え */
@media screen and (max-width: 960px) {
	
	.nav-trigger {
		display: block;
	}

}