/* Stock Yard Menu — structure only. Brand colours/type go in Theme Options.
 * Variables (override on .sy-menu):
 *   --sy-menu-text, --sy-menu-heading, --sy-menu-accent (star, active tab),
 *   --sy-menu-rule, --sy-menu-muted-opacity, --sy-menu-gap, --sy-menu-scroll-offset
 */

.sy-menu {
	--sy-menu-text: inherit;
	--sy-menu-heading: inherit;
	--sy-menu-accent: currentColor;
	--sy-menu-rule: color-mix(in srgb, currentColor 22%, transparent);
	--sy-menu-muted-opacity: .75;
	--sy-menu-gap: 32px;
	--sy-menu-scroll-offset: 120px; /* height of the sticky header, for jump links */
	color: var(--sy-menu-text);
}

/* Reset Divi's content list styles (.entry-content ul / .et-l--body ul add bullets + padding) */
.sy-menu ul.sy-menu-items,
.sy-menu .sy-menu-jump ul,
.sy-menu ul.sy-menu-diet { list-style: none; margin: 0; padding: 0; line-height: inherit; }
.sy-menu ul.sy-menu-items > li,
.sy-menu .sy-menu-jump li,
.sy-menu ul.sy-menu-diet > li { list-style: none; }

/* Tabs */
.sy-menu-tabs { display: flex; gap: 8px; margin-bottom: var(--sy-menu-gap); border-bottom: 1px solid var(--sy-menu-rule); }
.sy-menu-tab {
	appearance: none; background: none; border: 0; border-bottom: 3px solid transparent;
	margin-bottom: -1px; padding: 10px 18px; font: inherit; color: inherit; cursor: pointer;
	opacity: var(--sy-menu-muted-opacity);
}
.sy-menu-tab[aria-selected="true"] { opacity: 1; border-bottom-color: var(--sy-menu-accent); }
.sy-menu-tab:focus-visible { outline: 2px solid var(--sy-menu-accent); outline-offset: 2px; }
.sy-menu-panel[hidden] { display: none; }

/* Jump links */
.sy-menu-jump { margin-bottom: var(--sy-menu-gap); }
.sy-menu-jump { scroll-margin-top: var(--sy-menu-scroll-offset); }
.sy-menu-jump ul { display: flex; flex-wrap: wrap; row-gap: 8px; list-style: none; margin: 0; padding: 0; }
.sy-menu-jump li { margin: 0; padding: 0; }
.sy-menu-jump a { color: inherit; }
/* "  •  " between links — drawn by CSS so screen readers don't read the bullets */
/* Bullets between links, CSS only (left-aligned rows).
   Every link gets a leading bullet; the list is pulled left by one bullet's width and
   the row clips its overflow, so the bullet that starts each line sits off-edge and
   is hidden — at any number of lines, with no measuring. */
.sy-menu .sy-menu-jump { --sy-menu-jump-sep: 1.3em; overflow: hidden; }
.sy-menu .sy-menu-jump ul { margin-left: calc(-1 * var(--sy-menu-jump-sep)); }
.sy-menu .sy-menu-jump li::before {
	content: "\2022";
	display: inline-block;
	width: var(--sy-menu-jump-sep);
	text-align: center;
	opacity: var(--sy-menu-muted-opacity);
}

/* Sections */
.sy-menu-section { margin-bottom: var(--sy-menu-gap); scroll-margin-top: var(--sy-menu-scroll-offset); }
.sy-menu-section-title { color: var(--sy-menu-heading); margin: 0 0 8px; padding: 0; }
.sy-menu-section-note { margin: 0 0 16px; opacity: var(--sy-menu-muted-opacity); font-style: italic; }

/* Items */
.sy-menu-items { list-style: none; margin: 0; padding: 0; }
.sy-menu-item { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--sy-menu-rule); }
.sy-menu-item:last-child { border-bottom: 0; }

.sy-menu-item-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.sy-menu-item-name { color: var(--sy-menu-heading); margin: 0; padding: 0; font-size: 1.1em; }
.sy-menu-item-prices { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 14px; white-space: nowrap; flex-shrink: 0; }
.sy-menu-price-label { opacity: var(--sy-menu-muted-opacity); font-size: .85em; }

.sy-menu-item-desc { margin: 4px 0 0; padding: 0; }
.sy-menu-item-addons { margin: 4px 0 0; padding: 0; font-size: .9em; opacity: var(--sy-menu-muted-opacity); }

.sy-menu-feature { display: inline-flex; vertical-align: -0.1em; color: var(--sy-menu-accent); }
.sy-menu-feature svg, .sy-menu-feature-img { width: .9em; height: .9em; object-fit: contain; }

.sy-menu ul.sy-menu-diet { display: flex; gap: 6px; margin-top: 6px; }
.sy-menu-diet li { margin: 0; padding: 0; }

/* Dietary tag chip — same look on items and in the key */
.sy-menu-tag {
	display: inline-block;
	padding: 0 5px;
	border: 1px solid var(--sy-menu-rule);
	font-size: .75em;
	line-height: 1.6;
	letter-spacing: .05em;
}

/* Key: explains the star and the tags actually used on the page */
.sy-menu ul.sy-menu-legend {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px;
	list-style: none; margin: 0 0 var(--sy-menu-gap); padding: 0;
	font-size: 16px; line-height: 1.4;
}
.sy-menu .sy-menu-legend-item { list-style: none; margin: 0; padding: 0; display: inline-flex; align-items: center; gap: 6px; }
.sy-menu-legend .sy-menu-tag { font-size: 12px; }
.sy-menu-legend .sy-menu-feature { font-size: 1.1em; }

.sy-menu-disclaimer { margin-top: var(--sy-menu-gap); font-size: .85em; opacity: var(--sy-menu-muted-opacity); }

.sy-menu .sy-sr {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

@media (max-width: 600px) {
	.sy-menu-item-head { flex-wrap: wrap; }
}
