.noto-serif{
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-style: normal;
}
.montserrat,
.p-faq_list dt::before,
.p-faq_list dd::before{
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
}
.new-roman {
  font-family: "Times New Roman", "Tinos", serif;
  font-style: normal;
}

/*-------------------------------------------------------------------

	cva

-------------------------------------------------------------------*/
.cva{
	padding: 5.5rem 3.2rem 0;
}
.cva_title{
	font-size: 3.2rem;
	line-height: 1;
}
.cva_title + .cva_button{
	margin-top: 3rem;
}
.cva_button li + li{
	margin-top: 0.8rem;
}
.cva_button a{
	border: #b6447a 0.4rem solid;
	border-radius: 10rem;
	color: #fff;
	display: flex;
	overflow: hidden;
	position: relative;
	align-items: center;
	justify-content: center;
	font-size: 3.2rem;
	height: 10rem;
	text-decoration: none;
	z-index: 2;
}
.cva_button a::before{
	background: #e3408e;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	z-index: -1;
}
.cva_button a::after{
	background: rgba(0,0,0,0.2);
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	height: 0;
	width: 100%;
	transition: all 0.2s ease-out;
	z-index: -1;
}
.cva_button a:hover::after,
.cva_button a:active::after{
	top: 0;
	height: 100%;
}
.cva_button .line a{
	border-color: #228443;
}
.cva_button .line a::before{
	background: #20af50;
}
.cva_button .tel a{
	border-color: #ad7b2a;
}
.cva_button .tel a::before{
	background: #e0911e;
}
/* flashanime */
.flashanime{
	animation: flashanimekey 3s infinite forwards;
	aspect-ratio: 1;
	background-image: linear-gradient(-45deg,rgba(255,255,255,0) 45%,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 70%);
	display: block;
	position: absolute;
	left: -100%;
	height: 200%;
	opacity: 0.5;
	width: auto;
}
@keyframes flashanimekey {
	0%{
		left: -100%;
	}
	100%{
		left: 200%;
	}
}

/*-------------------------------------------------------------------

	head

-------------------------------------------------------------------*/
.head_logo {
	margin: 3rem 0 0 3.2rem;
	position: absolute;
	width: 45.9rem;
	z-index: 5;
}

/* head_hamburger_button */
.head_hamburger_button,
.tellist_button{
	background: #fff;
	border-radius: 0.8rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 3rem;
	right: calc( 50% - 300px);
	width: 8rem;
	height: 8rem;
	cursor: pointer;
	z-index: 300;
}
@media screen and (max-width: 640px) {
	.head_hamburger_button,
	.tellist_button{
		right: 1.6rem;
	}
}
.head_hamburger_button .border,
.tellist_button .border{
	background: #333;
	content: "";
	display: block;
	width: 5.6rem;
	height: 0.4rem;
	position: absolute;
	transition: all 0.3s ease-out;
}
.head_hamburger_button .border:nth-child(1){
	top: 1.8rem;
}
.head_hamburger_button .border:nth-child(3){
	bottom: 1.8rem;
}
.head_hamburger_button.active .border:nth-child(1),
.tellist_button .border:nth-child(1){
	top: calc(50% - 0.2rem);
	transform: rotate(45deg);
}
.head_hamburger_button.active .border:nth-child(2),
.tellist_button .border:nth-child(2){
	transform: scaleX(0);
}
.head_hamburger_button.active .border:nth-child(3),
.tellist_button .border:nth-child(3){
	top: calc(50% - 0.2rem);
	transform: rotate(-45deg);
}
body.confirm .head_hamburger_button,
body.error .head_hamburger_button,
body.miss .head_hamburger_button,
body.thanks .head_hamburger_button {
	display: none;
}

