/*
Theme Name: PVI Rojo
Theme URI:
Description: Custom theme for Punto de Vista Internacional, child of Twenty Twenty-Five.
Author: PVI
Author URI:
Template: twentytwentyfive
Version: 1.6.1
Requires at least: 6.7
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pvi-rojo
*/

/* ── Color System ──────────────────────────────────────── */

:root {
	/* Brand constants — same in both modes */
	--pvi-brand-red:       #F20D0D;
	--pvi-brand-pink:      #FFE3E3;
	--pvi-brand-dark-red:  #260000;

	/* Text on dark/red surfaces — always light */
	--pvi-text-on-dark:      #FFE3E3;
	--pvi-text-on-dark-soft: #FFE3E3;

	/* Mode-switching tokens — light defaults */
	--pvi-bg-body:       #ffffff;
	--pvi-text-body:     #111111;
	--pvi-bg-surface:    #f5f5f5;
	--pvi-text-muted:    #686868;
	--pvi-border-subtle: #e0e0e0;
}

/* Dark mode — explicit toggle */
html[data-theme="dark"] {
	--pvi-brand-red:     #5E1511;
	--pvi-brand-pink:    #ffffff;
	--pvi-bg-body:       #1a1a1a;
	--pvi-text-body:     #ffffff;
	--pvi-text-on-dark:  #ffffff;
	--pvi-text-on-dark-soft: #ffffff;
	--pvi-bg-surface:    #2a2a2a;
	--pvi-text-muted:    #ffffff;
	--pvi-border-subtle: #3a3a3a;

	/* Override WP preset vars so parent theme styles respond */
	--wp--preset--color--base:     #1a1a1a;
	--wp--preset--color--contrast: #ffffff;

	color: #ffffff;
}

html[data-theme="dark"] *,
html[data-theme="dark"] a,
html[data-theme="dark"] a:visited,
html[data-theme="dark"] p,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] span,
html[data-theme="dark"] li {
	color: #ffffff !important;
}

html[data-theme="dark"] a:hover {
	text-decoration: underline !important;
}

/* Dark mode — OS preference fallback (no JS or no saved pref) */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--pvi-brand-red:     #5E1511;
		--pvi-brand-pink:    #ffffff;
		--pvi-bg-body:       #1a1a1a;
		--pvi-text-body:     #ffffff;
		--pvi-text-on-dark:  #ffffff;
		--pvi-text-on-dark-soft: #ffffff;
		--pvi-bg-surface:    #2a2a2a;
		--pvi-text-muted:    #ffffff;
		--pvi-border-subtle: #3a3a3a;

		--wp--preset--color--base:     #1a1a1a;
		--wp--preset--color--contrast: #ffffff;

		color: #ffffff;
	}

	:root:not([data-theme="light"]) *,
	:root:not([data-theme="light"]) a,
	:root:not([data-theme="light"]) a:visited,
	:root:not([data-theme="light"]) p,
	:root:not([data-theme="light"]) h1,
	:root:not([data-theme="light"]) h2,
	:root:not([data-theme="light"]) h3,
	:root:not([data-theme="light"]) h4,
	:root:not([data-theme="light"]) h5,
	:root:not([data-theme="light"]) h6,
	:root:not([data-theme="light"]) span,
	:root:not([data-theme="light"]) li {
		color: #ffffff !important;
	}

	:root:not([data-theme="light"]) a:hover {
		text-decoration: underline !important;
	}
}

/* ── Typography System ────────────────────────────────── */

:root {
	/* ── Modular Scale: Perfect Fourth (4:3) from 16 px, 48 px anchor ── */
	/* Font size aliases (shorthand for --wp--preset--font-size--*) */
	--pvi-fs-xs:   var(--wp--preset--font-size--xs);    /* 12px  step −1     */
	--pvi-fs-base: var(--wp--preset--font-size--base);  /* 16px  step  0     */
	--pvi-fs-lg:   var(--wp--preset--font-size--lg);    /* 21px  step +1     */
	--pvi-fs-xl:   var(--wp--preset--font-size--xl);    /* 28px  step +2     */
	--pvi-fs-3xl:  var(--wp--preset--font-size--3-xl);  /* 38px  step +3 fluid */
	--pvi-fs-4xl:  var(--wp--preset--font-size--4-xl);  /* 48px  anchor  fluid */

	/* Font stacks */
	--pvi-font-sans:  'Space Grotesk', sans-serif;
	--pvi-font-serif: 'Libre Baskerville', Baskerville, Georgia, serif;

	/* Font weights */
	--pvi-fw-regular: 400;
	--pvi-fw-medium:  500;
	--pvi-fw-semi:    600;
	--pvi-fw-bold:    700;
	--pvi-fw-extra:   800;

	/* Line heights */
	--pvi-lh-none:    1;
	--pvi-lh-tight:   1.15;
	--pvi-lh-snug:    1.25;
	--pvi-lh-normal:  1.4;
	--pvi-lh-relaxed: 1.6;
	--pvi-lh-loose:   1.8;

	/* Letter spacing */
	--pvi-ls-tighter: -0.5px;
	--pvi-ls-tight:   -0.01em;
	--pvi-ls-normal:  0;
	--pvi-ls-wide:    1px;
	--pvi-ls-widest:  2px;
	--pvi-ls-ultra:   3px;
}

/* WP kebab-case shims: _wp_to_kebab_case() splits digit-letter
   boundaries (3xl → 3-xl), but block HTML uses the raw slug.
   These rules bridge the mismatch for digit-prefixed slugs. */
.has-3xl-font-size  { font-size: var(--wp--preset--font-size--3-xl) !important; }
.has-4xl-font-size  { font-size: var(--wp--preset--font-size--4-xl) !important; }

/* Apply to body */
body {
	background-color: var(--pvi-bg-body);
	color: var(--pvi-text-body);
	transition: background-color 0.3s ease, color 0.3s ease;
}

/* Override WP core constrained layout max-width */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 1500px;
}

/* ── Content ↔ Featured alignment ────────────────────── */
/* The featured section inner container is flush-left at max-width 1500px
   with title/excerpt starting at 32px from the container edge.
   Mirror that for the constrained <main> so section headings and card
   grids line up with the featured title & excerpt. */

main.wp-block-group.is-layout-constrained {
	max-width: 1500px;
	margin-left: auto;
	margin-right: auto;
	/* Match the 32px left inset of the featured section title */
	padding-left: 32px;
	padding-right: 32px;
	box-sizing: border-box;
}

/* On viewports narrower than the max-width, keep comfortable gutters */
@media (max-width: 1560px) {
	main.wp-block-group.is-layout-constrained {
		padding-left: 32px;
		padding-right: 32px;
	}
}

@media (max-width: 1024px) {
	main.wp-block-group.is-layout-constrained {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 600px) {
	main.wp-block-group.is-layout-constrained {
		padding-left: 16px;
		padding-right: 16px;
	}
}

/* Children inside main should fill the available width,
   not be re-constrained to 1500px (main already handles that) */
main.wp-block-group.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

/* ── Global image containers — rounded + clipped ───────── */
.wp-block-post-featured-image,
.wp-block-image,
.wp-block-cover {
	border-radius: 4px;
	overflow: hidden;
}

/* ── Header ─────────────────────────────────────────────── */

.pvi-header {
	background-color: var(--pvi-brand-red);
	position: relative;
	padding-left: max(24px, calc((100% - 1500px) / 2 + 24px)) !important;
	padding-right: max(24px, calc((100% - 1500px) / 2 + 24px)) !important;
}

.pvi-header-logo a,
.pvi-footer-logo a {
	display: block;
	text-decoration: none;
	line-height: 0;
}

.pvi-header-logo img {
	width: 155px;
	height: auto;
	display: block;
}

.pvi-header-logo {
	margin: 0;
}

/* Nav link styling — pink on red header */
/* !important needed to override WP inline styles from block attributes */
.pvi-header-nav .wp-block-navigation-item a {
	color: var(--pvi-brand-pink) !important;
	text-decoration: none;
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	letter-spacing: 1.4px;
	text-transform: uppercase;
	line-height: 20px;
	transition: color 0.2s ease;
}

.pvi-header-nav .wp-block-navigation-item a:hover {
	color: var(--pvi-brand-dark-red) !important;
}

/* Remove default nav underlines */
.pvi-header-nav a {
	text-decoration: none !important;
}

/* ── Theme Toggle ──────────────────────────────────────── */

.pvi-theme-toggle {
	position: absolute;
	top: 8px;
	right: 24px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pvi-brand-pink);
	transition: color 0.2s ease;
	z-index: 10;
}

