/*
 * BPV McLuhan Modern POC
 * Mobile-first modernization layer loaded after McLuhan 2.1.1.
 * Scope is intentionally theme-level; BPV plugin internals keep their own design-system CSS.
 */

:root {
	--bpv-turquoise: #52bcce;
	--bpv-green: #b8d836;
	--bpv-blue: #1d4ed8;
	--bpv-blue-hover: #1e40af;
	--bpv-navy: #1f2f4e;
	--bpv-ink: #172033;
	--bpv-muted: #4b5563;
	--bpv-surface: #ffffff;
	--bpv-subtle: #f8fafc;
	--bpv-line: #d7ebf0;
	--bpv-error-bg: #fdebed;
	--bpv-error-border: #c94b55;
	--bpv-error-text: #8a1f2a;
	--bpv-content-gutter: clamp(1rem, 4vw, 2.5rem);
	--bpv-prose-width: 36.5rem; /* Stable equivalent of the former ~68ch body measure; shared across heading/font sizes. */
	--bpv-wide-width: 76rem;
	--bpv-sidebar-width: clamp(17rem, 22vw, 21rem);
	--bpv-radius: 0.4rem;
	--bpv-header-z: 10020;
	--bpv-overlay-z: 10010;
}

html {
	scroll-behavior: smooth;
	scrollbar-gutter: stable;
}

body.bpv-modern-poc {
	background: var(--bpv-subtle);
	color: var(--bpv-ink);
	font-size: clamp(1rem, 0.98rem + 0.12vw, 1.075rem);
	line-height: 1.65;
	min-height: 100%;
	padding-left: 0;
}

body.bpv-modern-poc.lock-scroll {
	height: auto;
	overflow: hidden;
	position: static;
	width: auto;
}

body.bpv-modern-poc ::selection {
	background: var(--bpv-turquoise);
	color: #10202a;
}

/* Theme interaction styles are deliberately limited to theme-owned chrome and prose. */
body.bpv-modern-poc :where(
	.site-header a,
	.site-header button,
	.mobile-menu-wrapper a,
	.mobile-menu-wrapper button,
	.mobile-search a,
	.mobile-search button,
	.search-overlay a,
	.search-overlay button,
	.entry-content > p > a,
	.entry-content > ul > li > a,
	.entry-content > ol > li > a,
	.entry-content > blockquote a,
	.entry-content > address a,
	#loginform a,
	#loginform button,
	#loginform input,
	.comment-respond a,
	.comment-respond button,
	.comment-respond input,
	.comment-respond textarea,
	.comment-respond select,
	.post-password-form input,
	.post-password-form button
) {
	transition-property: color, background-color, border-color, outline-color, opacity, transform;
	transition-duration: 160ms;
	transition-timing-function: ease-out;
}

body.bpv-modern-poc :where(
	.site-header a,
	.site-header button,
	.mobile-menu-wrapper a,
	.mobile-menu-wrapper button,
	.mobile-search a,
	.mobile-search button,
	.search-overlay a,
	.search-overlay button,
	.entry-content > p > a,
	.entry-content > ul > li > a,
	.entry-content > ol > li > a,
	.entry-content > blockquote a,
	.entry-content > address a,
	#loginform a,
	#loginform button,
	#loginform input,
	.comment-respond a,
	.comment-respond button,
	.comment-respond input,
	.comment-respond textarea,
	.comment-respond select,
	.post-password-form input,
	.post-password-form button
):focus-visible {
	outline: 3px solid var(--bpv-blue);
	outline-offset: 3px;
}

body.bpv-modern-poc .skip-link:focus {
	background: #fff;
	color: #111827;
	left: max(1rem, env(safe-area-inset-left));
	top: max(1rem, env(safe-area-inset-top));
}

