/**
 * PPRA design system — component styles layered over theme.json tokens.
 * Black / white / PPRA red. Precision-inspired, restrained, WCAG 2.2 AA.
 */

:root {
	--ppra-red: #C8102E;
	--ppra-red-dark: #A50D26;
	--ppra-black: #111111;
	--ppra-charcoal: #1B1D20;
	--ppra-light: #F5F6F7;
	--ppra-border: #E3E5E8;
	--ppra-muted: #5E6369;
	--ppra-radius-card: 10px;
	--ppra-radius-control: 6px;
	--ppra-shadow-card: 0 1px 2px rgba(17, 17, 17, 0.06), 0 8px 24px rgba(17, 17, 17, 0.07);
	--ppra-focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--ppra-red);
}

/* ------------------------------------------------------------------
 * Global refinements
 * ------------------------------------------------------------------ */

html {
	scroll-behavior: smooth;
}

/* Keep in-page anchor targets clear of the sticky header. */
main [id],
.wp-block-heading[id] {
	scroll-margin-top: 6rem;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--ppra-red);
	color: #fff;
}

a {
	text-underline-offset: 0.16em;
	transition: color 120ms ease;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--ppra-red);
	outline-offset: 2px;
	border-radius: 2px;
}

.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--ppra-black);
	outline-offset: 2px;
}

/* On dark surfaces the red/black outlines fall below the 3:1 contrast
   WCAG 1.4.11 requires for focus indicators — use white there. */
.ppra-footer :focus-visible,
.ppra-section-dark :focus-visible,
.ppra-trust-band :focus-visible,
.ppra-cta-band :focus-visible,
.ppra-utility-bar :focus-visible,
.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open :focus-visible {
	outline-color: #fff;
}

.ppra-footer .wp-element-button:focus-visible,
.ppra-section-dark .wp-element-button:focus-visible,
.ppra-cta-band .wp-element-button:focus-visible,
.ppra-footer .wp-block-button__link:focus-visible,
.ppra-section-dark .wp-block-button__link:focus-visible,
.ppra-cta-band .wp-block-button__link:focus-visible {
	outline-color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* Buttons */
.wp-element-button,
.wp-block-button__link {
	transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--ppra-black);
	border: 1.5px solid var(--ppra-black);
	padding-top: calc(0.75rem - 1.5px);
	padding-bottom: calc(0.75rem - 1.5px);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus {
	background: var(--ppra-black);
	color: #fff;
}

.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.75);
	padding-top: calc(0.75rem - 1.5px);
	padding-bottom: calc(0.75rem - 1.5px);
}

.wp-block-button.is-style-outline-light .wp-block-button__link:hover,
.wp-block-button.is-style-outline-light .wp-block-button__link:focus {
	background: #fff;
	color: var(--ppra-black);
	border-color: #fff;
}

/* Editorial note — visible marker for content awaiting PPRA confirmation */
p.is-style-content-note {
	background: #FDF6EC;
	border-left: 3px solid #92400E;
	color: #6B3A0B;
	padding: 0.7rem 1rem;
	font-size: 0.875rem;
	border-radius: 0 var(--ppra-radius-control) var(--ppra-radius-control) 0;
}

