/* ==========================================================================
   CFC navigation — based on design/bespoke.html
   ========================================================================== */

:root {
	--cfc-accent: #cc5500;
	--cfc-accent-hover: #a34400;
	--cfc-bg: #f8f8f8;
	--cfc-text: #1a1a1a;
	--cfc-text-body: #333333;
	--cfc-text-heading: #2a2623;
	--cfc-text-heading-sub: #5a534d;
	--cfc-text-page-title: #6b635c;
	--cfc-text-muted: #555;
	--cfc-text-subtle: #666;
	--cfc-border: #eee;
	--cfc-surface: #fafafa;
	--cfc-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--cfc-font-heading: "Montserrat", var(--cfc-font-body);
	--cfc-text-base: 1.0625rem;
	--cfc-text-sm: 0.9375rem;
	--cfc-text-xs: 0.875rem;
	--cfc-text-lg: 1.125rem;
	--cfc-leading-body: 1.65;
	--cfc-leading-snug: 1.45;
	--cfc-leading-relaxed: 1.7;
	--cfc-leading-heading: 1.2;
	--cfc-focus-ring: 0 0 0 0.125rem #fff, 0 0 0 0.3125rem var(--cfc-accent);
	--cfc-tracking-heading: -0.02em;
	--cfc-heading-display: clamp(2rem, 5vw, 3.5rem);
	--cfc-heading-page: clamp(2.125rem, 5.5vw, 3.75rem);
	--cfc-heading-section: clamp(1.75rem, 4vw, 2.5rem);
	--cfc-heading-subsection: clamp(1.375rem, 3vw, 2rem);
	--cfc-heading-card: clamp(1.125rem, 2.5vw, 1.375rem);
	--cfc-header-height: 3.75rem;
	--cfc-admin-bar-height: 0px;
	--cfc-nav-breakpoint: 782px;
	--cfc-nav-indent-child: 2rem;
	--cfc-nav-indent-grandchild: 3.5rem;
	--cfc-home-split-max: 75rem;
	--cfc-home-column-max: 36rem;
	--cfc-home-prose-max: 30rem;
	--cfc-home-split-gutter: 1.5rem;
	--cfc-hero-logo-size-min: 7.5rem;
	--cfc-hero-motto-size-min: 1.125rem;
	--cfc-hero-bg-image-opacity: 0.5;
	--cfc-selection: color-mix(in srgb, var(--cfc-accent) 28%, #fff);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	font-size: 100%;
	overscroll-behavior-y: none;
	overscroll-behavior-x: auto;
}

body {
	margin: 0;
	padding-top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height));
	overscroll-behavior-y: none;
	overscroll-behavior-x: auto;
	font-family: var(--cfc-font-body);
	font-size: var(--cfc-text-base);
	font-weight: 400;
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text);
	background-color: var(--cfc-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background-color: var(--cfc-selection);
	color: var(--cfc-text);
}

::-moz-selection {
	background-color: var(--cfc-selection);
	color: var(--cfc-text);
}

/* --- Accessibility helpers --- */

.cfc-skip-link {
	position: absolute;
	left: 0.5rem;
	top: -4rem;
	z-index: 1000;
	padding: 0.625rem 1.125rem;
	border-radius: 0 0 0.375rem 0.375rem;
	background: var(--cfc-accent);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition: top 0.15s ease;
}

.cfc-skip-link:focus {
	top: 0;
	outline: 3px solid #fff;
	outline-offset: -3px;
}

/* Visible focus fallback for any control without a bespoke focus style. */
:focus-visible {
	outline: 2px solid var(--cfc-accent);
	outline-offset: 2px;
}

#main:focus {
	outline: none;
}

/* --- Typography --- */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--cfc-font-heading);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
}

body.cfc-nav-open {
	overflow: hidden;
}

body.cfc-nav-open .cfc-header-quick-nav {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease, visibility 0s linear 0.15s;
}

a {
	color: inherit;
	text-decoration: none;
}

.page-width {
	width: clamp(48rem, 75vw, 75rem);
	max-width: 100%;
	margin-inline: auto;
}

/* --- Header --- */

/* Logged-in: sit below the WordPress admin bar */
body.admin-bar {
	--cfc-admin-bar-height: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--cfc-admin-bar-height: 46px;
	}
}

.cfc-header {
	position: fixed;
	top: var(--cfc-admin-bar-height);
	left: 0;
	width: 100%;
	z-index: 99998;
	background: #fff;
	box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.08);
}

.cfc-header__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0 1.5rem;
	min-height: var(--cfc-header-height);
	position: relative;
	z-index: 1001;
	background: #fff;
}