/* --------------------------------------------------------------------------
 * Mobile-first header and navigation
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc .site-header {
	align-items: center;
	background: #121212;
	border: 0;
	color: #fff;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	margin: 0;
	padding:
		max(0.85rem, env(safe-area-inset-top))
		max(var(--bpv-content-gutter), env(safe-area-inset-right))
		0.85rem
		max(var(--bpv-content-gutter), env(safe-area-inset-left));
	position: sticky;
	top: 0;
	width: 100%;
	z-index: var(--bpv-header-z);
}

body.admin-bar.bpv-modern-poc .site-header {
	top: 0;
}

body.bpv-modern-poc .site-title,
body.bpv-modern-poc .site-description {
	line-height: 1.2;
}

body.bpv-modern-poc .site-title {
	font-size: clamp(1.15rem, 1.05rem + 0.4vw, 1.45rem);
	font-weight: 700;
	letter-spacing: -0.015em;
	margin: 0;
}

body.bpv-modern-poc .site-title a {
	text-decoration: none;
}

body.bpv-modern-poc .site-description {
	display: none;
}

body.bpv-modern-poc .nav-toggle {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--bpv-radius);
	box-shadow: none;
	color: inherit;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: relative;
	right: auto;
	top: auto;
	width: 44px;
}

body.bpv-modern-poc .nav-toggle::before {
	display: none;
}

body.bpv-modern-poc .nav-toggle:hover {
	background: rgba(255, 255, 255, 0.08);
}

body.bpv-modern-poc .nav-toggle .bar {
	background: currentColor;
	height: 2px;
	left: 10px;
	margin: 0;
	position: absolute;
	right: 10px;
	top: 50%;
	transition: transform 180ms ease-out, translate 180ms ease-out;
	width: auto;
}

body.bpv-modern-poc .nav-toggle .bar:nth-child(1) {
	translate: 0 -5px;
}

body.bpv-modern-poc .nav-toggle .bar:nth-child(2) {
	translate: 0 5px;
}

body.bpv-modern-poc .nav-toggle.active .bar:nth-child(1) {
	transform: rotate(45deg);
	translate: 0 0;
}

body.bpv-modern-poc .nav-toggle.active .bar:nth-child(2) {
	transform: rotate(-45deg);
	translate: 0 0;
}

body.bpv-modern-poc .menu-wrapper,
body.bpv-modern-poc .site-header .social-menu.desktop,
body.bpv-modern-poc .search-overlay {
	display: none;
}

body.bpv-modern-poc .mobile-search[hidden],
body.bpv-modern-poc .search-overlay[hidden] {
	display: none !important;
}

html.js body.bpv-modern-poc .mobile-menu-wrapper {
	display: none;
}

html.js body.bpv-modern-poc .mobile-menu-wrapper[data-bpv-open="true"] {
	background: #121212;
	color: #fff;
	display: block;
	inset: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding:
		calc(5.25rem + env(safe-area-inset-top))
		max(var(--bpv-content-gutter), env(safe-area-inset-right))
		max(2rem, env(safe-area-inset-bottom))
		max(var(--bpv-content-gutter), env(safe-area-inset-left));
	position: fixed;
	z-index: var(--bpv-overlay-z);
}

html.no-js body.bpv-modern-poc .nav-toggle {
	display: none;
}

html.no-js body.bpv-modern-poc .mobile-menu-wrapper {
	background: #121212;
	color: #fff;
	display: block;
	padding: 0 var(--bpv-content-gutter) 1.5rem;
	position: static;
	width: 100%;
}


/* Navigation lists are structural UI, never prose lists. Reset markers at every level. */
body.bpv-modern-poc :where(
	.main-menu,
	.main-menu ul,
	.social-menu,
	.social-menu ul
) {
	list-style: none;
	margin-block: 0;
	padding-inline-start: 0;
}