/* Eyebrow labels */
.ppra-eyebrow,
.ppra-eyebrow-terms {
	color: var(--ppra-red);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.ppra-eyebrow-terms a {
	color: var(--ppra-red);
	text-decoration: none;
}

.ppra-eyebrow-terms a:hover {
	text-decoration: underline;
}

/* ------------------------------------------------------------------
 * Header
 * ------------------------------------------------------------------ */

/* Header and footer are template parts, so they need their own gutters
   (the entry-content rule only covers page sections). */
.ppra-utility-bar,
.ppra-masthead,
.ppra-footer {
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

.ppra-utility-bar {
	font-feature-settings: "ss01";
}

.ppra-utility-bar p {
	margin: 0;
}

.ppra-utility-note {
	letter-spacing: 0.02em;
	opacity: 0.92;
}

.ppra-utility-links {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.ppra-utility-links a {
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 0.65rem;
}

.ppra-utility-links a:hover,
.ppra-utility-links a:focus {
	color: #fff;
	text-decoration: underline;
}

.ppra-utility-links a.ppra-utility-login {
	background: var(--ppra-red);
	border-radius: var(--ppra-radius-control);
	min-height: 34px;
	margin-left: 0.35rem;
	padding: 0 1rem;
	position: relative;
}

/* Keep the 34px visual pill but restore a 44px hit area (WCAG 2.5.8). */
.ppra-utility-links a.ppra-utility-login::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 44px;
	transform: translateY(-50%);
}

.ppra-utility-links a.ppra-utility-login:hover,
.ppra-utility-links a.ppra-utility-login:focus {
	background: var(--ppra-red-dark);
	text-decoration: none;
}

.ppra-utility-bar .alignwide {
	align-items: center;
}

/* The whole header sticks: a sticky child can only travel within its
   parent's box, so making just the masthead sticky would unpin it as
   soon as the header scrolled away. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 200;
	background: #fff;
}

.ppra-masthead {
	border-bottom: 1px solid var(--ppra-border);
}

body.ppra-scrolled header.wp-block-template-part {
	box-shadow: 0 6px 18px rgba(17, 17, 17, 0.08);
}

/* Compact state: the utility bar collapses, leaving logo, nav and the
   primary CTA pinned. */
body.ppra-scrolled .ppra-utility-bar {
	display: none;
}

@media (prefers-reduced-motion: no-preference) {
	.ppra-masthead-inner,
	.ppra-brand-mark img {
		transition: padding 160ms ease, height 160ms ease;
	}
}

.ppra-masthead-inner {
	padding-top: 0.85rem;
	padding-bottom: 0.85rem;
}

body.ppra-scrolled .ppra-masthead-inner {
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
}

body.ppra-scrolled .ppra-brand-mark img {
	height: 38px !important;
}

body.ppra-scrolled .ppra-brand-tagline {
	display: none;
}

.ppra-brand {
	gap: 0.8rem !important;
}

.ppra-brand-mark img {
	display: block;
}

.ppra-brand-tagline {
	margin-top: 0.1rem !important;
	letter-spacing: 0.01em;
}

.ppra-masthead-actions {
	gap: 1.5rem !important;
}

/* An oversized menu (e.g. core's page-list navigation fallback) must
   wrap instead of crushing the Join CTA into a one-character column. */
.ppra-masthead-actions .ppra-join-cta {
	flex-shrink: 0;
}

.ppra-masthead .wp-block-navigation a {
	text-decoration: none;
	padding: 0.7rem 0.1rem;
	border-bottom: 2px solid transparent;
}

.ppra-masthead .wp-block-navigation a:hover,
.ppra-masthead .wp-block-navigation a:focus,
.ppra-masthead .wp-block-navigation .current-menu-item > a {
	color: var(--ppra-black);
	border-bottom-color: var(--ppra-red);
}

/* The desktop nav is right-justified; the overlay must not inherit that
   or items hug (and overflow) the right edge. */
.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem 1.5rem 2rem;
}

.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	width: 100%;
	justify-content: flex-start !important;
	align-items: flex-start !important;
	text-align: left;
}

.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
}

.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open a {
	color: #fff;
	border-bottom: none;
	font-size: 1.25rem;
	padding: 0.65rem 0;
	display: block;
	width: 100%;
}

/* Size only — never set `display` here, or the open button overrides
   WordPress's desktop `display: none` and the hamburger leaks onto
   desktop layouts. */
.ppra-masthead .wp-block-navigation__responsive-container-open,
.ppra-masthead .wp-block-navigation__responsive-container-close {
	color: var(--ppra-black);
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
}

@media (max-width: 599.98px) {
	.ppra-masthead .wp-block-navigation__responsive-container-open {
		display: flex;
	}
}

.ppra-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	display: flex;
	color: #fff;
}

/* ------------------------------------------------------------------
 * Page headers & sections
 * ------------------------------------------------------------------ */

.ppra-page-header {
	border-bottom: 1px solid var(--ppra-border);
	/* The band carried no gutter of its own and leaned entirely on the
	   auto-margin WordPress gives its alignwide child. That margin
	   collapses to 0 below wide-size, so on mobile the breadcrumb and
	   page title sat flush against the screen edge while the body copy
	   below them was inset. Carry the site gutter here too; above
	   wide-size the auto-margin absorbs it and desktop is unchanged. */
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

.ppra-page-header h1 {
	margin: 0.35rem 0 0;
}

.ppra-page-header p {
	max-width: 46rem;
}

/* Listing pages run a single wide column; prose inside keeps a readable
   measure while staying flush with the data grid's left edge. */
.ppra-listing .ppra-lede {
	max-width: 46rem;
	/* Sit on the constrained column's left edge, then cap the measure.
	   Zeroing the margin pinned prose to the group's padding edge (32px)
	   rather than the column edge (93px at 1440), so headings and cards
	   sat indented past their own body text. Reproduce the centring
	   offset WordPress applies to wide-size children instead; max()
	   collapses it to 0 once the viewport is narrower than wide-size. */
	margin-left: max(0px, (100% - var(--wp--style--global--wide-size, 1240px)) / 2) !important;
	margin-right: auto !important;
}

.ppra-listing h2 {
	margin-top: 2.5rem;
}

/* Breadcrumbs */
.ppra-breadcrumbs {
	margin-bottom: 0.35rem;
}

.ppra-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.8125rem;
	color: var(--ppra-muted);
}

.ppra-breadcrumbs li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.ppra-breadcrumbs li + li::before {
	content: "/";
	color: #B6BBC1;
}

.ppra-breadcrumbs a {
	color: var(--ppra-muted);
	text-decoration: none;
	display: inline-block;
	padding: 0.2rem 0;
}

.ppra-breadcrumbs a:hover,
.ppra-breadcrumbs a:focus {
	color: var(--ppra-red);
	text-decoration: underline;
}

.ppra-breadcrumbs [aria-current="page"] {
	color: var(--ppra-black);
	font-weight: 600;
}

.ppra-section-dark {
	background: var(--ppra-charcoal);
	color: #fff;
}

.ppra-section-dark a {
	color: #fff;
}

