/* ============================================================
   Venture Mentor Hub — Single Post template
   Loaded only on .vmh-tpl-single. All selectors scoped under that
   class so this CSS never leaks onto other templates.
   ============================================================ */

.vmh-tpl-single.vmh-page { overflow-x: clip; }

/* Reading-progress bar — fixed top, fills as user scrolls */
.vmh-tpl-single .vmh-reading-progress {
	position: fixed; top: 0; left: 0;
	width: 0%; height: 3px;
	background: var(--vmh-c-crimson);
	z-index: 99;
	transition: width 80ms linear;
	pointer-events: none;
}

/* ============= POST HERO ============= */
.vmh-tpl-single .vmh-post-hero {
	padding-block: clamp(3rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem);
}
.vmh-tpl-single .vmh-post-hero__inner {
	max-width: 820px;
	margin: 0 auto;
	display: flex; flex-direction: column;
	gap: var(--vmh-s-5);
}
.vmh-tpl-single .vmh-post-hero__breadcrumb {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: var(--vmh-s-3);
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	color: var(--vmh-c-text-soft);
	letter-spacing: 0.04em;
}
.vmh-tpl-single .vmh-post-hero__breadcrumb a {
	color: var(--vmh-c-text-soft);
	transition: color 200ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-post-hero__breadcrumb a:hover { color: var(--vmh-c-anchor); }
.vmh-tpl-single .vmh-post-hero__cat { color: var(--vmh-c-crimson); font-weight: 500; }
.vmh-tpl-single .vmh-post-hero__breadcrumb-sep { color: var(--vmh-c-text-mute); }

.vmh-tpl-single .vmh-post-hero__title {
	font-size: clamp(2.25rem, 1.6rem + 3vw, 4rem);
	line-height: 1.05;
	letter-spacing: -0.03em;
	margin: var(--vmh-s-3) 0;
}

.vmh-tpl-single .vmh-post-hero__lead {
	font-family: var(--vmh-f-display);
	font-style: italic;
	font-size: var(--vmh-t-lead);
	line-height: 1.55;
	color: var(--vmh-c-text-2);
	max-width: 720px;
}

.vmh-tpl-single .vmh-post-hero__author {
	display: flex; align-items: center;
	gap: var(--vmh-s-4);
	padding: var(--vmh-s-5) 0;
	border-top: 1px solid var(--vmh-c-border);
	border-bottom: 1px solid var(--vmh-c-border);
	margin-top: var(--vmh-s-3);
}
.vmh-tpl-single .vmh-post-hero__avatar {
	width: 48px; height: 48px;
	background: var(--vmh-c-anchor);
	color: var(--vmh-c-paper);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--vmh-f-display);
	font-size: 1.125rem; font-weight: 600;
	overflow: hidden;
	flex-shrink: 0;
}
.vmh-tpl-single .vmh-post-hero__avatar img {
	width: 100%; height: 100%; object-fit: cover;
}
.vmh-tpl-single .vmh-post-hero__author-info {
	display: flex; flex-direction: column;
	gap: 2px;
	flex: 1; min-width: 0;
}
.vmh-tpl-single .vmh-post-hero__author-name {
	font-size: 0.9375rem;
	font-weight: 500;
}
.vmh-tpl-single .vmh-post-hero__author-name a { color: var(--vmh-c-text); }
.vmh-tpl-single .vmh-post-hero__author-name a:hover { color: var(--vmh-c-slate); }
.vmh-tpl-single .vmh-post-hero__author-meta {
	font-size: 0.8125rem;
	color: var(--vmh-c-text-soft);
	font-family: var(--vmh-f-body);
}