html[data-theme="dark"] .pvi-theme-toggle {
	color: var(--pvi-brand-pink);
}

.pvi-theme-toggle:hover {
	color: var(--pvi-brand-dark-red);
}

.pvi-theme-toggle svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ── Mobile Hamburger Menu ─────────────────────────────── */

/* Hidden by default on desktop */
.pvi-hamburger {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	z-index: 1001;
}

.pvi-hamburger-bar {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--pvi-brand-pink);
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animate to X when open */
.pvi-hamburger[aria-expanded="true"] .pvi-hamburger-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.pvi-hamburger[aria-expanded="true"] .pvi-hamburger-bar:nth-child(2) {
	opacity: 0;
}
.pvi-hamburger[aria-expanded="true"] .pvi-hamburger-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Mobile overlay backdrop */
.pvi-mobile-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(38, 0, 0, 0.6);
	z-index: 999;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.pvi-mobile-overlay.is-visible {
	display: block;
	opacity: 1;
}

@media (max-width: 640px) {
	/* Show hamburger */
	.pvi-hamburger {
		display: flex;
	}

	/* Slide-out nav panel — off-screen by default */
	.pvi-header nav.pvi-header-nav,
	nav.wp-block-navigation.pvi-header-nav {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		transform: translateX(100%) !important;
		width: 280px !important;
		height: 100vh !important;
		background-color: var(--pvi-brand-red) !important;
		z-index: 1000 !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		padding: 80px 32px 32px !important;
		gap: 0 !important;
		transition: transform 0.3s ease !important;
		overflow: hidden !important;
		visibility: hidden !important;
		box-shadow: none;
	}

	/* Clip all inner WP navigation wrappers */
	.pvi-header-nav *,
	.pvi-header-nav .wp-block-navigation__responsive-container,
	.pvi-header-nav .wp-block-navigation__responsive-container-content {
		overflow: hidden !important;
	}

	/* Slide in when open */
	.pvi-header nav.pvi-header-nav.is-open,
	nav.wp-block-navigation.pvi-header-nav.is-open {
		transform: translateX(0) !important;
		visibility: visible !important;
		overflow-y: auto !important;
		box-shadow: -4px 0 24px rgba(0, 0, 0, 0.3);
	}

	.pvi-header nav.pvi-header-nav.is-open *,
	.pvi-header-nav.is-open .wp-block-navigation__responsive-container,
	.pvi-header-nav.is-open .wp-block-navigation__responsive-container-content {
		overflow: visible !important;
	}

	/* Force all inner WP nav wrappers to stack at the top */
	.pvi-header-nav .wp-block-navigation__responsive-container,
	.pvi-header-nav .wp-block-navigation__responsive-container-content {
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		align-items: flex-start !important;
		height: auto !important;
		width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	/* Stack nav items vertically */
	.pvi-header-nav .wp-block-navigation__container {
		flex-direction: column !important;
		gap: 0 !important;
		width: 100%;
		justify-content: flex-start !important;
	}

	.pvi-header-nav .wp-block-navigation-item {
		width: 100%;
	}

	.pvi-header-nav .wp-block-navigation-item a {
		display: block;
		padding: 16px 0;
		font-size: var(--pvi-fs-lg) !important;
		letter-spacing: var(--pvi-ls-widest);
		border-bottom: 1px solid rgba(255, 227, 227, 0.15);
	}

	/* Keep logo visible and sized for mobile */
	.pvi-header-logo img {
		width: 120px;
	}

	/* Adjust theme toggle position */
	.pvi-theme-toggle {
		right: 56px;
	}
}

/* ── Featured Section ──────────────────────────────────── */

/* No gap between header and featured section */
.pvi-featured-query {
	margin-top: 0 !important;
}

/* Cover block — full-width, content pinned to bottom-left.
   Above 1500px, pad the cover so content centers while the
   background image still spans the entire viewport. */
.pvi-featured-cover {
	min-height: 480px;
	margin-top: 0 !important;
	border-radius: 0 !important;
}

.pvi-featured-cover img {
	border-radius: 0 !important;
}

@media (min-width: 1500px) {
	.pvi-featured-cover {
		padding-left: calc((100vw - 1500px) / 2) !important;
		padding-right: calc((100vw - 1500px) / 2) !important;
	}
}

/* Inner container: flush-left, right gutter only */
.pvi-featured-cover .wp-block-cover__inner-container {
	width: 100%;
	padding-left: 0;
	padding-right: 32px;
	box-sizing: border-box;
}

/* Title */
.pvi-featured-title {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-4xl);
	line-height: 48px;
	text-transform: uppercase;
	color: var(--pvi-text-on-dark-soft);
	margin-bottom: 24px;
}

.pvi-featured-title a {
	color: var(--pvi-text-on-dark-soft) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.pvi-featured-title a:hover {
	color: #ffffff !important;
}

/* Author byline inside featured excerpt wrapper */
.pvi-featured-author {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	line-height: 16px;
	color: var(--pvi-text-on-dark);
	margin: 8px 0 0 0 !important;
}

.pvi-featured-author a {
	color: var(--pvi-text-on-dark);
	text-decoration: none;
	transition: color 0.2s ease;
}

.pvi-featured-author a:hover {
	color: var(--pvi-brand-dark-red);
}

/* Excerpt with red left border — flush with category below to form L-shape */
.pvi-featured-excerpt-wrap {
	border-left-color: var(--pvi-brand-red);
	margin-bottom: 0 !important;
}

.pvi-featured-excerpt .wp-block-post-excerpt__excerpt,
.pvi-featured-excerpt p {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium);
	font-size: var(--pvi-fs-lg);
	line-height: 28px;
	letter-spacing: var(--pvi-ls-tighter);
	color: var(--pvi-text-on-dark);
	margin: 0;
}

/* Category tag — flush against excerpt border to form bottom-left L-frame */
.pvi-featured-category {
	display: flex;
	gap: 0;
	flex-wrap: wrap;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.pvi-featured-category a {
	background-color: var(--pvi-brand-red);
	color: var(--pvi-text-on-dark-soft);
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	transition: color 0.2s ease;
	letter-spacing: var(--pvi-ls-ultra);
	padding: 4px 28px;
	text-decoration: none !important;
	display: inline-block;
	line-height: 20px;
}

.pvi-featured-category a:first-child {
	padding-left: 32px;
}

.pvi-featured-category a:hover {
	color: var(--pvi-brand-dark-red);
}

/* Hide the comma separator between category terms */
.pvi-featured-category .wp-block-post-terms__separator {
	display: none;
}

/* Kill any gap between inner-container children in the featured cover */
.pvi-featured-cover .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Title — align left edge with excerpt text inside the red-bordered box */
/* Excerpt text starts at: 4px border + 28px padding = 32px from container edge */
.pvi-featured-cover .pvi-featured-title {
	margin-bottom: -8px;
	padding-bottom: 0;
	padding-left: 32px;
}

/* ── Featured Section — Responsive breakpoints ───────── */
/* Match the same breakpoints used by main content alignment */

@media (max-width: 1024px) {
	.pvi-featured-cover .pvi-featured-title {
		padding-left: 24px;
	}
	.pvi-featured-cover .wp-block-cover__inner-container {
		padding-right: 24px;
	}
	/* Excerpt-wrap: border 4px + padding should total ~24px for alignment */
	.pvi-featured-excerpt-wrap {
		padding-left: 20px !important;
	}
	.pvi-featured-category a:first-child {
		padding-left: 24px;
	}
}

@media (max-width: 600px) {
	.pvi-featured-cover .pvi-featured-title {
		padding-left: 16px;
		font-size: var(--pvi-fs-xl);
		line-height: 32px;
	}
	.pvi-featured-cover .wp-block-cover__inner-container {
		padding-right: 16px;
	}
	.pvi-featured-excerpt-wrap {
		padding-left: 12px !important;
	}
	.pvi-featured-category a:first-child {
		padding-left: 16px;
	}
	.pvi-featured-excerpt .wp-block-post-excerpt__excerpt,
	.pvi-featured-excerpt p {
		font-size: var(--pvi-fs-base);
		line-height: 22px;
	}
}

/* ── Content Area Dark Mode ────────────────────────────── */

/* Headings and links respond to mode */
.wp-block-group,
.wp-block-query,
.wp-block-columns,
.wp-block-column {
	transition: background-color 0.3s ease;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--pvi-text-body);
}