.cfc-header__home {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	min-height: var(--cfc-header-height);
	padding: 0 0.25rem;
	color: var(--cfc-text);
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

.cfc-header__home-logo {
	display: block;
	width: 1.875rem;
	height: 1.875rem;
	flex-shrink: 0;
	color: var(--cfc-text);
	transition: color 0.2s ease;
}

.cfc-header__home-logo svg {
	display: block;
	width: 100%;
	height: 100%;
}

.cfc-header__home:hover .cfc-header__home-logo,
.cfc-header__home:focus-visible .cfc-header__home-logo {
	color: var(--cfc-accent);
}

.cfc-header__home-label {
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
}

.cfc-header__home:hover,
.cfc-header__home:focus-visible {
	color: var(--cfc-accent);
	outline: none;
}

.cfc-header__actions {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.cfc-header-quick-nav {
	display: none;
}

.cfc-header-quick-nav__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cfc-header-quick-nav__item {
	position: relative;
}

.cfc-header-quick-nav__item > a,
.cfc-header-quick-nav__label {
	display: block;
	padding: 1.125rem 1rem;
	border: 0;
	background: transparent;
	color: var(--cfc-text);
	font: inherit;
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.cfc-header-quick-nav__item.has-sub > .cfc-header-quick-nav__label {
	position: relative;
	padding-right: 1.75rem;
	cursor: pointer;
}

.cfc-header-quick-nav__item.has-sub > .cfc-header-quick-nav__label::after {
	content: "▾";
	position: absolute;
	right: 0.375rem;
	top: 50%;
	transform: translateY(-55%);
	font-size: 110%;
	line-height: 1;
	transition: color 0.2s ease, transform 0.2s ease;
}

.cfc-header-quick-nav__item > a:hover,
.cfc-header-quick-nav__item > a:focus-visible,
.cfc-header-quick-nav__item.has-sub:hover > .cfc-header-quick-nav__label,
.cfc-header-quick-nav__item.has-sub.is-open > .cfc-header-quick-nav__label,
.cfc-header-quick-nav__item.has-sub:focus-within > .cfc-header-quick-nav__label {
	color: var(--cfc-accent);
	background: var(--cfc-surface);
	outline: none;
}

.cfc-header-quick-nav__item.has-sub:hover > .cfc-header-quick-nav__label::after,
.cfc-header-quick-nav__item.has-sub.is-open > .cfc-header-quick-nav__label::after,
.cfc-header-quick-nav__item.has-sub:focus-within > .cfc-header-quick-nav__label::after {
	color: var(--cfc-accent);
	transform: translateY(-45%) rotate(180deg);
}

/* Inside pages: current section is orange text. */
body.cfc-quick-nav-about .cfc-header-quick-nav__item[data-nav-section="about"] > a,
body.cfc-quick-nav-about .cfc-header-quick-nav__item[data-nav-section="about"] > .cfc-header-quick-nav__label,
body.cfc-quick-nav-locations .cfc-header-quick-nav__item[data-nav-section="locations"] > a,
body.cfc-quick-nav-locations .cfc-header-quick-nav__item[data-nav-section="locations"] > .cfc-header-quick-nav__label,
body.cfc-quick-nav-watch .cfc-header-quick-nav__item[data-nav-section="watch"] > a,
body.cfc-quick-nav-watch .cfc-header-quick-nav__item[data-nav-section="watch"] > .cfc-header-quick-nav__label,
body.cfc-quick-nav-give .cfc-header-quick-nav__item[data-nav-section="give"] > a,
body.cfc-quick-nav-give .cfc-header-quick-nav__item[data-nav-section="give"] > .cfc-header-quick-nav__label {
	color: var(--cfc-accent);
}

body.cfc-quick-nav-about .cfc-header-quick-nav__item[data-nav-section="about"].has-sub > .cfc-header-quick-nav__label::after,
body.cfc-quick-nav-locations .cfc-header-quick-nav__item[data-nav-section="locations"].has-sub > .cfc-header-quick-nav__label::after,
body.cfc-quick-nav-watch .cfc-header-quick-nav__item[data-nav-section="watch"].has-sub > .cfc-header-quick-nav__label::after {
	color: var(--cfc-accent);
}

.cfc-header-quick-nav__submenu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 13.75rem;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: #fff;
	border: 0.0625rem solid #f0f0f0;
	border-radius: 0.375rem;
	box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.5rem);
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
	z-index: 100;
}

.cfc-header-quick-nav__item.has-sub:hover > .cfc-header-quick-nav__submenu,
.cfc-header-quick-nav__item.has-sub.is-open > .cfc-header-quick-nav__submenu,
.cfc-header-quick-nav__item.has-sub:focus-within > .cfc-header-quick-nav__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.cfc-header-quick-nav__submenu a {
	display: block;
	padding: 0.5rem 1.25rem;
	color: var(--cfc-text);
	font-size: var(--cfc-text-sm);
	font-weight: 500;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.cfc-header-quick-nav__submenu a:hover,
.cfc-header-quick-nav__submenu a:focus-visible {
	background: var(--cfc-surface);
	color: var(--cfc-accent);
	outline: none;
	transform: translateX(0.1rem);
}

.cfc-header-quick-nav__submenu .is-indented a {
	padding-left: 2rem;
	font-size: 0.875rem;
	color: var(--cfc-text-muted);
}

.cfc-header-quick-nav__submenu .is-indented a:hover,
.cfc-header-quick-nav__submenu .is-indented a:focus-visible {
	padding-left: 2.1rem;
	color: var(--cfc-accent);
}

.cfc-main-nav {
	visibility: hidden;
	position: fixed;
	top: var(--cfc-admin-bar-height);
	left: 0;
	width: 100%;
	height: calc(100dvh - var(--cfc-admin-bar-height));
	background: #fff;
	padding-top: var(--cfc-header-height);
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 0.3s ease, visibility 0.3s;
	z-index: 1000;
}

.cfc-main-nav.is-open {
	visibility: visible;
	transform: translateX(0);
}

.cfc-nav-list {
	list-style: none;
	margin: 0;
	padding: 0 0 8rem;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.cfc-nav-list > li {
	position: relative;
	border-top: 0.0625rem solid var(--cfc-border);
}

.cfc-nav-list > li > a {
	display: block;
	padding: 1rem 1.25rem;
	color: var(--cfc-text);
	font-weight: 600;
	font-size: 1.0625rem;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.cfc-nav-list > li > a:not(.cfc-nav-no-link):hover,
.cfc-nav-list > li > a:not(.cfc-nav-no-link):focus-visible {
	color: var(--cfc-accent);
	background: var(--cfc-surface);
	outline: none;
}

.cfc-nav-list > li > a.cfc-nav-no-link {
	cursor: pointer;
}

.cfc-nav-list > li.has-sub > a {
	position: relative;
	padding-right: 3rem;
}

.cfc-nav-list > li.has-sub > a::after {
	content: "+";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.125rem;
	line-height: 1;
	transition: color 0.2s ease;
}

.cfc-nav-list > li.has-sub.is-open > a::after {
	content: "-";
	color: var(--cfc-accent);
}

.cfc-nav-list .submenu {
	display: none;
}

.cfc-nav-list li.has-sub.is-open > .submenu {
	display: block;
	position: static;
	transform: none;
	box-shadow: none;
	border: none;
	border-radius: 0;
	min-width: auto;
	width: 100%;
	padding: 0;
	background: #f9f9f9;
	opacity: 1;
	visibility: visible;
}

.cfc-nav-list .submenu li {
	display: block;
}

.cfc-nav-list .submenu a {
	display: block;
	padding: 0.8125rem 1.25rem 0.8125rem var(--cfc-nav-indent-child);
	color: var(--cfc-text);
	font-size: 1rem;
	font-weight: 500;
	white-space: normal;
	border-top: 0.0625rem solid var(--cfc-border);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cfc-nav-list .submenu a:hover,
.cfc-nav-list .submenu a:focus-visible {
	background: var(--cfc-surface);
	color: var(--cfc-accent);
	outline: none;
}

.cfc-nav-list > li > .submenu > li.cfc-nav-indented > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-happenings-child > a {
	padding: 0.5rem 1.25rem 0.5rem var(--cfc-nav-indent-grandchild);
	font-size: 0.875rem;
	line-height: 1.25;
	color: var(--cfc-text-muted);
	background: #f3f3f3;
}

.cfc-nav-list > li > .submenu > li.cfc-nav-indented > a:hover,
.cfc-nav-list > li > .submenu > li.cfc-nav-indented > a:focus-visible,
.cfc-nav-list > li > .submenu > li.cfc-nav-happenings-child > a:hover,
.cfc-nav-list > li > .submenu > li.cfc-nav-happenings-child > a:focus-visible {
	color: var(--cfc-accent);
	background: var(--cfc-surface);
	outline: none;
}

.cfc-nav-list > li > .submenu > li.cfc-nav-heading + li.cfc-nav-indented > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-heading + li.cfc-nav-happenings-child > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-indented + li.cfc-nav-indented > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-happenings-child + li.cfc-nav-happenings-child > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-indented + li.cfc-nav-happenings-child > a,
.cfc-nav-list > li > .submenu > li.cfc-nav-happenings-child + li.cfc-nav-indented > a {
	padding-top: 0.375rem;
}

.cfc-nav-list > li > .submenu > li.cfc-nav-heading > a {
	padding: 1rem 1.25rem 0.375rem var(--cfc-nav-indent-child);
	font-family: var(--cfc-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cfc-text-muted, #6b7280);
	cursor: default;
}

.cfc-nav-list > li > .submenu > li.cfc-nav-heading > a:hover,
.cfc-nav-list > li > .submenu > li.cfc-nav-heading > a:focus-visible {
	color: var(--cfc-text-muted, #6b7280);
	background: transparent;
}

/* Hamburger */
.cfc-hamburger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	position: relative;
	cursor: pointer;
	flex-shrink: 0;
	background: #fff;
	border: none;
	padding: 0;
	z-index: 1001;
}

.cfc-hamburger span {
	display: block;
	position: absolute;
	left: 0.4375rem;
	width: 1.875rem;
	height: 0.1875rem;
	background: var(--cfc-text);
	border-radius: 0.1875rem;
	transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease, background-color 0.2s ease;
}

.cfc-hamburger span:nth-child(1) { top: 0.8125rem; }
.cfc-hamburger span:nth-child(2) { top: 1.3125rem; }
.cfc-hamburger span:nth-child(3) { top: 1.8125rem; }

.cfc-hamburger.is-active span:nth-child(1) {
	transform: rotate(45deg);
	top: 1.3125rem;
}

.cfc-hamburger.is-active span:nth-child(2) {
	opacity: 0;
}

.cfc-hamburger.is-active span:nth-child(3) {
	transform: rotate(-45deg);
	top: 1.3125rem;
}

@media (max-width: 782px) {
	.cfc-header__inner {
		padding: 0 1.25rem;
	}
}

@media (min-width: 783px) {
	.cfc-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
	}

	.cfc-header__home {
		justify-self: start;
		grid-column: 1;
	}

	.cfc-header-quick-nav {
		display: block;
		justify-self: center;
		grid-column: 2;
		opacity: 1;
		visibility: visible;
		transition: opacity 0.15s ease, visibility 0s;
	}

	.cfc-header-quick-nav__list {
		justify-content: center;
	}

	.cfc-header__actions {
		justify-self: end;
		grid-column: 3;
	}

	.cfc-hamburger:hover span,
	.cfc-hamburger:focus-visible span {
		background: var(--cfc-accent);
	}

	.cfc-main-nav {
		transform: none;
		opacity: 0;
		transition: opacity 0.3s ease, visibility 0s linear 0.3s;
	}

	.cfc-main-nav.is-open {
		opacity: 1;
		transform: none;
		transition: opacity 0.3s ease, visibility 0s;
	}

	.cfc-main-nav .cfc-nav-list {
		width: clamp(48rem, 75vw, 75rem);
		max-width: 100%;
		margin-inline: auto;
		padding-inline: 1.5rem;
	}

	.cfc-nav-list > li:hover > a,
	.cfc-nav-list > li:focus-within > a {
		color: var(--cfc-accent);
		background: var(--cfc-surface);
		outline: none;
	}

	.cfc-nav-list > li.has-sub:hover > a::after,
	.cfc-nav-list > li.has-sub:focus-within > a::after {
		color: var(--cfc-accent);
	}
}

body.cfc-nav-resizing .cfc-main-nav {
	transition: none !important;
}

/* --- Homepage hero (animated logo) --- */

body.cfc-hero-pending .cfc-main--home > :not(.cfc-hero),
body.cfc-hero-pending .cfc-site-footer,
body.cfc-hero-pending .cfc-hero__new {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

body.cfc-hero-pending:not(.cfc-hero-new-ready):not(.cfc-hero-ready) .cfc-hero::before {
	opacity: 0;
}

body.cfc-hero-animate.cfc-hero-new-ready .cfc-hero::before,
body.cfc-hero-animate.cfc-hero-ready .cfc-hero::before {
	opacity: 1;
	transition: opacity var(--cfc-hero-bg-fade-duration, var(--cfc-hero-new-fade-duration, 0.3s)) ease-out;
}

body.cfc-hero-ready:not(.cfc-hero-pending) .cfc-hero::before,
body.cfc-hero-new-ready:not(.cfc-hero-pending) .cfc-hero::before {
	opacity: 1;
}

body.cfc-hero-pending .cfc-home-kingdom-values.is-expanded {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.cfc-hero-animate.cfc-hero-new-ready .cfc-hero__new {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity var(--cfc-hero-new-fade-duration, 0.3s) ease-out;
}

body.cfc-hero-new-ready:not(.cfc-hero-pending) .cfc-hero__new {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.cfc-hero-animate.cfc-hero-ready .cfc-main--home > :not(.cfc-hero),
body.cfc-hero-animate.cfc-hero-ready .cfc-site-footer {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity var(--cfc-below-hero-fade-duration, 0.3s) ease-out;
}

body.cfc-hero-ready:not(.cfc-hero-pending) .cfc-main--home > :not(.cfc-hero),
body.cfc-hero-ready:not(.cfc-hero-pending) .cfc-site-footer {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.cfc-hero {
	position: relative;
	isolation: isolate;
	background-color: var(--cfc-bg);
	min-height: calc(58dvh - var(--cfc-header-height) - var(--cfc-admin-bar-height));
	overflow: hidden;
}

.cfc-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	/* Image + wash share one opacity so they fade in lockstep. */
	background:
		linear-gradient(
			180deg,
			rgba(248, 248, 248, 0.4) 0%,
			rgba(248, 248, 248, 0.5) 42%,
			rgba(248, 248, 248, 0.6) 100%
		),
		linear-gradient(
			rgba(248, 248, 248, calc(1 - var(--cfc-hero-bg-image-opacity))),
			rgba(248, 248, 248, calc(1 - var(--cfc-hero-bg-image-opacity)))
		),
		url("../images/hero-background.webp") center / cover no-repeat;
	transform: scale(1.06);
	z-index: 0;
	pointer-events: none;
	opacity: 1;
}

/* Unscaled bottom fade — always on, so it tracks the image as that layer fades in. */
.cfc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		transparent 0,
		transparent calc(100% - 160px),
		var(--cfc-bg) calc(100% - 1px),
		var(--cfc-bg) 100%
	);
	z-index: 1;
	pointer-events: none;
}

.cfc-hero__layout {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(100%, var(--cfc-home-split-max));
	max-width: 100%;
	margin-inline: auto;
	padding-inline: var(--cfc-home-split-gutter);
	min-height: inherit;
	position: relative;
	z-index: 2;
}

.cfc-hero__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding-block: clamp(1.25rem, 3vw, 2.5rem);
	background: transparent;
}

.cfc-hero__brand-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(0.75rem, 2vw, 1.25rem);
	width: 100%;
	max-width: var(--cfc-home-column-max);
	margin-inline: auto;
	text-align: center;
}

.cfc-hero__new {
	width: 100%;
	margin-top: 0;
	padding-top: clamp(1rem, 2.5vw, 1.75rem);
	background: transparent;
}

.cfc-hero__new-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(1rem, 2vw, 1.25rem);
	width: 100%;
	text-align: center;
}

.cfc-hero__new-copy {
	width: 100%;
	max-width: var(--cfc-home-column-max);
}

.cfc-hero__new-title {
	margin: 0;
	font-size: clamp(1.5rem, 3.5vw, 2.125rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-accent);
	text-align: center;
}

.cfc-hero__new-text {
	margin: 0.125rem auto 0;
	max-width: 30rem;
	font-size: var(--cfc-text-base);
	font-weight: 500;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-body);
}

@media (min-width: 48rem) {
	:root {
		--cfc-home-column-max: 52rem;
		--cfc-home-prose-max: 42rem;
	}
}

.cfc-hero__new .cfc-home-btn,
.cfc-home-kingdom-values__preview-content .cfc-home-btn {
	align-self: center;
	flex-shrink: 0;
}

.cfc-hero__logo {
	flex-shrink: 0;
	display: grid;
	background: transparent;
}

.cfc-hero__logo > canvas,
.cfc-hero__logo > .cfc-hero__logo-img {
	grid-area: 1 / 1;
	width: clamp(var(--cfc-hero-logo-size-min), 15vw, 10.75rem) !important;
	height: auto !important;
	display: block;
	background: transparent;
}

.cfc-hero__logo-img {
	opacity: 0;
	transition: opacity 0.4s ease;
}

.cfc-hero__logo-img.is-visible {
	opacity: 1;
}

.cfc-hero__text {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cfc-hero__reveal {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(0.25rem, 0.75vw, 0.5rem);
	position: relative;
	overflow: hidden;
	padding-bottom: 0.08em;
}

.cfc-hero__text-mask {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--cfc-bg);
	transform: translateX(0);
	transition: transform 0.1s linear;
}

.cfc-hero__name {
	margin: 0;
	font-size: clamp(1.65rem, 3.6vw, 2.25rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--cfc-text);
	text-align: center;
}

.cfc-hero__motto {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.cfc-hero__text-line {
	margin: 0;
	font-size: clamp(var(--cfc-hero-motto-size-min), 2.25vw, 1.375rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: var(--cfc-accent);
	text-align: center;
	white-space: nowrap;
}

.cfc-hero__text-line + .cfc-hero__text-line {
	margin-top: -0.06em;
}

@media (max-width: 48rem) {
	.cfc-hero__text-line {
		white-space: normal;
	}
}

/* --- Page content --- */

.cfc-main {
	padding: clamp(2rem, 5vw, 3.5rem) 1.5rem 4rem;
}

.cfc-main--home {
	padding: 0;
	--cfc-text-muted: #424242;
	--cfc-text-subtle: #505050;
}

.cfc-home-section-title {
	margin: 0;
	font-size: var(--cfc-heading-section);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
}

.cfc-home-section-lead {
	margin: 0.5rem 0 0;
	font-size: clamp(1rem, 1.75vw, 1.125rem);
	line-height: 1.5;
	color: var(--cfc-text-muted);
}

.cfc-home-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.8125rem 1.375rem;
	border: none;
	border-radius: 0.25rem;
	background: var(--cfc-accent);
	color: #fff;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	appearance: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cfc-home-btn:hover,
.cfc-home-btn:focus-visible {
	background: var(--cfc-accent-hover);
	color: #fff;
	outline: none;
}

.cfc-home-btn__icon {
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
}

.cfc-home-text-link {
	display: inline-block;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cfc-accent);
	text-decoration: none;
}

.cfc-home-text-link:hover,
.cfc-home-text-link:focus-visible {
	color: var(--cfc-accent-hover);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	outline: none;
}

/* --- Homepage: campus cards --- */

.cfc-home-locations {
	padding: clamp(2.5rem, 5vw, 4rem) 1.5rem;
}

.cfc-home-locations__intro,
.cfc-home-blurbs__intro {
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
	text-align: center;
}

.cfc-home-locations__intro .cfc-home-section-title {
	margin: 0;
	font-size: var(--cfc-heading-subsection);
}

.cfc-home-locations__grid,
.cfc-home-blurbs__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}

.cfc-home-location-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 2px solid var(--cfc-border);
	border-radius: 0.375rem;
	overflow: hidden;
	box-shadow: 0 0.125rem 0.5rem rgb(0 0 0 / 0.04);
	color: inherit;
	text-decoration: none;
}

.cfc-home-location-card--link {
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cfc-home-location-card--link:hover,
.cfc-home-location-card--link:focus-visible {
	border-color: rgba(204, 85, 0, 0.55);
	box-shadow: 0 0.5rem 1.25rem rgb(0 0 0 / 0.08);
	outline: none;
}

.cfc-home-location-card--link:focus-visible {
	box-shadow: var(--cfc-focus-ring);
}

.cfc-home-location-card__media {
	display: block;
	position: relative;
	isolation: isolate;
	aspect-ratio: 5 / 3;
	overflow: hidden;
	background: #ececec;
}

.cfc-home-location-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(1) contrast(0.92);
	transition: transform 0.25s ease;
}

.cfc-home-locations .cfc-home-location-card__media:has(img)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: radial-gradient(
		ellipse 90% 82% at 50% 42%,
		transparent 52%,
		rgb(0 0 0 / 0.22) 100%
	);
	pointer-events: none;
}

.cfc-home-location-card__media:has(img)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(
		165deg,
		rgb(34 162 195 / 0.24) 0%,
		rgb(34 162 195 / 0.16) 100%
	);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.cfc-home-location-card--link:hover .cfc-home-location-card__media img,
.cfc-home-location-card--link:focus-visible .cfc-home-location-card__media img {
	transform: scale(1.03);
}

.cfc-home-location-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.375rem;
	padding: 1rem 1rem 1.125rem;
	transition: color 0.25s ease;
}

.cfc-home-location-card__title {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--cfc-text);
	transition: color 0.25s ease;
}

.cfc-home-location-card--link:hover .cfc-home-location-card__body,
.cfc-home-location-card--link:focus-visible .cfc-home-location-card__body,
.cfc-home-location-card--link:hover .cfc-home-location-card__body *,
.cfc-home-location-card--link:focus-visible .cfc-home-location-card__body * {
	color: var(--cfc-accent);
}

