/**
 * Menu page — styles specific to the full menu catalogue.
 * Shared card/tag/filter-chip/cat-btn styles already live in assets/css/style.css.
 */


.filter-section {
	background: white;
	position: sticky;
	top: 62px;
	z-index: 100;
	border-bottom: 1px solid var(--border);
	padding: 1rem 2rem;
}
.filter-section-inner {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
}
.filter-group { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.filter-label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-light);
	white-space: nowrap;
	/* Fixed column width so Location/Category/Dietary labels line up like a
	   table, whether the row's control is buttons/chips or a <select>. */
	min-width: 82px;
}
.filter-select {
	min-height: 40px;
	padding: 0.45rem 2rem 0.45rem 1rem;
	border: 1px solid var(--border);
	border-radius: 4px;
	background: white;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--navy);
	cursor: pointer;
	/* Same width on every row so the selects form a second aligned column
	   under the fixed-width labels, once Category/Dietary collapse to selects. */
	width: 220px;
	max-width: 100%;
}
.filter-select:hover { border-color: var(--navy); }
.filter-select:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }

.cat-btn-row,
.diet-chip-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

/* .filter-section-inner's align-items:flex-start makes every .filter-group
   shrink-wrap to its own content, so margin-left:auto on the allergy-info
   link would have no free space to push into. Stretch just this row to
   the section's full width so that auto margin has somewhere to go. */
.filter-group-dietary { align-self: stretch; }

/* Pushes the allergy-info link to the right end of the Dietary row, on
   the same row as the diet chips (no block/theme.json setting reaches
   "push this one flex item to the far end of its row"). */
.allergy-info-btn {
	margin-left: auto;
	text-decoration: none;
}
/* Category collapses to a dropdown at tablet width, Dietary at mobile width
   — the button/chip rows stay for anyone with room to browse them. */
.cat-select,
.diet-select { display: none; }
@media (max-width: 1024px) {
	.cat-btn-row { display: none; }
	.cat-select { display: inline-flex; }
}
@media (max-width: 480px) {
	.diet-chip-row { display: none; }
	.diet-select { display: inline-flex; }
}

.menu-body { max-width: 1180px; margin: 0 auto; padding: 3rem 2rem 5rem; }
.menu-section { margin-bottom: 3rem; }
.menu-section-heading {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border);
}
.menu-section-heading h3 {
	font-family: 'Allumi Std', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
	font-size: 1.3rem;
	color: var(--navy);
}
.menu-section-heading .jp-label {
	font-size: 0.85rem;
	color: var(--text-light);
	font-family: 'Noto Sans JP', sans-serif;
}

.no-results {
	display: none;
	text-align: center;
	padding: 4rem 2rem;
	color: var(--text-light);
	font-size: 1rem;
}
.no-results.visible { display: block; }

@media (max-width: 1180px) {
	.filter-section { padding: 0.85rem 1.25rem; }
	.filter-section-inner { gap: 0.65rem; }
}

.menu-footnotes {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 2rem 4rem;
	font-size: 0.78rem;
	line-height: 1.9;
	color: var(--text-light);
}
.menu-footnotes strong { color: var(--navy); }