/* Post cards / surfaces */
html[data-theme="dark"] .wp-block-post-featured-image img {
	opacity: 0.9;
}

/* ── Article Card ─────────────────────────────────────── */

/* Light mode defaults (matches Figma light variant) */
.pvi-card {
	background-color: var(--pvi-brand-pink);
	border-radius: 4px;
	padding-top: 8px;
	padding-bottom: 0;
	box-shadow: -8px 8px 0px 0px var(--pvi-brand-red);
	display: flex;
	flex-direction: column;
	gap: 0;
	overflow: visible;
	height: 100%;
}

/* ── Horizontal Card Variant (blog listing) ───────────── */
.pvi-card-horizontal {
	flex-direction: row;
	padding: 0;
	overflow: hidden;
}

.pvi-card-image-horizontal {
	flex: 0 0 300px;
	padding: 0;
	margin: 0;
}

.pvi-card-image-horizontal img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}

.pvi-card-horizontal .pvi-card-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: 16px 24px;
}

.pvi-card-horizontal .pvi-card-title {
	padding: 0;
}

.pvi-card-horizontal .pvi-card-excerpt {
	padding: 0;
}

.pvi-card-horizontal .pvi-card-footer.wp-block-group {
	margin: auto 0 0;
	padding: 12px 0 0;
}

.pvi-card-horizontal .pvi-card-category-horizontal {
	order: 0;
	margin: 0 0 8px;
}

/* ── Archive card grid ─────────────────────────────────── */
.pvi-card-grid {
	container-type: inline-size;
}

.pvi-card-grid .wp-block-post-template {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	list-style: none;
	padding: 0;
}

.pvi-card-grid .wp-block-post-template > .wp-block-post {
	container-type: inline-size;
	margin: 0;
}

@container (min-width: 600px) {
	.pvi-card-grid .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}
}

@container (min-width: 1024px) {
	.pvi-card-grid .wp-block-post-template {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Narrow container: stack image above text */
.pvi-card-grid .pvi-card-horizontal {
	flex-direction: column;
}

.pvi-card-grid .pvi-card-image-horizontal {
	flex: none;
	width: 100%;
}

.pvi-card-grid .pvi-card-image-horizontal img {
	aspect-ratio: 16 / 9;
	height: auto;
}

/* Wide enough container: side-by-side layout */
@container (min-width: 600px) {
	.pvi-card-horizontal {
		flex-direction: row;
	}

	.pvi-card-image-horizontal {
		flex: 0 0 300px;
		width: auto;
	}

	.pvi-card-image-horizontal img {
		aspect-ratio: auto;
		height: 100%;
	}
}

/* Category label — bottom of card, aligned with the shadow */
.pvi-card-category {
	order: 99;
	margin-top: auto;
	margin-left: -8px;
	margin-bottom: 0;
	z-index: 2;
	display: flex;
	gap: 0;
	flex-wrap: wrap;
}

.pvi-card-category a {
	background-color: var(--pvi-brand-red);
	color: var(--pvi-brand-pink);
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	line-height: 16px;
	padding: 4px 12px;
	text-decoration: none !important;
	display: inline-block;
	transition: color 0.2s ease;
}

.pvi-card-category a:hover {
	color: var(--pvi-brand-dark-red);
}

/* Hide comma separator between category terms */
.pvi-card-category .wp-block-post-terms__separator {
	display: none;
}

/* Featured image */
.pvi-card-image {
	padding: 0 24px;
	margin-top: 24px;
	margin-bottom: 0;
}

.pvi-card-image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	border-radius: 4px;
}

/* Title */
.pvi-card-title {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 28px;
	color: var(--pvi-brand-red);
	padding: 16px 24px 0;
	margin: 0;
}

.pvi-card-title a {
	color: var(--pvi-brand-red) !important;
	text-decoration: none !important;
}

.pvi-card-title a:hover {
	text-decoration: underline !important;
}

/* Excerpt */
.pvi-card-excerpt {
	padding: 0 24px;
	margin-top: 8px;
}

.pvi-card-excerpt .wp-block-post-excerpt__excerpt,
.pvi-card-excerpt p {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium);
	font-size: var(--pvi-fs-base);
	line-height: 22.75px;
	color: var(--pvi-brand-dark-red);
	margin: 0;
}

/* Footer — overrides WP group defaults */
.pvi-card-footer.wp-block-group {
	margin: auto 24px 16px;
	padding: 18px 0 0 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	gap: 8px;
}

.pvi-card-footer-text {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	line-height: 16px;
	color: var(--pvi-brand-dark-red);
	margin: 0 !important;
}

.pvi-card-footer-text a {
	color: var(--pvi-brand-red);
	text-decoration: none;
	transition: color 0.2s ease;
}

.pvi-card-footer-text a:hover {
	color: var(--pvi-brand-dark-red);
}

/* Card inside grid — push shadow space */
.wp-block-post-template.is-layout-grid {
	gap: 32px 24px;
}

/* "Ver todos" archive link */
.pvi-view-all {
	text-align: right;
	margin-top: 48px !important;
	margin-bottom: 0 !important;
}

.pvi-view-all a {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	line-height: 16px;
	color: var(--pvi-brand-red);
	text-decoration: none;
	transition: color 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pvi-view-all a:hover {
	color: var(--pvi-brand-dark-red);
}

.pvi-view-all svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	vertical-align: middle;
}

html[data-theme="dark"] .pvi-view-all a {
	color: var(--pvi-brand-pink);
}

html[data-theme="dark"] .pvi-view-all a:hover {
	color: #ffffff;
}

/* Section headings above card grids */
.pvi-section-heading {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-3xl);
	line-height: 60px;
	text-transform: uppercase;
	color: var(--pvi-brand-dark-red) !important;
	margin-bottom: 24px;
}

html[data-theme="dark"] .pvi-section-heading {
	color: var(--pvi-brand-pink) !important;
}

/* ── Article Card — Dark mode ────────────────────────── */

html[data-theme="dark"] .pvi-card {
	background-color: var(--pvi-brand-dark-red);
}

html[data-theme="dark"] .pvi-card-excerpt .wp-block-post-excerpt__excerpt,
html[data-theme="dark"] .pvi-card-excerpt p {
	color: var(--pvi-brand-pink);
}

html[data-theme="dark"] .pvi-card-footer-text {
	color: var(--pvi-brand-pink);
}

html[data-theme="dark"] .pvi-card-footer-text a {
	color: var(--pvi-brand-pink);
}

/* OS preference fallback for card */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .pvi-card {
		background-color: var(--pvi-brand-dark-red);
	}

	:root:not([data-theme="light"]) .pvi-card-excerpt .wp-block-post-excerpt__excerpt,
	:root:not([data-theme="light"]) .pvi-card-excerpt p {
		color: var(--pvi-brand-pink);
	}

	:root:not([data-theme="light"]) .pvi-card-footer-text {
		color: var(--pvi-brand-pink);
	}
}

/* ── Media Section — Video embed full-width ───────────── */
/* Ensure the video embed fills its 2-column container */
.wp-block-query:has([data-type="videos-pvi"]) .wp-block-post-content,
.wp-block-query:has([data-type="videos-pvi"]) .wp-block-post-content > *,
.wp-block-columns > .wp-block-column:first-child .wp-block-post-content,
.wp-block-columns > .wp-block-column:first-child .wp-block-post-content > * {
	max-width: 100% !important;
}

.wp-block-columns > .wp-block-column:first-child .wp-block-post-content .wp-block-embed,
.wp-block-columns > .wp-block-column:first-child .wp-block-post-content figure {
	margin: 0;
	width: 100%;
	box-sizing: border-box;
	padding-left: 8px;
	padding-bottom: 8px;
}

