/**
 * Planning Center Connection — front-end widget styles.
 *
 * Load order (registered by WCPC\PCO\Support\Assets):
 *   design-tokens.css -> components.css -> grid-card-presets.css -> THIS FILE
 *
 * This layer holds widget-specific structural rules (filter bar, calendar
 * month grid, modal, single-event widget panels). Shared components
 * (.wcpc-pill, .wcpc-card, .wcpc-button, .wcpc-section, .wcpc-callout) live
 * in components.css and take precedence via higher selector specificity.
 *
 * All hex/radius values reference design tokens with hex fallbacks so the
 * plugin renders in brand teal whenever the Elementor Kit is in scope.
 *
 * @since 0.20.0 Migrated to token-based color/radius system.
 */

.wcpc-pco-event-grid-wrapper {
	--wcpc-card-gap: var(--wcpc-space-lg, 24px);   /* card spec grid gap (0.42.0) */
}

.wcpc-pco-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

/* Dropdown mode (0.44.0): one WCPC Core filter-bar field in the bare variant —
   filterbar.css owns the control; the base .wcpc-pco-filter-bar flex above
   still applies as an alias, so keep it column-friendly. */
.wcpc-pco-filter-bar--dropdown {
	flex-direction: column;
	align-items: stretch;
}

/* Chip rules are scoped under `.wcpc-pco` (0,2,0) so they beat the
   Elementor Kit's `.elementor-kit-12 button { color: #fff }` rule (0,1,1)
   that would otherwise make our chip text white-on-white. The wrapper
   already carries `.wcpc-pco` (see grid templates); no markup change. */
