@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400..700;1,400..700&family=Noto+Serif+JP:wght@200..900&display=swap');
@import url("sp.css") only screen and (max-width: 768px);
@import url("pc.css") only screen and (min-width: 769px);

html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h2, h3, h4, h5, h6, a, span, p {
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
ol ,
ul {
	list-style: none;
}
html {
	font-size: 1rem;
	font-size: 10px;
	height: 100%;
}
body {
	color: #333;
	font-family: "Noto Serif JP", serif;
	background: #fff;
	font-size: 1.4rem;
	line-height: 1.5;
	height: 100%;
	-webkit-text-size-adjust: 100%;
}
p {
	font-family: inherit;
	text-align: inherit;
}
img {
	max-width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	display: block;
}
a {
	text-decoration: none;
	color: inherit;
	transition: opacity .3s;
}
@media (hover:hover) {
	a:hover {
		opacity: .6;
	}
}
@media only screen and (min-width: 769px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}
@media only screen and (max-width: 1280px) {
	html {
		font-size: .78125vw;
	}
}
@media only screen and (max-width: 768px) {
	html {
		font-size: 2.56411vw;
	}
}

/* font
----------------------------------------*/
.en {
	font-family: 'Libre Baskerville', serif;
}
.gothic {
	font-family: "游ゴシック体", "Yu Gothic", YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'Noto Sans Japanese', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 769px) {
	.sp {
		display: none !important;
	}
}
@media only screen and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}

