/* =====================================================================
   SINGLE POST — two treatments.

   ESSAY (.ph-essay): full-bleed editorial layout ported from
   ph-single-post-mockup.html — post hero, single 720px column, drop cap,
   plum-dot dividers, signature byline. No sidebar.

   RESOURCES (.ph-resource): the Gridzone two-column layout kept, retypeset
   with the brand tokens.

   Brand tokens + fonts come from the global style.css (loaded sitewide).
   Loaded only on single posts (see functions.php), versioned by filemtime().
   ===================================================================== */

/* ============================ ESSAY ============================ */

/* ---------- Post hero ---------- */
.ph-essay .post-hero{padding:88px 0 56px;border-bottom:1px solid var(--hairline);}
.ph-essay .post-hero .inner{max-width:760px;margin:0 auto;text-align:center;padding:0 24px;}
.ph-essay .post-hero .series{
	font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
	color:var(--plum);display:block;margin-bottom:22px;
}
.ph-essay h1.post-title{
	font-family:var(--display);font-weight:500;
	font-size:clamp(38px,4.6vw,58px);line-height:1.12;letter-spacing:-.01em;
	margin-bottom:16px;color:var(--ink);
}
.ph-essay .post-sub{
	font-family:var(--display);font-style:italic;font-weight:400;
	font-size:clamp(20px,2.2vw,26px);color:#4A463D;margin-bottom:28px;
}
.ph-essay .post-meta{
	font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);
}
.ph-essay .post-meta span + span::before{content:"·";margin:0 12px;color:var(--hairline);}
.ph-essay .post-meta .is-av{color:var(--plum);}

/* ---------- Article body ---------- */
.ph-essay .measure{max-width:720px;margin:0 auto;padding:0 24px;}
.ph-essay .entry-content{padding:72px 0 8px;font-size:20px;line-height:1.6;color:var(--ink);}
.ph-essay .entry-content p{margin:0 0 1.15em;}
.ph-essay .entry-content > p:last-child{margin-bottom:0;}
.ph-essay .entry-content h2{
	font-family:var(--display);font-weight:500;font-size:30px;line-height:1.2;
	margin:2.2em 0 .8em;color:var(--ink);
}
.ph-essay .entry-content h3{
	font-family:var(--display);font-weight:500;font-size:24px;line-height:1.25;margin:1.8em 0 .6em;
}
.ph-essay .entry-content em{font-style:italic;}
.ph-essay .entry-content a{color:var(--plum);}
.ph-essay .entry-content a:hover{color:var(--plum-deep);}

/* Standfirst + drop cap on the opening paragraph. The plum drop cap opens the
   piece; the plum byline N closes it — an intentional bookend. */
.ph-essay .entry-content > p:first-of-type{font-size:22px;}
.ph-essay .entry-content > p:first-of-type::first-letter{
	font-family:var(--display);font-weight:500;
	float:left;font-size:74px;line-height:.82;
	padding:8px 12px 0 0;color:var(--plum);
}

/* Section dividers — hairlines meeting at a plum dot (core Separator block). */
.ph-essay .entry-content hr.wp-block-separator{
	border:0;height:5px;width:5px;margin:2.4em auto;background:var(--plum);border-radius:50%;
	position:relative;overflow:visible;max-width:5px;
}
.ph-essay .entry-content hr.wp-block-separator::before,
.ph-essay .entry-content hr.wp-block-separator::after{
	content:"";position:absolute;top:50%;width:64px;height:1px;background:var(--hairline);
}
.ph-essay .entry-content hr.wp-block-separator::before{right:100%;margin-right:14px;}
.ph-essay .entry-content hr.wp-block-separator::after{left:100%;margin-left:14px;}

/* ---------- Byline (essay) ---------- */
.ph-essay .byline{max-width:720px;}

/* ============================ BYLINE (all posts) ============================
   Optical seating: mark bottom-aligned, margin-bottom:0, so the ink centroid
   (58.2% of image height) meets the text block's vertical center. No rule above. */
