@charset "UTF-8";

#main {
	position: relative;
	margin: 0 auto;
	padding: 0;
	z-index: 1;
}

#main .sticky-wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

#main .sticky-wrap .sticky-float-area {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}

#main .sticky-wrap .sticky-move-area {
	position: relative;
	width: 100%;
	height: 100%;
	z-index: 3;
	background-color: var(--primary-color);
}

#main .inner {
	padding: 0 5% 3.5rem;
	text-align: center;
}

#main .note-text {
	display: inline-block;
	font-size: 1.3rem;
	margin: 2.5rem auto;
	text-align: left;
}

#main .note-text .text-indent {
	display: inline-block;
	font-size: inherit;
	padding-left: 1em;
	text-indent: -1em;
	line-height: inherit;
}

#main .note-text .text-indent br {
	display: none;
}

#main .flow-area {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: left;
}

#main .flow {
	padding-left: 0;
}

#main .flow>li {
	position: relative;
	list-style-type: none;
	padding-left: 5.5rem;
}

#main .flow>li:not(:last-child) {
	padding-bottom: 2.5rem;
}

#main .flow>li .icon05 {
	position: absolute;
	display: block;
	left: 0;
	top: 0.5rem;
	width: 4rem;
	height: 4rem;
	line-height: 4rem;
	text-align: center;
	border-radius: 9999px;
	background-color: var(--black-color);
	color: var(--primary-color);
	font-size: 1.5rem;
	font-family: var(--sans-en);
	font-weight: 500;
}

#main .flow>li:not(:last-child)::before {
	content: '';
	position: absolute;
	background-color: var(--black-color);
	width: 2px;
	height: 100%;
	top: 0.5rem;
	left: calc(2rem - 1px);
}

#main .flow>li dl dt {
	font-size: 1.8rem;
	font-weight: 500;
	color: var(--black-color);
}

#main .flow>li dl dd {
	margin-left: 0;
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--black-color);
}

#main .flow>li dl dd a {
	color: var(--black-color);
	text-decoration: underline;
}

@media only screen and (min-width: 1080px) {
	#main .sticky-wrap {
		flex-direction: row;
		justify-content: space-between;
		align-items: stretch;
		min-height: 720px;
	}

	#main .sticky-wrap .sticky-float-area {
		flex: 1;
		height: 100vh;
		min-height: 100%;
	}

	#main .sticky-wrap .sticky-move-area {
		flex: 1;
		height: 100%;
		min-height: 100%;
	}
}

/*--------------------------*/
/* メインビジュアル */
/*--------------------------*/
.mv {
	position: relative;
	width: 100%;
	height: 77.5vh;
	height: 77.5svh;
	min-height: 77.5vh;
	min-height: 77.5svh;
}

.mv .mv-bg-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	min-height: 100%;
	z-index: 1;
}

.mv .mv-bg-image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right center;
	opacity: 0;
	animation: fadeInOut 8s infinite;
	transition: opacity 2s ease-in-out;
}

.mv .mv-bg-image img:nth-child(1) {
	animation-delay: 0s;
}

.mv .mv-bg-image img:nth-child(2) {
	animation-delay: 4s;
}

@keyframes fadeInOut {
	0% {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

.mv h1 {
	position: absolute;
	top: 10px;
	left: 10px;
	width: auto;
	height: 55vh;
	height: 55svh;
	z-index: 2;
}

.mv h1 img {
	width: auto;
	height: 100%;
}

@media only screen and (min-width: 480px) {
	.mv h1 {
		top: 15px;
		left: 20px;
		height: 62.5vh;
		height: 62.5svh;
	}
}

@media only screen and (min-width: 768px) {
	.mv {
		height: 80vh;
		height: 80svh;
		min-height: 760px;
	}

	.mv h1 {
		left: 50px;
		height: 62.5vh;
		min-height: 640px;
	}
}

@media only screen and (min-width: 1080px) {
	.mv {
		height: 100%;
		min-height: 100%;
	}

	.mv .mv-bg-image img {
		left: auto;
		right: 0;
		width: auto;
		min-width: 640px;
		height: 100%;
	}
}

@media only screen and (min-width: 1600px) {
	.mv h1 {
		left: calc(7.5vw * -1);
	}
}

#sec-head {
	padding: 0;
	min-height: 100vh;
	min-height: 100dvh;
}

#section01 {
	padding: 0;
}

#section01 h1 {
	margin: -35vw auto 0;
	width: 95%;
	max-width: 380px;
}

#section01 h2 {
	margin: 2.5rem auto 0;
	text-align: center;
	color: var(--white-color);
	font-size: 5.6vw;
	font-weight: 700;
	line-height: 1.5;
}

#section01 h2 em {
	display: block;
	font-size: 1.35em;
	font-weight: 700;
}

#section01 h3 {
	margin: 2rem auto 0;
	text-align: center;
	color: var(--black-color);
	font-size: 5vw;
	font-weight: 700;
	line-height: 1.5;
}

#section01 h3 span {
	position: relative;
	display: inline-block;
	padding: 0 2em;
}

#section01 h3 span::before,
#section01 h3 span::after {
	position: absolute;
	display: inline-block;
	content: '';
	bottom: 1em;
	width: 44px;
	height: 1px;
	background-color: #000;
}