.cfc-home-location-card__service {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--cfc-text-subtle);
	transition: color 0.25s ease;
}

.cfc-home-location-card__cta {
	display: inline-block;
	margin-top: auto;
	padding-top: 0.375rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cfc-accent);
	transition: color 0.25s ease;
}

.cfc-home-location-card__media--find {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(145deg, rgb(34 162 195 / 0.14), rgb(34 162 195 / 0.05));
	transition: background 0.25s ease;
}

.cfc-home-location-card__find-label {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--cfc-accent);
}

.cfc-home-location-card--find.cfc-home-location-card--link:hover .cfc-home-location-card__media--find,
.cfc-home-location-card--find.cfc-home-location-card--link:focus-visible .cfc-home-location-card__media--find {
	background: linear-gradient(145deg, rgb(34 162 195 / 0.2), rgb(34 162 195 / 0.08));
}

/* --- Homepage: Life at CFC blurbs --- */

.cfc-home-blurbs {
	padding: clamp(2.5rem, 5vw, 4rem) 1.5rem 3rem;
	background: var(--cfc-bg);
	border-top: 1px solid var(--cfc-border);
}

.cfc-home-blurbs__intro .cfc-home-section-title {
	font-size: var(--cfc-heading-subsection);
}

.cfc-home-blurb-card {
	display: block;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.375rem;
	color: inherit;
	text-decoration: none;
}

.cfc-home-blurb-card--link {
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.cfc-home-blurb-card--link:hover,
.cfc-home-blurb-card--link:focus-visible {
	border-color: rgba(204, 85, 0, 0.35);
	background: #fff;
	box-shadow: 0 0.375rem 1rem rgba(0, 0, 0, 0.06);
	outline: none;
}

.cfc-home-blurb-card--link:focus-visible {
	box-shadow: var(--cfc-focus-ring);
}

.cfc-home-blurb-card--link:hover .cfc-home-blurb-card__title,
.cfc-home-blurb-card--link:focus-visible .cfc-home-blurb-card__title,
.cfc-home-blurb-card--link:hover .cfc-home-blurb-card__cta,
.cfc-home-blurb-card--link:focus-visible .cfc-home-blurb-card__cta {
	color: var(--cfc-accent);
}

.cfc-home-blurb-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	margin: 0 auto 1rem;
	color: var(--cfc-text);
	filter: grayscale(1);
	transition: color 0.2s ease, filter 0.2s ease;
}

.cfc-home-blurb-card--link:hover .cfc-home-blurb-card__icon,
.cfc-home-blurb-card--link:focus-visible .cfc-home-blurb-card__icon {
	color: var(--cfc-accent);
	filter: none;
}

.cfc-home-blurb-card__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.cfc-home-blurb-card__icon--worship svg path,
.cfc-home-blurb-card__icon--missions svg path {
	stroke: currentColor;
	stroke-linejoin: round;
	stroke-linecap: round;
	paint-order: stroke fill;
}

.cfc-home-blurb-card__icon--worship svg path {
	stroke-width: 14;
}

.cfc-home-blurb-card__icon--missions svg path {
	stroke-width: 10;
}

.cfc-home-blurb-card__title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--cfc-text);
	text-align: center;
	transition: color 0.2s ease;
}

.cfc-home-blurb-card__text {
	margin: 0.75rem 0 1rem;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--cfc-text-muted);
}

.cfc-home-blurb-card__cta {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cfc-accent);
	text-align: center;
	text-decoration: none;
	transition: color 0.2s ease;
}

.cfc-home-blurb-card__actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: center;
}

.cfc-home-blurb-card--actions .cfc-home-blurb-card__cta:hover,
.cfc-home-blurb-card--actions .cfc-home-blurb-card__cta:focus-visible {
	color: var(--cfc-accent-dark, #a04400);
	outline: none;
	text-decoration: underline;
}

.cfc-home-blurb-card--actions .cfc-home-blurb-card__text:last-child {
	margin-bottom: 0.875rem;
}

.cfc-home-blurb-card:not(.cfc-home-blurb-card--link) .cfc-home-blurb-card__text:last-child {
	margin-bottom: 0;
}

.cfc-home-blurb-card--link .cfc-home-blurb-card__text:last-of-type {
	margin-bottom: 0.875rem;
}

@media (max-width: 64rem) {
	.cfc-home-locations__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 56rem) {
	.cfc-home-blurbs__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {
	.cfc-home-locations__grid,
	.cfc-home-blurbs__grid {
		grid-template-columns: 1fr;
	}

	/* Homepage: keep only the Find a Location card on mobile. */
	.cfc-home-locations .cfc-home-location-card:not(.cfc-home-location-card--find) {
		display: none;
	}
}

.cfc-page__header {
	margin-bottom: 2rem;
}

.cfc-page__title {
	margin: 0;
	font-size: var(--cfc-heading-page);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.025em;
	color: var(--cfc-text-page-title);
}

.cfc-page__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(11rem, 14rem);
	gap: clamp(1.5rem, 4vw, 2.5rem);
	align-items: start;
}

.cfc-page__body:not(:has(.cfc-page__sidebar)) {
	grid-template-columns: minmax(0, 42rem);
}

.cfc-page__body.cfc-page__body--live,
.cfc-page__body.cfc-page__body--live:not(:has(.cfc-page__sidebar)) {
	grid-template-columns: minmax(0, 1fr);
}

.cfc-page__body--live .entry-content {
	max-width: none;
	width: 100%;
}

.cfc-live {
	margin-top: 1.25rem;
}

.cfc-live__intro {
	margin: 0 0 1.25rem;
	color: var(--cfc-text-heading-sub);
	font-size: var(--cfc-text-lg);
}

.cfc-live__chooser {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
}

.cfc-live__campus {
	appearance: none;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	min-width: min(100%, 10.5rem);
	margin: 0;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--cfc-border);
	border-radius: 0.4rem;
	background: #fff;
	color: var(--cfc-text-heading);
	font-family: var(--cfc-font-heading);
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.cfc-live__campus-name {
	font-size: var(--cfc-text-sm);
	font-weight: 650;
	letter-spacing: 0.01em;
}

.cfc-live__campus-time {
	font-family: var(--cfc-font-body);
	font-size: 0.8rem;
	font-weight: 500;
	color: var(--cfc-text-muted);
}

.cfc-live__campus:hover,
.cfc-live__campus:focus-visible {
	border-color: rgb(204 85 0 / 0.45);
	outline: none;
}

.cfc-live__campus:focus-visible {
	box-shadow:
		0 0 0 0.125rem #fff,
		0 0 0 0.3rem var(--cfc-accent);
}

.cfc-live__campus.is-active {
	border-color: var(--cfc-accent);
	background: rgb(204 85 0 / 0.08);
}

.cfc-live__campus.is-active .cfc-live__campus-time {
	color: var(--cfc-accent-hover);
}

.cfc-live__panel {
	margin: 0;
}

.cfc-live__panel-header {
	margin-bottom: 0.85rem;
}

.cfc-live__panel-title {
	margin: 0;
	font-family: var(--cfc-font-heading);
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-text-heading);
}

.cfc-live__panel-time {
	margin: 0.25rem 0 0;
	color: var(--cfc-text-muted);
	font-size: var(--cfc-text-sm);
}

.cfc-live__embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 0.45rem;
	background: #1c1815;
	box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.12);
}

.cfc-live__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.cfc-live__actions {
	margin: 0 0 0.85rem;
}

.cfc-live__external {
	display: inline-flex;
	align-items: center;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-text-sm);
	font-weight: 650;
	color: var(--cfc-accent);
	text-decoration: none;
}

.cfc-live__external:hover,
.cfc-live__external:focus-visible {
	color: var(--cfc-accent-hover);
	text-decoration: underline;
}

.cfc-live__footnote {
	margin: 1.75rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--cfc-border);
	color: var(--cfc-text-muted);
	font-size: var(--cfc-text-sm);
}

.cfc-live__footnote a {
	color: var(--cfc-accent);
	font-weight: 600;
	text-decoration: none;
}

.cfc-live__footnote a:hover,
.cfc-live__footnote a:focus-visible {
	text-decoration: underline;
}

@media (max-width: 40rem) {
	.cfc-live__campus {
		flex: 1 1 calc(50% - 0.5rem);
		min-width: 0;
	}
}

.entry-content {
	font-size: inherit;
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-body);
}

.cfc-page__sidebar {
	padding: 1rem 1.125rem;
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.25rem;
}

@media (min-width: 49rem) {
	.cfc-page__sidebar {
		position: sticky;
		top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height) + 1.25rem);
		align-self: start;
		max-height: calc(100dvh - var(--cfc-header-height) - var(--cfc-admin-bar-height) - 2.5rem);
		overflow-y: auto;
	}
}

.cfc-page__sidebar-title {
	margin: 0 0 0.75rem;
	font-family: var(--cfc-font-heading);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cfc-text-subtle);
}

.cfc-page__sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cfc-page__sidebar-list li + li {
	margin-top: 0.5rem;
}

.cfc-page__sidebar-list a {
	display: block;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text);
	text-decoration: none;
}

.cfc-page__sidebar-list a:hover,
.cfc-page__sidebar-list a:focus-visible {
	color: var(--cfc-accent);
	outline: none;
}

.cfc-page__sidebar-current {
	display: block;
	font-size: 0.9375rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--cfc-accent);
	cursor: default;
}

.cfc-section-hub {
	margin-top: 2rem;
}

.cfc-section-hub__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

.cfc-section-hub__link {
	display: block;
	padding: 1rem 0;
	border-top: 1px solid var(--cfc-border);
	text-decoration: none;
	color: inherit;
	transition: color 0.15s ease;
}

.cfc-section-hub__item:last-child .cfc-section-hub__link {
	border-bottom: 1px solid var(--cfc-border);
}

.cfc-section-hub__title {
	display: block;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-heading-card);
	font-weight: 600;
	letter-spacing: var(--cfc-tracking-heading);
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text-heading);
}

.cfc-section-hub__excerpt {
	display: block;
	margin-top: 0.35rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-heading-sub);
}

.cfc-section-hub__link:hover .cfc-section-hub__title,
.cfc-section-hub__link:focus-visible .cfc-section-hub__title {
	color: var(--cfc-accent);
}

.cfc-section-hub__link:focus-visible {
	outline: none;
	box-shadow: var(--cfc-focus-ring);
}

.entry-content > * + * {
	margin-top: 1.125rem;
}

.entry-content :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--cfc-font-heading);
	letter-spacing: var(--cfc-tracking-heading);
	line-height: var(--cfc-leading-heading);
}

.entry-content :is(h1, h2, h3, h4, h5, h6):first-child {
	margin-top: 0;
}

.entry-content h1 {
	margin-top: 0;
	margin-bottom: 0.75rem;
	font-size: var(--cfc-heading-display);
	font-weight: 700;
	color: var(--cfc-text-heading);
}

.entry-content h2 {
	margin-top: 2.5rem;
	margin-bottom: 0.75rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	color: var(--cfc-text-heading);
}

.entry-content h3 {
	margin-top: 1.75rem;
	margin-bottom: 0.5rem;
	font-size: var(--cfc-heading-card);
	font-weight: 600;
	color: var(--cfc-text-heading-sub);
	letter-spacing: -0.01em;
}

.entry-content h2 + h3 {
	margin-top: 1.125rem;
}

.entry-content h4 {
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
	font-size: var(--cfc-text-lg);
	font-weight: 600;
	color: var(--cfc-text-heading-sub);
}

.entry-content p {
	max-width: 68ch;
}

.cfc-copyable {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.cfc-copy-btn {
	appearance: none;
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0.35rem;
	background: transparent;
	color: var(--cfc-text-muted);
	cursor: pointer;
	vertical-align: middle;
	transition: color 0.15s ease, background 0.15s ease;
}

.cfc-copy-btn svg {
	display: block;
	width: 1.05rem;
	height: 1.05rem;
}

.cfc-copy-btn:hover,
.cfc-copy-btn:focus-visible {
	color: var(--cfc-accent);
	background: rgb(204 85 0 / 0.1);
}

.cfc-copy-btn.is-copied {
	color: var(--cfc-accent);
}

.cfc-copy-tip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.4rem);
	z-index: 5;
	padding: 0.28rem 0.55rem;
	border-radius: 0.35rem;
	background: var(--cfc-text-heading);
	color: #fff;
	font-family: var(--cfc-font-heading);
	font-size: 0.7rem;
	font-weight: 650;
	letter-spacing: 0.02em;
	line-height: 1;
	white-space: nowrap;
	pointer-events: none;
	transform: translate(-50%, 0.2rem);
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.cfc-copy-tip.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.cfc-copy-tip.is-leaving {
	opacity: 0;
	transform: translate(-50%, -0.15rem);
}

.entry-content li {
	line-height: var(--cfc-leading-body);
}

.entry-content blockquote,
.entry-content .wp-block-quote {
	margin: 1.75rem 0;
	padding: 0.35rem 0 0.35rem 1.25rem;
	max-width: 40rem;
	border: 0;
	border-left: 0.2rem solid var(--cfc-accent);
	background: transparent;
	box-shadow: none;
	font-size: var(--cfc-text-lg);
	font-style: italic;
	line-height: var(--cfc-leading-relaxed);
	color: var(--cfc-text-heading-sub);
}