.wp-block-columns > .wp-block-column:first-child .wp-block-post-content .wp-block-embed__wrapper {
	box-shadow: -8px 8px 0px 0px var(--pvi-brand-red);
	border-radius: 4px;
	overflow: hidden;
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.wp-block-columns > .wp-block-column:first-child .wp-block-post-content .wp-block-embed__wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Podcast column — contain embeds within column width */
.wp-block-columns > .wp-block-column:last-child .wp-block-post-content,
.wp-block-columns > .wp-block-column:last-child .wp-block-post-content > * {
	max-width: 100% !important;
}

.wp-block-columns > .wp-block-column:last-child .wp-block-post-content .wp-block-embed,
.wp-block-columns > .wp-block-column:last-child .wp-block-post-content figure,
.wp-block-columns > .wp-block-column:last-child .wp-block-post-content iframe {
	max-width: 100% !important;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.wp-block-columns > .wp-block-column:last-child {
	overflow: hidden;
	min-width: 0;
}

/* Video title — matches article card title style */
.pvi-video-title {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 28px;
	color: var(--pvi-brand-red);
	margin: 16px 0 0;
}

.pvi-video-title a {
	color: var(--pvi-brand-red) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.pvi-video-title a:hover {
	color: var(--pvi-brand-dark-red) !important;
}

html[data-theme="dark"] .pvi-video-title a {
	color: var(--pvi-brand-pink) !important;
}

html[data-theme="dark"] .pvi-video-title a:hover {
	color: #ffffff !important;
}

/* ── Texto de Combate Card ────────────────────────────── */

/* Card shell — red bg, pink border in light, black border in dark */
.pvi-combate-card {
	background-color: var(--pvi-brand-red);
	border: 3px solid #ffffff;
	border-radius: 4px;
	padding: 16px;
	box-shadow: -8px 8px 0px 0px var(--pvi-brand-red);
	display: flex;
	flex-direction: column;
	gap: 8px;
	position: relative;
	height: 100%;
	container-type: inline-size;
}

/* Cover image — book-cover shape, full card width */
.pvi-combate-cover,
.pvi-combate-cover a {
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	border-radius: 4px !important;
	overflow: hidden !important;
	display: block;
}

/* Stretch the link over the entire card */
.pvi-combate-cover a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pvi-combate-cover img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px !important;
}

.pvi-combate-cover {
	transition: transform 0.3s ease;
}

.pvi-combate-card:hover .pvi-combate-cover {
	transform: scale(1.05);
}

.pvi-combate-card {
	cursor: pointer;
}

/* Header row: "TEXTO DE COMBATE" left + "NO. X" right */
.pvi-combate-header.wp-block-group {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 0;
	margin: 0;
	gap: 8px;
}

.pvi-combate-label {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-xs);
	line-height: 12px;
	text-transform: uppercase;
	color: var(--pvi-brand-pink);
	margin: 0 !important;
	white-space: nowrap;
}

.pvi-combate-number {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	line-height: 12px;
	text-transform: uppercase;
	color: var(--pvi-brand-pink);
	margin: 0 !important;
	white-space: nowrap;
}

/* Title */
.pvi-combate-title {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 26px;
	color: var(--pvi-brand-pink);
	margin: 0;
}

.pvi-combate-title a {
	color: var(--pvi-brand-pink) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.pvi-combate-title a:hover {
	color: var(--pvi-brand-dark-red) !important;
}

/* Author */
.pvi-combate-author {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium);
	font-size: var(--pvi-fs-base);
	line-height: 30px;
	color: var(--pvi-brand-pink);
	margin: 0 !important;
}

/* Excerpt */
.pvi-combate-excerpt .wp-block-post-excerpt__excerpt,
.pvi-combate-excerpt p {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium);
	font-size: var(--pvi-fs-base);
	line-height: 19px;
	color: var(--pvi-brand-pink);
	margin: 0;
}

.pvi-combate-excerpt {
	margin: 0;
}

/* Download CTA */
.pvi-combate-cta.wp-block-group {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	padding: 16px 8px;
	margin-top: auto;
	border: 2px solid #ffffff;
	border-radius: 8px;
	transition: background-color 0.2s ease, color 0.2s ease;
	cursor: pointer;
}

.pvi-combate-cta.wp-block-group:hover {
	background-color: #ffffff;
}

.pvi-combate-cta.wp-block-group:hover .pvi-combate-cta-text {
	color: var(--pvi-brand-red);
}

.pvi-combate-cta.wp-block-group:hover svg {
	color: var(--pvi-brand-red) !important;
}

.pvi-combate-cta-text {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 26px;
	text-transform: uppercase;
	text-align: right;
	color: var(--pvi-brand-pink);
	margin: 0 !important;
	white-space: nowrap;
}

.pvi-combate-cta svg {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

/* ── Texto de Combate Card — Dark mode ───────────────── */

html[data-theme="dark"] .pvi-combate-card {
	border-color: #000000;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .pvi-combate-card {
		border-color: #000000;
	}
}

/* ── Combate grid — responsive breakpoints ───────────── */

.pvi-combate-grid.is-layout-grid {
	grid-template-columns: repeat(2, 1fr) !important;
}

@container (max-width: 200px) {
	.pvi-combate-cta-text {
		display: none;
	}
	.pvi-combate-cta.wp-block-group {
		border: none;
		padding: 0;
	}
}

@media (min-width: 760px) {
	.pvi-combate-grid.is-layout-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (min-width: 900px) {
	.pvi-combate-grid.is-layout-grid {
		grid-template-columns: repeat(6, 1fr) !important;
	}
}

/* ══════════════════════════════════════════════════════════
   Declaraciones del Buró — Broadsheet Newspaper Section
   ══════════════════════════════════════════════════════════ */

/* ── Declaraciones Shared Letterpress Style ────────────── */
/* Shared base for homepage section and archive page */

.pvi-declaraciones-section,
.pvi-declaraciones-archive {
	font-family: var(--pvi-font-serif) !important;
	max-width: 1000px !important;
	margin-inline: auto !important;
	background-color: #eae8e5;
	background-image:
		url("data:image/svg+xml,%3Csvg width='6' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='6' height='6' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E"),
		repeating-linear-gradient(
			0deg,
			transparent,
			transparent 3px,
			rgba(0, 0, 0, 0.015) 3px,
			rgba(0, 0, 0, 0.015) 4px
		);
	border-radius: 6px;
	border: 1px solid #d0ccc8;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.5) inset,
		0 4px 16px rgba(0, 0, 0, 0.15),
		0 1px 3px rgba(0, 0, 0, 0.1);
	padding: 64px 56px 56px !important;
	margin-top: 64px !important;
	margin-bottom: 24px !important;
}

/* Shared heading style */
.pvi-declaraciones-heading,
.pvi-declaraciones-archive-heading {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-bold) !important;
	color: #3a3530 !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
	letter-spacing: var(--pvi-ls-tight);
	line-height: 1.2 !important;
	margin: 0 0 32px 0 !important;
	padding-bottom: 24px;
	border-bottom: 2px solid #d0ccc8;
}