.wcpc-pco .wcpc-pco-filter-bar__chip {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--pl-border-hairline, rgba(52, 101, 127, 0.12));
	background: var(--pl-surface-card, #ffffff);
	color: var(--pl-text-strong, #1F2933);
	padding: 0.35rem 0.85rem;
	border-radius: var(--pl-radius-pill, 999px);
	font: inherit;
	font-family: var(--pl-font-accent, "Roboto"), sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	cursor: pointer;
	line-height: 1.2;
	transition: background-color var(--pl-transition-fast, 120ms ease-out),
	            color var(--pl-transition-fast, 120ms ease-out),
	            border-color var(--pl-transition-fast, 120ms ease-out);
}

.wcpc-pco .wcpc-pco-filter-bar__chip:hover {
	border-color: var(--pl-color-primary, #34657F);
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco .wcpc-pco-filter-bar__chip:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}

.wcpc-pco .wcpc-pco-filter-bar__chip.is-active,
.wcpc-pco .wcpc-pco-filter-bar__chip[aria-pressed="true"] {
	background: var(--pl-color-primary, #34657F);
	border-color: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #ffffff);
}

/* Calendar filter row sits below the tag row when both are present. */
.wcpc-pco-filter-bar--calendar {
	margin-top: -0.5rem;
}

.wcpc-pco-event-grid {
	display: grid;
	grid-template-columns: repeat(var(--wcpc-columns, 3), minmax(0, 1fr));
	gap: var(--wcpc-card-gap);
}

@media (max-width: 1024px) {
	.wcpc-pco-event-grid {
		grid-template-columns: repeat(min(var(--wcpc-columns, 3), 2), minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.wcpc-pco-event-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Event cards (v0.42.0): calendar grid, event grid and the events archive
   render through the shared WCPC card (WCPC Core card.css / components.css
   .wcpc-card). The legacy .wcpc-pco-event-card__* vocabulary is emitted as
   alias classes only so saved Elementor style controls keep matching; no
   layout rules live here any more. */
.wcpc-pco-event-card.is-hidden {
	display: none !important;
}

.wcpc-pco-event-grid-empty {
	margin: 2rem 0;
	padding: 2rem;
	text-align: center;
	background: rgba(0, 0, 0, 0.03);
	border-radius: var(--pl-radius-lg, 16px);
	font-style: italic;
	opacity: 0.75;
}

/* Single-event widgets */

.wcpc-pco-w-date {
	margin: 0;
}

.wcpc-pco-w-date__more {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.1rem 0.55rem;
	background: rgba(0, 0, 0, 0.08);
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	opacity: 1;
}

.wcpc-pco-w-register {
	margin: 0;
}

.wcpc-pco-w-register__btn {
	display: inline-block;
	text-decoration: none !important;
	font-weight: 600;
	background-color: var(--pl-color-primary, #34657F);
	border: 1px solid var(--pl-color-primary, #34657F);
	transition: background-color 150ms ease, transform 120ms ease;
	cursor: pointer;
}

.wcpc-pco-w-register__btn:hover,
.wcpc-pco-w-register__btn:focus {
	transform: translateY(-1px);
	text-decoration: none !important;
}

.wcpc-pco-w-register__btn--disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.wcpc-pco-w-register__btn--disabled:hover,
.wcpc-pco-w-register__btn--disabled:focus {
	transform: none;
}

.wcpc-pco-w-upcoming__heading,
.wcpc-pco-w-location__heading {
	margin: 0 0 0.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wcpc-pco-w-upcoming__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcpc-pco-w-upcoming__item {
	padding: 0.45rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	line-height: 1.4;
}

.wcpc-pco-w-upcoming__item:last-child {
	border-bottom: none;
}

.wcpc-pco-w-upcoming__date {
	display: block;
	font-weight: 600;
}

.wcpc-pco-w-upcoming__time {
	display: block;
	font-size: 0.875rem;
	opacity: 0.7;
}

.wcpc-pco-w-upcoming__date--inline {
	font-weight: 600;
}

.wcpc-pco-w-upcoming__date--inline .wcpc-pco-w-upcoming__time-text {
	font-weight: 400;
	opacity: 0.85;
}

.wcpc-pco-w-upcoming__sep {
	white-space: pre;
}

.wcpc-pco-w-past__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcpc-pco-w-past__item {
	padding: 0.45rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	line-height: 1.4;
}

.wcpc-pco-w-past__item:last-child {
	border-bottom: none;
}

.wcpc-pco-w-past__item--extra {
	display: none;
}

.wcpc-pco-w-past.is-expanded .wcpc-pco-w-past__item--extra {
	display: block;
}

.wcpc-pco-w-past__date {
	display: block;
	font-weight: 600;
}

.wcpc-pco-w-past__time {
	display: block;
	font-size: 0.875rem;
	opacity: 0.7;
}

.wcpc-pco-w-past__date--inline {
	font-weight: 600;
}

.wcpc-pco-w-past__date--inline .wcpc-pco-w-past__time-text {
	font-weight: 400;
	opacity: 0.85;
}

.wcpc-pco-w-past__sep {
	white-space: pre;
}

/* Doubled class: outranks the Elementor Kit's `.elementor-kit-N button` (PC-16). */
.wcpc-pco-w-past__show-all.wcpc-pco-w-past__show-all {
	margin-top: 0.75rem;
	color: inherit;
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: var(--pl-radius-pill, 999px);
	padding: 0.35rem 0.85rem;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
	transition: background-color 120ms ease;
}

.wcpc-pco-w-past__show-all:hover,
.wcpc-pco-w-past__show-all:focus {
	background: rgba(0, 0, 0, 0.06);
}

.wcpc-pco-w-cats__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcpc-pco-w-cats__chip {
	display: inline-block;
	padding: 0.25rem 0.85rem;
	background: rgba(0, 0, 0, 0.06);
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.8rem;
	line-height: 1.5;
	text-decoration: none !important;
}

.wcpc-pco-w-cats__chip:hover,
.wcpc-pco-w-cats__chip:focus {
	background: rgba(0, 0, 0, 0.1);
}

.wcpc-pco-w-location__body p {
	margin: 0;
}

/* Group Directory — card title casing (v0.22.3, kept for the shared card):
   the Kit's h-tag text-transform must not reach card titles. */
.wcpc-pco .wcpc-pco-group-card .wcpc-card__title,
.wcpc-pco .wcpc-pco-group-card .wcpc-pco-group-card__title {
	text-transform: none;
	letter-spacing: 0;
}

/* 0.99.0 — row cards: names wrap to two lines instead of "Sew Busy with B…",
   and a long "Led by …" chip wraps inside the card rather than running off
   its edge. */
.wcpc-pco-group-card.wcpc-card--row .wcpc-card__title {
	-webkit-line-clamp: 2;
	line-clamp: 2;
}
.wcpc-pco-group-card .wcpc-card__pills {
	flex-wrap: wrap;
	min-width: 0;
}
.wcpc-pco-group-card .wcpc-pill {
	white-space: normal;
	max-width: 100%;
}

/* Status pill at the end of the title line ("inline with title"). */
.wcpc-pco .wcpc-pco-group-card__title .wcpc-pill {
	vertical-align: middle;
	margin-left: 2px;
	font-size: var(--pl-font-size-micro, 12px);
	line-height: 1.4;
	position: relative;
	z-index: 2;
}

/* Group Directory — public filter bar (v0.21.0 – 0.43.0): retired in 0.44.0.
   The bar is WCPC Core's shared filter bar (filterbar.css owns the card, the
   1/N grid, the popover, chips and the counter). `.wcpc-pco-group-filter-bar`
   and `__field` / `__search` survive only as alias classes on Core's markup
   so per-widget colour overrides keep matching. */

/* Load-more row sits below the grid and centers the button. */
.wcpc-pco .wcpc-pco-group-load-more-row {
	display: flex;
	justify-content: center;
	margin-top: var(--pl-space-5, 20px);
}

/* Card hidden by load-more cap (collapsed) or by an active filter
   (is-filtered-out). Both use display: none — JS clears the relevant
   class to reveal cards. */
.wcpc-pco .wcpc-pco-group-card.is-collapsed,
.wcpc-pco .wcpc-pco-group-card.is-filtered-out {
	display: none !important;
}

/* Group Directory */

.wcpc-pco-group-grid {
	display: grid;
	grid-template-columns: repeat(var(--wcpc-columns, 3), minmax(0, 1fr));
	gap: var(--wcpc-card-gap, var(--pl-space-5, 24px));
}

@media (max-width: 1024px) {
	.wcpc-pco-group-grid {
		grid-template-columns: repeat(min(var(--wcpc-columns, 3), 2), minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.wcpc-pco-group-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Group cards (v0.42.0): the directory renders through the shared WCPC card
   (tile, or the Row variant for the directory list). Legacy
   .wcpc-pco-group-card__* classes are emitted as aliases only. */
/* Row layout honours the widget's Columns setting (v0.45.0). Rows need more
   horizontal room than tiles, so anything above one column collapses to a
   single column below 1024px rather than at the usual 640px breakpoint. */
.wcpc-pco-group-grid--rows {
	grid-template-columns: repeat(var(--wcpc-columns, 1), minmax(0, 1fr));
	row-gap: var(--pl-space-2, 8px);
	column-gap: var(--wcpc-card-gap, var(--pl-space-5, 24px));
}

@media (max-width: 1024px) {
	.wcpc-pco-group-grid--rows {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Single-group widgets */

.wcpc-pco-gw-schedule-heading {
	margin: 0 0 0.4rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wcpc-pco-gw-schedule {
	margin: 0;
}

.wcpc-pco-gw-join__btn {
	display: inline-block;
	text-decoration: none !important;
	font-weight: 600;
	background-color: var(--pl-color-primary, #34657F);
	border: 1px solid var(--pl-color-primary, #34657F);
	transition: background-color 150ms ease, transform 120ms ease;
	cursor: pointer;
}

.wcpc-pco-gw-join__btn:hover,
.wcpc-pco-gw-join__btn:focus {
	transform: translateY(-1px);
	text-decoration: none !important;
}

.wcpc-pco-gw-join__btn--disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.wcpc-pco-gw-join__btn--disabled:hover,
.wcpc-pco-gw-join__btn--disabled:focus {
	transform: none;
}

.wcpc-pco-gw-meetings__heading {
	margin: 0 0 0.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

/* PCO Group: Location reuses the shared .wcpc-pco-w-location__* selectors
   from the Events Location widget — see that block above. */

.wcpc-pco-gw-meetings__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcpc-pco-gw-meetings__item {
	padding: 0.4rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.wcpc-pco-gw-meetings__item:last-child {
	border-bottom: none;
}

.wcpc-pco-gw-meetings__item.is-canceled {
	opacity: 0.5;
	text-decoration: line-through;
}

.wcpc-pco-gw-meetings__date {
	display: block;
}

.wcpc-pco-gw-meetings__time {
	display: block;
	font-size: 0.875rem;
	opacity: 0.7;
}

.wcpc-pco-gw-meetings__canceled {
	display: inline-block;
	margin-left: 0.35rem;
	font-size: 0.7rem;
	color: var(--pl-color-error-text, #C53654);
	font-weight: 600;
}

.wcpc-pco-gw-badge {
	display: inline-block;
	padding: 0.1rem 0.6rem;
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.wcpc-pco-gw-leaders__heading {
	margin: 0 0 0.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wcpc-pco-gw-leaders__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.wcpc-pco-gw-leaders__item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

/* Width/height are driven by the widget's "Avatar size" slider; border-radius
   is set inline by the template based on the chosen shape. The defaults here
   only apply when no Elementor selector is present (e.g. widget hasn't been
   re-saved). */
.wcpc-pco-gw-leaders__avatar {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	object-fit: cover;
	background: rgba(0, 0, 0, 0.08);
}

.wcpc-pco-gw-leaders__avatar--placeholder {
	display: inline-block;
}

/* Monogram fallback (v0.45.0) — drawn locally when a leader has no photo, so
   Planning Center's generated two-letter initials image (which discloses the
   surname) doesn't have to be shown. The letter scales off the same custom
   property the Avatar size slider writes. */
.wcpc-pco-gw-leaders__avatar--monogram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--wcpc-color-tint-blue, rgba(0, 59, 92, 0.08));
	color: var(--wcpc-color-primary, #003b5c);
	font-size: calc(var(--wcpc-pco-leader-avatar, 40px) * 0.42);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	user-select: none;
}

/* Contact-the-leaders form (v0.46.0). The leaders' addresses are resolved
   server-side at send time, so nothing here carries a mailto: or an address. */
.wcpc-pco-gw-contact__form {
	display: flex;
	flex-direction: column;
	gap: var(--pl-space-3, 12px);
	margin: 0;
}

.wcpc-pco-gw-contact__intro {
	margin: 0 0 var(--pl-space-3, 12px);
}

.wcpc-pco-gw-contact__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.wcpc-pco-gw-contact__label {
	font-size: 14px;
	font-weight: 600;
}

.wcpc-pco-gw-contact__form input[type="text"],
.wcpc-pco-gw-contact__form input[type="email"],
.wcpc-pco-gw-contact__form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--wcpc-color-border, rgba(0, 0, 0, 0.15));
	border-radius: var(--wcpc-radius-md, 8px);
	font: inherit;
	background: #fff;
}

.wcpc-pco-gw-contact__form textarea {
	resize: vertical;
	min-height: 120px;
}

.wcpc-pco-gw-contact__actions {
	margin: 0;
}

/* Honeypot — off-screen rather than display:none, which some bots skip. */
.wcpc-pco-gw-contact__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.wcpc-pco-gw-contact__privacy {
	margin: 0;
	font-size: 13px;
	opacity: 0.75;
}

.wcpc-pco-gw-contact__notice {
	margin: 0 0 var(--pl-space-3, 12px);
	padding: 12px 14px;
	border-radius: var(--wcpc-radius-md, 8px);
	border: 1px solid transparent;
}

.wcpc-pco-gw-contact__notice--success {
	background: var(--wcpc-color-tint-green, rgba(30, 120, 60, 0.1));
	border-color: rgba(30, 120, 60, 0.3);
}

.wcpc-pco-gw-contact__notice--error {
	background: var(--wcpc-color-tint-amber, rgba(180, 100, 0, 0.1));
	border-color: rgba(180, 100, 0, 0.3);
}

/* Calendar List widget */

.wcpc-pco-cal-list__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.wcpc-pco-cal-list__link {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	text-decoration: none !important;
	color: inherit;
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.wcpc-pco-cal-list__date {
	flex: 0 0 auto;
	width: 3rem;
	text-align: center;
	padding: 0.25rem 0;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: var(--pl-radius-md, 6px);
	line-height: 1.1;
}

.wcpc-pco-cal-list__date-top {
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wcpc-pco-cal-list__date-day {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
}

.wcpc-pco-cal-list__body {
	flex: 1;
	min-width: 0;
}

.wcpc-pco-cal-list__title {
	margin: 0 0 0.15rem;
	font-size: 1rem;
	font-weight: 600;
}

.wcpc-pco-cal-list__meta {
	margin: 0;
	font-size: 0.85rem;
	opacity: 0.8;
}

.wcpc-pco-cal-list__location {
	opacity: 0.7;
}

/* Calendar Month widget */

.wcpc-pco-cal-month {
	font-size: 0.9rem;
}

.wcpc-pco-cal-month__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 0 0.85rem;
}

.wcpc-pco-cal-month__title {
	margin: 0;
	font-size: clamp( 1.1rem, 2vw, 1.4rem );
	font-weight: 700;
}

.wcpc-pco-cal-month__nav a {
	display: inline-block;
	padding: 0.3rem 0.7rem;
	font-size: 1.1rem;
	text-decoration: none !important;
	border-radius: var(--pl-radius-md, 6px);
}

.wcpc-pco-cal-month__nav a:hover,
.wcpc-pco-cal-month__nav a:focus {
	background: rgba(0, 0, 0, 0.05);
}

.wcpc-pco-cal-month__weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 1px;
	background: rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-bottom: none;
	border-radius: var(--pl-radius-lg, 16px) var(--pl-radius-lg, 16px) 0 0;
	overflow: hidden;
}

.wcpc-pco-cal-month__weekday {
	background: var(--pl-surface-card, #ffffff);
	padding: 0.4rem 0.5rem;
	text-align: center;
	font-weight: 700;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wcpc-pco-cal-month__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 1px;
	background: rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 0 0 var(--pl-radius-lg, 16px) var(--pl-radius-lg, 16px);
	overflow: hidden;
}

.wcpc-pco-cal-month__day {
	background: var(--pl-surface-card, #ffffff);
	min-height: 5.5rem;
	padding: 0.35rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.wcpc-pco-cal-month__day--out {
	background: rgba(0, 0, 0, 0.02);
	opacity: 0.6;
}

.wcpc-pco-cal-month__day-num {
	align-self: flex-end;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 0.1rem 0.35rem;
	border-radius: var(--pl-radius-pill, 999px);
	min-width: 1.5rem;
	text-align: center;
}

.wcpc-pco-cal-month__today .wcpc-pco-cal-month__day-num {
	background-color: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #ffffff);
}

.wcpc-pco-cal-month__events {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	overflow: hidden;
}

.wcpc-pco-cal-month__event {
	display: block;
	padding: 2px 6px;
	border-radius: 4px;
	background-color: var(--pl-color-primary, #34657F);
	font-size: 0.75rem;
	line-height: 1.25;
	color: var(--pl-text-on-primary, #ffffff) !important;
	text-decoration: none !important;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.wcpc-pco-cal-month__event:hover,
.wcpc-pco-cal-month__event:focus {
	opacity: 0.9;
}

@media (max-width: 640px) {
	.wcpc-pco-cal-month__day {
		min-height: 3.5rem;
	}
	.wcpc-pco-cal-month__event {
		font-size: 0.65rem;
	}
}

.wcpc-pco-w-location__name {
	font-weight: 600;
}

.wcpc-pco-w-location__address,
.wcpc-pco-w-location__subpremise {
	opacity: 0.85;
}

.wcpc-pco-w-location__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.wcpc-pco-w-location__btn {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	border: 1px solid currentColor;
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.85rem;
	text-decoration: none !important;
	transition: background-color 120ms ease;
}

.wcpc-pco-w-location__btn:hover,
.wcpc-pco-w-location__btn:focus {
	background: rgba(0, 0, 0, 0.06);
}

/* =========================================================================
 * Calendar single-event widgets
 * ========================================================================= */

/*
 * Line icons beside a label or a value (v0.37.1).
 *
 * Deliberately UNSCOPED. The Next Date widget's root is `.wcpc-pco-w-next`
 * with no `.wcpc-pco` wrapper — unlike Location or Register Button — so the
 * design-system layer in components.css (every rule of which is scoped under
 * `.wcpc-pco`) never reaches inside it. v0.37.0 put these rules there and the
 * icons rendered at their intrinsic 244px. This file is the widget layer and
 * already styles `.wcpc-pco-w-next__*` unscoped; the icons belong with it.
 *
 * `labelrow` makes the host a flex row so the glyph sits on the text's centre
 * line rather than its baseline, which reads badly against uppercase
 * micro-labels. The icon is sized in em so it tracks whatever it labels and
 * inherits currentColor.
 */
.wcpc-pco-labelrow {
	display: flex;
	align-items: center;
	gap: 0.4em;
}

.wcpc-pco-icon {
	width: 1em;
	height: 1em;
	flex: 0 0 auto;
}

/*
 * An anchor host stays inline — "Add to your calendar" sits under a
 * full-width button and shouldn't stretch to match it. Scoped and doubled to
 * outrank the widget's own `.wcpc-pco .wcpc-pco-w-cal-register__ics
 * { display: block }`, which otherwise wins on specificity and leaves the
 * flex gap inert (the glyph ends up touching the text).
 */
.wcpc-pco a.wcpc-pco-labelrow,
a.wcpc-pco-labelrow.wcpc-pco-labelrow {
	display: inline-flex;
}

/* Next Date */
.wcpc-pco-w-next__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-next__body {
	line-height: 1.5;
}

.wcpc-pco-w-next__date {
	margin: 0;
	font-weight: 600;
	font-size: 1.15rem;
}

.wcpc-pco-w-next__time,
.wcpc-pco-w-next__location {
	margin: 0.15rem 0 0;
	opacity: 0.85;
}

/* Inline layout — the NextInstance `layout: inline` control has emitted
   `--inline` since it was added, but no rule ever backed the modifier, so the
   date and location always stacked. (v0.33.0) */
.wcpc-pco-w-next--inline .wcpc-pco-w-next__body {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 1.25rem;
}

.wcpc-pco-w-next--inline .wcpc-pco-w-next__date,
.wcpc-pco-w-next--inline .wcpc-pco-w-next__time,
.wcpc-pco-w-next--inline .wcpc-pco-w-next__location {
	margin: 0;
}

/* Upcoming Instances */
.wcpc-pco-w-cal-upcoming__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-cal-upcoming__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.wcpc-pco-w-cal-upcoming__item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	line-height: 1.4;
}

.wcpc-pco-w-cal-upcoming__item:last-child {
	border-bottom: 0;
}

.wcpc-pco-w-cal-upcoming__link {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.wcpc-pco-w-cal-upcoming__link:hover,
.wcpc-pco-w-cal-upcoming__link:focus {
	text-decoration: underline;
}

.wcpc-pco-w-cal-upcoming__date {
	font-weight: 600;
	min-width: 10ch;
}

.wcpc-pco-w-cal-upcoming__time {
	opacity: 0.85;
}

.wcpc-pco-w-cal-upcoming__location {
	opacity: 0.7;
	flex-basis: 100%;
	font-size: 0.9em;
}

/*
 * Schedule Window (0.91.0) — the dates a named recurring event has inside
 * a yearly window (the Sunday after Christmas). Reuses the Upcoming Dates
 * row styles; only its own note/empty/event-name spans are new.
 */
.wcpc-pco-w-cal-window__note,
.wcpc-pco-w-cal-window__empty {
	margin: 0 0 0.75rem;
	line-height: 1.5;
	opacity: 0.85;
}

.wcpc-pco-w-cal-window__event {
	flex-basis: 100%;
	font-weight: 600;
}

.wcpc-pco-w-cal-window__notice {
	margin: 0;
	padding: 0.5rem 0.75rem;
	border: 1px dashed currentColor;
	border-radius: 6px;
	font-size: 0.85em;
	opacity: 0.8;
}

/* Calendar Past Dates — visually mirrors Upcoming Dates for parity. */
.wcpc-pco-w-cal-past__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-cal-past__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.wcpc-pco-w-cal-past__item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	line-height: 1.4;
}

.wcpc-pco-w-cal-past__item:last-child {
	border-bottom: 0;
}

.wcpc-pco-w-cal-past__date {
	font-weight: 600;
	min-width: 10ch;
}

.wcpc-pco-w-cal-past__time {
	opacity: 0.85;
}

.wcpc-pco-w-cal-past__date--inline {
	display: inline;
	min-width: 0;
	font-weight: 600;
}

.wcpc-pco-w-cal-past__date--inline .wcpc-pco-w-cal-past__time-text {
	font-weight: 400;
	opacity: 0.85;
}

.wcpc-pco-w-cal-past__sep {
	white-space: pre;
}

.wcpc-pco-w-cal-past__item--extra {
	display: none;
}

.wcpc-pco-w-cal-past.is-expanded .wcpc-pco-w-cal-past__item--extra {
	display: flex;
}

/* Doubled class: outranks the Elementor Kit's `.elementor-kit-N button` (PC-16). */
.wcpc-pco-w-cal-past__show-all.wcpc-pco-w-cal-past__show-all {
	margin-top: 0.75rem;
	color: inherit;
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: var(--pl-radius-pill, 999px);
	padding: 0.35rem 0.85rem;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
	transition: background-color 120ms ease;
}

.wcpc-pco-w-cal-past__show-all:hover,
.wcpc-pco-w-cal-past__show-all:focus {
	background: rgba(0, 0, 0, 0.06);
}

.wcpc-pco-w-cal-past--inline .wcpc-pco-w-cal-past__item,
.wcpc-pco-w-cal-past--comma .wcpc-pco-w-cal-past__item {
	flex-wrap: nowrap;
	align-items: baseline;
}

/* Inline layouts collapse the date+separator+time into one flowing line. */
.wcpc-pco-w-cal-upcoming__date--inline {
	display: inline;
	min-width: 0;
	font-weight: 600;
}

.wcpc-pco-w-cal-upcoming__date--inline .wcpc-pco-w-cal-upcoming__time-text {
	font-weight: 400;
	opacity: 0.85;
}

.wcpc-pco-w-cal-upcoming__sep {
	white-space: pre;
}

/*
 * Per-date sign-up link (v0.54.0) — a sibling series member's own
 * registration URL, rendered at the row's trailing edge. Sits outside the
 * optional Church Center row link so anchors never nest. Doubled class +
 * role="link" so the Elementor kit's global anchor repaint can't restyle it.
 */
.wcpc-pco-w-cal-upcoming__signup.wcpc-pco-w-cal-upcoming__signup {
	margin-left: auto;
	flex: 0 0 auto;
	font-weight: 600;
	font-size: 0.9em;
	color: var(--pl-color-primary, var(--wcpc-accent, #34657F));
	text-decoration: underline;
	text-underline-offset: 0.15em;
	white-space: nowrap;
}

.wcpc-pco-w-cal-upcoming__signup.wcpc-pco-w-cal-upcoming__signup:hover,
.wcpc-pco-w-cal-upcoming__signup.wcpc-pco-w-cal-upcoming__signup:focus {
	text-decoration-thickness: 2px;
}

/* Stacked layout wraps; keep the link on the date line rather than under the location. */
.wcpc-pco-w-cal-upcoming--stacked .wcpc-pco-w-cal-upcoming__signup {
	order: 1;
}

.wcpc-pco-w-cal-upcoming--stacked .wcpc-pco-w-cal-upcoming__location {
	order: 2;
}

/* "Extras" hidden until Show All is clicked. */
.wcpc-pco-w-cal-upcoming__item--extra {
	display: none;
}

.wcpc-pco-w-cal-upcoming.is-expanded .wcpc-pco-w-cal-upcoming__item--extra {
	display: flex;
}

/* Doubled class: outranks the Elementor Kit's `.elementor-kit-N button` (PC-16). */
.wcpc-pco-w-cal-upcoming__show-all.wcpc-pco-w-cal-upcoming__show-all {
	margin-top: 0.75rem;
	color: inherit;
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: var(--pl-radius-pill, 999px);
	padding: 0.35rem 0.85rem;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
	transition: background-color 120ms ease;
}

.wcpc-pco-w-cal-upcoming__show-all:hover,
.wcpc-pco-w-cal-upcoming__show-all:focus {
	background: rgba(0, 0, 0, 0.06);
}

/* "Inline" layout — the time is a span next to the date instead of below. */
.wcpc-pco-w-cal-upcoming--inline .wcpc-pco-w-cal-upcoming__item,
.wcpc-pco-w-cal-upcoming--comma .wcpc-pco-w-cal-upcoming__item {
	flex-wrap: nowrap;
	align-items: baseline;
}

/* Location */
.wcpc-pco-w-cal-location__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-cal-location__body {
	line-height: 1.5;
}

.wcpc-pco-w-cal-location__row + .wcpc-pco-w-cal-location__row {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.wcpc-pco-w-cal-location__text {
	margin: 0;
}

.wcpc-pco-w-cal-location__btn {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.35rem 0.85rem;
	border: 1px solid currentColor;
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.85rem;
	text-decoration: none !important;
	transition: background-color 120ms ease;
}

.wcpc-pco-w-cal-location__btn:hover,
.wcpc-pco-w-cal-location__btn:focus {
	background: rgba(0, 0, 0, 0.06);
}

/* Register button */
.wcpc-pco-w-cal-register__btn {
	display: inline-block;
	text-decoration: none !important;
	line-height: 1.2;
	background-color: var(--pl-color-primary, #34657F);
	border: 1px solid var(--pl-color-primary, #34657F);
	transition: filter 120ms ease;
}

.wcpc-pco-w-cal-register__btn:hover,
.wcpc-pco-w-cal-register__btn:focus {
	filter: brightness(0.92);
}

/* Registration status badge — sits next to / under the register button. */
.wcpc-pco-w-cal-register {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

.wcpc-pco-w-cal-register__badge {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	white-space: nowrap;
	line-height: 1.2;
}

.wcpc-pco-w-cal-register__badge--open {
	color: var(--pl-color-success-text, #356E45);
	background: rgba(75, 149, 96, 0.12);
}

.wcpc-pco-w-cal-register__badge--upcoming {
	color: var(--pl-color-warn-text, #8A5A12);
	background: rgba(255, 181, 73, 0.18);
}

.wcpc-pco-w-cal-register__badge--closed {
	color: var(--pl-text-strong, #1F2933);
	background: var(--pl-surface-section, #E5E9F3);
}

/* Summary */
.wcpc-pco-w-cal-summary {
	margin: 0;
	line-height: 1.5;
}

/* Summary heading (optional; empty by default) */
.wcpc-pco-w-cal-summary__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

/* Tags */
.wcpc-pco-w-cal-tags__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-cal-tags__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.wcpc-pco-w-cal-tags__chip {
	display: inline-block;
	padding: 0.25rem 0.85rem;
	background: rgba(0, 0, 0, 0.06);
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.85rem;
	line-height: 1.4;
	text-decoration: none !important;
}

/* Rooms — mirrors the tags chip styling so admins style both consistently
   without flipping between widgets. The campus span is a muted suffix
   "Sanctuary Walnut Creek" with a thin space + reduced opacity. */
.wcpc-pco-w-cal-rooms__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}

.wcpc-pco-w-cal-rooms__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.wcpc-pco-w-cal-rooms__chip {
	display: inline-flex;
	align-items: baseline;
	gap: 0.4em;
	padding: 0.25rem 0.85rem;
	background: rgba(0, 0, 0, 0.06);
	border-radius: var(--pl-radius-pill, 999px);
	font-size: 0.85rem;
	line-height: 1.4;
	text-decoration: none !important;
}

.wcpc-pco-w-cal-rooms__chip:hover,
.wcpc-pco-w-cal-rooms__chip:focus {
	filter: brightness(0.95);
}

.wcpc-pco-w-cal-rooms__campus {
	font-size: 0.78em;
	opacity: 0.7;
}

/* =========================================================================
 * Calendar popup modal
 * ========================================================================= */
html.wcpc-pco-cal-modal-lock,
html.wcpc-pco-cal-modal-lock body {
	overflow: hidden;
}

.wcpc-pco-cal-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	background: rgba(17, 24, 39, 0.55);
	padding: 1.5rem;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.wcpc-pco-cal-modal-overlay.is-open {
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.wcpc-pco-cal-modal-dialog {
	position: relative;
	width: 100%;
	max-width: 840px;
	margin: 3rem auto;
	background: var(--pl-surface-card, #ffffff);
	color: var(--pl-text-strong, #1F2933);
	border-radius: var(--pl-radius-lg, 16px);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35);
	outline: none;
	overflow: hidden;
	animation: wcpc-pco-cal-modal-in 160ms ease-out;
}

@keyframes wcpc-pco-cal-modal-in {
	from { opacity: 0; transform: translateY(8px) scale(0.985); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

.wcpc-pco-cal-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.wcpc-pco-cal-modal-title {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.3;
}

.wcpc-pco-cal-modal-close {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	border-radius: var(--pl-radius-md, 6px);
	transition: background-color 120ms ease;
}

.wcpc-pco-cal-modal-close:hover,
.wcpc-pco-cal-modal-close:focus {
	background: rgba(0, 0, 0, 0.06);
	outline: none;
}

.wcpc-pco-cal-modal-body {
	padding: 1.25rem;
	max-height: calc(100vh - 12rem);
	overflow-y: auto;
}

.wcpc-pco-cal-modal-loading,
.wcpc-pco-cal-modal-error {
	margin: 2rem 0;
	text-align: center;
	opacity: 0.7;
}

/* Default-layout styles (only kicks in when no Theme Builder template) */
.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__title {
	margin: 0 0 0.75rem;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__summary {
	margin: 0 0 1rem;
	opacity: 0.85;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__image img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--pl-radius-md, 6px);
	margin-bottom: 1rem;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__section {
	margin: 1rem 0;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__dates {
	list-style: none;
	padding: 0;
	margin: 0;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__dates li {
	padding: 0.35rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__loc {
	opacity: 0.7;
}

.wcpc-pco-cal-modal__default .wcpc-pco-cal-modal__register {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.65rem 1.25rem;
	background: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #ffffff) !important;
	border-radius: var(--pl-radius-md, 10px);
	text-decoration: none;
}

@media (max-width: 640px) {
	.wcpc-pco-cal-modal-overlay {
		padding: 0;
	}
	.wcpc-pco-cal-modal-dialog {
		margin: 0;
		border-radius: 0;
		min-height: 100vh;
		max-width: none;
	}
	.wcpc-pco-cal-modal-body {
		max-height: calc(100vh - 4rem);
	}
}


/* ============================================================
   Ministry up-next strip (wcpc_pco_ministry_upnext) — v0.26.0
   Markup contract: design brief §1d (Option B with thumbnails).
   The site stylesheet may also carry these classes; this scoped
   copy keeps the widget correct on pages without it.

   Radii use the WCPC scale (6 / 10 / 16px) via the --pl-radius-*
   tokens, which design-tokens.css sets to that scale since
   v0.26.1 (no :root override needed).
   ============================================================ */

.wcpc-pco-upnext {
	font-family: var(--pl-font-body, "Open Sans", sans-serif);
}

.wcpc-pco-upnext .upnext__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pl-space-4, 16px);
	margin-bottom: var(--pl-space-4, 16px);
}

.wcpc-pco-upnext .eyebrow {
	margin: 0;
	font-family: var(--pl-font-eyebrow, "Open Sans Condensed", sans-serif);
	font-weight: 700;
	font-size: var(--pl-font-size-small, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-upnext .upnext {
	display: flex;
	flex-direction: column;
	gap: var(--pl-space-3, 12px);
}

.wcpc-pco-upnext .upnext__row {
	display: flex;
	align-items: center;
	gap: var(--pl-space-4, 16px);
	padding: var(--pl-space-4, 16px);
	background: var(--pl-surface-card, #fff);
	border: 1px solid var(--pl-border-hairline, rgba(52, 101, 127, 0.12));
	border-radius: var(--pl-radius-md, 10px);
	text-decoration: none;
	color: inherit;
	transition: border-color var(--pl-transition-base, 150ms ease-out),
	            box-shadow var(--pl-transition-base, 150ms ease-out);
}

/* Hover: border to #B8C5CF + elevation 1. No lift, no scale. */
.wcpc-pco-upnext .upnext__row:hover {
	border-color: #B8C5CF;
	box-shadow: var(--pl-shadow-sm, 0 1px 2px rgba(0, 59, 92, 0.06), 0 1px 3px rgba(0, 59, 92, 0.08));
}

.wcpc-pco-upnext .upnext__row:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}

.wcpc-pco-upnext .upnext__thumb {
	flex: 0 0 auto;
	width: 96px;
	aspect-ratio: 4 / 3;
	border-radius: var(--pl-radius-sm, 6px);
	overflow: hidden;
}

.wcpc-pco-upnext .upnext__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Missing-image fallback: branded emblem tile — sky tint (#A4C8E1 @ 25%)
   with the mark in primary slate. Looks intentional, never broken. */
.wcpc-pco-upnext .upnext__thumb--emblem {
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(164, 200, 225, 0.25);
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-upnext .upnext__date {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 44px;
	line-height: 1.1;
}

.wcpc-pco-upnext .upnext__date .m {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-upnext .upnext__date .d {
	font-size: 22px;
	font-weight: 700;
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-upnext .upnext__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--pl-space-1, 4px);
}

.wcpc-pco-upnext .upnext__title {
	font-weight: 600;
	font-size: var(--pl-font-size-h6, 1rem);
	color: var(--pl-card-title-color, #003B5C);
	overflow-wrap: break-word;
}

.wcpc-pco-upnext .upnext__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-1, 4px) var(--pl-space-4, 16px);
	font-size: var(--pl-font-size-micro, 0.75rem);
	color: var(--pl-text-muted, #5B6B78);
}

.wcpc-pco-upnext .upnext__meta > span {
	display: inline-flex;
	align-items: center;
	gap: var(--pl-space-1, 4px);
	white-space: nowrap;
}

.wcpc-pco-upnext .upnext__meta svg {
	flex: 0 0 auto;
}

.wcpc-pco-upnext .upnext__go {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: var(--pl-space-1, 4px);
	font-weight: 600;
	font-size: var(--pl-font-size-small, 0.875rem);
	color: var(--pl-color-primary, #34657F);
}

/* Buttons — WCPC voice: Open Sans title case, 6px radius (WCPC scale). */
.wcpc-pco-upnext .btn,
.wcpc-pco-feature .btn {
	display: inline-block;
	font-family: var(--pl-font-body, "Open Sans", sans-serif);
	font-weight: 600;
	font-size: var(--pl-font-size-body, 1rem);
	line-height: 1.2;
	text-transform: none;
	letter-spacing: normal;
	padding: 10px 20px;
	border: 1px solid transparent;
	border-radius: var(--pl-radius-md, 10px);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--pl-transition-base, 150ms ease-out),
	            color var(--pl-transition-base, 150ms ease-out),
	            border-color var(--pl-transition-base, 150ms ease-out);
}

.wcpc-pco-upnext .btn--primary,
.wcpc-pco-feature .btn--primary {
	background: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #fff);
}

.wcpc-pco-upnext .btn--primary:hover,
.wcpc-pco-feature .btn--primary:hover {
	background: var(--pl-color-primary-dark, #003B5C);
}

.wcpc-pco-upnext .btn--secondary,
.wcpc-pco-feature .btn--secondary {
	background: transparent;
	color: var(--pl-color-primary, #34657F);
	border-color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-upnext .btn--secondary:hover,
.wcpc-pco-feature .btn--secondary:hover {
	background: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #fff);
}

.wcpc-pco-upnext .btn:focus-visible,
.wcpc-pco-feature .btn:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}

.wcpc-pco-feature .btn.is-disabled {
	opacity: 0.55;
	cursor: default;
	pointer-events: none;
}

.wcpc-pco-upnext .btn--sm {
	padding: 8px 16px;
	font-size: var(--pl-font-size-small, 0.875rem);
}

/* ≤620px: thumbnail drops to 72px, "Details" label hides (arrow only). */
@media (max-width: 620px) {
	.wcpc-pco-upnext .upnext__thumb {
		width: 72px;
	}
	.wcpc-pco-upnext .upnext__go-label {
		display: none;
	}
}

/* ≤480px: still one column — never a horizontal scroller. */
@media (max-width: 480px) {
	.wcpc-pco-upnext .upnext__row {
		gap: var(--pl-space-3, 12px);
		padding: var(--pl-space-3, 12px);
	}
	.wcpc-pco-upnext .upnext__meta > span {
		white-space: normal;
	}
}

/* 0.99.0 — phones (≤620px): the row keeps its thumbnail, and the date,
   title, time and place stack beside it at full width. The separate date
   column and the arrow go; the whole row is still the link. Without a
   thumbnail the date simply sits above the title. */
@media (max-width: 620px) {
	.wcpc-pco-upnext .upnext__row {
		display: grid;
		grid-template-columns: 88px minmax(0, 1fr);
		grid-template-areas: "thumb date" "thumb body";
		column-gap: var(--pl-space-3, 12px);
		row-gap: 2px;
		align-items: start;
	}
	.wcpc-pco-upnext .upnext__row:not(:has(.upnext__thumb)) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "date" "body";
	}
	.wcpc-pco-upnext .upnext__thumb {
		grid-area: thumb;
		width: 88px;
		align-self: center;
	}
	.wcpc-pco-upnext .upnext__date {
		grid-area: date;
		flex-direction: row;
		align-items: baseline;
		gap: 5px;
		min-width: 0;
	}
	.wcpc-pco-upnext .upnext__date .d {
		font-size: 11px;
		letter-spacing: 0.08em;
	}
	.wcpc-pco-upnext .upnext__body {
		grid-area: body;
	}
	.wcpc-pco-upnext .upnext__go {
		display: none;
	}
	.wcpc-pco-upnext .upnext__meta > span:first-child {
		white-space: nowrap;
	}
	.wcpc-pco-upnext .upnext__head {
		flex-wrap: wrap;
		row-gap: 10px;
	}
}

/* ============================================================
   Featured event band (wcpc_pco_calendar_feature) — v0.26.0
   Markup contract: design brief §2b (Option C).
   ============================================================ */

.wcpc-pco-feature {
	font-family: var(--pl-font-body, "Open Sans", sans-serif);
}

.wcpc-pco-feature .container {
	max-width: 1140px;
	margin: 0 auto;
}

.wcpc-pco-feature .split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--pl-space-7, 32px);
	align-items: center;
}

.wcpc-pco-feature .split--media-left .split__body {
	order: 2;
}

.wcpc-pco-feature .split--media-left .split__media {
	order: 1;
}

.wcpc-pco-feature .split--no-media {
	grid-template-columns: minmax(0, 1fr);
}

.wcpc-pco-feature .eyebrow {
	margin: 0 0 var(--pl-space-2, 8px);
	font-family: var(--pl-font-eyebrow, "Open Sans Condensed", sans-serif);
	font-weight: 700;
	font-size: var(--pl-font-size-small, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--pl-color-primary, #34657F);
}

/* Ministry accent map — students plum, children amber, serve green,
   worship arts rose, slate default. Text-safe darkened variants. */
.wcpc-pco-feature .eyebrow--plum  { color: var(--wcpc-text-on-plum, #66435A); }
.wcpc-pco-feature .eyebrow--amber { color: var(--wcpc-text-on-amber, #8A5A12); }
.wcpc-pco-feature .eyebrow--green { color: var(--wcpc-text-on-green, #356E45); }
.wcpc-pco-feature .eyebrow--rose  { color: var(--wcpc-text-on-rose, #B23149); }
.wcpc-pco-feature .eyebrow--slate { color: var(--pl-color-primary, #34657F); }

.wcpc-pco-feature .split__title {
	margin: 0 0 var(--pl-space-3, 12px);
	font-family: var(--pl-font-display, "Open Sans", sans-serif);
	font-weight: 700;
	font-size: var(--pl-font-size-h2, 2rem);
	line-height: 1.2;
	color: var(--pl-color-primary, #34657F);
}

.wcpc-pco-feature .split__date {
	margin: 0 0 var(--pl-space-3, 12px);
	font-weight: 600;
	font-size: var(--pl-font-size-body, 1rem);
	color: var(--pl-text-strong, #1F2933);
}

.wcpc-pco-feature .split__summary {
	margin: 0 0 var(--pl-space-5, 20px);
	font-size: var(--pl-font-size-body, 1rem);
	line-height: 1.5;
	color: var(--pl-text-strong, #1F2933);
}

.wcpc-pco-feature .split__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-3, 12px);
}

.wcpc-pco-feature .split__media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--pl-radius-lg, 16px);
	object-fit: cover;
}

/* ≤860px: stack to one column — text first, image below. */
@media (max-width: 860px) {
	.wcpc-pco-feature .split {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--pl-space-5, 20px);
	}
	.wcpc-pco-feature .split--media-left .split__body {
		order: 1;
	}
	.wcpc-pco-feature .split--media-left .split__media {
		order: 2;
	}
}

/* ============================================================================
   v0.28 — PC-7/8/9: card summary + date chip, view toggle, month calendar bar
   ============================================================================ */

/* --- Card summary (PC-7) ------------------------------------------------- */
.wcpc-pco .wcpc-pco-event-card__summary {
	font-size: var(--pl-font-size-small, 0.875rem);
	color: var(--pl-text-muted, #5B6B78);
	margin: 0;
	line-height: 1.5;
}

/* Date chip on card artwork: .wcpc-card__media-chip (shared card, v0.42.0). */

/* --- View toggle (PC-8) --------------------------------------------------- */
/* Fallback styling for installs where the 2026 site stylesheet (.viewtoggle)
   isn't loaded. Scoped to the plugin class so the site stylesheet's own
   .viewtoggle rules win nothing / lose nothing — same visual either way. */
.wcpc-pco-viewtoggle {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	background: var(--pl-surface-section, #F2F5F9);
	border: 1px solid var(--pl-border-hairline, rgba(52, 101, 127, 0.12));
	border-radius: var(--pl-radius-full, 999px);
}
/* .wcpc-pco.wcpc-pco-viewtoggle: (0,2,1) — outranks the kit's button rule (PC-16). */
.wcpc-pco.wcpc-pco-viewtoggle button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: inherit;
	font-size: var(--pl-font-size-small, 0.875rem);
	font-weight: 600;
	color: var(--pl-text-muted, #5B6B78);
	padding: 8px 16px;
	border: 0;
	background: none;
	border-radius: var(--pl-radius-full, 999px);
	cursor: pointer;
}
.wcpc-pco.wcpc-pco-viewtoggle button svg {
	width: 16px;
	height: 16px;
}
.wcpc-pco.wcpc-pco-viewtoggle button:hover {
	color: var(--pl-color-primary, #34657F);
}
.wcpc-pco.wcpc-pco-viewtoggle button.is-active {
	background: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #fff);
	box-shadow: 0 1px 2px rgba(0, 59, 92, 0.18);
}
.wcpc-pco.wcpc-pco-viewtoggle button:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}

/* Containers hidden by the active view. !important so it beats Elementor's
   container display rules (.e-con { display:flex } etc.). */
.wcpc-pco-view-hidden {
	display: none !important;
}

/* --- Month widget calendar bar (PC-9) ------------------------------------- */
.wcpc-pco-cal-month__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pl-space-4, 16px);
	justify-content: space-between;
	margin-bottom: var(--pl-space-5, 20px);
}
.wcpc-pco-cal-month__calnav {
	display: flex;
	align-items: center;
	gap: var(--pl-space-2, 8px);
}
.wcpc-pco-cal-month__calnav .wcpc-pco-cal-month__prev,
.wcpc-pco-cal-month__calnav .wcpc-pco-cal-month__next {
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--pl-border-hairline, rgba(52, 101, 127, 0.25));
	border-radius: var(--pl-radius-md, 10px);
	background: var(--pl-color-white, #fff);
	color: var(--pl-color-primary, #34657F);
	text-decoration: none;
}
.wcpc-pco-cal-month__calnav .wcpc-pco-cal-month__prev:hover,
.wcpc-pco-cal-month__calnav .wcpc-pco-cal-month__next:hover {
	background: var(--pl-surface-section, #F2F5F9);
	border-color: var(--pl-color-primary, #34657F);
}
.wcpc-pco-cal-month__calnav svg {
	width: 20px;
	height: 20px;
}
.wcpc-pco-cal-month__bar .wcpc-pco-cal-month__title {
	font-size: var(--pl-font-size-h4, 1.25rem);
	font-weight: 600;
	color: var(--pl-color-primary-dark, #003B5C);
	min-width: 11ch;
	text-align: center;
	margin: 0;
}
.wcpc-pco-cal-month__today-btn {
	font-size: var(--pl-font-size-small, 0.875rem);
	font-weight: 600;
	color: var(--pl-color-primary, #34657F);
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px 10px;
	border-radius: var(--pl-radius-sm, 6px);
	text-decoration: none;
}
.wcpc-pco-cal-month__today-btn:hover {
	background: var(--pl-surface-section, #F2F5F9);
	color: var(--pl-color-primary-dark, #003B5C);
}
.wcpc-pco-cal-month__count {
	font-size: var(--pl-font-size-small, 0.875rem);
	color: var(--pl-text-muted, #5B6B78);
}
.wcpc-pco-cal-month__count strong {
	color: var(--pl-color-primary-dark, #003B5C);
	font-weight: 700;
}

/* Filter row — chips left, "Show" select right (design .calfilters). */
.wcpc-pco-cal-month__filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-4, 16px);
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--pl-space-6, 24px);
}
.wcpc-pco-cal-month__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
/* Doubled with .calfilter: outranks the kit's button rule (PC-16). */
.wcpc-pco-cal-month__chip.calfilter {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: inherit;
	font-size: var(--pl-font-size-small, 0.875rem);
	font-weight: 600;
	padding: 8px 14px;
	border-radius: var(--pl-radius-full, 999px);
	border: 1px solid var(--pl-border-hairline, rgba(52, 101, 127, 0.25));
	background: var(--pl-color-white, #fff);
	color: var(--pl-text-strong, #1F2933);
	cursor: pointer;
}
.wcpc-pco-cal-month__chip:hover {
	background: var(--pl-surface-section, #F2F5F9);
}
.wcpc-pco-cal-month__chip.is-active {
	background: var(--pl-color-primary, #34657F);
	border-color: var(--pl-color-primary, #34657F);
	color: var(--pl-text-on-primary, #fff);
}
.wcpc-pco-cal-month__chip:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}
.wcpc-pco-cal-month__feed {
	display: flex;
	align-items: center;
	gap: 8px;
}
.wcpc-pco-cal-month__feed label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pl-text-muted, #5B6B78);
}
.wcpc-pco-cal-month__feed-select {
	width: auto;
	min-width: 180px;
	font-family: inherit;
	font-size: 16px;
	padding: 11px 40px 11px 14px;
	border: 1.5px solid #B8C5CF;
	border-radius: var(--pl-radius-md, 10px);
	background: var(--pl-color-white, #fff);
	color: #1F2933;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2334657F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.wcpc-pco-cal-month__feed-select:hover,
.wcpc-pco-cal-month__feed-select:focus {
	border-color: var(--pl-color-primary, #34657F);
}

/* Event pills hidden by the visitor filters. */
.wcpc-pco-cal-month__events li.is-hidden {
	display: none;
}

/* ============================================================================
   v0.29 — Events archive (2026 design): filterbar, chips, pager, empty,
   design event cards. Scoped under .wcpc-pco-archive so nothing leaks into
   the surrounding page; values mirror the 2026 design tokens so the archive
   matches the sample before the site stylesheet lands (and yields to it
   cleanly after, since the markup also carries the design's class names).
   ============================================================================ */

.wcpc-pco-archive {
	--wcpc-arch-border:        var(--wcpc-color-border, #D5DEE5);
	--wcpc-arch-border-strong: var(--wcpc-color-border-strong, #B8C5CF);
	--wcpc-arch-primary:       var(--pl-color-primary, #34657F);
	--wcpc-arch-primary-dark:  var(--wcpc-color-primary-dark, #003B5C);
	--wcpc-arch-surface:       var(--wcpc-color-surface, #F4F7FA);
	--wcpc-arch-surface-alt:   var(--wcpc-color-surface-alt, #E8EEF3);
	--wcpc-arch-text:          var(--wcpc-color-text, #1F2933);
	--wcpc-arch-text-muted:    var(--wcpc-color-text-muted, #5B6B78);
	--wcpc-arch-tint-blue:     var(--wcpc-tint-blue, #EDF4FA);
	--wcpc-arch-shadow-1:      var(--wcpc-shadow-1, 0 1px 2px rgba(0, 59, 92, 0.06), 0 1px 3px rgba(0, 59, 92, 0.08));
	--wcpc-arch-shadow-2:      var(--wcpc-shadow-2, 0 4px 12px rgba(0, 59, 92, 0.10));
}

/* --- Filter toolbar + active chips (v0.29 – 0.43): retired in 0.44.0 -------
   The archive bar is WCPC Core's shared filter bar; `.wcpc-pco-filterbar*` /
   `.filterbar*` remain as alias classes on Core's markup. The `.wcpc-pco-chip`
   + `.caldot` rules used by other views live below (Ministry dot). */

/* --- Results grid ---------------------------------------------------------- */
.wcpc-pco-archive .wcpc-pco-arch-grid {
	display: grid;
	/* auto-FILL (not auto-fit): empty tracks are kept, so one or two search
	   results stay at ~1/3 column width instead of stretching full-width. */
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
}
.wcpc-pco-archive .wcpc-pco-arch-grid.is-hidden {
	display: none;
}
.wcpc-pco-archive .wcpc-pco-arch-card.is-collapsed {
	display: none;
}

/* --- Event card: the shared WCPC card (v0.42.0) — see components.css ------- */

/* --- Pager ------------------------------------------------------------------ */
.wcpc-pco-archive .pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 48px;
}
.wcpc-pco-archive .pager button {
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border-radius: var(--pl-radius-md, 10px);
	border: 1.5px solid var(--wcpc-arch-border-strong);
	background: #fff;
	color: var(--wcpc-arch-text);
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}
.wcpc-pco-archive .pager button:hover:not(:disabled) {
	background: var(--wcpc-arch-surface);
	border-color: var(--wcpc-arch-primary);
	color: var(--wcpc-arch-primary-dark);
}
.wcpc-pco-archive .pager button[aria-current="true"] {
	background: var(--wcpc-arch-primary);
	border-color: var(--wcpc-arch-primary);
	color: #fff;
}
.wcpc-pco-archive .pager button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}
.wcpc-pco-archive .pager svg {
	width: 18px;
	height: 18px;
}
.wcpc-pco-archive .pager .gap {
	color: var(--wcpc-arch-text-muted);
	padding: 0 4px;
}

/* --- Empty state ------------------------------------------------------------ */
.wcpc-pco-archive .empty {
	text-align: center;
	max-width: 460px;
	margin: 48px auto;
	padding: 48px 24px;
}
.wcpc-pco-archive .empty.is-hidden {
	display: none;
}
.wcpc-pco-archive .empty__icon {
	width: 64px;
	height: 64px;
	border-radius: var(--pl-radius-full, 999px);
	background: var(--wcpc-arch-surface);
	color: var(--wcpc-arch-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
}
.wcpc-pco-archive .empty__icon svg {
	width: 30px;
	height: 30px;
}
.wcpc-pco-archive .empty h3 {
	color: var(--wcpc-arch-primary-dark);
	margin: 0 0 6px;
}
.wcpc-pco-archive .empty p {
	color: var(--wcpc-arch-text-muted);
	margin: 0 0 16px;
}
.wcpc-pco-archive .empty .wcpc-button {
	background: #fff;
	color: var(--wcpc-arch-primary);
	border: 1.5px solid var(--wcpc-arch-border-strong);
	border-radius: var(--pl-radius-md, 10px);
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
}
.wcpc-pco-archive .empty .wcpc-button:hover {
	background: var(--wcpc-arch-surface);
	color: var(--wcpc-arch-primary-dark);
	border-color: var(--wcpc-arch-primary);
}

/* ============================================================================
   v0.29.1 — Calendar accents: month pills + follow-month agenda rows carry
   their PCO calendar's color (design .calchip left-border treatment).
   !important on background/color beats the widget's flat accent control
   (Elementor emits its rule with wrapper specificity after this sheet).
   ============================================================================ */

.wcpc-pco-cal-month__event--cal {
	background: #F4F7FA !important;
	color: #1F2933 !important;
	border-left: 3px solid var(--wcpc-pco-cal-accent, #34657F);
	border-radius: var(--pl-radius-sm, 6px);
	padding: 3px 7px;
}
.wcpc-pco-cal-month__event--cal:hover,
.wcpc-pco-cal-month__event--cal:focus {
	background: #E8EEF3 !important;
	opacity: 1;
}

.wcpc-pco-cal-list__item--cal .wcpc-pco-cal-list__link {
	border-left: 3px solid var(--wcpc-pco-cal-accent, #34657F);
	padding-left: 14px;
}

/* ============================================================================
   v0.30 — Round-3 visual parity: ministry chip dots (PC-12), agenda row
   parity (PC-13), month cell polish + overflow (PC-14), past-day muting
   (PC-11).
   ============================================================================ */

/* --- Ministry dot (chips + agenda) ----------------------------------------- */
.wcpc-pco-caldot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 999px;
	flex-shrink: 0;
	border: 1px solid rgba(0, 59, 92, 0.18);
	background: var(--pl-color-primary, #34657F);
}
.wcpc-pco-cal-month__chip .wcpc-pco-caldot {
	margin-right: 0;
}
.wcpc-pco-cal-month__chip.is-active .wcpc-pco-caldot {
	background: #fff !important;
	border-color: rgba(255, 255, 255, 0.6);
}

/* --- Month cell polish (PC-14) --------------------------------------------- */
.wcpc-pco-cal-month__day {
	min-height: 128px;
}
.wcpc-pco-cal-month__day-num {
	align-self: flex-start;
	text-align: left;
	font-size: 0.875rem;
	font-weight: 700;
	color: #1F2933;
	padding: 0;
	min-width: 0;
}
/* Today keeps its accent pill, left-aligned. */
.wcpc-pco-cal-month__today .wcpc-pco-cal-month__day-num {
	padding: 0.1rem 0.4rem;
	min-width: 1.5rem;
	text-align: center;
	border-radius: var(--pl-radius-full, 999px);
}
/* Blank adjacent-month cells — white, no content. */
.wcpc-pco-cal-month__day--out {
	background: #fff;
}
/* Past in-month days — present but muted (PC-11). */
.wcpc-pco-cal-month__day--past {
	background: #FBFCFD;
}
.wcpc-pco-cal-month__day--past .wcpc-pco-cal-month__day-num {
	color: var(--pl-text-muted, #5B6B78);
}
.wcpc-pco-cal-month__day--past .wcpc-pco-cal-month__event {
	opacity: 0.72;
}
/* Overflow clamp — pills beyond the per-day cap hide until expanded. */
.wcpc-pco-cal-month__events[data-wcpc-pco-day-clamped]:not(.is-expanded) > li.is-overflow {
	display: none;
}
/* Doubled with .calmore: outranks the kit's button rule (PC-16). */
.wcpc-pco-cal-month__more.calmore {
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	color: var(--pl-color-primary, #34657F);
	padding: 1px 4px;
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
	border-radius: var(--pl-radius-sm, 6px);
	margin-top: 2px;
}
.wcpc-pco-cal-month__more:hover {
	background: #E8EEF3;
}

/* --- Agenda row parity (PC-13, follow-month scope) -------------------------- */
.wcpc-pco-cal-list--month .wcpc-pco-cal-list__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.wcpc-pco-calrow {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 24px;
	padding: 24px 0;
	border-top: 1px solid #D5DEE5;
}
.wcpc-pco-calrow:first-child {
	border-top: 0;
}
.wcpc-pco-calrow--past {
	opacity: 0.62;
}
.wcpc-pco-calrow__date {
	text-align: center;
	line-height: 1.05;
	padding-top: 2px;
}
.wcpc-pco-calrow__dow {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--pl-text-muted, #5B6B78);
}
.wcpc-pco-calrow__d {
	display: block;
	font-size: 26px;
	font-weight: 700;
	color: #003B5C;
}
.wcpc-pco-calrow__head {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}
.wcpc-pco-calrow__title {
	font-size: 17px;
	font-weight: 600;
	color: #003B5C;
	margin: 0;
}
.wcpc-pco-calrow__title a {
	color: inherit;
	text-decoration: none;
}
.wcpc-pco-calrow__title a:hover {
	color: var(--pl-color-primary, #34657F);
}
.wcpc-pco-calrow__badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	padding: 3px 9px;
	border-radius: 999px;
	color: #1F2933;
	white-space: nowrap;
}
.wcpc-pco-calrow__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 14px;
	color: var(--pl-text-muted, #5B6B78);
	margin: 0;
}
.wcpc-pco-calrow__meta svg {
	width: 16px;
	height: 16px;
	color: var(--pl-color-primary, #34657F);
	font-size: 16px;
}
.wcpc-pco-calrow__sep {
	color: #B8C5CF;
	margin: 0 2px;
}
.wcpc-pco-calrow__more {
	display: inline-block;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--pl-color-primary, #34657F);
	text-decoration: none;
}
.wcpc-pco-calrow__more:hover {
	text-decoration: underline;
}

/* ============================================================================
   v0.31 — Calendar-single parity: ICS link (PC-18), next-instance date chip
   (PC-19).
   ============================================================================ */

.wcpc-pco .wcpc-pco-w-cal-register__ics {
	display: block;
	margin-top: 10px;
	font-size: var(--pl-font-size-small, 0.875rem);
	font-weight: 600;
	color: var(--pl-color-primary, #34657F);
	text-decoration: none;
}
.wcpc-pco .wcpc-pco-w-cal-register__ics:hover {
	color: #003B5C;
	text-decoration: underline;
}

/* Chip is a plain block by default; the `chip_position: card_edge` control
   floats it on the details card's top-right corner (see the v0.55.0 block at
   the end of this file). Until 0.55.0 that float lived in the event single's
   per-widget Custom CSS panel. */
.wcpc-pco-w-next__date-chip {
	display: inline-block;
	background: #fff;
	border-radius: var(--pl-radius-sm, 6px);
	box-shadow: 0 6px 18px rgba(0, 59, 92, 0.18);
	padding: 6px 12px;
	text-align: center;
	line-height: 1.1;
	min-width: 48px;
}
.wcpc-pco-w-next__date-chip .wcpc-pco-w-next__date-top {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pl-color-primary, #34657F);
}
.wcpc-pco-w-next__date-chip .wcpc-pco-w-next__date-day {
	display: block;
	font-size: 24px;
	font-weight: 700;
	color: #003B5C;
}


/* ============================================================
   Invitations strip (wcpc_pco_invitations) — v0.49.0
   One shared card (horizontal preset, 16:9 image) per thing worth
   inviting someone to right now, plus the copy-and-send quote box and
   its Copy buttons, which the shared card anatomy has no slot for.
   The image width is the --wcpc-card-image-size custom property the
   horizontal preset already reads; the widget sets it on the wrapper
   (and --wcpc-card-media-width, the same knob in Sermon Manager's
   grid-card-presets.css, which loads later and would otherwise win).
   ============================================================ */

.wcpc-pco-invites {
	font-family: var(--wcpc-font-sans, "Open Sans", sans-serif);
}

.wcpc-pco-invites__head {
	margin-bottom: var(--wcpc-space-lg, 24px);
}
.wcpc-pco-invites__eyebrow {
	margin: 0 0 var(--wcpc-space-xs, 4px);
	font-size: var(--wcpc-text-eyebrow, 13px);
	font-weight: 700;
	letter-spacing: var(--wcpc-eyebrow-tracking, 0.08em);
	text-transform: uppercase;
	color: var(--wcpc-color-primary, #34657F);
}
.wcpc-pco-invites__title {
	margin: 0;
	color: var(--wcpc-color-primary-dark, #003B5C);
}
.wcpc-pco-invites__lede {
	margin: var(--wcpc-space-sm, 8px) 0 0;
	color: var(--wcpc-color-text-muted, #5B6B78);
}

.wcpc-pco-invites__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wcpc-space-lg, 24px);
}

/* Grid layout: the site's 3 / 2 / 1 card grid (Core's .wcpc-card-grid
   breakpoints), --wcpc-columns set by the widget. Vertical cards, so the
   16:9 image fills its slot with nothing left over. */
.wcpc-pco-invites--grid .wcpc-pco-invites__list {
	grid-template-columns: repeat(var(--wcpc-columns, 3), minmax(0, 1fr));
}
@media (max-width: 1024px) {
	.wcpc-pco-invites--grid .wcpc-pco-invites__list {
		grid-template-columns: repeat(min(var(--wcpc-columns, 3), 2), minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.wcpc-pco-invites--grid .wcpc-pco-invites__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Rows layout: the image column is usually shorter than the copy. Three
   treatments; the media slot's ratio is released to auto by the widget so
   these rules own how the image sits. Below 768px the preset stacks the
   image full-width, and every treatment collapses to a plain 16:9 image. */
.wcpc-pco-invite.wcpc-card--horizontal > .wcpc-card__media {
	min-height: 0;
	align-self: stretch;
}

/* Panel — image centred on a tinted column (the emblem tile's tint). */
.wcpc-pco-invite--media-panel.wcpc-card--horizontal > .wcpc-card__media,
.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wcpc-tint-blue, #EDF4FA);
	background: color-mix(in srgb, var(--wcpc-color-primary-light, #A4C8E1) 25%, var(--wcpc-color-bg, #fff));
}
.wcpc-pco-invite--media-panel.wcpc-card--horizontal > .wcpc-card__media img,
.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media img {
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.wcpc-pco-invite--media-panel.wcpc-card--horizontal > .wcpc-card__media--emblem,
.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media--emblem {
	display: grid;
}

/* Blur — the same image, blurred and dimmed, behind itself. */
.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wcpc-invite-img) center / cover no-repeat;
	filter: blur(22px) saturate(1.1);
	transform: scale(1.25);
	opacity: 0.8;
}
.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media img {
	box-shadow: var(--wcpc-shadow-2, 0 4px 12px rgba(0, 59, 92, 0.10));
}

/* Fill — Core's default for the horizontal preset: stretch and crop. */
.wcpc-pco-invite--media-cover.wcpc-card--horizontal > .wcpc-card__media {
	min-height: 160px;
}

@media (max-width: 767px) {
	.wcpc-pco-invite.wcpc-card--horizontal > .wcpc-card__media,
	.wcpc-pco-invite--media-panel.wcpc-card--horizontal > .wcpc-card__media,
	.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media {
		display: block;
		aspect-ratio: 16 / 9 !important;
		background: var(--wcpc-color-surface, #F4F7FA);
	}
	.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media::before {
		content: none;
	}
	.wcpc-pco-invite--media-panel.wcpc-card--horizontal > .wcpc-card__media img,
	.wcpc-pco-invite--media-blur.wcpc-card--horizontal > .wcpc-card__media img {
		height: 100%;
		box-shadow: none;
	}
}
.wcpc-pco-invite.wcpc-card--horizontal > .wcpc-card__body {
	gap: var(--wcpc-space-sm, 8px);
}
.wcpc-pco-invite .wcpc-card__summary {
	-webkit-line-clamp: 4;
}

/* Quote box rides the pills row; make that row a block so it spans. */
.wcpc-pco-invite .wcpc-card__pills {
	display: block;
}
.wcpc-pco-invite__quote {
	margin: var(--wcpc-space-xs, 4px) 0 0;
	padding: 12px 16px;
	border: 0;
	border-left: 3px solid var(--wcpc-color-primary, #34657F);
	border-radius: 0 var(--wcpc-radius-sm, 6px) var(--wcpc-radius-sm, 6px) 0;
	background: var(--wcpc-color-surface, #F4F7FA);
	font-size: var(--wcpc-text-body-sm, 15px);
	font-style: normal;
	line-height: 1.6;
	color: var(--wcpc-color-text, #1F2933);
	white-space: pre-line;
	quotes: none;
}
.wcpc-pco-invite__quote::before,
.wcpc-pco-invite__quote::after {
	content: none;
}

/* Copy buttons sit at the end of the footer row, after the link. */
.wcpc-pco-invite .wcpc-card__footer {
	gap: var(--wcpc-space-sm, 8px) var(--wcpc-space-md, 16px);
}
/* (0,2,0) — outranks the Elementor Kit's `.elementor-kit-N button` repaint
   (PC-16). The same class dresses the mailto / save-image ANCHORS
   (`--link`), which carry role="link" to escape the kit's anchor repaint. */
.wcpc-pco .wcpc-pco-invite__copy,
.wcpc-pco a.wcpc-pco-invite__copy--link {
	text-decoration: none;
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 6px 12px;
	border: 1px solid var(--wcpc-color-border-strong, #B8C5CF);
	border-radius: var(--wcpc-radius-full, 999px);
	background: var(--wcpc-color-bg, #fff);
	color: var(--wcpc-color-primary, #34657F);
	font: inherit;
	font-size: var(--wcpc-text-micro, 13px);
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color var(--wcpc-transition-fast, 120ms ease-out),
	            border-color var(--wcpc-transition-fast, 120ms ease-out),
	            color var(--wcpc-transition-fast, 120ms ease-out);
}
.wcpc-pco-invite .wcpc-card__footer .wcpc-card__cta + .wcpc-pco-invite__copy {
	margin-left: auto;
}
.wcpc-pco .wcpc-pco-invite__copy:hover,
.wcpc-pco a.wcpc-pco-invite__copy--link:hover {
	color: var(--wcpc-color-primary, #34657F);
	text-decoration: none;
	border-color: var(--wcpc-color-primary, #34657F);
	background: var(--wcpc-tint-blue, #EDF4FA);
}
.wcpc-pco .wcpc-pco-invite__copy:focus-visible {
	outline: none;
	box-shadow: var(--wcpc-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}
.wcpc-pco .wcpc-pco-invite__copy .wcpc-card__icon {
	width: 14px;
	height: 14px;
	color: inherit;
}
.wcpc-pco .wcpc-pco-invite__copy.is-copied {
	border-color: var(--wcpc-color-success, #356E45);
	background: var(--wcpc-tint-green, #E3F0E7);
	color: var(--wcpc-text-on-green, #356E45);
}

@media (max-width: 767px) {
	.wcpc-pco-invite .wcpc-card__footer .wcpc-card__cta + .wcpc-pco-invite__copy {
		margin-left: 0;
	}
}


/* ============================================================================
   v0.55.0 — rules reclaimed from the event single's Custom CSS panels.
   Template 20312 carried six hand-written rules that were not specific to
   that template; four of them are widget behaviour and now live here, behind
   controls, so any placement (and the group single) gets them without CSS.
   ============================================================================ */

/* Date chip, card-edge variant. Elementor gives every widget wrapper
   position:relative, which made `top` resolve against the widget rather than
   the card — so the chip sat inside the card instead of straddling its edge.
   Scoped with :has() so only a widget actually asking for the float steps out
   of the positioning chain. */
.elementor-widget-wcpc_pco_calendar_next_instance:has( .wcpc-pco-w-next--chip-edge ) {
	position: static;
}
.wcpc-pco-w-next--chip-edge .wcpc-pco-w-next__date-chip {
	position: absolute;
	top: -24px;
	right: 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 54px;
	padding: 8px 10px;
	box-shadow: 0 6px 18px rgba(0, 59, 92, 0.12);
}
.wcpc-pco-w-next--chip-edge .wcpc-pco-w-next__date-top {
	line-height: 1.2;
}
.wcpc-pco-w-next--chip-edge .wcpc-pco-w-next__date-day {
	font-size: 22px;
}

/* A venue name is the label of the block it heads, with the street address as
   the detail under it — so the venue placement reads semibold. */
.wcpc-pco-w-cal-location--venue .wcpc-pco-w-cal-location__text {
	font-weight: 600;
}

/* Full-width directions button, for the Location card. */
.wcpc-pco-w-cal-location--btn-full .wcpc-pco-w-cal-location__btn {
	display: flex;
	width: 100%;
	justify-content: center;
	padding-block: 12px;
}

/* Lead paragraph on the event single. The description reaches the page
   through the theme's post-content widget, so the body class is the only
   handle the plugin has on it. :not(:last-of-type) matters — most PCO
   descriptions are a single paragraph, and without it the whole body would
   render bold. */
body.wcpc-pco-event-single .elementor-widget-theme-post-content p:first-of-type:not( :last-of-type ) {
	font-weight: 600;
	font-size: 1.06em;
	color: var( --pl-color-primary-dark, #003B5C );
}

/* ============================================================================
   v0.58.0 — Calendar round: multi-day bars, live "+N more", quick-view popup,
   in-place month navigation, agenda month bar.
   ============================================================================ */

/* --- Multi-day bars --------------------------------------------------------
   A multi-day instance prints one bar per week row. The bar's <li> bleeds to
   the cell edges (negative inline margin = the cell's padding) and the link
   inside is stretched over the following cells with --wcpc-pco-span; those
   cells carry an invisible "hold" row so every day keeps the bar's line. */
.wcpc-pco-cal-month__events {
	overflow: visible;
}
.wcpc-pco-cal-month__events > li {
	min-width: 0;
}
.wcpc-pco-cal-month__span,
.wcpc-pco-cal-month__spacer {
	margin-inline: -0.35rem;
}
.wcpc-pco-cal-month__span {
	position: relative;
}
.wcpc-pco-cal-month__hold,
.wcpc-pco-cal-month__spacer {
	display: block;
	visibility: hidden;
	pointer-events: none;
}
.wcpc-pco-cal-month__hold {
	font-size: 0.75rem;
	line-height: 1.25;
	padding: 3px 7px;
	border-left: 3px solid transparent;
}
@media (max-width: 640px) {
	.wcpc-pco-cal-month__hold { font-size: 0.65rem; }
}
.wcpc-pco-cal-month__event--span {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	/* N cells + the 1px grid gaps between them, inset 4px at each open end. */
	width: calc( var(--wcpc-pco-span, 1) * 100% + ( var(--wcpc-pco-span, 1) - 1 ) * 1px - 8px );
	margin-inline: 4px;
	font-weight: 600;
}
.wcpc-pco-cal-month__event--span.is-continued {
	margin-left: 0;
	width: calc( var(--wcpc-pco-span, 1) * 100% + ( var(--wcpc-pco-span, 1) - 1 ) * 1px - 4px );
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.wcpc-pco-cal-month__event--span.is-continuing {
	margin-right: 0;
	width: calc( var(--wcpc-pco-span, 1) * 100% + ( var(--wcpc-pco-span, 1) - 1 ) * 1px - 4px );
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}
.wcpc-pco-cal-month__event--span.is-continued.is-continuing {
	width: calc( var(--wcpc-pco-span, 1) * 100% + ( var(--wcpc-pco-span, 1) - 1 ) * 1px );
}
/* A bar is tinted with its calendar colour so it reads as a span, not as one
   more single-day pill. */
.wcpc-pco-cal-month__event--cal.wcpc-pco-cal-month__event--span {
	background: color-mix( in srgb, var(--wcpc-pco-cal-accent, #34657F) 14%, #fff ) !important;
}
.wcpc-pco-cal-month__event--cal.wcpc-pco-cal-month__event--span:hover,
.wcpc-pco-cal-month__event--cal.wcpc-pco-cal-month__event--span:focus {
	background: color-mix( in srgb, var(--wcpc-pco-cal-accent, #34657F) 24%, #fff ) !important;
}
/* The bar crosses past and future days — don't half-fade it. */
.wcpc-pco-cal-month__day--past .wcpc-pco-cal-month__event--span {
	opacity: 1;
}
/* Filtered-out bar above a visible one: keeps its row, shows nothing. */
.wcpc-pco-cal-month__events > li.is-ghost {
	visibility: hidden;
	pointer-events: none;
}
.wcpc-pco-cal-month__more[hidden] {
	display: none;
}
.wcpc-pco-cal-month__event:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}

/* --- In-place month navigation --------------------------------------------- */
[data-wcpc-pco-month-bound] {
	transition: opacity 140ms ease;
}
[data-wcpc-pco-month-bound].is-loading {
	opacity: 0.45;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	[data-wcpc-pco-month-bound] { transition: none; }
}
.wcpc-pco-cal-list__bar {
	margin-bottom: var(--pl-space-5, 20px);
}

/* --- Quick-view popup ------------------------------------------------------ */
.wcpc-pco-cal-modal-dialog.is-quick {
	max-width: 560px;
}
.wcpc-pco-cal-modal-dialog.is-quick .wcpc-pco-cal-modal-header {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	padding: 0;
	border: 0;
}
.wcpc-pco-cal-modal-dialog.is-quick .wcpc-pco-cal-modal-title {
	display: none;
}
.wcpc-pco-cal-modal-dialog.is-quick .wcpc-pco-cal-modal-close.wcpc-pco-cal-modal-close {
	background: rgba(255, 255, 255, 0.92);
	color: #1F2933;
	border-radius: 999px;
	box-shadow: 0 1px 3px rgba(0, 59, 92, 0.18);
}
.wcpc-pco-cal-modal-dialog.is-quick .wcpc-pco-cal-modal-body {
	padding: 0;
}
.wcpc-pco-quick__media {
	aspect-ratio: 16 / 9;
	background: #E8EEF3;
	overflow: hidden;
}
.wcpc-pco-quick__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wcpc-pco-quick__body {
	padding: 28px;
}
.wcpc-pco-quick__media + .wcpc-pco-quick__body {
	padding-top: 22px;
}
.wcpc-pco-quick__badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 999px;
	margin-bottom: 10px;
}
.wcpc-pco-quick .wcpc-pco-quick__title {
	margin: 0 40px 12px 0;
	font-size: 1.5rem;
	line-height: 1.25;
	font-weight: 600;
	color: var(--pl-color-primary-dark, #003B5C);
}
.wcpc-pco-quick__media + .wcpc-pco-quick__body .wcpc-pco-quick__title {
	margin-right: 0;
}
.wcpc-pco-quick__meta {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: grid;
	gap: 6px;
	color: var(--pl-text-muted, #5B6B78);
	font-size: 0.9375rem;
}
.wcpc-pco-quick__meta li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}
.wcpc-pco-quick__meta svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	margin-top: 2px;
	color: var(--pl-color-primary, #34657F);
}
.wcpc-pco-quick__summary {
	margin: 0 0 16px;
	color: var(--pl-text-strong, #1F2933);
	line-height: 1.6;
}
.wcpc-pco-quick__more {
	margin: 0 0 16px;
	font-size: 0.875rem;
	color: var(--pl-text-muted, #5B6B78);
}
.wcpc-pco-quick__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}
/* Doubled class: outranks the kit's `a` colour rule (see 0.56.0). */
.wcpc-pco-quick__btn.wcpc-pco-quick__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 12px 20px;
	border-radius: var(--pl-radius-md, 10px);
	border: 1.5px solid var(--pl-color-primary, #34657F);
	text-decoration: none;
	transition: background-color 120ms ease, color 120ms ease;
}
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--primary {
	background: var(--pl-color-primary, #34657F);
	color: #fff;
}
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--primary:hover,
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--primary:focus {
	background: var(--pl-color-primary-dark, #003B5C);
	border-color: var(--pl-color-primary-dark, #003B5C);
	color: #fff;
}
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--ghost {
	background: #fff;
	color: var(--pl-color-primary-dark, #003B5C);
}
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--ghost:hover,
.wcpc-pco-quick__btn.wcpc-pco-quick__btn--ghost:focus {
	background: #EDF4FA;
	color: var(--pl-color-primary-dark, #003B5C);
}
.wcpc-pco-quick__btn:focus-visible {
	outline: none;
	box-shadow: var(--pl-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}
@media (max-width: 640px) {
	.wcpc-pco-cal-modal-overlay.is-open {
		align-items: flex-end;
	}
	.wcpc-pco-cal-modal-dialog.is-quick {
		min-height: 0;
		border-radius: 16px 16px 0 0;
	}
	.wcpc-pco-quick__body {
		padding: 22px 20px 26px;
	}
	.wcpc-pco-quick__btn.wcpc-pco-quick__btn {
		flex: 1 1 100%;
	}
}


/* ------------------------------------------------------------------
 * v0.61.0 — page-level Calendar Filter Bar
 * ---------------------------------------------------------------- */

/* Rows / pills the shared filters hide. The agenda row is display:flex,
 * which beats the [hidden] attribute — be explicit. */
.wcpc-pco-cal-list__item.is-filtered,
.wcpc-pco-cal-list__item[hidden] {
	display: none !important;
}

/* The archive keeps only its "Showing a–b of N" line when it follows the
 * page's bar: no card chrome, no hairline. */
.wcpc-pco-filterbar--count-only.wcpc-filterbar {
	background: none;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin-bottom: var(--wcpc-space-4, 16px);
}
.wcpc-pco-filterbar--count-only .wcpc-filterbar__foot {
	border-top: 0;
	padding-top: 0;
	margin-top: 0;
}

/* "Nothing matches this month" — sits right above the empty grid / list. */
.wcpc-pco-month-note {
	margin: 0 0 var(--wcpc-space-4, 16px);
	padding: 14px 16px;
	border: 1px solid var(--wcpc-color-border, #d5dde6);
	border-left: 3px solid var(--wcpc-color-primary, #3f6079);
	border-radius: var(--wcpc-radius-md, 10px);
	background: var(--wcpc-color-surface, #f6f8fa);
	color: var(--wcpc-color-text, #22313f);
	font-size: 0.95rem;
	line-height: 1.5;
}
.wcpc-pco-month-note[hidden] {
	display: none;
}
.wcpc-pco-month-note p {
	margin: 0;
}
.wcpc-pco-month-note__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin-top: 8px !important;
}
.wcpc-pco-month-note__jump {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border: 1px solid var(--wcpc-color-primary, #3f6079);
	border-radius: 999px;
	color: var(--wcpc-color-primary, #3f6079);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
}
.wcpc-pco-month-note__jump:hover,
.wcpc-pco-month-note__jump:focus-visible {
	background: var(--wcpc-color-primary, #3f6079);
	color: #fff;
}

/* A button that reads as a text link (note actions, archive empty hint).
 * The theme / Elementor kit paints every <button> as a filled button, so
 * the resets have to win. */
.wcpc-pco button.wcpc-pco-linkbtn,
button.wcpc-pco-linkbtn {
	appearance: none;
	display: inline;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 0;
	font: inherit;
	font-weight: 600;
	line-height: inherit;
	color: var(--wcpc-color-primary, #3f6079) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
}
.wcpc-pco button.wcpc-pco-linkbtn:hover,
.wcpc-pco button.wcpc-pco-linkbtn:focus-visible,
button.wcpc-pco-linkbtn:hover,
button.wcpc-pco-linkbtn:focus-visible {
	color: var(--wcpc-color-primary-dark, #2c4558) !important;
	text-decoration-thickness: 2px;
}
.wcpc-pco-arch-empty__hint[hidden] {
	display: none;
}

.wcpc-pco-calendar-filters-wrap {
	margin-bottom: var(--wcpc-space-lg, 24px);
}


/* ------------------------------------------------------------------
 * v0.62.0 — day-grouped agenda
 * One date chip per day on the left, that day's rows on the right.
 * ---------------------------------------------------------------- */
.wcpc-pco-calday {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 24px;
	padding: 20px 0;
	border-top: 1px solid #D5DEE5;
}
.wcpc-pco-calday[hidden] {
	display: none;
}
.wcpc-pco-cal-list__days > .wcpc-pco-calday:first-of-type,
.wcpc-pco-calday__earlier + .wcpc-pco-calday {
	border-top: 0;
}
.wcpc-pco-calday__date {
	margin: 0;
	padding-top: 4px;
	font: inherit;
	align-self: start;
	position: sticky;
	top: 96px;
}
.wcpc-pco-calday__today {
	display: inline-block;
	margin-top: 6px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--wcpc-color-primary, #34657F);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.wcpc-pco-calday--today .wcpc-pco-calrow__d {
	color: var(--wcpc-color-primary, #34657F);
}
.wcpc-pco-calday__rows {
	list-style: none;
	margin: 0;
	padding: 0;
	min-width: 0;
}
/* Rows inside a day: no date column of their own, tighter rhythm. */
.wcpc-pco-calrow--day {
	display: block;
	padding: 4px 0 14px;
	border-top: 0;
}
.wcpc-pco-calrow--day + .wcpc-pco-calrow--day {
	padding-top: 14px;
	border-top: 1px dashed #E3E9EE;
}
.wcpc-pco-calrow--day:last-child {
	padding-bottom: 4px;
}
.wcpc-pco button.wcpc-pco-calday__earlier,
button.wcpc-pco-calday__earlier {
	display: block;
	margin: 0 0 8px;
	font-size: 14px;
}
.wcpc-pco-calday__earlier[hidden] {
	display: none !important;
}
@media (max-width: 600px) {
	.wcpc-pco-calday {
		grid-template-columns: 48px 1fr;
		gap: 14px;
	}
	.wcpc-pco-calday__date {
		position: static;
	}
}
/* A long title must stay beside its ministry dot instead of wrapping under
 * it (the head is a wrapping flex row). */
.wcpc-pco-calrow--day .wcpc-pco-calrow__title {
	max-width: calc(100% - 20px);
}

/* ---------------------------------------------------------------
 * Livestream button (v0.87.0) — sits in the Register button row on
 * calendar event pages; .is-live is set by assets/livestream.js.
 * ------------------------------------------------------------- */
.wcpc-pco .wcpc-pco-live-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	text-decoration: none !important;
	line-height: 1.2;
}

.wcpc-pco-live-btn__dot {
	display: none;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: #c62828;
	flex: none;
}

.wcpc-pco .wcpc-button--ghost.wcpc-pco-live-btn.is-live,
.wcpc-pco .wcpc-button--ghost.wcpc-pco-live-btn.is-live:hover {
	color: #fff !important;
	background-color: #c62828;
	border-color: #c62828;
}

.wcpc-pco-live-btn.is-live .wcpc-pco-live-btn__dot {
	display: inline-block;
	background: #fff;
	animation: wcpc-pco-live-pulse 1.6s ease-in-out infinite;
}

@keyframes wcpc-pco-live-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.35; }
}

@media (prefers-reduced-motion: reduce) {
	.wcpc-pco-live-btn.is-live .wcpc-pco-live-btn__dot {
		animation: none;
	}
}

/* ============================================================================
   v0.92.0 — "Bring someone" block on the event single
   (PCO Calendar: Invite someone). Reuses the strip's quote box and action
   pills (`.wcpc-pco-invite__quote`, `.wcpc-pco-invite__copy`, above); only
   the frame is new. Heading matches the details card's other labels
   (When / Where / Who it's for).
   ============================================================================ */
/* Inline: a labelled section inside a details card. A hairline above
   separates the facts (when / where / sign up) from the ask. */
.wcpc-pco-w-cal-invite--inline {
	padding-top: var(--wcpc-space-sm, 8px);
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.wcpc-pco-w-cal-invite__heading {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.7;
}
/* Panel: its own box in the main column (under the description) — the
   card contract (r16, border, resting shadow, 24px) and a real heading. */
.wcpc-pco-w-cal-invite--panel {
	padding: var(--wcpc-card-padding, 24px);
	border: 1px solid var(--wcpc-color-border, #D5DEE5);
	border-radius: var(--wcpc-card-radius, 16px);
	background: var(--wcpc-color-bg, #fff);
	box-shadow: var(--wcpc-shadow-1, 0 1px 2px rgba(0, 59, 92, 0.06), 0 1px 3px rgba(0, 59, 92, 0.08));
}
.wcpc-pco-w-cal-invite--panel .wcpc-pco-w-cal-invite__heading {
	margin: 0 0 var(--wcpc-space-sm, 8px);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wcpc-color-primary-dark, #003B5C);
	opacity: 1;
}
.wcpc-pco-w-cal-invite--panel .wcpc-pco-w-cal-invite__blurb {
	font-size: var(--wcpc-text-body, 17px);
	margin-bottom: var(--wcpc-space-md, 16px);
}
.wcpc-pco-w-cal-invite--panel .wcpc-pco-w-cal-invite__quote {
	margin-bottom: var(--wcpc-space-md, 16px);
}
.wcpc-pco-w-cal-invite__blurb {
	margin: 0 0 var(--wcpc-space-sm, 8px);
	font-size: var(--wcpc-text-body-sm, 15px);
	line-height: 1.5;
	color: var(--wcpc-color-text, #1F2933);
}
.wcpc-pco-w-cal-invite__quote {
	margin: 0 0 var(--wcpc-space-sm, 8px);
}
/* Collapsed preview (0.93.1): native details/summary, the summary dressed
   as a small text toggle with a chevron that turns when open. The quote
   inside keeps its normal look. */
.wcpc-pco-w-cal-invite__reveal {
	margin: 0 0 var(--wcpc-space-sm, 8px);
}
.wcpc-pco-w-cal-invite__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	list-style: none;
	cursor: pointer;
	font-size: var(--wcpc-text-micro, 13px);
	font-weight: 600;
	color: var(--wcpc-color-primary, #34657F);
	user-select: none;
}
.wcpc-pco-w-cal-invite__toggle::-webkit-details-marker {
	display: none;
}
.wcpc-pco-w-cal-invite__toggle:hover {
	text-decoration: underline;
}
.wcpc-pco-w-cal-invite__toggle:focus-visible {
	outline: none;
	border-radius: var(--wcpc-radius-sm, 6px);
	box-shadow: var(--wcpc-focus-ring, 0 0 0 3px rgba(52, 101, 127, 0.35));
}
.wcpc-pco-w-cal-invite__chev {
	transition: transform var(--wcpc-transition-fast, 120ms ease-out);
}
.wcpc-pco-w-cal-invite__reveal[open] .wcpc-pco-w-cal-invite__chev {
	transform: rotate(90deg);
}
.wcpc-pco-w-cal-invite__reveal .wcpc-pco-w-cal-invite__quote {
	margin: var(--wcpc-space-sm, 8px) 0 0;
}
.wcpc-pco-w-cal-invite__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wcpc-space-sm, 8px);
	margin-top: var(--wcpc-space-sm, 8px);
}
.wcpc-pco .wcpc-pco-w-cal-invite__more {
	display: inline-block;
	margin-top: var(--wcpc-space-sm, 8px);
	font-size: var(--wcpc-text-micro, 13px);
	font-weight: 600;
	color: var(--wcpc-color-primary, #34657F);
	text-decoration: none;
}
.wcpc-pco .wcpc-pco-w-cal-invite__more:hover {
	text-decoration: underline;
}