.vmh-tpl-single .vmh-post-hero__share {
	display: flex; gap: var(--vmh-s-2);
	margin-left: auto;
	flex-shrink: 0;
}
.vmh-tpl-single .vmh-post-hero__share-btn {
	width: 38px; height: 38px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--vmh-c-bg-alt);
	color: var(--vmh-c-text-soft);
	border: 1px solid transparent;
	transition: background 200ms var(--vmh-ease), color 200ms var(--vmh-ease), border-color 200ms var(--vmh-ease);
	position: relative;
}
.vmh-tpl-single .vmh-post-hero__share-btn:hover {
	background: var(--vmh-c-anchor);
	color: #fff;
}
.vmh-tpl-single .vmh-copied-toast {
	position: absolute;
	bottom: calc(100% + 8px);
	right: 0;
	background: var(--vmh-c-anchor);
	color: #fff;
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	padding: 6px 10px;
	white-space: nowrap;
	opacity: 0; pointer-events: none;
	transform: translateY(4px);
	transition: opacity 200ms var(--vmh-ease), transform 200ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-post-hero__share-btn.is-copied .vmh-copied-toast {
	opacity: 1; transform: none;
}

@media (max-width: 600px) {
	.vmh-tpl-single .vmh-post-hero__author { flex-wrap: wrap; }
	.vmh-tpl-single .vmh-post-hero__share { margin-left: 0; }
}

/* ============= POST COVER ============= */
.vmh-tpl-single .vmh-post-cover {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.vmh-tpl-single .vmh-post-cover img {
	width: 100%; height: auto;
	display: block;
	background: var(--vmh-c-bg-alt);
}
.vmh-tpl-single .vmh-post-cover__caption {
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	color: var(--vmh-c-text-soft);
	letter-spacing: 0.05em;
	margin-top: var(--vmh-s-3);
	text-align: center;
}

/* ============= POST LAYOUT (Body + TOC sidebar) ============= */
.vmh-tpl-single .vmh-post-layout-wrap {
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
.vmh-tpl-single .vmh-post-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
	min-width: 0;
}
@media (max-width: 1024px) {
	.vmh-tpl-single .vmh-post-layout { grid-template-columns: 1fr; }
	.vmh-tpl-single .vmh-post-toc { display: none; }
}

/* ============= POST BODY (prose) ============= */
.vmh-tpl-single .vmh-post-body {
	max-width: 720px;
	width: 100%;
	min-width: 0;
	margin: 0 auto;
	font-family: var(--vmh-f-display);
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	line-height: 1.7;
	color: var(--vmh-c-text);
}
.vmh-tpl-single .vmh-post-body > p,
.vmh-tpl-single .vmh-post-body > ol,
.vmh-tpl-single .vmh-post-body > ul {
	margin-bottom: 1.5em;
	font-family: var(--vmh-f-display);
}
.vmh-tpl-single .vmh-post-body h2 {
	font-family: var(--vmh-f-display);
	font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.15;
	margin: 2.25em 0 0.75em;
}
.vmh-tpl-single .vmh-post-body h2 em { font-style: italic; color: var(--vmh-c-crimson); }
.vmh-tpl-single .vmh-post-body h3 {
	font-family: var(--vmh-f-display);
	font-size: 1.375rem;
	font-weight: 500;
	margin: 1.75em 0 0.5em;
	letter-spacing: -0.02em;
}
.vmh-tpl-single .vmh-post-body a {
	color: var(--vmh-c-slate);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 200ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-post-body a:hover { color: var(--vmh-c-crimson); }
.vmh-tpl-single .vmh-post-body strong { font-weight: 600; }

.vmh-tpl-single .vmh-post-body blockquote {
	margin: 2.25em 0;
	padding: var(--vmh-s-6) var(--vmh-s-7);
	background: var(--vmh-c-bg-alt);
	border-left: 4px solid var(--vmh-c-crimson);
	font-family: var(--vmh-f-display);
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.5;
	color: var(--vmh-c-text);
}
.vmh-tpl-single .vmh-post-body blockquote p { margin: 0 0 0.5em; }
.vmh-tpl-single .vmh-post-body blockquote cite {
	display: block;
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	font-style: normal;
	color: var(--vmh-c-text-soft);
	letter-spacing: 0.05em;
	margin-top: var(--vmh-s-3);
}

.vmh-tpl-single .vmh-post-body figure { margin: 2em 0; }
.vmh-tpl-single .vmh-post-body figure img {
	width: 100%; height: auto; display: block;
	background: var(--vmh-c-bg-alt);
}
.vmh-tpl-single .vmh-post-body figcaption {
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	color: var(--vmh-c-text-soft);
	margin-top: var(--vmh-s-3);
	text-align: center;
	letter-spacing: 0.04em;
}

.vmh-tpl-single .vmh-post-body ol,
.vmh-tpl-single .vmh-post-body ul {
	padding-left: 1.5em;
	margin-bottom: 1.5em;
}
.vmh-tpl-single .vmh-post-body ol { list-style: decimal; }
.vmh-tpl-single .vmh-post-body ul { list-style: disc; }
.vmh-tpl-single .vmh-post-body li { margin-bottom: 0.6em; }

.vmh-tpl-single .vmh-post-body code {
	font-family: var(--vmh-f-mono);
	font-size: 0.9em;
	background: var(--vmh-c-bg-alt);
	padding: 0.15em 0.4em;
}
.vmh-tpl-single .vmh-post-body pre {
	font-family: var(--vmh-f-mono);
	font-size: 0.875rem;
	background: var(--vmh-c-anchor);
	color: rgba(255,255,255,.9);
	padding: var(--vmh-s-5);
	overflow-x: auto;
	margin: 2em 0;
}
.vmh-tpl-single .vmh-post-body pre code { background: transparent; padding: 0; color: inherit; }

/* Post callout — pulled from mockup */
.vmh-tpl-single .vmh-post-body .post-callout,
.vmh-tpl-single .vmh-post-body .vmh-post-callout {
	margin: 2em 0;
	padding: var(--vmh-s-5) var(--vmh-s-6);
	background: var(--vmh-c-slate-soft);
	border-left: 3px solid var(--vmh-c-slate);
}
.vmh-tpl-single .vmh-post-body .post-callout__label,
.vmh-tpl-single .vmh-post-body .vmh-post-callout__label {
	display: inline-block;
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-eyebrow);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--vmh-c-slate);
	margin-bottom: var(--vmh-s-2);
}

/* ============= TOC (sticky sidebar) ============= */
.vmh-tpl-single .vmh-post-toc {
	position: sticky;
	top: 96px;
	display: flex; flex-direction: column;
	gap: var(--vmh-s-2);
	padding: var(--vmh-s-5) 0;
	border-left: 1px solid var(--vmh-c-border);
	padding-left: var(--vmh-s-5);
}
.vmh-tpl-single .vmh-post-toc__label {
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-eyebrow);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--vmh-c-text-mute);
	margin-bottom: var(--vmh-s-3);
}
.vmh-tpl-single .vmh-post-toc__list {
	display: flex; flex-direction: column;
	gap: var(--vmh-s-2);
}
.vmh-tpl-single .vmh-post-toc__link {
	font-family: var(--vmh-f-body);
	font-size: 0.875rem;
	color: var(--vmh-c-text-soft);
	padding: 4px 0;
	transition: color 200ms var(--vmh-ease);
	text-decoration: none;
	border-left: 2px solid transparent;
	padding-left: var(--vmh-s-3);
	margin-left: calc(-1 * var(--vmh-s-3));
	line-height: 1.4;
}
.vmh-tpl-single .vmh-post-toc__link:hover { color: var(--vmh-c-anchor); }
.vmh-tpl-single .vmh-post-toc__link.is-active {
	color: var(--vmh-c-crimson);
	border-left-color: var(--vmh-c-crimson);
	font-weight: 500;
}
.vmh-tpl-single .vmh-post-toc__link--sub {
	padding-left: calc(var(--vmh-s-3) + var(--vmh-s-3));
	font-size: 0.8125rem;
}