#section01 h3 span::before {
	transform: rotate(50deg);
	left: 0;
}

#section01 h3 span::after {
	transform: rotate(-50deg);
	right: 0;
}

#section01 .form-btn {
	margin-left: auto;
	margin-right: auto;
	padding: 4rem 0 4rem;
	max-width: 580px;
	text-align: center;
}

#section01 .form-btn a {
	display: inline-block;
	position: relative;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: var(--black-color);
	border-radius: 100vh;
	padding: calc(2rem - 12px) 4rem 2rem;
	background: var(--white-color);
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}

#section01 .form-btn a::before {
	content: "";
	position: absolute;
	top: -6px;
	left: -6px;
	width: 100%;
	height: 100%;
	border: 3px solid var(--black-color);
	border-radius: 100vh;
	-webkit-transition: all 0.3s ease;
	transition: all 0.3s ease;
}

#section01 .form-btn a:hover {
	padding: calc(2rem - 6px) 4rem;
}

#section01 .form-btn a:hover::before {
	top: 0;
	left: 0;
}

#section01 .lead {
	margin: 0 5% 5rem;
	font-size: 1.3rem;
}

@media only screen and (min-width: 480px) {
	#section01 h1 {
		margin-top: -80px;
	}

	#section01 h2 {
		font-size: 2.4rem;
	}

	#section01 h2 em {
		font-size: 1.45em;
	}

	#section01 h3 {
		margin: 2.5rem auto 0;
		font-size: 2rem;
	}

	#section01 h3 span {
		padding: 0 2.5em;
	}

	#section01 h3 span::before,
	#section01 h3 span::after {
		position: absolute;
		display: inline-block;
		content: '';
		bottom: 1em;
		width: 44px;
		height: 1px;
		background-color: #000;
	}

	#section01 h3 span::before {
		transform: rotate(50deg);
		left: 0;
	}

	#section01 h3 span::after {
		transform: rotate(-50deg);
		right: 0;
	}

	#section01 h3 span .sp-only {
		display: none;
	}

	#section01 .form-btn a {
		padding: calc(2rem - 12px) 6rem 2rem;
	}

	#section01 .form-btn a:hover {
		padding: calc(2rem - 6px) 6rem;
	}
}

@media only screen and (min-width: 768px) {
	#section01 h1 {
		margin-top: -100px;
		max-width: 460px;
	}

	#section01 .form-btn a {
		padding: calc(2rem - 12px) 8rem 2rem;
	}

	#section01 .form-btn a:hover {
		padding: calc(2rem - 6px) 8rem;
	}
}

@media only screen and (min-width: 1080px) {
	#section01 {
		padding: 5rem 0 0 75px;
	}

	#section01 h1 {
		margin-top: 0;
	}

	#section01 .form-btn a {
		padding: calc(2rem - 12px) 10rem 2rem;
	}

	#section01 .form-btn a:hover {
		padding: calc(2rem - 6px) 10rem;
	}
}

#section03 {
	padding: 10px 0;
}

@media only screen and (min-width: 768px) {}

@media only screen and (min-width: 1080px) {
	#section03 {
		padding: 0 0 5rem 75px;
	}
}

#section05 {
	padding: 0 15px 3.5rem;
}

#section05 .accordion-area {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

#section05 .accordion-area .shop-list-title {
	background-color: var(--primary-color);
}

#section05 .note-text {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

@media only screen and (min-width: 480px) {
	#section05 .section-area-inner {
		padding: 3.5rem 2.5rem;
	}
}

@media only screen and (min-width: 768px) {}

@media only screen and (min-width: 1080px) {
	#section05 {
		padding: 3.5rem 0 5rem 75px;
	}

	#section05 .section-area-inner {
		background-color: inherit;
	}

	#section05 .accordion-area .shop-list-title {
		background-color: var(--primary-color);
	}
}

#banners {
	padding: 3.5rem 1.5rem 5rem;
	background-color: var(--primary-color);
}

#banners .sub-banner-flex {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	flex-direction: column;
}

@media only screen and (min-width: 480px) {
	#banners {
		padding: 3.5rem 2.5rem 7.5rem;
	}
}

@media only screen and (min-width: 768px) {}

@media only screen and (min-width: 1080px) {
	#banners {
		padding: 0 0 7.5rem 75px;
		background-color: inherit;
	}

	#banners .sub-banner-flex {
		max-width: 100%;
	}

	#banners .sub-banner-flex a {}
}


.backPageBtn {
	margin-top: 2.5rem;
	margin-bottom: 0;
	width: 100%;
	max-width: 420px;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	padding: 0 15px;
}

.backPageBtn a {
	display: block;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 24px;
	padding: 1.5rem 1.5rem;
	text-decoration: none;
	color: #fff;
	border: 1px solid var(--black-color);
	background-color: var(--black-color);
	opacity: 1;
}

@media only screen and (min-width: 480px) {
	.backPageBtn a {
		font-size: 1.8rem;
		line-height: 32px;
	}
}

@media only screen and (min-width: 1025px) {
	.backPageBtn {
		display: inline-block;
		padding-left: 75px;
		max-width: inherit;
		margin-bottom: 5rem;
	}

	.backPageBtn a {
		display: inline-block;
		line-height: 36px;
		font-size: 1.8rem;
		padding: 1.5rem 7.5rem;
	}
}