/*
Theme Name: Provibe News
Theme URI: https://provibe.media
Author: Provibe Media LLP
Description: Fast, clean, responsive block theme for news publishing. Brand color, breaking-news ticker and dark mode built in.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: provibe-news
Tags: news, blog, block-patterns, full-site-editing, custom-colors, wide-blocks
*/

/* ---------- Dark mode: override palette vars ---------- */
html[data-theme="dark"] {
	--wp--preset--color--base: #111214;
	--wp--preset--color--surface: #1b1c1f;
	--wp--preset--color--ink: #ececea;
	--wp--preset--color--ink-soft: #c9c9c5;
	--wp--preset--color--muted: #9a9a96;
	--wp--preset--color--line: #2c2d31;
	color-scheme: dark;
}

/* ---------- Base ---------- */
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img {
	height: auto;
}

.pv-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- Masthead: date+weather | logo | dark toggle ---------- */
.pv-masthead__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}

.pv-masthead__inner > * {
	margin: 0 !important;
}

.pv-masthead__meta {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.pv-masthead__actions {
	justify-self: end;
}

.pv-today {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

.pv-weather {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
}

.pv-weather__icon {
	width: 16px;
	height: 16px;
	color: var(--wp--preset--color--brand);
}

.pv-weather__temp {
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}

@media (max-width: 781px) {
	.pv-masthead__inner {
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"brand brand"
			"meta actions";
		row-gap: var(--wp--preset--spacing--30);
	}

	.pv-masthead__brand {
		grid-area: brand;
	}

	.pv-masthead__meta {
		grid-area: meta;
		flex-direction: row !important;
		flex-wrap: wrap;
		gap: 0.25rem 0.75rem !important;
	}

	.pv-masthead__actions {
		grid-area: actions;
	}

	.pv-theme-toggle__text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}

.pv-theme-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.pv-theme-toggle:hover {
	color: var(--wp--preset--color--brand);
	border-color: currentColor;
}

.pv-theme-toggle svg {
	width: 14px;
	height: 14px;
}

.pv-theme-toggle .pv-icon-sun,
html[data-theme="dark"] .pv-theme-toggle .pv-icon-moon {
	display: none;
}

html[data-theme="dark"] .pv-theme-toggle .pv-icon-sun {
	display: inline;
}

/* ---------- Social links ---------- */
.pv-social--footer {
	margin-top: var(--wp--preset--spacing--50);
}

.pv-social__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-social a {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: var(--wp--preset--color--ink);
	transition: color 0.15s ease, background-color 0.15s ease;
}

.pv-social a:hover,
.pv-social a:focus-visible {
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--on-brand);
}

.pv-social svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.pv-social--footer a {
	width: 38px;
	height: 38px;
	border: 1px solid var(--wp--preset--color--line);
}

.pv-social--footer svg {
	width: 18px;
	height: 18px;
}

/* ---------- Masthead + nav ---------- */
.pv-masthead .wp-block-site-title {
	margin: 0;
	line-height: 1;
}

.pv-masthead .wp-block-site-tagline {
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--muted);
}

.pv-navbar {
	border-top: 3px solid var(--wp--preset--color--ink);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pv-navbar .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--brand);
}

.pv-navbar .wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--brand);
}

.pv-navbar .wp-block-navigation__submenu-container,
.pv-navbar .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--ink) !important;
	border-color: var(--wp--preset--color--line) !important;
}

/* Centered menu; search pinned right */
.pv-navbar__inner {
	position: relative;
}

.pv-navbar__inner > .wp-block-search {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

/* Logo set → hide text title (logo alt carries site name) */
.pv-masthead .wp-block-site-logo ~ .wp-block-site-title,
.pv-masthead .wp-block-site-logo ~ .wp-block-site-tagline {
	display: none;
}

.pv-masthead .wp-block-site-logo img {
	width: min(320px, 70vw);
	height: auto;
}

.pv-navbar .wp-block-search__button {
	margin: 0;
	padding: 0.35rem;
	background: transparent;
	color: var(--wp--preset--color--ink);
}

.pv-navbar .wp-block-search__button:hover {
	color: var(--wp--preset--color--brand);
}

/* ---------- Ticker ---------- */
.pv-ticker {
	display: flex;
	align-items: stretch;
	overflow: hidden;
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
}

.pv-ticker__label {
	flex: none;
	display: flex;
	align-items: center;
	padding: 0.5rem 0.85rem;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--on-brand);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--x-small);
}