.entry-content blockquote p,
.entry-content .wp-block-quote p {
	margin: 0;
	max-width: none;
	font-size: inherit;
	font-style: inherit;
	line-height: inherit;
	color: inherit;
}

.entry-content blockquote p + p,
.entry-content .wp-block-quote p + p {
	margin-top: 0.75rem;
}

.entry-content blockquote cite,
.entry-content .wp-block-quote cite {
	display: block;
	margin-top: 0.75rem;
	font-size: var(--cfc-text-sm);
	font-style: normal;
	font-weight: 600;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
}

.entry-content .wp-block-image {
	display: block;
	max-width: 100%;
	margin: 1.5rem 0;
	padding: 0.4375rem;
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.5rem;
	box-shadow:
		0 0.25rem 0.875rem rgba(0, 0, 0, 0.07),
		0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.04);
	overflow: hidden;
}

.entry-content .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0.3125rem;
}

.entry-content .wp-block-image figcaption {
	margin: 0.625rem 0.125rem 0.125rem;
	font-size: var(--cfc-text-xs);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
	text-align: center;
}

.entry-content .wp-block-image.alignleft,
.entry-content .wp-block-image.alignright {
	width: min(100%, 18rem);
	max-width: 46%;
	margin-top: 0.35rem;
	margin-bottom: 1rem;
}

.entry-content .wp-block-image.alignleft {
	float: left;
	margin-right: 1.25rem;
}

.entry-content .wp-block-image.alignright {
	float: right;
	margin-left: 1.25rem;
}

.entry-content .wp-block-image.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

.entry-content .wp-block-image.aligncenter.is-resized {
	width: fit-content;
	max-width: 100%;
}

.entry-content .wp-block-image.is-resized img {
	width: auto;
	max-width: 100%;
	height: auto;
}

.entry-content :is(h1, h2, h3, h4, h5, h6) {
	clear: both;
}

@media (max-width: 40rem) {
	.entry-content .wp-block-image.alignleft,
	.entry-content .wp-block-image.alignright {
		float: none;
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

.cfc-leaders {
	margin-top: 1.5rem;
}

.cfc-leaders__featured {
	margin-bottom: 1.5rem;
}

.cfc-leaders__grid {
	display: grid;
	gap: 1.5rem 2rem;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 40rem) {
	.cfc-leaders__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.cfc-leader-card {
	display: grid;
	gap: 1rem;
	align-items: start;
}

@media (min-width: 30rem) {
	.cfc-leader-card {
		grid-template-columns: minmax(0, 11.25rem) minmax(0, 1fr);
	}
}

.cfc-leaders__featured .cfc-leader-card {
	max-width: 30rem;
}

.cfc-leader-card__photo img {
	display: block;
	width: 100%;
	max-width: 11.25rem;
	height: auto;
	border-radius: 0.3125rem;
}

.cfc-leader-card__name {
	margin: 0;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: 1.2;
	color: var(--cfc-accent);
}

.cfc-leader-card__role,
.cfc-leader-card__email {
	margin: 0.25rem 0 0;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
}

.cfc-leader-card__bio {
	margin-top: 0.5rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-relaxed);
	color: var(--cfc-text);
}

.cfc-leader-card__bio p {
	margin: 0 0 0.75rem;
}

.cfc-leader-card__bio p:last-child {
	margin-bottom: 0;
}


.cfc-leader-lists {
	margin-top: 2.5rem;
	display: grid;
	gap: 2rem;
}

.cfc-leader-list__title {
	margin: 0 0 0.75rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	text-transform: uppercase;
	color: var(--cfc-accent);
}

.cfc-leader-list__names {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 1;
	column-gap: 2rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-relaxed);
	color: var(--cfc-text);
}

@media (min-width: 40rem) {
	.cfc-leader-list__names {
		columns: 2;
	}
}

.cfc-leader-list__names li {
	break-inside: avoid;
	margin: 0 0 0.35rem;
}
.cfc-location-leader {
	margin-top: 2rem;
}

.cfc-location-leader__title {
	margin: 0 0 1rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	text-transform: uppercase;
	color: var(--cfc-accent);
}

.cfc-location-map {
	width: 100%;
	overflow: hidden;
	border-radius: 0.35rem;
	border: 1px solid #ddd;
	background: #fff;
	box-shadow: 0 0.35rem 1.25rem rgba(42, 38, 35, 0.08);
	scroll-margin-top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height) + 1rem);
}

.cfc-location-map__heading {
	margin: 0;
	padding: 1rem 1rem 0.35rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
}

.cfc-location-map__address {
	margin: 0;
	padding: 0 1rem 0.75rem;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--cfc-text-muted);
}

.cfc-location-map__address a {
	color: var(--cfc-accent);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-location-map__snapshot {
	display: block;
	border-top: 1px solid #eee;
	line-height: 0;
	outline: none;
}

.cfc-location-map__snapshot:focus-visible {
	box-shadow: inset 0 0 0 3px var(--cfc-accent, #1e5a8a);
}

.cfc-location-map__snapshot-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 2;
	object-fit: cover;
	border: 0;
	transition: opacity 0.2s ease;
}

.cfc-location-map__snapshot:hover .cfc-location-map__snapshot-img,
.cfc-location-map__snapshot:focus-visible .cfc-location-map__snapshot-img {
	opacity: 0.92;
}

/* ==========================================================================
   Campus landing pages
   ========================================================================== */

.cfc-main--campus {
	padding: 0 0 4rem;
}

.cfc-main--campus > .page-width {
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.cfc-page__body--campus {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(12rem, 15rem);
	gap: clamp(1.5rem, 4vw, 2.5rem);
	align-items: start;
}

.cfc-campus-content {
	max-width: 46rem;
}

.cfc-campus-sidebar {
	padding: 1rem 1.125rem;
}

.cfc-campus-visit {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.cfc-campus-visit__title {
	margin: 0 0 0.15rem;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-text-sm);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	text-transform: none;
	color: var(--cfc-text-heading);
}

.cfc-campus-visit__item + .cfc-campus-visit__item {
	padding-top: 0.85rem;
	border-top: 1px solid var(--cfc-border);
}

.cfc-campus-visit__label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: var(--cfc-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cfc-accent);
}

.cfc-campus-visit__value {
	display: block;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-body);
}

.cfc-campus-visit__value a {
	color: var(--cfc-text-heading);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-campus-visit__directions {
	margin: 0.35rem 0 0;
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	line-height: var(--cfc-leading-snug);
}

.cfc-campus-visit__directions a {
	color: var(--cfc-text);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-campus-visit__directions a:hover,
.cfc-campus-visit__directions a:focus-visible {
	color: var(--cfc-text-heading);
}

@media (max-width: 48.99rem) {
	.cfc-page__body--campus {
		grid-template-columns: 1fr;
	}

	.cfc-campus-sidebar {
		order: -1;
	}

	.cfc-campus-visit {
		display: grid;
		gap: 1rem 1.25rem;
	}

	@media (min-width: 28rem) {
		.cfc-campus-visit {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.cfc-campus-visit__title {
			grid-column: 1 / -1;
		}

		.cfc-campus-visit__item + .cfc-campus-visit__item {
			padding-top: 0;
			border-top: 0;
		}
	}
}

.cfc-campus-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	/* Width-based height avoids mobile URL-bar vh jumps; image ratio reserved via inline CSS vars. */
	height: clamp(22rem, calc(100vw * var(--cfc-campus-hero-h, 9) / var(--cfc-campus-hero-w, 16)), 36rem);
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
	overflow: hidden;
	background: #1a1a1a;
	color: #fff;
	contain: layout paint;
}

.cfc-campus-hero__media {
	position: absolute;
	inset: 0;
}

.cfc-campus-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(0.72) brightness(0.82) contrast(0.94);
}

.cfc-campus-hero__media--empty {
	background: linear-gradient(145deg, #2a2623 0%, #5a534d 100%);
}

.cfc-campus-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			180deg,
			rgba(26, 26, 26, 0.28) 0%,
			rgba(26, 26, 26, 0.42) 45%,
			rgba(26, 26, 26, 0.72) 100%
		),
		rgba(42, 38, 35, 0.22);
}

.cfc-campus-hero__inner {
	position: relative;
	z-index: 1;
	width: clamp(48rem, 75vw, 75rem);
	max-width: 100%;
	margin-inline: auto;
	padding-top: clamp(4rem, 12vw, 6rem);
	padding-bottom: clamp(1.75rem, 4vw, 2.75rem);
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}

.cfc-campus-hero__brand {
	margin: 0;
	font-family: var(--cfc-font-heading);
	font-size: clamp(2.5rem, 8vw, 4rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: var(--cfc-tracking-heading);
}

/* Gouverneur uses the full NCCF name instead of “CFC Gouverneur”. */
body.cfc-campus-gouverneur .cfc-campus-hero__brand {
	font-size: clamp(1.65rem, 5.2vw, 2.75rem);
	max-width: 18ch;
	line-height: 1.1;
}

.cfc-campus-hero__time {
	margin: 0.65rem 0 0;
	font-size: var(--cfc-text-lg);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.cfc-campus-hero__tagline {
	margin: 0.75rem 0 0;
	max-width: 32rem;
	font-size: var(--cfc-text-base);
	line-height: var(--cfc-leading-snug);
	color: rgba(255, 255, 255, 0.88);
}

.cfc-campus-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1.25rem;
	margin-top: 1.35rem;
}

.cfc-campus-section__title {
	margin: 0 0 0.85rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-text-heading);
}

.cfc-campus-story,
.cfc-campus-at,
.cfc-campus-events,
.cfc-campus-content .cfc-photo-gallery {
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
}

.cfc-campus-story .entry-content,
.cfc-campus-story p {
	margin-top: 0;
}

.cfc-campus-at__grid {
	display: grid;
	gap: 1.35rem 1.75rem;
}

@media (min-width: 40rem) {
	.cfc-campus-at__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.cfc-campus-at__subtitle {
	margin: 0 0 0.45rem;
	font-size: var(--cfc-text-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--cfc-accent);
}

.cfc-campus-at__text {
	margin: 0;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-body);
}

.cfc-campus-events .cfc-campus-section__title {
	margin-bottom: 0.5rem;
}

.cfc-campus-events__intro {
	margin: 0 0 1rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-body);
}

.cfc-campus-events__all {
	font-weight: 600;
	color: var(--cfc-accent);
	text-decoration: none;
}

.cfc-campus-events__all:hover,
.cfc-campus-events__all:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-campus-events__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 40rem) {
	.cfc-campus-events__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: repeat(var(--cfc-campus-event-rows, 4), auto);
		grid-auto-flow: column;
	}
}

.cfc-campus-events__item {
	display: grid;
	gap: 0.15rem;
	padding: 0.85rem 0;
	border-top: 1px solid var(--cfc-border);
}

.cfc-campus-events__item:last-child,
.cfc-campus-events__item--col-end {
	border-bottom: 1px solid var(--cfc-border);
}

.cfc-campus-events__when {
	font-size: var(--cfc-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--cfc-text-muted);
}

.cfc-campus-events__name {
	font-size: var(--cfc-text-base);
	font-weight: 600;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-heading);
}

.cfc-campus-events__source {
	font-size: var(--cfc-text-xs);
	font-style: italic;
	font-weight: 500;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
}

.cfc-campus-events__empty {
	margin: 0;
	padding: 0.85rem 0 0;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
}

.cfc-campus-content .cfc-location-map,
.cfc-campus-content .cfc-location-leader {
	margin-top: 0;
	margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.cfc-find-locations-map {
	width: 100%;
	margin-top: 1.5rem;
	margin-bottom: 0;
}

.cfc-find-locations-cards {
	margin-top: clamp(1.5rem, 3vw, 2rem);
}

.cfc-find-locations-cards__title {
	margin: 0 0 clamp(1rem, 2vw, 1.5rem);
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	text-align: left;
	color: var(--cfc-text);
}

.cfc-find-locations-cards .cfc-home-locations__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

@media (max-width: 40rem) {
	.cfc-find-locations-cards .cfc-home-locations__grid {
		grid-template-columns: 1fr;
	}
}

.cfc-find-locations-map__canvas {
	width: 100%;
	height: 29rem;
	border-radius: 0.25rem;
	border: 1px solid var(--cfc-border);
	overflow: hidden;
	background: #e8e8e8;
	z-index: 0;
}

.cfc-map-marker-wrap {
	position: relative;
	width: 1.125rem;
	height: 1.125rem;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	font: inherit;
	color: inherit;
}

.cfc-map-marker-wrap:focus-visible {
	outline: none;
}

.cfc-map-marker-wrap:focus-visible .cfc-map-marker {
	box-shadow:
		0 1px 4px rgba(0, 0, 0, 0.35),
		var(--cfc-focus-ring);
}

.cfc-map-marker {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: var(--cfc-accent);
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.cfc-map-marker__label {
	position: absolute;
	left: 50%;
	top: calc(100% + 0.3rem);
	transform: translateX(-50%);
	padding: 0.15rem 0.45rem;
	border-radius: 0.2rem;
	background: rgb(255 255 255 / 0.94);
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.16);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cfc-text);
	white-space: nowrap;
}

.cfc-map-popup {
	margin: 0;
	line-height: 1.45;
}

.cfc-map-popup__title {
	margin: 0 0 0.4rem;
	font-size: 1.3125rem;
	font-weight: 700;
	line-height: 1.2;
	color: #1a1a1a;
}

