/* ==========================================================================
   Recipe Table of Contents
   ========================================================================== */

.recipe-toc {
	background: var(--color-neutral-50);
	border: 1px solid var(--color-neutral-200);
	border-radius: var(--card-border-radius, var(--radius-lg));
	padding: var(--spacing-4) var(--spacing-5);
	margin: var(--spacing-6) 0;
}

/* Toggle button */
.recipe-toc-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	color: var(--color-neutral-900);
}

.recipe-toc-title {
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-base);
}

.recipe-toc-icon {
	transition: transform var(--transition-fast);
	color: var(--color-neutral-500);
}

/* Collapsed state */
.recipe-toc-toggle[aria-expanded="false"] .recipe-toc-icon {
	transform: rotate(-90deg);
}

.recipe-toc-toggle[aria-expanded="false"] + .recipe-toc-list {
	display: none;
}

/* Hide entire TOC until JS populates the list (prevents CLS) */
.recipe-toc:has(.recipe-toc-list:empty) {
	display: none;
}

/* TOC list */
.recipe-toc-list {
	margin: var(--spacing-3) 0 0;
	padding-left: var(--spacing-5);
	list-style: none;
}

.recipe-toc-item {
	margin-bottom: var(--spacing-2);
}

.recipe-toc-item a {
	color: var(--color-neutral-700);
	text-decoration: none;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-relaxed);
}

.recipe-toc-item a:hover {
	color: var(--color-primary);
}

/* Nested h3 sublist */
.recipe-toc-sublist {
	margin: var(--spacing-1) 0 0;
	padding-left: var(--spacing-4);
	list-style: none;
}

.recipe-toc-item--h3 a {
	font-size: var(--font-size-xs);
	color: var(--color-neutral-600);
}

/* ==========================================================================
   CONTEXT: Inside recipe hero card
   ========================================================================== */
.rm-hero .recipe-toc {
	background: none;
	border: none;
	border-top: 1px solid var(--color-neutral-100);
	border-radius: 0;
	margin: 0;
	padding: var(--spacing-5) var(--spacing-5) var(--spacing-6);
}

@media (min-width: 992px) {
	.rm-hero .recipe-toc {
		grid-column: 1 / -1;
		padding: var(--spacing-5) var(--spacing-8) var(--spacing-8);
	}
}
