/**
 * Alee Smart TOC — Editorial preset (v2)
 *
 * Clean, minimal, left-border accent style. Now with:
 * - Solid background when sticky (fixes overlap with article content)
 * - Prominent toggle button (light gray pill)
 * - Proper initial-state classes (separate desktop/mobile)
 * - Min 44px tap target on mobile
 * - Smooth collapse animation
 */

.alee-smart-toc.alee-toc--editorial {
	--alee-toc-accent: #c0392b;
	--alee-toc-text: #111;
	--alee-toc-muted: #6b7280;
	--alee-toc-border: #e5e7eb;
	--alee-toc-bg: transparent;
	--alee-toc-btn-bg: #f3f4f6;
	--alee-toc-btn-bg-hover: #e5e7eb;
	--alee-toc-btn-text: #374151;
	--alee-toc-radius: 6px;

	display: block;
	margin: 1.75em 0 2em;
	padding: 14px 0 14px 18px;
	border-left: 2px solid var(--alee-toc-border);
	background: var(--alee-toc-bg);
	font-family: inherit;
	line-height: 1.55;
	color: var(--alee-toc-text);
	box-sizing: border-box;
}

/* Head — flex, centered */
.alee-smart-toc.alee-toc--editorial .alee-toc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

/* Title */
.alee-smart-toc.alee-toc--editorial .alee-toc-title {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--alee-toc-muted);
	line-height: 1.4;
}

/* TOGGLE BUTTON — prominent pill, gray bg, clear hover, big tap target */
.alee-smart-toc.alee-toc--editorial .alee-toc-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	padding: 6px 12px;
	background: var(--alee-toc-btn-bg);
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--alee-toc-btn-text);
	cursor: pointer;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	font-family: inherit;
	line-height: 1;
}
.alee-smart-toc.alee-toc--editorial .alee-toc-toggle:hover {
	background: var(--alee-toc-btn-bg-hover);
	color: var(--alee-toc-text);
}
.alee-smart-toc.alee-toc--editorial .alee-toc-toggle:active {
	transform: scale(0.97);
}
.alee-smart-toc.alee-toc--editorial .alee-toc-toggle:focus-visible {
	outline: none;
	border-color: var(--alee-toc-accent);
	box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.15);
}
.alee-smart-toc.alee-toc--editorial .alee-toc-chev {
	transition: transform .2s ease;
	flex-shrink: 0;
}