.cfc-map-popup__title-link {
	color: inherit;
	text-decoration: none;
}

.cfc-map-popup__title-link:hover,
.cfc-map-popup__title-link:focus-visible {
	color: var(--cfc-accent);
	text-decoration: underline;
	outline: none;
}

.cfc-map-popup__service {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--cfc-text-muted);
}

.cfc-map-popup__directions {
	margin: 0.35rem 0 0;
	font-size: 0.9375rem;
}

.cfc-map-popup__directions-link {
	color: var(--cfc-accent);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-map-popup__directions-link:hover,
.cfc-map-popup__directions-link:focus-visible {
	color: var(--cfc-text);
	outline: none;
}

.maplibregl-popup-content {
	margin: 0;
	padding: 0.625rem 0.75rem;
}

.maplibregl-popup-content p {
	margin: 0.3em 0;
}

.cfc-find-locations-cards .cfc-home-location-card,
.cfc-find-locations-cards .cfc-home-location-card:hover,
.cfc-find-locations-cards .cfc-home-location-card:focus-visible {
	text-decoration: none;
}

.entry-content a {
	color: var(--cfc-accent);
	text-decoration: none;
	text-underline-offset: 0.15em;
}

.entry-content a:hover,
.entry-content a:focus-visible {
	color: var(--cfc-accent-hover);
	text-decoration: underline;
}

.entry-content a.cfc-home-btn {
	color: #fff;
	text-decoration: none;
}

.entry-content a.cfc-home-btn:hover,
.entry-content a.cfc-home-btn:focus-visible {
	color: #fff;
}

.entry-content ul {
	padding-left: 1.25rem;
}

.entry-content li + li {
	margin-top: 0.35rem;
}

/* Resources hub: slightly roomier section lists */
.cfc-page-resources .entry-content h2 {
	margin-top: 2.75rem;
	padding-top: 0.25rem;
}

.cfc-page-resources .entry-content h2:first-of-type {
	margin-top: 2rem;
}

.cfc-page-resources .entry-content ul {
	margin-top: 0.75rem;
}

.cfc-page-resources .entry-content li + li {
	margin-top: 0.55rem;
}

@media (max-width: 48rem) {
	.cfc-page__body {
		grid-template-columns: 1fr;
	}

	.cfc-page__body:not(:has(.cfc-page__sidebar)) {
		grid-template-columns: 1fr;
	}
}

/* --- Photo scroll gallery --- */

.cfc-home-gallery {
	padding-bottom: 0;
	background: #fff;
	border-top: 1px solid var(--cfc-border);
}

.cfc-main--home .cfc-photo-gallery {
	margin-top: 0;
}

.cfc-photo-gallery {
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding: clamp(2rem, 4vw, 3rem) 0 clamp(4rem, 7vw, 6rem);
	overflow: hidden;
}

.cfc-photo-gallery.is-loading {
	min-height: clamp(14rem, 36vw, 22rem);
}

.cfc-photo-gallery__track {
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 22%,
		#000 78%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 22%,
		#000 78%,
		transparent 100%
	);
}

.cfc-photo-gallery__track + .cfc-photo-gallery__track {
	margin-top: 1rem;
}

.cfc-photo-gallery__row {
	display: flex;
	gap: clamp(0.75rem, 1.5vw, 1.25rem);
	width: max-content;
	will-change: transform;
	backface-visibility: hidden;
	contain: layout style;
}

.cfc-photo-gallery__item {
	position: relative;
	isolation: isolate;
	flex: 0 0 auto;
	width: clamp(11.9rem, 29.1vw, 17.2rem);
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 0;
	padding: 0;
	border-radius: 0.25rem;
	background: #e8dfd6;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	color: inherit;
}

.cfc-photo-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(1) contrast(0.92);
	transition: transform 0.35s ease;
}

.cfc-photo-gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(
		165deg,
		rgb(34 162 195 / 0.24) 0%,
		rgb(34 162 195 / 0.16) 100%
	);
	mix-blend-mode: multiply;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.cfc-photo-gallery--interactive .cfc-photo-gallery__item:hover img,
.cfc-photo-gallery--interactive .cfc-photo-gallery__item:focus-visible img {
	transform: scale(1.04);
}

.cfc-photo-gallery--interactive .cfc-photo-gallery__item:hover::after,
.cfc-photo-gallery--interactive .cfc-photo-gallery__item:focus-visible::after {
	opacity: 0.55;
}

.cfc-photo-gallery__item:focus-visible {
	outline: 2px solid var(--cfc-accent);
	outline-offset: 3px;
}


/* --- Gallery lightbox --- */

html.cfc-gallery-overlay-open,
body.cfc-gallery-overlay-open {
	overflow: hidden;
}

/* Keep site header + nav dropdowns above the lightbox so menus stay clickable. */
body.cfc-gallery-overlay-open .cfc-header {
	z-index: 100020;
}

.cfc-gallery-lightbox {
	--cfc-lightbox-available: calc(
		100dvh - var(--cfc-header-height) - var(--cfc-admin-bar-height)
	);
	--cfc-lightbox-pad-x: max(0.75rem, env(safe-area-inset-right), env(safe-area-inset-left));
	--cfc-lightbox-pad-y: max(0.75rem, env(safe-area-inset-bottom));
	--cfc-lightbox-control: 2.75rem;
	position: fixed;
	top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height));
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 100010;
	display: grid;
	place-items: center;
	padding: 0;
	box-sizing: border-box;
	opacity: 0;
	transition: opacity 0.2s ease;
	touch-action: pan-y;
}

.cfc-gallery-lightbox.is-open {
	opacity: 1;
}

.cfc-gallery-lightbox[hidden] {
	display: none !important;
}

.cfc-gallery-lightbox__close {
	appearance: none;
	border: 1px solid rgb(42 38 35 / 0.16);
	background: #fff;
	color: var(--cfc-text-heading);
	font-family: var(--cfc-font-heading);
	font-size: 0.875rem;
	font-weight: 650;
	padding: 0.55rem 0.95rem;
	border-radius: 999px;
	cursor: pointer;
}

.cfc-gallery-lightbox__close:hover,
.cfc-gallery-lightbox__close:focus-visible {
	background: var(--cfc-text-heading);
	border-color: var(--cfc-text-heading);
	color: #fff;
}

.cfc-gallery-lightbox__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	padding: 0;
	background: rgb(16 12 10 / 0.88);
	cursor: pointer;
}

.cfc-gallery-lightbox__close {
	position: absolute;
	top: max(0.75rem, env(safe-area-inset-top));
	right: var(--cfc-lightbox-pad-x);
	z-index: 3;
	background: rgb(255 255 255 / 0.92);
}

.cfc-gallery-lightbox__nav {
	appearance: none;
	position: absolute;
	top: 50%;
	z-index: 3;
	transform: translateY(-50%);
	border: 0;
	width: var(--cfc-lightbox-control);
	height: var(--cfc-lightbox-control);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.16);
	color: #fff;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	transition: background 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.cfc-gallery-lightbox__nav--prev {
	left: var(--cfc-lightbox-pad-x);
}

.cfc-gallery-lightbox__nav--next {
	right: var(--cfc-lightbox-pad-x);
}

.cfc-gallery-lightbox__nav:hover,
.cfc-gallery-lightbox__nav:focus-visible {
	background: rgb(255 255 255 / 0.28);
}

.cfc-gallery-lightbox__stage {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(68rem, calc(100vw - (var(--cfc-lightbox-control) * 2) - 2.5rem));
	max-height: calc(var(--cfc-lightbox-available) - 4.5rem);
	height: auto;
	padding: 3.5rem var(--cfc-lightbox-pad-x) var(--cfc-lightbox-pad-y);
	box-sizing: border-box;
	pointer-events: none;
}

.cfc-gallery-lightbox__figure {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	max-width: 100%;
	max-height: 100%;
	pointer-events: auto;
	touch-action: pan-y;
}

.cfc-gallery-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: calc(var(--cfc-lightbox-available) - 5.5rem);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 0.4rem;
	background: #1c1815;
	box-shadow: 0 18px 60px rgb(0 0 0 / 0.4);
	user-select: none;
	-webkit-user-drag: none;
}

@media (max-width: 48rem) {
	.cfc-gallery-lightbox__stage {
		width: calc(100vw - 1rem);
		max-height: calc(var(--cfc-lightbox-available) - 5.5rem);
		padding: 3.25rem 0.5rem 4.25rem;
	}

	.cfc-gallery-lightbox__image {
		max-height: calc(var(--cfc-lightbox-available) - 7rem);
	}

	.cfc-gallery-lightbox__nav {
		top: auto;
		bottom: max(0.85rem, env(safe-area-inset-bottom));
		transform: none;
		width: 3rem;
		height: 3rem;
		background: rgb(255 255 255 / 0.22);
	}

	.cfc-gallery-lightbox__nav--prev {
		left: var(--cfc-lightbox-pad-x);
	}

	.cfc-gallery-lightbox__nav--next {
		right: var(--cfc-lightbox-pad-x);
	}
}

@media (min-width: 64rem) {
	.cfc-photo-gallery__item {
		width: clamp(14.55rem, 15.9vw, 21.15rem);
	}
}

@media (min-width: 90rem) {
	.cfc-photo-gallery__item {
		width: clamp(16.55rem, 13.2vw, 23.15rem);
	}

	.cfc-photo-gallery__track {
		-webkit-mask-image: linear-gradient(
			to right,
			transparent 0%,
			#000 20%,
			#000 80%,
			transparent 100%
		);
		mask-image: linear-gradient(
			to right,
			transparent 0%,
			#000 20%,
			#000 80%,
			transparent 100%
		);
	}
}

/* --- Site footer --- */

.cfc-site-footer {
	background: #1a1a1a;
	color: #d8d8d8;
	padding: clamp(2rem, 5vw, 3rem) 1.5rem;
	margin-top: auto;
}

.cfc-site-footer__inner {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.cfc-footer-sitemap a {
	color: inherit;
	text-decoration: none;
}

.cfc-footer-sitemap a:not(.cfc-nav-no-link):hover,
.cfc-footer-sitemap a:not(.cfc-nav-no-link):focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	outline: none;
}

.cfc-footer-sitemap__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
}

.cfc-footer-sitemap__column {
	min-width: 0;
}

.cfc-footer-sitemap__section {
	padding-top: 0.625rem;
	border-top: 2px solid var(--cfc-accent);
}

.cfc-footer-sitemap__column--merged .cfc-footer-sitemap__section + .cfc-footer-sitemap__section {
	margin-top: 0.875rem;
}

.cfc-footer-sitemap__root {
	display: block;
	padding-top: 0.125rem;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: #fff;
}

.cfc-footer-sitemap .cfc-nav-no-link {
	cursor: default;
}

.cfc-footer-sitemap__children {
	list-style: none;
	margin: 0.25rem 0 0;
	padding: 0;
}

.cfc-footer-sitemap__children .cfc-footer-sitemap__children {
	margin-top: 0.2rem;
	padding-left: 0.625rem;
}

.cfc-footer-sitemap__item + .cfc-footer-sitemap__item {
	margin-top: 0.15rem;
}

.cfc-footer-sitemap__level-1 a,
.cfc-footer-sitemap__level-1 .cfc-nav-no-link {
	font-size: 0.875rem;
	line-height: 1.35;
	font-weight: 500;
}

.cfc-footer-sitemap__level-2 a,
.cfc-footer-sitemap__level-2 .cfc-nav-no-link {
	font-size: 13px;
	line-height: 1.35;
	color: #a8a8a8;
}

@media (max-width: 64rem) {
	.cfc-footer-sitemap__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 36rem) {
	.cfc-footer-sitemap__grid {
		grid-template-columns: 1fr;
	}
}

.cfc-site-footer__meta {
	padding-top: 1.5rem;
	border-top: 1px solid #333;
}

.cfc-site-footer__name {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: #fff;
}

.cfc-site-footer__tagline {
	margin: 0.35rem 0 0;
	font-size: var(--cfc-text-xs);
	color: #999;
}

/* --- Homepage: Kingdom Values --- */

.cfc-home-kingdom-values {
	--cfc-kingdom-values-bg: #111;
	position: relative;
}

.cfc-home-kingdom-values:not(.is-expanded) {
	max-height: none;
	overflow: visible;
	padding: clamp(2rem, 4vw, 3rem) 0;
	background: #fff;
	border-top: 1px solid var(--cfc-border);
}

.cfc-home-kingdom-values:not(.is-expanded) .cfc-home-kingdom-values__layout {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.cfc-home-kingdom-values__preview-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(100%, var(--cfc-home-split-max));
	max-width: 100%;
	margin-inline: auto;
	padding-inline: var(--cfc-home-split-gutter);
	gap: 1.25rem;
}

.cfc-home-kingdom-values__preview-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	min-width: 0;
	width: 100%;
	max-width: var(--cfc-home-prose-max);
	margin-inline: auto;
}

.cfc-kingdom-values__featured {
	width: 100%;
	max-width: none;
}

.cfc-kingdom-values__featured-title {
	margin: 0 0 0.75rem;
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
	text-align: center;
}

.cfc-kingdom-values__featured-description {
	font-size: var(--cfc-text-base);
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-muted);
	text-align: left;
}

.cfc-kingdom-values__featured-description p {
	margin: 0;
}

.cfc-kingdom-values__featured-description p + p {
	margin-top: 0.875rem;
}