body.bpv-modern-poc :where(
	.main-menu,
	.main-menu ul,
	.social-menu,
	.social-menu ul
) > li::marker {
	content: "";
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu {
	height: auto;
	margin: 0;
	opacity: 1;
	overflow: visible;
	padding: 0 0 2rem;
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu li {
	margin: 0;
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu li + li {
	margin-top: 0.35rem;
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu a,
body.bpv-modern-poc .toggle-mobile-search {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	border-left: 3px solid transparent;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	display: flex;
	font: inherit;
	font-size: clamp(1.15rem, 1rem + 0.8vw, 1.5rem);
	font-weight: 600;
	justify-content: flex-start;
	line-height: 1.25;
	min-height: 48px;
	padding: 0.65rem 0.75rem;
	text-align: left;
	text-decoration: none;
	width: 100%;
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu a:hover,
body.bpv-modern-poc .mobile-menu-wrapper .main-menu a:focus-visible,
body.bpv-modern-poc .toggle-mobile-search:hover,
body.bpv-modern-poc .toggle-mobile-search:focus-visible {
	background: color-mix(in srgb, var(--bpv-turquoise) 14%, transparent);
	border-left-color: var(--bpv-turquoise);
}

body.bpv-modern-poc .mobile-menu-wrapper .current-menu-item > a,
body.bpv-modern-poc .mobile-menu-wrapper .current_page_item > a,
body.bpv-modern-poc .mobile-menu-wrapper [aria-current="page"] {
	background: color-mix(in srgb, var(--bpv-green) 13%, transparent);
	border-left-color: var(--bpv-green);
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu ul {
	margin: 0.2rem 0 0 0.75rem;
}

body.bpv-modern-poc .mobile-menu-wrapper .main-menu ul a {
	font-size: 1rem;
	font-weight: 500;
	min-height: 44px;
}

body.bpv-modern-poc .toggle-mobile-search-wrapper {
	padding-left: 0;
}

body.bpv-modern-poc .main-menu .toggle-mobile-search::before {
	display: none;
}

body.bpv-modern-poc .mobile-menu-wrapper .social-menu.mobile {
	background: transparent;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	margin-top: 1rem;
	padding: 1.25rem 0 0;
	position: static;
}

body.bpv-modern-poc .social-menu a {
	box-shadow: none;
}

/* --------------------------------------------------------------------------
 * Search overlays
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc .mobile-search:not([hidden]) {
	background: #121212;
	color: #fff;
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr);
	inset: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding:
		max(1rem, env(safe-area-inset-top))
		max(var(--bpv-content-gutter), env(safe-area-inset-right))
		max(2rem, env(safe-area-inset-bottom))
		max(var(--bpv-content-gutter), env(safe-area-inset-left));
	position: fixed;
	z-index: calc(var(--bpv-header-z) + 2);
}

body.bpv-modern-poc .untoggle-mobile-search,
body.bpv-modern-poc .bpv-search-close {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 999px;
	box-shadow: none;
	color: inherit;
	display: inline-flex;
	font-size: 1.7rem;
	height: 44px;
	justify-content: center;
	justify-self: end;
	line-height: 1;
	margin: 0 0 1.25rem;
	padding: 0;
	position: static;
	width: 44px;
}

body.bpv-modern-poc .mobile-search form,
body.bpv-modern-poc .search-overlay form {
	margin: 0 auto;
	max-width: 42rem;
	position: relative;
	width: 100%;
}

body.bpv-modern-poc .mobile-search .search-field,
body.bpv-modern-poc .search-overlay .search-field {
	background-color: #fff;
	background-image: none;
	border: 2px solid transparent;
	border-radius: var(--bpv-radius);
	color: var(--bpv-ink);
	font-size: clamp(1rem, 0.9rem + 0.7vw, 1.4rem);
	margin: 0;
	min-height: 52px;
	padding: 0.8rem 1rem;
	width: 100%;
}

body.bpv-modern-poc .mobile-search .search-field:focus-visible,
body.bpv-modern-poc .search-overlay .search-field:focus-visible {
	border-color: var(--bpv-turquoise);
	outline-color: var(--bpv-turquoise);
}

body.bpv-modern-poc .mobile-results {
	margin: 1.25rem auto 0;
	max-width: 42rem;
	min-height: 3rem;
	width: 100%;
}

body.bpv-modern-poc .mobile-results .results-wrapper > * {
	max-width: 100%;
}

body.bpv-modern-poc .bpv-search-status,
body.bpv-modern-poc .mobile-results .results-title {
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.95rem;
	margin: 0;
	padding: 0.75rem 0;
}

body.bpv-modern-poc .mobile-results.error .bpv-search-status {
	color: #fff;
}

body.bpv-modern-poc .bpv-search-results-list {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.bpv-modern-poc .bpv-search-results-list li {
	margin: 0;
}

body.bpv-modern-poc .bpv-search-results-list a {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--bpv-radius);
	color: #fff;
	display: grid;
	gap: 0.2rem;
	min-height: 48px;
	padding: 0.7rem 0.8rem;
	text-decoration: none;
}

body.bpv-modern-poc .bpv-search-results-list a:hover,
body.bpv-modern-poc .bpv-search-results-list a:focus-visible {
	background: color-mix(in srgb, var(--bpv-turquoise) 14%, transparent);
	border-color: var(--bpv-turquoise);
}

body.bpv-modern-poc .bpv-search-result-title {
	font-weight: 600;
}

body.bpv-modern-poc .bpv-search-result-type {
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.82rem;
}

body.bpv-modern-poc .bpv-search-show-all {
	color: #fff;
	display: inline-flex;
	font-weight: 600;
	margin-top: 1rem;
	text-underline-offset: 0.16em;
}

/* --------------------------------------------------------------------------
 * Main layout, content widths and typography
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc .site-content {
	background: var(--bpv-surface);
	min-width: 0;
	position: relative;
}

body.bpv-modern-poc .section-inner,
body.bpv-modern-poc .section-inner.wide,
body.bpv-modern-poc .full-width-template main .section-inner {
	margin-inline: auto;
	max-width: var(--bpv-wide-width);
	width: min(calc(100% - (2 * var(--bpv-content-gutter))), var(--bpv-wide-width));
}

body.bpv-modern-poc .entry-header {
	margin: clamp(2.75rem, 7vw, 5rem) auto clamp(2rem, 5vw, 3.5rem);
	max-width: var(--bpv-prose-width);
}

body.bpv-modern-poc .entry-title {
	color: var(--bpv-navy);
	font-size: clamp(2rem, 1.45rem + 2.2vw, 3.5rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.08;
	text-wrap: balance;
}

body.bpv-modern-poc .excerpt {
	color: var(--bpv-muted);
	font-size: clamp(1.1rem, 1rem + 0.55vw, 1.35rem);
	line-height: 1.55;
}

body.bpv-modern-poc .entry-content {
	line-height: 1.7;
	word-break: normal;
	overflow-wrap: anywhere;
}

body.bpv-modern-poc .entry-content > :where(
	p,
	ul,
	ol,
	blockquote,
	address,
	pre,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	hr
) {
	margin-inline: auto;
	max-inline-size: var(--bpv-prose-width);
}

body.bpv-modern-poc .entry-content > :where(h1, h2, h3, h4, h5, h6) {
	color: var(--bpv-navy);
	font-weight: 700;
	letter-spacing: -0.018em;
	text-wrap: balance;
}

body.bpv-modern-poc .entry-content > h1 {
	font-size: clamp(2rem, 1.55rem + 1.8vw, 3rem);
	margin-bottom: 0.7em;
	margin-top: clamp(3rem, 7vw, 5rem);
}
body.bpv-modern-poc .entry-content > h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.15rem); }
body.bpv-modern-poc .entry-content > h3 { font-size: clamp(1.25rem, 1.1rem + 0.55vw, 1.65rem); }
body.bpv-modern-poc .entry-content > h4 { font-size: clamp(1.1rem, 1.02rem + 0.3vw, 1.3rem); }
body.bpv-modern-poc .entry-content > h5 { font-size: 1rem; }
body.bpv-modern-poc .entry-content > h6 { font-size: 0.95rem; }

body.bpv-modern-poc .entry-content > p {
	line-height: 1.7;
	margin-bottom: 1.35em;
}

body.bpv-modern-poc .entry-content > h2 {
	margin-bottom: 0.65em;
	margin-top: clamp(2.8rem, 6vw, 4.5rem);
}

body.bpv-modern-poc .entry-content > h3 {
	margin-bottom: 0.6em;
	margin-top: clamp(2rem, 4vw, 3rem);
}

body.bpv-modern-poc .entry-content > h4,
body.bpv-modern-poc .entry-content > h5,
body.bpv-modern-poc .entry-content > h6 {
	margin-bottom: 0.55em;
	margin-top: 2rem;
}

body.bpv-modern-poc .entry-content > :where(h1, h2, h3, h4, h5, h6)[id] {
	scroll-margin-block-start: 7rem;
}

body.bpv-modern-poc :where(
	.entry-content > p > a,
	.entry-content > ul > li > a,
	.entry-content > ol > li > a,
	.entry-content > blockquote a,
	.entry-content > address a
) {
	border-bottom: 0;
	color: var(--bpv-blue);
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.16em;
}

body.bpv-modern-poc :where(
	.entry-content > p > a,
	.entry-content > ul > li > a,
	.entry-content > ol > li > a,
	.entry-content > blockquote a,
	.entry-content > address a
):hover {
	color: var(--bpv-blue-hover);
	text-decoration-thickness: 0.12em;
}

body.bpv-modern-poc .entry-content > hr {
	border: 0;
	border-top: 1px solid var(--bpv-line);
	margin-block: clamp(2.5rem, 6vw, 4.5rem);
	width: 100%;
}

body.bpv-modern-poc .entry-content > ul,
body.bpv-modern-poc .entry-content > ol {
	padding-inline-start: 1.35rem;
}

body.bpv-modern-poc .entry-content > :where(ul, ol) li {
	line-height: 1.65;
	margin-top: 0.55rem;
}

body.bpv-modern-poc .entry-content > blockquote {
	box-sizing: border-box;
	border-left: 4px solid var(--bpv-turquoise);
	color: var(--bpv-muted);
	padding: 0.4rem 0 0.4rem 1.25rem;
}

body.bpv-modern-poc .entry-content > pre,
body.bpv-modern-poc .entry-content > p code,
body.bpv-modern-poc .entry-content > :where(ul, ol) code,
body.bpv-modern-poc .entry-content > blockquote code {
	background: #f1f5f9;
}

body.bpv-modern-poc .entry-content > pre {
	border: 1px solid #e2e8f0;
	border-radius: var(--bpv-radius);
	overflow-x: auto;
	padding: 1rem;
}

/* Neutralize McLuhan's desktop-offset alignment calculations. */
body.bpv-modern-poc .entry-content > :where(.alignnone, .aligncenter, .alignwide, .alignfull) {
	margin-inline: auto;
	max-width: 100%;
	width: auto;
}

body.bpv-modern-poc .entry-content > .alignwide,
body.bpv-modern-poc .entry-content > .alignfull {
	width: 100%;
}

body.bpv-modern-poc .entry-content > :where(.alignleft, .pull.left) {
	margin-left: 0;
}

body.bpv-modern-poc .entry-content > :where(.alignright, .pull.right) {
	margin-right: 0;
}

/* --------------------------------------------------------------------------
 * Gutenberg/core blocks and site content components
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc :where(.wp-block-button__link, .wp-element-button) {
	background: var(--bpv-blue);
	border-radius: var(--bpv-radius);
	box-shadow: none;
	color: #fff;
	font-weight: 600;
	min-height: 44px;
	padding: 0.75rem 1.1rem;
}

body.bpv-modern-poc :where(.wp-block-button__link, .wp-element-button):hover {
	background: var(--bpv-blue-hover);
	color: #fff;
}

body.bpv-modern-poc .wp-block-group.has-background {
	padding: clamp(1rem, 3vw, 2rem);
}


body.bpv-modern-poc .entry-content > :where(
	.wp-block-image,
	.wp-block-video,
	.wp-block-embed
):not(.alignwide):not(.alignfull) {
	margin-inline: auto;
	max-inline-size: var(--bpv-prose-width);
}

body.bpv-modern-poc .entry-content > .wp-block-image img {
	display: block;
	height: auto;
	max-inline-size: 100%;
}

body.bpv-modern-poc .wp-block-image img {
	border-radius: min(var(--bpv-radius), 6px);
}

body.bpv-modern-poc .wp-block-separator {
	border-color: var(--bpv-line);
}

/* Responsive table wrapper generated by modern.js for legacy direct tables. */
body.bpv-modern-poc .bpv-table-scroll,
body.bpv-modern-poc figure.wp-block-table {
	margin: 1.75rem auto;
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

body.bpv-modern-poc .bpv-table-scroll {
	max-width: min(100%, var(--bpv-wide-width));
}

body.bpv-modern-poc .bpv-table-scroll table,
body.bpv-modern-poc figure.wp-block-table table {
	margin: 0;
	min-width: 38rem;
	overflow: visible;
	width: 100%;
}

body.bpv-modern-poc .bpv-table-scroll table,
body.bpv-modern-poc figure.wp-block-table table {
	border: 1px solid var(--bpv-line);
	font-size: clamp(0.88rem, 0.84rem + 0.16vw, 0.96rem);
}

body.bpv-modern-poc .bpv-table-scroll :where(th, td),
body.bpv-modern-poc figure.wp-block-table :where(th, td) {
	border-color: var(--bpv-line);
	padding: 0.7rem 0.75rem;
	vertical-align: top;
}

body.bpv-modern-poc .bpv-table-scroll th,
body.bpv-modern-poc figure.wp-block-table th {
	background: color-mix(in srgb, var(--bpv-turquoise) 9%, white);
	color: var(--bpv-navy);
	font-weight: 700;
}

body.bpv-modern-poc .bpv-table-scroll tbody tr:nth-child(even) td,
body.bpv-modern-poc figure.wp-block-table tbody tr:nth-child(even) td {
	background: #fbfdfe;
}

/* Explicit progressive-enhancement classes added by modern.js. */
body.bpv-modern-poc .entry-content > .bpv-theme-anchor-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	list-style: none;
	margin-block: 1.25rem 2.5rem;
	padding: 0;
}

body.bpv-modern-poc .entry-content > .bpv-theme-anchor-nav > li {
	margin: 0;
}

body.bpv-modern-poc .entry-content > .bpv-theme-anchor-nav > li > a {
	background: color-mix(in srgb, var(--bpv-turquoise) 8%, white);
	border: 1px solid var(--bpv-turquoise);
	border-radius: 999px;
	color: var(--bpv-navy);
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 600;
	padding: 0.5rem 0.75rem;
	text-decoration: none;
}

body.bpv-modern-poc .entry-content > .bpv-theme-anchor-nav > li > a:hover {
	background: color-mix(in srgb, var(--bpv-turquoise) 18%, white);
}

body.home.bpv-modern-poc .entry-content > .bpv-theme-stage-route {
	background: var(--bpv-surface);
	border: 1px solid var(--bpv-turquoise);
	border-left: 5px solid var(--bpv-green);
	border-radius: var(--bpv-radius);
	margin-bottom: 0.75rem;
	max-inline-size: var(--bpv-prose-width);
	padding: 0;
}

body.home.bpv-modern-poc .entry-content > .bpv-theme-stage-route > a {
	align-items: center;
	color: var(--bpv-navy);
	display: flex;
	font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem);
	font-weight: 700;
	justify-content: space-between;
	min-height: 58px;
	padding: 0.85rem 1rem;
	text-decoration: none;
}

body.home.bpv-modern-poc .entry-content > .bpv-theme-stage-route > a::after {
	content: "→";
	font-size: 1.25em;
	font-weight: 400;
}

body.home.bpv-modern-poc .entry-content > .bpv-theme-stage-route:hover {
	background: color-mix(in srgb, var(--bpv-turquoise) 7%, white);
}

/* Protected/public WordPress login form inside content. */
body.bpv-modern-poc .entry-content #loginform {
	background: var(--bpv-surface);
	border: 1px solid var(--bpv-turquoise);
	border-radius: var(--bpv-radius);
	display: grid;
	gap: 1rem;
	margin: 2rem auto;
	max-width: 32rem;
	padding: clamp(1rem, 4vw, 1.5rem);
}

body.bpv-modern-poc .entry-content #loginform p {
	margin: 0;
}

body.bpv-modern-poc .entry-content #loginform label {
	color: var(--bpv-navy);
	display: grid;
	font-weight: 600;
	gap: 0.4rem;
}

body.bpv-modern-poc .entry-content #loginform :where(input[type="text"], input[type="password"]) {
	background: #fff;
	border: 1px solid #94a3b8;
	border-radius: var(--bpv-radius);
	margin: 0;
	min-height: 46px;
	padding: 0.7rem 0.8rem;
}

body.bpv-modern-poc .entry-content #loginform input[type="submit"] {
	background: var(--bpv-blue);
	border-radius: var(--bpv-radius);
	min-height: 44px;
}

