/*
 * Learning components — shared styles for the [rcvda_listing] / [rcvda_training]
 * card list and the single course/event renders. Colours reference the base
 * theme's --wp--preset--color--* tokens only (no hex literals); dark mode pivots
 * through html[data-theme="dark"] (theme-owned), never prefers-color-scheme.
 *
 * @package RCVDA_Core
 */

.rcvda-learn {
	margin-block: var(--wp--preset--spacing--40, 1.5rem);
}

.rcvda-learn__heading {
	margin-block: 0 var(--wp--preset--spacing--30, 1rem);
}

.rcvda-learn__intro {
	margin-block: 0 var(--wp--preset--spacing--40, 1.5rem);
}

/* ---- Controls ---------------------------------------------------------- */

.rcvda-learn__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1rem;
	align-items: center;
	justify-content: flex-start;
	/* Bound the search + filter controls in a panel, separated from the results —
	   the canonical directory approach (matches the Fundseekers rfs-search-form).
	   Keyed to theme tokens so it follows dark mode. */
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 14px;
	padding: 1.25rem 1.5rem;
	margin-block-end: var(--wp--preset--spacing--40, 1.5rem);
}

/* Neutralise wpautop artifacts — WordPress auto-inserts empty <p>s and <br>s into
   the shortcode HTML. Left in, an empty paragraph becomes a full-width flex row and
   adds phantom vertical space (it showed up as uneven padding at the bottom of the
   panel once the export row moved inside). The control bar never legitimately
   contains a bare/empty <p> or a <br>, so hide them wherever wpautop drops them. */
.rcvda-learn__controls p:empty,
.rcvda-learn__controls > p,
.rcvda-learn__controls br,
.rcvda-learn__facets br {
	display: none;
}