.cfc-home-kingdom-values:not(.is-expanded) .cfc-home-kingdom-values__title {
	max-width: none;
	margin: 0;
	font-size: var(--cfc-heading-subsection);
	line-height: var(--cfc-leading-heading);
	text-align: center;
	overflow-wrap: break-word;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__viewer {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	width: 100%;
}

.cfc-kingdom-values__status {
	padding: 2rem 1.5rem;
	font-size: var(--cfc-text-base);
	line-height: var(--cfc-leading-snug);
	color: rgba(255, 255, 255, 0.82);
	text-align: center;
}

.cfc-kingdom-values__status.is-error {
	color: #fff;
}

.cfc-home-kingdom-values__bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-shrink: 0;
	text-align: center;
}

.cfc-home-kingdom-values__bar .cfc-home-kingdom-values__title {
	margin: 0;
	font-size: var(--cfc-heading-section);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
}

.cfc-home-kingdom-values__expand {
	display: none;
	flex-shrink: 0;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 0.25rem;
	background: transparent;
	color: #fff;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.cfc-home-kingdom-values__panel-outer {
	flex: 1;
	min-height: 0;
	width: 100%;
}

.cfc-home-kingdom-values__panel-wrap {
	min-height: 0;
}

.cfc-home-kingdom-values__panel {
	flex: 1;
	min-height: 0;
	padding: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.cfc-kingdom-values__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cfc-kingdom-values__item {
	margin: 0;
	padding: 0;
}

.cfc-kingdom-values__title {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.45rem 0;
	border: 0;
	background: transparent;
	color: var(--cfc-text);
	font: inherit;
	font-size: clamp(1.0625rem, 2.2vw, 1.375rem);
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: color 0.2s ease;
}

.cfc-kingdom-values__title:hover,
.cfc-kingdom-values__title:focus-visible {
	color: var(--cfc-accent);
	outline: none;
}

.cfc-kingdom-values__description {
	display: none;
}

.cfc-kingdom-values__controls {
	display: none;
}

body.cfc-kingdom-values-expanded {
	overflow: hidden;
}

.cfc-home-kingdom-values.is-expanded {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	flex-direction: column;
	max-height: none;
	height: 100%;
	padding: 0;
	background: var(--cfc-kingdom-values-bg);
	color: #fff;
	border-top: 0;
	overflow: hidden;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel-outer {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	width: 100%;
	padding: 0;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__layout {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	width: 100%;
	max-width: none;
	padding: 0;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__bar {
	position: relative;
	justify-content: center;
	padding: 0.875rem 1.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	text-align: center;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand {
	position: absolute;
	right: 1.5rem;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__bar .cfc-home-kingdom-values__title {
	font-size: clamp(1rem, 2.5vw, 1.25rem);
	max-width: none;
	color: #fff;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand {
	display: inline-flex;
	align-items: center;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand:hover,
.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand:focus-visible {
	border-color: var(--cfc-accent);
	color: var(--cfc-accent);
	outline: none;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel-wrap {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	width: 100%;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel-wrap::before,
.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel-wrap::after {
	display: none;
}

.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0.5rem 1.5rem 16rem;
	-webkit-mask-image: none;
	mask-image: none;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__title {
	color: #fff;
	font-size: clamp(1.125rem, 2.8vw, 1.75rem);
	font-weight: 700;
	line-height: 1.25;
	opacity: 0.35;
	transition: opacity 0.25s ease;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item.active .cfc-kingdom-values__title {
	opacity: 1;
	text-decoration: underline;
	text-decoration-color: var(--cfc-accent);
	text-underline-offset: 0.2em;
}

.cfc-home-kingdom-values.is-expanded.is-color-mode .cfc-kingdom-values__item.active .cfc-kingdom-values__title {
	text-decoration-color: #fff;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item:not(.active) .cfc-kingdom-values__title:hover,
.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item:not(.active) .cfc-kingdom-values__title:focus-visible {
	opacity: 0.5;
	color: #fff;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item.active .cfc-kingdom-values__title:hover,
.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item.active .cfc-kingdom-values__title:focus-visible {
	opacity: 1;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__description {
	display: block;
	height: 0;
	overflow: hidden;
	opacity: 0;
	transition: opacity 0.35s ease;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__item.active .cfc-kingdom-values__description {
	height: auto;
	opacity: 1;
	padding-bottom: 1rem;
}

.cfc-kingdom-values__description p {
	margin: 0.65rem 0 0;
	max-width: 42rem;
	font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.88);
}

.cfc-kingdom-values__description p:first-child {
	margin-top: 0.35rem;
}

.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__controls:not([hidden]) {
	display: flex;
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 100002;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.cfc-kingdom-values__color-toggle {
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.35);
}

.cfc-kingdom-values__color-dot {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: conic-gradient(
		from 0deg,
		#b9fbc0 0%,
		#fbf8cc 20%,
		#fde4cf 40%,
		#ffcfd2 60%,
		#f1c0e8 80%,
		#cfbaf0 100%
	);
}

.cfc-kingdom-values__next {
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.cfc-kingdom-values__next:hover,
.cfc-kingdom-values__next:focus-visible {
	border-color: #fff;
	background: rgba(0, 0, 0, 0.55);
	outline: none;
}

@media (min-width: 49rem) {
	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__viewer {
		box-sizing: border-box;
		width: clamp(48rem, 75vw, 75rem);
		max-width: 100%;
		margin-inline: auto;
		padding-inline: 1.5rem;
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__bar {
		justify-content: flex-start;
		text-align: left;
		padding-inline: 0;
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand {
		right: 0;
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__panel {
		padding-inline: 0;
	}
}

@media (max-width: 48rem) {
	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__viewer .cfc-kingdom-values__title {
		font-size: clamp(1.25rem, 3.5vw, 1.75rem);
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__viewer .cfc-kingdom-values__description p {
		font-size: clamp(1.0625rem, 2.5vw, 1.125rem);
	}
}

@media (max-width: 40rem) {
	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__bar {
		justify-content: space-between;
		align-items: flex-start;
		gap: 0.75rem;
		padding: 0.875rem 1rem;
		text-align: left;
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__bar .cfc-home-kingdom-values__title {
		flex: 1;
		min-width: 0;
		text-align: left;
		font-size: 1.0625rem;
		line-height: 1.25;
	}

	.cfc-home-kingdom-values.is-expanded .cfc-home-kingdom-values__expand {
		position: static;
		flex-shrink: 0;
		margin-top: 0.125rem;
	}
}

/* --- Events Calendar (Google Calendar feeds) --- */

.cfc-page__body:has(.cfc-events-calendar) {
	grid-template-columns: minmax(0, 1fr);
}

.cfc-events-calendar {
	width: 100%;
	margin-bottom: 2.5rem;
}

.cfc-events-calendar a,
.cfc-events-calendar a:hover,
.cfc-events-calendar a:focus,
.cfc-events-calendar a:focus-visible {
	text-decoration: none;
}

.cfc-events-calendar__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0.75rem 1.25rem;
	margin-bottom: 1rem;
	padding: 0 0 0.875rem;
	border-bottom: 1px solid var(--cfc-border);
}

.cfc-events-calendar__view-toggle {
	display: inline-flex;
	gap: 0.125rem;
	flex-shrink: 0;
	margin: 0 0 0.875rem;
}

.cfc-events-calendar__view-btn {
	margin: 0;
	padding: 0.375rem 0.75rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: var(--cfc-text-muted);
	font-family: var(--cfc-font-body);
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.cfc-events-calendar__view-btn:hover {
	color: var(--cfc-text);
	background: var(--cfc-surface);
}

.cfc-events-calendar__view-btn.is-active {
	color: var(--cfc-text);
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--cfc-border);
}

.cfc-events-calendar__filters {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.cfc-events-calendar__filters-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0 0 0.15rem;
}

.cfc-events-calendar__filters-default,
.cfc-events-calendar__filters-toggle-all {
	margin: 0;
	padding: 0.2rem 0.55rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: var(--cfc-accent);
	font-family: var(--cfc-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.cfc-events-calendar__filters-default:hover,
.cfc-events-calendar__filters-default:focus-visible,
.cfc-events-calendar__filters-toggle-all:hover,
.cfc-events-calendar__filters-toggle-all:focus-visible {
	color: var(--cfc-accent-hover);
	background: var(--cfc-surface);
	outline: none;
}

.cfc-events-calendar__filters-default.is-active {
	color: var(--cfc-text);
	background: var(--cfc-surface);
}

.cfc-events-calendar__filters-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cfc-events-calendar__filter-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.35rem 0.75rem;
}

.cfc-events-calendar__filter-group-label {
	flex-shrink: 0;
	min-width: 5.5rem;
	font-family: var(--cfc-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
	text-align: right;
	color: var(--cfc-text-muted);
}

.cfc-events-calendar__filter-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.25rem 0.875rem;
}

.cfc-events-calendar__filter-item {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}

.cfc-events-calendar__filter {
	display: inline-flex;
	align-items: center;
	gap: 0.4375rem;
	padding: 0.25rem 0;
	font-size: var(--cfc-text-sm);
	line-height: 1.2;
	color: var(--cfc-text);
	cursor: pointer;
	user-select: none;
}

.cfc-events-calendar__filter-name {
	color: var(--cfc-cal-color, var(--cfc-text));
	font-weight: 600;
	transition: opacity 0.15s ease;
}

.cfc-events-calendar__subscribe-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	padding: 0;
	color: color-mix(in srgb, var(--cfc-cal-color, var(--cfc-text-muted)) 55%, var(--cfc-text-muted));
	opacity: 0.72;
	border-radius: 0.2rem;
	transition: color 0.15s ease, opacity 0.15s ease, background-color 0.15s ease;
}

.cfc-events-calendar__subscribe-icon svg {
	display: block;
	width: 0.8125rem;
	height: 0.8125rem;
}

.cfc-events-calendar__subscribe-icon:hover,
.cfc-events-calendar__subscribe-icon:focus-visible {
	color: color-mix(in srgb, var(--cfc-cal-color, var(--cfc-accent)) 72%, #000);
	opacity: 1;
	background: var(--cfc-surface);
	outline: none;
}

.cfc-events-calendar__filter-input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	outline: none;
	box-shadow: none;
}

.cfc-events-calendar__filter-input:focus,
.cfc-events-calendar__filter-input:focus-visible {
	outline: none;
	box-shadow: none;
}

.cfc-events-calendar__filter-swatch {
	flex-shrink: 0;
	width: 0.625rem;
	height: 0.625rem;
	border-radius: 50%;
	background: var(--cfc-cal-color, var(--cfc-accent));
	transition: opacity 0.15s ease;
}

.cfc-events-calendar__filter-item:has(.cfc-events-calendar__filter-input:not(:checked)) .cfc-events-calendar__filter-swatch,
.cfc-events-calendar__filter-item:has(.cfc-events-calendar__filter-input:not(:checked)) .cfc-events-calendar__filter-name,
.cfc-events-calendar__filter-item:has(.cfc-events-calendar__filter-input:not(:checked)) .cfc-events-calendar__subscribe-icon {
	opacity: 0.4;
}

.cfc-events-calendar__filter-item.is-pending {
	opacity: 0.45;
}

.cfc-events-calendar__filter-item.is-pending .cfc-events-calendar__filter {
	cursor: default;
}

.cfc-events-calendar__filter:focus-within {
	outline: none;
}

.cfc-events-calendar__filter-input:focus-visible + .cfc-events-calendar__filter-swatch {
	outline: none;
	box-shadow: none;
}

.cfc-events-calendar__widget {
	padding: 0;
	background: transparent;
	border: 0;
	cursor: default;
	--fc-border-color: #e8e8e8;
	--fc-page-bg-color: transparent;
	--fc-neutral-bg-color: var(--cfc-surface);
	--fc-list-event-hover-bg-color: var(--cfc-surface);
	--fc-button-bg-color: transparent;
	--fc-button-border-color: transparent;
	--fc-button-text-color: var(--cfc-text-muted);
	--fc-button-hover-bg-color: var(--cfc-surface);
	--fc-button-hover-border-color: transparent;
	--fc-button-hover-text-color: var(--cfc-text);
	--fc-button-active-bg-color: var(--cfc-surface);
	--fc-button-active-border-color: transparent;
	--fc-button-active-text-color: var(--cfc-text);
	--fc-today-bg-color: color-mix(in srgb, var(--cfc-accent) 6%, #fff);
	--fc-event-border-color: transparent;
	font-family: var(--cfc-font-body);
}

.cfc-events-calendar__widget .fc-button {
	cursor: pointer;
}

.cfc-events-calendar__widget .fc-toolbar.fc-header-toolbar {
	margin-bottom: 0.875rem;
	gap: 0.75rem;
	scroll-margin-top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height) + 0.75rem);
}

.cfc-events-calendar__widget .fc-toolbar-title {
	font-family: var(--cfc-font-heading);
	font-size: clamp(1.25rem, 2.5vw, 1.625rem);
	font-weight: 700;
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-text);
}

.cfc-events-calendar__widget .fc-button {
	padding: 0.375rem 0.625rem;
	border-radius: 0.25rem;
	background: transparent;
	border-color: transparent;
	color: var(--cfc-text-muted);
	font-family: var(--cfc-font-body);
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	text-transform: capitalize;
	box-shadow: none !important;
}

.cfc-events-calendar__widget .fc-button:hover,
.cfc-events-calendar__widget .fc-button:active,
.cfc-events-calendar__widget .fc-button-primary:not(:disabled):active,
.cfc-events-calendar__widget .fc-button-primary:not(:disabled).fc-button-active {
	background: var(--cfc-surface);
	border-color: transparent;
	color: var(--cfc-text);
}

.cfc-events-calendar__widget .fc-button:focus-visible {
	outline: 2px solid var(--cfc-accent);
	outline-offset: 2px;
}

.cfc-events-calendar__widget .fc-button-primary:disabled {
	opacity: 0.35;
}

.cfc-events-calendar__widget .fc-button-group {
	gap: 0.125rem;
}

.cfc-events-calendar__widget .fc-button-group > .fc-button {
	border-radius: 0.25rem !important;
	margin: 0 !important;
}

.cfc-events-calendar__widget .fc-today-button {
	margin-left: 0.375rem !important;
}

.cfc-events-calendar__widget .fc-col-header-cell {
	padding: 0.5rem 0;
	border: 0;
	background: transparent;
}

.cfc-events-calendar__widget .fc-col-header-cell-cushion {
	padding: 0;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--cfc-text-subtle);
	text-decoration: none;
	cursor: default;
}

.cfc-events-calendar__widget .fc-scrollgrid,
.cfc-events-calendar__widget .fc-scrollgrid td,
.cfc-events-calendar__widget .fc-scrollgrid th {
	border-color: var(--fc-border-color);
}

.cfc-events-calendar__widget .fc-scrollgrid {
	border: 0;
}

.cfc-events-calendar__widget .fc-scrollgrid-section > * {
	border-left: 0;
	border-right: 0;
}

.cfc-events-calendar__widget .fc-daygrid-day {
	background: #fff;
}

.cfc-events-calendar__widget .fc-daygrid-day.fc-day-other {
	background: transparent;
}

.cfc-events-calendar__widget .fc-daygrid-day.fc-day-past .fc-daygrid-day-frame {
	opacity: 0.4;
}

.cfc-events-calendar__widget .fc-daygrid-day.fc-day-past:hover .fc-daygrid-day-frame {
	opacity: 0.7;
}

.cfc-events-calendar__widget .fc-daygrid-day-frame,
.cfc-events-calendar__widget .fc-daygrid-day-frame *,
.cfc-events-calendar__widget .fc-scrollgrid-sync-inner,
.cfc-events-calendar__widget .fc-scrollgrid-sync-inner * {
	font-size: 12px !important;
}

.cfc-events-calendar__widget .fc-daygrid-day-frame {
	min-height: 8rem;
}

.cfc-events-calendar__widget .fc-daygrid-day-number {
	padding: 0.125rem 0.3125rem;
	font-weight: 500;
	color: var(--cfc-text);
	text-decoration: none;
	cursor: default;
	pointer-events: none;
}

.cfc-events-calendar__widget .fc-day-other .fc-daygrid-day-number {
	color: var(--cfc-text-subtle);
	opacity: 0.55;
}

.cfc-events-calendar__widget .fc-day-today .fc-daygrid-day-number {
	font-weight: 700;
	color: var(--cfc-accent);
}

.cfc-events-calendar__widget .fc-daygrid-event {
	margin-top: 0;
	padding: 0 0.1875rem;
	border: 0;
	border-radius: 0.125rem;
	background-color: transparent !important;
	line-height: 1.2;
	color: var(--cfc-cal-color, var(--fc-event-text-color, var(--cfc-text)));
}

.cfc-events-calendar__widget .fc-daygrid-dot-event {
	align-items: center;
}

.cfc-events-calendar__widget .fc-daygrid-dot-event .fc-event-title {
	font-weight: 600;
}

.cfc-events-calendar__widget .fc-daygrid-event .fc-event-main {
	color: inherit;
}

.cfc-events-calendar__widget .fc-daygrid-event-harness,
.cfc-events-calendar__widget .fc-daygrid-event-harness .fc-event,
.cfc-events-calendar__widget .fc-daygrid-event,
.cfc-events-calendar__widget .fc-event.fc-daygrid-event,
.cfc-events-calendar__widget .fc-list-event,
.cfc-events-calendar__widget .fc-list-event a {
	cursor: pointer !important;
}

.cfc-events-calendar__widget .fc-daygrid-event .fc-event-time {
	font-weight: 500;
	color: inherit;
	opacity: 0.85;
}

.cfc-events-calendar__widget .fc-daygrid-event .fc-event-title {
	font-weight: 600;
	color: inherit;
}

.cfc-events-calendar__widget .fc-daygrid-event:hover,
.cfc-events-calendar__widget .fc-daygrid-event:focus-visible {
	color: color-mix(in srgb, var(--cfc-cal-color, var(--fc-event-text-color, var(--cfc-text))) 72%, #000);
}

.cfc-events-calendar__widget .fc-daygrid-more-link {
	font-weight: 600;
	color: var(--cfc-text-muted);
	text-decoration: none;
	cursor: pointer;
}

.cfc-events-calendar__widget .fc-daygrid-more-link:hover,
.cfc-events-calendar__widget .fc-daygrid-more-link:focus-visible {
	color: var(--cfc-accent);
}

.cfc-events-calendar__widget .fc-list {
	border: 0;
}

.cfc-events-calendar__widget .fc-list-day-cushion {
	padding: 0.75rem 0 0.375rem;
	background: transparent;
}

.cfc-events-calendar__widget .fc-list-day-text,
.cfc-events-calendar__widget .fc-list-day-side-text {
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-text-sm);
	font-weight: 700;
	color: var(--cfc-text);
	text-decoration: none;
	cursor: default;
}

.cfc-events-calendar__widget .fc-list-event td {
	padding: 0.625rem 0;
	border-color: var(--cfc-border);
	background: transparent;
}

.cfc-events-calendar__widget .fc-list-event:hover td {
	background: transparent;
}

.cfc-events-calendar__widget .fc-list-event.is-past {
	opacity: 0.4;
}

.cfc-events-calendar__widget .fc-list-event.is-past:hover {
	opacity: 0.7;
}

.cfc-events-calendar__past-toggle,
.cfc-events-calendar__next-month {
	display: inline-flex;
	align-items: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cfc-text-muted);
	font-family: var(--cfc-font-body);
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cfc-events-calendar__past-toggle {
	margin: 0.25rem 0 0.75rem;
}

.cfc-events-calendar__next-month {
	margin: 1rem 0 0;
}

.cfc-events-calendar__past-toggle:hover,
.cfc-events-calendar__past-toggle:focus-visible,
.cfc-events-calendar__next-month:hover,
.cfc-events-calendar__next-month:focus-visible {
	color: var(--cfc-accent);
	outline: none;
}

.cfc-events-calendar__past-toggle[hidden],
.cfc-events-calendar__next-month[hidden] {
	display: none;
}

.cfc-events-calendar__widget.is-past-collapsed .fc-list-event.is-past,
.cfc-events-calendar__widget.is-past-collapsed .fc-list-day.is-past-day,
.cfc-events-calendar__widget.is-past-collapsed .fc-list-day.is-empty-collapsed {
	display: none !important;
}

.cfc-events-calendar__widget .fc-list-table .fc-list-event-graphic {
	padding-right: 0 !important;
	width: auto;
}

.cfc-events-calendar__widget .fc-daygrid-event-dot,
.cfc-events-calendar__widget .fc-list-event-dot {
	display: inline-block;
	margin: 0 0.35em 0 0;
	box-sizing: content-box;
	width: 0;
	height: 0;
	border: 4px solid var(--cfc-cal-color, var(--fc-event-border-color, currentColor));
	border-radius: 50%;
	background: transparent;
	overflow: hidden;
	vertical-align: middle;
}

.cfc-events-calendar__widget .fc-list-event-dot {
	margin: 0;
	border-width: 4px;
}

.cfc-events-calendar__widget .fc-list-event td.fc-list-event-time {
	width: 1px;
	padding: 0.625rem 1rem 0.625rem 0;
	color: var(--cfc-text-muted);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.cfc-events-calendar__widget .fc-list-event-title {
	display: flex;
	flex-direction: row;
	align-items: baseline;
	gap: 1rem;
}

.cfc-events-calendar__widget .fc-list-event-title a {
	color: var(--cfc-cal-color, var(--cfc-text));
	font-weight: 600;
	text-decoration: none;
}

.cfc-events-calendar__widget .fc-list-event-title a:hover,
.cfc-events-calendar__widget .fc-list-event-title a:focus-visible {
	color: color-mix(in srgb, var(--cfc-cal-color, var(--cfc-text)) 72%, #000);
	filter: none;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.cfc-events-calendar__list-cal {
	flex-shrink: 0;
	font-size: var(--cfc-text-xs);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-subtle);
	white-space: nowrap;
}

.cfc-events-calendar__widget .fc-list-empty {
	padding: 2rem 0;
	background: transparent;
	color: var(--cfc-text-muted);
}

.cfc-events-calendar__popover {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1.5rem;
}

.cfc-events-calendar__popover[hidden] {
	display: none;
}

.cfc-events-calendar__popover-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(26, 26, 26, 0.4);
	cursor: pointer;
}

.cfc-events-calendar__popover-panel {
	position: relative;
	width: min(100%, 26rem);
	max-height: min(85dvh, 30rem);
	overflow: auto;
	padding: 1.5rem 1.5rem 1.375rem;
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.25rem;
	box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.12);
}

.cfc-events-calendar__popover-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 2rem;
	height: 2rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: var(--cfc-text-muted);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.cfc-events-calendar__popover-close:hover,
.cfc-events-calendar__popover-close:focus-visible {
	background: var(--cfc-surface);
	color: var(--cfc-text);
	outline: none;
}

.cfc-events-calendar__popover-title {
	margin: 0 2rem 0.875rem 0;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-heading-card);
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text);
}

.cfc-events-calendar__popover-when,
.cfc-events-calendar__popover-cal,
.cfc-events-calendar__popover-location {
	margin: 0 0 0.5rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
}

.cfc-events-calendar__popover-cal::before {
	content: "";
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	margin-right: 0.375rem;
	border-radius: 50%;
	background: var(--cfc-cal-color, var(--cfc-accent));
	vertical-align: 0.05em;
}

.cfc-events-calendar__popover-desc {
	margin: 0.75rem 0;
	padding-top: 0.75rem;
	border-top: 1px solid var(--cfc-border);
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-body);
	white-space: pre-wrap;
}

.cfc-events-calendar__popover-desc a {
	color: var(--cfc-accent);
	text-decoration: underline;
	word-break: break-word;
}

.cfc-events-calendar__popover-desc a:hover,
.cfc-events-calendar__popover-desc a:focus-visible {
	color: var(--cfc-accent-hover);
}

.cfc-events-calendar__popover-desc[hidden],
.cfc-events-calendar__popover-location[hidden],
.cfc-events-calendar__popover-link[hidden],
.cfc-events-calendar__popover-when[hidden],
.cfc-events-calendar__popover-cal[hidden] {
	display: none;
}

.cfc-events-calendar__popover-link {
	display: inline-block;
	margin-top: 0.5rem;
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	color: var(--cfc-accent);
	text-decoration: none;
}

.cfc-events-calendar__popover-link:hover,
.cfc-events-calendar__popover-link:focus-visible {
	color: var(--cfc-accent-hover);
	text-decoration: none;
	outline: none;
}

body.cfc-events-calendar-popover-open {
	overflow: hidden;
	position: fixed;
	left: 0;
	right: 0;
	width: 100%;
}

@media (max-width: 40rem) {
	.cfc-events-calendar__toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 0.875rem;
	}

	.cfc-events-calendar__view-toggle {
		align-self: flex-start;
		margin: 0 0 0.75rem;
	}

	.cfc-events-calendar__filters {
		align-items: stretch;
		width: 100%;
	}

	.cfc-events-calendar__filters-actions {
		align-self: flex-end;
	}

	.cfc-events-calendar__filter-group {
		justify-content: flex-start;
		gap: 0.35rem 0.625rem;
	}

	.cfc-events-calendar__filter-group-label {
		min-width: 4.75rem;
		text-align: left;
	}

	.cfc-events-calendar__filter-list {
		justify-content: flex-start;
		gap: 0.5rem 0.875rem;
	}

	.cfc-events-calendar__widget .fc-header-toolbar {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}

	.cfc-events-calendar__widget .fc-toolbar-title {
		font-size: 1.25rem;
	}

	.cfc-events-calendar__widget .fc-toolbar-chunk {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.25rem;
	}

	/* --- Mobile grid --- */

	.cfc-events-calendar__widget .fc-col-header-cell {
		padding: 0.375rem 0;
	}

	.cfc-events-calendar__widget .fc-col-header-cell-cushion {
		font-size: 0.625rem !important;
		letter-spacing: 0.02em;
	}

	.cfc-events-calendar__widget .fc-daygrid-day-frame,
	.cfc-events-calendar__widget .fc-daygrid-day-frame *,
	.cfc-events-calendar__widget .fc-scrollgrid-sync-inner,
	.cfc-events-calendar__widget .fc-scrollgrid-sync-inner * {
		font-size: 11px !important;
	}

	.cfc-events-calendar__widget .fc-daygrid-day-frame {
		min-height: 5.75rem;
	}

	.cfc-events-calendar__widget .fc-daygrid-day-number {
		padding: 0.125rem 0.25rem;
		font-size: 11px !important;
	}

	.cfc-events-calendar__widget .fc-daygrid-event {
		margin: 1px 1px 0;
		padding: 0.125rem 0.2rem;
		line-height: 1.15;
	}

	/* Prefer title over time in narrow cells. */
	.cfc-events-calendar__widget .fc-daygrid-event .fc-event-time {
		display: none;
	}

	.cfc-events-calendar__widget .fc-daygrid-event .fc-event-title {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
		white-space: normal;
		word-break: break-word;
	}

	.cfc-events-calendar__widget .fc-daygrid-more-link {
		padding: 0.0625rem 0.2rem;
		font-size: 10px !important;
	}

	/* --- Mobile list: stack table rows into cards --- */

	.cfc-events-calendar__widget .fc-list-table {
		width: 100%;
		border-collapse: separate;
		border-spacing: 0;
	}

	.cfc-events-calendar__widget .fc-list-table,
	.cfc-events-calendar__widget .fc-list-table tbody,
	.cfc-events-calendar__widget .fc-list-event,
	.cfc-events-calendar__widget .fc-list-day {
		display: block;
		width: 100%;
	}

	.cfc-events-calendar__widget .fc-list-day {
		margin: 1rem 0 0.375rem;
	}

	.cfc-events-calendar__widget .fc-list-day-cushion {
		display: block;
		padding: 0.5rem 0 0.25rem;
	}

	.cfc-events-calendar__widget .fc-list-day th {
		display: block;
		width: 100%;
		border: 0;
	}

	.cfc-events-calendar__widget .fc-list-event {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas:
			"time time"
			"dot title";
		column-gap: 0.5rem;
		row-gap: 0.25rem;
		align-items: start;
		padding: 0.75rem 0;
		border-bottom: 1px solid var(--cfc-border);
	}

	.cfc-events-calendar__widget .fc-list-event td {
		display: block;
		width: auto;
		max-width: 100%;
		padding: 0;
		border: 0;
	}

	.cfc-events-calendar__widget .fc-list-event td.fc-list-event-time {
		grid-area: time;
		width: auto;
		padding: 0;
		font-size: 13px;
		white-space: normal;
	}

	.cfc-events-calendar__widget .fc-list-table .fc-list-event-graphic {
		grid-area: dot;
		padding: 0.35rem 0 0 !important;
		width: auto;
		line-height: 1;
	}

	.cfc-events-calendar__widget .fc-list-event-title {
		grid-area: title;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
		min-width: 0;
	}

	.cfc-events-calendar__widget .fc-list-event-title a {
		display: block;
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.cfc-events-calendar__list-cal {
		white-space: normal;
	}

	.cfc-events-calendar__popover {
		padding: 1rem;
		align-items: end;
	}

	.cfc-events-calendar__popover-panel {
		width: 100%;
		max-height: min(88dvh, 36rem);
		border-radius: 0.5rem 0.5rem 0 0;
	}
}

/* ==========================================================================
   Jesus page
   ========================================================================== */

body.cfc-page-jesus .cfc-main--jesus {
	padding-top: 0;
}

.cfc-jesus-hero {
	position: relative;
	min-height: clamp(16rem, 42vw, 28rem);
	margin: 0 0 2.5rem;
	overflow: hidden;
	background: #1a1a1a;
}

.cfc-jesus-hero__media {
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	transform: scale(1.04);
}

.cfc-jesus-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.45) 100%),
		rgba(0, 0, 0, 0.15);
}

.cfc-jesus-hero__title-wrap {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-end;
	min-height: clamp(16rem, 42vw, 28rem);
	padding-bottom: 3.5rem;
}

.cfc-jesus-hero__title {
	margin: 0;
	font-family: var(--cfc-font-heading);
	font-size: clamp(3rem, 10vw, 4.5rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
	color: #fff;
	text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.35);
}

.cfc-jesus-hero__wave {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	z-index: 2;
	height: clamp(3rem, 8vw, 5rem);
	line-height: 0;
	pointer-events: none;
}

.cfc-jesus-hero__wave svg {
	display: block;
	width: 100%;
	height: 100%;
}

.cfc-jesus-hero__wave path {
	fill: var(--cfc-bg);
}

.cfc-page--jesus .cfc-page__body--jesus {
	display: block;
	max-width: 46rem;
	margin: 0 auto;
}

.cfc-jesus-content .wp-block-image.aligncenter {
	max-width: min(100%, 51.5625rem);
	margin-inline: auto;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.cfc-jesus-content .wp-block-image.aligncenter img {
	width: 100%;
	height: auto;
}

.cfc-jesus-content .wp-block-quote {
	margin: 2rem auto;
	padding: 1.5rem 1.75rem;
	max-width: 36rem;
	text-align: center;
	background: #fff;
	border: 0;
	border-left: 0;
	border-radius: 0.25rem;
	box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.06);
}

.cfc-jesus-content .wp-block-quote p {
	margin: 0;
	font-size: var(--cfc-text-lg);
	line-height: var(--cfc-leading-body);
	color: var(--cfc-text-heading);
}

.cfc-jesus-content .has-text-align-center {
	text-align: center;
	max-width: none;
}

.cfc-jesus-content .has-text-align-center p {
	max-width: 40rem;
	margin-inline: auto;
}

.cfc-jesus-form {
	margin-top: 2.5rem;
	width: 100%;
	overflow: hidden;
	border-radius: 0.25rem;
	background: #fff;
	border: 1px solid var(--cfc-border);
	box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.06);
}

.cfc-jesus-form iframe {
	display: block;
	width: 100%;
	min-height: 85rem;
	border: 0;
}

@media (max-width: 40rem) {
	.cfc-jesus-hero__title-wrap {
		padding-bottom: 3rem;
	}

	.cfc-jesus-form iframe {
		min-height: 72rem;
	}
}

/* --- Give page --- */

.cfc-page__body--give {
	display: block;
	max-width: none;
	margin: 0;
}

.cfc-give > * + * {
	margin-top: clamp(2.25rem, 5vw, 3.25rem);
}

.cfc-give-intro {
	max-width: 42rem;
	margin-inline: auto;
	text-align: center;
}

.cfc-give-intro__scripture {
	margin: 0 auto 1.5rem;
	max-width: 34rem;
	padding: 1.25rem 1.5rem;
	background: #fff;
	border-left: 0.1875rem solid var(--cfc-accent);
	box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.05);
}

.cfc-give-intro__quote {
	display: block;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-text-lg);
	font-weight: 500;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-heading);
}

.cfc-give-intro__cite {
	display: block;
	margin-top: 0.75rem;
	font-style: normal;
	font-size: var(--cfc-text-sm);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--cfc-accent);
}

.cfc-give-intro__title {
	margin: 0 0 0.75rem;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-heading-subsection);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-text-heading);
}

.cfc-give-intro__lead {
	margin: 0 auto;
	max-width: 34rem;
	color: var(--cfc-text-body);
}

.cfc-give-online__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

.cfc-give-online__guide {
	min-width: 0;
}

.cfc-give-online__form {
	min-width: 0;
}

.cfc-give-section-header {
	margin-bottom: 1.25rem;
}

.cfc-give-section-title {
	margin: 0 0 0.5rem;
	font-family: var(--cfc-font-heading);
	font-size: var(--cfc-heading-card);
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	letter-spacing: var(--cfc-tracking-heading);
	color: var(--cfc-text-heading);
}

.cfc-give-section-lead {
	margin: 0;
	color: var(--cfc-text-body);
}

.cfc-give-steps {
	margin: 0 0 1rem;
	padding: 0 0 0 1.25rem;
	color: var(--cfc-text-body);
}

.cfc-give-steps li + li {
	margin-top: 0.5rem;
}

.cfc-give-steps__note {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--cfc-text-sm);
	color: var(--cfc-text-muted);
}

.cfc-give-verify-note {
	margin: 0;
	padding: 0.75rem 1rem;
	font-size: var(--cfc-text-sm);
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-muted);
	background: var(--cfc-surface);
	border: 1px solid var(--cfc-border);
	border-radius: 0.25rem;
}

