/* =====================================================================
 * U4GC Core styles
 * Used by BOTH the English and Spanish templates, so a design change is
 * made once. Colors, sizes and spacing come from Automatic.css variables.
 *
 * NOTE: ACSS sets the root font size to 62.5%, so 1rem = 10px here.
 * Use ACSS variables (--text-m, --space-l ...) or em, never raw rem.
 *
 * Naming: BEM with a u4gc- prefix  ->  .u4gc-block__element--modifier
 * Every class starting with u4gc- was written for this website.
 * ================================================================== */

/* ============================ Shared blocks ========================= */

/* Button ------------------------------------------------------------- */
.u4gc-button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: .85em 1.6em; border-radius: var(--radius, 8px);
	font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700;
	line-height: 1.2; text-decoration: none;
	transition: transform .15s ease, background-color .15s ease;
}
.u4gc-button--primary { background: var(--primary, #D31B27); color: var(--white, #fff); }
.u4gc-button--primary:hover,
.u4gc-button--primary:focus-visible { background: var(--primary-hover, #b01620); color: var(--white, #fff); transform: translateY(-2px); }

/* Event line (date · location) --------------------------------------- */
.u4gc-event-line__date { font-weight: 700; }
.u4gc-event-line__tentative { font-style: italic; opacity: .85; }
.u4gc-event-line__separator { margin: 0 .35em; }

/* Registration note --------------------------------------------------- */
.u4gc-registration { margin: 0; }
.u4gc-registration__label { display: block; }

/* Contact ------------------------------------------------------------- */
.u4gc-contact { display: flex; flex-direction: column; gap: .25em; }

/* Help note (used inside program descriptions) ------------------------ */
.u4gc-help-note {
	margin-block: var(--space-l, 2.7rem); padding: var(--space-m, 2.4rem);
	border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px);
	background: var(--primary-ultra-light, #fdecee);
}
.u4gc-help-note p { margin: 0 0 .5em; }
.u4gc-help-note p:last-child { margin-bottom: 0; }

/* ============================ Program hero ========================== */
.u4gc-program-hero {
	padding-block: var(--section-space-m, 6rem);
	background-color: var(--primary, #D31B27);
	background-image:
		radial-gradient(circle at 85% 20%, rgba(255,255,255,.16) 0, rgba(255,255,255,0) 45%),
		radial-gradient(circle at 10% 110%, rgba(0,0,0,.18) 0, rgba(0,0,0,0) 50%);
	color: var(--white, #fff);
}
.u4gc-program-hero__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-s, 2rem); }
.u4gc-program-hero__eyebrow {
	margin: 0; font-size: var(--text-s, 1.42rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: rgba(255,255,255,.85);
}
.u4gc-program-hero__title { max-width: 20ch; margin: 0; color: var(--white, #fff); }
.u4gc-program-hero__tagline { max-width: 40ch; margin: 0; font-size: var(--text-xl, 2.28rem); line-height: 1.4; }
.u4gc-program-hero__event {
	display: inline-block; padding: .6em 1em; border-radius: 999px;
	background: rgba(0,0,0,.18); font-size: var(--text-m, 1.8rem);
}
.u4gc-program-hero__cta { margin-top: var(--space-xs, 1rem); }
.u4gc-program-hero__cta:empty { display: none; }
.u4gc-program-hero__cta .u4gc-button--primary { background: var(--white, #fff); color: var(--primary, #D31B27); }
.u4gc-program-hero__cta .u4gc-button--primary:hover,
.u4gc-program-hero__cta .u4gc-button--primary:focus-visible { background: var(--base, #f8f9fa); color: var(--primary-dark, #8f1119); }
.u4gc-program-hero__cta:not(:has(.u4gc-button)) { display: none; } /* notes live in At a glance, not twice */

/* ============================ Program body ========================== */
.u4gc-program-body { padding-block: var(--section-space-m, 6rem); background: var(--base, #f8f9fa); }
.u4gc-program-body__grid {
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--space-xl, 4rem); align-items: start;
}
.u4gc-program-body__content { font-size: var(--text-l, 2.025rem); line-height: 1.7; }
.u4gc-program-body__content > * { max-width: 65ch; }
.u4gc-program-body__content p:first-of-type { font-size: var(--text-xl, 2.28rem); line-height: 1.55; color: var(--neutral-dark, #2f363d); }
.u4gc-program-body__content p { margin-block: 0 1em; }
.u4gc-program-body__content h2 { margin-top: var(--space-l, 2.7rem); }

/* At a glance --------------------------------------------------------- */
.u4gc-program-facts {
	position: sticky; top: var(--space-l, 2.7rem);
	display: flex; flex-direction: column; gap: var(--space-m, 2.4rem);
	padding: var(--space-l, 2.7rem); border-top: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px);
	background: var(--white, #fff); box-shadow: 0 10px 30px rgba(74, 85, 96, .12);
}
.u4gc-program-facts__title { margin: 0; font-size: var(--h4, 1.8rem); }
.u4gc-program-facts__list { display: flex; flex-direction: column; gap: var(--space-m, 2.4rem); margin: 0; }
.u4gc-program-facts__item { display: flex; flex-direction: column; gap: .35em; }
.u4gc-program-facts__item:has(.u4gc-program-facts__value:empty) { display: none; }
.u4gc-program-facts__label {
	margin: 0; font-size: var(--text-xs, 1.26rem); font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--neutral, #4A5560);
}
.u4gc-program-facts__value { margin: 0; font-size: var(--text-m, 1.8rem); }
.u4gc-program-facts__value a { font-weight: 700; color: var(--primary, #D31B27); }
.u4gc-program-facts__value .u4gc-event-line { display: block; }
.u4gc-program-facts__value .u4gc-event-line__location { display: block; } /* stack date over place */
.u4gc-program-facts__value .u4gc-event-line__separator { display: none; }
.u4gc-program-facts__value .u4gc-button { width: 100%; }

/* ============================ More programs ========================= */
.u4gc-program-more { padding-block: var(--section-space-m, 6rem); background: var(--white, #fff); }
.u4gc-program-more:not(:has(.u4gc-program-card)) { display: none; } /* no other published programs */
.u4gc-program-more__inner { display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); }
.u4gc-program-more__title { margin: 0; }
.u4gc-program-more__cards {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--space-l, 2.7rem); width: 100%;
}

/* Program card -------------------------------------------------------- */
.u4gc-program-card {
	display: flex; flex-direction: column; gap: .6em; padding: var(--space-l, 2.7rem);
	border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px);
	background: var(--base, #f8f9fa);
	transition: transform .2s ease, box-shadow .2s ease;
}
.u4gc-program-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(74, 85, 96, .15); }
.u4gc-program-card__title { margin: 0; font-size: var(--h4, 1.8rem); }
.u4gc-program-card__title a { color: inherit; text-decoration: none; }
.u4gc-program-card__tagline { margin: 0; font-size: var(--text-m, 1.8rem); }
.u4gc-program-card__event { font-size: var(--text-s, 1.42rem); color: var(--neutral, #4A5560); }
.u4gc-program-card__link { margin-top: auto; font-weight: 700; color: var(--primary, #D31B27); }
.u4gc-program-card__link::after { content: " \2192"; }
/* Equal-height cards in "More ways we serve" */
.u4gc-program-more__cards { align-items: stretch; }
.u4gc-program-more__cards > .u4gc-program-card { align-self: stretch; height: 100%; }
/* Whole card clickable: the title link stretches over the card */
.u4gc-program-card { position: relative; cursor: pointer; }
.u4gc-program-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.u4gc-program-card__title a:focus-visible { outline: none; }
.u4gc-program-card:has(.u4gc-program-card__title a:focus-visible) { outline: 3px solid var(--primary, #D31B27); outline-offset: 3px; }
.u4gc-program-card:hover .u4gc-program-card__link { text-decoration: underline; }

/* ============================== Mobile ============================== */
@media (max-width: 900px) {
	.u4gc-program-body__grid { grid-template-columns: 1fr; }
	.u4gc-program-facts { position: static; order: -1; } /* date + registration first on phones */
}

@media (prefers-reduced-motion: reduce) {
	.u4gc-button, .u4gc-program-card { transition: none; }
	.u4gc-button:hover, .u4gc-program-card:hover { transform: none; }
}

/* ======================= Program hero - main photo ================== */
/* The featured image sits behind the text with a red tint so white text
   stays readable. With no featured image, the plain red band is used. */
.u4gc-program-hero { position: relative; overflow: hidden; isolation: isolate; }
.u4gc-program-hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.u4gc-program-hero__media:empty { display: none; }
.u4gc-program-hero__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.u4gc-program-hero:has(.u4gc-program-hero__image)::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--primary, #D31B27) 94%, transparent) 0%,
		color-mix(in srgb, var(--primary, #D31B27) 80%, transparent) 45%,
		color-mix(in srgb, var(--primary, #D31B27) 35%, transparent) 100%);
}
@media (max-width: 900px) {
	.u4gc-program-hero:has(.u4gc-program-hero__image)::before {
		background: color-mix(in srgb, var(--primary, #D31B27) 85%, transparent);
	}
}

/* ============================ Program gallery ======================= */
.u4gc-program-gallery { padding-block: var(--section-space-m, 6rem); background: var(--white, #fff); }
.u4gc-program-gallery:not(:has(.u4gc-gallery__item)) { display: none; } /* no photos = no section */

.u4gc-gallery { display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); width: 100%; }
.u4gc-gallery__title { margin: 0; }
.u4gc-gallery__list {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--space-s, 1.6rem); margin: 0; padding: 0; list-style: none;
}
.u4gc-gallery__item { margin: 0; }
.u4gc-gallery__link { display: block; overflow: hidden; border-radius: var(--radius, 5px); }
.u4gc-gallery__link:focus-visible { outline: 3px solid var(--primary, #D31B27); outline-offset: 3px; }
.u4gc-gallery__image {
	display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
	transition: transform .35s ease;
}
.u4gc-gallery__link:hover .u4gc-gallery__image { transform: scale(1.05); }
@media (max-width: 600px) {
	.u4gc-gallery__list { grid-template-columns: repeat(2, 1fr); }
}

/* Lightbox ------------------------------------------------------------ */
.u4gc-lightbox {
	width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; padding: var(--space-l, 2.7rem);
	border: 0; background: rgba(15, 18, 21, .94); color: var(--white, #fff);
}
.u4gc-lightbox[open] { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-s, 1.6rem); }
.u4gc-lightbox::backdrop { background: rgba(15, 18, 21, .94); }
.u4gc-lightbox__figure { display: flex; flex-direction: column; align-items: center; gap: 1em; margin: 0; min-width: 0; height: 100%; justify-content: center; }
.u4gc-lightbox__image { max-width: 100%; max-height: 80vh; object-fit: contain; border-radius: var(--radius, 5px); }
.u4gc-lightbox__caption { font-size: var(--text-m, 1.8rem); text-align: center; max-width: 60ch; }
.u4gc-lightbox__counter { position: absolute; bottom: var(--space-s, 1.6rem); left: 50%; transform: translateX(-50%); margin: 0; font-size: var(--text-s, 1.42rem); }
.u4gc-lightbox__button {
	display: grid; place-items: center; width: 4.8rem; height: 4.8rem; padding: 0;
	border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: var(--white, #fff);
	font-size: 3.2rem; line-height: 1; cursor: pointer;
}
.u4gc-lightbox__button:hover, .u4gc-lightbox__button:focus-visible { background: var(--primary, #D31B27); outline: none; }
.u4gc-lightbox__button[hidden] { visibility: hidden; display: grid; }
.u4gc-lightbox__button--close { position: absolute; top: var(--space-s, 1.6rem); right: var(--space-s, 1.6rem); }
@media (max-width: 600px) {
	.u4gc-lightbox { padding: var(--space-s, 1.6rem); }
	.u4gc-lightbox[open] { grid-template-columns: 1fr; }
	.u4gc-lightbox__button--prev, .u4gc-lightbox__button--next { position: absolute; bottom: var(--space-s, 1.6rem); }
	.u4gc-lightbox__button--prev { left: var(--space-s, 1.6rem); }
	.u4gc-lightbox__button--next { right: var(--space-s, 1.6rem); }
}
@media (prefers-reduced-motion: reduce) {
	.u4gc-gallery__image { transition: none; }
	.u4gc-gallery__link:hover .u4gc-gallery__image { transform: none; }
}

/* ===================================================================
 * HOMEPAGE
 * ================================================================= */

/* Shared additions --------------------------------------------------- */
.u4gc-eyebrow {
	margin: 0; font-size: var(--text-s, 1.42rem); font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--primary, #D31B27);
}
.u4gc-button--outline { background: transparent; color: var(--primary, #D31B27); box-shadow: inset 0 0 0 2px var(--primary, #D31B27); }
.u4gc-button--outline:hover,
.u4gc-button--outline:focus-visible { background: var(--primary, #D31B27); color: var(--white, #fff); transform: translateY(-2px); }
.u4gc-button--outline-light { background: transparent; color: var(--white, #fff); box-shadow: inset 0 0 0 2px rgba(255,255,255,.8); }
.u4gc-button--outline-light:hover,
.u4gc-button--outline-light:focus-visible { background: var(--white, #fff); color: var(--primary, #D31B27); }
.u4gc-button { font-size: var(--text-m, 1.8rem); }

.u4gc-badge {
	display: inline-block; padding: .2em .6em; border-radius: 999px; vertical-align: middle;
	font-family: var(--text-font-family, Lato, sans-serif); font-size: var(--text-xs, 1.26rem); font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase;
}
.u4gc-badge--draft { background: #fff3cd; color: #6b4e00; }

/* Home hero ----------------------------------------------------------
 * Centered. With a Featured image on the page, the photo fills the band
 * behind a dark tint and the text turns white. Without one, light base.
 * NOTE: Bricks blocks default to flex-direction: column, so every row
 * below sets flex-direction: row explicitly.                         */
.u4gc-home-hero {
	position: relative; overflow: hidden; isolation: isolate;
	padding-block: var(--section-space-xl, 9rem);
	background:
		radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--primary, #D31B27) 14%, transparent) 0, transparent 38%),
		radial-gradient(circle at 5% 95%, color-mix(in srgb, var(--primary, #D31B27) 10%, transparent) 0, transparent 35%),
		var(--base, #f8f9fa);
	text-align: center;
}
.u4gc-home-hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.u4gc-home-hero__media:empty { display: none; }
.u4gc-home-hero__media .u4gc-program-hero__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.u4gc-home-hero:has(.u4gc-program-hero__image)::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(20, 24, 28, .55) 0%, rgba(20, 24, 28, .72) 100%);
}
.u4gc-home-hero__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-m, 2.4rem); }
.u4gc-home-hero__eyebrow {
	margin: 0; font-size: var(--text-s, 1.42rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--primary, #D31B27);
}
.u4gc-home-hero__title { max-width: 26ch; margin: 0; color: var(--neutral-ultra-dark, #1d2226); text-wrap: balance; }
.u4gc-home-hero__lead { max-width: 64ch; margin: 0; font-size: var(--text-xl, 2.28rem); line-height: 1.5; color: var(--neutral-dark, #2f363d); text-wrap: normal; }
.u4gc-home-hero .u4gc-home-hero__values { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: .6em; margin: 0; padding: 0; list-style: none; }
.u4gc-home-hero__value {
	padding: .35em 1em; border-radius: 999px; background: var(--white, #fff);
	box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary, #D31B27) 30%, transparent);
	font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-m, 1.8rem);
	color: var(--primary, #D31B27);
}
.u4gc-home-hero .u4gc-home-hero__actions { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: var(--space-s, 1.6rem); margin-top: var(--space-xs, 1rem); }

/* With a background photo: white text */
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-home-hero__eyebrow,
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-home-hero__title,
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-home-hero__lead { color: var(--white, #fff); }
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-home-hero__value { background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 2px rgba(255,255,255,.6); color: var(--white, #fff); }
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-button--outline { color: var(--white, #fff); box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
.u4gc-home-hero:has(.u4gc-program-hero__image) .u4gc-button--outline:hover { background: var(--white, #fff); color: var(--primary, #D31B27); }

/* Trust bar ------------------------------------------------------------ */
.u4gc-trust-bar { padding-block: var(--space-xl, 4rem); background: var(--primary, #D31B27); color: var(--white, #fff); }
.u4gc-trust-bar:not(:has(.u4gc-trust-bar__item)) { display: none; }
.u4gc-trust-bar__content { width: 100%; }
.u4gc-trust-bar__list {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--space-l, 2.7rem); margin: 0; padding: 0; list-style: none; text-align: center;
}
.u4gc-trust-bar__item { display: flex; flex-direction: column; gap: .2em; }
.u4gc-trust-bar__number { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--h2, 3.6rem); line-height: 1.1; }
.u4gc-trust-bar__label { font-size: var(--text-m, 1.8rem); opacity: .92; }

/* Next event ------------------------------------------------------------ */
.u4gc-next-event { padding-block: var(--section-space-m, 6rem); background: var(--white, #fff); }
.u4gc-next-event:not(:has(.u4gc-next-event__card)) { display: none; }
.u4gc-next-event__content {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-l, 2.7rem);
	width: 100%; padding: var(--space-xl, 4rem); border-radius: calc(var(--radius, 5px) * 2);
	background: linear-gradient(135deg, var(--primary, #D31B27), var(--primary-dark, #8f1119)); color: var(--white, #fff);
}
.u4gc-next-event__card { display: flex; flex-direction: column; gap: .5em; flex: 1 1 36rem; }
.u4gc-next-event__eyebrow { margin: 0; font-size: var(--text-s, 1.42rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .9; }
.u4gc-next-event__title { margin: 0; color: var(--white, #fff); }
.u4gc-next-event__link { color: inherit; text-decoration: none; }
.u4gc-next-event__link:hover { text-decoration: underline; }
.u4gc-next-event__tagline { margin: 0; font-size: var(--text-l, 2.025rem); }
.u4gc-next-event__when { margin: 0; font-size: var(--text-m, 1.8rem); }
.u4gc-next-event__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-s, 1.6rem); flex: 0 1 34rem; }
.u4gc-next-event__cta .u4gc-button--primary { background: var(--white, #fff); color: var(--primary, #D31B27); }
.u4gc-next-event__cta .u4gc-registration {
	padding: .8em 1em; border-radius: var(--radius, 5px); background: rgba(255,255,255,.14); font-size: var(--text-m, 1.8rem);
}

/* Home programs ---------------------------------------------------------- */
.u4gc-home-programs { padding-block: var(--section-space-l, 7.5rem); background: var(--base, #f8f9fa); }
.u4gc-home-programs:not(:has(.u4gc-program-card)) { display: none; }
.u4gc-home-programs__inner { display: flex; flex-direction: column; gap: var(--space-xl, 4rem); }
.u4gc-home-programs__header { display: flex; flex-direction: column; gap: .5em; }
.u4gc-home-programs__title { margin: 0; }
.u4gc-home-programs__lead { margin: 0; max-width: 50ch; font-size: var(--text-xl, 2.28rem); color: var(--neutral-dark, #2f363d); }
.u4gc-home-programs__content { width: 100%; }

.u4gc-program-grid {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-l, 2.7rem); margin: 0; padding: 0; list-style: none;
}
.u4gc-program-grid__item { display: flex; }
/* An odd number of programs: center the last card instead of leaving it stranded */
.u4gc-program-grid__item:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - var(--space-l, 2.7rem) / 2); }
.u4gc-program-grid .u4gc-program-card { flex: 1; padding: 0; overflow: hidden; background: var(--white, #fff); box-shadow: 0 6px 20px rgba(74, 85, 96, .08); }
.u4gc-program-card__media { flex: 0 0 auto; aspect-ratio: 3 / 2; overflow: hidden; } /* never let the text squeeze the photo (1.6.1) */
.u4gc-program-card__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; } /* favour the top, where heads are */
.u4gc-program-card__body { display: flex; flex-direction: column; gap: .6em; flex: 1 1 auto; padding: var(--space-l, 2.7rem); }
.u4gc-program-card__summary { margin: 0; font-size: var(--text-m, 1.8rem); color: var(--neutral-dark, #2f363d); }
.u4gc-program-grid .u4gc-program-card__title { font-size: var(--h3, 2.4rem); }

/* Story + timeline --------------------------------------------------------- */
.u4gc-home-story { padding-block: var(--section-space-l, 7.5rem); background: var(--white, #fff); }
.u4gc-home-story__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-xxl, 6rem); align-items: start; }
.u4gc-home-story__intro { display: flex; flex-direction: column; gap: .6em; position: sticky; top: var(--space-l, 2.7rem); }
.u4gc-home-story__title { margin: 0; }
.u4gc-home-story__text { margin: 0; font-size: var(--text-l, 2.025rem); line-height: 1.6; }

.u4gc-timeline { position: relative; display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); margin: 0; padding: 0 0 0 var(--space-l, 2.7rem); list-style: none; }
.u4gc-timeline::before { content: ""; position: absolute; top: .6em; bottom: .6em; left: 0; width: 4px; border-radius: 2px; background: color-mix(in srgb, var(--primary, #D31B27) 25%, transparent); }
.u4gc-timeline__item { position: relative; display: flex; flex-direction: column; gap: .3em; }
.u4gc-timeline__item::before {
	content: ""; position: absolute; top: .45em; left: calc(-1 * var(--space-l, 2.7rem) - 7px);
	width: 18px; height: 18px; border-radius: 50%; background: var(--primary, #D31B27); box-shadow: 0 0 0 5px var(--white, #fff);
}
.u4gc-timeline__year { margin: 0; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-l, 2.025rem); color: var(--primary, #D31B27); }
.u4gc-timeline__title { margin: 0; font-size: var(--h4, 1.8rem); }
.u4gc-timeline__text { margin: 0; font-size: var(--text-m, 1.8rem); line-height: 1.6; }

/* Sponsors ------------------------------------------------------------------- */
.u4gc-sponsors { padding-block: var(--section-space-m, 6rem); background: var(--base, #f8f9fa); }
.u4gc-sponsors:not(:has(.u4gc-sponsors__item)) { display: none; } /* no current sponsors = no section */
.u4gc-sponsors__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-l, 2.7rem); text-align: center; }
.u4gc-sponsors__title { margin: 0; }
.u4gc-sponsors__content { width: 100%; }
.u4gc-sponsors__list { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-l, 2.7rem) var(--space-xl, 4rem); margin: 0; padding: 0; list-style: none; }
.u4gc-sponsors__item { display: flex; align-items: center; justify-content: center; }
.u4gc-sponsors__logo { display: block; width: auto; max-width: 20rem; max-height: 8rem; object-fit: contain; transition: transform .2s ease; } /* full colour - sponsors' brands shown as they are */
.u4gc-sponsors__item--lead .u4gc-sponsors__logo { max-width: 28rem; max-height: 11rem; }
.u4gc-sponsors__link:hover .u4gc-sponsors__logo,
.u4gc-sponsors__link:focus-visible .u4gc-sponsors__logo { transform: scale(1.05); }
.u4gc-sponsors__name { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-l, 2.025rem); color: var(--neutral, #4A5560); }

/* Get involved ---------------------------------------------------------------- */
.u4gc-get-involved { padding-block: var(--section-space-l, 7.5rem); background: var(--white, #fff); scroll-margin-top: var(--space-l, 2.7rem); }
.u4gc-get-involved__inner { display: flex; flex-direction: column; gap: var(--space-xl, 4rem); }
.u4gc-get-involved__header { display: flex; flex-direction: column; gap: .5em; }
.u4gc-get-involved__title { margin: 0; max-width: 22ch; }
.u4gc-get-involved__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-l, 2.7rem); margin: 0; padding: 0; list-style: none; }
.u4gc-help-card {
	display: flex; flex-direction: column; gap: .7em; padding: var(--space-l, 2.7rem);
	border-top: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 5px);
	background: var(--base, #f8f9fa);
}
.u4gc-help-card__icon {
	display: grid; place-items: center; width: 6.4rem; height: 6.4rem; border-radius: 50%;
	background: color-mix(in srgb, var(--primary, #D31B27) 12%, transparent); color: var(--primary, #D31B27);
}
.u4gc-help-card__icon .u4gc-icon { width: 3.4rem; height: 3.4rem; }
.u4gc-help-card__title { margin: 0; }
.u4gc-help-card__text { margin: 0; font-size: var(--text-m, 1.8rem); line-height: 1.6; }
.u4gc-help-card__action { margin-top: auto; padding-top: .6em; }
.u4gc-get-involved .u4gc-get-involved__contact { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .4em 1.2em; font-size: var(--text-m, 1.8rem); }
.u4gc-get-involved__contact-label { margin: 0; font-weight: 700; }
.u4gc-get-involved__contact-value .u4gc-contact { flex-direction: row; flex-wrap: wrap; gap: .3em 1.2em; }
.u4gc-get-involved__contact-value a { font-weight: 700; color: var(--primary, #D31B27); }

@media (max-width: 760px) {
	.u4gc-program-grid { grid-template-columns: 1fr; }
	.u4gc-program-grid__item:last-child:nth-child(odd) { width: 100%; }
}
@media (max-width: 900px) {
	.u4gc-home-story__inner { grid-template-columns: 1fr; gap: var(--space-xl, 4rem); }
	.u4gc-home-story__intro { position: static; }
	.u4gc-next-event__content { padding: var(--space-l, 2.7rem); }
}
@media (prefers-reduced-motion: reduce) {
	.u4gc-sponsors__logo { transition: none; }
}

/* Event flyer ------------------------------------------------------------ */
.u4gc-flyer--image { display: inline-flex; flex-direction: column; align-items: center; gap: .4em; text-decoration: none; }
.u4gc-flyer__image { display: block; max-width: 16rem; height: auto; border-radius: var(--radius, 5px); box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: transform .2s ease; }
.u4gc-flyer--image:hover .u4gc-flyer__image { transform: rotate(-2deg) scale(1.03); }
.u4gc-flyer__label { font-weight: 700; font-size: var(--text-s, 1.42rem); text-decoration: underline; }
.u4gc-next-event__flyer { flex: 0 0 auto; }
.u4gc-next-event__flyer .u4gc-flyer__label { color: var(--white, #fff); }
.u4gc-next-event__flyer .u4gc-button--outline { color: var(--white, #fff); box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
.u4gc-program-facts__value .u4gc-flyer__label { color: var(--primary, #D31B27); }
@media (prefers-reduced-motion: reduce) { .u4gc-flyer__image { transition: none; } .u4gc-flyer--image:hover .u4gc-flyer__image { transform: none; } }

/* =====================================================================
   Site header (1.4.0)
   ================================================================== */
.u4gc-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.u4gc-skip-link { position: absolute; left: 1em; top: -10em; z-index: 1000; padding: .8em 1.2em; border-radius: var(--radius, 8px); background: var(--neutral-dark, #2f363d); color: var(--white, #fff); font-weight: 700; }
.u4gc-skip-link:focus { top: 1em; }

#brx-header:has(.u4gc-header) { position: sticky; top: 0; z-index: 100; }
.admin-bar #brx-header:has(.u4gc-header) { top: 32px; }
.u4gc-header { background: var(--white, #fff); box-shadow: 0 2px 16px rgba(74, 85, 96, .12); border-top: 4px solid var(--primary, #D31B27); }
.u4gc-header .u4gc-header__inner {
	display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 1.5em;
	width: min(100% - 3.2em, var(--content-width, 128rem)); margin-inline: auto; padding-block: .6em;
	font-size: var(--text-m, 1.6rem);
}
.u4gc-logo { display: inline-flex; flex-direction: row; align-items: center; gap: .6em; text-decoration: none; color: var(--neutral-dark, #2f363d); }
.u4gc-logo__image { display: block; width: 3.6em; height: 3.6em; object-fit: contain; }
.u4gc-logo__name { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: 1.05em; line-height: 1.15; max-width: 11ch; }
.u4gc-header .u4gc-header__menu { display: flex; flex-direction: row; align-items: center; gap: 1.8em; }
.u4gc-nav__list { display: flex; flex-direction: row; gap: .2em 1.4em; margin: 0; padding: 0; list-style: none; }
.u4gc-nav__link { display: inline-block; padding-block: .5em; font-weight: 700; color: var(--neutral-dark, #2f363d); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 3px no-repeat; transition: background-size .2s ease, color .2s ease; }
.u4gc-nav__link:hover, .u4gc-nav__link:focus-visible { color: var(--primary, #D31B27); background-size: 100% 3px; }
.u4gc-header .u4gc-header__actions { display: flex; flex-direction: row; align-items: center; gap: .8em; }
.u4gc-button--small { padding: .6em 1.1em; font-size: .9em; gap: .4em; }
.u4gc-button--small .u4gc-icon { width: 1.1em; height: 1.1em; }
.u4gc-lang { display: inline-flex; flex-direction: row; align-items: center; gap: .35em; font-weight: 700; color: var(--neutral, #4A5560); text-decoration: none; }
.u4gc-lang .u4gc-icon { width: 1.2em; height: 1.2em; }
.u4gc-lang:hover, .u4gc-lang:focus-visible { color: var(--primary, #D31B27); text-decoration: underline; }
.u4gc-header__toggle { display: none; }
:is(.u4gc-header, .u4gc-footer) a:focus-visible, .u4gc-header__toggle:focus-visible { outline: 3px solid var(--primary, #D31B27); outline-offset: 3px; }

@media (max-width: 1020px) {
	.u4gc-header .u4gc-header__toggle {
		display: inline-flex; flex-direction: row; align-items: center; gap: .4em; padding: .55em .9em;
		border: 2px solid var(--neutral-light, #d5dade); border-radius: var(--radius, 8px); background: var(--white, #fff);
		font: inherit; font-weight: 700; color: var(--neutral-dark, #2f363d); cursor: pointer;
	}
	.u4gc-header .u4gc-header__menu {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 1.2em; padding: 1.2em 1.6em 1.8em;
		background: var(--white, #fff); box-shadow: 0 16px 24px rgba(74, 85, 96, .15);
	}
	.u4gc-header { position: relative; }
	.u4gc-header--open .u4gc-header__menu { display: flex; }
	.u4gc-header .u4gc-nav__list { flex-direction: column; }
	.u4gc-nav__link { display: block; padding-block: .7em; border-bottom: 1px solid var(--neutral-ultra-light, #eef0f2); background: none; }
	.u4gc-header .u4gc-header__actions { flex-wrap: wrap; }
}

/* =====================================================================
   Site footer (1.4.0)
   ================================================================== */
.u4gc-footer { font-size: var(--text-m, 1.6rem); color: var(--white, #fff); }
.u4gc-footer__cta { background: var(--primary, #D31B27); }
.u4gc-footer .u4gc-footer__cta-inner {
	display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2em 2em;
	width: min(100% - 3.2em, var(--content-width, 128rem)); margin-inline: auto; padding-block: 2.2em;
}
.u4gc-footer__cta-title { margin: 0; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: 1.5em; line-height: 1.25; max-width: 28ch; }
.u4gc-footer .u4gc-footer__cta-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: .8em; }
.u4gc-button--light { background: var(--white, #fff); color: var(--primary, #D31B27); }
.u4gc-button--light:hover, .u4gc-button--light:focus-visible { background: var(--base, #f8f9fa); color: var(--primary-dark, #8f1119); transform: translateY(-2px); }
.u4gc-button--ghost { background: transparent; color: var(--white, #fff); box-shadow: inset 0 0 0 2px rgba(255,255,255,.9); }
.u4gc-button--ghost:hover, .u4gc-button--ghost:focus-visible { background: rgba(255,255,255,.12); color: var(--white, #fff); transform: translateY(-2px); }
.u4gc-footer__cta a:focus-visible { outline-color: var(--white, #fff); }

.u4gc-footer__main { background: var(--neutral-dark, #2b3238); }
.u4gc-footer__grid {
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.4em 3em;
	width: min(100% - 3.2em, var(--content-width, 128rem)); margin-inline: auto; padding-block: 3.6em 3em;
}
.u4gc-footer__col { display: flex; flex-direction: column; gap: .8em; }
.u4gc-footer .u4gc-logo { color: var(--white, #fff); }
.u4gc-logo--footer .u4gc-logo__image { width: 6em; height: 6em; padding: .25em; border-radius: 50%; background: var(--white, #fff); }
.u4gc-footer__tagline { margin: 0; font-size: 1.05em; line-height: 1.5; }
.u4gc-footer__tax { margin: 0; font-size: .85em; line-height: 1.6; color: rgba(255,255,255,.78); }
.u4gc-footer__heading { margin: 0 0 .2em; font-size: .85em; letter-spacing: .1em; text-transform: uppercase; color: var(--white, #fff); }
.u4gc-footer__heading::after { content: ""; display: block; width: 2.2em; height: 3px; margin-top: .5em; background: var(--primary, #D31B27); }
.u4gc-footer__address { font-style: normal; line-height: 1.6; color: rgba(255,255,255,.85); }
.u4gc-footer .u4gc-contact { display: flex; flex-direction: column; gap: .4em; }
.u4gc-footer .u4gc-contact__link, .u4gc-footer__link, .u4gc-footer .u4gc-lang { color: var(--white, #fff); text-decoration: none; }
.u4gc-footer .u4gc-contact__link:hover, .u4gc-footer__link:hover, .u4gc-footer .u4gc-lang:hover { text-decoration: underline; color: var(--white, #fff); }
.u4gc-footer__list { display: flex; flex-direction: column; gap: .5em; margin: 0; padding: 0; list-style: none; }
.u4gc-lang--footer { margin-top: .6em; }
.u4gc-footer__bottom { background: #1f2429; }
.u4gc-footer__bottom-inner {
	display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6em 2em;
	width: min(100% - 3.2em, var(--content-width, 128rem)); margin: 0 auto; padding-block: 1.1em; font-size: .85em;
}
.u4gc-footer__copy { margin: 0; color: rgba(255,255,255,.72); }
.u4gc-footer__legal { display: flex; flex-direction: row; flex-wrap: wrap; gap: .4em 1.6em; }
.u4gc-footer__legal-link { color: rgba(255,255,255,.85); text-decoration: underline; text-underline-offset: .2em; }
.u4gc-footer__legal-link:hover, .u4gc-footer__legal-link:focus-visible { color: var(--white, #fff); }

@media (max-width: 900px) { .u4gc-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .u4gc-footer__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .u4gc-nav__link, .u4gc-button--light, .u4gc-button--ghost { transition: none; } }
#brx-content [id^="u4gc-"] { scroll-margin-top: 7em; }
/* CTA buttons component (1.4.1) */
.u4gc-cta { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .7em; }
.u4gc-cta .u4gc-button { gap: .4em; }
.u4gc-cta .u4gc-icon { width: 1.1em; height: 1.1em; }

/* ======================= Basic pages (1.5.0) =========================
 * Contact, Privacy Policy, Accessibility - Bricks template "Page — Basic".
 * ================================================================== */
.u4gc-page-hero { padding-block: var(--section-space-m, 6rem) var(--space-l, 2.7rem); background: var(--base, #f8f9fa); border-bottom: 4px solid var(--primary, #D31B27); }
.u4gc-page-hero__inner { width: min(100% - 3.2em, var(--content-width, 128rem)); margin-inline: auto; }
.u4gc-page-hero__title { margin: 0; }
.u4gc-page-body { padding-block: var(--section-space-m, 6rem); background: var(--white, #fff); }
.u4gc-page-body__inner { width: min(100% - 3.2em, var(--content-width, 128rem)); margin-inline: auto; }

/* Readable long text: short line length, generous spacing */
.u4gc-prose { max-width: 72ch; font-size: var(--text-m, 1.8rem); line-height: 1.7; }
.u4gc-prose > * + * { margin-top: 1em; }
.u4gc-prose h2 { margin-top: 1.8em; font-size: var(--h3, 2.4rem); }
.u4gc-prose h3 { margin-top: 1.4em; font-size: var(--h4, 2rem); }
.u4gc-prose ul { padding-left: 1.3em; }
.u4gc-prose li + li { margin-top: .4em; }
.u4gc-prose a { color: var(--primary, #D31B27); text-decoration: underline; text-underline-offset: .2em; }
.u4gc-prose .u4gc-lead { font-size: 1.15em; }
.u4gc-prose .u4gc-updated { font-size: .85em; color: var(--neutral, #4A5560); }
.u4gc-prose .u4gc-summary { padding: 1.2em 1.4em; border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-prose .u4gc-summary ul { margin: .5em 0 0; }

/* Contact page: form + details side by side, stacked on phones */
.u4gc-prose:has(.u4gc-contact-page) { max-width: none; }
.u4gc-contact-page__intro { max-width: 60ch; }
.u4gc-contact-page__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--space-xl, 4.5rem); align-items: start; margin-top: var(--space-l, 2.7rem); }
.u4gc-contact-page__form { padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-contact-page__aside { display: flex; flex-direction: column; gap: 1em; }
.u4gc-contact-page__note { margin: 0; font-size: .85em; color: var(--neutral, #4A5560); }
.u4gc-contact-details { display: flex; flex-direction: column; gap: .5em; }
.u4gc-contact-details__heading { margin: 1em 0 0; font-size: var(--h4, 2rem); }
.u4gc-contact-details__heading:first-child { margin-top: 0; }
.u4gc-contact-details__address { font-style: normal; line-height: 1.6; }
.u4gc-contact-details .u4gc-contact__link { font-weight: 700; }
@media (max-width: 900px) { .u4gc-contact-page__grid { grid-template-columns: 1fr; } }

/* Fluent Forms in brand colours (any form inside a U4GC page) */
.u4gc-prose .fluentform .ff-el-input--label label { font-weight: 700; }
.u4gc-prose .fluentform .ff-el-form-control { padding: .7em .9em; border: 2px solid #c9ced3; border-radius: 6px; font-size: 1em; }
.u4gc-prose .fluentform .ff-el-form-control:focus { border-color: var(--primary, #D31B27); outline: 3px solid rgba(211, 27, 39, .25); outline-offset: 1px; }
.u4gc-prose .fluentform .ff-btn-submit { padding: .85em 1.8em; border: 0; border-radius: var(--radius, 8px); background: var(--primary, #D31B27) !important; color: var(--white, #fff) !important; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: 1em; }
.u4gc-prose .fluentform .ff-btn-submit:hover, .u4gc-prose .fluentform .ff-btn-submit:focus-visible { background: var(--primary-hover, #b01620) !important; }
.u4gc-prose .ff-message-success { padding: 1.2em 1.4em; border-left: 6px solid var(--primary, #D31B27); background: var(--white, #fff); }

/* About Us page (1.6.0) ------------------------------------------------------- */
.u4gc-about-hero .u4gc-page-hero__inner { display: flex; flex-direction: column; gap: .4em; }
.u4gc-about-hero .u4gc-eyebrow { margin: 0; }
.u4gc-story-link { display: inline-block; margin-top: .4em; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; color: var(--primary, #D31B27); text-decoration: underline; text-underline-offset: .25em; }
.u4gc-story-link:hover, .u4gc-story-link:focus-visible { color: var(--primary-hover, #b01620); }

.u4gc-prose .u4gc-story > * + * { margin-top: var(--space-xl, 4rem); }
.u4gc-prose .u4gc-story__opening { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--h3, 2.4rem); line-height: 1.3; }

/* Each chapter hangs off a red line, like the homepage timeline. */
.u4gc-prose .u4gc-chapter { position: relative; padding-left: var(--space-l, 2.7rem); border-left: 4px solid color-mix(in srgb, var(--primary, #D31B27) 25%, transparent); }
.u4gc-prose .u4gc-chapter::before {
	content: ""; position: absolute; top: .35em; left: -11px;
	width: 18px; height: 18px; border-radius: 50%; background: var(--primary, #D31B27); box-shadow: 0 0 0 5px var(--white, #fff);
}
.u4gc-prose .u4gc-chapter > * + * { margin-top: .8em; }
.u4gc-prose .u4gc-chapter__year { margin: 0; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-l, 2.025rem); line-height: 1.2; color: var(--primary, #D31B27); }
.u4gc-prose .u4gc-chapter__title { margin-top: .2em; font-size: var(--h3, 2.4rem); }
.u4gc-prose .u4gc-story__closing { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: 1.15em; }

/* The big number */
.u4gc-prose .u4gc-bignumber { padding: var(--space-xl, 4rem) var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--primary, #D31B27); color: var(--white, #fff); text-align: center; }
.u4gc-prose .u4gc-bignumber > * { margin: 0; color: inherit; }
.u4gc-prose .u4gc-bignumber > * + * { margin-top: .4em; }
.u4gc-prose .u4gc-bignumber__question { font-size: var(--h4, 2rem); }
.u4gc-prose .u4gc-bignumber__number { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: clamp(4.8rem, 12vw, 9rem); line-height: 1; letter-spacing: -.02em; }
.u4gc-prose .u4gc-bignumber__text { max-width: 52ch; margin-inline: auto; }
.u4gc-prose .u4gc-bignumber a { color: inherit; }

/* ======================= Board of Directors (2.3.1) ==================
 * [u4gc_board_cards] shortcode, About page (English + Spanish).
 * Two cards across (one on phones): photo left, name/title/button right.
 * "Read bio" opens a pop-up (<dialog>) with the large photo + full bio.
 * ================================================================== */
.u4gc-prose .u4gc-board { margin-top: var(--space-xl, 4rem); }
.u4gc-prose .u4gc-board__title { margin: 0 0 var(--space-m, 2rem); }
.u4gc-prose .u4gc-board__grid {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-m, 2rem); margin: 0; padding: 0; list-style: none;
}
.u4gc-prose .u4gc-board__card {
	display: flex; flex-direction: row; align-items: center; gap: var(--space-m, 2rem); text-align: left;
	padding: var(--space-m, 2rem); background: var(--white, #fff);
	border: 1px solid var(--neutral-ultra-light, #e6e8ea); border-radius: 1.2rem;
	box-shadow: 0 6px 20px rgba(74, 85, 96, .08);
}
.u4gc-prose .u4gc-board__text { display: flex; flex-direction: column; align-items: flex-start; gap: .35em; min-width: 0; }
.u4gc-prose .u4gc-board__photo-wrap {
	width: 11rem; height: 11rem; border-radius: 50%; overflow: hidden; flex: 0 0 auto;
	background: var(--neutral-ultra-light, #f0f1f2); box-shadow: 0 6px 20px rgba(74, 85, 96, .12);
}
.u4gc-prose .u4gc-board__photo-wrap--large { width: 14rem; height: 14rem; }
.u4gc-prose .u4gc-board__photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
.u4gc-prose .u4gc-board__avatar-fallback {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
	background: color-mix(in srgb, var(--primary, #D31B27) 12%, var(--white, #fff));
	color: var(--primary, #D31B27); font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--h3, 2.4rem);
}
.u4gc-prose .u4gc-board__name { margin: 0; font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-l, 2.025rem); line-height: 1.2; }
.u4gc-prose .u4gc-board__role { margin: 0; font-size: var(--text-s, 1.42rem); color: var(--neutral, #4A5560); text-transform: uppercase; letter-spacing: .06em; }
.u4gc-prose .u4gc-board__open {
	margin-top: .3em; padding: .45em 1.1em; cursor: pointer; font: inherit; font-size: var(--text-s, 1.42rem); font-weight: 700;
	color: var(--primary, #D31B27); background: transparent; border: 2px solid var(--primary, #D31B27); border-radius: 999px;
	transition: background .15s, color .15s;
}
.u4gc-prose .u4gc-board__open:hover, .u4gc-prose .u4gc-board__open:focus-visible { background: var(--primary, #D31B27); color: var(--white, #fff); }
.u4gc-prose .u4gc-board__dialog {
	width: min(92vw, 62rem); max-height: 88vh; overflow: auto; padding: var(--space-l, 2.7rem);
	border: 0; border-radius: 1.4rem; background: var(--white, #fff); color: var(--neutral-dark, #2f363d);
	box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}
.u4gc-prose .u4gc-board__dialog::backdrop { background: rgba(20, 24, 28, .6); }
.u4gc-prose .u4gc-board__dialog-head { display: flex; align-items: center; gap: var(--space-m, 2rem); margin-bottom: var(--space-m, 2rem); padding-right: 3rem; }
.u4gc-prose .u4gc-board__close {
	position: absolute; top: 1rem; right: 1.2rem; width: 4rem; height: 4rem; padding: 0; margin: 0; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	color: var(--neutral, #4A5560); background: transparent; border: 0; border-radius: 50%; line-height: 1;
}
.u4gc-prose .u4gc-board__close svg { display: block; width: 2.2rem; height: 2.2rem; }
.u4gc-prose .u4gc-board__close:hover, .u4gc-prose .u4gc-board__close:focus-visible { background: var(--neutral-ultra-light, #f0f1f2); color: var(--primary, #D31B27); }
.u4gc-prose .u4gc-board__bio p { margin: 0 0 1em; font-size: var(--text-m, 1.7rem); line-height: 1.65; text-align: left; }
.u4gc-prose .u4gc-board__bio p:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
	.u4gc-prose .u4gc-board__grid { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
	.u4gc-prose .u4gc-board__card { flex-direction: column; text-align: center; }
	.u4gc-prose .u4gc-board__text { align-items: center; }
	.u4gc-prose .u4gc-board__dialog-head { flex-direction: column; text-align: center; padding-right: 0; }
}

/* ======================= Volunteer page (1.7.0) ======================
 * Page text + [u4gc_volunteer_roles] cards + the interest form.
 * Bricks template "Page — Get Involved (English)".
 * ================================================================== */
.u4gc-involve-hero .u4gc-page-hero__inner { display: flex; flex-direction: column; gap: .4em; }
.u4gc-involve-hero .u4gc-eyebrow { margin: 0; }

.u4gc-prose:has(.u4gc-volunteer-page) { max-width: none; }
.u4gc-volunteer-page > * + * { margin-top: var(--space-l, 2.7rem); }
.u4gc-volunteer-page__intro { max-width: 62ch; }
.u4gc-volunteer-page__intro + .u4gc-volunteer-page__intro { margin-top: .8em; }

/* Role cards */
.u4gc-roles { margin-top: var(--space-xl, 4rem); }
.u4gc-roles__title { margin: 0 0 var(--space-m, 2rem); }
.u4gc-prose .u4gc-roles__list {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); /* three across (1.7.1) */
	gap: var(--space-l, 2.7rem); margin: 0; padding: 0; list-style: none;
}
@media (max-width: 1100px) { .u4gc-prose .u4gc-roles__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .u4gc-prose .u4gc-roles__list { grid-template-columns: 1fr; } }
.u4gc-prose .u4gc-roles__item { display: flex; margin: 0; }
.u4gc-role-card {
	display: flex; flex-direction: column; gap: .6em; flex: 1;
	padding: var(--space-l, 2.7rem); border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px);
	background: var(--base, #f8f9fa); font-size: var(--text-m, 1.8rem); line-height: 1.5;
}
.u4gc-role-card--full { border-left-color: #aab2ba; }
.u4gc-prose .u4gc-role-card > * { margin: 0; }
.u4gc-role-card__badges { display: flex; flex-direction: row; flex-wrap: wrap; gap: .4em; }
.u4gc-prose .u4gc-role-card__title { margin: 0; font-size: var(--h4, 2rem); line-height: 1.25; }
.u4gc-role-card__program { font-size: var(--text-s, 1.42rem); color: var(--neutral, #4A5560); }
.u4gc-role-card__summary { color: var(--neutral-dark, #2f363d); }
.u4gc-role-card__facts { display: flex; flex-direction: column; gap: .3em; font-size: var(--text-s, 1.42rem); }
.u4gc-role-card__fact { display: flex; flex-direction: row; flex-wrap: wrap; gap: .4em; }
.u4gc-role-card__fact dt { font-weight: 700; }
.u4gc-role-card__fact dt::after { content: ":"; }
.u4gc-role-card__fact dd { margin: 0; }
.u4gc-role-card__action { margin-top: auto !important; padding-top: .6em; }
.u4gc-prose .u4gc-role-card__button { color: var(--white, #fff); text-decoration: none; font-size: var(--text-m, 1.8rem); }
.u4gc-prose .u4gc-role-card__notify { font-weight: 700; }
.u4gc-role-card__notify::after { content: " \2192"; }

.u4gc-badge--open { background: var(--primary, #D31B27); color: var(--white, #fff); }
.u4gc-badge--soon { background: var(--white, #fff); color: var(--neutral-dark, #2f363d); box-shadow: inset 0 0 0 2px #c9ced3; }
.u4gc-badge--full { background: #e9ecef; color: var(--neutral-dark, #2f363d); }
.u4gc-badge--spanish { background: var(--white, #fff); color: var(--primary, #D31B27); box-shadow: inset 0 0 0 2px var(--primary, #D31B27); }

/* Form + "good to know" side by side, stacked on phones */
.u4gc-volunteer-page__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--space-xl, 4.5rem); align-items: start; margin-top: var(--space-xl, 4rem) !important; }
.u4gc-volunteer-page__form { padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); scroll-margin-top: 6em; }
.u4gc-volunteer-page__form > h2, .u4gc-volunteer-page__aside > h2 { margin-top: 0; }
.u4gc-volunteer-page__aside { display: flex; flex-direction: column; gap: 1em; }
.u4gc-volunteer-page__aside ul { margin: 0; }
@media (max-width: 900px) { .u4gc-volunteer-page__grid { grid-template-columns: 1fr; } }

/* Role card icons (1.7.2) */
.u4gc-role-card__head { display: flex; flex-direction: row; align-items: center; gap: .8em; }
.u4gc-role-card__icon {
	display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center;
	width: 2.8em; height: 2.8em; border-radius: 50%;
	background: var(--primary-ultra-light, #fdecee); color: var(--primary, #D31B27);
}
.u4gc-role-card__icon .u4gc-icon { width: 1.5em; height: 1.5em; }
.u4gc-role-card--full .u4gc-role-card__icon { background: #e9ecef; color: var(--neutral, #4A5560); }

/* "Your hours count" box (1.7.3) */
.u4gc-prose .u4gc-hours {
	margin-top: var(--space-xl, 4rem); padding: var(--space-l, 2.7rem);
	border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px);
	background: var(--primary-ultra-light, #fdecee); max-width: 80ch;
}
.u4gc-prose .u4gc-hours > * { margin: 0; }
.u4gc-prose .u4gc-hours > * + * { margin-top: .8em; }
.u4gc-prose .u4gc-hours h2 { margin-top: 0; }

/* Role cards at narrow widths (1.7.4)
 * - badges never break inside the pill; they drop below the icon instead
 * - "Tell me when sign-ups open" link: clean underline, arrow stays attached */
.u4gc-role-card__head { flex-wrap: wrap; row-gap: .6em; }
.u4gc-role-card__badges { flex: 1 1 12em; min-width: 0; }
.u4gc-role-card .u4gc-badge { white-space: nowrap; line-height: 1.4; }
@media (max-width: 380px) { .u4gc-role-card .u4gc-badge { white-space: normal; border-radius: .8em; } } /* tiny phones: wrap neatly instead of overflowing */
.u4gc-prose .u4gc-role-card__notify { text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 100% 2px; background-position: 0 100%; background-repeat: no-repeat; padding-bottom: .15em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.u4gc-prose .u4gc-role-card__notify:hover, .u4gc-prose .u4gc-role-card__notify:focus-visible { background-size: 100% 3px; }
.u4gc-role-card__notify::after { content: "\00a0\2192"; }
.u4gc-prose .u4gc-role-card__program a { text-decoration-skip-ink: none; }

/* ======================= Sponsor page (1.8.0) =======================
 * Page text + level cards + [u4gc_sponsor_packet] + [u4gc_sponsor_wall].
 * ================================================================== */
.u4gc-prose:has(.u4gc-sponsor-page) { max-width: none; }
.u4gc-sponsor-page > * + * { margin-top: var(--space-l, 2.7rem); }
.u4gc-sponsor-page > h2 { margin-top: var(--space-xl, 4rem); }
.u4gc-sponsor-page__intro { max-width: 62ch; }

/* Event box: the Fiesta at a glance, in brand red */
.u4gc-prose .u4gc-event-box { max-width: 80ch; padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--primary, #D31B27); color: var(--white, #fff); }
.u4gc-prose .u4gc-event-box > * { margin: 0; }
.u4gc-prose .u4gc-event-box > * + * { margin-top: .5em; }
.u4gc-prose .u4gc-event-box__eyebrow { font-size: var(--text-s, 1.42rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.85); }
.u4gc-prose .u4gc-event-box__title { margin-top: .2em; color: var(--white, #fff); font-size: var(--h3, 2.4rem); }
.u4gc-prose .u4gc-event-box__when { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--text-l, 2.025rem); }

/* Level cards */
.u4gc-prose .u4gc-levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: var(--space-m, 2rem); margin: 0; padding: 0; list-style: none; }
.u4gc-prose .u4gc-level { display: flex; flex-direction: column; gap: .4em; margin: 0; padding: var(--space-l, 2.7rem) var(--space-m, 2rem); border-top: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-prose .u4gc-level--santa { background: var(--primary-ultra-light, #fdecee); box-shadow: inset 0 0 0 2px var(--primary, #D31B27); }
.u4gc-prose .u4gc-level > * { margin: 0; }
.u4gc-prose .u4gc-level__name { font-size: var(--h4, 2rem); }
.u4gc-prose .u4gc-level__price { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; font-size: var(--h3, 2.4rem); line-height: 1.1; color: var(--primary, #D31B27); }
.u4gc-prose .u4gc-level__perks { margin-top: .6em; padding-left: 1.1em; font-size: var(--text-s, 1.42rem); line-height: 1.5; }
.u4gc-prose .u4gc-level__perks li + li { margin-top: .35em; }

/* How to + aside, stacked on phones */
.u4gc-sponsor-page__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--space-xl, 4.5rem); align-items: start; margin-top: var(--space-xl, 4rem) !important; }
.u4gc-sponsor-page__how { padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-sponsor-page__how > h2, .u4gc-sponsor-page__aside > h2:first-child { margin-top: 0; }
.u4gc-sponsor-page__aside { display: flex; flex-direction: column; gap: .8em; }
.u4gc-sponsor-page__aside > * { margin: 0; }
.u4gc-sponsor-page__aside > h2 { margin-top: .8em; }
.u4gc-prose .u4gc-sponsor-packet .u4gc-button { gap: .5em; color: var(--white, #fff); text-decoration: none; }
.u4gc-prose .u4gc-sponsor-packet .u4gc-icon { width: 1.2em; height: 1.2em; }
.u4gc-sponsor-packet--soon { padding: 1em 1.2em; border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px); background: var(--white, #fff); }
@media (max-width: 900px) { .u4gc-sponsor-page__grid { grid-template-columns: 1fr; } }

/* Sponsor wall on the page: same look as the homepage strip */
.u4gc-prose .u4gc-sponsors--page { margin-top: var(--space-xxl, 6rem) !important; padding: var(--space-xl, 4rem) var(--space-l, 2.7rem); border-radius: var(--radius, 8px); text-align: center; }
.u4gc-prose .u4gc-sponsors--page .u4gc-sponsors__list { list-style: none; padding: 0; }
.u4gc-prose .u4gc-sponsors--page .u4gc-sponsors__title { margin: 0 0 var(--space-l, 2.7rem); }

/* Logo sizes by level (1.8.0) */
.u4gc-sponsors__item--santa .u4gc-sponsors__logo { max-width: 28rem; max-height: 11rem; }
.u4gc-sponsors__item--snowman .u4gc-sponsors__logo { max-width: 24rem; max-height: 9.5rem; }

/* Level card pictures + evenly spaced lead line (1.8.1) */
.u4gc-prose .u4gc-level { position: relative; padding-top: calc(var(--space-l, 2.7rem) + 4.4em); }
.u4gc-prose .u4gc-level::before { content: ""; position: absolute; top: var(--space-l, 2.7rem); left: var(--space-m, 2rem); width: 3.6em; height: 3.6em; border-radius: 50%; background: var(--primary-ultra-light, #fdecee); }
.u4gc-prose .u4gc-level::after { content: ""; position: absolute; top: calc(var(--space-l, 2.7rem) + .6em); left: calc(var(--space-m, 2rem) + .6em); width: 2.4em; height: 2.4em; background: var(--primary, #D31B27); -webkit-mask: var(--u4gc-level-icon) center / contain no-repeat; mask: var(--u4gc-level-icon) center / contain no-repeat; }
.u4gc-prose .u4gc-level--santa::before { background: var(--white, #fff); }
.u4gc-prose .u4gc-level--santa { --u4gc-level-icon: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3.5 17.5h14.5v3H3.5z%27/%3E%3Cpath d=%27M5 17.5c.6-5.5 3.6-10 8.4-11.2 3.2-.8 5.6.9 5.9 4.2%27/%3E%3Cpath d=%27M13.4 6.3c1.4 3 1.9 7 1.6 11.2%27/%3E%3Ccircle cx=%2719.4%27 cy=%2712.4%27 r=%271.9%27/%3E%3C/svg%3E"); }
.u4gc-prose .u4gc-level--snowman { --u4gc-level-icon: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%277.5%27 r=%273.3%27/%3E%3Ccircle cx=%2712%27 cy=%2716%27 r=%275.2%27/%3E%3Cpath d=%27M8.2 3.8h7.6M9.3 3.8V1.8h5.4v2%27/%3E%3Cpath d=%27M12 13.5v.01M12 16.5v.01%27/%3E%3Cpath d=%27M6.9 14.5 3.5 12.5M17.1 14.5l3.4-2%27/%3E%3C/svg%3E"); }
.u4gc-prose .u4gc-level--elf { --u4gc-level-icon: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3.5 19.5h13%27/%3E%3Cpath d=%27M4.5 19.5c1.5-6 5-11 11-13 1.8-.6 3.3-.3 4.5.5-2.5.5-4.2 2.3-5 5-.7 2.3-.9 4.8-.8 7.5%27/%3E%3Ccircle cx=%2720.3%27 cy=%277.3%27 r=%271.5%27/%3E%3Cpath d=%27M6.5 16.5h8.5%27/%3E%3C/svg%3E"); }
.u4gc-prose .u4gc-level--reindeer { --u4gc-level-icon: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 21c-3 0-4.5-2.6-4.5-5.5S9.2 10 12 10s4.5 2.6 4.5 5.5S15 21 12 21z%27/%3E%3Ccircle cx=%2712%27 cy=%2718.3%27 r=%271.4%27/%3E%3Cpath d=%27M9 10.6 6 6.5M6 6.5 3.5 7M6 6.5 5.5 3.5M15 10.6l3-4.1M18 6.5l2.5.5M18 6.5l.5-3%27/%3E%3Cpath d=%27M10.3 14v.01M13.7 14v.01%27/%3E%3C/svg%3E"); }
.u4gc-prose .u4gc-level--donor { --u4gc-level-icon: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 20.5s-7.5-4.6-7.5-10.4A4.1 4.1 0 0 1 12 7.6a4.1 4.1 0 0 1 7.5 2.5c0 5.8-7.5 10.4-7.5 10.4z%27/%3E%3C/svg%3E"); }
.u4gc-sponsor-page > p:has(+ .u4gc-levels) { margin-top: var(--space-s, 1.2rem); margin-bottom: var(--space-m, 2rem); padding: .8em 1.2em; border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-sponsor-page > h2:has(+ p + .u4gc-levels) { margin-bottom: 0; }
.u4gc-sponsor-page > p:has(+ .u4gc-levels) + .u4gc-levels { margin-top: 0 !important; }

/* "How to become a sponsor" + "Restaurants and supermarkets": solid red so they stand out (1.8.1) */
.u4gc-prose .u4gc-sponsor-page__how,
.u4gc-prose .u4gc-sponsor-page__food { padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--primary, #D31B27); color: var(--white, #fff); box-shadow: 0 10px 28px rgba(211, 27, 39, .25); }
.u4gc-prose .u4gc-sponsor-page__how h2,
.u4gc-prose .u4gc-sponsor-page__food h2 { margin-top: 0; color: var(--white, #fff); }
.u4gc-prose .u4gc-sponsor-page__food > * { margin: 0; }
.u4gc-prose .u4gc-sponsor-page__food > * + * { margin-top: .8em; }
.u4gc-prose .u4gc-sponsor-page__how strong { color: var(--white, #fff); }
.u4gc-prose .u4gc-sponsor-page__how .u4gc-sponsor-packet .u4gc-button { background: var(--white, #fff); color: var(--primary, #D31B27); }
.u4gc-prose .u4gc-sponsor-page__how .u4gc-sponsor-packet .u4gc-button:hover,
.u4gc-prose .u4gc-sponsor-page__how .u4gc-sponsor-packet .u4gc-button:focus-visible { background: var(--primary-ultra-light, #fdecee); }
.u4gc-prose .u4gc-sponsor-page__how .u4gc-sponsor-packet--soon { border-left-color: var(--white, #fff); color: var(--neutral-dark, #2f363d); }
.u4gc-prose .u4gc-sponsor-page__how a:not(.u4gc-button), .u4gc-prose .u4gc-sponsor-page__food a { color: var(--white, #fff); }
.u4gc-sponsor-page__aside > .u4gc-sponsor-page__food + h2 { margin-top: var(--space-l, 2.7rem); }

/* =========================== Events (1.9.0) ===========================
 * [u4gc_events] / {echo:u4gc_event_cards(3)}: a calendar-style date block,
 * details, optional flyer. Events page + homepage "Coming up" section.
 * ================================================================== */
.u4gc-events { display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); margin: 0; padding: 0; list-style: none; }
.u4gc-events__item { margin: 0; }
.u4gc-event-card {
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-l, 2.7rem); align-items: start;
	padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--white, #fff);
	box-shadow: 0 6px 20px rgba(74, 85, 96, .10); text-align: left; font-size: var(--text-m, 1.8rem); line-height: 1.5;
}
.u4gc-event-card__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center; width: 5em; padding: .5em 0 .6em;
	border-radius: var(--radius, 8px); background: var(--primary, #D31B27); color: var(--white, #fff);
	font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; line-height: 1.1; text-transform: uppercase;
}
.u4gc-event-card__month { font-size: .8em; letter-spacing: .1em; }
.u4gc-event-card__day { font-size: 2.1em; }
.u4gc-event-card__weekday { font-size: .7em; letter-spacing: .08em; opacity: .9; }
.u4gc-event-card__body { display: flex; flex-direction: column; gap: .5em; }
.u4gc-event-card__body > * { margin: 0; }
.u4gc-prose .u4gc-event-card__title, .u4gc-event-card__title { margin: 0; font-size: var(--h4, 2rem); line-height: 1.25; }
.u4gc-event-card__host { color: var(--neutral, #4A5560); font-weight: 700; }
.u4gc-event-card__benefit { display: inline-flex; flex-direction: row; align-items: center; gap: .5em; align-self: flex-start; padding: .35em .8em; border-radius: 999px; background: var(--primary-ultra-light, #fdecee); color: var(--primary, #D31B27); font-weight: 700; }
.u4gc-event-card__benefit .u4gc-icon { width: 1.1em; height: 1.1em; flex: 0 0 auto; }
.u4gc-event-card__facts { display: flex; flex-direction: column; gap: .3em; font-size: var(--text-s, 1.42rem); }
.u4gc-event-card__facts > div { display: flex; flex-direction: row; flex-wrap: wrap; gap: .4em; }
.u4gc-event-card__facts dt { font-weight: 700; }
.u4gc-event-card__facts dt::after { content: ":"; }
.u4gc-event-card__facts dd { margin: 0; }
.u4gc-event-card__map { margin-left: .3em; color: var(--primary, #D31B27); font-weight: 700; white-space: nowrap; }
.u4gc-event-card__desc { color: var(--neutral-dark, #2f363d); }
.u4gc-prose .u4gc-event-card__action a { text-decoration: none; }
.u4gc-event-card__flyer { display: block; width: 13em; }
.u4gc-event-card__image { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 4px 14px rgba(74, 85, 96, .18); }
@media (max-width: 760px) {
	.u4gc-event-card { grid-template-columns: auto minmax(0, 1fr); }
	.u4gc-event-card__flyer { grid-column: 1 / -1; width: min(100%, 20em); }
}
@media (max-width: 420px) { .u4gc-event-card { grid-template-columns: 1fr; } .u4gc-event-card__date { flex-direction: row; gap: .4em; width: auto; align-self: flex-start; padding: .4em .8em; } .u4gc-event-card__day { font-size: 1.2em; } }

/* Homepage "Coming up" section: hidden when there are no upcoming events */
.u4gc-home-events { padding-block: var(--section-space-m, 6rem); background: var(--base, #f8f9fa); }
.u4gc-home-events:not(:has(.u4gc-event-card)) { display: none; }
.u4gc-home-events__inner { display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); }
.u4gc-home-events__title { margin: 0; }
.u4gc-home-events__content, .u4gc-home-events__more { width: 100%; }
.u4gc-events-link { font-family: var(--heading-font-family, Montserrat, sans-serif); font-weight: 700; color: var(--primary, #D31B27); text-decoration: underline; text-underline-offset: .25em; }
.u4gc-events-link::after { content: "\00a0\2192"; }

/* Events page */
.u4gc-prose:has(.u4gc-events-page) { max-width: none; }
.u4gc-events-page > * + * { margin-top: var(--space-xl, 4rem); }
.u4gc-events-page__intro { max-width: 62ch; }
.u4gc-prose .u4gc-events { padding: 0; }
.u4gc-events__none { max-width: 62ch; padding: 1em 1.2em; border-left: 6px solid var(--primary, #D31B27); border-radius: var(--radius, 8px); background: var(--base, #f8f9fa); }
.u4gc-events-page__host { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--space-xl, 4.5rem); align-items: start; padding: var(--space-xl, 4rem) var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--primary, #D31B27); color: var(--white, #fff); scroll-margin-top: 6em; }
.u4gc-events-page__host-intro > * { margin: 0; }
.u4gc-events-page__host-intro > * + * { margin-top: .8em; }
.u4gc-prose .u4gc-events-page__host h2 { margin-top: 0; color: var(--white, #fff); }
.u4gc-prose .u4gc-events-page__host-intro a { color: var(--white, #fff); }
.u4gc-events-page__form { padding: var(--space-l, 2.7rem); border-radius: var(--radius, 8px); background: var(--white, #fff); color: var(--neutral-dark, #2f363d); }
@media (max-width: 900px) { .u4gc-events-page__host { grid-template-columns: 1fr; } }
/* Event card touch-ups (1.9.0) */
.u4gc-event-card__date { justify-self: start; }
.u4gc-event-card__benefit { border-radius: .9em; line-height: 1.35; }

/* =========================== Photos (2.0.0) ===========================
 * Homepage "Moments" strip, "See all photos" links, Photo Gallery page.
 * ================================================================== */
.u4gc-home-photos { padding-block: var(--section-space-m, 6rem); background: var(--white, #fff); }
.u4gc-home-photos:not(:has(.u4gc-gallery__item)) { display: none; }
.u4gc-home-photos__inner { display: flex; flex-direction: column; gap: var(--space-l, 2.7rem); }
.u4gc-home-photos__title { margin: 0; }
.u4gc-home-photos__content, .u4gc-home-photos__more { width: 100%; }
.u4gc-photo-strip__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.u4gc-photo-strip .u4gc-gallery__item:nth-child(1) { grid-column: span 2; grid-row: span 2; } /* one big photo, then a mosaic */
.u4gc-photo-strip .u4gc-gallery__link, .u4gc-portfolio .u4gc-gallery__link { display: block; height: 100%; overflow: hidden; border-radius: 6px; }
.u4gc-photo-strip .u4gc-gallery__image, .u4gc-portfolio .u4gc-gallery__image { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; transition: transform .3s ease; }
.u4gc-photo-strip .u4gc-gallery__link:hover .u4gc-gallery__image,
.u4gc-portfolio .u4gc-gallery__link:hover .u4gc-gallery__image { transform: scale(1.04); }
@media (max-width: 760px) { .u4gc-photo-strip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .u4gc-photo-strip .u4gc-gallery__item:nth-child(n+6) { display: none; } }
.u4gc-gallery__more { margin: 0; }

/* Photo Gallery page */
.u4gc-prose:has(.u4gc-portfolio) { max-width: none; }
.u4gc-albums { display: flex; flex-direction: row; flex-wrap: wrap; gap: .6em; margin-bottom: var(--space-l, 2.7rem); }
.u4gc-albums__button { padding: .55em 1.1em; border: 0; border-radius: 999px; background: var(--base, #f8f9fa); box-shadow: inset 0 0 0 2px #c9ced3; color: var(--neutral-dark, #2f363d); font: 700 var(--text-s, 1.42rem)/1.2 var(--heading-font-family, Montserrat, sans-serif); cursor: pointer; }
.u4gc-albums__button span { font-weight: 400; opacity: .8; }
.u4gc-albums__button:hover { box-shadow: inset 0 0 0 2px var(--primary, #D31B27); }
.u4gc-albums__button[aria-pressed="true"] { background: var(--primary, #D31B27); box-shadow: none; color: var(--white, #fff); }
.u4gc-albums__button:focus-visible { outline: 3px solid var(--primary, #D31B27); outline-offset: 3px; }
.u4gc-prose .u4gc-portfolio__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--space-s, 1.2rem); margin: 0; padding: 0; list-style: none; }
.u4gc-prose .u4gc-portfolio__list li { margin: 0; }
.u4gc-portfolio__more { margin-top: var(--space-l, 2.7rem) !important; text-align: center; }
@media (prefers-reduced-motion: reduce) { .u4gc-photo-strip .u4gc-gallery__image, .u4gc-portfolio .u4gc-gallery__image { transition: none; } }

/* "Moments": photos scattered on the table (2.0.1)
 * White-bordered prints, each tilted a little, overlapping slightly.
 * Hover or keyboard focus straightens a print and lifts it to the top. */
.u4gc-home-photos { background: var(--base, #f8f9fa); overflow: hidden; }
.u4gc-photo-table__list { display: flex !important; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0; padding: var(--space-m, 2rem) 0 !important; }
.u4gc-print { position: relative; width: clamp(17rem, 22vw, 26rem); margin: -.5em -.8em !important; padding: .7em .7em 2.6em; background: var(--white, #fff); box-shadow: 0 2px 4px rgba(0,0,0,.12), 0 12px 26px rgba(74,85,96,.22); transform: rotate(var(--tilt, -3deg)) translateY(var(--lift, 0)); transition: transform .25s ease, box-shadow .25s ease; }
.u4gc-print:nth-child(7n+1) { --tilt: -4deg; }
.u4gc-print:nth-child(7n+2) { --tilt: 3deg;  --lift: 1.2em; }
.u4gc-print:nth-child(7n+3) { --tilt: -1.5deg; --lift: -.6em; }
.u4gc-print:nth-child(7n+4) { --tilt: 4.5deg; --lift: .8em; }
.u4gc-print:nth-child(7n+5) { --tilt: -3deg; --lift: -1em; }
.u4gc-print:nth-child(7n+6) { --tilt: 2deg;  --lift: 1.4em; }
.u4gc-print:nth-child(7n+7) { --tilt: -5deg; --lift: .2em; }
.u4gc-print .u4gc-gallery__link { display: block; overflow: hidden; border-radius: 0; }
.u4gc-print .u4gc-gallery__image { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 30%; filter: saturate(1.05); }
.u4gc-print__caption { position: absolute; left: .8em; right: .8em; bottom: .7em; overflow: hidden; font: 700 var(--text-xs, 1.26rem)/1.3 var(--heading-font-family, Montserrat, sans-serif); color: var(--neutral, #4A5560); text-align: center; white-space: nowrap; text-overflow: ellipsis; }
.u4gc-print:hover, .u4gc-print:focus-within { z-index: 5; transform: rotate(0deg) translateY(-.4em) scale(1.06); box-shadow: 0 4px 8px rgba(0,0,0,.14), 0 22px 40px rgba(74,85,96,.3); }
.u4gc-print:focus-within { outline: 3px solid var(--primary, #D31B27); outline-offset: 4px; }
.u4gc-print .u4gc-gallery__link:focus-visible { outline: none; }
.u4gc-home-photos__more { text-align: center; }
@media (max-width: 760px) {
	.u4gc-print { width: 46%; margin: -.3em -.6em !important; }
	.u4gc-print:nth-child(n+5) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .u4gc-print { transition: none; } }

/* ---------------------------------------------------------------------
 * Registration (2.1.0)
 * The panel a family meets, and the note that stands in for the form
 * before registration opens. Never a blank space.
 * ------------------------------------------------------------------ */
.u4gc-register__bilingual {
	background: var(--base);
	border-left: 4px solid var(--primary);
	padding: 1em 1.2em;
	margin: 1.5em 0;
}

.u4gc-register__notice {
	background: var(--base);
	border: 1px solid var(--neutral-ultra-light, #dfe3e6);
	border-radius: 6px;
	padding: 1.75em 1.5em;
	margin: 2em 0;
	text-align: center;
}

.u4gc-register__label {
	font-family: var(--heading-font, inherit);
	font-weight: 700;
	font-size: 1.15em;
	color: var(--primary);
	margin: 0 0 .4em;
}

.u4gc-register__text { margin: 0; }

.u4gc-register__form { margin: 2em 0; }

/* The Register button sits beside Volunteer/Donate in the header and must
   not crowd them on a narrow screen. */
.u4gc-button--register { white-space: nowrap; }

/* 2.1.1 Florida charitable-solicitation disclosure */
.u4gc-footer__disclosure { border-bottom: 1px solid rgba(255,255,255,.12); }
.u4gc-footer__disclosure-inner { width: min(100% - 3.2em, var(--content-width, 128rem)); margin: 0 auto; padding-block: 1.1em; }
.u4gc-footer__disclosure .u4gc-disclosure__text { margin: 0; max-width: 110ch; font-size: .8em; line-height: 1.6; color: rgba(255,255,255,.78); }
.u4gc-footer__disclosure .u4gc-disclosure__link { color: var(--white, #fff); text-decoration: underline; text-underline-offset: .2em; }
.u4gc-disclosure { margin-top: 2em; padding: 1em 1.2em; border-top: 1px solid #d5d9dd; font-size: .85em; line-height: 1.6; color: var(--neutral, #4A5560); }
.u4gc-disclosure .u4gc-disclosure__text { margin: 0; }
.u4gc-disclosure .u4gc-disclosure__link { color: var(--primary, #D31B27); text-decoration: underline; }

/* 2.3.0 Donate page: giving buttons, secure note, tax line */
.u4gc-donate { margin: 2em 0; }
.u4gc-donate__buttons { display: flex; flex-wrap: wrap; gap: .9em; justify-content: center; margin: 0 0 1em; }
.u4gc-donate__button { min-width: 14em; justify-content: center; text-align: center; }
.u4gc-donate__secure { text-align: center; margin: 0 0 1.25em; font-size: .92em; color: var(--neutral, #4A5560); }
.u4gc-donate__trust { text-align: center; margin: 1.25em 0 0; font-weight: 600; }
.u4gc-donate .u4gc-disclosure { margin-top: 1.25em; }
