@charset "utf-8";

/* ==============================
 トップページ（FV・エリア検索）
 寸法はSPデザイン（780px幅）の値を --u 倍して使う
============================== */

/* fv */
.indexFv {
	background-color: #ffffff;
	background-repeat: no-repeat;
	background-position: center bottom, center top;
	text-align: center;
	/* 高さが端数になる幅で、下の要素との継ぎ目にbodyの黒が透けるのを防ぐ */
	box-shadow: 0 1px 0 #fff;
}
/* 白フチ（8方向）→ 右下のベージュの影 の順に重ねる */
.indexFv .catch {
	color: #6f4a28;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 400;
	line-height: 1.5;
	font-feature-settings: "palt";
	text-shadow:
		0.03em 0 0 #fff, -0.03em 0 0 #fff, 0 0.03em 0 #fff, 0 -0.03em 0 #fff,
		0.02em 0.02em 0 #fff, -0.02em 0.02em 0 #fff, 0.02em -0.02em 0 #fff, -0.02em -0.02em 0 #fff,
		0.08em 0.08em 0 #d8b088;
}
.indexFv .lead {
	color: #444;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 400;
	font-feature-settings: "palt";
}
.indexFv .searchBox {
	margin: 0 auto;
	display: flex;
	background: #fff;
	border: solid 2px #333;
	border-radius: 4px;
	overflow: hidden;
}
.indexFv .searchBox .inputArea {
	flex: 1;
}
.indexFv .searchBox .inputArea input[type="text"] {
	width: 100%;
	height: 100%;
	border: none;
	border-radius: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.6' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7.5'/%3E%3Cpath d='M15.5 15.5 22 22'/%3E%3C/svg%3E") no-repeat;
	color: #333;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	letter-spacing: 0.1em;
	box-sizing: border-box;
}
.indexFv .searchBox .inputArea input[type="text"]::placeholder {
	color: #999;
}
.indexFv .searchBox .searchBtn {
	height: 100%;
	display: block;
	background: #333;
	border: none;
	border-radius: 0;
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	cursor: pointer;
}
.indexFv .searchBox .searchBtn:hover {
	background: #555;
}

/* indexMainSearchArea */
.indexP .indexMainSearchArea {
	--u: calc(100vw / 780);
	padding: calc(var(--u) * 52) 0 calc(var(--u) * 60);
	overflow: hidden;
}
.indexMainSearchArea .searchTitle {
	margin: 0 0 calc(var(--u) * 22);
	color: #000;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: calc(var(--u) * 36);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.6em;
	outline: none;
}
.indexMainSearchArea .searchTitle::before ,
.indexMainSearchArea .searchTitle::after {
	content: "";
	width: 2px;
	height: 1.1em;
	display: block;
	background: #000;
	transform: rotate(-40deg);
}
.indexMainSearchArea .searchTitle::after {
	transform: rotate(40deg);
}
.indexMainSearchArea .searchBody {
	width: calc(var(--u) * 780);
	margin: 0 auto;
	position: relative;
}
.indexMainSearchArea .searchMap {
	width: calc(var(--u) * 419);
	position: absolute;
	left: calc(var(--u) * 129);
	top: calc(var(--u) * 5);
	opacity: 0.5;
	pointer-events: none;
}
.indexMainSearchArea .searchMap img {
	width: 100%;
	height: auto;
	display: block;
}

