@charset "utf-8";
/* ============================================================
   めいのはまペイ取扱店一覧（shops.html）
   ============================================================ */

.shop-lead {
	text-align: center;
	font-size: 13pt;
	line-height: 2;
	margin-bottom: 34px;
}
.shop-lead strong { color: #e94a49; font-size: 15pt; font-weight: 700; }

/* 店舗名検索 */
.shop-search {
	max-width: 620px;
	margin: 0 auto 34px;
	text-align: center;
}
.shop-search label {
	display: block;
	font-size: 11pt;
	font-weight: 600;
	color: #008C71;
	margin-bottom: 10px;
}
.shop-search input {
	width: 100%;
	box-sizing: border-box;
	padding: 14px 18px;
	font-size: 13pt;
	border: 2px solid #70fde2;
	border-radius: 46px;
	outline: none;
	background-color: #fff;
	-webkit-appearance: none;
	appearance: none;
}
.shop-search input:focus { border-color: #008C71; }
.shop-hit {
	min-height: 1.6em;
	margin-top: 10px;
	font-size: 11pt;
	color: #e94a49;
	font-weight: 600;
}

/* ジャンルへのジャンプ */
.shop-jump {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 46px;
}
.shop-jump li { list-style: none; }
.shop-jump a {
	display: inline-block;
	padding: 8px 16px;
	font-size: 11pt;
	font-weight: 500;
	color: #00775f;
	background-color: #eafaf6;
	border: 1px solid #b6ece0;
	border-radius: 46px;
	text-decoration: none;
	transition: all .2s;
}
.shop-jump a:hover { color: #fff; background-color: #008C71; border-color: #008C71; }
.shop-jump a span {
	display: inline-block;
	margin-left: 6px;
	font-size: 9pt;
	color: #7a8a86;
}
.shop-jump a:hover span { color: #d8fff5; }

/* ジャンル見出し */
.shop-genre { margin-bottom: 42px; }
.shop-genre .midashi2 em {
	display: inline-block;
	margin-left: 12px;
	font-style: normal;
	font-size: 11pt;
	font-weight: 500;
	color: #008C71;
}

/* 店舗名一覧 */
.shop-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-top: 18px;
}
.shop-list li {
	list-style: none;
	padding: 14px 16px;
	font-size: 12pt;
	line-height: 1.6;
	background-color: #fdfaf3;
	border: 1px solid #efe6d4;
	border-radius: 10px;
	word-break: break-word;
}

@media screen and (max-width: 1000px) {
	.shop-list { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 640px) {
	.shop-lead { font-size: 11pt; line-height: 1.9; text-align: left; }
	.shop-lead strong { font-size: 13pt; }
	.shop-jump { gap: 6px; margin-bottom: 34px; }
	.shop-jump a { padding: 7px 12px; font-size: 10pt; }
	.shop-list { grid-template-columns: 1fr; gap: 8px; }
	.shop-list li { padding: 12px 14px; font-size: 11.5pt; }
	.shop-search input { font-size: 16px; }
	.shop-genre .midashi2 em { font-size: 10pt; margin-left: 8px; }
}

/* --- 検索ボックス：スマホでは画面上部に追従させる ------------------------- */
.shop-search-box { position: relative; }
.shop-search-box input { padding-right: 46px; }
.shop-clear {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: #cfd8d5;
	color: #fff;
	font-size: 15pt;
	line-height: 30px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.shop-clear:hover { background-color: #008C71; }
.shop-search input::-webkit-search-cancel-button { display: none; }

.shop-search-spacer { display: none; }

@media screen and (max-width: 736px) {
	.shop-search label { margin-bottom: 6px; font-size: 10pt; }
	.shop-search input { padding: 11px 46px 11px 16px; }
	.shop-hit { min-height: 0; margin-top: 6px; font-size: 10pt; }

	/* スクロールすると画面上部に貼り付く（JSで .is-fixed を付け外し） */
	.shop-search.is-fixed {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 60;
		max-width: none;
		margin: 0;
		padding: 8px 5% 6px;
		background-color: rgba(255,255,255,.97);
		-webkit-backdrop-filter: blur(4px);
		backdrop-filter: blur(4px);
		box-shadow: 0 3px 10px rgba(0,0,0,.10);
	}
	.shop-search.is-fixed label { margin-bottom: 4px; font-size: 9.5pt; }
	.shop-search-spacer.on { display: block; }
}
