@charset "UTF-8";


/* .search
---------------------------------------------- */
.search {
	padding-top: 80px;
}
.title {
	text-align: center;
}
.searchBox {
	width: calc(100% - 40px);
	background-color: #FAF9F7;
	border-radius: 10px;
	margin-top: 40px;
	padding: 40px 20px;
	margin-inline: auto;
}
.searchBox__title {
	display: flex;
	align-items: center;
	gap: .6em;
	font-size: 16px;
	letter-spacing: 0.15em;
	line-height: 1.8;
	margin-bottom: 30px;
	position: relative;
	z-index: 0;
}
.searchBox__title::before {
	content: '▼';
	display: block;
	font-size: inherit;
}
.searchList {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px calc(15 / 295 * 100%);
}
.searchList + .searchList {
	border-top: 1px dotted var(--key-color);
	margin-top: 30px;
	padding-top: 30px;
}
.searchList__btn {
	width: 100%;
	border: 1px solid var(--key-color);
	border-radius: 10px;
	font-size: 16px;
	font-weight: 600;
	color: var(--key-color);
	padding: 1em;
	padding-right: 1.2em;
	text-align: center;
	position: relative;
	z-index: 0;
}
.searchList__btn.active {
	background-color: var(--key-color);
	color: #fff;
}
.searchList__btn::before {
	content: '';
	position: absolute;
	top: 50%;
	right: 8%;
	width: 13px;
	aspect-ratio: 1;
	transform: translateY(-50%);
	background-color: var(--key-color);
	-webkit-mask-image: url(../img/icon_arrow.svg);
	mask-image: url(../img/icon_arrow.svg);
	mask-size: contain;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	transition: .4s ease;
	z-index: 1;
}
.searchList__btn.active::before {
	background-color: #fff;
}

.facility {
	padding-block: 40px 80px;
}
.facilityList {
	display: grid;
	grid-auto-flow: 1fr;
	row-gap: 50px;
}
.facilityList > li {
	display: none;
	border-bottom: 1px dotted #E6E6E6;
	padding-bottom: 50px;
	position: relative;
	z-index: 0;
}
.facilityList > li.is-show {
	display: block;
}
.facilityList > li.lastShow {
	border-bottom: none;
}
.mapBtn {
	position: absolute;
	bottom: 50px;
	right: 5.4%;
	width: calc(150 / 375 * 100%);
	aspect-ratio: 150 / 30;
	z-index: 1;
}
.mapBtn--noLink {
	background-color: #fff;
	pointer-events: none;
}

/* form
---------------------------------------------- */
.form {
	background-color: #F2EEE8;
	border-radius: 40px;
	margin-bottom: -40px;
	padding-block: 80px;
}
.form__inner {
	width: calc(100% - 40px);
	margin-inline: auto;
}
.stepList {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 13px;
	margin-top: 40px;
}
.stepList > li {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #FAF9F7;
	height: 60px;
	position: relative;
	z-index: 0;
}
.stepList > li.is-active {
	background-color: var(--key-color);
	color: #fff;
}
.stepList > li:not(.stepList > li:last-child)::after {
	content: '';
	width: 13px;
	height: 100%;
	background-color: inherit;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: 0;
	left: 100%;
	z-index: 0;
}
.stepList__text {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-align: center;
}
.contactBox {
	margin-top: 23px;
}
.contactBox img {
	width: 100%;
}
.form form {
	margin-top: 37px;
}

.formItem + .formItem {
	margin-top: 30px;
}
.form__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}
.form__title.required {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}
.form__title.required::after {
	content: '必須';
	display: block;
	font-size: 14px;
	line-height: 1.6;
	color: #ED8484;
	border: 1px solid #FC8B8B;
	border-radius: 5px;
	padding: 0 .3em;
}
.formItem input[type="text"],
.formItem input[type="tel"],
.formItem input[type="email"],
.formItem textarea {
	width: 100%;
	border: none;
	border-radius: 5px;
	font-size: 16px;
	letter-spacing: 0.1em;
	padding: 1em;
}

/* ラジオボックス */
input[type="radio"] {
	appearance: none;
}
.radioBox__text {
	font-size: 18px;
	letter-spacing: 0.1em;
	line-height: 1.3;
	padding-left: 30px;
	position: relative;
	z-index: 0;
}
.radioBox__text::before,
.radioBox__text::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	aspect-ratio: 1;
	border-radius: 50%;
}
.radioBox__text::before {
	left: 0;
	width: 24px;
	border: 2px solid #D9D9D9;
	background-color: #fff;
	box-sizing: border-box;
}
.radioBox__text::after {
	left: 7px;
	width: 10px;
	background-color: var(--key-color);
	opacity: 0;
	transition: opacity .2s;
}
.radioBox input[type="radio"]:checked + .radioBox__text::after {
	opacity: 1;
}

