@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	background-color: #FFF;
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: .05em;
	color: #333333;
}

img {
	width: 100%;
	display: block;
}

h2,
h3 {
	line-height: 1.2;
}

.inner {
	max-width: 100%;
	width: calc(100% - 80px);
	margin: 0 auto;
}

.fv-inner {
	max-width: 100%;
	width: calc(100% - 40px);
	margin: 0 auto;
}

.sp {
	display: none;
}

.abs {
	position: absolute;
}

.flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.flex.reverse {
	flex-direction: row-reverse;
}

.c-top {
	position: relative;
}

.fix {
	position: absolute;
	left: 0;
	width: 100%;
	z-index: -1;
}

.top-fix {
	top: 0;
}

.bottom-fix {
	bottom: 0;
}

.wrapper {
	max-width: 750px;
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
}

.abs-img {
	position: absolute;
}

/* 暗転オーバーレイ */
body.darkened::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.5);
	/* 暗転色 */
	z-index: 9999;
	pointer-events: none;
}

.submit-btn-cont.disabled {
	opacity: 0.5;
	pointer-events: none;
}

/* num-btn を暗転より上に */
.num-btn {
	position: relative;
	z-index: 10000;
}

header {
	width: 100%;
}

header img {
	width: 240px;
	margin: 0 auto;
	padding: 10px 0;
}

.contact-cont {
	min-height: calc(100vh - 67.5px);
	background: #F8FFF4;
}

.contact-cont-title {
	background: #29A462;
	padding: 17.5px 0;
	text-align: center;
}

.contact-cont-title h2 span {
	font-size: 14px;
	font-weight: 700;
	color: #ffff;
	padding-bottom: 5px;
}

.contact-cont-title h2 span small {
	color: #FFF500;
}

.contact-cont-title h2 p {
	font-size: 16px;
	color: #fff;
	font-weight: 700;
	padding-top: 5px;
	display: block;
}

.contact-cont-title p span#view-date {
	color: #FFF500;
	font-size: 24px;
	padding-bottom: 0;
}

.step-box {
	position: relative;
}

.step {
	display: none;
}

.step.active {
	display: block;
}

.contact-cont-form {
	padding: 50px 0;
}

.step-box h3 {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border-radius: 50px;
	background: #fff;
	border: 2px solid #29a462;
	padding: 12.5px 25px;
	margin-bottom: 15px;
}

.step-box h3 span {
	font-weight: bold;
	font-size: 16px;
	letter-spacing: 0.05em;
	color: #29a462;
}

.step-box p {
	font-weight: bold;
	font-size: 16px;
	letter-spacing: 0.05em;
	padding: 0 5px;
}

.step-box small {
	font-weight: 400;
	font-size: 10px;
	letter-spacing: 0.05em;
	color: #f28019;
}

.btn-wrap {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 20px auto 30px;
}

.step02 .btn-wrap {
	grid-template-columns: repeat(3, 1fr);
}

.step02 .step-box .btn-wrap .option {
	font-size: 16px;
	padding: 10px;
}

.step02 .step-box .btn-wrap .option small {
	display: block;
	color: #ADADAD;
	font-weight: 500;
}

.option {
	display: block;
	text-align: center;
	padding: 20px 10px;
	border-radius: 7px;
	background: #efefef;
	border: none;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: all 0.3s;
	z-index: 2;
	color: #ADADAD;
	font-size: 20px;
	font-weight: 700;
}

.option.selected,
.input-cont-radio input[type="radio"]:checked+.option,
.option:hover {
	background: #F28019;
	position: relative;
	color: #fff;
}

.option.selected small,
.step02 .step-box .btn-wrap .option.selected small,
.step02 .step-box .btn-wrap .option:hover small,
.option:hover small {
	color: #fff;
}

.num-btn-cont {
	position: relative;
	overflow: hidden;
	max-width: 305px;
	margin: 0 auto;
	text-align: center;
	border-radius: 5px;
	background: #29a462;
	box-shadow: 0px 5px 0px #1d7144;
	cursor: pointer;
	padding: 7.5px 0;
	font-size: 24px;
	font-weight: 700;
	color: #fff;
	transition: all .5s;
}