.ppra-section-dark .ppra-section-sub,
.ppra-footer-muted {
	color: #A6ABB1 !important;
}

/* ------------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------------ */

.ppra-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--ppra-border);
}

.ppra-hero-art img {
	max-width: min(480px, 88vw);
	height: auto;
}

.ppra-hero h1 {
	max-width: 13ch;
	margin-top: 0.5rem;
}

.ppra-hero .ppra-eyebrow {
	margin-bottom: 0;
}

.ppra-hero .ppra-hero-copy {
	max-width: 34rem;
	color: var(--ppra-muted);
}

.ppra-hero-ctas {
	margin-top: 0.75rem;
}

.ppra-hero-meta {
	color: var(--ppra-muted);
	font-size: 0.8125rem;
}

.ppra-hero-meta a {
	color: var(--ppra-black);
	font-weight: 600;
}

/* ------------------------------------------------------------------
 * Scope-view hero
 *
 * Layered: photograph → reticle overlay → readability scrim → copy.
 * The reticle is vector, so it stays sharp at any density; the photo
 * slot is an ordinary editable image block.
 * ------------------------------------------------------------------ */

.ppra-hero-scope {
	/* Horizontal position of the optic — the reticle, the steel target and
	   the photograph's focal point all key off this, so they stay aligned
	   at every breakpoint. */
	--ppra-hero-focal: 72%;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: clamp(30rem, 76vh, 44rem);
	display: flex;
	align-items: center;
	background: var(--ppra-light);
}

/* The media layer must escape the constrained layout's 1240px cap so the
   photograph runs edge to edge. */
.ppra-hero-scope .ppra-hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	max-width: none !important;
	width: auto !important;
}

.ppra-hero-scope .ppra-hero-photo {
	margin: 0;
	height: 100%;
}

.ppra-hero-scope .ppra-hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ppra-hero-focal) 58%;
	display: block;
}

/* Reticle sits over the photo at the focal point, keeping clear negative
   space for the headline on desktop. */
.ppra-hero-reticle,
.ppra-hero-target {
	position: absolute;
	top: 50%;
	left: var(--ppra-hero-focal);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.ppra-hero-reticle {
	width: min(46rem, 78vh);
	aspect-ratio: 1;
	opacity: 0.9;
}

/* Sized to read as steel at several hundred metres, sitting under the
   reticle's centre. */
.ppra-hero-target {
	width: clamp(2.4rem, 4.2vw, 3.6rem);
	opacity: 0.92;
}

.ppra-hero-reticle img,
.ppra-hero-target img {
	width: 100%;
	height: auto;
	display: block;
}

/* Readability scrim: strongest behind the copy, clearing toward the
   reticle so the optic stays legible. */
.ppra-hero-scope::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		100deg,
		rgba(255, 255, 255, 0.97) 0%,
		rgba(255, 255, 255, 0.92) 34%,
		rgba(255, 255, 255, 0.62) 52%,
		rgba(255, 255, 255, 0.24) 70%,
		rgba(255, 255, 255, 0.12) 100%
	);
}

.ppra-hero-scope .ppra-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

.ppra-hero-copy-col {
	max-width: 34rem;
}

.ppra-hero-scope h1 {
	max-width: 12ch;
	margin: 0.5rem 0 0;
}

.ppra-hero-scope .ppra-hero-copy {
	color: var(--ppra-black);
	max-width: 32rem;
}

.ppra-hero-scope .ppra-hero-ctas {
	margin-top: 1.25rem;
}

/* Tablet: reticle recentres and softens behind a stronger scrim. */
@media (max-width: 1024px) {
	.ppra-hero-scope {
		--ppra-hero-focal: 78%;
	}

	.ppra-hero-reticle {
		width: min(34rem, 62vh);
		opacity: 0.75;
	}

	.ppra-hero-scope::before {
		background: linear-gradient(
			100deg,
			rgba(255, 255, 255, 0.97) 0%,
			rgba(255, 255, 255, 0.9) 46%,
			rgba(255, 255, 255, 0.5) 74%,
			rgba(255, 255, 255, 0.2) 100%
		);
	}
}

/* Mobile: reticle becomes a centred watermark; copy sits on a near-solid
   scrim so contrast never depends on the photograph. */
@media (max-width: 767px) {
	.ppra-hero-scope {
		min-height: clamp(26rem, 68vh, 34rem);
		--ppra-hero-focal: 50%;
	}

	.ppra-hero-reticle,
	.ppra-hero-target {
		top: 46%;
	}

	.ppra-hero-reticle {
		width: min(24rem, 80vw);
		opacity: 0.55;
	}

	.ppra-hero-target {
		opacity: 0.65;
	}

	.ppra-hero-scope::before {
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.9) 0%,
			rgba(255, 255, 255, 0.84) 55%,
			rgba(255, 255, 255, 0.74) 100%
		);
	}

	.ppra-hero-copy-col {
		max-width: none;
	}
}

/* Trust band */
.ppra-trust-band {
	background: var(--ppra-black);
	color: #fff;
}

.ppra-trust-band p {
	margin: 0;
}

.ppra-trust-band a {
	color: #fff;
	font-weight: 600;
}

