@charset "utf-8";
body{
	font-size: 17px;
    line-height: 1.5em;
    font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
    overflow-wrap: break-word;
	word-break: normal;
	color: #333;
}

/*カラー*/
:root {
	--maincolor: #a58a53;
	--subcolor: #1D64AA;
	--sub2color: #BDA040;
	--bgcolor: #f9f4ea;
	--redcolor: #BC2427;
	--yecolor: #FFEB2E;
	--gdcolor: linear-gradient(130deg, rgba(91, 47, 32, 1) 0%, rgba(172, 119, 50, 1) 50%, rgba(91, 47, 32, 1) 100%);

	--serif: 'Shippori Mincho B1', serif;
	--italic: "Lugrasimo", cursive, serif;;

	--shadow: drop-shadow(2px 2px 10px hsla(0, 0%, 0%, 0.2));

	--_radius-base: 10px;
	--_padding: 8px;
	--_radius-inner: calc(var(--_radius-base) - var(--_padding));
}
::selection {
	background: #333;
	color: #FFF;
}
::-webkit-scrollbar {width: 12px;}
::-webkit-scrollbar-track {background: #eee;}
::-webkit-scrollbar-thumb {background: var(--maincolor);}

/*共通*/
img{width:auto;
	height: auto;
	max-width:100%;
}p{line-height: 1.7em;
	margin-bottom: 1.5em;}

.big{font-size: 1.3em;}
.small{font-size: .8em;}
.b{font-weight: 700;}
.u{text-decoration: underline;}
.red{color: var(--redcolor);}
.blue{color: var(--subcolor);}

.sp{display: none!important;}

.center{
	text-align: center;
	display: block;
	margin: 0 auto;
}
.right{
	width: 280px;
	display: block;
    float: right;
	padding: 0 1%;
}
.img_b{
	text-align: center;
	margin: 0 auto 3% auto;
	display: block;
}
.refl{
	-webkit-box-reflect: below 2px -webkit-gradient(linear, left bottom, left 90%, from(rgba(255, 255, 255, 0.3)), to(transparent));
	margin-bottom: 2em;
}
.flex{
	display: flex;
	gap: 5px;
	justify-content: center;
}

:is(p,.img_b,.btn,.box,.movie,.timer,ul:not([class])):last-child{margin-bottom: 0;}

/* clearfix */
.cf:before {
    content: "";
    display: table;
}
.cf:after {
    content: " ";
    display: block;
    clear: both;
}

/*追従*/
.cont{
    width: 170px;
    height: auto;
    position:fixed;
    bottom :10px;
    right: 10px;
	z-index: 1000;
	transition: opacity 0.3s;
}

/********
header
********/
.top_head{
	margin-bottom: 0;
	text-align: center;
	padding: .3em;
}
.top_head p:not([class]){
	margin-bottom: .5em;
	color: var(--redcolor);
	font-weight: 700;
}
.top_head .timer{margin: 0 auto;}
header{
	background: url(../img/head_bg.png)center/cover;
	text-align: center;
	padding: 2em 0;
}

/********
main
********/
.bg{background: var(--bgcolor);}
.main{
	background: url(../img/bg_img.png)center/cover;
	background-attachment: fixed;
}
.bg_tktn{
	background: url(../img/bg_tktn.png)center/cover;
	background-attachment: fixed;
}
.wrap{
	max-width: 900px;
	margin: 0 auto;
	padding: 3em 2%;
}

/********
index
********/
h2,h3{
	text-align: center;
	font-weight: 700;
	line-height: 1.4em;
	font-family: var(--serif);
	margin: 1em auto;
	font-size: 1.5em;
	display: block;
}
h2{
	font-size: 1.8em;
	color: var(--maincolor);
}
h2 span:not([class]) {font-size: 1.2em;}


.c_txt{
	text-align: center;
	font-family: var(--serif);
	font-size: 1.3em;
	font-weight: 800;
	margin-bottom: 0.8em;
	font-feature-settings: "palt";
}
.c_txt span:not([class]) {font-size: 1.3em;}


/*******
リスト
*******/
ul:not(ul:last-child),ol:not(ol:last-child){margin-bottom: 1.5em;}
ul:not([class]) li{
    position: relative;
    padding-left: 1.3em;
	margin-bottom: .3em;
  font-size: 1.1em;
  font-weight: bold;
}
ul:not([class]) li:before{
    border-radius: 50%;
    width: 7px;
    height: 7px;
    display: block;
    position: absolute;
    left: 5px;
    top: 10px;
    content: "";
	background: var(--maincolor);
}

ul.notes li {
    text-indent: -1em;
    padding-left: 1em;
    margin-bottom: .2em;
	line-height: 1.5em;
	font-size: .9em;
}
ul.notes li::before {content: "※";}



/**/
.btn{
	text-align: center;
	margin: 1% auto 1.3em auto;
	transition: all .5s;
}
.btn img{transition: all .5s;}
.btn img:hover,.p_btn:hover,.m_btn img:hover{transform: translateY(-10px);}

/**/
.movie{
	width: 100%;
    aspect-ratio: 16/9;
	margin: 0 0 3% 0;
}
.movie iframe {
	width: 100%;
	height: 100%;
}

.f_btn{margin-bottom: 1em;}

.modaal-video-wrap{margin: auto 0!important;}
.m_btn{
	display: inline-block;
	width: 33.3%;
	padding: 0 .5%;
	box-sizing: border-box;
	margin-top: 2%;
}
.m_btn img{
	max-height: 100%;
	width: 100%;
	transition: all .5s;
	margin-bottom: 5%;
}

/********/
.box{
	background: #fff;
	padding: 3%;
	filter: var(--shadow);
	border-radius: 10px;
	margin-bottom: 1.3em;
}
.box_2{
	padding: 3%;
	border: solid 2px var(--bgcolor);
}

/********/
.step{margin-bottom: 1.5em;}
.step .box{
	width: calc( 100% / 3 );
	position: relative;
	margin-top: 40px;
	box-sizing: border-box;
	margin-bottom: 0;
}
.step .num{
    width: 80px;
    height: 80px;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: -50px auto 1em auto;
	line-height: 1.4em;
	font-weight: 600;
}
.step .num span{
	display: flex;
    flex-direction: column;
	background-image:var(--gdcolor);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.step .num span span{font-size: 2em; padding-bottom: 0.2em;}
.step p{margin-bottom: 0;}

/******/
.about{
	text-align: center;
    padding: 0;
    margin: 0 auto;
	font-size: 1.4em;
	font-family: var(--serif);
	font-weight: 600;
}
.about h4{color: var(--yecolor);}


/************/
dl{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
	gap : 10px;
	font-size: 1.1em;
	font-weight: 600;
	margin-bottom: 1em;
}
dl dt {
	width: calc(30% - 10px);
	font-size: 1.1em;
	margin-bottom: 0;
	background: var(--maincolor);
	background: linear-gradient(90deg, rgba(11, 47, 48, 1) 0%, rgba(57, 131, 141, 1) 95%);
	color: #fff;
	border-radius: 500px;
	text-align: center;
	padding: .3em .7em;
	box-sizing: border-box;
	font-family: var(--serif);
	letter-spacing: .1em;
}
dl dd {
    width: 69%;
    font-weight: 600;
	margin-bottom: 0;
}

/********
お客様の声
********/
.swiper{margin-bottom: 5%;}
.swiper-slide {
	/* スライドのサイズを調整、中身のテキスト配置調整、背景色 */
	width: 100%;
	padding: 7% 10%;
	background: #fff;
	min-height: 400px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: .9em;
	border: solid 2px var(--bgcolor);
}
.swiper-button-prev:after, .swiper-button-next:after{
	color: var(--redcolor);
	font-size: 1.7em!important;
}
.swiper-navigation-icon{display: none;}

/**/
.voice_box{
	border: solid 2px var(--bgcolor);
	padding: 3%;
	background: #fff;
	height: 250px;
	overflow-y: scroll;
}
.voice_box hr{
	border: none;
	height: 2px;
	margin:  2% 0;
	background: #eee;
}

.r_name,.name{
	display: block;
	margin-right: 0;
	text-align: right;
}
.r_name::after{
	content: "さん";
	font-size: .8em;
}


/******/
.v_box{
	display: flex;
	gap: 20px;
	align-items: center;
	margin-bottom: 1.3em;
}
.v_img{
	object-fit: cover;
	height: 200px;
	width: 200px;
	border-radius: 500px;
}
.v_inner h3{
	width: 100%;
	display: block;
	margin: 0 auto .3em auto;
	text-align: left;
}
.v_inner .name,.voice .name{
	display: flex;
	align-items: center;/* 縦位置の調整 */
	text-align: right;
	color: var(--maincolor);
	font-size: .7em;
	gap: 10px;
}
.v_inner .name::before,.voice .name::before{
	content: '';
	flex-grow: 1;
	height: 2px;
	background: var(--gdcolor);
}

/**/
.voice{
	padding: 5%;
	margin-bottom: 3%;
	border: solid var(--maincolor) 3px;
}
.voice .img_b{margin-top: 2%;}
.v_index{
	display: inline-block;
	width: 75%;
	font-family: 'Shippori Mincho B1', serif;
	font-weight: 600;
	letter-spacing: .1em;
}
.v_index h3{
	padding-left: 3%;
	margin-bottom: 5%;
}
.v_index_2{
	display: block;
	width: 80%;
	text-align: center;
	margin: 0 auto;
}
.m_voice .v_index_2{width: 100%; margin-bottom: 1em;}
.v_index_2 h3{
	padding: 0;
	margin-bottom: 3%;
}

.voice .name{font-size: 1.1em;}
.voice .name span{font-size:.8em;}

/******/
.features{margin-top: 4em;}
.features .num{
	margin: -4em auto .5em auto;
	display: block;
}

/******/
.list{
	background: url(../img/list_bg.png)center/cover;
	background-attachment: fixed;
}
.list ul:not([class]) li{
	background: url(../img/li_icon.png),linear-gradient(90deg, rgb(105, 92, 79, .9) 60%, rgba(108, 74, 41, 0) 95%);
	background-repeat: no-repeat;
	background-position: 5px 50%,center;
	color: #fff;
	font-size: 1.2em;
	font-family: var(--serif);
	padding: .2em 0 .2em 35px;
}
.list ul:not([class]) li::before{content: none;}

.list_2{
	background: url(../img/list_bg_2.png)center/cover;
	background-attachment: fixed;
}

/******/
.program{
	background: #fff;
	padding: 3%;
	border: 3px solid var(--maincolor);
	margin-bottom: 1em;
}
.program:last-child{margin-bottom: 0;}
h3 span:not([class]){
	position: relative;
    background-image:var(--gdcolor);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 1.2em;
    line-height: 1.2em;
    width: fit-content;
	line-height: 1.6em;
}
h3 span span{
	font-size: 1.4em;
	padding: 0 .1em;
}

.program ul:not([class]),.program ul.cf{
	font-weight: 600;
	border: solid 3px var(--bgcolor);
	padding: 3%;
	margin-bottom: 1.5em;
}
.program ul:not([class]):last-child{margin-bottom: 0;}


.m_btn{
	width: calc(100% / 2 - 10px);
	padding: 0 .5%;
	box-sizing: border-box;
}
.m_btn img{
	max-height: 100%;
	width: 100%;
	transition: all .5s;
}

/********
価格
*********/
.price{
	background: var(--subcolor);
	padding: .8%;
	margin: 0 auto 1em auto;
	text-align: center;
	font-weight: 500;
	max-width: 800px;
	font-feature-settings: "palt";
	border-radius: 10px;
    background: var(--redcolor);
}
.price_2{background: var(--subcolor);}

.List_price.price{
	background: var(--redcolor);
    background: linear-gradient(0deg, rgba(235, 235, 235, 0.55) 0%, rgba(235, 235, 235, 0.55) 50%), var(--redcolor);
}
.List_price.price_2{
	background: var(--subcolor);
    background: linear-gradient(0deg, rgba(235, 235, 235, 0.55) 0%, rgba(235, 235, 235, 0.55) 50%), var(--subcolor);
}

.price h4{
	color: #fff;
	margin-bottom: 2%;
	padding: 2% 0 0 0;
	font-size: 1.5em;
	background: none;
}
.List_price h4{color: #333;}
.price h4 span:not([class]){
	background: #fff;
    padding: 0.1em 1em;
    border-radius: 50px;
    color: var(--redcolor);
    display: block;
    width: fit-content;
    margin: 0 auto;
    letter-spacing: .1em;
    font-size: .8em;
	margin-top: .3em
}
.price_2 h4 span:not([class]){color: var(--subcolor);}

h4.price{
	color: #fff;
	max-width: 100%;
	border-radius: 5px;
}

.price h6{color: var(--redcolor);}

.price_text{
	background: #fff;
	padding: 3%;
	font-size: 1.3em;
	border-radius: 0 0 5px 5px;
}
.price:not(:has(h4)) .price_text {border-radius: 5px;}

.price_no .price_text p{line-height: 1.4em;}
.price_text p:not(:last-child){
	margin-bottom: 1em;
	line-height: 1.4em;
}

.price_text p span:not([class]){
	font-size: 1.7em;
	font-weight: bold;
	/* font-family: var(--serif); */
	padding: 0 1.5% 0% 1%;
	position: relative;
    background: var(--redcolor);
    background: linear-gradient(0deg, rgba(0,0,0,.2) 0%, rgba(113,113,113,0) 60%),var(--redcolor);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.price_text p s{
	font-weight: bold;
	padding: 0 1%;
}
ruby{
	font-size: .9em;
    padding-left: .4%;
}

.price .notes {
    font-size: .7em;
    text-align: left;
	background: #eee;
    padding: 3%;
    margin: 0 auto;
}
.price img{
	display: block;
	margin-bottom: 2%;
	max-height: 40px;
}
.price a img{
	width: auto;
    max-height: 100%;
    margin: 0 auto;
}

/*吹き出し*/
.tail{
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--redcolor);
	font-weight: 600;
	margin: 0 auto 0.5em auto;
}
.tail::before,.tail::after{
	content: '';
	width: 30px;
	height: 1px;
	background: #333;
}
.tail::before{transform: rotate(60deg);}
.tail::after{transform: rotate(-60deg);}

/*矢印*/
.arrow_s {
    position: relative;
    padding-left: 12px;
    text-decoration: none;
}
.arrow_s:before {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 0 8px 10px;
    border-color: transparent transparent transparent #333;
    position: absolute;
    top: 60%;
    left: -3px;
    margin-top: -13px;
}

/**/
.arrow {
	display: block;
	margin: 0 auto 5% auto;
	animation: arrow 2s infinite;
	text-align: center;
}
@-webkit-keyframes arrow {
  0% {-webkit-transform: translate(0, 0);
    opacity: 0;}
  50% {opacity: 1;}
  100% {-webkit-transform: translate(0, 25px);
    opacity: 0;}
}

/************
決済ボタン
*************/
.pay_wrap{
	display:flex;
	align-items: stretch;
	gap:5px;
}
.pay_btn{
	font-size: .9em;
	display: flex;
	flex-direction: column;
    width: -webkit-fill-available;
}
.pay_btn .price_text{
	flex: 2;
	display:grid;
	align-content: space-evenly;
	font-size: 1.5em;
}
.pay_btn .price_text p{margin: 1em 0;}

/*一括価格のみ適用*/
.pay_btn .price_text p:not(:has(br)) {
	min-height: 80px;
    display: flex;
    justify-content: center;
	align-items: center;
    line-height: 2.3em;
}
.pay_btn .price_text p:not(:has(br)) ruby {font-size: 1em; line-height: 1em;}

.pay_btn .price_text p span{font-size: 1.8em;}
.pay_btn .price_text p .small{font-size: .7em;}
.pay_btn .price_text ruby{font-size: .6em;}

.pay_btn img{margin: 0 auto;}
.pay_btn .price_text p.notes{margin-bottom: 0; font-size: .5em; text-align: center;}

.p_btn {
    text-align: center;
    margin-bottom: 3%;
    width: 100%;
    padding: 13px 0;
    text-decoration: none;
    border-radius: 5px;
	background: #0CA401;
	background: linear-gradient(180deg, #54BD4C 0%, #0CA401 100%);
	color: #fff;
	box-sizing: border-box;
    border: #ccc solid 2px;
	font-weight: 600;
	font-family: var(--serif);
	position: relative;
	transition: all .5s;
	font-size: .85em;
	letter-spacing: .1em;
}
.p_btn_b{
	background: #177ab3;
	background: linear-gradient(180deg, #5999bc 0%, #177ab3 100%);
}
.p_btn_c{
	background: #f25565;
	background: linear-gradient(180deg, #eba29a 0%, #f25565 100%);
}
.p_btn::after {
	position: absolute;
	top: 50%;
	right: .7em;
	width:  .3em;
	height: .3em;
	transform: translateY(-50%) rotate(45deg);
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	content: "";
}

/*タイマー*/
.timer{
	text-align: center;
	padding: 1% 2%;
	font-family: var(--serif);
	font-size: 1.2em;
	font-weight: 800;
	filter: var(--shadow);
	margin: 1em auto 2em auto;
}
.timer p{margin-bottom: 0;}
.counter span{
	font-size: 1.4em;
	padding: .3em .3em;
	margin: 0 .2em;
	border-radius: 5px;
	background: var(--gdcolor);
	color: #fff;
}

/**********/
.voice .accordion .link{
	font-size: 1.2em;
	max-width: 600px;
	margin: 0 auto;
}
.voice .a-text{
	max-width: 630px;
	margin: 0 auto;
}

.accordion .link {
	cursor: pointer;
	display: block;
	padding: 2% 2.5em 2% 1.8em;
	border: 3px solid var(--maincolor);
	position: relative;
	-webkit-transition: all 0.2s ease;
	-o-transition: all 0.2s ease;
	transition: all 0.2s ease;
	font-weight: 600;
	background: var(--maincolor);
	color: #fff;
	border-radius: 500px;
}
.accordion .link i {
	position: absolute;
	color: var(--maincolor);
	-webkit-transition: all 0.4s ease;
	-o-transition: all 0.4s ease;
	transition: all 0.4s ease;
	font-weight: bold;
	top: 40%;
	right: 20px;
	color: #fff;
}

.accordion.open i.fa-chevron-down,.accordion .open i.fa-chevron-down {transform: rotate(180deg);}
.fa {
	display: inline-block;
	font: normal normal normal 14px/1 FontAwesome;
	font-size: inherit;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.a-text {
	display: none;
	padding: 2%;
	margin-bottom: 0;
}

.accordion li{margin-bottom: .7em;}


/***form***/

form{
	background: rgba(255, 255, 255);
	filter: var(--shadow);
	padding: 3%;
	max-width: 700px;
	margin: 0 auto 2em auto;
}

.form-mail p{
	text-align: center;
	font-size: 1.2em;
	margin-bottom: 1%;
}

form p{
	margin: 0;
	line-height: 1.5em;
}


/* ラベル */
.label{
	width:120px;
	flex-shrink:0;
	text-align:left;
}


/* 1行 */
.form-item{
	padding-bottom:2%;
	width:95%;
	display:flex;
	align-items:center;
	margin:0 auto;
	gap:15px;
}


/* 入力 */
.input{
	border:2px solid #d7d7d7;
	padding:0 1em;
	height:48px;
	flex:1;
	width:auto;
	border-radius:5px;
}


/* 様 */
.form-item > p:not(.label){
	width:30px;
	flex-shrink:0;
}


/* ボタン */
.form_btn{
	display:block;
	margin:3% auto 5% auto;
	-webkit-animation:anime_pulse 1.5s infinite;
	animation:anime_pulse 1.5s infinite;
	border-radius:5px;
}


/*アニメーション*/
@-webkit-keyframes anime_pulse {
	0% {
		-webkit-transform:scale(0.95);
		transform:scale(0.95);
	}
	70% {
		-webkit-transform:scale(1);
		transform:scale(1);
	}
	100% {
		-webkit-transform:scale(0.95);
		transform:scale(0.95);
	}
}

/************
募集概要
*************/
.paymentTable{
	width: 100%;
	border: 1px solid #aaa;
	margin: 2% 0;
	font-size: 0.9em;
	background: #fff;
}
.paymentTable th{
	width: 30%;
	border: 1px solid #767676;
	background: #ADADAD;
    color: #fff;
}
.paymentTable td{
	width: 70%;
	border: 1px solid #aaa;
	padding: 10px;
}

.paymentTable h6{
	font-size: 1.1em;
	margin: 1em 0 .5em 0;
	padding: .4em .6em;
	color: #333;
	text-align: left;
	letter-spacing: normal;
}
.paymentTable h6.price{color: #fff; border-radius: 5px; text-align: center;}
.paymentTable h6:first-child{margin-top: 0}
.paymentTable .big{font-size: 1.2em;}

.kiyaku{
	margin: 2% 0;
	width: 100%;
	height: 200px;
	background: #fff;
}
.kiyaku iframe{width: 100%;}
.paymentTable img{
	display: block;
	height: 30px;
	margin: .5% 0 3% 0;
}

/********
footer
********/
footer{
	background: #333;
	padding: 30px 2%;
	text-align:center;
	font-size:14px;
}
footer p{
    line-height: 1em;
	color:#FFF;
}
footer a{
	font-size:13px;
	color:#FFF;
	margin: 0 .5%;
}

@media screen and (max-width: 768px) {
/*--- 表示領域が768px以下の場合に適用するスタイル ---*/

}/*///media*/

@media screen and (max-width: 640px) {
/*--- 表示領域が640px以下の場合に適用するスタイル ---*/

	.sp{display: block!important;}
	.pc{display: none!important;}

	.text p:not([class]) br{display: none;}
	.text p.br br,.text p br.br,
	.text .price p br{display: block;}

	.right{
		float: none;
		width: 100%;
		margin: 0 auto 5%;
		padding: 0;
	}
	.flex{
		flex-direction: column;
   		align-items: center;
	}

	/*追従*/
	.cont{width: 130px;}

	/*header*/
	header{padding: .5em 0;}
	header .timer{padding-top: 1em; margin-bottom: 1em;}

	/*main*/
	h2{
		font-size: 1.4em;
		background-size: 60px;
	}
	h3,h4{font-size: 1.3em;}
	h5,.c_txt{font-size: 1.1em;}

	h6{font-size: 1em;
	letter-spacing: normal;}

	/**/
	.m_btn{
		display: block;
		width: 90%;
		margin: 0 auto 2% auto;
	}

	.intro_txt{font-size: 1.2em;}

	/******/
	.step .box {width: 100%; text-align: center;}

	.about_flex,.about_flex:nth-of-type(even) {flex-direction: column; gap: 25px;}
	.about_img,.column{width: 100%;}

	/******/
	.v_box {flex-direction: column;}
	.v_inner h3{text-align: center;}
	.v_index{width: 100%;}

	/******/
	.list{background: url(../img/list_bg.png) 70% 50% / cover;}
	.list ul:not([class]) li{
		background: url(../img/li_icon.png),linear-gradient(90deg, rgb(105, 92, 79, .95) 60%, rgba(105, 92, 79, .8) 95%);
		background-repeat: no-repeat;
		background-position: 5px 50%,center;
	}

	}

  
  .wrap{
	padding: 2% 5%;
}
  
  
	/******/
	.prof .index{
		text-align: center;
		flex-direction: column;
		margin-bottom: 1em;
	}
	.prof .prof_img{height: auto;}

	/********/
	.items .item{width: calc(50% - 8px);}

	/*form*/
	.form-mail p{font-size: 1.1em;}
	.form-item {width: 100%;}
	.label {display: none;}
	.input {margin: 1% auto;}
	.form_btn{width: 100%;}


}/*///media*/