.pv-ticker__viewport {
	flex: 1;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 2rem, #000 calc(100% - 2rem), transparent);
}

.pv-ticker__track {
	display: flex;
	width: max-content;
	animation: pv-ticker var(--pv-ticker-duration, 40s) linear infinite;
}

.pv-ticker:hover .pv-ticker__track,
.pv-ticker:focus-within .pv-ticker__track {
	animation-play-state: paused;
}

.pv-ticker__list {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-ticker__item {
	padding: 0.5rem 1.25rem;
	white-space: nowrap;
	font-weight: 600;
}

.pv-ticker__item::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 0.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--brand);
	vertical-align: middle;
}

@keyframes pv-ticker {
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pv-ticker__track {
		animation: none;
	}

	.pv-ticker__viewport {
		overflow-x: auto;
	}

	.pv-ticker__list[aria-hidden="true"] {
		display: none;
	}
}

/* ---------- Section headings ---------- */
.pv-section-title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.pv-section-title::before {
	content: "";
	width: 4px;
	height: 1.1em;
	background: var(--wp--preset--color--brand);
}

.pv-section-title::after {
	content: "";
	order: 1;
	flex: 1;
	height: 1px;
	background: var(--wp--preset--color--line);
}

/* ---------- Kicker (category label) ---------- */
.pv-kicker {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.pv-kicker a {
	color: var(--wp--preset--color--brand);
}

.pv-kicker .wp-block-post-terms__separator {
	color: var(--wp--preset--color--muted);
}

/* ---------- Cards / lists ---------- */
.pv-card .wp-block-post-featured-image {
	margin-bottom: 0.6rem;
	overflow: hidden;
}

.pv-card .wp-block-post-featured-image img {
	transition: transform 0.3s ease;
}

.pv-card:hover .wp-block-post-featured-image img {
	transform: scale(1.03);
}

.pv-card .wp-block-post-title {
	margin: 0.25rem 0;
}

/* Stacked list with divider lines */
.pv-list > li + li {
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pv-list > li {
	padding-bottom: 0.85rem;
}

/* Media row: text left, thumb right */
.pv-media-row {
	display: grid !important;
	grid-template-columns: 1fr 112px;
	gap: 0.85rem;
	align-items: start;
}

.pv-media-row > .wp-block-post-featured-image {
	grid-column: 2;
	grid-row: 1 / span 3;
	margin: 0 !important;
}

.pv-media-row > :not(.wp-block-post-featured-image) {
	grid-column: 1;
	margin: 0 !important;
}

@media (min-width: 782px) {
	.pv-media-row--lg {
		grid-template-columns: 1fr 240px;
	}
}

/* Latest-list with time */
.pv-latest .wp-block-post-date {
	color: var(--wp--preset--color--brand);
	font-weight: 700;
}

/* Lead story */
.pv-lead .wp-block-post-title {
	font-size: clamp(1.5rem, 1rem + 1.6vw, 2.25rem);
	line-height: 1.2;
}

/* Column dividers on desktop */
@media (min-width: 782px) {
	.pv-divided > .wp-block-column + .wp-block-column {
		padding-left: var(--wp--preset--spacing--50);
		border-left: 1px solid var(--wp--preset--color--line);
	}
}

/* ---------- Single article ---------- */
.pv-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	padding: 0.75rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.pv-byline__photo {
	flex: none;
	line-height: 0;
}

.pv-byline__author a {
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}

.pv-byline__author a:hover {
	color: var(--wp--preset--color--brand);
}

.pv-byline__sep {
	color: var(--wp--preset--color--line);
	font-weight: 700;
}

.pv-d-short {
	display: none;
}

@media (max-width: 599px) {
	.pv-byline {
		gap: 0.3rem 0.4rem;
		font-size: var(--wp--preset--font-size--x-small);
	}

	.pv-d-long {
		display: none;
	}

	.pv-d-short {
		display: inline;
	}

	.pv-byline__photo .pv-avatar {
		width: 22px !important;
		height: 22px !important;
		font-size: 9px !important;
	}
}

.pv-tags a {
	display: inline-block;
	padding: 0.25rem 0.6rem;
	border: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
}

.pv-tags a:hover {
	border-color: var(--wp--preset--color--brand);
}

.pv-tags .wp-block-post-terms__separator {
	display: none;
}

.pv-author-box {
	background: var(--wp--preset--color--surface);
}

@media (min-width: 1024px) and (min-height: 760px) {
	.pv-sticky {
		position: sticky;
		/* Clear admin bar + sticky navbar. */
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 4.5rem);
	}
}

/* ---------- Footer ---------- */
.pv-footer {
	border-top: 3px solid var(--wp--preset--color--brand);
}

.pv-footer a:hover {
	color: var(--wp--preset--color--brand);
}

.pv-footer .wp-block-categories,
.pv-footer .pv-menu {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 2;
	font-size: var(--wp--preset--font-size--small);
}

.pv-footer .pv-menu {
	columns: 1;
}

.pv-footer .wp-block-categories li,
.pv-footer .pv-menu li {
	padding: 0.2rem 0;
}

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.pv-hide-mobile {
		display: none !important;
	}

	.pv-lead .wp-block-post-title {
		font-size: var(--wp--preset--font-size--x-large);
	}
}