/* ============= INLINE NEWSLETTER ============= */
.vmh-tpl-single .vmh-post-news {
	margin: 3em 0;
	padding: var(--vmh-s-7);
	background: var(--vmh-c-anchor);
	color: #fff;
	max-width: 100%;
	box-sizing: border-box;
}
.vmh-tpl-single .vmh-post-news__inner {
	display: flex;
	flex-direction: column;
	gap: var(--vmh-s-3);
	min-width: 0;
}
.vmh-tpl-single .vmh-post-news__eyebrow {
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-eyebrow);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--vmh-c-paper);
}
.vmh-tpl-single .vmh-post-news__title {
	font-family: var(--vmh-f-display);
	font-size: 1.625rem;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: #fff;
}
.vmh-tpl-single .vmh-post-news__title em { font-style: italic; color: var(--vmh-c-paper); font-weight: 500; }
.vmh-tpl-single .vmh-post-news__lead {
	font-family: var(--vmh-f-body);
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(255,255,255,.75);
	margin: 0 0 var(--vmh-s-3);
}
.vmh-tpl-single .vmh-post-news__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--vmh-s-2);
	position: relative;
	min-width: 0;
}
.vmh-tpl-single .vmh-post-news__input {
	width: 100%;
	min-width: 0;
	padding: 12px 16px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.18);
	color: #fff;
	font-family: var(--vmh-f-body);
	font-size: 0.9375rem;
	min-height: 44px;
	box-sizing: border-box;
}
.vmh-tpl-single .vmh-post-news__input::placeholder { color: rgba(255,255,255,.4); }
.vmh-tpl-single .vmh-post-news__input:focus { background: rgba(255,255,255,.12); border-color: var(--vmh-c-paper); outline: none; }
.vmh-tpl-single .vmh-post-news__submit {
	padding: 0 20px;
	background: var(--vmh-c-paper);
	color: var(--vmh-c-anchor);
	font-family: var(--vmh-f-body);
	font-weight: 500;
	font-size: 0.9375rem;
	min-height: 44px;
	white-space: nowrap;
	transition: background 200ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-post-news__submit:hover { background: #A8BCD4; }

@media (max-width: 520px) {
	.vmh-tpl-single .vmh-post-news {
		padding: var(--vmh-s-5);
	}
	.vmh-tpl-single .vmh-post-news__form {
		grid-template-columns: 1fr;
	}
	.vmh-tpl-single .vmh-post-news__submit {
		width: 100%;
	}
}

/* ============= POST FOOTER (tags + author card) ============= */
.vmh-tpl-single .vmh-post-footer {
	margin-top: 3em;
	padding-top: var(--vmh-s-7);
	border-top: 1px solid var(--vmh-c-border);
	display: flex; flex-direction: column;
	gap: var(--vmh-s-7);
}
.vmh-tpl-single .vmh-post-footer__tags {
	display: flex; flex-wrap: wrap; gap: var(--vmh-s-2);
}
.vmh-tpl-single .vmh-post-footer__tags a {
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	letter-spacing: 0.05em;
	color: var(--vmh-c-text-soft);
	padding: 6px 12px;
	background: var(--vmh-c-bg-alt);
	transition: background 200ms var(--vmh-ease), color 200ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-post-footer__tags a:hover { background: var(--vmh-c-anchor); color: #fff; }

.vmh-tpl-single .vmh-post-author-card {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: var(--vmh-s-5);
	padding: var(--vmh-s-6);
	background: var(--vmh-c-bg-alt);
}
@media (max-width: 600px) {
	.vmh-tpl-single .vmh-post-author-card { grid-template-columns: 1fr; }
}
.vmh-tpl-single .vmh-post-author-card__avatar {
	width: 96px; height: 96px;
	background: var(--vmh-c-anchor);
	color: var(--vmh-c-paper);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--vmh-f-display);
	font-size: 2.5rem; font-weight: 600;
	overflow: hidden;
}
.vmh-tpl-single .vmh-post-author-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.vmh-tpl-single .vmh-post-author-card__role {
	display: inline-block;
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-eyebrow);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--vmh-c-slate);
	margin-bottom: var(--vmh-s-2);
}
.vmh-tpl-single .vmh-post-author-card__name {
	font-size: 1.375rem;
	margin-bottom: var(--vmh-s-3);
}
.vmh-tpl-single .vmh-post-author-card__name a { color: var(--vmh-c-text); }
.vmh-tpl-single .vmh-post-author-card__name a:hover { color: var(--vmh-c-slate); }
.vmh-tpl-single .vmh-post-author-card__bio {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--vmh-c-text-2);
	margin: 0 0 var(--vmh-s-3);
}
.vmh-tpl-single .vmh-post-author-card__cta {
	font-family: var(--vmh-f-body);
	font-weight: 500;
	font-size: 0.9375rem;
	color: var(--vmh-c-anchor);
	border-bottom: 1px solid var(--vmh-c-anchor);
	padding-bottom: 2px;
}
.vmh-tpl-single .vmh-post-author-card__cta:hover { color: var(--vmh-c-crimson); border-color: var(--vmh-c-crimson); }