/* ------------------------------------------------------------------
 * Cards — shared card language
 * ------------------------------------------------------------------ */

.ppra-card {
	background: #fff;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1.4rem 1.5rem;
	transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
	height: 100%;
	box-sizing: border-box;
}

.ppra-card:hover,
.ppra-card:focus-within {
	border-color: #C6CACF;
	box-shadow: var(--ppra-shadow-card);
}

.ppra-card h3 {
	margin: 0.2rem 0 0.4rem;
	font-size: 1.1875rem;
	line-height: 1.3;
}

.ppra-card h3 a {
	text-decoration: none;
	color: var(--ppra-black);
}

.ppra-card h3 a:hover,
.ppra-card h3 a:focus {
	color: var(--ppra-red);
}

.ppra-card-meta {
	color: var(--ppra-muted);
	font-size: 0.875rem;
	margin: 0;
	line-height: 1.55;
}

.ppra-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--ppra-light);
	flex-wrap: wrap;
}

.ppra-card-link {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ppra-black);
	text-decoration: none;
	display: inline-block;
	padding-block: 0.25rem; /* keeps the standalone target ≥24px (WCAG 2.5.8) */
}

.ppra-card-link:hover,
.ppra-card-link:focus {
	color: var(--ppra-red);
	text-decoration: underline;
}

.ppra-card-link::after {
	content: " →";
}

/* Grid helpers emitted by blocks */
.ppra-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Homepage previews show exactly three cards — keep them on one row on
   desktop rather than letting auto-fit create a 4th empty column. */
.ppra-home-preview .ppra-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
}

/* Badges */
.ppra-badge {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	padding: 0.22rem 0.6rem;
	border-radius: 999px;
	border: 1px solid transparent;
	white-space: nowrap;
}

.ppra-badge--open {
	background: #EAF4EE;
	color: #14532D;
	border-color: #BCDCC8;
}

.ppra-badge--scheduled {
	background: var(--ppra-light);
	color: #3A3F45;
	border-color: var(--ppra-border);
}

.ppra-badge--closing,
.ppra-badge--pending {
	background: #FDF3E1;
	color: #92400E;
	border-color: #F3DFB8;
}

.ppra-badge--closed,
.ppra-badge--expired,
.ppra-badge--cancelled {
	background: #FBECEC;
	color: #991B1B;
	border-color: #F2CFCF;
}

.ppra-badge--completed {
	background: #EDEFF2;
	color: #37404A;
	border-color: #D8DCE1;
}

.ppra-badge--accredited {
	background: #EAF4EE;
	color: #14532D;
	border-color: #BCDCC8;
}

.ppra-badge--discipline {
	background: #fff;
	color: var(--ppra-black);
	border-color: var(--ppra-border);
	font-weight: 600;
}

/* Match card specifics */
.ppra-match-date {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 3.4rem;
	padding: 0.45rem 0.5rem;
	background: var(--ppra-black);
	color: #fff;
	border-radius: var(--ppra-radius-control);
	line-height: 1.1;
	text-align: center;
}

.ppra-match-date .d {
	font-size: 1.25rem;
	font-weight: 800;
}

.ppra-match-date .m {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ppra-match-card .ppra-card-top {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	justify-content: space-between;
}

/* ------------------------------------------------------------------
 * Filters
 * ------------------------------------------------------------------ */

.ppra-filters {
	background: var(--ppra-light);
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1rem 1.15rem;
	margin-bottom: 1.75rem;
}

.ppra-filters-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	align-items: flex-end;
}

.ppra-filter-field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 10rem;
	flex: 1 1 10rem;
}

.ppra-filter-field label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ppra-muted);
}

.ppra-filter-field select,
.ppra-filter-field input[type="search"],
.ppra-filter-field input[type="text"],
.ppra-filter-field input[type="month"] {
	appearance: none;
	background: #fff;
	border: 1px solid #C9CDD2;
	border-radius: var(--ppra-radius-control);
	padding: 0.55rem 0.7rem;
	font: inherit;
	font-size: 0.9375rem;
	color: var(--ppra-black);
	min-height: 2.6rem;
}

.ppra-filter-field select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23111' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.7rem center;
	padding-right: 2rem;
}

.ppra-filters .ppra-filter-actions {
	display: flex;
	gap: 0.6rem;
	align-items: center;
}

.ppra-filters button[type="submit"] {
	background: var(--ppra-black);
	color: #fff;
	border: none;
	border-radius: var(--ppra-radius-control);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 0.62rem 1.2rem;
	cursor: pointer;
	min-height: 2.6rem;
	transition: background-color 140ms ease;
}

.ppra-filters button[type="submit"]:hover {
	background: var(--ppra-red);
}

.ppra-filters .ppra-filter-reset {
	font-size: 0.875rem;
	color: var(--ppra-muted);
}

.ppra-results-count {
	font-size: 0.875rem;
	color: var(--ppra-muted);
	margin: 0 0 1.1rem;
}

/* ------------------------------------------------------------------
 * Details panels (match / facility / resource singles)
 * ------------------------------------------------------------------ */

.ppra-details-panel {
	background: var(--ppra-light);
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1.5rem 1.6rem;
	margin-bottom: 2rem;
}