.rcvda-learn__pills {
	display: flex;
	/* Full-width so the pills always sit on their own line and the facets
	   (dropdowns + search) wrap onto the line below — never inline with the pills. */
	flex: 0 0 100%;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* Canonical filter pill — matches the opportunities (rcvda-vac) filter pill:
   10px rounded rectangle, 1px border, surface fill, brand-filled when active.
   See the Directory control-component styling convergence decision (2026-08-02). */
.rcvda-learn-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: 10px;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	background: var(--wp--preset--color--surface, #a7c1d9);
	color: var(--wp--preset--color--contrast, #0e1f40);
	font-weight: 600;
	text-decoration: none;
	line-height: 1.4;
}

.rcvda-learn-pill:hover,
.rcvda-learn-pill:focus {
	border-color: var(--wp--preset--color--brand, #0e1f40);
	color: var(--wp--preset--color--brand, #0e1f40);
}

.rcvda-learn-pill.is-active {
	background: var(--wp--preset--color--brand, #0e1f40);
	border-color: var(--wp--preset--color--brand, #0e1f40);
	color: var(--wp--preset--color--on-dark, #fff);
}

/* Sits inline with the pills and grows to fill the rest of the control bar; the
   search field then fills the leftover space. Verified in-browser — no overflow
   (the earlier "overflow" was actually a 403 on the stylesheet, not these rules). */
/* flex-basis 40rem is the responsive tipping point: with few/narrow pills (the
   /courses/ and /events/ archives) the facets stay inline on the pills row; with
   the training view's four pills they can't fit, so the whole facets group wraps
   to its own full-width row and the filters lay out inline across it (rather than
   being squeezed beside the pills and stacking). Verified in-browser on both. */
.rcvda-learn__facets {
	display: flex;
	flex: 1 1 40rem;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	min-width: 0;
}

.rcvda-learn__field {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
}

/* The search field takes the leftover width of the facets row so it isn't a
   stranded narrow box with a gap beside it. */
.rcvda-learn__field--search {
	flex: 1 1 12rem;
	min-width: 0;
}

/* Canonical dropdown / search field — 10px, 1px border, ~44px tall, keyed to the
   theme tokens so it follows dark mode (fixes the white-in-dark directory bug). */
.rcvda-learn__topic,
.rcvda-learn__audience,
.rcvda-learn__search {
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 10px;
	/* background-color (not the `background` shorthand) so the select chevron
	   background-image below is not reset. */
	background-color: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--contrast, #0e1f40);
	font-size: 1rem;
	line-height: 1.4;
	box-sizing: border-box;
}

/* Custom dropdown chevron (selects only, not the search input) — the native
   `appearance:auto` arrow sits jammed against the edge; this insets it ~0.9rem
   with clear text padding. Dark stroke here; swapped to light in dark mode below. */
.rcvda-learn__topic,
.rcvda-learn__audience {
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230e1f40' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 16px 16px;
	padding-right: 2.25rem;
}

.rcvda-learn__topic:hover,
.rcvda-learn__audience:hover,
.rcvda-learn__search:hover,
.rcvda-learn__topic:focus,
.rcvda-learn__audience:focus,
.rcvda-learn__search:focus {
	border-color: var(--wp--preset--color--brand, #0e1f40);
}

.rcvda-learn__search {
	width: 100%;
}

/* Themed placeholder — the UA default is a grey that reads as an odd brown on the
   dark navy field. Muted blue in light, light-blue in dark (set below). */
.rcvda-learn__search::placeholder {
	color: var(--wp--preset--color--muted, #033e8c);
	opacity: 1;
}

/* Clear-filters link — a quiet secondary control, canonical across the directories. */
.rcvda-learn__clear {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.6rem 0.9rem;
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn__clear:hover,
.rcvda-learn__clear:focus {
	color: var(--wp--preset--color--brand, #0e1f40);
	text-decoration: underline;
}

/* Canonical secondary button (matches .rcvda-vac-btn). Hidden anyway when JS is on. */
.rcvda-learn__go {
	padding: 0.6rem 1.2rem;
	border: 2px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 10px;
	background: var(--wp--preset--color--surface, #a7c1d9);
	color: var(--wp--preset--color--contrast, #0e1f40);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
}

.rcvda-learn__go:hover,
.rcvda-learn__go:focus {
	border-color: var(--wp--preset--color--brand, #0e1f40);
}

/* When JS is active the auto-filtering makes the button redundant. */
.rcvda-learn.is-js .rcvda-learn__go {
	display: none;
}

/* ---- Card grid --------------------------------------------------------- */

.rcvda-learn-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	/* Match the opportunities (rcvda-vac) card grid: 300px min columns, 1.5rem gap. */
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

.rcvda-learn-card {
	/* Equal heights per row come from the grid's default align-items:stretch — do
	   NOT set height:100% here: on an auto-sized grid row it makes the row track
	   under-compute, so the next row overlaps upward (negative row gap). */
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	/* Canonical card box (matches .rcvda-vac-card): 1.5rem padding, 14px radius,
	   resting shadow. */
	padding: 1.5rem;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 14px;
	background: var(--wp--preset--color--base, #fff);
	box-shadow: 0 1px 3px rgba(16, 34, 75, 0.08);
	/* Match the theme's .rcvda-card hover behaviour (subtle lift + accent border
	   + shadow), so the listing cards read as the same component family. */
	transition: transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease;
}

/* Pin the last child to the bottom so the "View …" CTA aligns across cards
   (matches the theme's `.rcvda-card > :last-child`). NB wpautop wraps the trailing
   bare <a> CTA in a <p>, so target whatever is last — the <p> in the server render,
   or the bare <a> in the JS/REST-refreshed grid — and strip the stray <p>'s own
   block margins so the CTA sits flush against the card padding. */
.rcvda-learn-card > :last-child {
	margin-block-start: auto;
}

.rcvda-learn-card > p:last-child {
	/* Only zero the BOTTOM margin — the top is set to `auto` by the rule above to
	   pin the CTA. (Zeroing both would cancel the pin.) */
	margin-block-end: 0;
}

.rcvda-learn-card:hover,
.rcvda-learn-card:focus-within {
	transform: translateY(-2px);
	border-color: var(--wp--preset--color--brand, #0e1f40);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.10);
}

/* Card hover border pivots to accent (amber) in dark, where brand navy vanishes
   against the dark surface — mirrors the theme's .rcvda-card dark rule. */
html[data-theme="dark"] .rcvda-learn-card:hover,
html[data-theme="dark"] .rcvda-learn-card:focus-within {
	border-color: var(--wp--preset--color--interactive, var(--wp--preset--color--accent, #f29f05));
}

/* Suppress the hover-LIFT under reduced motion (no positional jump), matching
   the theme's .rcvda-card handling for both the media query and the toggle. */
@media (prefers-reduced-motion: reduce) {
	html:not([data-motion="full"]) .rcvda-learn-card:hover,
	html:not([data-motion="full"]) .rcvda-learn-card:focus-within {
		transform: none;
	}
}

html[data-motion="reduced"] .rcvda-learn-card:hover,
html[data-motion="reduced"] .rcvda-learn-card:focus-within {
	transform: none;
}

.rcvda-learn-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.rcvda-learn-card__type {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted, #033e8c);
}

/* Size the type glyph to the label and keep it on the muted type colour. */
.rcvda-learn-card__type .rcvda-learn-ico {
	width: 0.95em;
	height: 0.95em;
	color: currentColor;
}

.rcvda-learn-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.2rem 0.6rem 0.2rem 0.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #a7c1d9);
	color: var(--wp--preset--color--contrast, #0e1f40);
	white-space: nowrap;
}

/* The badge glyph inherits the badge's own text colour (so it reads correctly on
   the amber "today" and grey "past" badges) and sizes to the badge text. */
.rcvda-learn-badge .rcvda-learn-ico {
	width: 0.95em;
	height: 0.95em;
	color: currentColor;
}

.rcvda-learn-badge--upcoming,
.rcvda-learn-badge--ondemand {
	background: var(--wp--preset--color--surface, #a7c1d9);
}

.rcvda-learn-badge--today {
	background: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--brand, #0e1f40);
}

.rcvda-learn-badge--past {
	background: var(--wp--preset--color--divider, #c3d4e2);
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large, 1.125rem);
	line-height: 1.3;
}

.rcvda-learn-card__title a {
	color: var(--wp--preset--color--brand, #0e1f40);
	text-decoration: none;
}

.rcvda-learn-card__title a:hover,
.rcvda-learn-card__title a:focus {
	text-decoration: underline;
}

.rcvda-learn-card__meta {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--contrast, #0e1f40);
}

.rcvda-learn-card__meta-row {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.rcvda-learn-card__chips {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
}

.rcvda-learn-card__chips li {
	font-size: 0.75rem;
	padding: 0.1rem 0.5rem;
	border-radius: 4px;
	background: var(--wp--preset--color--surface, #a7c1d9);
	color: var(--wp--preset--color--contrast, #0e1f40);
}

.rcvda-learn-card__excerpt {
	margin: 0;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.rcvda-learn-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn-card__link:hover,
.rcvda-learn-card__link:focus {
	text-decoration: underline;
}

.rcvda-learn-pager {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	justify-content: center;
	align-items: center;
	margin-block-start: var(--wp--preset--spacing--40, 1.5rem);
}

.rcvda-learn-pager__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	padding: 0.35rem 0.6rem;
	border: 2px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 6px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--muted, #033e8c);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	text-decoration: none;
	line-height: 1.4;
}

a.rcvda-learn-pager__link:hover,
a.rcvda-learn-pager__link:focus {
	border-color: var(--wp--preset--color--interactive, #f29f05);
}

.rcvda-learn-pager__link.is-active {
	background: var(--wp--preset--color--brand, #0e1f40);
	border-color: var(--wp--preset--color--brand, #0e1f40);
	color: var(--wp--preset--color--on-dark, #fff);
	font-weight: 700;
}

.rcvda-learn-pager__gap {
	padding: 0 0.25rem;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn__empty {
	padding: var(--wp--preset--spacing--40, 1.5rem);
	background: var(--wp--preset--color--surface, #a7c1d9);
	border-radius: 8px;
}

.rcvda-learn__credit {
	margin-block-start: var(--wp--preset--spacing--30, 1rem);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn__results.is-loading {
	opacity: 0.5;
	transition: opacity 0.15s ease;
}

/* ---- Icons ------------------------------------------------------------- */

.rcvda-learn-ico {
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	color: var(--wp--preset--color--muted, #033e8c);
}

/* ---- Single course / event -------------------------------------------- */

.rcvda-learn-single {
	margin-block-start: var(--wp--preset--spacing--40, 1.5rem);
}

.rcvda-learn-facts {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
	padding: var(--wp--preset--spacing--30, 1rem);
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 10px;
	background: var(--wp--preset--color--base, #fff);
	display: grid;
	gap: 0.5rem;
}

.rcvda-learn-facts__row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.rcvda-learn-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.6rem 1.2rem;
	background: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--brand, #0e1f40);
	font: inherit;
	font-weight: 700;
	border-radius: 8px;
	text-decoration: none;
	/* Reset native <button> chrome so a button and an <a> with this class match
	   (the agenda toolbar's "Print / Save as PDF" is a <button> and was showing the
	   UA bevel/border). */
	border: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.rcvda-learn-btn:hover,
.rcvda-learn-btn:focus {
	background: var(--wp--preset--color--accent-dark, #c8850a);
}

/* Glyphs inside a button inherit the button's own text colour rather than the
   default muted blue, so the icon matches its label and tracks light/dark (the
   Subscribe RSS glyph was staying dark and hard to read on the button in dark mode). */
.rcvda-learn-btn .rcvda-learn-ico {
	color: currentColor;
}

/* Secondary button — same size/shape as the primary, outlined rather than filled,
   so Download / Printable read as buttons alongside the filled Subscribe. */
.rcvda-learn-btn--secondary {
	background: transparent;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	color: var(--wp--preset--color--contrast, #0e1f40);
}

.rcvda-learn-btn--secondary:hover,
.rcvda-learn-btn--secondary:focus {
	background: transparent;
	border-color: var(--wp--preset--color--brand, #0e1f40);
	color: var(--wp--preset--color--brand, #0e1f40);
}

/* Export actions — a full-width row inside the controls panel, right-aligned under
   the filters (the Fundseekers directory pattern). */
.rcvda-learn__export {
	flex: 0 0 100%;
}

.rcvda-learn__subscribe {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.6rem;
	margin: 0;
}

/* Timeframe (horizon) select — shares the canonical dropdown look (10px, 1px
   border, themed chevron) with the topic/audience selects, keyed to tokens so it
   follows dark mode. */
.rcvda-learn__timeframe {
	padding: 0.55rem 2.25rem 0.55rem 0.75rem;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	border-radius: 10px;
	background-color: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--contrast, #0e1f40);
	font-size: 1rem;
	line-height: 1.4;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230e1f40' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 16px 16px;
}

.rcvda-learn__timeframe:hover,
.rcvda-learn__timeframe:focus {
	border-color: var(--wp--preset--color--brand, #0e1f40);
}

html[data-theme="dark"] .rcvda-learn__timeframe {
	background-color: var(--wp--preset--color--base, #0e1f40);
	border-color: var(--wp--preset--color--divider, #2a4a72);
	color: var(--wp--preset--color--contrast, #e8eef6);
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23e8eef6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
}

/* Calendar layers — a wrapping row of toggle "chips", one per event-bearing
   programme, on their own full-width row under the pills. Each is a checkbox styled
   as a pill (outlined = off, brand-filled with a tick = on), matching the filter
   pills; the native checkbox is visually hidden but stays focusable/operable. */
.rcvda-learn__layers {
	display: flex;
	flex: 0 0 100%;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.rcvda-learn__layers-legend {
	float: left; /* legends don't sit in flex flow reliably; float keeps it inline-left */
	font-weight: 600;
	color: var(--wp--preset--color--muted, #033e8c);
	padding: 0;
	margin: 0 0.25rem 0 0;
}

.rcvda-learn__layer {
	display: inline-flex;
	margin: 0;
	cursor: pointer;
}

.rcvda-learn__layer input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.rcvda-learn__layer span {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem;
	border-radius: 10px;
	border: 1px solid var(--wp--preset--color--divider, #c3d4e2);
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--contrast, #0e1f40);
	font-weight: 600;
	line-height: 1.4;
}

/* Leading tick — reserves its space always (no layout shift), shown only when on. */
.rcvda-learn__layer span::before {
	content: "";
	width: 0.95rem;
	height: 0.95rem;
	flex: 0 0 auto;
	background: no-repeat center / contain;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
	opacity: 0;
}

.rcvda-learn__layer:hover span {
	border-color: var(--wp--preset--color--brand, #0e1f40);
}

.rcvda-learn__layer input:checked ~ span {
	background: var(--wp--preset--color--brand, #0e1f40);
	border-color: var(--wp--preset--color--brand, #0e1f40);
	color: var(--wp--preset--color--on-dark, #fff);
}

.rcvda-learn__layer input:checked ~ span::before {
	opacity: 1;
}

.rcvda-learn__layer input:focus-visible ~ span {
	outline: 2px solid var(--wp--preset--color--brand, #0e1f40);
	outline-offset: 2px;
}

/* Single-event subscribe links ("Add this event to your calendar", "Subscribe to
   …") — inline-flex with a gap so the leading glyph isn't jammed against the text
   (the links are otherwise plain inline, giving the icon zero spacing). */
.rcvda-learn-single__subscribe a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

/* Printable by-month agenda (the printable calendar / ?view=agenda) */
.rcvda-agenda__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
}

.rcvda-agenda__years {
	display: inline-flex;
	gap: 1rem;
}

.rcvda-agenda__years a,
.rcvda-agenda__back {
	color: var(--wp--preset--color--muted, #033e8c);
	text-decoration: none;
}

/* Print-only site logo — the on-screen agenda already sits under the site header,
   which carries the logo, so it's hidden on screen and revealed for print below. */
.rcvda-agenda__logo-wrap {
	display: none;
}

.rcvda-agenda__logo {
	width: auto;
	height: auto;
	max-height: 60px;
}

.rcvda-agenda__brand {
	margin: 0 0 0.15rem;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--brand, #0e1f40);
}

.rcvda-agenda__title {
	margin: 0 0 0.25rem;
}

.rcvda-agenda__ay {
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-agenda__month {
	margin: 0 0 1.25rem;
}

.rcvda-agenda__month-name {
	margin: 0 0 0.4rem;
	padding-bottom: 0.2rem;
	border-bottom: 2px solid var(--wp--preset--color--accent, #f29f05);
}

.rcvda-agenda__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rcvda-agenda__item {
	display: flex;
	gap: 0.75rem;
	padding: 0.3rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border, #e2e4ea);
}

.rcvda-agenda__date {
	flex: 0 0 5.5rem;
	font-weight: 700;
}

.rcvda-agenda__event {
	text-decoration: none;
}

@media print {
	body * {
		visibility: hidden;
	}

	.rcvda-print-root,
	.rcvda-print-root * {
		visibility: visible;
	}

	.rcvda-print-root {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
	}

	/* Anchor the absolute agenda to the true page top. Without this it resolves against
	   a positioned ancestor (main/site wrapper) whose top sits below the — now hidden but
	   still space-reserving — site header and page H1, leaving a large blank gap. */
	html body .wp-site-blocks,
	html body main,
	html body .wp-block-group {
		position: static !important;
	}

	.rcvda-print-noprint {
		display: none !important; /* documented: hide on-screen controls from print */
	}

	/* Reveal the site logo for the printout (hidden on screen). */
	.rcvda-agenda__logo-wrap {
		display: block;
		margin: 0 0 0.75rem;
	}

	.rcvda-agenda__logo {
		max-height: 64px;
	}

	.rcvda-agenda__month {
		break-inside: avoid;
	}

	.rcvda-agenda__event {
		color: #000;
	}
}

.rcvda-learn-single__ext,
.rcvda-learn-single__verified {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted, #033e8c);
}

.rcvda-learn-single__status {
	padding: 0.5rem 0.85rem;
	border-radius: 8px;
	font-weight: 600;
	margin-block-end: var(--wp--preset--spacing--30, 1rem);
}

.rcvda-learn-single__status--past {
	background: var(--wp--preset--color--divider, #c3d4e2);
	color: var(--wp--preset--color--muted, #033e8c);
}

/* ---- Dark mode (theme-owned pivot) ------------------------------------ */

html[data-theme="dark"] .rcvda-learn-pill,
html[data-theme="dark"] .rcvda-learn-card,
html[data-theme="dark"] .rcvda-learn-facts,
html[data-theme="dark"] .rcvda-learn-pager__link,
html[data-theme="dark"] .rcvda-learn__topic,
html[data-theme="dark"] .rcvda-learn__audience,
html[data-theme="dark"] .rcvda-learn__search {
	/* background-color, not the shorthand, so the select chevron image survives. */
	background-color: var(--wp--preset--color--base, #0e1f40);
	color: var(--wp--preset--color--contrast, #e8eef6);
}

/* Dark-mode dropdown chevron — light stroke so it reads on the dark field. */
html[data-theme="dark"] .rcvda-learn__topic,
html[data-theme="dark"] .rcvda-learn__audience {
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23e8eef6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
}

html[data-theme="dark"] .rcvda-learn-card__title a {
	color: var(--wp--preset--color--contrast, #e8eef6);
}

/* Dark-mode control accents (match .rcvda-vac-*): hover/active pivot to amber
   where brand navy vanishes, and the resting card shadow swaps navy→black. */
html[data-theme="dark"] .rcvda-learn-pill:hover,
html[data-theme="dark"] .rcvda-learn-pill:focus,
html[data-theme="dark"] .rcvda-learn__topic:hover,
html[data-theme="dark"] .rcvda-learn__audience:hover,
html[data-theme="dark"] .rcvda-learn__search:hover,
html[data-theme="dark"] .rcvda-learn__go:hover {
	border-color: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--accent, #f29f05);
}

/* Active pill in dark: amber fill, brand-navy text. (The theme's dark
   content-link rule excludes .rcvda-learn-pill, so no specificity fight here.) */
html[data-theme="dark"] .rcvda-learn-pill.is-active {
	background: var(--wp--preset--color--accent, #f29f05);
	border-color: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--brand, #0e1f40);
}

/* Dark mode: calendar-layer chips + the secondary (Download/Printable) buttons —
   off/resting state pivots to the dark field; the checked layer mirrors the active
   pill (amber fill, brand-navy text and tick). */
html[data-theme="dark"] .rcvda-learn__layer span,
html[data-theme="dark"] .rcvda-learn-btn--secondary {
	background-color: var(--wp--preset--color--base, #0e1f40);
	border-color: var(--wp--preset--color--divider, #2a4a72);
	color: var(--wp--preset--color--contrast, #e8eef6);
}

html[data-theme="dark"] .rcvda-learn-btn--secondary:hover,
html[data-theme="dark"] .rcvda-learn-btn--secondary:focus,
html[data-theme="dark"] .rcvda-learn__layer:hover span {
	border-color: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--accent, #f29f05);
}

html[data-theme="dark"] .rcvda-learn__layer input:checked ~ span {
	background-color: var(--wp--preset--color--accent, #f29f05);
	border-color: var(--wp--preset--color--accent, #f29f05);
	color: var(--wp--preset--color--brand, #0e1f40);
}

/* The tick is white by default (for the light-mode navy fill); in dark the checked
   fill is amber, so switch the tick to brand navy. */
html[data-theme="dark"] .rcvda-learn__layer input:checked ~ span::before {
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230e1f40' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
}

html[data-theme="dark"] .rcvda-learn-card {
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.20);
}

/* Dark mode: the muted placeholder / clear-link navy is invisible on the dark
   field — lift to the theme's light-blue so it reads as muted-but-legible. */
html[data-theme="dark"] .rcvda-learn__search::placeholder {
	color: var(--wp--preset--color--brand-light, #6f97c8);
}

html[data-theme="dark"] .rcvda-learn__clear {
	color: var(--wp--preset--color--brand-light, #6f97c8);
}

html[data-theme="dark"] .rcvda-learn__clear:hover,
html[data-theme="dark"] .rcvda-learn__clear:focus {
	color: var(--wp--preset--color--accent, #f29f05);
}
