/* ===========================================================================
   PRD single post — modern editorial layout
   =========================================================================== */

.prd-post{ background: var(--prd-c-bg, #fff); color: var(--prd-c-ink); }

/* ---------------------------------------------------------------------------
   HERO
   --------------------------------------------------------------------------- */
.prd-post-hero{
	position: relative;
	overflow: hidden;
	color: #fff;
	min-height: clamp(380px, 55vh, 620px);
	display: flex;
	align-items: flex-end;
	padding-block: clamp(3rem, 8vw, 5rem);
}
.prd-post-hero:not(.has-bg){
	background: linear-gradient(135deg, var(--prd-c-ink) 0%, #2a3440 100%);
}
.prd-post-hero-bg{
	position: absolute; inset: 0;
	z-index: 0;
}
.prd-post-hero-bg img{
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.prd-post-hero-tint{
	position: absolute; inset: 0;
	background:
		linear-gradient(to top, rgba(17,20,24,0.85) 0%, rgba(17,20,24,0.55) 50%, rgba(17,20,24,0.4) 100%);
}
.prd-post-hero-inner{
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin-inline: auto;
}
.prd-post-hero-inner > *{
	max-width: 720px;
}

.prd-post-crumbs{
	font-size: .75rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-weight: 500;
	margin-bottom: 1.25rem;
	color: rgba(255,255,255,0.75);
	display: flex; gap: .55rem; align-items: center; flex-wrap: wrap;
}
.prd-post-crumbs a{
	color: inherit;
	text-decoration: none;
	transition: color .15s ease;
}
.prd-post-crumbs a:hover{ color: #fff; }
.prd-post-crumbs span{ opacity: .5; }

.prd-post-title{
	font-family: var(--prd-ff-display);
	font-weight: 400;
	font-size: clamp(2rem, 5.5vw, 3.75rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: #fff;
	margin: 0 0 1.5rem;
	max-width: 22ch;
}

.prd-post-meta{
	display: flex; align-items: center;
	gap: .65rem;
	flex-wrap: wrap;
	font-size: .9rem;
	color: rgba(255,255,255,0.85);
}
.prd-post-meta-author{
	display: inline-flex; align-items: center; gap: .55rem;
}
.prd-post-meta-author img{
	width: 32px; height: 32px;
	border-radius: 999px;
	border: 2px solid rgba(255,255,255,0.5);
	display: block;
}
.prd-post-meta-author strong{ color: #fff; font-weight: 600; }
.prd-post-meta-dot{ opacity: .5; }

/* ---------------------------------------------------------------------------
   BODY GRID
   --------------------------------------------------------------------------- */
.prd-post-body{
	padding-block: clamp(2.5rem, 6vw, 5rem);
	background: var(--prd-c-bg);
}
.prd-post-grid{
	position: relative;
	max-width: 720px;
	margin-inline: auto;
}
.prd-post-rail{
	position: absolute;
	top: 0;
	right: 100%;
	margin-right: clamp(1rem, 3vw, 2.5rem);
	width: 64px;
}
@media (max-width: 1000px){
	.prd-post-rail{
		position: static;
		width: auto;
		margin: 0 0 1.5rem;
	}
	.prd-post-grid{
		display: flex;
		flex-direction: column;
	}
}

/* ---------------------------------------------------------------------------
   SHARE RAIL (sticky)
   --------------------------------------------------------------------------- */
.prd-post-rail-inner{
	position: sticky;
	top: 110px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
}
@media (max-width: 800px){
	.prd-post-rail-inner{
		position: static;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		gap: .75rem;
		padding-block: .25rem;
	}
}
.prd-post-rail-label{
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--prd-c-muted);
	margin: 0 0 .25rem;
	writing-mode: vertical-rl;
	text-orientation: mixed;
}
@media (max-width: 800px){
	.prd-post-rail-label{
		writing-mode: horizontal-tb;
		margin: 0;
	}
}

.prd-post-share{
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
@media (max-width: 800px){ .prd-post-share{ flex-direction: row; } }

.prd-post-share-btn{
	width: 40px; height: 40px;
	display: inline-flex;
	align-items: center; justify-content: center;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--prd-c-line);
	color: var(--prd-c-ink);
	text-decoration: none;
	cursor: pointer;
	transition: all .2s ease;
	font: inherit;
	padding: 0;
}
.prd-post-share-btn:hover{
	background: var(--prd-c-ink);
	color: #fff;
	border-color: var(--prd-c-ink);
	transform: translateY(-2px);
}
.prd-post-share-btn.is-copied{
	background: var(--prd-c-accent);
	color: #fff;
	border-color: var(--prd-c-accent);
}

/* ---------------------------------------------------------------------------
   ARTICLE BODY — generous editorial typography
   --------------------------------------------------------------------------- */
.prd-post-article{
	max-width: 100%;
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--prd-c-ink);
	font-family: var(--prd-ff-sans);
}
.prd-post-article > * + *{ margin-top: 1.25em; }

.prd-post-article p{ margin: 0; }
.prd-post-article p + p{ margin-top: 1.25em; }

/* Drop cap on the very first paragraph */
.prd-post-article > p:first-of-type::first-letter{
	font-family: var(--prd-ff-display);
	float: left;
	font-size: 4em;
	line-height: .85;
	padding: .15em .15em 0 0;
	color: var(--prd-c-accent);
	font-weight: 400;
}

.prd-post-article h2,
.prd-post-article h3,
.prd-post-article h4{
	font-family: var(--prd-ff-display);
	font-weight: 400;
	color: var(--prd-c-ink);
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin-top: 2em;
	margin-bottom: .5em;
}
.prd-post-article h2{ font-size: clamp(1.6rem, 3vw, 2.1rem); }
.prd-post-article h3{ font-size: clamp(1.3rem, 2.4vw, 1.65rem); }
.prd-post-article h4{ font-size: 1.2rem; font-family: var(--prd-ff-sans); font-weight: 600; letter-spacing: 0; }

.prd-post-article a{
	color: var(--prd-c-ink);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: color .15s ease;
}
.prd-post-article a:hover{ color: var(--prd-c-accent); }

.prd-post-article ul,
.prd-post-article ol,
.prd-post-article ul.wp-block-list,
.prd-post-article ol.wp-block-list{
	padding-left: 1.6em !important;
	margin: 1.25em 0 !important;
	list-style-position: outside !important;
}
.prd-post-article ul,
.prd-post-article ul.wp-block-list{ list-style: disc outside !important; }
.prd-post-article ol,
.prd-post-article ol.wp-block-list{ list-style: decimal outside !important; }
.prd-post-article ul ul,
.prd-post-article ul.wp-block-list ul{
	list-style: circle outside !important;
	margin: .4em 0 !important;
}
.prd-post-article ul ul ul{ list-style: square outside !important; }
.prd-post-article ol ol{ list-style: lower-alpha outside !important; }
.prd-post-article li,
.prd-post-article .wp-block-list > li{
	margin-bottom: .5em !important;
	padding-left: .25em !important;
	line-height: 1.65 !important;
	display: list-item !important;
	list-style: inherit !important;
}
.prd-post-article li::marker{
	color: var(--prd-c-accent);
}

.prd-post-article blockquote{
	margin: 2em 0;
	padding: 1.25em 1.5em;
	border-left: 4px solid var(--prd-c-accent);
	background: var(--prd-c-bg-alt, #f7f4ee);
	border-radius: 0 12px 12px 0;
	font-family: var(--prd-ff-display);
	font-size: 1.35em;
	line-height: 1.4;
	color: var(--prd-c-ink);
	font-style: normal;
}
.prd-post-article blockquote p{ margin: 0; }
.prd-post-article blockquote cite{
	display: block;
	margin-top: .65em;
	font-family: var(--prd-ff-sans);
	font-size: .7em;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--prd-c-muted);
}

.prd-post-article img,
.prd-post-article figure{
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	margin-block: 2em;
	display: block;
}
.prd-post-article figure img{ margin: 0; }
.prd-post-article figcaption{
	margin-top: .65em;
	font-size: .85em;
	color: var(--prd-c-muted);
	text-align: center;
	font-style: italic;
}

.prd-post-article hr{
	border: 0;
	height: 1px;
	background: var(--prd-c-line);
	margin: 3em auto;
	width: 80px;
}

.prd-post-article .wp-block-gallery,
.prd-post-article .wp-block-image{ margin-block: 2em; }

/* Gutenberg "nested images" gallery — used in newer posts. Each child is
   a <figure class="wp-block-image">. The block library default styles
   sometimes don't load (or are overridden by the parent theme), which
   leaves every image stacked full-width. Force a real CSS grid. */
.prd-post-article .wp-block-gallery.has-nested-images{
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 12px !important;
	margin-block: 2em !important;
}
.prd-post-article .wp-block-gallery.has-nested-images.columns-2{
	grid-template-columns: repeat(2, 1fr) !important;
}
.prd-post-article .wp-block-gallery.has-nested-images.columns-4{
	grid-template-columns: repeat(4, 1fr) !important;
}
.prd-post-article .wp-block-gallery.has-nested-images.columns-5{
	grid-template-columns: repeat(5, 1fr) !important;
}
.prd-post-article .wp-block-gallery.has-nested-images > figure.wp-block-image{
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	flex: none !important;
	display: block !important;
}
.prd-post-article .wp-block-gallery.has-nested-images figure.wp-block-image > a,
.prd-post-article .wp-block-gallery.has-nested-images figure.wp-block-image > img{
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	border-radius: 12px !important;
	overflow: hidden !important;
}
.prd-post-article .wp-block-gallery.has-nested-images figure.wp-block-image > a > img{
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 12px !important;
}
.prd-post-article .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{
	display: none !important;
}
@media (max-width: 700px){
	.prd-post-article .wp-block-gallery.has-nested-images,
	.prd-post-article .wp-block-gallery.has-nested-images.columns-4,
	.prd-post-article .wp-block-gallery.has-nested-images.columns-5{
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Stand-alone wp-block-image figures (non-gallery) — keep them
   constrained, rounded, and centered. */
.prd-post-article > figure.wp-block-image,
.prd-post-article figure.wp-block-image:not(.wp-block-gallery .wp-block-image){
	margin: 2em auto !important;
	max-width: 100% !important;
}
.prd-post-article > figure.wp-block-image img,
.prd-post-article figure.wp-block-image:not(.wp-block-gallery .wp-block-image) img{
	border-radius: 12px !important;
	display: block !important;
	max-width: 100% !important;
	height: auto !important;
}

/* WP caption legacy */
.prd-post-article .wp-caption{ max-width: 100% !important; }

/* ---------------------------------------------------------------------------
   TAXONOMY (tags / cats)
   --------------------------------------------------------------------------- */
.prd-post-taxonomy{
	margin-top: 2.5em;
	padding-top: 2em;
	border-top: 1px solid var(--prd-c-line);
}
.prd-post-tags{
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.prd-post-tags a{
	display: inline-block;
	padding: .35rem .75rem;
	background: var(--prd-c-bg-alt, #f7f4ee);
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: .8rem;
	font-weight: 500;
	color: var(--prd-c-ink-soft);
	text-decoration: none;
	transition: all .15s ease;
}
.prd-post-tags a:hover{
	background: #fff;
	border-color: var(--prd-c-ink);
	color: var(--prd-c-ink);
}

/* ---------------------------------------------------------------------------
   AUTHOR CARD
   --------------------------------------------------------------------------- */
.prd-post-author{
	margin-top: 3em;
	padding: 1.75rem;
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 1.25rem;
	align-items: start;
	background: var(--prd-c-bg-alt, #f7f4ee);
	border-radius: 16px;
}
@media (max-width: 480px){
	.prd-post-author{ grid-template-columns: 1fr; text-align: center; justify-items: center; }
}
.prd-post-author-avatar{
	width: 64px; height: 64px;
	border-radius: 999px;
	display: block;
}
.prd-post-author-label{
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--prd-c-muted);
	margin: 0 0 .15rem;
}
.prd-post-author-name{
	font-family: var(--prd-ff-display);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--prd-c-ink);
	margin: 0 0 .35rem;
	line-height: 1.2;
}
.prd-post-author-bio{
	font-size: .95rem;
	line-height: 1.55;
	color: var(--prd-c-ink-soft);
	margin: 0;
}

/* ---------------------------------------------------------------------------
   INLINE CTA
   --------------------------------------------------------------------------- */
.prd-post-cta{
	margin-top: 3em;
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	background: var(--prd-c-ink);
	color: #fff;
	border-radius: 18px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.5rem;
}
.prd-post-cta .prd-post-cta-body{
	max-width: 60ch;
}
.prd-post-cta .prd-eyebrow{
	color: rgba(255,255,255,0.65) !important;
	margin: 0 0 .65rem;
}
.prd-post-cta .prd-post-cta-title,
.prd-post-cta h3.prd-post-cta-title{
	font-family: var(--prd-ff-display);
	font-weight: 400;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.15;
	margin: 0 0 .65rem;
	color: #fff !important;
}
.prd-post-cta .prd-post-cta-text{
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(255,255,255,0.82) !important;
}
.prd-post-cta-actions{
	display: flex;
	gap: .65rem;
	flex-wrap: wrap;
	align-items: center;
}
.prd-post-cta-actions .prd-btn{
	margin: 0;
}
.prd-post-cta-actions .prd-btn-accent,
.prd-post-cta-actions a.prd-btn-accent{
	background: var(--prd-c-accent) !important;
	color: #fff !important;
	border-color: var(--prd-c-accent) !important;
}
.prd-post-cta-actions .prd-btn-accent:hover,
.prd-post-cta-actions a.prd-btn-accent:hover{
	background: var(--prd-c-accent-ink, #fff) !important;
	color: #fff !important;
}
.prd-post-cta-actions .prd-btn-outline,
.prd-post-cta-actions a.prd-btn-outline{
	border: 1px solid rgba(255,255,255,0.45) !important;
	color: #fff !important;
	background: transparent !important;
}
.prd-post-cta-actions .prd-btn-outline:hover,
.prd-post-cta-actions a.prd-btn-outline:hover{
	background: rgba(255,255,255,0.1) !important;
	border-color: #fff !important;
	color: #fff !important;
}

/* ---------------------------------------------------------------------------
   PREV / NEXT PAGINATION
   --------------------------------------------------------------------------- */
.prd-post-pagination{
	margin-top: 3em;
	padding-top: 2em;
	border-top: 1px solid var(--prd-c-line);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 600px){
	.prd-post-pagination{ grid-template-columns: 1fr; }
}
.prd-post-pag-link{
	display: flex;
	flex-direction: column;
	gap: .35rem;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid var(--prd-c-line);
	border-radius: 14px;
	text-decoration: none;
	color: var(--prd-c-ink);
	transition: all .2s ease;
	min-width: 0;
}
.prd-post-pag-next{ text-align: right; }
.prd-post-pag-link:hover{
	border-color: var(--prd-c-ink);
	transform: translateY(-2px);
	box-shadow: 0 14px 32px -18px rgba(17,20,24,.18);
}
.prd-post-pag-dir{
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--prd-c-muted);
}
.prd-post-pag-title{
	font-family: var(--prd-ff-display);
	font-size: 1.05rem;
	line-height: 1.25;
	color: var(--prd-c-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* ---------------------------------------------------------------------------
   RELATED POSTS
   --------------------------------------------------------------------------- */
.prd-post-related{
	background: var(--prd-c-bg-alt, #f7f4ee);
	padding-block: clamp(3rem, 6vw, 5rem);
}
.prd-post-related-head{
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.prd-post-related-title{
	font-family: var(--prd-ff-display);
	font-weight: 400;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	line-height: 1.1;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--prd-c-ink);
}
.prd-post-related-grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2rem);
}
@media (max-width: 800px){ .prd-post-related-grid{ grid-template-columns: 1fr; } }
.prd-post-related-card{ display: flex; flex-direction: column; }
.prd-post-related-media{
	display: block;
	overflow: hidden;
	border-radius: 12px;
	aspect-ratio: 4 / 3;
	background: var(--prd-c-line);
	margin: 0 0 1rem;
	position: relative;
}
.prd-post-related-media img{
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s ease;
}
.prd-post-related-media:hover img{ transform: scale(1.04); }
.prd-post-related-placeholder{
	position: absolute; inset: 0;
	background: linear-gradient(135deg, var(--prd-c-line), #fff);
}
.prd-post-related-meta{
	font-size: .75rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--prd-c-muted);
	margin: 0 0 .4rem;
	font-weight: 500;
}
.prd-post-related-card-title{
	font-family: var(--prd-ff-display);
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.2;
	margin: 0;
	letter-spacing: -0.005em;
}
.prd-post-related-card-title a{
	color: var(--prd-c-ink);
	text-decoration: none;
	transition: color .15s ease;
}
.prd-post-related-card-title a:hover{ color: var(--prd-c-accent); }

/* ---------------------------------------------------------------------------
   Hide legacy Royal chrome on single posts
   --------------------------------------------------------------------------- */
body.single-post .page-heading,
body.single-post .breadcrumbs,
body.single-post .page-heading-title,
body.single-post .post-info,
body.single-post .author-info{ display: none !important; }
body.single-post .content,
body.single-post .page-content > .row > .content{
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100% !important;
}
body.single-post aside.sidebar,
body.single-post .widget-area,
body.single-post #sidebar{ display: none !important; }

/* ---------------------------------------------------------------------------
   WPBakery [vc_gallery type="image_grid"] inside post body
   --------------------------------------------------------------------------- */
.prd-post-article .wpb_gallery,
.prd-post-article .wpb_gallery_slides{
	margin: 2em 0 !important;
}
.prd-post-article .wpb_gallery .wpb_image_grid_ul,
.prd-post-article .wpb_image_grid .wpb_image_grid_ul{
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: .75rem !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.prd-post-article .wpb_gallery .wpb_image_grid_ul .isotope-item,
.prd-post-article .wpb_image_grid .wpb_image_grid_ul .isotope-item{
	position: static !important;
	width: auto !important;
	height: auto !important;
	transform: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.prd-post-article .wpb_gallery .wpb_image_grid_ul li,
.prd-post-article .wpb_image_grid .wpb_image_grid_ul li{
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.prd-post-article .wpb_gallery .wpb_image_grid_ul li::marker{
	content: "" !important;
}
.prd-post-article .wpb_gallery a,
.prd-post-article .wpb_image_grid a{
	display: block !important;
	overflow: hidden !important;
	border-radius: 14px !important;
	background: var(--prd-c-bg-alt, #f7f4ee) !important;
}
.prd-post-article .wpb_gallery img,
.prd-post-article .wpb_image_grid img{
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	border-radius: 14px !important;
	transition: transform .5s ease !important;
}
.prd-post-article .wpb_gallery a:hover img,
.prd-post-article .wpb_image_grid a:hover img{
	transform: scale(1.05) !important;
}
@media (max-width: 900px){
	.prd-post-article .wpb_gallery .wpb_image_grid_ul,
	.prd-post-article .wpb_image_grid .wpb_image_grid_ul{
		grid-template-columns: repeat(3, 1fr) !important;
	}
}
@media (max-width: 600px){
	.prd-post-article .wpb_gallery .wpb_image_grid_ul,
	.prd-post-article .wpb_image_grid .wpb_image_grid_ul{
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
