@charset "utf-8";

/* =========================================================
   Top Page Styles (top.css)
   - grid を使わず flex のみでレイアウト
   - settings.css の reset / base を前提
========================================================= */

/* ----------------------------------------
   setting.css調整
---------------------------------------- */
:root {
	--header-height: 0;
}
.main__inner{
	flex: 0 0 96%;
	margin:0 auto;
}



/* ----------------------------------------
   Hero
---------------------------------------- */
.top-hero{
	width:100%;
	max-width:1000px;
	margin:0 auto 50px auto;
	padding:24px 18px;
	border:1px solid rgba(0,0,0,0.08);
	border-radius:16px;
	background:linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.00));
	box-shadow:none;
}

.top-hero__title{
	font-family:'Montserrat', sans-serif;
	font-size:22px;
	line-height:1.25;
	font-weight:800;
	letter-spacing:0.2px;
	text-align:center;
}
.top-hero__br{
    display: none;
}
@media (max-width: 500px){
    .top-hero__br{
        display: inline;
    }
}

.top-hero__lead{
	margin-top:10px;
	font-size:13px;
	line-height:1.6;
	letter-spacing:0.4px;
	text-align:center;
	color:rgba(0,0,0,0.72);
}

/* ----------------------------------------
   Search Area Layout (Flex)
---------------------------------------- */
.top-search{
	width:100%;
	max-width:1000px;
	margin:0 auto 50px auto;
	display:flex;
	flex-wrap:wrap;
	gap:14px;
}

.top-search__box{
	flex:1 1 calc((100% - 14px) / 2);
	min-width:320px;
	padding:16px 16px 14px 16px;
	border:1px solid rgba(0,0,0,0.08);
	border-radius:14px;
	background:rgba(255,255,255,0.95);
	box-shadow:none;
}

@media (max-width: 820px){
	.top-search__box{
		flex:1 1 100%;
		min-width:0;
	}
}

.top-search__label{
	font-family:'Montserrat', sans-serif;
	font-size:14px;
	line-height:1.2;
	font-weight:800;
	letter-spacing:0.2px;
	margin:0 0 10px 0;
}

/* ----------------------------------------
   Search Form
---------------------------------------- */
.top-search__form{
	display:flex;
	align-items:stretch;
	gap:10px;
}

.top-search__input{
	width:100%;
	min-width:0;
	height:44px;
	padding:10px 12px;
	border:1px solid rgba(0,0,0,0.18);
	border-radius:12px;
	background:rgba(255,255,255,0.90);
	font-size:14px;
	line-height:1;
	letter-spacing:0.3px;
	transition:border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.top-search__input:focus{
	border-color:rgba(0,0,0,0.45);
	box-shadow:0 0 0 4px rgba(0,0,0,0.06);
	background:rgba(255,255,255,1);
}

.top-search__button{
	height:44px;
	padding:0 16px;
	border:1px solid rgba(0,0,0,0.30);
	border-radius:12px;
	background:rgba(0,0,0,0.92);
	color:#fff;
	font-size:14px;
	line-height:1;
	letter-spacing:0.3px;
	transition:transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
	white-space:nowrap;
}

.top-search__button:hover{
	transform:translateY(-1px);
	box-shadow:0 10px 20px rgba(0,0,0,0.15);
	opacity:0.98;
}

/* ----------------------------------------
   Search Chips
---------------------------------------- */
.top-search__chips{
	margin-top:12px;
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.chip{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:8px 12px;
	border-radius:999px;
	border:1px solid rgba(0,0,0,0.12);
	background:rgba(0,0,0,0.03);
	font-size:12px;
	line-height:1;
	letter-spacing:0.2px;
	transition:transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
	opacity:0.95;
	box-shadow:none;
}

.chip:hover{
	transform:translateY(-1px);
	background:rgba(0,0,0,0.06);
	border-color:rgba(0,0,0,0.22);
	opacity:1;
	box-shadow:0 10px 20px rgba(0,0,0,0.10);
}

/* ----------------------------------------
   Section
---------------------------------------- */
.top-section{
	width:100%;
	max-width:1000px;
	margin:0 auto 50px auto;
	padding:0;
}

.top-section__title{
	font-family:'Montserrat', sans-serif;
	font-size:16px;
	line-height:1.2;
	font-weight:800;
	letter-spacing:0.2px;
	margin:6px 0 12px 0;
}

.top-empty{
	padding:16px;
	border:1px dashed rgba(0,0,0,0.18);
	border-radius:12px;
	background:rgba(0,0,0,0.02);
	color:rgba(0,0,0,0.70);
	font-size:13px;
	line-height:1.6;
}

/* ----------------------------------------
   Category List (Flex)
---------------------------------------- */

.category-list{
	width:100%;
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:12px;
}

/* 5列（PC） */
.category-card{
	flex:0 0 calc((100% - 12px * 4) / 5);
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;

	gap:8px;

	padding:14px 10px;
	border:1px solid rgba(0,0,0,0.08);
	border-radius:14px;
	background:rgba(255,255,255,0.95);
	box-shadow:none;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
	min-height:96px;

	text-decoration:none;
	color:inherit;
}

.category-card__icon{
	width:100%;
	height:100%;
	display:block;
	object-fit:contain;
}

.category-card:hover{
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	border-color: #ccc;
}

.category-card__name{
	font-family:'Montserrat', sans-serif;
	font-size:13px;
	line-height:1.25;
	font-weight:800;
	letter-spacing:0.2px;
}
.category-card__icon--empty{
	width:100%;
	height:100%;
	display:block;
}
/* タブレット〜スマホ：2列 */
@media (max-width: 980px){
	.category-card{
		flex:0 0 calc((100% - 12px) / 2);
		min-height:104px;
		padding:16px 10px;
		gap:10px;
	}
	.category-card__icon{
		width:44px;
		height:44px;
	}
}

/* 極小：1列 */
@media (max-width: 420px){
	.category-card{
		flex:1 1 100%;
	}
}

/* ----------------------------------------
   Minor Utilities
---------------------------------------- */
.mono{
	font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}