.ppra-details-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
	gap: 1rem 1.5rem;
	margin: 0;
}

.ppra-details-grid dt {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ppra-muted);
	margin-bottom: 0.15rem;
}

.ppra-details-grid dd {
	margin: 0;
	font-size: 0.9688rem;
	font-weight: 500;
}

.ppra-details-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 1.35rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--ppra-border);
}

.ppra-details-ctas .ppra-btn {
	display: inline-block;
	background: var(--ppra-red);
	color: #fff;
	font-size: 0.9063rem;
	font-weight: 600;
	text-decoration: none;
	padding: 0.66rem 1.25rem;
	border-radius: var(--ppra-radius-control);
	transition: background-color 140ms ease;
}

.ppra-details-ctas .ppra-btn:hover,
.ppra-details-ctas .ppra-btn:focus {
	background: var(--ppra-red-dark);
	color: #fff;
}

.ppra-details-ctas .ppra-btn--secondary {
	background: transparent;
	color: var(--ppra-black);
	border: 1.5px solid var(--ppra-black);
}

.ppra-details-ctas .ppra-btn--secondary:hover,
.ppra-details-ctas .ppra-btn--secondary:focus {
	background: var(--ppra-black);
	color: #fff;
}

.ppra-nexus-note {
	font-size: 0.8125rem;
	color: var(--ppra-muted);
	margin: 0.9rem 0 0;
}

/* Resource rows */
.ppra-resource-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	overflow: hidden;
	background: #fff;
}

.ppra-resource-list > li {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	align-items: center;
	justify-content: space-between;
	padding: 1.05rem 1.3rem;
	border-bottom: 1px solid var(--ppra-border);
}

.ppra-resource-list > li:last-child {
	border-bottom: none;
}

.ppra-resource-list h3 {
	font-size: 1.0313rem;
	margin: 0 0 0.2rem;
}

.ppra-resource-list h3 a {
	text-decoration: none;
	color: var(--ppra-black);
}

.ppra-resource-list h3 a:hover,
.ppra-resource-list h3 a:focus {
	color: var(--ppra-red);
}

.ppra-resource-meta {
	font-size: 0.8125rem;
	color: var(--ppra-muted);
	margin: 0;
}

.ppra-resource-actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

/* ------------------------------------------------------------------
 * Homepage sections
 * ------------------------------------------------------------------ */

/* Full-bleed section backgrounds with a padded 1240px content column.
   Sections are flow-level children of the entry content, so the colour
   spans the viewport while inner alignwide blocks stay centred. The
   second selector is the block-editor canvas equivalent (the editor has
   no .entry-content wrapper), keeping editing parity. */
.entry-content > .wp-block-group,
.editor-styles-wrapper .is-root-container > .wp-block-group {
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

/* Template-level sections (blog home, 404, search, single content wrappers)
   sit directly inside <main> rather than the entry content, so they missed
   the gutter above and their content touched the viewport edge below
   wide-size. Same clamp value, so nothing changes on desktop. */
main.wp-block-group > .wp-block-group {
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

.ppra-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1.6rem;
}

/* WordPress's constrained layout centres children with auto margins,
   which reads as accidental indentation inside our left-aligned
   sections. Keep section heads and callouts flush left. */
.ppra-section-head.is-layout-constrained > *,
.ppra-safety-callout.is-layout-constrained > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ppra-section-head h2 {
	margin: 0;
}

.ppra-section-head .ppra-section-sub {
	color: var(--ppra-muted);
	margin: 0.4rem 0 0;
	max-width: 40rem;
}

/* Discipline cards */
.ppra-discipline-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1.6rem 1.5rem 1.4rem;
	height: 100%;
	box-sizing: border-box;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.ppra-discipline-card:hover,
.ppra-discipline-card:focus-within {
	border-color: #C6CACF;
	box-shadow: var(--ppra-shadow-card);
}

.ppra-discipline-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 1.5rem;
	width: 2.6rem;
	height: 3px;
	background: var(--ppra-red);
	border-radius: 0 0 2px 2px;
}

/* Pathway steps */
.ppra-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1.4rem 1.4rem 1.3rem;
	height: 100%;
	box-sizing: border-box;
}

.ppra-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 50%;
	background: var(--ppra-red);
	color: #fff;
	font-weight: 800;
	font-size: 0.9375rem;
	margin-bottom: 0.8rem;
}

.ppra-step h3 {
	font-size: 1.0625rem;
	margin: 0 0 0.35rem;
}

.ppra-step p {
	font-size: 0.9063rem;
	color: var(--ppra-muted);
	margin: 0 0 0.6rem;
}

.ppra-step a {
	font-size: 0.875rem;
	font-weight: 600;
}

/* Stats */
.ppra-stat {
	border-left: 3px solid var(--ppra-red);
	padding-left: 1.1rem;
}

.ppra-stat .n {
	font-family: var(--wp--preset--font-family--heading, inherit);
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 800;
	line-height: 1.05;
	display: block;
}

.ppra-stat .l {
	font-size: 0.875rem;
	color: #A6ABB1;
	display: block;
	margin-top: 0.3rem;
}