/* mv
----------------------------------------*/
.mv {
	display: flex;
	align-items: center;
	overflow: hidden;
	background: url(../img/mv_bg_01.png) no-repeat right bottom / 29.9rem auto;
}
.mv_img {
	width: 50%;
}
.mv_img img {
	max-height: 100vh;
	width: 100%;
	object-fit: cover;
	object-position: center bottom;
}
.mv_img_ribbon {
	background: #B3501A;
	color: #fff;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 42.2rem;
	height: 4.952rem;
	transform: rotate(-45deg);
	position: absolute;
	top: 5.8rem;
	left: -12.5rem;
	z-index: 2;
}
.mv_txt {
	width: 50%;
	padding: 2.8rem 0 0 1rem;
}
.mv_ttl {
	max-width: 51.2rem;
	margin: 0 auto 3.7rem;
	text-align: center;
	font-size: 3rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	border-top: .5rem solid #826937;
	border-bottom: .5rem solid #826937;
	padding: 3.1rem 0 2.6rem;
}
.mv_ttl::before {
	content: '';
	display: block;
	position: absolute;
	top: .4rem;
	left: 0;
	right: 0;
	bottom: .4rem;
	border-top: .1rem solid #826937;
	border-bottom: .1rem solid #826937;
}
.mv_ttl img {
	width: 16.8rem;
	margin: 0 auto .9rem;
}
.mv_limited {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 38.8rem;
	height: 5.5rem;
	border-radius: 3rem;
	background: #826937;
	color: #fff;
	font-size: 2.2rem;
	letter-spacing: .1em;
	font-weight: 500;
	margin: 0 auto;
	padding-top: .2rem;
}
.mv_limited .en {
	font-style: italic;
	font-size: 3.2rem;
	letter-spacing: .1em;
	vertical-align: -.3rem;
	margin: 0 .3rem 0 .2rem;
	font-weight: 400;
}
.mv_copy {
	text-align: center;
	color: #826937;
	margin: 3rem 0 0;
}
.mv_copy > span:nth-child(1) {
	font-size: 2.4rem;
	letter-spacing: .1em;
	font-weight: 600;
	display: block;
	margin-bottom: 1.2rem;
}
.mv_copy > span:nth-child(2) {
	font-size: 2.8rem;
	letter-spacing: .1em;
	font-weight: 600;
	line-height: 1.7;
	display: block;
	margin-bottom: .4rem;
}
.mv h3 {
	text-align: center;
}
.mv h3 span {
	font-size: 3.3rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: #B3501A;
	line-height: 1.7;
	background: linear-gradient(transparent 65%, #F4EBD3 65%, #F4EBD3 95%, transparent 95%);
}
.mv_btn {
	display: flex;
	justify-content: center;
	gap: 1.1rem;
	margin-top: 2.5rem;
}
.mv_btn_line,
.mv_btn_mail {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 24.6rem;
	height: 5.7rem;
	font-size: 1.5rem;
	letter-spacing: .15em;
	background: #4AC66C;
	color: #fff;
	font-weight: 700;
	border-radius: 1rem;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}
.mv_btn_line::before,
.mv_btn_mail::before {
	content: '';
	display: block;
	width: 2.4rem;
	height: 2.4rem;
	background: url(../img/icon_line.svg) no-repeat left top / 100% auto;
	margin: -.2rem 0 0;
}
.mv_btn_mail {
	background: #B3501A;
}
.mv_btn_mail::before {
	width: 2.2rem;
	height: 1.8rem;
	background-image: url(../img/icon_mail.svg);
	margin: 0 .3rem 0 0;
}
@media only screen and (max-width: 768px) {
	.mv {
		display: block;
		background: url(../img/mv_bg_01-sp.png) no-repeat right .1rem / 19.05rem auto;
	}
	.mv_img_ribbon {
		font-size: 1.6rem;
		width: 25.27rem;
		height: 2.966rem;
		top: 4.1rem;
		left: -7.1rem;
	}
	.mv_txt {
		width: auto;
		padding: 4rem 0 6rem;
		display: flex;
		flex-direction: column;
	}
	.mv_ttl {
		width: 33rem;
		margin: 0 auto 1.7rem;
		font-size: 2.2rem;
		border-top-width: .377rem;
		border-bottom-width: .377rem;
		padding: 2rem 0 1.4rem;
		order: 0;
	}
	.mv_ttl::before {
		border-top-width: .075rem;
		border-bottom-width: .075rem;
	}
	.mv_ttl img {
		width: 12.5rem;
		margin: 0 auto .5rem;
	}
	.mv_txt figure {
		order: 2;
		margin-bottom: 2rem;
	}
	.mv_limited {
		width: 35rem;
		height: 4rem;
		font-size: 2rem;
		padding-top: .1rem;
		margin-bottom: .8rem;
		order: 3;
	}
	.mv_limited .en {
		font-size: 2.6rem;
		vertical-align: -.1rem;
		margin: 0 .4rem;
	}
	.mv_copy {
		margin: 0;
		order: 1;
	}
	.mv_copy > span:nth-child(1) {
		font-size: 1.6rem;
		margin-bottom: .5rem;
	}
	.mv_copy > span:nth-child(2) {
		font-size: 2rem;
		line-height: 1.6;
		margin-bottom: 1.7rem;
	}
	.mv h3 {
		order: 4;
	}
	.mv h3 span {
		font-size: 2.6rem;
		line-height: 1.5;
		background: linear-gradient(transparent 60%, #F4EBD3 60%, #F4EBD3 98%, transparent 98%);
	}
	.mv_btn {
		gap: .7rem;
		margin: 2.2rem .9rem 0 1rem;
		order: 5;
	}
	.mv_btn_line,
	.mv_btn_mail {
		width: 18.2rem;
		height: 5rem;
		font-size: 1.4rem;
		letter-spacing: .1em;
		gap: .7rem;
	}
	.mv_btn_line::before,
	.mv_btn_mail::before {
		width: 1.8rem;
		height: 1.8rem;
		margin: -.2rem 0 0;
	}
	.mv_btn_mail::before {
		width: 1.625rem;
		height: 1.33rem;
		margin: -.1rem .1rem 0 0;
	}
	@media (orientation: portrait) {
		.mv_txt {
			padding: 5.1216vh 0 6rem;
		}
		.mv_txt figure img {
			width: 100%;
			max-height: calc(100vh - 44.2rem - 5.1216vh);
			object-fit: cover;
			object-position: center bottom;
		}
	}
}

/* data
----------------------------------------*/
.data {
	background: #F6F6F5;
	padding: 8.7rem 0 6rem;
}
.data h2 {
	text-align: center;
	align-items: center;
	justify-content: center;
	display: flex;
	gap: 4rem;
	text-align: center;
	font-size: 3rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: #826937;
	margin-bottom: 4.7rem;
}
.data h2::before,
.data h2::after {
	content: '';
	display: block;
	width: 13.2rem;
	height: .1rem;
	background: #826937;
}
.data ul {
	width: fit-content;
	margin: 0 auto 3.3rem;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: .1em;
}
.data ul li {
	padding-left: 3.5rem;
}
.data ul li::before {
	content: '';
	display: block;
	background: url(../img/icon_check_01.svg) no-repeat left top / 100% auto;
	width: 2.5rem;
	height: 2.5rem;
	position: absolute;
	top: .3rem;
	left: 0;
}
.data ul li + li {
	margin-top: 1.5rem;
}
.data ul li span {
	color: #B3501A;
	font-weight: 600;
}
.data h3 {
	text-align: center;
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: .1em;
	color: #B3501A;
}
.data h3 span {
	font-weight: 600;
}
.data h3 span::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.6rem;
	height: .3rem;
	border-top: .1rem solid #B3501A;
	border-bottom: .1rem solid #B3501A;
}
.data_graph {
	background: rgba(130, 105, 55, .1);
	max-width: 74rem;
	margin: 6.5rem auto 0;
	border-radius: 1rem;
	padding: 2rem 6rem 2rem 6.6rem;
	display: flex;
	align-items: center;
	gap: 4rem;
}
.data_graph figure {
	width: 16rem;
}
.data_graph_txt {
	flex: 1;
	padding-bottom: 1rem;
}
.data_graph h4 {
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.6;
	margin-bottom: 1.5rem;
}
.data_graph h4 span {
	color: #B3501A;
}
.data_graph_note {
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: .1em;
}
@media only screen and (max-width: 768px) {
	.data {
		padding: 5.1rem 0 .1rem;
	}
	.data h2 {
		gap: 1.8rem;
		font-size: 2.3rem;
		margin-bottom: 4rem;
	}
	.data h2::before,
	.data h2::after {
		width: 5rem;
	}
	.data ul {
		margin: 0 auto 2.7rem;
		font-size: 1.6rem;
		letter-spacing: .05em;
	}
	.data ul li {
		padding-left: 3.2rem;
	}
	.data ul li::before {
		width: 2.2rem;
		height: 2.2rem;
		top: .2rem;
	}
	.data ul li + li {
		margin-top: 1.6rem;
	}
	.data h3 {
		font-size: 2rem;
	}
	.data h3 span {
		font-size: 2.4rem;
		display: block;
		width: fit-content;
		margin: .7rem auto 0;
	}
	.data_graph {
		background: #EAE8E2;
		max-width: 37rem;
		margin: 5.6rem auto -9.8rem;
		padding: 2.8rem 1.5rem 5.2rem 2rem;
		gap: 1.7rem;
	}
	.data_graph figure {
		width: 12rem;
	}
	.data_graph_txt {
		position: static;
	}
	.data_graph h4 {
		font-size: 2.1rem;
		margin: .8rem 0 0;
	}
	.data_graph_note {
		font-size: 1.1rem;
		position: absolute;
		bottom: 2.6rem;
		left: 3.5rem;
		right: 3rem;
	}
}

/* campaign
----------------------------------------*/
.campaign {
	padding: 6.7rem 0 8rem;
}
.campaign_ttl {
	text-align: center;
}
.campaign_ttl p {
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 2;
	color: #826937;
}
.campaign_ttl p + p {
	margin-top: 1.8rem;
}
.campaign_ttl h2 {
	width: fit-content;
	margin: 4.8rem auto 3rem;
	padding: 0 4.3rem;
	text-align: center;
	font-size: 2.7rem;
	color: #826937;
	letter-spacing: .1em;
	font-weight: 500;
}
.campaign_ttl h2::before,
.campaign_ttl h2::after {
	content: '';
	display: block;
	width: .2rem;
	height: 4.5rem;
	background: #826937;
	opacity: .7;
	transform: rotate(28deg);
	position: absolute;
	bottom: -.3rem;
	right: 0;
}
.campaign_ttl h2::before {
	left: -.2rem;
	transform: rotate(-27deg);
}
.campaign h3 {
	max-width: 100rem;
	margin: 0 auto 2.6rem;
	padding: 2.9rem 0 3.1rem;
	border-top: .5rem solid #826937;
	border-bottom: .5rem solid #826937;
	text-align: center;
	font-size: 3.4rem;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.74;
	color: #826937;
}
.campaign h3::before {
	content: '';
	display: block;
	position: absolute;
	top: .4rem;
	bottom: .4rem;
	left: 0;
	right: 0;
	border-top: .1rem solid #826937;
	border-bottom: .1rem solid #826937;
}
.campaign h3 > span {
	display: block;
}
.campaign h3 > span span {
	color: #B3501A;
	background: linear-gradient(transparent 65%, #F4EBD3 65%, #F4EBD3 94%, transparent 94%);
}
.campaign_deadline {
	text-align: center;
	font-size: 2.8rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: #826937;
	margin-bottom: 1rem;
}
.campaign_note {
	text-align: center;
	color: #87682C;
	font-size: 1.6rem;
	letter-spacing: .1em;
	font-weight: 600;
	margin-bottom: 4.4rem;
}
@media only screen and (max-width: 768px) {
	.campaign {
		padding: 14rem 0 6rem;
	}
	.campaign_ttl p {
		font-size: 1.6rem;
		line-height: 1.6;
	}
	.campaign_ttl h2 {
		margin: 3.8rem auto 1.9rem;
		padding: 0 3.7rem;
		font-size: 1.8rem;
		line-height: 1.4;
		font-weight: 600;
	}
	.campaign_ttl h2::before,
	.campaign_ttl h2::after {
		width: .143rem;
		height: 5.1rem;
	}
	.campaign_ttl h2::before {
		left: 0;
	}
	.campaign h3 {
		max-width: 35rem;
		margin: 0 auto 2.1rem;
		padding: 1.7rem 0 1.9rem;
		border-top-width: .3rem;
		border-bottom-width: .3rem;
		font-size: 2.1rem;
		line-height: 1.4;
	}
	.campaign h3 > span {
		margin-bottom: .6rem;
	}
	.campaign h3 > span span {
		font-size: 2.6rem;
		line-height: 1.5;
		background: linear-gradient(transparent 65%, #F4EBD3 65%, #F4EBD3 98%, transparent 98%);
		margin-bottom: .5rem;
	}
	.campaign_deadline {
		font-size: 2rem;
		margin-bottom: .8rem;
	}
	.campaign_note {
		margin-bottom: 3.3rem;
	}
}

/* cta
----------------------------------------*/
.cta {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
}
.cta_line,
.cta_mail {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 35.4rem;
	height: 6.9rem;
	font-size: 1.5rem;
	letter-spacing: .15em;
	background: #4AC66C;
	color: #fff;
	font-weight: 700;
	border-radius: 1rem;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}
.cta_line::before,
.cta_mail::before {
	content: '';
	display: block;
	width: 2.4rem;
	height: 2.4rem;
	background: url(../img/icon_line.svg) no-repeat left top / 100% auto;
	margin: -.2rem 0 0;
}
.cta_mail {
	background: #B3501A;
}
.cta_mail::before {
	width: 2.2rem;
	height: 1.8rem;
	background-image: url(../img/icon_mail.svg);
	margin: 0 .3rem 0 0;
}
@media only screen and (max-width: 768px) {
	.cta {
		width: 35rem;
		margin: 0 auto;
		display: block;
	}
	.cta_line,
	.cta_mail {
		width: 100%;
		height: 6rem;
		padding-top: .2rem;
	}
	.cta_line::before {
		margin: -.2rem 0 0 -.3rem;
	}
	.cta_mail {
		margin-top: 1.5rem;
	}
	.cta_mail::before {
		margin: 0 .3rem 0 .4rem;
	}
}

/* present
----------------------------------------*/
.present {
	background: #F6F6F5;
	padding: 7.5rem 0 7.2rem;
}
.present h2 {
	text-align: center;
	font-size: 2.4rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-bottom: 2.3rem;
}
.present h2 .en {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .1em;
	color: #B29442;
	font-weight: 400;
	margin-bottom: 1.8rem;
}
.present h2 span:not(.en) {
	display: block;
	width: fit-content;
	margin: 0 auto;
	padding: 0 3rem 0 3.6rem;
}
.present h2 span:not(.en)::before,
.present h2 span:not(.en)::after {
	content: '';
	display: block;
	width: .1rem;
	height: 4rem;
	background: #826937;
	opacity: .7;
	transform: rotate(31deg);
	position: absolute;
	right: .2rem;
	bottom: -.6rem;
}
.present h2 span:not(.en)::before {
	left: -.2rem;
	transform: rotate(-31deg);
}
.present h3 {
	max-width: 79.6rem;
	height: 12rem;
	border-radius: 6rem;
	background: #826937;
	color: #fff;
	text-align: center;
	margin: 0 auto 2.9rem;
	font-size: 3rem;
	letter-spacing: .1em;
	font-weight: 600;
	line-height: 1.53;
	padding: 1.8rem 0 0;
}
.present h3 span {
	display: block;
	font-size: 2.4rem;
	letter-spacing: .1em;
}
.present_txt {
	text-align: center;
	font-size: 2rem;
	letter-spacing: .1em;
	font-weight: 500;
	line-height: 1.8;
	color: #826937;
}
.present_list {
	max-width: 120.5rem;
	margin: 4rem auto 5rem;
	display: flex;
	justify-content: space-between;
}
.present_list li {
	width: 22.4rem;
}
.present_list figure {
	width: 21rem;
	margin: 0 auto;
}
.present_list_num {
	font-size: 3.2rem;
	color: #B29442;
	letter-spacing: .15em;
	margin: -1.5rem 0 .7rem;
}
.present_list h4 {
	display: flex;
	justify-content: center;
	align-items: center;
	border: .1rem solid #826937;
	color: #826937;
	height: 7rem;
	border-radius: 3.5rem;
	text-align: center;
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: .1em;
}
.present_list h4 > span span {
	font-size: 1.4rem;
}
.present dt {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 44.6rem;
	height: 5.5rem;
	border-radius: 3rem;
	background: #826937;
	color: #fff;
	font-size: 2.2rem;
	letter-spacing: .1em;
	font-weight: 500;
	margin: 0 auto 2rem;
	padding-top: .2rem;
}
.present dt .en {
	font-style: italic;
	font-size: 3.2rem;
	letter-spacing: .1em;
	vertical-align: -.3rem;
	margin: 0 .3rem 0 .2rem;
	font-weight: 400;
}
.present dd {
	text-align: center;
	font-size: 1.4rem;
	line-height: 2;
	letter-spacing: .1em;
}
@media only screen and (max-width: 768px) {
	.present {
		padding: 5.7rem 0 5.2rem;
	}
	.present h2 {
		font-size: 2rem;
		margin-bottom: 1.6rem;
	}
	.present h2 .en {
		font-size: 1.5rem;
		margin-bottom: 2rem;
	}
	.present h2 span:not(.en) {
		padding: 0 2rem 0 2.8rem;
	}
	.present h2 span:not(.en)::before,
	.present h2 span:not(.en)::after {
		width: .143rem;
		height: 3.6rem;
		right: 0;
	}
	.present h2 span:not(.en)::before {
		left: -.1rem;
	}
	.present h3 {
		max-width: 35rem;
		height: 13.3rem;
		border-radius: 2rem;
		margin: 0 auto 2.4rem;
		font-size: 2.2rem;
		line-height: 1.5;
		padding: 1.6rem 0 0;
	}
	.present h3 span {
		font-size: 2.2rem;
	}
	.present_txt {
		font-size: 1.6rem;
		line-height: 1.66;
	}
	.present_list {
		max-width: 35rem;
		margin: 2.3rem auto 3.1rem;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 3rem 0;
	}
	.present_list li {
		width: 17rem;
	}
	.present_list li:last-child:nth-child(2n+1) {
		margin: 0 auto;
	}
	.present_list figure {
		width: 15.5rem;
	}
	.present_list_num {
		font-size: 2.6rem;
		margin: -.8rem 0 .4rem .5rem;
	}
	.present_list h4 {
		height: 6rem;
		font-size: 1.5rem;
		line-height: 1.35;
	}
	.present_list h4 > span span {
		font-size: 1.2rem;
		letter-spacing: .05em;
	}
	.present_list li:last-child:nth-child(2n+1) h4 {
		margin: 0 -1.5rem;
	}
	.present dt {
		width: 35rem;
		height: 5rem;
		font-size: 2rem;
		margin: 0 auto 2.2rem;
		padding-top: 0;
	}
	.present dt .en {
		font-size: 2.8rem;
		vertical-align: -.2rem;
		margin: 0 .3rem;
	}
	.present dd {
		width: 35rem;
		margin: 0 auto;
		text-align: left;
		font-size: 1.3rem;
	}
}

/* flow
----------------------------------------*/
.flow {
	padding: 7.5rem 0 8rem;
}
.flow h2 {
	text-align: center;
	font-size: 2.5rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-bottom: 5.2rem;
}
.flow h2 .en {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .1em;
	color: #B29442;
	font-weight: 400;
	margin-bottom: 1.1rem;
}
.flow_list {
	max-width: 120rem;
	margin: 0 auto 7.6rem;
	display: flex;
	justify-content: center;
	gap: 6.8rem;
}
.flow_list li {
	display: flex;
	align-items: center;
	gap: 1.9rem;
}
.flow_list li:nth-child(1) {
	width: 35.5rem;
}
.flow_list li:nth-child(2) {
	width: 33.5rem;
}
.flow_list li:nth-child(3) {
	width: 37.5rem;
}
.flow_list li + li::before {
	content: '';
	display: block;
	width: .1rem;
	height: 14rem;
	position: absolute;
	left: -3.7rem;
	top: 0;
	bottom: 0;
	margin: auto 0;
	background: #826937;
}
.flow_list li + li:nth-child(3)::before {
	left: -4.1rem;
}
.flow_list li + li::after {
	content: '';
	display: block;
	width: 2.9rem;
	height: 2.9rem;
	background: url(../img/flow_icon_arrow_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: 0;
	bottom: .3rem;
	margin: auto 0;
	left: -5.2rem;
}
.flow_list li + li:nth-child(3)::after {
	left: -5.6rem;
}
.flow_list_step {
	width: 12.1rem;
	height: 12.1rem;
	background: #826937;
	color: #fff;
	border-radius: 50%;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	font-size: 1.6rem;
	letter-spacing: .1em;
	font-weight: 400;
	padding-top: 1.1rem;
}
.flow_list_step > span span {
	display: block;
	font-size: 3rem;
	letter-spacing: .15em;
	line-height: 1.3;
}
.flow_list_txt {
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: .1em;
}
.flow_note {
	text-align: center;
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	margin: 2.6rem 0 2.8rem;
}
.flow_line {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 33.8rem;
	height: 6rem;
	border-radius: 1rem;
	border: .1rem solid #4AC66C;
	color: #4AC66C;
	margin: 0 auto;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: .05em;
	gap: 1rem;
}
.flow_line::before {
	content: '';
	display: block;
	width: 2.4rem;
	height: 2.4rem;
	background: url(../img/icon_line_green.svg) no-repeat left top / 100% auto;
	margin: -.2rem 0 0;
}
@media only screen and (max-width: 768px) {
	.flow {
		padding: 5.7rem 0 6rem;
	}
	.flow h2 {
		font-size: 2.4rem;
		margin-bottom: 3rem;
	}
	.flow h2 .en {
		font-size: 1.5rem;
		margin-bottom: 1.2rem;
	}
	.flow_list {
		max-width: 35rem;
		margin: 0 auto 4.1rem;
		display: block;
	}
	.flow_list li {
		gap: 2rem;
	}
	.flow_list li:nth-child(1),
	.flow_list li:nth-child(2),
	.flow_list li:nth-child(3) {
		width: auto;
	}
	.flow_list li + li {
		margin-top: 5.05rem;
	}
	.flow_list li + li::before {
		width: auto;
		height: .1rem;
		left: 0;
		right: 0;
		top: -2.5rem;
		bottom: auto;
		margin: 0;
	}
	.flow_list li + li:nth-child(3)::before {
		left: 0;
	}
	.flow_list li + li::after {
		transform: rotate(90deg);
		top: -3.9rem;
		bottom: auto;
		margin: 0 auto;
		left: 0;
		right: 0;
	}
	.flow_list li + li:nth-child(3)::after {
		left: 0;
	}
	.flow_list_step {
		width: 10rem;
		height: 10rem;
		font-size: 1.4rem;
		padding-top: 1rem;
	}
	.flow_list_step > span span {
		font-size: 2.6rem;
		margin-top: .4rem;
	}
	.flow_list_txt {
		font-size: 1.5rem;
		line-height: 2;
		margin-top: .2rem;
	}
	.flow_note {
		line-height: 2;
		margin: 2.2rem 0;
	}
	.flow_line {
		width: 33rem;
		height: 5rem;
		padding-top: .2rem;
	}
}

/* voice
----------------------------------------*/
.voice {
	background: #F6F6F5;
	padding: 7.5rem 0 6rem;
}
.voice h2 {
	text-align: center;
	font-size: 2.8rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-bottom: 3.3rem;
}
.voice h2 .en {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .1em;
	color: #B29442;
	font-weight: 400;
	margin-bottom: 1.9rem;
}
.voice_txt {
	text-align: center;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: .1em;
	color: #87682C;
	margin-bottom: 1.6rem;
}
.voice_txt span {
	color: #B3501A;
}
.voice dt {
	text-align: center;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: .1em;
	color: #826937;
}
.voice dd {
	text-align: center;
	font-size: 2rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-top: .2rem;
}
.voice dd span:nth-child(1) {
	color: #FFA800;
	font-size: 2.4rem;
}
.voice dd span:nth-child(2) {
	font-size: 2.4rem;
}
.voice_list {
	margin: 4.6rem 0 0;
	overflow: hidden;
}
.voice_slide {
	width: 61.6rem;
	margin: 0 auto;
}
.voice_slide .slick-next,
.voice_slide .slick-prev {
	position: absolute;
	top: 0;
	bottom: 3.7rem;
	right: -1.4rem;
	margin: auto 0;
	appearance: none;
	width: 2.9rem;
	height: 2.9rem;
	border: 0;
	padding: 0;
	border-radius: 50%;
	overflow: hidden;
	text-indent: -99rem;
	background: #826937;
	z-index: 10;
	cursor: pointer;
	display: block;
}
.voice_slide .slick-prev {
	left: -1.4rem;
	right: auto;
	transform: scale(-1, 1);
}
.voice_slide .slick-next::before,
.voice_slide .slick-prev::before {
	content: '';
	display: block;
	width: .6rem;
	height: .6rem;
	border-top: .2rem solid #fff;
	border-right: .2rem solid #fff;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	left: -.3rem;
	right: 0;
	bottom: 0;
	margin: auto;
}
.voice_slide .slick-track::after {
	content: '';
	display: block;
	clear: both;
	width: 0;
	height: 0;
}
.voice_slide .slick-dots {
	display: flex;
	justify-content: center;
	gap: 1.4rem;
	margin-top: 3rem;
}
.voice_slide .slick-dots button {
	appearance: none;
	width: .7rem;
	height: .7rem;
	padding: 0;
	display: block;
	overflow: hidden;
	border: 0;
	text-indent: -99rem;
	background: #826937;
	border-radius: 50%;
	opacity: .5;
}
.voice_slide .slick-dots .slick-active button {
	opacity: 1;
}
.voice_item {
	width: 56.6rem;
	margin: 0 2.5rem;
	border: .1rem solid #826937;
	border-radius: 2rem;
	padding: 3.5rem 4rem 3rem;
}
.slick-slider .voice_item {
	float: left;
}
.voice_item h3 {
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: .1em;
	color: #826937;
	margin-bottom: 1.2rem;
}
.voice_item p {
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 2;
}
.voice_item p + p {
	margin-top: .3rem;
}
@media only screen and (max-width: 768px) {
	.voice {
		padding: 5.4rem 0 6rem;
	}
	.voice h2 {
		font-size: 2rem;
		line-height: 1.8;
		margin-bottom: 2rem;
	}
	.voice h2 .en {
		font-size: 1.5rem;
		margin-bottom: 1.1rem;
	}
	.voice_txt {
		font-size: 1.6rem;
		line-height: 2;
		margin-bottom: 1.3rem;
	}
	.voice_list {
		margin: 4.2rem 0 0;
	}
	.voice_slide {
		width: 37.2rem;
	}
	.voice_slide .slick-next,
	.voice_slide .slick-prev {
		bottom: 2.8rem;
		right: 1.1rem;
	}
	.voice_slide .slick-prev {
		left: 1.1rem;
	}
	.voice_slide .slick-dots {
		margin-top: 2.2rem;
	}
	.voice_item {
		width: 35rem;
		margin: 0 1.1rem;
		padding: 2.5rem 2.8rem 2.1rem;
	}
	.voice_item h3 {
		margin-bottom: .7rem;
	}
}

/* reason
----------------------------------------*/
.reason {
	padding: 7.5rem 0;
}
.reason h2 {
	text-align: center;
	font-size: 2.8rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-bottom: 7.1rem;
}
.reason h2 .en {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .1em;
	color: #B29442;
	font-weight: 400;
	margin-bottom: 2.1rem;
}
.reason h2 span:not(.en) {
	font-size: 2.4rem;
	letter-spacing: .1em;
	display: block;
	margin-bottom: .4rem;
}
.reason_item {
	display: flex;
	align-items: center;
	gap: 8rem;
}
.reason_item:nth-of-type(2n) {
	flex-direction: row-reverse;
}
.reason_item figure {
	width: 50%;
}
.reason_item h3 {
	font-size: 2.2rem;
	font-weight: 500;
	color: #826937;
	letter-spacing: .1em;
	line-height: 1.8;
	margin-bottom: 1.85rem;
}
.reason_item h3 .en {
	display: block;
	width: fit-content;
	font-size: 1.4rem;
	letter-spacing: .1em;
	color: #B29442;
	line-height: 1.4;
	border-bottom: .1rem solid #B29442;
	margin-bottom: 1.9rem;
}
.reason_item p {
	font-size: 1.4rem;
	line-height: 2.2;
	letter-spacing: .1em;
}
.reason_item p + p {
	margin-top: 1.45rem;
}
.reason_box {
	width: 47rem;
	padding-bottom: 1.4rem;
}
.reason_item:nth-of-type(2) .reason_box {
	padding: .5rem 0 0;
}
.reason_item:nth-of-type(3) .reason_box {
	padding: 2.5rem 0 0;
}
.reason_item:nth-of-type(3) h3 {
	margin-bottom: 2.8rem;
}
.reason_img {
	overflow: hidden;
	margin-top: 10rem;
}
.reason_slide {
	width: 58.4rem;
	margin: 0 auto;
}
.reason_slide .slick-track::after {
	content: '';
	display: block;
	clear: both;
	width: 0;
	height: 0;
}
.reason_slide figure {
	width: 57.9rem;
	margin: 0 .25rem;
}
.reason_slide.slick-slider figure {
	float: left;
}
.reason_slide .slick-dots {
	display: flex;
	justify-content: center;
	gap: 1.4rem;
	margin-top: 3rem;
}
.reason_slide .slick-dots button {
	appearance: none;
	width: .7rem;
	height: .7rem;
	padding: 0;
	display: block;
	overflow: hidden;
	border: 0;
	text-indent: -99rem;
	background: #826937;
	border-radius: 50%;
	opacity: .5;
}
.reason_slide .slick-dots .slick-active button {
	opacity: 1;
}
@media only screen and (max-width: 768px) {
	.reason {
		padding: 5.6rem 0 8rem;
	}
	.reason h2 {
		font-size: 2.2rem;
		margin-bottom: 4.6rem;
	}
	.reason h2 .en {
		font-size: 1.5rem;
	}
	.reason h2 span:not(.en) {
		font-size: 1.8rem;
	}
	.reason_item {
		display: block;
	}
	.reason_item figure {
		width: 100%;
	}
	.reason_item h3 {
		font-size: 2rem;
		margin-bottom: .9rem;
	}
	.reason_item h3 .en {
		margin-bottom: 2.1rem;
	}
	.reason_box {
		width: auto;
		padding: 3.7rem 2.5rem 6rem;
	}
	.reason_item:nth-of-type(2) .reason_box,
	.reason_item:nth-of-type(3) .reason_box {
		padding: 3.7rem 2.5rem 5.1rem;
	}
	.reason_item:nth-of-type(3) h3 {
		margin-bottom: .9rem;
	}
	.reason_img {
		margin-top: 0;
	}
	.reason_slide {
		width: 34.5rem;
	}
	.reason_slide figure {
		width: 34rem;
	}
	.reason_slide figure img {
		width: 100%;
		aspect-ratio: 1;
		object-fit: cover;
	}
	.reason_slide .slick-dots {
		margin-top: 2rem;
	}
}

/* faq
----------------------------------------*/
.faq {
	padding: 7.5rem 0;
	background: #F6F6F5;
}
.faq h2 {
	text-align: center;
	font-size: 2.4rem;
	letter-spacing: .1em;
	font-weight: 500;
	color: #826937;
	margin-bottom: 6.9rem;
}
.faq h2 .en {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .1em;
	color: #B29442;
	font-weight: 400;
	margin-bottom: 2.1rem;
}
.faq dl {
	max-width: 99.8rem;
	margin: 0 auto;
}
.faq dt {
	font-size: 1.6rem;
	letter-spacing: .1em;
	color: #826937;
	border-bottom: .1rem solid #826937;
	padding: 0 0 1.1rem 4.4rem;
	margin-bottom: 2.7rem;
}
.faq dt .en {
	position: absolute;
	left: 0;
	top: -.2rem;
	font-size: 1.8rem;
}
.faq dd + dt {
	margin-top: 4.2rem;
}
.faq dd {
	padding: 0 0 0 4.4rem;
}
.faq dd .en {
	position: absolute;
	left: .1rem;
	top: -.1rem;
	font-size: 1.8rem;
	color: #826937;
}
.faq dd h3 {
	font-size: 1.4rem;
	letter-spacing: .05em;
	color: #826937;
	margin-bottom: .8rem;
}
.faq dd p {
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1.6429;
}
@media only screen and (min-width: 769px) {
	.faq dd {
		display: block !important;
		height: auto !important;
	}
}
@media only screen and (max-width: 768px) {
	.faq {
		padding: 5.4rem 0 3.5rem;
	}
	.faq h2 {
		font-size: 2rem;
		line-height: 1.7;
		margin-bottom: 3.6rem;
	}
	.faq h2 .en {
		font-size: 1.5rem;
		margin-bottom: 1.7rem;
	}
	.faq dl {
		max-width: 36.5rem;
		margin: 0 0 0 auto;
	}
	.faq dt {
		font-size: 1.5rem;
		line-height: 1.71;
		padding: 0 4.5rem 2.5rem 3.5rem;
		margin-bottom: 2.45rem;
		cursor: pointer;
	}
	.faq dt::after {
		content: '-';
		display: block;
		font-family: 'Libre Baskerville', serif;
		font-size: 2.6rem;
		position: absolute;
		right: 2rem;
		top: -.8rem;
	}
	.faq dt:not(.open)::after {
		content: '+';
	}
	.faq dd + dt {
		margin-top: 1.8rem;
	}
	.faq dd {
		padding: .05rem 2.5rem 3rem 3.5rem;
		display: none;
	}
	.faq dd .en {
		top: 0;
	}
	.faq dd h3 {
		line-height: 2;
		margin-bottom: .3rem;
	}
	.faq dd p {
		line-height: 2;
	}
}

/* description
----------------------------------------*/
.description {
	padding: 8rem 0 9.8rem;
}
.description_inner {
	max-width: 99.8rem;
	margin: 0 auto;
	border: .2rem solid #826937;
	border-radius: 2rem;
	padding: 3.7rem 4rem 4.1rem;
}
.description h2 {
	text-align: center;
	font-size: 2.5rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: #826937;
	margin-bottom: 2.5rem;
}
.description dl {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 2.3rem 0;
	padding-left: 3.2rem;
}
.description dt {
	width: 16rem;
	height: 4.2rem;
	border-radius: 2.1rem;
	border: .1rem solid #826937;
	background: #F4EBD3;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	color: #826937;
	font-weight: 600;
	letter-spacing: .1em;
}
.description dd {
	width: calc(100% - 16rem);
	padding-left: 4.4rem;
}
.description dd.gothic {
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1.6429;
	padding-top: .6rem;
}
.description_deadline {
	font-size: 1.6rem;
	letter-spacing: .1em;
	font-weight: 600;
	color: #87682C;
	margin: -.2rem 0 2.1rem;
}
.description_deadline span {
	font-size: 2.8rem;
	font-weight: 500;
	letter-spacing: .1em;
	margin-right: 1.6rem;
	vertical-align: -.4rem;
}
.description .cta {
	margin: 0 -.3rem .7rem 0;
}
.description .cta a {
	height: 6.5rem;
	padding-top: .2rem;
}
.description .cta_line::before {
	width: 2.3rem;
	height: 2.3rem;
	margin: -.1rem -.1rem 0 .7rem;
}
.description .cta_mail::before {
	width: 2.1rem;
	height: 1.7rem;
	margin: -.1rem .3rem 0 .6rem;
}
.description ul {
	margin-top: .1rem;
}
.description li {
	padding-left: 2rem;
}
.description li::before {
	content: '';
	display: block;
	width: .3rem;
	height: .3rem;
	border-radius: 50%;
	background: #333;
	position: absolute;
	top: .9rem;
	left: .8rem;
}
@media only screen and (max-width: 768px) {
	.description {
		padding: 5.9rem 0 9.8rem;
		overflow: hidden;
	}
	.description_inner {
		max-width: 35rem;
		padding: 2.9rem 1.8rem 0;
	}
	.description h2 {
		font-size: 2.3rem;
		margin-bottom: 2.8rem;
	}
	.description dl {
		display: block;
		padding-left: 0;
	}
	.description dt {
		width: 100%;
	}
	.description dd {
		width: auto;
		padding: 0 0 4rem;
	}
	.description dd.gothic {
		line-height: 2;
		padding-top: 1.2rem;
		padding-bottom: 3.1rem;
	}
	.description_deadline {
		text-align: center;
		margin: 2rem 0 2.4rem;
	}
	.description_deadline span {
		font-size: 2.2rem;
		display: block;
		margin: 0 0 .7rem;
	}
	.description .cta {
		width: 100%;
		margin: 0;
	}
	.description .cta a {
		width: 100%;
		height: 6rem;
	}
	.description .cta_line::before {
		margin: -.1rem -.1rem 0 .6rem;
	}
	.description .cta_mail::before {
		margin: -.1rem .3rem 0 1.5rem;
	}
	.description ul {
		margin: 0 0 -.2rem;
	}
	.description li::before {
		top: 1.2rem;
	}
}

/* float_cta
----------------------------------------*/
.float_cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 1rem;
	transition: transform .3s;
	transform: translateY(calc(100% + 1rem));
	pointer-events: none;
	z-index: 1100;
}
.float_cta.show {
	transform: none;
	pointer-events: all;
}

/* footer
----------------------------------------*/
.footer {
	background: #F6F6F5;
	border-top: .5rem solid #826937;
	text-align: center;
	padding: 7.8rem 0 7.4rem;
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
}
.footer_logo {
	width: 25.7rem;
	display: block;
	margin: 0 auto 2.2rem;
}
.footer_address {
	margin-bottom: 2.7rem;
	line-height: 2;
}
.footer_tel {
	margin-bottom: .6rem;
}
.footer_time {
	margin: 0 0 3.7rem;
	line-height: 2;
}
.footer_link {
	display: flex;
	justify-content: center;
	gap: 2.4rem;
	margin-bottom: 2rem;
}
.footer_link li + li::before {
	content: '｜';
	display: block;
	position: absolute;
	left: -1.9rem;
	top: 0;
}
.copyright {
	display: block;
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
}

/*inview
----------------------------------------*/
.js-inview {
	opacity: 0;
	transform: translateY(5rem);
	transition: opacity .5s, transform .5s;
	transition-timing-function: linear;
}
.js-inview.show {
	opacity: 1;
	transform: none;
}