/* head_hamburger_body */
.head_hamburger_body,
.tellist_body{
	background: #e4dfd9;
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	z-index: 200;
}
.head_hamburger_body .inner,
.tellist_body .inner{
	padding: 17rem 6.5rem 5rem;
	overflow: auto;
	max-height: 100vh;
}
.head_hamburger_body a{
	text-decoration: none;
	transition: all 0.3s ease-out;
}
.head_hamburger_body .link a{
	display: block;
	line-height: 1.5;
	padding: 1.6rem 0 1.6rem 3rem;
	position: relative;
}
.head_hamburger_body .link a::before{
	background: #b2a08f;
	border-radius: 10rem;
	content: "";
	height: 0.8rem;
	width: 1.6rem;
	position: absolute;
	left: 0;
	top: calc(50% - 0.4rem);
}
.head_hamburger_body .link a::after{
	background: #b2a08f;
	border-radius: 10rem;
	content: "";
	opacity: 0.2;
	position: absolute;
	left: 0;
	top: 50%;
	height: 0;
	width: 0;
	transition: all 0.2s ease-out;
	z-index: -1;
}
.head_hamburger_body .link a:hover::after,
.head_hamburger_body .link a:active::after{
	top: 0;
	height: 100%;
	width: 100%;
}
.head_hamburger_body .cva_button{
	margin-top: 3rem;
}
.head_hamburger_body .cva_button a{
	font-size: 2.6rem;
	height: 8.5rem;
}

/*-------------------------------------------------------------------

	MV

-------------------------------------------------------------------*/
.mv {
	margin-bottom: 8rem;
	position: relative;
	height: 86.9rem;
	width: 100%;
}
.mv .mv_title{
	position: absolute;
	height: 86.9rem;
	width: 100%;
	z-index: 1;
}

/* mv_catch */
.mv_catch{
	color: #4a4037;
	padding-top: 42.0rem;
	position: absolute;
	letter-spacing: -0.02em;
	line-height: 1.5;
	width: 100%;
	z-index: 2;
}
.mv_catch .palt{
	letter-spacing: -0.1em;
}

/* mv_box */
.mv_box{
	font-size: 3.6rem;
	padding: 75.3rem 1.6rem 0;
	position: absolute;
	width: 100%;
	z-index: 2;
}
.mv_box .box_white{
	padding: 3rem 0;
}

/*-------------------------------------------------------------------

	common

-------------------------------------------------------------------*/
.mainbg{
	background: #e4dfd9 url(../img/bg.jpg) center top repeat-y;
}
.contents-w {
	max-width: 640px;
	margin: 0 auto;
	position: relative;
}

/* p-basic-section */
.p-basic-section {
	padding: 12rem 3.2rem 0;
}
.p-basic-section > :last-child {
	margin-bottom: 0;
}

/* p-basic-title */
.p-basic-title {
	margin-bottom: 7rem;
	text-align: center;
}
.p-basic-title .en {
	color: #fff;
	display: block;
	font-size: 9rem;
	font-weight: bold;
	letter-spacing: 0.02em;
	line-height: 1;
	text-shadow: 0 0 2rem rgba(204,190,179,0.2);
}
.p-basic-title .en.gray{
	color: #e4dfd9;
	text-shadow: none;
}
.p-basic-title .jp {
	display: block;
	font-size: 4rem;
	font-weight: bold;
	letter-spacing: 0.02em;
	line-height: 1.5;
	margin-top: 1.5rem;
}

/* p-sub-title */
.p-sub-title {
	font-size: 4.8rem;
	letter-spacing: 0.02em;
	line-height: 1.5;
}
.p-sub-title.small {
	font-size: 3rem;
}

/* icon-slide */
.icon-slide{
	background: url(../img/ic_arrow_down.svg) no-repeat center center;
	background-size: contain;
	height: 1rem;
	width: 1.8rem;
	transition: 0.3s all;
	transform: rotate(180deg);
}
.icon-slide.is-close{
	transform: rotate(0deg);
}

/* popup-item */
.popup-item {
	background-color: white;
	margin: 1rem;
	padding: 2rem;
	border-radius: 1rem;
}

@media screen and (min-width: 640px) {
	.popup-item {
		margin-left: auto;
		margin-right: auto;
		max-width: 40rem;
	}
}

