/* ============================================================
   Single article — header zone, hero image, body, article end
   ============================================================ */

/* ---------- Narrow article container (720px) ---------- */
.article-container {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 var(--gutter);
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
	font-family: var(--font-ui);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--muted);
	margin: 56px 0 28px;
}
.breadcrumb a { color: var(--brand); font-weight: 600; }
.breadcrumb .sep { color: var(--muted-soft); margin: 0 8px; }

/* ---------- Article title / subhead ---------- */
.article-title {
	font-family: var(--font-display);
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -1.5px;
	color: var(--ink);
	margin-bottom: 20px;
}
.article-subhead {
	font-family: var(--font-body);
	font-size: 22px;
	line-height: 1.4;
	color: var(--ink-soft);
	font-weight: 300;
	margin-bottom: 36px;
}

/* ---------- Static page (non-Elementor) ---------- */
.page-content {
	padding-top: var(--space-8);
	padding-bottom: var(--space-9);
	max-width: 760px;
}
.page-header { margin-bottom: var(--space-6); border-bottom: 1px solid var(--line); padding-bottom: var(--space-5); }
.page-title {
	font-family: var(--font-display);
	font-size: var(--text-7xl);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -1px;
	color: var(--ink);
}
.page-body { font-size: var(--text-xl); line-height: 1.65; color: var(--ink-soft); }
.page-body h2, .page-body h3 { font-family: var(--font-display); color: var(--ink); margin: var(--space-6) 0 var(--space-3); }
.page-body p { margin-bottom: var(--space-4); }
.page-body a { color: var(--brand); }
.page-body a:hover { text-decoration: underline; }

/* ---------- Byline row ---------- */
.byline-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.byline-row .author-block { display: flex; align-items: center; gap: 12px; flex: 1; }
.byline-row .author-photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 1px solid var(--line); flex-shrink: 0; }
.byline-row .author-info {
	font-family: var(--font-ui);
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 5px;
}
/* New single-line byline paragraph */
.byline-row .author-byline {
	margin: 0;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.5;
}
.byline-row .author-byline a { font-weight: 600; color: var(--ink); }
.byline-row .author-byline a:hover { color: var(--brand); }
.byline-row .meta-sep { margin: 0 3px; color: var(--muted-soft); }
.byline-row .author-bio { font-size: 12px; color: var(--muted); margin-top: 2px; }

/* ---------- Article meta line (now merged into byline — hidden) ---------- */
.article-meta { display: none; }

/* ---------- Featured image container ----------
   Breakout (article / interview / sponsored): wrapper is 860px, centred.
   Narrow (opinion / news): wrapper is 720px, matching the article column.
   No negative figure margins — the wrapper itself defines the breakout width,
   so margin:auto on the wrapper is the only centering mechanism needed. */
.article-featured-media {
	width: 100%;
	max-width: 860px;
	margin: 40px auto;
}

/* Narrow variant: image flush with the reading column (720px). */
.article-featured-media--narrow {
	max-width: var(--article-max); /* 720px */
}

.article-featured-media figure {
	width: 100%;
	display: block;
}
.article-featured-media img {
	width: 100%;
	height: auto;
	display: block;
}
.article-featured-media figcaption {
	font-family: var(--font-ui);
	font-size: 12px;
	line-height: 1.5;
	color: var(--muted);
	margin-top: 10px;
}
.article-featured-media figcaption .credit {
	color: var(--muted-soft);
	margin-left: 8px;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ---------- Article body ---------- */
.article-body { padding-top: 16px; }
.article-body p {
	font-size: 19px;
	line-height: 1.65;
	margin-bottom: 24px;
	color: var(--ink-soft);
	font-weight: 400;
}
/* Drop cap — first letter of first paragraph */
.article-body.has-drop-cap > p:first-of-type::first-letter {
	font-family: var(--font-display);
	font-size: 84px;
	font-weight: 700;
	float: left;
	line-height: 0.85;
	margin: 8px 12px 0 0;
	color: var(--ink);
}
.article-body h2 {
	font-family: var(--font-display);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.5px;
	margin: 48px 0 16px;
	color: var(--ink);
}
.article-body h3 {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 600;
	margin: 32px 0 12px;
}
.article-body a {
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--brand);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.article-body a:hover { color: var(--brand); }
.article-body strong { color: var(--ink); font-weight: 600; }
.article-body em { font-style: italic; }
.article-body ul, .article-body ol {
	margin: 0 0 24px 24px;
	font-size: 19px;
	line-height: 1.65;
	color: var(--ink-soft);
}
.article-body li { margin-bottom: 8px; }
.article-body figure { margin: 40px 0; }
.article-body figure img { width: 100%; height: auto; display: block; }
.article-body figcaption {
	font-family: var(--font-ui);
	font-size: 12px;
	color: var(--muted);
	margin-top: 10px;
	line-height: 1.5;
}

/* In-article ad (injected into content) — premium house-ad card until inventory sells */
.in-article-ad {
	background: var(--bg-soft);
	background-image: linear-gradient( 155deg, color-mix( in srgb, var(--brand) 8%, transparent ), transparent 60% );
	border: 1px solid var(--line);
	border-color: color-mix( in srgb, var(--brand) 24%, var(--line) );
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba( 0, 0, 0, .05 ), 0 18px 40px -30px color-mix( in srgb, var(--brand) 70%, transparent );
	text-align: center;
	padding: 36px 28px;
	margin: 40px 0;
	overflow: hidden;
}
.in-article-ad .ad-label {
	font-family: var(--font-ui);
	font-size: 9px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--muted-soft);
	margin-bottom: 20px;
	font-weight: 600;
}
/* The house-ad link is injected inside .article-body, whose `a` rule underlines
   links (higher specificity than .ad-house). Override it so the CTA reads as a
   clean card, not underlined inline text. */