/* --------------------------------------------------------------------------
 * Forms outside plugin-scoped BPV interfaces
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc :where(
	.comment-respond,
	.post-password-form,
	.entry-content #loginform
) :where(input, textarea, select) {
	accent-color: var(--bpv-green);
}

body.bpv-modern-poc :where(
	.comment-respond,
	.post-password-form,
	.entry-content #loginform
) :where(input, textarea, select):focus-visible {
	border-color: var(--bpv-blue);
}

/* --------------------------------------------------------------------------
 * Footer
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc .site-footer {
	border-top: 1px solid var(--bpv-line);
	color: var(--bpv-muted);
	display: flex;
	flex-direction: column;
	font-size: 0.9rem;
	gap: 0.5rem;
	justify-content: space-between;
	margin-top: clamp(4rem, 8vw, 7rem);
	max-width: var(--bpv-wide-width);
	padding: 1.5rem 0 2.5rem;
	text-align: left;
}

body.bpv-modern-poc .site-footer p,
body.bpv-modern-poc .site-footer .theme-by {
	line-height: 1.5;
	margin: 0;
	text-align: left;
}

/* --------------------------------------------------------------------------
 * Optional utilities for content editors / future site-level components.
 * They intentionally do not style BPV plugin internals.
 * ----------------------------------------------------------------------- */