/*-------------------------------------------------------------------

	about

-------------------------------------------------------------------*/
.p-about .p-basic-title{
	margin-bottom: 3rem;
}
.p-about .p-basic-title .en{
	font-size: 12rem;
	position: relative;
	z-index: 2;
}
.p-about .p-basic-title .photo{
	display: block;
	margin-top: -7rem;
}
.p-about .p-basic-title .box_white{
	border: #e4d6ca 0.2rem solid;
	border-radius: 10rem;
	display: block;
	margin: -3.2rem auto 0;
	padding: 0.8rem 2.8rem 1rem;
	position: relative;
	width: fit-content;
	z-index: 2;
}

/*-------------------------------------------------------------------

	strengths

-------------------------------------------------------------------*/
.p-strengths{
	padding-top: 6rem;
}
.p-strengths .p-sub-title{
	margin-bottom: 1.5rem;
	position: relative;
}
.p-strengths .p-sub-title .jp{
	border-radius: 1.6rem;
	padding: 4rem 6rem;
	position: absolute;
	z-index: 2;
}
.p-strengths .p-sub-title .photo{
	display: block;
	width: 91.83673%;
}

.p-strengths_item{
	margin-top: 6rem;
}

/* item_01 */
.p-strengths .item_01 .p-sub-title .jp{
	border-radius: 1.6rem 0 0 1.6rem;
	top: 8rem;
	right: -3.2rem;
}

/* item_02 */
.p-strengths .item_02 .p-sub-title .jp{
	border-radius: 0 1.6rem 1.6rem 0;
	bottom: 8rem;
	left: -3.2rem;
}
.p-strengths .item_02 .p-sub-title .photo{
	margin-left: auto;
}

/* item_03 */
.p-strengths .item_03 .p-sub-title{
	text-align: center;
}
.p-strengths .item_03 .p-sub-title .jp{
	display: inline-block;
	position: relative;
}
.p-strengths .item_03 .s-stars{
	line-height: 1.3;
	margin-top: -9rem;
	margin-bottom: 1.5rem;
	padding: 10rem 3rem 6rem;
}
.p-strengths .item_03 ul{
	flex-wrap: wrap;
	justify-content: space-between;
}
.p-strengths .item_03 li{
	font-size: 2.8rem;
	margin-bottom: 3rem;
	width: 48%;
}
.p-strengths .item_03 .star{
	display: block;
	line-height: 1;
	width: 20rem;
}
.p-strengths .item_03 .note{
	font-size: 2.4rem;
}

/*-------------------------------------------------------------------

	description

-------------------------------------------------------------------*/
.p-description .box_white{
	padding: 3.2rem;
}
.p-description table{
	border-collapse: collapse;
	table-layout: auto;
	width: 100%;
}
.p-description th,
.p-description td{
	line-height: 1.5;
	padding: 2.6rem 0;
	text-align: left;
	vertical-align: top;
}
.p-description th{
	padding-right: 3.4rem;
	white-space: nowrap;
}
.p-description tr + tr th,
.p-description tr + tr td{
	border-top: 0.2rem #dddddd solid;
}

/*-------------------------------------------------------------------

	case

-------------------------------------------------------------------*/
.p-case{
	background: url(../img/case_bg.jpg);
	background-size: cover;
	margin-top: 12rem;
	padding-bottom: 12rem;
}
.p-case_item{
	margin-top: 3.2rem;
	padding: 4rem 6.4rem 6.4rem;
}
.p-case_title .num{
	color: #b2a08f;
	display: block;
	font-size: 6rem;
	font-weight: 400;
}
.p-case_title .jp{
	display: block;
	font-size: 3.6rem;
	margin: 3.6rem 0;
}
.p-case_item .graph{
	margin-top: 3.2rem;
}