/* Clickable header (entire head acts as toggle) */
.alee-smart-toc.alee-toc--editorial.alee-toc--header-click .alee-toc-head {
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

/* Body — collapsible animation via grid-template-rows trick */
.alee-smart-toc.alee-toc--editorial .alee-toc-body {
	display: grid;
	grid-template-rows: 1fr;
	overflow: hidden;
	transition: grid-template-rows .28s ease;
}
.alee-smart-toc.alee-toc--editorial .alee-toc-body > * {
	min-height: 0;
}

/* Lists */
.alee-smart-toc.alee-toc--editorial .alee-toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.alee-smart-toc.alee-toc--editorial .alee-toc-list--1,
.alee-smart-toc.alee-toc--editorial .alee-toc-list--2 {
	padding-left: 14px;
}

.alee-smart-toc.alee-toc--editorial .alee-toc-item { margin: 0; padding: 0; }

.alee-smart-toc.alee-toc--editorial .alee-toc-link {
	position: relative;
	display: block;
	padding: 7px 0 7px 18px;
	margin-left: -20px;
	font-size: 0.95rem;
	color: var(--alee-toc-text);
	text-decoration: none;
	border-left: 2px solid transparent;
	transition: color .15s ease, border-color .15s ease;
	line-height: 1.45;
}
.alee-smart-toc.alee-toc--editorial .alee-toc-list--1 .alee-toc-link,
.alee-smart-toc.alee-toc--editorial .alee-toc-list--2 .alee-toc-link {
	font-size: 0.88rem;
	color: var(--alee-toc-muted);
}
.alee-smart-toc.alee-toc--editorial .alee-toc-link:hover {
	color: var(--alee-toc-accent);
}
.alee-smart-toc.alee-toc--editorial .alee-toc-link.is-active {
	color: var(--alee-toc-accent);
	border-left-color: var(--alee-toc-accent);
	font-weight: 600;
}

/* Numbered */
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list { counter-reset: alee-toc-0; }
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list--0 > .alee-toc-item { counter-increment: alee-toc-0; }
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list--0 > .alee-toc-item > .alee-toc-link .alee-toc-text::before {
	content: counter(alee-toc-0) ". ";
	color: var(--alee-toc-muted);
	font-variant-numeric: tabular-nums;
	margin-right: 4px;
}
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list--1 { counter-reset: alee-toc-1; }
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list--1 > .alee-toc-item { counter-increment: alee-toc-1; }
.alee-smart-toc.alee-toc--editorial.alee-toc--numbered .alee-toc-list--1 > .alee-toc-item > .alee-toc-link .alee-toc-text::before {
	content: counter(alee-toc-0) "." counter(alee-toc-1) " ";
}

/* =====================================================================
   COLLAPSE STATES — uses .is-collapsed class toggled by JS
   ===================================================================== */
.alee-smart-toc.alee-toc--editorial.is-collapsed .alee-toc-body {
	grid-template-rows: 0fr;
}
.alee-smart-toc.alee-toc--editorial.is-collapsed .alee-toc-chev {
	transform: rotate(-180deg);
}

/* =====================================================================
   STICKY — solid background to prevent content bleeding through
   ===================================================================== */
@media (min-width: 1024px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--sticky-desktop {
		position: sticky;
		top: calc(var(--alee-toc-sticky-top, 20px));
		align-self: flex-start;
		z-index: 10;
		background: #fff;
		padding: 14px 16px;
		border: 1px solid var(--alee-toc-border);
		border-left: 3px solid var(--alee-toc-accent);
		border-radius: var(--alee-toc-radius);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
	}
}
@media (max-width: 1023px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--sticky-mobile {
		position: sticky;
		top: var(--alee-toc-sticky-top, 12px);
		z-index: 10;
		background: #fff;
		padding: 12px 14px;
		border: 1px solid var(--alee-toc-border);
		border-left: 3px solid var(--alee-toc-accent);
		border-radius: var(--alee-toc-radius);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	}
}

/* =====================================================================
   MOBILE — bigger tap targets
   ===================================================================== */
@media (max-width: 767px) {
	.alee-smart-toc.alee-toc--editorial .alee-toc-toggle {
		min-height: 44px;
		padding: 10px 18px;
		font-size: 0.85rem;
	}
	.alee-smart-toc.alee-toc--editorial.alee-toc--header-click .alee-toc-head {
		padding: 6px 0;
	}
	.alee-smart-toc.alee-toc--editorial .alee-toc-link {
		padding: 10px 0 10px 18px;
		font-size: 1rem;
	}
	.alee-smart-toc.alee-toc--editorial .alee-toc-list--1 .alee-toc-link,
	.alee-smart-toc.alee-toc--editorial .alee-toc-list--2 .alee-toc-link {
		font-size: 0.94rem;
	}
}

/* =====================================================================
   INITIAL COLLAPSE STATES — applied server-side via classes
   =====================================================================
   .alee-toc--init-d-collapsed  : start collapsed on desktop
   .alee-toc--init-m-collapsed  : start collapsed on mobile
   The JS layer adds .is-collapsed as needed on mount, but we also
   provide pure-CSS fallback so there's no flash if JS is delayed.
   ===================================================================== */
@media (min-width: 768px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-d-collapsed:not(.is-mounted) .alee-toc-body {
		grid-template-rows: 0fr;
	}
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-d-collapsed:not(.is-mounted) .alee-toc-chev {
		transform: rotate(-180deg);
	}
}
@media (max-width: 767px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-m-collapsed:not(.is-mounted) .alee-toc-body {
		grid-template-rows: 0fr;
	}
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-m-collapsed:not(.is-mounted) .alee-toc-chev {
		transform: rotate(-180deg);
	}
}

/* Label swap — show "ย่อ" when expanded, "ขยาย" when collapsed */
.alee-smart-toc.alee-toc--editorial .alee-toc-label-closed { display: none; }
.alee-smart-toc.alee-toc--editorial.is-collapsed .alee-toc-label-open   { display: none; }
.alee-smart-toc.alee-toc--editorial.is-collapsed .alee-toc-label-closed { display: inline; }

/* Pure-CSS initial label swap (pre-JS) */
@media (min-width: 768px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-d-collapsed:not(.is-mounted) .alee-toc-label-open   { display: none; }
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-d-collapsed:not(.is-mounted) .alee-toc-label-closed { display: inline; }
}
@media (max-width: 767px) {
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-m-collapsed:not(.is-mounted) .alee-toc-label-open   { display: none; }
	.alee-smart-toc.alee-toc--editorial.alee-toc--init-m-collapsed:not(.is-mounted) .alee-toc-label-closed { display: inline; }
}

/* Scroll-margin for anchor targets */
article h2[id], article h3[id], article h4[id],
.entry-content h2[id], .entry-content h3[id], .entry-content h4[id] {
	scroll-margin-top: var(--alee-toc-anchor-offset, 80px);
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
	.alee-smart-toc.alee-toc--editorial {
		--alee-toc-text: #e5e7eb;
		--alee-toc-muted: #9ca3af;
		--alee-toc-border: #2d3139;
		--alee-toc-btn-bg: #1f2530;
		--alee-toc-btn-bg-hover: #2d3139;
		--alee-toc-btn-text: #d1d5db;
	}
	.alee-smart-toc.alee-toc--editorial.alee-toc--sticky-desktop,
	.alee-smart-toc.alee-toc--editorial.alee-toc--sticky-mobile {
		background: #161a1f;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.alee-smart-toc.alee-toc--editorial *,
	.alee-smart-toc.alee-toc--editorial .alee-toc-body {
		transition: none !important;
	}
}
