@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap");

.rmd__title {
	margin-bottom: 70px;
	position: relative;
}
.rmd__title::after {
	content: "";
	width: 60px;
	height: 4px;
	position: absolute;
	bottom: -30px;
	left: 50%;
	transform: translate(-50%, 0);
	background: #1c97ad;
}
.rmd__title .sub {
	color: #1c97ad;
	font-size: 19px;
	font-weight: 500;
	text-align: center;
	margin-bottom: 13px;
}
.rmd__title h1 {
	text-align: center;
	font-size: 25px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.05em;
}
.rmd__title h1 span {
	font-size: 35px;
	display: inline-block;
	background: linear-gradient(transparent 50%, #f6ff8e 50%);
}

.rmd__lead {
	margin-bottom: 50px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}
.rmd__lead__txt {
	width: 70%;
}
.rmd__lead__img {
	width: 30%;
}
.rmd__lead__img img {
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}
.rmd__lead p {
	font-size: 16px;
	line-height: 1.9;
	margin-bottom: 14px;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	text-align: left;
}
.rmd__lead p.note {
	font-size: 14px;
	color: #c00;
	margin-bottom: 0;
}

.rmd__step {
	position: relative;
}
.rmd__step .rmd__step__label {
	border-radius: 20px 20px 0 0;
	padding: 25px 0;
	position: relative;
}
.rmd__step .rmd__step__label .rmd__step__num {
	position: absolute;
	top: 50%;
	left: 20px;
	display: inline-block;
	background: #ffa008;
	color: #fff;
	padding: 1px 10px;
	border-radius: 100vh;
	font-size: 11px;
	transform: translate(0, -50%);
}
.rmd__step .rmd__step__label .rmd__step__num span {
	font-size: 16px;
}
.rmd__step .rmd__step__label h2 {
	text-align: center;
	font-size: 24px;
	line-height: 1.5;
	font-weight: 600;
	font-family: "Noto Sans JP", sans-serif;
	font-feature-settings: "palt" on;
}
.rmd__step .rmd__step__check {
	display: none;
	position: absolute;
	top: 50%;
	right: 30px;
	width: 25px;
	transform: translate(0, -50%);
}

.rmd__step .rmd__step__content {
	display: block;
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	overflow: hidden;
	padding: 0 20px;
	transition: opacity 0.35s ease, visibility 0.35s ease, max-height 0.35s ease, padding 0.35s ease;
}

.rmd__step.closing .rmd__step__content {
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	padding: 0 20px;
}

.rmd__step .rmd__step__btn button {
	all: unset;
	color: #fff;
	background: #1c97ad;
	font-size: 18px;
	font-weight: 600;
	padding: 13px 0 12px 0;
	line-height: 1;
	width: 190px;
	border-radius: 100vh;
	cursor: pointer;
	transition: 0.3s;
	position: relative;
}
.rmd__step .rmd__step__btn button::after {
	content: "";
	width: 18px;
	height: 18px;
	background: url(../img/recommended_marker.svg) no-repeat center center;
	background-size: cover;
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translate(0, -50%) rotate(0deg);
	transition: 0.3s;
}
.rmd__step .rmd__step__btn button:hover {
	background: #ffa008;
}
.rmd__step .rmd__step__btn button:hover::after {
	transform: translate(0, -50%) rotate(360deg);
}

#step__3 .rmd__step__btn button {
	background: #c4000f;
	font-size: 20px;
	padding: 18px 0;
	width: 490px;
}
#step__3 .rmd__step__btn button::after {
	width: 24px;
	height: 24px;
	right: 25px;
}
#step__3 .rmd__step__btn button:hover {
	background: #ffa008;
}

.rmd__step__foot {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background: #fffdf4;
}
.rmd__step__foot .rmd__step__foot__inner {
	width: 100%;
	height: 20px;
	border-radius: 0 0 20px 20px;
	background: #9edde8;
}

.rmd__step.active .rmd__step__content {
	opacity: 1;
	visibility: visible;
	max-height: 1200px;
	padding: 10px 20px 30px 20px;
}

.rmd__step.done .rmd__step__check {
	display: block;
}

.rmd__step.done .rmd__step__label {
	cursor: pointer;
}
.rmd__step.done .rmd__step__label:hover {
	opacity: 0.75;
}

#step__1 {
	background: #fffdf4;
}
#step__1 .rmd__step__label,
#step__1 .rmd__step__content {
	background: #f2f9f7;
}
#step__2 {
	background: #f2f9f7;
}
#step__2 .rmd__step__label,
#step__2 .rmd__step__content {
	background: #c6edf4;
}
#step__3 {
	background: #c6edf4;
}
#step__3 .rmd__step__label,
#step__3 .rmd__step__content {
	background: #9edde8;
}