.pv-standfirst {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--headline);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	color: var(--wp--preset--color--ink-soft);
}

/* Mobile: hamburger left, search right */
@media (max-width: 599px) {
	.pv-navbar__inner {
		justify-content: flex-start !important;
	}
}

/* ---------- Sticky compact nav ---------- */
/* Header box removed so navbar can stick relative to the whole page. */
.wp-site-blocks > header.wp-block-template-part {
	display: contents;
}

.pv-navbar {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	transition: box-shadow 0.2s ease;
}

.pv-scrolled .pv-navbar {
	box-shadow: 0 2px 10px rgb(0 0 0 / 0.08);
}

.pv-navbar__logo {
	position: absolute;
	top: 50%;
	left: 0;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-50%);
	transition: opacity 0.2s ease, visibility 0.2s;
}

.pv-navbar__logo img {
	width: 130px;
	height: auto;
}

.pv-scrolled .pv-navbar__logo {
	opacity: 1;
	visibility: visible;
}

/* Admin bar is not fixed on small screens. */
@media (max-width: 600px) {
	.pv-navbar {
		top: 0;
	}

	.pv-navbar__logo {
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.pv-navbar__logo img {
		width: 110px;
	}
}

/* ---------- Homepage category sections: lead | 2 image stories | list ---------- */
.pv-catsec {
	margin-top: var(--wp--preset--spacing--70);
}

.pv-catsec .pv-section-title a {
	color: inherit;
}

.pv-catsec .pv-section-title a:hover {
	color: var(--wp--preset--color--brand);
}

.pv-section-title .pv-catsec__more {
	order: 2;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--brand) !important;
}

.pv-catsec__grid {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}

.pv-catsec__img {
	display: block;
	overflow: hidden;
	margin-bottom: 0.6rem;
}

.pv-catsec__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.pv-card:hover .pv-catsec__img img {
	transform: scale(1.03);
}

.pv-catsec__title {
	margin: 0.25rem 0 0.5rem;
	font-size: var(--wp--preset--font-size--x-large);
}

.pv-catsec__excerpt {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink-soft);
}

.pv-catsec__item-title {
	margin: 0.2rem 0 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.3;
}