/* チェックボックス */
input[type="checkbox"] {
	appearance: none;
}
.checkboxWrap label {
	display: flex;
	align-items: flex-start;
	column-gap: 5px;
}
.checkboxWrap__text {
	font-size: 18px;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
.checkboxWrap input {
	width: 24px;
	height: 24px;
	aspect-ratio: 1;
	border-radius: 4px;
	background-color: #fff;
	border: 2px solid #D9D9D9;
	position: relative;
	z-index: 0;
}
.checkboxWrap input:checked::after {
  content: '';
  position: absolute;
  top: 5px;
  left: 4px;
  width: 12px;
  height: 6px;
  border-bottom: 2px solid var(--key-color);
  border-left: 2px solid var(--key-color);
  transform: rotate(-45deg);
}

.form__note {
	display: block;
	font-size: 12px;
	letter-spacing: 0.05em;
  line-height: 1.4;
	color: #999;
  margin-top: .5em;
}

/* ご希望の施設 */
.formFacilityBox {
	height: 350px;
	background-color: #fff;
	border-radius: 10px;
	padding: 30px 10px 30px 30px;
}
.formFacilityBox__inner {
	height: 100%;
	padding-right: 20px;
	overflow: auto;
}
.formFacilityBox__inner::-webkit-scrollbar {
  width: 6px;
	height: 300px;
	border-radius: 50vw;
}
.formFacilityBox__inner::-webkit-scrollbar-track {
	height: 300px;
  background-color: #D9D9D9;
	border-radius: 50vw;
}
.formFacilityBox__inner::-webkit-scrollbar-thumb {
  background-color: var(--key-color);
  border-radius: 50vw;
}
@-moz-document url-prefix() {
	.formFacilityBox__inner {
		scrollbar-width: thin;
		scrollbar-color: var(--key-color) #d9d9d9;
	}
}
.formFacilityList {
	/* padding-block: 30px; */
}
.formFacilityBox .checkboxWrap + .checkboxWrap {
	margin-top: 15px;
}
.formFacilityBox .checkboxWrap input {
	margin-top: 2px;
}

/* メール */
.emailError {
	display: none;
	color: red;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
	margin-block: 1em;
}

/* 住所 */
.form__zip {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.zipMark {
	flex: 1;
	font-size: 16px;
	font-weight: 600;
	text-align: center;
}
.form__zip .form_input {
	width: calc(280 / 335 * 100%);
	position: relative;
	z-index: 0;
}
.form__zip .form_input .form__note {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 0;
}
.formItem .form__zip + input {
	margin-top: 35px;
}

/* 見学希望 */
.formItem--reason .radioBox + .radioBox {
	margin-top: 10px;
}

/* プライバシーポリシー */
.privacyBox {
	border: 1px solid #B0B0B0;
	border-radius: 10px;
	margin-top: 10px;
	padding: 30px;
}
.privacyBox__text {
	font-size: 14px;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
.formItem--privacy label {
	justify-content: center;
	align-items: center;
	font-size: 18px;
	margin-top: 30px;
}

/* ボタン */
.form__btn-wrap {
	border-radius: 10px;
	background-color: #F18989;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.6;
	max-width: 280px;
	margin-top: 30px;
	margin-inline: auto;
}
.form__btn-wrap input,
.form__btn-wrap > a {
	display: block;
	background: none;
	border-radius: 0;
	border: none;
	width: 100%;
	height: 100%;
	padding: 1em;
	text-align: center;
}

/* プレースホルダー */
::placeholder {
  color: #aaa;
	font-size: 16px;
}
::-ms-input-placeholder {
  color: #aaa;
	font-size: 16px;
}

/* 確認画面
---------------------------------------------- */
.form--confirm {
	margin-top: 60px;
}
.form__content {
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0.1em;
	margin-top: 5px;
}

.backBtn {
	background-color: #fff;
	border: 1px solid #F18989;
	color: #F18989;
}
.submitBtn {
	margin-top: 10px;
}

/* 完了画面
---------------------------------------------- */
.form--complete {
	margin-top: 60px;
}
.completeText {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.6;
	margin-top: 30px;
	text-align: center;
}