/* ラジオボタン */
.radioWrap {
	margin-bottom: 30px;
}
.radioItem {
	display: inline-flex;
	align-items: center;
	column-gap: 9px;
	line-height: 1;
	cursor: pointer;
	font-size: 19px;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
}
.radioItem:not(:last-of-type) {
	margin-right: 20px;
}
.radioButton {
	appearance: none;
	position: relative;
	width: 26px;
	height: 26px;
	border: 3px solid #1c97ad;
	border-radius: 9999px;
	cursor: pointer;
	background: #fff;
}
.radioButton:checked::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 12px;
	height: 12px;
	margin: auto;
	border-radius: 9999px;
	background-color: #1c97ad;
}

/* チェックボックス */
.checkboxWrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	//flex-direction: column;
	row-gap: 15px;
	width: 90%;
	margin: 0 auto 30px auto;
}
.checkboxItem {
	width: 48%;
	display: flex;
	align-items: center;
	text-align: left;
	column-gap: 12px;
	line-height: 1.3;
	cursor: pointer;
	font-size: 16px;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
}
.checkboxButton {
	appearance: none;
	position: relative;
	width: 26px;
	height: 26px;
	border: 3px solid #1c97ad;
	border-radius: 4px;
	cursor: pointer;
	background: #fff;
	flex-shrink: 0;
	border-radius: 100vh;
}
.checkboxButton:checked::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 12px;
	height: 12px;
	margin: auto;
	border-radius: 9999px;
	background-color: #1c97ad;
}

.rmd__goresult {
	display: none;
	margin-top: 30px;
}
.rmd__goresult.active {
	display: block;
}
.rmd__goresult .rmd__arrow {
	width: 30px;
	margin: 0 auto 30px auto;
}
.rmd__goresult .rmd__btn {
	margin-bottom: 50px;
}
.rmd__goresult .rmd__btn button {
	all: unset;
	background: #c4000f;
	color: #fff;
	padding: 18px 0;
	border-radius: 100vh;
	font-size: 20px;
	font-weight: 600;
	position: relative;
	width: 490px;
	cursor: pointer;
	transition: 0.3s;
}
.rmd__goresult .rmd__btn button::after {
	content: "";
	width: 24px;
	height: 24px;
	background: url(../img/recommended_marker.svg) no-repeat center center;
	background-size: cover;
	position: absolute;
	top: 50%;
	right: 25px;
	transform: translate(0, -50%) rotate(0deg);
	transition: 0.3s;
}
.rmd__goresult .rmd__btn button:hover {
	background: #ffa008;
}
.rmd__goresult .rmd__btn button:hover::after {
	transform: translate(0, -50%) rotate(360deg);
}