.cfc-give-embed {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.25rem;
	box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.06);
}

.cfc-give-embed__placeholder {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	overflow: hidden;
	background: #f3f3f3;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.cfc-give-embed.is-loaded .cfc-give-embed__placeholder {
	opacity: 0;
	visibility: hidden;
}

.cfc-give-embed__placeholder picture {
	display: block;
	width: 100%;
	max-width: 28rem;
	margin: 1.5rem auto 0;
}

.cfc-give-embed__placeholder-img {
	display: block;
	width: 100%;
	height: auto;
	background: #fff;
}

.cfc-give-embed__spinner {
	position: absolute;
	top: 36%;
	left: 50%;
	z-index: 2;
	display: block;
	width: 4rem;
	height: 4rem;
	margin: -2rem 0 0 -2rem;
	border: 0.3125rem solid rgba(204, 85, 0, 0.22);
	border-top-color: var(--cfc-accent);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow:
		0 0 0 0.75rem rgba(255, 255, 255, 0.75),
		0 0.35rem 1.25rem rgba(0, 0, 0, 0.18);
	animation: cfc-give-spin 0.65s linear infinite;
}

.cfc-give-embed__spinner::after {
	content: "";
	position: absolute;
	inset: 0.55rem;
	border-radius: 50%;
	background: radial-gradient(circle at center, rgba(204, 85, 0, 0.12), transparent 70%);
}