/* 切り替え：下からふわっと浮き上がりつつフェードイン */
.indexMainSearchArea .searchStep {
	position: relative;
	animation: searchStepIn 250ms ease-out;
}
@keyframes searchStepIn {
	from {
		opacity: 0;
		transform: translateY(15px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@media (prefers-reduced-motion: reduce) {
	.indexMainSearchArea .searchStep {animation: none;}
}

/* STEP1：エリア */
.indexMainSearchArea .areaBtnList {
	height: calc(var(--u) * 430);
	position: relative;
}
.indexMainSearchArea .areaBtnList > li {
	position: absolute;
}
.indexMainSearchArea .areaBtnList .tohoku {left: calc(var(--u) * 483); top: calc(var(--u) * 6); width: calc(var(--u) * 237);}
.indexMainSearchArea .areaBtnList .kinki {left: calc(var(--u) * 164); top: calc(var(--u) * 64); width: calc(var(--u) * 218);}
.indexMainSearchArea .areaBtnList .kyushu {left: calc(var(--u) * 60); top: calc(var(--u) * 186); width: calc(var(--u) * 218);}
.indexMainSearchArea .areaBtnList .kanto {left: calc(var(--u) * 492); top: calc(var(--u) * 196); width: calc(var(--u) * 138);}
.indexMainSearchArea .areaBtnList .chubu {left: calc(var(--u) * 402); top: calc(var(--u) * 322); width: calc(var(--u) * 228);}
.indexMainSearchArea .areaBtnList .chugoku {left: calc(var(--u) * 134); top: calc(var(--u) * 344); width: calc(var(--u) * 228);}

.indexMainSearchArea .areaBtn ,
.indexMainSearchArea .prefBtn {
	width: 100%;
	height: calc(var(--u) * 82);
	padding: 0;
	display: block;
	background: rgba(187, 168, 100, 0.9);
	border: none;
	border-radius: calc(var(--u) * 8);
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: calc(var(--u) * 28);
	font-weight: 700;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: background-color 0.2s;
}
.indexMainSearchArea .areaBtn:hover ,
.indexMainSearchArea .prefBtn:hover {
	background: rgba(160, 141, 74, 0.95);
}

/* STEP2：都道府県 */
.indexMainSearchArea .prefBtnList {
	width: calc(var(--u) * 472);
	margin: 0 auto;
	padding: calc(var(--u) * 6) 0 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: calc(var(--u) * 18) calc(var(--u) * 36);
}
.indexMainSearchArea .prefBtnList[hidden] {
	display: none;
}

/* もどる */
.indexMainSearchArea .searchBack {
	margin: calc(var(--u) * 40) 0 0;
}
.indexMainSearchArea [data-step="type"] .searchBack {
	margin-top: calc(var(--u) * 130);
}
.indexMainSearchArea .backBtn {
	padding: 0;
	display: flex;
	align-items: center;
	background: none;
	border: none;
	cursor: pointer;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.indexMainSearchArea .backBtn:hover {
	opacity: 0.7;
}

/* STEP3：検索方法 */
.indexMainSearchArea .typePanel {
	width: calc(var(--u) * 674);
	margin: calc(var(--u) * 20) auto 0;
	padding: calc(var(--u) * 46) calc(var(--u) * 46) calc(var(--u) * 47);
	background: rgba(0, 0, 0, 0.57);
	position: relative;
	box-sizing: border-box;
}
.indexMainSearchArea .typeClose {
	position: absolute;
	right: calc(var(--u) * 26);
	top: calc(var(--u) * 20);
}
.indexMainSearchArea .closeBtn {
	width: calc(var(--u) * 34);
	height: calc(var(--u) * 34);
	padding: 0;
	display: block;
	background: none;
	border: none;
	position: relative;
	cursor: pointer;
}
.indexMainSearchArea .closeBtn::before ,
.indexMainSearchArea .closeBtn::after {
	content: "";
	width: 141%;
	height: 2px;
	background: #fff;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}
.indexMainSearchArea .closeBtn::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}
.indexMainSearchArea .closeBtn:hover {
	opacity: 0.7;
}
.indexMainSearchArea .typePrefName {
	margin: 0 0 calc(var(--u) * 30);
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: calc(var(--u) * 36);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.05em;
	text-align: center;
}
.indexMainSearchArea .typeBtnList {
	display: flex;
	justify-content: center;
	gap: calc(var(--u) * 24);
}
.indexMainSearchArea .typeBtnList > li {
	width: calc(var(--u) * 272);
}
.indexMainSearchArea .typeBtn {
	height: calc(var(--u) * 100);
	padding: 0 0 0 calc(var(--u) * 50);
	display: block;
	line-height: calc(var(--u) * 100);
	text-align: center;
	white-space: nowrap;
	background: #fff url("../img/common/icon_search_b.svg") no-repeat left calc(var(--u) * 30) center / calc(var(--u) * 36) calc(var(--u) * 36);
	color: #000;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: calc(var(--u) * 22);
	font-weight: 700;
	text-decoration: none;
	box-sizing: border-box;
	transition: opacity 0.2s;
}
.indexMainSearchArea .typeBtn strong {
	font-size: calc(var(--u) * 34);
}
.indexMainSearchArea .typeBtn:hover {
	color: #000!important;
	opacity: 0.8;
	text-decoration: none;
}


@media print, screen and (min-width:769px){

/* fv */
.indexFv {
	padding: 48px 16px 17.7vw;
	/* 画像より中身が高いとき、画像の上をベージュで埋める（画像の高さ = 幅 × 1374/2560。スクロールバー分の誤差を見て20px重ねる） */
	background-image: url("../img/index/img_fv_pc.webp"), linear-gradient(#f5e4c9, #f5e4c9);
	background-size: 100% auto, 100% calc(100% - 53.67vw + 20px);
}
.indexFv .catch {
	font-size: 7rem;
}
.indexFv .lead {
	margin: 35px 0 0;
	font-size: 2.4rem;
	line-height: 1.6;
}
.indexFv .searchBox {
	max-width: 710px;
	height: 70px;
	margin-top: 27px;
}
.indexFv .searchBox .inputArea input[type="text"] {
	padding: 0 16px 0 64px;
	background-position: left 22px center;
	background-size: 28px 28px;
	font-size: 2.2rem;
}
.indexFv .searchBox .searchBtn {
	width: 99px;
	font-size: 2rem;
}

/* indexMainSearchArea：PCはSPデザインを780px幅の等倍で表示 */
.indexP .indexMainSearchArea {
	--u: 1px;
}

/* STEP2：都道府県（PCデザインはボタンが横長） */
.indexMainSearchArea .prefBtnList {
	width: calc(var(--u) * 560);
	padding-top: calc(var(--u) * 40);
	gap: calc(var(--u) * 16) calc(var(--u) * 43);
}
.indexMainSearchArea .prefBtn {
	height: calc(var(--u) * 60);
	font-size: calc(var(--u) * 30);
}

/* もどる（PCはグレーの帯ボタン） */
.indexMainSearchArea .searchBack {
	text-align: center;
}
.indexMainSearchArea .backBtn {
	width: calc(var(--u) * 236);
	height: calc(var(--u) * 40);
	margin: 0 auto;
	justify-content: center;
	background: #6e6e6e;
	border-radius: 4px;
	color: #fff;
	font-size: 1.4rem;
}
.indexMainSearchArea .backBtn::before {
	content: "";
	margin: 0 12px 0 0;
	border-style: solid;
	border-width: 5px 8px 5px 0;
	border-color: transparent #fff transparent transparent;
}
.indexMainSearchArea .backBtn:hover {
	opacity: 0.8;
}

/* STEP3：検索方法 */
.indexMainSearchArea .typePanel {
	width: calc(var(--u) * 576);
	padding-left: calc(var(--u) * 46);
	padding-right: calc(var(--u) * 46);
}
.indexMainSearchArea .typeBtnList {
	gap: calc(var(--u) * 22);
}
.indexMainSearchArea .typeBtnList > li {
	width: calc(var(--u) * 232);
}
.indexMainSearchArea .typeBtn {
	height: calc(var(--u) * 86);
	padding-left: calc(var(--u) * 44);
	line-height: calc(var(--u) * 86);
	background-position: left calc(var(--u) * 24) center;
	background-size: calc(var(--u) * 30) calc(var(--u) * 30);
}

}


@media screen and (min-width:0px) and (max-width: 768px) {

/* fv */
.indexFv {
	padding: 23px 16px 11.8vw;
	/* 画像より中身が高いとき、画像の上をベージュで埋める（画像の高さ = 幅 × 496/780） */
	background-image: url("../img/index/img_fv_sp.webp"), linear-gradient(#f5e4c9, #f5e4c9);
	background-size: 100% auto, 100% calc(100% - 63.59vw + 2px);
}
.indexFv .catch {
	font-size: 2.4rem;
}
.indexFv .lead {
	margin: 16px 0 0;
	font-size: 1.1rem;
	line-height: 1.7;
}
.indexFv .searchBox {
	max-width: 328px;
	height: 46px;
	margin-top: 8px;
}
.indexFv .searchBox .inputArea input[type="text"] {
	padding: 0 8px 0 40px;
	background-position: left 10px center;
	background-size: 22px 22px;
	font-size: 1.4rem;
}
.indexFv .searchBox .searchBtn {
	width: 64px;
	font-size: 1.7rem;
}

/* もどる（SPは左寄せのテキストボタン） */
.indexMainSearchArea .searchBack {
	padding: 0 0 0 calc(var(--u) * 60);
}
.indexMainSearchArea .backBtn {
	color: #666;
	font-size: calc(var(--u) * 28);
}
.indexMainSearchArea .backBtn::before {
	content: "";
	width: calc(var(--u) * 26);
	height: calc(var(--u) * 30);
	margin: 0 calc(var(--u) * 12) 0 0;
	display: block;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 30' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M24.5 1.7v26.6L1.5 15z'/%3E%3C/svg%3E") no-repeat center / contain;
}

}