body.bpv-modern-poc .bpv-theme-responsive-region {
	container-type: inline-size;
}

body.bpv-modern-poc .bpv-theme-card-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@container (min-width: 42rem) {
	body.bpv-modern-poc .bpv-theme-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@supports (grid-template-rows: subgrid) {
	body.bpv-modern-poc .bpv-theme-subgrid {
		display: grid;
		grid-template-rows: subgrid;
	}
}

/* --------------------------------------------------------------------------
 * Desktop enhancement: sidebar + content become a grid instead of body padding.
 * ----------------------------------------------------------------------- */

@media (min-width: 1001px) {
	body.bpv-modern-poc {
		display: grid;
		grid-template-columns: var(--bpv-sidebar-width) minmax(0, 1fr);
		grid-template-rows: minmax(100vh, auto);
	}

	body.bpv-modern-poc .site-header {
		align-content: start;
		align-items: start;
		background: #121212;
		display: flex;
		flex-direction: column;
		grid-column: 1;
		grid-row: 1;
		height: 100svh;
		padding:
			clamp(2.5rem, 6vh, 5rem)
			clamp(1.5rem, 3vw, 3rem)
			clamp(2rem, 4vh, 3rem);
		position: sticky;
		top: 0;
		width: auto;
	}

	body.admin-bar.bpv-modern-poc .site-header {
		height: calc(100svh - var(--wp-admin--admin-bar--height));
		top: var(--wp-admin--admin-bar--height);
	}

	body.bpv-modern-poc .site-title {
		font-size: clamp(1.5rem, 1.2rem + 0.7vw, 2rem);
	}

	body.bpv-modern-poc .site-description {
		color: rgba(255,255,255,0.68);
		display: block;
		font-size: 0.92rem;
		margin-top: 0.75rem;
		max-width: 24ch;
	}

	body.bpv-modern-poc .nav-toggle,
	body.bpv-modern-poc .mobile-menu-wrapper,
	body.bpv-modern-poc .mobile-search {
		display: none !important;
	}

	body.bpv-modern-poc .menu-wrapper {
		display: block;
		height: auto;
		margin-top: 2.5rem;
		overflow: visible;
		padding-bottom: 6.5rem;
		width: 100%;
	}

	body.bpv-modern-poc .main-menu.desktop {
		height: auto;
		overflow: visible;
		padding: 0;
	}

	body.bpv-modern-poc .main-menu.desktop li {
		margin: 0;
	}

	body.bpv-modern-poc .main-menu.desktop li + li {
		margin-top: 0.25rem;
	}

	body.bpv-modern-poc .main-menu.desktop a {
		border: 0;
		border-left: 3px solid transparent;
		color: rgba(255,255,255,0.86);
		display: block;
		font-size: 0.98rem;
		font-weight: 500;
		line-height: 1.35;
		min-height: 40px;
		padding: 0.55rem 0.75rem;
		text-decoration: none;
	}

	body.bpv-modern-poc .main-menu.desktop a:hover,
	body.bpv-modern-poc .main-menu.desktop a:focus-visible {
		background: color-mix(in srgb, var(--bpv-turquoise) 12%, transparent);
		border-left-color: var(--bpv-turquoise);
		color: #fff;
	}

	body.bpv-modern-poc .main-menu.desktop .current-menu-item > a,
	body.bpv-modern-poc .main-menu.desktop .current_page_item > a,
	body.bpv-modern-poc .main-menu.desktop a[aria-current="page"] {
		background: color-mix(in srgb, var(--bpv-green) 12%, transparent);
		border-left-color: var(--bpv-green);
		color: #fff;
	}

	body.bpv-modern-poc .main-menu.desktop ul {
		margin: 0.25rem 0 0 0.75rem;
	}

	body.bpv-modern-poc .main-menu.desktop ul a {
		font-size: 0.9rem;
		font-weight: 400;
		min-height: 36px;
	}

	body.bpv-modern-poc .site-header .social-menu.desktop {
		background: transparent;
		bottom: 1.5rem;
		display: block;
		left: clamp(1.5rem, 3vw, 3rem);
		padding: 0;
		position: absolute;
		right: clamp(1.5rem, 3vw, 3rem);
	}

	body.bpv-modern-poc .site-header .social-menu.desktop .social-menu-inner {
		margin: -0.4rem 0 0 -0.4rem;
	}

	body.bpv-modern-poc .site-header .social-menu.desktop li {
		margin: 0.4rem 0 0 0.4rem;
	}

	body.bpv-modern-poc .site-header .social-menu.desktop a {
		background: rgba(255,255,255,0.08);
		height: 40px;
		width: 40px;
	}

	body.bpv-modern-poc .site-header .social-menu.desktop a:hover,
	body.bpv-modern-poc .site-header .social-menu.desktop a:focus-visible,
	body.bpv-modern-poc .site-header .social-menu.desktop a.active {
		background: var(--bpv-turquoise);
		color: #10202a;
	}

	body.bpv-modern-poc .site-content {
		grid-column: 2;
		grid-row: 1;
	}

	body.bpv-modern-poc .search-overlay:not([hidden]) {
		align-items: center;
		background: rgba(248, 250, 252, 0.98);
		color: var(--bpv-ink);
		display: grid;
		grid-template-rows: auto 1fr;
		inset: 0 0 0 var(--bpv-sidebar-width);
		justify-items: center;
		opacity: 1;
		padding: 2rem var(--bpv-content-gutter);
		position: fixed;
		z-index: calc(var(--bpv-header-z) + 1);
	}

	body.bpv-modern-poc .bpv-search-close {
		align-self: start;
		color: var(--bpv-navy);
		justify-self: end;
	}

	body.bpv-modern-poc .search-overlay form {
		align-self: center;
	}

	body.bpv-modern-poc .site-footer {
		flex-direction: row;
	}

	body.bpv-modern-poc .site-footer .theme-by {
		text-align: right;
	}
}

@media screen and (min-width: 601px) and (max-width: 1000px) {
	body.admin-bar.bpv-modern-poc .site-header {
		top: var(--wp-admin--admin-bar--height);
	}
}

@media (min-width: 700px) {
	body.home.bpv-modern-poc .entry-content {
		display: flow-root;
	}

	body.home.bpv-modern-poc .entry-content > .bpv-theme-stage-route {
		width: min(100%, var(--bpv-prose-width));
	}
}

/* High contrast / forced colors: do not depend on custom colors alone. */
@media (forced-colors: active) {
	body.bpv-modern-poc .main-menu a,
	body.bpv-modern-poc .toggle-mobile-search,
	body.bpv-modern-poc .entry-content > p > a,
	body.bpv-modern-poc .entry-content > ul > li > a,
	body.bpv-modern-poc .entry-content > ol > li > a,
	body.bpv-modern-poc .bpv-theme-anchor-nav a,
	body.bpv-modern-poc .bpv-theme-stage-route a,
	body.bpv-modern-poc :where(.wp-block-button__link, .wp-element-button) {
		forced-color-adjust: auto;
	}

	body.bpv-modern-poc .main-menu .current-menu-item > a,
	body.bpv-modern-poc .main-menu .current_page_item > a,
	body.bpv-modern-poc .main-menu a[aria-current="page"] {
		border-left: 4px solid Highlight;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	body.bpv-modern-poc *,
	body.bpv-modern-poc *::before,
	body.bpv-modern-poc *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	body.bpv-modern-poc {
		background: #fff;
		display: block;
		font-size: 11pt;
	}

	body.bpv-modern-poc .site-header,
	body.bpv-modern-poc .mobile-menu-wrapper,
	body.bpv-modern-poc .mobile-search,
	body.bpv-modern-poc .search-overlay,
	body.bpv-modern-poc .site-footer .theme-by {
		display: none !important;
	}

	body.bpv-modern-poc .site-content {
		background: #fff;
	}

	body.bpv-modern-poc .section-inner {
		max-width: none;
		width: 100%;
	}

	body.bpv-modern-poc :where(
		.entry-content > p > a,
		.entry-content > ul > li > a,
		.entry-content > ol > li > a,
		.entry-content > blockquote a,
		.entry-content > address a
	) {
		color: #000;
		text-decoration: underline;
	}
}