.pv-catsec__time {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.pv-catsec__list .pv-catsec__time {
	color: var(--wp--preset--color--brand);
	font-weight: 700;
}

.pv-catsec__middle,
.pv-catsec__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* .pv-list dividers work on direct children: li or article. */
.pv-catsec__middle > article + article {
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pv-catsec__middle > article {
	padding-bottom: 0.85rem;
}

/* Tablet: lead full width, then two columns. */
@media (min-width: 600px) {
	.pv-catsec__grid {
		grid-template-columns: 1fr 1fr;
	}

	.pv-catsec__lead {
		grid-column: 1 / -1;
	}
}

/* Desktop: three columns with dividers. */
@media (min-width: 1024px) {
	.pv-catsec__grid {
		grid-template-columns: 1.35fr 1fr 1fr;
	}

	.pv-catsec__lead {
		grid-column: auto;
	}

	.pv-catsec__middle,
	.pv-catsec__list {
		padding-left: var(--wp--preset--spacing--50);
		border-left: 1px solid var(--wp--preset--color--line);
	}
}

/* ---------- Footer brand ---------- */
.pv-footer__brand .wp-block-site-logo ~ .wp-block-site-title,
.pv-footer__brand .wp-block-site-logo ~ .wp-block-site-tagline {
	display: none;
}

/* ---------- Ads ---------- */
/* Sidebar: ad on top, Latest News below (sticky). */
.pv-sidebar > .pv-ad {
	margin-bottom: var(--wp--preset--spacing--60);
}

.pv-sidebar__latest {
	background: var(--wp--preset--color--base);
}

.pv-ad {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
}

.pv-ad__label {
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* Reserve exact space so nothing jumps when ad loads (CLS). */
.pv-ad__slot {
	display: grid;
	place-items: center;
	width: var(--pv-ad-w);
	max-width: 100%;
	min-height: var(--pv-ad-h);
	overflow: hidden;
}

.pv-ad__slot img {
	display: block;
	width: 100%;
	height: auto;
}

.pv-ad__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: var(--pv-ad-h);
	border: 2px dashed var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-align: center;
}

/* Side rails: only when there is real room beside the 1240px layout. */
.pv-ad--rail {
	display: none;
}

@media (min-width: 1620px) {
	.pv-ad--rail {
		position: fixed;
		z-index: 40;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 5rem);
		display: flex;
	}

	/* 620 = half of 1240 content; 24px gap; 160px rail. */
	.pv-ad--rail-left {
		left: calc(50% - 620px - 24px - 160px);
	}

	.pv-ad--rail-right {
		right: calc(50% - 620px - 24px - 160px);
	}
}

/* Homepage ad rows: up to 3 per row, centered when fewer. */
.pv-ad-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	margin-top: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pv-ad-row__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	/* Mixed shapes (landscape + portrait govt ads): centre each in the row. */
	align-items: center;
	gap: var(--wp--preset--spacing--50);
	width: 100%;
}

.pv-ad--home {
	flex: 0 1 100%;
}

@media (min-width: 600px) {
	.pv-ad--home {
		flex-basis: calc((100% - 2 * var(--wp--preset--spacing--50)) / 3);
	}
}

.pv-ad--home .pv-ad__slot {
	width: 100%;
	min-height: var(--pv-ad-h);
}

.pv-ad--home .pv-ad__placeholder {
	height: 250px;
}

/* Leaderboards: centred band, allowed past 760px content width up to wide width. */
.pv-ad.pv-ad--leaderboard-top,
.pv-ad.pv-ad--leaderboard-hero {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-top: var(--wp--preset--spacing--50) !important;
	margin-bottom: 0;
}

.pv-ad--leaderboard-hero {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.pv-ad--leaderboard-top .pv-ad__slot,
.pv-ad--leaderboard-hero .pv-ad__slot {
	min-height: 0;
}

.pv-ad--leaderboard-top picture,
.pv-ad--leaderboard-hero picture {
	display: block;
	width: 100%;
}

/* Reserve banner space only for code ads (images carry own dimensions). */
.pv-ad--leaderboard-top .pv-ad__slot:has(> template),
.pv-ad--leaderboard-hero .pv-ad__slot:has(> template) {
	min-height: var(--pv-ad-h);
}

@media (max-width: 599px) {
	.pv-ad--leaderboard-top .pv-ad__slot:has(> template),
	.pv-ad--leaderboard-hero .pv-ad__slot:has(> template) {
		min-height: 50px;
	}
}

/* ---------- Avatars ---------- */
.pv-avatar {
	display: block;
	flex: none;
	border-radius: 50%;
	object-fit: cover;
}

.pv-avatar--initials {
	display: grid;
	place-items: center;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--on-brand);
	font-family: var(--wp--preset--font-family--headline);
	font-weight: 700;
	letter-spacing: 0.02em;
}

/* ---------- Opinion: 3×3 grid ---------- */
.pv-opinion {
	margin-top: var(--wp--preset--spacing--70);
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--surface);
}

.pv-opinion .pv-section-title span {
	color: inherit;
}