/* Safety callout */
.ppra-safety-callout {
	border: 1px solid var(--ppra-border);
	border-left: 4px solid var(--ppra-red);
	border-radius: 0 var(--ppra-radius-card) var(--ppra-radius-card) 0;
	background: #fff;
	padding: 1.5rem 1.7rem;
}

.ppra-safety-callout h2,
.ppra-safety-callout h3 {
	margin-top: 0;
}

/* Sponsors */
.ppra-sponsor-tile {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px dashed #C9CDD2;
	border-radius: var(--ppra-radius-control);
	min-height: 4.6rem;
	color: var(--ppra-muted);
	font-size: 0.8125rem;
	text-align: center;
	padding: 0.8rem;
}

/* CTA band */
.ppra-cta-band {
	background: var(--ppra-red);
	color: #fff;
}

.ppra-cta-band h2 {
	color: #fff;
	margin: 0 0 0.4rem;
}

/* #FCE9EC on PPRA red is 5.0:1 — the previous tint failed WCAG AA. */
.ppra-cta-band p {
	color: #FCE9EC;
}

.ppra-cta-band .wp-block-button__link {
	background: #fff;
	color: var(--ppra-red-dark);
	font-weight: 700;
}

.ppra-cta-band .wp-block-button__link:hover,
.ppra-cta-band .wp-block-button__link:focus {
	background: var(--ppra-black);
	color: #fff;
}

/* Newsletter */
.ppra-newsletter {
	border-top: 1px solid var(--ppra-border);
}

.ppra-newsletter-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	max-width: 30rem;
}

.ppra-newsletter-form input[type="email"] {
	flex: 1 1 14rem;
	border: 1px solid #C9CDD2;
	border-radius: var(--ppra-radius-control);
	padding: 0.62rem 0.8rem;
	font: inherit;
	font-size: 0.9375rem;
	min-height: 2.7rem;
}

.ppra-newsletter-form button {
	background: var(--ppra-black);
	color: #fff;
	border: none;
	border-radius: var(--ppra-radius-control);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 0.62rem 1.3rem;
	cursor: pointer;
	min-height: 2.7rem;
}

.ppra-newsletter-form button:hover {
	background: var(--ppra-red);
}

/* ------------------------------------------------------------------
 * News cards & list rows
 * ------------------------------------------------------------------ */

.ppra-news-card {
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	padding: 1.35rem 1.4rem;
	background: #fff;
	height: 100%;
	box-sizing: border-box;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.ppra-news-card:hover,
.ppra-news-card:focus-within {
	border-color: #C6CACF;
	box-shadow: var(--ppra-shadow-card);
}

.ppra-news-card h2 a,
.ppra-news-card h3 a {
	text-decoration: none;
	color: var(--ppra-black);
}

.ppra-news-card h2 a:hover,
.ppra-news-card h2 a:focus,
.ppra-news-card h3 a:hover,
.ppra-news-card h3 a:focus {
	color: var(--ppra-red);
}

.ppra-list-row {
	padding: 1.3rem 0;
	border-bottom: 1px solid var(--ppra-border);
}

.ppra-list-row h2 a {
	text-decoration: none;
	color: var(--ppra-black);
}

.ppra-list-row h2 a:hover,
.ppra-list-row h2 a:focus {
	color: var(--ppra-red);
}

/* Pagination */
.wp-block-query-pagination {
	margin-top: 2.2rem;
	font-size: 0.9375rem;
}

.wp-block-query-pagination a {
	text-decoration: none;
	font-weight: 600;
}

.wp-block-query-pagination-numbers .current {
	color: var(--ppra-red);
	font-weight: 800;
}

/* ------------------------------------------------------------------
 * Footer
 * ------------------------------------------------------------------ */

.ppra-footer-heading {
	color: #A6ABB1 !important;
	font-size: 0.8125rem !important;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.9rem;
}

.ppra-footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ppra-footer-links li {
	margin: 0;
	font-size: 0.9063rem;
}

/* Padded block links keep footer tap targets comfortably apart. */
.ppra-footer-links a {
	display: inline-block;
	padding: 0.32rem 0;
}

.ppra-footer-links a,
.ppra-footer-legal a {
	color: #E8EAEC;
	text-decoration: none;
}

.ppra-footer-links a:hover,
.ppra-footer-links a:focus,
.ppra-footer-legal a:hover,
.ppra-footer-legal a:focus {
	color: #fff;
	text-decoration: underline;
}

.ppra-footer-separator {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	background: none;
	opacity: 1;
}

/* ------------------------------------------------------------------
 * Tables (rules, specs)
 * ------------------------------------------------------------------ */

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.9375rem;
}

.wp-block-table th {
	background: var(--ppra-light);
	text-align: left;
	font-weight: 700;
}

.wp-block-table th,
.wp-block-table td {
	border: 1px solid var(--ppra-border);
	padding: 0.6rem 0.8rem;
}

/* Tables with 4+ columns keep a readable width and scroll horizontally
   inside the figure on narrow screens instead of crushing cells. */
@media (max-width: 640px) {
	figure.wp-block-table:has(tr > *:nth-child(4)) table {
		min-width: 560px;
	}
}