@keyframes cfc-give-spin {
	to {
		transform: rotate(360deg);
	}
}

.cfc-give-embed iframe {
	display: block;
	position: relative;
	z-index: 1;
	width: 100%;
	/* Tall enough for Subsplash’s stacked form so the iframe itself doesn’t scroll. */
	min-height: 50rem;
	height: 50rem;
	border: 0;
}

.cfc-give-embed-fallback {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.35rem 0.65rem;
	margin: 1rem 0 0;
	text-align: center;
}

.cfc-give-embed-fallback__hint {
	font-size: var(--cfc-text-sm);
	color: var(--cfc-text-muted);
}

.cfc-give-other {
	max-width: 54rem;
	margin-inline: auto;
}

.cfc-give-other > .cfc-give-section-title {
	text-align: center;
}

.cfc-give-other__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	margin-top: 1.25rem;
}

.cfc-give-other__heading {
	margin: 0 0 0.5rem;
	font-family: var(--cfc-font-heading);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: var(--cfc-leading-heading);
	color: var(--cfc-text-heading);
}

.cfc-give-other__item p {
	margin: 0;
	color: var(--cfc-text-body);
}

.cfc-give-other__item p + p,
.cfc-give-other__item p + .cfc-give-address,
.cfc-give-address + .cfc-give-other__note {
	margin-top: 0.75rem;
}

.cfc-give-address {
	margin: 0;
	font-style: normal;
	font-weight: 600;
	line-height: var(--cfc-leading-snug);
	color: var(--cfc-text-heading);
}

.cfc-give-other__note {
	font-size: var(--cfc-text-sm);
	color: var(--cfc-text-muted);
}

.cfc-give-help {
	max-width: 42rem;
	margin-inline: auto;
	text-align: center;
	padding: 1.75rem 1.25rem;
	background: #fff;
	border: 1px solid var(--cfc-border);
	border-radius: 0.25rem;
}

.cfc-give-help .cfc-give-section-title {
	margin-bottom: 0.5rem;
}

.cfc-give-help__lead {
	margin: 0 auto 1.25rem;
	max-width: 28rem;
	color: var(--cfc-text-body);
}

.cfc-give-help__actions {
	margin: 0;
}

#give-online,
#give-in-person,
#mail-a-check,
#email-lists {
	scroll-margin-top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height) + 1rem);
}

@media (min-width: 40rem) {
	.cfc-give-other__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
	}
}

/* Full desktop: steps beside embed across page-width (~1080px+) */
@media (min-width: 67.5rem) {
	.cfc-give-online__layout {
		grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
		gap: clamp(1.75rem, 3vw, 2.75rem);
		align-items: start;
	}

	.cfc-give-online__guide {
		position: sticky;
		top: calc(var(--cfc-header-height) + var(--cfc-admin-bar-height) + 1rem);
	}

	.cfc-give-section-header {
		margin-bottom: 1rem;
	}

	.cfc-give-steps {
		margin-bottom: 1.25rem;
	}

	/* Wider column: form needs less vertical room. */
	.cfc-give-embed iframe {
		min-height: 46rem;
		height: 46rem;
	}

	.cfc-give-embed-fallback {
		justify-content: flex-start;
		text-align: left;
	}
}

@media (max-width: 40rem) {
	.cfc-give-embed iframe {
		min-height: 54rem;
		height: 54rem;
	}

	.cfc-give-intro__scripture {
		padding: 1rem 1.125rem;
	}
}

/* ==========================================================================
   Reduced motion (consolidated)
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	body.cfc-hero-pending .cfc-main--home > :not(.cfc-hero),
	body.cfc-hero-pending .cfc-site-footer,
	body.cfc-hero-pending .cfc-hero__new {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	body.cfc-hero-pending .cfc-hero::before {
		opacity: 1;
	}

	.cfc-hero__logo-img,
	.cfc-copy-tip,
	.cfc-photo-gallery__item img,
	.cfc-gallery-lightbox,
	.cfc-home-kingdom-values,
	.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__title,
	.cfc-home-kingdom-values.is-expanded .cfc-kingdom-values__description {
		transition: none;
	}

	.cfc-photo-gallery__row {
		will-change: auto;
	}
}