.pv-opinion__grid {
	display: grid;
	gap: 0 var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-opinion__card {
	display: flex;
	gap: 0.9rem;
	align-items: flex-start;
	padding: var(--wp--preset--spacing--40) 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pv-opinion__avatar {
	flex: none;
	border-radius: 50%;
	box-shadow: 0 0 0 3px var(--wp--preset--color--base), 0 0 0 4px var(--wp--preset--color--line);
}

.pv-opinion__avatar:hover {
	box-shadow: 0 0 0 3px var(--wp--preset--color--base), 0 0 0 4px var(--wp--preset--color--brand);
}

.pv-opinion__author {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--brand) !important;
}

.pv-opinion__title {
	margin: 0.3rem 0 0;
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	line-height: 1.35;
}

@media (min-width: 600px) {
	.pv-opinion__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.pv-opinion {
		padding: var(--wp--preset--spacing--60);
	}

	.pv-opinion__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* Last row: no bottom border. */
	.pv-opinion__card:nth-last-child(-n + 3) {
		border-bottom: 0;
	}
}

/* Mini byline (avatar + name) in lists, e.g. Features category. */
.pv-author-mini {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.35rem 0 0.25rem !important;
}

.pv-author-mini .wp-block-post-author__avatar {
	margin: 0;
	line-height: 0;
}

.pv-author-mini .wp-block-post-author__avatar img,
.pv-author-mini .pv-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
}

.pv-author-mini .wp-block-post-author__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.pv-author-mini .wp-block-post-author__name a {
	color: var(--wp--preset--color--brand);
}

/* Single-article author avatars: round everywhere. */
.wp-block-post-author__avatar .pv-avatar,
.wp-block-post-author__avatar img {
	border-radius: 50%;
}

/* ---------- Author page header ---------- */
.pv-author-head {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	align-items: start;
	margin-bottom: var(--wp--preset--spacing--60) !important;
	padding: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--surface);
	border-top: 3px solid var(--wp--preset--color--brand);
}

.pv-author-head__photo {
	justify-self: center;
}

.pv-author-head__photo .pv-avatar {
	box-shadow: 0 0 0 4px var(--wp--preset--color--base), 0 0 0 5px var(--wp--preset--color--line);
}

.pv-author-head__name {
	margin: 0.25rem 0 0;
	font-size: var(--wp--preset--font-size--xx-large);
}

.pv-author-head__role {
	margin: 0.35rem 0 0;
	font-weight: 600;
	color: var(--wp--preset--color--ink-soft);
}

.pv-author-head__bio {
	max-width: 70ch;
	margin-top: 0.75rem;
	color: var(--wp--preset--color--ink-soft);
}

.pv-author-head__bio p {
	margin: 0 0 0.5rem;
}

.pv-author-head__bio a {
	color: var(--wp--preset--color--brand);
	text-decoration: underline;
}

.pv-author-head__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.pv-author-head__meta a {
	color: var(--wp--preset--color--brand);
}

@media (min-width: 600px) {
	.pv-author-head {
		grid-template-columns: auto 1fr;
	}
}

/* ---------- Key Takeaways box ---------- */
.pv-takeaways {
	margin: var(--wp--preset--spacing--50) 0 !important;
	padding: var(--wp--preset--spacing--50);
	background: color-mix(in srgb, var(--wp--preset--color--brand) 6%, var(--wp--preset--color--base));
	border-left: 4px solid var(--wp--preset--color--brand);
}

.pv-takeaways__title {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand);
}

.pv-takeaways__list {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pv-takeaway;
}

.pv-takeaways__list li {
	position: relative;
	padding-left: 2.1rem;
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.5;
	counter-increment: pv-takeaway;
}

.pv-takeaways__list li::before {
	content: counter(pv-takeaway);
	position: absolute;
	top: 0.1rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.45rem;
	height: 1.45rem;
	border-radius: 50%;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--on-brand);
	font-size: 0.75rem;
	font-weight: 800;
}

/* ---------- Image captions (body images + featured image) ---------- */
.wp-caption,
.wp-block-image,
.wp-block-post-featured-image {
	max-width: 100%;
}

/* Classic [caption] sets an inline pixel width (= image width): keep it, but never wider than the column. */
.wp-caption {
	margin-top: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
}

.wp-caption.aligncenter {
	margin-right: auto;
	margin-left: auto;
}

.wp-caption img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.wp-caption-text,
.wp-post-image + figcaption,
.wp-block-post-content figcaption,
.wp-block-post-content .wp-element-caption,
.pv-featured-caption {
	display: flex;
	gap: 0.6rem;
	margin: 0;
	padding: 0.55rem 0 0.65rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem;
	font-style: normal;
	line-height: 1.45;
	text-align: left;
	color: var(--wp--preset--color--muted);
}