/* ------------------------------------------------------------------
 * FAQ (details/summary)
 * ------------------------------------------------------------------ */

.ppra-faq details {
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-control);
	background: #fff;
	padding: 0;
	margin-bottom: 0.7rem;
}

.ppra-faq summary {
	cursor: pointer;
	font-weight: 600;
	padding: 0.95rem 1.15rem;
	list-style: none;
	position: relative;
	padding-right: 2.6rem;
}

.ppra-faq summary::-webkit-details-marker {
	display: none;
}

.ppra-faq summary::after {
	content: "+";
	position: absolute;
	right: 1.1rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--ppra-muted);
}

.ppra-faq details[open] summary::after {
	content: "−";
}

.ppra-faq details > *:not(summary) {
	padding: 0 1.15rem;
}

.ppra-faq details > p:last-child {
	padding-bottom: 1rem;
}

/* ------------------------------------------------------------------
 * Utilities
 * ------------------------------------------------------------------ */

.ppra-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------
 * Phase 2 homepage components
 * ------------------------------------------------------------------ */

/* Trust & affiliation facts band */
.ppra-trust-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.75rem;
	align-items: center;
}

.ppra-trust-fact .l {
	display: block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #A6ABB1;
	margin-bottom: 0.15rem;
}

.ppra-trust-fact .v {
	display: block;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.35;
}

/* Shortcut chips (used on dark facilities section) */
.ppra-chip-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.9rem;
}

.ppra-chip-label {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #A6ABB1;
	margin-right: 0.35rem;
}

a.ppra-chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1.05rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	color: #fff;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}

a.ppra-chip:hover,
a.ppra-chip:focus {
	background: #fff;
	color: var(--ppra-black);
	border-color: #fff;
}

/* Media highlight placeholder tiles */
.ppra-media-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: 1rem;
}

.ppra-media-tile {
	aspect-ratio: 4 / 3;
	background: var(--ppra-light);
	border: 1px dashed #C9CDD2;
	border-radius: var(--ppra-radius-card);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	color: var(--ppra-muted);
	font-size: 0.8125rem;
	text-align: center;
	padding: 1rem;
	margin: 0;
}

.ppra-media-tile svg {
	width: 30px;
	height: 30px;
	stroke: currentColor;
	opacity: 0.65;
}

/* Nexus feed status (honest empty state) */
.ppra-feed-status {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--ppra-muted);
	font-size: 0.8125rem;
	margin-top: 1.2rem;
}

.ppra-feed-status::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #C9CDD2;
}

/* Outline buttons inside the red CTA band */
.ppra-cta-band .wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.8);
}

.ppra-cta-band .wp-block-button.is-style-outline-light .wp-block-button__link:hover,
.ppra-cta-band .wp-block-button.is-style-outline-light .wp-block-button__link:focus {
	background: #fff;
	color: var(--ppra-red-dark);
	border-color: #fff;
}

@media (max-width: 480px) {
	.ppra-brand-tagline {
		display: none;
	}
}

/* Keep the utility bar to a single row on small screens — the IPRF
   affiliation is restated in the trust band directly below the hero. */
@media (max-width: 640px) {
	.ppra-utility-note {
		display: none;
	}

	.ppra-utility-bar .alignwide {
		justify-content: flex-end;
	}
}

/* Print — keep rules and match details legible */
@media print {
	.ppra-utility-bar,
	.ppra-masthead-actions .ppra-join-cta,
	.ppra-footer,
	.ppra-cta-band,
	.ppra-newsletter {
		display: none !important;
	}

	body {
		color: #000;
	}

	a {
		text-decoration: none;
		color: #000;
	}
}

/* ------------------------------------------------------------------
 * Utility-bar search form
 * ------------------------------------------------------------------ */

.ppra-utility-search {
	display: inline-flex;
	align-items: center;
	margin-right: 0.35rem;
}

.ppra-utility-search input[type="search"] {
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--ppra-radius-control) 0 0 var(--ppra-radius-control);
	border-right: 0;
	color: #fff;
	font-size: 0.8125rem;
	padding: 0.35rem 0.6rem;
	width: clamp(7rem, 14vw, 11rem);
	min-height: 30px;
}

.ppra-utility-search input[type="search"]::placeholder {
	color: rgba(255, 255, 255, 0.65);
}

.ppra-utility-search button {
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 0 var(--ppra-radius-control) var(--ppra-radius-control) 0;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.35rem 0.7rem;
	min-height: 30px;
	cursor: pointer;
	position: relative;
}

/* 44px hit area on the compact control (WCAG 2.5.8). */
.ppra-utility-search button::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 44px;
	transform: translateY(-50%);
}

.ppra-utility-search button:hover,
.ppra-utility-search button:focus {
	background: rgba(255, 255, 255, 0.3);
}

@media (max-width: 599.98px) {
	.ppra-utility-search {
		display: none; /* the 404/search templates and nav cover small screens */
	}
}

/* ------------------------------------------------------------------
 * News cards — featured image
 * ------------------------------------------------------------------ */

.ppra-news-card .wp-block-post-featured-image img {
	border-radius: 8px;
	width: 100%;
	height: auto;
}