.num-btn-cont:hover {
	box-shadow: none;
	transform: translateY(5px);
}

.num-btn-cont span {
	color: #FFF500;
}

.num-btn-cont::before {
	content: '';
	position: absolute;
	top: 0;
	left: -125%;
	width: 305px;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.6), transparent);
	transform: skewX(-20deg);
	z-index: 10;
}

.num-btn-cont.shine::before {
	animation: shine 1s ease-in-out;
}

@keyframes shine {
	0% {
		left: -125%;
	}

	100% {
		left: 150%;
	}
}

.input-conts {
	margin-bottom: 30px;
}

.input-cont-title {
	margin-bottom: 10px;
}

.input-cont-title p {
	font-size: 14px;
	font-weight: 700;
}

.input-cont input,
.input-cont select {
	width: 100%;
	padding: 15px 20px;
	font-size: 16px;
	background: #fff;
	border: 1px solid #adadad;
	border-radius: 5px;
	outline: none;
}

/* inputを非表示 */
.input-cont-radio input[type="radio"] {
	display: none;
}

.input-cont-radio-wrap {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

.back-link {
	display: block;
	margin-top: 15px;
	cursor: pointer;
	color: #333;
	text-decoration: underline;
	text-align: center;
	font-size: 12px;
}

.num-btn-cont {
	margin-top: 60px;
	font-weight: bold;
}

.entry-form-info {
	background: #fff;
	padding: 15px 20px;
	height: 200px;
	overflow-y: scroll;
	margin-bottom: 10px;
}

.entry-form-info h2 {
	font-size: 12px;
	font-weight: 700;
	padding-bottom: 10px;
}

.step-box .entry-form-info p {
	font-size: 10px;
	font-weight: 400;
}

.entry-form-info p strong {
	font-weight: 700;
	padding-bottom: 5px;
}

.step-box .caution-txt p {
	font-size: 10px;
	font-weight: 400;
}

footer {
	background: #DAF2DF;
	text-align: center;
	padding: 5px 0;
}

footer p {
	font-size: 10px;
	color: #1D7144;
}

.confirm-title {
	margin-bottom: 40px;
}

.confirm-title h1 {
	font-weight: bold;
	font-size: 20px;
	letter-spacing: 0.05em;
	text-align: center;
	color: #f28019;
	padding-bottom: 30px;
}

.confirm-title p {
	font-size: 14px;
	letter-spacing: 0.05em;
	color: #333;
	font-weight: 700;
	padding-bottom: 30px;
}

.confirm-title p:last-child {
	padding-bottom: 0px;
}

.thanks-txt.confirm-title p {
	font-weight: 300;
}

.submit-btn-cont {
	color: #FFF500;
	padding-block: 12.5px;
}

.confirm-list {
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 1px solid #ADADAD;
}

.confirm-list-title {
	margin-bottom: 7.5px;
}

.confirm-list-title h3 {
	font-weight: bold;
	font-size: 14px;
	letter-spacing: 0.05em;
	color: #333;
}

.confirm-list-txt {
	font-weight: bold;
	font-size: 16px;
	letter-spacing: 0.05em;
	color: #1d7144;
}

.error-message {
	color: red;
	font-size: 13px;
	margin-top: 6px;
	display: none;
}

@media screen and (max-width: 500px) {
	.fv-inner {
		width: calc(100% - 30px);
	}

	.step-box h3 {
		padding: 12.5px 15px;
	}

	.step-box p,
	.step-box h3 span {
		font-size: 14px;
	}

	.option {
		padding: 20px 5px;
		font-size: 18px;
	}

	.btn-wrap {
		gap: 7.5px;
	}

	.step02 .step-box .btn-wrap .option {
		padding: 10px 0;
	}

	.contact-cont-title p span#view-date {
		font-size: 22px;
	}
}