/* ============= RELATED ============= */
.vmh-tpl-single .vmh-related {
	background: var(--vmh-c-bg-alt);
	padding-block: var(--vmh-section-y);
}
.vmh-tpl-single .vmh-related__head {
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.vmh-tpl-single .vmh-related__head-eyebrow { margin-bottom: var(--vmh-s-3); }
.vmh-tpl-single .vmh-related__title { font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); }
.vmh-tpl-single .vmh-related__title em { font-style: italic; font-weight: 500; color: var(--vmh-c-crimson); }
.vmh-tpl-single .vmh-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--vmh-s-6);
}
@media (max-width: 880px) { .vmh-tpl-single .vmh-related__grid { grid-template-columns: 1fr; } }
.vmh-tpl-single .vmh-related-card {
	background: var(--vmh-c-surface);
	border: 1px solid var(--vmh-c-border);
	display: flex; flex-direction: column;
	color: inherit;
	transition: transform 300ms var(--vmh-ease), box-shadow 300ms var(--vmh-ease);
}
.vmh-tpl-single .vmh-related-card:hover { transform: translateY(-3px); box-shadow: var(--vmh-sh-md); }
.vmh-tpl-single .vmh-related-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--vmh-c-bg-alt); }
.vmh-tpl-single .vmh-related-card__media img { width: 100%; height: 100%; object-fit: cover; }
.vmh-tpl-single .vmh-related-card__body {
	padding: var(--vmh-s-5) var(--vmh-s-6) var(--vmh-s-6);
	display: flex; flex-direction: column;
	gap: var(--vmh-s-3);
	flex: 1;
}
.vmh-tpl-single .vmh-related-card__title {
	font-size: 1.0625rem;
	line-height: 1.3;
	letter-spacing: -0.015em;
}
.vmh-tpl-single .vmh-related-card__meta {
	display: flex; gap: var(--vmh-s-2);
	font-family: var(--vmh-f-mono);
	font-size: var(--vmh-t-meta);
	color: var(--vmh-c-text-mute);
	margin-top: auto; padding-top: var(--vmh-s-3);
}