.wp-caption-text::before,
.wp-post-image + figcaption::before,
.wp-block-post-content figcaption::before,
.wp-block-post-content .wp-element-caption::before,
.pv-featured-caption::before {
	content: "";
	flex: none;
	width: 3px;
	margin: 0.2em 0;
	border-radius: 2px;
	background: var(--wp--preset--color--brand);
}

.wp-caption-text a,
.pv-featured-caption a {
	color: var(--wp--preset--color--ink-soft);
	text-decoration: underline;
}

/* Featured image with caption: no bottom gap between image and caption. */
.wp-block-post-featured-image:has(.pv-featured-caption) img {
	margin-bottom: 0;
}

/* Sticky needs room: stretch the sidebar to the full height of its column. */
.wp-block-column > aside.wp-block-template-part,
.pv-sidebar {
	height: 100%;
}

/* Compact sticky list so it fits under the navbar on laptop screens. */
.pv-sidebar__latest .pv-media-row {
	grid-template-columns: 1fr 80px;
	gap: 0.75rem;
}

.pv-sidebar__latest .pv-list > li {
	padding-bottom: 0.7rem;
}

.pv-sidebar__latest .pv-list > li + li {
	padding-top: 0.7rem;
}

.pv-sidebar__latest .wp-block-post-title {
	line-height: 1.3;
}

/* ---------- Also Read (in-article) ---------- */
.pv-also-read {
	margin: var(--wp--preset--spacing--50) 0 !important;
}

.pv-also-read a {
	text-decoration: none !important;
}

.pv-also-read__label,
.pv-also-read__heading {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand);
}

/* Text line */
.pv-also-read--text {
	padding: 0.6rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pv-also-read__line {
	margin: 0;
	font-family: var(--wp--preset--font-family--headline);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.4;
}

.pv-also-read__line + .pv-also-read__line {
	margin-top: 0.4rem;
}

.pv-also-read--text a {
	color: var(--wp--preset--color--ink) !important;
}

.pv-also-read--text a:hover {
	color: var(--wp--preset--color--brand) !important;
}

/* Card */
.pv-also-read--card {
	display: grid;
	gap: 0.6rem;
}

.pv-also-read__card {
	display: flex;
	gap: 0.9rem;
	align-items: center;
	padding: 0.7rem;
	border: 1px solid var(--wp--preset--color--line);
	border-left: 4px solid var(--wp--preset--color--brand);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink) !important;
	transition: background-color 0.15s ease;
}

.pv-also-read__card:hover {
	background: var(--wp--preset--color--surface);
}

.pv-also-read__thumb img {
	display: block;
	width: 96px;
	height: 72px;
	object-fit: cover;
}

.pv-also-read__text {
	display: grid;
	gap: 0.2rem;
}

.pv-also-read__title {
	font-family: var(--wp--preset--font-family--headline);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
}

.pv-also-read__card:hover .pv-also-read__title {
	color: var(--wp--preset--color--brand);
}

/* Box */
.pv-also-read--box {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--surface);
	border-top: 3px solid var(--wp--preset--color--brand);
}

.pv-also-read__heading {
	margin: 0 0 0.5rem !important;
}

.pv-also-read__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-also-read__list li {
	position: relative;
	padding: 0.4rem 0 0.4rem 1.1rem;
	font-family: var(--wp--preset--font-family--headline);
	font-weight: 700;
	line-height: 1.4;
}

.pv-also-read__list li + li {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pv-also-read__list li::before {
	content: "›";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--brand);
	font-weight: 800;
}

.pv-also-read--box a {
	color: var(--wp--preset--color--ink) !important;
}

.pv-also-read--box a:hover {
	color: var(--wp--preset--color--brand) !important;
}

/* ---------- Share buttons ---------- */
.pv-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
}