.byline{
	max-width:720px;margin:30px auto 0;padding:0 24px;
	display:flex;align-items:flex-end;gap:20px;
}
.byline img.n-mark{height:62px;width:auto;flex-shrink:0;margin-bottom:0;display:block;}
.byline .who strong{font-family:var(--display);font-weight:500;font-size:21px;display:block;line-height:1.15;margin-bottom:3px;color:var(--ink);}
.byline .who span{font-size:18px;color:#3A372F;font-style:italic;line-height:1.4;display:block;}
.byline .who a{color:var(--plum);text-decoration:none;}
.byline .who a:hover{color:var(--plum-deep);}

/* ---------- Next-in-series wrap (essay) ---------- */
.ph-next-wrap{margin-top:64px;}

/* ============================ NEWSLETTER BAND (compact, both treatments) ============================ */
.ph-post-subscribe{background:var(--plum);color:var(--paper);padding:72px 0;margin-top:72px;}
.ph-post-subscribe .sub-inner{max-width:620px;margin:0 auto;text-align:center;padding:0 24px;}
.ph-post-subscribe .sub-inner > .eyebrow,
.ph-post-subscribe .ph-newsletter .eyebrow{color:#D9CCEE;display:block;}
.ph-post-subscribe .sub-inner h2{font-family:var(--display);font-weight:500;font-size:clamp(28px,3.4vw,38px);color:var(--paper);margin:14px 0 12px;}
.ph-post-subscribe .sub-inner > p,
.ph-post-subscribe .ph-newsletter__lead{color:#E4DAF2;font-size:19px;margin:0;}
.ph-post-subscribe .sub-form{display:flex;gap:12px;margin:32px auto 0;max-width:480px;}
.ph-post-subscribe .sub-form input{
	flex:1;background:transparent;border:1px solid #9B7FC4;color:var(--paper);
	font-family:var(--body);font-size:17px;padding:15px 18px;
}
.ph-post-subscribe .sub-form input::placeholder{color:#BBA6DB;}
.ph-post-subscribe .sub-form button{
	background:var(--paper);color:var(--plum);border:1px solid var(--paper);
	font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
	padding:15px 24px;cursor:pointer;
}
.ph-post-subscribe .sub-note{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#B9A3DA;margin-top:16px;display:block;}

/* ============================ RESOURCES ============================
   Keep the Gridzone two-column layout; retypeset with brand tokens. */
.ph-resource-post .entry-header{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--hairline);}
.ph-resource-post .series{
	font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
	color:var(--plum);display:block;margin-bottom:14px;
}
.ph-resource-post h1.entry-title{
	font-family:var(--display);font-weight:500;font-size:clamp(30px,3.4vw,42px);line-height:1.15;
	margin:14px 0 12px;color:var(--ink);
}
.ph-resource-post .post-meta{
	font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);
}
.ph-resource-post .post-meta span + span::before{content:"·";margin:0 10px;color:var(--hairline);}
.ph-resource-post .post-meta .is-av{color:var(--plum);}
/* Full content heading scale + reading elements, all on the token system. */
.ph-resource-post .entry-content{font-size:19px;line-height:1.7;color:var(--ink);}
.ph-resource-post .entry-content > p{margin:0 0 1.2em;}
.ph-resource-post .entry-content h2{font-family:var(--display);font-weight:500;font-size:32px;line-height:1.2;margin:1.9em 0 .5em;color:var(--ink);}
.ph-resource-post .entry-content h3{font-family:var(--display);font-weight:500;font-size:25px;line-height:1.25;margin:1.6em 0 .4em;color:var(--ink);}
.ph-resource-post .entry-content h4{font-family:var(--display);font-weight:500;font-size:21px;line-height:1.3;margin:1.4em 0 .4em;color:var(--ink);}
.ph-resource-post .entry-content a{color:var(--plum);text-decoration:underline;text-underline-offset:2px;}
.ph-resource-post .entry-content a:hover{color:var(--plum-deep);}
.ph-resource-post .entry-content strong{font-weight:600;}
.ph-resource-post .entry-content em{font-style:italic;}
/* lists */
.ph-resource-post .entry-content ul,
.ph-resource-post .entry-content ol{margin:0 0 1.3em;padding-left:1.4em;}
.ph-resource-post .entry-content li{margin:0 0 .5em;line-height:1.6;}
.ph-resource-post .entry-content ul li::marker{color:var(--plum);}
/* blockquotes */
.ph-resource-post .entry-content blockquote{
	border-left:3px solid var(--plum);background:var(--vellum);
	margin:1.7em 0;padding:20px 26px;font-family:var(--display);font-style:italic;font-size:21px;line-height:1.4;
}
.ph-resource-post .entry-content blockquote p:last-child{margin-bottom:0;}
/* images: constrained, block, vertical rhythm — never oversized */
.ph-resource-post .entry-content img{max-width:100%;height:auto;}
.ph-resource-post .entry-content figure,
.ph-resource-post .entry-content .wp-block-image{margin:1.8em 0;}
.ph-resource-post .entry-content .wp-block-image img{display:block;height:auto;max-width:100%;}
.ph-resource-post .entry-content figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--stone);text-align:center;margin-top:10px;}
.ph-resource .byline{margin-left:0;padding-left:0;}

/* Resource tag chips — after content, before the byline. Light metadata, not
   navigation: small, hairline, no fill. (Essays stay clean, no chips.) */
.ph-resource-post .tag-chips{display:flex;flex-wrap:wrap;gap:8px;margin:44px 0 0;}
.ph-resource-post .tag-chips .chip{
	font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
	color:var(--stone);text-decoration:none;background:transparent;
	border:1px solid var(--hairline);padding:4px 10px;
	transition:border-color .2s ease, color .2s ease;
}
.ph-resource-post .tag-chips .chip:hover{border-color:var(--plum);color:var(--plum);}

/* Curated sidebar — token-styled; no parent white boxes / purple buttons. */
.ph-sidebar .ph-widget{margin-bottom:40px;}
.ph-sidebar .ph-widget-title{
	font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
	color:var(--stone);margin:0 0 14px;font-weight:500;
}
.ph-sidebar .ph-search{display:flex;border:1px solid var(--hairline);background:#fff;}
.ph-sidebar .ph-search input{flex:1;border:0;background:transparent;font-family:var(--body);font-size:15px;padding:11px 12px;outline:none;color:var(--ink);}
.ph-sidebar .ph-search button{border:0;background:transparent;color:var(--plum);font-family:var(--mono);font-size:15px;padding:0 14px;cursor:pointer;}
.ph-sidebar .ph-widget-recent ul{list-style:none;margin:0;padding:0;}
.ph-sidebar .ph-widget-recent li{margin:0;padding:12px 0;line-height:1.4;border-bottom:1px solid var(--hairline);}
.ph-sidebar .ph-widget-recent li:first-child{padding-top:0;}
.ph-sidebar .ph-widget-recent li:last-child{border-bottom:none;}
.ph-sidebar .ph-widget-recent a{font-family:var(--display);font-size:17px;line-height:1.3;color:var(--ink);text-decoration:none;}
.ph-sidebar .ph-widget-recent a:hover{color:var(--plum);}
.ph-sidebar .ph-cta-card{background:var(--vellum);border-top:1px solid var(--ink);padding:24px 22px;position:relative;}
.ph-sidebar .ph-cta-card::before{content:"";position:absolute;top:-1px;left:0;width:40px;height:3px;background:var(--plum);}
.ph-sidebar .ph-cta-card .eyebrow{color:var(--plum);display:block;margin-bottom:10px;}
.ph-sidebar .ph-cta-card p{font-size:16px;line-height:1.5;color:#3A372F;margin:0 0 16px;}
.ph-sidebar .ph-cta-btn{
	display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
	background:var(--plum);color:var(--paper);text-decoration:none;padding:12px 20px;transition:background .2s ease;
}
.ph-sidebar .ph-cta-btn:hover{background:var(--plum-deep);}

/* Sidebar hidden below 900px — mobile is content-first. */
@media (max-width:900px){
	.ph-sidebar{display:none !important;}
}

/* ---------- Responsive ---------- */
@media (max-width:640px){
	.ph-essay .post-hero{padding:56px 0 40px;}
	.ph-essay .entry-content{padding:48px 0 8px;}
	.ph-essay .entry-content > p:first-of-type::first-letter{font-size:60px;}
	.ph-post-subscribe .sub-form{flex-direction:column;}

	/* Byline mobile variant. The text block may wrap to three lines, so
	   bottom-alignment no longer seats the mark. Instead centre both items
	   (align-items:center puts the mark's GEOMETRIC centre on the text centre)
	   and nudge the mark up by (0.582 - 0.5) * 48px = 3.94px so its INK
	   centroid (58.2% of height) lands on the text centre for any line count. */
	.byline{gap:16px;align-items:center;}
	.byline img.n-mark{height:48px;margin-bottom:0;transform:translateY(-3.94px);}
	.byline .who strong{font-size:19px;}
	.byline .who span{font-size:16.5px;}
}