/* ------------------------------------------------------------------
 * Blog category filter chips (News and Event Blog header)
 * ------------------------------------------------------------------ */

.ppra-blog-filter {
	margin-top: 0.9rem;
}

/* ------------------------------------------------------------------
 * Single post meta row
 * ------------------------------------------------------------------ */

.ppra-post-meta {
	color: var(--ppra-muted);
}

.ppra-post-meta > *:not(:first-child)::before {
	content: "· ";
}

/* ------------------------------------------------------------------
 * PPRA Apps cards
 * ------------------------------------------------------------------ */

.ppra-app-card {
	background: #fff;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-card);
	box-shadow: var(--ppra-shadow-card);
	padding: 1.5rem 1.75rem;
}

.ppra-section-dark .ppra-app-card {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.14);
}

.ppra-app-card-head {
	gap: 0.75rem !important;
}

.ppra-app-badge {
	display: inline-block;
	background: var(--ppra-light);
	border: 1px solid var(--ppra-border);
	border-radius: 999px;
	color: var(--ppra-muted);
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 0.1rem 0.7rem;
}

.ppra-app-badge--soon {
	background: #FDF6EC;
	border-color: #E8D5B5;
	color: #6B3A0B;
}

.ppra-app-leaving {
	color: var(--ppra-muted);
}

.ppra-app-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(20rem, 100%), 1fr));
	gap: 1.25rem;
}

/* ------------------------------------------------------------------
 * Contact form
 * ------------------------------------------------------------------ */

.ppra-contact-form {
	max-width: 40rem;
}

.ppra-contact-form .ppra-field {
	margin-bottom: 1.1rem;
}

.ppra-contact-form label {
	display: block;
	font-weight: 600;
	font-size: 0.9375rem;
	margin-bottom: 0.3rem;
}

.ppra-contact-form input[type="text"],
.ppra-contact-form input[type="email"],
.ppra-contact-form select,
.ppra-contact-form textarea {
	box-sizing: border-box;
	width: 100%;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-control);
	background: #fff;
	color: var(--ppra-black);
	font: inherit;
	font-size: 0.9375rem;
	padding: 0.65rem 0.8rem;
	min-height: 44px;
}

.ppra-contact-form textarea {
	min-height: 10rem;
	resize: vertical;
}

.ppra-contact-form input[aria-invalid="true"],
.ppra-contact-form select[aria-invalid="true"],
.ppra-contact-form textarea[aria-invalid="true"] {
	border-color: #991B1B;
	border-width: 2px;
}

.ppra-contact-form .ppra-required {
	color: var(--ppra-red);
}

.ppra-contact-form .ppra-field-error {
	display: block;
	color: #991B1B;
	font-size: 0.875rem;
	margin-top: 0.3rem;
}

.ppra-contact-form .ppra-field-privacy {
	font-size: 0.875rem;
	color: var(--ppra-muted);
	margin: 1.1rem 0;
}

.ppra-form-notice {
	border-radius: var(--ppra-radius-control);
	padding: 0.9rem 1.1rem;
	margin-bottom: 1.25rem;
	border: 1px solid;
}

.ppra-form-notice p {
	margin: 0 0 0.35rem;
}

.ppra-form-notice p:last-child,
.ppra-form-notice ul:last-child {
	margin-bottom: 0;
}

.ppra-form-notice--success {
	background: #F0FDF4;
	border-color: #BBF7D0;
	color: #14532D;
}

.ppra-form-notice--error {
	background: #FEF2F2;
	border-color: #FECACA;
	color: #7F1D1D;
}

.ppra-form-notice--error a {
	color: inherit;
}

/* Honeypot: moved off-screen, not display:none, so naive bots still fill it. */
.ppra-field-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ------------------------------------------------------------------
 * Pagination (filterable listing blocks)
 * ------------------------------------------------------------------ */

.ppra-pagination {
	margin-top: 2rem;
}

.ppra-pagination ul.page-numbers {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	justify-content: center;
	padding: 0;
	margin: 0;
}

.ppra-pagination ul.page-numbers li {
	margin: 0;
}

.ppra-pagination a.page-numbers,
.ppra-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--ppra-border);
	border-radius: var(--ppra-radius-control);
	color: var(--ppra-black);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.ppra-pagination span.page-numbers.current {
	background: var(--ppra-black);
	border-color: var(--ppra-black);
	color: #fff;
}

.ppra-pagination a.page-numbers:hover,
.ppra-pagination a.page-numbers:focus {
	border-color: var(--ppra-black);
}

.ppra-pagination span.page-numbers.dots {
	border: 0;
}

/* Chip row on light surfaces (News and Event Blog filter): the default
   chip palette is designed for dark sections and fails contrast on the
   light page header. */
.ppra-blog-filter .ppra-chip-label {
	color: var(--ppra-muted);
}

.ppra-blog-filter a.ppra-chip {
	border-color: var(--ppra-border);
	color: var(--ppra-black);
	background: #fff;
}

.ppra-blog-filter a.ppra-chip:hover,
.ppra-blog-filter a.ppra-chip:focus {
	background: var(--ppra-black);
	color: #fff;
	border-color: var(--ppra-black);
}