/* Shared title link style */
.pvi-declaraciones-title a,
.pvi-declaraciones-archive-title a {
	color: #2a2520 !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.pvi-declaraciones-title a:hover,
.pvi-declaraciones-archive-title a:hover {
	color: #000000 !important;
	text-decoration: underline !important;
}

/* Shared excerpt style */
.pvi-declaraciones-excerpt,
.pvi-declaraciones-excerpt .wp-block-post-excerpt__excerpt,
.pvi-declaraciones-excerpt p,
.pvi-declaraciones-archive-excerpt,
.pvi-declaraciones-archive-excerpt .wp-block-post-excerpt__excerpt,
.pvi-declaraciones-archive-excerpt p {
	color: #5a534d !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* Shared date style */
.pvi-declaraciones-date,
.pvi-declaraciones-archive-date {
	color: #7a7470 !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* Shared divider color */
.pvi-declaraciones-items > li:nth-child(1),
.pvi-declaraciones-archive-list > li {
	border-color: #d0ccc8;
}

.pvi-declaraciones-items > li:nth-child(2),
.pvi-declaraciones-archive-list > li:nth-child(even) {
	border-color: #d0ccc8;
}

.pvi-declaraciones-grid {
	border-color: #d0ccc8;
}

/* "Ver todas" link */
.pvi-declaraciones-view-all {
	border-top-color: #b8b3ae;
}

.pvi-declaraciones-view-all a {
	color: #6a6460 !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}

.pvi-declaraciones-view-all a:hover {
	color: #2a2520 !important;
}

/* Shared pagination style */
.pvi-declaraciones-archive-pagination {
	border-top-color: #b8b3ae;
}

.pvi-declaraciones-archive-pagination a,
.pvi-declaraciones-archive-pagination span {
	color: #6a6460 !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}

.pvi-declaraciones-archive-pagination a:hover {
	color: #2a2520 !important;
}

.pvi-declaraciones-archive-pagination .current {
	color: #2a2520 !important;
	font-weight: var(--pvi-fw-bold);
}

/* ── Dark mode — revert to dark letterpress ───────────── */
html[data-theme="dark"] .pvi-declaraciones-section,
html[data-theme="dark"] .pvi-declaraciones-archive {
	background-color: #1a1a1a;
	background-image:
		url("data:image/svg+xml,%3Csvg width='6' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='6' height='6' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
	border-color: #333;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.05) inset,
		0 4px 16px rgba(0, 0, 0, 0.4),
		0 1px 3px rgba(0, 0, 0, 0.25);
}

html[data-theme="dark"] .pvi-declaraciones-heading,
html[data-theme="dark"] .pvi-declaraciones-archive-heading {
	color: #f5f0eb !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
	border-bottom-color: #3a3a3a;
}

html[data-theme="dark"] .pvi-declaraciones-title a,
html[data-theme="dark"] .pvi-declaraciones-archive-title a {
	color: #f5f0eb !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

html[data-theme="dark"] .pvi-declaraciones-title a:hover,
html[data-theme="dark"] .pvi-declaraciones-archive-title a:hover {
	color: #ffffff !important;
}

html[data-theme="dark"] .pvi-declaraciones-excerpt,
html[data-theme="dark"] .pvi-declaraciones-excerpt .wp-block-post-excerpt__excerpt,
html[data-theme="dark"] .pvi-declaraciones-excerpt p,
html[data-theme="dark"] .pvi-declaraciones-archive-excerpt,
html[data-theme="dark"] .pvi-declaraciones-archive-excerpt .wp-block-post-excerpt__excerpt,
html[data-theme="dark"] .pvi-declaraciones-archive-excerpt p {
	color: #c8c0b8 !important;
	text-shadow: none;
}

html[data-theme="dark"] .pvi-declaraciones-date,
html[data-theme="dark"] .pvi-declaraciones-archive-date {
	color: #7a7470 !important;
	text-shadow: none;
}

html[data-theme="dark"] .pvi-declaraciones-items > li,
html[data-theme="dark"] .pvi-declaraciones-archive-list > li {
	border-color: #3a3a3a;
}

html[data-theme="dark"] .pvi-declaraciones-view-all {
	border-top-color: #3a3a3a;
}

html[data-theme="dark"] .pvi-declaraciones-view-all a {
	color: #c8c0b8 !important;
	text-shadow: none;
}

html[data-theme="dark"] .pvi-declaraciones-view-all a:hover {
	color: #f5f0eb !important;
}

html[data-theme="dark"] .pvi-declaraciones-archive-pagination {
	border-top-color: #3a3a3a;
}

html[data-theme="dark"] .pvi-declaraciones-archive-pagination a,
html[data-theme="dark"] .pvi-declaraciones-archive-pagination span {
	color: #c8c0b8 !important;
	text-shadow: none;
}

html[data-theme="dark"] .pvi-declaraciones-archive-pagination a:hover {
	color: #f5f0eb !important;
}

html[data-theme="dark"] .pvi-declaraciones-archive-pagination .current {
	color: #f5f0eb !important;
}

/* ── Declaraciones Archive Page — layout specifics ─────── */

.pvi-declaraciones-archive-heading {
	font-size: var(--pvi-fs-xl) !important;
}

.pvi-declaraciones-archive-intro {
	font-family: var(--pvi-font-serif) !important;
	color: #5a534d !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
	margin: 0 0 32px 0 !important;
}

.pvi-declaraciones-archive-list {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	list-style: none;
	padding: 0;
}

.pvi-declaraciones-archive-list > li {
	border-bottom: 1px solid;
	padding: 0;
}

/* First item (featured) spans full width */
.pvi-declaraciones-archive-list > li:first-child {
	grid-column: 1 / -1;
}

.pvi-declaraciones-archive-list > li:first-child .pvi-declaraciones-archive-title {
	font-size: var(--pvi-fs-xl) !important;
	line-height: 1.2 !important;
}

/* Odd items in the 2-col grid get a right border (skip the full-width first item) */
.pvi-declaraciones-archive-list > li:nth-child(even) {
	border-right: 1px solid #3a3a3a;
}

/* Remove bottom border on last row */
.pvi-declaraciones-archive-list > li:last-child,
.pvi-declaraciones-archive-list > li:nth-last-child(2):nth-child(even) {
	border-bottom: none;
}

.pvi-declaraciones-archive-item {
	padding: 24px;
}

.pvi-declaraciones-archive-title {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-bold) !important;
	font-size: var(--pvi-fs-lg) !important;
	line-height: 1.3 !important;
	margin: 0 0 10px 0 !important;
}

.pvi-declaraciones-archive-excerpt,
.pvi-declaraciones-archive-excerpt .wp-block-post-excerpt__excerpt,
.pvi-declaraciones-archive-excerpt p {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-regular) !important;
	font-style: italic;
	font-size: var(--pvi-fs-base) !important;
	line-height: 1.65 !important;
	margin: 0 0 8px 0;
}

.pvi-declaraciones-archive-date {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-regular) !important;
	font-style: italic;
	font-size: var(--pvi-fs-xs) !important;
	line-height: var(--pvi-lh-normal) !important;
}

.pvi-declaraciones-archive-pagination {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 2px solid;
	font-family: var(--pvi-font-serif) !important;
}

@media (max-width: 768px) {
	.pvi-declaraciones-archive {
		padding: 32px 20px 28px !important;
		border-radius: 0;
	}

	.pvi-declaraciones-archive-heading {
		font-size: var(--pvi-fs-xl) !important;
	}

	.pvi-declaraciones-archive-list {
		grid-template-columns: 1fr !important;
	}

	.pvi-declaraciones-archive-list > li:nth-child(odd) {
		border-right: none;
	}

	.pvi-declaraciones-archive-list > li:last-child {
		border-bottom: none;
	}

	.pvi-declaraciones-archive-title {
		font-size: var(--pvi-fs-base) !important;
	}
}

/* ── Section wrapper — homepage specifics ───────────────── */
/* (base styles now in shared letterpress block above) */

/* ── Grid layout — heading above, featured left ────────── */

.pvi-declaraciones-grid {
	display: grid !important;
	grid-template-columns: 3fr 2fr;
	grid-template-rows: auto auto auto;
}

/* Heading → full width above articles, centered */
.pvi-declaraciones-heading {
	grid-column: 1 / -1;
	grid-row: 1;
	font-size: var(--pvi-fs-xl) !important;
	font-style: normal !important;
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-ultra);
	line-height: var(--pvi-lh-snug) !important;
	text-align: center;
}

/* Unwrap query + post-template so articles sit in parent grid */
.pvi-declaraciones-query,
.pvi-declaraciones-items {
	display: contents !important;
}

/* ── Article cards — grid positioning ──────────────────── */
/* Target <li> elements — they are the actual grid items via display:contents on the <ul> */

.pvi-declaraciones-article {
	padding: 24px;
}

/* Article 1 (most recent) → left column, spans both rows */
.pvi-declaraciones-items > li:nth-child(1) {
	grid-column: 1;
	grid-row: 2 / 4;
	border-right: 1px solid #d0ccc8;
	padding: 24px 24px 24px 0;
}

/* Article 2 → right column, top */
.pvi-declaraciones-items > li:nth-child(2) {
	grid-column: 2;
	grid-row: 2;
	border-bottom: 1px solid #d0ccc8;
}

/* Article 3 → right column, bottom */
.pvi-declaraciones-items > li:nth-child(3) {
	grid-column: 2;
	grid-row: 3;
}

/* ── Typography ────────────────────────────────────────── */

/* Titles */
.pvi-declaraciones-title {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-bold) !important;
	font-size: var(--pvi-fs-base) !important;
	line-height: 1.35 !important;
	margin: 0 0 10px 0 !important;
}

/* Featured article — slightly larger title */
.pvi-declaraciones-items > li:nth-child(1) .pvi-declaraciones-title {
	font-size: var(--pvi-fs-lg) !important;
	line-height: 1.3 !important;
	margin: 0 0 12px 0 !important;
}

/* (title link colors now in shared letterpress block) */

/* Hide excerpt on the 2nd and 3rd items (show only on the latest) */
.pvi-declaraciones-items > li:nth-child(n+2) .pvi-declaraciones-excerpt.wp-block-post-excerpt {
	display: none !important;
}

/* Excerpts */
.pvi-declaraciones-excerpt,
.pvi-declaraciones-excerpt .wp-block-post-excerpt__excerpt,
.pvi-declaraciones-excerpt p {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-regular) !important;
	font-style: italic;
	font-size: var(--pvi-fs-base) !important;
	line-height: 1.65 !important;
	text-align: justify;
	margin: 0 0 12px 0 !important;
}

/* Dates */
.pvi-declaraciones-date {
	font-family: var(--pvi-font-serif) !important;
	font-weight: var(--pvi-fw-regular) !important;
	font-style: italic;
	font-size: var(--pvi-fs-xs) !important;
	line-height: var(--pvi-lh-normal) !important;
	margin: 0 !important;
}

/* ── "Ver todas" link ──────────────────────────────────── */

.pvi-declaraciones-view-all {
	font-family: var(--pvi-font-serif) !important;
	font-size: var(--pvi-fs-base) !important;
	font-weight: var(--pvi-fw-regular);
	letter-spacing: 0.5px;
	text-align: center;
	margin-top: 32px !important;
	margin-bottom: 0 !important;
	padding-top: 24px;
	border-top: 1px solid;
}

.pvi-declaraciones-view-all a {
	text-decoration: none !important;
	transition: color 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.pvi-declaraciones-view-all svg {
	width: 16px;
	height: 16px;
}

/* ── Responsive — mobile stack ─────────────────────────── */

@media (max-width: 759px) {
	.pvi-declaraciones-section {
		padding: 32px 20px 28px !important;
		margin-top: 40px !important;
		border-radius: 0;
	}

	.pvi-declaraciones-grid {
		grid-template-columns: 1fr !important;
		grid-template-rows: auto !important;
	}

	.pvi-declaraciones-heading {
		grid-column: 1 !important;
		grid-row: auto !important;
		font-size: var(--pvi-fs-xl) !important;
		padding: 0 0 16px 0;
	}

	.pvi-declaraciones-items > li:nth-child(1),
	.pvi-declaraciones-items > li:nth-child(2),
	.pvi-declaraciones-items > li:nth-child(3) {
		grid-column: 1 !important;
		grid-row: auto !important;
		border-right: none !important;
		border-bottom: 1px solid;
		padding: 20px 0;
	}

	.pvi-declaraciones-items > li:nth-child(1) .pvi-declaraciones-title {
		font-size: var(--pvi-fs-base) !important;
		line-height: 1.35 !important;
	}

	.pvi-declaraciones-items > li:nth-child(3) {
		border-bottom: none;
	}
}

/* ── Responsive — Card Grids & Section headings ──────── */
/* Use the same breakpoints as featured section & main container */

@media (max-width: 1024px) {
	/* 3-col → 2-col (exclude combate grid — has its own breakpoints) */
	.wp-block-post-template.is-layout-grid:not(.pvi-combate-grid) {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.pvi-section-heading {
		font-size: var(--pvi-fs-xl);
		line-height: 48px;
	}
}

@media (max-width: 600px) {
	/* 2-col → 1-col (exclude combate grid — has its own breakpoints) */
	.wp-block-post-template.is-layout-grid:not(.pvi-combate-grid) {
		grid-template-columns: 1fr !important;
	}

	.pvi-section-heading {
		font-size: var(--pvi-fs-xl);
		line-height: 40px;
	}

	.pvi-card-title {
		font-size: var(--pvi-fs-lg);
		line-height: 24px;
	}

	.pvi-combate-title {
		font-size: var(--pvi-fs-lg);
		line-height: 22px;
	}

	/* Media section columns stack */
	.wp-block-columns {
		flex-direction: column !important;
	}
	.wp-block-columns .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* ── Footer ───────────────────────────────────────────── */

.pvi-footer {
	background-color: var(--pvi-brand-red);
	border-top: 8px solid var(--pvi-brand-pink);
	padding-top: 88px;
	padding-left: max(32px, calc((100% - 1500px) / 2 + 32px));
	padding-right: max(32px, calc((100% - 1500px) / 2 + 32px));
	box-sizing: border-box;
}

.pvi-footer-brand {
	max-width: 1500px;
	margin-bottom: 24px;
}

.pvi-footer-logo {
	margin: 0 0 16px 0;
}

.pvi-footer-logo img {
	width: 197px;
	height: auto;
	display: block;
}

/* White rule between brand and nav */
.pvi-footer-rule {
	max-width: 1500px;
	margin: 32px 0;
	border: 0;
	border-top: 1px solid var(--pvi-brand-pink);
	opacity: 1;
	background: transparent;
}

/* Nav columns container */
.pvi-footer-nav-columns {
	display: flex;
	gap: 40px;
	align-items: flex-start;
	max-width: 1500px;
	margin-bottom: 48px;
}

.pvi-footer-nav-col {
	flex: 1;
	min-width: 0;
}

.pvi-footer-nav-heading {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	letter-spacing: var(--pvi-ls-widest);
	text-transform: uppercase;
	color: var(--pvi-brand-pink);
	opacity: 0.6;
	margin: 0 0 16px 0;
}

/* Footer nav links */
.pvi-footer-nav .wp-block-navigation-item a {
	color: var(--pvi-brand-pink) !important;
	text-decoration: none;
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium, 500);
	font-size: var(--pvi-fs-base);
	line-height: 1.4;
	transition: color 0.2s ease;
}

.pvi-footer-nav .wp-block-navigation__container {
	flex-wrap: wrap;
}

.pvi-footer-nav .wp-block-navigation-item {
	width: 100%;
}

.pvi-footer-nav .wp-block-navigation-item a:hover {
	color: var(--pvi-brand-dark-red) !important;
	text-decoration: none !important;
}

.pvi-footer-nav a {
	text-decoration: none !important;
}

/* Tagline */
.pvi-footer-tagline {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-lg);
	line-height: 28px;
	letter-spacing: -0.45px;
	text-transform: uppercase;
	color: var(--pvi-brand-pink) !important;
	opacity: 0.8;
	margin-top: 0;
	margin-bottom: 24px;
}

/* Social icons */
.pvi-footer-social {
	display: flex;
	gap: 16px;
	margin-bottom: 24px;
}

.pvi-footer-social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4px;
	text-decoration: none;
	color: var(--pvi-brand-pink);
	transition: color 0.2s ease;
}

.pvi-footer-social-link svg {
	display: block;
	width: 20px;
	height: 20px;
}

.pvi-footer-social-link:hover {
	color: var(--pvi-brand-dark-red);
}

/* Newsletter form */
.pvi-footer-newsletter {
	margin-bottom: 40px;
	width: 100%;
}

.pvi-footer-newsletter-form {
	display: flex;
	width: 100%;
	max-width: 1500px;
}

.pvi-footer-newsletter-input {
	flex: 1;
	background-color: #000000;
	border: 4px solid var(--pvi-brand-pink);
	color: var(--pvi-brand-pink);
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	padding: 20px;
	outline: none;
}

.pvi-footer-newsletter-input::placeholder {
	color: #6b7280;
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
}

.pvi-footer-newsletter-btn {
	background-color: var(--pvi-brand-red);
	border: 4px solid var(--pvi-brand-pink);
	border-left: none;
	color: var(--pvi-brand-pink);
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	padding: 20px 32px;
	cursor: pointer;
	white-space: nowrap;
}

.pvi-footer-newsletter-btn:hover {
	opacity: 0.85;
}

/* Bottom bar */
.pvi-footer-bottom {
	border-top: 2px solid rgba(255, 227, 227, 0.1);
	padding-top: 34px;
	padding-bottom: 40px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	opacity: 0.6;
	max-width: 1500px;
}

.pvi-footer-bottom-text {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	line-height: 16px;
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	color: var(--pvi-brand-pink) !important;
	margin: 0;
}

/* ── Footer — Dark mode ──────────────────────────────── */

html[data-theme="dark"] .pvi-footer {
	border-top-color: #000000;
}


/* ── Footer — Responsive ─────────────────────────────── */

@media (max-width: 1024px) {
	.pvi-footer {
		padding-left: 24px;
		padding-right: 24px;
	}

	.pvi-footer-nav-columns {
		flex-wrap: wrap;
		gap: 32px;
	}

	.pvi-footer-nav-col {
		flex: 1 1 calc(50% - 16px);
	}
}

@media (max-width: 600px) {
	.pvi-footer {
		padding-left: 16px;
		padding-right: 16px;
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.pvi-footer-nav-columns {
		flex-direction: column;
		gap: 32px;
	}

	.pvi-footer-nav-col {
		flex: 1 1 auto;
	}

	.pvi-footer-tagline {
		font-size: var(--pvi-fs-base);
		line-height: 24px;
	}

	.pvi-footer-newsletter-form {
		flex-direction: column;
	}

	.pvi-footer-newsletter-btn {
		border-left: 4px solid var(--pvi-brand-pink);
		border-top: none;
	}

	.pvi-footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding-top: 24px;
	}
}

/* ── Author Byline (Article Cards) ───────────────────── */

/* Combate card author links */
.pvi-combate-author a {
	color: var(--pvi-brand-pink) !important;
	text-decoration: none !important;
}

.pvi-combate-author a:hover {
	text-decoration: underline !important;
}

/* ── Author Profile Page ─────────────────────────────── */

.pvi-autor-header {
	background-color: var(--pvi-brand-red);
	margin-top: 0 !important;
	padding: 24px 32px 48px;
	padding-left: max(32px, calc((100% - 1500px) / 2 + 32px));
	padding-right: max(32px, calc((100% - 1500px) / 2 + 32px));
	box-sizing: border-box;
}

/* Author name (wp:query-title archive) */
.pvi-autor-name {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-4xl);
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--pvi-brand-pink) !important;
	margin: 0 0 8px;
	max-width: 1500px;
}