.rmd__result {
	display: none;
}
.rmd__result.active {
	display: block;
	padding-top: 40px;
}
.rmd__result .rmd__result__label {
	font-size: 26px;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #1c97ad;
	margin-bottom: 30px;
}
.rmd__result .rmd__result__list {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.rmd__result .rmd__result__list::after {
	content: "";
	display: block;
	width: 32%;
}

.listItem {
	display: none;
	width: 32%;
	margin-bottom: 2%;
}
.listItem .listItem__inner {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	border: 3px solid #1c97ad;
	border-radius: 20px;
	padding: 15px 20px;
	background: #fff;
}
.listItem .listItem__inner .rdm__item__icon {
	width: 50%;
	margin: 0 auto 10px auto;
}
.listItem .listItem__inner .rdm__item__icon img {
	width: 100%;
	height: auto;
}
.listItem.active {
	display: block;
}
.listItem h3 {
	height: 3em;
	font-size: 23px;
	font-weight: 600;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 10px;
}
.listItem p {
	font-size: 15px;
	line-height: 1.5;
	font-weight: 500;
	text-align: left;
	text-align: justify;
	text-justify: inter-ideograph;
	font-family: "Noto Sans JP", sans-serif;
}
.listItem p.note {
	font-size: 12px;
	line-height: 1.5;
	margin-top: 5px;
	text-align: left;
	text-align: justify;
	text-justify: inter-ideograph;
	font-family: "Noto Sans JP", sans-serif;
}
.listItem .rdm__item__f {
	margin-top: auto;
}
.listItem .rdm__price {
	margin-top: 10px;
	margin-bottom: 8px;
	font-size: 14px;
	text-indent: 1em;
}
.listItem .rdm__price span {
	font-size: 27px;
	font-weight: 500;
	display: inline-block;
	margin-right: 5px;
}
.listItem .rdm__link {
	display: none;
}
.listItem .rdm__link a {
	display: inline-block;
	text-decoration: none;
	color: #fff;
	background: #1c97ad;
	font-size: 13px;
	font-weight: 500;
	padding: 10px 0 9px 0;
	line-height: 1;
	width: 80%;
	border-radius: 100vh;
	transition: 0.3s;
	position: relative;
}
.listItem .rdm__link a::after {
	content: "";
	width: 14px;
	height: 14px;
	background: url(../img/recommended_marker.svg) no-repeat center center;
	background-size: cover;
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translate(0, -50%) rotate(-90deg);
	transition: 0.3s;
}
.listItem .rdm__link a:hover {
	background: #ffa008;
}
.listItem .rdm__link a:hover::after {
	transform: translate(0, -50%) rotate(-450deg);
}

.rmd__f {
	width: 100%;
	height: 50px;
}

@media only screen and (max-width: 767px) {
	.rmd__title {
		margin-bottom: 40px;
	}
	.rmd__title::after {
		bottom: -20px;
	}
	.rmd__title .sub {
		font-size: 14px;
		margin-bottom: 13px;
	}
	.rmd__title h1 {
		font-size: 20px;
		line-height: 1.5;
	}
	.rmd__title h1 span {
		font-size: 27px;
		background: linear-gradient(transparent 40%, #f6ff8e 40%, #f6ff8e 90%, transparent 90%);
	}

	.rmd__lead {
		margin-bottom: 0px;
	}
	.rmd__lead__txt {
		width: 100%;
	}
	.rmd__lead__img {
		width: 100%;
	}
	.rmd__lead__img img {
		width: 40%;
		margin: 0 auto;
	}
	.rmd__lead p {
		font-size: 15px;
		margin-bottom: 10px;
	}
	.rmd__lead p.note {
		font-size: 14px;
	}

	.rmd__step .rmd__step__label {
		padding: 30px 0;
	}
	.rmd__step .rmd__step__label .rmd__step__num {
		left: 10px;
		padding: 1px 7px;
		font-size: 10px;
	}
	.rmd__step .rmd__step__label .rmd__step__num span {
		font-size: 11px;
	}
	.rmd__step .rmd__step__label h2 {
		font-size: 17px;
	}
	.rmd__step .rmd__step__check {
		display: none;
		right: 20px;
		width: 20px;
	}

	.rmd__step.closing .rmd__step__content {
		padding: 0 10px;
	}

	.rmd__step .rmd__step__btn button {
		font-size: 16px;
		padding: 13px 0 12px 0;
		width: 190px;
	}
	.rmd__step .rmd__step__btn button::after {
		width: 18px;
		height: 18px;
		top: 50%;
		right: 15px;
		transform: translate(0, -50%) rotate(0deg);
	}

	#step__3 .rmd__step__btn button {
		background: #c4000f;
		font-size: 16px;
		padding: 18px 0;
		width: 100%;
	}
	#step__3 .rmd__step__btn button::after {
		right: 15px;
	}
	#step__3 .rmd__step__btn button:hover {
		background: #ffa008;
	}

	.rmd__step__foot .rmd__step__foot__inner {
		height: 20px;
		border-radius: 0 0 20px 20px;
	}

	.rmd__step.active .rmd__step__content {
		padding: 10px 20px 30px 20px;
	}

	/* ラジオボタン */
	.radioWrap {
		margin-bottom: 30px;
	}
	.radioItem {
		column-gap: 5px;
		font-size: 17px;
		margin: 5px 0;
	}
	.radioItem:not(:last-of-type) {
		margin-right: 10px;
	}

	/* チェックボックス */
	.checkboxWrap {
		row-gap: 12px;
		margin: 0 auto 30px auto;
		width: 100%;
	}
	.checkboxItem {
		width: 100%;
		line-height: 1.4;
		column-gap: 10px;
		font-size: 16px;
	}

	.rmd__goresult {
		display: none;
		margin-top: 15px;
	}
	.rmd__goresult .rmd__arrow {
		width: 30px;
		margin: 0 auto 15px auto;
	}
	.rmd__goresult .rmd__btn {
		margin-bottom: 30px;
	}
	.rmd__goresult .rmd__btn button {
		padding: 18px 0;
		font-size: 16px;
		width: 100%;
	}
	.rmd__goresult .rmd__btn button::after {
		right: 15px;
	}

	.rmd__result .rmd__result {
		padding-top: 20px;
	}
	.rmd__result .rmd__result__label {
		font-size: 20px;
		margin-bottom: 20px;
	}

	.listItem {
		display: none;
		width: 100%;
		margin-bottom: 4%;
	}
	.listItem .listItem__inner {
		padding: 10px 20px 20px 20px;
	}
	.listItem .listItem__inner .rdm__item__icon {
		width: 30%;
	}
	.listItem h3 {
		height: auto;
		font-size: 20px;
		margin-bottom: 10px;
	}
	.listItem p {
		font-size: 15px;
	}
	.listItem p.note {
		font-size: 12px;
		margin-top: 5px;
	}

	.listItem .rdm__price {
		margin-top: 20px;
		margin-bottom: 8px;
		font-size: 14px;
	}
	.listItem .rdm__price span {
		font-size: 27px;
		margin-right: 5px;
	}

	.listItem .rdm__link a {
		font-size: 13px;
		padding: 10px 0 9px 0;
		width: 80%;
	}
	.listItem .rdm__link a::after {
		width: 14px;
		height: 14px;
		top: 50%;
		right: 15px;
		transform: translate(0, -50%) rotate(-90deg);
	}

	.rmd__f {
		width: 100%;
		height: 50px;
	}
}