.pv-share__label {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.pv-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-share__list li[hidden] {
	display: none;
}

.pv-share__btn {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: var(--pv-net, var(--wp--preset--color--ink));
	color: #fff !important;
	cursor: pointer;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.pv-share__btn:hover,
.pv-share__btn:focus-visible {
	transform: translateY(-2px);
	opacity: 0.9;
}

.pv-share__btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.pv-share__btn--copy svg,
.pv-share__btn--native svg {
	fill: none;
}

.pv-share__text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.pv-share__btn--whatsapp { --pv-net: #25d366; }
.pv-share__btn--facebook { --pv-net: #1877f2; }
.pv-share__btn--x { --pv-net: #000; }
.pv-share__btn--telegram { --pv-net: #229ed9; }
.pv-share__btn--linkedin { --pv-net: #0a66c2; }
.pv-share__btn--email { --pv-net: #5f6368; }
.pv-share__btn--copy,
.pv-share__btn--native { --pv-net: var(--wp--preset--color--ink-soft); }

.pv-share__btn.is-copied {
	--pv-net: #1a7f37;
}

.pv-share__btn.is-failed {
	--pv-net: #b32d2e;
}

/* Tooltip-style feedback next to the copy button. */
.pv-share__btn.is-copied::after,
.pv-share__btn.is-failed::after {
	content: attr(title);
	position: absolute;
	transform: translateY(-2.4rem);
	padding: 0.25rem 0.5rem;
	border-radius: 3px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
	font-size: 0.75rem;
	font-weight: 600;
	white-space: nowrap;
	pointer-events: none;
}

/* Minimal style: outline, site colours. */
.pv-share--minimal .pv-share__btn {
	border-color: var(--wp--preset--color--line);
	background: transparent;
	color: var(--wp--preset--color--ink) !important;
}

.pv-share--minimal .pv-share__btn:hover {
	border-color: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--brand) !important;
	opacity: 1;
}

/* Before / after article */
.pv-share--top {
	margin-top: 0.75rem !important;
}

.pv-share--bottom {
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--line);
}

/* Sticky: desktop rail beside the text; phones/tablets bottom bar. */
.pv-share--rail,
.pv-share--mobile {
	display: none;
}

@media (min-width: 1200px) {
	.pv-has-share-rail .entry-content {
		padding-left: 64px;
	}

	.pv-share--rail {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 6rem);
		z-index: 5;
		float: left;
		display: flex;
		flex-direction: column;
		width: 40px;
		margin: 0 0 0 -64px !important;
	}

	.pv-share--rail .pv-share__label {
		font-size: 0.625rem;
		text-align: center;
	}

	.pv-share--rail .pv-share__list {
		flex-direction: column;
	}
}

@media (max-width: 1199px) {
	.pv-share--mobile {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 60;
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--base);
		border-top: 1px solid var(--wp--preset--color--line);
		box-shadow: 0 -2px 10px rgb(0 0 0 / 0.06);
	}

	.pv-share--mobile .pv-share__list {
		flex-wrap: nowrap;
	}

	.pv-has-share-rail {
		padding-bottom: 60px;
	}
}

/* ---------- Top Stories: 5 per row (5 or 10 stories) ---------- */
.pv-top-stories .wp-block-post-template {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (min-width: 782px) {
	.pv-top-stories .wp-block-post-template {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1024px) {
	.pv-top-stories .wp-block-post-template {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}
}

.pv-top-stories .wp-block-post-title {
	font-size: 1rem !important;
	line-height: 1.3;
}

/* ---------- Breadcrumbs ---------- */
.pv-breadcrumbs {
	margin: 0 0 0.5rem !important;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.pv-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pv-breadcrumbs__list li + li::before {
	content: "›";
	margin-right: 0.25rem;
	color: var(--wp--preset--color--line);
}

.pv-breadcrumbs a {
	color: var(--wp--preset--color--muted);
}

.pv-breadcrumbs a:hover,
.pv-breadcrumbs [aria-current] {
	color: var(--wp--preset--color--brand);
}

/* Plugin breadcrumbs (Yoast / Rank Math) inherit the same look. */
.pv-breadcrumbs .rank-math-breadcrumb p,
.pv-breadcrumbs > span {
	margin: 0;
}

.pv-breadcrumbs .separator,
.pv-breadcrumbs .breadcrumb_last {
	color: var(--wp--preset--color--brand);
}

/* ---------- Most Read (sidebar) ---------- */
.pv-most-read {
	margin-bottom: var(--wp--preset--spacing--60) !important;
}

.pv-most-read__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pv-most-read;
}

.pv-most-read__list li {
	display: grid;
	grid-template-columns: 2.25rem 1fr;
	gap: 0.5rem;
	align-items: start;
	padding: 0.7rem 0;
	counter-increment: pv-most-read;
}

.pv-most-read__list li + li {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pv-most-read__list li::before {
	content: counter(pv-most-read);
	font-family: var(--wp--preset--font-family--headline);
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--brand);
}

.pv-most-read__list a {
	font-family: var(--wp--preset--font-family--headline);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--ink);
}

.pv-most-read__list a:hover {
	color: var(--wp--preset--color--brand);
}