/* WP wraps archive title in "Archives: Name" — override if needed */
.pvi-autor-name .wp-block-query-title {
	color: var(--pvi-brand-pink) !important;
}

/* Term description */
.pvi-autor-description {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-medium);
	font-size: var(--pvi-fs-lg);
	line-height: 1.5;
	color: var(--pvi-brand-pink) !important;
	max-width: 1500px;
	margin-bottom: 0;
}

.pvi-autor-description p {
	color: var(--pvi-brand-pink) !important;
	margin: 0;
}

/* Author photo */
.pvi-autor-photo {
	margin-top: 24px;
	max-width: 1500px;
}

.pvi-autor-photo img {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--pvi-brand-pink);
}

/* Author bio (from term meta) */
.pvi-autor-bio {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-base);
	line-height: var(--pvi-lh-relaxed);
	color: var(--pvi-brand-pink);
	margin-top: 16px;
	max-width: 720px;
}

.pvi-autor-bio p {
	margin: 0 0 8px;
}

/* Website link */
.pvi-autor-website {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-base);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-wide);
	margin-top: 12px !important;
	margin-bottom: 0 !important;
}

.pvi-autor-website a {
	color: var(--pvi-brand-pink) !important;
	text-decoration: none !important;
	border-bottom: 2px solid rgba(255, 227, 227, 0.4);
	padding-bottom: 2px;
}

