/**
 * Single blog post: table of contents and author card.
 */

/* === Sidebar Column === */

/* Sidebar column */
.blog-single__sidebar {
	flex: 0 0 341px;
	width: 341px;
	max-width: 341px;
	min-width: 341px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

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

/* Table of contents panel */
.blog-single__toc {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 18px;
	border: 1.10776px solid rgba(42, 75, 242, 0.12);
	border-radius: 16px;
	background: #f7f8ff;
}

/* TOC section heading */
.blog-single__toc-title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 21px;
	color: #0d0e1c;
}

/* TOC ordered list */
.blog-single__toc-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* TOC row link */
.blog-single__toc-link {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 18px;
	font-weight: 700;
	line-height: 140%;
	color: #2a4bf2;
	text-decoration: none;
}

/* TOC section arrow icon */
.blog-single__toc-number {
	flex: none;
	display: inline-flex;
	align-items: center;
	margin-top: 4px;
	color: #2a4bf2;
}

/* TOC section label text */
.blog-single__toc-label {
	flex: 1 1 auto;
	min-width: 0;
}

/* TOC link hover and focus states */
.blog-single__toc-link:hover,
.blog-single__toc-link:focus {
	color: #1e3ad8;
}

/* TOC arrow color on hover and focus */
.blog-single__toc-link:hover .blog-single__toc-number,
.blog-single__toc-link:focus .blog-single__toc-number {
	color: #1e3ad8;
}

/* Active section -- light blue, matches the site's accent-blue reference */
.blog-single__toc-link.is-active,
/* Active section -- light blue, matches the site's accent-blue reference */
.blog-single__toc-link.is-active .blog-single__toc-number {
	color: #38bdf8;
}

/* === Author Card === */

/* Author card */
.blog-single__author-card {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
	margin-top: 0;
	padding: 18px;
	border: 1.10776px solid rgba(42, 75, 242, 0.12);
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.043);
}

/* Author profile photo */
.blog-single__author-avatar {
	display: block;
	width: 113px;
	height: 113px;
	border-radius: 4px;
	object-fit: cover;
}

/* Author name and bio stack */
.blog-single__author-copy {
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
}

/* Author label and name grouping */
.blog-single__author-heading {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

/* "About the author" label */
.blog-single__author-label {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 21px;
	color: #535353;
}

/* Author name within card */
.blog-single__author-card .blog-single__author-name {
	margin: 0;
	font-size: 24px;
	font-weight: 700;
	line-height: 21px;
	color: #0d0e1c;
}

/* Author biography text */
.blog-single__author-bio {
	margin: 0;
	font-weight: 400;
	color: #525252;
}

/* Desktop: sticky sidebar and hide footer author card */
@media (min-width: 1025px) {
	/* Sidebar — stick below header on scroll */
	.blog-single__sidebar {
		position: sticky;
		top: 96px;
	}

	/* Footer author card — hidden on desktop (sidebar version shown) */
	.blog-single__author-card--footer {
		display: none;
	}
}

/* Tablet: full-width sidebar and swap author card placement */
@media (max-width: 1024px) {
	/* Sidebar column — expand to full width */
	.blog-single__sidebar {
		flex: 1 1 auto;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	/* TOC panel — enforce border-box sizing */
	.blog-single__toc {
		box-sizing: border-box;
	}

	/* Sidebar author card — hidden (footer version shown) */
	.blog-single__author-card--sidebar {
		display: none;
	}

	/* Footer author card — shown below article content */
	.blog-single__author-card--footer {
		margin-top: 32px;
	}
}

/* Mobile: compact panels and smaller typography */
@media (max-width: 640px) {
	/* Sidebar column — tighter gap */
	.blog-single__sidebar {
		gap: 16px;
	}

	/* TOC and author card — reduced padding */
	.blog-single__toc,
	/* TOC and author card — reduced padding */
	.blog-single__author-card {
		padding: 16px;
	}

	/* Footer author card — compact top margin */
	.blog-single__author-card--footer {
		margin-top: 2rem;
	}

	/* TOC link — smaller text and gap */
	.blog-single__toc-link {
		font-size: 16px;
		gap: 10px;
	}

	/* Author avatar — smaller dimensions */
	.blog-single__author-avatar {
		width: 88px;
		height: 88px;
	}

	/* Author name — reduced size */
	.blog-single__author-card .blog-single__author-name {
		font-size: 20px;
		line-height: 1.3;
	}
}