/*-------------------------------------------------------------------

	thoughts

-------------------------------------------------------------------*/
.p-thoughts.p-basic-section{
	background: url(../img/thoughts_bg.jpg);
	background-size: cover;
	padding: 13rem 0 12rem 5rem;
	position: relative;
}
.p-thoughts .p-basic-title{
	overflow: hidden;
	position: absolute;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	right: 0;
	top: 0;
	height: 100%;
	width: 18rem;
}
.p-thoughts .p-basic-title .en{
	font-size: 15rem;
	position: absolute;
	right: -2rem;
}
.p-thoughts .p-basic-title .jp{
	position: absolute;
	top: 8.6rem;
	right: 5rem;
}

.p-thoughts_item{
	font-size: 2.8rem;
	width: 74.57143%;
}

/*-------------------------------------------------------------------

	interview

-------------------------------------------------------------------*/
.p-interview_item{
	margin-top: 3.2rem;
	padding: 6rem 3.2rem 4rem;
}
/* title */
.p-interview_title > span{
	display: block;
}
.p-interview_title .subject{
	font-size: 2.8rem;
}
.p-interview_title .jp{
	font-size: 3.6rem;
}
.p-interview_title .photo{
	margin: 2rem auto -4rem 0;
	width: 84.56592%;
}
.p-interview_title .en{
	color: #c2b5aa;
	font-size: 5.4rem;
}
/* content */
.p-interview_item .s-content{
	font-size: 2.8rem;
}
.p-interview_subtitle{
	display: block;
	margin: 3.6rem 0 3rem;
	position: relative;
}
.p-interview_subtitle::before,
.p-interview_subtitle::after{
	background: #dddddd;
	content: "";
	position: absolute;
	top: calc(50% - 0.1rem);
	height: 0.2rem;
	width: calc(50% - 2.5em);
}
.p-interview_subtitle::before{
	left: 0;
}
.p-interview_subtitle::after{
	right: 0;
}
.p-interview .history{
	line-height: 1.5;
}
.p-interview .history dt{
	margin-top: 1.6rem;
}

/*-------------------------------------------------------------------

	program

-------------------------------------------------------------------*/
.p-program{
	background: #fff;
	margin-top: 12rem;
	padding: 12rem 6.4rem;
}
/* p-program_title */
.p-program_title{
	border: 0.1rem #8f8272 solid;
	color: #b2a08f;
	font-size: 3.6rem;
	line-height: 1.5;
	margin-bottom: 3.2rem;
	padding: 3rem;
}
/* step */
.p-program_item .step{
	background: #fff4ec;
	border-radius: 2.4rem;
	padding: 4.5rem 5.2rem 0;
	position: relative;
	z-index: 2;
}
.p-program_item .step_01,
.p-program_item .step_02{
	margin-bottom: 11.6rem;
}
.p-program_item .step_01::after,
.p-program_item .step_02::after{
	background: url(../img/step_01.svg) center bottom;
	background-size: 100% auto;
	content: "";
	position: absolute;
	left: 0;
	bottom: -10rem;
	height: 12rem;
	width: 100%;
	z-index: -1;
}
.p-program_item .step_02{
	background: #ecffee;
}
.p-program_item .step_02::after{
	background-image: url(../img/step_02.svg);
}
.p-program_item .step_03{
	background: #ecf4ff;
	padding-bottom: 4rem;
}
.p-program_item .step .title .en{
	color: #b2a08f;
	display: block;
	font-size: 6rem;
	line-height: 1;
}
.p-program_item .step .title .jp{
	border-radius: 10rem;
	display: block;
	font-size: 3.6rem;
	line-height: 1;
	margin: -1rem auto 3.2rem;
	padding: 3.4rem 4.1rem;
	width: fit-content;
}