.pvi-autor-website a:hover {
	border-bottom-color: var(--pvi-brand-pink);
}

/* ── Author Profile — Responsive ─────────────────────── */

@media (max-width: 1024px) {
	.pvi-autor-header {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 600px) {
	.pvi-autor-header {
		padding: 48px 16px 32px;
	}

	.pvi-autor-name {
		font-size: var(--pvi-fs-xl);
	}

	.pvi-autor-photo img {
		width: 80px;
		height: 80px;
	}

	.pvi-autor-bio {
		font-size: var(--pvi-fs-base);
	}
}

/* ── Single Article Page ─────────────────────────────── */

/* Hero wrapper — full-width red background */
.pvi-article-hero {
	background-color: var(--pvi-brand-red);
	margin-top: 0 !important;
	padding-top: 32px;
	border-bottom: 32px solid var(--pvi-brand-red);
}

/* Constrain inner hero elements to content width */
.pvi-article-hero > .wp-block-group,
.pvi-article-hero > .wp-block-post-title,
.pvi-article-hero > .wp-block-post-date,
.pvi-article-hero > .wp-block-post-featured-image {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 32px;
	padding-right: 32px;
}

/* Category breadcrumb bar */
.pvi-article-category-bar {
	margin-top: 0 !important;
	margin-bottom: 8px !important;
}

.pvi-article-categories {
	display: flex;
	gap: 0;
	flex-wrap: wrap;
}

.pvi-article-categories a {
	color: var(--pvi-brand-pink) !important;
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	transition: color 0.2s ease;
	font-size: var(--pvi-fs-xs);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	line-height: 20px;
	text-decoration: none !important;
}

.pvi-article-categories a:hover {
	color: var(--pvi-brand-dark-red) !important;
}

.pvi-article-categories .wp-block-post-terms__separator {
	color: rgba(255, 227, 227, 0.5);
	margin: 0 8px;
}

/* Source / PDF meta bar — inside red hero */
.pvi-article-meta-bar {
	padding: 12px 0;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	border-bottom: 1px solid rgba(255, 227, 227, 0.2);
}

.pvi-article-source {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-xs);
	font-style: italic;
	color: var(--pvi-brand-pink) !important;
	margin: 0 !important;
}

.pvi-article-source a {
	color: #ffffff !important;
	text-decoration: none !important;
	font-weight: var(--pvi-fw-bold);
}

.pvi-article-source a:hover {
	color: var(--pvi-brand-dark-red) !important;
	text-decoration: underline !important;
}

.pvi-article-pdf-btn {
	margin: 0 !important;
}

.pvi-article-pdf-btn a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background-color: var(--pvi-brand-dark-red);
	color: var(--pvi-brand-pink) !important;
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xs);
	transition: background-color 0.2s ease, color 0.2s ease;
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-wide);
	padding: 8px 16px;
	text-decoration: none !important;
	line-height: 1;
}

.pvi-article-pdf-btn a:hover {
	background-color: #ffffff;
	color: var(--pvi-brand-red) !important;
}

/* Article content wrapper — 3×2 grid */
.pvi-article-content {
	display: grid !important;
	grid-template-columns: 1fr minmax(0, 780px) 1fr;
	grid-template-rows: auto 1fr;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Red accent — row 1, col 1 */
.pvi-article-accent {
	background-color: var(--pvi-brand-red);
	grid-row: 1;
	grid-column: 1;
}

/* Excerpt column — row 1, col 2 */
.pvi-article-excerpt-col {
	grid-row: 1;
	grid-column: 2;
	padding: 0 32px;
}

/* Body — row 2, col 2 */
.pvi-article-body {
	grid-row: 2;
	grid-column: 2;
	padding-left: 32px;
	padding-right: 32px;
	margin-bottom: 48px;
}

/* Title — inside red hero */
.pvi-article-title {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-extra);
	font-size: var(--pvi-fs-3xl);
	line-height: var(--pvi-lh-tight);
	text-transform: none;
	letter-spacing: var(--pvi-ls-tighter);
	color: #ffffff !important;
	margin-top: 12px !important;
	margin-bottom: 8px !important;
	margin-block-start: 0 !important;
}

/* Date — inside red hero */
.pvi-article-date {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-base);
	font-style: italic;
	color: var(--pvi-brand-pink) !important;
	margin-bottom: 2px !important;
	margin-block-start: 0 !important;
}

/* Author byline group — inside red hero */
.pvi-article-byline {
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
}