.in-article-ad .ad-house,
.in-article-ad .ad-house:hover,
.in-article-ad .ad-house:focus { text-decoration: none; }

/* ---------- Article end section ---------- */
.article-end {
	border-top: 1px solid var(--line);
	margin-top: 56px;
	padding-top: 32px;
}
.article-end-symbol {
	text-align: center;
	font-family: var(--font-display);
	font-size: 28px;
	color: var(--brand);
	margin-bottom: 24px;
}
.tag-row {
	margin-top: 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.tag-row a { /* extends .tag / .tag-pill */ }

/* Author card at article end */
.author-card {
	background: var(--bg-cream);
	padding: 24px;
	display: flex;
	gap: 16px;
	border: 1px solid var(--line);
	margin-top: 32px;
}
.author-card img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.author-card h4 {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 4px;
}
.author-card .role {
	font-family: var(--font-ui);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: var(--muted);
	margin-bottom: 10px;
}
.author-card .bio {
	font-size: 14px;
	line-height: 1.5;
	color: var(--ink-soft);
	margin-bottom: 8px;
}
.author-card .more-link {
	font-family: var(--font-ui);
	font-size: 12px;
	color: var(--brand);
	font-weight: 600;
}
.author-card .more-link:hover { color: var(--brand-dark); }

/* ---------- Related / More from author ---------- */
.related-section {
	margin: 80px 0 0;
}
.related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-7);
}
.related-card a { display: block; }
.related-card img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	margin-bottom: var(--space-3);
	display: block;
}
.related-card .kicker {
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--brand);
	margin-bottom: 6px;
}
.related-card h3 {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	margin-bottom: 8px;
	transition: color var(--ease-quick);
}
.related-card a:hover h3 { color: var(--brand-dark); }
.related-card .byline {
	font-family: var(--font-ui);
	font-size: 11px;
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: 1px;
}

.more-from-author {
	background: var(--bg-soft);
	margin-top: 80px;
	padding: var(--space-8) 0;
}

/* ---------- Opinion / interview variants ---------- */
.article-title.is-italic { font-style: italic; }
.interview-subject {
	background: var(--bg-cream);
	border: 1px solid var(--line);
	border-left: 3px solid var(--brand);
	padding: 16px 20px;
	margin: 24px 0 0;
	font-family: var(--font-ui);
	font-size: 13px;
	color: var(--ink-soft);
}
.interview-subject strong { color: var(--ink); }

/* Q&A bold paragraph opener */
.article-body.qa-format p > strong:first-child {
	display: block;
	font-size: 1.05em;
	color: var(--ink);
	margin-bottom: 2px;
}

/* Sponsored banner */
.sponsored-banner {
	background: var(--bg-cream);
	border-bottom: 1px solid var(--line);
	padding: 16px var(--gutter);
	text-align: center;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--muted);
}
.sponsored-disclosure-box {
	background: var(--bg-cream);
	border: 1px solid var(--line);
	padding: 24px;
	margin-top: 40px;
	font-family: var(--font-ui);
	font-size: 13px;
	color: var(--muted);
	line-height: 1.5;
}

/* ---------- Responsive ---------- */

/* Full-bleed on mobile: remove the 860px/720px constraint so the image
   spans the full viewport with no side margins. */
@media (max-width: 768px) {
	.article-featured-media {
		max-width: 100%;
		margin: 24px 0;
	}
}

@media (max-width: 900px) {
	.article-title { font-size: 36px; letter-spacing: -0.5px; }
	.article-subhead { font-size: 18px; }
	.article-body p { font-size: 17px; }
	.article-body.has-drop-cap > p:first-of-type::first-letter { font-size: 60px; }
	.related-grid { grid-template-columns: 1fr; }
	.byline-row { flex-wrap: wrap; }
}