/*-------------------------------------------------------------------

	schedule & flow

-------------------------------------------------------------------*/
.p-small-title .en{
	color: #b2a08f;
	display: block;
	font-size: 7.2rem;
	line-height: 1;
	letter-spacing: 0.02em;
}
.p-small-title .jp{
	display: block;
	font-size: 4rem;
	margin-top: 2rem;
}
.p-schedule .s-content,
.p-flow .s-content{
	margin-top: -11rem;
	padding: 17rem 3.2rem 8rem;
}
/* schedule_item */
.schedule_item{
	position: relative;
}
.schedule_item + .schedule_item{
	margin-top: 5.2rem;
}
.schedule_item:not(:last-child)::after{
	background: #b2a08f;
	content: "";
	position: absolute;
	top: 0;
	left: 14.8rem;
	height: calc(100% + 5.2rem);
	width: 0.2rem;
}
.schedule_item dt{
	font-size: 3.6rem;
	line-height: 1;
	padding-top: 0.6rem;
	position: relative;
	width: 11rem;
}
.schedule_item dt::after{
	background: #fff;
	border: 0.8rem #e16356 solid;
	border-radius: 50%;
	content: "";
	position: absolute;
	top: 0;
	right: -6.3rem;
	height: 4.8rem;
	width: 4.8rem;
	z-index: 3;
}
.schedule_item dd{
	line-height: 1.5;
	padding-top: 0.2rem;
	width: calc(100% - 19.2rem);
}
/* flow_item */
.flow_item li{
	border: #cccccc 0.2rem solid;
	border-radius: 1.6rem;
	line-height: 1.5;
	padding: 3.2rem;
	position: relative;
}
.flow_item li:not(:first-child){
	margin-top: 6.2rem;
}
.flow_item li:not(:first-child):before{
	background: url(../img/flow_arrow.svg) center center no-repeat;
	background-size: contain;
	content: "";
	height: 4.7rem;
	width: 4.8rem;
	position: absolute;
	top: -5.7rem;
	left: calc(50% - 2.4rem);
}


/*-------------------------------------------------------------------

	p-form

-------------------------------------------------------------------*/
.p-form{
	margin-top: 3rem;
}
.p-form .box_white{
	padding: 3.2rem;
}

.confirm .p-form,
.error .p-form,
.miss .p-form,
.thanks .p-form{
	margin-top: 0;
	padding-top: 20rem;
}

#timingother,
#specializedother{
	display: none;
	margin-top: 2rem;
}

/*-------------------------------------------------------------------

	thanks

-------------------------------------------------------------------*/
.p-thanks-sns {
	display: flex;
	justify-content: space-between;
	margin-bottom: 2em;
}
.p-thanks-sns li {
	width: 30%;
	text-align: center;
}
.p-thanks-sns li img {
	width: 4rem;
}
.p-thanks-sns li a {
	text-decoration: none;
}
.p-thanks-sns li span {
	display: block;
	padding-top: 0.5em;
	font-size: 1.2rem;
	line-height: 1.4;
	font-feature-settings: "palt";
}

/*-------------------------------------------------------------------

	foot

-------------------------------------------------------------------*/
.foot {
	font-size: 2.6rem;
	text-align: center;
	padding: 8rem 0 11rem;
}

.pagetop {
	position: fixed;
	bottom: 1rem;
	right: -10rem;
	width: 8rem;
	z-index: 101;
	transition: all 0.2s ease-out;
}
.pagetop.is_scroll {
	right: 1rem;
}
.pagetop img{
	border-radius: 50%;
}

body.confirm .pagetop,
body.error .pagetop,
body.mis .pagetop,
body.thanks .pagetop {
	display: none;
}

/*-------------------------------------------------------------------

	tellist

-------------------------------------------------------------------*/
.tellist_body{
	z-index: 400;
}
.tellist_body .inner{
	padding-bottom: 1.5rem;
}
.tellist_body .p-basic-title{
	margin-bottom: 4rem;
}
.tellist_body ul{
	flex-wrap: wrap;
}
.tellist_body li{
	height: 8rem;
	width: 48%;
	margin-bottom: 4%;
}
.tellist_body li a {
	background-color: #20af50;
	border-radius: 1rem;
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
	line-height: 1.3;
	padding-left: 1.5rem;
	color: white;
	transition: 0.3s all;
}
.tellist_body li a::before{
	content: "";
	display: block;
	width: 2rem;
	height: 2rem;
	background: url(../img/ic_freedial.svg) no-repeat center center;
	background-size: contain;
	margin-right: 0.8rem;
}
.tellist_body li a:hover{
	background-color: #228443;
}