.pvi-article-author {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-base);
	font-style: italic;
	color: var(--pvi-brand-pink) !important;
	margin: 0 0 2px 0 !important;
}

.pvi-article-author a {
	font-family: var(--pvi-font-serif) !important;
	color: #ffffff !important;
	text-decoration: none !important;
	font-weight: var(--pvi-fw-bold);
}

.pvi-article-author a:hover {
	color: var(--pvi-brand-dark-red) !important;
	text-decoration: none !important;
}

.pvi-article-translator {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-xs);
	font-style: italic;
	color: var(--pvi-brand-pink) !important;
	margin: 0 !important;
}

.pvi-article-translator a {
	color: #ffffff !important;
	text-decoration: none !important;
	font-weight: var(--pvi-fw-semi);
}

.pvi-article-translator a:hover {
	color: var(--pvi-brand-dark-red) !important;
	text-decoration: underline !important;
}

/* Featured image — inside red hero */
.pvi-article-featured-image {
	margin-top: 24px !important;
	margin-bottom: 0 !important;
}

.pvi-article-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Image caption — inside red hero, below featured image */
.pvi-article-caption-wrap {
	margin-bottom: 0 !important;
	margin-top: 8px !important;
}

.pvi-article-image-caption {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-xs);
	font-style: italic;
	color: #ffffff !important;
	padding: 0;
	margin: 0 !important;
}

/* Lead excerpt */
.pvi-article-lead {
	margin-bottom: 0 !important;
}

.pvi-article-lead-text .wp-block-post-excerpt__excerpt,
.pvi-article-lead-text p {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-lg);
	line-height: var(--pvi-lh-relaxed);
	font-style: normal;
	color: var(--pvi-brand-red) !important;
	margin: 0;
}

/* Body content — post-content styles */

.pvi-article-body p {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-base);
	line-height: var(--pvi-lh-loose);
	color: var(--pvi-text-body);
	margin-bottom: 16px;
}

.pvi-article-body h2 {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--pvi-text-body);
	margin-top: 40px;
	margin-bottom: 16px;
}

.pvi-article-body h3 {
	font-family: var(--pvi-font-sans);
	font-weight: var(--pvi-fw-bold);
	font-size: var(--pvi-fs-xl);
	line-height: 1.3;
	color: var(--pvi-text-body);
	margin-top: 32px;
	margin-bottom: 12px;
}

/* Pull quote — red background block */
.pvi-article-body .wp-block-pullquote,
.pvi-article-body .wp-block-quote.is-style-large {
	background-color: var(--pvi-brand-red);
	padding: 32px;
	margin: 32px 0;
	position: relative;
	border: none;
}

.pvi-article-body .wp-block-pullquote::before,
.pvi-article-body .wp-block-quote.is-style-large::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 6px;
	background-color: #ffffff;
}

.pvi-article-body .wp-block-pullquote blockquote,
.pvi-article-body .wp-block-pullquote p,
.pvi-article-body .wp-block-quote.is-style-large p {
	font-family: var(--pvi-font-serif);
	font-weight: var(--pvi-fw-regular);
	font-size: var(--pvi-fs-lg);
	line-height: var(--pvi-lh-relaxed);
	color: #ffffff !important;
	font-style: italic;
	padding-left: 8px;
	margin: 0;
}

.pvi-article-body .wp-block-pullquote cite,
.pvi-article-body .wp-block-quote.is-style-large cite {
	color: var(--pvi-brand-pink) !important;
	font-size: var(--pvi-fs-base);
	font-style: normal;
	font-weight: var(--pvi-fw-bold);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-wide);
	display: block;
	margin-top: 16px;
	padding-left: 8px;
}

/* Regular blockquote (not pull quote) — red left border */
.pvi-article-body .wp-block-quote:not(.is-style-large) {
	border-left: 4px solid var(--pvi-brand-red);
	padding: 16px 24px;
	margin: 24px 0;
	background: none;
}

.pvi-article-body .wp-block-quote:not(.is-style-large) p {
	font-family: var(--pvi-font-serif);
	color: var(--pvi-text-body);
	font-style: italic;
}

/* Links in body */
.pvi-article-body a {
	color: var(--pvi-brand-red);
	text-decoration: underline;
}

.pvi-article-body a:hover {
	color: var(--pvi-brand-dark-red);
}

html[data-theme="dark"] .pvi-article-body a {
	color: var(--pvi-brand-pink);
}

/* Lists */
.pvi-article-body ul,
.pvi-article-body ol {
	font-family: var(--pvi-font-serif);
	font-size: var(--pvi-fs-base);
	line-height: 1.7;
	color: var(--pvi-text-body);
	margin-bottom: 16px;
	padding-left: 24px;
}

.pvi-article-body li {
	margin-bottom: 8px;
}

/* Images within body content */
.pvi-article-body .wp-block-image {
	margin: 24px 0;
}

.pvi-article-body .wp-block-image img {
	width: 100%;
	height: auto;
}

.pvi-article-body .wp-block-image figcaption {
	font-family: var(--pvi-font-sans);
	font-size: var(--pvi-fs-xs);
	font-style: italic;
	color: var(--pvi-text-muted);
	margin-top: 8px;
}

/* ── Single Article — Responsive ─────────────────────── */

@media (max-width: 1024px) {
	.pvi-article-content {
		padding-left: 24px;
		padding-right: 24px;
	}

	.pvi-article-meta-bar {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 600px) {
	.pvi-article-content {
		padding-left: 16px;
		padding-right: 16px;
	}

	.pvi-article-category-bar {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	.pvi-article-meta-bar {
		padding-left: 16px;
		padding-right: 16px;
		flex-direction: column;
		gap: 8px;
		align-items: flex-start;
	}

	.pvi-article-title {
		font-size: var(--pvi-fs-xl) !important;
	}

	.pvi-article-body .wp-block-pullquote,
	.pvi-article-body .wp-block-quote.is-style-large {
		padding: 24px;
		margin: 24px -16px;
	}

	.pvi-article-lead {
		padding: 16px 20px !important;
	}
}

/* ── Type Scale Reference Page ────────────────────────── */

.pvi-type-scale-page {
	padding-bottom: 0;
}

/* Specimen weight labels */
.pvi-type-label {
	display: inline-block;
	font-family: var(--pvi-font-sans);
	font-size: var(--pvi-fs-xs);
	font-weight: var(--pvi-fw-bold);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	color: var(--pvi-brand-red);
	min-width: 100px;
	margin-right: 12px;
}

/* Scale rows: label + sample side by side */
.pvi-type-scale-row {
	gap: 24px !important;
	align-items: baseline !important;
	padding: 16px 0;
	border-bottom: 1px solid var(--pvi-border-subtle);
}

.pvi-type-scale-row:last-child {
	border-bottom: none;
}

.pvi-type-scale-meta {
	flex: 0 0 180px;
	color: var(--pvi-text-muted) !important;
}

/* Token reference tables */
.pvi-token-table table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--pvi-font-sans);
}

.pvi-token-table th {
	text-align: left;
	font-size: var(--pvi-fs-xs);
	font-weight: var(--pvi-fw-bold);
	text-transform: uppercase;
	letter-spacing: var(--pvi-ls-widest);
	padding: 8px 12px;
	border-bottom: 2px solid var(--pvi-brand-red);
	color: var(--pvi-brand-dark-red);
}

.pvi-token-table td {
	padding: 8px 12px;
	border-bottom: 1px solid var(--pvi-border-subtle);
	vertical-align: top;
}

.pvi-token-table code {
	font-size: var(--pvi-fs-xs);
	background: var(--pvi-bg-surface);
	padding: 2px 6px;
	border-radius: 3px;
}

/* Responsive: stack scale rows on narrow screens */
@media (max-width: 600px) {
	.pvi-type-scale-row {
		flex-direction: column !important;
		gap: 4px !important;
	}

	.pvi-type-scale-meta {
		flex: none;
	}

	.pvi-type-label {
		display: block;
		margin-bottom: 4px;
	}
}

/* ── Hanging Punctuation ───────────────────────────────── */

/* Global hanging punctuation for all text elements */
h1, h2, h3, h4, h5, h6,
p,
blockquote,
.wp-block-post-title,
.wp-block-post-excerpt__excerpt {
	hanging-punctuation: first last;
}
